diff --git a/.credo.exs b/.credo.exs index b85898af3..a467f2951 100644 --- a/.credo.exs +++ b/.credo.exs @@ -83,6 +83,7 @@ # lanodan: I think PreferImplicitTry should be consistency, and the behaviour seems # inconsistent, see: https://github.com/rrrene/credo/issues/224 {Credo.Check.Readability.PreferImplicitTry, false}, + {Credo.Check.Readability.PipeIntoAnonymousFunctions, exit_status: 0}, {Credo.Check.Readability.RedundantBlankLines}, {Credo.Check.Readability.StringSigils}, {Credo.Check.Readability.TrailingBlankLine}, @@ -90,6 +91,7 @@ {Credo.Check.Readability.VariableNames}, {Credo.Check.Readability.Semicolons}, {Credo.Check.Readability.SpaceAfterCommas}, + {Credo.Check.Readability.WithSingleClause, exit_status: 0}, {Credo.Check.Refactor.DoubleBooleanNegation}, {Credo.Check.Refactor.CondStatements}, {Credo.Check.Refactor.CyclomaticComplexity}, diff --git a/.gitignore b/.gitignore index da73b6f36..4009bd844 100644 --- a/.gitignore +++ b/.gitignore @@ -48,6 +48,7 @@ docs/generated_config.md # Code test coverage /cover /Elixir.*.coverdata +/coverage.xml .idea pleroma.iml diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 59dc60d9c..8b0381d11 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -1,10 +1,11 @@ -image: elixir:1.9.4 +image: git.pleroma.social:5050/pleroma/pleroma/ci-base variables: &global_variables POSTGRES_DB: pleroma_test POSTGRES_USER: postgres POSTGRES_PASSWORD: postgres DB_HOST: postgres + DB_PORT: 5432 MIX_ENV: test cache: &global_cache_policy @@ -26,12 +27,7 @@ stages: before_script: - echo $MIX_ENV - rm -rf _build/*/lib/pleroma - - apt-get update && apt-get install -y cmake - - mix local.hex --force - - mix local.rebar --force - mix deps.get - - apt-get -qq update - - apt-get install -y libmagic-dev after_script: - rm -rf _build/*/lib/pleroma @@ -39,7 +35,8 @@ after_script: build: stage: build only: - changes: + changes: &build_changes_policy + - ".gitlab-ci.yml" - "**/*.ex" - "**/*.exs" - "mix.lock" @@ -50,6 +47,7 @@ spec-build: stage: test only: changes: + - ".gitlab-ci.yml" - "lib/pleroma/web/api_spec/**/*.ex" - "lib/pleroma/web/api_spec.ex" artifacts: @@ -64,7 +62,7 @@ benchmark: variables: MIX_ENV: benchmark services: - - name: postgres:9.6 + - name: postgres:9.6-alpine alias: postgres command: ["postgres", "-c", "fsync=off", "-c", "synchronous_commit=off", "-c", "full_page_writes=off"] script: @@ -75,24 +73,44 @@ benchmark: unit-testing: stage: test only: - changes: - - "**/*.ex" - - "**/*.exs" - - "mix.lock" - retry: 2 + changes: *build_changes_policy cache: &testing_cache_policy <<: *global_cache_policy policy: pull services: - - name: postgres:13 + - name: postgres:13-alpine alias: postgres command: ["postgres", "-c", "fsync=off", "-c", "synchronous_commit=off", "-c", "full_page_writes=off"] script: - - apt-get update && apt-get install -y libimage-exiftool-perl ffmpeg - mix ecto.create - mix ecto.migrate - - mix coveralls --preload-modules + - mix test --cover --preload-modules + coverage: '/^Line total: ([^ ]*%)$/' + artifacts: + reports: + coverage_report: + coverage_format: cobertura + path: coverage.xml + +unit-testing-erratic: + stage: test + retry: 2 + allow_failure: true + only: + changes: *build_changes_policy + cache: &testing_cache_policy + <<: *global_cache_policy + policy: pull + + services: + - name: postgres:13-alpine + alias: postgres + command: ["postgres", "-c", "fsync=off", "-c", "synchronous_commit=off", "-c", "full_page_writes=off"] + script: + - mix ecto.create + - mix ecto.migrate + - mix test --only=erratic # Removed to fix CI issue. In this early state it wasn't adding much value anyway. # TODO Fix and reinstate federated testing @@ -113,11 +131,7 @@ unit-testing: unit-testing-rum: stage: test only: - changes: - - "**/*.ex" - - "**/*.exs" - - "mix.lock" - retry: 2 + changes: *build_changes_policy cache: *testing_cache_policy services: - name: minibikini/postgres-with-rum:12 @@ -127,45 +141,42 @@ unit-testing-rum: <<: *global_variables RUM_ENABLED: "true" script: - - apt-get update && apt-get install -y libimage-exiftool-perl ffmpeg - mix ecto.create - mix ecto.migrate - "mix ecto.migrate --migrations-path priv/repo/optional_migrations/rum_indexing/" - mix test --preload-modules lint: + image: ¤t_elixir elixir:1.12-alpine stage: test only: - changes: - - "**/*.ex" - - "**/*.exs" - - "mix.lock" + changes: *build_changes_policy cache: *testing_cache_policy + before_script: ¤t_bfr_script + - apk update + - apk add build-base cmake file-dev git openssl + - mix local.hex --force + - mix local.rebar --force + - mix deps.get script: - mix format --check-formatted analysis: stage: test only: - changes: - - "**/*.ex" - - "**/*.exs" - - "mix.lock" + changes: *build_changes_policy cache: *testing_cache_policy script: - mix credo --strict --only=warnings,todo,fixme,consistency,readability cycles: + image: *current_elixir stage: test - image: elixir:1.11 only: - changes: - - "**/*.ex" - - "**/*.exs" - - "mix.lock" + changes: *build_changes_policy cache: {} + before_script: *current_bfr_script script: - - mix deps.get - mix compile - mix xref graph --format cycles --label compile | awk '{print $0} END{exit ($0 != "No cycles found")}' @@ -243,12 +254,14 @@ stop_review_app: amd64: stage: release - image: elixir:1.10.4 + image: elixir:1.11.4 only: &release-only - stable@pleroma/pleroma - develop@pleroma/pleroma - /^maint/.*$/@pleroma/pleroma - /^release/.*$/@pleroma/pleroma + tags: + - amd64 artifacts: &release-artifacts name: "pleroma-$CI_COMMIT_REF_NAME-$CI_COMMIT_SHORT_SHA-$CI_JOB_NAME" paths: @@ -267,7 +280,7 @@ amd64: MIX_ENV: prod before_script: &before-release - apt-get update && apt-get install -y cmake libmagic-dev - - echo "import Mix.Config" > config/prod.secret.exs + - echo "import Config" > config/prod.secret.exs - mix local.hex --force - mix local.rebar --force script: &release @@ -281,12 +294,14 @@ amd64-musl: stage: release artifacts: *release-artifacts only: *release-only - image: elixir:1.10.4-alpine + image: elixir:1.11.4-alpine + tags: + - amd64 cache: *release-cache variables: *release-variables before_script: &before-release-musl - - apk add git gcc g++ musl-dev make cmake file-dev - - echo "import Mix.Config" > config/prod.secret.exs + - apk add git build-base cmake file-dev openssl + - echo "import Config" > config/prod.secret.exs - mix local.hex --force - mix local.rebar --force script: *release @@ -297,7 +312,7 @@ arm: only: *release-only tags: - arm32-specified - image: arm32v7/elixir:1.10.4 + image: arm32v7/elixir:1.11.4 cache: *release-cache variables: *release-variables before_script: *before-release @@ -309,7 +324,7 @@ arm-musl: only: *release-only tags: - arm32-specified - image: arm32v7/elixir:1.10.4-alpine + image: arm32v7/elixir:1.11.4-alpine cache: *release-cache variables: *release-variables before_script: *before-release-musl @@ -321,7 +336,7 @@ arm64: only: *release-only tags: - arm - image: arm64v8/elixir:1.10.4 + image: arm64v8/elixir:1.11.4 cache: *release-cache variables: *release-variables before_script: *before-release @@ -333,7 +348,7 @@ arm64-musl: only: *release-only tags: - arm - image: arm64v8/elixir:1.10.4-alpine + image: arm64v8/elixir:1.11.4-alpine cache: *release-cache variables: *release-variables before_script: *before-release-musl @@ -351,8 +366,8 @@ docker: IMAGE_TAG_SLUG: $CI_REGISTRY_IMAGE:$CI_COMMIT_REF_SLUG IMAGE_TAG_LATEST: $CI_REGISTRY_IMAGE:latest IMAGE_TAG_LATEST_STABLE: $CI_REGISTRY_IMAGE:latest-stable - DOCKER_BUILDX_URL: https://github.com/docker/buildx/releases/download/v0.4.1/buildx-v0.4.1.linux-amd64 - DOCKER_BUILDX_HASH: 71a7d01439aa8c165a25b59c44d3f016fddbd98b + DOCKER_BUILDX_URL: https://github.com/docker/buildx/releases/download/v0.6.3/buildx-v0.6.3.linux-amd64 + DOCKER_BUILDX_HASH: 980e6b9655f971991fbbb5fd6cd19f1672386195 before_script: &before-docker - docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY - docker pull $IMAGE_TAG_SLUG || true diff --git a/.gitlab/merge_request_templates/Release.md b/.gitlab/merge_request_templates/Release.md index b2c772696..9638d6d11 100644 --- a/.gitlab/merge_request_templates/Release.md +++ b/.gitlab/merge_request_templates/Release.md @@ -1,6 +1,8 @@ ### Release checklist -* [ ] Bump version in `mix.exs` -* [ ] Compile a changelog -* [ ] Create an MR with an announcement to pleroma.social -* [ ] Tag the release +* [ ] Bump version in `mix.exs` +* [ ] Compile a changelog +* [ ] Create an MR with an announcement to pleroma.social +#### post-merge +* [ ] Tag the release on the merge commit +* [ ] Make the tag into a Gitlab Release™ * [ ] Merge `stable` into `develop` (in case the fixes are already in develop, use `git merge -s ours --no-commit` and manually merge the changelogs) diff --git a/CHANGELOG.md b/CHANGELOG.md index 8697f9162..18da66e8b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -14,6 +14,64 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/). ### Removed +## 2.5.0 - 2022-12-23 + +### Removed + +- MastoFE +- Quack, the logging backend that pushes to Slack channels + +### Changed +- **Breaking:** Elixir >=1.11 is now required (was >= 1.9) +- Allow users to remove their emails if instance does not need email to register +- Uploadfilter `Pleroma.Upload.Filter.Exiftool` has been renamed to `Pleroma.Upload.Filter.Exiftool.StripLocation` +- **Breaking**: `/api/v1/pleroma/backups` endpoints now requires `read:backups` scope instead of `read:accounts` +- Updated the recommended pleroma.vcl configuration for Varnish to target Varnish 7.0+ +- Set timeout values for Oban queues. The default is infinity and some operations may not time out on their own. +- Delete activities are federated at lowest priority +- CSP now includes wasm-unsafe-eval + +### Added +- `activeMonth` and `activeHalfyear` fields in NodeInfo usage.users object +- Experimental support for Finch. Put `config :tesla, :adapter, {Tesla.Adapter.Finch, name: MyFinch}` in your secrets file to use it. Reverse Proxy will still use Hackney. +- `ForceMentionsInPostContent` MRF policy +- PleromaAPI: Add remote follow API endpoint at `POST /api/v1/pleroma/remote_interaction` +- MastoAPI: Add `GET /api/v1/accounts/lookup` +- MastoAPI: Profile Directory support +- MastoAPI: Support v2 Suggestions (handpicked accounts only) +- Ability to log slow Ecto queries by configuring `:pleroma, :telemetry, :slow_queries_logging` +- Added Phoenix LiveDashboard at `/phoenix/live_dashboard` +- Added `/manifest.json` for progressive web apps. +- MastoAPI: Support for `birthday` and `show_birthday` field in `/api/v1/accounts/update_credentials`. +- Configuration: Add `birthday_required` and `birthday_min_age` settings to provide a way to require users to enter their birth date. +- PleromaAPI: Add `GET /api/v1/pleroma/birthdays` API endpoint +- Make backend-rendered pages translatable. This includes emails. Pages returned as a HTTP response are translated using the language specified in the `userLanguage` cookie, or the `Accept-Language` header. Emails are translated using the `language` field when registering. This language can be changed by `PATCH /api/v1/accounts/update_credentials` with the `language` field. +- Add fine grained options to provide privileges to moderators and admins (e.g. delete messages, manage reports...) +- Uploadfilter `Pleroma.Upload.Filter.Exiftool.ReadDescription` returns description values to the FE so they can pre fill the image description field +- Added move account API +- Enable remote users to interact with posts +- Possibility to discover users like `user@example.org`, while Pleroma is working on `pleroma.example.org`. Additional configuration required. + +### Fixed +- Subscription(Bell) Notifications: Don't create from Pipeline Ingested replies +- Handle Reject for already-accepted Follows properly +- Display OpenGraph data on alternative notice routes. +- Fix replies count for remote replies +- Fixed hashtags disappearing from the end of lines when Markdown is enabled +- ChatAPI: Add link headers +- Limited number of search results to 40 to prevent DoS attacks +- ActivityPub: fixed federation of attachment dimensions +- Fixed benchmarks +- Elixir 1.13 support +- Fixed crash when pinned_objects is nil +- Fixed slow timelines when there are a lot of deactivated users +- Fixed account deletion API +- Fixed lowercase HTTP HEAD method in the Media Proxy Preview code +- Removed useless notification call on Delete activities +- Improved performance for filtering out deactivated and invisible users +- RSS and Atom feeds for users work again +- TwitterCard meta tags conformance + ## 2.4.5 - 2022-11-27 ## Fixed @@ -74,6 +132,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/). ### Changed - **Breaking:** Configuration: `:chat, enabled` moved to `:shout, enabled` and `:instance, chat_limit` moved to `:shout, limit` +- **Breaking** Entries for simple_policy, transparency_exclusions and quarantined_instances now list both the instance and a reason. - Support for Erlang/OTP 24 - The `application` metadata returned with statuses is no longer hardcoded. Apps that want to display these details will now have valid data for new posts after this change. - HTTPSecurityPlug now sends a response header to opt out of Google's FLoC (Federated Learning of Cohorts) targeted advertising. @@ -81,14 +140,17 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/). - Improved Twittercard and OpenGraph meta tag generation including thumbnails and image dimension metadata when available. - AdminAPI: sort users so the newest are at the top. - ActivityPub Client-to-Server(C2S): Limitation on the type of Activity/Object are lifted as they are now passed through ObjectValidators +- MRF (`AntiFollowbotPolicy`): Bot accounts are now also considered followbots. Users can still allow bots to follow them by first following the bot. ### Added - MRF (`FollowBotPolicy`): New MRF Policy which makes a designated local Bot account attempt to follow all users in public Notes received by your instance. Users who require approving follower requests or have #nobot in their profile are excluded. - Return OAuth token `id` (primary key) in POST `/oauth/token`. - AdminAPI: return `created_at` date with users. +- AdminAPI: add DELETE `/api/v1/pleroma/admin/instances/:instance` to delete all content from a remote instance. - `AnalyzeMetadata` upload filter for extracting image/video attachment dimensions and generating blurhashes for images. Blurhashes for videos are not generated at this time. - Attachment dimensions and blurhashes are federated when available. +- Mastodon API: support `poll` notification. - Pinned posts federation ### Fixed @@ -96,6 +158,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/). - Checking activated Upload Filters for required commands. - Remote users can no longer reappear after being deleted. - Deactivated users may now be deleted. +- Deleting an activity with a lot of likes/boosts no longer causes a database timeout. - Mix task `pleroma.database prune_objects` - Fixed rendering of JSON errors on ActivityPub endpoints. - Linkify: Parsing crash with URLs ending in unbalanced closed paren, no path separator, and no query parameters @@ -160,6 +223,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/). - Support pagination of blocks and mutes. - Account backup. - Configuration: Add `:instance, autofollowing_nicknames` setting to provide a way to make accounts automatically follow new users that register on the local Pleroma instance. +- `[:activitypub, :blockers_visible]` config to control visibility of blockers. - Ability to view remote timelines, with ex. `/api/v1/timelines/public?instance=lain.com` and streams `public:remote` and `public:remote:media`. - The site title is now injected as a `title` tag like preloads or metadata. - Password reset tokens now are not accepted after a certain age. diff --git a/COPYING b/COPYING index dd25f1d81..4c2a28aa9 100644 --- a/COPYING +++ b/COPYING @@ -1,11 +1,11 @@ -Unless otherwise stated this repository is copyright © 2017-2021 +Unless otherwise stated this repository is copyright © 2017-2022 Pleroma Authors , and is distributed under The GNU Affero General Public License Version 3, you should have received a copy of the license file as AGPL-3. --- -Files inside docs directory are copyright © 2021 Pleroma Authors +Files inside docs directory are copyright © 2022 Pleroma Authors , and are distributed under the Creative Commons Attribution 4.0 International license, you should have received a copy of the license file as CC-BY-4.0. @@ -30,7 +30,7 @@ priv/static/images/pleroma-fox-tan-shy.png --- -The following files are copyright © 2017-2020 Pleroma Authors +The following files are copyright © 2017-2022 Pleroma Authors , and are distributed under the Creative Commons Attribution-ShareAlike 4.0 International license, you should have received a copy of the license file as CC-BY-SA-4.0. diff --git a/Dockerfile b/Dockerfile index db1a6b457..64f955b78 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,18 +1,18 @@ -FROM elixir:1.9-alpine as build +FROM elixir:1.11.4-alpine as build COPY . . ENV MIX_ENV=prod RUN apk add git gcc g++ musl-dev make cmake file-dev &&\ - echo "import Mix.Config" > config/prod.secret.exs &&\ + echo "import Config" > config/prod.secret.exs &&\ mix local.hex --force &&\ mix local.rebar --force &&\ mix deps.get --only prod &&\ mkdir release &&\ mix release --path release -FROM alpine:3.11 +FROM alpine ARG BUILD_DATE ARG VCS_REF @@ -31,8 +31,7 @@ LABEL maintainer="ops@pleroma.social" \ ARG HOME=/opt/pleroma ARG DATA=/var/lib/pleroma -RUN echo "http://nl.alpinelinux.org/alpine/latest-stable/community" >> /etc/apk/repositories &&\ - apk update &&\ +RUN apk update &&\ apk add exiftool ffmpeg imagemagick libmagic ncurses postgresql-client &&\ adduser --system --shell /bin/false --home ${HOME} pleroma &&\ mkdir -p ${DATA}/uploads &&\ diff --git a/README.md b/README.md index ba1522089..62f8fdc64 100644 --- a/README.md +++ b/README.md @@ -30,7 +30,7 @@ If your platform is not supported, or you just want to be able to edit the sourc - [OpenBSD (fi)](https://docs-develop.pleroma.social/backend/installation/openbsd_fi/) ### OS/Distro packages -Currently Pleroma is not packaged by any OS/Distros, but if you want to package it for one, we can guide you through the process on our [community channels](#community-channels). If you want to change default options in your Pleroma package, please **discuss it with us first**. +Currently Pleroma is packaged for [YunoHost](https://yunohost.org) and [NixOS](https://nixos.org). If you want to package Pleroma for any OS/Distros, we can guide you through the process on our [community channels](#community-channels). If you want to change default options in your Pleroma package, please **discuss it with us first**. ### Docker While we don’t provide docker files, other people have written very good ones. Take a look at or . diff --git a/benchmarks/load_testing/activities.ex b/benchmarks/load_testing/activities.ex index b9f6b24da..7f262d228 100644 --- a/benchmarks/load_testing/activities.ex +++ b/benchmarks/load_testing/activities.ex @@ -394,7 +394,7 @@ defp get_actor(group, users), do: Enum.random(users[group]) defp other_data(actor, content) do %{host: host} = URI.parse(actor.ap_id) - datetime = DateTime.utc_now() + datetime = DateTime.utc_now() |> to_string() context_id = "https://#{host}/contexts/#{UUID.generate()}" activity_id = "https://#{host}/activities/#{UUID.generate()}" object_id = "https://#{host}/objects/#{UUID.generate()}" diff --git a/benchmarks/mix/tasks/pleroma/benchmarks/tags.ex b/benchmarks/mix/tasks/pleroma/benchmarks/tags.ex index c051335a5..a32de2db4 100644 --- a/benchmarks/mix/tasks/pleroma/benchmarks/tags.ex +++ b/benchmarks/mix/tasks/pleroma/benchmarks/tags.ex @@ -99,15 +99,16 @@ defp hashtag_fetching(params, user, local_only) do |> Enum.map(&String.downcase(&1)) _activities = - params - |> Map.put(:type, "Create") - |> Map.put(:local_only, local_only) - |> Map.put(:blocking_user, user) - |> Map.put(:muting_user, user) - |> Map.put(:user, user) - |> Map.put(:tag, tags) - |> Map.put(:tag_all, tag_all) - |> Map.put(:tag_reject, tag_reject) + %{ + type: "Create", + local_only: local_only, + blocking_user: user, + muting_user: user, + user: user, + tag: tags, + tag_all: tag_all, + tag_reject: tag_reject, + } |> Pleroma.Web.ActivityPub.ActivityPub.fetch_public_activities() end end diff --git a/benchmarks/mix/tasks/pleroma/benchmarks/timelines.ex b/benchmarks/mix/tasks/pleroma/benchmarks/timelines.ex index aed32f194..3770ca163 100644 --- a/benchmarks/mix/tasks/pleroma/benchmarks/timelines.ex +++ b/benchmarks/mix/tasks/pleroma/benchmarks/timelines.ex @@ -17,14 +17,14 @@ def run(_args) do # Let the user make 100 posts 1..100 - |> Enum.each(fn i -> CommonAPI.post(user, %{"status" => to_string(i)}) end) + |> Enum.each(fn i -> CommonAPI.post(user, %{status: to_string(i)}) end) # Let 10 random users post posts = users |> Enum.take_random(10) |> Enum.map(fn {:ok, random_user} -> - {:ok, activity} = CommonAPI.post(random_user, %{"status" => "."}) + {:ok, activity} = CommonAPI.post(random_user, %{status: "."}) activity end) @@ -42,7 +42,7 @@ def run(_args) do |> Conn.assign(:user, reading_user) |> Conn.assign(:skip_link_headers, true) - Pleroma.Web.MastodonAPI.AccountController.statuses(conn, %{"id" => user.id}) + Pleroma.Web.MastodonAPI.AccountController.statuses(conn, %{id: user.id}) end }, inputs: %{"user" => user, "no user" => nil}, @@ -50,7 +50,7 @@ def run(_args) do ) users - |> Enum.each(fn {:ok, follower, user} -> Pleroma.User.follow(follower, user) end) + |> Enum.each(fn {:ok, follower} -> Pleroma.User.follow(follower, user) end) Benchee.run( %{ @@ -60,7 +60,7 @@ def run(_args) do |> Conn.assign(:user, reading_user) |> Conn.assign(:skip_link_headers, true) - Pleroma.Web.MastodonAPI.AccountController.statuses(conn, %{"id" => user.id}) + Pleroma.Web.MastodonAPI.AccountController.statuses(conn, %{id: user.id}) end }, inputs: %{"user" => user, "no user" => nil}, diff --git a/ci/Dockerfile b/ci/Dockerfile new file mode 100644 index 000000000..ca28b7029 --- /dev/null +++ b/ci/Dockerfile @@ -0,0 +1,8 @@ +FROM elixir:1.11.4 + +# Single RUN statement, otherwise intermediate images are created +# https://docs.docker.com/develop/develop-images/dockerfile_best-practices/#run +RUN apt-get update &&\ + apt-get install -y libmagic-dev cmake libimage-exiftool-perl ffmpeg &&\ + mix local.hex --force &&\ + mix local.rebar --force diff --git a/ci/README b/ci/README new file mode 100644 index 000000000..3785adef1 --- /dev/null +++ b/ci/README @@ -0,0 +1,12 @@ +## Dependencies + +Assuming an AMD64 Alpine system, you're going to need the following packages +- `qemu qemu-openrc qemu-arm qemu-aarch64` for binfmt +- `docker-cli-buildx` for building the images + +## Setting up + +``` +docker login git.pleroma.social:5050 +doas rc-service qemu-binfmt start +``` diff --git a/ci/build_and_push.sh b/ci/build_and_push.sh new file mode 100755 index 000000000..484cc2643 --- /dev/null +++ b/ci/build_and_push.sh @@ -0,0 +1 @@ +docker buildx build --platform linux/amd64,linux/arm64,linux/arm/v7 -t git.pleroma.social:5050/pleroma/pleroma/ci-base:latest --push . diff --git a/config/benchmark.exs b/config/benchmark.exs index a4d048f1b..870ead150 100644 --- a/config/benchmark.exs +++ b/config/benchmark.exs @@ -4,8 +4,7 @@ # you can enable the server option below. config :pleroma, Pleroma.Web.Endpoint, http: [port: 4001], - url: [port: 4001], - server: true + url: [port: 4001] # Disable captha for tests config :pleroma, Pleroma.Captcha, @@ -41,10 +40,11 @@ password: "postgres", database: "pleroma_benchmark", hostname: System.get_env("DB_HOST") || "localhost", + port: System.get_env("DB_PORT") || "5432", pool_size: 10 # Reduce hash rounds for testing -config :pbkdf2_elixir, rounds: 1 +config :pleroma, :password, iterations: 1 config :tesla, adapter: Tesla.Mock diff --git a/config/config.exs b/config/config.exs index 2aab2f3d3..e41ec2f91 100644 --- a/config/config.exs +++ b/config/config.exs @@ -37,7 +37,7 @@ # FIGURATION! EDIT YOUR SECRET FILE (either prod.secret.exs, dev.secret.exs). # # This file is responsible for configuring your application -# and its dependencies with the aid of the Mix.Config module. +# and its dependencies with the aid of the Config module. # # This configuration file is loaded before any dependency and # is restricted to this project. @@ -139,6 +139,7 @@ ], protocol: "https", secret_key_base: "aK4Abxf29xU9TTDKre9coZPUgevcVCFQJe/5xP/7Lt4BEif6idBIbjupVbOrbKxl", + live_view: [signing_salt: "U5ELgdEwTD3n1+D5s0rY0AMg8/y1STxZ3Zvsl3bWh+oBcGrYdil0rXqPMRd3Glcq"], signing_salt: "CqaoopA2", render_errors: [view: Pleroma.Web.ErrorView, accepts: ~w(json)], pubsub_server: Pleroma.PubSub, @@ -159,11 +160,6 @@ format: "$metadata[$level] $message", metadata: [:request_id] -config :quack, - level: :warn, - meta: [:all], - webhook_url: "https://hooks.slack.com/services/YOUR-KEY-HERE" - config :mime, :types, %{ "application/xml" => ["xml"], "application/xrd+xml" => ["xrd+xml"], @@ -186,6 +182,7 @@ email: "example@example.com", notify_email: "noreply@example.com", description: "Pleroma: An efficient and flexible fediverse server", + short_description: "", background_image: "/images/city.jpg", instance_thumbnail: "/instance/thumbnail.jpeg", limit: 5_000, @@ -226,6 +223,7 @@ max_pinned_statuses: 1, attachment_links: false, max_report_comment_size: 1000, + report_strip_status: true, safe_dm_mentions: false, healthcheck: false, remote_post_retention_days: 90, @@ -253,7 +251,29 @@ ] ], show_reactions: true, - password_reset_token_validity: 60 * 60 * 24 + password_reset_token_validity: 60 * 60 * 24, + profile_directory: true, + admin_privileges: [ + :users_read, + :users_manage_invites, + :users_manage_activation_state, + :users_manage_tags, + :users_manage_credentials, + :users_delete, + :messages_read, + :messages_delete, + :instances_delete, + :reports_manage_reports, + :moderation_log_read, + :announcements_manage_announcements, + :emoji_manage_emoji, + :statistics_read + ], + moderator_privileges: [:messages_delete, :reports_manage_reports], + max_endorsed_users: 20, + birthday_required: false, + birthday_min_age: 0, + max_media_attachments: 1_000 config :pleroma, :welcome, direct_message: [ @@ -321,9 +341,6 @@ subjectLineBehavior: "email", theme: "pleroma-dark", webPushNotifications: false - }, - masto_fe: %{ - showInstanceSpecificPanel: true } config :pleroma, :assets, @@ -352,6 +369,7 @@ config :pleroma, :activitypub, unfollow_blocked: true, outgoing_blocks: true, + blockers_visible: true, follow_handshake_timeout: 500, note_replies_output_limit: 5, sign_object_fetches: true, @@ -553,13 +571,14 @@ token_expiration: 5, filter_expiration: 1, backup: 1, - federator_incoming: 50, - federator_outgoing: 50, + federator_incoming: 5, + federator_outgoing: 5, ingestion_queue: 50, web_push: 50, mailer: 10, transmogrifier: 20, scheduled_activities: 10, + poll_notifications: 10, background: 5, remote_fetcher: 2, attachments_cleanup: 1, @@ -666,6 +685,8 @@ config :pleroma, :populate_hashtags_table, fault_rate_allowance: 0.01 +config :pleroma, :delete_context_objects, fault_rate_allowance: 0.01 + config :pleroma, :env, Mix.env() config :http_signatures, @@ -747,13 +768,21 @@ "https://git.pleroma.social/pleroma/admin-fe/-/jobs/artifacts/${ref}/download?job=build", "ref" => "develop" }, - "soapbox-fe" => %{ - "name" => "soapbox-fe", - "git" => "https://gitlab.com/soapbox-pub/soapbox-fe", + "soapbox" => %{ + "name" => "soapbox", + "git" => "https://gitlab.com/soapbox-pub/soapbox", "build_url" => - "https://gitlab.com/soapbox-pub/soapbox-fe/-/jobs/artifacts/${ref}/download?job=build-production", - "ref" => "v1.0.0", + "https://gitlab.com/soapbox-pub/soapbox/-/jobs/artifacts/${ref}/download?job=build-production", + "ref" => "v3.0.0-beta.1", "build_dir" => "static" + }, + "glitch-lily" => %{ + "name" => "glitch-lily", + "git" => "https://lily-is.land/infra/glitch-lily", + "build_url" => + "https://lily-is.land/infra/glitch-lily/-/jobs/artifacts/${ref}/download?job=build", + "ref" => "servant", + "build_dir" => "public" } } @@ -852,6 +881,8 @@ {Pleroma.Web.ActivityPub.MRF.MediaProxyWarmingPolicy, [max_running: 5, max_waiting: 5]} ] +config :pleroma, Pleroma.Web.WebFinger, domain: nil, update_nickname_on_user_fetch: true + # Import environment specific config. This must remain at the bottom # of this file so it overrides the configuration defined above. import_config "#{Mix.env()}.exs" diff --git a/config/description.exs b/config/description.exs index 934a62a62..bf4734426 100644 --- a/config/description.exs +++ b/config/description.exs @@ -495,6 +495,27 @@ } ] }, + %{ + group: :pleroma, + key: :delete_context_objects, + type: :group, + description: "`delete_context_objects` background migration settings", + children: [ + %{ + key: :fault_rate_allowance, + type: :float, + description: + "Max accepted rate of objects that failed in the migration. Any value from 0.0 which tolerates no errors to 1.0 which will enable the feature even if context object deletion failed for all records.", + suggestions: [0.01] + }, + %{ + key: :sleep_interval_ms, + type: :integer, + description: + "Sleep interval between each chunk of processed records in order to decrease the load on the system (defaults to 0 and should be keep default on most instances)." + } + ] + }, %{ group: :pleroma, key: :instance, @@ -536,6 +557,15 @@ "Very cool instance" ] }, + %{ + key: :short_description, + type: :string, + description: + "Shorter version of instance description. It can be seen on `/api/v1/instance`", + suggestions: [ + "Cool instance" + ] + }, %{ key: :limit, type: :integer, @@ -552,6 +582,14 @@ 100_000 ] }, + %{ + key: :max_media_attachments, + type: :integer, + description: "Maximum number of post media attachments", + suggestions: [ + 1_000_000 + ] + }, %{ key: :upload_limit, type: :integer, @@ -687,12 +725,14 @@ }, %{ key: :quarantined_instances, - type: {:list, :string}, + type: {:list, :tuple}, + key_placeholder: "instance", + value_placeholder: "reason", description: - "List of ActivityPub instances where private (DMs, followers-only) activities will not be sent", + "List of ActivityPub instances where private (DMs, followers-only) activities will not be sent and the reason for doing so", suggestions: [ - "quarantined.com", - "*.quarantined.com" + {"quarantined.com", "Reason"}, + {"*.quarantined.com", "Reason"} ] }, %{ @@ -740,6 +780,16 @@ 3 ] }, + %{ + key: :max_endorsed_users, + type: :integer, + description: "The maximum number of recommended accounts. 0 will disable the feature.", + suggestions: [ + 0, + 1, + 3 + ] + }, %{ key: :autofollowed_nicknames, type: {:list, :string}, @@ -765,6 +815,13 @@ 1_000 ] }, + %{ + key: :report_strip_status, + label: "Report strip status", + type: :boolean, + description: + "Strip associated statuses in reports to ids when closed/resolved, otherwise keep a copy" + }, %{ key: :safe_dm_mentions, label: "Safe DM mentions", @@ -934,6 +991,67 @@ key: :show_reactions, type: :boolean, description: "Let favourites and emoji reactions be viewed through the API." + }, + %{ + key: :profile_directory, + type: :boolean, + description: "Enable profile directory." + }, + %{ + key: :admin_privileges, + type: {:list, :atom}, + suggestions: [ + :users_read, + :users_manage_invites, + :users_manage_activation_state, + :users_manage_tags, + :users_manage_credentials, + :users_delete, + :messages_read, + :messages_delete, + :instances_delete, + :reports_manage_reports, + :moderation_log_read, + :announcements_manage_announcements, + :emoji_manage_emoji, + :statistics_read + ], + description: + "What extra privileges to allow admins (e.g. updating user credentials, get password reset token, delete users, index and read private statuses and chats)" + }, + %{ + key: :moderator_privileges, + type: {:list, :atom}, + suggestions: [ + :users_read, + :users_manage_invites, + :users_manage_activation_state, + :users_manage_tags, + :users_manage_credentials, + :users_delete, + :messages_read, + :messages_delete, + :instances_delete, + :reports_manage_reports, + :moderation_log_read, + :announcements_manage_announcements, + :emoji_manage_emoji, + :statistics_read + ], + description: + "What extra privileges to allow moderators (e.g. updating user credentials, get password reset token, delete users, index and read private statuses and chats)" + }, + %{ + key: :birthday_required, + type: :boolean, + description: "Require users to enter their birthday." + }, + %{ + key: :birthday_min_age, + type: :integer, + description: + "Minimum required age (in days) for users to create account. Only used if birthday is required.", + suggestions: [6570] } ] }, @@ -1117,52 +1235,13 @@ } ] }, - %{ - group: :quack, - type: :group, - label: "Quack Logger", - description: "Quack-related settings", - children: [ - %{ - key: :level, - type: {:dropdown, :atom}, - description: "Log level", - suggestions: [:debug, :info, :warn, :error] - }, - %{ - key: :meta, - type: {:list, :atom}, - description: "Configure which metadata you want to report on", - suggestions: [ - :application, - :module, - :file, - :function, - :line, - :pid, - :crash_reason, - :initial_call, - :registered_name, - :all, - :none - ] - }, - %{ - key: :webhook_url, - label: "Webhook URL", - type: :string, - description: "Configure the Slack incoming webhook", - suggestions: ["https://hooks.slack.com/services/YOUR-KEY-HERE"] - } - ] - }, %{ group: :pleroma, key: :frontend_configurations, type: :group, description: "This form can be used to configure a keyword list that keeps the configuration data for any " <> - "kind of frontend. By default, settings for pleroma_fe and masto_fe are configured. If you want to " <> + "kind of frontend. By default, settings for pleroma_fe are configured. If you want to " <> "add your own configuration your settings all fields must be complete.", children: [ %{ @@ -1362,25 +1441,6 @@ suggestions: ["pleroma-dark"] } ] - }, - %{ - key: :masto_fe, - label: "Masto FE", - type: :map, - description: "Settings for Masto FE", - suggestions: [ - %{ - showInstanceSpecificPanel: true - } - ], - children: [ - %{ - key: :showInstanceSpecificPanel, - label: "Show instance specific panel", - type: :boolean, - description: "Whenether to show the instance's specific panel" - } - ] } ] }, @@ -1687,11 +1747,21 @@ type: :boolean, description: "Whether to federate blocks to other instances" }, + %{ + key: :blockers_visible, + type: :boolean, + description: "Whether a user can see someone who has blocked them" + }, %{ key: :sign_object_fetches, type: :boolean, description: "Sign object fetches with HTTP signatures" }, + %{ + key: :authorized_fetch_mode, + type: :boolean, + description: "Require HTTP signatures for AP fetches" + }, %{ key: :note_replies_output_limit, type: :integer, @@ -2698,7 +2768,7 @@ key: :versions, type: {:list, :atom}, description: "List of TLS version to use", - suggestions: [:tlsv1, ":tlsv1.1", ":tlsv1.2"] + suggestions: [:tlsv1, ":tlsv1.1", ":tlsv1.2", ":tlsv1.3"] } ] } diff --git a/config/dev.exs b/config/dev.exs index 6b7ffb0e9..ab3e83c12 100644 --- a/config/dev.exs +++ b/config/dev.exs @@ -62,6 +62,7 @@ import_config "dev.secret.exs" else IO.puts( + :stderr, "!!! RUNNING IN LOCALHOST DEV MODE! !!!\nFEDERATION WON'T WORK UNTIL YOU CONFIGURE A dev.secret.exs" ) end diff --git a/config/docker.exs b/config/docker.exs index f9f27d141..5db222485 100644 --- a/config/docker.exs +++ b/config/docker.exs @@ -18,6 +18,7 @@ password: System.fetch_env!("DB_PASS"), database: System.get_env("DB_NAME", "pleroma"), hostname: System.get_env("DB_HOST", "db"), + port: System.get_env("DB_PORT", "5432"), pool_size: 10 # Configure web push notifications diff --git a/config/test.exs b/config/test.exs index d5c25f65e..78303eb1d 100644 --- a/config/test.exs +++ b/config/test.exs @@ -47,6 +47,7 @@ password: "postgres", database: "pleroma_test", hostname: System.get_env("DB_HOST") || "localhost", + port: System.get_env("DB_PORT") || "5432", pool: Ecto.Adapters.SQL.Sandbox, pool_size: 50 @@ -81,10 +82,7 @@ "BLH1qVhJItRGCfxgTtONfsOKDc9VRAraXw-3NsmjMngWSh7NxOizN6bkuRA7iLTMPS82PjwJAr3UoK9EC1IFrz4", private_key: "_-XZ0iebPrRfZ_o0-IatTdszYa8VCH1yLN-JauK7HHA" -config :pleroma, Oban, - queues: false, - crontab: false, - plugins: false +config :pleroma, Oban, testing: :manual config :pleroma, Pleroma.ScheduledActivity, daily_user_limit: 2, @@ -129,6 +127,8 @@ config :pleroma, :cachex, provider: Pleroma.CachexMock +config :pleroma, Pleroma.Web.WebFinger, update_nickname_on_user_fetch: false + config :pleroma, :side_effects, ap_streamer: Pleroma.Web.ActivityPub.ActivityPubMock, logger: Pleroma.LoggerMock diff --git a/docker-entrypoint.sh b/docker-entrypoint.sh index f56f8c50a..4691f68bb 100755 --- a/docker-entrypoint.sh +++ b/docker-entrypoint.sh @@ -3,7 +3,7 @@ set -e echo "-- Waiting for database..." -while ! pg_isready -U ${DB_USER:-pleroma} -d postgres://${DB_HOST:-db}:5432/${DB_NAME:-pleroma} -t 1; do +while ! pg_isready -U ${DB_USER:-pleroma} -d postgres://${DB_HOST:-db}:${DB_PORT:-5432}/${DB_NAME:-pleroma} -t 1; do sleep 1s done diff --git a/docs/administration/CLI_tasks/frontend.md b/docs/administration/CLI_tasks/frontend.md index d4a48cb56..4e9d9eecb 100644 --- a/docs/administration/CLI_tasks/frontend.md +++ b/docs/administration/CLI_tasks/frontend.md @@ -22,7 +22,7 @@ Currently, known `` values are: - [kenoma](http://git.pleroma.social/lambadalambda/kenoma) - [pleroma-fe](http://git.pleroma.social/pleroma/pleroma-fe) - [fedi-fe](https://git.pleroma.social/pleroma/fedi-fe) -- [soapbox-fe](https://gitlab.com/soapbox-pub/soapbox-fe) +- [soapbox](https://gitlab.com/soapbox-pub/soapbox) You can still install frontends that are not configured, see below. diff --git a/docs/administration/CLI_tasks/instance.md b/docs/administration/CLI_tasks/instance.md index 982b22bf3..88509cf5b 100644 --- a/docs/administration/CLI_tasks/instance.md +++ b/docs/administration/CLI_tasks/instance.md @@ -37,7 +37,8 @@ If any of the options are left unspecified, you will be prompted interactively. - `--static-dir ` - the directory custom public files should be read from (custom emojis, frontend bundle overrides, robots.txt, etc.) - `--listen-ip ` - the ip the app should listen to, defaults to 127.0.0.1 - `--listen-port ` - the port the app should listen to, defaults to 4000 -- `--strip-uploads ` - use ExifTool to strip uploads of sensitive location data +- `--strip-uploads-location ` - use ExifTool to strip uploads of sensitive location data +- `--read-uploads-description ` - use ExifTool to read image descriptions from uploads - `--anonymize-uploads ` - randomize uploaded filenames - `--dedupe-uploads ` - store files based on their hash to reduce data storage requirements if duplicates are uploaded with different filenames - `--skip-release-env` - skip generation the release environment file diff --git a/docs/administration/updating.md b/docs/administration/updating.md index ef2c9218c..00eca36a0 100644 --- a/docs/administration/updating.md +++ b/docs/administration/updating.md @@ -17,11 +17,11 @@ su pleroma -s $SHELL -lc "./bin/pleroma_ctl migrate" ## For from source installations (using git) 1. Go to the working directory of Pleroma (default is `/opt/pleroma`) -2. Run `git pull`. This pulls the latest changes from upstream. +2. Run `git checkout ` [^1]. e.g. `git checkout v2.4.5` This pulls the [tagged release](https://git.pleroma.social/pleroma/pleroma/-/releases) from upstream. 3. Run `mix deps.get` [^1]. This pulls in any new dependencies. 4. Stop the Pleroma service. 5. Run `mix ecto.migrate` [^1] [^2]. This task performs database migrations, if there were any. 6. Start the Pleroma service. -[^1]: Depending on which install guide you followed (for example on Debian/Ubuntu), you want to run `mix` tasks as `pleroma` user by adding `sudo -Hu pleroma` before the command. +[^1]: Depending on which install guide you followed (for example on Debian/Ubuntu), you want to run `git` and `mix` tasks as `pleroma` user by adding `sudo -Hu pleroma` before the command. [^2]: Prefix with `MIX_ENV=prod` to run it using the production config file. diff --git a/docs/clients.md b/docs/clients.md index 5650ea236..31d2d27c3 100644 --- a/docs/clients.md +++ b/docs/clients.md @@ -116,3 +116,9 @@ Feel free to contact us to be added to this list! - Contact: [@r@freesoftwareextremist.com](https://freesoftwareextremist.com/users/r) - Features: Does not requires JavaScript - Features: MastoAPI + +### Glitch-lily +- Source Code: +- Contact: [@tusooa@kazv.moe](https://kazv.moe/users/tusooa) +- Features: MastoAPI +- Based on [glitch-soc](https://github.com/glitch-soc/mastodon) frontend diff --git a/docs/configuration/cheatsheet.md b/docs/configuration/cheatsheet.md index 5b49185dc..bbdf30a0f 100644 --- a/docs/configuration/cheatsheet.md +++ b/docs/configuration/cheatsheet.md @@ -18,6 +18,7 @@ To add configuration to your config file, you can copy it from the base config. * `email`: Email used to reach an Administrator/Moderator of the instance. * `notify_email`: Email used for notifications. * `description`: The instance’s description, can be seen in nodeinfo and ``/api/v1/instance``. +* `short_description`: Shorter version of instance description, can be seen on ``/api/v1/instance``. * `limit`: Posts character limit (CW/Subject included in the counter). * `description_limit`: The character limit for image descriptions. * `remote_limit`: Hard character limit beyond which remote posts will be dropped. @@ -39,7 +40,7 @@ To add configuration to your config file, you can copy it from the base config. * `federation_reachability_timeout_days`: Timeout (in days) of each external federation target being unreachable prior to pausing federating to it. * `allow_relay`: Permits remote instances to subscribe to all public posts of your instance. This may increase the visibility of your instance. * `public`: Makes the client API in authenticated mode-only except for user-profiles. Useful for disabling the Local Timeline and The Whole Known Network. Note that there is a dependent setting restricting or allowing unauthenticated access to specific resources, see `restrict_unauthenticated` for more details. -* `quarantined_instances`: List of ActivityPub instances where private (DMs, followers-only) activities will not be send. +* `quarantined_instances`: ActivityPub instances where private (DMs, followers-only) activities will not be send. * `allowed_post_formats`: MIME-type list of formats allowed to be posted (transformed into HTML). * `extended_nickname_format`: Set to `true` to use extended local nicknames format (allows underscores/dashes). This will break federation with older software for theses nicknames. @@ -48,6 +49,7 @@ To add configuration to your config file, you can copy it from the base config. * `autofollowing_nicknames`: Set to nicknames of (local) users that automatically follows every newly registered user. * `attachment_links`: Set to true to enable automatically adding attachment link text to statuses. * `max_report_comment_size`: The maximum size of the report comment (Default: `1000`). +* `report_strip_status`: Strip associated statuses in reports to ids when closed/resolved, otherwise keep a copy. * `safe_dm_mentions`: If set to true, only mentions at the beginning of a post will be used to address people in direct messages. This is to prevent accidental mentioning of people when talking about them (e.g. "@friend hey i really don't like @enemy"). Default: `false`. * `healthcheck`: If set to true, system data will be shown on ``/api/v1/pleroma/healthcheck``. * `remote_post_retention_days`: The default amount of days to retain remote posts when pruning the database. @@ -64,6 +66,36 @@ To add configuration to your config file, you can copy it from the base config. * `cleanup_attachments`: Remove attachments along with statuses. Does not affect duplicate files and attachments without status. Enabling this will increase load to database when deleting statuses on larger instances. * `show_reactions`: Let favourites and emoji reactions be viewed through the API (default: `true`). * `password_reset_token_validity`: The time after which reset tokens aren't accepted anymore, in seconds (default: one day). +* `admin_privileges`: A list of privileges an admin has (e.g. delete messages, manage reports...) + * Possible values are: + * `:users_read` + * Allows admins to fetch users through the admin API. + * `:users_manage_invites` + * Allows admins to manage invites. This includes sending, resending, revoking and approving invites. + * `:users_manage_activation_state` + * Allows admins to activate and deactivate accounts. This also allows them to see deactivated users through the Mastodon API. + * `:users_manage_tags` + * Allows admins to set and remove tags for users. This can be useful in combination with MRF policies, such as `Pleroma.Web.ActivityPub.MRF.TagPolicy`. + * `:users_manage_credentials` + * Allows admins to trigger a password reset and set new credentials for an user. + * `:users_delete` + * Allows admins to delete accounts. Note that deleting an account is actually deactivating it and removing all data like posts, profile information, etc. + * `:messages_read` + * Allows admins to read messages through the admin API, including non-public posts and chats. + * `:messages_delete` + * Allows admins to delete messages from other users. + * `:instances_delete,` + * Allows admins to remove a whole remote instance from your instance. This will delete all users and messages from that remote instance. + * `:reports_manage_reports` + * Allows admins to see and manage reports. + * `:moderation_log_read,` + * Allows admins to read the entries in the moderation log. + * `:emoji_manage_emoji` + * Allows admins to manage custom emoji on the instance. + * `:statistics_read,` + * Allows admins to see some simple statistics about the instance. +* `moderator_privileges`: A list of privileges a moderator has (e.g. delete messages, manage reports...) + * Possible values are the same as for `admin_privileges` ## :database * `improved_hashtag_timeline`: Setting to force toggle / force disable improved hashtags timeline. `:enabled` forces hashtags to be fetched from `hashtags` table for hashtags timeline. `:disabled` forces object-embedded hashtags to be used (slower). Keep it `:auto` for automatic behaviour (it is auto-set to `:enabled` [unless overridden] when HashtagsTableMigrator completes). @@ -125,6 +157,9 @@ To add configuration to your config file, you can copy it from the base config. * `Pleroma.Web.ActivityPub.MRF.ActivityExpirationPolicy`: Sets a default expiration on all posts made by users of the local instance. Requires `Pleroma.Workers.PurgeExpiredActivity` to be enabled for processing the scheduled delections. * `Pleroma.Web.ActivityPub.MRF.ForceBotUnlistedPolicy`: Makes all bot posts to disappear from public timelines. * `Pleroma.Web.ActivityPub.MRF.FollowBotPolicy`: Automatically follows newly discovered users from the specified bot account. Local accounts, locked accounts, and users with "#nobot" in their bio are respected and excluded from being followed. + * `Pleroma.Web.ActivityPub.MRF.AntiFollowbotPolicy`: Drops follow requests from followbots. Users can still allow bots to follow them by first following the bot. + * `Pleroma.Web.ActivityPub.MRF.KeywordPolicy`: Rejects or removes from the federated timeline or replaces keywords. (See [`:mrf_keyword`](#mrf_keyword)). + * `Pleroma.Web.ActivityPub.MRF.ForceMentionsInContent`: Forces every mentioned user to be reflected in the post content. * `transparency`: Make the content of your Message Rewrite Facility settings public (via nodeinfo). * `transparency_exclusions`: Exclude specific instance names from MRF transparency. The use of the exclusions feature will be disclosed in nodeinfo as a boolean value. @@ -135,15 +170,16 @@ To add configuration to your config file, you can copy it from the base config. Configuring MRF policies is not enough for them to take effect. You have to enable them by specifying their module in `policies` under [:mrf](#mrf) section. #### :mrf_simple -* `media_removal`: List of instances to remove media from. -* `media_nsfw`: List of instances to put media as NSFW(sensitive) from. -* `federated_timeline_removal`: List of instances to remove from Federated (aka The Whole Known Network) Timeline. -* `reject`: List of instances to reject any activities from. -* `accept`: List of instances to accept any activities from. -* `followers_only`: List of instances to decrease post visibility to only the followers, including for DM mentions. -* `report_removal`: List of instances to reject reports from. -* `avatar_removal`: List of instances to strip avatars from. -* `banner_removal`: List of instances to strip banners from. +* `media_removal`: List of instances to strip media attachments from and the reason for doing so. +* `media_nsfw`: List of instances to tag all media as NSFW (sensitive) from and the reason for doing so. +* `federated_timeline_removal`: List of instances to remove from the Federated Timeline (aka The Whole Known Network) and the reason for doing so. +* `reject`: List of instances to reject activities (except deletes) from and the reason for doing so. +* `accept`: List of instances to only accept activities (except deletes) from and the reason for doing so. +* `followers_only`: Force posts from the given instances to be visible by followers only and the reason for doing so. +* `report_removal`: List of instances to reject reports from and the reason for doing so. +* `avatar_removal`: List of instances to strip avatars from and the reason for doing so. +* `banner_removal`: List of instances to strip banners from and the reason for doing so. +* `reject_deletes`: List of instances to reject deletions from and the reason for doing so. #### :mrf_subchain This policy processes messages through an alternate pipeline when a given message matches certain criteria. @@ -199,7 +235,7 @@ config :pleroma, :mrf_user_allowlist, %{ e.g., A value of 900 results in any post with a timestamp older than 15 minutes will be acted upon. * `actions`: A list of actions to apply to the post: * `:delist` removes the post from public timelines - * `:strip_followers` removes followers from the ActivityPub recipient list, ensuring they won't be delivered to home timelines + * `:strip_followers` removes followers from the ActivityPub recipient list, ensuring they won't be delivered to home timelines, additionally for followers-only it degrades to a direct message * `:reject` rejects the message entirely #### :mrf_steal_emoji @@ -229,6 +265,7 @@ Notes: ### :activitypub * `unfollow_blocked`: Whether blocks result in people getting unfollowed * `outgoing_blocks`: Whether to federate blocks to other instances +* `blockers_visible`: Whether a user can see the posts of users who blocked them * `deny_follow_blocked`: Whether to disallow following an account that has blocked the user in question * `sign_object_fetches`: Sign object fetches with HTTP signatures * `authorized_fetch_mode`: Require HTTP signatures for AP fetches @@ -246,7 +283,7 @@ Notes: ### :frontend_configurations -This can be used to configure a keyword list that keeps the configuration data for any kind of frontend. By default, settings for `pleroma_fe` and `masto_fe` are configured. You can find the documentation for `pleroma_fe` configuration into [Pleroma-FE configuration and customization for instance administrators](/frontend/CONFIGURATION/#options). +This can be used to configure a keyword list that keeps the configuration data for any kind of frontend. By default, settings for `pleroma_fe` are configured. You can find the documentation for `pleroma_fe` configuration into [Pleroma-FE configuration and customization for instance administrators](/frontend/CONFIGURATION/#options). Frontends can access these settings at `/api/v1/pleroma/frontend_configurations` @@ -257,10 +294,7 @@ config :pleroma, :frontend_configurations, pleroma_fe: %{ theme: "pleroma-dark", # ... see /priv/static/static/config.json for the available keys. -}, - masto_fe: %{ - showInstanceSpecificPanel: true - } +} ``` These settings **need to be complete**, they will override the defaults. @@ -625,12 +659,18 @@ This filter replaces the filename (not the path) of an upload. For complete obfu No specific configuration. -#### Pleroma.Upload.Filter.Exiftool +#### Pleroma.Upload.Filter.Exiftool.StripLocation This filter only strips the GPS and location metadata with Exiftool leaving color profiles and attributes intact. No specific configuration. +#### Pleroma.Upload.Filter.Exiftool.ReadDescription + +This filter reads the ImageDescription and iptc:Caption-Abstract fields with Exiftool so clients can prefill the media description field. + +No specific configuration. + #### Pleroma.Upload.Filter.Mogrify * `args`: List of actions for the `mogrify` command like `"strip"` or `["strip", "auto-orient", {"implode", "1"}]`. @@ -768,7 +808,7 @@ Web Push Notifications configuration. You can use the mix task `mix web_push.gen * ``private_key``: VAPID private key ## :logger -* `backends`: `:console` is used to send logs to stdout, `{ExSyslogger, :ex_syslogger}` to log to syslog, and `Quack.Logger` to log to Slack +* `backends`: `:console` is used to send logs to stdout, `{ExSyslogger, :ex_syslogger}` to log to syslog An example to enable ONLY ExSyslogger (f/ex in ``prod.secret.exs``) with info and debug suppressed: ```elixir @@ -791,10 +831,10 @@ config :logger, :ex_syslogger, See: [logger’s documentation](https://hexdocs.pm/logger/Logger.html) and [ex_syslogger’s documentation](https://hexdocs.pm/ex_syslogger/) -An example of logging info to local syslog, but warn to a Slack channel: +An example of logging info to local syslog, but debug to console: ```elixir config :logger, - backends: [ {ExSyslogger, :ex_syslogger}, Quack.Logger ], + backends: [ {ExSyslogger, :ex_syslogger}, :console ], level: :info config :logger, :ex_syslogger, @@ -802,14 +842,12 @@ config :logger, :ex_syslogger, ident: "pleroma", format: "$metadata[$level] $message" -config :quack, - level: :warn, - meta: [:all], - webhook_url: "https://hooks.slack.com/services/YOUR-API-KEY-HERE" +config :logger, :console, + level: :debug, + format: "\n$time $metadata[$level] $message\n", + metadata: [:request_id] ``` -See the [Quack Github](https://github.com/azohra/quack) for more details - ## Database options diff --git a/docs/configuration/how_to_serve_another_domain_for_webfinger.md b/docs/configuration/how_to_serve_another_domain_for_webfinger.md new file mode 100644 index 000000000..5ae3e7943 --- /dev/null +++ b/docs/configuration/how_to_serve_another_domain_for_webfinger.md @@ -0,0 +1,62 @@ +# How to use a different domain name for Pleroma and the users it serves + +Pleroma users are primarily identified by a `user@example.org` handle, and you might want this identifier to be the same as your email or jabber account, for instance. +However, in this case, you are almost certainly serving some web content on `https://example.org` already, and you might want to use another domain (say `pleroma.example.org`) for Pleroma itself. + +Pleroma supports that, but it might be tricky to set up, and any error might prevent you from federating with other instances. + +*If you are already running Pleroma on `example.org`, it is no longer possible to move it to `pleroma.example.org`.* + +## Account identifiers + +It is important to understand that for federation purposes, a user in Pleroma has two unique identifiers associated: + +- A webfinger `acct:` URI, used for discovery and as a verifiable global name for the user across Pleroma instances. In our example, our account's acct: URI is `acct:user@example.org` +- An author/actor URI, used in every other aspect of federation. This is the way in which users are identified in ActivityPub, the underlying protocol used for federation with other Pleroma instances. +In our case, it is `https://pleroma.example.org/users/user`. + +Both account identifiers are unique and required for Pleroma. An important risk if you set up your Pleroma instance incorrectly is to create two users (with different acct: URIs) with conflicting author/actor URIs. + +## WebFinger + +As said earlier, each Pleroma user has an `acct`: URI, which is used for discovery and authentication. When you add @user@example.org, a webfinger query is performed. This is done in two steps: + +1. Querying `https://example.org/.well-known/host-meta` (where the domain of the URL matches the domain part of the `acct`: URI) to get information on how to perform the query. +This file will indeed contain a URL template of the form `https://example.org/.well-known/webfinger?resource={uri}` that will be used in the second step. +2. Fill the returned template with the `acct`: URI to be queried and perform the query: `https://example.org/.well-known/webfinger?resource=acct:user@example.org` + +## Configuring your Pleroma instance + +**_DO NOT ATTEMPT TO CONFIGURE YOUR INSTANCE THIS WAY IF YOU DID NOT UNDERSTAND THE ABOVE_** + +### Configuring Pleroma + +Pleroma has a two configuration settings to enable using different domains for your users and Pleroma itself. `host` in `Pleroma.Web.Endpoint` and `domain` in `Pleroma.Web.WebFinger`. When the latter is not set, it defaults to the value of `host`. + +*Be extra careful when configuring your Pleroma instance, as changing `host` may cause remote instances to register different accounts with the same author/actor URI, which will result in federation issues!* + +```elixir +config :pleroma, Pleroma.Web.Endpoint, + url: [host: "pleroma.example.org"] + +config :pleroma, Pleroma.Web.WebFinger, domain: "example.org" +``` + +- `domain` - is the domain for which your Pleroma instance has authority, it's the domain used in `acct:` URI. In our example, `domain` would be set to `example.org`. This is used in WebFinger account ids, which are the canonical account identifier in some other fediverse software like Mastodon. **If you change `domain`, the accounts on your server will be shown as different accounts in those software**. +- `host` - is the domain used for any URL generated for your instance, including the author/actor URL's. In our case, that would be `pleroma.example.org`. This is used in AP ids, which are the canonical account identifier in Pleroma and some other fediverse software. **You should not change this after you have set up the instance**. + +### Configuring WebFinger domain + +Now, you have Pleroma running at `https://pleroma.example.org` as well as a website at `https://example.org`. If you recall how webfinger queries work, the first step is to query `https://example.org/.well-known/host-meta`, which will contain an URL template. + +Therefore, the easiest way to configure `example.org` is to redirect `/.well-known/host-meta` to `pleroma.example.org`. + +With nginx, it would be as simple as adding: + +```nginx +location = /.well-known/host-meta { + return 301 https://pleroma.example.org$request_uri; +} +``` + +in example.org's server block. diff --git a/docs/configuration/howto_database_config.md b/docs/configuration/howto_database_config.md index ae1462f9b..e5af9097a 100644 --- a/docs/configuration/howto_database_config.md +++ b/docs/configuration/howto_database_config.md @@ -59,7 +59,7 @@ The configuration of Pleroma has traditionally been managed with a config file, Here is an example of a server config stripped down after migration: ``` - use Mix.Config + import Config config :pleroma, Pleroma.Web.Endpoint, url: [host: "cool.pleroma.site", scheme: "https", port: 443] diff --git a/docs/configuration/mrf.md b/docs/configuration/mrf.md index 5618634a2..a31c26b9c 100644 --- a/docs/configuration/mrf.md +++ b/docs/configuration/mrf.md @@ -55,18 +55,18 @@ Servers should be configured as lists. ### Example -This example will enable `SimplePolicy`, block media from `illegalporn.biz`, mark media as NSFW from `porn.biz` and `porn.business`, reject messages from `spam.com`, remove messages from `spam.university` from the federated timeline and block reports (flags) from `whiny.whiner`: +This example will enable `SimplePolicy`, block media from `illegalporn.biz`, mark media as NSFW from `porn.biz` and `porn.business`, reject messages from `spam.com`, remove messages from `spam.university` from the federated timeline and block reports (flags) from `whiny.whiner`. We also give a reason why the moderation was done: ```elixir config :pleroma, :mrf, policies: [Pleroma.Web.ActivityPub.MRF.SimplePolicy] config :pleroma, :mrf_simple, - media_removal: ["illegalporn.biz"], - media_nsfw: ["porn.biz", "porn.business"], - reject: ["spam.com"], - federated_timeline_removal: ["spam.university"], - report_removal: ["whiny.whiner"] + media_removal: [{"illegalporn.biz", "Media can contain illegal contant"}], + media_nsfw: [{"porn.biz", "unmarked nsfw media"}, {"porn.business", "A lot of unmarked nsfw media"}], + reject: [{"spam.com", "They keep spamming our users"}], + federated_timeline_removal: [{"spam.university", "Annoying low-quality posts who otherwise fill up TWKN"}], + report_removal: [{"whiny.whiner", "Keep spamming us with irrelevant reports"}] ``` ### Use with Care diff --git a/docs/development/API/admin_api.md b/docs/development/API/admin_api.md index 8f855d251..f6e9f7d2a 100644 --- a/docs/development/API/admin_api.md +++ b/docs/development/API/admin_api.md @@ -261,6 +261,46 @@ Note: Available `:permission_group` is currently moderator and admin. 404 is ret } ``` +## `PATCH /api/v1/pleroma/admin/users/suggest` + +### Suggest a user + +Adds the user(s) to follower recommendations. + +- Params: + - `nicknames`: nicknames array +- Response: + +```json +{ + users: [ + { + // user object + } + ] +} +``` + +## `PATCH /api/v1/pleroma/admin/users/unsuggest` + +### Unsuggest a user + +Removes the user(s) from follower recommendations. + +- Params: + - `nicknames`: nicknames array +- Response: + +```json +{ + users: [ + { + // user object + } + ] +} +``` + ## `GET /api/v1/pleroma/admin/users/:nickname_or_id` ### Retrive the details of a user @@ -319,6 +359,22 @@ Note: Available `:permission_group` is currently moderator and admin. 404 is ret } ``` +## `DELETE /api/v1/pleroma/admin/instances/:instance` + +### Delete all users and activities from a remote instance + +Note: this will trigger a job to remove instance content in the background. +It may take some time. + +- Params: + - `instance`: remote instance host +- Response: + - The `instance` name as a string + +```json +"lain.com" +``` + ## `GET /api/v1/pleroma/admin/statuses` ### Retrives all latest statuses @@ -1008,7 +1064,6 @@ List of settings which support only full update by key: ```elixir @full_key_update [ {:pleroma, :ecto_repos}, - {:quack, :meta}, {:mime, :types}, {:cors_plug, [:max_age, :methods, :expose, :headers]}, {:auto_linker, :opts}, @@ -1028,18 +1083,18 @@ List of settings which support only full update by subkey: ] ``` -*Settings without explicit key must be sended in separate config object params.* +*Settings without explicit key must be sent in separate config object params.* ```elixir -config :quack, - level: :debug, - meta: [:all], +config :foo, + bar: :baz, + meta: [:data], ... ``` ```json { "configs": [ - {"group": ":quack", "key": ":level", "value": ":debug"}, - {"group": ":quack", "key": ":meta", "value": [":all"]}, + {"group": ":foo", "key": ":bar", "value": ":baz"}, + {"group": ":foo", "key": ":meta", "value": [":data"]}, ... ] } @@ -1580,3 +1635,117 @@ Returns the content of the document "error": "Could not install frontend" } ``` + +## `GET /api/v1/pleroma/admin/announcements` + +### List announcements + +- Params: `offset`, `limit` + +- Response: JSON, list of announcements + +```json +[ + { + "id": "AHDp0GBdRn1EPN5HN2", + "content": "some content", + "starts_at": null, + "ends_at": null, + "all_day": false, + "published_at": "2022-03-09T02:13:05", + "reactions": [], + "statuses": [], + "tags": [], + "emojis": [], + "updated_at": "2022-03-09T02:13:05" + } +] +``` + +Note that this differs from the Mastodon API variant: Mastodon API only returns *active* announcements, while this returns all. + +## `GET /api/v1/pleroma/admin/announcements/:id` + +### Display one announcement + +- Response: JSON, one announcement + +```json +{ + "id": "AHDp0GBdRn1EPN5HN2", + "content": "some content", + "starts_at": null, + "ends_at": null, + "all_day": false, + "published_at": "2022-03-09T02:13:05", + "reactions": [], + "statuses": [], + "tags": [], + "emojis": [], + "updated_at": "2022-03-09T02:13:05" +} +``` + +## `POST /api/v1/pleroma/admin/announcements` + +### Create an announcement + +- Params: + - `content`: string, required, announcement content + - `starts_at`: datetime, optional, default to null, the time when the announcement will become active (displayed to users); if it is null, the announcement will be active immediately + - `ends_at`: datetime, optional, default to null, the time when the announcement will become inactive (no longer displayed to users); if it is null, the announcement will be active until an admin deletes it + - `all_day`: boolean, optional, default to false, tells the client whether to only display dates for `starts_at` and `ends_at` + +- Response: JSON, created announcement + +```json +{ + "id": "AHDp0GBdRn1EPN5HN2", + "content": "some content", + "starts_at": null, + "ends_at": null, + "all_day": false, + "published_at": "2022-03-09T02:13:05", + "reactions": [], + "statuses": [], + "tags": [], + "emojis": [], + "updated_at": "2022-03-09T02:13:05" +} +``` + +## `PATCH /api/v1/pleroma/admin/announcements/:id` + +### Change an announcement + +- Params: same as `POST /api/v1/pleroma/admin/announcements`, except no param is required. + +- Updates the announcement according to params. Missing params are kept as-is. + +- Response: JSON, updated announcement + +```json +{ + "id": "AHDp0GBdRn1EPN5HN2", + "content": "some content", + "starts_at": null, + "ends_at": null, + "all_day": false, + "published_at": "2022-03-09T02:13:05", + "reactions": [], + "statuses": [], + "tags": [], + "emojis": [], + "updated_at": "2022-03-09T02:13:05" +} +``` + +## `DELETE /api/v1/pleroma/admin/announcements/:id` + +### Delete an announcement + +- Response: JSON, empty object + +```json +{} +``` diff --git a/docs/development/API/differences_in_mastoapi_responses.md b/docs/development/API/differences_in_mastoapi_responses.md index 6c1ecb559..4007c63c8 100644 --- a/docs/development/API/differences_in_mastoapi_responses.md +++ b/docs/development/API/differences_in_mastoapi_responses.md @@ -40,6 +40,10 @@ Has these additional fields under the `pleroma` object: - `parent_visible`: If the parent of this post is visible to the user or not. - `pinned_at`: a datetime (iso8601) when status was pinned, `null` otherwise. +The `GET /api/v1/statuses/:id/source` endpoint additionally has the following attributes: + +- `content_type`: The content type of the status source. + ## Scheduled statuses Has these additional fields in `params`: @@ -241,6 +245,7 @@ Additional parameters can be added to the JSON body/Form data: - `discoverable` - if true, external services (search bots) etc. are allowed to index / list the account (regardless of this setting, user will still appear in regular search results). - `actor_type` - the type of this account. - `accepts_chat_messages` - if false, this account will reject all chat messages. +- `language` - user's preferred language for receiving emails (digest, confirmation, etc.) All images (avatar, banner and background) can be reset to the default by sending an empty string ("") instead of a file. @@ -292,6 +297,7 @@ Has these additional parameters (which are the same as in Pleroma-API): - `captcha_token`: optional, contains provider-specific captcha token - `captcha_answer_data`: optional, contains provider-specific captcha data - `token`: invite token required when the registrations aren't public. +- `language`: optional, user's preferred language for receiving emails (digest, confirmation, etc.), default to the language set in the `userLanguage` cookies or `Accept-Language` header. ## Instance @@ -377,18 +383,6 @@ Pleroma is generally compatible with the Mastodon 2.7.2 API, but some newer feat - `GET /api/v1/identity_proofs`: Returns an empty array, `[]` -### Endorsements - -*Added in Mastodon 2.5.0* - -- `GET /api/v1/endorsements`: Returns an empty array, `[]` - -### Profile directory - -*Added in Mastodon 3.0.0* - -- `GET /api/v1/directory`: Returns HTTP 404 - ### Featured tags *Added in Mastodon 3.0.0* diff --git a/docs/development/API/nodeinfo.md b/docs/development/API/nodeinfo.md new file mode 100644 index 000000000..0f998a1e6 --- /dev/null +++ b/docs/development/API/nodeinfo.md @@ -0,0 +1,347 @@ +# Nodeinfo + +See also [the Nodeinfo standard](https://nodeinfo.diaspora.software/). + +## `/.well-known/nodeinfo` +### The well-known path +* Method: `GET` +* Authentication: not required +* Params: none +* Response: JSON +* Example response: +```json +{ + "links":[ + { + "href":"https://example.com/nodeinfo/2.0.json", + "rel":"http://nodeinfo.diaspora.software/ns/schema/2.0" + }, + { + "href":"https://example.com/nodeinfo/2.1.json", + "rel":"http://nodeinfo.diaspora.software/ns/schema/2.1" + } + ] +} +``` + +## `/nodeinfo/2.0.json` +### Nodeinfo 2.0 +* Method: `GET` +* Authentication: not required +* Params: none +* Response: JSON +* Example response: +```json +{ + "metadata":{ + "accountActivationRequired":false, + "features":[ + "pleroma_api", + "mastodon_api", + "mastodon_api_streaming", + "polls", + "pleroma_explicit_addressing", + "shareable_emoji_packs", + "multifetch", + "pleroma:api/v1/notifications:include_types_filter", + "chat", + "shout", + "relay", + "pleroma_emoji_reactions", + "pleroma_chat_messages" + ], + "federation":{ + "enabled":true, + "exclusions":false, + "mrf_hashtag":{ + "federated_timeline_removal":[ + + ], + "reject":[ + + ], + "sensitive":[ + "nsfw" + ] + }, + "mrf_object_age":{ + "actions":[ + "delist", + "strip_followers" + ], + "threshold":604800 + }, + "mrf_policies":[ + "ObjectAgePolicy", + "TagPolicy", + "HashtagPolicy" + ], + "quarantined_instances":[ + + ] + }, + "fieldsLimits":{ + "maxFields":10, + "maxRemoteFields":20, + "nameLength":512, + "valueLength":2048 + }, + "invitesEnabled":false, + "mailerEnabled":false, + "nodeDescription":"Pleroma: An efficient and flexible fediverse server", + "nodeName":"Example", + "pollLimits":{ + "max_expiration":31536000, + "max_option_chars":200, + "max_options":20, + "min_expiration":0 + }, + "postFormats":[ + "text/plain", + "text/html", + "text/markdown", + "text/bbcode" + ], + "private":false, + "restrictedNicknames":[ + ".well-known", + "~", + "about", + "activities", + "api", + "auth", + "check_password", + "dev", + "friend-requests", + "inbox", + "internal", + "main", + "media", + "nodeinfo", + "notice", + "oauth", + "objects", + "ostatus_subscribe", + "pleroma", + "proxy", + "push", + "registration", + "relay", + "settings", + "status", + "tag", + "user-search", + "user_exists", + "users", + "web", + "verify_credentials", + "update_credentials", + "relationships", + "search", + "confirmation_resend", + "mfa" + ], + "skipThreadContainment":true, + "staffAccounts":[ + "https://example.com/users/admin", + "https://example.com/users/staff" + ], + "suggestions":{ + "enabled":false + }, + "uploadLimits":{ + "avatar":2000000, + "background":4000000, + "banner":4000000, + "general":16000000 + } + }, + "openRegistrations":true, + "protocols":[ + "activitypub" + ], + "services":{ + "inbound":[ + + ], + "outbound":[ + + ] + }, + "software":{ + "name":"pleroma", + "version":"2.4.1" + }, + "usage":{ + "localPosts":27, + "users":{ + "activeHalfyear":129, + "activeMonth":70, + "total":235 + } + }, + "version":"2.0" +} +``` + +## `/nodeinfo/2.1.json` +### Nodeinfo 2.1 +* Method: `GET` +* Authentication: not required +* Params: none +* Response: JSON +* Example response: +```json +{ + "metadata":{ + "accountActivationRequired":false, + "features":[ + "pleroma_api", + "mastodon_api", + "mastodon_api_streaming", + "polls", + "pleroma_explicit_addressing", + "shareable_emoji_packs", + "multifetch", + "pleroma:api/v1/notifications:include_types_filter", + "chat", + "shout", + "relay", + "pleroma_emoji_reactions", + "pleroma_chat_messages" + ], + "federation":{ + "enabled":true, + "exclusions":false, + "mrf_hashtag":{ + "federated_timeline_removal":[ + + ], + "reject":[ + + ], + "sensitive":[ + "nsfw" + ] + }, + "mrf_object_age":{ + "actions":[ + "delist", + "strip_followers" + ], + "threshold":604800 + }, + "mrf_policies":[ + "ObjectAgePolicy", + "TagPolicy", + "HashtagPolicy" + ], + "quarantined_instances":[ + + ] + }, + "fieldsLimits":{ + "maxFields":10, + "maxRemoteFields":20, + "nameLength":512, + "valueLength":2048 + }, + "invitesEnabled":false, + "mailerEnabled":false, + "nodeDescription":"Pleroma: An efficient and flexible fediverse server", + "nodeName":"Example", + "pollLimits":{ + "max_expiration":31536000, + "max_option_chars":200, + "max_options":20, + "min_expiration":0 + }, + "postFormats":[ + "text/plain", + "text/html", + "text/markdown", + "text/bbcode" + ], + "private":false, + "restrictedNicknames":[ + ".well-known", + "~", + "about", + "activities", + "api", + "auth", + "check_password", + "dev", + "friend-requests", + "inbox", + "internal", + "main", + "media", + "nodeinfo", + "notice", + "oauth", + "objects", + "ostatus_subscribe", + "pleroma", + "proxy", + "push", + "registration", + "relay", + "settings", + "status", + "tag", + "user-search", + "user_exists", + "users", + "web", + "verify_credentials", + "update_credentials", + "relationships", + "search", + "confirmation_resend", + "mfa" + ], + "skipThreadContainment":true, + "staffAccounts":[ + "https://example.com/users/admin", + "https://example.com/users/staff" + ], + "suggestions":{ + "enabled":false + }, + "uploadLimits":{ + "avatar":2000000, + "background":4000000, + "banner":4000000, + "general":16000000 + } + }, + "openRegistrations":true, + "protocols":[ + "activitypub" + ], + "services":{ + "inbound":[ + + ], + "outbound":[ + + ] + }, + "software":{ + "name":"pleroma", + "repository":"https://git.pleroma.social/pleroma/pleroma", + "version":"2.4.1" + }, + "usage":{ + "localPosts":27, + "users":{ + "activeHalfyear":129, + "activeMonth":70, + "total":235 + } + }, + "version":"2.1" +} +``` + diff --git a/docs/development/API/pleroma_api.md b/docs/development/API/pleroma_api.md index 8f6422da0..47fcb7479 100644 --- a/docs/development/API/pleroma_api.md +++ b/docs/development/API/pleroma_api.md @@ -37,7 +37,7 @@ The `/api/v1/pleroma/*` path is backwards compatible with `/api/pleroma/*` (`/ap ``` * Note: Same data as Mastodon API’s `/api/v1/custom_emojis` but in a different format -## `/api/v1/pleroma/follow_import` +## `/api/pleroma/follow_import` ### Imports your follows, for example from a Mastodon CSV file. * Method: `POST` * Authentication: required @@ -46,7 +46,7 @@ The `/api/v1/pleroma/*` path is backwards compatible with `/api/pleroma/*` (`/ap * Response: HTTP 200 on success, 500 on error * Note: Users that can't be followed are silently skipped. -## `/api/v1/pleroma/blocks_import` +## `/api/pleroma/blocks_import` ### Imports your blocks. * Method: `POST` * Authentication: required @@ -54,7 +54,7 @@ The `/api/v1/pleroma/*` path is backwards compatible with `/api/pleroma/*` (`/ap * `list`: STRING or FILE containing a whitespace-separated list of accounts to block * Response: HTTP 200 on success, 500 on error -## `/api/v1/pleroma/mutes_import` +## `/api/pleroma/mutes_import` ### Imports your mutes. * Method: `POST` * Authentication: required @@ -70,7 +70,7 @@ The `/api/v1/pleroma/*` path is backwards compatible with `/api/pleroma/*` (`/ap * Response: Provider specific JSON, the only guaranteed parameter is `type` * Example response: `{"type": "kocaptcha", "token": "whatever", "url": "https://captcha.kotobank.ch/endpoint", "seconds_valid": 300}` -## `/api/v1/pleroma/delete_account` +## `/api/pleroma/delete_account` ### Delete an account * Method `POST` * Authentication: required @@ -79,7 +79,7 @@ The `/api/v1/pleroma/*` path is backwards compatible with `/api/pleroma/*` (`/ap * Response: JSON. Returns `{"status": "success"}` if the deletion was successful, `{"error": "[error message]"}` otherwise * Example response: `{"error": "Invalid password."}` -## `/api/v1/pleroma/disable_account` +## `/api/pleroma/disable_account` ### Disable an account * Method `POST` * Authentication: required @@ -88,21 +88,22 @@ The `/api/v1/pleroma/*` path is backwards compatible with `/api/pleroma/*` (`/ap * Response: JSON. Returns `{"status": "success"}` if the account was successfully disabled, `{"error": "[error message]"}` otherwise * Example response: `{"error": "Invalid password."}` -## `/api/v1/pleroma/accounts/mfa` +## `/api/pleroma/accounts/mfa` #### Gets current MFA settings * method: `GET` * Authentication: required * OAuth scope: `read:security` -* Response: JSON. Returns `{"enabled": "false", "totp": false }` +* Response: JSON. Returns `{"settings": {"enabled": "false", "totp": false }}` +* Note: `enabled` is whether multi-factor auth is enabled for the user in general, while `totp` is one type of MFA. -## `/api/v1/pleroma/accounts/mfa/setup/totp` +## `/api/pleroma/accounts/mfa/setup/totp` #### Pre-setup the MFA/TOTP method * method: `GET` * Authentication: required * OAuth scope: `write:security` * Response: JSON. Returns `{"key": [secret_key], "provisioning_uri": "[qr code uri]" }` when successful, otherwise returns HTTP 422 `{"error": "error_msg"}` -## `/api/v1/pleroma/accounts/mfa/confirm/totp` +## `/api/pleroma/accounts/mfa/confirm/totp` #### Confirms & enables MFA/TOTP support for user account. * method: `POST` * Authentication: required @@ -113,7 +114,7 @@ The `/api/v1/pleroma/*` path is backwards compatible with `/api/pleroma/*` (`/ap * Response: JSON. Returns `{}` if the enable was successful, HTTP 422 `{"error": "[error message]"}` otherwise -## `/api/v1/pleroma/accounts/mfa/totp` +## `/api/pleroma/accounts/mfa/totp` #### Disables MFA/TOTP method for user account. * method: `DELETE` * Authentication: required @@ -123,7 +124,7 @@ The `/api/v1/pleroma/*` path is backwards compatible with `/api/pleroma/*` (`/ap * Response: JSON. Returns `{}` if the disable was successful, HTTP 422 `{"error": "[error message]"}` otherwise * Example response: `{"error": "Invalid password."}` -## `/api/v1/pleroma/accounts/mfa/backup_codes` +## `/api/pleroma/accounts/mfa/backup_codes` #### Generstes backup codes MFA for user account. * method: `GET` * Authentication: required @@ -159,10 +160,12 @@ See [Admin-API](admin_api.md) "muting": false, "muting_notifications": false, "subscribing": true, + "notifying": true, "requested": false, "domain_blocking": false, "showing_reblogs": true, - "endorsed": false + "endorsed": false, + "note": "" } ``` @@ -183,10 +186,12 @@ See [Admin-API](admin_api.md) "muting": false, "muting_notifications": false, "subscribing": false, + "notifying": false, "requested": false, "domain_blocking": false, "showing_reblogs": true, - "endorsed": false + "endorsed": false, + "note": "" } ``` @@ -327,7 +332,7 @@ See [Admin-API](admin_api.md) } ``` -## `/api/v1/pleroma/change_email` +## `/api/pleroma/change_email` ### Change account email * Method `POST` * Authentication: required @@ -337,6 +342,36 @@ See [Admin-API](admin_api.md) * Response: JSON. Returns `{"status": "success"}` if the change was successful, `{"error": "[error message]"}` otherwise * Note: Currently, Mastodon has no API for changing email. If they add it in future it might be incompatible with Pleroma. +## `/api/pleroma/move_account` +### Move account +* Method `POST` +* Authentication: required +* Params: + * `password`: user's password + * `target_account`: the nickname of the target account (e.g. `foo@example.org`) +* Response: JSON. Returns `{"status": "success"}` if the change was successful, `{"error": "[error message]"}` otherwise +* Note: This endpoint emits a `Move` activity to all followers of the current account. Some remote servers will automatically unfollow the current account and follow the target account upon seeing this, but this depends on the remote server implementation and cannot be guaranteed. For local followers , they will automatically unfollow and follow if and only if they have set the `allow_following_move` preference ("Allow auto-follow when following account moves"). + +## `/api/pleroma/aliases` +### Get aliases of the current account +* Method `GET` +* Authentication: required +* Response: JSON. Returns `{"aliases": [alias, ...]}`, where `alias` is the nickname of an alias, e.g. `foo@example.org`. + +### Add alias to the current account +* Method `PUT` +* Authentication: required +* Params: + * `alias`: the nickname of the alias to add, e.g. `foo@example.org`. +* Response: JSON. Returns `{"status": "success"}` if the change was successful, `{"error": "[error message]"}` otherwise + +### Delete alias from the current account +* Method `DELETE` +* Authentication: required +* Params: + * `alias`: the nickname of the alias to delete, e.g. `foo@example.org`. +* Response: JSON. Returns `{"status": "success"}` if the change was successful, `{"error": "[error message]"}` otherwise + # Pleroma Conversations Pleroma Conversations have the same general structure that Mastodon Conversations have. The behavior differs in the following ways when using these endpoints: @@ -655,3 +690,77 @@ Emoji reactions work a lot like favourites do. They make it possible to react to "url": "https://example.com/media/backups/archive-foobar-20200910T161803-QUhx6VYDRQ2wfV0SdA2Pfj_2CLM_ATUlw-D5l5TJf4Q.zip" }] ``` + +## `GET /api/oauth_tokens` +### Retrieve a list of active sessions for the user +* Method: `GET` +* Authentication: required +* Params: none +* Response: JSON +* Example response: + +```json +[ + { + "app_name": "Pleroma FE", + "id": 9275, + "valid_until": "2121-11-24T15:51:08.234234" + }, + { + "app_name": "Patron", + "id": 8805, + "valid_until": "2121-10-26T18:09:59.857150" + }, + { + "app_name": "Soapbox FE", + "id": 9727, + "valid_until": "2121-12-25T16:52:39.692877" + } +] +``` + +## `DELETE /api/oauth_tokens/:id` +### Revoke a user session by its ID +* Method: `DELETE` +* Authentication: required +* Params: none +* Response: HTTP 200 on success, 500 on error + +## `/api/v1/pleroma/settings/:app` +### Gets settings for some application +* Method `GET` +* Authentication: `read:accounts` + +* Response: JSON. The settings for that application, or empty object if there is none. +* Example response: +```json +{ + "some key": "some value" +} +``` + +### Updates settings for some application +* Method `PATCH` +* Authentication: `write:accounts` +* Request body: JSON object. The object will be merged recursively with old settings. If some field is set to null, it is removed. +* Example request: +```json +{ + "some key": "some value", + "key to remove": null, + "nested field": { + "some key": "some value", + "key to remove": null + } +} +``` +* Response: JSON. Updated (merged) settings for that application. +* Example response: +```json +{ + "some key": "some value", + "nested field": { + "some key": "some value", + } +} +``` diff --git a/docs/development/setting_up_a_gitlab_runner.md b/docs/development/setting_up_a_gitlab_runner.md new file mode 100644 index 000000000..88beb82f2 --- /dev/null +++ b/docs/development/setting_up_a_gitlab_runner.md @@ -0,0 +1,9 @@ +# Setting up a Gitlab-runner + +When you push changes, a pipeline will start some automated jobs. These are done with so called [runners](https://docs.gitlab.com/runner/), services that run somewhere on a server and run these automated jobs. These jobs typically run tests and should pass. If not, you probably need to fix something. + +Generally, Pleroma provides a runner, so you don't need to set up your own. However, if for whatever reason you want to set up your own, here's some high level instructions. + +1. We use docker to run the jobs, so you should install that. For Debian, you need to allow non-free packages in the [source list](https://wiki.debian.org/SourcesList). Then you can install docker with `apt install docker-compose`. +2. You can [install](https://docs.gitlab.com/runner/install/index.html) and [configure](https://docs.gitlab.com/runner/register/index.html) a Gitlab-runner. It's probably easiest to install from the packages, but there are other options as well. +3. When registering the runner, you'll need some values. You can find them in the project under your own name. Choose "Settings", "CI/CD", and then expand "Runners". For executor you can choose "docker". For default image, you can use the image used in (although it shouldn't matter much). diff --git a/docs/index.md b/docs/index.md index 80c5d2631..3799a0099 100644 --- a/docs/index.md +++ b/docs/index.md @@ -16,11 +16,4 @@ Installation instructions can be found in the installation section of these docs Great! Now you can explore the fediverse! Open the login page for your Pleroma instance (e.g. ) and login with your username and password. (If you don't have an account yet, click on Register) ### Pleroma-FE -The default front-end used by Pleroma is Pleroma-FE. You can find more information on what it is and how to use it in the [Introduction to Pleroma-FE](../frontend). - -### Mastodon interface -If the Pleroma interface isn't your thing, or you're just trying something new but you want to keep using the familiar Mastodon interface, we got that too! -Just add a "/web" after your instance url (e.g. ) and you'll end on the Mastodon web interface, but with a Pleroma backend! MAGIC! -The Mastodon interface is from the Glitch-soc fork. For more information on the Mastodon interface you can check the [Mastodon](https://docs.joinmastodon.org/) and [Glitch-soc](https://glitch-soc.github.io/docs/) documentation. - -Remember, what you see is only the frontend part of Mastodon, the backend is still Pleroma. +The default front-end used by Pleroma is Pleroma-FE. You can find more information on what it is and how to use it in the [Introduction to Pleroma-FE](../frontend). \ No newline at end of file diff --git a/docs/installation/generic_dependencies.include b/docs/installation/generic_dependencies.include index baed19de0..dcaacfdfd 100644 --- a/docs/installation/generic_dependencies.include +++ b/docs/installation/generic_dependencies.include @@ -1,7 +1,7 @@ ## Required dependencies * PostgreSQL 9.6+ -* Elixir 1.9+ +* Elixir 1.10+ * Erlang OTP 22.2+ * git * file / libmagic @@ -9,7 +9,7 @@ * GNU make * CMake -## Optionnal dependencies +## Optional dependencies * ImageMagick * FFmpeg diff --git a/docs/installation/migrating_from_source_otp_en.md b/docs/installation/migrating_from_source_otp_en.md index e4a01d8db..f6f23400a 100644 --- a/docs/installation/migrating_from_source_otp_en.md +++ b/docs/installation/migrating_from_source_otp_en.md @@ -5,7 +5,7 @@ In this guide we cover how you can migrate from a from source installation to one using OTP releases. ## Pre-requisites -You will be running commands as root. If you aren't root already, please elevate your priviledges by executing `sudo su`/`su`. +You will be running commands as root. If you aren't root already, please elevate your privileges by executing `sudo su`/`su`. The system needs to have `curl` and `unzip` installed for downloading and unpacking release builds. diff --git a/docs/installation/nixos_en.md b/docs/installation/nixos_en.md new file mode 100644 index 000000000..f3c4988b1 --- /dev/null +++ b/docs/installation/nixos_en.md @@ -0,0 +1,15 @@ +# Installing on NixOS + +NixOS contains a source build package of pleroma and a NixOS module to install it. +For installation add this to your configuration.nix and add a config.exs next to it: +```nix + services.pleroma = { + enable = true; + configs = [ (lib.fileContents ./config.exs) ]; + secretConfigFile = "/var/lib/pleroma/secret.exs"; + }; +``` + +## Questions +The nix community uses matrix for communication: [#nix:nixos.org](https://matrix.to/#/#nix:nixos.org) + diff --git a/docs/installation/optional/media_graphics_packages.md b/docs/installation/optional/media_graphics_packages.md index cb3d71188..de402d1c4 100644 --- a/docs/installation/optional/media_graphics_packages.md +++ b/docs/installation/optional/media_graphics_packages.md @@ -1,9 +1,9 @@ # Optional software packages needed for specific functionality For specific Pleroma functionality (which is disabled by default) some or all of the below packages are required: - * `ImageMagic` - * `ffmpeg` - * `exiftool` + * `ImageMagic` + * `ffmpeg` + * `exiftool` Please refer to documentation in `docs/installation` on how to install them on specific OS. @@ -14,19 +14,20 @@ Note: the packages are not required with the current default settings of Pleroma `ImageMagick` is a set of tools to create, edit, compose, or convert bitmap images. It is required for the following Pleroma features: - * `Pleroma.Upload.Filters.Mogrify`, `Pleroma.Upload.Filters.Mogrifun` upload filters (related config: `Plaroma.Upload/filters` in `config/config.exs`) - * Media preview proxy for still images (related config: `media_preview_proxy/enabled` in `config/config.exs`) + * `Pleroma.Upload.Filters.Mogrify`, `Pleroma.Upload.Filters.Mogrifun` upload filters (related config: `Plaroma.Upload/filters` in `config/config.exs`) + * Media preview proxy for still images (related config: `media_preview_proxy/enabled` in `config/config.exs`) ## `ffmpeg` `ffmpeg` is software to record, convert and stream audio and video. It is required for the following Pleroma features: - * Media preview proxy for videos (related config: `media_preview_proxy/enabled` in `config/config.exs`) + * Media preview proxy for videos (related config: `media_preview_proxy/enabled` in `config/config.exs`) ## `exiftool` `exiftool` is media files metadata reader/writer. It is required for the following Pleroma features: - * `Pleroma.Upload.Filters.Exiftool` upload filter (related config: `Plaroma.Upload/filters` in `config/config.exs`) + * `Pleroma.Upload.Filters.Exiftool.StripLocation` upload filter (related config: `Plaroma.Upload/filters` in `config/config.exs`) + * `Pleroma.Upload.Filters.Exiftool.ReadDescription` upload filter (related config: `Plaroma.Upload/filters` in `config/config.exs`) diff --git a/docs/installation/otp_en.md b/docs/installation/otp_en.md index 0861a8157..8c02201e6 100644 --- a/docs/installation/otp_en.md +++ b/docs/installation/otp_en.md @@ -8,7 +8,7 @@ This guide covers a installation using an OTP release. To install Pleroma from s * A machine running Linux with GNU (e.g. Debian, Ubuntu) or musl (e.g. Alpine) libc and `x86_64`, `aarch64` or `armv7l` CPU, you have root access to. If you are not sure if it's compatible see [Detecting flavour section](#detecting-flavour) below * A (sub)domain pointed to the machine -You will be running commands as root. If you aren't root already, please elevate your priviledges by executing `sudo su`/`su`. +You will be running commands as root. If you aren't root already, please elevate your privileges by executing `sudo su`/`su`. While in theory OTP releases are possbile to install on any compatible machine, for the sake of simplicity this guide focuses only on Debian/Ubuntu and Alpine. diff --git a/docs/installation/yunohost_en.md b/docs/installation/yunohost_en.md new file mode 100644 index 000000000..4c34e85d5 --- /dev/null +++ b/docs/installation/yunohost_en.md @@ -0,0 +1,9 @@ +# Installing on Yunohost + +[YunoHost](https://yunohost.org) is a server operating system aimed at self-hosting. The YunoHost community maintains a package of Pleroma which allows you to install Pleroma on YunoHost. You can install it via the normal way through the admin web interface, or through the CLI. More information can be found at [the repo of the package](https://github.com/YunoHost-Apps/pleroma_ynh). + +## Questions + +Questions and problems related to the YunoHost parts can be done through the [regular YunoHost channels](https://yunohost.org/en/help). + +For questions about Pleroma, ask in [#pleroma:libera.chat](https://matrix.to/#/#pleroma:libera.chat) via Matrix or **#pleroma** on **libera.chat** via IRC. diff --git a/elixir_buildpack.config b/elixir_buildpack.config index 946408c12..1102e7145 100644 --- a/elixir_buildpack.config +++ b/elixir_buildpack.config @@ -1,2 +1,2 @@ -elixir_version=1.9.4 +elixir_version=1.10.4 erlang_version=22.3.4.1 diff --git a/installation/caddyfile-pleroma.example b/installation/caddyfile-pleroma.example index 7985d9c67..cc7dda011 100644 --- a/installation/caddyfile-pleroma.example +++ b/installation/caddyfile-pleroma.example @@ -5,34 +5,13 @@ # 2. Copy this section into your Caddyfile and restart Caddy. example.tld { - log /var/log/caddy/pleroma_access.log - errors /var/log/caddy/pleroma_error.log + log { + output file /var/log/caddy/pleroma.log + } - gzip + encode gzip # this is explicitly IPv4 since Pleroma.Web.Endpoint binds on IPv4 only # and `localhost.` resolves to [::0] on some systems: see issue #930 - proxy / 127.0.0.1:4000 { - websocket - transparent - } - - tls { - # Remove the rest of the lines in here, if you want to support older devices - key_type p256 - ciphers ECDHE-ECDSA-WITH-CHACHA20-POLY1305 ECDHE-RSA-WITH-CHACHA20-POLY1305 ECDHE-ECDSA-AES256-GCM-SHA384 ECDHE-RSA-AES256-GCM-SHA384 ECDHE-ECDSA-AES128-GCM-SHA256 ECDHE-RSA-AES128-GCM-SHA256 - } - - # If you do not want to use the mediaproxy function, remove these lines. - # To use this directive, you need the http.cache plugin for Caddy. - cache { - match_path /media - default_max_age 720m - } - - cache { - match_path /proxy - default_max_age 720m - } - # Stop removing lines here. + reverse_proxy 127.0.0.1:4000 } diff --git a/installation/download-mastofe-build.sh b/installation/download-mastofe-build.sh deleted file mode 100755 index ee353c48c..000000000 --- a/installation/download-mastofe-build.sh +++ /dev/null @@ -1,48 +0,0 @@ -#!/bin/sh -# Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors -# SPDX-License-Identifier: AGPL-3.0-only -project_id="74" -project_branch="rebase/glitch-soc" -static_dir="instance/static" -# For bundling: -# project_branch="pleroma" -# static_dir="priv/static" - -if [ ! -d "${static_dir}" ] -then - echo "Error: ${static_dir} directory is missing, are you sure you are running this script at the root of pleroma’s repository?" - exit 1 -fi - -last_modified="$(curl --fail -s -I 'https://git.pleroma.social/api/v4/projects/'${project_id}'/jobs/artifacts/'${project_branch}'/download?job=build' | grep '^Last-Modified:' | cut -d: -f2-)" - -echo "branch:${project_branch}" -echo "Last-Modified:${last_modified}" - -artifact="mastofe.zip" - -if [ "${last_modified}x" = "x" ] -then - echo "ERROR: Couldn't get the modification date of the latest build archive, maybe it expired, exiting..." - exit 1 -fi - -if [ -e mastofe.timestamp ] && [ "$(cat mastofe.timestamp)" = "${last_modified}" ] -then - echo "MastoFE is up-to-date, exiting..." - exit 0 -fi - -curl --fail -c - "https://git.pleroma.social/api/v4/projects/${project_id}/jobs/artifacts/${project_branch}/download?job=build" -o "${artifact}" || exit - -# TODO: Update the emoji as well -rm -fr "${static_dir}/sw.js" "${static_dir}/packs" || exit -unzip -q "${artifact}" || exit - -cp public/assets/sw.js "${static_dir}/sw.js" || exit -cp -r public/packs "${static_dir}/packs" || exit - -echo "${last_modified}" > mastofe.timestamp -rm -fr public -rm -i "${artifact}" diff --git a/installation/pleroma-mongooseim.cfg b/installation/pleroma-mongooseim.cfg index 576f83541..3ecba5641 100755 --- a/installation/pleroma-mongooseim.cfg +++ b/installation/pleroma-mongooseim.cfg @@ -466,7 +466,7 @@ %% == PostgreSQL == %% {rdbms, global, default, [{workers, 10}], -%% [{server, {pgsql, "server", 5432, "database", "username", "password"}}]}, +%% [{server, {pgsql, "server", "port", "database", "username", "password"}}]}, %% == ODBC (MSSQL) == %% {rdbms, global, default, [{workers, 10}], diff --git a/installation/pleroma.nginx b/installation/pleroma.nginx index 9890cb2b1..273cfb390 100644 --- a/installation/pleroma.nginx +++ b/installation/pleroma.nginx @@ -81,6 +81,19 @@ server { proxy_pass http://phoenix; } + # Uncomment this if you want notice compatibility routes for frontends like Soapbox. + # location ~ ^/@[^/]+/([^/]+)$ { + # proxy_pass http://phoenix/notice/$1; + # } + # + # location ~ ^/@[^/]+/posts/([^/]+)$ { + # proxy_pass http://phoenix/notice/$1; + # } + # + # location ~ ^/[^/]+/status/([^/]+)$ { + # proxy_pass http://phoenix/notice/$1; + # } + location ~ ^/(media|proxy) { proxy_cache pleroma_media_cache; slice 1m; diff --git a/installation/pleroma.vcl b/installation/pleroma.vcl index 4752510ea..4eb2f3cfa 100644 --- a/installation/pleroma.vcl +++ b/installation/pleroma.vcl @@ -1,4 +1,5 @@ # Recommended varnishncsa logging format: '%h %l %u %t "%m %{X-Forwarded-Proto}i://%{Host}i%U%q %H" %s %b "%{Referer}i" "%{User-agent}i"' +# Please use Varnish 7.0+ for proper Range Requests / Chunked encoding support vcl 4.1; import std; @@ -22,11 +23,6 @@ sub vcl_recv { set req.http.X-Forwarded-Proto = "https"; } - # CHUNKED SUPPORT - if (req.http.Range ~ "bytes=") { - set req.http.x-range = req.http.Range; - } - # Pipe if WebSockets request is coming through if (req.http.upgrade ~ "(?i)websocket") { return (pipe); @@ -35,9 +31,9 @@ sub vcl_recv { # Allow purging of the cache if (req.method == "PURGE") { if (!client.ip ~ purge) { - return(synth(405,"Not allowed.")); + return (synth(405,"Not allowed.")); } - return(purge); + return (purge); } } @@ -53,17 +49,11 @@ sub vcl_backend_response { return (retry); } - # CHUNKED SUPPORT - if (bereq.http.x-range ~ "bytes=" && beresp.status == 206) { - set beresp.ttl = 10m; - set beresp.http.CR = beresp.http.content-range; - } - # Bypass cache for large files # 50000000 ~ 50MB if (std.integer(beresp.http.content-length, 0) > 50000000) { set beresp.uncacheable = true; - return(deliver); + return (deliver); } # Don't cache objects that require authentication @@ -94,7 +84,7 @@ sub vcl_synth { if (resp.status == 750) { set resp.status = 301; set resp.http.Location = req.http.x-redir; - return(deliver); + return (deliver); } } @@ -106,25 +96,12 @@ sub vcl_pipe { } } -sub vcl_hash { - # CHUNKED SUPPORT - if (req.http.x-range ~ "bytes=") { - hash_data(req.http.x-range); - unset req.http.Range; - } -} - sub vcl_backend_fetch { # Be more lenient for slow servers on the fediverse if (bereq.url ~ "^/proxy/") { set bereq.first_byte_timeout = 300s; } - # CHUNKED SUPPORT - if (bereq.http.x-range) { - set bereq.http.Range = bereq.http.x-range; - } - if (bereq.retries == 0) { # Clean up the X-Varnish-Backend-503 flag that is used internally # to mark broken backend responses that should be retried. @@ -143,14 +120,6 @@ sub vcl_backend_fetch { } } -sub vcl_deliver { - # CHUNKED SUPPORT - if (resp.http.CR) { - set resp.http.Content-Range = resp.http.CR; - unset resp.http.CR; - } -} - sub vcl_backend_error { # Retry broken backend responses. set bereq.http.X-Varnish-Backend-503 = "1"; diff --git a/lib/mix/pleroma.ex b/lib/mix/pleroma.ex index 2b6c7d6bb..2976085ba 100644 --- a/lib/mix/pleroma.ex +++ b/lib/mix/pleroma.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Mix.Pleroma do diff --git a/lib/mix/tasks/pleroma/app.ex b/lib/mix/tasks/pleroma/app.ex index 0bf7ffabc..885d071bc 100644 --- a/lib/mix/tasks/pleroma/app.ex +++ b/lib/mix/tasks/pleroma/app.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Mix.Tasks.Pleroma.App do diff --git a/lib/mix/tasks/pleroma/benchmark.ex b/lib/mix/tasks/pleroma/benchmark.ex index fdf99747a..f32492169 100644 --- a/lib/mix/tasks/pleroma/benchmark.ex +++ b/lib/mix/tasks/pleroma/benchmark.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Mix.Tasks.Pleroma.Benchmark do diff --git a/lib/mix/tasks/pleroma/config.ex b/lib/mix/tasks/pleroma/config.ex index 22502a522..3a2ea44f8 100644 --- a/lib/mix/tasks/pleroma/config.ex +++ b/lib/mix/tasks/pleroma/config.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Mix.Tasks.Pleroma.Config do @@ -286,9 +286,7 @@ defp migrate_from_db(opts) do file = File.open!(tmp_config_path) shell_info( - "Saving database configuration settings to #{tmp_config_path}. Copy it to the #{ - Path.dirname(config_path) - } manually." + "Saving database configuration settings to #{tmp_config_path}. Copy it to the #{Path.dirname(config_path)} manually." ) write_config(file, tmp_config_path, opts) @@ -306,13 +304,8 @@ defp write_config(file, path, opts) do System.cmd("mix", ["format", path]) end - if Code.ensure_loaded?(Config.Reader) do - defp config_header, do: "import Config\r\n\r\n" - defp read_file(config_file), do: Config.Reader.read_imports!(config_file) - else - defp config_header, do: "use Mix.Config\r\n\r\n" - defp read_file(config_file), do: Mix.Config.eval!(config_file) - end + defp config_header, do: "import Config\r\n\r\n" + defp read_file(config_file), do: Config.Reader.read_imports!(config_file) defp write_and_delete(config, file, delete?) do config diff --git a/lib/mix/tasks/pleroma/count_statuses.ex b/lib/mix/tasks/pleroma/count_statuses.ex index c29ea8567..c5ab8b7ab 100644 --- a/lib/mix/tasks/pleroma/count_statuses.ex +++ b/lib/mix/tasks/pleroma/count_statuses.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Mix.Tasks.Pleroma.CountStatuses do diff --git a/lib/mix/tasks/pleroma/database.ex b/lib/mix/tasks/pleroma/database.ex index a973beaa9..ed560c177 100644 --- a/lib/mix/tasks/pleroma/database.ex +++ b/lib/mix/tasks/pleroma/database.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Mix.Tasks.Pleroma.Database do @@ -154,9 +154,8 @@ def run(["ensure_expiration"]) do |> join(:inner, [a], o in Object, on: fragment( - "(?->>'id') = COALESCE((?)->'object'->> 'id', (?)->>'object')", + "(?->>'id') = associated_object_id((?))", o.data, - a.data, a.data ) ) diff --git a/lib/mix/tasks/pleroma/digest.ex b/lib/mix/tasks/pleroma/digest.ex index f34fc839e..aea9c8ac5 100644 --- a/lib/mix/tasks/pleroma/digest.ex +++ b/lib/mix/tasks/pleroma/digest.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Mix.Tasks.Pleroma.Digest do diff --git a/lib/mix/tasks/pleroma/docs.ex b/lib/mix/tasks/pleroma/docs.ex index 45cca1c74..32c02a512 100644 --- a/lib/mix/tasks/pleroma/docs.ex +++ b/lib/mix/tasks/pleroma/docs.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Mix.Tasks.Pleroma.Docs do diff --git a/lib/mix/tasks/pleroma/ecto.ex b/lib/mix/tasks/pleroma/ecto.ex index 69564c61a..8cf77d11c 100644 --- a/lib/mix/tasks/pleroma/ecto.ex +++ b/lib/mix/tasks/pleroma/ecto.ex @@ -1,6 +1,6 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors -# SPDX-License-Identifier: AGPL-3.0-onl +# Copyright © 2017-2022 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only defmodule Mix.Tasks.Pleroma.Ecto do @doc """ diff --git a/lib/mix/tasks/pleroma/ecto/migrate.ex b/lib/mix/tasks/pleroma/ecto/migrate.ex index 8d9f44e1c..c45c930a3 100644 --- a/lib/mix/tasks/pleroma/ecto/migrate.ex +++ b/lib/mix/tasks/pleroma/ecto/migrate.ex @@ -1,6 +1,6 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors -# SPDX-License-Identifier: AGPL-3.0-onl +# Copyright © 2017-2022 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only defmodule Mix.Tasks.Pleroma.Ecto.Migrate do use Mix.Task diff --git a/lib/mix/tasks/pleroma/ecto/rollback.ex b/lib/mix/tasks/pleroma/ecto/rollback.ex index 025ebaf19..3d78eaec4 100644 --- a/lib/mix/tasks/pleroma/ecto/rollback.ex +++ b/lib/mix/tasks/pleroma/ecto/rollback.ex @@ -1,6 +1,6 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors -# SPDX-License-Identifier: AGPL-3.0-onl +# Copyright © 2017-2022 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only defmodule Mix.Tasks.Pleroma.Ecto.Rollback do use Mix.Task diff --git a/lib/mix/tasks/pleroma/email.ex b/lib/mix/tasks/pleroma/email.ex index 4ce8c9b05..37272c124 100644 --- a/lib/mix/tasks/pleroma/email.ex +++ b/lib/mix/tasks/pleroma/email.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Mix.Tasks.Pleroma.Email do diff --git a/lib/mix/tasks/pleroma/emoji.ex b/lib/mix/tasks/pleroma/emoji.ex index 9ad4a7467..537f0715e 100644 --- a/lib/mix/tasks/pleroma/emoji.ex +++ b/lib/mix/tasks/pleroma/emoji.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Mix.Tasks.Pleroma.Emoji do diff --git a/lib/mix/tasks/pleroma/frontend.ex b/lib/mix/tasks/pleroma/frontend.ex index 8334e0049..3c71801ed 100644 --- a/lib/mix/tasks/pleroma/frontend.ex +++ b/lib/mix/tasks/pleroma/frontend.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Mix.Tasks.Pleroma.Frontend do diff --git a/lib/mix/tasks/pleroma/instance.ex b/lib/mix/tasks/pleroma/instance.ex index da27a99d0..5c93f19ff 100644 --- a/lib/mix/tasks/pleroma/instance.ex +++ b/lib/mix/tasks/pleroma/instance.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Mix.Tasks.Pleroma.Instance do @@ -34,7 +34,8 @@ def run(["gen" | rest]) do static_dir: :string, listen_ip: :string, listen_port: :string, - strip_uploads: :string, + strip_uploads_location: :string, + read_uploads_description: :string, anonymize_uploads: :string, dedupe_uploads: :string ], @@ -161,7 +162,7 @@ def run(["gen" | rest]) do ) |> Path.expand() - {strip_uploads_message, strip_uploads_default} = + {strip_uploads_location_message, strip_uploads_location_default} = if Pleroma.Utils.command_available?("exiftool") do {"Do you want to strip location (GPS) data from uploaded images? This requires exiftool, it was detected as installed. (y/n)", "y"} @@ -170,12 +171,29 @@ def run(["gen" | rest]) do "n"} end - strip_uploads = + strip_uploads_location = get_option( options, - :strip_uploads, - strip_uploads_message, - strip_uploads_default + :strip_uploads_location, + strip_uploads_location_message, + strip_uploads_location_default + ) === "y" + + {read_uploads_description_message, read_uploads_description_default} = + if Pleroma.Utils.command_available?("exiftool") do + {"Do you want to read data from uploaded files so clients can use it to prefill fields like image description? This requires exiftool, it was detected as installed. (y/n)", + "y"} + else + {"Do you want to read data from uploaded files so clients can use it to prefill fields like image description? This requires exiftool, it was detected as not installed, please install it if you answer yes. (y/n)", + "n"} + end + + read_uploads_description = + get_option( + options, + :read_uploads_description, + read_uploads_description_message, + read_uploads_description_default ) === "y" anonymize_uploads = @@ -199,6 +217,7 @@ def run(["gen" | rest]) do secret = :crypto.strong_rand_bytes(64) |> Base.encode64() |> binary_part(0, 64) jwt_secret = :crypto.strong_rand_bytes(64) |> Base.encode64() |> binary_part(0, 64) signing_salt = :crypto.strong_rand_bytes(8) |> Base.encode64() |> binary_part(0, 8) + lv_signing_salt = :crypto.strong_rand_bytes(8) |> Base.encode64() |> binary_part(0, 8) {web_push_public_key, web_push_private_key} = :crypto.generate_key(:ecdh, :prime256v1) template_dir = Application.app_dir(:pleroma, "priv") <> "/templates" @@ -217,6 +236,7 @@ def run(["gen" | rest]) do secret: secret, jwt_secret: jwt_secret, signing_salt: signing_salt, + lv_signing_salt: lv_signing_salt, web_push_public_key: Base.url_encode64(web_push_public_key, padding: false), web_push_private_key: Base.url_encode64(web_push_private_key, padding: false), db_configurable?: db_configurable?, @@ -227,7 +247,8 @@ def run(["gen" | rest]) do listen_port: listen_port, upload_filters: upload_filters(%{ - strip: strip_uploads, + strip_location: strip_uploads_location, + read_description: read_uploads_description, anonymize: anonymize_uploads, dedupe: dedupe_uploads }) @@ -295,12 +316,19 @@ defp write_robots_txt(static_dir, indexable, template_dir) do defp upload_filters(filters) when is_map(filters) do enabled_filters = - if filters.strip do - [Pleroma.Upload.Filter.Exiftool] + if filters.strip_location do + [Pleroma.Upload.Filter.Exiftool.StripLocation] else [] end + enabled_filters = + if filters.read_description do + enabled_filters ++ [Pleroma.Upload.Filter.Exiftool.ReadDescription] + else + enabled_filters + end + enabled_filters = if filters.anonymize do enabled_filters ++ [Pleroma.Upload.Filter.AnonymizeFilename] diff --git a/lib/mix/tasks/pleroma/notification_settings.ex b/lib/mix/tasks/pleroma/notification_settings.ex index e16866b6a..f0a7cc4ca 100644 --- a/lib/mix/tasks/pleroma/notification_settings.ex +++ b/lib/mix/tasks/pleroma/notification_settings.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Mix.Tasks.Pleroma.NotificationSettings do diff --git a/lib/mix/tasks/pleroma/openapi_spec.ex b/lib/mix/tasks/pleroma/openapi_spec.ex index 8f719c58b..884f931f8 100644 --- a/lib/mix/tasks/pleroma/openapi_spec.ex +++ b/lib/mix/tasks/pleroma/openapi_spec.ex @@ -1,3 +1,7 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2022 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + defmodule Mix.Tasks.Pleroma.OpenapiSpec do def run([path]) do # Load Pleroma application to get version info diff --git a/lib/mix/tasks/pleroma/refresh_counter_cache.ex b/lib/mix/tasks/pleroma/refresh_counter_cache.ex index 66eed8657..ad37cd20b 100644 --- a/lib/mix/tasks/pleroma/refresh_counter_cache.ex +++ b/lib/mix/tasks/pleroma/refresh_counter_cache.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Mix.Tasks.Pleroma.RefreshCounterCache do diff --git a/lib/mix/tasks/pleroma/relay.ex b/lib/mix/tasks/pleroma/relay.ex index 01e6b4279..29cc6668c 100644 --- a/lib/mix/tasks/pleroma/relay.ex +++ b/lib/mix/tasks/pleroma/relay.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Mix.Tasks.Pleroma.Relay do diff --git a/lib/mix/tasks/pleroma/robots_txt.ex b/lib/mix/tasks/pleroma/robots_txt.ex index 2ae430761..5124c7c40 100644 --- a/lib/mix/tasks/pleroma/robots_txt.ex +++ b/lib/mix/tasks/pleroma/robots_txt.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Mix.Tasks.Pleroma.RobotsTxt do diff --git a/lib/mix/tasks/pleroma/uploads.ex b/lib/mix/tasks/pleroma/uploads.ex index 333e9aa8e..bf02912fa 100644 --- a/lib/mix/tasks/pleroma/uploads.ex +++ b/lib/mix/tasks/pleroma/uploads.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Mix.Tasks.Pleroma.Uploads do diff --git a/lib/mix/tasks/pleroma/user.ex b/lib/mix/tasks/pleroma/user.ex index 53d5fc6d9..929fa1717 100644 --- a/lib/mix/tasks/pleroma/user.ex +++ b/lib/mix/tasks/pleroma/user.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Mix.Tasks.Pleroma.User do @@ -51,9 +51,7 @@ def run(["new", nickname, email | rest]) do A user will be created with the following information: - nickname: #{nickname} - email: #{email} - - password: #{ - if(generated_password?, do: "[generated; a reset link will be created]", else: password) - } + - password: #{if(generated_password?, do: "[generated; a reset link will be created]", else: password)} - name: #{name} - bio: #{bio} - moderator: #{if(moderator?, do: "true", else: "false")} @@ -114,15 +112,10 @@ def run(["reset_password", nickname]) do {:ok, token} <- Pleroma.PasswordResetToken.create_token(user) do shell_info("Generated password reset token for #{user.nickname}") - IO.puts( - "URL: #{ - Pleroma.Web.Router.Helpers.reset_password_url( - Pleroma.Web.Endpoint, - :reset, - token.token - ) - }" - ) + url = + Pleroma.Web.Router.Helpers.reset_password_url(Pleroma.Web.Endpoint, :reset, token.token) + + IO.puts("URL: #{url}") else _ -> shell_error("No local user #{nickname}") @@ -321,9 +314,7 @@ def run(["invites"]) do end shell_info( - "ID: #{invite.id} | Token: #{invite.token} | Token type: #{invite.invite_type} | Used: #{ - invite.used - }#{expire_info}#{using_info}" + "ID: #{invite.id} | Token: #{invite.token} | Token type: #{invite.invite_type} | Used: #{invite.used}#{expire_info}#{using_info}" ) end) end @@ -424,15 +415,45 @@ def run(["list"]) do users |> Enum.each(fn user -> shell_info( - "#{user.nickname} moderator: #{user.is_moderator}, admin: #{user.is_admin}, locked: #{ - user.is_locked - }, is_active: #{user.is_active}" + "#{user.nickname} moderator: #{user.is_moderator}, admin: #{user.is_admin}, locked: #{user.is_locked}, is_active: #{user.is_active}" ) end) end) |> Stream.run() end + def run(["fix_follow_state", local_user, remote_user]) do + start_pleroma() + + with {:local, %User{} = local} <- {:local, User.get_by_nickname(local_user)}, + {:remote, %User{} = remote} <- {:remote, User.get_by_nickname(remote_user)}, + {:follow_data, %{data: %{"state" => request_state}}} <- + {:follow_data, Pleroma.Web.ActivityPub.Utils.fetch_latest_follow(local, remote)} do + calculated_state = User.following?(local, remote) + + shell_info( + "Request state is #{request_state}, vs calculated state of following=#{calculated_state}" + ) + + if calculated_state == false && request_state == "accept" do + shell_info("Discrepancy found, fixing") + Pleroma.Web.CommonAPI.reject_follow_request(local, remote) + shell_info("Relationship fixed") + else + shell_info("No discrepancy found") + end + else + {:local, _} -> + shell_error("No local user #{local_user}") + + {:remote, _} -> + shell_error("No remote user #{remote_user}") + + {:follow_data, _} -> + shell_error("No follow data for #{local_user} and #{remote_user}") + end + end + defp set_moderator(user, value) do {:ok, user} = user diff --git a/lib/phoenix/transports/web_socket/raw.ex b/lib/phoenix/transports/web_socket/raw.ex index 8ed64eb16..8cf9c32a2 100644 --- a/lib/phoenix/transports/web_socket/raw.ex +++ b/lib/phoenix/transports/web_socket/raw.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Phoenix.Transports.WebSocket.Raw do diff --git a/lib/pleroma/activity.ex b/lib/pleroma/activity.ex index 6a991c48e..3556aaf9e 100644 --- a/lib/pleroma/activity.ex +++ b/lib/pleroma/activity.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Activity do @@ -53,7 +53,7 @@ defmodule Pleroma.Activity do # # ``` # |> join(:inner, [activity], o in Object, - # on: fragment("(?->>'id') = COALESCE((?)->'object'->> 'id', (?)->>'object')", + # on: fragment("(?->>'id') = associated_object_id((?))", # o.data, activity.data, activity.data)) # |> preload([activity, object], [object: object]) # ``` @@ -69,9 +69,8 @@ def with_joined_object(query, join_type \\ :inner) do join(query, join_type, [activity], o in Object, on: fragment( - "(?->>'id') = COALESCE(?->'object'->>'id', ?->>'object')", + "(?->>'id') = associated_object_id(?)", o.data, - activity.data, activity.data ), as: :object @@ -302,7 +301,7 @@ def delete_all_by_object_ap_id(id) when is_binary(id) do |> Queries.by_object_id() |> Queries.exclude_type("Delete") |> select([u], u) - |> Repo.delete_all() + |> Repo.delete_all(timeout: :infinity) |> elem(1) |> Enum.find(fn %{data: %{"type" => "Create", "object" => ap_id}} when is_binary(ap_id) -> ap_id == id @@ -362,11 +361,11 @@ def following_requests_for_actor(%User{ap_id: ap_id}) do end def restrict_deactivated_users(query) do - deactivated_users = - from(u in User.Query.build(%{deactivated: true}), select: u.ap_id) - |> Repo.all() - - Activity.Queries.exclude_authors(query, deactivated_users) + query + |> join(:inner, [activity], user in User, + as: :user, + on: activity.actor == user.ap_id and user.is_active == true + ) end defdelegate search(user, query, options \\ []), to: Pleroma.Activity.Search diff --git a/lib/pleroma/activity/html.ex b/lib/pleroma/activity/html.ex index 0bf393836..706b2d36c 100644 --- a/lib/pleroma/activity/html.ex +++ b/lib/pleroma/activity/html.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Activity.HTML do @@ -8,6 +8,40 @@ defmodule Pleroma.Activity.HTML do @cachex Pleroma.Config.get([:cachex, :provider], Cachex) + # We store a list of cache keys related to an activity in a + # separate cache, scrubber_management_cache. It has the same + # size as scrubber_cache (see application.ex). Every time we add + # a cache to scrubber_cache, we update scrubber_management_cache. + # + # The most recent write of a certain key in the management cache + # is the same as the most recent write of any record related to that + # key in the main cache. + # Assuming LRW ( https://hexdocs.pm/cachex/Cachex.Policy.LRW.html ), + # this means when the management cache is evicted by cachex, all + # related records in the main cache will also have been evicted. + + defp get_cache_keys_for(activity_id) do + with {:ok, list} when is_list(list) <- @cachex.get(:scrubber_management_cache, activity_id) do + list + else + _ -> [] + end + end + + defp add_cache_key_for(activity_id, additional_key) do + current = get_cache_keys_for(activity_id) + + unless additional_key in current do + @cachex.put(:scrubber_management_cache, activity_id, [additional_key | current]) + end + end + + def invalidate_cache_for(activity_id) do + keys = get_cache_keys_for(activity_id) + Enum.map(keys, &@cachex.del(:scrubber_cache, &1)) + @cachex.del(:scrubber_management_cache, activity_id) + end + def get_cached_scrubbed_html_for_activity( content, scrubbers, @@ -19,6 +53,8 @@ def get_cached_scrubbed_html_for_activity( @cachex.fetch!(:scrubber_cache, key, fn _key -> object = Object.normalize(activity, fetch: false) + + add_cache_key_for(activity.id, key) HTML.ensure_scrubbed_html(content, scrubbers, object.data["fake"] || false, callback) end) end diff --git a/lib/pleroma/activity/ir/topics.ex b/lib/pleroma/activity/ir/topics.ex index 3cc488fa6..8249cbe27 100644 --- a/lib/pleroma/activity/ir/topics.ex +++ b/lib/pleroma/activity/ir/topics.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Activity.Ir.Topics do @@ -29,7 +29,7 @@ defp generate_topics(object, activity) do ["user", "list"] ++ visibility_tags(object, activity) end - defp visibility_tags(object, activity) do + defp visibility_tags(object, %{data: %{"type" => type}} = activity) when type != "Announce" do case Visibility.get_visibility(activity) do "public" -> if activity.local do @@ -51,6 +51,10 @@ defp visibility_tags(object, activity) do end end + defp visibility_tags(_object, _activity) do + [] + end + defp item_creation_tags(tags, object, %{data: %{"type" => "Create"}} = activity) do tags ++ remote_topics(activity) ++ hashtags_to_topics(object) ++ attachment_topics(object, activity) diff --git a/lib/pleroma/activity/queries.ex b/lib/pleroma/activity/queries.ex index 4632651b0..81c44ac05 100644 --- a/lib/pleroma/activity/queries.ex +++ b/lib/pleroma/activity/queries.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Activity.Queries do @@ -52,8 +52,7 @@ def by_object_id(query, object_ids) when is_list(object_ids) do activity in query, where: fragment( - "coalesce((?)->'object'->>'id', (?)->>'object') = ANY(?)", - activity.data, + "associated_object_id((?)) = ANY(?)", activity.data, ^object_ids ) @@ -64,8 +63,7 @@ def by_object_id(query, object_id) when is_binary(object_id) do from(activity in query, where: fragment( - "coalesce((?)->'object'->>'id', (?)->>'object') = ?", - activity.data, + "associated_object_id((?)) = ?", activity.data, ^object_id ) diff --git a/lib/pleroma/activity/search.ex b/lib/pleroma/activity/search.ex index 09671f621..0b9b24aa4 100644 --- a/lib/pleroma/activity/search.ex +++ b/lib/pleroma/activity/search.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Activity.Search do @@ -30,7 +30,7 @@ def search(user, search_query, options \\ []) do Activity |> Activity.with_preloaded_object() |> Activity.restrict_deactivated_users() - |> restrict_public() + |> restrict_public(user) |> query_with(index_type, search_query, search_function) |> maybe_restrict_local(user) |> maybe_restrict_author(author) @@ -57,7 +57,19 @@ def maybe_restrict_blocked(query, %User{} = user) do def maybe_restrict_blocked(query, _), do: query - defp restrict_public(q) do + defp restrict_public(q, user) when not is_nil(user) do + intended_recipients = [ + Pleroma.Constants.as_public(), + Pleroma.Web.ActivityPub.Utils.as_local_public() + ] + + from([a, o] in q, + where: fragment("?->>'type' = 'Create'", a.data), + where: fragment("? && ?", ^intended_recipients, a.recipients) + ) + end + + defp restrict_public(q, _user) do from([a, o] in q, where: fragment("?->>'type' = 'Create'", a.data), where: ^Pleroma.Constants.as_public() in a.recipients diff --git a/lib/pleroma/announcement.ex b/lib/pleroma/announcement.ex new file mode 100644 index 000000000..d97c5e728 --- /dev/null +++ b/lib/pleroma/announcement.ex @@ -0,0 +1,160 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2022 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + +defmodule Pleroma.Announcement do + use Ecto.Schema + + import Ecto.Changeset, only: [cast: 3, validate_required: 2] + import Ecto.Query + + alias Pleroma.AnnouncementReadRelationship + alias Pleroma.Repo + + @type t :: %__MODULE__{} + @primary_key {:id, FlakeId.Ecto.CompatType, autogenerate: true} + + schema "announcements" do + field(:data, :map) + field(:starts_at, :utc_datetime) + field(:ends_at, :utc_datetime) + field(:rendered, :map) + + timestamps(type: :utc_datetime) + end + + def change(struct, params \\ %{}) do + struct + |> cast(validate_params(struct, params), [:data, :starts_at, :ends_at, :rendered]) + |> validate_required([:data]) + end + + defp validate_params(struct, params) do + base_data = + %{ + "content" => "", + "all_day" => false + } + |> Map.merge((struct && struct.data) || %{}) + + merged_data = + Map.merge(base_data, params.data) + |> Map.take(["content", "all_day"]) + + params + |> Map.merge(%{data: merged_data}) + |> add_rendered_properties() + end + + def add_rendered_properties(params) do + {content_html, _, _} = + Pleroma.Web.CommonAPI.Utils.format_input(params.data["content"], "text/plain", + mentions_format: :full + ) + + rendered = %{ + "content" => content_html + } + + params + |> Map.put(:rendered, rendered) + end + + def add(params) do + changeset = change(%__MODULE__{}, params) + + Repo.insert(changeset) + end + + def update(announcement, params) do + changeset = change(announcement, params) + + Repo.update(changeset) + end + + def list_all do + __MODULE__ + |> Repo.all() + end + + def list_paginated(%{limit: limited_number, offset: offset_number}) do + __MODULE__ + |> limit(^limited_number) + |> offset(^offset_number) + |> Repo.all() + end + + def get_by_id(id) do + Repo.get_by(__MODULE__, id: id) + end + + def delete_by_id(id) do + with announcement when not is_nil(announcement) <- get_by_id(id), + {:ok, _} <- Repo.delete(announcement) do + :ok + else + _ -> + :error + end + end + + def read_by?(announcement, user) do + AnnouncementReadRelationship.exists?(user, announcement) + end + + def mark_read_by(announcement, user) do + AnnouncementReadRelationship.mark_read(user, announcement) + end + + def render_json(announcement, opts \\ []) do + extra_params = + case Keyword.fetch(opts, :for) do + {:ok, user} when not is_nil(user) -> + %{read: read_by?(announcement, user)} + + _ -> + %{} + end + + admin_extra_params = + case Keyword.fetch(opts, :admin) do + {:ok, true} -> + %{pleroma: %{raw_content: announcement.data["content"]}} + + _ -> + %{} + end + + base = %{ + id: announcement.id, + content: announcement.rendered["content"], + starts_at: announcement.starts_at, + ends_at: announcement.ends_at, + all_day: announcement.data["all_day"], + published_at: announcement.inserted_at, + updated_at: announcement.updated_at, + mentions: [], + statuses: [], + tags: [], + emojis: [], + reactions: [] + } + + base + |> Map.merge(extra_params) + |> Map.merge(admin_extra_params) + end + + # "visible" means: + # starts_at < time < ends_at + def list_all_visible_when(time) do + __MODULE__ + |> where([a], is_nil(a.starts_at) or a.starts_at < ^time) + |> where([a], is_nil(a.ends_at) or a.ends_at > ^time) + |> Repo.all() + end + + def list_all_visible do + list_all_visible_when(DateTime.now("Etc/UTC") |> elem(1)) + end +end diff --git a/lib/pleroma/announcement_read_relationship.ex b/lib/pleroma/announcement_read_relationship.ex new file mode 100644 index 000000000..9b64404ce --- /dev/null +++ b/lib/pleroma/announcement_read_relationship.ex @@ -0,0 +1,55 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2022 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + +defmodule Pleroma.AnnouncementReadRelationship do + use Ecto.Schema + + import Ecto.Changeset + + alias FlakeId.Ecto.CompatType + alias Pleroma.Announcement + alias Pleroma.Repo + alias Pleroma.User + + @type t :: %__MODULE__{} + + schema "announcement_read_relationships" do + belongs_to(:user, User, type: CompatType) + belongs_to(:announcement, Announcement, type: CompatType) + + timestamps(updated_at: false) + end + + def mark_read(user, announcement) do + %__MODULE__{} + |> cast(%{user_id: user.id, announcement_id: announcement.id}, [:user_id, :announcement_id]) + |> validate_required([:user_id, :announcement_id]) + |> foreign_key_constraint(:user_id) + |> foreign_key_constraint(:announcement_id) + |> unique_constraint([:user_id, :announcement_id]) + |> Repo.insert() + end + + def mark_unread(user, announcement) do + with relationship <- get(user, announcement), + {:exists, true} <- {:exists, not is_nil(relationship)}, + {:ok, _} <- Repo.delete(relationship) do + :ok + else + {:exists, false} -> + :ok + + _ -> + :error + end + end + + def get(user, announcement) do + Repo.get_by(__MODULE__, user_id: user.id, announcement_id: announcement.id) + end + + def exists?(user, announcement) do + not is_nil(get(user, announcement)) + end +end diff --git a/lib/pleroma/application.ex b/lib/pleroma/application.ex index 92d143665..1c1db8c10 100644 --- a/lib/pleroma/application.ex +++ b/lib/pleroma/application.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Application do @@ -61,6 +61,11 @@ def start(_type, _args) do adapter = Application.get_env(:tesla, :adapter) + if match?({Tesla.Adapter.Finch, _}, adapter) do + Logger.info("Starting Finch") + Finch.start_link(name: MyFinch) + end + if adapter == Tesla.Adapter.Gun do if version = Pleroma.OTPVersion.version() do [major, minor] = @@ -108,7 +113,17 @@ def start(_type, _args) do # See http://elixir-lang.org/docs/stable/elixir/Supervisor.html # for other strategies and supported options - opts = [strategy: :one_for_one, name: Pleroma.Supervisor] + # If we have a lot of caches, default max_restarts can cause test + # resets to fail. + # Go for the default 3 unless we're in test + max_restarts = + if @mix_env == :test do + 100 + else + 3 + end + + opts = [strategy: :one_for_one, name: Pleroma.Supervisor, max_restarts: max_restarts] result = Supervisor.start_link(children, opts) set_postgres_server_version() @@ -185,6 +200,7 @@ defp cachex_children do build_cachex("object", default_ttl: 25_000, ttl_interval: 1000, limit: 2500), build_cachex("rich_media", default_ttl: :timer.minutes(120), limit: 5000), build_cachex("scrubber", limit: 2500), + build_cachex("scrubber_management", limit: 2500), build_cachex("idempotency", expiration: idempotency_expiration(), limit: 2500), build_cachex("web_resp", limit: 2500), build_cachex("emoji_packs", expiration: emoji_packs_expiration(), limit: 10), @@ -234,7 +250,8 @@ defp dont_run_in_test(_) do defp background_migrators do [ - Pleroma.Migrators.HashtagsTableMigrator + Pleroma.Migrators.HashtagsTableMigrator, + Pleroma.Migrators.ContextObjectsDeletionMigrator ] end diff --git a/lib/pleroma/application_requirements.ex b/lib/pleroma/application_requirements.ex index a56311a65..44b1c1705 100644 --- a/lib/pleroma/application_requirements.ex +++ b/lib/pleroma/application_requirements.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.ApplicationRequirements do @@ -164,7 +164,8 @@ defp do_check_rum!(setting, migrate) do defp check_system_commands!(:ok) do filter_commands_statuses = [ - check_filter(Pleroma.Upload.Filter.Exiftool, "exiftool"), + check_filter(Pleroma.Upload.Filter.Exiftool.StripLocation, "exiftool"), + check_filter(Pleroma.Upload.Filter.Exiftool.ReadDescription, "exiftool"), check_filter(Pleroma.Upload.Filter.Mogrify, "mogrify"), check_filter(Pleroma.Upload.Filter.Mogrifun, "mogrify"), check_filter(Pleroma.Upload.Filter.AnalyzeMetadata, "mogrify"), diff --git a/lib/pleroma/bbs/authenticator.ex b/lib/pleroma/bbs/authenticator.ex index 241fcb53c..0f7543ff5 100644 --- a/lib/pleroma/bbs/authenticator.ex +++ b/lib/pleroma/bbs/authenticator.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.BBS.Authenticator do diff --git a/lib/pleroma/bbs/handler.ex b/lib/pleroma/bbs/handler.ex index 4a2e255f7..27799338f 100644 --- a/lib/pleroma/bbs/handler.ex +++ b/lib/pleroma/bbs/handler.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.BBS.Handler do @@ -19,9 +19,7 @@ def on_shell(username, _pubkey, _ip, _port) do def on_connect(username, ip, port, method) do Logger.debug(fn -> """ - Incoming SSH shell #{inspect(self())} requested for #{username} from #{inspect(ip)}:#{ - inspect(port) - } using #{inspect(method)} + Incoming SSH shell #{inspect(self())} requested for #{username} from #{inspect(ip)}:#{inspect(port)} using #{inspect(method)} """ end) end @@ -44,8 +42,45 @@ defp loop(state) do def puts_activity(activity) do status = Pleroma.Web.MastodonAPI.StatusView.render("show.json", %{activity: activity}) + IO.puts("-- #{status.id} by #{status.account.display_name} (#{status.account.acct})") - IO.puts(HTML.strip_tags(status.content)) + + status.content + |> String.split("
") + |> Enum.map(&HTML.strip_tags/1) + |> Enum.map(&HtmlEntities.decode/1) + |> Enum.map(&IO.puts/1) + end + + def puts_notification(activity, user) do + notification = + Pleroma.Web.MastodonAPI.NotificationView.render("show.json", %{ + notification: activity, + for: user + }) + + IO.puts( + "== (#{notification.type}) #{notification.status.id} by #{notification.account.display_name} (#{notification.account.acct})" + ) + + notification.status.content + |> String.split("
") + |> Enum.map(&HTML.strip_tags/1) + |> Enum.map(&HtmlEntities.decode/1) + |> (fn x -> + case x do + [content] -> + "> " <> content + + [head | _tail] -> + # "> " <> hd <> "..." + head + |> String.slice(1, 80) + |> (fn x -> "> " <> x <> "..." end).() + end + end).() + |> IO.puts() + IO.puts("") end @@ -55,6 +90,11 @@ def handle_command(state, "help") do IO.puts("home - Show the home timeline") IO.puts("p - Post the given text") IO.puts("r - Reply to the post with the given id") + IO.puts("t - Show a thread from the given id") + IO.puts("n - Show notifications") + IO.puts("n read - Mark all notifactions as read") + IO.puts("f - Favourites the post with the given id") + IO.puts("R - Repeat the post with the given id") IO.puts("quit - Quit") state @@ -75,11 +115,53 @@ def handle_command(%{user: user} = state, "r " <> text) do state end + def handle_command(%{user: user} = state, "t " <> activity_id) do + with %Activity{} = activity <- Activity.get_by_id(activity_id) do + activities = + ActivityPub.fetch_activities_for_context(activity.data["context"], %{ + blocking_user: user, + user: user, + exclude_id: activity.id + }) + + case activities do + [] -> + activity_id + |> Activity.get_by_id() + |> puts_activity() + + _ -> + activities + |> Enum.reverse() + |> Enum.each(&puts_activity/1) + end + else + _e -> IO.puts("Could not show this thread...") + end + + state + end + + def handle_command(%{user: user} = state, "n read") do + Pleroma.Notification.clear(user) + IO.puts("All notifications were marked as read") + + state + end + + def handle_command(%{user: user} = state, "n") do + user + |> Pleroma.Web.MastodonAPI.MastodonAPI.get_notifications(%{}) + |> Enum.each(&puts_notification(&1, user)) + + state + end + def handle_command(%{user: user} = state, "p " <> text) do text = String.trim(text) - with {:ok, _activity} <- CommonAPI.post(user, %{status: text}) do - IO.puts("Posted!") + with {:ok, activity} <- CommonAPI.post(user, %{status: text}) do + IO.puts("Posted! ID: #{activity.id}") else _e -> IO.puts("Could not post...") end @@ -87,6 +169,19 @@ def handle_command(%{user: user} = state, "p " <> text) do state end + def handle_command(%{user: user} = state, "f " <> id) do + id = String.trim(id) + + with %Activity{} = activity <- Activity.get_by_id(id), + {:ok, _activity} <- CommonAPI.favorite(user, activity) do + IO.puts("Favourited!") + else + _e -> IO.puts("Could not Favourite...") + end + + state + end + def handle_command(state, "home") do user = state.user @@ -125,7 +220,7 @@ defp wait_input(state, input) do loop(%{state | counter: state.counter + 1}) - {:error, :interrupted} -> + {:input, ^input, {:error, :interrupted}} -> IO.puts("Caught Ctrl+C...") loop(%{state | counter: state.counter + 1}) diff --git a/lib/pleroma/bookmark.ex b/lib/pleroma/bookmark.ex index 83cc8e7e1..187749e86 100644 --- a/lib/pleroma/bookmark.ex +++ b/lib/pleroma/bookmark.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Bookmark do diff --git a/lib/pleroma/caching.ex b/lib/pleroma/caching.ex index 02c18564d..eb0588708 100644 --- a/lib/pleroma/caching.ex +++ b/lib/pleroma/caching.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Caching do diff --git a/lib/pleroma/captcha.ex b/lib/pleroma/captcha.ex index bad7b3a66..03910f189 100644 --- a/lib/pleroma/captcha.ex +++ b/lib/pleroma/captcha.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Captcha do diff --git a/lib/pleroma/captcha/kocaptcha.ex b/lib/pleroma/captcha/kocaptcha.ex index eac6dfa36..e786e28b9 100644 --- a/lib/pleroma/captcha/kocaptcha.ex +++ b/lib/pleroma/captcha/kocaptcha.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Captcha.Kocaptcha do diff --git a/lib/pleroma/captcha/native.ex b/lib/pleroma/captcha/native.ex index 2c6f64e66..9ba0f30be 100644 --- a/lib/pleroma/captcha/native.ex +++ b/lib/pleroma/captcha/native.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Captcha.Native do diff --git a/lib/pleroma/captcha/service.ex b/lib/pleroma/captcha/service.ex index a430fafdc..74797605f 100644 --- a/lib/pleroma/captcha/service.ex +++ b/lib/pleroma/captcha/service.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Captcha.Service do diff --git a/lib/pleroma/chat.ex b/lib/pleroma/chat.ex index bacff24b5..fe32ec08c 100644 --- a/lib/pleroma/chat.ex +++ b/lib/pleroma/chat.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Chat do diff --git a/lib/pleroma/chat/message_reference.ex b/lib/pleroma/chat/message_reference.ex index 89537d155..ea65a4a35 100644 --- a/lib/pleroma/chat/message_reference.ex +++ b/lib/pleroma/chat/message_reference.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Chat.MessageReference do diff --git a/lib/pleroma/clippy.ex b/lib/pleroma/clippy.ex index 9c674e075..bcf23ca07 100644 --- a/lib/pleroma/clippy.ex +++ b/lib/pleroma/clippy.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Clippy do diff --git a/lib/pleroma/config.ex b/lib/pleroma/config.ex index 54e332595..cf1453c9b 100644 --- a/lib/pleroma/config.ex +++ b/lib/pleroma/config.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Config do diff --git a/lib/pleroma/config/deprecation_warnings.ex b/lib/pleroma/config/deprecation_warnings.ex index fedd58a7e..b53b15d95 100644 --- a/lib/pleroma/config/deprecation_warnings.ex +++ b/lib/pleroma/config/deprecation_warnings.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Config.DeprecationWarnings do @@ -20,6 +20,177 @@ defmodule Pleroma.Config.DeprecationWarnings do "\n* `config :pleroma, :instance, mrf_transparency_exclusions` is now `config :pleroma, :mrf, transparency_exclusions`"} ] + def check_exiftool_filter do + filters = Config.get([Pleroma.Upload]) |> Keyword.get(:filters, []) + + if Pleroma.Upload.Filter.Exiftool in filters do + Logger.warn(""" + !!!DEPRECATION WARNING!!! + Your config is using Exiftool as a filter instead of Exiftool.StripLocation. This should work for now, but you are advised to change to the new configuration to prevent possible issues later: + + ``` + config :pleroma, Pleroma.Upload, + filters: [Pleroma.Upload.Filter.Exiftool] + ``` + + Is now + + + ``` + config :pleroma, Pleroma.Upload, + filters: [Pleroma.Upload.Filter.Exiftool.StripLocation] + ``` + """) + + new_config = + filters + |> Enum.map(fn + Pleroma.Upload.Filter.Exiftool -> Pleroma.Upload.Filter.Exiftool.StripLocation + filter -> filter + end) + + Config.put([Pleroma.Upload, :filters], new_config) + + :error + else + :ok + end + end + + def check_simple_policy_tuples do + has_strings = + Config.get([:mrf_simple]) + |> Enum.any?(fn {_, v} -> Enum.any?(v, &is_binary/1) end) + + if has_strings do + Logger.warn(""" + !!!DEPRECATION WARNING!!! + Your config is using strings in the SimplePolicy configuration instead of tuples. They should work for now, but you are advised to change to the new configuration to prevent possible issues later: + + ``` + config :pleroma, :mrf_simple, + media_removal: ["instance.tld"], + media_nsfw: ["instance.tld"], + federated_timeline_removal: ["instance.tld"], + report_removal: ["instance.tld"], + reject: ["instance.tld"], + followers_only: ["instance.tld"], + accept: ["instance.tld"], + avatar_removal: ["instance.tld"], + banner_removal: ["instance.tld"], + reject_deletes: ["instance.tld"] + ``` + + Is now + + + ``` + config :pleroma, :mrf_simple, + media_removal: [{"instance.tld", "Reason for media removal"}], + media_nsfw: [{"instance.tld", "Reason for media nsfw"}], + federated_timeline_removal: [{"instance.tld", "Reason for federated timeline removal"}], + report_removal: [{"instance.tld", "Reason for report removal"}], + reject: [{"instance.tld", "Reason for reject"}], + followers_only: [{"instance.tld", "Reason for followers only"}], + accept: [{"instance.tld", "Reason for accept"}], + avatar_removal: [{"instance.tld", "Reason for avatar removal"}], + banner_removal: [{"instance.tld", "Reason for banner removal"}], + reject_deletes: [{"instance.tld", "Reason for reject deletes"}] + ``` + """) + + new_config = + Config.get([:mrf_simple]) + |> Enum.map(fn {k, v} -> + {k, + Enum.map(v, fn + {instance, reason} -> {instance, reason} + instance -> {instance, ""} + end)} + end) + + Config.put([:mrf_simple], new_config) + + :error + else + :ok + end + end + + def check_quarantined_instances_tuples do + has_strings = Config.get([:instance, :quarantined_instances]) |> Enum.any?(&is_binary/1) + + if has_strings do + Logger.warn(""" + !!!DEPRECATION WARNING!!! + Your config is using strings in the quarantined_instances configuration instead of tuples. They should work for now, but you are advised to change to the new configuration to prevent possible issues later: + + ``` + config :pleroma, :instance, + quarantined_instances: ["instance.tld"] + ``` + + Is now + + + ``` + config :pleroma, :instance, + quarantined_instances: [{"instance.tld", "Reason for quarantine"}] + ``` + """) + + new_config = + Config.get([:instance, :quarantined_instances]) + |> Enum.map(fn + {instance, reason} -> {instance, reason} + instance -> {instance, ""} + end) + + Config.put([:instance, :quarantined_instances], new_config) + + :error + else + :ok + end + end + + def check_transparency_exclusions_tuples do + has_strings = Config.get([:mrf, :transparency_exclusions]) |> Enum.any?(&is_binary/1) + + if has_strings do + Logger.warn(""" + !!!DEPRECATION WARNING!!! + Your config is using strings in the transparency_exclusions configuration instead of tuples. They should work for now, but you are advised to change to the new configuration to prevent possible issues later: + + ``` + config :pleroma, :mrf, + transparency_exclusions: ["instance.tld"] + ``` + + Is now + + + ``` + config :pleroma, :mrf, + transparency_exclusions: [{"instance.tld", "Reason to exlude transparency"}] + ``` + """) + + new_config = + Config.get([:mrf, :transparency_exclusions]) + |> Enum.map(fn + {instance, reason} -> {instance, reason} + instance -> {instance, ""} + end) + + Config.put([:mrf, :transparency_exclusions], new_config) + + :error + else + :ok + end + end + def check_hellthread_threshold do if Config.get([:mrf_hellthread, :threshold]) do Logger.warn(""" @@ -34,20 +205,25 @@ def check_hellthread_threshold do end def warn do - with :ok <- check_hellthread_threshold(), - :ok <- check_old_mrf_config(), - :ok <- check_media_proxy_whitelist_config(), - :ok <- check_welcome_message_config(), - :ok <- check_gun_pool_options(), - :ok <- check_activity_expiration_config(), - :ok <- check_remote_ip_plug_name(), - :ok <- check_uploders_s3_public_endpoint(), - :ok <- check_old_chat_shoutbox() do - :ok - else - _ -> - :error - end + [ + check_hellthread_threshold(), + check_old_mrf_config(), + check_media_proxy_whitelist_config(), + check_welcome_message_config(), + check_gun_pool_options(), + check_activity_expiration_config(), + check_remote_ip_plug_name(), + check_uploders_s3_public_endpoint(), + check_old_chat_shoutbox(), + check_quarantined_instances_tuples(), + check_transparency_exclusions_tuples(), + check_simple_policy_tuples(), + check_exiftool_filter() + ] + |> Enum.reduce(:ok, fn + :ok, :ok -> :ok + _, _ -> :error + end) end def check_welcome_message_config do @@ -135,7 +311,7 @@ def check_gun_pool_options do warning_preface = """ !!!DEPRECATION WARNING!!! - Your config is using old setting name `timeout` instead of `recv_timeout` in pool settings. Setting should work for now, but you are advised to change format to scheme with port to prevent possible issues later. + Your config is using old setting name `timeout` instead of `recv_timeout` in pool settings. The setting will not take effect until updated. """ updated_config = diff --git a/lib/pleroma/config/getting.ex b/lib/pleroma/config/getting.ex index 2cc9fe80b..f9b66bba6 100644 --- a/lib/pleroma/config/getting.ex +++ b/lib/pleroma/config/getting.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Config.Getting do diff --git a/lib/pleroma/config/helpers.ex b/lib/pleroma/config/helpers.ex index 9f26c3546..973a75c99 100644 --- a/lib/pleroma/config/helpers.ex +++ b/lib/pleroma/config/helpers.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Config.Helpers do diff --git a/lib/pleroma/config/holder.ex b/lib/pleroma/config/holder.ex index 4d186a854..7822bde89 100644 --- a/lib/pleroma/config/holder.ex +++ b/lib/pleroma/config/holder.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Config.Holder do diff --git a/lib/pleroma/config/loader.ex b/lib/pleroma/config/loader.ex index 2a945999e..bd85eccab 100644 --- a/lib/pleroma/config/loader.ex +++ b/lib/pleroma/config/loader.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Config.Loader do @@ -19,21 +19,10 @@ defmodule Pleroma.Config.Loader do :tesla ] - if Code.ensure_loaded?(Config.Reader) do - @reader Config.Reader - - def read(path), do: @reader.read!(path) - else - # support for Elixir less than 1.9 - @reader Mix.Config - def read(path) do - path - |> @reader.eval!() - |> elem(0) - end - end + @reader Config.Reader @spec read(Path.t()) :: keyword() + def read(path), do: @reader.read!(path) @spec merge(keyword(), keyword()) :: keyword() def merge(c1, c2), do: @reader.merge(c1, c2) diff --git a/lib/pleroma/config/oban.ex b/lib/pleroma/config/oban.ex index 3e63bca40..483d2bb79 100644 --- a/lib/pleroma/config/oban.ex +++ b/lib/pleroma/config/oban.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Config.Oban do @@ -21,9 +21,7 @@ def warn do """ !!!OBAN CONFIG WARNING!!! You are using old workers in Oban crontab settings, which were removed. - Please, remove setting from crontab in your config file (prod.secret.exs): #{ - inspect(setting) - } + Please, remove setting from crontab in your config file (prod.secret.exs): #{inspect(setting)} """ |> Logger.warn() diff --git a/lib/pleroma/config/release_runtime_provider.ex b/lib/pleroma/config/release_runtime_provider.ex index e5e9d3dcd..91e5f1a54 100644 --- a/lib/pleroma/config/release_runtime_provider.ex +++ b/lib/pleroma/config/release_runtime_provider.ex @@ -1,3 +1,7 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2022 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + defmodule Pleroma.Config.ReleaseRuntimeProvider do @moduledoc """ Imports runtime config and `{env}.exported_from_db.secret.exs` for releases. diff --git a/lib/pleroma/config/transfer_task.ex b/lib/pleroma/config/transfer_task.ex index d5c6081a2..44a984019 100644 --- a/lib/pleroma/config/transfer_task.ex +++ b/lib/pleroma/config/transfer_task.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Config.TransferTask do @@ -47,7 +47,7 @@ def load_and_update_env(deleted_settings \\ [], restart_pleroma? \\ true) do {logger, other} = (Repo.all(ConfigDB) ++ deleted_settings) |> Enum.map(&merge_with_default/1) - |> Enum.split_with(fn {group, _, _, _} -> group in [:logger, :quack] end) + |> Enum.split_with(fn {group, _, _, _} -> group in [:logger] end) logger |> Enum.sort() @@ -104,11 +104,6 @@ defp merge_with_default(%{group: group, key: key, value: value} = setting) do end # change logger configuration in runtime, without restart - defp configure({:quack, key, _, merged}) do - Logger.configure_backend(Quack.Logger, [{key, merged}]) - :ok = update_env(:quack, key, merged) - end - defp configure({_, :backends, _, merged}) do # removing current backends Enum.each(Application.get_env(:logger, :backends), &Logger.remove_backend/1) @@ -148,9 +143,7 @@ defp update({group, key, value, merged}) do rescue error -> error_msg = - "updating env causes error, group: #{inspect(group)}, key: #{inspect(key)}, value: #{ - inspect(value) - } error: #{inspect(error)}" + "updating env causes error, group: #{inspect(group)}, key: #{inspect(key)}, value: #{inspect(value)} error: #{inspect(error)}" Logger.warn(error_msg) diff --git a/lib/pleroma/config_db.ex b/lib/pleroma/config_db.ex index cb57673e3..846cede04 100644 --- a/lib/pleroma/config_db.ex +++ b/lib/pleroma/config_db.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.ConfigDB do @@ -163,7 +163,6 @@ defp can_be_partially_updated?(%ConfigDB{} = config), do: not only_full_update?( defp only_full_update?(%ConfigDB{group: group, key: key}) do full_key_update = [ {:pleroma, :ecto_repos}, - {:quack, :meta}, {:mime, :types}, {:cors_plug, [:max_age, :methods, :expose, :headers]}, {:swarm, :node_blacklist}, @@ -386,7 +385,7 @@ defp find_valid_delimiter([delimiter | others], pattern, regex_delimiter) do @spec module_name?(String.t()) :: boolean() def module_name?(string) do - Regex.match?(~r/^(Pleroma|Phoenix|Tesla|Quack|Ueberauth|Swoosh)\./, string) or + Regex.match?(~r/^(Pleroma|Phoenix|Tesla|Ueberauth|Swoosh)\./, string) or string in ["Oban", "Ueberauth", "ExSyslogger", "ConcurrentLimiter"] end end diff --git a/lib/pleroma/constants.ex b/lib/pleroma/constants.ex index 343ea1acb..cfb405218 100644 --- a/lib/pleroma/constants.ex +++ b/lib/pleroma/constants.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Constants do @@ -28,6 +28,42 @@ defmodule Pleroma.Constants do ~w(index.html robots.txt static static-fe finmoji emoji packs sounds images instance sw.js sw-pleroma.js favicon.png schemas doc embed.js embed.css) ) + const(status_updatable_fields, + do: [ + "source", + "tag", + "updated", + "emoji", + "content", + "summary", + "sensitive", + "attachment", + "generator" + ] + ) + + const(updatable_object_types, + do: [ + "Note", + "Question", + "Audio", + "Video", + "Event", + "Article", + "Page" + ] + ) + + const(actor_types, + do: [ + "Application", + "Group", + "Organization", + "Person", + "Service" + ] + ) + # basic regex, just there to weed out potential mistakes # https://datatracker.ietf.org/doc/html/rfc2045#section-5.1 const(mime_regex, diff --git a/lib/pleroma/conversation.ex b/lib/pleroma/conversation.ex index 828e27450..42028aa51 100644 --- a/lib/pleroma/conversation.ex +++ b/lib/pleroma/conversation.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Conversation do diff --git a/lib/pleroma/conversation/participation.ex b/lib/pleroma/conversation/participation.ex index e0a3af28b..4ed93e5bd 100644 --- a/lib/pleroma/conversation/participation.ex +++ b/lib/pleroma/conversation/participation.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Conversation.Participation do diff --git a/lib/pleroma/conversation/participation/recipient_ship.ex b/lib/pleroma/conversation/participation/recipient_ship.ex index 094c1a176..d9a0fdff8 100644 --- a/lib/pleroma/conversation/participation/recipient_ship.ex +++ b/lib/pleroma/conversation/participation/recipient_ship.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Conversation.Participation.RecipientShip do diff --git a/lib/pleroma/counter_cache.ex b/lib/pleroma/counter_cache.ex index 1e75d19ae..d2b14bd54 100644 --- a/lib/pleroma/counter_cache.ex +++ b/lib/pleroma/counter_cache.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.CounterCache do diff --git a/lib/pleroma/data_migration.ex b/lib/pleroma/data_migration.ex index 1377af16e..8451678fc 100644 --- a/lib/pleroma/data_migration.ex +++ b/lib/pleroma/data_migration.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.DataMigration do @@ -42,4 +42,5 @@ def get_by_name(name) do end def populate_hashtags_table, do: get_by_name("populate_hashtags_table") + def delete_context_objects, do: get_by_name("delete_context_objects") end diff --git a/lib/pleroma/delivery.ex b/lib/pleroma/delivery.ex index 511d5cf58..5d1853b76 100644 --- a/lib/pleroma/delivery.ex +++ b/lib/pleroma/delivery.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Delivery do diff --git a/lib/pleroma/docs/generator.ex b/lib/pleroma/docs/generator.ex index e8a68fd41..6508f1947 100644 --- a/lib/pleroma/docs/generator.ex +++ b/lib/pleroma/docs/generator.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Docs.Generator do diff --git a/lib/pleroma/docs/json.ex b/lib/pleroma/docs/json.ex index f22432ea4..05f46f39b 100644 --- a/lib/pleroma/docs/json.ex +++ b/lib/pleroma/docs/json.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Docs.JSON do diff --git a/lib/pleroma/docs/markdown.ex b/lib/pleroma/docs/markdown.ex index 7e54e9d58..949388eb9 100644 --- a/lib/pleroma/docs/markdown.ex +++ b/lib/pleroma/docs/markdown.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Docs.Markdown do diff --git a/lib/pleroma/docs/translator.ex b/lib/pleroma/docs/translator.ex new file mode 100644 index 000000000..13e33c87e --- /dev/null +++ b/lib/pleroma/docs/translator.ex @@ -0,0 +1,10 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2022 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + +defmodule Pleroma.Docs.Translator do + require Pleroma.Docs.Translator.Compiler + require Pleroma.Web.Gettext + + @before_compile Pleroma.Docs.Translator.Compiler +end diff --git a/lib/pleroma/docs/translator/compiler.ex b/lib/pleroma/docs/translator/compiler.ex new file mode 100644 index 000000000..5d27d9fa2 --- /dev/null +++ b/lib/pleroma/docs/translator/compiler.ex @@ -0,0 +1,119 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2022 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + +defmodule Pleroma.Docs.Translator.Compiler do + @external_resource "config/description.exs" + @raw_config Pleroma.Config.Loader.read("config/description.exs") + @raw_descriptions @raw_config[:pleroma][:config_description] + + defmacro __before_compile__(_env) do + strings = + __MODULE__.descriptions() + |> __MODULE__.extract_strings() + + quote do + def placeholder do + unquote do + Enum.map( + strings, + fn {path, type, string} -> + ctxt = msgctxt_for(path, type) + + quote do + Pleroma.Web.Gettext.dpgettext_noop( + "config_descriptions", + unquote(ctxt), + unquote(string) + ) + end + end + ) + end + end + end + end + + def descriptions do + Pleroma.Web.ActivityPub.MRF.config_descriptions() + |> Enum.reduce(@raw_descriptions, fn description, acc -> [description | acc] end) + |> Pleroma.Docs.Generator.convert_to_strings() + end + + def extract_strings(descriptions) do + descriptions + |> Enum.reduce(%{strings: [], path: []}, &process_item/2) + |> Map.get(:strings) + end + + defp process_item(entity, acc) do + current_level = + acc + |> process_desc(entity) + |> process_label(entity) + + process_children(entity, current_level) + end + + defp process_desc(acc, %{description: desc} = item) do + %{ + strings: [{acc.path ++ [key_for(item)], "description", desc} | acc.strings], + path: acc.path + } + end + + defp process_desc(acc, _) do + acc + end + + defp process_label(acc, %{label: label} = item) do + %{ + strings: [{acc.path ++ [key_for(item)], "label", label} | acc.strings], + path: acc.path + } + end + + defp process_label(acc, _) do + acc + end + + defp process_children(%{children: children} = item, acc) do + current_level = Map.put(acc, :path, acc.path ++ [key_for(item)]) + + children + |> Enum.reduce(current_level, &process_item/2) + |> Map.put(:path, acc.path) + end + + defp process_children(_, acc) do + acc + end + + def msgctxt_for(path, type) do + "config #{type} at #{Enum.join(path, " > ")}" + end + + defp convert_group({_, group}) do + group + end + + defp convert_group(group) do + group + end + + def key_for(%{group: group, key: key}) do + "#{convert_group(group)}-#{key}" + end + + def key_for(%{group: group}) do + convert_group(group) + end + + def key_for(%{key: key}) do + key + end + + def key_for(_) do + nil + end +end diff --git a/lib/pleroma/ecto_enums.ex b/lib/pleroma/ecto_enums.ex index 2a9addabc..a4890b489 100644 --- a/lib/pleroma/ecto_enums.ex +++ b/lib/pleroma/ecto_enums.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only import EctoEnum @@ -9,7 +9,9 @@ mute: 2, reblog_mute: 3, notification_mute: 4, - inverse_subscription: 5 + inverse_subscription: 5, + suggestion_dismiss: 6, + endorsement: 7 ) defenum(Pleroma.FollowingRelationship.State, diff --git a/lib/pleroma/ecto_type/activity_pub/object_validators/date_time.ex b/lib/pleroma/ecto_type/activity_pub/object_validators/date_time.ex index 8552ae73d..b0258e86d 100644 --- a/lib/pleroma/ecto_type/activity_pub/object_validators/date_time.ex +++ b/lib/pleroma/ecto_type/activity_pub/object_validators/date_time.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.EctoType.ActivityPub.ObjectValidators.DateTime do diff --git a/lib/pleroma/ecto_type/activity_pub/object_validators/emoji.ex b/lib/pleroma/ecto_type/activity_pub/object_validators/emoji.ex index 96674e21f..e0e4449dc 100644 --- a/lib/pleroma/ecto_type/activity_pub/object_validators/emoji.ex +++ b/lib/pleroma/ecto_type/activity_pub/object_validators/emoji.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.EctoType.ActivityPub.ObjectValidators.Emoji do diff --git a/lib/pleroma/ecto_type/activity_pub/object_validators/object_id.ex b/lib/pleroma/ecto_type/activity_pub/object_validators/object_id.ex index 45bd6070a..663dc0dee 100644 --- a/lib/pleroma/ecto_type/activity_pub/object_validators/object_id.ex +++ b/lib/pleroma/ecto_type/activity_pub/object_validators/object_id.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.EctoType.ActivityPub.ObjectValidators.ObjectID do diff --git a/lib/pleroma/ecto_type/activity_pub/object_validators/recipients.ex b/lib/pleroma/ecto_type/activity_pub/object_validators/recipients.ex index 06fed8fb3..447d536ed 100644 --- a/lib/pleroma/ecto_type/activity_pub/object_validators/recipients.ex +++ b/lib/pleroma/ecto_type/activity_pub/object_validators/recipients.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.EctoType.ActivityPub.ObjectValidators.Recipients do diff --git a/lib/pleroma/ecto_type/activity_pub/object_validators/safe_text.ex b/lib/pleroma/ecto_type/activity_pub/object_validators/safe_text.ex index d0f5f381f..95bd3ba23 100644 --- a/lib/pleroma/ecto_type/activity_pub/object_validators/safe_text.ex +++ b/lib/pleroma/ecto_type/activity_pub/object_validators/safe_text.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.EctoType.ActivityPub.ObjectValidators.SafeText do diff --git a/lib/pleroma/ecto_type/activity_pub/object_validators/uri.ex b/lib/pleroma/ecto_type/activity_pub/object_validators/uri.ex index f5b68648c..b8e5c9dad 100644 --- a/lib/pleroma/ecto_type/activity_pub/object_validators/uri.ex +++ b/lib/pleroma/ecto_type/activity_pub/object_validators/uri.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.EctoType.ActivityPub.ObjectValidators.Uri do diff --git a/lib/pleroma/ecto_type/config/atom.ex b/lib/pleroma/ecto_type/config/atom.ex index 3bf0bca5b..c44d655e0 100644 --- a/lib/pleroma/ecto_type/config/atom.ex +++ b/lib/pleroma/ecto_type/config/atom.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.EctoType.Config.Atom do diff --git a/lib/pleroma/ecto_type/config/binary_value.ex b/lib/pleroma/ecto_type/config/binary_value.ex index 908220a65..4aad0cfce 100644 --- a/lib/pleroma/ecto_type/config/binary_value.ex +++ b/lib/pleroma/ecto_type/config/binary_value.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.EctoType.Config.BinaryValue do diff --git a/lib/pleroma/emails/admin_email.ex b/lib/pleroma/emails/admin_email.ex index 88bc78aec..372e5529d 100644 --- a/lib/pleroma/emails/admin_email.ex +++ b/lib/pleroma/emails/admin_email.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Emails.AdminEmail do diff --git a/lib/pleroma/emails/mailer.ex b/lib/pleroma/emails/mailer.ex index c68550bee..101442130 100644 --- a/lib/pleroma/emails/mailer.ex +++ b/lib/pleroma/emails/mailer.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Emails.Mailer do diff --git a/lib/pleroma/emails/new_users_digest_email.ex b/lib/pleroma/emails/new_users_digest_email.ex index 3552dedae..a9e57c7d4 100644 --- a/lib/pleroma/emails/new_users_digest_email.ex +++ b/lib/pleroma/emails/new_users_digest_email.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Emails.NewUsersDigestEmail do diff --git a/lib/pleroma/emails/user_email.ex b/lib/pleroma/emails/user_email.ex index e38c681ba..95b963764 100644 --- a/lib/pleroma/emails/user_email.ex +++ b/lib/pleroma/emails/user_email.ex @@ -1,13 +1,16 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Emails.UserEmail do @moduledoc "User emails" + require Pleroma.Web.Gettext + alias Pleroma.Config alias Pleroma.User alias Pleroma.Web.Endpoint + alias Pleroma.Web.Gettext alias Pleroma.Web.Router import Swoosh.Email @@ -27,29 +30,75 @@ defp recipient(%User{} = user), do: recipient(user.email, user.name) @spec welcome(User.t(), map()) :: Swoosh.Email.t() def welcome(user, opts \\ %{}) do - new() - |> to(recipient(user)) - |> from(Map.get(opts, :sender, sender())) - |> subject(Map.get(opts, :subject, "Welcome to #{instance_name()}!")) - |> html_body(Map.get(opts, :html, "Welcome to #{instance_name()}!")) - |> text_body(Map.get(opts, :text, "Welcome to #{instance_name()}!")) + Gettext.with_locale_or_default user.language do + new() + |> to(recipient(user)) + |> from(Map.get(opts, :sender, sender())) + |> subject( + Map.get( + opts, + :subject, + Gettext.dpgettext( + "static_pages", + "welcome email subject", + "Welcome to %{instance_name}!", + instance_name: instance_name() + ) + ) + ) + |> html_body( + Map.get( + opts, + :html, + Gettext.dpgettext( + "static_pages", + "welcome email html body", + "Welcome to %{instance_name}!", + instance_name: instance_name() + ) + ) + ) + |> text_body( + Map.get( + opts, + :text, + Gettext.dpgettext( + "static_pages", + "welcome email text body", + "Welcome to %{instance_name}!", + instance_name: instance_name() + ) + ) + ) + end end def password_reset_email(user, token) when is_binary(token) do - password_reset_url = Router.Helpers.reset_password_url(Endpoint, :reset, token) + Gettext.with_locale_or_default user.language do + password_reset_url = Router.Helpers.reset_password_url(Endpoint, :reset, token) - html_body = """ -

Reset your password at #{instance_name()}

-

Someone has requested password change for your account at #{instance_name()}.

-

If it was you, visit the following link to proceed: reset password.

-

If it was someone else, nothing to worry about: your data is secure and your password has not been changed.

- """ + html_body = + Gettext.dpgettext( + "static_pages", + "password reset email body", + """ +

Reset your password at %{instance_name}

+

Someone has requested password change for your account at %{instance_name}.

+

If it was you, visit the following link to proceed: reset password.

+

If it was someone else, nothing to worry about: your data is secure and your password has not been changed.

+ """, + instance_name: instance_name(), + password_reset_url: password_reset_url + ) - new() - |> to(recipient(user)) - |> from(sender()) - |> subject("Password reset") - |> html_body(html_body) + new() + |> to(recipient(user)) + |> from(sender()) + |> subject( + Gettext.dpgettext("static_pages", "password reset email subject", "Password reset") + ) + |> html_body(html_body) + end end def user_invitation_email( @@ -58,73 +107,136 @@ def user_invitation_email( to_email, to_name \\ nil ) do - registration_url = - Router.Helpers.redirect_url( - Endpoint, - :registration_page, - user_invite_token.token + Gettext.with_locale_or_default user.language do + registration_url = + Router.Helpers.redirect_url( + Endpoint, + :registration_page, + user_invite_token.token + ) + + html_body = + Gettext.dpgettext( + "static_pages", + "user invitation email body", + """ +

You are invited to %{instance_name}

+

%{inviter_name} invites you to join %{instance_name}, an instance of Pleroma federated social networking platform.

+

Click the following link to register: accept invitation.

+ """, + instance_name: instance_name(), + inviter_name: user.name, + registration_url: registration_url + ) + + new() + |> to(recipient(to_email, to_name)) + |> from(sender()) + |> subject( + Gettext.dpgettext( + "static_pages", + "user invitation email subject", + "Invitation to %{instance_name}", + instance_name: instance_name() + ) ) - - html_body = """ -

You are invited to #{instance_name()}

-

#{user.name} invites you to join #{instance_name()}, an instance of Pleroma federated social networking platform.

-

Click the following link to register: accept invitation.

- """ - - new() - |> to(recipient(to_email, to_name)) - |> from(sender()) - |> subject("Invitation to #{instance_name()}") - |> html_body(html_body) + |> html_body(html_body) + end end def account_confirmation_email(user) do - confirmation_url = - Router.Helpers.confirm_email_url( - Endpoint, - :confirm_email, - user.id, - to_string(user.confirmation_token) + Gettext.with_locale_or_default user.language do + confirmation_url = + Router.Helpers.confirm_email_url( + Endpoint, + :confirm_email, + user.id, + to_string(user.confirmation_token) + ) + + html_body = + Gettext.dpgettext( + "static_pages", + "confirmation email body", + """ +

Thank you for registering on %{instance_name}

+

Email confirmation is required to activate the account.

+

Please click the following link to activate your account.

+ """, + instance_name: instance_name(), + confirmation_url: confirmation_url + ) + + new() + |> to(recipient(user)) + |> from(sender()) + |> subject( + Gettext.dpgettext( + "static_pages", + "confirmation email subject", + "%{instance_name} account confirmation", + instance_name: instance_name() + ) ) - - html_body = """ -

Thank you for registering on #{instance_name()}

-

Email confirmation is required to activate the account.

-

Please click the following link to activate your account.

- """ - - new() - |> to(recipient(user)) - |> from(sender()) - |> subject("#{instance_name()} account confirmation") - |> html_body(html_body) + |> html_body(html_body) + end end def approval_pending_email(user) do - html_body = """ -

Awaiting Approval

-

Your account at #{instance_name()} is being reviewed by staff. You will receive another email once your account is approved.

- """ + Gettext.with_locale_or_default user.language do + html_body = + Gettext.dpgettext( + "static_pages", + "approval pending email body", + """ +

Awaiting Approval

+

Your account at %{instance_name} is being reviewed by staff. You will receive another email once your account is approved.

+ """, + instance_name: instance_name() + ) - new() - |> to(recipient(user)) - |> from(sender()) - |> subject("Your account is awaiting approval") - |> html_body(html_body) + new() + |> to(recipient(user)) + |> from(sender()) + |> subject( + Gettext.dpgettext( + "static_pages", + "approval pending email subject", + "Your account is awaiting approval" + ) + ) + |> html_body(html_body) + end end def successful_registration_email(user) do - html_body = """ -

Hello @#{user.nickname},

-

Your account at #{instance_name()} has been registered successfully.

-

No further action is required to activate your account.

- """ + Gettext.with_locale_or_default user.language do + html_body = + Gettext.dpgettext( + "static_pages", + "successful registration email body", + """ +

Hello @%{nickname},

+

Your account at %{instance_name} has been registered successfully.

+

No further action is required to activate your account.

+ """, + nickname: user.nickname, + instance_name: instance_name() + ) - new() - |> to(recipient(user)) - |> from(sender()) - |> subject("Account registered on #{instance_name()}") - |> html_body(html_body) + new() + |> to(recipient(user)) + |> from(sender()) + |> subject( + Gettext.dpgettext( + "static_pages", + "successful registration email subject", + "Account registered on %{instance_name}", + instance_name: instance_name() + ) + ) + |> html_body(html_body) + end end @doc """ @@ -134,69 +246,78 @@ def successful_registration_email(user) do """ @spec digest_email(User.t()) :: Swoosh.Email.t() | nil def digest_email(user) do - notifications = Pleroma.Notification.for_user_since(user, user.last_digest_emailed_at) + Gettext.with_locale_or_default user.language do + notifications = Pleroma.Notification.for_user_since(user, user.last_digest_emailed_at) - mentions = - notifications - |> Enum.filter(&(&1.activity.data["type"] == "Create")) - |> Enum.map(fn notification -> - object = Pleroma.Object.normalize(notification.activity, fetch: false) + mentions = + notifications + |> Enum.filter(&(&1.activity.data["type"] == "Create")) + |> Enum.map(fn notification -> + object = Pleroma.Object.normalize(notification.activity, fetch: false) - if not is_nil(object) do - object = update_in(object.data["content"], &format_links/1) + if not is_nil(object) do + object = update_in(object.data["content"], &format_links/1) - %{ - data: notification, - object: object, - from: User.get_by_ap_id(notification.activity.actor) - } - end - end) - |> Enum.filter(& &1) + %{ + data: notification, + object: object, + from: User.get_by_ap_id(notification.activity.actor) + } + end + end) + |> Enum.filter(& &1) - followers = - notifications - |> Enum.filter(&(&1.activity.data["type"] == "Follow")) - |> Enum.map(fn notification -> - from = User.get_by_ap_id(notification.activity.actor) + followers = + notifications + |> Enum.filter(&(&1.activity.data["type"] == "Follow")) + |> Enum.map(fn notification -> + from = User.get_by_ap_id(notification.activity.actor) - if not is_nil(from) do - %{ - data: notification, - object: Pleroma.Object.normalize(notification.activity, fetch: false), - from: User.get_by_ap_id(notification.activity.actor) - } - end - end) - |> Enum.filter(& &1) + if not is_nil(from) do + %{ + data: notification, + object: Pleroma.Object.normalize(notification.activity, fetch: false), + from: User.get_by_ap_id(notification.activity.actor) + } + end + end) + |> Enum.filter(& &1) - unless Enum.empty?(mentions) do - styling = Config.get([__MODULE__, :styling]) - logo = Config.get([__MODULE__, :logo]) + unless Enum.empty?(mentions) do + styling = Config.get([__MODULE__, :styling]) + logo = Config.get([__MODULE__, :logo]) - html_data = %{ - instance: instance_name(), - user: user, - mentions: mentions, - followers: followers, - unsubscribe_link: unsubscribe_url(user, "digest"), - styling: styling - } + html_data = %{ + instance: instance_name(), + user: user, + mentions: mentions, + followers: followers, + unsubscribe_link: unsubscribe_url(user, "digest"), + styling: styling + } - logo_path = - if is_nil(logo) do - Path.join(:code.priv_dir(:pleroma), "static/static/logo.svg") - else - Path.join(Config.get([:instance, :static_dir]), logo) - end + logo_path = + if is_nil(logo) do + Path.join(:code.priv_dir(:pleroma), "static/static/logo.svg") + else + Path.join(Config.get([:instance, :static_dir]), logo) + end - new() - |> to(recipient(user)) - |> from(sender()) - |> subject("Your digest from #{instance_name()}") - |> put_layout(false) - |> render_body("digest.html", html_data) - |> attachment(Swoosh.Attachment.new(logo_path, filename: "logo.svg", type: :inline)) + new() + |> to(recipient(user)) + |> from(sender()) + |> subject( + Gettext.dpgettext( + "static_pages", + "digest email subject", + "Your digest from %{instance_name}", + instance_name: instance_name() + ) + ) + |> put_layout(false) + |> render_body("digest.html", html_data) + |> attachment(Swoosh.Attachment.new(logo_path, filename: "logo.svg", type: :inline)) + end end end @@ -226,27 +347,47 @@ def unsubscribe_url(user, notifications_type) do def backup_is_ready_email(backup, admin_user_id \\ nil) do %{user: user} = Pleroma.Repo.preload(backup, :user) - download_url = Pleroma.Web.PleromaAPI.BackupView.download_url(backup) - html_body = - if is_nil(admin_user_id) do - """ -

You requested a full backup of your Pleroma account. It's ready for download:

-

#{download_url}

- """ - else - admin = Pleroma.Repo.get(User, admin_user_id) + Gettext.with_locale_or_default user.language do + download_url = Pleroma.Web.PleromaAPI.BackupView.download_url(backup) - """ -

Admin @#{admin.nickname} requested a full backup of your Pleroma account. It's ready for download:

-

#{download_url}

- """ - end + html_body = + if is_nil(admin_user_id) do + Gettext.dpgettext( + "static_pages", + "account archive email body - self-requested", + """ +

You requested a full backup of your Pleroma account. It's ready for download:

+

%{download_url}

+ """, + download_url: download_url + ) + else + admin = Pleroma.Repo.get(User, admin_user_id) - new() - |> to(recipient(user)) - |> from(sender()) - |> subject("Your account archive is ready") - |> html_body(html_body) + Gettext.dpgettext( + "static_pages", + "account archive email body - admin requested", + """ +

Admin @%{admin_nickname} requested a full backup of your Pleroma account. It's ready for download:

+

%{download_url}

+ """, + admin_nickname: admin.nickname, + download_url: download_url + ) + end + + new() + |> to(recipient(user)) + |> from(sender()) + |> subject( + Gettext.dpgettext( + "static_pages", + "account archive email subject", + "Your account archive is ready" + ) + ) + |> html_body(html_body) + end end end diff --git a/lib/pleroma/emoji-test.txt b/lib/pleroma/emoji-test.txt index d3c6d12bd..87d093d64 100644 --- a/lib/pleroma/emoji-test.txt +++ b/lib/pleroma/emoji-test.txt @@ -1,13 +1,13 @@ # emoji-test.txt -# Date: 2020-09-12, 22:19:50 GMT -# © 2020 Unicode®, Inc. +# Date: 2022-08-12, 20:24:39 GMT +# © 2022 Unicode®, Inc. # Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries. -# For terms of use, see http://www.unicode.org/terms_of_use.html +# For terms of use, see https://www.unicode.org/terms_of_use.html # # Emoji Keyboard/Display Test Data for UTS #51 -# Version: 13.1 +# Version: 15.0 # -# For documentation and usage, see http://www.unicode.org/reports/tr51 +# For documentation and usage, see https://www.unicode.org/reports/tr51 # # This file provides data for testing which emoji forms should be in keyboards and which should also be displayed/processed. # Format: code points; status # emoji name @@ -43,6 +43,7 @@ 1F602 ; fully-qualified # 😂 E0.6 face with tears of joy 1F642 ; fully-qualified # 🙂 E1.0 slightly smiling face 1F643 ; fully-qualified # 🙃 E1.0 upside-down face +1FAE0 ; fully-qualified # 🫠 E14.0 melting face 1F609 ; fully-qualified # 😉 E0.6 winking face 1F60A ; fully-qualified # 😊 E0.6 smiling face with smiling eyes 1F607 ; fully-qualified # 😇 E1.0 smiling face with halo @@ -68,10 +69,13 @@ 1F911 ; fully-qualified # 🤑 E1.0 money-mouth face # subgroup: face-hand -1F917 ; fully-qualified # 🤗 E1.0 hugging face +1F917 ; fully-qualified # 🤗 E1.0 smiling face with open hands 1F92D ; fully-qualified # 🤭 E5.0 face with hand over mouth +1FAE2 ; fully-qualified # 🫢 E14.0 face with open eyes and hand over mouth +1FAE3 ; fully-qualified # 🫣 E14.0 face with peeking eye 1F92B ; fully-qualified # 🤫 E5.0 shushing face 1F914 ; fully-qualified # 🤔 E1.0 thinking face +1FAE1 ; fully-qualified # 🫡 E14.0 saluting face # subgroup: face-neutral-skeptical 1F910 ; fully-qualified # 🤐 E1.0 zipper-mouth face @@ -79,6 +83,7 @@ 1F610 ; fully-qualified # 😐 E0.7 neutral face 1F611 ; fully-qualified # 😑 E1.0 expressionless face 1F636 ; fully-qualified # 😶 E1.0 face without mouth +1FAE5 ; fully-qualified # 🫥 E14.0 dotted line face 1F636 200D 1F32B FE0F ; fully-qualified # 😶‍🌫️ E13.1 face in clouds 1F636 200D 1F32B ; minimally-qualified # 😶‍🌫 E13.1 face in clouds 1F60F ; fully-qualified # 😏 E0.6 smirking face @@ -87,6 +92,7 @@ 1F62C ; fully-qualified # 😬 E1.0 grimacing face 1F62E 200D 1F4A8 ; fully-qualified # 😮‍💨 E13.1 face exhaling 1F925 ; fully-qualified # 🤥 E3.0 lying face +1FAE8 ; fully-qualified # 🫨 E15.0 shaking face # subgroup: face-sleepy 1F60C ; fully-qualified # 😌 E0.6 relieved face @@ -105,7 +111,7 @@ 1F975 ; fully-qualified # 🥵 E11.0 hot face 1F976 ; fully-qualified # 🥶 E11.0 cold face 1F974 ; fully-qualified # 🥴 E11.0 woozy face -1F635 ; fully-qualified # 😵 E0.6 knocked-out face +1F635 ; fully-qualified # 😵 E0.6 face with crossed-out eyes 1F635 200D 1F4AB ; fully-qualified # 😵‍💫 E13.1 face with spiral eyes 1F92F ; fully-qualified # 🤯 E5.0 exploding head @@ -121,6 +127,7 @@ # subgroup: face-concerned 1F615 ; fully-qualified # 😕 E1.0 confused face +1FAE4 ; fully-qualified # 🫤 E14.0 face with diagonal mouth 1F61F ; fully-qualified # 😟 E1.0 worried face 1F641 ; fully-qualified # 🙁 E1.0 slightly frowning face 2639 FE0F ; fully-qualified # ☹️ E0.7 frowning face @@ -130,6 +137,7 @@ 1F632 ; fully-qualified # 😲 E0.6 astonished face 1F633 ; fully-qualified # 😳 E0.6 flushed face 1F97A ; fully-qualified # 🥺 E11.0 pleading face +1F979 ; fully-qualified # 🥹 E14.0 face holding back tears 1F626 ; fully-qualified # 😦 E1.0 frowning face with open mouth 1F627 ; fully-qualified # 😧 E1.0 anguished face 1F628 ; fully-qualified # 😨 E0.6 fearful face @@ -148,7 +156,7 @@ # subgroup: face-negative 1F624 ; fully-qualified # 😤 E0.6 face with steam from nose -1F621 ; fully-qualified # 😡 E0.6 pouting face +1F621 ; fully-qualified # 😡 E0.6 enraged face 1F620 ; fully-qualified # 😠 E0.6 angry face 1F92C ; fully-qualified # 🤬 E5.0 face with symbols on mouth 1F608 ; fully-qualified # 😈 E1.0 smiling face with horns @@ -183,8 +191,7 @@ 1F649 ; fully-qualified # 🙉 E0.6 hear-no-evil monkey 1F64A ; fully-qualified # 🙊 E0.6 speak-no-evil monkey -# subgroup: emotion -1F48B ; fully-qualified # 💋 E0.6 kiss mark +# subgroup: heart 1F48C ; fully-qualified # 💌 E0.6 love letter 1F498 ; fully-qualified # 💘 E0.6 heart with arrow 1F49D ; fully-qualified # 💝 E0.6 heart with ribbon @@ -203,14 +210,20 @@ 2764 200D 1FA79 ; unqualified # ❤‍🩹 E13.1 mending heart 2764 FE0F ; fully-qualified # ❤️ E0.6 red heart 2764 ; unqualified # ❤ E0.6 red heart +1FA77 ; fully-qualified # 🩷 E15.0 pink heart 1F9E1 ; fully-qualified # 🧡 E5.0 orange heart 1F49B ; fully-qualified # 💛 E0.6 yellow heart 1F49A ; fully-qualified # 💚 E0.6 green heart 1F499 ; fully-qualified # 💙 E0.6 blue heart +1FA75 ; fully-qualified # 🩵 E15.0 light blue heart 1F49C ; fully-qualified # 💜 E0.6 purple heart 1F90E ; fully-qualified # 🤎 E12.0 brown heart 1F5A4 ; fully-qualified # 🖤 E3.0 black heart +1FA76 ; fully-qualified # 🩶 E15.0 grey heart 1F90D ; fully-qualified # 🤍 E12.0 white heart + +# subgroup: emotion +1F48B ; fully-qualified # 💋 E0.6 kiss mark 1F4AF ; fully-qualified # 💯 E0.6 hundred points 1F4A2 ; fully-qualified # 💢 E0.6 anger symbol 1F4A5 ; fully-qualified # 💥 E0.6 collision @@ -219,21 +232,20 @@ 1F4A8 ; fully-qualified # 💨 E0.6 dashing away 1F573 FE0F ; fully-qualified # 🕳️ E0.7 hole 1F573 ; unqualified # 🕳 E0.7 hole -1F4A3 ; fully-qualified # 💣 E0.6 bomb 1F4AC ; fully-qualified # 💬 E0.6 speech balloon 1F441 FE0F 200D 1F5E8 FE0F ; fully-qualified # 👁️‍🗨️ E2.0 eye in speech bubble 1F441 200D 1F5E8 FE0F ; unqualified # 👁‍🗨️ E2.0 eye in speech bubble -1F441 FE0F 200D 1F5E8 ; unqualified # 👁️‍🗨 E2.0 eye in speech bubble +1F441 FE0F 200D 1F5E8 ; minimally-qualified # 👁️‍🗨 E2.0 eye in speech bubble 1F441 200D 1F5E8 ; unqualified # 👁‍🗨 E2.0 eye in speech bubble 1F5E8 FE0F ; fully-qualified # 🗨️ E2.0 left speech bubble 1F5E8 ; unqualified # 🗨 E2.0 left speech bubble 1F5EF FE0F ; fully-qualified # 🗯️ E0.7 right anger bubble 1F5EF ; unqualified # 🗯 E0.7 right anger bubble 1F4AD ; fully-qualified # 💭 E1.0 thought balloon -1F4A4 ; fully-qualified # 💤 E0.6 zzz +1F4A4 ; fully-qualified # 💤 E0.6 ZZZ -# Smileys & Emotion subtotal: 170 -# Smileys & Emotion subtotal: 170 w/o modifiers +# Smileys & Emotion subtotal: 180 +# Smileys & Emotion subtotal: 180 w/o modifiers # group: People & Body @@ -269,6 +281,42 @@ 1F596 1F3FD ; fully-qualified # 🖖🏽 E1.0 vulcan salute: medium skin tone 1F596 1F3FE ; fully-qualified # 🖖🏾 E1.0 vulcan salute: medium-dark skin tone 1F596 1F3FF ; fully-qualified # 🖖🏿 E1.0 vulcan salute: dark skin tone +1FAF1 ; fully-qualified # 🫱 E14.0 rightwards hand +1FAF1 1F3FB ; fully-qualified # 🫱🏻 E14.0 rightwards hand: light skin tone +1FAF1 1F3FC ; fully-qualified # 🫱🏼 E14.0 rightwards hand: medium-light skin tone +1FAF1 1F3FD ; fully-qualified # 🫱🏽 E14.0 rightwards hand: medium skin tone +1FAF1 1F3FE ; fully-qualified # 🫱🏾 E14.0 rightwards hand: medium-dark skin tone +1FAF1 1F3FF ; fully-qualified # 🫱🏿 E14.0 rightwards hand: dark skin tone +1FAF2 ; fully-qualified # 🫲 E14.0 leftwards hand +1FAF2 1F3FB ; fully-qualified # 🫲🏻 E14.0 leftwards hand: light skin tone +1FAF2 1F3FC ; fully-qualified # 🫲🏼 E14.0 leftwards hand: medium-light skin tone +1FAF2 1F3FD ; fully-qualified # 🫲🏽 E14.0 leftwards hand: medium skin tone +1FAF2 1F3FE ; fully-qualified # 🫲🏾 E14.0 leftwards hand: medium-dark skin tone +1FAF2 1F3FF ; fully-qualified # 🫲🏿 E14.0 leftwards hand: dark skin tone +1FAF3 ; fully-qualified # 🫳 E14.0 palm down hand +1FAF3 1F3FB ; fully-qualified # 🫳🏻 E14.0 palm down hand: light skin tone +1FAF3 1F3FC ; fully-qualified # 🫳🏼 E14.0 palm down hand: medium-light skin tone +1FAF3 1F3FD ; fully-qualified # 🫳🏽 E14.0 palm down hand: medium skin tone +1FAF3 1F3FE ; fully-qualified # 🫳🏾 E14.0 palm down hand: medium-dark skin tone +1FAF3 1F3FF ; fully-qualified # 🫳🏿 E14.0 palm down hand: dark skin tone +1FAF4 ; fully-qualified # 🫴 E14.0 palm up hand +1FAF4 1F3FB ; fully-qualified # 🫴🏻 E14.0 palm up hand: light skin tone +1FAF4 1F3FC ; fully-qualified # 🫴🏼 E14.0 palm up hand: medium-light skin tone +1FAF4 1F3FD ; fully-qualified # 🫴🏽 E14.0 palm up hand: medium skin tone +1FAF4 1F3FE ; fully-qualified # 🫴🏾 E14.0 palm up hand: medium-dark skin tone +1FAF4 1F3FF ; fully-qualified # 🫴🏿 E14.0 palm up hand: dark skin tone +1FAF7 ; fully-qualified # 🫷 E15.0 leftwards pushing hand +1FAF7 1F3FB ; fully-qualified # 🫷🏻 E15.0 leftwards pushing hand: light skin tone +1FAF7 1F3FC ; fully-qualified # 🫷🏼 E15.0 leftwards pushing hand: medium-light skin tone +1FAF7 1F3FD ; fully-qualified # 🫷🏽 E15.0 leftwards pushing hand: medium skin tone +1FAF7 1F3FE ; fully-qualified # 🫷🏾 E15.0 leftwards pushing hand: medium-dark skin tone +1FAF7 1F3FF ; fully-qualified # 🫷🏿 E15.0 leftwards pushing hand: dark skin tone +1FAF8 ; fully-qualified # 🫸 E15.0 rightwards pushing hand +1FAF8 1F3FB ; fully-qualified # 🫸🏻 E15.0 rightwards pushing hand: light skin tone +1FAF8 1F3FC ; fully-qualified # 🫸🏼 E15.0 rightwards pushing hand: medium-light skin tone +1FAF8 1F3FD ; fully-qualified # 🫸🏽 E15.0 rightwards pushing hand: medium skin tone +1FAF8 1F3FE ; fully-qualified # 🫸🏾 E15.0 rightwards pushing hand: medium-dark skin tone +1FAF8 1F3FF ; fully-qualified # 🫸🏿 E15.0 rightwards pushing hand: dark skin tone # subgroup: hand-fingers-partial 1F44C ; fully-qualified # 👌 E0.6 OK hand @@ -302,6 +350,12 @@ 1F91E 1F3FD ; fully-qualified # 🤞🏽 E3.0 crossed fingers: medium skin tone 1F91E 1F3FE ; fully-qualified # 🤞🏾 E3.0 crossed fingers: medium-dark skin tone 1F91E 1F3FF ; fully-qualified # 🤞🏿 E3.0 crossed fingers: dark skin tone +1FAF0 ; fully-qualified # 🫰 E14.0 hand with index finger and thumb crossed +1FAF0 1F3FB ; fully-qualified # 🫰🏻 E14.0 hand with index finger and thumb crossed: light skin tone +1FAF0 1F3FC ; fully-qualified # 🫰🏼 E14.0 hand with index finger and thumb crossed: medium-light skin tone +1FAF0 1F3FD ; fully-qualified # 🫰🏽 E14.0 hand with index finger and thumb crossed: medium skin tone +1FAF0 1F3FE ; fully-qualified # 🫰🏾 E14.0 hand with index finger and thumb crossed: medium-dark skin tone +1FAF0 1F3FF ; fully-qualified # 🫰🏿 E14.0 hand with index finger and thumb crossed: dark skin tone 1F91F ; fully-qualified # 🤟 E5.0 love-you gesture 1F91F 1F3FB ; fully-qualified # 🤟🏻 E5.0 love-you gesture: light skin tone 1F91F 1F3FC ; fully-qualified # 🤟🏼 E5.0 love-you gesture: medium-light skin tone @@ -359,6 +413,12 @@ 261D 1F3FD ; fully-qualified # ☝🏽 E1.0 index pointing up: medium skin tone 261D 1F3FE ; fully-qualified # ☝🏾 E1.0 index pointing up: medium-dark skin tone 261D 1F3FF ; fully-qualified # ☝🏿 E1.0 index pointing up: dark skin tone +1FAF5 ; fully-qualified # 🫵 E14.0 index pointing at the viewer +1FAF5 1F3FB ; fully-qualified # 🫵🏻 E14.0 index pointing at the viewer: light skin tone +1FAF5 1F3FC ; fully-qualified # 🫵🏼 E14.0 index pointing at the viewer: medium-light skin tone +1FAF5 1F3FD ; fully-qualified # 🫵🏽 E14.0 index pointing at the viewer: medium skin tone +1FAF5 1F3FE ; fully-qualified # 🫵🏾 E14.0 index pointing at the viewer: medium-dark skin tone +1FAF5 1F3FF ; fully-qualified # 🫵🏿 E14.0 index pointing at the viewer: dark skin tone # subgroup: hand-fingers-closed 1F44D ; fully-qualified # 👍 E0.6 thumbs up @@ -411,6 +471,12 @@ 1F64C 1F3FD ; fully-qualified # 🙌🏽 E1.0 raising hands: medium skin tone 1F64C 1F3FE ; fully-qualified # 🙌🏾 E1.0 raising hands: medium-dark skin tone 1F64C 1F3FF ; fully-qualified # 🙌🏿 E1.0 raising hands: dark skin tone +1FAF6 ; fully-qualified # 🫶 E14.0 heart hands +1FAF6 1F3FB ; fully-qualified # 🫶🏻 E14.0 heart hands: light skin tone +1FAF6 1F3FC ; fully-qualified # 🫶🏼 E14.0 heart hands: medium-light skin tone +1FAF6 1F3FD ; fully-qualified # 🫶🏽 E14.0 heart hands: medium skin tone +1FAF6 1F3FE ; fully-qualified # 🫶🏾 E14.0 heart hands: medium-dark skin tone +1FAF6 1F3FF ; fully-qualified # 🫶🏿 E14.0 heart hands: dark skin tone 1F450 ; fully-qualified # 👐 E0.6 open hands 1F450 1F3FB ; fully-qualified # 👐🏻 E1.0 open hands: light skin tone 1F450 1F3FC ; fully-qualified # 👐🏼 E1.0 open hands: medium-light skin tone @@ -424,6 +490,31 @@ 1F932 1F3FE ; fully-qualified # 🤲🏾 E5.0 palms up together: medium-dark skin tone 1F932 1F3FF ; fully-qualified # 🤲🏿 E5.0 palms up together: dark skin tone 1F91D ; fully-qualified # 🤝 E3.0 handshake +1F91D 1F3FB ; fully-qualified # 🤝🏻 E14.0 handshake: light skin tone +1F91D 1F3FC ; fully-qualified # 🤝🏼 E14.0 handshake: medium-light skin tone +1F91D 1F3FD ; fully-qualified # 🤝🏽 E14.0 handshake: medium skin tone +1F91D 1F3FE ; fully-qualified # 🤝🏾 E14.0 handshake: medium-dark skin tone +1F91D 1F3FF ; fully-qualified # 🤝🏿 E14.0 handshake: dark skin tone +1FAF1 1F3FB 200D 1FAF2 1F3FC ; fully-qualified # 🫱🏻‍🫲🏼 E14.0 handshake: light skin tone, medium-light skin tone +1FAF1 1F3FB 200D 1FAF2 1F3FD ; fully-qualified # 🫱🏻‍🫲🏽 E14.0 handshake: light skin tone, medium skin tone +1FAF1 1F3FB 200D 1FAF2 1F3FE ; fully-qualified # 🫱🏻‍🫲🏾 E14.0 handshake: light skin tone, medium-dark skin tone +1FAF1 1F3FB 200D 1FAF2 1F3FF ; fully-qualified # 🫱🏻‍🫲🏿 E14.0 handshake: light skin tone, dark skin tone +1FAF1 1F3FC 200D 1FAF2 1F3FB ; fully-qualified # 🫱🏼‍🫲🏻 E14.0 handshake: medium-light skin tone, light skin tone +1FAF1 1F3FC 200D 1FAF2 1F3FD ; fully-qualified # 🫱🏼‍🫲🏽 E14.0 handshake: medium-light skin tone, medium skin tone +1FAF1 1F3FC 200D 1FAF2 1F3FE ; fully-qualified # 🫱🏼‍🫲🏾 E14.0 handshake: medium-light skin tone, medium-dark skin tone +1FAF1 1F3FC 200D 1FAF2 1F3FF ; fully-qualified # 🫱🏼‍🫲🏿 E14.0 handshake: medium-light skin tone, dark skin tone +1FAF1 1F3FD 200D 1FAF2 1F3FB ; fully-qualified # 🫱🏽‍🫲🏻 E14.0 handshake: medium skin tone, light skin tone +1FAF1 1F3FD 200D 1FAF2 1F3FC ; fully-qualified # 🫱🏽‍🫲🏼 E14.0 handshake: medium skin tone, medium-light skin tone +1FAF1 1F3FD 200D 1FAF2 1F3FE ; fully-qualified # 🫱🏽‍🫲🏾 E14.0 handshake: medium skin tone, medium-dark skin tone +1FAF1 1F3FD 200D 1FAF2 1F3FF ; fully-qualified # 🫱🏽‍🫲🏿 E14.0 handshake: medium skin tone, dark skin tone +1FAF1 1F3FE 200D 1FAF2 1F3FB ; fully-qualified # 🫱🏾‍🫲🏻 E14.0 handshake: medium-dark skin tone, light skin tone +1FAF1 1F3FE 200D 1FAF2 1F3FC ; fully-qualified # 🫱🏾‍🫲🏼 E14.0 handshake: medium-dark skin tone, medium-light skin tone +1FAF1 1F3FE 200D 1FAF2 1F3FD ; fully-qualified # 🫱🏾‍🫲🏽 E14.0 handshake: medium-dark skin tone, medium skin tone +1FAF1 1F3FE 200D 1FAF2 1F3FF ; fully-qualified # 🫱🏾‍🫲🏿 E14.0 handshake: medium-dark skin tone, dark skin tone +1FAF1 1F3FF 200D 1FAF2 1F3FB ; fully-qualified # 🫱🏿‍🫲🏻 E14.0 handshake: dark skin tone, light skin tone +1FAF1 1F3FF 200D 1FAF2 1F3FC ; fully-qualified # 🫱🏿‍🫲🏼 E14.0 handshake: dark skin tone, medium-light skin tone +1FAF1 1F3FF 200D 1FAF2 1F3FD ; fully-qualified # 🫱🏿‍🫲🏽 E14.0 handshake: dark skin tone, medium skin tone +1FAF1 1F3FF 200D 1FAF2 1F3FE ; fully-qualified # 🫱🏿‍🫲🏾 E14.0 handshake: dark skin tone, medium-dark skin tone 1F64F ; fully-qualified # 🙏 E0.6 folded hands 1F64F 1F3FB ; fully-qualified # 🙏🏻 E1.0 folded hands: light skin tone 1F64F 1F3FC ; fully-qualified # 🙏🏼 E1.0 folded hands: medium-light skin tone @@ -501,6 +592,7 @@ 1F441 ; unqualified # 👁 E0.7 eye 1F445 ; fully-qualified # 👅 E0.6 tongue 1F444 ; fully-qualified # 👄 E0.6 mouth +1FAE6 ; fully-qualified # 🫦 E14.0 biting lip # subgroup: person 1F476 ; fully-qualified # 👶 E0.6 baby @@ -1380,7 +1472,7 @@ 1F575 1F3FF ; fully-qualified # 🕵🏿 E2.0 detective: dark skin tone 1F575 FE0F 200D 2642 FE0F ; fully-qualified # 🕵️‍♂️ E4.0 man detective 1F575 200D 2642 FE0F ; unqualified # 🕵‍♂️ E4.0 man detective -1F575 FE0F 200D 2642 ; unqualified # 🕵️‍♂ E4.0 man detective +1F575 FE0F 200D 2642 ; minimally-qualified # 🕵️‍♂ E4.0 man detective 1F575 200D 2642 ; unqualified # 🕵‍♂ E4.0 man detective 1F575 1F3FB 200D 2642 FE0F ; fully-qualified # 🕵🏻‍♂️ E4.0 man detective: light skin tone 1F575 1F3FB 200D 2642 ; minimally-qualified # 🕵🏻‍♂ E4.0 man detective: light skin tone @@ -1394,7 +1486,7 @@ 1F575 1F3FF 200D 2642 ; minimally-qualified # 🕵🏿‍♂ E4.0 man detective: dark skin tone 1F575 FE0F 200D 2640 FE0F ; fully-qualified # 🕵️‍♀️ E4.0 woman detective 1F575 200D 2640 FE0F ; unqualified # 🕵‍♀️ E4.0 woman detective -1F575 FE0F 200D 2640 ; unqualified # 🕵️‍♀ E4.0 woman detective +1F575 FE0F 200D 2640 ; minimally-qualified # 🕵️‍♀ E4.0 woman detective 1F575 200D 2640 ; unqualified # 🕵‍♀ E4.0 woman detective 1F575 1F3FB 200D 2640 FE0F ; fully-qualified # 🕵🏻‍♀️ E4.0 woman detective: light skin tone 1F575 1F3FB 200D 2640 ; minimally-qualified # 🕵🏻‍♀ E4.0 woman detective: light skin tone @@ -1472,6 +1564,12 @@ 1F477 1F3FE 200D 2640 ; minimally-qualified # 👷🏾‍♀ E4.0 woman construction worker: medium-dark skin tone 1F477 1F3FF 200D 2640 FE0F ; fully-qualified # 👷🏿‍♀️ E4.0 woman construction worker: dark skin tone 1F477 1F3FF 200D 2640 ; minimally-qualified # 👷🏿‍♀ E4.0 woman construction worker: dark skin tone +1FAC5 ; fully-qualified # 🫅 E14.0 person with crown +1FAC5 1F3FB ; fully-qualified # 🫅🏻 E14.0 person with crown: light skin tone +1FAC5 1F3FC ; fully-qualified # 🫅🏼 E14.0 person with crown: medium-light skin tone +1FAC5 1F3FD ; fully-qualified # 🫅🏽 E14.0 person with crown: medium skin tone +1FAC5 1F3FE ; fully-qualified # 🫅🏾 E14.0 person with crown: medium-dark skin tone +1FAC5 1F3FF ; fully-qualified # 🫅🏿 E14.0 person with crown: dark skin tone 1F934 ; fully-qualified # 🤴 E3.0 prince 1F934 1F3FB ; fully-qualified # 🤴🏻 E3.0 prince: light skin tone 1F934 1F3FC ; fully-qualified # 🤴🏼 E3.0 prince: medium-light skin tone @@ -1592,6 +1690,18 @@ 1F930 1F3FD ; fully-qualified # 🤰🏽 E3.0 pregnant woman: medium skin tone 1F930 1F3FE ; fully-qualified # 🤰🏾 E3.0 pregnant woman: medium-dark skin tone 1F930 1F3FF ; fully-qualified # 🤰🏿 E3.0 pregnant woman: dark skin tone +1FAC3 ; fully-qualified # 🫃 E14.0 pregnant man +1FAC3 1F3FB ; fully-qualified # 🫃🏻 E14.0 pregnant man: light skin tone +1FAC3 1F3FC ; fully-qualified # 🫃🏼 E14.0 pregnant man: medium-light skin tone +1FAC3 1F3FD ; fully-qualified # 🫃🏽 E14.0 pregnant man: medium skin tone +1FAC3 1F3FE ; fully-qualified # 🫃🏾 E14.0 pregnant man: medium-dark skin tone +1FAC3 1F3FF ; fully-qualified # 🫃🏿 E14.0 pregnant man: dark skin tone +1FAC4 ; fully-qualified # 🫄 E14.0 pregnant person +1FAC4 1F3FB ; fully-qualified # 🫄🏻 E14.0 pregnant person: light skin tone +1FAC4 1F3FC ; fully-qualified # 🫄🏼 E14.0 pregnant person: medium-light skin tone +1FAC4 1F3FD ; fully-qualified # 🫄🏽 E14.0 pregnant person: medium skin tone +1FAC4 1F3FE ; fully-qualified # 🫄🏾 E14.0 pregnant person: medium-dark skin tone +1FAC4 1F3FF ; fully-qualified # 🫄🏿 E14.0 pregnant person: dark skin tone 1F931 ; fully-qualified # 🤱 E5.0 breast-feeding 1F931 1F3FB ; fully-qualified # 🤱🏻 E5.0 breast-feeding: light skin tone 1F931 1F3FC ; fully-qualified # 🤱🏼 E5.0 breast-feeding: medium-light skin tone @@ -1862,6 +1972,7 @@ 1F9DF 200D 2642 ; minimally-qualified # 🧟‍♂ E5.0 man zombie 1F9DF 200D 2640 FE0F ; fully-qualified # 🧟‍♀️ E5.0 woman zombie 1F9DF 200D 2640 ; minimally-qualified # 🧟‍♀ E5.0 woman zombie +1F9CC ; fully-qualified # 🧌 E14.0 troll # subgroup: person-activity 1F486 ; fully-qualified # 💆 E0.6 person getting massage @@ -2208,7 +2319,7 @@ 1F3CC 1F3FF ; fully-qualified # 🏌🏿 E4.0 person golfing: dark skin tone 1F3CC FE0F 200D 2642 FE0F ; fully-qualified # 🏌️‍♂️ E4.0 man golfing 1F3CC 200D 2642 FE0F ; unqualified # 🏌‍♂️ E4.0 man golfing -1F3CC FE0F 200D 2642 ; unqualified # 🏌️‍♂ E4.0 man golfing +1F3CC FE0F 200D 2642 ; minimally-qualified # 🏌️‍♂ E4.0 man golfing 1F3CC 200D 2642 ; unqualified # 🏌‍♂ E4.0 man golfing 1F3CC 1F3FB 200D 2642 FE0F ; fully-qualified # 🏌🏻‍♂️ E4.0 man golfing: light skin tone 1F3CC 1F3FB 200D 2642 ; minimally-qualified # 🏌🏻‍♂ E4.0 man golfing: light skin tone @@ -2222,7 +2333,7 @@ 1F3CC 1F3FF 200D 2642 ; minimally-qualified # 🏌🏿‍♂ E4.0 man golfing: dark skin tone 1F3CC FE0F 200D 2640 FE0F ; fully-qualified # 🏌️‍♀️ E4.0 woman golfing 1F3CC 200D 2640 FE0F ; unqualified # 🏌‍♀️ E4.0 woman golfing -1F3CC FE0F 200D 2640 ; unqualified # 🏌️‍♀ E4.0 woman golfing +1F3CC FE0F 200D 2640 ; minimally-qualified # 🏌️‍♀ E4.0 woman golfing 1F3CC 200D 2640 ; unqualified # 🏌‍♀ E4.0 woman golfing 1F3CC 1F3FB 200D 2640 FE0F ; fully-qualified # 🏌🏻‍♀️ E4.0 woman golfing: light skin tone 1F3CC 1F3FB 200D 2640 ; minimally-qualified # 🏌🏻‍♀ E4.0 woman golfing: light skin tone @@ -2333,7 +2444,7 @@ 26F9 1F3FF ; fully-qualified # ⛹🏿 E2.0 person bouncing ball: dark skin tone 26F9 FE0F 200D 2642 FE0F ; fully-qualified # ⛹️‍♂️ E4.0 man bouncing ball 26F9 200D 2642 FE0F ; unqualified # ⛹‍♂️ E4.0 man bouncing ball -26F9 FE0F 200D 2642 ; unqualified # ⛹️‍♂ E4.0 man bouncing ball +26F9 FE0F 200D 2642 ; minimally-qualified # ⛹️‍♂ E4.0 man bouncing ball 26F9 200D 2642 ; unqualified # ⛹‍♂ E4.0 man bouncing ball 26F9 1F3FB 200D 2642 FE0F ; fully-qualified # ⛹🏻‍♂️ E4.0 man bouncing ball: light skin tone 26F9 1F3FB 200D 2642 ; minimally-qualified # ⛹🏻‍♂ E4.0 man bouncing ball: light skin tone @@ -2347,7 +2458,7 @@ 26F9 1F3FF 200D 2642 ; minimally-qualified # ⛹🏿‍♂ E4.0 man bouncing ball: dark skin tone 26F9 FE0F 200D 2640 FE0F ; fully-qualified # ⛹️‍♀️ E4.0 woman bouncing ball 26F9 200D 2640 FE0F ; unqualified # ⛹‍♀️ E4.0 woman bouncing ball -26F9 FE0F 200D 2640 ; unqualified # ⛹️‍♀ E4.0 woman bouncing ball +26F9 FE0F 200D 2640 ; minimally-qualified # ⛹️‍♀ E4.0 woman bouncing ball 26F9 200D 2640 ; unqualified # ⛹‍♀ E4.0 woman bouncing ball 26F9 1F3FB 200D 2640 FE0F ; fully-qualified # ⛹🏻‍♀️ E4.0 woman bouncing ball: light skin tone 26F9 1F3FB 200D 2640 ; minimally-qualified # ⛹🏻‍♀ E4.0 woman bouncing ball: light skin tone @@ -2368,7 +2479,7 @@ 1F3CB 1F3FF ; fully-qualified # 🏋🏿 E2.0 person lifting weights: dark skin tone 1F3CB FE0F 200D 2642 FE0F ; fully-qualified # 🏋️‍♂️ E4.0 man lifting weights 1F3CB 200D 2642 FE0F ; unqualified # 🏋‍♂️ E4.0 man lifting weights -1F3CB FE0F 200D 2642 ; unqualified # 🏋️‍♂ E4.0 man lifting weights +1F3CB FE0F 200D 2642 ; minimally-qualified # 🏋️‍♂ E4.0 man lifting weights 1F3CB 200D 2642 ; unqualified # 🏋‍♂ E4.0 man lifting weights 1F3CB 1F3FB 200D 2642 FE0F ; fully-qualified # 🏋🏻‍♂️ E4.0 man lifting weights: light skin tone 1F3CB 1F3FB 200D 2642 ; minimally-qualified # 🏋🏻‍♂ E4.0 man lifting weights: light skin tone @@ -2382,7 +2493,7 @@ 1F3CB 1F3FF 200D 2642 ; minimally-qualified # 🏋🏿‍♂ E4.0 man lifting weights: dark skin tone 1F3CB FE0F 200D 2640 FE0F ; fully-qualified # 🏋️‍♀️ E4.0 woman lifting weights 1F3CB 200D 2640 FE0F ; unqualified # 🏋‍♀️ E4.0 woman lifting weights -1F3CB FE0F 200D 2640 ; unqualified # 🏋️‍♀ E4.0 woman lifting weights +1F3CB FE0F 200D 2640 ; minimally-qualified # 🏋️‍♀ E4.0 woman lifting weights 1F3CB 200D 2640 ; unqualified # 🏋‍♀ E4.0 woman lifting weights 1F3CB 1F3FB 200D 2640 FE0F ; fully-qualified # 🏋🏻‍♀️ E4.0 woman lifting weights: light skin tone 1F3CB 1F3FB 200D 2640 ; minimally-qualified # 🏋🏻‍♀ E4.0 woman lifting weights: light skin tone @@ -3168,8 +3279,8 @@ 1FAC2 ; fully-qualified # 🫂 E13.0 people hugging 1F463 ; fully-qualified # 👣 E0.6 footprints -# People & Body subtotal: 2899 -# People & Body subtotal: 494 w/o modifiers +# People & Body subtotal: 2998 +# People & Body subtotal: 508 w/o modifiers # group: Component @@ -3212,6 +3323,8 @@ 1F405 ; fully-qualified # 🐅 E1.0 tiger 1F406 ; fully-qualified # 🐆 E1.0 leopard 1F434 ; fully-qualified # 🐴 E0.6 horse face +1FACE ; fully-qualified # 🫎 E15.0 moose +1FACF ; fully-qualified # 🫏 E15.0 donkey 1F40E ; fully-qualified # 🐎 E0.6 horse 1F984 ; fully-qualified # 🦄 E1.0 unicorn 1F993 ; fully-qualified # 🦓 E5.0 zebra @@ -3279,6 +3392,9 @@ 1F9A9 ; fully-qualified # 🦩 E12.0 flamingo 1F99A ; fully-qualified # 🦚 E11.0 peacock 1F99C ; fully-qualified # 🦜 E11.0 parrot +1FABD ; fully-qualified # 🪽 E15.0 wing +1F426 200D 2B1B ; fully-qualified # 🐦‍⬛ E15.0 black bird +1FABF ; fully-qualified # 🪿 E15.0 goose # subgroup: animal-amphibian 1F438 ; fully-qualified # 🐸 E0.6 frog @@ -3304,6 +3420,8 @@ 1F988 ; fully-qualified # 🦈 E3.0 shark 1F419 ; fully-qualified # 🐙 E0.6 octopus 1F41A ; fully-qualified # 🐚 E0.6 spiral shell +1FAB8 ; fully-qualified # 🪸 E14.0 coral +1FABC ; fully-qualified # 🪼 E15.0 jellyfish # subgroup: animal-bug 1F40C ; fully-qualified # 🐌 E0.6 snail @@ -3329,6 +3447,7 @@ 1F490 ; fully-qualified # 💐 E0.6 bouquet 1F338 ; fully-qualified # 🌸 E0.6 cherry blossom 1F4AE ; fully-qualified # 💮 E0.6 white flower +1FAB7 ; fully-qualified # 🪷 E14.0 lotus 1F3F5 FE0F ; fully-qualified # 🏵️ E0.7 rosette 1F3F5 ; unqualified # 🏵 E0.7 rosette 1F339 ; fully-qualified # 🌹 E0.6 rose @@ -3337,6 +3456,7 @@ 1F33B ; fully-qualified # 🌻 E0.6 sunflower 1F33C ; fully-qualified # 🌼 E0.6 blossom 1F337 ; fully-qualified # 🌷 E0.6 tulip +1FABB ; fully-qualified # 🪻 E15.0 hyacinth # subgroup: plant-other 1F331 ; fully-qualified # 🌱 E0.6 seedling @@ -3353,9 +3473,12 @@ 1F341 ; fully-qualified # 🍁 E0.6 maple leaf 1F342 ; fully-qualified # 🍂 E0.6 fallen leaf 1F343 ; fully-qualified # 🍃 E0.6 leaf fluttering in wind +1FAB9 ; fully-qualified # 🪹 E14.0 empty nest +1FABA ; fully-qualified # 🪺 E14.0 nest with eggs +1F344 ; fully-qualified # 🍄 E0.6 mushroom -# Animals & Nature subtotal: 147 -# Animals & Nature subtotal: 147 w/o modifiers +# Animals & Nature subtotal: 159 +# Animals & Nature subtotal: 159 w/o modifiers # group: Food & Drink @@ -3394,9 +3517,11 @@ 1F966 ; fully-qualified # 🥦 E5.0 broccoli 1F9C4 ; fully-qualified # 🧄 E12.0 garlic 1F9C5 ; fully-qualified # 🧅 E12.0 onion -1F344 ; fully-qualified # 🍄 E0.6 mushroom 1F95C ; fully-qualified # 🥜 E3.0 peanuts +1FAD8 ; fully-qualified # 🫘 E14.0 beans 1F330 ; fully-qualified # 🌰 E0.6 chestnut +1FADA ; fully-qualified # 🫚 E15.0 ginger root +1FADB ; fully-qualified # 🫛 E15.0 pea pod # subgroup: food-prepared 1F35E ; fully-qualified # 🍞 E0.6 bread @@ -3491,6 +3616,7 @@ 1F37B ; fully-qualified # 🍻 E0.6 clinking beer mugs 1F942 ; fully-qualified # 🥂 E3.0 clinking glasses 1F943 ; fully-qualified # 🥃 E3.0 tumbler glass +1FAD7 ; fully-qualified # 🫗 E14.0 pouring liquid 1F964 ; fully-qualified # 🥤 E5.0 cup with straw 1F9CB ; fully-qualified # 🧋 E13.0 bubble tea 1F9C3 ; fully-qualified # 🧃 E12.0 beverage box @@ -3504,10 +3630,11 @@ 1F374 ; fully-qualified # 🍴 E0.6 fork and knife 1F944 ; fully-qualified # 🥄 E3.0 spoon 1F52A ; fully-qualified # 🔪 E0.6 kitchen knife +1FAD9 ; fully-qualified # 🫙 E14.0 jar 1F3FA ; fully-qualified # 🏺 E1.0 amphora -# Food & Drink subtotal: 131 -# Food & Drink subtotal: 131 w/o modifiers +# Food & Drink subtotal: 135 +# Food & Drink subtotal: 135 w/o modifiers # group: Travel & Places @@ -3597,6 +3724,7 @@ 2668 FE0F ; fully-qualified # ♨️ E0.6 hot springs 2668 ; unqualified # ♨ E0.6 hot springs 1F3A0 ; fully-qualified # 🎠 E0.6 carousel horse +1F6DD ; fully-qualified # 🛝 E14.0 playground slide 1F3A1 ; fully-qualified # 🎡 E0.6 ferris wheel 1F3A2 ; fully-qualified # 🎢 E0.6 roller coaster 1F488 ; fully-qualified # 💈 E0.6 barber pole @@ -3652,6 +3780,7 @@ 1F6E2 FE0F ; fully-qualified # 🛢️ E0.7 oil drum 1F6E2 ; unqualified # 🛢 E0.7 oil drum 26FD ; fully-qualified # ⛽ E0.6 fuel pump +1F6DE ; fully-qualified # 🛞 E14.0 wheel 1F6A8 ; fully-qualified # 🚨 E0.6 police car light 1F6A5 ; fully-qualified # 🚥 E0.6 horizontal traffic light 1F6A6 ; fully-qualified # 🚦 E1.0 vertical traffic light @@ -3660,6 +3789,7 @@ # subgroup: transport-water 2693 ; fully-qualified # ⚓ E0.6 anchor +1F6DF ; fully-qualified # 🛟 E14.0 ring buoy 26F5 ; fully-qualified # ⛵ E0.6 sailboat 1F6F6 ; fully-qualified # 🛶 E3.0 canoe 1F6A4 ; fully-qualified # 🚤 E0.6 speedboat @@ -3797,8 +3927,8 @@ 1F4A7 ; fully-qualified # 💧 E0.6 droplet 1F30A ; fully-qualified # 🌊 E0.6 water wave -# Travel & Places subtotal: 264 -# Travel & Places subtotal: 264 w/o modifiers +# Travel & Places subtotal: 267 +# Travel & Places subtotal: 267 w/o modifiers # group: Activities @@ -3870,10 +4000,10 @@ 1F3AF ; fully-qualified # 🎯 E0.6 bullseye 1FA80 ; fully-qualified # 🪀 E12.0 yo-yo 1FA81 ; fully-qualified # 🪁 E12.0 kite +1F52B ; fully-qualified # 🔫 E0.6 water pistol 1F3B1 ; fully-qualified # 🎱 E0.6 pool 8 ball 1F52E ; fully-qualified # 🔮 E0.6 crystal ball 1FA84 ; fully-qualified # 🪄 E13.0 magic wand -1F9FF ; fully-qualified # 🧿 E11.0 nazar amulet 1F3AE ; fully-qualified # 🎮 E0.6 video game 1F579 FE0F ; fully-qualified # 🕹️ E0.7 joystick 1F579 ; unqualified # 🕹 E0.7 joystick @@ -3882,6 +4012,7 @@ 1F9E9 ; fully-qualified # 🧩 E11.0 puzzle piece 1F9F8 ; fully-qualified # 🧸 E11.0 teddy bear 1FA85 ; fully-qualified # 🪅 E13.0 piñata +1FAA9 ; fully-qualified # 🪩 E14.0 mirror ball 1FA86 ; fully-qualified # 🪆 E13.0 nesting dolls 2660 FE0F ; fully-qualified # ♠️ E0.6 spade suit 2660 ; unqualified # ♠ E0.6 spade suit @@ -3907,8 +4038,8 @@ 1F9F6 ; fully-qualified # 🧶 E11.0 yarn 1FAA2 ; fully-qualified # 🪢 E13.0 knot -# Activities subtotal: 95 -# Activities subtotal: 95 w/o modifiers +# Activities subtotal: 96 +# Activities subtotal: 96 w/o modifiers # group: Objects @@ -3934,6 +4065,7 @@ 1FA73 ; fully-qualified # 🩳 E12.0 shorts 1F459 ; fully-qualified # 👙 E0.6 bikini 1F45A ; fully-qualified # 👚 E0.6 woman’s clothes +1FAAD ; fully-qualified # 🪭 E15.0 folding hand fan 1F45B ; fully-qualified # 👛 E0.6 purse 1F45C ; fully-qualified # 👜 E0.6 handbag 1F45D ; fully-qualified # 👝 E0.6 clutch bag @@ -3949,6 +4081,7 @@ 1F461 ; fully-qualified # 👡 E0.6 woman’s sandal 1FA70 ; fully-qualified # 🩰 E12.0 ballet shoes 1F462 ; fully-qualified # 👢 E0.6 woman’s boot +1FAAE ; fully-qualified # 🪮 E15.0 hair pick 1F451 ; fully-qualified # 👑 E0.6 crown 1F452 ; fully-qualified # 👒 E0.6 woman’s hat 1F3A9 ; fully-qualified # 🎩 E0.6 top hat @@ -3997,6 +4130,8 @@ 1FA95 ; fully-qualified # 🪕 E12.0 banjo 1F941 ; fully-qualified # 🥁 E3.0 drum 1FA98 ; fully-qualified # 🪘 E13.0 long drum +1FA87 ; fully-qualified # 🪇 E15.0 maracas +1FA88 ; fully-qualified # 🪈 E15.0 flute # subgroup: phone 1F4F1 ; fully-qualified # 📱 E0.6 mobile phone @@ -4009,6 +4144,7 @@ # subgroup: computer 1F50B ; fully-qualified # 🔋 E0.6 battery +1FAAB ; fully-qualified # 🪫 E14.0 low battery 1F50C ; fully-qualified # 🔌 E0.6 electric plug 1F4BB ; fully-qualified # 💻 E0.6 laptop 1F5A5 FE0F ; fully-qualified # 🖥️ E0.7 desktop computer @@ -4168,7 +4304,7 @@ 1F5E1 ; unqualified # 🗡 E0.7 dagger 2694 FE0F ; fully-qualified # ⚔️ E1.0 crossed swords 2694 ; unqualified # ⚔ E1.0 crossed swords -1F52B ; fully-qualified # 🔫 E0.6 water pistol +1F4A3 ; fully-qualified # 💣 E0.6 bomb 1FA83 ; fully-qualified # 🪃 E13.0 boomerang 1F3F9 ; fully-qualified # 🏹 E1.0 bow and arrow 1F6E1 FE0F ; fully-qualified # 🛡️ E0.7 shield @@ -4207,7 +4343,9 @@ 1FA78 ; fully-qualified # 🩸 E12.0 drop of blood 1F48A ; fully-qualified # 💊 E0.6 pill 1FA79 ; fully-qualified # 🩹 E12.0 adhesive bandage +1FA7C ; fully-qualified # 🩼 E14.0 crutch 1FA7A ; fully-qualified # 🩺 E12.0 stethoscope +1FA7B ; fully-qualified # 🩻 E14.0 x-ray # subgroup: household 1F6AA ; fully-qualified # 🚪 E0.6 door @@ -4232,6 +4370,7 @@ 1F9FB ; fully-qualified # 🧻 E11.0 roll of paper 1FAA3 ; fully-qualified # 🪣 E13.0 bucket 1F9FC ; fully-qualified # 🧼 E11.0 soap +1FAE7 ; fully-qualified # 🫧 E14.0 bubbles 1FAA5 ; fully-qualified # 🪥 E13.0 toothbrush 1F9FD ; fully-qualified # 🧽 E11.0 sponge 1F9EF ; fully-qualified # 🧯 E11.0 fire extinguisher @@ -4244,11 +4383,14 @@ 1FAA6 ; fully-qualified # 🪦 E13.0 headstone 26B1 FE0F ; fully-qualified # ⚱️ E1.0 funeral urn 26B1 ; unqualified # ⚱ E1.0 funeral urn +1F9FF ; fully-qualified # 🧿 E11.0 nazar amulet +1FAAC ; fully-qualified # 🪬 E14.0 hamsa 1F5FF ; fully-qualified # 🗿 E0.6 moai 1FAA7 ; fully-qualified # 🪧 E13.0 placard +1FAAA ; fully-qualified # 🪪 E14.0 identification card -# Objects subtotal: 299 -# Objects subtotal: 299 w/o modifiers +# Objects subtotal: 310 +# Objects subtotal: 310 w/o modifiers # group: Symbols @@ -4344,6 +4486,7 @@ 262E ; unqualified # ☮ E1.0 peace symbol 1F54E ; fully-qualified # 🕎 E1.0 menorah 1F52F ; fully-qualified # 🔯 E0.6 dotted six-pointed star +1FAAF ; fully-qualified # 🪯 E15.0 khanda # subgroup: zodiac 2648 ; fully-qualified # ♈ E0.6 Aries @@ -4392,6 +4535,7 @@ 1F505 ; fully-qualified # 🔅 E1.0 dim button 1F506 ; fully-qualified # 🔆 E1.0 bright button 1F4F6 ; fully-qualified # 📶 E0.6 antenna bars +1F6DC ; fully-qualified # 🛜 E15.0 wireless 1F4F3 ; fully-qualified # 📳 E0.6 vibration mode 1F4F4 ; fully-qualified # 📴 E0.6 mobile phone off @@ -4409,6 +4553,7 @@ 2795 ; fully-qualified # ➕ E0.6 plus 2796 ; fully-qualified # ➖ E0.6 minus 2797 ; fully-qualified # ➗ E0.6 divide +1F7F0 ; fully-qualified # 🟰 E14.0 heavy equals sign 267E FE0F ; fully-qualified # ♾️ E11.0 infinity 267E ; unqualified # ♾ E11.0 infinity @@ -4581,8 +4726,8 @@ 1F533 ; fully-qualified # 🔳 E0.6 white square button 1F532 ; fully-qualified # 🔲 E0.6 black square button -# Symbols subtotal: 301 -# Symbols subtotal: 301 w/o modifiers +# Symbols subtotal: 304 +# Symbols subtotal: 304 w/o modifiers # group: Flags @@ -4597,7 +4742,7 @@ 1F3F3 200D 1F308 ; unqualified # 🏳‍🌈 E4.0 rainbow flag 1F3F3 FE0F 200D 26A7 FE0F ; fully-qualified # 🏳️‍⚧️ E13.0 transgender flag 1F3F3 200D 26A7 FE0F ; unqualified # 🏳‍⚧️ E13.0 transgender flag -1F3F3 FE0F 200D 26A7 ; unqualified # 🏳️‍⚧ E13.0 transgender flag +1F3F3 FE0F 200D 26A7 ; minimally-qualified # 🏳️‍⚧ E13.0 transgender flag 1F3F3 200D 26A7 ; unqualified # 🏳‍⚧ E13.0 transgender flag 1F3F4 200D 2620 FE0F ; fully-qualified # 🏴‍☠️ E11.0 pirate flag 1F3F4 200D 2620 ; minimally-qualified # 🏴‍☠ E11.0 pirate flag @@ -4871,9 +5016,9 @@ # Flags subtotal: 275 w/o modifiers # Status Counts -# fully-qualified : 3512 -# minimally-qualified : 817 -# unqualified : 252 +# fully-qualified : 3655 +# minimally-qualified : 827 +# unqualified : 242 # component : 9 #EOF diff --git a/lib/pleroma/emoji.ex b/lib/pleroma/emoji.ex index f077fe5b4..dd65d56ae 100644 --- a/lib/pleroma/emoji.ex +++ b/lib/pleroma/emoji.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Emoji do @@ -9,6 +9,7 @@ defmodule Pleroma.Emoji do """ use GenServer + alias Pleroma.Emoji.Combinations alias Pleroma.Emoji.Loader require Logger @@ -137,4 +138,17 @@ def is_unicode_emoji?(unquote(emoji)), do: true end def is_unicode_emoji?(_), do: false + + emoji_qualification_map = + emojis + |> Enum.filter(&String.contains?(&1, "\uFE0F")) + |> Combinations.variate_emoji_qualification() + + for {qualified, unqualified_list} <- emoji_qualification_map do + for unqualified <- unqualified_list do + def fully_qualify_emoji(unquote(unqualified)), do: unquote(qualified) + end + end + + def fully_qualify_emoji(emoji), do: emoji end diff --git a/lib/pleroma/emoji/combinations.ex b/lib/pleroma/emoji/combinations.ex new file mode 100644 index 000000000..981c73596 --- /dev/null +++ b/lib/pleroma/emoji/combinations.ex @@ -0,0 +1,45 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2022 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + +defmodule Pleroma.Emoji.Combinations do + # FE0F is the emoji variation sequence. It is used for fully-qualifying + # emoji, and that includes emoji combinations. + # This code generates combinations per emoji: for each FE0F, all possible + # combinations of the character being removed or staying will be generated. + # This is made as an attempt to find all partially-qualified and unqualified + # versions of a fully-qualified emoji. + # I have found *no cases* for which this would be a problem, after browsing + # the entire emoji list in emoji-test.txt. This is safe, and, sadly, most + # likely sane too. + + defp qualification_combinations(codepoints) do + qualification_combinations([[]], codepoints) + end + + defp qualification_combinations(acc, []), do: acc + + defp qualification_combinations(acc, ["\uFE0F" | tail]) do + acc + |> Enum.flat_map(fn x -> [x, x ++ ["\uFE0F"]] end) + |> qualification_combinations(tail) + end + + defp qualification_combinations(acc, [codepoint | tail]) do + acc + |> Enum.map(&Kernel.++(&1, [codepoint])) + |> qualification_combinations(tail) + end + + def variate_emoji_qualification(emoji) when is_binary(emoji) do + emoji + |> String.codepoints() + |> qualification_combinations() + |> Enum.map(&List.to_string/1) + end + + def variate_emoji_qualification(emoji) when is_list(emoji) do + emoji + |> Enum.map(fn emoji -> {emoji, variate_emoji_qualification(emoji)} end) + end +end diff --git a/lib/pleroma/emoji/formatter.ex b/lib/pleroma/emoji/formatter.ex index 191451952..87fd35f13 100644 --- a/lib/pleroma/emoji/formatter.ex +++ b/lib/pleroma/emoji/formatter.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Emoji.Formatter do diff --git a/lib/pleroma/emoji/loader.ex b/lib/pleroma/emoji/loader.ex index 67acd7069..97d4b8f70 100644 --- a/lib/pleroma/emoji/loader.ex +++ b/lib/pleroma/emoji/loader.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Emoji.Loader do @@ -60,9 +60,7 @@ def load do if not Enum.empty?(files) do Logger.warn( - "Found files in the emoji folder. These will be ignored, please move them to a subdirectory\nFound files: #{ - Enum.join(files, ", ") - }" + "Found files in the emoji folder. These will be ignored, please move them to a subdirectory\nFound files: #{Enum.join(files, ", ")}" ) end @@ -105,6 +103,7 @@ defp load_pack(pack_dir, emoji_groups) do pack_file = Path.join(pack_dir, "pack.json") if File.exists?(pack_file) do + Logger.info("Loading emoji pack from JSON: #{pack_file}") contents = Jason.decode!(File.read!(pack_file)) contents["files"] @@ -117,14 +116,13 @@ defp load_pack(pack_dir, emoji_groups) do emoji_txt = Path.join(pack_dir, "emoji.txt") if File.exists?(emoji_txt) do + Logger.info("Loading emoji pack from emoji.txt: #{emoji_txt}") load_from_file(emoji_txt, emoji_groups) else extensions = Config.get([:emoji, :pack_extensions]) Logger.info( - "No emoji.txt found for pack \"#{pack_name}\", assuming all #{ - Enum.join(extensions, ", ") - } files are emoji" + "No emoji.txt found for pack \"#{pack_name}\", assuming all #{Enum.join(extensions, ", ")} files are emoji" ) make_shortcode_to_file_map(pack_dir, extensions) diff --git a/lib/pleroma/emoji/pack.ex b/lib/pleroma/emoji/pack.ex index 09bfcc868..a361ea200 100644 --- a/lib/pleroma/emoji/pack.ex +++ b/lib/pleroma/emoji/pack.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Emoji.Pack do diff --git a/lib/pleroma/filter.ex b/lib/pleroma/filter.ex index 82b9caf9b..db88bc021 100644 --- a/lib/pleroma/filter.ex +++ b/lib/pleroma/filter.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Filter do diff --git a/lib/pleroma/following_relationship.ex b/lib/pleroma/following_relationship.ex index a0c7e6e39..15664c876 100644 --- a/lib/pleroma/following_relationship.ex +++ b/lib/pleroma/following_relationship.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.FollowingRelationship do @@ -194,12 +194,13 @@ def move_following(origin, target) do |> join(:inner, [r], f in assoc(r, :follower)) |> where(following_id: ^origin.id) |> where([r, f], f.allow_following_move == true) + |> where([r, f], f.local == true) |> limit(50) |> preload([:follower]) |> Repo.all() |> Enum.map(fn following_relationship -> - Repo.delete(following_relationship) Pleroma.Web.CommonAPI.follow(following_relationship.follower, target) + Pleroma.Web.CommonAPI.unfollow(following_relationship.follower, origin) end) |> case do [] -> diff --git a/lib/pleroma/formatter.ex b/lib/pleroma/formatter.ex index ae37946ab..a46c3e381 100644 --- a/lib/pleroma/formatter.ex +++ b/lib/pleroma/formatter.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Formatter do @@ -34,32 +34,34 @@ def escape_mention_handler("@" <> nickname = mention, buffer, _, _) do def mention_handler("@" <> nickname, buffer, opts, acc) do case User.get_cached_by_nickname(nickname) do - %User{id: id} = user -> - user_url = user.uri || user.ap_id - nickname_text = get_nickname_text(nickname, opts) - - link = - Phoenix.HTML.Tag.content_tag( - :span, - Phoenix.HTML.Tag.content_tag( - :a, - ["@", Phoenix.HTML.Tag.content_tag(:span, nickname_text)], - "data-user": id, - class: "u-url mention", - href: user_url, - rel: "ugc" - ), - class: "h-card" - ) - |> Phoenix.HTML.safe_to_string() - - {link, %{acc | mentions: MapSet.put(acc.mentions, {"@" <> nickname, user})}} + %User{} = user -> + {mention_from_user(user, opts), + %{acc | mentions: MapSet.put(acc.mentions, {"@" <> nickname, user})}} _ -> {buffer, acc} end end + def mention_from_user(%User{id: id} = user, opts \\ %{mentions_format: :full}) do + user_url = user.uri || user.ap_id + nickname_text = get_nickname_text(user.nickname, opts) + + Phoenix.HTML.Tag.content_tag( + :span, + Phoenix.HTML.Tag.content_tag( + :a, + ["@", Phoenix.HTML.Tag.content_tag(:span, nickname_text)], + "data-user": id, + class: "u-url mention", + href: user_url, + rel: "ugc" + ), + class: "h-card" + ) + |> Phoenix.HTML.safe_to_string() + end + def hashtag_handler("#" <> tag = tag_text, _buffer, _opts, acc) do tag = String.downcase(tag) url = "#{Pleroma.Web.Endpoint.url()}/tag/#{tag}" diff --git a/lib/pleroma/frontend.ex b/lib/pleroma/frontend.ex index 34b7befb8..ec72fb6a4 100644 --- a/lib/pleroma/frontend.ex +++ b/lib/pleroma/frontend.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Frontend do diff --git a/lib/pleroma/gopher/server.ex b/lib/pleroma/gopher/server.ex index 1b85c49f5..0fde0adcf 100644 --- a/lib/pleroma/gopher/server.ex +++ b/lib/pleroma/gopher/server.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Gopher.Server do diff --git a/lib/pleroma/gun.ex b/lib/pleroma/gun.ex index bef1c9872..c2d6b4bf2 100644 --- a/lib/pleroma/gun.ex +++ b/lib/pleroma/gun.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Gun do diff --git a/lib/pleroma/gun/api.ex b/lib/pleroma/gun/api.ex index 24d542781..ff2100623 100644 --- a/lib/pleroma/gun/api.ex +++ b/lib/pleroma/gun/api.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Gun.API do diff --git a/lib/pleroma/gun/conn.ex b/lib/pleroma/gun/conn.ex index a56625699..7c5785def 100644 --- a/lib/pleroma/gun/conn.ex +++ b/lib/pleroma/gun/conn.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Gun.Conn do @@ -57,9 +57,7 @@ defp do_open(uri, %{proxy: {proxy_host, proxy_port}} = opts) do else error -> Logger.warn( - "Opening proxied connection to #{compose_uri_log(uri)} failed with error #{ - inspect(error) - }" + "Opening proxied connection to #{compose_uri_log(uri)} failed with error #{inspect(error)}" ) error @@ -93,9 +91,7 @@ defp do_open(uri, %{proxy: {proxy_type, proxy_host, proxy_port}} = opts) do else error -> Logger.warn( - "Opening socks proxied connection to #{compose_uri_log(uri)} failed with error #{ - inspect(error) - }" + "Opening socks proxied connection to #{compose_uri_log(uri)} failed with error #{inspect(error)}" ) error diff --git a/lib/pleroma/gun/connection_pool.ex b/lib/pleroma/gun/connection_pool.ex index f9fd77ade..2e851de19 100644 --- a/lib/pleroma/gun/connection_pool.ex +++ b/lib/pleroma/gun/connection_pool.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Gun.ConnectionPool do diff --git a/lib/pleroma/gun/connection_pool/reclaimer.ex b/lib/pleroma/gun/connection_pool/reclaimer.ex index 4c643d7cb..efd5c9fb8 100644 --- a/lib/pleroma/gun/connection_pool/reclaimer.ex +++ b/lib/pleroma/gun/connection_pool/reclaimer.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Gun.ConnectionPool.Reclaimer do diff --git a/lib/pleroma/gun/connection_pool/worker.ex b/lib/pleroma/gun/connection_pool/worker.ex index a3fa75386..38527ec1d 100644 --- a/lib/pleroma/gun/connection_pool/worker.ex +++ b/lib/pleroma/gun/connection_pool/worker.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Gun.ConnectionPool.Worker do diff --git a/lib/pleroma/gun/connection_pool/worker_supervisor.ex b/lib/pleroma/gun/connection_pool/worker_supervisor.ex index 016b675f4..d26a70be3 100644 --- a/lib/pleroma/gun/connection_pool/worker_supervisor.ex +++ b/lib/pleroma/gun/connection_pool/worker_supervisor.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Gun.ConnectionPool.WorkerSupervisor do diff --git a/lib/pleroma/hashtag.ex b/lib/pleroma/hashtag.ex index 53e2e9c89..a43d88220 100644 --- a/lib/pleroma/hashtag.ex +++ b/lib/pleroma/hashtag.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2020 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Hashtag do diff --git a/lib/pleroma/healthcheck.ex b/lib/pleroma/healthcheck.ex index c905bba3f..8e9ab8225 100644 --- a/lib/pleroma/healthcheck.ex +++ b/lib/pleroma/healthcheck.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Healthcheck do diff --git a/lib/pleroma/helpers/auth_helper.ex b/lib/pleroma/helpers/auth_helper.ex index 13e4c8158..61599e71c 100644 --- a/lib/pleroma/helpers/auth_helper.ex +++ b/lib/pleroma/helpers/auth_helper.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Helpers.AuthHelper do diff --git a/lib/pleroma/helpers/inet_helper.ex b/lib/pleroma/helpers/inet_helper.ex index 5acdfaed0..704d37f8a 100644 --- a/lib/pleroma/helpers/inet_helper.ex +++ b/lib/pleroma/helpers/inet_helper.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Helpers.InetHelper do diff --git a/lib/pleroma/helpers/media_helper.ex b/lib/pleroma/helpers/media_helper.ex index 738adfcaa..24c845fcd 100644 --- a/lib/pleroma/helpers/media_helper.ex +++ b/lib/pleroma/helpers/media_helper.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Helpers.MediaHelper do diff --git a/lib/pleroma/helpers/qt_fast_start.ex b/lib/pleroma/helpers/qt_fast_start.ex index c4d11b9dd..5711c7162 100644 --- a/lib/pleroma/helpers/qt_fast_start.ex +++ b/lib/pleroma/helpers/qt_fast_start.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Helpers.QtFastStart do diff --git a/lib/pleroma/helpers/uri_helper.ex b/lib/pleroma/helpers/uri_helper.ex index 8f6a664ad..c8d10d307 100644 --- a/lib/pleroma/helpers/uri_helper.ex +++ b/lib/pleroma/helpers/uri_helper.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Helpers.UriHelper do diff --git a/lib/pleroma/html.ex b/lib/pleroma/html.ex index bee66169d..5bf735c4f 100644 --- a/lib/pleroma/html.ex +++ b/lib/pleroma/html.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.HTML do diff --git a/lib/pleroma/http.ex b/lib/pleroma/http.ex index 07b3ab0ae..d41061538 100644 --- a/lib/pleroma/http.ex +++ b/lib/pleroma/http.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.HTTP do @@ -106,5 +106,12 @@ defp adapter_middlewares(Tesla.Adapter.Gun) do [Tesla.Middleware.FollowRedirects, Pleroma.Tesla.Middleware.ConnectionPool] end - defp adapter_middlewares(_), do: [] + defp adapter_middlewares(_) do + if Pleroma.Config.get(:env) == :test do + # Emulate redirects in test env, which are handled by adapters in other environments + [Tesla.Middleware.FollowRedirects] + else + [] + end + end end diff --git a/lib/pleroma/http/adapter_helper.ex b/lib/pleroma/http/adapter_helper.ex index c667afd25..252a6aba5 100644 --- a/lib/pleroma/http/adapter_helper.ex +++ b/lib/pleroma/http/adapter_helper.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.HTTP.AdapterHelper do diff --git a/lib/pleroma/http/adapter_helper/default.ex b/lib/pleroma/http/adapter_helper/default.ex index a1614b9c5..9c9414738 100644 --- a/lib/pleroma/http/adapter_helper/default.ex +++ b/lib/pleroma/http/adapter_helper/default.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.HTTP.AdapterHelper.Default do diff --git a/lib/pleroma/http/adapter_helper/gun.ex b/lib/pleroma/http/adapter_helper/gun.ex index 251539f34..74ab9851e 100644 --- a/lib/pleroma/http/adapter_helper/gun.ex +++ b/lib/pleroma/http/adapter_helper/gun.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.HTTP.AdapterHelper.Gun do diff --git a/lib/pleroma/http/adapter_helper/hackney.ex b/lib/pleroma/http/adapter_helper/hackney.ex index fe3f91a72..f3be1f3d0 100644 --- a/lib/pleroma/http/adapter_helper/hackney.ex +++ b/lib/pleroma/http/adapter_helper/hackney.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.HTTP.AdapterHelper.Hackney do @@ -24,10 +24,6 @@ def options(connection_opts \\ [], %URI{} = uri) do |> Pleroma.HTTP.AdapterHelper.maybe_add_proxy(proxy) end - defp add_scheme_opts(opts, %URI{scheme: "https"}) do - Keyword.put(opts, :ssl_options, versions: [:"tlsv1.2", :"tlsv1.1", :tlsv1]) - end - defp add_scheme_opts(opts, _), do: opts defp maybe_add_with_body(opts) do diff --git a/lib/pleroma/http/ex_aws.ex b/lib/pleroma/http/ex_aws.ex index 283590b18..469c13819 100644 --- a/lib/pleroma/http/ex_aws.ex +++ b/lib/pleroma/http/ex_aws.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.HTTP.ExAws do diff --git a/lib/pleroma/http/request.ex b/lib/pleroma/http/request.ex index d906024de..01045f8c9 100644 --- a/lib/pleroma/http/request.ex +++ b/lib/pleroma/http/request.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.HTTP.Request do diff --git a/lib/pleroma/http/request_builder.ex b/lib/pleroma/http/request_builder.ex index 631c927af..f16fb3b35 100644 --- a/lib/pleroma/http/request_builder.ex +++ b/lib/pleroma/http/request_builder.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.HTTP.RequestBuilder do diff --git a/lib/pleroma/http/tzdata.ex b/lib/pleroma/http/tzdata.ex index 77e1b537e..5d2529c08 100644 --- a/lib/pleroma/http/tzdata.ex +++ b/lib/pleroma/http/tzdata.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.HTTP.Tzdata do diff --git a/lib/pleroma/http/web_push.ex b/lib/pleroma/http/web_push.ex index 16bbe6e8c..ca399b6c8 100644 --- a/lib/pleroma/http/web_push.ex +++ b/lib/pleroma/http/web_push.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.HTTP.WebPush do diff --git a/lib/pleroma/instances.ex b/lib/pleroma/instances.ex index 6b57e56da..782948f83 100644 --- a/lib/pleroma/instances.ex +++ b/lib/pleroma/instances.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Instances do diff --git a/lib/pleroma/instances/instance.ex b/lib/pleroma/instances/instance.ex index 4d0e8034d..a5529ad44 100644 --- a/lib/pleroma/instances/instance.ex +++ b/lib/pleroma/instances/instance.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Instances.Instance do @@ -8,6 +8,8 @@ defmodule Pleroma.Instances.Instance do alias Pleroma.Instances alias Pleroma.Instances.Instance alias Pleroma.Repo + alias Pleroma.User + alias Pleroma.Workers.BackgroundWorker use Ecto.Schema @@ -195,4 +197,24 @@ defp scrape_favicon(%URI{} = instance_uri) do nil end end + + @doc """ + Deletes all users from an instance in a background task, thus also deleting + all of those users' activities and notifications. + """ + def delete_users_and_activities(host) when is_binary(host) do + BackgroundWorker.enqueue("delete_instance", %{"host" => host}) + end + + def perform(:delete_instance, host) when is_binary(host) do + User.Query.build(%{nickname: "@#{host}"}) + |> Repo.chunk_stream(100, :batches) + |> Stream.each(fn users -> + users + |> Enum.each(fn user -> + User.perform(:delete, user) + end) + end) + |> Stream.run() + end end diff --git a/lib/pleroma/job_queue_monitor.ex b/lib/pleroma/job_queue_monitor.ex index b5f124923..6233cdcf5 100644 --- a/lib/pleroma/job_queue_monitor.ex +++ b/lib/pleroma/job_queue_monitor.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.JobQueueMonitor do diff --git a/lib/pleroma/jwt.ex b/lib/pleroma/jwt.ex index c75c44bd1..7ec6245d3 100644 --- a/lib/pleroma/jwt.ex +++ b/lib/pleroma/jwt.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.JWT do diff --git a/lib/pleroma/keys.ex b/lib/pleroma/keys.ex index 413861b15..496d20a71 100644 --- a/lib/pleroma/keys.ex +++ b/lib/pleroma/keys.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Keys do diff --git a/lib/pleroma/list.ex b/lib/pleroma/list.ex index fe5721c34..b446b91a0 100644 --- a/lib/pleroma/list.ex +++ b/lib/pleroma/list.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.List do diff --git a/lib/pleroma/logging.ex b/lib/pleroma/logging.ex index 11e1c3bed..ac09c0415 100644 --- a/lib/pleroma/logging.ex +++ b/lib/pleroma/logging.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Logging do diff --git a/lib/pleroma/maintenance.ex b/lib/pleroma/maintenance.ex index f1058b68a..eb5a6ef42 100644 --- a/lib/pleroma/maintenance.ex +++ b/lib/pleroma/maintenance.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Maintenance do @@ -9,7 +9,7 @@ defmodule Pleroma.Maintenance do def vacuum(args) do case args do "analyze" -> - Logger.info("Runnning VACUUM ANALYZE.") + Logger.info("Running VACUUM ANALYZE.") Repo.query!( "vacuum analyze;", @@ -18,7 +18,7 @@ def vacuum(args) do ) "full" -> - Logger.info("Runnning VACUUM FULL.") + Logger.info("Running VACUUM FULL.") Logger.warn( "Re-packing your entire database may take a while and will consume extra disk space during the process." diff --git a/lib/pleroma/maps.ex b/lib/pleroma/maps.ex index b08b83305..6d586e53e 100644 --- a/lib/pleroma/maps.ex +++ b/lib/pleroma/maps.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Maps do diff --git a/lib/pleroma/marker.ex b/lib/pleroma/marker.ex index 9909de161..68b054e4d 100644 --- a/lib/pleroma/marker.ex +++ b/lib/pleroma/marker.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Marker do diff --git a/lib/pleroma/mfa.ex b/lib/pleroma/mfa.ex index 02dce7d49..01b730c76 100644 --- a/lib/pleroma/mfa.ex +++ b/lib/pleroma/mfa.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.MFA do diff --git a/lib/pleroma/mfa/backup_codes.ex b/lib/pleroma/mfa/backup_codes.ex index a7a1fba2e..2f6962c1f 100644 --- a/lib/pleroma/mfa/backup_codes.ex +++ b/lib/pleroma/mfa/backup_codes.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.MFA.BackupCodes do diff --git a/lib/pleroma/mfa/changeset.ex b/lib/pleroma/mfa/changeset.ex index 2d46cdf73..3ec3cfe91 100644 --- a/lib/pleroma/mfa/changeset.ex +++ b/lib/pleroma/mfa/changeset.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.MFA.Changeset do diff --git a/lib/pleroma/mfa/settings.ex b/lib/pleroma/mfa/settings.ex index 94fbff635..2c7f13e3f 100644 --- a/lib/pleroma/mfa/settings.ex +++ b/lib/pleroma/mfa/settings.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.MFA.Settings do diff --git a/lib/pleroma/mfa/token.ex b/lib/pleroma/mfa/token.ex index 76573182a..57bc11ed5 100644 --- a/lib/pleroma/mfa/token.ex +++ b/lib/pleroma/mfa/token.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.MFA.Token do diff --git a/lib/pleroma/mfa/totp.ex b/lib/pleroma/mfa/totp.ex index f33e3a379..429c4b700 100644 --- a/lib/pleroma/mfa/totp.ex +++ b/lib/pleroma/mfa/totp.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.MFA.TOTP do diff --git a/lib/pleroma/migration_helper/notification_backfill.ex b/lib/pleroma/migration_helper/notification_backfill.ex index 62b710f82..9f4976d9c 100644 --- a/lib/pleroma/migration_helper/notification_backfill.ex +++ b/lib/pleroma/migration_helper/notification_backfill.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.MigrationHelper.NotificationBackfill do diff --git a/lib/pleroma/migrators/context_objects_deletion_migrator.ex b/lib/pleroma/migrators/context_objects_deletion_migrator.ex new file mode 100644 index 000000000..fb224795a --- /dev/null +++ b/lib/pleroma/migrators/context_objects_deletion_migrator.ex @@ -0,0 +1,139 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2022 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + +defmodule Pleroma.Migrators.ContextObjectsDeletionMigrator do + defmodule State do + use Pleroma.Migrators.Support.BaseMigratorState + + @impl Pleroma.Migrators.Support.BaseMigratorState + defdelegate data_migration(), to: Pleroma.DataMigration, as: :delete_context_objects + end + + use Pleroma.Migrators.Support.BaseMigrator + + alias Pleroma.Migrators.Support.BaseMigrator + alias Pleroma.Object + + @doc "This migration removes objects created exclusively for contexts, containing only an `id` field." + + @impl BaseMigrator + def feature_config_path, do: [:features, :delete_context_objects] + + @impl BaseMigrator + def fault_rate_allowance, do: Config.get([:delete_context_objects, :fault_rate_allowance], 0) + + @impl BaseMigrator + def perform do + data_migration_id = data_migration_id() + max_processed_id = get_stat(:max_processed_id, 0) + + Logger.info("Deleting context objects from `objects` (from oid: #{max_processed_id})...") + + query() + |> where([object], object.id > ^max_processed_id) + |> Repo.chunk_stream(100, :batches, timeout: :infinity) + |> Stream.each(fn objects -> + object_ids = Enum.map(objects, & &1.id) + + results = Enum.map(object_ids, &delete_context_object(&1)) + + failed_ids = + results + |> Enum.filter(&(elem(&1, 0) == :error)) + |> Enum.map(&elem(&1, 1)) + + chunk_affected_count = + results + |> Enum.filter(&(elem(&1, 0) == :ok)) + |> length() + + for failed_id <- failed_ids do + _ = + Repo.query( + "INSERT INTO data_migration_failed_ids(data_migration_id, record_id) " <> + "VALUES ($1, $2) ON CONFLICT DO NOTHING;", + [data_migration_id, failed_id] + ) + end + + _ = + Repo.query( + "DELETE FROM data_migration_failed_ids " <> + "WHERE data_migration_id = $1 AND record_id = ANY($2)", + [data_migration_id, object_ids -- failed_ids] + ) + + max_object_id = Enum.at(object_ids, -1) + + put_stat(:max_processed_id, max_object_id) + increment_stat(:iteration_processed_count, length(object_ids)) + increment_stat(:processed_count, length(object_ids)) + increment_stat(:failed_count, length(failed_ids)) + increment_stat(:affected_count, chunk_affected_count) + put_stat(:records_per_second, records_per_second()) + persist_state() + + # A quick and dirty approach to controlling the load this background migration imposes + sleep_interval = Config.get([:delete_context_objects, :sleep_interval_ms], 0) + Process.sleep(sleep_interval) + end) + |> Stream.run() + end + + @impl BaseMigrator + def query do + # Context objects have no activity type, and only one field, `id`. + # Only those context objects are without types. + from( + object in Object, + where: fragment("(?)->'type' IS NULL", object.data), + select: %{ + id: object.id + } + ) + end + + @spec delete_context_object(integer()) :: {:ok | :error, integer()} + defp delete_context_object(id) do + result = + %Object{id: id} + |> Repo.delete() + |> elem(0) + + {result, id} + end + + @impl BaseMigrator + def retry_failed do + data_migration_id = data_migration_id() + + failed_objects_query() + |> Repo.chunk_stream(100, :one) + |> Stream.each(fn object -> + with {res, _} when res != :error <- delete_context_object(object.id) do + _ = + Repo.query( + "DELETE FROM data_migration_failed_ids " <> + "WHERE data_migration_id = $1 AND record_id = $2", + [data_migration_id, object.id] + ) + end + end) + |> Stream.run() + + put_stat(:failed_count, failures_count()) + persist_state() + + force_continue() + end + + defp failed_objects_query do + from(o in Object) + |> join(:inner, [o], dmf in fragment("SELECT * FROM data_migration_failed_ids"), + on: dmf.record_id == o.id + ) + |> where([_o, dmf], dmf.data_migration_id == ^data_migration_id()) + |> order_by([o], asc: o.id) + end +end diff --git a/lib/pleroma/migrators/hashtags_table_migrator.ex b/lib/pleroma/migrators/hashtags_table_migrator.ex index b84058e11..dca4bfa6f 100644 --- a/lib/pleroma/migrators/hashtags_table_migrator.ex +++ b/lib/pleroma/migrators/hashtags_table_migrator.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Migrators.HashtagsTableMigrator do @@ -183,7 +183,7 @@ def delete_non_create_activities_hashtags do DELETE FROM hashtags_objects WHERE object_id IN (SELECT DISTINCT objects.id FROM objects JOIN hashtags_objects ON hashtags_objects.object_id = objects.id LEFT JOIN activities - ON COALESCE(activities.data->'object'->>'id', activities.data->>'object') = + ON associated_object_id(activities) = (objects.data->>'id') AND activities.data->>'type' = 'Create' WHERE activities.id IS NULL); diff --git a/lib/pleroma/migrators/support/base_migrator.ex b/lib/pleroma/migrators/support/base_migrator.ex index 1f8a5402b..3bcd59fd0 100644 --- a/lib/pleroma/migrators/support/base_migrator.ex +++ b/lib/pleroma/migrators/support/base_migrator.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Migrators.Support.BaseMigrator do diff --git a/lib/pleroma/migrators/support/base_migrator_state.ex b/lib/pleroma/migrators/support/base_migrator_state.ex index b698587f2..3d7769fc6 100644 --- a/lib/pleroma/migrators/support/base_migrator_state.ex +++ b/lib/pleroma/migrators/support/base_migrator_state.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Migrators.Support.BaseMigratorState do diff --git a/lib/pleroma/moderation_log.ex b/lib/pleroma/moderation_log.ex index 1849cacc8..7203423e2 100644 --- a/lib/pleroma/moderation_log.ex +++ b/lib/pleroma/moderation_log.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.ModerationLog do @@ -338,6 +338,26 @@ def get_log_entry_message(%ModerationLog{ "@#{actor_nickname} approved users: #{users_to_nicknames_string(users)}" end + def get_log_entry_message(%ModerationLog{ + data: %{ + "actor" => %{"nickname" => actor_nickname}, + "action" => "add_suggestion", + "subject" => users + } + }) do + "@#{actor_nickname} added suggested users: #{users_to_nicknames_string(users)}" + end + + def get_log_entry_message(%ModerationLog{ + data: %{ + "actor" => %{"nickname" => actor_nickname}, + "action" => "remove_suggestion", + "subject" => users + } + }) do + "@#{actor_nickname} removed suggested users: #{users_to_nicknames_string(users)}" + end + def get_log_entry_message(%ModerationLog{ data: %{ "actor" => %{"nickname" => actor_nickname}, @@ -481,9 +501,7 @@ def get_log_entry_message(%ModerationLog{ "visibility" => visibility } }) do - "@#{actor_nickname} updated status ##{subject_id}, set sensitive: '#{sensitive}', visibility: '#{ - visibility - }'" + "@#{actor_nickname} updated status ##{subject_id}, set sensitive: '#{sensitive}', visibility: '#{visibility}'" end def get_log_entry_message(%ModerationLog{ @@ -523,9 +541,7 @@ def get_log_entry_message(%ModerationLog{ "subject" => subjects } }) do - "@#{actor_nickname} re-sent confirmation email for users: #{ - users_to_nicknames_string(subjects) - }" + "@#{actor_nickname} re-sent confirmation email for users: #{users_to_nicknames_string(subjects)}" end def get_log_entry_message(%ModerationLog{ diff --git a/lib/pleroma/notification.ex b/lib/pleroma/notification.ex index 71f57e6b2..aba6096bc 100644 --- a/lib/pleroma/notification.ex +++ b/lib/pleroma/notification.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Notification do @@ -72,6 +72,7 @@ def unread_notifications_count(%User{id: user_id}) do pleroma:emoji_reaction pleroma:report reblog + poll } def changeset(%Notification{} = notification, attrs) do @@ -116,9 +117,8 @@ def for_user_query(user, opts \\ %{}) do |> join(:left, [n, a], object in Object, on: fragment( - "(?->>'id') = COALESCE(?->'object'->>'id', ?->>'object')", + "(?->>'id') = associated_object_id(?)", object.data, - a.data, a.data ) ) @@ -127,6 +127,7 @@ def for_user_query(user, opts \\ %{}) do |> where([user_actor: user_actor], user_actor.is_active) |> exclude_notification_muted(user, exclude_notification_muted_opts) |> exclude_blocked(user, exclude_blocked_opts) + |> exclude_blockers(user) |> exclude_filtered(user) |> exclude_visibility(opts) end @@ -140,6 +141,17 @@ defp exclude_blocked(query, user, opts) do |> FollowingRelationship.keep_following_or_not_domain_blocked(user) end + defp exclude_blockers(query, user) do + if Pleroma.Config.get([:activitypub, :blockers_visible]) == true do + query + else + blocker_ap_ids = User.incoming_relationships_ungrouped_ap_ids(user, [:block]) + + query + |> where([n, a], a.actor not in ^blocker_ap_ids) + end + end + defp exclude_notification_muted(query, _, %{@include_muted_option => true}) do query end @@ -180,13 +192,11 @@ defp exclude_visibility(query, %{exclude_visibilities: visibility}) |> join(:left, [n, a], mutated_activity in Pleroma.Activity, on: fragment( - "COALESCE((?->'object')->>'id', ?->>'object')", - a.data, + "associated_object_id(?)", a.data ) == fragment( - "COALESCE((?->'object')->>'id', ?->>'object')", - mutated_activity.data, + "associated_object_id(?)", mutated_activity.data ) and fragment("(?->>'type' = 'Like' or ?->>'type' = 'Announce')", a.data, a.data) and @@ -328,14 +338,6 @@ def destroy_multiple(%{id: user_id} = _user, ids) do |> Repo.delete_all() end - def destroy_multiple_from_types(%{id: user_id}, types) do - from(n in Notification, - where: n.user_id == ^user_id, - where: n.type in ^types - ) - |> Repo.delete_all() - end - def dismiss(%Pleroma.Activity{} = activity) do Notification |> where([n], n.activity_id == ^activity.id) @@ -372,7 +374,7 @@ def create_notifications(%Activity{data: %{"to" => _, "type" => "Create"}} = act end def create_notifications(%Activity{data: %{"type" => type}} = activity, options) - when type in ["Follow", "Like", "Announce", "Move", "EmojiReact", "Flag"] do + when type in ["Follow", "Like", "Announce", "Move", "EmojiReact", "Flag", "Update"] do do_create_notifications(activity, options) end @@ -387,7 +389,7 @@ defp do_create_notifications(%Activity{} = activity, options) do notifications = Enum.map(potential_receivers, fn user -> do_send = do_send && user in enabled_receivers - create_notification(activity, user, do_send) + create_notification(activity, user, do_send: do_send) end) |> Enum.reject(&is_nil/1) @@ -426,6 +428,9 @@ defp type_from_activity(%{data: %{"type" => type}} = activity) do activity |> type_from_activity_object() + "Update" -> + "update" + t -> raise "No notification type for activity type #{t}" end @@ -443,15 +448,18 @@ defp type_from_activity_object(%{data: %{"type" => "Create"}} = activity) do end # TODO move to sql, too. - def create_notification(%Activity{} = activity, %User{} = user, do_send \\ true) do - unless skip?(activity, user) do + def create_notification(%Activity{} = activity, %User{} = user, opts \\ []) do + do_send = Keyword.get(opts, :do_send, true) + type = Keyword.get(opts, :type, type_from_activity(activity)) + + unless skip?(activity, user, opts) do {:ok, %{notification: notification}} = Multi.new() |> Multi.insert(:notification, %Notification{ user_id: user.id, activity: activity, seen: mark_as_read?(activity, user), - type: type_from_activity(activity) + type: type }) |> Marker.multi_set_last_read_id(user, "notifications") |> Repo.transaction() @@ -465,6 +473,28 @@ def create_notification(%Activity{} = activity, %User{} = user, do_send \\ true) end end + def create_poll_notifications(%Activity{} = activity) do + with %Object{data: %{"type" => "Question", "actor" => actor} = data} <- + Object.normalize(activity) do + voters = + case data do + %{"voters" => voters} when is_list(voters) -> voters + _ -> [] + end + + notifications = + Enum.reduce([actor | voters], [], fn ap_id, acc -> + with %User{local: true} = user <- User.get_by_ap_id(ap_id) do + [create_notification(activity, user, type: "poll") | acc] + else + _ -> acc + end + end) + + {:ok, notifications} + end + end + @doc """ Returns a tuple with 2 elements: {notification-enabled receivers, currently disabled receivers (blocking / [thread] muting)} @@ -475,7 +505,16 @@ def create_notification(%Activity{} = activity, %User{} = user, do_send \\ true) def get_notified_from_activity(activity, local_only \\ true) def get_notified_from_activity(%Activity{data: %{"type" => type}} = activity, local_only) - when type in ["Create", "Like", "Announce", "Follow", "Move", "EmojiReact", "Flag"] do + when type in [ + "Create", + "Like", + "Announce", + "Follow", + "Move", + "EmojiReact", + "Flag", + "Update" + ] do potential_receiver_ap_ids = get_potential_receiver_ap_ids(activity) potential_receivers = @@ -512,7 +551,24 @@ def get_potential_receiver_ap_ids(%{data: %{"type" => "Follow", "object" => obje end def get_potential_receiver_ap_ids(%{data: %{"type" => "Flag", "actor" => actor}}) do - (User.all_superusers() |> Enum.map(fn user -> user.ap_id end)) -- [actor] + (User.all_users_with_privilege(:reports_manage_reports) + |> Enum.map(fn user -> user.ap_id end)) -- + [actor] + end + + # Update activity: notify all who repeated this + def get_potential_receiver_ap_ids(%{data: %{"type" => "Update", "actor" => actor}} = activity) do + with %Object{data: %{"id" => object_id}} <- Object.normalize(activity, fetch: false) do + repeaters = + Activity.Queries.by_type("Announce") + |> Activity.Queries.by_object_id(object_id) + |> Activity.with_joined_user_actor() + |> where([a, u], u.local) + |> select([a, u], u.ap_id) + |> Repo.all() + + repeaters -- [actor] + end end def get_potential_receiver_ap_ids(activity) do @@ -580,8 +636,10 @@ def exclude_thread_muter_ap_ids(ap_ids, %Activity{} = activity) do Enum.uniq(ap_ids) -- thread_muter_ap_ids end - @spec skip?(Activity.t(), User.t()) :: boolean() - def skip?(%Activity{} = activity, %User{} = user) do + def skip?(activity, user, opts \\ []) + + @spec skip?(Activity.t(), User.t(), Keyword.t()) :: boolean() + def skip?(%Activity{} = activity, %User{} = user, opts) do [ :self, :invisible, @@ -589,17 +647,21 @@ def skip?(%Activity{} = activity, %User{} = user) do :recently_followed, :filtered ] - |> Enum.find(&skip?(&1, activity, user)) + |> Enum.find(&skip?(&1, activity, user, opts)) end - def skip?(_, _), do: false + def skip?(_activity, _user, _opts), do: false - @spec skip?(atom(), Activity.t(), User.t()) :: boolean() - def skip?(:self, %Activity{} = activity, %User{} = user) do - activity.data["actor"] == user.ap_id + @spec skip?(atom(), Activity.t(), User.t(), Keyword.t()) :: boolean() + def skip?(:self, %Activity{} = activity, %User{} = user, opts) do + cond do + opts[:type] == "poll" -> false + activity.data["actor"] == user.ap_id -> true + true -> false + end end - def skip?(:invisible, %Activity{} = activity, _) do + def skip?(:invisible, %Activity{} = activity, _user, _opts) do actor = activity.data["actor"] user = User.get_cached_by_ap_id(actor) User.invisible?(user) @@ -608,15 +670,27 @@ def skip?(:invisible, %Activity{} = activity, _) do def skip?( :block_from_strangers, %Activity{} = activity, - %User{notification_settings: %{block_from_strangers: true}} = user + %User{notification_settings: %{block_from_strangers: true}} = user, + opts ) do actor = activity.data["actor"] follower = User.get_cached_by_ap_id(actor) - !User.following?(follower, user) + + cond do + opts[:type] == "poll" -> false + user.ap_id == actor -> false + !User.following?(follower, user) -> true + true -> false + end end # To do: consider defining recency in hours and checking FollowingRelationship with a single SQL - def skip?(:recently_followed, %Activity{data: %{"type" => "Follow"}} = activity, %User{} = user) do + def skip?( + :recently_followed, + %Activity{data: %{"type" => "Follow"}} = activity, + %User{} = user, + _opts + ) do actor = activity.data["actor"] Notification.for_user(user) @@ -626,9 +700,10 @@ def skip?(:recently_followed, %Activity{data: %{"type" => "Follow"}} = activity, end) end - def skip?(:filtered, %{data: %{"type" => type}}, _) when type in ["Follow", "Move"], do: false + def skip?(:filtered, %{data: %{"type" => type}}, _user, _opts) when type in ["Follow", "Move"], + do: false - def skip?(:filtered, activity, user) do + def skip?(:filtered, activity, user, _opts) do object = Object.normalize(activity, fetch: false) cond do @@ -646,7 +721,7 @@ def skip?(:filtered, activity, user) do end end - def skip?(_, _, _), do: false + def skip?(_type, _activity, _user, _opts), do: false def mark_as_read?(activity, target_user) do user = Activity.user_actor(activity) diff --git a/lib/pleroma/object.ex b/lib/pleroma/object.ex index c3ea1b98b..38accae5d 100644 --- a/lib/pleroma/object.ex +++ b/lib/pleroma/object.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Object do @@ -40,8 +40,7 @@ def with_joined_activity(query, activity_type \\ "Create", join_type \\ :inner) join(query, join_type, [{object, object_position}], a in Activity, on: fragment( - "COALESCE(?->'object'->>'id', ?->>'object') = (? ->> 'id') AND (?->>'type' = ?) ", - a.data, + "associated_object_id(?) = (? ->> 'id') AND (?->>'type' = ?) ", a.data, object.data, a.data, @@ -145,7 +144,7 @@ defp warn_on_no_object_preloaded(ap_id) do Logger.debug("Backtrace: #{inspect(Process.info(:erlang.self(), :current_stacktrace))}") end - def normalize(_, options \\ [fetch: false]) + def normalize(_, options \\ [fetch: false, id_only: false]) # If we pass an Activity to Object.normalize(), we can try to use the preloaded object. # Use this whenever possible, especially when walking graphs in an O(N) loop! @@ -173,10 +172,15 @@ def normalize(%Activity{data: %{"object" => ap_id}}, options) do def normalize(%{"id" => ap_id}, options), do: normalize(ap_id, options) def normalize(ap_id, options) when is_binary(ap_id) do - if Keyword.get(options, :fetch) do - Fetcher.fetch_object_from_id!(ap_id, options) - else - get_cached_by_ap_id(ap_id) + cond do + Keyword.get(options, :id_only) -> + ap_id + + Keyword.get(options, :fetch) -> + Fetcher.fetch_object_from_id!(ap_id, options) + + true -> + get_cached_by_ap_id(ap_id) end end @@ -208,10 +212,6 @@ def get_cached_by_ap_id(ap_id) do end end - def context_mapping(context) do - Object.change(%Object{}, %{data: %{"id" => context}}) - end - def make_tombstone(%Object{data: %{"id" => id, "type" => type}}, deleted \\ DateTime.utc_now()) do %ObjectTombstone{ id: id, diff --git a/lib/pleroma/object/containment.ex b/lib/pleroma/object/containment.ex index 040537acf..f6106cb3f 100644 --- a/lib/pleroma/object/containment.ex +++ b/lib/pleroma/object/containment.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Object.Containment do diff --git a/lib/pleroma/object/fetcher.ex b/lib/pleroma/object/fetcher.ex index 4ca67f0fd..a9a9eeeed 100644 --- a/lib/pleroma/object/fetcher.ex +++ b/lib/pleroma/object/fetcher.ex @@ -1,9 +1,10 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Object.Fetcher do alias Pleroma.HTTP + alias Pleroma.Instances alias Pleroma.Maps alias Pleroma.Object alias Pleroma.Object.Containment @@ -26,8 +27,42 @@ defp touch_changeset(changeset) do end defp maybe_reinject_internal_fields(%{data: %{} = old_data}, new_data) do + has_history? = fn + %{"formerRepresentations" => %{"orderedItems" => list}} when is_list(list) -> true + _ -> false + end + internal_fields = Map.take(old_data, Pleroma.Constants.object_internal_fields()) + remote_history_exists? = has_history?.(new_data) + + # If the remote history exists, we treat that as the only source of truth. + new_data = + if has_history?.(old_data) and not remote_history_exists? do + Map.put(new_data, "formerRepresentations", old_data["formerRepresentations"]) + else + new_data + end + + # If the remote does not have history information, we need to manage it ourselves + new_data = + if not remote_history_exists? do + changed? = + Pleroma.Constants.status_updatable_fields() + |> Enum.any?(fn field -> Map.get(old_data, field) != Map.get(new_data, field) end) + + %{updated_object: updated_object} = + new_data + |> Object.Updater.maybe_update_history(old_data, + updated: changed?, + use_history_in_new_object?: false + ) + + updated_object + else + new_data + end + Map.merge(new_data, internal_fields) end @@ -200,6 +235,10 @@ def fetch_and_contain_remote_object_from_id(id) when is_binary(id) do {:ok, body} <- get_object(id), {:ok, data} <- safe_json_decode(body), :ok <- Containment.contain_origin_from_id(id, data) do + if not Instances.reachable?(id) do + Instances.set_reachable(id) + end + {:ok, data} else {:scheme, _} -> diff --git a/lib/pleroma/object/updater.ex b/lib/pleroma/object/updater.ex new file mode 100644 index 000000000..ab38d3ed2 --- /dev/null +++ b/lib/pleroma/object/updater.ex @@ -0,0 +1,240 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2022 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + +defmodule Pleroma.Object.Updater do + require Pleroma.Constants + + def update_content_fields(orig_object_data, updated_object) do + Pleroma.Constants.status_updatable_fields() + |> Enum.reduce( + %{data: orig_object_data, updated: false}, + fn field, %{data: data, updated: updated} -> + updated = + updated or + (field != "updated" and + Map.get(updated_object, field) != Map.get(orig_object_data, field)) + + data = + if Map.has_key?(updated_object, field) do + Map.put(data, field, updated_object[field]) + else + Map.drop(data, [field]) + end + + %{data: data, updated: updated} + end + ) + end + + def maybe_history(object) do + with history <- Map.get(object, "formerRepresentations"), + true <- is_map(history), + "OrderedCollection" <- Map.get(history, "type"), + true <- is_list(Map.get(history, "orderedItems")), + true <- is_integer(Map.get(history, "totalItems")) do + history + else + _ -> nil + end + end + + def history_for(object) do + with history when not is_nil(history) <- maybe_history(object) do + history + else + _ -> history_skeleton() + end + end + + defp history_skeleton do + %{ + "type" => "OrderedCollection", + "totalItems" => 0, + "orderedItems" => [] + } + end + + def maybe_update_history( + updated_object, + orig_object_data, + opts + ) do + updated = opts[:updated] + use_history_in_new_object? = opts[:use_history_in_new_object?] + + if not updated do + %{updated_object: updated_object, used_history_in_new_object?: false} + else + # Put edit history + # Note that we may have got the edit history by first fetching the object + {new_history, used_history_in_new_object?} = + with true <- use_history_in_new_object?, + updated_history when not is_nil(updated_history) <- maybe_history(opts[:new_data]) do + {updated_history, true} + else + _ -> + history = history_for(orig_object_data) + + latest_history_item = + orig_object_data + |> Map.drop(["id", "formerRepresentations"]) + + updated_history = + history + |> Map.put("orderedItems", [latest_history_item | history["orderedItems"]]) + |> Map.put("totalItems", history["totalItems"] + 1) + + {updated_history, false} + end + + updated_object = + updated_object + |> Map.put("formerRepresentations", new_history) + + %{updated_object: updated_object, used_history_in_new_object?: used_history_in_new_object?} + end + end + + defp maybe_update_poll(to_be_updated, updated_object) do + choice_key = fn data -> + if Map.has_key?(data, "anyOf"), do: "anyOf", else: "oneOf" + end + + with true <- to_be_updated["type"] == "Question", + key <- choice_key.(updated_object), + true <- key == choice_key.(to_be_updated), + orig_choices <- to_be_updated[key] |> Enum.map(&Map.drop(&1, ["replies"])), + new_choices <- updated_object[key] |> Enum.map(&Map.drop(&1, ["replies"])), + true <- orig_choices == new_choices do + # Choices are the same, but counts are different + to_be_updated + |> Map.put(key, updated_object[key]) + else + # Choices (or vote type) have changed, do not allow this + _ -> to_be_updated + end + end + + # This calculates the data to be sent as the object of an Update. + # new_data's formerRepresentations is not considered. + # formerRepresentations is added to the returned data. + def make_update_object_data(original_data, new_data, date) do + %{data: updated_data, updated: updated} = + original_data + |> update_content_fields(new_data) + + if not updated do + updated_data + else + %{updated_object: updated_data} = + updated_data + |> maybe_update_history(original_data, updated: updated, use_history_in_new_object?: false) + + updated_data + |> Map.put("updated", date) + end + end + + # This calculates the data of the new Object from an Update. + # new_data's formerRepresentations is considered. + def make_new_object_data_from_update_object(original_data, new_data) do + update_is_reasonable = + with {_, updated} when not is_nil(updated) <- {:cur_updated, new_data["updated"]}, + {_, {:ok, updated_time, _}} <- {:cur_updated, DateTime.from_iso8601(updated)}, + {_, last_updated} when not is_nil(last_updated) <- + {:last_updated, original_data["updated"] || original_data["published"]}, + {_, {:ok, last_updated_time, _}} <- + {:last_updated, DateTime.from_iso8601(last_updated)}, + :gt <- DateTime.compare(updated_time, last_updated_time) do + :update_everything + else + # only allow poll updates + {:cur_updated, _} -> :no_content_update + :eq -> :no_content_update + # allow all updates + {:last_updated, _} -> :update_everything + # allow no updates + _ -> false + end + + %{ + updated_object: updated_data, + used_history_in_new_object?: used_history_in_new_object?, + updated: updated + } = + if update_is_reasonable == :update_everything do + %{data: updated_data, updated: updated} = + original_data + |> update_content_fields(new_data) + + updated_data + |> maybe_update_history(original_data, + updated: updated, + use_history_in_new_object?: true, + new_data: new_data + ) + |> Map.put(:updated, updated) + else + %{ + updated_object: original_data, + used_history_in_new_object?: false, + updated: false + } + end + + updated_data = + if update_is_reasonable != false do + updated_data + |> maybe_update_poll(new_data) + else + updated_data + end + + %{ + updated_data: updated_data, + updated: updated, + used_history_in_new_object?: used_history_in_new_object? + } + end + + def for_each_history_item(%{"orderedItems" => items} = history, _object, fun) do + new_items = + Enum.map(items, fun) + |> Enum.reduce_while( + {:ok, []}, + fn + {:ok, item}, {:ok, acc} -> {:cont, {:ok, acc ++ [item]}} + e, _acc -> {:halt, e} + end + ) + + case new_items do + {:ok, items} -> {:ok, Map.put(history, "orderedItems", items)} + e -> e + end + end + + def for_each_history_item(history, _, _) do + {:ok, history} + end + + def do_with_history(object, fun) do + with history <- object["formerRepresentations"], + object <- Map.drop(object, ["formerRepresentations"]), + {_, {:ok, object}} <- {:main_body, fun.(object)}, + {_, {:ok, history}} <- {:history_items, for_each_history_item(history, object, fun)} do + object = + if history do + Map.put(object, "formerRepresentations", history) + else + object + end + + {:ok, object} + else + {:main_body, e} -> e + {:history_items, e} -> e + end + end +end diff --git a/lib/pleroma/object_tombstone.ex b/lib/pleroma/object_tombstone.ex index a42d2d9a0..8bdc8f661 100644 --- a/lib/pleroma/object_tombstone.ex +++ b/lib/pleroma/object_tombstone.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.ObjectTombstone do diff --git a/lib/pleroma/otp_version.ex b/lib/pleroma/otp_version.ex index a5ac1b072..80b15275a 100644 --- a/lib/pleroma/otp_version.ex +++ b/lib/pleroma/otp_version.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.OTPVersion do diff --git a/lib/pleroma/pagination.ex b/lib/pleroma/pagination.ex index 33e45a0eb..f12ca2819 100644 --- a/lib/pleroma/pagination.ex +++ b/lib/pleroma/pagination.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Pagination do diff --git a/lib/pleroma/password/pbkdf2.ex b/lib/pleroma/password/pbkdf2.ex index 2fd5f4491..92e9e1952 100644 --- a/lib/pleroma/password/pbkdf2.ex +++ b/lib/pleroma/password/pbkdf2.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Password.Pbkdf2 do diff --git a/lib/pleroma/password_reset_token.ex b/lib/pleroma/password_reset_token.ex index edc8ed6a0..42a789ea2 100644 --- a/lib/pleroma/password_reset_token.ex +++ b/lib/pleroma/password_reset_token.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.PasswordResetToken do diff --git a/lib/pleroma/registration.ex b/lib/pleroma/registration.ex index 7b49618e1..b043c37ac 100644 --- a/lib/pleroma/registration.ex +++ b/lib/pleroma/registration.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Registration do diff --git a/lib/pleroma/release_tasks.ex b/lib/pleroma/release_tasks.ex index 1e06aafe4..f9e8d1948 100644 --- a/lib/pleroma/release_tasks.ex +++ b/lib/pleroma/release_tasks.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.ReleaseTasks do diff --git a/lib/pleroma/repo.ex b/lib/pleroma/repo.ex index 61b64ed3e..515b0c1ff 100644 --- a/lib/pleroma/repo.ex +++ b/lib/pleroma/repo.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Repo do diff --git a/lib/pleroma/report_note.ex b/lib/pleroma/report_note.ex index f8bab1548..f2ad76fa8 100644 --- a/lib/pleroma/report_note.ex +++ b/lib/pleroma/report_note.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.ReportNote do diff --git a/lib/pleroma/reverse_proxy.ex b/lib/pleroma/reverse_proxy.ex index ec69a1779..2248c2713 100644 --- a/lib/pleroma/reverse_proxy.ex +++ b/lib/pleroma/reverse_proxy.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.ReverseProxy do diff --git a/lib/pleroma/reverse_proxy/client.ex b/lib/pleroma/reverse_proxy/client.ex index 75243d2dc..91f6e5a95 100644 --- a/lib/pleroma/reverse_proxy/client.ex +++ b/lib/pleroma/reverse_proxy/client.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.ReverseProxy.Client do diff --git a/lib/pleroma/reverse_proxy/client/hackney.ex b/lib/pleroma/reverse_proxy/client/hackney.ex index dba946308..d3e986912 100644 --- a/lib/pleroma/reverse_proxy/client/hackney.ex +++ b/lib/pleroma/reverse_proxy/client/hackney.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.ReverseProxy.Client.Hackney do @@ -7,7 +7,6 @@ defmodule Pleroma.ReverseProxy.Client.Hackney do @impl true def request(method, url, headers, body, opts \\ []) do - opts = Keyword.put(opts, :ssl_options, versions: [:"tlsv1.2", :"tlsv1.1", :tlsv1]) :hackney.request(method, url, headers, body, opts) end diff --git a/lib/pleroma/reverse_proxy/client/tesla.ex b/lib/pleroma/reverse_proxy/client/tesla.ex index 36a0a2060..4596d7a7f 100644 --- a/lib/pleroma/reverse_proxy/client/tesla.ex +++ b/lib/pleroma/reverse_proxy/client/tesla.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.ReverseProxy.Client.Tesla do diff --git a/lib/pleroma/reverse_proxy/client/wrapper.ex b/lib/pleroma/reverse_proxy/client/wrapper.ex index 06dd29fea..1ce476927 100644 --- a/lib/pleroma/reverse_proxy/client/wrapper.ex +++ b/lib/pleroma/reverse_proxy/client/wrapper.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.ReverseProxy.Client.Wrapper do @@ -25,5 +25,6 @@ defp client do defp client(Tesla.Adapter.Hackney), do: Pleroma.ReverseProxy.Client.Hackney defp client(Tesla.Adapter.Gun), do: Pleroma.ReverseProxy.Client.Tesla + defp client({Tesla.Adapter.Finch, _}), do: Pleroma.ReverseProxy.Client.Hackney defp client(_), do: Pleroma.Config.get!(Pleroma.ReverseProxy.Client) end diff --git a/lib/pleroma/scheduled_activity.ex b/lib/pleroma/scheduled_activity.ex index 2b156341f..a7be58512 100644 --- a/lib/pleroma/scheduled_activity.ex +++ b/lib/pleroma/scheduled_activity.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.ScheduledActivity do diff --git a/lib/pleroma/signature.ex b/lib/pleroma/signature.ex index a71a504b3..5cfdae051 100644 --- a/lib/pleroma/signature.ex +++ b/lib/pleroma/signature.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Signature do @@ -66,9 +66,8 @@ def refetch_public_key(conn) do end end - def sign(%User{} = user, headers) do - with {:ok, %{keys: keys}} <- User.ensure_keys_present(user), - {:ok, private_key, _} <- Keys.keys_from_pem(keys) do + def sign(%User{keys: keys} = user, headers) do + with {:ok, private_key, _} <- Keys.keys_from_pem(keys) do HTTPSignatures.sign(private_key, user.ap_id <> "#main-key", headers) end end diff --git a/lib/pleroma/stats.ex b/lib/pleroma/stats.ex index 3e3f24c2c..47b30b951 100644 --- a/lib/pleroma/stats.ex +++ b/lib/pleroma/stats.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Stats do diff --git a/lib/pleroma/telemetry/logger.ex b/lib/pleroma/telemetry/logger.ex index 44d2f48dc..384c70fbc 100644 --- a/lib/pleroma/telemetry/logger.ex +++ b/lib/pleroma/telemetry/logger.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Telemetry.Logger do @@ -29,9 +29,7 @@ def handle_event( _ ) do Logger.debug(fn -> - "Connection pool is exhausted (reached #{max_connections} connections). Starting idle connection cleanup to reclaim as much as #{ - reclaim_max - } connections" + "Connection pool is exhausted (reached #{max_connections} connections). Starting idle connection cleanup to reclaim as much as #{reclaim_max} connections" end) end @@ -73,9 +71,7 @@ def handle_event( _ ) do Logger.warn(fn -> - "Pool worker for #{key}: Client #{inspect(client_pid)} died before releasing the connection with #{ - inspect(reason) - }" + "Pool worker for #{key}: Client #{inspect(client_pid)} died before releasing the connection with #{inspect(reason)}" end) end diff --git a/lib/pleroma/tesla/middleware/connection_pool.ex b/lib/pleroma/tesla/middleware/connection_pool.ex index 906706d39..de74270f8 100644 --- a/lib/pleroma/tesla/middleware/connection_pool.ex +++ b/lib/pleroma/tesla/middleware/connection_pool.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Tesla.Middleware.ConnectionPool do diff --git a/lib/pleroma/tests/auth_test_controller.ex b/lib/pleroma/tests/auth_test_controller.ex index 76514948b..d244badf4 100644 --- a/lib/pleroma/tests/auth_test_controller.ex +++ b/lib/pleroma/tests/auth_test_controller.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only # A test controller reachable only in :test env. diff --git a/lib/pleroma/thread_mute.ex b/lib/pleroma/thread_mute.ex index 5d06cf030..8ea4181bd 100644 --- a/lib/pleroma/thread_mute.ex +++ b/lib/pleroma/thread_mute.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.ThreadMute do diff --git a/lib/pleroma/upload.ex b/lib/pleroma/upload.ex index 17822dc5e..4aee9326f 100644 --- a/lib/pleroma/upload.ex +++ b/lib/pleroma/upload.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Upload do @@ -36,6 +36,7 @@ defmodule Pleroma.Upload do alias Ecto.UUID alias Pleroma.Config alias Pleroma.Maps + alias Pleroma.Web.ActivityPub.Utils require Logger @type source :: @@ -60,12 +61,23 @@ defmodule Pleroma.Upload do width: integer(), height: integer(), blurhash: String.t(), + description: String.t(), path: String.t() } - defstruct [:id, :name, :tempfile, :content_type, :width, :height, :blurhash, :path] + defstruct [ + :id, + :name, + :tempfile, + :content_type, + :width, + :height, + :blurhash, + :description, + :path + ] - defp get_description(opts, upload) do - case {opts[:description], Pleroma.Config.get([Pleroma.Upload, :default_description])} do + defp get_description(upload) do + case {upload.description, Pleroma.Config.get([Pleroma.Upload, :default_description])} do {description, _} when is_binary(description) -> description {_, :filename} -> upload.name {_, str} when is_binary(str) -> str @@ -81,13 +93,14 @@ def store(upload, opts \\ []) do with {:ok, upload} <- prepare_upload(upload, opts), upload = %__MODULE__{upload | path: upload.path || "#{upload.id}/#{upload.name}"}, {:ok, upload} <- Pleroma.Upload.Filter.filter(opts.filters, upload), - description = get_description(opts, upload), + description = get_description(upload), {_, true} <- {:description_limit, String.length(description) <= Pleroma.Config.get([:instance, :description_limit])}, {:ok, url_spec} <- Pleroma.Uploaders.Uploader.put_file(opts.uploader, upload) do {:ok, %{ + "id" => Utils.generate_object_id(), "type" => opts.activity_type, "mediaType" => upload.content_type, "url" => [ @@ -152,7 +165,8 @@ defp prepare_upload(%Plug.Upload{} = file, opts) do id: UUID.generate(), name: file.filename, tempfile: file.path, - content_type: file.content_type + content_type: file.content_type, + description: opts.description }} end end @@ -172,7 +186,8 @@ defp prepare_upload(%{img: "data:image/" <> image_data}, opts) do id: UUID.generate(), name: hash <> "." <> ext, tempfile: tmp_path, - content_type: content_type + content_type: content_type, + description: opts.description }} end end diff --git a/lib/pleroma/upload/filter.ex b/lib/pleroma/upload/filter.ex index e5db2fb20..717f06621 100644 --- a/lib/pleroma/upload/filter.ex +++ b/lib/pleroma/upload/filter.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Upload.Filter do diff --git a/lib/pleroma/upload/filter/analyze_metadata.ex b/lib/pleroma/upload/filter/analyze_metadata.ex index c89c30fc1..9a76a998b 100644 --- a/lib/pleroma/upload/filter/analyze_metadata.ex +++ b/lib/pleroma/upload/filter/analyze_metadata.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Upload.Filter.AnalyzeMetadata do diff --git a/lib/pleroma/upload/filter/anonymize_filename.ex b/lib/pleroma/upload/filter/anonymize_filename.ex index 7e62b3d13..234ccb6bb 100644 --- a/lib/pleroma/upload/filter/anonymize_filename.ex +++ b/lib/pleroma/upload/filter/anonymize_filename.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Upload.Filter.AnonymizeFilename do diff --git a/lib/pleroma/upload/filter/dedupe.ex b/lib/pleroma/upload/filter/dedupe.ex index 2bf581b05..ef793d390 100644 --- a/lib/pleroma/upload/filter/dedupe.ex +++ b/lib/pleroma/upload/filter/dedupe.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Upload.Filter.Dedupe do diff --git a/lib/pleroma/upload/filter/exiftool.ex b/lib/pleroma/upload/filter/exiftool.ex deleted file mode 100644 index a2bfbbf61..000000000 --- a/lib/pleroma/upload/filter/exiftool.ex +++ /dev/null @@ -1,31 +0,0 @@ -# Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors -# SPDX-License-Identifier: AGPL-3.0-only - -defmodule Pleroma.Upload.Filter.Exiftool do - @moduledoc """ - Strips GPS related EXIF tags and overwrites the file in place. - Also strips or replaces filesystem metadata e.g., timestamps. - """ - @behaviour Pleroma.Upload.Filter - - @spec filter(Pleroma.Upload.t()) :: {:ok, any()} | {:error, String.t()} - - # Formats not compatible with exiftool at this time - def filter(%Pleroma.Upload{content_type: "image/heic"}), do: {:ok, :noop} - def filter(%Pleroma.Upload{content_type: "image/webp"}), do: {:ok, :noop} - - def filter(%Pleroma.Upload{tempfile: file, content_type: "image" <> _}) do - try do - case System.cmd("exiftool", ["-overwrite_original", "-gps:all=", file], parallelism: true) do - {_response, 0} -> {:ok, :filtered} - {error, 1} -> {:error, error} - end - rescue - e in ErlangError -> - {:error, "#{__MODULE__}: #{inspect(e)}"} - end - end - - def filter(_), do: {:ok, :noop} -end diff --git a/lib/pleroma/upload/filter/exiftool/read_description.ex b/lib/pleroma/upload/filter/exiftool/read_description.ex new file mode 100644 index 000000000..03d698a81 --- /dev/null +++ b/lib/pleroma/upload/filter/exiftool/read_description.ex @@ -0,0 +1,49 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2021 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + +defmodule Pleroma.Upload.Filter.Exiftool.ReadDescription do + @moduledoc """ + Gets a valid description from the related EXIF tags and provides them in the response if no description is provided yet. + It will first check ImageDescription, when that doesn't probide a valid description, it will check iptc:Caption-Abstract. + A valid description means the fields are filled in and not too long (see `:instance, :description_limit`). + """ + @behaviour Pleroma.Upload.Filter + + @spec filter(Pleroma.Upload.t()) :: {:ok, any()} | {:error, String.t()} + + def filter(%Pleroma.Upload{description: description}) + when is_binary(description), + do: {:ok, :noop} + + def filter(%Pleroma.Upload{tempfile: file} = upload), + do: {:ok, :filtered, upload |> Map.put(:description, read_description_from_exif_data(file))} + + def filter(_, _), do: {:ok, :noop} + + defp read_description_from_exif_data(file) do + nil + |> read_when_empty(file, "-ImageDescription") + |> read_when_empty(file, "-iptc:Caption-Abstract") + end + + defp read_when_empty(current_description, _, _) when is_binary(current_description), + do: current_description + + defp read_when_empty(_, file, tag) do + try do + {tag_content, 0} = + System.cmd("exiftool", ["-b", "-s3", tag, file], stderr_to_stdout: true, parallelism: true) + + tag_content = String.trim(tag_content) + + if tag_content != "" and + String.length(tag_content) <= + Pleroma.Config.get([:instance, :description_limit]), + do: tag_content, + else: nil + rescue + _ in ErlangError -> nil + end + end +end diff --git a/lib/pleroma/upload/filter/exiftool/strip_location.ex b/lib/pleroma/upload/filter/exiftool/strip_location.ex new file mode 100644 index 000000000..6100527d3 --- /dev/null +++ b/lib/pleroma/upload/filter/exiftool/strip_location.ex @@ -0,0 +1,31 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2022 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + +defmodule Pleroma.Upload.Filter.Exiftool.StripLocation do + @moduledoc """ + Strips GPS related EXIF tags and overwrites the file in place. + Also strips or replaces filesystem metadata e.g., timestamps. + """ + @behaviour Pleroma.Upload.Filter + + @spec filter(Pleroma.Upload.t()) :: {:ok, any()} | {:error, String.t()} + + # Formats not compatible with exiftool at this time + def filter(%Pleroma.Upload{content_type: "image/heic"}), do: {:ok, :noop} + def filter(%Pleroma.Upload{content_type: "image/webp"}), do: {:ok, :noop} + + def filter(%Pleroma.Upload{tempfile: file, content_type: "image" <> _}) do + try do + case System.cmd("exiftool", ["-overwrite_original", "-gps:all=", file], parallelism: true) do + {_response, 0} -> {:ok, :filtered} + {error, 1} -> {:error, error} + end + rescue + e in ErlangError -> + {:error, "#{__MODULE__}: #{inspect(e)}"} + end + end + + def filter(_), do: {:ok, :noop} +end diff --git a/lib/pleroma/upload/filter/mogrifun.ex b/lib/pleroma/upload/filter/mogrifun.ex index 01126aaeb..a0f247b70 100644 --- a/lib/pleroma/upload/filter/mogrifun.ex +++ b/lib/pleroma/upload/filter/mogrifun.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Upload.Filter.Mogrifun do diff --git a/lib/pleroma/upload/filter/mogrify.ex b/lib/pleroma/upload/filter/mogrify.ex index f27aefc22..06efbf321 100644 --- a/lib/pleroma/upload/filter/mogrify.ex +++ b/lib/pleroma/upload/filter/mogrify.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Upload.Filter.Mogrify do diff --git a/lib/pleroma/uploaders/local.ex b/lib/pleroma/uploaders/local.ex index 0e1ba4b90..e4a309cea 100644 --- a/lib/pleroma/uploaders/local.ex +++ b/lib/pleroma/uploaders/local.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Uploaders.Local do diff --git a/lib/pleroma/uploaders/s3.ex b/lib/pleroma/uploaders/s3.ex index d85c8cb2f..19287c532 100644 --- a/lib/pleroma/uploaders/s3.ex +++ b/lib/pleroma/uploaders/s3.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Uploaders.S3 do diff --git a/lib/pleroma/uploaders/uploader.ex b/lib/pleroma/uploaders/uploader.ex index deba548b7..77f6f02dd 100644 --- a/lib/pleroma/uploaders/uploader.ex +++ b/lib/pleroma/uploaders/uploader.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Uploaders.Uploader do diff --git a/lib/pleroma/user.ex b/lib/pleroma/user.ex index 03c5f91cc..f6e30555c 100644 --- a/lib/pleroma/user.ex +++ b/lib/pleroma/user.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.User do @@ -78,6 +78,10 @@ defmodule Pleroma.User do inverse_subscription: [ subscribee_subscriptions: :subscriber_users, subscriber_subscriptions: :subscribee_users + ], + endorsement: [ + endorser_endorsements: :endorsed_users, + endorsee_endorsements: :endorser_users ] ] @@ -124,7 +128,6 @@ defmodule Pleroma.User do field(:is_moderator, :boolean, default: false) field(:is_admin, :boolean, default: false) field(:show_role, :boolean, default: true) - field(:mastofe_settings, :map, default: nil) field(:uri, ObjectValidators.Uri, default: nil) field(:hide_followers_count, :boolean, default: false) field(:hide_follows_count, :boolean, default: false) @@ -149,6 +152,11 @@ defmodule Pleroma.User do field(:last_active_at, :naive_datetime) field(:disclose_client, :boolean, default: true) field(:pinned_objects, :map, default: %{}) + field(:is_suggested, :boolean, default: false) + field(:last_status_at, :naive_datetime) + field(:birthday, :date) + field(:show_birthday, :boolean, default: false) + field(:language, :string) embeds_one( :notification_settings, @@ -169,25 +177,25 @@ defmodule Pleroma.User do {incoming_relation, incoming_relation_source} ]} <- @user_relationships_config do # Definitions of `has_many` relations: :blocker_blocks, :muter_mutes, :reblog_muter_mutes, - # :notification_muter_mutes, :subscribee_subscriptions + # :notification_muter_mutes, :subscribee_subscriptions, :endorser_endorsements has_many(outgoing_relation, UserRelationship, foreign_key: :source_id, where: [relationship_type: relationship_type] ) # Definitions of `has_many` relations: :blockee_blocks, :mutee_mutes, :reblog_mutee_mutes, - # :notification_mutee_mutes, :subscriber_subscriptions + # :notification_mutee_mutes, :subscriber_subscriptions, :endorsee_endorsements has_many(incoming_relation, UserRelationship, foreign_key: :target_id, where: [relationship_type: relationship_type] ) # Definitions of `has_many` relations: :blocked_users, :muted_users, :reblog_muted_users, - # :notification_muted_users, :subscriber_users + # :notification_muted_users, :subscriber_users, :endorsed_users has_many(outgoing_relation_target, through: [outgoing_relation, :target]) # Definitions of `has_many` relations: :blocker_users, :muter_users, :reblog_muter_users, - # :notification_muter_users, :subscribee_users + # :notification_muter_users, :subscribee_users, :endorser_users has_many(incoming_relation_source, through: [incoming_relation, :source]) end @@ -215,7 +223,7 @@ defmodule Pleroma.User do @user_relationships_config do # `def blocked_users_relation/2`, `def muted_users_relation/2`, # `def reblog_muted_users_relation/2`, `def notification_muted_users/2`, - # `def subscriber_users/2` + # `def subscriber_users/2`, `def endorsed_users_relation/2` def unquote(:"#{outgoing_relation_target}_relation")(user, restrict_deactivated? \\ false) do target_users_query = assoc(user, unquote(outgoing_relation_target)) @@ -228,7 +236,7 @@ def unquote(:"#{outgoing_relation_target}_relation")(user, restrict_deactivated? end # `def blocked_users/2`, `def muted_users/2`, `def reblog_muted_users/2`, - # `def notification_muted_users/2`, `def subscriber_users/2` + # `def notification_muted_users/2`, `def subscriber_users/2`, `def endorsed_users/2` def unquote(outgoing_relation_target)(user, restrict_deactivated? \\ false) do __MODULE__ |> apply(unquote(:"#{outgoing_relation_target}_relation"), [ @@ -239,7 +247,8 @@ def unquote(outgoing_relation_target)(user, restrict_deactivated? \\ false) do end # `def blocked_users_ap_ids/2`, `def muted_users_ap_ids/2`, `def reblog_muted_users_ap_ids/2`, - # `def notification_muted_users_ap_ids/2`, `def subscriber_users_ap_ids/2` + # `def notification_muted_users_ap_ids/2`, `def subscriber_users_ap_ids/2`, + # `def endorsed_users_ap_ids/2` def unquote(:"#{outgoing_relation_target}_ap_ids")(user, restrict_deactivated? \\ false) do __MODULE__ |> apply(unquote(:"#{outgoing_relation_target}_relation"), [ @@ -317,7 +326,7 @@ def visible_for(%User{} = user, nil) do end def visible_for(%User{} = user, for_user) do - if superuser?(for_user) do + if privileged?(for_user, :users_manage_activation_state) do :visible else visible_account_status(user) @@ -344,10 +353,45 @@ defp visible_account_status(user) do end end - @spec superuser?(User.t()) :: boolean() - def superuser?(%User{local: true, is_admin: true}), do: true - def superuser?(%User{local: true, is_moderator: true}), do: true - def superuser?(_), do: false + @spec privileged?(User.t(), atom()) :: boolean() + def privileged?(%User{is_admin: false, is_moderator: false}, _), do: false + + def privileged?( + %User{local: true, is_admin: is_admin, is_moderator: is_moderator}, + privilege_tag + ), + do: + privileged_for?(privilege_tag, is_admin, :admin_privileges) or + privileged_for?(privilege_tag, is_moderator, :moderator_privileges) + + def privileged?(_, _), do: false + + defp privileged_for?(privilege_tag, true, config_role_key), + do: privilege_tag in Config.get([:instance, config_role_key]) + + defp privileged_for?(_, _, _), do: false + + @spec privileges(User.t()) :: [atom()] + def privileges(%User{local: false}) do + [] + end + + def privileges(%User{is_moderator: false, is_admin: false}) do + [] + end + + def privileges(%User{local: true, is_moderator: true, is_admin: true}) do + (Config.get([:instance, :moderator_privileges]) ++ Config.get([:instance, :admin_privileges])) + |> Enum.uniq() + end + + def privileges(%User{local: true, is_moderator: true, is_admin: false}) do + Config.get([:instance, :moderator_privileges]) + end + + def privileges(%User{local: true, is_moderator: false, is_admin: true}) do + Config.get([:instance, :admin_privileges]) + end @spec invisible?(User.t()) :: boolean() def invisible?(%User{invisible: true}), do: true @@ -464,7 +508,9 @@ def remote_user_changeset(struct \\ %User{local: false}, params) do :actor_type, :also_known_as, :accepts_chat_messages, - :pinned_objects + :pinned_objects, + :birthday, + :show_birthday ] ) |> cast(params, [:name], empty_values: []) @@ -525,9 +571,12 @@ def update_changeset(struct, params \\ %{}) do :is_discoverable, :actor_type, :accepts_chat_messages, - :disclose_client + :disclose_client, + :birthday, + :show_birthday ] ) + |> validate_min_age() |> unique_constraint(:nickname) |> validate_format(:nickname, local_nickname_regex()) |> validate_length(:bio, max: bio_limit) @@ -597,7 +646,13 @@ defp put_change_if_present(changeset, map_field, value_function) do {:ok, new_value} <- value_function.(value) do put_change(changeset, map_field, new_value) else - _ -> changeset + {:error, :file_too_large} -> + Ecto.Changeset.validate_change(changeset, map_field, fn map_field, _value -> + [{map_field, "file is too large"}] + end) + + _ -> + changeset end end @@ -692,11 +747,12 @@ def register_changeset_ldap(struct, params = %{password: password}) ]) |> validate_required([:name, :nickname]) |> unique_constraint(:nickname) - |> validate_exclusion(:nickname, Config.get([User, :restricted_nicknames])) + |> validate_not_restricted_nickname(:nickname) |> validate_format(:nickname, local_nickname_regex()) |> put_ap_id() |> unique_constraint(:ap_id) |> put_following_and_follower_and_featured_address() + |> put_private_key() end def register_changeset(struct, params \\ %{}, opts \\ []) do @@ -732,32 +788,58 @@ def register_changeset(struct, params \\ %{}, opts \\ []) do :password_confirmation, :emoji, :accepts_chat_messages, - :registration_reason + :registration_reason, + :birthday, + :language ]) |> validate_required([:name, :nickname, :password, :password_confirmation]) |> validate_confirmation(:password) |> unique_constraint(:email) |> validate_format(:email, @email_regex) - |> validate_change(:email, fn :email, email -> - valid? = - Config.get([User, :email_blacklist]) - |> Enum.all?(fn blacklisted_domain -> - !String.ends_with?(email, ["@" <> blacklisted_domain, "." <> blacklisted_domain]) - end) - - if valid?, do: [], else: [email: "Invalid email"] - end) + |> validate_email_not_in_blacklisted_domain(:email) |> unique_constraint(:nickname) - |> validate_exclusion(:nickname, Config.get([User, :restricted_nicknames])) + |> validate_not_restricted_nickname(:nickname) |> validate_format(:nickname, local_nickname_regex()) |> validate_length(:bio, max: bio_limit) |> validate_length(:name, min: 1, max: name_limit) |> validate_length(:registration_reason, max: reason_limit) |> maybe_validate_required_email(opts[:external]) + |> maybe_validate_required_birthday + |> validate_min_age() |> put_password_hash |> put_ap_id() |> unique_constraint(:ap_id) |> put_following_and_follower_and_featured_address() + |> put_private_key() + end + + def validate_not_restricted_nickname(changeset, field) do + validate_change(changeset, field, fn _, value -> + valid? = + Config.get([User, :restricted_nicknames]) + |> Enum.all?(fn restricted_nickname -> + String.downcase(value) != String.downcase(restricted_nickname) + end) + + if valid?, do: [], else: [nickname: "Invalid nickname"] + end) + end + + def validate_email_not_in_blacklisted_domain(changeset, field) do + validate_change(changeset, field, fn _, value -> + valid? = + Config.get([User, :email_blacklist]) + |> Enum.all?(fn blacklisted_domain -> + blacklisted_domain_downcase = String.downcase(blacklisted_domain) + + !String.ends_with?(String.downcase(value), [ + "@" <> blacklisted_domain_downcase, + "." <> blacklisted_domain_downcase + ]) + end) + + if valid?, do: [], else: [email: "Invalid email"] + end) end def maybe_validate_required_email(changeset, true), do: changeset @@ -770,6 +852,26 @@ def maybe_validate_required_email(changeset, _) do end end + defp maybe_validate_required_birthday(changeset) do + if Config.get([:instance, :birthday_required]) do + validate_required(changeset, [:birthday]) + else + changeset + end + end + + defp validate_min_age(changeset) do + changeset + |> validate_change(:birthday, fn :birthday, birthday -> + valid? = + Date.utc_today() + |> Date.diff(birthday) >= + Config.get([:instance, :birthday_min_age]) + + if valid?, do: [], else: [birthday: "Invalid age"] + end) + end + defp put_ap_id(changeset) do ap_id = ap_id(%User{nickname: get_field(changeset, :nickname)}) put_change(changeset, :ap_id, ap_id) @@ -787,6 +889,11 @@ defp put_following_and_follower_and_featured_address(changeset) do |> put_change(:featured_address, featured) end + defp put_private_key(changeset) do + {:ok, pem} = Keys.generate_rsa_pem() + put_change(changeset, :keys, pem) + end + defp autofollow_users(user) do candidates = Config.get([:instance, :autofollowed_nicknames]) @@ -839,7 +946,7 @@ def post_register_action(%User{is_approved: true, is_confirmed: true} = user) do end end - defp send_user_approval_email(user) do + defp send_user_approval_email(%User{email: email} = user) when is_binary(email) do user |> Pleroma.Emails.UserEmail.approval_pending_email() |> Pleroma.Emails.Mailer.deliver_async() @@ -847,6 +954,10 @@ defp send_user_approval_email(user) do {:ok, :enqueued} end + defp send_user_approval_email(_user) do + {:ok, :skipped} + end + defp send_admin_approval_emails(user) do all_superusers() |> Enum.filter(fn user -> not is_nil(user.email) end) @@ -1049,6 +1160,10 @@ def get_by_ap_id(ap_id) do Repo.get_by(User, ap_id: ap_id) end + def get_by_uri(uri) do + Repo.get_by(User, uri: uri) + end + def get_all_by_ap_id(ap_ids) do from(u in __MODULE__, where: u.ap_id in ^ap_ids @@ -1087,24 +1202,10 @@ def update_and_set_cache(struct, params) do |> update_and_set_cache() end - def update_and_set_cache(%{data: %Pleroma.User{} = user} = changeset) do - was_superuser_before_update = User.superuser?(user) - + def update_and_set_cache(changeset) do with {:ok, user} <- Repo.update(changeset, stale_error_field: :id) do set_cache(user) end - |> maybe_remove_report_notifications(was_superuser_before_update) - end - - defp maybe_remove_report_notifications({:ok, %Pleroma.User{} = user} = result, true) do - if not User.superuser?(user), - do: user |> Notification.destroy_multiple_from_types(["pleroma:report"]) - - result - end - - defp maybe_remove_report_notifications(result, _) do - result end def get_user_friends_ap_ids(user) do @@ -1417,17 +1518,30 @@ def get_recipients_from_activity(%Activity{recipients: to, actor: actor}) do {:ok, list(UserRelationship.t())} | {:error, String.t()} def mute(%User{} = muter, %User{} = mutee, params \\ %{}) do notifications? = Map.get(params, :notifications, true) - expires_in = Map.get(params, :expires_in, 0) + duration = Map.get(params, :duration, 0) - with {:ok, user_mute} <- UserRelationship.create_mute(muter, mutee), + expires_at = + if duration > 0 do + DateTime.utc_now() + |> DateTime.add(duration) + else + nil + end + + with {:ok, user_mute} <- UserRelationship.create_mute(muter, mutee, expires_at), {:ok, user_notification_mute} <- - (notifications? && UserRelationship.create_notification_mute(muter, mutee)) || + (notifications? && + UserRelationship.create_notification_mute( + muter, + mutee, + expires_at + )) || {:ok, nil} do - if expires_in > 0 do + if duration > 0 do Pleroma.Workers.MuteExpireWorker.enqueue( "unmute_user", %{"muter_id" => muter.id, "mutee_id" => mutee.id}, - schedule_in: expires_in + scheduled_at: expires_at ) end @@ -1498,13 +1612,19 @@ def block(%User{} = blocker, %User{} = blocked) do blocker end - # clear any requested follows as well + # clear any requested follows from both sides as well blocked = case CommonAPI.reject_follow_request(blocked, blocker) do {:ok, %User{} = updated_blocked} -> updated_blocked nil -> blocked end + blocker = + case CommonAPI.reject_follow_request(blocker, blocked) do + {:ok, %User{} = updated_blocker} -> updated_blocker + nil -> blocker + end + unsubscribe(blocked, blocker) unfollowing_blocked = Config.get([:activitypub, :unfollow_blocked], true) @@ -1529,6 +1649,40 @@ def unblock(%User{} = blocker, %{ap_id: ap_id}) do unblock(blocker, get_cached_by_ap_id(ap_id)) end + def endorse(%User{} = endorser, %User{} = target) do + with max_endorsed_users <- Pleroma.Config.get([:instance, :max_endorsed_users], 0), + endorsed_users <- + User.endorsed_users_relation(endorser) + |> Repo.aggregate(:count, :id) do + cond do + endorsed_users >= max_endorsed_users -> + {:error, "You have already pinned the maximum number of users"} + + not following?(endorser, target) -> + {:error, "Could not endorse: You are not following #{target.nickname}"} + + true -> + UserRelationship.create_endorsement(endorser, target) + end + end + end + + def endorse(%User{} = endorser, %{ap_id: ap_id}) do + with %User{} = endorsed <- get_cached_by_ap_id(ap_id) do + endorse(endorser, endorsed) + end + end + + def unendorse(%User{} = unendorser, %User{} = target) do + UserRelationship.delete_endorsement(unendorser, target) + end + + def unendorse(%User{} = unendorser, %{ap_id: ap_id}) do + with %User{} = user <- get_cached_by_ap_id(ap_id) do + unendorse(unendorser, user) + end + end + def mutes?(nil, _), do: false def mutes?(%User{} = user, %User{} = target), do: mutes_user?(user, target) @@ -1574,6 +1728,10 @@ def subscribed_to?(%User{} = user, %{ap_id: ap_id}) do end end + def endorses?(%User{} = user, %User{} = target) do + UserRelationship.endorsement_exists?(user, target) + end + @doc """ Returns map of outgoing (blocked, muted etc.) relationships' user AP IDs by relation type. E.g. `outgoing_relationships_ap_ids(user, [:block])` -> `%{block: ["https://some.site/users/userapid"]}` @@ -1691,6 +1849,22 @@ def confirm(%User{is_confirmed: false} = user) do def confirm(%User{} = user), do: {:ok, user} + def set_suggestion(users, is_suggested) when is_list(users) do + Repo.transaction(fn -> + Enum.map(users, fn user -> + with {:ok, user} <- set_suggestion(user, is_suggested), do: user + end) + end) + end + + def set_suggestion(%User{is_suggested: is_suggested} = user, is_suggested), do: {:ok, user} + + def set_suggestion(%User{} = user, is_suggested) when is_boolean(is_suggested) do + user + |> change(is_suggested: is_suggested) + |> update_and_set_cache() + end + def update_notification_settings(%User{} = user, settings) do user |> cast(%{notification_settings: settings}, []) @@ -1727,7 +1901,6 @@ def purge_user_changeset(user) do ap_enabled: false, is_moderator: false, is_admin: false, - mastofe_settings: nil, mascot: nil, emoji: %{}, pleroma_settings_store: %{}, @@ -1951,6 +2124,7 @@ defp create_service_actor(uri, nickname) do follower_address: uri <> "/followers" } |> change + |> put_private_key() |> unique_constraint(:nickname) |> Repo.insert() |> set_cache() @@ -1983,7 +2157,8 @@ def ap_enabled?(_), do: false @doc "Gets or fetch a user by uri or nickname." @spec get_or_fetch(String.t()) :: {:ok, User.t()} | {:error, String.t()} - def get_or_fetch("http" <> _host = uri), do: get_or_fetch_by_ap_id(uri) + def get_or_fetch("http://" <> _host = uri), do: get_or_fetch_by_ap_id(uri) + def get_or_fetch("https://" <> _host = uri), do: get_or_fetch_by_ap_id(uri) def get_or_fetch(nickname), do: get_or_fetch_by_nickname(nickname) # wait a period of time and return newest version of the User structs @@ -2111,6 +2286,11 @@ def all_superusers do |> Repo.all() end + @spec all_users_with_privilege(atom()) :: [User.t()] + def all_users_with_privilege(privilege) do + User.Query.build(%{is_privileged: privilege}) |> Repo.all() + end + def muting_reblogs?(%User{} = user, %User{} = target) do UserRelationship.reblog_mute_exists?(user, target) end @@ -2216,20 +2396,10 @@ def get_mascot(%{mascot: mascot}) when is_nil(mascot) do } end - def ensure_keys_present(%{keys: keys} = user) when not is_nil(keys), do: {:ok, user} - - def ensure_keys_present(%User{} = user) do - with {:ok, pem} <- Keys.generate_rsa_pem() do - user - |> cast(%{keys: pem}, [:keys]) - |> validate_required([:keys]) - |> update_and_set_cache() - end - end - def get_ap_ids_by_nicknames(nicknames) do from(u in User, where: u.nickname in ^nicknames, + order_by: fragment("array_position(?, ?)", ^nicknames, u.nickname), select: u.ap_id ) |> Repo.all() @@ -2262,12 +2432,44 @@ def get_delivered_users_by_object_id(object_id) do def change_email(user, email) do user |> cast(%{email: email}, [:email]) - |> validate_required([:email]) + |> maybe_validate_required_email(false) |> unique_constraint(:email) |> validate_format(:email, @email_regex) |> update_and_set_cache() end + def alias_users(user) do + user.also_known_as + |> Enum.map(&User.get_cached_by_ap_id/1) + |> Enum.filter(fn user -> user != nil end) + end + + def add_alias(user, new_alias_user) do + current_aliases = user.also_known_as || [] + new_alias_ap_id = new_alias_user.ap_id + + if new_alias_ap_id in current_aliases do + {:ok, user} + else + user + |> cast(%{also_known_as: current_aliases ++ [new_alias_ap_id]}, [:also_known_as]) + |> update_and_set_cache() + end + end + + def delete_alias(user, alias_user) do + current_aliases = user.also_known_as || [] + alias_ap_id = alias_user.ap_id + + if alias_ap_id in current_aliases do + user + |> cast(%{also_known_as: current_aliases -- [alias_ap_id]}, [:also_known_as]) + |> update_and_set_cache() + else + {:error, :no_such_alias} + end + end + # Internal function; public one is `deactivate/2` defp set_activation_status(user, status) do user @@ -2345,13 +2547,6 @@ def mascot_update(user, url) do |> update_and_set_cache() end - def mastodon_settings_update(user, settings) do - user - |> cast(%{mastofe_settings: settings}, [:mastofe_settings]) - |> validate_required([:mastofe_settings]) - |> update_and_set_cache() - end - @spec confirmation_changeset(User.t(), keyword()) :: Changeset.t() def confirmation_changeset(user, set_confirmation: confirmed?) do params = @@ -2497,12 +2692,33 @@ def update_last_active_at(%__MODULE__{local: true} = user) do |> update_and_set_cache() end - def active_user_count(weeks \\ 4) do - active_after = Timex.shift(NaiveDateTime.utc_now(), weeks: -weeks) + def active_user_count(days \\ 30) do + active_after = Timex.shift(NaiveDateTime.utc_now(), days: -days) __MODULE__ |> where([u], u.last_active_at >= ^active_after) |> where([u], u.local == true) |> Repo.aggregate(:count) end + + def update_last_status_at(user) do + User + |> where(id: ^user.id) + |> update([u], set: [last_status_at: fragment("NOW()")]) + |> select([u], u) + |> Repo.update_all([]) + |> case do + {1, [user]} -> set_cache(user) + _ -> {:error, user} + end + end + + def get_friends_birthdays_query(%User{} = user, day, month) do + User.Query.build(%{ + friends: user, + deactivated: false, + birthday_day: day, + birthday_month: month + }) + end end diff --git a/lib/pleroma/user/backup.ex b/lib/pleroma/user/backup.ex index cba94248f..9df010605 100644 --- a/lib/pleroma/user/backup.ex +++ b/lib/pleroma/user/backup.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.User.Backup do @@ -32,9 +32,7 @@ defmodule Pleroma.User.Backup do end def create(user, admin_id \\ nil) do - with :ok <- validate_email_enabled(), - :ok <- validate_user_email(user), - :ok <- validate_limit(user, admin_id), + with :ok <- validate_limit(user, admin_id), {:ok, backup} <- user |> new() |> Repo.insert() do BackupWorker.process(backup, admin_id) end @@ -86,20 +84,6 @@ defp validate_limit(user, nil) do end end - defp validate_email_enabled do - if Pleroma.Config.get([Pleroma.Emails.Mailer, :enabled]) do - :ok - else - {:error, dgettext("errors", "Backups require enabled email")} - end - end - - defp validate_user_email(%User{email: nil}) do - {:error, dgettext("errors", "Email is required")} - end - - defp validate_user_email(%User{email: email}) when is_binary(email), do: :ok - def get_last(user_id) do __MODULE__ |> where(user_id: ^user_id) diff --git a/lib/pleroma/user/import.ex b/lib/pleroma/user/import.ex index 60cd18041..4baa7e3a4 100644 --- a/lib/pleroma/user/import.ex +++ b/lib/pleroma/user/import.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.User.Import do diff --git a/lib/pleroma/user/notification_setting.ex b/lib/pleroma/user/notification_setting.ex index a7cd61499..3fb845d71 100644 --- a/lib/pleroma/user/notification_setting.ex +++ b/lib/pleroma/user/notification_setting.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.User.NotificationSetting do diff --git a/lib/pleroma/user/query.ex b/lib/pleroma/user/query.ex index ac807fc79..3e090cac0 100644 --- a/lib/pleroma/user/query.ex +++ b/lib/pleroma/user/query.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.User.Query do @@ -29,6 +29,7 @@ defmodule Pleroma.User.Query do import Ecto.Query import Pleroma.Web.Utils.Guards, only: [not_empty_string: 1] + alias Pleroma.Config alias Pleroma.FollowingRelationship alias Pleroma.User @@ -46,7 +47,10 @@ defmodule Pleroma.User.Query do unconfirmed: boolean(), is_admin: boolean(), is_moderator: boolean(), + is_suggested: boolean(), + is_discoverable: boolean(), super_users: boolean(), + is_privileged: atom(), invisible: boolean(), internal: boolean(), followers: User.t(), @@ -57,7 +61,9 @@ defmodule Pleroma.User.Query do order_by: term(), select: term(), limit: pos_integer(), - actor_types: [String.t()] + actor_types: [String.t()], + birthday_day: pos_integer(), + birthday_month: pos_integer() } | map() @@ -132,6 +138,43 @@ defp compose_query({:super_users, _}, query) do ) end + defp compose_query({:is_privileged, privilege}, query) do + moderator_privileged = privilege in Config.get([:instance, :moderator_privileges]) + admin_privileged = privilege in Config.get([:instance, :admin_privileges]) + + query = compose_query({:active, true}, query) + query = compose_query({:local, true}, query) + + case {admin_privileged, moderator_privileged} do + {false, false} -> + where( + query, + false + ) + + {true, true} -> + where( + query, + [u], + u.is_admin or u.is_moderator + ) + + {true, false} -> + where( + query, + [u], + u.is_admin + ) + + {false, true} -> + where( + query, + [u], + u.is_moderator + ) + end + end + defp compose_query({:local, _}, query), do: location_query(query, true) defp compose_query({:external, _}, query), do: location_query(query, false) @@ -167,6 +210,14 @@ defp compose_query({:unconfirmed, _}, query) do where(query, [u], u.is_confirmed == false) end + defp compose_query({:is_suggested, bool}, query) do + where(query, [u], u.is_suggested == ^bool) + end + + defp compose_query({:is_discoverable, bool}, query) do + where(query, [u], u.is_discoverable == ^bool) + end + defp compose_query({:followers, %User{id: id}}, query) do query |> where([u], u.id != ^id) @@ -220,6 +271,20 @@ defp compose_query({:internal, false}, query) do |> where([u], not like(u.nickname, "internal.%")) end + defp compose_query({:birthday_day, day}, query) do + query + |> where([u], u.show_birthday == true) + |> where([u], not is_nil(u.birthday)) + |> where([u], fragment("date_part('day', ?)", u.birthday) == ^day) + end + + defp compose_query({:birthday_month, month}, query) do + query + |> where([u], u.show_birthday == true) + |> where([u], not is_nil(u.birthday)) + |> where([u], fragment("date_part('month', ?)", u.birthday) == ^month) + end + defp compose_query(_unsupported_param, query), do: query defp location_query(query, local) do diff --git a/lib/pleroma/user/search.ex b/lib/pleroma/user/search.ex index a4f6abca2..a7fb8fb83 100644 --- a/lib/pleroma/user/search.ex +++ b/lib/pleroma/user/search.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.User.Search do @@ -94,6 +94,7 @@ defp search_query(query_string, for_user, following, top_user_ids) do |> subquery() |> order_by(desc: :search_rank) |> maybe_restrict_local(for_user) + |> filter_deactivated_users() end defp select_top_users(query, top_user_ids) do @@ -166,6 +167,10 @@ defp filter_internal_users(query) do from(q in query, where: q.actor_type != "Application") end + defp filter_deactivated_users(query) do + from(q in query, where: q.is_active == true) + end + defp filter_blocked_user(query, %User{} = blocker) do query |> join(:left, [u], b in Pleroma.UserRelationship, diff --git a/lib/pleroma/user/welcome_chat_message.ex b/lib/pleroma/user/welcome_chat_message.ex index 0d6690e34..31e0bfaf6 100644 --- a/lib/pleroma/user/welcome_chat_message.ex +++ b/lib/pleroma/user/welcome_chat_message.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.User.WelcomeChatMessage do diff --git a/lib/pleroma/user/welcome_email.ex b/lib/pleroma/user/welcome_email.ex index 295c1acc7..970975a49 100644 --- a/lib/pleroma/user/welcome_email.ex +++ b/lib/pleroma/user/welcome_email.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.User.WelcomeEmail do diff --git a/lib/pleroma/user/welcome_message.ex b/lib/pleroma/user/welcome_message.ex index 2cff05549..6010e808c 100644 --- a/lib/pleroma/user/welcome_message.ex +++ b/lib/pleroma/user/welcome_message.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.User.WelcomeMessage do diff --git a/lib/pleroma/user_invite_token.ex b/lib/pleroma/user_invite_token.ex index 4cff1c515..b242a8848 100644 --- a/lib/pleroma/user_invite_token.ex +++ b/lib/pleroma/user_invite_token.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.UserInviteToken do diff --git a/lib/pleroma/user_note.ex b/lib/pleroma/user_note.ex new file mode 100644 index 000000000..d4b8256b0 --- /dev/null +++ b/lib/pleroma/user_note.ex @@ -0,0 +1,52 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2022 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + +defmodule Pleroma.UserNote do + use Ecto.Schema + + import Ecto.Changeset + import Ecto.Query + + alias Pleroma.Repo + alias Pleroma.User + alias Pleroma.UserNote + + schema "user_notes" do + belongs_to(:source, User, type: FlakeId.Ecto.CompatType) + belongs_to(:target, User, type: FlakeId.Ecto.CompatType) + field(:comment, :string) + + timestamps() + end + + def changeset(%UserNote{} = user_note, params \\ %{}) do + user_note + |> cast(params, [:source_id, :target_id, :comment]) + |> validate_required([:source_id, :target_id]) + end + + def show(%User{} = source, %User{} = target) do + with %UserNote{} = note <- + UserNote + |> where(source_id: ^source.id, target_id: ^target.id) + |> Repo.one() do + note.comment + else + _ -> "" + end + end + + def create(%User{} = source, %User{} = target, comment) do + %UserNote{} + |> changeset(%{ + source_id: source.id, + target_id: target.id, + comment: comment + }) + |> Repo.insert( + on_conflict: {:replace, [:comment]}, + conflict_target: [:source_id, :target_id] + ) + end +end diff --git a/lib/pleroma/user_relationship.ex b/lib/pleroma/user_relationship.ex index a467e9b65..fbecf3129 100644 --- a/lib/pleroma/user_relationship.ex +++ b/lib/pleroma/user_relationship.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.UserRelationship do @@ -18,25 +18,35 @@ defmodule Pleroma.UserRelationship do belongs_to(:source, User, type: FlakeId.Ecto.CompatType) belongs_to(:target, User, type: FlakeId.Ecto.CompatType) field(:relationship_type, Pleroma.UserRelationship.Type) + field(:expires_at, :utc_datetime) timestamps(updated_at: false) end for relationship_type <- Keyword.keys(Pleroma.UserRelationship.Type.__enum_map__()) do - # `def create_block/2`, `def create_mute/2`, `def create_reblog_mute/2`, - # `def create_notification_mute/2`, `def create_inverse_subscription/2` - def unquote(:"create_#{relationship_type}")(source, target), - do: create(unquote(relationship_type), source, target) + # `def create_block/3`, `def create_mute/3`, `def create_reblog_mute/3`, + # `def create_notification_mute/3`, `def create_inverse_subscription/3`, + # `def endorsement/3` + def unquote(:"create_#{relationship_type}")(source, target, expires_at \\ nil), + do: create(unquote(relationship_type), source, target, expires_at) # `def delete_block/2`, `def delete_mute/2`, `def delete_reblog_mute/2`, - # `def delete_notification_mute/2`, `def delete_inverse_subscription/2` + # `def delete_notification_mute/2`, `def delete_inverse_subscription/2`, + # `def delete_endorsement/2` def unquote(:"delete_#{relationship_type}")(source, target), do: delete(unquote(relationship_type), source, target) # `def block_exists?/2`, `def mute_exists?/2`, `def reblog_mute_exists?/2`, - # `def notification_mute_exists?/2`, `def inverse_subscription_exists?/2` + # `def notification_mute_exists?/2`, `def inverse_subscription_exists?/2`, + # `def inverse_endorsement_exists?/2` def unquote(:"#{relationship_type}_exists?")(source, target), do: exists?(unquote(relationship_type), source, target) + + # `def get_block_expire_date/2`, `def get_mute_expire_date/2`, + # `def get_reblog_mute_expire_date/2`, `def get_notification_mute_exists?/2`, + # `def get_inverse_subscription_expire_date/2`, `def get_inverse_endorsement_expire_date/2` + def unquote(:"get_#{relationship_type}_expire_date")(source, target), + do: get_expire_date(unquote(relationship_type), source, target) end def user_relationship_types, do: Keyword.keys(user_relationship_mappings()) @@ -45,7 +55,7 @@ def user_relationship_mappings, do: Pleroma.UserRelationship.Type.__enum_map__() def changeset(%UserRelationship{} = user_relationship, params \\ %{}) do user_relationship - |> cast(params, [:relationship_type, :source_id, :target_id]) + |> cast(params, [:relationship_type, :source_id, :target_id, :expires_at]) |> validate_required([:relationship_type, :source_id, :target_id]) |> unique_constraint(:relationship_type, name: :user_relationships_source_id_relationship_type_target_id_index @@ -59,16 +69,31 @@ def exists?(relationship_type, %User{} = source, %User{} = target) do |> Repo.exists?() end - def create(relationship_type, %User{} = source, %User{} = target) do + def get_expire_date(relationship_type, %User{} = source, %User{} = target) do + %UserRelationship{expires_at: expires_at} = + UserRelationship + |> where( + relationship_type: ^relationship_type, + source_id: ^source.id, + target_id: ^target.id + ) + |> Repo.one!() + + expires_at + end + + def create(relationship_type, %User{} = source, %User{} = target, expires_at \\ nil) do %UserRelationship{} |> changeset(%{ relationship_type: relationship_type, source_id: source.id, - target_id: target.id + target_id: target.id, + expires_at: expires_at }) |> Repo.insert( - on_conflict: {:replace_all_except, [:id]}, - conflict_target: [:source_id, :relationship_type, :target_id] + on_conflict: {:replace_all_except, [:id, :inserted_at]}, + conflict_target: [:source_id, :relationship_type, :target_id], + returning: true ) end diff --git a/lib/pleroma/utils.ex b/lib/pleroma/utils.ex index a446d3ae6..73001c987 100644 --- a/lib/pleroma/utils.ex +++ b/lib/pleroma/utils.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Utils do diff --git a/lib/pleroma/web.ex b/lib/pleroma/web.ex index 5761e3b38..aee41b0fe 100644 --- a/lib/pleroma/web.ex +++ b/lib/pleroma/web.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web do diff --git a/lib/pleroma/web/activity_pub/activity_pub.ex b/lib/pleroma/web/activity_pub/activity_pub.ex index 4c29dda35..b9206b4da 100644 --- a/lib/pleroma/web/activity_pub/activity_pub.ex +++ b/lib/pleroma/web/activity_pub/activity_pub.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.ActivityPub.ActivityPub do @@ -25,6 +25,7 @@ defmodule Pleroma.Web.ActivityPub.ActivityPub do alias Pleroma.Web.Streamer alias Pleroma.Web.WebFinger alias Pleroma.Workers.BackgroundWorker + alias Pleroma.Workers.PollWorker import Ecto.Query import Pleroma.Web.ActivityPub.Utils @@ -80,6 +81,10 @@ def decrease_note_count_if_public(actor, object) do if is_public?(object), do: User.decrease_note_count(actor), else: {:ok, actor} end + def update_last_status_at_if_public(actor, object) do + if is_public?(object), do: User.update_last_status_at(actor), else: {:ok, actor} + end + defp increase_replies_count_if_reply(%{ "object" => %{"inReplyTo" => reply_ap_id} = object, "type" => "Create" @@ -185,7 +190,16 @@ defp insert_activity_with_expiration(data, local, recipients) do def notify_and_stream(activity) do Notification.create_notifications(activity) - conversation = create_or_bump_conversation(activity, activity.actor) + original_activity = + case activity do + %{data: %{"type" => "Update"}, object: %{data: %{"id" => id}}} -> + Activity.get_create_by_object_ap_id_with_object(id) + + _ -> + activity + end + + conversation = create_or_bump_conversation(original_activity, original_activity.actor) participations = get_participations(conversation) stream_out(activity) stream_out_participations(participations) @@ -251,7 +265,7 @@ def stream_out_participations(_, _), do: :noop @impl true def stream_out(%Activity{data: %{"type" => data_type}} = activity) - when data_type in ["Create", "Announce", "Delete"] do + when data_type in ["Create", "Announce", "Delete", "Update"] do activity |> Topics.get_activity_topics() |> Streamer.stream(activity) @@ -287,7 +301,9 @@ defp do_create(%{to: to, actor: actor, context: context, object: object} = param _ <- increase_replies_count_if_reply(create_data), {:quick_insert, false, activity} <- {:quick_insert, quick_insert?, activity}, {:ok, _actor} <- increase_note_count_if_public(actor, activity), + {:ok, _actor} <- update_last_status_at_if_public(actor, activity), _ <- notify_and_stream(activity), + :ok <- maybe_schedule_poll_notifications(activity), :ok <- maybe_federate(activity) do {:ok, activity} else @@ -302,6 +318,11 @@ defp do_create(%{to: to, actor: actor, context: context, object: object} = param end end + defp maybe_schedule_poll_notifications(activity) do + PollWorker.schedule_poll_end(activity) + :ok + end + @spec listen(map()) :: {:ok, Activity.t()} | {:error, any()} def listen(%{to: to, actor: actor, context: context, object: object} = params) do additional = params[:additional] || %{} @@ -380,11 +401,11 @@ defp do_flag( _ <- notify_and_stream(activity), :ok <- maybe_federate(stripped_activity) do - User.all_superusers() + User.all_users_with_privilege(:reports_manage_reports) |> Enum.filter(fn user -> user.ap_id != actor end) |> Enum.filter(fn user -> not is_nil(user.email) end) - |> Enum.each(fn superuser -> - superuser + |> Enum.each(fn privileged_user -> + privileged_user |> Pleroma.Emails.AdminEmail.report(actor, account, statuses, content) |> Pleroma.Emails.Mailer.deliver_async() end) @@ -401,7 +422,8 @@ def move(%User{} = origin, %User{} = target, local \\ true) do "type" => "Move", "actor" => origin.ap_id, "object" => origin.ap_id, - "target" => target.ap_id + "target" => target.ap_id, + "to" => [origin.follower_address] } with true <- origin.ap_id in target.also_known_as, @@ -434,6 +456,7 @@ def fetch_activities_for_context_query(context, opts) do |> maybe_preload_bookmarks(opts) |> maybe_set_thread_muted_field(opts) |> restrict_blocked(opts) + |> restrict_blockers_visibility(opts) |> restrict_recipients(recipients, opts[:user]) |> restrict_filtered(opts) |> where( @@ -488,9 +511,18 @@ def fetch_activities(recipients, opts \\ %{}, pagination \\ :keyset) do @spec fetch_public_or_unlisted_activities(map(), Pagination.type()) :: [Activity.t()] def fetch_public_or_unlisted_activities(opts \\ %{}, pagination \\ :keyset) do + includes_local_public = Map.get(opts, :includes_local_public, false) + opts = Map.delete(opts, :user) - [Constants.as_public()] + intended_recipients = + if includes_local_public do + [Constants.as_public(), as_local_public()] + else + [Constants.as_public()] + end + + intended_recipients |> fetch_activities_query(opts) |> restrict_unlisted(opts) |> fetch_paginated_optimized(opts, pagination) @@ -590,9 +622,11 @@ defp restrict_thread_visibility(query, %{user: %User{skip_thread_containment: tr do: query defp restrict_thread_visibility(query, %{user: %User{ap_id: ap_id}}, _) do + local_public = as_local_public() + from( a in query, - where: fragment("thread_visibility(?, (?)->>'id') = true", ^ap_id, a.data) + where: fragment("thread_visibility(?, (?)->>'id', ?) = true", ^ap_id, a.data, ^local_public) ) end @@ -679,8 +713,12 @@ defp fetch_activities_for_reading_user(reading_user, params) do defp user_activities_recipients(%{godmode: true}), do: [] defp user_activities_recipients(%{reading_user: reading_user}) do - if reading_user do - [Constants.as_public(), reading_user.ap_id | User.following(reading_user)] + if not is_nil(reading_user) and reading_user.local do + [ + Constants.as_public(), + as_local_public(), + reading_user.ap_id | User.following(reading_user) + ] else [Constants.as_public()] end @@ -1021,7 +1059,10 @@ defp restrict_blocked(query, %{blocking_user: %User{} = user} = opts) do from( [activity, object: o] in query, + # You don't block the author where: fragment("not (? = ANY(?))", activity.actor, ^blocked_ap_ids), + + # You don't block any recipients, and didn't author the post where: fragment( "((not (? && ?)) or ? = ?)", @@ -1030,12 +1071,18 @@ defp restrict_blocked(query, %{blocking_user: %User{} = user} = opts) do activity.actor, ^user.ap_id ), + + # You don't block the domain of any recipients, and didn't author the post where: fragment( - "recipients_contain_blocked_domains(?, ?) = false", + "(recipients_contain_blocked_domains(?, ?) = false) or ? = ?", activity.recipients, - ^domain_blocks + ^domain_blocks, + activity.actor, + ^user.ap_id ), + + # It's not a boost of a user you block where: fragment( "not (?->>'type' = 'Announce' and ?->'to' \\?| ?)", @@ -1043,6 +1090,8 @@ defp restrict_blocked(query, %{blocking_user: %User{} = user} = opts) do activity.data, ^blocked_ap_ids ), + + # You don't block the author's domain, and also don't follow the author where: fragment( "(not (split_part(?, '/', 3) = ANY(?))) or ? = ANY(?)", @@ -1051,6 +1100,8 @@ defp restrict_blocked(query, %{blocking_user: %User{} = user} = opts) do activity.actor, ^following_ap_ids ), + + # Same as above, but checks the Object where: fragment( "(not (split_part(?->>'actor', '/', 3) = ANY(?))) or (?->>'actor') = ANY(?)", @@ -1064,6 +1115,31 @@ defp restrict_blocked(query, %{blocking_user: %User{} = user} = opts) do defp restrict_blocked(query, _), do: query + defp restrict_blockers_visibility(query, %{blocking_user: %User{} = user}) do + if Config.get([:activitypub, :blockers_visible]) == true do + query + else + blocker_ap_ids = User.incoming_relationships_ungrouped_ap_ids(user, [:block]) + + from( + activity in query, + # The author doesn't block you + where: fragment("not (? = ANY(?))", activity.actor, ^blocker_ap_ids), + + # It's not a boost of a user that blocks you + where: + fragment( + "not (?->>'type' = 'Announce' and ?->'to' \\?| ?)", + activity.data, + activity.data, + ^blocker_ap_ids + ) + ) + end + end + + defp restrict_blockers_visibility(query, _), do: query + defp restrict_unlisted(query, %{restrict_unlisted: true}) do from( activity in query, @@ -1083,8 +1159,7 @@ defp restrict_pinned(query, %{pinned: true, pinned_object_ids: ids}) do [activity, object: o] in query, where: fragment( - "(?)->>'type' = 'Create' and coalesce((?)->'object'->>'id', (?)->>'object') = any (?)", - activity.data, + "(?)->>'type' = 'Create' and associated_object_id((?)) = any (?)", activity.data, activity.data, ^ids @@ -1164,15 +1239,15 @@ defp exclude_chat_messages(query, _) do end end + defp exclude_invisible_actors(query, %{type: "Flag"}), do: query defp exclude_invisible_actors(query, %{invisible_actors: true}), do: query defp exclude_invisible_actors(query, _opts) do - invisible_ap_ids = - User.Query.build(%{invisible: true, select: [:ap_id]}) - |> Repo.all() - |> Enum.map(fn %{ap_id: ap_id} -> ap_id end) - - from([activity] in query, where: activity.actor not in ^invisible_ap_ids) + query + |> join(:inner, [activity], u in User, + as: :u, + on: activity.actor == u.ap_id and u.invisible == false + ) end defp exclude_id(query, %{exclude_id: id}) when is_binary(id) do @@ -1290,6 +1365,7 @@ def fetch_activities_query(recipients, opts \\ %{}) do |> restrict_state(opts) |> restrict_favorited_by(opts) |> restrict_blocked(restrict_blocked_opts) + |> restrict_blockers_visibility(opts) |> restrict_muted(restrict_muted_opts) |> restrict_filtered(opts) |> restrict_media(opts) @@ -1301,7 +1377,7 @@ def fetch_activities_query(recipients, opts \\ %{}) do |> restrict_instance(opts) |> restrict_announce_object_actor(opts) |> restrict_filtered(opts) - |> Activity.restrict_deactivated_users() + |> maybe_restrict_deactivated_users(opts) |> exclude_poll_votes(opts) |> exclude_chat_messages(opts) |> exclude_invisible_actors(opts) @@ -1406,7 +1482,7 @@ defp normalize_image(%{"url" => url}) do defp normalize_image(urls) when is_list(urls), do: urls |> List.first() |> normalize_image() defp normalize_image(_), do: nil - defp object_to_user_data(data) do + defp object_to_user_data(data, additional) do fields = data |> Map.get("attachment", []) @@ -1438,18 +1514,28 @@ defp object_to_user_data(data) do public_key = if is_map(data["publicKey"]) && is_binary(data["publicKey"]["publicKeyPem"]) do data["publicKey"]["publicKeyPem"] - else - nil end shared_inbox = if is_map(data["endpoints"]) && is_binary(data["endpoints"]["sharedInbox"]) do data["endpoints"]["sharedInbox"] - else - nil end - user_data = %{ + birthday = + if is_binary(data["vcard:bday"]) do + case Date.from_iso8601(data["vcard:bday"]) do + {:ok, date} -> date + {:error, _} -> nil + end + end + + show_birthday = !!birthday + + # if WebFinger request was already done, we probably have acct, otherwise + # we request WebFinger here + nickname = additional[:nickname_from_acct] || generate_nickname(data) + + %{ ap_id: data["id"], uri: get_actor_url(data["url"]), ap_enabled: true, @@ -1471,21 +1557,29 @@ defp object_to_user_data(data) do inbox: data["inbox"], shared_inbox: shared_inbox, accepts_chat_messages: accepts_chat_messages, - pinned_objects: pinned_objects + birthday: birthday, + show_birthday: show_birthday, + pinned_objects: pinned_objects, + nickname: nickname } + end - # nickname can be nil because of virtual actors - if data["preferredUsername"] do - Map.put( - user_data, - :nickname, - "#{data["preferredUsername"]}@#{URI.parse(data["id"]).host}" - ) + defp generate_nickname(%{"preferredUsername" => username} = data) when is_binary(username) do + generated = "#{username}@#{URI.parse(data["id"]).host}" + + if Config.get([WebFinger, :update_nickname_on_user_fetch]) do + case WebFinger.finger(generated) do + {:ok, %{"subject" => "acct:" <> acct}} -> acct + _ -> generated + end else - Map.put(user_data, :nickname, nil) + generated end end + # nickname can be nil because of virtual actors + defp generate_nickname(_), do: nil + def fetch_follow_information_for_user(user) do with {:ok, following_data} <- Fetcher.fetch_and_contain_remote_object_from_id(user.following_address), @@ -1557,17 +1651,17 @@ defp collection_private(%{"first" => first}) do defp collection_private(_data), do: {:ok, true} - def user_data_from_user_object(data) do + def user_data_from_user_object(data, additional \\ []) do with {:ok, data} <- MRF.filter(data) do - {:ok, object_to_user_data(data)} + {:ok, object_to_user_data(data, additional)} else e -> {:error, e} end end - def fetch_and_prepare_user_from_ap_id(ap_id) do + def fetch_and_prepare_user_from_ap_id(ap_id, additional \\ []) do with {:ok, data} <- Fetcher.fetch_and_contain_remote_object_from_id(ap_id), - {:ok, data} <- user_data_from_user_object(data) do + {:ok, data} <- user_data_from_user_object(data, additional) do {:ok, maybe_update_follow_information(data)} else # If this has been deleted, only log a debug and not an error @@ -1590,9 +1684,7 @@ def maybe_handle_clashing_nickname(data) do %User{} = old_user <- User.get_by_nickname(nickname), {_, false} <- {:ap_id_comparison, data[:ap_id] == old_user.ap_id} do Logger.info( - "Found an old user for #{nickname}, the old ap id is #{old_user.ap_id}, new one is #{ - data[:ap_id] - }, renaming." + "Found an old user for #{nickname}, the old ap id is #{old_user.ap_id}, new one is #{data[:ap_id]}, renaming." ) old_user @@ -1614,7 +1706,10 @@ def pin_data_from_featured_collection(%{ "orderedItems" => objects }) when type in ["OrderedCollection", "Collection"] do - Map.new(objects, fn %{"id" => object_ap_id} -> {object_ap_id, NaiveDateTime.utc_now()} end) + Map.new(objects, fn + %{"id" => object_ap_id} -> {object_ap_id, NaiveDateTime.utc_now()} + object_ap_id when is_binary(object_ap_id) -> {object_ap_id, NaiveDateTime.utc_now()} + end) end def fetch_and_prepare_featured_from_ap_id(nil) do @@ -1644,13 +1739,13 @@ def pinned_fetch_task(%{pinned_objects: pins}) do end end - def make_user_from_ap_id(ap_id) do + def make_user_from_ap_id(ap_id, additional \\ []) do user = User.get_cached_by_ap_id(ap_id) if user && !User.ap_enabled?(user) do Transmogrifier.upgrade_user_from_ap_id(ap_id) else - with {:ok, data} <- fetch_and_prepare_user_from_ap_id(ap_id) do + with {:ok, data} <- fetch_and_prepare_user_from_ap_id(ap_id, additional) do {:ok, _pid} = Task.start(fn -> pinned_fetch_task(data) end) if user do @@ -1670,8 +1765,9 @@ def make_user_from_ap_id(ap_id) do end def make_user_from_nickname(nickname) do - with {:ok, %{"ap_id" => ap_id}} when not is_nil(ap_id) <- WebFinger.finger(nickname) do - make_user_from_ap_id(ap_id) + with {:ok, %{"ap_id" => ap_id, "subject" => "acct:" <> acct}} when not is_nil(ap_id) <- + WebFinger.finger(nickname) do + make_user_from_ap_id(ap_id, nickname_from_acct: acct) else _e -> {:error, "No AP id in WebFinger"} end @@ -1693,4 +1789,9 @@ def fetch_direct_messages_query do |> restrict_visibility(%{visibility: "direct"}) |> order_by([activity], asc: activity.id) end + + defp maybe_restrict_deactivated_users(activity, %{type: "Flag"}), do: activity + + defp maybe_restrict_deactivated_users(activity, _opts), + do: Activity.restrict_deactivated_users(activity) end diff --git a/lib/pleroma/web/activity_pub/activity_pub/persisting.ex b/lib/pleroma/web/activity_pub/activity_pub/persisting.ex index f39cd000a..3dbfdee28 100644 --- a/lib/pleroma/web/activity_pub/activity_pub/persisting.ex +++ b/lib/pleroma/web/activity_pub/activity_pub/persisting.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.ActivityPub.ActivityPub.Persisting do diff --git a/lib/pleroma/web/activity_pub/activity_pub/streaming.ex b/lib/pleroma/web/activity_pub/activity_pub/streaming.ex index 33c7bf2bc..d7358171d 100644 --- a/lib/pleroma/web/activity_pub/activity_pub/streaming.ex +++ b/lib/pleroma/web/activity_pub/activity_pub/streaming.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.ActivityPub.ActivityPub.Streaming do diff --git a/lib/pleroma/web/activity_pub/activity_pub_controller.ex b/lib/pleroma/web/activity_pub/activity_pub_controller.ex index d423b1139..1357c379c 100644 --- a/lib/pleroma/web/activity_pub/activity_pub_controller.ex +++ b/lib/pleroma/web/activity_pub/activity_pub_controller.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.ActivityPub.ActivityPubController do @@ -66,8 +66,7 @@ defp relay_active?(conn, _) do end def user(conn, %{"nickname" => nickname}) do - with %User{local: true} = user <- User.get_cached_by_nickname(nickname), - {:ok, user} <- User.ensure_keys_present(user) do + with %User{local: true} = user <- User.get_cached_by_nickname(nickname) do conn |> put_resp_content_type("application/activity+json") |> put_view(UserView) @@ -174,7 +173,6 @@ def relay_following(conn, _params) do def following(%{assigns: %{user: for_user}} = conn, %{"nickname" => nickname, "page" => page}) do with %User{} = user <- User.get_cached_by_nickname(nickname), - {user, for_user} <- ensure_user_keys_present_and_maybe_refresh_for_user(user, for_user), {:show_follows, true} <- {:show_follows, (for_user && for_user == user) || !user.hide_follows} do {page, _} = Integer.parse(page) @@ -192,8 +190,7 @@ def following(%{assigns: %{user: for_user}} = conn, %{"nickname" => nickname, "p end def following(%{assigns: %{user: for_user}} = conn, %{"nickname" => nickname}) do - with %User{} = user <- User.get_cached_by_nickname(nickname), - {user, for_user} <- ensure_user_keys_present_and_maybe_refresh_for_user(user, for_user) do + with %User{} = user <- User.get_cached_by_nickname(nickname) do conn |> put_resp_content_type("application/activity+json") |> put_view(UserView) @@ -213,7 +210,6 @@ def relay_followers(conn, _params) do def followers(%{assigns: %{user: for_user}} = conn, %{"nickname" => nickname, "page" => page}) do with %User{} = user <- User.get_cached_by_nickname(nickname), - {user, for_user} <- ensure_user_keys_present_and_maybe_refresh_for_user(user, for_user), {:show_followers, true} <- {:show_followers, (for_user && for_user == user) || !user.hide_followers} do {page, _} = Integer.parse(page) @@ -231,8 +227,7 @@ def followers(%{assigns: %{user: for_user}} = conn, %{"nickname" => nickname, "p end def followers(%{assigns: %{user: for_user}} = conn, %{"nickname" => nickname}) do - with %User{} = user <- User.get_cached_by_nickname(nickname), - {user, for_user} <- ensure_user_keys_present_and_maybe_refresh_for_user(user, for_user) do + with %User{} = user <- User.get_cached_by_nickname(nickname) do conn |> put_resp_content_type("application/activity+json") |> put_view(UserView) @@ -245,8 +240,7 @@ def outbox( %{"nickname" => nickname, "page" => page?} = params ) when page? in [true, "true"] do - with %User{} = user <- User.get_cached_by_nickname(nickname), - {:ok, user} <- User.ensure_keys_present(user) do + with %User{} = user <- User.get_cached_by_nickname(nickname) do # "include_poll_votes" is a hack because postgres generates inefficient # queries when filtering by 'Answer', poll votes will be hidden by the # visibility filter in this case anyway @@ -270,8 +264,7 @@ def outbox( end def outbox(conn, %{"nickname" => nickname}) do - with %User{} = user <- User.get_cached_by_nickname(nickname), - {:ok, user} <- User.ensure_keys_present(user) do + with %User{} = user <- User.get_cached_by_nickname(nickname) do conn |> put_resp_content_type("application/activity+json") |> put_view(UserView) @@ -294,15 +287,29 @@ def inbox(%{assigns: %{valid_signature: true}} = conn, params) do json(conn, "ok") end + def inbox(%{assigns: %{valid_signature: false}} = conn, _params) do + conn + |> put_status(:bad_request) + |> json("Invalid HTTP Signature") + end + # POST /relay/inbox -or- POST /internal/fetch/inbox - def inbox(conn, params) do - if params["type"] == "Create" && FederatingPlug.federating?() do + def inbox(conn, %{"type" => "Create"} = params) do + if FederatingPlug.federating?() do post_inbox_relayed_create(conn, params) else - post_inbox_fallback(conn, params) + conn + |> put_status(:bad_request) + |> json("Not federating") end end + def inbox(conn, _params) do + conn + |> put_status(:bad_request) + |> json("error, missing HTTP Signature") + end + defp post_inbox_relayed_create(conn, params) do Logger.debug( "Signature missing or not from author, relayed Create message, fetching object from source" @@ -313,32 +320,11 @@ defp post_inbox_relayed_create(conn, params) do json(conn, "ok") end - defp post_inbox_fallback(conn, params) do - headers = Enum.into(conn.req_headers, %{}) - - if headers["signature"] && params["actor"] && - String.contains?(headers["signature"], params["actor"]) do - Logger.debug( - "Signature validation error for: #{params["actor"]}, make sure you are forwarding the HTTP Host header!" - ) - - Logger.debug(inspect(conn.req_headers)) - end - - conn - |> put_status(:bad_request) - |> json(dgettext("errors", "error")) - end - defp represent_service_actor(%User{} = user, conn) do - with {:ok, user} <- User.ensure_keys_present(user) do - conn - |> put_resp_content_type("application/activity+json") - |> put_view(UserView) - |> render("user.json", %{user: user}) - else - nil -> {:error, :not_found} - end + conn + |> put_resp_content_type("application/activity+json") + |> put_view(UserView) + |> render("user.json", %{user: user}) end defp represent_service_actor(nil, _), do: {:error, :not_found} @@ -391,12 +377,10 @@ def read_inbox( def read_inbox(%{assigns: %{user: %User{nickname: nickname} = user}} = conn, %{ "nickname" => nickname }) do - with {:ok, user} <- User.ensure_keys_present(user) do - conn - |> put_resp_content_type("application/activity+json") - |> put_view(UserView) - |> render("activity_collection.json", %{iri: "#{user.ap_id}/inbox"}) - end + conn + |> put_resp_content_type("application/activity+json") + |> put_view(UserView) + |> render("activity_collection.json", %{iri: "#{user.ap_id}/inbox"}) end def read_inbox(%{assigns: %{user: %User{nickname: as_nickname}}} = conn, %{ @@ -533,19 +517,6 @@ defp set_requester_reachable(%Plug.Conn{} = conn, _) do conn end - defp ensure_user_keys_present_and_maybe_refresh_for_user(user, for_user) do - {:ok, new_user} = User.ensure_keys_present(user) - - for_user = - if new_user != user and match?(%User{}, for_user) do - User.get_cached_by_nickname(for_user.nickname) - else - for_user - end - - {new_user, for_user} - end - def upload_media(%{assigns: %{user: %User{} = user}} = conn, %{"file" => file} = data) do with {:ok, object} <- ActivityPub.upload( diff --git a/lib/pleroma/web/activity_pub/builder.ex b/lib/pleroma/web/activity_pub/builder.ex index cde477710..532047599 100644 --- a/lib/pleroma/web/activity_pub/builder.ex +++ b/lib/pleroma/web/activity_pub/builder.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.ActivityPub.Builder do @@ -15,6 +15,7 @@ defmodule Pleroma.Web.ActivityPub.Builder do alias Pleroma.Web.ActivityPub.Relay alias Pleroma.Web.ActivityPub.Utils alias Pleroma.Web.ActivityPub.Visibility + alias Pleroma.Web.CommonAPI.ActivityDraft require Pleroma.Constants @@ -125,6 +126,37 @@ def create(actor, object, recipients) do |> Pleroma.Maps.put_if_present("context", context), []} end + @spec note(ActivityDraft.t()) :: {:ok, map(), keyword()} + def note(%ActivityDraft{} = draft) do + data = + %{ + "type" => "Note", + "to" => draft.to, + "cc" => draft.cc, + "content" => draft.content_html, + "summary" => draft.summary, + "sensitive" => draft.sensitive, + "context" => draft.context, + "attachment" => draft.attachments, + "actor" => draft.user.ap_id, + "tag" => Keyword.values(draft.tags) |> Enum.uniq() + } + |> add_in_reply_to(draft.in_reply_to) + |> Map.merge(draft.extra) + + {:ok, data, []} + end + + defp add_in_reply_to(object, nil), do: object + + defp add_in_reply_to(object, in_reply_to) do + with %Object{} = in_reply_to_object <- Object.normalize(in_reply_to, fetch: false) do + Map.put(object, "inReplyTo", in_reply_to_object.data["id"]) + else + _ -> object + end + end + def chat_message(actor, recipient, content, opts \\ []) do basic = %{ "id" => Utils.generate_object_id(), @@ -186,10 +218,16 @@ def like(actor, object) do end end - # Retricted to user updates for now, always public @spec update(User.t(), Object.t()) :: {:ok, map(), keyword()} def update(actor, object) do - to = [Pleroma.Constants.as_public(), actor.follower_address] + {to, cc} = + if object["type"] in Pleroma.Constants.actor_types() do + # User updates, always public + {[Pleroma.Constants.as_public(), actor.follower_address], []} + else + # Status updates, follow the recipients in the object + {object["to"] || [], object["cc"] || []} + end {:ok, %{ @@ -197,7 +235,8 @@ def update(actor, object) do "type" => "Update", "actor" => actor.ap_id, "object" => object, - "to" => to + "to" => to, + "cc" => cc }, []} end diff --git a/lib/pleroma/web/activity_pub/internal_fetch_actor.ex b/lib/pleroma/web/activity_pub/internal_fetch_actor.ex index ca76071e5..083723894 100644 --- a/lib/pleroma/web/activity_pub/internal_fetch_actor.ex +++ b/lib/pleroma/web/activity_pub/internal_fetch_actor.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.ActivityPub.InternalFetchActor do diff --git a/lib/pleroma/web/activity_pub/mrf.ex b/lib/pleroma/web/activity_pub/mrf.ex index 41592e71e..ff9f84497 100644 --- a/lib/pleroma/web/activity_pub/mrf.ex +++ b/lib/pleroma/web/activity_pub/mrf.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.ActivityPub.MRF do @@ -33,9 +33,11 @@ defmodule Pleroma.Web.ActivityPub.MRF do %{ key: :transparency_exclusions, label: "MRF transparency exclusions", - type: {:list, :string}, + type: {:list, :tuple}, + key_placeholder: "instance", + value_placeholder: "reason", description: - "Exclude specific instance names from MRF transparency. The use of the exclusions feature will be disclosed in nodeinfo as a boolean value.", + "Exclude specific instance names from MRF transparency. The use of the exclusions feature will be disclosed in nodeinfo as a boolean value. You can also provide a reason for excluding these instance names. The instances and reasons won't be publicly disclosed.", suggestions: [ "exclusion.com" ] @@ -51,10 +53,53 @@ defmodule Pleroma.Web.ActivityPub.MRF do @required_description_keys [:key, :related_policy] + def filter_one(policy, message) do + should_plug_history? = + if function_exported?(policy, :history_awareness, 0) do + policy.history_awareness() + else + :manual + end + |> Kernel.==(:auto) + + if not should_plug_history? do + policy.filter(message) + else + main_result = policy.filter(message) + + with {_, {:ok, main_message}} <- {:main, main_result}, + {_, + %{ + "formerRepresentations" => %{ + "orderedItems" => [_ | _] + } + }} = {_, object} <- {:object, message["object"]}, + {_, {:ok, new_history}} <- + {:history, + Pleroma.Object.Updater.for_each_history_item( + object["formerRepresentations"], + object, + fn item -> + with {:ok, filtered} <- policy.filter(Map.put(message, "object", item)) do + {:ok, filtered["object"]} + else + e -> e + end + end + )} do + {:ok, put_in(main_message, ["object", "formerRepresentations"], new_history)} + else + {:main, _} -> main_result + {:object, _} -> main_result + {:history, e} -> e + end + end + end + def filter(policies, %{} = message) do policies |> Enum.reduce({:ok, message}, fn - policy, {:ok, message} -> policy.filter(message) + policy, {:ok, message} -> filter_one(policy, message) _, error -> error end) end @@ -100,6 +145,11 @@ def subdomain_match?(domains, host) do Enum.any?(domains, fn domain -> Regex.match?(domain, host) end) end + @spec instance_list_from_tuples([{String.t(), String.t()}]) :: [String.t()] + def instance_list_from_tuples(list) do + Enum.map(list, fn {instance, _} -> instance end) + end + def describe(policies) do {:ok, policy_configs} = policies @@ -150,9 +200,7 @@ def config_descriptions(policies) do [description | acc] else Logger.warn( - "#{policy} config description doesn't have one or all required keys #{ - inspect(@required_description_keys) - }" + "#{policy} config description doesn't have one or all required keys #{inspect(@required_description_keys)}" ) acc diff --git a/lib/pleroma/web/activity_pub/mrf/activity_expiration_policy.ex b/lib/pleroma/web/activity_pub/mrf/activity_expiration_policy.ex index e78254280..88f6ca028 100644 --- a/lib/pleroma/web/activity_pub/mrf/activity_expiration_policy.ex +++ b/lib/pleroma/web/activity_pub/mrf/activity_expiration_policy.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.ActivityPub.MRF.ActivityExpirationPolicy do diff --git a/lib/pleroma/web/activity_pub/mrf/anti_followbot_policy.ex b/lib/pleroma/web/activity_pub/mrf/anti_followbot_policy.ex index 851e95d22..97d75ecf2 100644 --- a/lib/pleroma/web/activity_pub/mrf/anti_followbot_policy.ex +++ b/lib/pleroma/web/activity_pub/mrf/anti_followbot_policy.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.ActivityPub.MRF.AntiFollowbotPolicy do @@ -24,7 +24,7 @@ defp score_displayname("federationbot"), do: 1.0 defp score_displayname("fedibot"), do: 1.0 defp score_displayname(_), do: 0.0 - defp determine_if_followbot(%User{nickname: nickname, name: displayname}) do + defp determine_if_followbot(%User{nickname: nickname, name: displayname, actor_type: actor_type}) do # nickname will be a binary string except when following a relay nick_score = if is_binary(nickname) do @@ -45,19 +45,32 @@ defp determine_if_followbot(%User{nickname: nickname, name: displayname}) do 0.0 end - nick_score + name_score + # actor_type "Service" is a Bot account + actor_type_score = + if actor_type == "Service" do + 1.0 + else + 0.0 + end + + nick_score + name_score + actor_type_score end defp determine_if_followbot(_), do: 0.0 + defp bot_allowed?(%{"object" => target}, bot_actor) do + %User{} = user = normalize_by_ap_id(target) + + User.following?(user, bot_actor) + end + @impl true def filter(%{"type" => "Follow", "actor" => actor_id} = message) do %User{} = actor = normalize_by_ap_id(actor_id) score = determine_if_followbot(actor) - # TODO: scan biography data for keywords and score it somehow. - if score < 0.8 do + if score < 0.8 || bot_allowed?(message, actor) do {:ok, message} else {:reject, "[AntiFollowbotPolicy] Scored #{actor_id} as #{score}"} diff --git a/lib/pleroma/web/activity_pub/mrf/anti_link_spam_policy.ex b/lib/pleroma/web/activity_pub/mrf/anti_link_spam_policy.ex index cdf17fd28..3ec9c52ee 100644 --- a/lib/pleroma/web/activity_pub/mrf/anti_link_spam_policy.ex +++ b/lib/pleroma/web/activity_pub/mrf/anti_link_spam_policy.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.ActivityPub.MRF.AntiLinkSpamPolicy do @@ -9,6 +9,9 @@ defmodule Pleroma.Web.ActivityPub.MRF.AntiLinkSpamPolicy do require Logger + @impl true + def history_awareness, do: :auto + # has the user successfully posted before? defp old_user?(%User{} = u) do u.note_count > 0 || u.follower_count > 0 diff --git a/lib/pleroma/web/activity_pub/mrf/drop_policy.ex b/lib/pleroma/web/activity_pub/mrf/drop_policy.ex index b3ff86eed..ad0936839 100644 --- a/lib/pleroma/web/activity_pub/mrf/drop_policy.ex +++ b/lib/pleroma/web/activity_pub/mrf/drop_policy.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.ActivityPub.MRF.DropPolicy do diff --git a/lib/pleroma/web/activity_pub/mrf/ensure_re_prepended.ex b/lib/pleroma/web/activity_pub/mrf/ensure_re_prepended.ex index fad8d873b..a148cc1e7 100644 --- a/lib/pleroma/web/activity_pub/mrf/ensure_re_prepended.ex +++ b/lib/pleroma/web/activity_pub/mrf/ensure_re_prepended.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.ActivityPub.MRF.EnsureRePrepended do @@ -10,6 +10,8 @@ defmodule Pleroma.Web.ActivityPub.MRF.EnsureRePrepended do @reply_prefix Regex.compile!("^re:[[:space:]]*", [:caseless]) + def history_awareness, do: :auto + def filter_by_summary( %{data: %{"summary" => parent_summary}} = _in_reply_to, %{"summary" => child_summary} = child @@ -27,8 +29,8 @@ def filter_by_summary( def filter_by_summary(_in_reply_to, child), do: child - def filter(%{"type" => "Create", "object" => child_object} = object) - when is_map(child_object) do + def filter(%{"type" => type, "object" => child_object} = object) + when type in ["Create", "Update"] and is_map(child_object) do child = child_object["inReplyTo"] |> Object.normalize(fetch: false) diff --git a/lib/pleroma/web/activity_pub/mrf/follow_bot_policy.ex b/lib/pleroma/web/activity_pub/mrf/follow_bot_policy.ex index 7cf7de068..5b6adbb4b 100644 --- a/lib/pleroma/web/activity_pub/mrf/follow_bot_policy.ex +++ b/lib/pleroma/web/activity_pub/mrf/follow_bot_policy.ex @@ -1,3 +1,7 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2022 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + defmodule Pleroma.Web.ActivityPub.MRF.FollowBotPolicy do @behaviour Pleroma.Web.ActivityPub.MRF.Policy alias Pleroma.Config diff --git a/lib/pleroma/web/activity_pub/mrf/force_bot_unlisted_policy.ex b/lib/pleroma/web/activity_pub/mrf/force_bot_unlisted_policy.ex index 11871375e..8cec8eabe 100644 --- a/lib/pleroma/web/activity_pub/mrf/force_bot_unlisted_policy.ex +++ b/lib/pleroma/web/activity_pub/mrf/force_bot_unlisted_policy.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.ActivityPub.MRF.ForceBotUnlistedPolicy do @@ -10,7 +10,7 @@ defmodule Pleroma.Web.ActivityPub.MRF.ForceBotUnlistedPolicy do require Pleroma.Constants defp check_by_actor_type(user), do: user.actor_type in ["Application", "Service"] - defp check_by_nickname(user), do: Regex.match?(~r/bot@|ebooks@/i, user.nickname) + defp check_by_nickname(user), do: Regex.match?(~r/.bot@|ebooks@/i, user.nickname) defp check_if_bot(user), do: check_by_actor_type(user) or check_by_nickname(user) diff --git a/lib/pleroma/web/activity_pub/mrf/force_mentions_in_content.ex b/lib/pleroma/web/activity_pub/mrf/force_mentions_in_content.ex new file mode 100644 index 000000000..70224561c --- /dev/null +++ b/lib/pleroma/web/activity_pub/mrf/force_mentions_in_content.ex @@ -0,0 +1,135 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2022 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + +defmodule Pleroma.Web.ActivityPub.MRF.ForceMentionsInContent do + require Pleroma.Constants + + alias Pleroma.Formatter + alias Pleroma.Object + alias Pleroma.User + + @behaviour Pleroma.Web.ActivityPub.MRF.Policy + + @impl true + def history_awareness, do: :auto + + defp do_extract({:a, attrs, _}, acc) do + if Enum.find(attrs, fn {name, value} -> + name == "class" && value in ["mention", "u-url mention", "mention u-url"] + end) do + href = Enum.find(attrs, fn {name, _} -> name == "href" end) |> elem(1) + acc ++ [href] + else + acc + end + end + + defp do_extract({_, _, children}, acc) do + do_extract(children, acc) + end + + defp do_extract(nodes, acc) when is_list(nodes) do + Enum.reduce(nodes, acc, fn node, acc -> do_extract(node, acc) end) + end + + defp do_extract(_, acc), do: acc + + defp extract_mention_uris_from_content(content) do + {:ok, tree} = :fast_html.decode(content, format: [:html_atoms]) + do_extract(tree, []) + end + + defp get_replied_to_user(%{"inReplyTo" => in_reply_to}) do + case Object.normalize(in_reply_to, fetch: false) do + %Object{data: %{"actor" => actor}} -> User.get_cached_by_ap_id(actor) + _ -> nil + end + end + + defp get_replied_to_user(_object), do: nil + + # Ensure the replied-to user is sorted to the left + defp sort_replied_user([%User{id: user_id} | _] = users, %User{id: user_id}), do: users + + defp sort_replied_user(users, %User{id: user_id} = user) do + if Enum.find(users, fn u -> u.id == user_id end) do + users = Enum.reject(users, fn u -> u.id == user_id end) + [user | users] + else + users + end + end + + defp sort_replied_user(users, _), do: users + + # Drop constants and the actor's own AP ID + defp clean_recipients(recipients, object) do + Enum.reject(recipients, fn ap_id -> + ap_id in [ + object["object"]["actor"], + Pleroma.Constants.as_public(), + Pleroma.Web.ActivityPub.Utils.as_local_public() + ] + end) + end + + @impl true + def filter( + %{ + "type" => type, + "object" => %{"type" => "Note", "to" => to, "inReplyTo" => in_reply_to} + } = object + ) + when type in ["Create", "Update"] and is_list(to) and is_binary(in_reply_to) do + # image-only posts from pleroma apparently reach this MRF without the content field + content = object["object"]["content"] || "" + + # Get the replied-to user for sorting + replied_to_user = get_replied_to_user(object["object"]) + + mention_users = + to + |> clean_recipients(object) + |> Enum.map(&User.get_cached_by_ap_id/1) + |> Enum.reject(&is_nil/1) + |> sort_replied_user(replied_to_user) + + explicitly_mentioned_uris = extract_mention_uris_from_content(content) + + added_mentions = + Enum.reduce(mention_users, "", fn %User{ap_id: uri} = user, acc -> + unless uri in explicitly_mentioned_uris do + acc <> Formatter.mention_from_user(user, %{mentions_format: :compact}) <> " " + else + acc + end + end) + + recipients_inline = + if added_mentions != "", + do: "#{added_mentions}", + else: "" + + content = + cond do + # For Markdown posts, insert the mentions inside the first

tag + recipients_inline != "" && String.starts_with?(content, "

") -> + "

" <> recipients_inline <> String.trim_leading(content, "

") + + recipients_inline != "" -> + recipients_inline <> content + + true -> + content + end + + {:ok, put_in(object["object"]["content"], content)} + end + + @impl true + def filter(object), do: {:ok, object} + + @impl true + def describe, do: {:ok, %{}} +end diff --git a/lib/pleroma/web/activity_pub/mrf/hashtag_policy.ex b/lib/pleroma/web/activity_pub/mrf/hashtag_policy.ex index b7db4fa3d..b73fd974c 100644 --- a/lib/pleroma/web/activity_pub/mrf/hashtag_policy.ex +++ b/lib/pleroma/web/activity_pub/mrf/hashtag_policy.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.ActivityPub.MRF.HashtagPolicy do @@ -16,6 +16,9 @@ defmodule Pleroma.Web.ActivityPub.MRF.HashtagPolicy do @behaviour Pleroma.Web.ActivityPub.MRF.Policy + @impl true + def history_awareness, do: :manual + defp check_reject(message, hashtags) do if Enum.any?(Config.get([:mrf_hashtag, :reject]), fn match -> match in hashtags end) do {:reject, "[HashtagPolicy] Matches with rejected keyword"} @@ -47,22 +50,46 @@ defp check_ftl_removal(%{"to" => to} = message, hashtags) do defp check_ftl_removal(message, _hashtags), do: {:ok, message} - defp check_sensitive(message, hashtags) do - if Enum.any?(Config.get([:mrf_hashtag, :sensitive]), fn match -> match in hashtags end) do - {:ok, Kernel.put_in(message, ["object", "sensitive"], true)} - else - {:ok, message} - end + defp check_sensitive(message) do + {:ok, new_object} = + Object.Updater.do_with_history(message["object"], fn object -> + hashtags = Object.hashtags(%Object{data: object}) + + if Enum.any?(Config.get([:mrf_hashtag, :sensitive]), fn match -> match in hashtags end) do + {:ok, Map.put(object, "sensitive", true)} + else + {:ok, object} + end + end) + + {:ok, Map.put(message, "object", new_object)} end @impl true - def filter(%{"type" => "Create", "object" => object} = message) do - hashtags = Object.hashtags(%Object{data: object}) + def filter(%{"type" => type, "object" => object} = message) when type in ["Create", "Update"] do + history_items = + with %{"formerRepresentations" => %{"orderedItems" => items}} <- object do + items + else + _ -> [] + end + + historical_hashtags = + Enum.reduce(history_items, [], fn item, acc -> + acc ++ Object.hashtags(%Object{data: item}) + end) + + hashtags = Object.hashtags(%Object{data: object}) ++ historical_hashtags if hashtags != [] do with {:ok, message} <- check_reject(message, hashtags), - {:ok, message} <- check_ftl_removal(message, hashtags), - {:ok, message} <- check_sensitive(message, hashtags) do + {:ok, message} <- + (if "type" == "Create" do + check_ftl_removal(message, hashtags) + else + {:ok, message} + end), + {:ok, message} <- check_sensitive(message) do {:ok, message} end else diff --git a/lib/pleroma/web/activity_pub/mrf/hellthread_policy.ex b/lib/pleroma/web/activity_pub/mrf/hellthread_policy.ex index 504bd4d57..80e235d6e 100644 --- a/lib/pleroma/web/activity_pub/mrf/hellthread_policy.ex +++ b/lib/pleroma/web/activity_pub/mrf/hellthread_policy.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.ActivityPub.MRF.HellthreadPolicy do diff --git a/lib/pleroma/web/activity_pub/mrf/keyword_policy.ex b/lib/pleroma/web/activity_pub/mrf/keyword_policy.ex index 646008dd9..687ec6c2f 100644 --- a/lib/pleroma/web/activity_pub/mrf/keyword_policy.ex +++ b/lib/pleroma/web/activity_pub/mrf/keyword_policy.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.ActivityPub.MRF.KeywordPolicy do @@ -27,24 +27,46 @@ defp object_payload(%{} = object) do end defp check_reject(%{"object" => %{} = object} = message) do - payload = object_payload(object) + with {:ok, _new_object} <- + Pleroma.Object.Updater.do_with_history(object, fn object -> + payload = object_payload(object) - if Enum.any?(Pleroma.Config.get([:mrf_keyword, :reject]), fn pattern -> - string_matches?(payload, pattern) - end) do - {:reject, "[KeywordPolicy] Matches with rejected keyword"} - else + if Enum.any?(Pleroma.Config.get([:mrf_keyword, :reject]), fn pattern -> + string_matches?(payload, pattern) + end) do + {:reject, "[KeywordPolicy] Matches with rejected keyword"} + else + {:ok, message} + end + end) do {:ok, message} + else + e -> e end end - defp check_ftl_removal(%{"to" => to, "object" => %{} = object} = message) do - payload = object_payload(object) + defp check_ftl_removal(%{"type" => "Create", "to" => to, "object" => %{} = object} = message) do + check_keyword = fn object -> + payload = object_payload(object) - if Pleroma.Constants.as_public() in to and - Enum.any?(Pleroma.Config.get([:mrf_keyword, :federated_timeline_removal]), fn pattern -> + if Enum.any?(Pleroma.Config.get([:mrf_keyword, :federated_timeline_removal]), fn pattern -> string_matches?(payload, pattern) end) do + {:should_delist, nil} + else + {:ok, %{}} + end + end + + should_delist? = fn object -> + with {:ok, _} <- Pleroma.Object.Updater.do_with_history(object, check_keyword) do + false + else + _ -> true + end + end + + if Pleroma.Constants.as_public() in to and should_delist?.(object) do to = List.delete(to, Pleroma.Constants.as_public()) cc = [Pleroma.Constants.as_public() | message["cc"] || []] @@ -59,8 +81,12 @@ defp check_ftl_removal(%{"to" => to, "object" => %{} = object} = message) do end end + defp check_ftl_removal(message) do + {:ok, message} + end + defp check_replace(%{"object" => %{} = object} = message) do - object = + replace_kw = fn object -> ["content", "name", "summary"] |> Enum.filter(fn field -> Map.has_key?(object, field) && object[field] end) |> Enum.reduce(object, fn field, object -> @@ -73,6 +99,10 @@ defp check_replace(%{"object" => %{} = object} = message) do Map.put(object, field, data) end) + |> (fn object -> {:ok, object} end).() + end + + {:ok, object} = Pleroma.Object.Updater.do_with_history(object, replace_kw) message = Map.put(message, "object", object) @@ -80,7 +110,8 @@ defp check_replace(%{"object" => %{} = object} = message) do end @impl true - def filter(%{"type" => "Create", "object" => %{"content" => _content}} = message) do + def filter(%{"type" => type, "object" => %{"content" => _content}} = message) + when type in ["Create", "Update"] do with {:ok, message} <- check_reject(message), {:ok, message} <- check_ftl_removal(message), {:ok, message} <- check_replace(message) do @@ -159,6 +190,8 @@ def config_description do %{ key: :replace, type: {:list, :tuple}, + key_placeholder: "instance", + value_placeholder: "reason", description: """ **Pattern**: a string or [Regex](https://hexdocs.pm/elixir/Regex.html) in the format of `~r/PATTERN/`. diff --git a/lib/pleroma/web/activity_pub/mrf/media_proxy_warming_policy.ex b/lib/pleroma/web/activity_pub/mrf/media_proxy_warming_policy.ex index 25289d3a4..c95d35bb9 100644 --- a/lib/pleroma/web/activity_pub/mrf/media_proxy_warming_policy.ex +++ b/lib/pleroma/web/activity_pub/mrf/media_proxy_warming_policy.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.ActivityPub.MRF.MediaProxyWarmingPolicy do @@ -16,6 +16,9 @@ defmodule Pleroma.Web.ActivityPub.MRF.MediaProxyWarmingPolicy do recv_timeout: 10_000 ] + @impl true + def history_awareness, do: :auto + defp prefetch(url) do # Fetching only proxiable resources if MediaProxy.enabled?() and MediaProxy.url_proxiable?(url) do @@ -54,10 +57,8 @@ defp preload(%{"object" => %{"attachment" => attachments}} = _message) do end @impl true - def filter( - %{"type" => "Create", "object" => %{"attachment" => attachments} = _object} = message - ) - when is_list(attachments) and length(attachments) > 0 do + def filter(%{"type" => type, "object" => %{"attachment" => attachments} = _object} = message) + when type in ["Create", "Update"] and is_list(attachments) and length(attachments) > 0 do preload(message) {:ok, message} diff --git a/lib/pleroma/web/activity_pub/mrf/mention_policy.ex b/lib/pleroma/web/activity_pub/mrf/mention_policy.ex index 05b28e4f5..8aa4f347f 100644 --- a/lib/pleroma/web/activity_pub/mrf/mention_policy.ex +++ b/lib/pleroma/web/activity_pub/mrf/mention_policy.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.ActivityPub.MRF.MentionPolicy do diff --git a/lib/pleroma/web/activity_pub/mrf/no_empty_policy.ex b/lib/pleroma/web/activity_pub/mrf/no_empty_policy.ex index 80bef591e..855cda3b9 100644 --- a/lib/pleroma/web/activity_pub/mrf/no_empty_policy.ex +++ b/lib/pleroma/web/activity_pub/mrf/no_empty_policy.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.ActivityPub.MRF.NoEmptyPolicy do @@ -11,6 +11,7 @@ defmodule Pleroma.Web.ActivityPub.MRF.NoEmptyPolicy do @impl true def filter(%{"actor" => actor} = object) do with true <- is_local?(actor), + true <- is_eligible_type?(object), true <- is_note?(object), false <- has_attachment?(object), true <- only_mentions?(object) do @@ -32,7 +33,6 @@ defp is_local?(actor) do end defp has_attachment?(%{ - "type" => "Create", "object" => %{"type" => "Note", "attachment" => attachments} }) when length(attachments) > 0, @@ -40,7 +40,13 @@ defp has_attachment?(%{ defp has_attachment?(_), do: false - defp only_mentions?(%{"type" => "Create", "object" => %{"type" => "Note", "source" => source}}) do + defp only_mentions?(%{"object" => %{"type" => "Note", "source" => source}}) do + source = + case source do + %{"content" => text} -> text + _ -> source + end + non_mentions = source |> String.split() |> Enum.filter(&(not String.starts_with?(&1, "@"))) |> length @@ -53,9 +59,12 @@ defp only_mentions?(%{"type" => "Create", "object" => %{"type" => "Note", "sourc defp only_mentions?(_), do: false - defp is_note?(%{"type" => "Create", "object" => %{"type" => "Note"}}), do: true + defp is_note?(%{"object" => %{"type" => "Note"}}), do: true defp is_note?(_), do: false + defp is_eligible_type?(%{"type" => type}) when type in ["Create", "Update"], do: true + defp is_eligible_type?(_), do: false + @impl true def describe, do: {:ok, %{}} end diff --git a/lib/pleroma/web/activity_pub/mrf/no_op_policy.ex b/lib/pleroma/web/activity_pub/mrf/no_op_policy.ex index 25031946c..8840c4fac 100644 --- a/lib/pleroma/web/activity_pub/mrf/no_op_policy.ex +++ b/lib/pleroma/web/activity_pub/mrf/no_op_policy.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.ActivityPub.MRF.NoOpPolicy do diff --git a/lib/pleroma/web/activity_pub/mrf/no_placeholder_text_policy.ex b/lib/pleroma/web/activity_pub/mrf/no_placeholder_text_policy.ex index 90272766c..f81e9e52a 100644 --- a/lib/pleroma/web/activity_pub/mrf/no_placeholder_text_policy.ex +++ b/lib/pleroma/web/activity_pub/mrf/no_placeholder_text_policy.ex @@ -1,19 +1,22 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.ActivityPub.MRF.NoPlaceholderTextPolicy do @moduledoc "Ensure no content placeholder is present (such as the dot from mastodon)" @behaviour Pleroma.Web.ActivityPub.MRF.Policy + @impl true + def history_awareness, do: :auto + @impl true def filter( %{ - "type" => "Create", + "type" => type, "object" => %{"content" => content, "attachment" => _} = _child_object } = object ) - when content in [".", "

.

"] do + when type in ["Create", "Update"] and content in [".", "

.

"] do {:ok, put_in(object, ["object", "content"], "")} end diff --git a/lib/pleroma/web/activity_pub/mrf/normalize_markup.ex b/lib/pleroma/web/activity_pub/mrf/normalize_markup.ex index 0d7146738..2dfc9a901 100644 --- a/lib/pleroma/web/activity_pub/mrf/normalize_markup.ex +++ b/lib/pleroma/web/activity_pub/mrf/normalize_markup.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.ActivityPub.MRF.NormalizeMarkup do @@ -9,7 +9,11 @@ defmodule Pleroma.Web.ActivityPub.MRF.NormalizeMarkup do @behaviour Pleroma.Web.ActivityPub.MRF.Policy @impl true - def filter(%{"type" => "Create", "object" => child_object} = object) do + def history_awareness, do: :auto + + @impl true + def filter(%{"type" => type, "object" => child_object} = object) + when type in ["Create", "Update"] do scrub_policy = Pleroma.Config.get([:mrf_normalize_markup, :scrub_policy]) content = diff --git a/lib/pleroma/web/activity_pub/mrf/object_age_policy.ex b/lib/pleroma/web/activity_pub/mrf/object_age_policy.ex index 02c9b18ed..df1a6dcbb 100644 --- a/lib/pleroma/web/activity_pub/mrf/object_age_policy.ex +++ b/lib/pleroma/web/activity_pub/mrf/object_age_policy.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.ActivityPub.MRF.ObjectAgePolicy do @@ -131,7 +131,7 @@ def config_description do type: {:list, :atom}, description: "A list of actions to apply to the post. `:delist` removes the post from public timelines; " <> - "`:strip_followers` removes followers from the ActivityPub recipient list ensuring they won't be delivered to home timelines; " <> + "`:strip_followers` removes followers from the ActivityPub recipient list ensuring they won't be delivered to home timelines, additionally for followers-only it degrades to a direct message; " <> "`:reject` rejects the message entirely", suggestions: [:delist, :strip_followers, :reject] } diff --git a/lib/pleroma/web/activity_pub/mrf/pipeline_filtering.ex b/lib/pleroma/web/activity_pub/mrf/pipeline_filtering.ex index be95e38ec..b2477fed4 100644 --- a/lib/pleroma/web/activity_pub/mrf/pipeline_filtering.ex +++ b/lib/pleroma/web/activity_pub/mrf/pipeline_filtering.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.ActivityPub.MRF.PipelineFiltering do diff --git a/lib/pleroma/web/activity_pub/mrf/policy.ex b/lib/pleroma/web/activity_pub/mrf/policy.ex index a4a960c01..0234de4d5 100644 --- a/lib/pleroma/web/activity_pub/mrf/policy.ex +++ b/lib/pleroma/web/activity_pub/mrf/policy.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.ActivityPub.MRF.Policy do @@ -12,5 +12,6 @@ defmodule Pleroma.Web.ActivityPub.MRF.Policy do label: String.t(), description: String.t() } - @optional_callbacks config_description: 0 + @callback history_awareness() :: :auto | :manual + @optional_callbacks config_description: 0, history_awareness: 0 end diff --git a/lib/pleroma/web/activity_pub/mrf/reject_non_public.ex b/lib/pleroma/web/activity_pub/mrf/reject_non_public.ex index b9d3e52c7..9d4a7a405 100644 --- a/lib/pleroma/web/activity_pub/mrf/reject_non_public.ex +++ b/lib/pleroma/web/activity_pub/mrf/reject_non_public.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.ActivityPub.MRF.RejectNonPublic do @@ -47,7 +47,7 @@ def filter(object), do: {:ok, object} @impl true def describe, - do: {:ok, %{mrf_rejectnonpublic: Config.get(:mrf_rejectnonpublic) |> Enum.into(%{})}} + do: {:ok, %{mrf_rejectnonpublic: Config.get(:mrf_rejectnonpublic) |> Map.new()}} @impl true def config_description do diff --git a/lib/pleroma/web/activity_pub/mrf/simple_policy.ex b/lib/pleroma/web/activity_pub/mrf/simple_policy.ex index 30562ac08..829ddeaea 100644 --- a/lib/pleroma/web/activity_pub/mrf/simple_policy.ex +++ b/lib/pleroma/web/activity_pub/mrf/simple_policy.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.ActivityPub.MRF.SimplePolicy do @@ -15,7 +15,7 @@ defmodule Pleroma.Web.ActivityPub.MRF.SimplePolicy do defp check_accept(%{host: actor_host} = _actor_info, object) do accepts = - Config.get([:mrf_simple, :accept]) + instance_list(:accept) |> MRF.subdomains_regex() cond do @@ -28,7 +28,7 @@ defp check_accept(%{host: actor_host} = _actor_info, object) do defp check_reject(%{host: actor_host} = _actor_info, object) do rejects = - Config.get([:mrf_simple, :reject]) + instance_list(:reject) |> MRF.subdomains_regex() if MRF.subdomain_match?(rejects, actor_host) do @@ -40,11 +40,11 @@ defp check_reject(%{host: actor_host} = _actor_info, object) do defp check_media_removal( %{host: actor_host} = _actor_info, - %{"type" => "Create", "object" => %{"attachment" => child_attachment}} = object + %{"type" => type, "object" => %{"attachment" => child_attachment}} = object ) - when length(child_attachment) > 0 do + when length(child_attachment) > 0 and type in ["Create", "Update"] do media_removal = - Config.get([:mrf_simple, :media_removal]) + instance_list(:media_removal) |> MRF.subdomains_regex() object = @@ -63,12 +63,13 @@ defp check_media_removal(_actor_info, object), do: {:ok, object} defp check_media_nsfw( %{host: actor_host} = _actor_info, %{ - "type" => "Create", + "type" => type, "object" => %{} = _child_object } = object - ) do + ) + when type in ["Create", "Update"] do media_nsfw = - Config.get([:mrf_simple, :media_nsfw]) + instance_list(:media_nsfw) |> MRF.subdomains_regex() object = @@ -85,7 +86,7 @@ defp check_media_nsfw(_actor_info, object), do: {:ok, object} defp check_ftl_removal(%{host: actor_host} = _actor_info, object) do timeline_removal = - Config.get([:mrf_simple, :federated_timeline_removal]) + instance_list(:federated_timeline_removal) |> MRF.subdomains_regex() object = @@ -112,7 +113,7 @@ defp intersection(list1, list2) do defp check_followers_only(%{host: actor_host} = _actor_info, object) do followers_only = - Config.get([:mrf_simple, :followers_only]) + instance_list(:followers_only) |> MRF.subdomains_regex() object = @@ -137,7 +138,7 @@ defp check_followers_only(%{host: actor_host} = _actor_info, object) do defp check_report_removal(%{host: actor_host} = _actor_info, %{"type" => "Flag"} = object) do report_removal = - Config.get([:mrf_simple, :report_removal]) + instance_list(:report_removal) |> MRF.subdomains_regex() if MRF.subdomain_match?(report_removal, actor_host) do @@ -151,7 +152,7 @@ defp check_report_removal(_actor_info, object), do: {:ok, object} defp check_avatar_removal(%{host: actor_host} = _actor_info, %{"icon" => _icon} = object) do avatar_removal = - Config.get([:mrf_simple, :avatar_removal]) + instance_list(:avatar_removal) |> MRF.subdomains_regex() if MRF.subdomain_match?(avatar_removal, actor_host) do @@ -165,7 +166,7 @@ defp check_avatar_removal(_actor_info, object), do: {:ok, object} defp check_banner_removal(%{host: actor_host} = _actor_info, %{"image" => _image} = object) do banner_removal = - Config.get([:mrf_simple, :banner_removal]) + instance_list(:banner_removal) |> MRF.subdomains_regex() if MRF.subdomain_match?(banner_removal, actor_host) do @@ -185,12 +186,17 @@ defp check_object(%{"object" => object} = activity) do defp check_object(object), do: {:ok, object} + defp instance_list(config_key) do + Config.get([:mrf_simple, config_key]) + |> MRF.instance_list_from_tuples() + end + @impl true def filter(%{"type" => "Delete", "actor" => actor} = object) do %{host: actor_host} = URI.parse(actor) reject_deletes = - Config.get([:mrf_simple, :reject_deletes]) + instance_list(:reject_deletes) |> MRF.subdomains_regex() if MRF.subdomain_match?(reject_deletes, actor_host) do @@ -253,14 +259,42 @@ def filter(object), do: {:ok, object} @impl true def describe do - exclusions = Config.get([:mrf, :transparency_exclusions]) + exclusions = Config.get([:mrf, :transparency_exclusions]) |> MRF.instance_list_from_tuples() + + mrf_simple_excluded = + Config.get(:mrf_simple) + |> Enum.map(fn {rule, instances} -> + {rule, Enum.reject(instances, fn {host, _} -> host in exclusions end)} + end) mrf_simple = - Config.get(:mrf_simple) - |> Enum.map(fn {k, v} -> {k, Enum.reject(v, fn v -> v in exclusions end)} end) - |> Enum.into(%{}) + mrf_simple_excluded + |> Enum.map(fn {rule, instances} -> + {rule, Enum.map(instances, fn {host, _} -> host end)} + end) + |> Map.new() - {:ok, %{mrf_simple: mrf_simple}} + # This is for backwards compatibility. We originally didn't sent + # extra info like a reason why an instance was rejected/quarantined/etc. + # Because we didn't want to break backwards compatibility it was decided + # to add an extra "info" key. + mrf_simple_info = + mrf_simple_excluded + |> Enum.map(fn {rule, instances} -> + {rule, Enum.reject(instances, fn {_, reason} -> reason == "" end)} + end) + |> Enum.reject(fn {_, instances} -> instances == [] end) + |> Enum.map(fn {rule, instances} -> + instances = + instances + |> Enum.map(fn {host, reason} -> {host, %{"reason" => reason}} end) + |> Map.new() + + {rule, instances} + end) + |> Map.new() + + {:ok, %{mrf_simple: mrf_simple, mrf_simple_info: mrf_simple_info}} end @impl true @@ -270,70 +304,67 @@ def config_description do related_policy: "Pleroma.Web.ActivityPub.MRF.SimplePolicy", label: "MRF Simple", description: "Simple ingress policies", - children: [ - %{ - key: :media_removal, - type: {:list, :string}, - description: "List of instances to strip media attachments from", - suggestions: ["example.com", "*.example.com"] - }, - %{ - key: :media_nsfw, - label: "Media NSFW", - type: {:list, :string}, - description: "List of instances to tag all media as NSFW (sensitive) from", - suggestions: ["example.com", "*.example.com"] - }, - %{ - key: :federated_timeline_removal, - type: {:list, :string}, - description: - "List of instances to remove from the Federated (aka The Whole Known Network) Timeline", - suggestions: ["example.com", "*.example.com"] - }, - %{ - key: :reject, - type: {:list, :string}, - description: "List of instances to reject activities from (except deletes)", - suggestions: ["example.com", "*.example.com"] - }, - %{ - key: :accept, - type: {:list, :string}, - description: "List of instances to only accept activities from (except deletes)", - suggestions: ["example.com", "*.example.com"] - }, - %{ - key: :followers_only, - type: {:list, :string}, - description: "Force posts from the given instances to be visible by followers only", - suggestions: ["example.com", "*.example.com"] - }, - %{ - key: :report_removal, - type: {:list, :string}, - description: "List of instances to reject reports from", - suggestions: ["example.com", "*.example.com"] - }, - %{ - key: :avatar_removal, - type: {:list, :string}, - description: "List of instances to strip avatars from", - suggestions: ["example.com", "*.example.com"] - }, - %{ - key: :banner_removal, - type: {:list, :string}, - description: "List of instances to strip banners from", - suggestions: ["example.com", "*.example.com"] - }, - %{ - key: :reject_deletes, - type: {:list, :string}, - description: "List of instances to reject deletions from", - suggestions: ["example.com", "*.example.com"] - } - ] + children: + [ + %{ + key: :media_removal, + description: + "List of instances to strip media attachments from and the reason for doing so" + }, + %{ + key: :media_nsfw, + label: "Media NSFW", + description: + "List of instances to tag all media as NSFW (sensitive) from and the reason for doing so" + }, + %{ + key: :federated_timeline_removal, + description: + "List of instances to remove from the Federated (aka The Whole Known Network) Timeline and the reason for doing so" + }, + %{ + key: :reject, + description: + "List of instances to reject activities from (except deletes) and the reason for doing so" + }, + %{ + key: :accept, + description: + "List of instances to only accept activities from (except deletes) and the reason for doing so" + }, + %{ + key: :followers_only, + description: + "Force posts from the given instances to be visible by followers only and the reason for doing so" + }, + %{ + key: :report_removal, + description: "List of instances to reject reports from and the reason for doing so" + }, + %{ + key: :avatar_removal, + description: "List of instances to strip avatars from and the reason for doing so" + }, + %{ + key: :banner_removal, + description: "List of instances to strip banners from and the reason for doing so" + }, + %{ + key: :reject_deletes, + description: "List of instances to reject deletions from and the reason for doing so" + } + ] + |> Enum.map(fn setting -> + Map.merge( + setting, + %{ + type: {:list, :tuple}, + key_placeholder: "instance", + value_placeholder: "reason", + suggestions: [{"example.com", "Some reason"}, {"*.example.com", "Another reason"}] + } + ) + end) } end end diff --git a/lib/pleroma/web/activity_pub/mrf/steal_emoji_policy.ex b/lib/pleroma/web/activity_pub/mrf/steal_emoji_policy.ex index fbe9795ac..f66c379b5 100644 --- a/lib/pleroma/web/activity_pub/mrf/steal_emoji_policy.ex +++ b/lib/pleroma/web/activity_pub/mrf/steal_emoji_policy.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.ActivityPub.MRF.StealEmojiPolicy do @@ -12,6 +12,14 @@ defmodule Pleroma.Web.ActivityPub.MRF.StealEmojiPolicy do defp accept_host?(host), do: host in Config.get([:mrf_steal_emoji, :hosts], []) + defp shortcode_matches?(shortcode, pattern) when is_binary(pattern) do + shortcode == pattern + end + + defp shortcode_matches?(shortcode, pattern) do + String.match?(shortcode, pattern) + end + defp steal_emoji({shortcode, url}, emoji_dir_path) do url = Pleroma.Web.MediaProxy.url(url) @@ -38,9 +46,7 @@ defp steal_emoji({shortcode, url}, emoji_dir_path) do end else Logger.debug( - "MRF.StealEmojiPolicy: :#{shortcode}: at #{url} (#{byte_size(response.body)} B) over size limit (#{ - size_limit - } B)" + "MRF.StealEmojiPolicy: :#{shortcode}: at #{url} (#{byte_size(response.body)} B) over size limit (#{size_limit} B)" ) nil @@ -74,7 +80,7 @@ def filter(%{"object" => %{"emoji" => foreign_emojis, "actor" => actor}} = messa reject_emoji? = [:mrf_steal_emoji, :rejected_shortcodes] |> Config.get([]) - |> Enum.find(false, fn regex -> String.match?(shortcode, regex) end) + |> Enum.find(false, fn pattern -> shortcode_matches?(shortcode, pattern) end) !reject_emoji? end) @@ -124,8 +130,12 @@ def config_description do %{ key: :rejected_shortcodes, type: {:list, :string}, - description: "Regex-list of shortcodes to reject", - suggestions: [""] + description: """ + A list of patterns or matches to reject shortcodes with. + + Each pattern can be a string or [Regex](https://hexdocs.pm/elixir/Regex.html) in the format of `~r/PATTERN/`. + """, + suggestions: ["foo", ~r/foo/] }, %{ key: :size_limit, diff --git a/lib/pleroma/web/activity_pub/mrf/subchain_policy.ex b/lib/pleroma/web/activity_pub/mrf/subchain_policy.ex index f84d7cc71..fdb9e5176 100644 --- a/lib/pleroma/web/activity_pub/mrf/subchain_policy.ex +++ b/lib/pleroma/web/activity_pub/mrf/subchain_policy.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.ActivityPub.MRF.SubchainPolicy do @@ -23,9 +23,7 @@ defp lookup_subchain(actor) do def filter(%{"actor" => actor} = message) do with {:ok, match, subchain} <- lookup_subchain(actor) do Logger.debug( - "[SubchainPolicy] Matched #{actor} against #{inspect(match)} with subchain #{ - inspect(subchain) - }" + "[SubchainPolicy] Matched #{actor} against #{inspect(match)} with subchain #{inspect(subchain)}" ) MRF.filter(subchain, message) diff --git a/lib/pleroma/web/activity_pub/mrf/tag_policy.ex b/lib/pleroma/web/activity_pub/mrf/tag_policy.ex index 56ae654f2..73760ca8f 100644 --- a/lib/pleroma/web/activity_pub/mrf/tag_policy.ex +++ b/lib/pleroma/web/activity_pub/mrf/tag_policy.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.ActivityPub.MRF.TagPolicy do @@ -27,22 +27,22 @@ defp get_tags(_), do: [] defp process_tag( "mrf_tag:media-force-nsfw", %{ - "type" => "Create", + "type" => type, "object" => %{"attachment" => child_attachment} } = message ) - when length(child_attachment) > 0 do + when length(child_attachment) > 0 and type in ["Create", "Update"] do {:ok, Kernel.put_in(message, ["object", "sensitive"], true)} end defp process_tag( "mrf_tag:media-strip", %{ - "type" => "Create", + "type" => type, "object" => %{"attachment" => child_attachment} = object } = message ) - when length(child_attachment) > 0 do + when length(child_attachment) > 0 and type in ["Create", "Update"] do object = Map.delete(object, "attachment") message = Map.put(message, "object", object) @@ -152,7 +152,7 @@ def filter(%{"object" => target_actor, "type" => "Follow"} = message), do: filter_message(target_actor, message) @impl true - def filter(%{"actor" => actor, "type" => "Create"} = message), + def filter(%{"actor" => actor, "type" => type} = message) when type in ["Create", "Update"], do: filter_message(actor, message) @impl true diff --git a/lib/pleroma/web/activity_pub/mrf/user_allow_list_policy.ex b/lib/pleroma/web/activity_pub/mrf/user_allow_list_policy.ex index 1bcb3688b..e14047d4e 100644 --- a/lib/pleroma/web/activity_pub/mrf/user_allow_list_policy.ex +++ b/lib/pleroma/web/activity_pub/mrf/user_allow_list_policy.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.ActivityPub.MRF.UserAllowListPolicy do @@ -37,7 +37,7 @@ def filter(object), do: {:ok, object} def describe do mrf_user_allowlist = Config.get([:mrf_user_allowlist], []) - |> Enum.into(%{}, fn {k, v} -> {k, length(v)} end) + |> Map.new(fn {k, v} -> {k, length(v)} end) {:ok, %{mrf_user_allowlist: mrf_user_allowlist}} end diff --git a/lib/pleroma/web/activity_pub/mrf/vocabulary_policy.ex b/lib/pleroma/web/activity_pub/mrf/vocabulary_policy.ex index 20f57f609..d9deff35f 100644 --- a/lib/pleroma/web/activity_pub/mrf/vocabulary_policy.ex +++ b/lib/pleroma/web/activity_pub/mrf/vocabulary_policy.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.ActivityPub.MRF.VocabularyPolicy do @@ -39,7 +39,7 @@ def filter(message), do: {:ok, message} @impl true def describe, - do: {:ok, %{mrf_vocabulary: Pleroma.Config.get(:mrf_vocabulary) |> Enum.into(%{})}} + do: {:ok, %{mrf_vocabulary: Pleroma.Config.get(:mrf_vocabulary) |> Map.new()}} @impl true def config_description do diff --git a/lib/pleroma/web/activity_pub/object_validator.ex b/lib/pleroma/web/activity_pub/object_validator.ex index 6e40d8b72..5bcd6da46 100644 --- a/lib/pleroma/web/activity_pub/object_validator.ex +++ b/lib/pleroma/web/activity_pub/object_validator.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.ActivityPub.ObjectValidator do @@ -103,8 +103,8 @@ def validate( meta ) when objtype in ~w[Question Answer Audio Video Event Article Note Page] do - with {:ok, object_data} <- cast_and_apply(object), - meta = Keyword.put(meta, :object_data, object_data |> stringify_keys), + with {:ok, object_data} <- cast_and_apply_and_stringify_with_history(object), + meta = Keyword.put(meta, :object_data, object_data), {:ok, create_activity} <- create_activity |> CreateGenericValidator.cast_and_validate(meta) @@ -128,19 +128,53 @@ def validate(%{"type" => type} = object, meta) end with {:ok, object} <- - object - |> validator.cast_and_validate() - |> Ecto.Changeset.apply_action(:insert) do - object = stringify_keys(object) + do_separate_with_history(object, fn object -> + with {:ok, object} <- + object + |> validator.cast_and_validate() + |> Ecto.Changeset.apply_action(:insert) do + object = stringify_keys(object) - # Insert copy of hashtags as strings for the non-hashtag table indexing - tag = (object["tag"] || []) ++ Object.hashtags(%Object{data: object}) - object = Map.put(object, "tag", tag) + # Insert copy of hashtags as strings for the non-hashtag table indexing + tag = (object["tag"] || []) ++ Object.hashtags(%Object{data: object}) + object = Map.put(object, "tag", tag) + {:ok, object} + end + end) do {:ok, object, meta} end end + def validate( + %{"type" => "Update", "object" => %{"type" => objtype} = object} = update_activity, + meta + ) + when objtype in ~w[Question Answer Audio Video Event Article Note Page] do + with {_, false} <- {:local, Access.get(meta, :local, false)}, + {_, {:ok, object_data, _}} <- {:object_validation, validate(object, meta)}, + meta = Keyword.put(meta, :object_data, object_data), + {:ok, update_activity} <- + update_activity + |> UpdateValidator.cast_and_validate() + |> Ecto.Changeset.apply_action(:insert) do + update_activity = stringify_keys(update_activity) + {:ok, update_activity, meta} + else + {:local, _} -> + with {:ok, object} <- + update_activity + |> UpdateValidator.cast_and_validate() + |> Ecto.Changeset.apply_action(:insert) do + object = stringify_keys(object) + {:ok, object, meta} + end + + {:object_validation, e} -> + e + end + end + def validate(%{"type" => type} = object, meta) when type in ~w[Accept Reject Follow Update Like EmojiReact Announce ChatMessage Answer] do @@ -178,6 +212,15 @@ def validate(%{"type" => type} = object, meta) when type in ~w(Add Remove) do def validate(o, m), do: {:error, {:validator_not_set, {o, m}}} + def cast_and_apply_and_stringify_with_history(object) do + do_separate_with_history(object, fn object -> + with {:ok, object_data} <- cast_and_apply(object), + object_data <- object_data |> stringify_keys() do + {:ok, object_data} + end + end) + end + def cast_and_apply(%{"type" => "ChatMessage"} = object) do ChatMessageValidator.cast_and_apply(object) end @@ -204,8 +247,7 @@ def cast_and_apply(%{"type" => type} = object) when type in ~w[Article Note Page def cast_and_apply(o), do: {:error, {:validator_not_set, o}} - # is_struct/1 appears in Elixir 1.11 - def stringify_keys(%{__struct__: _} = object) do + def stringify_keys(object) when is_struct(object) do object |> Map.from_struct() |> stringify_keys @@ -213,6 +255,7 @@ def stringify_keys(%{__struct__: _} = object) do def stringify_keys(object) when is_map(object) do object + |> Enum.filter(fn {_, v} -> v != nil end) |> Map.new(fn {key, val} -> {to_string(key), stringify_keys(val)} end) end @@ -235,4 +278,54 @@ def fetch_actor_and_object(object) do Object.normalize(object["object"], fetch: true) :ok end + + defp for_each_history_item( + %{"type" => "OrderedCollection", "orderedItems" => items} = history, + object, + fun + ) do + processed_items = + Enum.map(items, fn item -> + with item <- Map.put(item, "id", object["id"]), + {:ok, item} <- fun.(item) do + item + else + _ -> nil + end + end) + + if Enum.all?(processed_items, &(not is_nil(&1))) do + {:ok, Map.put(history, "orderedItems", processed_items)} + else + {:error, :invalid_history} + end + end + + defp for_each_history_item(nil, _object, _fun) do + {:ok, nil} + end + + defp for_each_history_item(_, _object, _fun) do + {:error, :invalid_history} + end + + # fun is (object -> {:ok, validated_object_with_string_keys}) + defp do_separate_with_history(object, fun) do + with history <- object["formerRepresentations"], + object <- Map.drop(object, ["formerRepresentations"]), + {_, {:ok, object}} <- {:main_body, fun.(object)}, + {_, {:ok, history}} <- {:history_items, for_each_history_item(history, object, fun)} do + object = + if history do + Map.put(object, "formerRepresentations", history) + else + object + end + + {:ok, object} + else + {:main_body, e} -> e + {:history_items, e} -> e + end + end end diff --git a/lib/pleroma/web/activity_pub/object_validator/validating.ex b/lib/pleroma/web/activity_pub/object_validator/validating.ex index 28e8d2498..b695946b4 100644 --- a/lib/pleroma/web/activity_pub/object_validator/validating.ex +++ b/lib/pleroma/web/activity_pub/object_validator/validating.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.ActivityPub.ObjectValidator.Validating do diff --git a/lib/pleroma/web/activity_pub/object_validators/accept_reject_validator.ex b/lib/pleroma/web/activity_pub/object_validators/accept_reject_validator.ex index b577a1044..d611da051 100644 --- a/lib/pleroma/web/activity_pub/object_validators/accept_reject_validator.ex +++ b/lib/pleroma/web/activity_pub/object_validators/accept_reject_validator.ex @@ -1,12 +1,11 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.ActivityPub.ObjectValidators.AcceptRejectValidator do use Ecto.Schema alias Pleroma.Activity - alias Pleroma.EctoType.ActivityPub.ObjectValidators import Ecto.Changeset import Pleroma.Web.ActivityPub.ObjectValidators.CommonValidations @@ -14,12 +13,13 @@ defmodule Pleroma.Web.ActivityPub.ObjectValidators.AcceptRejectValidator do @primary_key false embedded_schema do - field(:id, ObjectValidators.ObjectID, primary_key: true) - field(:type, :string) - field(:object, ObjectValidators.ObjectID) - field(:actor, ObjectValidators.ObjectID) - field(:to, ObjectValidators.Recipients, default: []) - field(:cc, ObjectValidators.Recipients, default: []) + quote do + unquote do + import Elixir.Pleroma.Web.ActivityPub.ObjectValidators.CommonFields + message_fields() + activity_fields() + end + end end def cast_data(data) do diff --git a/lib/pleroma/web/activity_pub/object_validators/add_remove_validator.ex b/lib/pleroma/web/activity_pub/object_validators/add_remove_validator.ex index f885aabe4..5202db7f1 100644 --- a/lib/pleroma/web/activity_pub/object_validators/add_remove_validator.ex +++ b/lib/pleroma/web/activity_pub/object_validators/add_remove_validator.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.ActivityPub.ObjectValidators.AddRemoveValidator do @@ -10,19 +10,20 @@ defmodule Pleroma.Web.ActivityPub.ObjectValidators.AddRemoveValidator do require Pleroma.Constants - alias Pleroma.EctoType.ActivityPub.ObjectValidators alias Pleroma.User @primary_key false embedded_schema do - field(:id, ObjectValidators.ObjectID, primary_key: true) field(:target) - field(:object, ObjectValidators.ObjectID) - field(:actor, ObjectValidators.ObjectID) - field(:type) - field(:to, ObjectValidators.Recipients, default: []) - field(:cc, ObjectValidators.Recipients, default: []) + + quote do + unquote do + import Elixir.Pleroma.Web.ActivityPub.ObjectValidators.CommonFields + message_fields() + activity_fields() + end + end end def cast_and_validate(data) do diff --git a/lib/pleroma/web/activity_pub/object_validators/announce_validator.ex b/lib/pleroma/web/activity_pub/object_validators/announce_validator.ex index 4db76f387..c2c7ba1a8 100644 --- a/lib/pleroma/web/activity_pub/object_validators/announce_validator.ex +++ b/lib/pleroma/web/activity_pub/object_validators/announce_validator.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.ActivityPub.ObjectValidators.AnnounceValidator do @@ -20,13 +20,15 @@ defmodule Pleroma.Web.ActivityPub.ObjectValidators.AnnounceValidator do @primary_key false embedded_schema do - field(:id, ObjectValidators.ObjectID, primary_key: true) - field(:type, :string) - field(:object, ObjectValidators.ObjectID) - field(:actor, ObjectValidators.ObjectID) + quote do + unquote do + import Elixir.Pleroma.Web.ActivityPub.ObjectValidators.CommonFields + message_fields() + activity_fields() + end + end + field(:context, :string) - field(:to, ObjectValidators.Recipients, default: []) - field(:cc, ObjectValidators.Recipients, default: []) field(:published, ObjectValidators.DateTime) end diff --git a/lib/pleroma/web/activity_pub/object_validators/answer_validator.ex b/lib/pleroma/web/activity_pub/object_validators/answer_validator.ex index 3451e1ff8..2d9b8ba02 100644 --- a/lib/pleroma/web/activity_pub/object_validators/answer_validator.ex +++ b/lib/pleroma/web/activity_pub/object_validators/answer_validator.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.ActivityPub.ObjectValidators.AnswerValidator do @@ -15,12 +15,13 @@ defmodule Pleroma.Web.ActivityPub.ObjectValidators.AnswerValidator do @derive Jason.Encoder embedded_schema do - field(:id, ObjectValidators.ObjectID, primary_key: true) - field(:to, ObjectValidators.Recipients, default: []) - field(:cc, ObjectValidators.Recipients, default: []) - field(:bto, ObjectValidators.Recipients, default: []) - field(:bcc, ObjectValidators.Recipients, default: []) - field(:type, :string) + quote do + unquote do + import Elixir.Pleroma.Web.ActivityPub.ObjectValidators.CommonFields + message_fields() + end + end + field(:name, :string) field(:inReplyTo, ObjectValidators.ObjectID) field(:attributedTo, ObjectValidators.ObjectID) diff --git a/lib/pleroma/web/activity_pub/object_validators/article_note_page_validator.ex b/lib/pleroma/web/activity_pub/object_validators/article_note_page_validator.ex index 825f2082f..2670e3f17 100644 --- a/lib/pleroma/web/activity_pub/object_validators/article_note_page_validator.ex +++ b/lib/pleroma/web/activity_pub/object_validators/article_note_page_validator.ex @@ -1,15 +1,13 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.ActivityPub.ObjectValidators.ArticleNotePageValidator do use Ecto.Schema alias Pleroma.EctoType.ActivityPub.ObjectValidators - alias Pleroma.Web.ActivityPub.ObjectValidators.AttachmentValidator alias Pleroma.Web.ActivityPub.ObjectValidators.CommonFixes alias Pleroma.Web.ActivityPub.ObjectValidators.CommonValidations - alias Pleroma.Web.ActivityPub.ObjectValidators.TagValidator alias Pleroma.Web.ActivityPub.Transmogrifier import Ecto.Changeset @@ -18,38 +16,14 @@ defmodule Pleroma.Web.ActivityPub.ObjectValidators.ArticleNotePageValidator do @derive Jason.Encoder embedded_schema do - field(:id, ObjectValidators.ObjectID, primary_key: true) - field(:to, ObjectValidators.Recipients, default: []) - field(:cc, ObjectValidators.Recipients, default: []) - field(:bto, ObjectValidators.Recipients, default: []) - field(:bcc, ObjectValidators.Recipients, default: []) - embeds_many(:tag, TagValidator) - field(:type, :string) - - field(:name, :string) - field(:summary, :string) - field(:content, :string) - - field(:context, :string) - # short identifier for PleromaFE to group statuses by context - field(:context_id, :integer) - - # TODO: Remove actor on objects - field(:actor, ObjectValidators.ObjectID) - - field(:attributedTo, ObjectValidators.ObjectID) - field(:published, ObjectValidators.DateTime) - field(:emoji, ObjectValidators.Emoji, default: %{}) - field(:sensitive, :boolean, default: false) - embeds_many(:attachment, AttachmentValidator) - field(:replies_count, :integer, default: 0) - field(:like_count, :integer, default: 0) - field(:announcement_count, :integer, default: 0) - field(:inReplyTo, ObjectValidators.ObjectID) - field(:url, ObjectValidators.Uri) - - field(:likes, {:array, ObjectValidators.ObjectID}, default: []) - field(:announcements, {:array, ObjectValidators.ObjectID}, default: []) + quote do + unquote do + import Elixir.Pleroma.Web.ActivityPub.ObjectValidators.CommonFields + message_fields() + object_fields() + status_object_fields() + end + end field(:replies, {:array, ObjectValidators.ObjectID}, default: []) end @@ -75,7 +49,10 @@ defp fix_url(%{"url" => url} = data) when is_bitstring(url), do: data defp fix_url(%{"url" => url} = data) when is_map(url), do: Map.put(data, "url", url["href"]) defp fix_url(data), do: data - defp fix_tag(%{"tag" => tag} = data) when is_list(tag), do: data + defp fix_tag(%{"tag" => tag} = data) when is_list(tag) do + Map.put(data, "tag", Enum.filter(tag, &is_map/1)) + end + defp fix_tag(%{"tag" => tag} = data) when is_map(tag), do: Map.put(data, "tag", [tag]) defp fix_tag(data), do: Map.drop(data, ["tag"]) @@ -94,6 +71,11 @@ defp fix_replies(%{"replies" => replies} = data) when not is_list(replies), defp fix_replies(data), do: data + def fix_attachments(%{"attachment" => attachment} = data) when is_map(attachment), + do: Map.put(data, "attachment", [attachment]) + + def fix_attachments(data), do: data + defp fix(data) do data |> CommonFixes.fix_actor() @@ -101,6 +83,7 @@ defp fix(data) do |> fix_url() |> fix_tag() |> fix_replies() + |> fix_attachments() |> Transmogrifier.fix_emoji() |> Transmogrifier.fix_content_map() end @@ -117,7 +100,7 @@ def changeset(struct, data) do defp validate_data(data_cng) do data_cng |> validate_inclusion(:type, ["Article", "Note", "Page"]) - |> validate_required([:id, :actor, :attributedTo, :type, :context, :context_id]) + |> validate_required([:id, :actor, :attributedTo, :type, :context]) |> CommonValidations.validate_any_presence([:cc, :to]) |> CommonValidations.validate_fields_match([:actor, :attributedTo]) |> CommonValidations.validate_actor_presence() diff --git a/lib/pleroma/web/activity_pub/object_validators/attachment_validator.ex b/lib/pleroma/web/activity_pub/object_validators/attachment_validator.ex index b86ce35fd..398020bff 100644 --- a/lib/pleroma/web/activity_pub/object_validators/attachment_validator.ex +++ b/lib/pleroma/web/activity_pub/object_validators/attachment_validator.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.ActivityPub.ObjectValidators.AttachmentValidator do @@ -11,6 +11,7 @@ defmodule Pleroma.Web.ActivityPub.ObjectValidators.AttachmentValidator do @primary_key false embedded_schema do + field(:id, :string) field(:type, :string) field(:mediaType, ObjectValidators.MIME, default: "application/octet-stream") field(:name, :string) @@ -43,10 +44,10 @@ def changeset(struct, data) do |> fix_url() struct - |> cast(data, [:type, :mediaType, :name, :blurhash]) - |> cast_embed(:url, with: &url_changeset/2) + |> cast(data, [:id, :type, :mediaType, :name, :blurhash]) + |> cast_embed(:url, with: &url_changeset/2, required: true) |> validate_inclusion(:type, ~w[Link Document Audio Image Video]) - |> validate_required([:type, :mediaType, :url]) + |> validate_required([:type, :mediaType]) end def url_changeset(struct, data) do @@ -59,15 +60,17 @@ def url_changeset(struct, data) do end def fix_media_type(data) do - Map.put_new(data, "mediaType", data["mimeType"]) + Map.put_new(data, "mediaType", data["mimeType"] || "application/octet-stream") end - defp handle_href(href, mediaType) do + defp handle_href(href, mediaType, data) do [ %{ "href" => href, "type" => "Link", - "mediaType" => mediaType + "mediaType" => mediaType, + "width" => data["width"], + "height" => data["height"] } ] end @@ -75,10 +78,10 @@ defp handle_href(href, mediaType) do defp fix_url(data) do cond do is_binary(data["url"]) -> - Map.put(data, "url", handle_href(data["url"], data["mediaType"])) + Map.put(data, "url", handle_href(data["url"], data["mediaType"], data)) is_binary(data["href"]) and data["url"] == nil -> - Map.put(data, "url", handle_href(data["href"], data["mediaType"])) + Map.put(data, "url", handle_href(data["href"], data["mediaType"], data)) true -> data @@ -88,6 +91,6 @@ defp fix_url(data) do defp validate_data(cng) do cng |> validate_inclusion(:type, ~w[Document Audio Image Video]) - |> validate_required([:mediaType, :url, :type]) + |> validate_required([:mediaType, :type]) end end diff --git a/lib/pleroma/web/activity_pub/object_validators/audio_video_validator.ex b/lib/pleroma/web/activity_pub/object_validators/audio_video_validator.ex index 572687deb..671a7ef0c 100644 --- a/lib/pleroma/web/activity_pub/object_validators/audio_video_validator.ex +++ b/lib/pleroma/web/activity_pub/object_validators/audio_video_validator.ex @@ -1,15 +1,12 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.ActivityPub.ObjectValidators.AudioVideoValidator do use Ecto.Schema - alias Pleroma.EctoType.ActivityPub.ObjectValidators - alias Pleroma.Web.ActivityPub.ObjectValidators.AttachmentValidator alias Pleroma.Web.ActivityPub.ObjectValidators.CommonFixes alias Pleroma.Web.ActivityPub.ObjectValidators.CommonValidations - alias Pleroma.Web.ActivityPub.ObjectValidators.TagValidator alias Pleroma.Web.ActivityPub.Transmogrifier import Ecto.Changeset @@ -18,38 +15,14 @@ defmodule Pleroma.Web.ActivityPub.ObjectValidators.AudioVideoValidator do @derive Jason.Encoder embedded_schema do - field(:id, ObjectValidators.ObjectID, primary_key: true) - field(:to, ObjectValidators.Recipients, default: []) - field(:cc, ObjectValidators.Recipients, default: []) - field(:bto, ObjectValidators.Recipients, default: []) - field(:bcc, ObjectValidators.Recipients, default: []) - embeds_many(:tag, TagValidator) - field(:type, :string) - - field(:name, :string) - field(:summary, :string) - field(:content, :string) - - field(:context, :string) - # short identifier for PleromaFE to group statuses by context - field(:context_id, :integer) - - # TODO: Remove actor on objects - field(:actor, ObjectValidators.ObjectID) - - field(:attributedTo, ObjectValidators.ObjectID) - field(:published, ObjectValidators.DateTime) - field(:emoji, ObjectValidators.Emoji, default: %{}) - field(:sensitive, :boolean, default: false) - embeds_many(:attachment, AttachmentValidator) - field(:replies_count, :integer, default: 0) - field(:like_count, :integer, default: 0) - field(:announcement_count, :integer, default: 0) - field(:inReplyTo, ObjectValidators.ObjectID) - field(:url, ObjectValidators.Uri) - - field(:likes, {:array, ObjectValidators.ObjectID}, default: []) - field(:announcements, {:array, ObjectValidators.ObjectID}, default: []) + quote do + unquote do + import Elixir.Pleroma.Web.ActivityPub.ObjectValidators.CommonFields + message_fields() + object_fields() + status_object_fields() + end + end end def cast_and_apply(data) do @@ -131,14 +104,14 @@ def changeset(struct, data) do struct |> cast(data, __schema__(:fields) -- [:attachment, :tag]) - |> cast_embed(:attachment) + |> cast_embed(:attachment, required: true) |> cast_embed(:tag) end defp validate_data(data_cng) do data_cng |> validate_inclusion(:type, ["Audio", "Video"]) - |> validate_required([:id, :actor, :attributedTo, :type, :context, :attachment]) + |> validate_required([:id, :actor, :attributedTo, :type, :context]) |> CommonValidations.validate_any_presence([:cc, :to]) |> CommonValidations.validate_fields_match([:actor, :attributedTo]) |> CommonValidations.validate_actor_presence() diff --git a/lib/pleroma/web/activity_pub/object_validators/block_validator.ex b/lib/pleroma/web/activity_pub/object_validators/block_validator.ex index 88948135f..0de87a27e 100644 --- a/lib/pleroma/web/activity_pub/object_validators/block_validator.ex +++ b/lib/pleroma/web/activity_pub/object_validators/block_validator.ex @@ -1,24 +1,25 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.ActivityPub.ObjectValidators.BlockValidator do use Ecto.Schema - alias Pleroma.EctoType.ActivityPub.ObjectValidators + alias Elixir.Pleroma.Web.ActivityPub.ObjectValidators.CommonValidations import Ecto.Changeset - import Pleroma.Web.ActivityPub.ObjectValidators.CommonValidations @primary_key false + @derive Jason.Encoder embedded_schema do - field(:id, ObjectValidators.ObjectID, primary_key: true) - field(:type, :string) - field(:actor, ObjectValidators.ObjectID) - field(:to, ObjectValidators.Recipients, default: []) - field(:cc, ObjectValidators.Recipients, default: []) - field(:object, ObjectValidators.ObjectID) + quote do + unquote do + import Elixir.Pleroma.Web.ActivityPub.ObjectValidators.CommonFields + message_fields() + activity_fields() + end + end end def cast_data(data) do @@ -30,8 +31,8 @@ defp validate_data(cng) do cng |> validate_required([:id, :type, :actor, :to, :cc, :object]) |> validate_inclusion(:type, ["Block"]) - |> validate_actor_presence() - |> validate_actor_presence(field_name: :object) + |> CommonValidations.validate_actor_presence() + |> CommonValidations.validate_actor_presence(field_name: :object) end def cast_and_validate(data) do diff --git a/lib/pleroma/web/activity_pub/object_validators/chat_message_validator.ex b/lib/pleroma/web/activity_pub/object_validators/chat_message_validator.ex index b153156b0..efae48cae 100644 --- a/lib/pleroma/web/activity_pub/object_validators/chat_message_validator.ex +++ b/lib/pleroma/web/activity_pub/object_validators/chat_message_validator.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.ActivityPub.ObjectValidators.ChatMessageValidator do diff --git a/lib/pleroma/web/activity_pub/object_validators/common_fields.ex b/lib/pleroma/web/activity_pub/object_validators/common_fields.ex new file mode 100644 index 000000000..7b60c139a --- /dev/null +++ b/lib/pleroma/web/activity_pub/object_validators/common_fields.ex @@ -0,0 +1,67 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2022 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + +defmodule Pleroma.Web.ActivityPub.ObjectValidators.CommonFields do + alias Pleroma.EctoType.ActivityPub.ObjectValidators + alias Pleroma.Web.ActivityPub.ObjectValidators.AttachmentValidator + alias Pleroma.Web.ActivityPub.ObjectValidators.TagValidator + + # Activities and Objects, except (Create)ChatMessage + defmacro message_fields do + quote bind_quoted: binding() do + field(:type, :string) + field(:id, ObjectValidators.ObjectID, primary_key: true) + + field(:to, ObjectValidators.Recipients, default: []) + field(:cc, ObjectValidators.Recipients, default: []) + field(:bto, ObjectValidators.Recipients, default: []) + field(:bcc, ObjectValidators.Recipients, default: []) + end + end + + defmacro activity_fields do + quote bind_quoted: binding() do + field(:object, ObjectValidators.ObjectID) + field(:actor, ObjectValidators.ObjectID) + end + end + + # All objects except Answer and CHatMessage + defmacro object_fields do + quote bind_quoted: binding() do + field(:content, :string) + + field(:published, ObjectValidators.DateTime) + field(:updated, ObjectValidators.DateTime) + field(:emoji, ObjectValidators.Emoji, default: %{}) + embeds_many(:attachment, AttachmentValidator) + end + end + + # Basically objects that aren't ChatMessage and Answer + defmacro status_object_fields do + quote bind_quoted: binding() do + # TODO: Remove actor on objects + field(:actor, ObjectValidators.ObjectID) + field(:attributedTo, ObjectValidators.ObjectID) + + embeds_many(:tag, TagValidator) + + field(:name, :string) + field(:summary, :string) + + field(:context, :string) + + field(:sensitive, :boolean, default: false) + field(:replies_count, :integer, default: 0) + field(:like_count, :integer, default: 0) + field(:announcement_count, :integer, default: 0) + field(:inReplyTo, ObjectValidators.ObjectID) + field(:url, ObjectValidators.Uri) + + field(:likes, {:array, ObjectValidators.ObjectID}, default: []) + field(:announcements, {:array, ObjectValidators.ObjectID}, default: []) + end + end +end diff --git a/lib/pleroma/web/activity_pub/object_validators/common_fixes.ex b/lib/pleroma/web/activity_pub/object_validators/common_fixes.ex index 9631013a7..add46d561 100644 --- a/lib/pleroma/web/activity_pub/object_validators/common_fixes.ex +++ b/lib/pleroma/web/activity_pub/object_validators/common_fixes.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.ActivityPub.ObjectValidators.CommonFixes do @@ -22,14 +22,15 @@ def cast_and_filter_recipients(message, field, follower_collection, field_fallba end def fix_object_defaults(data) do - %{data: %{"id" => context}, id: context_id} = - Utils.create_context(data["context"] || data["conversation"]) + context = + Utils.maybe_create_context( + data["context"] || data["conversation"] || data["inReplyTo"] || data["id"] + ) %User{follower_address: follower_collection} = User.get_cached_by_ap_id(data["attributedTo"]) data |> Map.put("context", context) - |> Map.put("context_id", context_id) |> cast_and_filter_recipients("to", follower_collection) |> cast_and_filter_recipients("cc", follower_collection) |> cast_and_filter_recipients("bto", follower_collection) diff --git a/lib/pleroma/web/activity_pub/object_validators/common_validations.ex b/lib/pleroma/web/activity_pub/object_validators/common_validations.ex index be5074348..1c5b1a059 100644 --- a/lib/pleroma/web/activity_pub/object_validators/common_validations.ex +++ b/lib/pleroma/web/activity_pub/object_validators/common_validations.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.ActivityPub.ObjectValidators.CommonValidations do @@ -136,11 +136,11 @@ def same_domain?(cng, fields \\ [:actor, :object]) do # This figures out if a user is able to create, delete or modify something # based on the domain and superuser status - @spec validate_modification_rights(Ecto.Changeset.t()) :: Ecto.Changeset.t() - def validate_modification_rights(cng) do + @spec validate_modification_rights(Ecto.Changeset.t(), atom()) :: Ecto.Changeset.t() + def validate_modification_rights(cng, privilege) do actor = User.get_cached_by_ap_id(get_field(cng, :actor)) - if User.superuser?(actor) || same_domain?(cng) do + if User.privileged?(actor, privilege) || same_domain?(cng) do cng else cng diff --git a/lib/pleroma/web/activity_pub/object_validators/create_chat_message_validator.ex b/lib/pleroma/web/activity_pub/object_validators/create_chat_message_validator.ex index 7a31a99bf..b299647a1 100644 --- a/lib/pleroma/web/activity_pub/object_validators/create_chat_message_validator.ex +++ b/lib/pleroma/web/activity_pub/object_validators/create_chat_message_validator.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only # NOTES @@ -17,11 +17,16 @@ defmodule Pleroma.Web.ActivityPub.ObjectValidators.CreateChatMessageValidator do @primary_key false embedded_schema do + quote do + unquote do + import Elixir.Pleroma.Web.ActivityPub.ObjectValidators.CommonFields + activity_fields() + end + end + field(:id, ObjectValidators.ObjectID, primary_key: true) - field(:actor, ObjectValidators.ObjectID) field(:type, :string) field(:to, ObjectValidators.Recipients, default: []) - field(:object, ObjectValidators.ObjectID) end def cast_and_apply(data) do diff --git a/lib/pleroma/web/activity_pub/object_validators/create_generic_validator.ex b/lib/pleroma/web/activity_pub/object_validators/create_generic_validator.ex index d2de53049..2395abfd4 100644 --- a/lib/pleroma/web/activity_pub/object_validators/create_generic_validator.ex +++ b/lib/pleroma/web/activity_pub/object_validators/create_generic_validator.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only # Code based on CreateChatMessageValidator @@ -20,14 +20,14 @@ defmodule Pleroma.Web.ActivityPub.ObjectValidators.CreateGenericValidator do @primary_key false embedded_schema do - field(:id, ObjectValidators.ObjectID, primary_key: true) - field(:actor, ObjectValidators.ObjectID) - field(:type, :string) - field(:to, ObjectValidators.Recipients, default: []) - field(:cc, ObjectValidators.Recipients, default: []) - field(:bto, ObjectValidators.Recipients, default: []) - field(:bcc, ObjectValidators.Recipients, default: []) - field(:object, ObjectValidators.ObjectID) + quote do + unquote do + import Elixir.Pleroma.Web.ActivityPub.ObjectValidators.CommonFields + message_fields() + activity_fields() + end + end + field(:expires_at, ObjectValidators.DateTime) # Should be moved to object, done for CommonAPI.Utils.make_context @@ -75,7 +75,7 @@ def fix(data, meta) do data |> CommonFixes.fix_actor() - |> Map.put_new("context", object["context"]) + |> Map.put("context", object["context"]) |> fix_addressing(object) end diff --git a/lib/pleroma/web/activity_pub/object_validators/delete_validator.ex b/lib/pleroma/web/activity_pub/object_validators/delete_validator.ex index 05f93da82..4d8502ada 100644 --- a/lib/pleroma/web/activity_pub/object_validators/delete_validator.ex +++ b/lib/pleroma/web/activity_pub/object_validators/delete_validator.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.ActivityPub.ObjectValidators.DeleteValidator do @@ -15,13 +15,15 @@ defmodule Pleroma.Web.ActivityPub.ObjectValidators.DeleteValidator do @primary_key false embedded_schema do - field(:id, ObjectValidators.ObjectID, primary_key: true) - field(:type, :string) - field(:actor, ObjectValidators.ObjectID) - field(:to, ObjectValidators.Recipients, default: []) - field(:cc, ObjectValidators.Recipients, default: []) + quote do + unquote do + import Elixir.Pleroma.Web.ActivityPub.ObjectValidators.CommonFields + message_fields() + activity_fields() + end + end + field(:deleted_activity_id, ObjectValidators.ObjectID) - field(:object, ObjectValidators.ObjectID) end def cast_data(data) do @@ -59,7 +61,7 @@ defp validate_data(cng) do |> validate_required([:id, :type, :actor, :to, :cc, :object]) |> validate_inclusion(:type, ["Delete"]) |> validate_delete_actor(:actor) - |> validate_modification_rights() + |> validate_modification_rights(:messages_delete) |> validate_object_or_user_presence(allowed_types: @deletable_types) |> add_deleted_activity_id() end diff --git a/lib/pleroma/web/activity_pub/object_validators/emoji_react_validator.ex b/lib/pleroma/web/activity_pub/object_validators/emoji_react_validator.ex index a18bd7540..0858281e5 100644 --- a/lib/pleroma/web/activity_pub/object_validators/emoji_react_validator.ex +++ b/lib/pleroma/web/activity_pub/object_validators/emoji_react_validator.ex @@ -1,11 +1,10 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.ActivityPub.ObjectValidators.EmojiReactValidator do use Ecto.Schema - alias Pleroma.EctoType.ActivityPub.ObjectValidators alias Pleroma.Object alias Pleroma.Web.ActivityPub.ObjectValidators.CommonFixes @@ -15,14 +14,16 @@ defmodule Pleroma.Web.ActivityPub.ObjectValidators.EmojiReactValidator do @primary_key false embedded_schema do - field(:id, ObjectValidators.ObjectID, primary_key: true) - field(:type, :string) - field(:object, ObjectValidators.ObjectID) - field(:actor, ObjectValidators.ObjectID) + quote do + unquote do + import Elixir.Pleroma.Web.ActivityPub.ObjectValidators.CommonFields + message_fields() + activity_fields() + end + end + field(:context, :string) field(:content, :string) - field(:to, ObjectValidators.Recipients, default: []) - field(:cc, ObjectValidators.Recipients, default: []) end def cast_and_validate(data) do @@ -48,6 +49,7 @@ def changeset(struct, data) do defp fix(data) do data = data + |> fix_emoji_qualification() |> CommonFixes.fix_actor() |> CommonFixes.fix_activity_addressing() @@ -60,6 +62,23 @@ defp fix(data) do end end + defp fix_emoji_qualification(%{"content" => emoji} = data) do + new_emoji = Pleroma.Emoji.fully_qualify_emoji(emoji) + + cond do + Pleroma.Emoji.is_unicode_emoji?(emoji) -> + data + + Pleroma.Emoji.is_unicode_emoji?(new_emoji) -> + data |> Map.put("content", new_emoji) + + true -> + data + end + end + + defp fix_emoji_qualification(data), do: data + defp validate_emoji(cng) do content = get_field(cng, :content) diff --git a/lib/pleroma/web/activity_pub/object_validators/event_validator.ex b/lib/pleroma/web/activity_pub/object_validators/event_validator.ex index fee2e997a..ab204f69a 100644 --- a/lib/pleroma/web/activity_pub/object_validators/event_validator.ex +++ b/lib/pleroma/web/activity_pub/object_validators/event_validator.ex @@ -1,15 +1,12 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.ActivityPub.ObjectValidators.EventValidator do use Ecto.Schema - alias Pleroma.EctoType.ActivityPub.ObjectValidators - alias Pleroma.Web.ActivityPub.ObjectValidators.AttachmentValidator alias Pleroma.Web.ActivityPub.ObjectValidators.CommonFixes alias Pleroma.Web.ActivityPub.ObjectValidators.CommonValidations - alias Pleroma.Web.ActivityPub.ObjectValidators.TagValidator alias Pleroma.Web.ActivityPub.Transmogrifier import Ecto.Changeset @@ -19,38 +16,14 @@ defmodule Pleroma.Web.ActivityPub.ObjectValidators.EventValidator do # Extends from NoteValidator embedded_schema do - field(:id, ObjectValidators.ObjectID, primary_key: true) - field(:to, ObjectValidators.Recipients, default: []) - field(:cc, ObjectValidators.Recipients, default: []) - field(:bto, ObjectValidators.Recipients, default: []) - field(:bcc, ObjectValidators.Recipients, default: []) - embeds_many(:tag, TagValidator) - field(:type, :string) - - field(:name, :string) - field(:summary, :string) - field(:content, :string) - - field(:context, :string) - # short identifier for PleromaFE to group statuses by context - field(:context_id, :integer) - - # TODO: Remove actor on objects - field(:actor, ObjectValidators.ObjectID) - - field(:attributedTo, ObjectValidators.ObjectID) - field(:published, ObjectValidators.DateTime) - field(:emoji, ObjectValidators.Emoji, default: %{}) - field(:sensitive, :boolean, default: false) - embeds_many(:attachment, AttachmentValidator) - field(:replies_count, :integer, default: 0) - field(:like_count, :integer, default: 0) - field(:announcement_count, :integer, default: 0) - field(:inReplyTo, ObjectValidators.ObjectID) - field(:url, ObjectValidators.Uri) - - field(:likes, {:array, ObjectValidators.ObjectID}, default: []) - field(:announcements, {:array, ObjectValidators.ObjectID}, default: []) + quote do + unquote do + import Elixir.Pleroma.Web.ActivityPub.ObjectValidators.CommonFields + message_fields() + object_fields() + status_object_fields() + end + end end def cast_and_apply(data) do @@ -89,7 +62,7 @@ def changeset(struct, data) do defp validate_data(data_cng) do data_cng |> validate_inclusion(:type, ["Event"]) - |> validate_required([:id, :actor, :attributedTo, :type, :context, :context_id]) + |> validate_required([:id, :actor, :attributedTo, :type, :context]) |> CommonValidations.validate_any_presence([:cc, :to]) |> CommonValidations.validate_fields_match([:actor, :attributedTo]) |> CommonValidations.validate_actor_presence() diff --git a/lib/pleroma/web/activity_pub/object_validators/follow_validator.ex b/lib/pleroma/web/activity_pub/object_validators/follow_validator.ex index 239cee5e7..b3ca5b691 100644 --- a/lib/pleroma/web/activity_pub/object_validators/follow_validator.ex +++ b/lib/pleroma/web/activity_pub/object_validators/follow_validator.ex @@ -1,24 +1,24 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.ActivityPub.ObjectValidators.FollowValidator do use Ecto.Schema - alias Pleroma.EctoType.ActivityPub.ObjectValidators - import Ecto.Changeset import Pleroma.Web.ActivityPub.ObjectValidators.CommonValidations @primary_key false embedded_schema do - field(:id, ObjectValidators.ObjectID, primary_key: true) - field(:type, :string) - field(:actor, ObjectValidators.ObjectID) - field(:to, ObjectValidators.Recipients, default: []) - field(:cc, ObjectValidators.Recipients, default: []) - field(:object, ObjectValidators.ObjectID) + quote do + unquote do + import Elixir.Pleroma.Web.ActivityPub.ObjectValidators.CommonFields + message_fields() + activity_fields() + end + end + field(:state, :string, default: "pending") end diff --git a/lib/pleroma/web/activity_pub/object_validators/like_validator.ex b/lib/pleroma/web/activity_pub/object_validators/like_validator.ex index 8b99c89b9..bdc4d7181 100644 --- a/lib/pleroma/web/activity_pub/object_validators/like_validator.ex +++ b/lib/pleroma/web/activity_pub/object_validators/like_validator.ex @@ -1,11 +1,10 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.ActivityPub.ObjectValidators.LikeValidator do use Ecto.Schema - alias Pleroma.EctoType.ActivityPub.ObjectValidators alias Pleroma.Object alias Pleroma.Web.ActivityPub.ObjectValidators.CommonFixes alias Pleroma.Web.ActivityPub.Utils @@ -16,13 +15,15 @@ defmodule Pleroma.Web.ActivityPub.ObjectValidators.LikeValidator do @primary_key false embedded_schema do - field(:id, ObjectValidators.ObjectID, primary_key: true) - field(:type, :string) - field(:object, ObjectValidators.ObjectID) - field(:actor, ObjectValidators.ObjectID) + quote do + unquote do + import Elixir.Pleroma.Web.ActivityPub.ObjectValidators.CommonFields + message_fields() + activity_fields() + end + end + field(:context, :string) - field(:to, ObjectValidators.Recipients, default: []) - field(:cc, ObjectValidators.Recipients, default: []) end def cast_and_validate(data) do diff --git a/lib/pleroma/web/activity_pub/object_validators/question_options_validator.ex b/lib/pleroma/web/activity_pub/object_validators/question_options_validator.ex index ddcd1be7c..541945fa4 100644 --- a/lib/pleroma/web/activity_pub/object_validators/question_options_validator.ex +++ b/lib/pleroma/web/activity_pub/object_validators/question_options_validator.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.ActivityPub.ObjectValidators.QuestionOptionsValidator do diff --git a/lib/pleroma/web/activity_pub/object_validators/question_validator.ex b/lib/pleroma/web/activity_pub/object_validators/question_validator.ex index 083d08ec4..ce3305142 100644 --- a/lib/pleroma/web/activity_pub/object_validators/question_validator.ex +++ b/lib/pleroma/web/activity_pub/object_validators/question_validator.ex @@ -1,16 +1,14 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.ActivityPub.ObjectValidators.QuestionValidator do use Ecto.Schema alias Pleroma.EctoType.ActivityPub.ObjectValidators - alias Pleroma.Web.ActivityPub.ObjectValidators.AttachmentValidator alias Pleroma.Web.ActivityPub.ObjectValidators.CommonFixes alias Pleroma.Web.ActivityPub.ObjectValidators.CommonValidations alias Pleroma.Web.ActivityPub.ObjectValidators.QuestionOptionsValidator - alias Pleroma.Web.ActivityPub.ObjectValidators.TagValidator alias Pleroma.Web.ActivityPub.Transmogrifier import Ecto.Changeset @@ -20,35 +18,14 @@ defmodule Pleroma.Web.ActivityPub.ObjectValidators.QuestionValidator do # Extends from NoteValidator embedded_schema do - field(:id, ObjectValidators.ObjectID, primary_key: true) - field(:to, ObjectValidators.Recipients, default: []) - field(:cc, ObjectValidators.Recipients, default: []) - field(:bto, ObjectValidators.Recipients, default: []) - field(:bcc, ObjectValidators.Recipients, default: []) - embeds_many(:tag, TagValidator) - field(:type, :string) - field(:content, :string) - field(:context, :string) - - # TODO: Remove actor on objects - field(:actor, ObjectValidators.ObjectID) - - field(:attributedTo, ObjectValidators.ObjectID) - field(:summary, :string) - field(:published, ObjectValidators.DateTime) - field(:emoji, ObjectValidators.Emoji, default: %{}) - field(:sensitive, :boolean, default: false) - embeds_many(:attachment, AttachmentValidator) - field(:replies_count, :integer, default: 0) - field(:like_count, :integer, default: 0) - field(:announcement_count, :integer, default: 0) - field(:inReplyTo, ObjectValidators.ObjectID) - field(:url, ObjectValidators.Uri) - # short identifier for PleromaFE to group statuses by context - field(:context_id, :integer) - - field(:likes, {:array, ObjectValidators.ObjectID}, default: []) - field(:announcements, {:array, ObjectValidators.ObjectID}, default: []) + quote do + unquote do + import Elixir.Pleroma.Web.ActivityPub.ObjectValidators.CommonFields + message_fields() + object_fields() + status_object_fields() + end + end field(:closed, ObjectValidators.DateTime) field(:voters, {:array, ObjectValidators.ObjectID}, default: []) @@ -103,7 +80,7 @@ def changeset(struct, data) do defp validate_data(data_cng) do data_cng |> validate_inclusion(:type, ["Question"]) - |> validate_required([:id, :actor, :attributedTo, :type, :context, :context_id]) + |> validate_required([:id, :actor, :attributedTo, :type, :context]) |> CommonValidations.validate_any_presence([:cc, :to]) |> CommonValidations.validate_fields_match([:actor, :attributedTo]) |> CommonValidations.validate_actor_presence() diff --git a/lib/pleroma/web/activity_pub/object_validators/tag_validator.ex b/lib/pleroma/web/activity_pub/object_validators/tag_validator.ex index 751021585..9f15f1981 100644 --- a/lib/pleroma/web/activity_pub/object_validators/tag_validator.ex +++ b/lib/pleroma/web/activity_pub/object_validators/tag_validator.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.ActivityPub.ObjectValidators.TagValidator do diff --git a/lib/pleroma/web/activity_pub/object_validators/undo_validator.ex b/lib/pleroma/web/activity_pub/object_validators/undo_validator.ex index 6ff648c84..f03051491 100644 --- a/lib/pleroma/web/activity_pub/object_validators/undo_validator.ex +++ b/lib/pleroma/web/activity_pub/object_validators/undo_validator.ex @@ -1,12 +1,11 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.ActivityPub.ObjectValidators.UndoValidator do use Ecto.Schema alias Pleroma.Activity - alias Pleroma.EctoType.ActivityPub.ObjectValidators alias Pleroma.User import Ecto.Changeset @@ -15,12 +14,13 @@ defmodule Pleroma.Web.ActivityPub.ObjectValidators.UndoValidator do @primary_key false embedded_schema do - field(:id, ObjectValidators.ObjectID, primary_key: true) - field(:type, :string) - field(:object, ObjectValidators.ObjectID) - field(:actor, ObjectValidators.ObjectID) - field(:to, ObjectValidators.Recipients, default: []) - field(:cc, ObjectValidators.Recipients, default: []) + quote do + unquote do + import Elixir.Pleroma.Web.ActivityPub.ObjectValidators.CommonFields + message_fields() + activity_fields() + end + end end def cast_and_validate(data) do diff --git a/lib/pleroma/web/activity_pub/object_validators/update_validator.ex b/lib/pleroma/web/activity_pub/object_validators/update_validator.ex index 6bb1dc7fa..1e940a400 100644 --- a/lib/pleroma/web/activity_pub/object_validators/update_validator.ex +++ b/lib/pleroma/web/activity_pub/object_validators/update_validator.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.ActivityPub.ObjectValidators.UpdateValidator do @@ -13,11 +13,14 @@ defmodule Pleroma.Web.ActivityPub.ObjectValidators.UpdateValidator do @primary_key false embedded_schema do - field(:id, ObjectValidators.ObjectID, primary_key: true) - field(:type, :string) + quote do + unquote do + import Elixir.Pleroma.Web.ActivityPub.ObjectValidators.CommonFields + message_fields() + end + end + field(:actor, ObjectValidators.ObjectID) - field(:to, ObjectValidators.Recipients, default: []) - field(:cc, ObjectValidators.Recipients, default: []) # In this case, we save the full object in this activity instead of just a # reference, so we can always see what was actually changed by this. field(:object, :map) @@ -48,7 +51,9 @@ def validate_updating_rights(cng) do with actor = get_field(cng, :actor), object = get_field(cng, :object), {:ok, object_id} <- ObjectValidators.ObjectID.cast(object), - true <- actor == object_id do + actor_uri <- URI.parse(actor), + object_uri <- URI.parse(object_id), + true <- actor_uri.host == object_uri.host do cng else _e -> diff --git a/lib/pleroma/web/activity_pub/pipeline.ex b/lib/pleroma/web/activity_pub/pipeline.ex index 0d6e8aad2..ca8653ab1 100644 --- a/lib/pleroma/web/activity_pub/pipeline.ex +++ b/lib/pleroma/web/activity_pub/pipeline.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.ActivityPub.Pipeline do diff --git a/lib/pleroma/web/activity_pub/publisher.ex b/lib/pleroma/web/activity_pub/publisher.ex index c8cdd429e..6c1ba76a3 100644 --- a/lib/pleroma/web/activity_pub/publisher.ex +++ b/lib/pleroma/web/activity_pub/publisher.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.ActivityPub.Publisher do @@ -111,6 +111,7 @@ defp should_federate?(inbox, public) do quarantined_instances = Config.get([:instance, :quarantined_instances], []) + |> Pleroma.Web.ActivityPub.MRF.instance_list_from_tuples() |> Pleroma.Web.ActivityPub.MRF.subdomains_regex() !Pleroma.Web.ActivityPub.MRF.subdomain_match?(quarantined_instances, host) diff --git a/lib/pleroma/web/activity_pub/relay.ex b/lib/pleroma/web/activity_pub/relay.ex index 6d60a074f..2010351d1 100644 --- a/lib/pleroma/web/activity_pub/relay.ex +++ b/lib/pleroma/web/activity_pub/relay.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.ActivityPub.Relay do diff --git a/lib/pleroma/web/activity_pub/side_effects.ex b/lib/pleroma/web/activity_pub/side_effects.ex index b82a89896..a2152b945 100644 --- a/lib/pleroma/web/activity_pub/side_effects.ex +++ b/lib/pleroma/web/activity_pub/side_effects.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.ActivityPub.SideEffects do @@ -23,7 +23,9 @@ defmodule Pleroma.Web.ActivityPub.SideEffects do alias Pleroma.Web.ActivityPub.Utils alias Pleroma.Web.Push alias Pleroma.Web.Streamer + alias Pleroma.Workers.PollWorker + require Pleroma.Constants require Logger @cachex Pleroma.Config.get([:cachex, :provider], Cachex) @@ -152,23 +154,26 @@ def handle( # Tasks this handles: # - Update the user + # - Update a non-user object (Note, Question, etc.) # # For a local user, we also get a changeset with the full information, so we # can update non-federating, non-activitypub settings as well. @impl true def handle(%{data: %{"type" => "Update", "object" => updated_object}} = object, meta) do - if changeset = Keyword.get(meta, :user_update_changeset) do - changeset - |> User.update_and_set_cache() + updated_object_id = updated_object["id"] + + with {_, true} <- {:has_id, is_binary(updated_object_id)}, + %{"type" => type} <- updated_object, + {_, is_user} <- {:is_user, type in Pleroma.Constants.actor_types()} do + if is_user do + handle_update_user(object, meta) + else + handle_update_object(object, meta) + end else - {:ok, new_user_data} = ActivityPub.user_data_from_user_object(updated_object) - - User.get_by_ap_id(updated_object["id"]) - |> User.remote_user_changeset(new_user_data) - |> User.update_and_set_cache() + _ -> + {:ok, object, meta} end - - {:ok, object, meta} end # Tasks this handles: @@ -194,12 +199,13 @@ def handle(%{data: %{"type" => "Like"}} = object, meta) do # - Set up notifications @impl true def handle(%{data: %{"type" => "Create"}} = activity, meta) do - with {:ok, object, meta} <- handle_object_creation(meta[:object_data], meta), + with {:ok, object, meta} <- handle_object_creation(meta[:object_data], activity, meta), %User{} = user <- User.get_cached_by_ap_id(activity.data["actor"]) do {:ok, notifications} = Notification.create_notifications(activity, do_send: false) {:ok, _user} = ActivityPub.increase_note_count_if_public(user, object) + {:ok, _user} = ActivityPub.update_last_status_at_if_public(user, object) - if in_reply_to = object.data["inReplyTo"] && object.data["type"] != "Answer" do + if in_reply_to = object.data["type"] != "Answer" && object.data["inReplyTo"] do Object.increase_replies_count(in_reply_to) end @@ -276,7 +282,6 @@ def handle(%{data: %{"type" => "EmojiReact"}} = object, meta) do # Tasks this handles: # - Delete and unpins the create activity # - Replace object with Tombstone - # - Set up notification # - Reduce the user note count # - Reduce the reply count # - Stream out the activity @@ -318,7 +323,6 @@ def handle(%{data: %{"type" => "Delete", "object" => deleted_object}} = object, end if result == :ok do - Notification.create_notifications(object) {:ok, object, meta} else {:error, result} @@ -388,7 +392,80 @@ def handle(object, meta) do {:ok, object, meta} end - def handle_object_creation(%{"type" => "ChatMessage"} = object, meta) do + defp handle_update_user( + %{data: %{"type" => "Update", "object" => updated_object}} = object, + meta + ) do + if changeset = Keyword.get(meta, :user_update_changeset) do + changeset + |> User.update_and_set_cache() + else + {:ok, new_user_data} = ActivityPub.user_data_from_user_object(updated_object) + + User.get_by_ap_id(updated_object["id"]) + |> User.remote_user_changeset(new_user_data) + |> User.update_and_set_cache() + end + + {:ok, object, meta} + end + + defp handle_update_object( + %{data: %{"type" => "Update", "object" => updated_object}} = object, + meta + ) do + orig_object_ap_id = updated_object["id"] + orig_object = Object.get_by_ap_id(orig_object_ap_id) + orig_object_data = orig_object.data + + updated_object = + if meta[:local] do + # If this is a local Update, we don't process it by transmogrifier, + # so we use the embedded object as-is. + updated_object + else + meta[:object_data] + end + + if orig_object_data["type"] in Pleroma.Constants.updatable_object_types() do + %{ + updated_data: updated_object_data, + updated: updated, + used_history_in_new_object?: used_history_in_new_object? + } = Object.Updater.make_new_object_data_from_update_object(orig_object_data, updated_object) + + changeset = + orig_object + |> Repo.preload(:hashtags) + |> Object.change(%{data: updated_object_data}) + + with {:ok, new_object} <- Repo.update(changeset), + {:ok, _} <- Object.invalid_object_cache(new_object), + {:ok, _} <- Object.set_cache(new_object), + # The metadata/utils.ex uses the object id for the cache. + {:ok, _} <- Pleroma.Activity.HTML.invalidate_cache_for(new_object.id) do + if used_history_in_new_object? do + with create_activity when not is_nil(create_activity) <- + Pleroma.Activity.get_create_by_object_ap_id(orig_object_ap_id), + {:ok, _} <- Pleroma.Activity.HTML.invalidate_cache_for(create_activity.id) do + nil + else + _ -> nil + end + end + + if updated do + object + |> Activity.normalize() + |> ActivityPub.notify_and_stream() + end + end + end + + {:ok, object, meta} + end + + def handle_object_creation(%{"type" => "ChatMessage"} = object, _activity, meta) do with {:ok, object, meta} <- Pipeline.common_pipeline(object, meta) do actor = User.get_cached_by_ap_id(object.data["actor"]) recipient = User.get_cached_by_ap_id(hd(object.data["to"])) @@ -423,7 +500,14 @@ def handle_object_creation(%{"type" => "ChatMessage"} = object, meta) do end end - def handle_object_creation(%{"type" => "Answer"} = object_map, meta) do + def handle_object_creation(%{"type" => "Question"} = object, activity, meta) do + with {:ok, object, meta} <- Pipeline.common_pipeline(object, meta) do + PollWorker.schedule_poll_end(activity) + {:ok, object, meta} + end + end + + def handle_object_creation(%{"type" => "Answer"} = object_map, _activity, meta) do with {:ok, object, meta} <- Pipeline.common_pipeline(object_map, meta) do Object.increase_vote_count( object.data["inReplyTo"], @@ -435,15 +519,15 @@ def handle_object_creation(%{"type" => "Answer"} = object_map, meta) do end end - def handle_object_creation(%{"type" => objtype} = object, meta) - when objtype in ~w[Audio Video Question Event Article Note Page] do + def handle_object_creation(%{"type" => objtype} = object, _activity, meta) + when objtype in ~w[Audio Video Event Article Note Page] do with {:ok, object, meta} <- Pipeline.common_pipeline(object, meta) do {:ok, object, meta} end end # Nothing to do - def handle_object_creation(object, meta) do + def handle_object_creation(object, _activity, meta) do {:ok, object, meta} end diff --git a/lib/pleroma/web/activity_pub/side_effects/handling.ex b/lib/pleroma/web/activity_pub/side_effects/handling.ex index a82305155..eb012f576 100644 --- a/lib/pleroma/web/activity_pub/side_effects/handling.ex +++ b/lib/pleroma/web/activity_pub/side_effects/handling.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.ActivityPub.SideEffects.Handling do diff --git a/lib/pleroma/web/activity_pub/transmogrifier.ex b/lib/pleroma/web/activity_pub/transmogrifier.ex index 5766489be..e4c04da0d 100644 --- a/lib/pleroma/web/activity_pub/transmogrifier.ex +++ b/lib/pleroma/web/activity_pub/transmogrifier.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.ActivityPub.Transmogrifier do @@ -687,6 +687,24 @@ def prepare_object(object) do |> strip_internal_fields |> strip_internal_tags |> set_type + |> maybe_process_history + end + + defp maybe_process_history(%{"formerRepresentations" => %{"orderedItems" => history}} = object) do + processed_history = + Enum.map( + history, + fn + item when is_map(item) -> prepare_object(item) + item -> item + end + ) + + put_in(object, ["formerRepresentations", "orderedItems"], processed_history) + end + + defp maybe_process_history(object) do + object end # @doc @@ -711,6 +729,21 @@ def prepare_outgoing(%{"type" => activity_type, "object" => object_id} = data) {:ok, data} end + def prepare_outgoing(%{"type" => "Update", "object" => %{"type" => objtype} = object} = data) + when objtype in Pleroma.Constants.updatable_object_types() do + object = + object + |> prepare_object + + data = + data + |> Map.put("object", object) + |> Map.merge(Utils.make_json_ld_header()) + |> Map.delete("bcc") + + {:ok, data} + end + def prepare_outgoing(%{"type" => "Announce", "actor" => ap_id, "object" => object_id} = data) do object = object_id diff --git a/lib/pleroma/web/activity_pub/utils.ex b/lib/pleroma/web/activity_pub/utils.ex index 1df53f79a..b898d6fe8 100644 --- a/lib/pleroma/web/activity_pub/utils.ex +++ b/lib/pleroma/web/activity_pub/utils.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.ActivityPub.Utils do @@ -154,22 +154,7 @@ def get_notified_from_object(object) do Notification.get_notified_from_activity(%Activity{data: object}, false) end - def create_context(context) do - context = context || generate_id("contexts") - - # Ecto has problems accessing the constraint inside the jsonb, - # so we explicitly check for the existed object before insert - object = Object.get_cached_by_ap_id(context) - - with true <- is_nil(object), - changeset <- Object.context_mapping(context), - {:ok, inserted_object} <- Repo.insert(changeset) do - inserted_object - else - _ -> - object - end - end + def maybe_create_context(context), do: context || generate_id("contexts") @doc """ Enqueues an activity for federation if it's local @@ -201,18 +186,16 @@ def lazy_put_activity_defaults(map, true) do |> Map.put_new("id", "pleroma:fakeid") |> Map.put_new_lazy("published", &make_date/0) |> Map.put_new("context", "pleroma:fakecontext") - |> Map.put_new("context_id", -1) |> lazy_put_object_defaults(true) end def lazy_put_activity_defaults(map, _fake?) do - %{data: %{"id" => context}, id: context_id} = create_context(map["context"]) + context = maybe_create_context(map["context"]) map |> Map.put_new_lazy("id", &generate_activity_id/0) |> Map.put_new_lazy("published", &make_date/0) |> Map.put_new("context", context) - |> Map.put_new("context_id", context_id) |> lazy_put_object_defaults(false) end @@ -226,7 +209,6 @@ defp lazy_put_object_defaults(%{"object" => map} = activity, true) |> Map.put_new("id", "pleroma:fake_object_id") |> Map.put_new_lazy("published", &make_date/0) |> Map.put_new("context", activity["context"]) - |> Map.put_new("context_id", activity["context_id"]) |> Map.put_new("fake", true) %{activity | "object" => object} @@ -239,7 +221,6 @@ defp lazy_put_object_defaults(%{"object" => map} = activity, _) |> Map.put_new_lazy("id", &generate_object_id/0) |> Map.put_new_lazy("published", &make_date/0) |> Map.put_new("context", activity["context"]) - |> Map.put_new("context_id", activity["context_id"]) %{activity | "object" => object} end @@ -446,7 +427,7 @@ def update_follow_state_for_all( |> Activity.Queries.by_type() |> Activity.Queries.by_actor(actor) |> Activity.Queries.by_object_id(object) - |> where(fragment("data->>'state' = 'pending'")) + |> where(fragment("data->>'state' = 'pending'") or fragment("data->>'state' = 'accept'")) |> update(set: [data: fragment("jsonb_set(data, '{state}', ?)", ^state)]) |> Repo.update_all([]) @@ -714,20 +695,24 @@ defp build_flag_object(%{statuses: statuses}) do Enum.map(statuses || [], &build_flag_object/1) end - defp build_flag_object(%Activity{data: %{"id" => id}, object: %{data: data}}) do - activity_actor = User.get_by_ap_id(data["actor"]) + defp build_flag_object(%Activity{} = activity) do + object = Object.normalize(activity, fetch: false) - %{ - "type" => "Note", - "id" => id, - "content" => data["content"], - "published" => data["published"], - "actor" => - AccountView.render( - "show.json", - %{user: activity_actor, skip_visibility_check: true} - ) - } + # Do not allow people to report Creates. Instead, report the Object that is Created. + if activity.data["type"] != "Create" do + build_flag_object_with_actor_and_id( + object, + User.get_by_ap_id(activity.data["actor"]), + activity.data["id"] + ) + else + build_flag_object(object) + end + end + + defp build_flag_object(%Object{} = object) do + actor = User.get_by_ap_id(object.data["actor"]) + build_flag_object_with_actor_and_id(object, actor, object.data["id"]) end defp build_flag_object(act) when is_map(act) or is_binary(act) do @@ -739,12 +724,12 @@ defp build_flag_object(act) when is_map(act) or is_binary(act) do end case Activity.get_by_ap_id_with_object(id) do - %Activity{} = activity -> - build_flag_object(activity) + %Activity{object: object} = _ -> + build_flag_object(object) nil -> - if activity = Activity.get_by_object_ap_id_with_object(id) do - build_flag_object(activity) + if %Object{} = object = Object.get_by_ap_id(id) do + build_flag_object(object) else %{"id" => id, "deleted" => true} end @@ -753,6 +738,20 @@ defp build_flag_object(act) when is_map(act) or is_binary(act) do defp build_flag_object(_), do: [] + defp build_flag_object_with_actor_and_id(%Object{data: data}, actor, id) do + %{ + "type" => "Note", + "id" => id, + "content" => data["content"], + "published" => data["published"], + "actor" => + AccountView.render( + "show.json", + %{user: actor, skip_visibility_check: true} + ) + } + end + #### Report-related helpers def get_reports(params, page, page_size) do params = @@ -767,22 +766,21 @@ def get_reports(params, page, page_size) do ActivityPub.fetch_activities([], params, :offset) end - def update_report_state(%Activity{} = activity, state) - when state in @strip_status_report_states do - {:ok, stripped_activity} = strip_report_status_data(activity) - - new_data = - activity.data - |> Map.put("state", state) - |> Map.put("object", stripped_activity.data["object"]) - - activity - |> Changeset.change(data: new_data) - |> Repo.update() + defp maybe_strip_report_status(data, state) do + with true <- Config.get([:instance, :report_strip_status]), + true <- state in @strip_status_report_states, + {:ok, stripped_activity} = strip_report_status_data(%Activity{data: data}) do + data |> Map.put("object", stripped_activity.data["object"]) + else + _ -> data + end end def update_report_state(%Activity{} = activity, state) when state in @supported_report_states do - new_data = Map.put(activity.data, "state", state) + new_data = + activity.data + |> Map.put("state", state) + |> maybe_strip_report_status(state) activity |> Changeset.change(data: new_data) diff --git a/lib/pleroma/web/activity_pub/views/object_view.ex b/lib/pleroma/web/activity_pub/views/object_view.ex index 8a3e4d77b..63caa915c 100644 --- a/lib/pleroma/web/activity_pub/views/object_view.ex +++ b/lib/pleroma/web/activity_pub/views/object_view.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.ActivityPub.ObjectView do @@ -29,11 +29,11 @@ def render("object.json", %{object: %Activity{data: %{"type" => activity_type}} def render("object.json", %{object: %Activity{} = activity}) do base = Pleroma.Web.ActivityPub.Utils.make_json_ld_header() - object = Object.normalize(activity, fetch: false) + object_id = Object.normalize(activity, id_only: true) additional = Transmogrifier.prepare_object(activity.data) - |> Map.put("object", object.data["id"]) + |> Map.put("object", object_id) Map.merge(base, additional) end diff --git a/lib/pleroma/web/activity_pub/views/user_view.ex b/lib/pleroma/web/activity_pub/views/user_view.ex index 344da19d3..f69fca075 100644 --- a/lib/pleroma/web/activity_pub/views/user_view.ex +++ b/lib/pleroma/web/activity_pub/views/user_view.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.ActivityPub.UserView do @@ -34,7 +34,6 @@ def render("endpoints.json", %{user: %User{local: true} = _user}) do def render("endpoints.json", _), do: %{} def render("service.json", %{user: user}) do - {:ok, user} = User.ensure_keys_present(user) {:ok, _, public_key} = Keys.keys_from_pem(user.keys) public_key = :public_key.pem_entry_encode(:SubjectPublicKeyInfo, public_key) public_key = :public_key.pem_encode([public_key]) @@ -71,7 +70,6 @@ def render("user.json", %{user: %User{nickname: "internal." <> _} = user}), do: render("service.json", %{user: user}) |> Map.put("preferredUsername", user.nickname) def render("user.json", %{user: user}) do - {:ok, user} = User.ensure_keys_present(user) {:ok, _, public_key} = Keys.keys_from_pem(user.keys) public_key = :public_key.pem_entry_encode(:SubjectPublicKeyInfo, public_key) public_key = :public_key.pem_encode([public_key]) @@ -92,6 +90,11 @@ def render("user.json", %{user: user}) do %{} end + birthday = + if user.show_birthday && user.birthday, + do: Date.to_iso8601(user.birthday), + else: nil + %{ "id" => user.ap_id, "type" => user.actor_type, @@ -116,7 +119,8 @@ def render("user.json", %{user: user}) do # Note: key name is indeed "discoverable" (not an error) "discoverable" => user.is_discoverable, "capabilities" => capabilities, - "alsoKnownAs" => user.also_known_as + "alsoKnownAs" => user.also_known_as, + "vcard:bday" => birthday } |> Map.merge(maybe_make_image(&User.avatar_url/2, "icon", user)) |> Map.merge(maybe_make_image(&User.banner_url/2, "image", user)) diff --git a/lib/pleroma/web/activity_pub/visibility.ex b/lib/pleroma/web/activity_pub/visibility.ex index 986fa3a08..7c57f88f9 100644 --- a/lib/pleroma/web/activity_pub/visibility.ex +++ b/lib/pleroma/web/activity_pub/visibility.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.ActivityPub.Visibility do @@ -84,7 +84,10 @@ def visible_for_user?(%{__struct__: module} = message, user) when module in [Activity, Object] do x = [user.ap_id | User.following(user)] y = [message.data["actor"]] ++ message.data["to"] ++ (message.data["cc"] || []) - is_public?(message) || Enum.any?(x, &(&1 in y)) + + user_is_local = user.local + federatable = not is_local_public?(message) + (is_public?(message) || Enum.any?(x, &(&1 in y))) and (user_is_local || federatable) end def entire_thread_visible_for_user?(%Activity{} = activity, %User{} = user) do diff --git a/lib/pleroma/web/admin_api/controllers/admin_api_controller.ex b/lib/pleroma/web/admin_api/controllers/admin_api_controller.ex index 839ac1a8d..1894000ff 100644 --- a/lib/pleroma/web/admin_api/controllers/admin_api_controller.ex +++ b/lib/pleroma/web/admin_api/controllers/admin_api_controller.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.AdminAPI.AdminAPIController do @@ -49,7 +49,7 @@ defmodule Pleroma.Web.AdminAPI.AdminAPIController do plug( OAuthScopesPlug, %{scopes: ["admin:read:statuses"]} - when action in [:list_user_statuses, :list_instance_statuses] + when action in [:list_user_statuses] ) plug( @@ -81,24 +81,6 @@ defmodule Pleroma.Web.AdminAPI.AdminAPIController do action_fallback(AdminAPI.FallbackController) - def list_instance_statuses(conn, %{"instance" => instance} = params) do - with_reblogs = params["with_reblogs"] == "true" || params["with_reblogs"] == true - {page, page_size} = page_params(params) - - result = - ActivityPub.fetch_statuses(nil, %{ - instance: instance, - limit: page_size, - offset: (page - 1) * page_size, - exclude_reblogs: not with_reblogs, - total: true - }) - - conn - |> put_view(AdminAPI.StatusView) - |> render("index.json", %{total: result[:total], activities: result[:items], as: :activity}) - end - def list_user_statuses(%{assigns: %{user: admin}} = conn, %{"nickname" => nickname} = params) do with_reblogs = params["with_reblogs"] == "true" || params["with_reblogs"] == true godmode = params["godmode"] == "true" || params["godmode"] == true diff --git a/lib/pleroma/web/admin_api/controllers/announcement_controller.ex b/lib/pleroma/web/admin_api/controllers/announcement_controller.ex new file mode 100644 index 000000000..6ad5fc12c --- /dev/null +++ b/lib/pleroma/web/admin_api/controllers/announcement_controller.ex @@ -0,0 +1,83 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2022 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + +defmodule Pleroma.Web.AdminAPI.AnnouncementController do + use Pleroma.Web, :controller + + alias Pleroma.Announcement + alias Pleroma.Web.ControllerHelper + alias Pleroma.Web.Plugs.OAuthScopesPlug + + plug(Pleroma.Web.ApiSpec.CastAndValidate) + plug(OAuthScopesPlug, %{scopes: ["admin:write"]} when action in [:create, :delete, :change]) + plug(OAuthScopesPlug, %{scopes: ["admin:read"]} when action in [:index, :show]) + action_fallback(Pleroma.Web.AdminAPI.FallbackController) + + defdelegate open_api_operation(action), to: Pleroma.Web.ApiSpec.Admin.AnnouncementOperation + + defp default_limit, do: 20 + + def index(conn, params) do + limit = Map.get(params, :limit, default_limit()) + offset = Map.get(params, :offset, 0) + + announcements = Announcement.list_paginated(%{limit: limit, offset: offset}) + + render(conn, "index.json", announcements: announcements) + end + + def show(conn, %{id: id} = _params) do + announcement = Announcement.get_by_id(id) + + if is_nil(announcement) do + {:error, :not_found} + else + render(conn, "show.json", announcement: announcement) + end + end + + def create(%{body_params: params} = conn, _params) do + with {:ok, announcement} <- Announcement.add(change_params(params)) do + render(conn, "show.json", announcement: announcement) + else + _ -> + {:error, 400} + end + end + + def change_params(orig_params) do + data = + %{} + |> Pleroma.Maps.put_if_present("content", orig_params, &Map.fetch(&1, :content)) + |> Pleroma.Maps.put_if_present("all_day", orig_params, &Map.fetch(&1, :all_day)) + + orig_params + |> Map.merge(%{data: data}) + end + + def change(%{body_params: params} = conn, %{id: id} = _params) do + with announcement <- Announcement.get_by_id(id), + {:exists, true} <- {:exists, not is_nil(announcement)}, + {:ok, announcement} <- Announcement.update(announcement, change_params(params)) do + render(conn, "show.json", announcement: announcement) + else + {:exists, false} -> + {:error, :not_found} + + _ -> + {:error, 400} + end + end + + def delete(conn, %{id: id} = _params) do + case Announcement.delete_by_id(id) do + :ok -> + conn + |> ControllerHelper.json_response(:ok, %{}) + + _ -> + {:error, :not_found} + end + end +end diff --git a/lib/pleroma/web/admin_api/controllers/chat_controller.ex b/lib/pleroma/web/admin_api/controllers/chat_controller.ex index ff20c8604..298543fcf 100644 --- a/lib/pleroma/web/admin_api/controllers/chat_controller.ex +++ b/lib/pleroma/web/admin_api/controllers/chat_controller.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.AdminAPI.ChatController do @@ -8,7 +8,6 @@ defmodule Pleroma.Web.AdminAPI.ChatController do alias Pleroma.Activity alias Pleroma.Chat alias Pleroma.Chat.MessageReference - alias Pleroma.ModerationLog alias Pleroma.Pagination alias Pleroma.Web.AdminAPI alias Pleroma.Web.CommonAPI @@ -42,12 +41,6 @@ def delete_message(%{assigns: %{user: user}} = conn, %{ ^chat_id <- to_string(cm_ref.chat_id), %Activity{id: activity_id} <- Activity.get_create_by_object_ap_id(object_ap_id), {:ok, _} <- CommonAPI.delete(activity_id, user) do - ModerationLog.insert_log(%{ - action: "chat_message_delete", - actor: user, - subject_id: message_id - }) - conn |> put_view(MessageReferenceView) |> render("show.json", chat_message_reference: cm_ref) diff --git a/lib/pleroma/web/admin_api/controllers/config_controller.ex b/lib/pleroma/web/admin_api/controllers/config_controller.ex index a718d7b8d..a03318c0e 100644 --- a/lib/pleroma/web/admin_api/controllers/config_controller.ex +++ b/lib/pleroma/web/admin_api/controllers/config_controller.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.AdminAPI.ConfigController do @@ -22,10 +22,58 @@ defmodule Pleroma.Web.AdminAPI.ConfigController do defdelegate open_api_operation(action), to: Pleroma.Web.ApiSpec.Admin.ConfigOperation + defp translate_descriptions(descriptions, path \\ []) do + Enum.map(descriptions, fn desc -> translate_item(desc, path) end) + end + + defp translate_string(str, path, type) do + Gettext.dpgettext( + Pleroma.Web.Gettext, + "config_descriptions", + Pleroma.Docs.Translator.Compiler.msgctxt_for(path, type), + str + ) + end + + defp maybe_put_translated(item, key, path) do + if item[key] do + Map.put( + item, + key, + translate_string( + item[key], + path ++ [Pleroma.Docs.Translator.Compiler.key_for(item)], + to_string(key) + ) + ) + else + item + end + end + + defp translate_item(item, path) do + item + |> maybe_put_translated(:label, path) + |> maybe_put_translated(:description, path) + |> translate_children(path) + end + + defp translate_children(%{children: children} = item, path) when is_list(children) do + item + |> Map.put( + :children, + translate_descriptions(children, path ++ [Pleroma.Docs.Translator.Compiler.key_for(item)]) + ) + end + + defp translate_children(item, _path) do + item + end + def descriptions(conn, _params) do descriptions = Enum.filter(Pleroma.Docs.JSON.compiled_descriptions(), &whitelisted_config?/1) - json(conn, descriptions) + json(conn, translate_descriptions(descriptions)) end def show(conn, %{only_db: true}) do diff --git a/lib/pleroma/web/admin_api/controllers/fallback_controller.ex b/lib/pleroma/web/admin_api/controllers/fallback_controller.ex index 45d8815b5..e72f45c21 100644 --- a/lib/pleroma/web/admin_api/controllers/fallback_controller.ex +++ b/lib/pleroma/web/admin_api/controllers/fallback_controller.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.AdminAPI.FallbackController do diff --git a/lib/pleroma/web/admin_api/controllers/frontend_controller.ex b/lib/pleroma/web/admin_api/controllers/frontend_controller.ex index 442e6a5a0..b4dbb82fe 100644 --- a/lib/pleroma/web/admin_api/controllers/frontend_controller.ex +++ b/lib/pleroma/web/admin_api/controllers/frontend_controller.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.AdminAPI.FrontendController do diff --git a/lib/pleroma/web/admin_api/controllers/instance_controller.ex b/lib/pleroma/web/admin_api/controllers/instance_controller.ex new file mode 100644 index 000000000..117a72280 --- /dev/null +++ b/lib/pleroma/web/admin_api/controllers/instance_controller.ex @@ -0,0 +1,63 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2022 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + +defmodule Pleroma.Web.AdminAPI.InstanceController do + use Pleroma.Web, :controller + + import Pleroma.Web.ControllerHelper, only: [fetch_integer_param: 3] + + alias Pleroma.Instances.Instance + alias Pleroma.Web.ActivityPub.ActivityPub + alias Pleroma.Web.AdminAPI + alias Pleroma.Web.Plugs.OAuthScopesPlug + + require Logger + + @default_page_size 50 + + plug( + OAuthScopesPlug, + %{scopes: ["admin:read:statuses"]} + when action in [:list_statuses] + ) + + plug( + OAuthScopesPlug, + %{scopes: ["admin:write:accounts", "admin:write:statuses"]} + when action in [:delete] + ) + + action_fallback(AdminAPI.FallbackController) + + def list_statuses(conn, %{"instance" => instance} = params) do + with_reblogs = params["with_reblogs"] == "true" || params["with_reblogs"] == true + {page, page_size} = page_params(params) + + result = + ActivityPub.fetch_statuses(nil, %{ + instance: instance, + limit: page_size, + offset: (page - 1) * page_size, + exclude_reblogs: not with_reblogs, + total: true + }) + + conn + |> put_view(AdminAPI.StatusView) + |> render("index.json", %{total: result[:total], activities: result[:items], as: :activity}) + end + + def delete(conn, %{"instance" => instance}) do + with {:ok, _job} <- Instance.delete_users_and_activities(instance) do + json(conn, instance) + end + end + + defp page_params(params) do + { + fetch_integer_param(params, "page", 1), + fetch_integer_param(params, "page_size", @default_page_size) + } + end +end diff --git a/lib/pleroma/web/admin_api/controllers/instance_document_controller.ex b/lib/pleroma/web/admin_api/controllers/instance_document_controller.ex index a55857a0e..990a94313 100644 --- a/lib/pleroma/web/admin_api/controllers/instance_document_controller.ex +++ b/lib/pleroma/web/admin_api/controllers/instance_document_controller.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.AdminAPI.InstanceDocumentController do diff --git a/lib/pleroma/web/admin_api/controllers/invite_controller.ex b/lib/pleroma/web/admin_api/controllers/invite_controller.ex index 727ebd846..c5d759bb5 100644 --- a/lib/pleroma/web/admin_api/controllers/invite_controller.ex +++ b/lib/pleroma/web/admin_api/controllers/invite_controller.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.AdminAPI.InviteController do diff --git a/lib/pleroma/web/admin_api/controllers/media_proxy_cache_controller.ex b/lib/pleroma/web/admin_api/controllers/media_proxy_cache_controller.ex index a6d7aaf54..4d53f5451 100644 --- a/lib/pleroma/web/admin_api/controllers/media_proxy_cache_controller.ex +++ b/lib/pleroma/web/admin_api/controllers/media_proxy_cache_controller.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.AdminAPI.MediaProxyCacheController do diff --git a/lib/pleroma/web/admin_api/controllers/o_auth_app_controller.ex b/lib/pleroma/web/admin_api/controllers/o_auth_app_controller.ex index 51b17d392..879e8b2b4 100644 --- a/lib/pleroma/web/admin_api/controllers/o_auth_app_controller.ex +++ b/lib/pleroma/web/admin_api/controllers/o_auth_app_controller.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.AdminAPI.OAuthAppController do diff --git a/lib/pleroma/web/admin_api/controllers/relay_controller.ex b/lib/pleroma/web/admin_api/controllers/relay_controller.ex index c6bd43fea..2e83fe139 100644 --- a/lib/pleroma/web/admin_api/controllers/relay_controller.ex +++ b/lib/pleroma/web/admin_api/controllers/relay_controller.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.AdminAPI.RelayController do diff --git a/lib/pleroma/web/admin_api/controllers/report_controller.ex b/lib/pleroma/web/admin_api/controllers/report_controller.ex index d4a4935ee..15cbbcc3e 100644 --- a/lib/pleroma/web/admin_api/controllers/report_controller.ex +++ b/lib/pleroma/web/admin_api/controllers/report_controller.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.AdminAPI.ReportController do diff --git a/lib/pleroma/web/admin_api/controllers/status_controller.ex b/lib/pleroma/web/admin_api/controllers/status_controller.ex index 7058def82..9a3d49b57 100644 --- a/lib/pleroma/web/admin_api/controllers/status_controller.ex +++ b/lib/pleroma/web/admin_api/controllers/status_controller.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.AdminAPI.StatusController do @@ -65,12 +65,6 @@ def update(%{assigns: %{user: admin}, body_params: params} = conn, %{id: id}) do def delete(%{assigns: %{user: user}} = conn, %{id: id}) do with {:ok, %Activity{}} <- CommonAPI.delete(id, user) do - ModerationLog.insert_log(%{ - action: "status_delete", - actor: user, - subject_id: id - }) - json(conn, %{}) end end diff --git a/lib/pleroma/web/admin_api/controllers/user_controller.ex b/lib/pleroma/web/admin_api/controllers/user_controller.ex index 637a0e702..7b4ee46a4 100644 --- a/lib/pleroma/web/admin_api/controllers/user_controller.ex +++ b/lib/pleroma/web/admin_api/controllers/user_controller.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.AdminAPI.UserController do @@ -35,7 +35,9 @@ defmodule Pleroma.Web.AdminAPI.UserController do :toggle_activation, :activate, :deactivate, - :approve + :approve, + :suggest, + :unsuggest ] ) @@ -239,6 +241,32 @@ def approve(%{assigns: %{user: admin}, body_params: %{nicknames: nicknames}} = c render(conn, "index.json", users: updated_users) end + def suggest(%{assigns: %{user: admin}, body_params: %{nicknames: nicknames}} = conn, _) do + users = Enum.map(nicknames, &User.get_cached_by_nickname/1) + {:ok, updated_users} = User.set_suggestion(users, true) + + ModerationLog.insert_log(%{ + actor: admin, + subject: users, + action: "add_suggestion" + }) + + render(conn, "index.json", users: updated_users) + end + + def unsuggest(%{assigns: %{user: admin}, body_params: %{nicknames: nicknames}} = conn, _) do + users = Enum.map(nicknames, &User.get_cached_by_nickname/1) + {:ok, updated_users} = User.set_suggestion(users, false) + + ModerationLog.insert_log(%{ + actor: admin, + subject: users, + action: "remove_suggestion" + }) + + render(conn, "index.json", users: updated_users) + end + def index(conn, params) do {page, page_size} = page_params(params) filters = maybe_parse_filters(params[:filters]) diff --git a/lib/pleroma/web/admin_api/report.ex b/lib/pleroma/web/admin_api/report.ex index 345bc1e87..c79bee27e 100644 --- a/lib/pleroma/web/admin_api/report.ex +++ b/lib/pleroma/web/admin_api/report.ex @@ -1,9 +1,10 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.AdminAPI.Report do alias Pleroma.Activity + alias Pleroma.Object alias Pleroma.User def extract_report_info( @@ -16,10 +17,44 @@ def extract_report_info( status_ap_ids |> Enum.reject(&is_nil(&1)) |> Enum.map(fn - act when is_map(act) -> Activity.get_by_ap_id_with_object(act["id"]) - act when is_binary(act) -> Activity.get_by_ap_id_with_object(act) + act when is_map(act) -> + Activity.get_create_by_object_ap_id_with_object(act["id"]) || + Activity.get_by_ap_id_with_object(act["id"]) || make_fake_activity(act, user) + + act when is_binary(act) -> + Activity.get_create_by_object_ap_id_with_object(act) || + Activity.get_by_ap_id_with_object(act) end) %{report: report, user: user, account: account, statuses: statuses} end + + defp make_fake_activity(act, user) do + %Activity{ + id: "pleroma:fake", + data: %{ + "actor" => user.ap_id, + "type" => "Create", + "to" => [], + "cc" => [], + "object" => act["id"], + "published" => act["published"], + "id" => act["id"], + "context" => "pleroma:fake" + }, + recipients: [user.ap_id], + object: %Object{ + data: %{ + "actor" => user.ap_id, + "type" => "Note", + "content" => act["content"], + "published" => act["published"], + "to" => [], + "cc" => [], + "id" => act["id"], + "context" => "pleroma:fake" + } + } + } + end end diff --git a/lib/pleroma/web/admin_api/search.ex b/lib/pleroma/web/admin_api/search.ex index da38fab56..f5195acde 100644 --- a/lib/pleroma/web/admin_api/search.ex +++ b/lib/pleroma/web/admin_api/search.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.AdminAPI.Search do diff --git a/lib/pleroma/web/admin_api/views/account_view.ex b/lib/pleroma/web/admin_api/views/account_view.ex index fae0c07f0..280152241 100644 --- a/lib/pleroma/web/admin_api/views/account_view.ex +++ b/lib/pleroma/web/admin_api/views/account_view.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.AdminAPI.AccountView do @@ -80,6 +80,7 @@ def render("show.json", %{user: user}) do "tags" => user.tags || [], "is_confirmed" => user.is_confirmed, "is_approved" => user.is_approved, + "is_suggested" => user.is_suggested, "url" => user.uri || user.ap_id, "registration_reason" => user.registration_reason, "actor_type" => user.actor_type, diff --git a/lib/pleroma/web/admin_api/views/announcement_view.ex b/lib/pleroma/web/admin_api/views/announcement_view.ex new file mode 100644 index 000000000..a35bd60cf --- /dev/null +++ b/lib/pleroma/web/admin_api/views/announcement_view.ex @@ -0,0 +1,15 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2022 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + +defmodule Pleroma.Web.AdminAPI.AnnouncementView do + use Pleroma.Web, :view + + def render("index.json", %{announcements: announcements}) do + render_many(announcements, __MODULE__, "show.json") + end + + def render("show.json", %{announcement: announcement}) do + Pleroma.Announcement.render_json(announcement, admin: true) + end +end diff --git a/lib/pleroma/web/admin_api/views/chat_view.ex b/lib/pleroma/web/admin_api/views/chat_view.ex index 2a2015ad1..d58bf8eda 100644 --- a/lib/pleroma/web/admin_api/views/chat_view.ex +++ b/lib/pleroma/web/admin_api/views/chat_view.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.AdminAPI.ChatView do diff --git a/lib/pleroma/web/admin_api/views/config_view.ex b/lib/pleroma/web/admin_api/views/config_view.ex index d29b4963d..f582ad42e 100644 --- a/lib/pleroma/web/admin_api/views/config_view.ex +++ b/lib/pleroma/web/admin_api/views/config_view.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.AdminAPI.ConfigView do diff --git a/lib/pleroma/web/admin_api/views/frontend_view.ex b/lib/pleroma/web/admin_api/views/frontend_view.ex index a3933a57d..0ca3d67cb 100644 --- a/lib/pleroma/web/admin_api/views/frontend_view.ex +++ b/lib/pleroma/web/admin_api/views/frontend_view.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.AdminAPI.FrontendView do diff --git a/lib/pleroma/web/admin_api/views/invite_view.ex b/lib/pleroma/web/admin_api/views/invite_view.ex index c7e307bda..76cee3bc5 100644 --- a/lib/pleroma/web/admin_api/views/invite_view.ex +++ b/lib/pleroma/web/admin_api/views/invite_view.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.AdminAPI.InviteView do diff --git a/lib/pleroma/web/admin_api/views/media_proxy_cache_view.ex b/lib/pleroma/web/admin_api/views/media_proxy_cache_view.ex index 1ec123048..b46f54efe 100644 --- a/lib/pleroma/web/admin_api/views/media_proxy_cache_view.ex +++ b/lib/pleroma/web/admin_api/views/media_proxy_cache_view.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.AdminAPI.MediaProxyCacheView do diff --git a/lib/pleroma/web/admin_api/views/moderation_log_view.ex b/lib/pleroma/web/admin_api/views/moderation_log_view.ex index b3a9efff3..1f25f194f 100644 --- a/lib/pleroma/web/admin_api/views/moderation_log_view.ex +++ b/lib/pleroma/web/admin_api/views/moderation_log_view.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.AdminAPI.ModerationLogView do diff --git a/lib/pleroma/web/admin_api/views/o_auth_app_view.ex b/lib/pleroma/web/admin_api/views/o_auth_app_view.ex index af046f343..d1aef0e10 100644 --- a/lib/pleroma/web/admin_api/views/o_auth_app_view.ex +++ b/lib/pleroma/web/admin_api/views/o_auth_app_view.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.AdminAPI.OAuthAppView do diff --git a/lib/pleroma/web/admin_api/views/report_view.ex b/lib/pleroma/web/admin_api/views/report_view.ex index 1c67b2458..b761dbb22 100644 --- a/lib/pleroma/web/admin_api/views/report_view.ex +++ b/lib/pleroma/web/admin_api/views/report_view.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.AdminAPI.ReportView do diff --git a/lib/pleroma/web/admin_api/views/status_view.ex b/lib/pleroma/web/admin_api/views/status_view.ex index 48d639b41..03b5c440a 100644 --- a/lib/pleroma/web/admin_api/views/status_view.ex +++ b/lib/pleroma/web/admin_api/views/status_view.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.AdminAPI.StatusView do diff --git a/lib/pleroma/web/admin_api/views/user_view.ex b/lib/pleroma/web/admin_api/views/user_view.ex index e91265ffe..f198921ae 100644 --- a/lib/pleroma/web/admin_api/views/user_view.ex +++ b/lib/pleroma/web/admin_api/views/user_view.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.AdminAPI.UserView do diff --git a/lib/pleroma/web/api_spec.ex b/lib/pleroma/web/api_spec.ex index 528cd9cf4..cae4241ff 100644 --- a/lib/pleroma/web/api_spec.ex +++ b/lib/pleroma/web/api_spec.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.ApiSpec do diff --git a/lib/pleroma/web/api_spec/cast_and_validate.ex b/lib/pleroma/web/api_spec/cast_and_validate.ex index d23a7dcb6..add59eb88 100644 --- a/lib/pleroma/web/api_spec/cast_and_validate.ex +++ b/lib/pleroma/web/api_spec/cast_and_validate.ex @@ -1,6 +1,6 @@ # Pleroma: A lightweight social networking server # Copyright © 2019-2020 Moxley Stratton, Mike Buhot , MPL-2.0 -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.ApiSpec.CastAndValidate do diff --git a/lib/pleroma/web/api_spec/helpers.ex b/lib/pleroma/web/api_spec/helpers.ex index 6f67339e6..f20a9163d 100644 --- a/lib/pleroma/web/api_spec/helpers.ex +++ b/lib/pleroma/web/api_spec/helpers.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.ApiSpec.Helpers do diff --git a/lib/pleroma/web/api_spec/operations/account_operation.ex b/lib/pleroma/web/api_spec/operations/account_operation.ex index 54e5ebc76..aabe988f7 100644 --- a/lib/pleroma/web/api_spec/operations/account_operation.ex +++ b/lib/pleroma/web/api_spec/operations/account_operation.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.ApiSpec.AccountOperation do @@ -64,7 +64,8 @@ def update_credentials_operation do requestBody: request_body("Parameters", update_credentials_request(), required: true), responses: %{ 200 => Operation.response("Account", "application/json", Account), - 403 => Operation.response("Error", "application/json", ApiError) + 403 => Operation.response("Error", "application/json", ApiError), + 413 => Operation.response("Error", "application/json", ApiError) } } end @@ -223,9 +224,15 @@ def follow_operation do type: :object, properties: %{ reblogs: %Schema{ - type: :boolean, + allOf: [BooleanLike], description: "Receive this account's reblogs in home timeline? Defaults to true.", default: true + }, + notify: %Schema{ + allOf: [BooleanLike], + description: + "Receive notifications for all statuses posted by the account? Defaults to false.", + default: false } } }, @@ -272,11 +279,17 @@ def mute_operation do %Schema{allOf: [BooleanLike], default: true}, "Mute notifications in addition to statuses? Defaults to `true`." ), + Operation.parameter( + :duration, + :query, + %Schema{type: :integer}, + "Expire the mute in `duration` seconds. Default 0 for infinity" + ), Operation.parameter( :expires_in, :query, %Schema{type: :integer, default: 0}, - "Expire the mute in `expires_in` seconds. Default 0 for infinity" + "Deprecated, use `duration` instead" ) ], responses: %{ @@ -328,6 +341,81 @@ def unblock_operation do } end + def endorse_operation do + %Operation{ + tags: ["Account actions"], + summary: "Endorse", + operationId: "AccountController.endorse", + security: [%{"oAuth" => ["follow", "write:accounts"]}], + description: "Addds the given account to endorsed accounts list.", + parameters: [%Reference{"$ref": "#/components/parameters/accountIdOrNickname"}], + responses: %{ + 200 => Operation.response("Relationship", "application/json", AccountRelationship), + 400 => + Operation.response("Bad Request", "application/json", %Schema{ + allOf: [ApiError], + title: "Unprocessable Entity", + example: %{ + "error" => "You have already pinned the maximum number of users" + } + }) + } + } + end + + def unendorse_operation do + %Operation{ + tags: ["Account actions"], + summary: "Unendorse", + operationId: "AccountController.unendorse", + security: [%{"oAuth" => ["follow", "write:accounts"]}], + description: "Removes the given account from endorsed accounts list.", + parameters: [%Reference{"$ref": "#/components/parameters/accountIdOrNickname"}], + responses: %{ + 200 => Operation.response("Relationship", "application/json", AccountRelationship) + } + } + end + + def remove_from_followers_operation do + %Operation{ + tags: ["Account actions"], + summary: "Remove from followers", + operationId: "AccountController.remove_from_followers", + security: [%{"oAuth" => ["follow", "write:follows"]}], + description: "Remove the given account from followers", + parameters: [%Reference{"$ref": "#/components/parameters/accountIdOrNickname"}], + responses: %{ + 200 => Operation.response("Relationship", "application/json", AccountRelationship), + 400 => Operation.response("Error", "application/json", ApiError), + 404 => Operation.response("Error", "application/json", ApiError) + } + } + end + + def note_operation do + %Operation{ + tags: ["Account actions"], + summary: "Set a private note about a user.", + operationId: "AccountController.note", + security: [%{"oAuth" => ["follow", "write:accounts"]}], + requestBody: request_body("Parameters", note_request()), + description: "Create a note for the given account.", + parameters: [ + %Reference{"$ref": "#/components/parameters/accountIdOrNickname"}, + Operation.parameter( + :comment, + :query, + %Schema{type: :string}, + "Account note body" + ) + ], + responses: %{ + 200 => Operation.response("Relationship", "application/json", AccountRelationship) + } + } + end + def follow_by_uri_operation do %Operation{ tags: ["Account actions"], @@ -371,15 +459,35 @@ def blocks_operation do } end + def lookup_operation do + %Operation{ + tags: ["Account lookup"], + summary: "Find a user by nickname", + operationId: "AccountController.lookup", + parameters: [ + Operation.parameter( + :acct, + :query, + :string, + "User nickname" + ) + ], + responses: %{ + 200 => Operation.response("Account", "application/json", Account), + 404 => Operation.response("Error", "application/json", ApiError) + } + } + end + def endorsements_operation do %Operation{ tags: ["Retrieve account information"], summary: "Endorsements", operationId: "AccountController.endorsements", - description: "Not implemented", + description: "Returns endorsed accounts", security: [%{"oAuth" => ["read:accounts"]}], responses: %{ - 200 => empty_array_response() + 200 => Operation.response("Array of Accounts", "application/json", array_of_accounts()) } } end @@ -458,6 +566,25 @@ defp create_request do type: :string, nullable: true, description: "Invite token required when the registrations aren't public" + }, + birthday: %Schema{ + nullable: true, + description: "User's birthday", + anyOf: [ + %Schema{ + type: :string, + format: :date + }, + %Schema{ + type: :string, + maxLength: 0 + } + ] + }, + language: %Schema{ + type: :string, + nullable: true, + description: "User's preferred language for emails" } }, example: %{ @@ -635,7 +762,26 @@ defp update_credentials_request do description: "Discovery (listing, indexing) of this account by external services (search bots etc.) is allowed." }, - actor_type: ActorType + actor_type: ActorType, + birthday: %Schema{ + nullable: true, + description: "User's birthday", + anyOf: [ + %Schema{ + type: :string, + format: :date + }, + %Schema{ + type: :string, + maxLength: 0 + } + ] + }, + show_birthday: %Schema{ + allOf: [BooleanLike], + nullable: true, + description: "User's birthday will be visible" + } }, example: %{ bot: false, @@ -655,7 +801,9 @@ defp update_credentials_request do allow_following_move: false, also_known_as: ["https://foo.bar/users/foo"], discoverable: false, - actor_type: "Person" + actor_type: "Person", + show_birthday: false, + birthday: "2001-02-12" } } end @@ -685,9 +833,11 @@ defp array_of_relationships do "blocked_by" => true, "muting" => false, "muting_notifications" => false, + "note" => "", "requested" => false, "domain_blocking" => false, "subscribing" => false, + "notifying" => false, "endorsed" => true }, %{ @@ -699,9 +849,11 @@ defp array_of_relationships do "blocked_by" => true, "muting" => true, "muting_notifications" => false, + "note" => "", "requested" => true, "domain_blocking" => false, "subscribing" => false, + "notifying" => false, "endorsed" => false }, %{ @@ -713,9 +865,11 @@ defp array_of_relationships do "blocked_by" => false, "muting" => true, "muting_notifications" => false, + "note" => "", "requested" => false, "domain_blocking" => true, "subscribing" => true, + "notifying" => true, "endorsed" => false } ] @@ -746,10 +900,15 @@ defp mute_request do description: "Mute notifications in addition to statuses? Defaults to true.", default: true }, + duration: %Schema{ + type: :integer, + nullable: true, + description: "Expire the mute in `expires_in` seconds. Default 0 for infinity" + }, expires_in: %Schema{ type: :integer, nullable: true, - description: "Expire the mute in `expires_in` seconds. Default 0 for infinity", + description: "Deprecated, use `duration` instead", default: 0 } }, @@ -760,6 +919,23 @@ defp mute_request do } end + defp note_request do + %Schema{ + title: "AccountNoteRequest", + description: "POST body for adding a note for an account", + type: :object, + properties: %{ + comment: %Schema{ + type: :string, + description: "Account note body" + } + }, + example: %{ + "comment" => "Example note" + } + } + end + defp array_of_lists do %Schema{ title: "ArrayOfLists", diff --git a/lib/pleroma/web/api_spec/operations/admin/announcement_operation.ex b/lib/pleroma/web/api_spec/operations/admin/announcement_operation.ex new file mode 100644 index 000000000..58a039e72 --- /dev/null +++ b/lib/pleroma/web/api_spec/operations/admin/announcement_operation.ex @@ -0,0 +1,165 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2022 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + +defmodule Pleroma.Web.ApiSpec.Admin.AnnouncementOperation do + alias OpenApiSpex.Operation + alias OpenApiSpex.Schema + alias Pleroma.Web.ApiSpec.Schemas.Announcement + alias Pleroma.Web.ApiSpec.Schemas.ApiError + + import Pleroma.Web.ApiSpec.Helpers + + def open_api_operation(action) do + operation = String.to_existing_atom("#{action}_operation") + apply(__MODULE__, operation, []) + end + + def index_operation do + %Operation{ + tags: ["Announcement managment"], + summary: "Retrieve a list of announcements", + operationId: "AdminAPI.AnnouncementController.index", + security: [%{"oAuth" => ["admin:read"]}], + parameters: [ + Operation.parameter( + :limit, + :query, + %Schema{type: :integer, minimum: 1}, + "the maximum number of announcements to return" + ), + Operation.parameter( + :offset, + :query, + %Schema{type: :integer, minimum: 0}, + "the offset of the first announcement to return" + ) + | admin_api_params() + ], + responses: %{ + 200 => Operation.response("Response", "application/json", list_of_announcements()), + 400 => Operation.response("Forbidden", "application/json", ApiError), + 403 => Operation.response("Forbidden", "application/json", ApiError) + } + } + end + + def show_operation do + %Operation{ + tags: ["Announcement managment"], + summary: "Display one announcement", + operationId: "AdminAPI.AnnouncementController.show", + security: [%{"oAuth" => ["admin:read"]}], + parameters: [ + Operation.parameter( + :id, + :path, + :string, + "announcement id" + ) + | admin_api_params() + ], + responses: %{ + 200 => Operation.response("Response", "application/json", Announcement), + 403 => Operation.response("Forbidden", "application/json", ApiError), + 404 => Operation.response("Not Found", "application/json", ApiError) + } + } + end + + def delete_operation do + %Operation{ + tags: ["Announcement managment"], + summary: "Delete one announcement", + operationId: "AdminAPI.AnnouncementController.delete", + security: [%{"oAuth" => ["admin:write"]}], + parameters: [ + Operation.parameter( + :id, + :path, + :string, + "announcement id" + ) + | admin_api_params() + ], + responses: %{ + 200 => Operation.response("Response", "application/json", %Schema{type: :object}), + 403 => Operation.response("Forbidden", "application/json", ApiError), + 404 => Operation.response("Not Found", "application/json", ApiError) + } + } + end + + def create_operation do + %Operation{ + tags: ["Announcement managment"], + summary: "Create one announcement", + operationId: "AdminAPI.AnnouncementController.create", + security: [%{"oAuth" => ["admin:write"]}], + requestBody: request_body("Parameters", create_request(), required: true), + responses: %{ + 200 => Operation.response("Response", "application/json", Announcement), + 400 => Operation.response("Bad Request", "application/json", ApiError), + 403 => Operation.response("Forbidden", "application/json", ApiError) + } + } + end + + def change_operation do + %Operation{ + tags: ["Announcement managment"], + summary: "Change one announcement", + operationId: "AdminAPI.AnnouncementController.change", + security: [%{"oAuth" => ["admin:write"]}], + parameters: [ + Operation.parameter( + :id, + :path, + :string, + "announcement id" + ) + | admin_api_params() + ], + requestBody: request_body("Parameters", change_request(), required: true), + responses: %{ + 200 => Operation.response("Response", "application/json", Announcement), + 400 => Operation.response("Bad Request", "application/json", ApiError), + 403 => Operation.response("Forbidden", "application/json", ApiError), + 404 => Operation.response("Not Found", "application/json", ApiError) + } + } + end + + defp create_or_change_props do + %{ + content: %Schema{type: :string}, + starts_at: %Schema{type: :string, format: "date-time", nullable: true}, + ends_at: %Schema{type: :string, format: "date-time", nullable: true}, + all_day: %Schema{type: :boolean} + } + end + + def create_request do + %Schema{ + title: "AnnouncementCreateRequest", + type: :object, + required: [:content], + properties: create_or_change_props() + } + end + + def change_request do + %Schema{ + title: "AnnouncementChangeRequest", + type: :object, + properties: create_or_change_props() + } + end + + def list_of_announcements do + %Schema{ + type: :array, + items: Announcement + } + end +end diff --git a/lib/pleroma/web/api_spec/operations/admin/chat_operation.ex b/lib/pleroma/web/api_spec/operations/admin/chat_operation.ex index 57906445e..2a274e080 100644 --- a/lib/pleroma/web/api_spec/operations/admin/chat_operation.ex +++ b/lib/pleroma/web/api_spec/operations/admin/chat_operation.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.ApiSpec.Admin.ChatOperation do diff --git a/lib/pleroma/web/api_spec/operations/admin/config_operation.ex b/lib/pleroma/web/api_spec/operations/admin/config_operation.ex index 30c3433b7..487dd5cda 100644 --- a/lib/pleroma/web/api_spec/operations/admin/config_operation.ex +++ b/lib/pleroma/web/api_spec/operations/admin/config_operation.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.ApiSpec.Admin.ConfigOperation do diff --git a/lib/pleroma/web/api_spec/operations/admin/frontend_operation.ex b/lib/pleroma/web/api_spec/operations/admin/frontend_operation.ex index 566f1eeb1..4bfe5ac5a 100644 --- a/lib/pleroma/web/api_spec/operations/admin/frontend_operation.ex +++ b/lib/pleroma/web/api_spec/operations/admin/frontend_operation.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.ApiSpec.Admin.FrontendOperation do diff --git a/lib/pleroma/web/api_spec/operations/admin/instance_document_operation.ex b/lib/pleroma/web/api_spec/operations/admin/instance_document_operation.ex index 79ceae970..fc0de499b 100644 --- a/lib/pleroma/web/api_spec/operations/admin/instance_document_operation.ex +++ b/lib/pleroma/web/api_spec/operations/admin/instance_document_operation.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.ApiSpec.Admin.InstanceDocumentOperation do diff --git a/lib/pleroma/web/api_spec/operations/admin/invite_operation.ex b/lib/pleroma/web/api_spec/operations/admin/invite_operation.ex index 704f082ba..e4a9ffaeb 100644 --- a/lib/pleroma/web/api_spec/operations/admin/invite_operation.ex +++ b/lib/pleroma/web/api_spec/operations/admin/invite_operation.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.ApiSpec.Admin.InviteOperation do diff --git a/lib/pleroma/web/api_spec/operations/admin/media_proxy_cache_operation.ex b/lib/pleroma/web/api_spec/operations/admin/media_proxy_cache_operation.ex index 8f85ebf2d..0b1eb3946 100644 --- a/lib/pleroma/web/api_spec/operations/admin/media_proxy_cache_operation.ex +++ b/lib/pleroma/web/api_spec/operations/admin/media_proxy_cache_operation.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.ApiSpec.Admin.MediaProxyCacheOperation do diff --git a/lib/pleroma/web/api_spec/operations/admin/o_auth_app_operation.ex b/lib/pleroma/web/api_spec/operations/admin/o_auth_app_operation.ex index 35b029b19..1a05aff6a 100644 --- a/lib/pleroma/web/api_spec/operations/admin/o_auth_app_operation.ex +++ b/lib/pleroma/web/api_spec/operations/admin/o_auth_app_operation.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.ApiSpec.Admin.OAuthAppOperation do diff --git a/lib/pleroma/web/api_spec/operations/admin/relay_operation.ex b/lib/pleroma/web/api_spec/operations/admin/relay_operation.ex index c55c84fee..8b241bd49 100644 --- a/lib/pleroma/web/api_spec/operations/admin/relay_operation.ex +++ b/lib/pleroma/web/api_spec/operations/admin/relay_operation.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.ApiSpec.Admin.RelayOperation do diff --git a/lib/pleroma/web/api_spec/operations/admin/report_operation.ex b/lib/pleroma/web/api_spec/operations/admin/report_operation.ex index 8d7577505..312e091a5 100644 --- a/lib/pleroma/web/api_spec/operations/admin/report_operation.ex +++ b/lib/pleroma/web/api_spec/operations/admin/report_operation.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.ApiSpec.Admin.ReportOperation do diff --git a/lib/pleroma/web/api_spec/operations/admin/status_operation.ex b/lib/pleroma/web/api_spec/operations/admin/status_operation.ex index d25ab5247..229912dd7 100644 --- a/lib/pleroma/web/api_spec/operations/admin/status_operation.ex +++ b/lib/pleroma/web/api_spec/operations/admin/status_operation.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.ApiSpec.Admin.StatusOperation do diff --git a/lib/pleroma/web/api_spec/operations/admin/user_operation.ex b/lib/pleroma/web/api_spec/operations/admin/user_operation.ex index c9d0bfd7c..a5179ac39 100644 --- a/lib/pleroma/web/api_spec/operations/admin/user_operation.ex +++ b/lib/pleroma/web/api_spec/operations/admin/user_operation.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.ApiSpec.Admin.UserOperation do @@ -216,7 +216,71 @@ def approve_operation do request_body( "Parameters", %Schema{ - description: "POST body for deleting multiple users", + description: "POST body for approving multiple users", + type: :object, + properties: %{ + nicknames: %Schema{ + type: :array, + items: %Schema{type: :string} + } + } + } + ), + responses: %{ + 200 => + Operation.response("Response", "application/json", %Schema{ + type: :object, + properties: %{user: %Schema{type: :array, items: user()}} + }), + 403 => Operation.response("Forbidden", "application/json", ApiError) + } + } + end + + def suggest_operation do + %Operation{ + tags: ["User administration"], + summary: "Suggest multiple users", + operationId: "AdminAPI.UserController.suggest", + security: [%{"oAuth" => ["admin:write:accounts"]}], + parameters: admin_api_params(), + requestBody: + request_body( + "Parameters", + %Schema{ + description: "POST body for adding multiple suggested users", + type: :object, + properties: %{ + nicknames: %Schema{ + type: :array, + items: %Schema{type: :string} + } + } + } + ), + responses: %{ + 200 => + Operation.response("Response", "application/json", %Schema{ + type: :object, + properties: %{user: %Schema{type: :array, items: user()}} + }), + 403 => Operation.response("Forbidden", "application/json", ApiError) + } + } + end + + def unsuggest_operation do + %Operation{ + tags: ["User administration"], + summary: "Unsuggest multiple users", + operationId: "AdminAPI.UserController.unsuggest", + security: [%{"oAuth" => ["admin:write:accounts"]}], + parameters: admin_api_params(), + requestBody: + request_body( + "Parameters", + %Schema{ + description: "POST body for removing multiple suggested users", type: :object, properties: %{ nicknames: %Schema{ diff --git a/lib/pleroma/web/api_spec/operations/announcement_operation.ex b/lib/pleroma/web/api_spec/operations/announcement_operation.ex new file mode 100644 index 000000000..71be0002a --- /dev/null +++ b/lib/pleroma/web/api_spec/operations/announcement_operation.ex @@ -0,0 +1,57 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2022 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + +defmodule Pleroma.Web.ApiSpec.AnnouncementOperation do + alias OpenApiSpex.Operation + alias OpenApiSpex.Schema + alias Pleroma.Web.ApiSpec.Schemas.Announcement + alias Pleroma.Web.ApiSpec.Schemas.ApiError + + def open_api_operation(action) do + operation = String.to_existing_atom("#{action}_operation") + apply(__MODULE__, operation, []) + end + + def index_operation do + %Operation{ + tags: ["Announcement"], + summary: "Retrieve a list of announcements", + operationId: "MastodonAPI.AnnouncementController.index", + security: [%{"oAuth" => []}], + responses: %{ + 200 => Operation.response("Response", "application/json", list_of_announcements()), + 403 => Operation.response("Forbidden", "application/json", ApiError) + } + } + end + + def mark_read_operation do + %Operation{ + tags: ["Announcement"], + summary: "Mark one announcement as read", + operationId: "MastodonAPI.AnnouncementController.mark_read", + security: [%{"oAuth" => ["write:accounts"]}], + parameters: [ + Operation.parameter( + :id, + :path, + :string, + "announcement id" + ) + ], + responses: %{ + 200 => Operation.response("Response", "application/json", %Schema{type: :object}), + 403 => Operation.response("Forbidden", "application/json", ApiError), + 404 => Operation.response("Not Found", "application/json", ApiError) + } + } + end + + def list_of_announcements do + %Schema{ + type: :array, + items: Announcement + } + end +end diff --git a/lib/pleroma/web/api_spec/operations/app_operation.ex b/lib/pleroma/web/api_spec/operations/app_operation.ex index dfb1c7170..dfa2237c0 100644 --- a/lib/pleroma/web/api_spec/operations/app_operation.ex +++ b/lib/pleroma/web/api_spec/operations/app_operation.ex @@ -1,11 +1,12 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.ApiSpec.AppOperation do alias OpenApiSpex.Operation alias OpenApiSpex.Schema alias Pleroma.Web.ApiSpec.Helpers + alias Pleroma.Web.ApiSpec.Schemas.App @spec open_api_operation(atom) :: Operation.t() def open_api_operation(action) do @@ -22,7 +23,7 @@ def create_operation do operationId: "AppController.create", requestBody: Helpers.request_body("Parameters", create_request(), required: true), responses: %{ - 200 => Operation.response("App", "application/json", create_response()), + 200 => Operation.response("App", "application/json", App), 422 => Operation.response( "Unprocessable Entity", @@ -119,30 +120,4 @@ defp create_request do } } end - - defp create_response do - %Schema{ - title: "AppCreateResponse", - description: "Response schema for an app", - type: :object, - properties: %{ - id: %Schema{type: :string}, - name: %Schema{type: :string}, - client_id: %Schema{type: :string}, - client_secret: %Schema{type: :string}, - redirect_uri: %Schema{type: :string}, - vapid_key: %Schema{type: :string}, - website: %Schema{type: :string, nullable: true} - }, - example: %{ - "id" => "123", - "name" => "My App", - "client_id" => "TWhM-tNSuncnqN7DBJmoyeLnk6K3iJJ71KKXxgL1hPM", - "client_secret" => "ZEaFUFmF0umgBX1qKJDjaU99Q31lDkOU8NutzTOoliw", - "vapid_key" => - "BCk-QqERU0q-CfYZjcuB6lnyyOYfJ2AifKqfeGIm7Z-HiTU5T9eTG5GxVA0_OH5mMlI4UkkDTpaZwozy0TzdZ2M=", - "website" => "https://myapp.com/" - } - } - end end diff --git a/lib/pleroma/web/api_spec/operations/chat_operation.ex b/lib/pleroma/web/api_spec/operations/chat_operation.ex index 23cb66392..cf6a055fc 100644 --- a/lib/pleroma/web/api_spec/operations/chat_operation.ex +++ b/lib/pleroma/web/api_spec/operations/chat_operation.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.ApiSpec.ChatOperation do diff --git a/lib/pleroma/web/api_spec/operations/conversation_operation.ex b/lib/pleroma/web/api_spec/operations/conversation_operation.ex index 17ed1af5e..82ccf41f9 100644 --- a/lib/pleroma/web/api_spec/operations/conversation_operation.ex +++ b/lib/pleroma/web/api_spec/operations/conversation_operation.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.ApiSpec.ConversationOperation do diff --git a/lib/pleroma/web/api_spec/operations/custom_emoji_operation.ex b/lib/pleroma/web/api_spec/operations/custom_emoji_operation.ex index 98da1a6de..77823f13e 100644 --- a/lib/pleroma/web/api_spec/operations/custom_emoji_operation.ex +++ b/lib/pleroma/web/api_spec/operations/custom_emoji_operation.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.ApiSpec.CustomEmojiOperation do diff --git a/lib/pleroma/web/api_spec/operations/directory_operation.ex b/lib/pleroma/web/api_spec/operations/directory_operation.ex new file mode 100644 index 000000000..55752fa62 --- /dev/null +++ b/lib/pleroma/web/api_spec/operations/directory_operation.ex @@ -0,0 +1,41 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2022 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + +defmodule Pleroma.Web.ApiSpec.DirectoryOperation do + alias OpenApiSpex.Operation + alias Pleroma.Web.ApiSpec.AccountOperation + alias Pleroma.Web.ApiSpec.Schemas.ApiError + alias Pleroma.Web.ApiSpec.Schemas.BooleanLike + + import Pleroma.Web.ApiSpec.Helpers + + def open_api_operation(action) do + operation = String.to_existing_atom("#{action}_operation") + apply(__MODULE__, operation, []) + end + + def index_operation do + %Operation{ + tags: ["Directory"], + summary: "Profile directory", + operationId: "DirectoryController.index", + parameters: + [ + Operation.parameter( + :order, + :query, + :string, + "Order by recent activity or account creation", + required: nil + ), + Operation.parameter(:local, :query, BooleanLike, "Include local users only") + ] ++ pagination_params(), + responses: %{ + 200 => + Operation.response("Accounts", "application/json", AccountOperation.array_of_accounts()), + 404 => Operation.response("Not Found", "application/json", ApiError) + } + } + end +end diff --git a/lib/pleroma/web/api_spec/operations/domain_block_operation.ex b/lib/pleroma/web/api_spec/operations/domain_block_operation.ex index f124e7fe5..2340fd914 100644 --- a/lib/pleroma/web/api_spec/operations/domain_block_operation.ex +++ b/lib/pleroma/web/api_spec/operations/domain_block_operation.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.ApiSpec.DomainBlockOperation do diff --git a/lib/pleroma/web/api_spec/operations/emoji_reaction_operation.ex b/lib/pleroma/web/api_spec/operations/emoji_reaction_operation.ex index a7b306a30..74341d64f 100644 --- a/lib/pleroma/web/api_spec/operations/emoji_reaction_operation.ex +++ b/lib/pleroma/web/api_spec/operations/emoji_reaction_operation.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.ApiSpec.EmojiReactionOperation do diff --git a/lib/pleroma/web/api_spec/operations/filter_operation.ex b/lib/pleroma/web/api_spec/operations/filter_operation.ex index 5102921bc..a1700b7c9 100644 --- a/lib/pleroma/web/api_spec/operations/filter_operation.ex +++ b/lib/pleroma/web/api_spec/operations/filter_operation.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.ApiSpec.FilterOperation do diff --git a/lib/pleroma/web/api_spec/operations/follow_request_operation.ex b/lib/pleroma/web/api_spec/operations/follow_request_operation.ex index 784019699..72dc8b5fa 100644 --- a/lib/pleroma/web/api_spec/operations/follow_request_operation.ex +++ b/lib/pleroma/web/api_spec/operations/follow_request_operation.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.ApiSpec.FollowRequestOperation do diff --git a/lib/pleroma/web/api_spec/operations/instance_operation.ex b/lib/pleroma/web/api_spec/operations/instance_operation.ex index 9384acc32..3c4b504fe 100644 --- a/lib/pleroma/web/api_spec/operations/instance_operation.ex +++ b/lib/pleroma/web/api_spec/operations/instance_operation.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.ApiSpec.InstanceOperation do diff --git a/lib/pleroma/web/api_spec/operations/list_operation.ex b/lib/pleroma/web/api_spec/operations/list_operation.ex index 8a6e92b99..7d876ae2d 100644 --- a/lib/pleroma/web/api_spec/operations/list_operation.ex +++ b/lib/pleroma/web/api_spec/operations/list_operation.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.ApiSpec.ListOperation do diff --git a/lib/pleroma/web/api_spec/operations/marker_operation.ex b/lib/pleroma/web/api_spec/operations/marker_operation.ex index c5ff5984b..4dfdeb448 100644 --- a/lib/pleroma/web/api_spec/operations/marker_operation.ex +++ b/lib/pleroma/web/api_spec/operations/marker_operation.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.ApiSpec.MarkerOperation do diff --git a/lib/pleroma/web/api_spec/operations/media_operation.ex b/lib/pleroma/web/api_spec/operations/media_operation.ex index 451b6510f..e6df21246 100644 --- a/lib/pleroma/web/api_spec/operations/media_operation.ex +++ b/lib/pleroma/web/api_spec/operations/media_operation.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.ApiSpec.MediaOperation do diff --git a/lib/pleroma/web/api_spec/operations/notification_operation.ex b/lib/pleroma/web/api_spec/operations/notification_operation.ex index ec88eabe1..56aa129d2 100644 --- a/lib/pleroma/web/api_spec/operations/notification_operation.ex +++ b/lib/pleroma/web/api_spec/operations/notification_operation.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.ApiSpec.NotificationOperation do @@ -51,6 +51,12 @@ def index_operation do :include_types, :query, %Schema{type: :array, items: notification_type()}, + "Deprecated, use `types` instead" + ), + Operation.parameter( + :types, + :query, + %Schema{type: :array, items: notification_type()}, "Include the notifications for activities with the given types" ), Operation.parameter( @@ -195,7 +201,8 @@ defp notification_type do "pleroma:chat_mention", "pleroma:report", "move", - "follow_request" + "follow_request", + "poll" ], description: """ The type of event that resulted in the notification. diff --git a/lib/pleroma/web/api_spec/operations/pleroma_account_operation.ex b/lib/pleroma/web/api_spec/operations/pleroma_account_operation.ex index ad49f6426..5375c5b15 100644 --- a/lib/pleroma/web/api_spec/operations/pleroma_account_operation.ex +++ b/lib/pleroma/web/api_spec/operations/pleroma_account_operation.ex @@ -1,9 +1,11 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.ApiSpec.PleromaAccountOperation do alias OpenApiSpex.Operation + alias OpenApiSpex.Schema + alias Pleroma.Web.ApiSpec.AccountOperation alias Pleroma.Web.ApiSpec.Schemas.AccountRelationship alias Pleroma.Web.ApiSpec.Schemas.ApiError alias Pleroma.Web.ApiSpec.Schemas.FlakeID @@ -62,6 +64,25 @@ def favourites_operation do } end + def endorsements_operation do + %Operation{ + tags: ["Retrieve account information"], + summary: "Endorsements", + description: "Returns endorsed accounts", + operationId: "PleromaAPI.AccountController.endorsements", + parameters: [with_relationships_param(), id_param()], + responses: %{ + 200 => + Operation.response( + "Array of Accounts", + "application/json", + AccountOperation.array_of_accounts() + ), + 404 => Operation.response("Not Found", "application/json", ApiError) + } + } + end + def subscribe_operation do %Operation{ tags: ["Account actions"], @@ -92,6 +113,34 @@ def unsubscribe_operation do } end + def birthdays_operation do + %Operation{ + tags: ["Retrieve account information"], + summary: "Birthday reminders", + description: "Birthday reminders about users you follow.", + operationId: "PleromaAPI.AccountController.birthdays", + parameters: [ + Operation.parameter( + :day, + :query, + %Schema{type: :integer}, + "Day of users' birthdays" + ), + Operation.parameter( + :month, + :query, + %Schema{type: :integer}, + "Month of users' birthdays" + ) + ], + security: [%{"oAuth" => ["read:accounts"]}], + responses: %{ + 200 => + Operation.response("Accounts", "application/json", AccountOperation.array_of_accounts()) + } + } + end + defp id_param do Operation.parameter(:id, :path, FlakeID, "Account ID", example: "9umDrYheeY451cQnEe", diff --git a/lib/pleroma/web/api_spec/operations/pleroma_app_operation.ex b/lib/pleroma/web/api_spec/operations/pleroma_app_operation.ex new file mode 100644 index 000000000..9f8df6c5c --- /dev/null +++ b/lib/pleroma/web/api_spec/operations/pleroma_app_operation.ex @@ -0,0 +1,31 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2022 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + +defmodule Pleroma.Web.ApiSpec.PleromaAppOperation do + alias OpenApiSpex.Operation + alias OpenApiSpex.Schema + alias Pleroma.Web.ApiSpec.Schemas.App + + def open_api_operation(action) do + operation = String.to_existing_atom("#{action}_operation") + apply(__MODULE__, operation, []) + end + + @spec index_operation() :: Operation.t() + def index_operation do + %Operation{ + tags: ["Applications"], + summary: "List applications", + description: "List the OAuth applications for the current user", + operationId: "AppController.index", + responses: %{ + 200 => Operation.response("Array of App", "application/json", array_of_apps()) + } + } + end + + defp array_of_apps do + %Schema{type: :array, items: App, example: [App.schema().example]} + end +end diff --git a/lib/pleroma/web/api_spec/operations/pleroma_backup_operation.ex b/lib/pleroma/web/api_spec/operations/pleroma_backup_operation.ex index c78e9780f..45fa2b058 100644 --- a/lib/pleroma/web/api_spec/operations/pleroma_backup_operation.ex +++ b/lib/pleroma/web/api_spec/operations/pleroma_backup_operation.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.ApiSpec.PleromaBackupOperation do @@ -16,7 +16,7 @@ def index_operation do %Operation{ tags: ["Backups"], summary: "List backups", - security: [%{"oAuth" => ["read:account"]}], + security: [%{"oAuth" => ["read:backups"]}], operationId: "PleromaAPI.BackupController.index", responses: %{ 200 => @@ -37,7 +37,7 @@ def create_operation do %Operation{ tags: ["Backups"], summary: "Create a backup", - security: [%{"oAuth" => ["read:account"]}], + security: [%{"oAuth" => ["read:backups"]}], operationId: "PleromaAPI.BackupController.create", responses: %{ 200 => diff --git a/lib/pleroma/web/api_spec/operations/pleroma_conversation_operation.ex b/lib/pleroma/web/api_spec/operations/pleroma_conversation_operation.ex index 12fb8ed36..89f0e13e1 100644 --- a/lib/pleroma/web/api_spec/operations/pleroma_conversation_operation.ex +++ b/lib/pleroma/web/api_spec/operations/pleroma_conversation_operation.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.ApiSpec.PleromaConversationOperation do diff --git a/lib/pleroma/web/api_spec/operations/pleroma_emoji_file_operation.ex b/lib/pleroma/web/api_spec/operations/pleroma_emoji_file_operation.ex index 8c76096b5..d09c1c10e 100644 --- a/lib/pleroma/web/api_spec/operations/pleroma_emoji_file_operation.ex +++ b/lib/pleroma/web/api_spec/operations/pleroma_emoji_file_operation.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.ApiSpec.PleromaEmojiFileOperation do diff --git a/lib/pleroma/web/api_spec/operations/pleroma_emoji_pack_operation.ex b/lib/pleroma/web/api_spec/operations/pleroma_emoji_pack_operation.ex index 49247d9b6..6add3ff33 100644 --- a/lib/pleroma/web/api_spec/operations/pleroma_emoji_pack_operation.ex +++ b/lib/pleroma/web/api_spec/operations/pleroma_emoji_pack_operation.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.ApiSpec.PleromaEmojiPackOperation do diff --git a/lib/pleroma/web/api_spec/operations/pleroma_instances_operation.ex b/lib/pleroma/web/api_spec/operations/pleroma_instances_operation.ex index 612113147..82db4e1a8 100644 --- a/lib/pleroma/web/api_spec/operations/pleroma_instances_operation.ex +++ b/lib/pleroma/web/api_spec/operations/pleroma_instances_operation.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.ApiSpec.PleromaInstancesOperation do diff --git a/lib/pleroma/web/api_spec/operations/pleroma_mascot_operation.ex b/lib/pleroma/web/api_spec/operations/pleroma_mascot_operation.ex index 6191cb97d..775e27219 100644 --- a/lib/pleroma/web/api_spec/operations/pleroma_mascot_operation.ex +++ b/lib/pleroma/web/api_spec/operations/pleroma_mascot_operation.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.ApiSpec.PleromaMascotOperation do diff --git a/lib/pleroma/web/api_spec/operations/pleroma_notification_operation.ex b/lib/pleroma/web/api_spec/operations/pleroma_notification_operation.ex index 1dda39240..a994345db 100644 --- a/lib/pleroma/web/api_spec/operations/pleroma_notification_operation.ex +++ b/lib/pleroma/web/api_spec/operations/pleroma_notification_operation.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.ApiSpec.PleromaNotificationOperation do diff --git a/lib/pleroma/web/api_spec/operations/pleroma_report_operation.ex b/lib/pleroma/web/api_spec/operations/pleroma_report_operation.ex index ee8870dc2..9bc1877b1 100644 --- a/lib/pleroma/web/api_spec/operations/pleroma_report_operation.ex +++ b/lib/pleroma/web/api_spec/operations/pleroma_report_operation.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.ApiSpec.PleromaReportOperation do diff --git a/lib/pleroma/web/api_spec/operations/pleroma_scrobble_operation.ex b/lib/pleroma/web/api_spec/operations/pleroma_scrobble_operation.ex index 6a909fc85..b6273bfcf 100644 --- a/lib/pleroma/web/api_spec/operations/pleroma_scrobble_operation.ex +++ b/lib/pleroma/web/api_spec/operations/pleroma_scrobble_operation.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.ApiSpec.PleromaScrobbleOperation do diff --git a/lib/pleroma/web/api_spec/operations/pleroma_settings_operation.ex b/lib/pleroma/web/api_spec/operations/pleroma_settings_operation.ex new file mode 100644 index 000000000..e2cef4f67 --- /dev/null +++ b/lib/pleroma/web/api_spec/operations/pleroma_settings_operation.ex @@ -0,0 +1,72 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2022 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + +defmodule Pleroma.Web.ApiSpec.PleromaSettingsOperation do + alias OpenApiSpex.Operation + alias OpenApiSpex.Schema + + import Pleroma.Web.ApiSpec.Helpers + + def open_api_operation(action) do + operation = String.to_existing_atom("#{action}_operation") + apply(__MODULE__, operation, []) + end + + def show_operation do + %Operation{ + tags: ["Settings"], + summary: "Get settings for an application", + description: "Get synchronized settings for an application", + operationId: "SettingsController.show", + parameters: [app_name_param()], + security: [%{"oAuth" => ["read:accounts"]}], + responses: %{ + 200 => Operation.response("object", "application/json", object()) + } + } + end + + def update_operation do + %Operation{ + tags: ["Settings"], + summary: "Update settings for an application", + description: "Update synchronized settings for an application", + operationId: "SettingsController.update", + parameters: [app_name_param()], + security: [%{"oAuth" => ["write:accounts"]}], + requestBody: request_body("Parameters", update_request(), required: true), + responses: %{ + 200 => Operation.response("object", "application/json", object()) + } + } + end + + def app_name_param do + Operation.parameter(:app, :path, %Schema{type: :string}, "Application name", + example: "pleroma-fe", + required: true + ) + end + + def object do + %Schema{ + title: "Settings object", + description: "The object that contains settings for the application.", + type: :object + } + end + + def update_request do + %Schema{ + title: "SettingsUpdateRequest", + type: :object, + description: + "The settings object to be merged with the current settings. To remove a field, set it to null.", + example: %{ + "config1" => true, + "config2_to_unset" => nil + } + } + end +end diff --git a/lib/pleroma/web/api_spec/operations/poll_operation.ex b/lib/pleroma/web/api_spec/operations/poll_operation.ex index 0d1c8d099..efd784f03 100644 --- a/lib/pleroma/web/api_spec/operations/poll_operation.ex +++ b/lib/pleroma/web/api_spec/operations/poll_operation.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.ApiSpec.PollOperation do diff --git a/lib/pleroma/web/api_spec/operations/report_operation.ex b/lib/pleroma/web/api_spec/operations/report_operation.ex index b744efa60..c74ac7d5f 100644 --- a/lib/pleroma/web/api_spec/operations/report_operation.ex +++ b/lib/pleroma/web/api_spec/operations/report_operation.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.ApiSpec.ReportOperation do diff --git a/lib/pleroma/web/api_spec/operations/scheduled_activity_operation.ex b/lib/pleroma/web/api_spec/operations/scheduled_activity_operation.ex index b9c5b35c1..802d3b6dd 100644 --- a/lib/pleroma/web/api_spec/operations/scheduled_activity_operation.ex +++ b/lib/pleroma/web/api_spec/operations/scheduled_activity_operation.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.ApiSpec.ScheduledActivityOperation do diff --git a/lib/pleroma/web/api_spec/operations/search_operation.ex b/lib/pleroma/web/api_spec/operations/search_operation.ex index ff4fd0027..1a7e49be4 100644 --- a/lib/pleroma/web/api_spec/operations/search_operation.ex +++ b/lib/pleroma/web/api_spec/operations/search_operation.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.ApiSpec.SearchOperation do diff --git a/lib/pleroma/web/api_spec/operations/status_operation.ex b/lib/pleroma/web/api_spec/operations/status_operation.ex index 802fbef3e..e921128c7 100644 --- a/lib/pleroma/web/api_spec/operations/status_operation.ex +++ b/lib/pleroma/web/api_spec/operations/status_operation.ex @@ -1,14 +1,18 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.ApiSpec.StatusOperation do alias OpenApiSpex.Operation alias OpenApiSpex.Schema alias Pleroma.Web.ApiSpec.AccountOperation + alias Pleroma.Web.ApiSpec.Schemas.Account alias Pleroma.Web.ApiSpec.Schemas.ApiError + alias Pleroma.Web.ApiSpec.Schemas.Attachment alias Pleroma.Web.ApiSpec.Schemas.BooleanLike + alias Pleroma.Web.ApiSpec.Schemas.Emoji alias Pleroma.Web.ApiSpec.Schemas.FlakeID + alias Pleroma.Web.ApiSpec.Schemas.Poll alias Pleroma.Web.ApiSpec.Schemas.ScheduledStatus alias Pleroma.Web.ApiSpec.Schemas.Status alias Pleroma.Web.ApiSpec.Schemas.VisibilityScope @@ -434,6 +438,59 @@ def bookmarks_operation do } end + def show_history_operation do + %Operation{ + tags: ["Retrieve status history"], + summary: "Status history", + description: "View history of a status", + operationId: "StatusController.show_history", + security: [%{"oAuth" => ["read:statuses"]}], + parameters: [ + id_param() + ], + responses: %{ + 200 => status_history_response(), + 404 => Operation.response("Not Found", "application/json", ApiError) + } + } + end + + def show_source_operation do + %Operation{ + tags: ["Retrieve status source"], + summary: "Status source", + description: "View source of a status", + operationId: "StatusController.show_source", + security: [%{"oAuth" => ["read:statuses"]}], + parameters: [ + id_param() + ], + responses: %{ + 200 => status_source_response(), + 404 => Operation.response("Not Found", "application/json", ApiError) + } + } + end + + def update_operation do + %Operation{ + tags: ["Update status"], + summary: "Update status", + description: "Change the content of a status", + operationId: "StatusController.update", + security: [%{"oAuth" => ["write:statuses"]}], + parameters: [ + id_param() + ], + requestBody: request_body("Parameters", update_request(), required: true), + responses: %{ + 200 => status_response(), + 403 => Operation.response("Forbidden", "application/json", ApiError), + 404 => Operation.response("Not Found", "application/json", ApiError) + } + } + end + def array_of_statuses do %Schema{type: :array, items: Status, example: [Status.schema().example]} end @@ -537,6 +594,60 @@ defp create_request do } end + defp update_request do + %Schema{ + title: "StatusUpdateRequest", + type: :object, + properties: %{ + status: %Schema{ + type: :string, + nullable: true, + description: + "Text content of the status. If `media_ids` is provided, this becomes optional. Attaching a `poll` is optional while `status` is provided." + }, + media_ids: %Schema{ + nullable: true, + type: :array, + items: %Schema{type: :string}, + description: "Array of Attachment ids to be attached as media." + }, + poll: poll_params(), + sensitive: %Schema{ + allOf: [BooleanLike], + nullable: true, + description: "Mark status and attached media as sensitive?" + }, + spoiler_text: %Schema{ + type: :string, + nullable: true, + description: + "Text to be shown as a warning or subject before the actual content. Statuses are generally collapsed behind this field." + }, + content_type: %Schema{ + type: :string, + nullable: true, + description: + "The MIME type of the status, it is transformed into HTML by the backend. You can get the list of the supported MIME types with the nodeinfo endpoint." + }, + to: %Schema{ + type: :array, + nullable: true, + items: %Schema{type: :string}, + description: + "A list of nicknames (like `lain@soykaf.club` or `lain` on the local server) that will be used to determine who is going to be addressed by this post. Using this will disable the implicit addressing by mentioned names in the `status` body, only the people in the `to` list will be addressed. The normal rules for for post visibility are not affected by this and will still apply" + } + }, + example: %{ + "status" => "What time is it?", + "sensitive" => "false", + "poll" => %{ + "options" => ["Cofe", "Adventure"], + "expires_in" => 420 + } + } + } + end + def poll_params do %Schema{ nullable: true, @@ -579,6 +690,87 @@ defp status_response do Operation.response("Status", "application/json", Status) end + defp status_history_response do + Operation.response( + "Status History", + "application/json", + %Schema{ + title: "Status history", + description: "Response schema for history of a status", + type: :array, + items: %Schema{ + type: :object, + properties: %{ + account: %Schema{ + allOf: [Account], + description: "The account that authored this status" + }, + content: %Schema{ + type: :string, + format: :html, + description: "HTML-encoded status content" + }, + sensitive: %Schema{ + type: :boolean, + description: "Is this status marked as sensitive content?" + }, + spoiler_text: %Schema{ + type: :string, + description: + "Subject or summary line, below which status content is collapsed until expanded" + }, + created_at: %Schema{ + type: :string, + format: "date-time", + description: "The date when this status was created" + }, + media_attachments: %Schema{ + type: :array, + items: Attachment, + description: "Media that is attached to this status" + }, + emojis: %Schema{ + type: :array, + items: Emoji, + description: "Custom emoji to be used when rendering status content" + }, + poll: %Schema{ + allOf: [Poll], + nullable: true, + description: "The poll attached to the status" + } + } + } + } + ) + end + + defp status_source_response do + Operation.response( + "Status Source", + "application/json", + %Schema{ + type: :object, + properties: %{ + id: FlakeID, + text: %Schema{ + type: :string, + description: "Raw source of status content" + }, + spoiler_text: %Schema{ + type: :string, + description: + "Subject or summary line, below which status content is collapsed until expanded" + }, + content_type: %Schema{ + type: :string, + description: "The content type of the source" + } + } + } + ) + end + defp context do %Schema{ title: "StatusContext", diff --git a/lib/pleroma/web/api_spec/operations/subscription_operation.ex b/lib/pleroma/web/api_spec/operations/subscription_operation.ex index 60a7fb3b0..c53ec2956 100644 --- a/lib/pleroma/web/api_spec/operations/subscription_operation.ex +++ b/lib/pleroma/web/api_spec/operations/subscription_operation.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.ApiSpec.SubscriptionOperation do diff --git a/lib/pleroma/web/api_spec/operations/timeline_operation.ex b/lib/pleroma/web/api_spec/operations/timeline_operation.ex index 24d792916..fbe3f763a 100644 --- a/lib/pleroma/web/api_spec/operations/timeline_operation.ex +++ b/lib/pleroma/web/api_spec/operations/timeline_operation.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.ApiSpec.TimelineOperation do diff --git a/lib/pleroma/web/api_spec/operations/twitter_util_operation.ex b/lib/pleroma/web/api_spec/operations/twitter_util_operation.ex index 879b2227e..29df03e34 100644 --- a/lib/pleroma/web/api_spec/operations/twitter_util_operation.ex +++ b/lib/pleroma/web/api_spec/operations/twitter_util_operation.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.ApiSpec.TwitterUtilOperation do @@ -121,7 +121,10 @@ defp change_email_request do type: :object, required: [:email, :password], properties: %{ - email: %Schema{type: :string, description: "New email"}, + email: %Schema{ + type: :string, + description: "New email. Set to blank to remove the user's email." + }, password: %Schema{type: :string, description: "Current password"} } } @@ -188,6 +191,7 @@ def delete_account_operation do parameters: [ Operation.parameter(:password, :query, :string, "Password") ], + requestBody: request_body("Parameters", delete_account_request(), required: false), responses: %{ 200 => Operation.response("Success", "application/json", %Schema{ @@ -210,6 +214,146 @@ def captcha_operation do } end + def move_account_operation do + %Operation{ + tags: ["Account credentials"], + summary: "Move account", + security: [%{"oAuth" => ["write:accounts"]}], + operationId: "UtilController.move_account", + requestBody: request_body("Parameters", move_account_request(), required: true), + responses: %{ + 200 => + Operation.response("Success", "application/json", %Schema{ + type: :object, + properties: %{status: %Schema{type: :string, example: "success"}} + }), + 400 => Operation.response("Error", "application/json", ApiError), + 403 => Operation.response("Error", "application/json", ApiError), + 404 => Operation.response("Error", "application/json", ApiError) + } + } + end + + defp move_account_request do + %Schema{ + title: "MoveAccountRequest", + description: "POST body for moving the account", + type: :object, + required: [:password, :target_account], + properties: %{ + password: %Schema{type: :string, description: "Current password"}, + target_account: %Schema{ + type: :string, + description: "The nickname of the target account to move to" + } + } + } + end + + def list_aliases_operation do + %Operation{ + tags: ["Account credentials"], + summary: "List account aliases", + security: [%{"oAuth" => ["read:accounts"]}], + operationId: "UtilController.list_aliases", + responses: %{ + 200 => + Operation.response("Success", "application/json", %Schema{ + type: :object, + properties: %{ + aliases: %Schema{ + type: :array, + items: %Schema{type: :string}, + example: ["foo@example.org"] + } + } + }), + 400 => Operation.response("Error", "application/json", ApiError), + 403 => Operation.response("Error", "application/json", ApiError) + } + } + end + + def add_alias_operation do + %Operation{ + tags: ["Account credentials"], + summary: "Add an alias to this account", + security: [%{"oAuth" => ["write:accounts"]}], + operationId: "UtilController.add_alias", + requestBody: request_body("Parameters", add_alias_request(), required: true), + responses: %{ + 200 => + Operation.response("Success", "application/json", %Schema{ + type: :object, + properties: %{ + status: %Schema{ + type: :string, + example: "success" + } + } + }), + 400 => Operation.response("Error", "application/json", ApiError), + 403 => Operation.response("Error", "application/json", ApiError), + 404 => Operation.response("Error", "application/json", ApiError) + } + } + end + + defp add_alias_request do + %Schema{ + title: "AddAliasRequest", + description: "PUT body for adding aliases", + type: :object, + required: [:alias], + properties: %{ + alias: %Schema{ + type: :string, + description: "The nickname of the account to add to aliases" + } + } + } + end + + def delete_alias_operation do + %Operation{ + tags: ["Account credentials"], + summary: "Delete an alias from this account", + security: [%{"oAuth" => ["write:accounts"]}], + operationId: "UtilController.delete_alias", + requestBody: request_body("Parameters", delete_alias_request(), required: true), + responses: %{ + 200 => + Operation.response("Success", "application/json", %Schema{ + type: :object, + properties: %{ + status: %Schema{ + type: :string, + example: "success" + } + } + }), + 400 => Operation.response("Error", "application/json", ApiError), + 403 => Operation.response("Error", "application/json", ApiError), + 404 => Operation.response("Error", "application/json", ApiError) + } + } + end + + defp delete_alias_request do + %Schema{ + title: "DeleteAliasRequest", + description: "PUT body for deleting aliases", + type: :object, + required: [:alias], + properties: %{ + alias: %Schema{ + type: :string, + description: "The nickname of the account to delete from aliases" + } + } + } + end + def healthcheck_operation do %Operation{ tags: ["Accounts"], @@ -234,4 +378,58 @@ def remote_subscribe_operation do responses: %{200 => Operation.response("Web Page", "test/html", %Schema{type: :string})} } end + + def remote_interaction_operation do + %Operation{ + tags: ["Accounts"], + summary: "Remote interaction", + operationId: "UtilController.remote_interaction", + requestBody: request_body("Parameters", remote_interaction_request(), required: true), + responses: %{ + 200 => + Operation.response("Remote interaction URL", "application/json", %Schema{type: :object}) + } + } + end + + defp remote_interaction_request do + %Schema{ + title: "RemoteInteractionRequest", + description: "POST body for remote interaction", + type: :object, + required: [:ap_id, :profile], + properties: %{ + ap_id: %Schema{type: :string, description: "Profile or status ActivityPub ID"}, + profile: %Schema{type: :string, description: "Remote profile webfinger"} + } + } + end + + def show_subscribe_form_operation do + %Operation{ + tags: ["Accounts"], + summary: "Show remote subscribe form", + operationId: "UtilController.show_subscribe_form", + parameters: [], + responses: %{200 => Operation.response("Web Page", "test/html", %Schema{type: :string})} + } + end + + defp delete_account_request do + %Schema{ + title: "AccountDeleteRequest", + description: "POST body for deleting one's own account", + type: :object, + properties: %{ + password: %Schema{ + type: :string, + description: "The user's own password for confirmation.", + format: :password + } + }, + example: %{ + "password" => "prettyp0ony1313" + } + } + end end diff --git a/lib/pleroma/web/api_spec/operations/user_import_operation.ex b/lib/pleroma/web/api_spec/operations/user_import_operation.ex index 8df19f1fc..e99e6e648 100644 --- a/lib/pleroma/web/api_spec/operations/user_import_operation.ex +++ b/lib/pleroma/web/api_spec/operations/user_import_operation.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.ApiSpec.UserImportOperation do diff --git a/lib/pleroma/web/api_spec/render_error.ex b/lib/pleroma/web/api_spec/render_error.ex index e501a6be4..3539af6e4 100644 --- a/lib/pleroma/web/api_spec/render_error.ex +++ b/lib/pleroma/web/api_spec/render_error.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.ApiSpec.RenderError do diff --git a/lib/pleroma/web/api_spec/schemas/account.ex b/lib/pleroma/web/api_spec/schemas/account.ex index bd7143ab9..8aeb821a8 100644 --- a/lib/pleroma/web/api_spec/schemas/account.ex +++ b/lib/pleroma/web/api_spec/schemas/account.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.ApiSpec.Schemas.Account do @@ -33,6 +33,7 @@ defmodule Pleroma.Web.ApiSpec.Schemas.Account do header: %Schema{type: :string, format: :uri}, id: FlakeID, locked: %Schema{type: :boolean}, + mute_expires_at: %Schema{type: :string, format: "date-time", nullable: true}, note: %Schema{type: :string, format: :html}, statuses_count: %Schema{type: :integer}, url: %Schema{type: :string, format: :uri}, @@ -47,12 +48,14 @@ defmodule Pleroma.Web.ApiSpec.Schemas.Account do description: "whether the user allows automatically follow moved following accounts" }, background_image: %Schema{type: :string, nullable: true, format: :uri}, + birthday: %Schema{type: :string, nullable: true, format: :date}, chat_token: %Schema{type: :string}, is_confirmed: %Schema{ type: :boolean, description: "whether the user account is waiting on email confirmation to be activated" }, + show_birthday: %Schema{type: :boolean, nullable: true}, hide_favorites: %Schema{type: :boolean}, hide_followers_count: %Schema{ type: :boolean, @@ -194,13 +197,16 @@ defmodule Pleroma.Web.ApiSpec.Schemas.Account do "id" => "9tKi3esbG7OQgZ2920", "muting" => false, "muting_notifications" => false, + "note" => "", "requested" => false, "showing_reblogs" => true, - "subscribing" => false + "subscribing" => false, + "notifying" => false }, "settings_store" => %{ "pleroma-fe" => %{} - } + }, + "birthday" => "2001-02-12" }, "source" => %{ "fields" => [], diff --git a/lib/pleroma/web/api_spec/schemas/account_field.ex b/lib/pleroma/web/api_spec/schemas/account_field.ex index 7c4f94001..93ba1b5a5 100644 --- a/lib/pleroma/web/api_spec/schemas/account_field.ex +++ b/lib/pleroma/web/api_spec/schemas/account_field.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.ApiSpec.Schemas.AccountField do diff --git a/lib/pleroma/web/api_spec/schemas/account_relationship.ex b/lib/pleroma/web/api_spec/schemas/account_relationship.ex index 16b73ebb4..68219a099 100644 --- a/lib/pleroma/web/api_spec/schemas/account_relationship.ex +++ b/lib/pleroma/web/api_spec/schemas/account_relationship.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.ApiSpec.Schemas.AccountRelationship do @@ -22,9 +22,11 @@ defmodule Pleroma.Web.ApiSpec.Schemas.AccountRelationship do id: FlakeID, muting: %Schema{type: :boolean}, muting_notifications: %Schema{type: :boolean}, + note: %Schema{type: :string}, requested: %Schema{type: :boolean}, showing_reblogs: %Schema{type: :boolean}, - subscribing: %Schema{type: :boolean} + subscribing: %Schema{type: :boolean}, + notifying: %Schema{type: :boolean} }, example: %{ "blocked_by" => false, @@ -36,9 +38,11 @@ defmodule Pleroma.Web.ApiSpec.Schemas.AccountRelationship do "id" => "9tKi3esbG7OQgZ2920", "muting" => false, "muting_notifications" => false, + "note" => "", "requested" => false, "showing_reblogs" => true, - "subscribing" => false + "subscribing" => false, + "notifying" => false } }) end diff --git a/lib/pleroma/web/api_spec/schemas/actor_type.ex b/lib/pleroma/web/api_spec/schemas/actor_type.ex index 1336640a1..13b6b476b 100644 --- a/lib/pleroma/web/api_spec/schemas/actor_type.ex +++ b/lib/pleroma/web/api_spec/schemas/actor_type.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.ApiSpec.Schemas.ActorType do diff --git a/lib/pleroma/web/api_spec/schemas/announcement.ex b/lib/pleroma/web/api_spec/schemas/announcement.ex new file mode 100644 index 000000000..67d129ef6 --- /dev/null +++ b/lib/pleroma/web/api_spec/schemas/announcement.ex @@ -0,0 +1,45 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2022 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + +defmodule Pleroma.Web.ApiSpec.Schemas.Announcement do + alias OpenApiSpex.Schema + alias Pleroma.Web.ApiSpec.Schemas.FlakeID + + require OpenApiSpex + + OpenApiSpex.schema(%{ + title: "Announcement", + description: "Response schema for an announcement", + type: :object, + properties: %{ + id: FlakeID, + content: %Schema{type: :string}, + starts_at: %Schema{ + type: :string, + format: "date-time", + nullable: true + }, + ends_at: %Schema{ + type: :string, + format: "date-time", + nullable: true + }, + all_day: %Schema{type: :boolean}, + published_at: %Schema{type: :string, format: "date-time"}, + updated_at: %Schema{type: :string, format: "date-time"}, + read: %Schema{type: :boolean}, + mentions: %Schema{type: :array}, + statuses: %Schema{type: :array}, + tags: %Schema{type: :array}, + emojis: %Schema{type: :array}, + reactions: %Schema{type: :array}, + pleroma: %Schema{ + type: :object, + properties: %{ + raw_content: %Schema{type: :string} + } + } + } + }) +end diff --git a/lib/pleroma/web/api_spec/schemas/api_error.ex b/lib/pleroma/web/api_spec/schemas/api_error.ex index 0d6d0b75c..58a710761 100644 --- a/lib/pleroma/web/api_spec/schemas/api_error.ex +++ b/lib/pleroma/web/api_spec/schemas/api_error.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.ApiSpec.Schemas.ApiError do diff --git a/lib/pleroma/web/api_spec/schemas/app.ex b/lib/pleroma/web/api_spec/schemas/app.ex new file mode 100644 index 000000000..742413b33 --- /dev/null +++ b/lib/pleroma/web/api_spec/schemas/app.ex @@ -0,0 +1,33 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2022 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + +defmodule Pleroma.Web.ApiSpec.Schemas.App do + alias OpenApiSpex.Schema + + require OpenApiSpex + + OpenApiSpex.schema(%{ + title: "App", + description: "Response schema for an app", + type: :object, + properties: %{ + id: %Schema{type: :string}, + name: %Schema{type: :string}, + client_id: %Schema{type: :string}, + client_secret: %Schema{type: :string}, + redirect_uri: %Schema{type: :string}, + vapid_key: %Schema{type: :string}, + website: %Schema{type: :string, nullable: true} + }, + example: %{ + "id" => "123", + "name" => "My App", + "client_id" => "TWhM-tNSuncnqN7DBJmoyeLnk6K3iJJ71KKXxgL1hPM", + "client_secret" => "ZEaFUFmF0umgBX1qKJDjaU99Q31lDkOU8NutzTOoliw", + "vapid_key" => + "BCk-QqERU0q-CfYZjcuB6lnyyOYfJ2AifKqfeGIm7Z-HiTU5T9eTG5GxVA0_OH5mMlI4UkkDTpaZwozy0TzdZ2M=", + "website" => "https://myapp.com/" + } + }) +end diff --git a/lib/pleroma/web/api_spec/schemas/attachment.ex b/lib/pleroma/web/api_spec/schemas/attachment.ex index ca3659c93..48634a14f 100644 --- a/lib/pleroma/web/api_spec/schemas/attachment.ex +++ b/lib/pleroma/web/api_spec/schemas/attachment.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.ApiSpec.Schemas.Attachment do diff --git a/lib/pleroma/web/api_spec/schemas/boolean_like.ex b/lib/pleroma/web/api_spec/schemas/boolean_like.ex index 94c5020ca..14f728eef 100644 --- a/lib/pleroma/web/api_spec/schemas/boolean_like.ex +++ b/lib/pleroma/web/api_spec/schemas/boolean_like.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.ApiSpec.Schemas.BooleanLike do diff --git a/lib/pleroma/web/api_spec/schemas/chat.ex b/lib/pleroma/web/api_spec/schemas/chat.ex index 4afed910d..a07d12865 100644 --- a/lib/pleroma/web/api_spec/schemas/chat.ex +++ b/lib/pleroma/web/api_spec/schemas/chat.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.ApiSpec.Schemas.Chat do diff --git a/lib/pleroma/web/api_spec/schemas/chat_message.ex b/lib/pleroma/web/api_spec/schemas/chat_message.ex index 348fe95f8..57f7890e5 100644 --- a/lib/pleroma/web/api_spec/schemas/chat_message.ex +++ b/lib/pleroma/web/api_spec/schemas/chat_message.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.ApiSpec.Schemas.ChatMessage do diff --git a/lib/pleroma/web/api_spec/schemas/conversation.ex b/lib/pleroma/web/api_spec/schemas/conversation.ex index 7c609965f..f00a9733f 100644 --- a/lib/pleroma/web/api_spec/schemas/conversation.ex +++ b/lib/pleroma/web/api_spec/schemas/conversation.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.ApiSpec.Schemas.Conversation do diff --git a/lib/pleroma/web/api_spec/schemas/emoji.ex b/lib/pleroma/web/api_spec/schemas/emoji.ex index ceb3c7186..936bbe1da 100644 --- a/lib/pleroma/web/api_spec/schemas/emoji.ex +++ b/lib/pleroma/web/api_spec/schemas/emoji.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.ApiSpec.Schemas.Emoji do diff --git a/lib/pleroma/web/api_spec/schemas/flake_id.ex b/lib/pleroma/web/api_spec/schemas/flake_id.ex index 45314d53a..4c3ec01e7 100644 --- a/lib/pleroma/web/api_spec/schemas/flake_id.ex +++ b/lib/pleroma/web/api_spec/schemas/flake_id.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.ApiSpec.Schemas.FlakeID do diff --git a/lib/pleroma/web/api_spec/schemas/list.ex b/lib/pleroma/web/api_spec/schemas/list.ex index 90f5ec987..e57de7917 100644 --- a/lib/pleroma/web/api_spec/schemas/list.ex +++ b/lib/pleroma/web/api_spec/schemas/list.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.ApiSpec.Schemas.List do diff --git a/lib/pleroma/web/api_spec/schemas/poll.ex b/lib/pleroma/web/api_spec/schemas/poll.ex index 943ad8bd4..91570582b 100644 --- a/lib/pleroma/web/api_spec/schemas/poll.ex +++ b/lib/pleroma/web/api_spec/schemas/poll.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.ApiSpec.Schemas.Poll do diff --git a/lib/pleroma/web/api_spec/schemas/push_subscription.ex b/lib/pleroma/web/api_spec/schemas/push_subscription.ex index 20fe9f304..a5466630b 100644 --- a/lib/pleroma/web/api_spec/schemas/push_subscription.ex +++ b/lib/pleroma/web/api_spec/schemas/push_subscription.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.ApiSpec.Schemas.PushSubscription do diff --git a/lib/pleroma/web/api_spec/schemas/scheduled_status.ex b/lib/pleroma/web/api_spec/schemas/scheduled_status.ex index 607586e32..a1acda1e8 100644 --- a/lib/pleroma/web/api_spec/schemas/scheduled_status.ex +++ b/lib/pleroma/web/api_spec/schemas/scheduled_status.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.ApiSpec.Schemas.ScheduledStatus do diff --git a/lib/pleroma/web/api_spec/schemas/status.ex b/lib/pleroma/web/api_spec/schemas/status.ex index 3d042dc19..698f11794 100644 --- a/lib/pleroma/web/api_spec/schemas/status.ex +++ b/lib/pleroma/web/api_spec/schemas/status.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.ApiSpec.Schemas.Status do @@ -73,6 +73,12 @@ defmodule Pleroma.Web.ApiSpec.Schemas.Status do format: "date-time", description: "The date when this status was created" }, + edited_at: %Schema{ + type: :string, + format: "date-time", + nullable: true, + description: "The date when this status was last edited" + }, emojis: %Schema{ type: :array, items: Emoji, @@ -142,9 +148,15 @@ defmodule Pleroma.Web.ApiSpec.Schemas.Status do description: "A map consisting of alternate representations of the `content` property with the key being it's mimetype. Currently the only alternate representation supported is `text/plain`" }, + context: %Schema{ + type: :string, + description: "The thread identifier the status is associated with" + }, conversation_id: %Schema{ type: :integer, - description: "The ID of the AP context the status is associated with (if any)" + deprecated: true, + description: + "The ID of the AP context the status is associated with (if any); deprecated, please use `context` instead" }, direct_conversation_id: %Schema{ type: :integer, @@ -282,9 +294,11 @@ defmodule Pleroma.Web.ApiSpec.Schemas.Status do "id" => "9toJCsKN7SmSf3aj5c", "muting" => false, "muting_notifications" => false, + "note" => "", "requested" => false, "showing_reblogs" => true, - "subscribing" => false + "subscribing" => false, + "notifying" => false }, "skip_thread_containment" => false, "tags" => [] @@ -317,6 +331,7 @@ defmodule Pleroma.Web.ApiSpec.Schemas.Status do "pinned" => false, "pleroma" => %{ "content" => %{"text/plain" => "foobar"}, + "context" => "http://localhost:4001/objects/8b4c0c80-6a37-4d2a-b1b9-05a19e3875aa", "conversation_id" => 345_972, "direct_conversation_id" => nil, "emoji_reactions" => [], diff --git a/lib/pleroma/web/api_spec/schemas/tag.ex b/lib/pleroma/web/api_spec/schemas/tag.ex index 657b675e5..66bf0ca71 100644 --- a/lib/pleroma/web/api_spec/schemas/tag.ex +++ b/lib/pleroma/web/api_spec/schemas/tag.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.ApiSpec.Schemas.Tag do diff --git a/lib/pleroma/web/api_spec/schemas/visibility_scope.ex b/lib/pleroma/web/api_spec/schemas/visibility_scope.ex index 25a08a0b2..ecd247ba4 100644 --- a/lib/pleroma/web/api_spec/schemas/visibility_scope.ex +++ b/lib/pleroma/web/api_spec/schemas/visibility_scope.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.ApiSpec.Schemas.VisibilityScope do diff --git a/lib/pleroma/web/auth/authenticator.ex b/lib/pleroma/web/auth/authenticator.ex index 3fe9718c4..a0bd154db 100644 --- a/lib/pleroma/web/auth/authenticator.ex +++ b/lib/pleroma/web/auth/authenticator.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.Auth.Authenticator do diff --git a/lib/pleroma/web/auth/helpers.ex b/lib/pleroma/web/auth/helpers.ex index c566de8d4..02e1f39ab 100644 --- a/lib/pleroma/web/auth/helpers.ex +++ b/lib/pleroma/web/auth/helpers.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.Auth.Helpers do diff --git a/lib/pleroma/web/auth/ldap_authenticator.ex b/lib/pleroma/web/auth/ldap_authenticator.ex index f77e8d203..e8cd4491c 100644 --- a/lib/pleroma/web/auth/ldap_authenticator.ex +++ b/lib/pleroma/web/auth/ldap_authenticator.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.Auth.LDAPAuthenticator do diff --git a/lib/pleroma/web/auth/pleroma_authenticator.ex b/lib/pleroma/web/auth/pleroma_authenticator.ex index 68472e75f..09a58eb66 100644 --- a/lib/pleroma/web/auth/pleroma_authenticator.ex +++ b/lib/pleroma/web/auth/pleroma_authenticator.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.Auth.PleromaAuthenticator do diff --git a/lib/pleroma/web/auth/totp_authenticator.ex b/lib/pleroma/web/auth/totp_authenticator.ex index 5947cd8c9..4be3641fd 100644 --- a/lib/pleroma/web/auth/totp_authenticator.ex +++ b/lib/pleroma/web/auth/totp_authenticator.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.Auth.TOTPAuthenticator do diff --git a/lib/pleroma/web/auth/wrapper_authenticator.ex b/lib/pleroma/web/auth/wrapper_authenticator.ex index c67082f7b..a077cfa41 100644 --- a/lib/pleroma/web/auth/wrapper_authenticator.ex +++ b/lib/pleroma/web/auth/wrapper_authenticator.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.Auth.WrapperAuthenticator do diff --git a/lib/pleroma/web/channels/user_socket.ex b/lib/pleroma/web/channels/user_socket.ex index 043206835..0f61b80c3 100644 --- a/lib/pleroma/web/channels/user_socket.ex +++ b/lib/pleroma/web/channels/user_socket.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.UserSocket do diff --git a/lib/pleroma/web/common_api.ex b/lib/pleroma/web/common_api.ex index 1b5f8491e..89cc0d6fe 100644 --- a/lib/pleroma/web/common_api.ex +++ b/lib/pleroma/web/common_api.ex @@ -1,11 +1,12 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.CommonAPI do alias Pleroma.Activity alias Pleroma.Conversation.Participation alias Pleroma.Formatter + alias Pleroma.ModerationLog alias Pleroma.Object alias Pleroma.ThreadMute alias Pleroma.User @@ -117,7 +118,8 @@ def follow(follower, followed) do def unfollow(follower, unfollowed) do with {:ok, follower, _follow_activity} <- User.unfollow(follower, unfollowed), {:ok, _activity} <- ActivityPub.unfollow(follower, unfollowed), - {:ok, _subscription} <- User.unsubscribe(follower, unfollowed) do + {:ok, _subscription} <- User.unsubscribe(follower, unfollowed), + {:ok, _endorsement} <- User.unendorse(follower, unfollowed) do {:ok, follower} end end @@ -143,9 +145,24 @@ def delete(activity_id, user) do {:find_activity, Activity.get_by_id(activity_id)}, {_, %Object{} = object, _} <- {:find_object, Object.normalize(activity, fetch: false), activity}, - true <- User.superuser?(user) || user.ap_id == object.data["actor"], + true <- User.privileged?(user, :messages_delete) || user.ap_id == object.data["actor"], {:ok, delete_data, _} <- Builder.delete(user, object.data["id"]), {:ok, delete, _} <- Pipeline.common_pipeline(delete_data, local: true) do + if User.privileged?(user, :messages_delete) and user.ap_id != object.data["actor"] do + action = + if object.data["type"] == "ChatMessage" do + "chat_message_delete" + else + "status_delete" + end + + ModerationLog.insert_log(%{ + action: action, + actor: user, + subject_id: activity_id + }) + end + {:ok, delete} else {:find_activity, _} -> @@ -401,6 +418,41 @@ def post(user, %{status: _} = data) do end end + def update(user, orig_activity, changes) do + with orig_object <- Object.normalize(orig_activity), + {:ok, new_object} <- make_update_data(user, orig_object, changes), + {:ok, update_data, _} <- Builder.update(user, new_object), + {:ok, update, _} <- Pipeline.common_pipeline(update_data, local: true) do + {:ok, update} + else + _ -> {:error, nil} + end + end + + defp make_update_data(user, orig_object, changes) do + kept_params = %{ + visibility: Visibility.get_visibility(orig_object), + in_reply_to_id: + with replied_id when is_binary(replied_id) <- orig_object.data["inReplyTo"], + %Activity{id: activity_id} <- Activity.get_create_by_object_ap_id(replied_id) do + activity_id + else + _ -> nil + end + } + + params = Map.merge(changes, kept_params) + + with {:ok, draft} <- ActivityDraft.create(user, params) do + change = + Object.Updater.make_update_object_data(orig_object.data, draft.object, Utils.make_date()) + + {:ok, change} + else + _ -> {:error, nil} + end + end + @spec pin(String.t(), User.t()) :: {:ok, Activity.t()} | {:error, term()} def pin(id, %User{} = user) do with %Activity{} = activity <- create_activity_by_id(id), @@ -487,9 +539,7 @@ def remove_mute(user_id, activity_id) do else {what, result} = error -> Logger.warn( - "CommonAPI.remove_mute/2 failed. #{what}: #{result}, user_id: #{user_id}, activity_id: #{ - activity_id - }" + "CommonAPI.remove_mute/2 failed. #{what}: #{result}, user_id: #{user_id}, activity_id: #{activity_id}" ) {:error, error} diff --git a/lib/pleroma/web/common_api/activity_draft.ex b/lib/pleroma/web/common_api/activity_draft.ex index c691d71d2..9af635da8 100644 --- a/lib/pleroma/web/common_api/activity_draft.ex +++ b/lib/pleroma/web/common_api/activity_draft.ex @@ -1,11 +1,12 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.CommonAPI.ActivityDraft do alias Pleroma.Activity alias Pleroma.Conversation.Participation alias Pleroma.Object + alias Pleroma.Web.ActivityPub.Builder alias Pleroma.Web.CommonAPI alias Pleroma.Web.CommonAPI.Utils @@ -111,7 +112,12 @@ defp full_payload(%{status: status, summary: summary} = draft) do defp attachments(%{params: params} = draft) do attachments = Utils.attachments_from_ids(params) - %__MODULE__{draft | attachments: attachments} + draft = %__MODULE__{draft | attachments: attachments} + + case Utils.validate_attachments_count(attachments) do + :ok -> draft + {:error, message} -> add_error(draft, message) + end end defp in_reply_to(%{params: %{in_reply_to_status_id: ""}} = draft), do: draft @@ -213,10 +219,15 @@ defp object(draft) do emoji = Map.merge(emoji, summary_emoji) + {:ok, note_data, _meta} = Builder.note(draft) + object = - Utils.make_note_data(draft) + note_data |> Map.put("emoji", emoji) - |> Map.put("source", draft.status) + |> Map.put("source", %{ + "content" => draft.status, + "mediaType" => Utils.get_content_type(draft.params[:content_type]) + }) |> Map.put("generator", draft.params[:generator]) %__MODULE__{draft | object: object} diff --git a/lib/pleroma/web/common_api/utils.ex b/lib/pleroma/web/common_api/utils.ex index 10eb48250..ff0814329 100644 --- a/lib/pleroma/web/common_api/utils.ex +++ b/lib/pleroma/web/common_api/utils.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.CommonAPI.Utils do @@ -37,7 +37,7 @@ def attachments_from_ids_no_descs([]), do: [] def attachments_from_ids_no_descs(ids) do Enum.map(ids, fn media_id -> - case Repo.get(Object, media_id) do + case get_attachment(media_id) do %Object{data: data} -> data _ -> nil end @@ -51,13 +51,17 @@ def attachments_from_ids_descs(ids, descs_str) do {_, descs} = Jason.decode(descs_str) Enum.map(ids, fn media_id -> - with %Object{data: data} <- Repo.get(Object, media_id) do + with %Object{data: data} <- get_attachment(media_id) do Map.put(data, "name", descs[media_id]) end end) |> Enum.reject(&is_nil/1) end + defp get_attachment(media_id) do + Repo.get(Object, media_id) + end + @spec get_to_and_cc(ActivityDraft.t()) :: {list(String.t()), list(String.t())} def get_to_and_cc(%{in_reply_to_conversation: %Participation{} = participation}) do @@ -219,7 +223,7 @@ def make_content_html(%ActivityDraft{} = draft) do |> maybe_add_attachments(draft.attachments, attachment_links) end - defp get_content_type(content_type) do + def get_content_type(content_type) do if Enum.member?(Config.get([:instance, :allowed_post_formats]), content_type) do content_type else @@ -291,33 +295,6 @@ def format_input(text, "text/markdown", options) do |> Formatter.html_escape("text/html") end - def make_note_data(%ActivityDraft{} = draft) do - %{ - "type" => "Note", - "to" => draft.to, - "cc" => draft.cc, - "content" => draft.content_html, - "summary" => draft.summary, - "sensitive" => draft.sensitive, - "context" => draft.context, - "attachment" => draft.attachments, - "actor" => draft.user.ap_id, - "tag" => Keyword.values(draft.tags) |> Enum.uniq() - } - |> add_in_reply_to(draft.in_reply_to) - |> Map.merge(draft.extra) - end - - defp add_in_reply_to(object, nil), do: object - - defp add_in_reply_to(object, in_reply_to) do - with %Object{} = in_reply_to_object <- Object.normalize(in_reply_to, fetch: false) do - Map.put(object, "inReplyTo", in_reply_to_object.data["id"]) - else - _ -> object - end - end - def format_naive_asctime(date) do date |> DateTime.from_naive!("Etc/UTC") |> format_asctime end @@ -476,35 +453,6 @@ def get_report_statuses(%User{ap_id: actor}, %{status_ids: status_ids}) def get_report_statuses(_, _), do: {:ok, nil} - # DEPRECATED mostly, context objects are now created at insertion time. - def context_to_conversation_id(context) do - with %Object{id: id} <- Object.get_cached_by_ap_id(context) do - id - else - _e -> - changeset = Object.context_mapping(context) - - case Repo.insert(changeset) do - {:ok, %{id: id}} -> - id - - # This should be solved by an upsert, but it seems ecto - # has problems accessing the constraint inside the jsonb. - {:error, _} -> - Object.get_cached_by_ap_id(context).id - end - end - end - - def conversation_id_to_context(id) do - with %Object{data: %{"id" => context}} <- Repo.get(Object, id) do - context - else - _e -> - {:error, dgettext("errors", "No such conversation")} - end - end - def validate_character_limit("" = _full_payload, [] = _attachments) do {:error, dgettext("errors", "Cannot post an empty status without attachments")} end @@ -519,4 +467,19 @@ def validate_character_limit(full_payload, _attachments) do {:error, dgettext("errors", "The status is over the character limit")} end end + + def validate_attachments_count([] = _attachments) do + :ok + end + + def validate_attachments_count(attachments) do + limit = Config.get([:instance, :max_media_attachments]) + count = length(attachments) + + if count <= limit do + :ok + else + {:error, dgettext("errors", "Too many attachments")} + end + end end diff --git a/lib/pleroma/web/controller_helper.ex b/lib/pleroma/web/controller_helper.ex index 7b84b43e4..0c7fc17f4 100644 --- a/lib/pleroma/web/controller_helper.ex +++ b/lib/pleroma/web/controller_helper.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.ControllerHelper do diff --git a/lib/pleroma/web/embed_controller.ex b/lib/pleroma/web/embed_controller.ex index c7912bb1f..8b9f0a051 100644 --- a/lib/pleroma/web/embed_controller.ex +++ b/lib/pleroma/web/embed_controller.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.EmbedController do diff --git a/lib/pleroma/web/endpoint.ex b/lib/pleroma/web/endpoint.ex index 8e274de88..d8d40cceb 100644 --- a/lib/pleroma/web/endpoint.ex +++ b/lib/pleroma/web/endpoint.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.Endpoint do @@ -10,6 +10,7 @@ defmodule Pleroma.Web.Endpoint do alias Pleroma.Config socket("/socket", Pleroma.Web.UserSocket) + socket("/live", Phoenix.LiveView.Socket) plug(Plug.Telemetry, event_prefix: [:phoenix, :endpoint]) diff --git a/lib/pleroma/web/fallback/legacy_pleroma_api_rerouter_plug.ex b/lib/pleroma/web/fallback/legacy_pleroma_api_rerouter_plug.ex index f86d6b52b..6176f3d90 100644 --- a/lib/pleroma/web/fallback/legacy_pleroma_api_rerouter_plug.ex +++ b/lib/pleroma/web/fallback/legacy_pleroma_api_rerouter_plug.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.Fallback.LegacyPleromaApiRerouterPlug do diff --git a/lib/pleroma/web/fallback/redirect_controller.ex b/lib/pleroma/web/fallback/redirect_controller.ex index 5fca290e5..1a86f7a53 100644 --- a/lib/pleroma/web/fallback/redirect_controller.ex +++ b/lib/pleroma/web/fallback/redirect_controller.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.Fallback.RedirectController do diff --git a/lib/pleroma/web/federator.ex b/lib/pleroma/web/federator.ex index 69cfc2d52..318b6cb11 100644 --- a/lib/pleroma/web/federator.ex +++ b/lib/pleroma/web/federator.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.Federator do @@ -47,10 +47,15 @@ def publish(%{id: "pleroma:fakeid"} = activity) do end @impl true - def publish(activity) do - PublisherWorker.enqueue("publish", %{"activity_id" => activity.id}) + def publish(%Pleroma.Activity{data: %{"type" => type}} = activity) do + PublisherWorker.enqueue("publish", %{"activity_id" => activity.id}, + priority: publish_priority(type) + ) end + defp publish_priority("Delete"), do: 3 + defp publish_priority(_), do: 0 + # Job Worker Callbacks @spec perform(atom(), module(), any()) :: {:ok, any()} | {:error, any()} @@ -61,10 +66,8 @@ def perform(:publish_one, module, params) do def perform(:publish, activity) do Logger.debug(fn -> "Running publish for #{activity.data["id"]}" end) - with %User{} = actor <- User.get_cached_by_ap_id(activity.data["actor"]), - {:ok, actor} <- User.ensure_keys_present(actor) do - Publisher.publish(actor, activity) - end + %User{} = actor = User.get_cached_by_ap_id(activity.data["actor"]) + Publisher.publish(actor, activity) end def perform(:incoming_ap_doc, params) do diff --git a/lib/pleroma/web/federator/publisher.ex b/lib/pleroma/web/federator/publisher.ex index b7ee56803..a45796e9d 100644 --- a/lib/pleroma/web/federator/publisher.ex +++ b/lib/pleroma/web/federator/publisher.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.Federator.Publisher do diff --git a/lib/pleroma/web/federator/publishing.ex b/lib/pleroma/web/federator/publishing.ex index fe7805be9..3a242b8dc 100644 --- a/lib/pleroma/web/federator/publishing.ex +++ b/lib/pleroma/web/federator/publishing.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.Federator.Publishing do diff --git a/lib/pleroma/web/feed/feed_view.ex b/lib/pleroma/web/feed/feed_view.ex index c0fb35e01..449659f4b 100644 --- a/lib/pleroma/web/feed/feed_view.ex +++ b/lib/pleroma/web/feed/feed_view.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.Feed.FeedView do @@ -9,18 +9,13 @@ defmodule Pleroma.Web.Feed.FeedView do alias Pleroma.Formatter alias Pleroma.Object alias Pleroma.User + alias Pleroma.Web.Gettext alias Pleroma.Web.MediaProxy require Pleroma.Constants - @spec pub_date(String.t() | DateTime.t()) :: String.t() - def pub_date(date) when is_binary(date) do - date - |> Timex.parse!("{ISO:Extended}") - |> pub_date - end - - def pub_date(%DateTime{} = date), do: Timex.format!(date, "{RFC822}") + @days ~w(Mon Tue Wed Thu Fri Sat Sun) + @months ~w(Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec) def prepare_activity(activity, opts \\ []) do object = Object.normalize(activity, fetch: false) @@ -40,13 +35,18 @@ def prepare_activity(activity, opts \\ []) do def most_recent_update(activities) do with %{updated_at: updated_at} <- List.first(activities) do - NaiveDateTime.to_iso8601(updated_at) + to_rfc3339(updated_at) end end - def most_recent_update(activities, user) do + def most_recent_update(activities, user, :atom) do (List.first(activities) || user).updated_at - |> NaiveDateTime.to_iso8601() + |> to_rfc3339() + end + + def most_recent_update(activities, user, :rss) do + (List.first(activities) || user).updated_at + |> to_rfc2822() end def feed_logo do @@ -60,6 +60,10 @@ def feed_logo do |> MediaProxy.url() end + def email(user) do + user.nickname <> "@" <> Pleroma.Web.Endpoint.host() + end + def logo(user) do user |> User.avatar_url() @@ -68,18 +72,34 @@ def logo(user) do def last_activity(activities), do: List.last(activities) - def activity_title(%{"content" => content}, opts \\ %{}) do - content + def activity_title(%{"content" => content, "summary" => summary} = data, opts \\ %{}) do + title = + cond do + summary != "" -> summary + content != "" -> activity_content(data) + true -> "a post" + end + + title |> Pleroma.Web.Metadata.Utils.scrub_html() |> Pleroma.Emoji.Formatter.demojify() |> Formatter.truncate(opts[:max_length], opts[:omission]) - |> escape() + end + + def activity_description(data) do + content = activity_content(data) + summary = data["summary"] + + cond do + content != "" -> escape(content) + summary != "" -> escape(summary) + true -> escape(data["type"]) + end end def activity_content(%{"content" => content}) do content |> String.replace(~r/[\n\r]/, "") - |> escape() end def activity_content(_), do: "" @@ -111,4 +131,60 @@ def escape(html) do |> html_escape() |> safe_to_string() end + + @spec to_rfc3339(String.t() | NativeDateTime.t()) :: String.t() + def to_rfc3339(date) when is_binary(date) do + date + |> Timex.parse!("{ISO:Extended}") + |> to_rfc3339() + end + + def to_rfc3339(nd) do + nd + |> Timex.to_datetime() + |> Timex.format!("{RFC3339}") + end + + @spec to_rfc2822(String.t() | DateTime.t() | NativeDateTime.t()) :: String.t() + def to_rfc2822(datestr) when is_binary(datestr) do + datestr + |> Timex.parse!("{ISO:Extended}") + |> to_rfc2822() + end + + def to_rfc2822(%DateTime{} = date) do + date + |> DateTime.to_naive() + |> NaiveDateTime.to_erl() + |> rfc2822_from_erl() + end + + def to_rfc2822(nd) do + nd + |> Timex.to_datetime() + |> DateTime.to_naive() + |> NaiveDateTime.to_erl() + |> rfc2822_from_erl() + end + + @doc """ + Builds a RFC2822 timestamp from an Erlang timestamp + [RFC2822 3.3 - Date and Time Specification](https://tools.ietf.org/html/rfc2822#section-3.3) + This function always assumes the Erlang timestamp is in Universal time, not Local time + """ + def rfc2822_from_erl({{year, month, day} = date, {hour, minute, second}}) do + day_name = Enum.at(@days, :calendar.day_of_the_week(date) - 1) + month_name = Enum.at(@months, month - 1) + + date_part = "#{day_name}, #{day} #{month_name} #{year}" + time_part = "#{pad(hour)}:#{pad(minute)}:#{pad(second)}" + + date_part <> " " <> time_part <> " +0000" + end + + defp pad(num) do + num + |> Integer.to_string() + |> String.pad_leading(2, "0") + end end diff --git a/lib/pleroma/web/feed/tag_controller.ex b/lib/pleroma/web/feed/tag_controller.ex index ef9293a55..e60767327 100644 --- a/lib/pleroma/web/feed/tag_controller.ex +++ b/lib/pleroma/web/feed/tag_controller.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.Feed.TagController do diff --git a/lib/pleroma/web/feed/user_controller.ex b/lib/pleroma/web/feed/user_controller.ex index fa7879caf..6657c2b3e 100644 --- a/lib/pleroma/web/feed/user_controller.ex +++ b/lib/pleroma/web/feed/user_controller.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.Feed.UserController do @@ -18,6 +18,8 @@ defmodule Pleroma.Web.Feed.UserController do def feed_redirect(%{assigns: %{format: "html"}} = conn, %{"nickname" => nickname}) do with {_, %User{} = user} <- {:fetch_user, User.get_cached_by_nickname_or_id(nickname)} do Pleroma.Web.Fallback.RedirectController.redirector_with_meta(conn, %{user: user}) + else + _ -> Pleroma.Web.Fallback.RedirectController.redirector(conn, nil) end end diff --git a/lib/pleroma/web/gettext.ex b/lib/pleroma/web/gettext.ex index c0ca4d0e9..5ef49d841 100644 --- a/lib/pleroma/web/gettext.ex +++ b/lib/pleroma/web/gettext.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.Gettext do @@ -25,4 +25,196 @@ defmodule Pleroma.Web.Gettext do See the [Gettext Docs](https://hexdocs.pm/gettext) for detailed usage. """ use Gettext, otp_app: :pleroma + + def language_tag do + # Naive implementation: HTML lang attribute uses BCP 47, which + # uses - as a separator. + # https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/lang + + Gettext.get_locale() + |> String.replace("_", "-", global: true) + end + + def normalize_locale(locale) do + if is_binary(locale) do + String.replace(locale, "-", "_", global: true) + else + nil + end + end + + def supports_locale?(locale) do + Pleroma.Web.Gettext + |> Gettext.known_locales() + |> Enum.member?(locale) + end + + def variant?(locale), do: String.contains?(locale, "_") + + def language_for_variant(locale) do + Enum.at(String.split(locale, "_"), 0) + end + + def ensure_fallbacks(locales) do + locales + |> Enum.flat_map(fn locale -> + others = + other_supported_variants_of_locale(locale) + |> Enum.filter(fn l -> not Enum.member?(locales, l) end) + + [locale] ++ others + end) + end + + def other_supported_variants_of_locale(locale) do + cond do + supports_locale?(locale) -> + [] + + variant?(locale) -> + lang = language_for_variant(locale) + if supports_locale?(lang), do: [lang], else: [] + + true -> + Gettext.known_locales(Pleroma.Web.Gettext) + |> Enum.filter(fn l -> String.starts_with?(l, locale <> "_") end) + end + end + + def get_locales do + Process.get({Pleroma.Web.Gettext, :locales}, []) + end + + def is_locale_list(locales) do + Enum.all?(locales, &is_binary/1) + end + + def put_locales(locales) do + if is_locale_list(locales) do + Process.put({Pleroma.Web.Gettext, :locales}, Enum.uniq(locales)) + Gettext.put_locale(Enum.at(locales, 0, Gettext.get_locale())) + :ok + else + {:error, :not_locale_list} + end + end + + def locale_or_default(locale) do + if supports_locale?(locale) do + locale + else + Gettext.get_locale() + end + end + + def with_locales_func(locales, fun) do + prev_locales = Process.get({Pleroma.Web.Gettext, :locales}) + put_locales(locales) + + try do + fun.() + after + if prev_locales do + put_locales(prev_locales) + else + Process.delete({Pleroma.Web.Gettext, :locales}) + Process.delete(Gettext) + end + end + end + + defmacro with_locales(locales, do: fun) do + quote do + Pleroma.Web.Gettext.with_locales_func(unquote(locales), fn -> + unquote(fun) + end) + end + end + + def to_locale_list(locale) when is_binary(locale) do + locale + |> String.split(",") + |> Enum.filter(&supports_locale?/1) + end + + def to_locale_list(_), do: [] + + defmacro with_locale_or_default(locale, do: fun) do + quote do + Pleroma.Web.Gettext.with_locales_func( + Pleroma.Web.Gettext.to_locale_list(unquote(locale)) + |> Enum.concat(Pleroma.Web.Gettext.get_locales()), + fn -> + unquote(fun) + end + ) + end + end + + defp next_locale(locale, list) do + index = Enum.find_index(list, fn item -> item == locale end) + + if not is_nil(index) do + Enum.at(list, index + 1) + else + nil + end + end + + # We do not yet have a proper English translation. The "English" + # version is currently but the fallback msgid. However, this + # will not work if the user puts English as the first language, + # and at the same time specifies other languages, as gettext will + # think the English translation is missing, and call + # handle_missing_translation functions. This may result in + # text in other languages being shown even if English is preferred + # by the user. + # + # To prevent this, we do not allow fallbacking when the current + # locale missing a translation is English. + defp should_fallback?(locale) do + locale != "en" + end + + def handle_missing_translation(locale, domain, msgctxt, msgid, bindings) do + next = next_locale(locale, get_locales()) + + if is_nil(next) or not should_fallback?(locale) do + super(locale, domain, msgctxt, msgid, bindings) + else + {:ok, + Gettext.with_locale(next, fn -> + Gettext.dpgettext(Pleroma.Web.Gettext, domain, msgctxt, msgid, bindings) + end)} + end + end + + def handle_missing_plural_translation( + locale, + domain, + msgctxt, + msgid, + msgid_plural, + n, + bindings + ) do + next = next_locale(locale, get_locales()) + + if is_nil(next) or not should_fallback?(locale) do + super(locale, domain, msgctxt, msgid, msgid_plural, n, bindings) + else + {:ok, + Gettext.with_locale(next, fn -> + Gettext.dpngettext( + Pleroma.Web.Gettext, + domain, + msgctxt, + msgid, + msgid_plural, + n, + bindings + ) + end)} + end + end end diff --git a/lib/pleroma/web/instance_document.ex b/lib/pleroma/web/instance_document.ex index a33bf605b..9da3c5008 100644 --- a/lib/pleroma/web/instance_document.ex +++ b/lib/pleroma/web/instance_document.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.InstanceDocument do diff --git a/lib/pleroma/web/mailer/subscription_controller.ex b/lib/pleroma/web/mailer/subscription_controller.ex index f89abe46a..f2fc8fbc8 100644 --- a/lib/pleroma/web/mailer/subscription_controller.ex +++ b/lib/pleroma/web/mailer/subscription_controller.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.Mailer.SubscriptionController do diff --git a/lib/pleroma/web/manifest_controller.ex b/lib/pleroma/web/manifest_controller.ex new file mode 100644 index 000000000..3b02e4bc0 --- /dev/null +++ b/lib/pleroma/web/manifest_controller.ex @@ -0,0 +1,14 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2022 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + +defmodule Pleroma.Web.ManifestController do + use Pleroma.Web, :controller + + plug(:skip_auth when action == :show) + + @doc "GET /manifest.json" + def show(conn, _params) do + render(conn, "manifest.json") + end +end diff --git a/lib/pleroma/web/masto_fe_controller.ex b/lib/pleroma/web/masto_fe_controller.ex deleted file mode 100644 index d2460f51d..000000000 --- a/lib/pleroma/web/masto_fe_controller.ex +++ /dev/null @@ -1,61 +0,0 @@ -# Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors -# SPDX-License-Identifier: AGPL-3.0-only - -defmodule Pleroma.Web.MastoFEController do - use Pleroma.Web, :controller - - alias Pleroma.User - alias Pleroma.Web.MastodonAPI.AuthController - alias Pleroma.Web.OAuth.Token - alias Pleroma.Web.Plugs.OAuthScopesPlug - - plug(OAuthScopesPlug, %{scopes: ["write:accounts"]} when action == :put_settings) - - # Note: :index action handles attempt of unauthenticated access to private instance with redirect - plug(:skip_public_check when action == :index) - - plug( - OAuthScopesPlug, - %{scopes: ["read"], fallback: :proceed_unauthenticated} - when action == :index - ) - - plug(:skip_auth when action == :manifest) - - @doc "GET /web/*path" - def index(conn, _params) do - with %{assigns: %{user: %User{} = user, token: %Token{app_id: token_app_id} = token}} <- conn, - {:ok, %{id: ^token_app_id}} <- AuthController.local_mastofe_app() do - conn - |> put_layout(false) - |> render("index.html", - token: token.token, - user: user, - custom_emojis: Pleroma.Emoji.get_all() - ) - else - _ -> - conn - |> put_session(:return_to, conn.request_path) - |> redirect(to: "/web/login") - end - end - - @doc "GET /web/manifest.json" - def manifest(conn, _params) do - render(conn, "manifest.json") - end - - @doc "PUT /api/web/settings: Backend-obscure settings blob for MastoFE, don't parse/reuse elsewhere" - def put_settings(%{assigns: %{user: user}} = conn, %{"data" => settings} = _params) do - with {:ok, _} <- User.mastodon_settings_update(user, settings) do - json(conn, %{}) - else - e -> - conn - |> put_status(:internal_server_error) - |> json(%{error: inspect(e)}) - end - end -end diff --git a/lib/pleroma/web/mastodon_api/controllers/account_controller.ex b/lib/pleroma/web/mastodon_api/controllers/account_controller.ex index 0a4a72bb4..ea6e593d9 100644 --- a/lib/pleroma/web/mastodon_api/controllers/account_controller.ex +++ b/lib/pleroma/web/mastodon_api/controllers/account_controller.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.MastodonAPI.AccountController do @@ -15,6 +15,7 @@ defmodule Pleroma.Web.MastodonAPI.AccountController do alias Pleroma.Maps alias Pleroma.User + alias Pleroma.UserNote alias Pleroma.Web.ActivityPub.ActivityPub alias Pleroma.Web.ActivityPub.Builder alias Pleroma.Web.ActivityPub.Pipeline @@ -31,7 +32,7 @@ defmodule Pleroma.Web.MastodonAPI.AccountController do plug(Pleroma.Web.ApiSpec.CastAndValidate) - plug(:skip_auth when action == :create) + plug(:skip_auth when action in [:create, :lookup]) plug(:skip_public_check when action in [:show, :statuses]) @@ -53,7 +54,11 @@ defmodule Pleroma.Web.MastodonAPI.AccountController do when action in [:verify_credentials, :endorsements, :identity_proofs] ) - plug(OAuthScopesPlug, %{scopes: ["write:accounts"]} when action == :update_credentials) + plug( + OAuthScopesPlug, + %{scopes: ["write:accounts"]} + when action in [:update_credentials, :note, :endorse, :unendorse] + ) plug(OAuthScopesPlug, %{scopes: ["read:lists"]} when action == :lists) @@ -71,15 +76,19 @@ defmodule Pleroma.Web.MastodonAPI.AccountController do plug( OAuthScopesPlug, - %{scopes: ["follow", "write:follows"]} when action in [:follow_by_uri, :follow, :unfollow] + %{scopes: ["follow", "write:follows"]} + when action in [:follow_by_uri, :follow, :unfollow, :remove_from_followers] ) plug(OAuthScopesPlug, %{scopes: ["follow", "read:mutes"]} when action == :mutes) plug(OAuthScopesPlug, %{scopes: ["follow", "write:mutes"]} when action in [:mute, :unmute]) - @relationship_actions [:follow, :unfollow] - @needs_account ~W(followers following lists follow unfollow mute unmute block unblock)a + @relationship_actions [:follow, :unfollow, :remove_from_followers] + @needs_account ~W( + followers following lists follow unfollow mute unmute block unblock + note endorse unendorse remove_from_followers + )a plug( RateLimiter, @@ -184,7 +193,8 @@ def update_credentials(%{assigns: %{user: user}, body_params: params} = conn, _p :skip_thread_containment, :allow_following_move, :also_known_as, - :accepts_chat_messages + :accepts_chat_messages, + :show_birthday ] |> Enum.reduce(%{}, fn key, acc -> Maps.put_if_present(acc, key, params[key], &{:ok, Params.truthy_param?(&1)}) @@ -212,6 +222,8 @@ def update_credentials(%{assigns: %{user: user}, body_params: params} = conn, _p |> Maps.put_if_present(:is_locked, params[:locked]) # Note: param name is indeed :discoverable (not an error) |> Maps.put_if_present(:is_discoverable, params[:discoverable]) + |> Maps.put_if_present(:birthday, params[:birthday]) + |> Maps.put_if_present(:language, Pleroma.Web.Gettext.normalize_locale(params[:language])) # What happens here: # @@ -242,7 +254,17 @@ def update_credentials(%{assigns: %{user: user}, body_params: params} = conn, _p with_pleroma_settings: true ) else - _e -> render_error(conn, :forbidden, "Invalid request") + {:error, %Ecto.Changeset{errors: [avatar: {"file is too large", _}]}} -> + render_error(conn, :request_entity_too_large, "File is too large") + + {:error, %Ecto.Changeset{errors: [banner: {"file is too large", _}]}} -> + render_error(conn, :request_entity_too_large, "File is too large") + + {:error, %Ecto.Changeset{errors: [background: {"file is too large", _}]}} -> + render_error(conn, :request_entity_too_large, "File is too large") + + _e -> + render_error(conn, :forbidden, "Invalid request") end end @@ -401,6 +423,10 @@ def unfollow(%{assigns: %{user: follower, account: followed}} = conn, _params) d @doc "POST /api/v1/accounts/:id/mute" def mute(%{assigns: %{user: muter, account: muted}, body_params: params} = conn, _params) do + params = + params + |> Map.put_new(:duration, Map.get(params, :expires_in, 0)) + with {:ok, _user_relationships} <- User.mute(muter, muted, params) do render(conn, "relationship.json", user: muter, target: muted) else @@ -435,6 +461,48 @@ def unblock(%{assigns: %{user: blocker, account: blocked}} = conn, _params) do end end + @doc "POST /api/v1/accounts/:id/note" + def note( + %{assigns: %{user: noter, account: target}, body_params: %{comment: comment}} = conn, + _params + ) do + with {:ok, _user_note} <- UserNote.create(noter, target, comment) do + render(conn, "relationship.json", user: noter, target: target) + end + end + + @doc "POST /api/v1/accounts/:id/pin" + def endorse(%{assigns: %{user: endorser, account: endorsed}} = conn, _params) do + with {:ok, _user_relationships} <- User.endorse(endorser, endorsed) do + render(conn, "relationship.json", user: endorser, target: endorsed) + else + {:error, message} -> json_response(conn, :bad_request, %{error: message}) + end + end + + @doc "POST /api/v1/accounts/:id/unpin" + def unendorse(%{assigns: %{user: endorser, account: endorsed}} = conn, _params) do + with {:ok, _user_relationships} <- User.unendorse(endorser, endorsed) do + render(conn, "relationship.json", user: endorser, target: endorsed) + else + {:error, message} -> json_response(conn, :forbidden, %{error: message}) + end + end + + @doc "POST /api/v1/accounts/:id/remove_from_followers" + def remove_from_followers(%{assigns: %{user: %{id: id}, account: %{id: id}}}, _params) do + {:error, "Can not unfollow yourself"} + end + + def remove_from_followers(%{assigns: %{user: followed, account: follower}} = conn, _params) do + with {:ok, follower} <- CommonAPI.reject_follow_request(follower, followed) do + render(conn, "relationship.json", user: followed, target: follower) + else + nil -> + render_error(conn, :not_found, "Record not found") + end + end + @doc "POST /api/v1/follows" def follow_by_uri(%{body_params: %{uri: uri}} = conn, _) do case User.get_cached_by_nickname(uri) do @@ -461,7 +529,8 @@ def mutes(%{assigns: %{user: user}} = conn, params) do users: users, for: user, as: :user, - embed_relationships: embed_relationships?(params) + embed_relationships: embed_relationships?(params), + mutes: true ) end @@ -477,8 +546,33 @@ def blocks(%{assigns: %{user: user}} = conn, params) do |> render("index.json", users: users, for: user, as: :user) end + @doc "GET /api/v1/accounts/lookup" + def lookup(conn, %{acct: nickname} = _params) do + with %User{} = user <- User.get_by_nickname(nickname) do + render(conn, "show.json", + user: user, + skip_visibility_check: true + ) + else + error -> user_visibility_error(conn, error) + end + end + @doc "GET /api/v1/endorsements" - def endorsements(conn, params), do: MastodonAPIController.empty_array(conn, params) + def endorsements(%{assigns: %{user: user}} = conn, params) do + users = + user + |> User.endorsed_users_relation(_restrict_deactivated = true) + |> Pleroma.Repo.all() + + conn + |> render("index.json", + users: users, + for: user, + as: :user, + embed_relationships: embed_relationships?(params) + ) + end @doc "GET /api/v1/identity_proofs" def identity_proofs(conn, params), do: MastodonAPIController.empty_array(conn, params) diff --git a/lib/pleroma/web/mastodon_api/controllers/announcement_controller.ex b/lib/pleroma/web/mastodon_api/controllers/announcement_controller.ex new file mode 100644 index 000000000..080af96d5 --- /dev/null +++ b/lib/pleroma/web/mastodon_api/controllers/announcement_controller.ex @@ -0,0 +1,60 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2022 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + +defmodule Pleroma.Web.MastodonAPI.AnnouncementController do + use Pleroma.Web, :controller + + import Pleroma.Web.ControllerHelper, + only: [ + json_response: 3 + ] + + alias Pleroma.Announcement + alias Pleroma.Web.Plugs.OAuthScopesPlug + + plug(Pleroma.Web.ApiSpec.CastAndValidate) + + # Mastodon docs say this only requires a user token, no scopes needed + # As the op `|` requires at least one scope to be present, we use `&` here. + plug( + OAuthScopesPlug, + %{scopes: [], op: :&} + when action in [:index] + ) + + # Same as in MastodonAPI specs + plug( + OAuthScopesPlug, + %{scopes: ["write:accounts"]} + when action in [:mark_read] + ) + + action_fallback(Pleroma.Web.MastodonAPI.FallbackController) + + defdelegate open_api_operation(action), to: Pleroma.Web.ApiSpec.AnnouncementOperation + + @doc "GET /api/v1/announcements" + def index(%{assigns: %{user: user}} = conn, _params) do + render(conn, "index.json", announcements: all_visible(), user: user) + end + + def index(conn, _params) do + render(conn, "index.json", announcements: all_visible(), user: nil) + end + + defp all_visible do + Announcement.list_all_visible() + end + + @doc "POST /api/v1/announcements/:id/dismiss" + def mark_read(%{assigns: %{user: user}} = conn, %{id: id} = _params) do + with announcement when not is_nil(announcement) <- Announcement.get_by_id(id), + {:ok, _} <- Announcement.mark_read_by(announcement, user) do + json_response(conn, :ok, %{}) + else + _ -> + {:error, :not_found} + end + end +end diff --git a/lib/pleroma/web/mastodon_api/controllers/app_controller.ex b/lib/pleroma/web/mastodon_api/controllers/app_controller.ex index a95cc52fd..844673ae0 100644 --- a/lib/pleroma/web/mastodon_api/controllers/app_controller.ex +++ b/lib/pleroma/web/mastodon_api/controllers/app_controller.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.MastodonAPI.AppController do @@ -10,7 +10,9 @@ defmodule Pleroma.Web.MastodonAPI.AppController do use Pleroma.Web, :controller + alias Pleroma.Maps alias Pleroma.Repo + alias Pleroma.User alias Pleroma.Web.OAuth.App alias Pleroma.Web.OAuth.Scopes alias Pleroma.Web.OAuth.Token @@ -21,26 +23,28 @@ defmodule Pleroma.Web.MastodonAPI.AppController do plug(Pleroma.Web.ApiSpec.CastAndValidate) - @local_mastodon_name "Mastodon-Local" - defdelegate open_api_operation(action), to: Pleroma.Web.ApiSpec.AppOperation @doc "POST /api/v1/apps" def create(%{body_params: params} = conn, _params) do scopes = Scopes.fetch_scopes(params, ["read"]) + user_id = get_user_id(conn) app_attrs = params |> Map.take([:client_name, :redirect_uris, :website]) |> Map.put(:scopes, scopes) + |> Maps.put_if_present(:user_id, user_id) with cs <- App.register_changeset(%App{}, app_attrs), - false <- cs.changes[:client_name] == @local_mastodon_name, {:ok, app} <- Repo.insert(cs) do render(conn, "show.json", app: app) end end + defp get_user_id(%{assigns: %{user: %User{id: user_id}}}), do: user_id + defp get_user_id(_conn), do: nil + @doc """ GET /api/v1/apps/verify_credentials Gets compact non-secret representation of the app. Supports app tokens and user tokens. diff --git a/lib/pleroma/web/mastodon_api/controllers/auth_controller.ex b/lib/pleroma/web/mastodon_api/controllers/auth_controller.ex index 4920d65da..fbb54a171 100644 --- a/lib/pleroma/web/mastodon_api/controllers/auth_controller.ex +++ b/lib/pleroma/web/mastodon_api/controllers/auth_controller.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.MastodonAPI.AuthController do @@ -7,77 +7,12 @@ defmodule Pleroma.Web.MastodonAPI.AuthController do import Pleroma.Web.ControllerHelper, only: [json_response: 3] - alias Pleroma.Helpers.AuthHelper - alias Pleroma.Helpers.UriHelper - alias Pleroma.User - alias Pleroma.Web.OAuth.App - alias Pleroma.Web.OAuth.Authorization - alias Pleroma.Web.OAuth.Token - alias Pleroma.Web.OAuth.Token.Strategy.Revoke, as: RevokeToken alias Pleroma.Web.TwitterAPI.TwitterAPI action_fallback(Pleroma.Web.MastodonAPI.FallbackController) plug(Pleroma.Web.Plugs.RateLimiter, [name: :password_reset] when action == :password_reset) - @local_mastodon_name "Mastodon-Local" - - @doc "GET /web/login" - # Local Mastodon FE login callback action - def login(conn, %{"code" => auth_token} = params) do - with {:ok, app} <- local_mastofe_app(), - {:ok, auth} <- Authorization.get_by_token(app, auth_token), - {:ok, oauth_token} <- Token.exchange_token(app, auth) do - redirect_to = - conn - |> local_mastodon_post_login_path() - |> UriHelper.modify_uri_params(%{"access_token" => oauth_token.token}) - - conn - |> AuthHelper.put_session_token(oauth_token.token) - |> redirect(to: redirect_to) - else - _ -> redirect_to_oauth_form(conn, params) - end - end - - def login(conn, params) do - with %{assigns: %{user: %User{}, token: %Token{app_id: app_id}}} <- conn, - {:ok, %{id: ^app_id}} <- local_mastofe_app() do - redirect(conn, to: local_mastodon_post_login_path(conn)) - else - _ -> redirect_to_oauth_form(conn, params) - end - end - - defp redirect_to_oauth_form(conn, _params) do - with {:ok, app} <- local_mastofe_app() do - path = - Routes.o_auth_path(conn, :authorize, - response_type: "code", - client_id: app.client_id, - redirect_uri: ".", - scope: Enum.join(app.scopes, " ") - ) - - redirect(conn, to: path) - end - end - - @doc "DELETE /auth/sign_out" - def logout(conn, _) do - conn = - with %{assigns: %{token: %Token{} = oauth_token}} <- conn, - session_token = AuthHelper.get_session_token(conn), - {:ok, %Token{token: ^session_token}} <- RevokeToken.revoke(oauth_token) do - AuthHelper.delete_session_token(conn) - else - _ -> conn - end - - redirect(conn, to: "/") - end - @doc "POST /auth/password" def password_reset(conn, params) do nickname_or_email = params["email"] || params["nickname"] @@ -86,23 +21,4 @@ def password_reset(conn, params) do json_response(conn, :no_content, "") end - - defp local_mastodon_post_login_path(conn) do - case get_session(conn, :return_to) do - nil -> - Routes.masto_fe_path(conn, :index, ["getting-started"]) - - return_to -> - delete_session(conn, :return_to) - return_to - end - end - - @spec local_mastofe_app() :: {:ok, App.t()} | {:error, Ecto.Changeset.t()} - def local_mastofe_app do - App.get_or_make( - %{client_name: @local_mastodon_name, redirect_uris: "."}, - ["read", "write", "follow", "push", "admin"] - ) - end end diff --git a/lib/pleroma/web/mastodon_api/controllers/conversation_controller.ex b/lib/pleroma/web/mastodon_api/controllers/conversation_controller.ex index f2a0949e8..9cc6225c6 100644 --- a/lib/pleroma/web/mastodon_api/controllers/conversation_controller.ex +++ b/lib/pleroma/web/mastodon_api/controllers/conversation_controller.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.MastodonAPI.ConversationController do diff --git a/lib/pleroma/web/mastodon_api/controllers/custom_emoji_controller.ex b/lib/pleroma/web/mastodon_api/controllers/custom_emoji_controller.ex index 31b647755..8b27b0b02 100644 --- a/lib/pleroma/web/mastodon_api/controllers/custom_emoji_controller.ex +++ b/lib/pleroma/web/mastodon_api/controllers/custom_emoji_controller.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.MastodonAPI.CustomEmojiController do diff --git a/lib/pleroma/web/mastodon_api/controllers/directory_controller.ex b/lib/pleroma/web/mastodon_api/controllers/directory_controller.ex new file mode 100644 index 000000000..253f06cfb --- /dev/null +++ b/lib/pleroma/web/mastodon_api/controllers/directory_controller.ex @@ -0,0 +1,82 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2022 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + +defmodule Pleroma.Web.MastodonAPI.DirectoryController do + use Pleroma.Web, :controller + + import Ecto.Query + alias Pleroma.Pagination + alias Pleroma.User + alias Pleroma.UserRelationship + alias Pleroma.Web.MastodonAPI.AccountView + + require Logger + + plug(Pleroma.Web.ApiSpec.CastAndValidate) + + plug(:skip_auth when action == "index") + + defdelegate open_api_operation(action), to: Pleroma.Web.ApiSpec.DirectoryOperation + + @doc "GET /api/v1/directory" + def index(%{assigns: %{user: user}} = conn, params) do + with true <- Pleroma.Config.get([:instance, :profile_directory]) do + limit = Map.get(params, :limit, 20) |> min(80) + + users = + User.Query.build(%{is_discoverable: true, invisible: false, limit: limit}) + |> order_by_creation_date(params) + |> exclude_remote(params) + |> exclude_user(user) + |> exclude_relationships(user, [:block, :mute]) + |> Pagination.fetch_paginated(params, :offset) + + conn + |> put_view(AccountView) + |> render("index.json", for: user, users: users, as: :user) + else + _ -> json(conn, []) + end + end + + defp order_by_creation_date(query, %{order: "new"}) do + query + end + + defp order_by_creation_date(query, _params) do + query + |> order_by([u], desc_nulls_last: u.last_status_at) + end + + defp exclude_remote(query, %{local: true}) do + where(query, [u], u.local == true) + end + + defp exclude_remote(query, _params) do + query + end + + defp exclude_user(query, %User{id: user_id}) do + where(query, [u], u.id != ^user_id) + end + + defp exclude_user(query, _user) do + query + end + + defp exclude_relationships(query, %User{id: user_id}, relationship_types) do + query + |> join(:left, [u], r in UserRelationship, + as: :user_relationships, + on: + r.target_id == u.id and r.source_id == ^user_id and + r.relationship_type in ^relationship_types + ) + |> where([user_relationships: r], is_nil(r.target_id)) + end + + defp exclude_relationships(query, _user, _relationship_types) do + query + end +end diff --git a/lib/pleroma/web/mastodon_api/controllers/domain_block_controller.ex b/lib/pleroma/web/mastodon_api/controllers/domain_block_controller.ex index 30300307d..b2e347ed9 100644 --- a/lib/pleroma/web/mastodon_api/controllers/domain_block_controller.ex +++ b/lib/pleroma/web/mastodon_api/controllers/domain_block_controller.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.MastodonAPI.DomainBlockController do diff --git a/lib/pleroma/web/mastodon_api/controllers/fallback_controller.ex b/lib/pleroma/web/mastodon_api/controllers/fallback_controller.ex index 84621500e..1c650eb21 100644 --- a/lib/pleroma/web/mastodon_api/controllers/fallback_controller.ex +++ b/lib/pleroma/web/mastodon_api/controllers/fallback_controller.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.MastodonAPI.FallbackController do diff --git a/lib/pleroma/web/mastodon_api/controllers/filter_controller.ex b/lib/pleroma/web/mastodon_api/controllers/filter_controller.ex index 9b1ae809d..0959b4bcc 100644 --- a/lib/pleroma/web/mastodon_api/controllers/filter_controller.ex +++ b/lib/pleroma/web/mastodon_api/controllers/filter_controller.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.MastodonAPI.FilterController do diff --git a/lib/pleroma/web/mastodon_api/controllers/follow_request_controller.ex b/lib/pleroma/web/mastodon_api/controllers/follow_request_controller.ex index d915298f1..ba6d074cc 100644 --- a/lib/pleroma/web/mastodon_api/controllers/follow_request_controller.ex +++ b/lib/pleroma/web/mastodon_api/controllers/follow_request_controller.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.MastodonAPI.FollowRequestController do diff --git a/lib/pleroma/web/mastodon_api/controllers/instance_controller.ex b/lib/pleroma/web/mastodon_api/controllers/instance_controller.ex index 5376e4594..6410e872c 100644 --- a/lib/pleroma/web/mastodon_api/controllers/instance_controller.ex +++ b/lib/pleroma/web/mastodon_api/controllers/instance_controller.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.MastodonAPI.InstanceController do diff --git a/lib/pleroma/web/mastodon_api/controllers/list_controller.ex b/lib/pleroma/web/mastodon_api/controllers/list_controller.ex index b7b41f449..2117aae3a 100644 --- a/lib/pleroma/web/mastodon_api/controllers/list_controller.ex +++ b/lib/pleroma/web/mastodon_api/controllers/list_controller.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.MastodonAPI.ListController do diff --git a/lib/pleroma/web/mastodon_api/controllers/marker_controller.ex b/lib/pleroma/web/mastodon_api/controllers/marker_controller.ex index c745f3493..4ad30f330 100644 --- a/lib/pleroma/web/mastodon_api/controllers/marker_controller.ex +++ b/lib/pleroma/web/mastodon_api/controllers/marker_controller.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.MastodonAPI.MarkerController do diff --git a/lib/pleroma/web/mastodon_api/controllers/mastodon_api_controller.ex b/lib/pleroma/web/mastodon_api/controllers/mastodon_api_controller.ex index a0f79f377..0aa7b379f 100644 --- a/lib/pleroma/web/mastodon_api/controllers/mastodon_api_controller.ex +++ b/lib/pleroma/web/mastodon_api/controllers/mastodon_api_controller.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.MastodonAPI.MastodonAPIController do diff --git a/lib/pleroma/web/mastodon_api/controllers/media_controller.ex b/lib/pleroma/web/mastodon_api/controllers/media_controller.ex index 5918b288d..7d9a63cf4 100644 --- a/lib/pleroma/web/mastodon_api/controllers/media_controller.ex +++ b/lib/pleroma/web/mastodon_api/controllers/media_controller.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.MastodonAPI.MediaController do diff --git a/lib/pleroma/web/mastodon_api/controllers/notification_controller.ex b/lib/pleroma/web/mastodon_api/controllers/notification_controller.ex index 647ba661e..a490e8319 100644 --- a/lib/pleroma/web/mastodon_api/controllers/notification_controller.ex +++ b/lib/pleroma/web/mastodon_api/controllers/notification_controller.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.MastodonAPI.NotificationController do @@ -50,11 +50,13 @@ def index(conn, %{account_id: account_id} = params) do favourite move pleroma:emoji_reaction + poll + update } def index(%{assigns: %{user: user}} = conn, params) do params = Map.new(params, fn {k, v} -> {to_string(k), v} end) - |> Map.put_new("include_types", @default_notification_types) + |> Map.put_new("types", Map.get(params, :include_types, @default_notification_types)) notifications = MastodonAPI.get_notifications(user, params) diff --git a/lib/pleroma/web/mastodon_api/controllers/poll_controller.ex b/lib/pleroma/web/mastodon_api/controllers/poll_controller.ex index f44ff997d..002c210d2 100644 --- a/lib/pleroma/web/mastodon_api/controllers/poll_controller.ex +++ b/lib/pleroma/web/mastodon_api/controllers/poll_controller.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.MastodonAPI.PollController do diff --git a/lib/pleroma/web/mastodon_api/controllers/report_controller.ex b/lib/pleroma/web/mastodon_api/controllers/report_controller.ex index 03d9a4f4f..3db80d728 100644 --- a/lib/pleroma/web/mastodon_api/controllers/report_controller.ex +++ b/lib/pleroma/web/mastodon_api/controllers/report_controller.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.MastodonAPI.ReportController do diff --git a/lib/pleroma/web/mastodon_api/controllers/scheduled_activity_controller.ex b/lib/pleroma/web/mastodon_api/controllers/scheduled_activity_controller.ex index 3b7a0c788..0392fcef1 100644 --- a/lib/pleroma/web/mastodon_api/controllers/scheduled_activity_controller.ex +++ b/lib/pleroma/web/mastodon_api/controllers/scheduled_activity_controller.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.MastodonAPI.ScheduledActivityController do diff --git a/lib/pleroma/web/mastodon_api/controllers/search_controller.ex b/lib/pleroma/web/mastodon_api/controllers/search_controller.ex index 64b177eb3..5e6e04734 100644 --- a/lib/pleroma/web/mastodon_api/controllers/search_controller.ex +++ b/lib/pleroma/web/mastodon_api/controllers/search_controller.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.MastodonAPI.SearchController do @@ -17,6 +17,8 @@ defmodule Pleroma.Web.MastodonAPI.SearchController do require Logger + @search_limit 40 + plug(Pleroma.Web.ApiSpec.CastAndValidate) # Note: Mastodon doesn't allow unauthenticated access (requires read:accounts / read:search) @@ -77,7 +79,7 @@ defp search_options(params, user) do [ resolve: params[:resolve], following: params[:following], - limit: params[:limit], + limit: min(params[:limit], @search_limit), offset: params[:offset], type: params[:type], author: get_author(params), diff --git a/lib/pleroma/web/mastodon_api/controllers/status_controller.ex b/lib/pleroma/web/mastodon_api/controllers/status_controller.ex index 2eff4d9d0..e594ea491 100644 --- a/lib/pleroma/web/mastodon_api/controllers/status_controller.ex +++ b/lib/pleroma/web/mastodon_api/controllers/status_controller.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.MastodonAPI.StatusController do @@ -38,7 +38,9 @@ defmodule Pleroma.Web.MastodonAPI.StatusController do :index, :show, :card, - :context + :context, + :show_history, + :show_source ] ) @@ -49,7 +51,8 @@ defmodule Pleroma.Web.MastodonAPI.StatusController do :create, :delete, :reblog, - :unreblog + :unreblog, + :update ] ) @@ -191,6 +194,59 @@ def create(%{assigns: %{user: _user}, body_params: %{media_ids: _} = params} = c create(%Plug.Conn{conn | body_params: params}, %{}) end + @doc "GET /api/v1/statuses/:id/history" + def show_history(%{assigns: assigns} = conn, %{id: id} = params) do + with user = assigns[:user], + %Activity{} = activity <- Activity.get_by_id_with_object(id), + true <- Visibility.visible_for_user?(activity, user) do + try_render(conn, "history.json", + activity: activity, + for: user, + with_direct_conversation_id: true, + with_muted: Map.get(params, :with_muted, false) + ) + else + _ -> {:error, :not_found} + end + end + + @doc "GET /api/v1/statuses/:id/source" + def show_source(%{assigns: assigns} = conn, %{id: id} = _params) do + with user = assigns[:user], + %Activity{} = activity <- Activity.get_by_id_with_object(id), + true <- Visibility.visible_for_user?(activity, user) do + try_render(conn, "source.json", + activity: activity, + for: user + ) + else + _ -> {:error, :not_found} + end + end + + @doc "PUT /api/v1/statuses/:id" + def update(%{assigns: %{user: user}, body_params: body_params} = conn, %{id: id} = params) do + with {_, %Activity{}} = {_, activity} <- {:activity, Activity.get_by_id_with_object(id)}, + {_, true} <- {:visible, Visibility.visible_for_user?(activity, user)}, + {_, true} <- {:is_create, activity.data["type"] == "Create"}, + actor <- Activity.user_actor(activity), + {_, true} <- {:own_status, actor.id == user.id}, + changes <- body_params |> put_application(conn), + {_, {:ok, _update_activity}} <- {:pipeline, CommonAPI.update(user, activity, changes)}, + {_, %Activity{}} = {_, activity} <- {:refetched, Activity.get_by_id_with_object(id)} do + try_render(conn, "show.json", + activity: activity, + for: user, + with_direct_conversation_id: true, + with_muted: Map.get(params, :with_muted, false) + ) + else + {:own_status, _} -> {:error, :forbidden} + {:pipeline, _} -> {:error, :internal_server_error} + _ -> {:error, :not_found} + end + end + @doc "GET /api/v1/statuses/:id" def show(%{assigns: %{user: user}} = conn, %{id: id} = params) do with %Activity{} = activity <- Activity.get_by_id_with_object(id), diff --git a/lib/pleroma/web/mastodon_api/controllers/subscription_controller.ex b/lib/pleroma/web/mastodon_api/controllers/subscription_controller.ex index fcb3d4829..9cc0071f6 100644 --- a/lib/pleroma/web/mastodon_api/controllers/subscription_controller.ex +++ b/lib/pleroma/web/mastodon_api/controllers/subscription_controller.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.MastodonAPI.SubscriptionController do diff --git a/lib/pleroma/web/mastodon_api/controllers/suggestion_controller.ex b/lib/pleroma/web/mastodon_api/controllers/suggestion_controller.ex index 01e122dd9..69ae70ad4 100644 --- a/lib/pleroma/web/mastodon_api/controllers/suggestion_controller.ex +++ b/lib/pleroma/web/mastodon_api/controllers/suggestion_controller.ex @@ -1,14 +1,19 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.MastodonAPI.SuggestionController do use Pleroma.Web, :controller + import Ecto.Query + alias Pleroma.FollowingRelationship + alias Pleroma.User + alias Pleroma.UserRelationship require Logger plug(Pleroma.Web.ApiSpec.CastAndValidate) - plug(Pleroma.Web.Plugs.OAuthScopesPlug, %{scopes: ["read"]} when action == :index) + plug(Pleroma.Web.Plugs.OAuthScopesPlug, %{scopes: ["read"]} when action in [:index, :index2]) + plug(Pleroma.Web.Plugs.OAuthScopesPlug, %{scopes: ["write"]} when action in [:dismiss]) def open_api_operation(action) do operation = String.to_existing_atom("#{action}_operation") @@ -26,7 +31,90 @@ def index_operation do } end + def index2_operation do + %OpenApiSpex.Operation{ + tags: ["Suggestions"], + summary: "Follow suggestions", + operationId: "SuggestionController.index2", + responses: %{ + 200 => Pleroma.Web.ApiSpec.Helpers.empty_array_response() + } + } + end + + def dismiss_operation do + %OpenApiSpex.Operation{ + tags: ["Suggestions"], + summary: "Remove a suggestion", + operationId: "SuggestionController.dismiss", + parameters: [ + OpenApiSpex.Operation.parameter( + :account_id, + :path, + %OpenApiSpex.Schema{type: :string}, + "Account to dismiss", + required: true + ) + ], + responses: %{ + 200 => Pleroma.Web.ApiSpec.Helpers.empty_object_response() + } + } + end + @doc "GET /api/v1/suggestions" def index(conn, params), do: Pleroma.Web.MastodonAPI.MastodonAPIController.empty_array(conn, params) + + @doc "GET /api/v2/suggestions" + def index2(%{assigns: %{user: user}} = conn, params) do + limit = Map.get(params, :limit, 40) |> min(80) + + users = + %{is_suggested: true, invisible: false, limit: limit} + |> User.Query.build() + |> exclude_user(user) + |> exclude_relationships(user, [:block, :mute, :suggestion_dismiss]) + |> exclude_following(user) + |> Pleroma.Repo.all() + + render(conn, "index.json", %{ + users: users, + source: :staff, + for: user, + skip_visibility_check: true + }) + end + + defp exclude_user(query, %User{id: user_id}) do + where(query, [u], u.id != ^user_id) + end + + defp exclude_relationships(query, %User{id: user_id}, relationship_types) do + query + |> join(:left, [u], r in UserRelationship, + as: :user_relationships, + on: + r.target_id == u.id and r.source_id == ^user_id and + r.relationship_type in ^relationship_types + ) + |> where([user_relationships: r], is_nil(r.target_id)) + end + + defp exclude_following(query, %User{id: user_id}) do + query + |> join(:left, [u], r in FollowingRelationship, + as: :following_relationships, + on: r.following_id == u.id and r.follower_id == ^user_id and r.state == :follow_accept + ) + |> where([following_relationships: r], is_nil(r.following_id)) + end + + @doc "DELETE /api/v1/suggestions/:account_id" + def dismiss(%{assigns: %{user: source}} = conn, %{account_id: user_id}) do + with %User{} = target <- User.get_cached_by_id(user_id), + {:ok, _} <- UserRelationship.create(:suggestion_dismiss, source, target) do + json(conn, %{}) + end + end end diff --git a/lib/pleroma/web/mastodon_api/controllers/timeline_controller.ex b/lib/pleroma/web/mastodon_api/controllers/timeline_controller.ex index 10c279893..293c61b41 100644 --- a/lib/pleroma/web/mastodon_api/controllers/timeline_controller.ex +++ b/lib/pleroma/web/mastodon_api/controllers/timeline_controller.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.MastodonAPI.TimelineController do @@ -112,6 +112,8 @@ def public(%{assigns: %{user: user}} = conn, params) do |> Map.put(:muting_user, user) |> Map.put(:reply_filtering_user, user) |> Map.put(:instance, params[:instance]) + # Restricts unfederated content to authenticated users + |> Map.put(:includes_local_public, not is_nil(user)) |> ActivityPub.fetch_public_activities() conn diff --git a/lib/pleroma/web/mastodon_api/mastodon_api.ex b/lib/pleroma/web/mastodon_api/mastodon_api.ex index 71479550e..467dc2fac 100644 --- a/lib/pleroma/web/mastodon_api/mastodon_api.ex +++ b/lib/pleroma/web/mastodon_api/mastodon_api.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.MastodonAPI.MastodonAPI do @@ -24,6 +24,7 @@ def follow(follower, followed, params \\ %{}) do with {:ok, follower, _followed, _} <- result do options = cast_params(params) set_reblogs_visibility(options[:reblogs], result) + set_subscription(options[:notify], result) {:ok, follower} end end @@ -36,6 +37,16 @@ defp set_reblogs_visibility(_, {:ok, follower, followed, _}) do CommonAPI.show_reblogs(follower, followed) end + defp set_subscription(true, {:ok, follower, followed, _}) do + User.subscribe(follower, followed) + end + + defp set_subscription(false, {:ok, follower, followed, _}) do + User.unsubscribe(follower, followed) + end + + defp set_subscription(_, _), do: {:ok, nil} + @spec get_followers(User.t(), map()) :: list(User.t()) def get_followers(user, params \\ %{}) do user @@ -50,11 +61,24 @@ def get_friends(user, params \\ %{}) do end def get_notifications(user, params \\ %{}) do - options = cast_params(params) + options = + cast_params(params) |> Map.update(:include_types, [], fn include_types -> include_types end) + + options = + if ("pleroma:report" not in options.include_types and + User.privileged?(user, :reports_manage_reports)) or + User.privileged?(user, :reports_manage_reports) do + options + else + options + |> Map.update(:exclude_types, ["pleroma:report"], fn current_exclude_types -> + current_exclude_types ++ ["pleroma:report"] + end) + end user |> Notification.for_user_query(options) - |> restrict(:include_types, options) + |> restrict(:types, options) |> restrict(:exclude_types, options) |> restrict(:account_ap_id, options) |> Pagination.fetch_paginated(params) @@ -69,18 +93,19 @@ def get_scheduled_activities(user, params \\ %{}) do defp cast_params(params) do param_types = %{ exclude_types: {:array, :string}, - include_types: {:array, :string}, + types: {:array, :string}, exclude_visibilities: {:array, :string}, reblogs: :boolean, with_muted: :boolean, - account_ap_id: :string + account_ap_id: :string, + notify: :boolean } changeset = cast({%{}, param_types}, params, Map.keys(param_types)) changeset.changes end - defp restrict(query, :include_types, %{include_types: mastodon_types = [_ | _]}) do + defp restrict(query, :types, %{types: mastodon_types = [_ | _]}) do where(query, [n], n.type in ^mastodon_types) end diff --git a/lib/pleroma/web/mastodon_api/views/account_view.ex b/lib/pleroma/web/mastodon_api/views/account_view.ex index 9e9de33f6..cc3e3582f 100644 --- a/lib/pleroma/web/mastodon_api/views/account_view.ex +++ b/lib/pleroma/web/mastodon_api/views/account_view.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.MastodonAPI.AccountView do @@ -7,6 +7,7 @@ defmodule Pleroma.Web.MastodonAPI.AccountView do alias Pleroma.FollowingRelationship alias Pleroma.User + alias Pleroma.UserNote alias Pleroma.UserRelationship alias Pleroma.Web.CommonAPI.Utils alias Pleroma.Web.MastodonAPI.AccountView @@ -101,6 +102,15 @@ def render( User.following?(target, reading_user) end + subscribing = + UserRelationship.exists?( + user_relationships, + :inverse_subscription, + target, + reading_user, + &User.subscribed_to?(&2, &1) + ) + # NOTE: adjust UserRelationship.view_relationships_option/2 on new relation-related flags %{ id: to_string(target.id), @@ -138,14 +148,8 @@ def render( target, &User.muted_notifications?(&1, &2) ), - subscribing: - UserRelationship.exists?( - user_relationships, - :inverse_subscription, - target, - reading_user, - &User.subscribed_to?(&2, &1) - ), + subscribing: subscribing, + notifying: subscribing, requested: follow_state == :follow_pending, domain_blocking: User.blocks_domain?(reading_user, target), showing_reblogs: @@ -156,7 +160,19 @@ def render( target, &User.muting_reblogs?(&1, &2) ), - endorsed: false + note: + UserNote.show( + reading_user, + target + ), + endorsed: + UserRelationship.exists?( + user_relationships, + :endorsement, + target, + reading_user, + &User.endorses?(&2, &1) + ) } end @@ -261,6 +277,7 @@ defp do_render("show.json", %{user: user} = opts) do actor_type: user.actor_type } }, + last_status_at: user.last_status_at, # Pleroma extensions # Note: it's insecure to output :email but fully-qualified nickname may serve as safe stub @@ -269,6 +286,7 @@ defp do_render("show.json", %{user: user} = opts) do ap_id: user.ap_id, also_known_as: user.also_known_as, is_confirmed: user.is_confirmed, + is_suggested: user.is_suggested, tags: user.tags, hide_followers_count: user.hide_followers_count, hide_follows_count: user.hide_follows_count, @@ -293,6 +311,8 @@ defp do_render("show.json", %{user: user} = opts) do |> maybe_put_unread_conversation_count(user, opts[:for]) |> maybe_put_unread_notification_count(user, opts[:for]) |> maybe_put_email_address(user, opts[:for]) + |> maybe_put_mute_expires_at(user, opts[:for], opts) + |> maybe_show_birthday(user, opts[:for]) end defp username_from_nickname(string) when is_binary(string) do @@ -326,6 +346,7 @@ defp maybe_put_settings( |> Kernel.put_in([:source, :privacy], user.default_scope) |> Kernel.put_in([:source, :pleroma, :show_role], user.show_role) |> Kernel.put_in([:source, :pleroma, :no_rich_text], user.no_rich_text) + |> Kernel.put_in([:source, :pleroma, :show_birthday], user.show_birthday) end defp maybe_put_settings(data, _, _, _), do: data @@ -349,19 +370,22 @@ defp maybe_put_chat_token(data, %User{id: id}, %User{id: id}, %{ defp maybe_put_chat_token(data, _, _, _), do: data defp maybe_put_role(data, %User{show_role: true} = user, _) do - data - |> Kernel.put_in([:pleroma, :is_admin], user.is_admin) - |> Kernel.put_in([:pleroma, :is_moderator], user.is_moderator) + put_role(data, user) end defp maybe_put_role(data, %User{id: user_id} = user, %User{id: user_id}) do - data - |> Kernel.put_in([:pleroma, :is_admin], user.is_admin) - |> Kernel.put_in([:pleroma, :is_moderator], user.is_moderator) + put_role(data, user) end defp maybe_put_role(data, _, _), do: data + defp put_role(data, user) do + data + |> Kernel.put_in([:pleroma, :is_admin], user.is_admin) + |> Kernel.put_in([:pleroma, :is_moderator], user.is_moderator) + |> Kernel.put_in([:pleroma, :privileges], User.privileges(user)) + end + defp maybe_put_notification_settings(data, %User{id: user_id} = user, %User{id: user_id}) do Kernel.put_in( data, @@ -378,12 +402,12 @@ defp maybe_put_allow_following_move(data, %User{id: user_id} = user, %User{id: u defp maybe_put_allow_following_move(data, _, _), do: data - defp maybe_put_activation_status(data, user, %User{is_admin: true}) do - Kernel.put_in(data, [:pleroma, :deactivated], !user.is_active) + defp maybe_put_activation_status(data, user, user_for) do + if User.privileged?(user_for, :users_manage_activation_state), + do: Kernel.put_in(data, [:pleroma, :deactivated], !user.is_active), + else: data end - defp maybe_put_activation_status(data, _, _), do: data - defp maybe_put_unread_conversation_count(data, %User{id: user_id} = user, %User{id: user_id}) do data |> Kernel.put_in( @@ -414,6 +438,30 @@ defp maybe_put_email_address(data, %User{id: user_id}, %User{id: user_id} = user defp maybe_put_email_address(data, _, _), do: data + defp maybe_put_mute_expires_at(data, %User{} = user, target, %{mutes: true}) do + Map.put( + data, + :mute_expires_at, + UserRelationship.get_mute_expire_date(target, user) + ) + end + + defp maybe_put_mute_expires_at(data, _, _, _), do: data + + defp maybe_show_birthday(data, %User{id: user_id} = user, %User{id: user_id}) do + data + |> Kernel.put_in([:pleroma, :birthday], user.birthday) + end + + defp maybe_show_birthday(data, %User{show_birthday: true} = user, _) do + data + |> Kernel.put_in([:pleroma, :birthday], user.birthday) + end + + defp maybe_show_birthday(data, _, _) do + data + end + defp image_url(%{"url" => [%{"href" => href} | _]}), do: href defp image_url(_), do: nil end diff --git a/lib/pleroma/web/mastodon_api/views/announcement_view.ex b/lib/pleroma/web/mastodon_api/views/announcement_view.ex new file mode 100644 index 000000000..93fdfb1f1 --- /dev/null +++ b/lib/pleroma/web/mastodon_api/views/announcement_view.ex @@ -0,0 +1,15 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2022 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + +defmodule Pleroma.Web.MastodonAPI.AnnouncementView do + use Pleroma.Web, :view + + def render("index.json", %{announcements: announcements, user: user}) do + render_many(announcements, __MODULE__, "show.json", user: user) + end + + def render("show.json", %{announcement: announcement, user: user}) do + Pleroma.Announcement.render_json(announcement, for: user) + end +end diff --git a/lib/pleroma/web/mastodon_api/views/app_view.ex b/lib/pleroma/web/mastodon_api/views/app_view.ex index c406b5a27..92cccd452 100644 --- a/lib/pleroma/web/mastodon_api/views/app_view.ex +++ b/lib/pleroma/web/mastodon_api/views/app_view.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.MastodonAPI.AppView do diff --git a/lib/pleroma/web/mastodon_api/views/conversation_view.ex b/lib/pleroma/web/mastodon_api/views/conversation_view.ex index 46b63b54b..f6577cd2f 100644 --- a/lib/pleroma/web/mastodon_api/views/conversation_view.ex +++ b/lib/pleroma/web/mastodon_api/views/conversation_view.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.MastodonAPI.ConversationView do diff --git a/lib/pleroma/web/mastodon_api/views/custom_emoji_view.ex b/lib/pleroma/web/mastodon_api/views/custom_emoji_view.ex index 7d2d605e9..cd59ab946 100644 --- a/lib/pleroma/web/mastodon_api/views/custom_emoji_view.ex +++ b/lib/pleroma/web/mastodon_api/views/custom_emoji_view.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.MastodonAPI.CustomEmojiView do diff --git a/lib/pleroma/web/mastodon_api/views/filter_view.ex b/lib/pleroma/web/mastodon_api/views/filter_view.ex index 8e8798c1e..0c9706166 100644 --- a/lib/pleroma/web/mastodon_api/views/filter_view.ex +++ b/lib/pleroma/web/mastodon_api/views/filter_view.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.MastodonAPI.FilterView do diff --git a/lib/pleroma/web/mastodon_api/views/follow_request_view.ex b/lib/pleroma/web/mastodon_api/views/follow_request_view.ex index 4c7d9fc65..5e50bc2b6 100644 --- a/lib/pleroma/web/mastodon_api/views/follow_request_view.ex +++ b/lib/pleroma/web/mastodon_api/views/follow_request_view.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.MastodonAPI.FollowRequestView do diff --git a/lib/pleroma/web/mastodon_api/views/instance_view.ex b/lib/pleroma/web/mastodon_api/views/instance_view.ex index 3528185d5..917725839 100644 --- a/lib/pleroma/web/mastodon_api/views/instance_view.ex +++ b/lib/pleroma/web/mastodon_api/views/instance_view.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.MastodonAPI.InstanceView do @@ -17,6 +17,7 @@ def render("show.json", _) do uri: Pleroma.Web.Endpoint.url(), title: Keyword.get(instance, :name), description: Keyword.get(instance, :description), + short_description: Keyword.get(instance, :short_description), version: "#{@mastodon_api_level} (compatible; #{Pleroma.Application.named_version()})", email: Keyword.get(instance, :email), urls: %{ @@ -31,6 +32,7 @@ def render("show.json", _) do approval_required: Keyword.get(instance, :account_approval_required), # Extra (not present in Mastodon): max_toot_chars: Keyword.get(instance, :limit), + max_media_attachments: Keyword.get(instance, :max_media_attachments), poll_limits: Keyword.get(instance, :poll_limits), upload_limit: Keyword.get(instance, :upload_limit), avatar_upload_limit: Keyword.get(instance, :avatar_upload_limit), @@ -45,7 +47,9 @@ def render("show.json", _) do features: features(), federation: federation(), fields_limits: fields_limits(), - post_formats: Config.get([:instance, :allowed_post_formats]) + post_formats: Config.get([:instance, :allowed_post_formats]), + birthday_required: Config.get([:instance, :birthday_required]), + birthday_min_age: Config.get([:instance, :birthday_min_age]) }, stats: %{mau: Pleroma.User.active_user_count()}, vapid_public_key: Keyword.get(Pleroma.Web.Push.vapid_config(), :public_key) @@ -59,10 +63,15 @@ def features do "mastodon_api", "mastodon_api_streaming", "polls", + "v2_suggestions", "pleroma_explicit_addressing", "shareable_emoji_packs", "multifetch", "pleroma:api/v1/notifications:include_types_filter", + "editing", + if Config.get([:activitypub, :blockers_visible]) do + "blockers_visible" + end, if Config.get([:media_proxy, :enabled]) do "media_proxy" end, @@ -83,7 +92,14 @@ def features do "safe_dm_mentions" end, "pleroma_emoji_reactions", - "pleroma_chat_messages" + "pleroma_chat_messages", + if Config.get([:instance, :show_reactions]) do + "exposable_reactions" + end, + if Config.get([:instance, :profile_directory]) do + "profile_directory" + end, + "pleroma:get:main/ostatus" ] |> Enum.filter(& &1) end @@ -95,7 +111,20 @@ def federation do {:ok, data} = MRF.describe() data - |> Map.merge(%{quarantined_instances: quarantined}) + |> Map.put( + :quarantined_instances, + Enum.map(quarantined, fn {instance, _reason} -> instance end) + ) + # This is for backwards compatibility. We originally didn't sent + # extra info like a reason why an instance was rejected/quarantined/etc. + # Because we didn't want to break backwards compatibility it was decided + # to add an extra "info" key. + |> Map.put(:quarantined_instances_info, %{ + "quarantined_instances" => + quarantined + |> Enum.map(fn {instance, reason} -> {instance, %{"reason" => reason}} end) + |> Map.new() + }) else %{} end diff --git a/lib/pleroma/web/mastodon_api/views/list_view.ex b/lib/pleroma/web/mastodon_api/views/list_view.ex index 931e77769..a7ae7c5f7 100644 --- a/lib/pleroma/web/mastodon_api/views/list_view.ex +++ b/lib/pleroma/web/mastodon_api/views/list_view.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.MastodonAPI.ListView do diff --git a/lib/pleroma/web/mastodon_api/views/marker_view.ex b/lib/pleroma/web/mastodon_api/views/marker_view.ex index 0c1880935..944769b1a 100644 --- a/lib/pleroma/web/mastodon_api/views/marker_view.ex +++ b/lib/pleroma/web/mastodon_api/views/marker_view.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.MastodonAPI.MarkerView do diff --git a/lib/pleroma/web/mastodon_api/views/media_view.ex b/lib/pleroma/web/mastodon_api/views/media_view.ex index cf521887e..4db72de8f 100644 --- a/lib/pleroma/web/mastodon_api/views/media_view.ex +++ b/lib/pleroma/web/mastodon_api/views/media_view.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.MastodonAPI.MediaView do diff --git a/lib/pleroma/web/mastodon_api/views/notification_view.ex b/lib/pleroma/web/mastodon_api/views/notification_view.ex index df9bedfed..b5b5b2376 100644 --- a/lib/pleroma/web/mastodon_api/views/notification_view.ex +++ b/lib/pleroma/web/mastodon_api/views/notification_view.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.MastodonAPI.NotificationView do @@ -19,7 +19,11 @@ defmodule Pleroma.Web.MastodonAPI.NotificationView do alias Pleroma.Web.MastodonAPI.StatusView alias Pleroma.Web.PleromaAPI.Chat.MessageReferenceView - @parent_types ~w{Like Announce EmojiReact} + defp object_id_for(%{data: %{"object" => %{"id" => id}}}) when is_binary(id), do: id + + defp object_id_for(%{data: %{"object" => id}}) when is_binary(id), do: id + + @parent_types ~w{Like Announce EmojiReact Update} def render("index.json", %{notifications: notifications, for: reading_user} = opts) do activities = Enum.map(notifications, & &1.activity) @@ -30,7 +34,7 @@ def render("index.json", %{notifications: notifications, for: reading_user} = op %{data: %{"type" => type}} -> type in @parent_types end) - |> Enum.map(& &1.data["object"]) + |> Enum.map(&object_id_for/1) |> Activity.create_by_object_ap_id() |> Activity.with_preloaded_object(:left) |> Pleroma.Repo.all() @@ -78,9 +82,9 @@ def render( parent_activity_fn = fn -> if opts[:parent_activities] do - Activity.Queries.find_by_object_ap_id(opts[:parent_activities], activity.data["object"]) + Activity.Queries.find_by_object_ap_id(opts[:parent_activities], object_id_for(activity)) else - Activity.get_create_by_object_ap_id(activity.data["object"]) + Activity.get_create_by_object_ap_id(object_id_for(activity)) end end @@ -109,9 +113,15 @@ def render( "reblog" -> put_status(response, parent_activity_fn.(), reading_user, status_render_opts) + "update" -> + put_status(response, parent_activity_fn.(), reading_user, status_render_opts) + "move" -> put_target(response, activity, reading_user, %{}) + "poll" -> + put_status(response, activity, reading_user, status_render_opts) + "pleroma:emoji_reaction" -> response |> put_status(parent_activity_fn.(), reading_user, status_render_opts) diff --git a/lib/pleroma/web/mastodon_api/views/poll_view.ex b/lib/pleroma/web/mastodon_api/views/poll_view.ex index 71bc8b949..34e23873e 100644 --- a/lib/pleroma/web/mastodon_api/views/poll_view.ex +++ b/lib/pleroma/web/mastodon_api/views/poll_view.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.MastodonAPI.PollView do diff --git a/lib/pleroma/web/mastodon_api/views/report_view.ex b/lib/pleroma/web/mastodon_api/views/report_view.ex index 0ff347ade..983f7bd24 100644 --- a/lib/pleroma/web/mastodon_api/views/report_view.ex +++ b/lib/pleroma/web/mastodon_api/views/report_view.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.MastodonAPI.ReportView do diff --git a/lib/pleroma/web/mastodon_api/views/scheduled_activity_view.ex b/lib/pleroma/web/mastodon_api/views/scheduled_activity_view.ex index 453221f41..772d22f0c 100644 --- a/lib/pleroma/web/mastodon_api/views/scheduled_activity_view.ex +++ b/lib/pleroma/web/mastodon_api/views/scheduled_activity_view.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.MastodonAPI.ScheduledActivityView do diff --git a/lib/pleroma/web/mastodon_api/views/status_view.ex b/lib/pleroma/web/mastodon_api/views/status_view.ex index 463f34198..0a8c98b44 100644 --- a/lib/pleroma/web/mastodon_api/views/status_view.ex +++ b/lib/pleroma/web/mastodon_api/views/status_view.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.MastodonAPI.StatusView do @@ -57,11 +57,19 @@ defp get_replied_to_activities(activities) do end) end - defp get_context_id(%{data: %{"context_id" => context_id}}) when not is_nil(context_id), - do: context_id + # DEPRECATED This field seems to be a left-over from the StatusNet era. + # If your application uses `pleroma.conversation_id`: this field is deprecated. + # It is currently stubbed instead by doing a CRC32 of the context, and + # clearing the MSB to avoid overflow exceptions with signed integers on the + # different clients using this field (Java/Kotlin code, mostly; see Husky.) + # This should be removed in a future version of Pleroma. Pleroma-FE currently + # depends on this field, as well. + defp get_context_id(%{data: %{"context" => context}}) when is_binary(context) do + import Bitwise - defp get_context_id(%{data: %{"context" => context}}) when is_binary(context), - do: Utils.context_to_conversation_id(context) + :erlang.crc32(context) + |> band(bnot(0x8000_0000)) + end defp get_context_id(_), do: nil @@ -258,10 +266,30 @@ def render("show.json", %{activity: %{data: %{"object" => _object}} = activity} created_at = Utils.to_masto_date(object.data["published"]) + edited_at = + with %{"updated" => updated} <- object.data, + date <- Utils.to_masto_date(updated), + true <- date != "" do + date + else + _ -> + nil + end + reply_to = get_reply_to(activity, opts) reply_to_user = reply_to && CommonAPI.get_user(reply_to.data["actor"]) + history_len = + 1 + + (Object.Updater.history_for(object.data) + |> Map.get("orderedItems") + |> length()) + + # See render("history.json", ...) for more details + # Here the implicit index of the current content is 0 + chrono_order = history_len - 1 + content = object |> render_content() @@ -271,14 +299,14 @@ def render("show.json", %{activity: %{data: %{"object" => _object}} = activity} |> Activity.HTML.get_cached_scrubbed_html_for_activity( User.html_filter_policy(opts[:for]), activity, - "mastoapi:content" + "mastoapi:content:#{chrono_order}" ) content_plaintext = content |> Activity.HTML.get_cached_stripped_html_for_activity( activity, - "mastoapi:content" + "mastoapi:content:#{chrono_order}" ) summary = object.data["summary"] || "" @@ -344,8 +372,9 @@ def render("show.json", %{activity: %{data: %{"object" => _object}} = activity} reblog: nil, card: card, content: content_html, - text: opts[:with_source] && object.data["source"], + text: opts[:with_source] && get_source_text(object.data["source"]), created_at: created_at, + edited_at: edited_at, reblogs_count: announcement_count, replies_count: object.data["repliesCount"] || 0, favourites_count: like_count, @@ -367,6 +396,7 @@ def render("show.json", %{activity: %{data: %{"object" => _object}} = activity} pleroma: %{ local: activity.local, conversation_id: get_context_id(activity), + context: object.data["context"], in_reply_to_account_acct: reply_to_user && reply_to_user.nickname, content: %{"text/plain" => content_plaintext}, spoiler_text: %{"text/plain" => summary}, @@ -384,6 +414,100 @@ def render("show.json", _) do nil end + def render("history.json", %{activity: %{data: %{"object" => _object}} = activity} = opts) do + object = Object.normalize(activity, fetch: false) + + hashtags = Object.hashtags(object) + + user = CommonAPI.get_user(activity.data["actor"]) + + past_history = + Object.Updater.history_for(object.data) + |> Map.get("orderedItems") + |> Enum.map(&Map.put(&1, "id", object.data["id"])) + |> Enum.map(&%Object{data: &1, id: object.id}) + + history = + [object | past_history] + # Mastodon expects the original to be at the first + |> Enum.reverse() + |> Enum.with_index() + |> Enum.map(fn {object, chrono_order} -> + %{ + # The history is prepended every time there is a new edit. + # In chrono_order, the oldest item is always at 0, and so on. + # The chrono_order is an invariant kept between edits. + chrono_order: chrono_order, + object: object + } + end) + + individual_opts = + opts + |> Map.put(:as, :item) + |> Map.put(:user, user) + |> Map.put(:hashtags, hashtags) + + render_many(history, StatusView, "history_item.json", individual_opts) + end + + def render( + "history_item.json", + %{ + activity: activity, + user: user, + item: %{object: object, chrono_order: chrono_order}, + hashtags: hashtags + } = opts + ) do + sensitive = object.data["sensitive"] || Enum.member?(hashtags, "nsfw") + + attachment_data = object.data["attachment"] || [] + attachments = render_many(attachment_data, StatusView, "attachment.json", as: :attachment) + + created_at = Utils.to_masto_date(object.data["updated"] || object.data["published"]) + + content = + object + |> render_content() + + content_html = + content + |> Activity.HTML.get_cached_scrubbed_html_for_activity( + User.html_filter_policy(opts[:for]), + activity, + "mastoapi:content:#{chrono_order}" + ) + + summary = object.data["summary"] || "" + + %{ + account: + AccountView.render("show.json", %{ + user: user, + for: opts[:for] + }), + content: content_html, + sensitive: sensitive, + spoiler_text: summary, + created_at: created_at, + media_attachments: attachments, + emojis: build_emojis(object.data["emoji"]), + poll: render(PollView, "show.json", object: object, for: opts[:for]) + } + end + + def render("source.json", %{activity: %{data: %{"object" => _object}} = activity} = _opts) do + object = Object.normalize(activity, fetch: false) + + %{ + id: activity.id, + text: get_source_text(Map.get(object.data, "source", "")), + spoiler_text: Map.get(object.data, "summary", ""), + content_type: get_source_content_type(object.data["source"]) + } + end + def render("card.json", %{rich_media: rich_media, page_url: page_url}) do page_url_data = URI.parse(page_url) @@ -436,10 +560,19 @@ def render("attachment.json", %{attachment: attachment}) do true -> "unknown" end - <> = :crypto.hash(:md5, href) + attachment_id = + with {_, ap_id} when is_binary(ap_id) <- {:ap_id, attachment["id"]}, + {_, %Object{data: _object_data, id: object_id}} <- + {:object, Object.get_by_ap_id(ap_id)} do + to_string(object_id) + else + _ -> + <> = :crypto.hash(:md5, href) + to_string(attachment["id"] || hash_id) + end %{ - id: to_string(attachment["id"] || hash_id), + id: attachment_id, url: href, remote_url: href, preview_url: href_preview, @@ -601,4 +734,24 @@ defp build_image_url(%URI{} = image_url_data, %URI{} = page_url_data) do end defp build_image_url(_, _), do: nil + + defp get_source_text(%{"content" => content} = _source) do + content + end + + defp get_source_text(source) when is_binary(source) do + source + end + + defp get_source_text(_) do + "" + end + + defp get_source_content_type(%{"mediaType" => type} = _source) do + type + end + + defp get_source_content_type(_source) do + Utils.get_content_type(nil) + end end diff --git a/lib/pleroma/web/mastodon_api/views/subscription_view.ex b/lib/pleroma/web/mastodon_api/views/subscription_view.ex index a07d23512..baa1e03bd 100644 --- a/lib/pleroma/web/mastodon_api/views/subscription_view.ex +++ b/lib/pleroma/web/mastodon_api/views/subscription_view.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.MastodonAPI.SubscriptionView do diff --git a/lib/pleroma/web/mastodon_api/views/suggestion_view.ex b/lib/pleroma/web/mastodon_api/views/suggestion_view.ex new file mode 100644 index 000000000..d3df4ef3f --- /dev/null +++ b/lib/pleroma/web/mastodon_api/views/suggestion_view.ex @@ -0,0 +1,28 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2022 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + +defmodule Pleroma.Web.MastodonAPI.SuggestionView do + use Pleroma.Web, :view + alias Pleroma.Web.MastodonAPI.AccountView + + @source_types [:staff, :global, :past_interactions] + + def render("index.json", %{users: users} = opts) do + Enum.map(users, fn user -> + opts = + opts + |> Map.put(:user, user) + |> Map.delete(:users) + + render("show.json", opts) + end) + end + + def render("show.json", %{source: source, user: _user} = opts) when source in @source_types do + %{ + source: source, + account: AccountView.render("show.json", opts) + } + end +end diff --git a/lib/pleroma/web/mastodon_api/views/timeline_view.ex b/lib/pleroma/web/mastodon_api/views/timeline_view.ex index 91226d78e..702eb7eeb 100644 --- a/lib/pleroma/web/mastodon_api/views/timeline_view.ex +++ b/lib/pleroma/web/mastodon_api/views/timeline_view.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.MastodonAPI.TimelineView do diff --git a/lib/pleroma/web/mastodon_api/websocket_handler.ex b/lib/pleroma/web/mastodon_api/websocket_handler.ex index 930e9eb29..88444106d 100644 --- a/lib/pleroma/web/mastodon_api/websocket_handler.ex +++ b/lib/pleroma/web/mastodon_api/websocket_handler.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.MastodonAPI.WebsocketHandler do @@ -50,9 +50,7 @@ def init(%{qs: qs} = req, state) do def websocket_init(state) do Logger.debug( - "#{__MODULE__} accepted websocket connection for user #{ - (state.user || %{id: "anonymous"}).id - }, topic #{state.topic}" + "#{__MODULE__} accepted websocket connection for user #{(state.user || %{id: "anonymous"}).id}, topic #{state.topic}" ) Streamer.add_socket(state.topic, state.oauth_token) @@ -111,9 +109,7 @@ def terminate(_reason, _req, []), do: :ok def terminate(reason, _req, state) do Logger.debug( - "#{__MODULE__} terminating websocket connection for user #{ - (state.user || %{id: "anonymous"}).id - }, topic #{state.topic || "?"}: #{inspect(reason)}" + "#{__MODULE__} terminating websocket connection for user #{(state.user || %{id: "anonymous"}).id}, topic #{state.topic || "?"}: #{inspect(reason)}" ) Streamer.remove_socket(state.topic) diff --git a/lib/pleroma/web/media_proxy.ex b/lib/pleroma/web/media_proxy.ex index 0b232f14b..d64760fc2 100644 --- a/lib/pleroma/web/media_proxy.ex +++ b/lib/pleroma/web/media_proxy.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.MediaProxy do diff --git a/lib/pleroma/web/media_proxy/invalidation.ex b/lib/pleroma/web/media_proxy/invalidation.ex index cb2db5ce9..ea927fe41 100644 --- a/lib/pleroma/web/media_proxy/invalidation.ex +++ b/lib/pleroma/web/media_proxy/invalidation.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.MediaProxy.Invalidation do diff --git a/lib/pleroma/web/media_proxy/invalidation/http.ex b/lib/pleroma/web/media_proxy/invalidation/http.ex index 0b2a45518..28ea74991 100644 --- a/lib/pleroma/web/media_proxy/invalidation/http.ex +++ b/lib/pleroma/web/media_proxy/invalidation/http.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.MediaProxy.Invalidation.Http do diff --git a/lib/pleroma/web/media_proxy/invalidation/script.ex b/lib/pleroma/web/media_proxy/invalidation/script.ex index 87a21166c..784178f1c 100644 --- a/lib/pleroma/web/media_proxy/invalidation/script.ex +++ b/lib/pleroma/web/media_proxy/invalidation/script.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.MediaProxy.Invalidation.Script do diff --git a/lib/pleroma/web/media_proxy/media_proxy_controller.ex b/lib/pleroma/web/media_proxy/media_proxy_controller.ex index c74eaaf93..d2ad62c13 100644 --- a/lib/pleroma/web/media_proxy/media_proxy_controller.ex +++ b/lib/pleroma/web/media_proxy/media_proxy_controller.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.MediaProxy.MediaProxyController do @@ -54,7 +54,7 @@ defp handle_preview(conn, url) do media_proxy_url = MediaProxy.url(url) with {:ok, %{status: status} = head_response} when status in 200..299 <- - Pleroma.HTTP.request("head", media_proxy_url, [], [], pool: :media) do + Pleroma.HTTP.request("HEAD", media_proxy_url, [], [], pool: :media) do content_type = Tesla.get_header(head_response, "content-type") content_length = Tesla.get_header(head_response, "content-length") content_length = content_length && String.to_integer(content_length) diff --git a/lib/pleroma/web/metadata.ex b/lib/pleroma/web/metadata.ex index 46ef00c08..59d018730 100644 --- a/lib/pleroma/web/metadata.ex +++ b/lib/pleroma/web/metadata.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.Metadata do diff --git a/lib/pleroma/web/metadata/player_view.ex b/lib/pleroma/web/metadata/player_view.ex index 9be5e433d..59c56a236 100644 --- a/lib/pleroma/web/metadata/player_view.ex +++ b/lib/pleroma/web/metadata/player_view.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.Metadata.PlayerView do diff --git a/lib/pleroma/web/metadata/providers/feed.ex b/lib/pleroma/web/metadata/providers/feed.ex index d0ab5c19e..e97d6a54f 100644 --- a/lib/pleroma/web/metadata/providers/feed.ex +++ b/lib/pleroma/web/metadata/providers/feed.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.Metadata.Providers.Feed do diff --git a/lib/pleroma/web/metadata/providers/open_graph.ex b/lib/pleroma/web/metadata/providers/open_graph.ex index df0cca74a..97d3865ed 100644 --- a/lib/pleroma/web/metadata/providers/open_graph.ex +++ b/lib/pleroma/web/metadata/providers/open_graph.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.Metadata.Providers.OpenGraph do diff --git a/lib/pleroma/web/metadata/providers/provider.ex b/lib/pleroma/web/metadata/providers/provider.ex index c91d87c6d..bb31c4d83 100644 --- a/lib/pleroma/web/metadata/providers/provider.ex +++ b/lib/pleroma/web/metadata/providers/provider.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.Metadata.Providers.Provider do diff --git a/lib/pleroma/web/metadata/providers/rel_me.ex b/lib/pleroma/web/metadata/providers/rel_me.ex index f013def51..f0bee85c8 100644 --- a/lib/pleroma/web/metadata/providers/rel_me.ex +++ b/lib/pleroma/web/metadata/providers/rel_me.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.Metadata.Providers.RelMe do diff --git a/lib/pleroma/web/metadata/providers/restrict_indexing.ex b/lib/pleroma/web/metadata/providers/restrict_indexing.ex index aa6511610..a43a7c92e 100644 --- a/lib/pleroma/web/metadata/providers/restrict_indexing.ex +++ b/lib/pleroma/web/metadata/providers/restrict_indexing.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.Metadata.Providers.RestrictIndexing do diff --git a/lib/pleroma/web/metadata/providers/twitter_card.ex b/lib/pleroma/web/metadata/providers/twitter_card.ex index 79183df86..2dac22ee2 100644 --- a/lib/pleroma/web/metadata/providers/twitter_card.ex +++ b/lib/pleroma/web/metadata/providers/twitter_card.ex @@ -1,6 +1,6 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.Metadata.Providers.TwitterCard do @@ -20,12 +20,12 @@ def build_tags(%{activity_id: id, object: object, user: user}) do [ title_tag(user), - {:meta, [property: "twitter:description", content: scrubbed_content], []} + {:meta, [name: "twitter:description", content: scrubbed_content], []} ] ++ if attachments == [] or Metadata.activity_nsfw?(object) do [ image_tag(user), - {:meta, [property: "twitter:card", content: "summary"], []} + {:meta, [name: "twitter:card", content: "summary"], []} ] else attachments @@ -37,20 +37,19 @@ def build_tags(%{user: user}) do with truncated_bio = Utils.scrub_html_and_truncate(user.bio) do [ title_tag(user), - {:meta, [property: "twitter:description", content: truncated_bio], []}, + {:meta, [name: "twitter:description", content: truncated_bio], []}, image_tag(user), - {:meta, [property: "twitter:card", content: "summary"], []} + {:meta, [name: "twitter:card", content: "summary"], []} ] end end defp title_tag(user) do - {:meta, [property: "twitter:title", content: Utils.user_name_string(user)], []} + {:meta, [name: "twitter:title", content: Utils.user_name_string(user)], []} end def image_tag(user) do - {:meta, [property: "twitter:image", content: MediaProxy.preview_url(User.avatar_url(user))], - []} + {:meta, [name: "twitter:image", content: MediaProxy.preview_url(User.avatar_url(user))], []} end defp build_attachments(id, %{data: %{"attachment" => attachments}}) do @@ -60,10 +59,10 @@ defp build_attachments(id, %{data: %{"attachment" => attachments}}) do case Utils.fetch_media_type(@media_types, url["mediaType"]) do "audio" -> [ - {:meta, [property: "twitter:card", content: "player"], []}, - {:meta, [property: "twitter:player:width", content: "480"], []}, - {:meta, [property: "twitter:player:height", content: "80"], []}, - {:meta, [property: "twitter:player", content: player_url(id)], []} + {:meta, [name: "twitter:card", content: "player"], []}, + {:meta, [name: "twitter:player:width", content: "480"], []}, + {:meta, [name: "twitter:player:height", content: "80"], []}, + {:meta, [name: "twitter:player", content: player_url(id)], []} | acc ] @@ -74,10 +73,10 @@ defp build_attachments(id, %{data: %{"attachment" => attachments}}) do # workaround. "image" -> [ - {:meta, [property: "twitter:card", content: "summary_large_image"], []}, + {:meta, [name: "twitter:card", content: "summary_large_image"], []}, {:meta, [ - property: "twitter:player", + name: "twitter:player", content: MediaProxy.url(url["href"]) ], []} | acc @@ -90,14 +89,14 @@ defp build_attachments(id, %{data: %{"attachment" => attachments}}) do width = url["width"] || 480 [ - {:meta, [property: "twitter:card", content: "player"], []}, - {:meta, [property: "twitter:player", content: player_url(id)], []}, - {:meta, [property: "twitter:player:width", content: "#{width}"], []}, - {:meta, [property: "twitter:player:height", content: "#{height}"], []}, - {:meta, [property: "twitter:player:stream", content: MediaProxy.url(url["href"])], + {:meta, [name: "twitter:card", content: "player"], []}, + {:meta, [name: "twitter:player", content: player_url(id)], []}, + {:meta, [name: "twitter:player:width", content: "#{width}"], []}, + {:meta, [name: "twitter:player:height", content: "#{height}"], []}, + {:meta, [name: "twitter:player:stream", content: MediaProxy.url(url["href"])], []}, - {:meta, - [property: "twitter:player:stream:content_type", content: url["mediaType"]], []} + {:meta, [name: "twitter:player:stream:content_type", content: url["mediaType"]], + []} | acc ] @@ -123,8 +122,8 @@ defp maybe_add_dimensions(metadata, url) do !is_nil(url["height"]) && !is_nil(url["width"]) -> metadata ++ [ - {:meta, [property: "twitter:player:width", content: "#{url["width"]}"], []}, - {:meta, [property: "twitter:player:height", content: "#{url["height"]}"], []} + {:meta, [name: "twitter:player:width", content: "#{url["width"]}"], []}, + {:meta, [name: "twitter:player:height", content: "#{url["height"]}"], []} ] true -> diff --git a/lib/pleroma/web/metadata/utils.ex b/lib/pleroma/web/metadata/utils.ex index caca42934..15414a988 100644 --- a/lib/pleroma/web/metadata/utils.ex +++ b/lib/pleroma/web/metadata/utils.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.Metadata.Utils do @@ -8,8 +8,8 @@ defmodule Pleroma.Web.Metadata.Utils do alias Pleroma.Formatter alias Pleroma.HTML - def scrub_html_and_truncate(%{data: %{"content" => content}} = object) do - content + defp scrub_html_and_truncate_object_field(field, object) do + field # html content comes from DB already encoded, decode first and scrub after |> HtmlEntities.decode() |> String.replace(~r//, " ") @@ -19,6 +19,17 @@ def scrub_html_and_truncate(%{data: %{"content" => content}} = object) do |> Formatter.truncate() end + def scrub_html_and_truncate(%{data: %{"summary" => summary}} = object) + when is_binary(summary) and summary != "" do + summary + |> scrub_html_and_truncate_object_field(object) + end + + def scrub_html_and_truncate(%{data: %{"content" => content}} = object) do + content + |> scrub_html_and_truncate_object_field(object) + end + def scrub_html_and_truncate(content, max_length \\ 200) when is_binary(content) do content |> scrub_html diff --git a/lib/pleroma/web/mongoose_im/mongoose_im_controller.ex b/lib/pleroma/web/mongoose_im/mongoose_im_controller.ex index 6ace3e0b5..0945ebb12 100644 --- a/lib/pleroma/web/mongoose_im/mongoose_im_controller.ex +++ b/lib/pleroma/web/mongoose_im/mongoose_im_controller.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.MongooseIM.MongooseIMController do diff --git a/lib/pleroma/web/nodeinfo/nodeinfo.ex b/lib/pleroma/web/nodeinfo/nodeinfo.ex index 6a0112d2a..9e27ac26c 100644 --- a/lib/pleroma/web/nodeinfo/nodeinfo.ex +++ b/lib/pleroma/web/nodeinfo/nodeinfo.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.Nodeinfo.Nodeinfo do @@ -35,7 +35,9 @@ def get_nodeinfo("2.0") do openRegistrations: Config.get([:instance, :registrations_open]), usage: %{ users: %{ - total: Map.get(stats, :user_count, 0) + total: Map.get(stats, :user_count, 0), + activeMonth: Pleroma.User.active_user_count(30), + activeHalfyear: Pleroma.User.active_user_count(180) }, localPosts: Map.get(stats, :status_count, 0) }, @@ -47,6 +49,10 @@ def get_nodeinfo("2.0") do enabled: false }, staffAccounts: staff_accounts, + roles: %{ + admin: Config.get([:instance, :admin_privileges]), + moderator: Config.get([:instance, :moderator_privileges]) + }, federation: federation, pollLimits: Config.get([:instance, :poll_limits]), postFormats: Config.get([:instance, :allowed_post_formats]), diff --git a/lib/pleroma/web/nodeinfo/nodeinfo_controller.ex b/lib/pleroma/web/nodeinfo/nodeinfo_controller.ex index 69ec27ba0..85c2393ff 100644 --- a/lib/pleroma/web/nodeinfo/nodeinfo_controller.ex +++ b/lib/pleroma/web/nodeinfo/nodeinfo_controller.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.Nodeinfo.NodeinfoController do diff --git a/lib/pleroma/web/o_auth.ex b/lib/pleroma/web/o_auth.ex index 3bc1a6ad4..d8c68df66 100644 --- a/lib/pleroma/web/o_auth.ex +++ b/lib/pleroma/web/o_auth.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.OAuth do diff --git a/lib/pleroma/web/o_auth/app.ex b/lib/pleroma/web/o_auth/app.ex index 382750010..0aa655381 100644 --- a/lib/pleroma/web/o_auth/app.ex +++ b/lib/pleroma/web/o_auth/app.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.OAuth.App do @@ -7,6 +7,7 @@ defmodule Pleroma.Web.OAuth.App do import Ecto.Changeset import Ecto.Query alias Pleroma.Repo + alias Pleroma.User @type t :: %__MODULE__{} @@ -19,6 +20,8 @@ defmodule Pleroma.Web.OAuth.App do field(:client_secret, :string) field(:trusted, :boolean, default: false) + belongs_to(:user, User, type: FlakeId.Ecto.CompatType) + has_many(:oauth_authorizations, Pleroma.Web.OAuth.Authorization, on_delete: :delete_all) has_many(:oauth_tokens, Pleroma.Web.OAuth.Token, on_delete: :delete_all) @@ -27,7 +30,7 @@ defmodule Pleroma.Web.OAuth.App do @spec changeset(t(), map()) :: Ecto.Changeset.t() def changeset(struct, params) do - cast(struct, params, [:client_name, :redirect_uris, :scopes, :website, :trusted]) + cast(struct, params, [:client_name, :redirect_uris, :scopes, :website, :trusted, :user_id]) end @spec register_changeset(t(), map()) :: Ecto.Changeset.t() @@ -129,6 +132,12 @@ def search(params) do {:ok, Repo.all(query), count} end + @spec get_user_apps(User.t()) :: {:ok, [t()], non_neg_integer()} + def get_user_apps(%User{id: user_id}) do + from(a in __MODULE__, where: a.user_id == ^user_id) + |> Repo.all() + end + @spec destroy(pos_integer()) :: {:ok, t()} | {:error, Ecto.Changeset.t()} def destroy(id) do with %__MODULE__{} = app <- Repo.get(__MODULE__, id) do diff --git a/lib/pleroma/web/o_auth/authorization.ex b/lib/pleroma/web/o_auth/authorization.ex index e0ecb0f4f..593d2d66f 100644 --- a/lib/pleroma/web/o_auth/authorization.ex +++ b/lib/pleroma/web/o_auth/authorization.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.OAuth.Authorization do diff --git a/lib/pleroma/web/o_auth/fallback_controller.ex b/lib/pleroma/web/o_auth/fallback_controller.ex index df68cbfc1..684a52c81 100644 --- a/lib/pleroma/web/o_auth/fallback_controller.ex +++ b/lib/pleroma/web/o_auth/fallback_controller.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.OAuth.FallbackController do diff --git a/lib/pleroma/web/o_auth/mfa_controller.ex b/lib/pleroma/web/o_auth/mfa_controller.ex index b38b00213..c4bc4a879 100644 --- a/lib/pleroma/web/o_auth/mfa_controller.ex +++ b/lib/pleroma/web/o_auth/mfa_controller.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.OAuth.MFAController do diff --git a/lib/pleroma/web/o_auth/mfa_view.ex b/lib/pleroma/web/o_auth/mfa_view.ex index 3d473f29c..bcadafe57 100644 --- a/lib/pleroma/web/o_auth/mfa_view.ex +++ b/lib/pleroma/web/o_auth/mfa_view.ex @@ -1,11 +1,12 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.OAuth.MFAView do use Pleroma.Web, :view import Phoenix.HTML.Form alias Pleroma.MFA + alias Pleroma.Web.Gettext def render("mfa_response.json", %{token: token, user: user}) do %{ diff --git a/lib/pleroma/web/o_auth/o_auth_controller.ex b/lib/pleroma/web/o_auth/o_auth_controller.ex index 247d8399c..c1fb4f378 100644 --- a/lib/pleroma/web/o_auth/o_auth_controller.ex +++ b/lib/pleroma/web/o_auth/o_auth_controller.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.OAuth.OAuthController do @@ -597,9 +597,6 @@ def login(%User{} = user, %App{} = app, requested_scopes) when is_list(requested end end - # Special case: Local MastodonFE - defp redirect_uri(%Plug.Conn{} = conn, "."), do: Routes.auth_url(conn, :login) - defp redirect_uri(%Plug.Conn{}, redirect_uri), do: redirect_uri defp get_session_registration_id(%Plug.Conn{} = conn), do: get_session(conn, :registration_id) diff --git a/lib/pleroma/web/o_auth/o_auth_view.ex b/lib/pleroma/web/o_auth/o_auth_view.ex index 1419c96a2..108102ce2 100644 --- a/lib/pleroma/web/o_auth/o_auth_view.ex +++ b/lib/pleroma/web/o_auth/o_auth_view.ex @@ -1,10 +1,12 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.OAuth.OAuthView do use Pleroma.Web, :view import Phoenix.HTML.Form + import Phoenix.HTML + alias Pleroma.Web.Gettext alias Pleroma.Web.OAuth.Token.Utils diff --git a/lib/pleroma/web/o_auth/scopes.ex b/lib/pleroma/web/o_auth/scopes.ex index ada43eae9..f33fc21c4 100644 --- a/lib/pleroma/web/o_auth/scopes.ex +++ b/lib/pleroma/web/o_auth/scopes.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.OAuth.Scopes do diff --git a/lib/pleroma/web/o_auth/token.ex b/lib/pleroma/web/o_auth/token.ex index 9d69e9db4..26de7bb10 100644 --- a/lib/pleroma/web/o_auth/token.ex +++ b/lib/pleroma/web/o_auth/token.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.OAuth.Token do diff --git a/lib/pleroma/web/o_auth/token/query.ex b/lib/pleroma/web/o_auth/token/query.ex index d16a759d8..4a4d2d3ef 100644 --- a/lib/pleroma/web/o_auth/token/query.ex +++ b/lib/pleroma/web/o_auth/token/query.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.OAuth.Token.Query do diff --git a/lib/pleroma/web/o_auth/token/strategy/refresh_token.ex b/lib/pleroma/web/o_auth/token/strategy/refresh_token.ex index f5a0ed272..6b0d9503c 100644 --- a/lib/pleroma/web/o_auth/token/strategy/refresh_token.ex +++ b/lib/pleroma/web/o_auth/token/strategy/refresh_token.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.OAuth.Token.Strategy.RefreshToken do diff --git a/lib/pleroma/web/o_auth/token/strategy/revoke.ex b/lib/pleroma/web/o_auth/token/strategy/revoke.ex index de99bc137..3b265b339 100644 --- a/lib/pleroma/web/o_auth/token/strategy/revoke.ex +++ b/lib/pleroma/web/o_auth/token/strategy/revoke.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.OAuth.Token.Strategy.Revoke do diff --git a/lib/pleroma/web/o_auth/token/utils.ex b/lib/pleroma/web/o_auth/token/utils.ex index b572dc9cf..773cd9792 100644 --- a/lib/pleroma/web/o_auth/token/utils.ex +++ b/lib/pleroma/web/o_auth/token/utils.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.OAuth.Token.Utils do diff --git a/lib/pleroma/web/o_status/o_status_controller.ex b/lib/pleroma/web/o_status/o_status_controller.ex index da3264149..ea4994bd0 100644 --- a/lib/pleroma/web/o_status/o_status_controller.ex +++ b/lib/pleroma/web/o_status/o_status_controller.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.OStatus.OStatusController do diff --git a/lib/pleroma/web/pleroma_api/controllers/account_controller.ex b/lib/pleroma/web/pleroma_api/controllers/account_controller.ex index 8e4d3e7f7..591391b60 100644 --- a/lib/pleroma/web/pleroma_api/controllers/account_controller.ex +++ b/lib/pleroma/web/pleroma_api/controllers/account_controller.ex @@ -1,12 +1,17 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.PleromaAPI.AccountController do use Pleroma.Web, :controller import Pleroma.Web.ControllerHelper, - only: [json_response: 3, add_link_headers: 2, assign_account_by_id: 2] + only: [ + json_response: 3, + add_link_headers: 2, + embed_relationships?: 1, + assign_account_by_id: 2 + ] alias Pleroma.User alias Pleroma.Web.ActivityPub.ActivityPub @@ -40,9 +45,23 @@ defmodule Pleroma.Web.PleromaAPI.AccountController do %{scopes: ["read:favourites"], fallback: :proceed_unauthenticated} when action == :favourites ) + plug( + OAuthScopesPlug, + %{fallback: :proceed_unauthenticated, scopes: ["read:accounts"]} + when action == :endorsements + ) + + plug( + OAuthScopesPlug, + %{scopes: ["read:accounts"]} when action == :birthdays + ) + plug(RateLimiter, [name: :account_confirmation_resend] when action == :confirmation_resend) - plug(:assign_account_by_id when action in [:favourites, :subscribe, :unsubscribe]) + plug( + :assign_account_by_id + when action in [:favourites, :endorsements, :subscribe, :unsubscribe] + ) defdelegate open_api_operation(action), to: Pleroma.Web.ApiSpec.PleromaAccountOperation @@ -90,6 +109,22 @@ def favourites(%{assigns: %{user: for_user, account: user}} = conn, params) do ) end + @doc "GET /api/v1/pleroma/accounts/:id/endorsements" + def endorsements(%{assigns: %{user: for_user, account: user}} = conn, params) do + users = + user + |> User.endorsed_users_relation(_restrict_deactivated = true) + |> Pleroma.Repo.all() + + conn + |> render("index.json", + for: for_user, + users: users, + as: :user, + embed_relationships: embed_relationships?(params) + ) + end + @doc "POST /api/v1/pleroma/accounts/:id/subscribe" def subscribe(%{assigns: %{user: user, account: subscription_target}} = conn, _params) do with {:ok, _subscription} <- User.subscribe(user, subscription_target) do @@ -107,4 +142,18 @@ def unsubscribe(%{assigns: %{user: user, account: subscription_target}} = conn, {:error, message} -> json_response(conn, :forbidden, %{error: message}) end end + + @doc "GET /api/v1/pleroma/birthdays" + def birthdays(%{assigns: %{user: %User{} = user}} = conn, %{day: day, month: month} = _params) do + birthdays = + User.get_friends_birthdays_query(user, day, month) + |> Pleroma.Repo.all() + + conn + |> render("index.json", + for: user, + users: birthdays, + as: :user + ) + end end diff --git a/lib/pleroma/web/pleroma_api/controllers/app_controller.ex b/lib/pleroma/web/pleroma_api/controllers/app_controller.ex new file mode 100644 index 000000000..3e84f75a4 --- /dev/null +++ b/lib/pleroma/web/pleroma_api/controllers/app_controller.ex @@ -0,0 +1,23 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2022 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + +defmodule Pleroma.Web.PleromaAPI.AppController do + use Pleroma.Web, :controller + + alias Pleroma.Web.OAuth.App + alias Pleroma.Web.Plugs.OAuthScopesPlug + + plug(OAuthScopesPlug, %{scopes: ["follow", "read"]} when action in [:index]) + + plug(Pleroma.Web.ApiSpec.CastAndValidate) + + defdelegate open_api_operation(action), to: Pleroma.Web.ApiSpec.PleromaAppOperation + + @doc "GET /api/v1/pleroma/apps" + def index(%{assigns: %{user: user}} = conn, _params) do + with apps <- App.get_user_apps(user) do + render(conn, "index.json", %{apps: apps}) + end + end +end diff --git a/lib/pleroma/web/pleroma_api/controllers/backup_controller.ex b/lib/pleroma/web/pleroma_api/controllers/backup_controller.ex index fc5d16771..b9daed22b 100644 --- a/lib/pleroma/web/pleroma_api/controllers/backup_controller.ex +++ b/lib/pleroma/web/pleroma_api/controllers/backup_controller.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.PleromaAPI.BackupController do @@ -9,7 +9,7 @@ defmodule Pleroma.Web.PleromaAPI.BackupController do alias Pleroma.Web.Plugs.OAuthScopesPlug action_fallback(Pleroma.Web.MastodonAPI.FallbackController) - plug(OAuthScopesPlug, %{scopes: ["read:accounts"]} when action in [:index, :create]) + plug(OAuthScopesPlug, %{scopes: ["read:backups"]} when action in [:index, :create]) plug(Pleroma.Web.ApiSpec.CastAndValidate) defdelegate open_api_operation(action), to: Pleroma.Web.ApiSpec.PleromaBackupOperation diff --git a/lib/pleroma/web/pleroma_api/controllers/chat_controller.ex b/lib/pleroma/web/pleroma_api/controllers/chat_controller.ex index dcd54b1af..3d7b6a4a7 100644 --- a/lib/pleroma/web/pleroma_api/controllers/chat_controller.ex +++ b/lib/pleroma/web/pleroma_api/controllers/chat_controller.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.PleromaAPI.ChatController do use Pleroma.Web, :controller @@ -151,7 +151,9 @@ def index2(%{assigns: %{user: user}} = conn, params) do index_query(user, params) |> Pagination.fetch_paginated(params) - render(conn, "index.json", chats: chats) + conn + |> add_link_headers(chats) + |> render("index.json", chats: chats) end defp index_query(%{id: user_id} = user, params) do diff --git a/lib/pleroma/web/pleroma_api/controllers/conversation_controller.ex b/lib/pleroma/web/pleroma_api/controllers/conversation_controller.ex index be2f4617d..37990db54 100644 --- a/lib/pleroma/web/pleroma_api/controllers/conversation_controller.ex +++ b/lib/pleroma/web/pleroma_api/controllers/conversation_controller.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.PleromaAPI.ConversationController do diff --git a/lib/pleroma/web/pleroma_api/controllers/emoji_file_controller.ex b/lib/pleroma/web/pleroma_api/controllers/emoji_file_controller.ex index 204e81311..f854cf9c1 100644 --- a/lib/pleroma/web/pleroma_api/controllers/emoji_file_controller.ex +++ b/lib/pleroma/web/pleroma_api/controllers/emoji_file_controller.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.PleromaAPI.EmojiFileController do diff --git a/lib/pleroma/web/pleroma_api/controllers/emoji_pack_controller.ex b/lib/pleroma/web/pleroma_api/controllers/emoji_pack_controller.ex index 1ea44f347..420fea12c 100644 --- a/lib/pleroma/web/pleroma_api/controllers/emoji_pack_controller.ex +++ b/lib/pleroma/web/pleroma_api/controllers/emoji_pack_controller.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.PleromaAPI.EmojiPackController do diff --git a/lib/pleroma/web/pleroma_api/controllers/emoji_reaction_controller.ex b/lib/pleroma/web/pleroma_api/controllers/emoji_reaction_controller.ex index da5f2474f..78fd0b219 100644 --- a/lib/pleroma/web/pleroma_api/controllers/emoji_reaction_controller.ex +++ b/lib/pleroma/web/pleroma_api/controllers/emoji_reaction_controller.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.PleromaAPI.EmojiReactionController do diff --git a/lib/pleroma/web/pleroma_api/controllers/instances_controller.ex b/lib/pleroma/web/pleroma_api/controllers/instances_controller.ex index 01424c6ba..6257e3153 100644 --- a/lib/pleroma/web/pleroma_api/controllers/instances_controller.ex +++ b/lib/pleroma/web/pleroma_api/controllers/instances_controller.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.PleromaAPI.InstancesController do diff --git a/lib/pleroma/web/pleroma_api/controllers/mascot_controller.ex b/lib/pleroma/web/pleroma_api/controllers/mascot_controller.ex index 429ef5112..66e9d8481 100644 --- a/lib/pleroma/web/pleroma_api/controllers/mascot_controller.ex +++ b/lib/pleroma/web/pleroma_api/controllers/mascot_controller.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.PleromaAPI.MascotController do diff --git a/lib/pleroma/web/pleroma_api/controllers/notification_controller.ex b/lib/pleroma/web/pleroma_api/controllers/notification_controller.ex index bcb3a9ae1..87ea81cef 100644 --- a/lib/pleroma/web/pleroma_api/controllers/notification_controller.ex +++ b/lib/pleroma/web/pleroma_api/controllers/notification_controller.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.PleromaAPI.NotificationController do diff --git a/lib/pleroma/web/pleroma_api/controllers/report_controller.ex b/lib/pleroma/web/pleroma_api/controllers/report_controller.ex index d93d7570a..1f0a82cee 100644 --- a/lib/pleroma/web/pleroma_api/controllers/report_controller.ex +++ b/lib/pleroma/web/pleroma_api/controllers/report_controller.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.PleromaAPI.ReportController do diff --git a/lib/pleroma/web/pleroma_api/controllers/scrobble_controller.ex b/lib/pleroma/web/pleroma_api/controllers/scrobble_controller.ex index ca26d80ef..bf6dc500c 100644 --- a/lib/pleroma/web/pleroma_api/controllers/scrobble_controller.ex +++ b/lib/pleroma/web/pleroma_api/controllers/scrobble_controller.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.PleromaAPI.ScrobbleController do diff --git a/lib/pleroma/web/pleroma_api/controllers/settings_controller.ex b/lib/pleroma/web/pleroma_api/controllers/settings_controller.ex new file mode 100644 index 000000000..1136575b6 --- /dev/null +++ b/lib/pleroma/web/pleroma_api/controllers/settings_controller.ex @@ -0,0 +1,79 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2022 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + +defmodule Pleroma.Web.PleromaAPI.SettingsController do + use Pleroma.Web, :controller + + alias Pleroma.Web.Plugs.OAuthScopesPlug + + plug(Pleroma.Web.ApiSpec.CastAndValidate) + + plug( + OAuthScopesPlug, + %{scopes: ["write:accounts"]} when action in [:update] + ) + + plug( + OAuthScopesPlug, + %{scopes: ["read:accounts"]} when action in [:show] + ) + + defdelegate open_api_operation(action), to: Pleroma.Web.ApiSpec.PleromaSettingsOperation + + @doc "GET /api/v1/pleroma/settings/:app" + def show(%{assigns: %{user: user}} = conn, %{app: app} = _params) do + conn + |> json(get_settings(user, app)) + end + + @doc "PATCH /api/v1/pleroma/settings/:app" + def update(%{assigns: %{user: user}, body_params: body_params} = conn, %{app: app} = _params) do + settings = + get_settings(user, app) + |> merge_recursively(body_params) + + with changeset <- + Pleroma.User.update_changeset( + user, + %{pleroma_settings_store: %{app => settings}} + ), + {:ok, _} <- Pleroma.Repo.update(changeset) do + conn + |> json(settings) + end + end + + defp merge_recursively(old, %{} = new) do + old = ensure_object(old) + + Enum.reduce( + new, + old, + fn + {k, nil}, acc -> + Map.drop(acc, [k]) + + {k, %{} = new_child}, acc -> + Map.put(acc, k, merge_recursively(acc[k], new_child)) + + {k, v}, acc -> + Map.put(acc, k, v) + end + ) + end + + defp get_settings(user, app) do + user.pleroma_settings_store + |> Map.get(app, %{}) + |> ensure_object() + end + + defp ensure_object(%{} = object) do + object + end + + defp ensure_object(_) do + %{} + end +end diff --git a/lib/pleroma/web/pleroma_api/controllers/two_factor_authentication_controller.ex b/lib/pleroma/web/pleroma_api/controllers/two_factor_authentication_controller.ex index 3940ad581..e69847b00 100644 --- a/lib/pleroma/web/pleroma_api/controllers/two_factor_authentication_controller.ex +++ b/lib/pleroma/web/pleroma_api/controllers/two_factor_authentication_controller.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.PleromaAPI.TwoFactorAuthenticationController do diff --git a/lib/pleroma/web/pleroma_api/controllers/user_import_controller.ex b/lib/pleroma/web/pleroma_api/controllers/user_import_controller.ex index 078d470d9..90428a532 100644 --- a/lib/pleroma/web/pleroma_api/controllers/user_import_controller.ex +++ b/lib/pleroma/web/pleroma_api/controllers/user_import_controller.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.PleromaAPI.UserImportController do diff --git a/lib/pleroma/web/pleroma_api/views/account_view.ex b/lib/pleroma/web/pleroma_api/views/account_view.ex index 28941f471..910bcee16 100644 --- a/lib/pleroma/web/pleroma_api/views/account_view.ex +++ b/lib/pleroma/web/pleroma_api/views/account_view.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.PleromaAPI.AccountView do diff --git a/lib/pleroma/web/pleroma_api/views/app_view.ex b/lib/pleroma/web/pleroma_api/views/app_view.ex new file mode 100644 index 000000000..1fdc3c224 --- /dev/null +++ b/lib/pleroma/web/pleroma_api/views/app_view.ex @@ -0,0 +1,11 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2022 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + +defmodule Pleroma.Web.PleromaAPI.AppView do + use Pleroma.Web, :view + + def render("index.json", %{apps: apps}) do + render_many(apps, Pleroma.Web.MastodonAPI.AppView, "show.json") + end +end diff --git a/lib/pleroma/web/pleroma_api/views/backup_view.ex b/lib/pleroma/web/pleroma_api/views/backup_view.ex index 944600c86..d778590f0 100644 --- a/lib/pleroma/web/pleroma_api/views/backup_view.ex +++ b/lib/pleroma/web/pleroma_api/views/backup_view.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.PleromaAPI.BackupView do diff --git a/lib/pleroma/web/pleroma_api/views/chat/message_reference_view.ex b/lib/pleroma/web/pleroma_api/views/chat/message_reference_view.ex index 2e4355992..241bf0010 100644 --- a/lib/pleroma/web/pleroma_api/views/chat/message_reference_view.ex +++ b/lib/pleroma/web/pleroma_api/views/chat/message_reference_view.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.PleromaAPI.Chat.MessageReferenceView do diff --git a/lib/pleroma/web/pleroma_api/views/chat_view.ex b/lib/pleroma/web/pleroma_api/views/chat_view.ex index 3794818a7..db6c13c05 100644 --- a/lib/pleroma/web/pleroma_api/views/chat_view.ex +++ b/lib/pleroma/web/pleroma_api/views/chat_view.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.PleromaAPI.ChatView do diff --git a/lib/pleroma/web/pleroma_api/views/conversation_view.ex b/lib/pleroma/web/pleroma_api/views/conversation_view.ex index 173006360..2c9c8d1c6 100644 --- a/lib/pleroma/web/pleroma_api/views/conversation_view.ex +++ b/lib/pleroma/web/pleroma_api/views/conversation_view.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.PleromaAPI.ConversationView do diff --git a/lib/pleroma/web/pleroma_api/views/emoji_reaction_view.ex b/lib/pleroma/web/pleroma_api/views/emoji_reaction_view.ex index c94527e6d..68ebd8292 100644 --- a/lib/pleroma/web/pleroma_api/views/emoji_reaction_view.ex +++ b/lib/pleroma/web/pleroma_api/views/emoji_reaction_view.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.PleromaAPI.EmojiReactionView do diff --git a/lib/pleroma/web/pleroma_api/views/notification_view.ex b/lib/pleroma/web/pleroma_api/views/notification_view.ex index 36b2fdfe8..db7f94803 100644 --- a/lib/pleroma/web/pleroma_api/views/notification_view.ex +++ b/lib/pleroma/web/pleroma_api/views/notification_view.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.PleromaAPI.NotificationView do diff --git a/lib/pleroma/web/pleroma_api/views/report_view.ex b/lib/pleroma/web/pleroma_api/views/report_view.ex index a0b3f085c..127e8f0cb 100644 --- a/lib/pleroma/web/pleroma_api/views/report_view.ex +++ b/lib/pleroma/web/pleroma_api/views/report_view.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.PleromaAPI.ReportView do diff --git a/lib/pleroma/web/pleroma_api/views/scrobble_view.ex b/lib/pleroma/web/pleroma_api/views/scrobble_view.ex index 2bc069529..a5985fb2a 100644 --- a/lib/pleroma/web/pleroma_api/views/scrobble_view.ex +++ b/lib/pleroma/web/pleroma_api/views/scrobble_view.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.PleromaAPI.ScrobbleView do diff --git a/lib/pleroma/web/plug.ex b/lib/pleroma/web/plug.ex index dffad3a06..29ab52e55 100644 --- a/lib/pleroma/web/plug.ex +++ b/lib/pleroma/web/plug.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.Plug do diff --git a/lib/pleroma/web/plugs/admin_secret_authentication_plug.ex b/lib/pleroma/web/plugs/admin_secret_authentication_plug.ex index 976e5cd92..2e4702fa1 100644 --- a/lib/pleroma/web/plugs/admin_secret_authentication_plug.ex +++ b/lib/pleroma/web/plugs/admin_secret_authentication_plug.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.Plugs.AdminSecretAuthenticationPlug do diff --git a/lib/pleroma/web/plugs/authentication_plug.ex b/lib/pleroma/web/plugs/authentication_plug.ex index 8d58169cf..a7fd697b5 100644 --- a/lib/pleroma/web/plugs/authentication_plug.ex +++ b/lib/pleroma/web/plugs/authentication_plug.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.Plugs.AuthenticationPlug do diff --git a/lib/pleroma/web/plugs/basic_auth_decoder_plug.ex b/lib/pleroma/web/plugs/basic_auth_decoder_plug.ex index 397f26de5..3eb13f955 100644 --- a/lib/pleroma/web/plugs/basic_auth_decoder_plug.ex +++ b/lib/pleroma/web/plugs/basic_auth_decoder_plug.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.Plugs.BasicAuthDecoderPlug do diff --git a/lib/pleroma/web/plugs/cache.ex b/lib/pleroma/web/plugs/cache.ex index 935b2d834..667477857 100644 --- a/lib/pleroma/web/plugs/cache.ex +++ b/lib/pleroma/web/plugs/cache.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.Plugs.Cache do diff --git a/lib/pleroma/web/plugs/digest_plug.ex b/lib/pleroma/web/plugs/digest_plug.ex index d72f8073c..20e265f8f 100644 --- a/lib/pleroma/web/plugs/digest_plug.ex +++ b/lib/pleroma/web/plugs/digest_plug.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.Plugs.DigestPlug do diff --git a/lib/pleroma/web/plugs/ensure_authenticated_plug.ex b/lib/pleroma/web/plugs/ensure_authenticated_plug.ex index 31e7410d6..8044a6bb2 100644 --- a/lib/pleroma/web/plugs/ensure_authenticated_plug.ex +++ b/lib/pleroma/web/plugs/ensure_authenticated_plug.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.Plugs.EnsureAuthenticatedPlug do diff --git a/lib/pleroma/web/plugs/ensure_privileged_plug.ex b/lib/pleroma/web/plugs/ensure_privileged_plug.ex new file mode 100644 index 000000000..f886c87ea --- /dev/null +++ b/lib/pleroma/web/plugs/ensure_privileged_plug.ex @@ -0,0 +1,44 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2022 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + +defmodule Pleroma.Web.Plugs.EnsurePrivilegedPlug do + @moduledoc """ + Ensures staff are privileged enough to do certain tasks. + """ + import Pleroma.Web.TranslationHelpers + import Plug.Conn + + alias Pleroma.Config + alias Pleroma.User + + def init(options) do + options + end + + def call(%{assigns: %{user: %User{is_admin: false, is_moderator: false}}} = conn, _) do + conn + |> render_error(:forbidden, "User isn't privileged.") + |> halt() + end + + def call( + %{assigns: %{user: %User{is_admin: is_admin, is_moderator: is_moderator}}} = conn, + privilege + ) do + if (is_admin and privilege in Config.get([:instance, :admin_privileges])) or + (is_moderator and privilege in Config.get([:instance, :moderator_privileges])) do + conn + else + conn + |> render_error(:forbidden, "User isn't privileged.") + |> halt() + end + end + + def call(conn, _) do + conn + |> render_error(:forbidden, "User isn't privileged.") + |> halt() + end +end diff --git a/lib/pleroma/web/plugs/ensure_public_or_authenticated_plug.ex b/lib/pleroma/web/plugs/ensure_public_or_authenticated_plug.ex index 8a8532f41..e98a3b661 100644 --- a/lib/pleroma/web/plugs/ensure_public_or_authenticated_plug.ex +++ b/lib/pleroma/web/plugs/ensure_public_or_authenticated_plug.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.Plugs.EnsurePublicOrAuthenticatedPlug do diff --git a/lib/pleroma/web/plugs/ensure_user_token_assigns_plug.ex b/lib/pleroma/web/plugs/ensure_user_token_assigns_plug.ex index 534b0cff1..5c57d2707 100644 --- a/lib/pleroma/web/plugs/ensure_user_token_assigns_plug.ex +++ b/lib/pleroma/web/plugs/ensure_user_token_assigns_plug.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.Plugs.EnsureUserTokenAssignsPlug do diff --git a/lib/pleroma/web/plugs/expect_authenticated_check_plug.ex b/lib/pleroma/web/plugs/expect_authenticated_check_plug.ex index f09cffe95..d1403e2bd 100644 --- a/lib/pleroma/web/plugs/expect_authenticated_check_plug.ex +++ b/lib/pleroma/web/plugs/expect_authenticated_check_plug.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.Plugs.ExpectAuthenticatedCheckPlug do diff --git a/lib/pleroma/web/plugs/expect_public_or_authenticated_check_plug.ex b/lib/pleroma/web/plugs/expect_public_or_authenticated_check_plug.ex index e227d5150..a74c76395 100644 --- a/lib/pleroma/web/plugs/expect_public_or_authenticated_check_plug.ex +++ b/lib/pleroma/web/plugs/expect_public_or_authenticated_check_plug.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.Plugs.ExpectPublicOrAuthenticatedCheckPlug do diff --git a/lib/pleroma/web/plugs/federating_plug.ex b/lib/pleroma/web/plugs/federating_plug.ex index eeef7e45b..d5b8ef3ed 100644 --- a/lib/pleroma/web/plugs/federating_plug.ex +++ b/lib/pleroma/web/plugs/federating_plug.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.Plugs.FederatingPlug do diff --git a/lib/pleroma/web/plugs/frontend_static.ex b/lib/pleroma/web/plugs/frontend_static.ex index ebe7eaf86..6ab8e4667 100644 --- a/lib/pleroma/web/plugs/frontend_static.ex +++ b/lib/pleroma/web/plugs/frontend_static.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.Plugs.FrontendStatic do diff --git a/lib/pleroma/web/plugs/http_security_plug.ex b/lib/pleroma/web/plugs/http_security_plug.ex index d1e6cc9d3..34895c8d5 100644 --- a/lib/pleroma/web/plugs/http_security_plug.ex +++ b/lib/pleroma/web/plugs/http_security_plug.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.Plugs.HTTPSecurityPlug do @@ -68,7 +68,7 @@ def headers do ] } - [{"reply-to", Jason.encode!(report_group)} | headers] + [{"report-to", Jason.encode!(report_group)} | headers] else headers end @@ -117,7 +117,7 @@ defp csp_string do if Config.get(:env) == :dev do "script-src 'self' 'unsafe-eval'" else - "script-src 'self'" + "script-src 'self' 'wasm-unsafe-eval'" end report = if report_uri, do: ["report-uri ", report_uri, ";report-to csp-endpoint"] diff --git a/lib/pleroma/web/plugs/http_signature_plug.ex b/lib/pleroma/web/plugs/http_signature_plug.ex index 0f7550516..4bf325218 100644 --- a/lib/pleroma/web/plugs/http_signature_plug.ex +++ b/lib/pleroma/web/plugs/http_signature_plug.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.Plugs.HTTPSignaturePlug do @@ -25,21 +25,58 @@ def call(conn, _opts) do end end + defp validate_signature(conn, request_target) do + # Newer drafts for HTTP signatures now use @request-target instead of the + # old (request-target). We'll now support both for incoming signatures. + conn = + conn + |> put_req_header("(request-target)", request_target) + |> put_req_header("@request-target", request_target) + + HTTPSignatures.validate_conn(conn) + end + + defp validate_signature(conn) do + # This (request-target) is non-standard, but many implementations do it + # this way due to a misinterpretation of + # https://datatracker.ietf.org/doc/html/draft-cavage-http-signatures-06 + # "path" was interpreted as not having the query, though later examples + # show that it must be the absolute path + query. This behavior is kept to + # make sure most software (Pleroma itself, Mastodon, and probably others) + # do not break. + request_target = String.downcase("#{conn.method}") <> " #{conn.request_path}" + + # This is the proper way to build the @request-target, as expected by + # many HTTP signature libraries, clarified in the following draft: + # https://www.ietf.org/archive/id/draft-ietf-httpbis-message-signatures-11.html#section-2.2.6 + # It is the same as before, but containing the query part as well. + proper_target = request_target <> "?#{conn.query_string}" + + cond do + # Normal, non-standard behavior but expected by Pleroma and more. + validate_signature(conn, request_target) -> + true + + # Has query string and the previous one failed: let's try the standard. + conn.query_string != "" -> + validate_signature(conn, proper_target) + + # If there's no query string and signature fails, it's rotten. + true -> + false + end + end + defp maybe_assign_valid_signature(conn) do if has_signature_header?(conn) do - # set (request-target) header to the appropriate value - # we also replace the digest header with the one we computed - request_target = String.downcase("#{conn.method}") <> " #{conn.request_path}" - + # we replace the digest header with the one we computed in DigestPlug conn = - conn - |> put_req_header("(request-target)", request_target) - |> case do + case conn do %{assigns: %{digest: digest}} = conn -> put_req_header(conn, "digest", digest) conn -> conn end - assign(conn, :valid_signature, HTTPSignatures.validate_conn(conn)) + assign(conn, :valid_signature, validate_signature(conn)) else Logger.debug("No signature header!") conn diff --git a/lib/pleroma/web/plugs/idempotency_plug.ex b/lib/pleroma/web/plugs/idempotency_plug.ex index 9ac8f3647..a3b7af869 100644 --- a/lib/pleroma/web/plugs/idempotency_plug.ex +++ b/lib/pleroma/web/plugs/idempotency_plug.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.Plugs.IdempotencyPlug do diff --git a/lib/pleroma/web/plugs/instance_static.ex b/lib/pleroma/web/plugs/instance_static.ex index 723b25679..75bfdd65b 100644 --- a/lib/pleroma/web/plugs/instance_static.ex +++ b/lib/pleroma/web/plugs/instance_static.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.Plugs.InstanceStatic do diff --git a/lib/pleroma/web/plugs/mapped_signature_to_identity_plug.ex b/lib/pleroma/web/plugs/mapped_signature_to_identity_plug.ex index 58cb0316a..c6d531086 100644 --- a/lib/pleroma/web/plugs/mapped_signature_to_identity_plug.ex +++ b/lib/pleroma/web/plugs/mapped_signature_to_identity_plug.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.Plugs.MappedSignatureToIdentityPlug do diff --git a/lib/pleroma/web/plugs/o_auth_plug.ex b/lib/pleroma/web/plugs/o_auth_plug.ex index 5e06ac3f6..ba04ddb72 100644 --- a/lib/pleroma/web/plugs/o_auth_plug.ex +++ b/lib/pleroma/web/plugs/o_auth_plug.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.Plugs.OAuthPlug do @@ -47,15 +47,17 @@ def call(conn, _) do # @spec fetch_user_and_token(String.t()) :: {:ok, User.t(), Token.t()} | nil defp fetch_user_and_token(token) do - query = + token_query = from(t in Token, - where: t.token == ^token, - join: user in assoc(t, :user), - preload: [user: user] + where: t.token == ^token ) - with %Token{user: user} = token_record <- Repo.one(query) do + with %Token{user_id: user_id} = token_record <- Repo.one(token_query), + false <- is_nil(user_id), + %User{} = user <- User.get_cached_by_id(user_id) do {:ok, user, token_record} + else + _ -> nil end end diff --git a/lib/pleroma/web/plugs/o_auth_scopes_plug.ex b/lib/pleroma/web/plugs/o_auth_scopes_plug.ex index f017c8bc7..faf0fd8c6 100644 --- a/lib/pleroma/web/plugs/o_auth_scopes_plug.ex +++ b/lib/pleroma/web/plugs/o_auth_scopes_plug.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.Plugs.OAuthScopesPlug do diff --git a/lib/pleroma/web/plugs/plug_helper.ex b/lib/pleroma/web/plugs/plug_helper.ex index d73021bf7..21bf03523 100644 --- a/lib/pleroma/web/plugs/plug_helper.ex +++ b/lib/pleroma/web/plugs/plug_helper.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.Plugs.PlugHelper do diff --git a/lib/pleroma/web/plugs/rate_limiter.ex b/lib/pleroma/web/plugs/rate_limiter.ex index 5bebe0ad5..2080b06bd 100644 --- a/lib/pleroma/web/plugs/rate_limiter.ex +++ b/lib/pleroma/web/plugs/rate_limiter.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.Plugs.RateLimiter do diff --git a/lib/pleroma/web/plugs/rate_limiter/limiter_supervisor.ex b/lib/pleroma/web/plugs/rate_limiter/limiter_supervisor.ex index 3db59bf17..a96be670a 100644 --- a/lib/pleroma/web/plugs/rate_limiter/limiter_supervisor.ex +++ b/lib/pleroma/web/plugs/rate_limiter/limiter_supervisor.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.Plugs.RateLimiter.LimiterSupervisor do diff --git a/lib/pleroma/web/plugs/rate_limiter/supervisor.ex b/lib/pleroma/web/plugs/rate_limiter/supervisor.ex index 0dc2aa71b..f00f3d95e 100644 --- a/lib/pleroma/web/plugs/rate_limiter/supervisor.ex +++ b/lib/pleroma/web/plugs/rate_limiter/supervisor.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.Plugs.RateLimiter.Supervisor do diff --git a/lib/pleroma/web/plugs/remote_ip.ex b/lib/pleroma/web/plugs/remote_ip.ex index 4d7daca56..f207d9fef 100644 --- a/lib/pleroma/web/plugs/remote_ip.ex +++ b/lib/pleroma/web/plugs/remote_ip.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.Plugs.RemoteIp do diff --git a/lib/pleroma/web/plugs/set_format_plug.ex b/lib/pleroma/web/plugs/set_format_plug.ex index 7ef88f305..84c67e7f0 100644 --- a/lib/pleroma/web/plugs/set_format_plug.ex +++ b/lib/pleroma/web/plugs/set_format_plug.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.Plugs.SetFormatPlug do diff --git a/lib/pleroma/web/plugs/set_locale_plug.ex b/lib/pleroma/web/plugs/set_locale_plug.ex index d77191cff..271912ace 100644 --- a/lib/pleroma/web/plugs/set_locale_plug.ex +++ b/lib/pleroma/web/plugs/set_locale_plug.ex @@ -1,23 +1,61 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only # NOTE: this module is based on https://github.com/smeevil/set_locale defmodule Pleroma.Web.Plugs.SetLocalePlug do import Plug.Conn, only: [get_req_header: 2, assign: 3] + def frontend_language_cookie_name, do: "userLanguage" + def init(_), do: nil def call(conn, _) do - locale = get_locale_from_header(conn) || Gettext.get_locale() - Gettext.put_locale(locale) - assign(conn, :locale, locale) + locales = get_locales_from_header(conn) + first_locale = Enum.at(locales, 0, Gettext.get_locale()) + + Pleroma.Web.Gettext.put_locales(locales) + + conn + |> assign(:locale, first_locale) + |> assign(:locales, locales) end - defp get_locale_from_header(conn) do + defp get_locales_from_header(conn) do conn - |> extract_accept_language() - |> Enum.find(&supported_locale?/1) + |> extract_preferred_language() + |> normalize_language_codes() + |> all_supported() + |> Enum.uniq() + end + + defp all_supported(locales) do + locales + |> Pleroma.Web.Gettext.ensure_fallbacks() + |> Enum.filter(&supported_locale?/1) + end + + defp normalize_language_codes(codes) do + codes + |> Enum.map(fn code -> Pleroma.Web.Gettext.normalize_locale(code) end) + end + + defp extract_preferred_language(conn) do + extract_frontend_language(conn) ++ extract_accept_language(conn) + end + + defp extract_frontend_language(conn) do + %{req_cookies: cookies} = + conn + |> Plug.Conn.fetch_cookies() + + case cookies[frontend_language_cookie_name()] do + nil -> + [] + + fe_lang -> + String.split(fe_lang, ",") + end end defp extract_accept_language(conn) do @@ -29,7 +67,6 @@ defp extract_accept_language(conn) do |> Enum.sort(&(&1.quality > &2.quality)) |> Enum.map(& &1.tag) |> Enum.reject(&is_nil/1) - |> ensure_language_fallbacks() _ -> [] @@ -37,9 +74,7 @@ defp extract_accept_language(conn) do end defp supported_locale?(locale) do - Pleroma.Web.Gettext - |> Gettext.known_locales() - |> Enum.member?(locale) + Pleroma.Web.Gettext.supports_locale?(locale) end defp parse_language_option(string) do @@ -53,11 +88,4 @@ defp parse_language_option(string) do %{tag: captures["tag"], quality: quality} end - - defp ensure_language_fallbacks(tags) do - Enum.flat_map(tags, fn tag -> - [language | _] = String.split(tag, "-") - if Enum.member?(tags, language), do: [tag], else: [tag, language] - end) - end end diff --git a/lib/pleroma/web/plugs/set_user_session_id_plug.ex b/lib/pleroma/web/plugs/set_user_session_id_plug.ex index a1cfa0915..c37214573 100644 --- a/lib/pleroma/web/plugs/set_user_session_id_plug.ex +++ b/lib/pleroma/web/plugs/set_user_session_id_plug.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.Plugs.SetUserSessionIdPlug do diff --git a/lib/pleroma/web/plugs/static_fe_plug.ex b/lib/pleroma/web/plugs/static_fe_plug.ex index 9ba9dc5ff..9a364fdbc 100644 --- a/lib/pleroma/web/plugs/static_fe_plug.ex +++ b/lib/pleroma/web/plugs/static_fe_plug.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.Plugs.StaticFEPlug do diff --git a/lib/pleroma/web/plugs/trailing_format_plug.ex b/lib/pleroma/web/plugs/trailing_format_plug.ex index c5069ae0e..a883ba541 100644 --- a/lib/pleroma/web/plugs/trailing_format_plug.ex +++ b/lib/pleroma/web/plugs/trailing_format_plug.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.Plugs.TrailingFormatPlug do diff --git a/lib/pleroma/web/plugs/uploaded_media.ex b/lib/pleroma/web/plugs/uploaded_media.ex index 2378e98d2..ad8143234 100644 --- a/lib/pleroma/web/plugs/uploaded_media.ex +++ b/lib/pleroma/web/plugs/uploaded_media.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.Plugs.UploadedMedia do diff --git a/lib/pleroma/web/plugs/user_enabled_plug.ex b/lib/pleroma/web/plugs/user_enabled_plug.ex index 1142a8dbc..ca104166a 100644 --- a/lib/pleroma/web/plugs/user_enabled_plug.ex +++ b/lib/pleroma/web/plugs/user_enabled_plug.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.Plugs.UserEnabledPlug do diff --git a/lib/pleroma/web/plugs/user_fetcher_plug.ex b/lib/pleroma/web/plugs/user_fetcher_plug.ex index 707df9bfd..87bc27393 100644 --- a/lib/pleroma/web/plugs/user_fetcher_plug.ex +++ b/lib/pleroma/web/plugs/user_fetcher_plug.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.Plugs.UserFetcherPlug do diff --git a/lib/pleroma/web/plugs/user_is_admin_plug.ex b/lib/pleroma/web/plugs/user_is_admin_plug.ex index 7649912ba..548eb9b9a 100644 --- a/lib/pleroma/web/plugs/user_is_admin_plug.ex +++ b/lib/pleroma/web/plugs/user_is_admin_plug.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.Plugs.UserIsAdminPlug do diff --git a/lib/pleroma/web/plugs/user_is_staff_plug.ex b/lib/pleroma/web/plugs/user_is_staff_plug.ex new file mode 100644 index 000000000..951e14674 --- /dev/null +++ b/lib/pleroma/web/plugs/user_is_staff_plug.ex @@ -0,0 +1,23 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2022 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + +defmodule Pleroma.Web.Plugs.UserIsStaffPlug do + import Pleroma.Web.TranslationHelpers + import Plug.Conn + + alias Pleroma.User + + def init(options) do + options + end + + def call(%{assigns: %{user: %User{is_admin: true}}} = conn, _), do: conn + def call(%{assigns: %{user: %User{is_moderator: true}}} = conn, _), do: conn + + def call(conn, _) do + conn + |> render_error(:forbidden, "User is not a staff member.") + |> halt() + end +end diff --git a/lib/pleroma/web/plugs/user_tracking_plug.ex b/lib/pleroma/web/plugs/user_tracking_plug.ex index c9a988f00..9b52fd505 100644 --- a/lib/pleroma/web/plugs/user_tracking_plug.ex +++ b/lib/pleroma/web/plugs/user_tracking_plug.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.Plugs.UserTrackingPlug do diff --git a/lib/pleroma/web/preload.ex b/lib/pleroma/web/preload.ex index e8588bcc9..4485383f9 100644 --- a/lib/pleroma/web/preload.ex +++ b/lib/pleroma/web/preload.ex @@ -1,10 +1,9 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.Preload do alias Phoenix.HTML - require Logger def build_tags(_conn, params) do preload_data = diff --git a/lib/pleroma/web/preload/providers/instance.ex b/lib/pleroma/web/preload/providers/instance.ex index eb0254c74..6183f7b70 100644 --- a/lib/pleroma/web/preload/providers/instance.ex +++ b/lib/pleroma/web/preload/providers/instance.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.Preload.Providers.Instance do diff --git a/lib/pleroma/web/preload/providers/provider.ex b/lib/pleroma/web/preload/providers/provider.ex index 60f304f2c..85e2badaa 100644 --- a/lib/pleroma/web/preload/providers/provider.ex +++ b/lib/pleroma/web/preload/providers/provider.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.Preload.Providers.Provider do diff --git a/lib/pleroma/web/preload/providers/timelines.ex b/lib/pleroma/web/preload/providers/timelines.ex index c1704ccdc..1031f48d2 100644 --- a/lib/pleroma/web/preload/providers/timelines.ex +++ b/lib/pleroma/web/preload/providers/timelines.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.Preload.Providers.Timelines do diff --git a/lib/pleroma/web/preload/providers/user.ex b/lib/pleroma/web/preload/providers/user.ex index 504f79ba0..74550cd56 100644 --- a/lib/pleroma/web/preload/providers/user.ex +++ b/lib/pleroma/web/preload/providers/user.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.Preload.Providers.User do diff --git a/lib/pleroma/web/push.ex b/lib/pleroma/web/push.ex index 154dae614..9665b0b4a 100644 --- a/lib/pleroma/web/push.ex +++ b/lib/pleroma/web/push.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.Push do diff --git a/lib/pleroma/web/push/impl.ex b/lib/pleroma/web/push/impl.ex index 83cbdc870..3c5f00764 100644 --- a/lib/pleroma/web/push/impl.ex +++ b/lib/pleroma/web/push/impl.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.Push.Impl do @@ -16,7 +16,7 @@ defmodule Pleroma.Web.Push.Impl do require Logger import Ecto.Query - @types ["Create", "Follow", "Announce", "Like", "Move", "EmojiReact"] + @types ["Create", "Follow", "Announce", "Like", "Move", "EmojiReact", "Update"] @doc "Performs sending notifications for user subscriptions" @spec perform(Notification.t()) :: list(any) | :error | {:error, :unknown_type} @@ -124,8 +124,8 @@ def build_content(notification, actor, object, mastodon_type) do def format_body(activity, actor, object, mastodon_type \\ nil) - def format_body(_activity, actor, %{data: %{"type" => "ChatMessage", "content" => content}}, _) do - case content do + def format_body(_activity, actor, %{data: %{"type" => "ChatMessage"} = data}, _) do + case data["content"] do nil -> "@#{actor.nickname}: (Attachment)" content -> "@#{actor.nickname}: #{Utils.scrub_html_and_truncate(content, 80)}" end @@ -174,6 +174,15 @@ def format_body( end end + def format_body( + %{activity: %{data: %{"type" => "Update"}}}, + actor, + _object, + _mastodon_type + ) do + "@#{actor.nickname} edited a status" + end + def format_title(activity, mastodon_type \\ nil) def format_title(%{activity: %{data: %{"directMessage" => true}}}, _mastodon_type) do @@ -187,6 +196,7 @@ def format_title(%{type: type}, mastodon_type) do "follow_request" -> "New Follow Request" "reblog" -> "New Repeat" "favourite" -> "New Favorite" + "update" -> "New Update" "pleroma:chat_mention" -> "New Chat Message" "pleroma:emoji_reaction" -> "New Reaction" type -> "New #{String.capitalize(type || "event")}" diff --git a/lib/pleroma/web/push/subscription.ex b/lib/pleroma/web/push/subscription.ex index 4f6c9bc9f..6fc45bd61 100644 --- a/lib/pleroma/web/push/subscription.ex +++ b/lib/pleroma/web/push/subscription.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.Push.Subscription do @@ -26,7 +26,7 @@ defmodule Pleroma.Web.Push.Subscription do end # credo:disable-for-next-line Credo.Check.Readability.MaxLineLength - @supported_alert_types ~w[follow favourite mention reblog pleroma:chat_mention pleroma:emoji_reaction]a + @supported_alert_types ~w[follow favourite mention reblog poll pleroma:chat_mention pleroma:emoji_reaction]a defp alerts(%{data: %{alerts: alerts}}) do alerts = Map.take(alerts, @supported_alert_types) diff --git a/lib/pleroma/web/rel_me.ex b/lib/pleroma/web/rel_me.ex index 7e745d07e..98fbc1c59 100644 --- a/lib/pleroma/web/rel_me.ex +++ b/lib/pleroma/web/rel_me.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.RelMe do diff --git a/lib/pleroma/web/rich_media/helpers.ex b/lib/pleroma/web/rich_media/helpers.ex index 566fc8c8a..0488df30e 100644 --- a/lib/pleroma/web/rich_media/helpers.ex +++ b/lib/pleroma/web/rich_media/helpers.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright _ 2017-2020 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.RichMedia.Helpers do diff --git a/lib/pleroma/web/rich_media/parser.ex b/lib/pleroma/web/rich_media/parser.ex index d6b54943b..dbe81eabb 100644 --- a/lib/pleroma/web/rich_media/parser.ex +++ b/lib/pleroma/web/rich_media/parser.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.RichMedia.Parser do diff --git a/lib/pleroma/web/rich_media/parser/ttl.ex b/lib/pleroma/web/rich_media/parser/ttl.ex index 0b7f14fb2..59d7f87ab 100644 --- a/lib/pleroma/web/rich_media/parser/ttl.ex +++ b/lib/pleroma/web/rich_media/parser/ttl.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.RichMedia.Parser.TTL do diff --git a/lib/pleroma/web/rich_media/parser/ttl/aws_signed_url.ex b/lib/pleroma/web/rich_media/parser/ttl/aws_signed_url.ex index c7eb267f3..fa41c160d 100644 --- a/lib/pleroma/web/rich_media/parser/ttl/aws_signed_url.ex +++ b/lib/pleroma/web/rich_media/parser/ttl/aws_signed_url.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.RichMedia.Parser.TTL.AwsSignedUrl do diff --git a/lib/pleroma/web/rich_media/parsers/meta_tags_parser.ex b/lib/pleroma/web/rich_media/parsers/meta_tags_parser.ex index 31c3d1e33..320a5f515 100644 --- a/lib/pleroma/web/rich_media/parsers/meta_tags_parser.ex +++ b/lib/pleroma/web/rich_media/parsers/meta_tags_parser.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.RichMedia.Parsers.MetaTagsParser do diff --git a/lib/pleroma/web/rich_media/parsers/o_embed.ex b/lib/pleroma/web/rich_media/parsers/o_embed.ex index 09eabec56..75318d9c7 100644 --- a/lib/pleroma/web/rich_media/parsers/o_embed.ex +++ b/lib/pleroma/web/rich_media/parsers/o_embed.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.RichMedia.Parsers.OEmbed do diff --git a/lib/pleroma/web/rich_media/parsers/ogp.ex b/lib/pleroma/web/rich_media/parsers/ogp.ex index d0edf1c88..b7f2b4216 100644 --- a/lib/pleroma/web/rich_media/parsers/ogp.ex +++ b/lib/pleroma/web/rich_media/parsers/ogp.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.RichMedia.Parsers.OGP do diff --git a/lib/pleroma/web/rich_media/parsers/twitter_card.ex b/lib/pleroma/web/rich_media/parsers/twitter_card.ex index 0adf84159..cc653729d 100644 --- a/lib/pleroma/web/rich_media/parsers/twitter_card.ex +++ b/lib/pleroma/web/rich_media/parsers/twitter_card.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.RichMedia.Parsers.TwitterCard do diff --git a/lib/pleroma/web/router.ex b/lib/pleroma/web/router.ex index efca7078a..ba1d64ab2 100644 --- a/lib/pleroma/web/router.ex +++ b/lib/pleroma/web/router.ex @@ -1,9 +1,10 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.Router do use Pleroma.Web, :router + import Phoenix.LiveDashboard.Router pipeline :accepts_html do plug(:accepts, ["html"]) @@ -96,14 +97,82 @@ defmodule Pleroma.Web.Router do plug(Pleroma.Web.Plugs.AdminSecretAuthenticationPlug) plug(:after_auth) plug(Pleroma.Web.Plugs.EnsureAuthenticatedPlug) - plug(Pleroma.Web.Plugs.UserIsAdminPlug) + plug(Pleroma.Web.Plugs.UserIsStaffPlug) plug(Pleroma.Web.Plugs.IdempotencyPlug) end - pipeline :mastodon_html do - plug(:browser) - plug(:authenticate) - plug(:after_auth) + pipeline :require_admin do + plug(Pleroma.Web.Plugs.UserIsAdminPlug) + end + + pipeline :require_privileged_role_users_delete do + plug(:admin_api) + plug(Pleroma.Web.Plugs.EnsurePrivilegedPlug, :users_delete) + end + + pipeline :require_privileged_role_users_manage_credentials do + plug(:admin_api) + plug(Pleroma.Web.Plugs.EnsurePrivilegedPlug, :users_manage_credentials) + end + + pipeline :require_privileged_role_messages_read do + plug(:admin_api) + plug(Pleroma.Web.Plugs.EnsurePrivilegedPlug, :messages_read) + end + + pipeline :require_privileged_role_users_manage_tags do + plug(:admin_api) + plug(Pleroma.Web.Plugs.EnsurePrivilegedPlug, :users_manage_tags) + end + + pipeline :require_privileged_role_users_manage_activation_state do + plug(:admin_api) + plug(Pleroma.Web.Plugs.EnsurePrivilegedPlug, :users_manage_activation_state) + end + + pipeline :require_privileged_role_users_manage_invites do + plug(:admin_api) + plug(Pleroma.Web.Plugs.EnsurePrivilegedPlug, :users_manage_invites) + end + + pipeline :require_privileged_role_reports_manage_reports do + plug(:admin_api) + plug(Pleroma.Web.Plugs.EnsurePrivilegedPlug, :reports_manage_reports) + end + + pipeline :require_privileged_role_users_read do + plug(:admin_api) + plug(Pleroma.Web.Plugs.EnsurePrivilegedPlug, :users_read) + end + + pipeline :require_privileged_role_messages_delete do + plug(:admin_api) + plug(Pleroma.Web.Plugs.EnsurePrivilegedPlug, :messages_delete) + end + + pipeline :require_privileged_role_emoji_manage_emoji do + plug(:admin_api) + plug(Pleroma.Web.Plugs.EnsurePrivilegedPlug, :emoji_manage_emoji) + end + + pipeline :require_privileged_role_instances_delete do + plug(:admin_api) + plug(Pleroma.Web.Plugs.EnsurePrivilegedPlug, :instances_delete) + end + + pipeline :require_privileged_role_moderation_log_read do + plug(:admin_api) + plug(Pleroma.Web.Plugs.EnsurePrivilegedPlug, :moderation_log_read) + end + + pipeline :require_privileged_role_statistics_read do + plug(:admin_api) + plug(Pleroma.Web.Plugs.EnsurePrivilegedPlug, :statistics_read) + end + + pipeline :require_privileged_role_announcements_manage_announcements do + plug(:admin_api) + plug(Pleroma.Web.Plugs.EnsurePrivilegedPlug, :announcements_manage_announcements) end pipeline :pleroma_html do @@ -152,6 +221,7 @@ defmodule Pleroma.Web.Router do get("/emoji", UtilController, :emoji) get("/captcha", UtilController, :captcha) get("/healthcheck", UtilController, :healthcheck) + post("/remote_interaction", UtilController, :remote_interaction) end scope "/api/v1/pleroma", Pleroma.Web do @@ -159,12 +229,9 @@ defmodule Pleroma.Web.Router do post("/uploader_callback/:upload_path", UploaderController, :callback) end + # AdminAPI: only admins can perform these actions scope "/api/v1/pleroma/admin", Pleroma.Web.AdminAPI do - pipe_through(:admin_api) - - put("/users/disable_mfa", AdminAPIController, :disable_mfa) - put("/users/tag", AdminAPIController, :tag_users) - delete("/users/tag", AdminAPIController, :untag_users) + pipe_through([:admin_api, :require_admin]) get("/users/:nickname/permission_group", AdminAPIController, :right_get) get("/users/:nickname/permission_group/:permission_group", AdminAPIController, :right_get) @@ -187,63 +254,25 @@ defmodule Pleroma.Web.Router do post("/users/follow", UserController, :follow) post("/users/unfollow", UserController, :unfollow) - delete("/users", UserController, :delete) post("/users", UserController, :create) - patch("/users/:nickname/toggle_activation", UserController, :toggle_activation) - patch("/users/activate", UserController, :activate) - patch("/users/deactivate", UserController, :deactivate) - patch("/users/approve", UserController, :approve) + + patch("/users/suggest", UserController, :suggest) + patch("/users/unsuggest", UserController, :unsuggest) get("/relay", RelayController, :index) post("/relay", RelayController, :follow) delete("/relay", RelayController, :unfollow) - post("/users/invite_token", InviteController, :create) - get("/users/invites", InviteController, :index) - post("/users/revoke_invite", InviteController, :revoke) - post("/users/email_invite", InviteController, :email) - - get("/users/:nickname/password_reset", AdminAPIController, :get_password_reset) - patch("/users/force_password_reset", AdminAPIController, :force_password_reset) - get("/users/:nickname/credentials", AdminAPIController, :show_user_credentials) - patch("/users/:nickname/credentials", AdminAPIController, :update_user_credentials) - - get("/users", UserController, :index) - get("/users/:nickname", UserController, :show) - get("/users/:nickname/statuses", AdminAPIController, :list_user_statuses) - get("/users/:nickname/chats", AdminAPIController, :list_user_chats) - - get("/instances/:instance/statuses", AdminAPIController, :list_instance_statuses) - get("/instance_document/:name", InstanceDocumentController, :show) patch("/instance_document/:name", InstanceDocumentController, :update) delete("/instance_document/:name", InstanceDocumentController, :delete) - patch("/users/confirm_email", AdminAPIController, :confirm_email) - patch("/users/resend_confirmation_email", AdminAPIController, :resend_confirmation_email) - - get("/reports", ReportController, :index) - get("/reports/:id", ReportController, :show) - patch("/reports", ReportController, :update) - post("/reports/:id/notes", ReportController, :notes_create) - delete("/reports/:report_id/notes/:id", ReportController, :notes_delete) - - get("/statuses/:id", StatusController, :show) - put("/statuses/:id", StatusController, :update) - delete("/statuses/:id", StatusController, :delete) - get("/statuses", StatusController, :index) - get("/config", ConfigController, :show) post("/config", ConfigController, :update) get("/config/descriptions", ConfigController, :descriptions) get("/need_reboot", AdminAPIController, :need_reboot) get("/restart", AdminAPIController, :restart) - get("/moderation_log", AdminAPIController, :list_log) - - post("/reload_emoji", AdminAPIController, :reload_emoji) - get("/stats", AdminAPIController, :stats) - get("/oauth_app", OAuthAppController, :index) post("/oauth_app", OAuthAppController, :create) patch("/oauth_app/:id", OAuthAppController, :update) @@ -253,19 +282,148 @@ defmodule Pleroma.Web.Router do post("/media_proxy_caches/delete", MediaProxyCacheController, :delete) post("/media_proxy_caches/purge", MediaProxyCacheController, :purge) - get("/chats/:id", ChatController, :show) - get("/chats/:id/messages", ChatController, :messages) - delete("/chats/:id/messages/:message_id", ChatController, :delete_message) - get("/frontends", FrontendController, :index) post("/frontends/install", FrontendController, :install) post("/backups", AdminAPIController, :create_backup) end + # AdminAPI: admins and mods (staff) can perform these actions (if privileged by role) + scope "/api/v1/pleroma/admin", Pleroma.Web.AdminAPI do + pipe_through(:require_privileged_role_announcements_manage_announcements) + + get("/announcements", AnnouncementController, :index) + post("/announcements", AnnouncementController, :create) + get("/announcements/:id", AnnouncementController, :show) + patch("/announcements/:id", AnnouncementController, :change) + delete("/announcements/:id", AnnouncementController, :delete) + end + + # AdminAPI: admins and mods (staff) can perform these actions (if privileged by role) + scope "/api/v1/pleroma/admin", Pleroma.Web.AdminAPI do + pipe_through(:require_privileged_role_users_delete) + + delete("/users", UserController, :delete) + end + + # AdminAPI: admins and mods (staff) can perform these actions (if privileged by role) + scope "/api/v1/pleroma/admin", Pleroma.Web.AdminAPI do + pipe_through(:require_privileged_role_users_manage_credentials) + + get("/users/:nickname/password_reset", AdminAPIController, :get_password_reset) + get("/users/:nickname/credentials", AdminAPIController, :show_user_credentials) + patch("/users/:nickname/credentials", AdminAPIController, :update_user_credentials) + put("/users/disable_mfa", AdminAPIController, :disable_mfa) + patch("/users/force_password_reset", AdminAPIController, :force_password_reset) + patch("/users/confirm_email", AdminAPIController, :confirm_email) + patch("/users/resend_confirmation_email", AdminAPIController, :resend_confirmation_email) + end + + # AdminAPI: admins and mods (staff) can perform these actions (if privileged by role) + scope "/api/v1/pleroma/admin", Pleroma.Web.AdminAPI do + pipe_through(:require_privileged_role_messages_read) + + get("/users/:nickname/statuses", AdminAPIController, :list_user_statuses) + get("/users/:nickname/chats", AdminAPIController, :list_user_chats) + + get("/statuses", StatusController, :index) + + get("/chats/:id", ChatController, :show) + get("/chats/:id/messages", ChatController, :messages) + + get("/instances/:instance/statuses", InstanceController, :list_statuses) + + get("/statuses/:id", StatusController, :show) + end + + # AdminAPI: admins and mods (staff) can perform these actions (if privileged by role) + scope "/api/v1/pleroma/admin", Pleroma.Web.AdminAPI do + pipe_through(:require_privileged_role_users_manage_tags) + + put("/users/tag", AdminAPIController, :tag_users) + delete("/users/tag", AdminAPIController, :untag_users) + end + + # AdminAPI: admins and mods (staff) can perform these actions (if privileged by role) + scope "/api/v1/pleroma/admin", Pleroma.Web.AdminAPI do + pipe_through(:require_privileged_role_users_manage_activation_state) + + patch("/users/:nickname/toggle_activation", UserController, :toggle_activation) + patch("/users/activate", UserController, :activate) + patch("/users/deactivate", UserController, :deactivate) + end + + # AdminAPI: admins and mods (staff) can perform these actions (if privileged by role) + scope "/api/v1/pleroma/admin", Pleroma.Web.AdminAPI do + pipe_through(:require_privileged_role_users_manage_invites) + + patch("/users/approve", UserController, :approve) + post("/users/invite_token", InviteController, :create) + get("/users/invites", InviteController, :index) + post("/users/revoke_invite", InviteController, :revoke) + post("/users/email_invite", InviteController, :email) + end + + # AdminAPI: admins and mods (staff) can perform these actions (if privileged by role) + scope "/api/v1/pleroma/admin", Pleroma.Web.AdminAPI do + pipe_through(:require_privileged_role_reports_manage_reports) + + get("/reports", ReportController, :index) + get("/reports/:id", ReportController, :show) + patch("/reports", ReportController, :update) + post("/reports/:id/notes", ReportController, :notes_create) + delete("/reports/:report_id/notes/:id", ReportController, :notes_delete) + end + + # AdminAPI: admins and mods (staff) can perform these actions (if privileged by role) + scope "/api/v1/pleroma/admin", Pleroma.Web.AdminAPI do + pipe_through(:require_privileged_role_users_read) + + get("/users", UserController, :index) + get("/users/:nickname", UserController, :show) + end + + # AdminAPI: admins and mods (staff) can perform these actions (if privileged by role) + scope "/api/v1/pleroma/admin", Pleroma.Web.AdminAPI do + pipe_through(:require_privileged_role_messages_delete) + + put("/statuses/:id", StatusController, :update) + delete("/statuses/:id", StatusController, :delete) + + delete("/chats/:id/messages/:message_id", ChatController, :delete_message) + end + + # AdminAPI: admins and mods (staff) can perform these actions (if privileged by role) + scope "/api/v1/pleroma/admin", Pleroma.Web.AdminAPI do + pipe_through(:require_privileged_role_emoji_manage_emoji) + + post("/reload_emoji", AdminAPIController, :reload_emoji) + end + + # AdminAPI: admins and mods (staff) can perform these actions (if privileged by role) + scope "/api/v1/pleroma/admin", Pleroma.Web.AdminAPI do + pipe_through(:require_privileged_role_instances_delete) + + delete("/instances/:instance", InstanceController, :delete) + end + + # AdminAPI: admins and mods (staff) can perform these actions (if privileged by role) + scope "/api/v1/pleroma/admin", Pleroma.Web.AdminAPI do + pipe_through(:require_privileged_role_moderation_log_read) + + get("/moderation_log", AdminAPIController, :list_log) + end + + # AdminAPI: admins and mods (staff) can perform these actions (if privileged by role) + scope "/api/v1/pleroma/admin", Pleroma.Web.AdminAPI do + pipe_through(:require_privileged_role_statistics_read) + + get("/stats", AdminAPIController, :stats) + end + scope "/api/v1/pleroma/emoji", Pleroma.Web.PleromaAPI do scope "/pack" do - pipe_through(:admin_api) + pipe_through(:require_privileged_role_emoji_manage_emoji) post("/", EmojiPackController, :create) patch("/", EmojiPackController, :update) @@ -280,7 +438,7 @@ defmodule Pleroma.Web.Router do # Modifying packs scope "/packs" do - pipe_through(:admin_api) + pipe_through(:require_privileged_role_emoji_manage_emoji) get("/import", EmojiPackController, :import_from_filesystem) get("/remote", EmojiPackController, :remote) @@ -304,6 +462,7 @@ defmodule Pleroma.Web.Router do pipe_through(:pleroma_html) post("/main/ostatus", UtilController, :remote_subscribe) + get("/main/ostatus", UtilController, :show_subscribe_form) get("/ostatus_subscribe", RemoteFollowController, :follow) post("/ostatus_subscribe", RemoteFollowController, :do_follow) end @@ -316,6 +475,11 @@ defmodule Pleroma.Web.Router do post("/delete_account", UtilController, :delete_account) put("/notification_settings", UtilController, :update_notificaton_settings) post("/disable_account", UtilController, :disable_account) + post("/move_account", UtilController, :move_account) + + put("/aliases", UtilController, :add_alias) + get("/aliases", UtilController, :list_aliases) + delete("/aliases", UtilController, :delete_alias) end scope "/api/pleroma", Pleroma.Web.PleromaAPI do @@ -368,6 +532,7 @@ defmodule Pleroma.Web.Router do scope "/api/v1/pleroma", Pleroma.Web.PleromaAPI do pipe_through(:api) + get("/apps", AppController, :index) get("/statuses/:id/reactions/:emoji", EmojiReactionController, :index) get("/statuses/:id/reactions", EmojiReactionController, :index) end @@ -412,6 +577,7 @@ defmodule Pleroma.Web.Router do scope [] do pipe_through(:api) get("/accounts/:id/favourites", AccountController, :favourites) + get("/accounts/:id/endorsements", AccountController, :endorsements) end scope [] do @@ -419,6 +585,15 @@ defmodule Pleroma.Web.Router do post("/accounts/:id/subscribe", AccountController, :subscribe) post("/accounts/:id/unsubscribe", AccountController, :unsubscribe) + + get("/birthdays", AccountController, :birthdays) + end + + scope [] do + pipe_through(:authenticated_api) + + get("/settings/:app", SettingsController, :show) + patch("/settings/:app", SettingsController, :update) end post("/accounts/confirmation_resend", AccountController, :confirmation_resend) @@ -457,6 +632,10 @@ defmodule Pleroma.Web.Router do post("/accounts/:id/unblock", AccountController, :unblock) post("/accounts/:id/mute", AccountController, :mute) post("/accounts/:id/unmute", AccountController, :unmute) + post("/accounts/:id/note", AccountController, :note) + post("/accounts/:id/pin", AccountController, :endorse) + post("/accounts/:id/unpin", AccountController, :unendorse) + post("/accounts/:id/remove_from_followers", AccountController, :remove_from_followers) get("/conversations", ConversationController, :index) post("/conversations/:id/read", ConversationController, :mark_as_read) @@ -518,6 +697,7 @@ defmodule Pleroma.Web.Router do get("/bookmarks", StatusController, :bookmarks) post("/statuses", StatusController, :create) + put("/statuses/:id", StatusController, :update) delete("/statuses/:id", StatusController, :delete) post("/statuses/:id/reblog", StatusController, :reblog) post("/statuses/:id/unreblog", StatusController, :unreblog) @@ -536,17 +716,14 @@ defmodule Pleroma.Web.Router do delete("/push/subscription", SubscriptionController, :delete) get("/suggestions", SuggestionController, :index) + delete("/suggestions/:account_id", SuggestionController, :dismiss) get("/timelines/home", TimelineController, :home) get("/timelines/direct", TimelineController, :direct) get("/timelines/list/:list_id", TimelineController, :list) - end - scope "/api/web", Pleroma.Web do - pipe_through(:authenticated_api) - - # Backend-obscure settings blob for MastoFE, don't parse/reuse elsewhere - put("/settings", MastoFEController, :put_settings) + get("/announcements", AnnouncementController, :index) + post("/announcements/:id/dismiss", AnnouncementController, :mark_read) end scope "/api/v1", Pleroma.Web.MastodonAPI do @@ -562,6 +739,8 @@ defmodule Pleroma.Web.Router do get("/accounts/search", SearchController, :account_search) get("/search", SearchController, :search) + get("/accounts/lookup", AccountController, :lookup) + get("/accounts/:id/statuses", AccountController, :statuses) get("/accounts/:id/followers", AccountController, :followers) get("/accounts/:id/following", AccountController, :following) @@ -578,6 +757,8 @@ defmodule Pleroma.Web.Router do get("/statuses/:id/card", StatusController, :card) get("/statuses/:id/favourited_by", StatusController, :favourited_by) get("/statuses/:id/reblogged_by", StatusController, :reblogged_by) + get("/statuses/:id/history", StatusController, :show_history) + get("/statuses/:id/source", StatusController, :show_source) get("/custom_emojis", CustomEmojiController, :index) @@ -587,6 +768,8 @@ defmodule Pleroma.Web.Router do get("/timelines/tag/:tag", TimelineController, :hashtag) get("/polls/:id", PollController, :show) + + get("/directory", DirectoryController, :index) end scope "/api/v2", Pleroma.Web.MastodonAPI do @@ -594,6 +777,8 @@ defmodule Pleroma.Web.Router do get("/search", SearchController, :search2) post("/media", MediaController, :create2) + + get("/suggestions", SuggestionController, :index2) end scope "/api", Pleroma.Web do @@ -747,20 +932,13 @@ defmodule Pleroma.Web.Router do scope "/", Pleroma.Web do pipe_through(:api) - get("/web/manifest.json", MastoFEController, :manifest) + get("/manifest.json", ManifestController, :show) end scope "/", Pleroma.Web do - pipe_through(:mastodon_html) + pipe_through(:pleroma_html) - get("/web/login", MastodonAPI.AuthController, :login) - delete("/auth/sign_out", MastodonAPI.AuthController, :logout) - - post("/auth/password", MastodonAPI.AuthController, :password_reset) - - get("/web/*path", MastoFEController, :index) - - get("/embed/:id", EmbedController, :show) + post("/auth/password", TwitterAPI.PasswordController, :request) end scope "/proxy/", Pleroma.Web do @@ -778,6 +956,11 @@ defmodule Pleroma.Web.Router do end end + scope "/" do + pipe_through([:pleroma_html, :authenticate, :require_admin]) + live_dashboard("/phoenix/live_dashboard") + end + # Test-only routes needed to test action dispatching and plug chain execution if Pleroma.Config.get(:env) == :test do @test_actions [ diff --git a/lib/pleroma/web/shout_channel.ex b/lib/pleroma/web/shout_channel.ex index 17caecb1a..928f0a1dd 100644 --- a/lib/pleroma/web/shout_channel.ex +++ b/lib/pleroma/web/shout_channel.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.ShoutChannel do diff --git a/lib/pleroma/web/static_fe/static_fe_controller.ex b/lib/pleroma/web/static_fe/static_fe_controller.ex index 50f0927a3..97c41c6f9 100644 --- a/lib/pleroma/web/static_fe/static_fe_controller.ex +++ b/lib/pleroma/web/static_fe/static_fe_controller.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.StaticFE.StaticFEController do diff --git a/lib/pleroma/web/static_fe/static_fe_view.ex b/lib/pleroma/web/static_fe/static_fe_view.ex index c04715337..8e23a79a3 100644 --- a/lib/pleroma/web/static_fe/static_fe_view.ex +++ b/lib/pleroma/web/static_fe/static_fe_view.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.StaticFE.StaticFEView do diff --git a/lib/pleroma/web/streamer.ex b/lib/pleroma/web/streamer.ex index 8bf70d99b..3c0da5c27 100644 --- a/lib/pleroma/web/streamer.ex +++ b/lib/pleroma/web/streamer.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.Streamer do @@ -296,6 +296,24 @@ defp push_to_socket(topic, %Activity{ defp push_to_socket(_topic, %Activity{data: %{"type" => "Delete"}}), do: :noop + defp push_to_socket(topic, %Activity{data: %{"type" => "Update"}} = item) do + create_activity = + Pleroma.Activity.get_create_by_object_ap_id(item.object.data["id"]) + |> Map.put(:object, item.object) + + anon_render = StreamerView.render("status_update.json", create_activity) + + Registry.dispatch(@registry, topic, fn list -> + Enum.each(list, fn {pid, auth?} -> + if auth? do + send(pid, {:render_with_user, StreamerView, "status_update.json", create_activity}) + else + send(pid, {:text, anon_render}) + end + end) + end) + end + defp push_to_socket(topic, item) do anon_render = StreamerView.render("update.json", item) diff --git a/lib/pleroma/web/templates/email/digest.html.eex b/lib/pleroma/web/templates/email/digest.html.eex index 60eceff22..1efc76e1a 100644 --- a/lib/pleroma/web/templates/email/digest.html.eex +++ b/lib/pleroma/web/templates/email/digest.html.eex @@ -160,7 +160,7 @@

Hey <%= @user.nickname %>, here is what you've missed!

+ style="font-size: 30px; color: <%= @styling.header_color %>;"><%= Gettext.dpgettext("static_pages", "digest email header line", "Hey %{nickname}, here is what you've missed!", nickname: @user.nickname) %>

@@ -382,7 +382,7 @@

<%= length(@followers) %> New Followers<%= Gettext.dpngettext("static_pages", "new followers count header", "%{count} New Follower", "%{count} New Followers", length(@followers), count: length(@followers)) %>

@@ -535,16 +535,16 @@ style="color:<%= @styling.text_color %>;font-family:Arial, 'Helvetica Neue', Helvetica, sans-serif;line-height:120%;padding-top:10px;padding-right:10px;padding-bottom:10px;padding-left:10px;">

- You have received this email because you have signed up to receive digest emails from <%= @instance %> Pleroma instance.

+ <%= raw Gettext.dpgettext("static_pages", "digest email sending reason", "You have received this email because you have signed up to receive digest emails from %{instance} Pleroma instance.", instance: safe_to_string(html_escape(@instance))) %>

 

- The email address you are subscribed as is <%= @user.email %>.

+ <%= raw Gettext.dpgettext("static_pages", "digest email receiver address", "The email address you are subscribed as is %{email}. ", color: safe_to_string(html_escape(@styling.link_color)), email: safe_to_string(html_escape(@user.email))) %>

- To unsubscribe, please go <%= link "here", style: "color: #{@styling.link_color};text-decoration: none;", to: @unsubscribe_link %>.

+ <%= raw Gettext.dpgettext("static_pages", "digest email unsubscribe action", "To unsubscribe, please go %{here}.", here: safe_to_string link(Gettext.dpgettext("static_pages", "digest email unsubscribe action link text", "here"), style: "color: #{@styling.link_color};text-decoration: none;", to: @unsubscribe_link)) %>

diff --git a/lib/pleroma/web/templates/feed/feed/_activity.atom.eex b/lib/pleroma/web/templates/feed/feed/_activity.atom.eex index 57bd92468..260338772 100644 --- a/lib/pleroma/web/templates/feed/feed/_activity.atom.eex +++ b/lib/pleroma/web/templates/feed/feed/_activity.atom.eex @@ -3,15 +3,15 @@ http://activitystrea.ms/schema/1.0/post <%= @data["id"] %> <%= activity_title(@data, Keyword.get(@feed_config, :post_title, %{})) %> - <%= activity_content(@data) %> - <%= @activity.data["published"] %> - <%= @activity.data["published"] %> + <%= activity_description(@data) %> + <%= to_rfc3339(@activity.data["published"]) %> + <%= to_rfc3339(@activity.data["published"]) %> <%= activity_context(@activity) %> - <%= if @data["summary"] do %> + <%= if @data["summary"] != "" do %> <%= escape(@data["summary"]) %> <% end %> diff --git a/lib/pleroma/web/templates/feed/feed/_activity.rss.eex b/lib/pleroma/web/templates/feed/feed/_activity.rss.eex index 279f2171d..5c8f35fe4 100644 --- a/lib/pleroma/web/templates/feed/feed/_activity.rss.eex +++ b/lib/pleroma/web/templates/feed/feed/_activity.rss.eex @@ -3,17 +3,12 @@ http://activitystrea.ms/schema/1.0/post <%= @data["id"] %> <%= activity_title(@data, Keyword.get(@feed_config, :post_title, %{})) %> - <%= activity_content(@data) %> - <%= @activity.data["published"] %> - <%= @activity.data["published"] %> + <%= activity_description(@data) %> + <%= to_rfc2822(@activity.data["published"]) %> <%= activity_context(@activity) %> - <%= if @data["summary"] do %> - <%= escape(@data["summary"]) %> - <% end %> - <%= if @activity.local do %> <%= @data["id"] %> <% else %> @@ -27,7 +22,7 @@ <% end %> <%= for attachment <- @data["attachment"] || [] do %> - <%= attachment_href(attachment) %> + <% end %> <%= if @data["inReplyTo"] do %> diff --git a/lib/pleroma/web/templates/feed/feed/_author.atom.eex b/lib/pleroma/web/templates/feed/feed/_author.atom.eex index 25cbffada..90be8a559 100644 --- a/lib/pleroma/web/templates/feed/feed/_author.atom.eex +++ b/lib/pleroma/web/templates/feed/feed/_author.atom.eex @@ -1,17 +1,14 @@ - <%= @user.ap_id %> - http://activitystrea.ms/schema/1.0/person <%= @user.ap_id %> + <%= @user.nickname %> + http://activitystrea.ms/schema/1.0/person + <%= @user.name %> + <%= User.avatar_url(@user) %> + <%= @user.ap_id %> + <%= to_rfc3339(@user.inserted_at) %> + <%= to_rfc3339(@user.updated_at) %> + <%= @user.ap_id %> <%= @user.nickname %> <%= @user.name %> <%= escape(@user.bio) %> - <%= escape(@user.bio) %> - <%= @user.nickname %> - - <%= if User.banner_url(@user) do %> - - <% end %> - <%= if @user.local do %> - true - <% end %> diff --git a/lib/pleroma/web/templates/feed/feed/_author.rss.eex b/lib/pleroma/web/templates/feed/feed/_author.rss.eex index 526aeddcf..22477e6b1 100644 --- a/lib/pleroma/web/templates/feed/feed/_author.rss.eex +++ b/lib/pleroma/web/templates/feed/feed/_author.rss.eex @@ -1,17 +1,10 @@ - - <%= @user.ap_id %> - http://activitystrea.ms/schema/1.0/person - <%= @user.ap_id %> - <%= @user.nickname %> - <%= @user.name %> - <%= escape(@user.bio) %> - <%= escape(@user.bio) %> - <%= @user.nickname %> - <%= User.avatar_url(@user) %> - <%= if User.banner_url(@user) do %> - <%= User.banner_url(@user) %> - <% end %> - <%= if @user.local do %> - true - <% end %> - +<%= "#{email(@user)} (#{escape(@user.name)})" %> +http://activitystrea.ms/schema/1.0/person +<%= @user.name %> +<%= User.avatar_url(@user) %> +<%= @user.ap_id %> +<%= to_rfc3339(@user.inserted_at) %> +<%= to_rfc3339(@user.updated_at) %> +<%= @user.nickname %> +<%= @user.name %> +<%= escape(@user.bio) %> diff --git a/lib/pleroma/web/templates/feed/feed/_tag_activity.atom.eex b/lib/pleroma/web/templates/feed/feed/_tag_activity.atom.eex index aa3035bca..25980c1e4 100644 --- a/lib/pleroma/web/templates/feed/feed/_tag_activity.atom.eex +++ b/lib/pleroma/web/templates/feed/feed/_tag_activity.atom.eex @@ -1,12 +1,22 @@ - http://activitystrea.ms/schema/1.0/note - http://activitystrea.ms/schema/1.0/post + http://activitystrea.ms/schema/1.0/note + http://activitystrea.ms/schema/1.0/post - <%= render @view_module, "_tag_author.atom", assigns %> + <%= render Phoenix.Controller.view_module(@conn), "_tag_author.atom", assigns %> - <%= @data["id"] %> - <%= activity_title(@data, Keyword.get(@feed_config, :post_title, %{})) %> - <%= activity_content(@data) %> + <%= @data["id"] %> + <%= activity_title(@data, Keyword.get(@feed_config, :post_title, %{})) %> + <%= activity_description(@data) %> + <%= to_rfc3339(@activity.data["published"]) %> + <%= to_rfc3339(@activity.data["published"]) %> + + <%= activity_context(@activity) %> + + + + <%= if @data["summary"] != "" do %> + <%= @data["summary"] %> + <% end %> <%= if @activity.local do %> @@ -15,37 +25,25 @@ <% end %> - <%= @activity.data["published"] %> - <%= @activity.data["published"] %> - - - <%= activity_context(@activity) %> - - - - <%= if @data["summary"] do %> - <%= @data["summary"] %> - <% end %> - - <%= for id <- @activity.recipients do %> - <%= if id == Pleroma.Constants.as_public() do %> + <%= for id <- @activity.recipients do %> + <%= if id == Pleroma.Constants.as_public() do %> + + <% else %> + <%= unless Regex.match?(~r/^#{Pleroma.Web.Endpoint.url()}.+followers$/, id) do %> - <% else %> - <%= unless Regex.match?(~r/^#{Pleroma.Web.Endpoint.url()}.+followers$/, id) do %> - - <% end %> + ostatus:object-type="http://activitystrea.ms/schema/1.0/person" + href="<%= id %>" /> <% end %> <% end %> + <% end %> - <%= for tag <- Pleroma.Object.hashtags(@object) do %> - - <% end %> + <%= for tag <- Pleroma.Object.hashtags(@object) do %> + + <% end %> - <%= for {emoji, file} <- @data["emoji"] || %{} do %> - - <% end %> + <%= for {emoji, file} <- @data["emoji"] || %{} do %> + + <% end %> diff --git a/lib/pleroma/web/templates/feed/feed/_tag_activity.xml.eex b/lib/pleroma/web/templates/feed/feed/_tag_activity.xml.eex index 2334e24a2..d582c83e8 100644 --- a/lib/pleroma/web/templates/feed/feed/_tag_activity.xml.eex +++ b/lib/pleroma/web/templates/feed/feed/_tag_activity.xml.eex @@ -4,9 +4,9 @@ <%= activity_context(@activity) %> <%= activity_context(@activity) %> - <%= pub_date(@activity.data["published"]) %> + <%= to_rfc2822(@activity.data["published"]) %> - <%= activity_content(@data) %> + <%= activity_description(@data) %> <%= for attachment <- @data["attachment"] || [] do %> <% end %> diff --git a/lib/pleroma/web/templates/feed/feed/_tag_author.atom.eex b/lib/pleroma/web/templates/feed/feed/_tag_author.atom.eex index 997c4936e..71c696832 100644 --- a/lib/pleroma/web/templates/feed/feed/_tag_author.atom.eex +++ b/lib/pleroma/web/templates/feed/feed/_tag_author.atom.eex @@ -1,18 +1,14 @@ - http://activitystrea.ms/schema/1.0/person - <%= @actor.ap_id %> - <%= @actor.ap_id %> - <%= @actor.nickname %> - <%= escape(@actor.bio) %> - - <%= if User.banner_url(@actor) do %> - - <% end %> - <%= if @actor.local do %> - true - <% end %> - - <%= @actor.nickname %> - <%= @actor.name %> - <%= escape(@actor.bio) %> + <%= @actor.ap_id %> + <%= @actor.nickname %> + http://activitystrea.ms/schema/1.0/person + <%= @actor.name %> + <%= User.avatar_url(@actor) %> + <%= @actor.ap_id %> + <%= to_rfc3339(@actor.inserted_at) %> + <%= to_rfc3339(@actor.updated_at) %> + <%= @actor.ap_id %> + <%= @actor.nickname %> + <%= @actor.name %> + <%= escape(@actor.bio) %> diff --git a/lib/pleroma/web/templates/feed/feed/tag.atom.eex b/lib/pleroma/web/templates/feed/feed/tag.atom.eex index de0731085..14b0ee594 100644 --- a/lib/pleroma/web/templates/feed/feed/tag.atom.eex +++ b/lib/pleroma/web/templates/feed/feed/tag.atom.eex @@ -1,22 +1,20 @@ + - + <%= Routes.tag_feed_url(@conn, :feed, @tag) <> ".atom" %> + #<%= @tag %> + <%= Gettext.dpgettext("static_pages", "tag feed description", "These are public toots tagged with #%{tag}. You can interact with them if you have an account anywhere in the fediverse.", tag: @tag) %> + <%= feed_logo() %> + <%= most_recent_update(@activities) %> + - <%= '#{Routes.tag_feed_url(@conn, :feed, @tag)}.rss' %> - #<%= @tag %> - - These are public toots tagged with #<%= @tag %>. You can interact with them if you have an account anywhere in the fediverse. - <%= feed_logo() %> - <%= most_recent_update(@activities) %> - - <%= for activity <- @activities do %> - <%= render @view_module, "_tag_activity.atom", Map.merge(assigns, prepare_activity(activity, actor: true)) %> - <% end %> + <%= for activity <- @activities do %> + <%= render Phoenix.Controller.view_module(@conn), "_tag_activity.atom", Map.merge(assigns, prepare_activity(activity, actor: true)) %> + <% end %> diff --git a/lib/pleroma/web/templates/feed/feed/tag.rss.eex b/lib/pleroma/web/templates/feed/feed/tag.rss.eex index 9c3613feb..27dde5627 100644 --- a/lib/pleroma/web/templates/feed/feed/tag.rss.eex +++ b/lib/pleroma/web/templates/feed/feed/tag.rss.eex @@ -1,15 +1,16 @@ - + - #<%= @tag %> - These are public toots tagged with #<%= @tag %>. You can interact with them if you have an account anywhere in the fediverse. + <%= Gettext.dpgettext("static_pages", "tag feed description", "These are public toots tagged with #%{tag}. You can interact with them if you have an account anywhere in the fediverse.", tag: @tag) %> <%= '#{Routes.tag_feed_url(@conn, :feed, @tag)}.rss' %> <%= feed_logo() %> 2b90d9 <%= for activity <- @activities do %> - <%= render @view_module, "_tag_activity.xml", Map.merge(assigns, prepare_activity(activity)) %> + <%= render Phoenix.Controller.view_module(@conn), "_tag_activity.xml", Map.merge(assigns, prepare_activity(activity)) %> <% end %> diff --git a/lib/pleroma/web/templates/feed/feed/user.atom.eex b/lib/pleroma/web/templates/feed/feed/user.atom.eex index 5c1f0ecbc..e36bfc66c 100644 --- a/lib/pleroma/web/templates/feed/feed/user.atom.eex +++ b/lib/pleroma/web/templates/feed/feed/user.atom.eex @@ -8,17 +8,18 @@ <%= Routes.user_feed_url(@conn, :feed, @user.nickname) <> ".atom" %> <%= @user.nickname <> "'s timeline" %> - <%= most_recent_update(@activities, @user) %> + <%= escape(@user.bio) %> + <%= most_recent_update(@activities, @user, :atom) %> <%= logo(@user) %> - <%= render @view_module, "_author.atom", assigns %> + <%= render Phoenix.Controller.view_module(@conn), "_author.atom", assigns %> <%= if last_activity(@activities) do %> <% end %> <%= for activity <- @activities do %> - <%= render @view_module, "_activity.atom", Map.merge(assigns, prepare_activity(activity)) %> + <%= render Phoenix.Controller.view_module(@conn), "_activity.atom", Map.merge(assigns, prepare_activity(activity)) %> <% end %> diff --git a/lib/pleroma/web/templates/feed/feed/user.rss.eex b/lib/pleroma/web/templates/feed/feed/user.rss.eex index 6b842a085..fae3fcf3d 100644 --- a/lib/pleroma/web/templates/feed/feed/user.rss.eex +++ b/lib/pleroma/web/templates/feed/feed/user.rss.eex @@ -1,20 +1,30 @@ - + - <%= Routes.user_feed_url(@conn, :feed, @user.nickname) <> ".rss" %> <%= @user.nickname <> "'s timeline" %> - <%= most_recent_update(@activities, @user) %> - <%= logo(@user) %> <%= '#{Routes.user_feed_url(@conn, :feed, @user.nickname)}.rss' %> + " + rel="self" type="application/rss+xml" /> + <%= escape(@user.bio) %> + + <%= logo(@user) %> + <%= @user.nickname <> "'s timeline" %> + <%= '#{Routes.user_feed_url(@conn, :feed, @user.nickname)}.rss' %> + - <%= render @view_module, "_author.rss", assigns %> + <%= render Phoenix.Controller.view_module(@conn), "_author.rss", assigns %> <%= if last_activity(@activities) do %> <%= '#{Routes.user_feed_url(@conn, :feed, @user.nickname)}.rss?max_id=#{last_activity(@activities).id}' %> <% end %> <%= for activity <- @activities do %> - <%= render @view_module, "_activity.rss", Map.merge(assigns, prepare_activity(activity)) %> + <%= render Phoenix.Controller.view_module(@conn), "_activity.rss", Map.merge(assigns, prepare_activity(activity)) %> <% end %> diff --git a/lib/pleroma/web/templates/layout/app.html.eex b/lib/pleroma/web/templates/layout/app.html.eex index 1ede59fd8..e33bada85 100644 --- a/lib/pleroma/web/templates/layout/app.html.eex +++ b/lib/pleroma/web/templates/layout/app.html.eex @@ -1,5 +1,5 @@ - + diff --git a/lib/pleroma/web/templates/layout/email.html.eex b/lib/pleroma/web/templates/layout/email.html.eex index f6dcd7f0f..5858e48b4 100644 --- a/lib/pleroma/web/templates/layout/email.html.eex +++ b/lib/pleroma/web/templates/layout/email.html.eex @@ -1,10 +1,10 @@ - + <%= @email.subject %> - <%= render @view_module, @view_template, assigns %> + <%= render Phoenix.Controller.view_module(@conn), Phoenix.Controller.view_template(@conn), assigns %> - \ No newline at end of file + diff --git a/lib/pleroma/web/templates/layout/embed.html.eex b/lib/pleroma/web/templates/layout/embed.html.eex index 8b905f070..1197288e5 100644 --- a/lib/pleroma/web/templates/layout/embed.html.eex +++ b/lib/pleroma/web/templates/layout/embed.html.eex @@ -10,6 +10,6 @@ - <%= render @view_module, @view_template, assigns %> + <%= render Phoenix.Controller.view_module(@conn), Phoenix.Controller.view_template(@conn), assigns %> diff --git a/lib/pleroma/web/templates/mailer/subscription/unsubscribe_failure.html.eex b/lib/pleroma/web/templates/mailer/subscription/unsubscribe_failure.html.eex index 7b476f02d..df090ffcd 100644 --- a/lib/pleroma/web/templates/mailer/subscription/unsubscribe_failure.html.eex +++ b/lib/pleroma/web/templates/mailer/subscription/unsubscribe_failure.html.eex @@ -1 +1 @@ -

UNSUBSCRIBE FAILURE

+

<%= Gettext.dpgettext("static_pages", "mailer unsubscribe failed message", "UNSUBSCRIBE FAILURE") %>

diff --git a/lib/pleroma/web/templates/mailer/subscription/unsubscribe_success.html.eex b/lib/pleroma/web/templates/mailer/subscription/unsubscribe_success.html.eex index 6dfa2c185..cbce495d4 100644 --- a/lib/pleroma/web/templates/mailer/subscription/unsubscribe_success.html.eex +++ b/lib/pleroma/web/templates/mailer/subscription/unsubscribe_success.html.eex @@ -1 +1 @@ -

UNSUBSCRIBE SUCCESSFUL

+

<%= Gettext.dpgettext("static_pages", "mailer unsubscribe successful message", "UNSUBSCRIBE SUCCESSFUL") %>

diff --git a/lib/pleroma/web/templates/masto_fe/index.html.eex b/lib/pleroma/web/templates/masto_fe/index.html.eex deleted file mode 100644 index 6f2b98957..000000000 --- a/lib/pleroma/web/templates/masto_fe/index.html.eex +++ /dev/null @@ -1,35 +0,0 @@ - - - - - - -<%= Config.get([:instance, :name]) %> - - - - - - - - - - - - - - - - - - - - - - - - -
-
- - diff --git a/lib/pleroma/web/templates/o_auth/mfa/recovery.html.eex b/lib/pleroma/web/templates/o_auth/mfa/recovery.html.eex index b9daa8d8b..e45d13bdf 100644 --- a/lib/pleroma/web/templates/o_auth/mfa/recovery.html.eex +++ b/lib/pleroma/web/templates/o_auth/mfa/recovery.html.eex @@ -5,11 +5,11 @@ <% end %> -

Two-factor recovery

+

<%= Gettext.dpgettext("static_pages", "mfa recover page title", "Two-factor recovery") %>

<%= form_for @conn, Routes.mfa_verify_path(@conn, :verify), [as: "mfa"], fn f -> %>
- <%= label f, :code, "Recovery code" %> + <%= label f, :code, Gettext.dpgettext("static_pages", "mfa recover recovery code prompt", "Recovery code") %> <%= text_input f, :code, [autocomplete: false, autocorrect: "off", autocapitalize: "off", autofocus: true, spellcheck: false] %> <%= hidden_input f, :mfa_token, value: @mfa_token %> <%= hidden_input f, :state, value: @state %> @@ -17,8 +17,8 @@ <%= hidden_input f, :challenge_type, value: "recovery" %>
-<%= submit "Verify" %> +<%= submit Gettext.dpgettext("static_pages", "mfa recover verify recovery code button", "Verify") %> <% end %> "> - Enter a two-factor code + <%= Gettext.dpgettext("static_pages", "mfa recover use 2fa code link", "Enter a two-factor code") %> diff --git a/lib/pleroma/web/templates/o_auth/mfa/totp.html.eex b/lib/pleroma/web/templates/o_auth/mfa/totp.html.eex index 29ea7c5fb..50e6c04b6 100644 --- a/lib/pleroma/web/templates/o_auth/mfa/totp.html.eex +++ b/lib/pleroma/web/templates/o_auth/mfa/totp.html.eex @@ -5,20 +5,20 @@ <% end %> -

Two-factor authentication

+

<%= Gettext.dpgettext("static_pages", "mfa auth page title", "Two-factor authentication") %>

<%= form_for @conn, Routes.mfa_verify_path(@conn, :verify), [as: "mfa"], fn f -> %>
- <%= label f, :code, "Authentication code" %> - <%= text_input f, :code, [autocomplete: false, autocorrect: "off", autocapitalize: "off", autofocus: true, pattern: "[0-9]*", spellcheck: false] %> + <%= label f, :code, Gettext.dpgettext("static_pages", "mfa auth code prompt", "Authentication code") %> + <%= text_input f, :code, [autocomplete: "one-time-code", autocorrect: "off", autocapitalize: "off", autofocus: true, pattern: "[0-9]*", spellcheck: false] %> <%= hidden_input f, :mfa_token, value: @mfa_token %> <%= hidden_input f, :state, value: @state %> <%= hidden_input f, :redirect_uri, value: @redirect_uri %> <%= hidden_input f, :challenge_type, value: "totp" %>
-<%= submit "Verify" %> +<%= submit Gettext.dpgettext("static_pages", "mfa auth verify code button", "Verify") %> <% end %> "> - Enter a two-factor recovery code + <%= Gettext.dpgettext("static_pages", "mfa auth page use recovery code link", "Enter a two-factor recovery code") %> diff --git a/lib/pleroma/web/templates/o_auth/o_auth/_scopes.html.eex b/lib/pleroma/web/templates/o_auth/o_auth/_scopes.html.eex index c9ec1ecbf..73115e92a 100644 --- a/lib/pleroma/web/templates/o_auth/o_auth/_scopes.html.eex +++ b/lib/pleroma/web/templates/o_auth/o_auth/_scopes.html.eex @@ -1,5 +1,5 @@
- <%= label @form, :scope, "The following permissions will be granted" %> + <%= label @form, :scope, Gettext.dpgettext("static_pages", "oauth scopes message", "The following permissions will be granted") %>
<%= for scope <- @available_scopes do %> <%# Note: using hidden input with `unchecked_value` in order to distinguish user's empty selection from `scope` param being omitted %> diff --git a/lib/pleroma/web/templates/o_auth/o_auth/consumer.html.eex b/lib/pleroma/web/templates/o_auth/o_auth/consumer.html.eex index dc4521a62..98904ad64 100644 --- a/lib/pleroma/web/templates/o_auth/o_auth/consumer.html.eex +++ b/lib/pleroma/web/templates/o_auth/o_auth/consumer.html.eex @@ -1,8 +1,8 @@ -

Sign in with external provider

+

<%= Gettext.dpgettext("static_pages", "oauth external provider page title", "Sign in with external provider") %>

<%= form_for @conn, Routes.o_auth_path(@conn, :prepare_request), [as: "authorization", method: "get"], fn f -> %>
- <%= render @view_module, "_scopes.html", Map.merge(assigns, %{form: f}) %> + <%= render Phoenix.Controller.view_module(@conn), "_scopes.html", Map.merge(assigns, %{form: f}) %>
<%= hidden_input f, :client_id, value: @client_id %> @@ -10,6 +10,6 @@ <%= hidden_input f, :state, value: @state %> <%= for strategy <- Pleroma.Config.oauth_consumer_strategies() do %> - <%= submit "Sign in with #{String.capitalize(strategy)}", name: "provider", value: strategy %> + <%= submit Gettext.dpgettext("static_pages", "oauth external provider sign in button", "Sign in with %{strategy}", strategy: String.capitalize(strategy)), name: "provider", value: strategy %> <% end %> <% end %> diff --git a/lib/pleroma/web/templates/o_auth/o_auth/oob_authorization_created.html.eex b/lib/pleroma/web/templates/o_auth/o_auth/oob_authorization_created.html.eex index ffabe29a6..76ed3fda5 100644 --- a/lib/pleroma/web/templates/o_auth/o_auth/oob_authorization_created.html.eex +++ b/lib/pleroma/web/templates/o_auth/o_auth/oob_authorization_created.html.eex @@ -1,2 +1,2 @@ -

Successfully authorized

-

Token code is
<%= @auth.token %>

+

<%= Gettext.dpgettext("static_pages", "oauth authorized page title", "Successfully authorized") %>

+

<%= raw Gettext.dpgettext("static_pages", "oauth token code message", "Token code is
%{token}", token: safe_to_string(html_escape(@auth.token))) %>

diff --git a/lib/pleroma/web/templates/o_auth/o_auth/oob_token_exists.html.eex b/lib/pleroma/web/templates/o_auth/o_auth/oob_token_exists.html.eex index 82785c4b9..754bf2eb0 100644 --- a/lib/pleroma/web/templates/o_auth/o_auth/oob_token_exists.html.eex +++ b/lib/pleroma/web/templates/o_auth/o_auth/oob_token_exists.html.eex @@ -1,2 +1,2 @@ -

Authorization exists

-

Access token is
<%= @token.token %>

+

<%= Gettext.dpgettext("static_pages", "oauth authorization exists page title", "Authorization exists") %>

+

<%= raw Gettext.dpgettext("static_pages", "oauth token code message", "Token code is
%{token}", token: safe_to_string(html_escape(@token.token))) %>

diff --git a/lib/pleroma/web/templates/o_auth/o_auth/register.html.eex b/lib/pleroma/web/templates/o_auth/o_auth/register.html.eex index 99f900fb7..1f661efb2 100644 --- a/lib/pleroma/web/templates/o_auth/o_auth/register.html.eex +++ b/lib/pleroma/web/templates/o_auth/o_auth/register.html.eex @@ -5,34 +5,34 @@ <% end %> -

Registration Details

+

<%= Gettext.dpgettext("static_pages", "oauth register page title", "Registration Details") %>

-

If you'd like to register a new account, please provide the details below.

+

<%= Gettext.dpgettext("static_pages", "oauth register page fill form prompt", "If you'd like to register a new account, please provide the details below.") %>

<%= form_for @conn, Routes.o_auth_path(@conn, :register), [as: "authorization"], fn f -> %>
- <%= label f, :nickname, "Nickname" %> - <%= text_input f, :nickname, value: @nickname %> + <%= label f, :nickname, Gettext.dpgettext("static_pages", "oauth register page nickname prompt", "Nickname") %> + <%= text_input f, :nickname, value: @nickname, autocomplete: "username" %>
- <%= label f, :email, "Email" %> - <%= text_input f, :email, value: @email %> + <%= label f, :email, Gettext.dpgettext("static_pages", "oauth register page email prompt", "Email") %> + <%= text_input f, :email, value: @email, autocomplete: "email" %>
-<%= submit "Proceed as new user", name: "op", value: "register" %> +<%= submit Gettext.dpgettext("static_pages", "oauth register page register button", "Proceed as new user"), name: "op", value: "register" %> -

Alternatively, sign in to connect to existing account.

+

<%= Gettext.dpgettext("static_pages", "oauth register page login prompt", "Alternatively, sign in to connect to existing account.") %>

- <%= label f, :name, "Name or email" %> - <%= text_input f, :name %> + <%= label f, :name, Gettext.dpgettext("static_pages", "oauth register page login username prompt", "Name or email") %> + <%= text_input f, :name, autocomplete: "username" %>
- <%= label f, :password, "Password" %> - <%= password_input f, :password %> + <%= label f, :password, Gettext.dpgettext("static_pages", "oauth register page login password prompt", "Password") %> + <%= password_input f, :password, autocomplete: "password" %>
-<%= submit "Proceed as existing user", name: "op", value: "connect" %> +<%= submit Gettext.dpgettext("static_pages", "oauth register page login button", "Proceed as existing user"), name: "op", value: "connect" %> <%= hidden_input f, :client_id, value: @client_id %> <%= hidden_input f, :redirect_uri, value: @redirect_uri %> diff --git a/lib/pleroma/web/templates/o_auth/o_auth/show.html.eex b/lib/pleroma/web/templates/o_auth/o_auth/show.html.eex index 181a9519a..b3654f3eb 100644 --- a/lib/pleroma/web/templates/o_auth/o_auth/show.html.eex +++ b/lib/pleroma/web/templates/o_auth/o_auth/show.html.eex @@ -20,36 +20,38 @@
<%= if @app do %> -

Application <%= @app.client_name %> is requesting access to your account.

- <%= render @view_module, "_scopes.html", Map.merge(assigns, %{form: f}) %> +

<%= raw Gettext.dpgettext("static_pages", "oauth authorize message", "Application %{client_name} is requesting access to your account.", client_name: safe_to_string(html_escape(@app.client_name))) %>

+ <%= render Phoenix.Controller.view_module(@conn), "_scopes.html", Map.merge(assigns, %{form: f}) %> <% end %> <%= if @user do %>
- Cancel - <%= submit "Approve", class: "button--approve" %> + + <%= Gettext.dpgettext("static_pages", "oauth authorize cancel button", "Cancel") %> + + <%= submit Gettext.dpgettext("static_pages", "oauth authorize approve button", "Approve"), class: "button--approve" %>
<% else %> <%= if @params["registration"] in ["true", true] do %> -

This is the first time you visit! Please enter your Pleroma handle.

-

Choose carefully! You won't be able to change this later. You will be able to change your display name, though.

+

<%= Gettext.dpgettext("static_pages", "oauth register page title", "This is the first time you visit! Please enter your Pleroma handle.") %>

+

<%= Gettext.dpgettext("static_pages", "oauth register nickname unchangeable warning", "Choose carefully! You won't be able to change this later. You will be able to change your display name, though.") %>

- <%= label f, :nickname, "Pleroma Handle" %> - <%= text_input f, :nickname, placeholder: "lain" %> + <%= label f, :nickname, Gettext.dpgettext("static_pages", "oauth register nickname prompt", "Pleroma Handle") %> + <%= text_input f, :nickname, placeholder: "lain", autocomplete: "username" %>
<%= hidden_input f, :name, value: @params["name"] %> <%= hidden_input f, :password, value: @params["password"] %>
<% else %>
- <%= label f, :name, "Username" %> + <%= label f, :name, Gettext.dpgettext("static_pages", "oauth login username prompt", "Username") %> <%= text_input f, :name %>
- <%= label f, :password, "Password" %> + <%= label f, :password, Gettext.dpgettext("static_pages", "oauth login password prompt", "Password") %> <%= password_input f, :password %>
- <%= submit "Log In" %> + <%= submit Gettext.dpgettext("static_pages", "oauth login button", "Log In") %> <% end %> <% end %>
@@ -61,5 +63,5 @@ <% end %> <%= if Pleroma.Config.oauth_consumer_enabled?() do %> - <%= render @view_module, Pleroma.Web.Auth.WrapperAuthenticator.oauth_consumer_template(), assigns %> + <%= render Phoenix.Controller.view_module(@conn), Pleroma.Web.Auth.WrapperAuthenticator.oauth_consumer_template(), assigns %> <% end %> diff --git a/lib/pleroma/web/templates/static_fe/static_fe/profile.html.eex b/lib/pleroma/web/templates/static_fe/static_fe/profile.html.eex index 3191bf450..a14ca305e 100644 --- a/lib/pleroma/web/templates/static_fe/static_fe/profile.html.eex +++ b/lib/pleroma/web/templates/static_fe/static_fe/profile.html.eex @@ -5,7 +5,7 @@
- +
<%= raw Formatter.emojify(@user.name, @user.emoji) %> | <%= link "@#{@user.nickname}@#{Endpoint.host()}", to: (@user.uri || @user.ap_id) %> diff --git a/lib/pleroma/web/templates/twitter_api/password/invalid_token.html.eex b/lib/pleroma/web/templates/twitter_api/password/invalid_token.html.eex index ee84750c7..5ac0aa4e0 100644 --- a/lib/pleroma/web/templates/twitter_api/password/invalid_token.html.eex +++ b/lib/pleroma/web/templates/twitter_api/password/invalid_token.html.eex @@ -1 +1 @@ -

Invalid Token

+

<%= Gettext.dpgettext("static_pages", "password reset invalid token message", "Invalid Token") %>

diff --git a/lib/pleroma/web/templates/twitter_api/password/reset.html.eex b/lib/pleroma/web/templates/twitter_api/password/reset.html.eex index fbcacdc14..6a544af51 100644 --- a/lib/pleroma/web/templates/twitter_api/password/reset.html.eex +++ b/lib/pleroma/web/templates/twitter_api/password/reset.html.eex @@ -1,13 +1,13 @@

Password Reset for <%= @user.nickname %>

<%= form_for @conn, Routes.reset_password_path(@conn, :do_reset), [as: "data"], fn f -> %>
- <%= label f, :password, "Password" %> + <%= label f, :password, Gettext.dpgettext("static_pages", "password reset form password prompt", "Password") %> <%= password_input f, :password %>
- <%= label f, :password_confirmation, "Confirmation" %> + <%= label f, :password_confirmation, Gettext.dpgettext("static_pages", "password reset form confirm password prompt", "Confirmation") %> <%= password_input f, :password_confirmation %>
<%= hidden_input f, :token, value: @token.token %> - <%= submit "Reset" %> + <%= submit Gettext.dpgettext("static_pages", "password reset button", "Reset") %> <% end %> diff --git a/lib/pleroma/web/templates/twitter_api/password/reset_failed.html.eex b/lib/pleroma/web/templates/twitter_api/password/reset_failed.html.eex index 4ed4ac8bc..774e3462a 100644 --- a/lib/pleroma/web/templates/twitter_api/password/reset_failed.html.eex +++ b/lib/pleroma/web/templates/twitter_api/password/reset_failed.html.eex @@ -1,2 +1,6 @@ -

Password reset failed

-

Homepage

+

<%= Gettext.dpgettext("static_pages", "password reset failed message", "Password reset failed") %>

+

+ + <%= Gettext.dpgettext("static_pages", "password reset failed homepage link", "Homepage") %> + +

diff --git a/lib/pleroma/web/templates/twitter_api/password/reset_success.html.eex b/lib/pleroma/web/templates/twitter_api/password/reset_success.html.eex index 086d4e08b..40f6bb3fc 100644 --- a/lib/pleroma/web/templates/twitter_api/password/reset_success.html.eex +++ b/lib/pleroma/web/templates/twitter_api/password/reset_success.html.eex @@ -1,2 +1,2 @@ -

Password changed!

-

Homepage

+

<%= Gettext.dpgettext("static_pages", "password reset successful message", "Password changed!") %>

+

<%= Gettext.dpgettext("static_pages", "password reset successful homepage link", "Homepage") %>

diff --git a/lib/pleroma/web/templates/twitter_api/remote_follow/follow.html.eex b/lib/pleroma/web/templates/twitter_api/remote_follow/follow.html.eex index a7be53091..e2d251fac 100644 --- a/lib/pleroma/web/templates/twitter_api/remote_follow/follow.html.eex +++ b/lib/pleroma/web/templates/twitter_api/remote_follow/follow.html.eex @@ -1,11 +1,11 @@ <%= if @error == :error do %> -

Error fetching user

+

<%= Gettext.dpgettext("static_pages", "remote follow error", "Error fetching user") %>

<% else %> -

Remote follow

+

<%= Gettext.dpgettext("static_pages", "remote follow header", "Remote follow") %>

<%= @followee.nickname %>

<%= form_for @conn, Routes.remote_follow_path(@conn, :do_follow), [as: "user"], fn f -> %> <%= hidden_input f, :id, value: @followee.id %> - <%= submit "Authorize" %> + <%= submit Gettext.dpgettext("static_pages", "remote follow authorization button", "Authorize") %> <% end %> <% end %> diff --git a/lib/pleroma/web/templates/twitter_api/remote_follow/follow_login.html.eex b/lib/pleroma/web/templates/twitter_api/remote_follow/follow_login.html.eex index a8026fa9d..26340a906 100644 --- a/lib/pleroma/web/templates/twitter_api/remote_follow/follow_login.html.eex +++ b/lib/pleroma/web/templates/twitter_api/remote_follow/follow_login.html.eex @@ -1,14 +1,14 @@ <%= if @error do %>

<%= @error %>

<% end %> -

Log in to follow

+

<%= Gettext.dpgettext("static_pages", "remote follow header, need login", "Log in to follow") %>

<%= @followee.nickname %>

<%= form_for @conn, Routes.remote_follow_path(@conn, :do_follow), [as: "authorization"], fn f -> %> -<%= text_input f, :name, placeholder: "Username", required: true %> +<%= text_input f, :name, placeholder: Gettext.dpgettext("static_pages", "placeholder text for username entry", "Username"), required: true, autocomplete: "username" %>
-<%= password_input f, :password, placeholder: "Password", required: true %> +<%= password_input f, :password, placeholder: Gettext.dpgettext("static_pages", "placeholder text for password entry", "Password"), required: true, autocomplete: "password" %>
<%= hidden_input f, :id, value: @followee.id %> -<%= submit "Authorize" %> +<%= submit Gettext.dpgettext("static_pages", "remote follow authorization button for login", "Authorize") %> <% end %> diff --git a/lib/pleroma/web/templates/twitter_api/remote_follow/follow_mfa.html.eex b/lib/pleroma/web/templates/twitter_api/remote_follow/follow_mfa.html.eex index a54ed83b5..638212c1e 100644 --- a/lib/pleroma/web/templates/twitter_api/remote_follow/follow_mfa.html.eex +++ b/lib/pleroma/web/templates/twitter_api/remote_follow/follow_mfa.html.eex @@ -1,13 +1,13 @@ <%= if @error do %>

<%= @error %>

<% end %> -

Two-factor authentication

+

<%= Gettext.dpgettext("static_pages", "remote follow mfa header", "Two-factor authentication") %>

<%= @followee.nickname %>

<%= form_for @conn, Routes.remote_follow_path(@conn, :do_follow), [as: "mfa"], fn f -> %> -<%= text_input f, :code, placeholder: "Authentication code", required: true %> +<%= text_input f, :code, placeholder: Gettext.dpgettext("static_pages", "placeholder text for auth code entry", "Authentication code"), required: true %>
<%= hidden_input f, :id, value: @followee.id %> <%= hidden_input f, :token, value: @mfa_token %> -<%= submit "Authorize" %> +<%= submit Gettext.dpgettext("static_pages", "remote follow authorization button for mfa", "Authorize") %> <% end %> diff --git a/lib/pleroma/web/templates/twitter_api/remote_follow/followed.html.eex b/lib/pleroma/web/templates/twitter_api/remote_follow/followed.html.eex index da473d502..2fb4cc5d3 100644 --- a/lib/pleroma/web/templates/twitter_api/remote_follow/followed.html.eex +++ b/lib/pleroma/web/templates/twitter_api/remote_follow/followed.html.eex @@ -1,6 +1,5 @@ <%= if @error do %> -

Error following account

+

<%= Gettext.dpgettext("static_pages", "remote follow error", "Error following account") %>

<% else %> -

Account followed!

+

<%= Gettext.dpgettext("static_pages", "remote follow success", "Account followed!") %>

<% end %> - diff --git a/lib/pleroma/web/templates/twitter_api/util/status_interact.html.eex b/lib/pleroma/web/templates/twitter_api/util/status_interact.html.eex new file mode 100644 index 000000000..d77174967 --- /dev/null +++ b/lib/pleroma/web/templates/twitter_api/util/status_interact.html.eex @@ -0,0 +1,10 @@ +<%= if @error do %> +

<%= Gettext.dpgettext("static_pages", "status interact error", "Error: %{error}", error: @error) %>

+<% else %> +

<%= raw Gettext.dpgettext("static_pages", "status interact header", "Interacting with %{nickname}'s %{status_link}", nickname: safe_to_string(html_escape(@nickname)), status_link: safe_to_string(link(Gettext.dpgettext("static_pages", "status interact header - status link text", "status"), to: @status_link))) %>

+ <%= form_for @conn, Routes.util_path(@conn, :remote_subscribe), [as: "status"], fn f -> %> + <%= hidden_input f, :status_id, value: @status_id %> + <%= text_input f, :profile, placeholder: Gettext.dpgettext("static_pages", "placeholder text for account id", "Your account ID, e.g. lain@quitter.se") %> + <%= submit Gettext.dpgettext("static_pages", "status interact authorization button", "Interact") %> + <% end %> +<% end %> diff --git a/lib/pleroma/web/templates/twitter_api/util/subscribe.html.eex b/lib/pleroma/web/templates/twitter_api/util/subscribe.html.eex index a6b313d8a..848660f26 100644 --- a/lib/pleroma/web/templates/twitter_api/util/subscribe.html.eex +++ b/lib/pleroma/web/templates/twitter_api/util/subscribe.html.eex @@ -1,10 +1,10 @@ <%= if @error do %> -

Error: <%= @error %>

+

<%= Gettext.dpgettext("static_pages", "remote follow error", "Error: %{error}", error: @error) %>

<% else %> -

Remotely follow <%= @nickname %>

+

<%= Gettext.dpgettext("static_pages", "remote follow header", "Remotely follow %{nickname}", nickname: @nickname) %>

<%= form_for @conn, Routes.util_path(@conn, :remote_subscribe), [as: "user"], fn f -> %> <%= hidden_input f, :nickname, value: @nickname %> - <%= text_input f, :profile, placeholder: "Your account ID, e.g. lain@quitter.se" %> - <%= submit "Follow" %> + <%= text_input f, :profile, placeholder: Gettext.dpgettext("static_pages", "placeholder text for account id", "Your account ID, e.g. lain@quitter.se") %> + <%= submit Gettext.dpgettext("static_pages", "remote follow authorization button for following with a remote account", "Follow") %> <% end %> <% end %> diff --git a/lib/pleroma/web/translation_helpers.ex b/lib/pleroma/web/translation_helpers.ex index 0fe31d189..e9638b00a 100644 --- a/lib/pleroma/web/translation_helpers.ex +++ b/lib/pleroma/web/translation_helpers.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.TranslationHelpers do diff --git a/lib/pleroma/web/twitter_api/controller.ex b/lib/pleroma/web/twitter_api/controller.ex index 1e78ff2c1..6db3d6067 100644 --- a/lib/pleroma/web/twitter_api/controller.ex +++ b/lib/pleroma/web/twitter_api/controller.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.TwitterAPI.Controller do diff --git a/lib/pleroma/web/twitter_api/controllers/password_controller.ex b/lib/pleroma/web/twitter_api/controllers/password_controller.ex index bc04a4d49..31b7dd728 100644 --- a/lib/pleroma/web/twitter_api/controllers/password_controller.ex +++ b/lib/pleroma/web/twitter_api/controllers/password_controller.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.TwitterAPI.PasswordController do @@ -11,9 +11,23 @@ defmodule Pleroma.Web.TwitterAPI.PasswordController do require Logger + import Pleroma.Web.ControllerHelper, only: [json_response: 3] + alias Pleroma.PasswordResetToken alias Pleroma.Repo alias Pleroma.User + alias Pleroma.Web.TwitterAPI.TwitterAPI + + plug(Pleroma.Web.Plugs.RateLimiter, [name: :request] when action == :request) + + @doc "POST /auth/password" + def request(conn, params) do + nickname_or_email = params["email"] || params["nickname"] + + TwitterAPI.password_reset(nickname_or_email) + + json_response(conn, :no_content, "") + end def reset(conn, %{"token" => token}) do with %{used: false} = token <- Repo.get_by(PasswordResetToken, %{token: token}), diff --git a/lib/pleroma/web/twitter_api/controllers/remote_follow_controller.ex b/lib/pleroma/web/twitter_api/controllers/remote_follow_controller.ex index 42d7601ed..6229d5d05 100644 --- a/lib/pleroma/web/twitter_api/controllers/remote_follow_controller.ex +++ b/lib/pleroma/web/twitter_api/controllers/remote_follow_controller.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.TwitterAPI.RemoteFollowController do diff --git a/lib/pleroma/web/twitter_api/controllers/util_controller.ex b/lib/pleroma/web/twitter_api/controllers/util_controller.ex index ef43f7682..d5a24ae6c 100644 --- a/lib/pleroma/web/twitter_api/controllers/util_controller.ex +++ b/lib/pleroma/web/twitter_api/controllers/util_controller.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.TwitterAPI.UtilController do @@ -7,16 +7,26 @@ defmodule Pleroma.Web.TwitterAPI.UtilController do require Logger + alias Pleroma.Activity alias Pleroma.Config alias Pleroma.Emoji alias Pleroma.Healthcheck alias Pleroma.User + alias Pleroma.Web.ActivityPub.ActivityPub alias Pleroma.Web.CommonAPI alias Pleroma.Web.Plugs.OAuthScopesPlug alias Pleroma.Web.WebFinger - plug(Pleroma.Web.ApiSpec.CastAndValidate when action != :remote_subscribe) - plug(Pleroma.Web.Plugs.FederatingPlug when action == :remote_subscribe) + plug( + Pleroma.Web.ApiSpec.CastAndValidate + when action != :remote_subscribe and action != :show_subscribe_form + ) + + plug( + Pleroma.Web.Plugs.FederatingPlug + when action == :remote_subscribe + when action == :show_subscribe_form + ) plug( OAuthScopesPlug, @@ -26,13 +36,24 @@ defmodule Pleroma.Web.TwitterAPI.UtilController do :change_password, :delete_account, :update_notificaton_settings, - :disable_account + :disable_account, + :move_account, + :add_alias, + :delete_alias + ] + ) + + plug( + OAuthScopesPlug, + %{scopes: ["read:accounts"]} + when action in [ + :list_aliases ] ) defdelegate open_api_operation(action), to: Pleroma.Web.ApiSpec.TwitterUtilOperation - def remote_subscribe(conn, %{"nickname" => nick, "profile" => _}) do + def show_subscribe_form(conn, %{"nickname" => nick}) do with %User{} = user <- User.get_cached_by_nickname(nick), avatar = User.avatar_url(user) do conn @@ -42,11 +63,52 @@ def remote_subscribe(conn, %{"nickname" => nick, "profile" => _}) do render(conn, "subscribe.html", %{ nickname: nick, avatar: nil, - error: "Could not find user" + error: + Pleroma.Web.Gettext.dpgettext( + "static_pages", + "remote follow error message - user not found", + "Could not find user" + ) }) end end + def show_subscribe_form(conn, %{"status_id" => id}) do + with %Activity{} = activity <- Activity.get_by_id(id), + {:ok, ap_id} <- get_ap_id(activity), + %User{} = user <- User.get_cached_by_ap_id(activity.actor), + avatar = User.avatar_url(user) do + conn + |> render("status_interact.html", %{ + status_link: ap_id, + status_id: id, + nickname: user.nickname, + avatar: avatar, + error: false + }) + else + _e -> + render(conn, "status_interact.html", %{ + status_id: id, + avatar: nil, + error: + Pleroma.Web.Gettext.dpgettext( + "static_pages", + "status interact error message - status not found", + "Could not find status" + ) + }) + end + end + + def remote_subscribe(conn, %{"nickname" => nick, "profile" => _}) do + show_subscribe_form(conn, %{"nickname" => nick}) + end + + def remote_subscribe(conn, %{"status_id" => id, "profile" => _}) do + show_subscribe_form(conn, %{"status_id" => id}) + end + def remote_subscribe(conn, %{"user" => %{"nickname" => nick, "profile" => profile}}) do with {:ok, %{"subscribe_address" => template}} <- WebFinger.finger(profile), %User{ap_id: ap_id} <- User.get_cached_by_nickname(nick) do @@ -57,11 +119,55 @@ def remote_subscribe(conn, %{"user" => %{"nickname" => nick, "profile" => profil render(conn, "subscribe.html", %{ nickname: nick, avatar: nil, - error: "Something went wrong." + error: + Pleroma.Web.Gettext.dpgettext( + "static_pages", + "remote follow error message - unknown error", + "Something went wrong." + ) }) end end + def remote_subscribe(conn, %{"status" => %{"status_id" => id, "profile" => profile}}) do + with {:ok, %{"subscribe_address" => template}} <- WebFinger.finger(profile), + %Activity{} = activity <- Activity.get_by_id(id), + {:ok, ap_id} <- get_ap_id(activity) do + conn + |> Phoenix.Controller.redirect(external: String.replace(template, "{uri}", ap_id)) + else + _e -> + render(conn, "status_interact.html", %{ + status_id: id, + avatar: nil, + error: + Pleroma.Web.Gettext.dpgettext( + "static_pages", + "status interact error message - unknown error", + "Something went wrong." + ) + }) + end + end + + def remote_interaction(%{body_params: %{ap_id: ap_id, profile: profile}} = conn, _params) do + with {:ok, %{"subscribe_address" => template}} <- WebFinger.finger(profile) do + conn + |> json(%{url: String.replace(template, "{uri}", ap_id)}) + else + _e -> json(conn, %{error: "Couldn't find user"}) + end + end + + defp get_ap_id(activity) do + object = Pleroma.Object.normalize(activity, fetch: false) + + case object do + %{data: %{"id" => ap_id}} -> {:ok, ap_id} + _ -> {:no_ap_id, nil} + end + end + def frontend_configurations(conn, _params) do render(conn, "frontend_configurations.json") end @@ -123,8 +229,10 @@ def change_email(%{assigns: %{user: user}, body_params: body_params} = conn, %{} end end - def delete_account(%{assigns: %{user: user}} = conn, params) do - password = params[:password] || "" + def delete_account(%{assigns: %{user: user}, body_params: body_params} = conn, params) do + # This endpoint can accept a query param or JSON body for backwards-compatibility. + # Submitting a JSON body is recommended, so passwords don't end up in server logs. + password = body_params[:password] || params[:password] || "" case CommonAPI.Utils.confirm_current_password(user, password) do {:ok, user} -> @@ -147,6 +255,91 @@ def disable_account(%{assigns: %{user: user}} = conn, params) do end end + def move_account(%{assigns: %{user: user}, body_params: body_params} = conn, %{}) do + case CommonAPI.Utils.confirm_current_password(user, body_params.password) do + {:ok, user} -> + with {:ok, target_user} <- find_or_fetch_user_by_nickname(body_params.target_account), + {:ok, _user} <- ActivityPub.move(user, target_user) do + json(conn, %{status: "success"}) + else + {:not_found, _} -> + conn + |> put_status(404) + |> json(%{error: "Target account not found."}) + + {:error, error} -> + json(conn, %{error: error}) + end + + {:error, msg} -> + json(conn, %{error: msg}) + end + end + + def add_alias(%{assigns: %{user: user}, body_params: body_params} = conn, _) do + with {:ok, alias_user} <- find_user_by_nickname(body_params.alias), + {:ok, _user} <- user |> User.add_alias(alias_user) do + json(conn, %{status: "success"}) + else + {:not_found, _} -> + conn + |> put_status(404) + |> json(%{error: "Target account does not exist."}) + + {:error, error} -> + json(conn, %{error: error}) + end + end + + def delete_alias(%{assigns: %{user: user}, body_params: body_params} = conn, _) do + with {:ok, alias_user} <- find_user_by_nickname(body_params.alias), + {:ok, _user} <- user |> User.delete_alias(alias_user) do + json(conn, %{status: "success"}) + else + {:error, :no_such_alias} -> + conn + |> put_status(404) + |> json(%{error: "Account has no such alias."}) + + {:error, error} -> + json(conn, %{error: error}) + end + end + + def list_aliases(%{assigns: %{user: user}} = conn, %{}) do + alias_nicks = + user + |> User.alias_users() + |> Enum.map(&User.full_nickname/1) + + json(conn, %{aliases: alias_nicks}) + end + + defp find_user_by_nickname(nickname) do + user = User.get_cached_by_nickname(nickname) + + if user == nil do + {:not_found, nil} + else + {:ok, user} + end + end + + defp find_or_fetch_user_by_nickname(nickname) do + user = User.get_by_nickname(nickname) + + if user != nil and user.local do + {:ok, user} + else + with {:ok, user} <- User.fetch_by_nickname(nickname) do + {:ok, user} + else + _ -> + {:not_found, nil} + end + end + end + def captcha(conn, _params) do json(conn, Pleroma.Captcha.new()) end diff --git a/lib/pleroma/web/twitter_api/twitter_api.ex b/lib/pleroma/web/twitter_api/twitter_api.ex index 76ca82d20..ef2eb75f4 100644 --- a/lib/pleroma/web/twitter_api/twitter_api.ex +++ b/lib/pleroma/web/twitter_api/twitter_api.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.TwitterAPI.TwitterAPI do @@ -12,6 +12,8 @@ defmodule Pleroma.Web.TwitterAPI.TwitterAPI do alias Pleroma.UserInviteToken def register_user(params, opts \\ []) do + fallback_language = Gettext.get_locale() + params = params |> Map.take([:email, :token, :password]) @@ -20,6 +22,11 @@ def register_user(params, opts \\ []) do |> Map.put(:name, Map.get(params, :fullname, params[:username])) |> Map.put(:password_confirmation, params[:password]) |> Map.put(:registration_reason, params[:reason]) + |> Map.put(:birthday, params[:birthday]) + |> Map.put( + :language, + Pleroma.Web.Gettext.normalize_locale(params[:language]) || fallback_language + ) if Pleroma.Config.get([:instance, :registrations_open]) do create_user(params, opts) diff --git a/lib/pleroma/web/twitter_api/views/password_view.ex b/lib/pleroma/web/twitter_api/views/password_view.ex index a9bb95a2c..55790941f 100644 --- a/lib/pleroma/web/twitter_api/views/password_view.ex +++ b/lib/pleroma/web/twitter_api/views/password_view.ex @@ -1,8 +1,9 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.TwitterAPI.PasswordView do use Pleroma.Web, :view import Phoenix.HTML.Form + alias Pleroma.Web.Gettext end diff --git a/lib/pleroma/web/twitter_api/views/remote_follow_view.ex b/lib/pleroma/web/twitter_api/views/remote_follow_view.ex index ac3f15eec..8902261b0 100644 --- a/lib/pleroma/web/twitter_api/views/remote_follow_view.ex +++ b/lib/pleroma/web/twitter_api/views/remote_follow_view.ex @@ -1,10 +1,15 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.TwitterAPI.RemoteFollowView do use Pleroma.Web, :view import Phoenix.HTML.Form + alias Pleroma.Web.Gettext - defdelegate avatar_url(user), to: Pleroma.User + def avatar_url(user) do + user + |> Pleroma.User.avatar_url() + |> Pleroma.Web.MediaProxy.url() + end end diff --git a/lib/pleroma/web/twitter_api/views/token_view.ex b/lib/pleroma/web/twitter_api/views/token_view.ex index 99884e714..2e492c13f 100644 --- a/lib/pleroma/web/twitter_api/views/token_view.ex +++ b/lib/pleroma/web/twitter_api/views/token_view.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.TwitterAPI.TokenView do diff --git a/lib/pleroma/web/twitter_api/views/util_view.ex b/lib/pleroma/web/twitter_api/views/util_view.ex index 87cb79dd7..31b7c0c0c 100644 --- a/lib/pleroma/web/twitter_api/views/util_view.ex +++ b/lib/pleroma/web/twitter_api/views/util_view.ex @@ -1,12 +1,15 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.TwitterAPI.UtilView do use Pleroma.Web, :view + import Phoenix.HTML import Phoenix.HTML.Form + import Phoenix.HTML.Link alias Pleroma.Config alias Pleroma.Web.Endpoint + alias Pleroma.Web.Gettext def status_net_config(instance) do """ diff --git a/lib/pleroma/web/uploader_controller.ex b/lib/pleroma/web/uploader_controller.ex index 0d42c7ec3..d5c804932 100644 --- a/lib/pleroma/web/uploader_controller.ex +++ b/lib/pleroma/web/uploader_controller.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.UploaderController do diff --git a/lib/pleroma/web/utils/guards.ex b/lib/pleroma/web/utils/guards.ex index aea7b6314..8a61421fa 100644 --- a/lib/pleroma/web/utils/guards.ex +++ b/lib/pleroma/web/utils/guards.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.Utils.Guards do diff --git a/lib/pleroma/web/utils/params.ex b/lib/pleroma/web/utils/params.ex index 6e0900341..636e3de33 100644 --- a/lib/pleroma/web/utils/params.ex +++ b/lib/pleroma/web/utils/params.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.Utils.Params do diff --git a/lib/pleroma/web/views/email_view.ex b/lib/pleroma/web/views/email_view.ex index f7659b994..9ab708212 100644 --- a/lib/pleroma/web/views/email_view.ex +++ b/lib/pleroma/web/views/email_view.ex @@ -1,11 +1,12 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.EmailView do use Pleroma.Web, :view import Phoenix.HTML import Phoenix.HTML.Link + alias Pleroma.Web.Gettext def avatar_url(user) do Pleroma.User.avatar_url(user) diff --git a/lib/pleroma/web/views/embed_view.ex b/lib/pleroma/web/views/embed_view.ex index 81e196730..1bfd8c523 100644 --- a/lib/pleroma/web/views/embed_view.ex +++ b/lib/pleroma/web/views/embed_view.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.EmbedView do diff --git a/lib/pleroma/web/views/error_helpers.ex b/lib/pleroma/web/views/error_helpers.ex index d282c04b7..fd85f7c15 100644 --- a/lib/pleroma/web/views/error_helpers.ex +++ b/lib/pleroma/web/views/error_helpers.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.ErrorHelpers do diff --git a/lib/pleroma/web/views/error_view.ex b/lib/pleroma/web/views/error_view.ex index c9715dc4b..9ab16323d 100644 --- a/lib/pleroma/web/views/error_view.ex +++ b/lib/pleroma/web/views/error_view.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.ErrorView do diff --git a/lib/pleroma/web/views/layout_view.ex b/lib/pleroma/web/views/layout_view.ex index c2da10f04..3161bb1ae 100644 --- a/lib/pleroma/web/views/layout_view.ex +++ b/lib/pleroma/web/views/layout_view.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.LayoutView do diff --git a/lib/pleroma/web/views/mailer/subscription_view.ex b/lib/pleroma/web/views/mailer/subscription_view.ex index 1dc80987b..037fb6578 100644 --- a/lib/pleroma/web/views/mailer/subscription_view.ex +++ b/lib/pleroma/web/views/mailer/subscription_view.ex @@ -1,7 +1,8 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.Mailer.SubscriptionView do use Pleroma.Web, :view + alias Pleroma.Web.Gettext end diff --git a/lib/pleroma/web/views/manifest_view.ex b/lib/pleroma/web/views/manifest_view.ex new file mode 100644 index 000000000..2ae82191e --- /dev/null +++ b/lib/pleroma/web/views/manifest_view.ex @@ -0,0 +1,28 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2022 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + +defmodule Pleroma.Web.ManifestView do + use Pleroma.Web, :view + alias Pleroma.Config + alias Pleroma.Web.Endpoint + + def render("manifest.json", _params) do + %{ + name: Config.get([:instance, :name]), + description: Config.get([:instance, :description]), + icons: Config.get([:manifest, :icons]), + theme_color: Config.get([:manifest, :theme_color]), + background_color: Config.get([:manifest, :background_color]), + display: "standalone", + scope: Endpoint.url(), + start_url: "/", + categories: [ + "social" + ], + serviceworker: %{ + src: "/sw.js" + } + } + end +end diff --git a/lib/pleroma/web/views/masto_fe_view.ex b/lib/pleroma/web/views/masto_fe_view.ex deleted file mode 100644 index 63a9c8179..000000000 --- a/lib/pleroma/web/views/masto_fe_view.ex +++ /dev/null @@ -1,91 +0,0 @@ -# Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors -# SPDX-License-Identifier: AGPL-3.0-only - -defmodule Pleroma.Web.MastoFEView do - use Pleroma.Web, :view - alias Pleroma.Config - alias Pleroma.User - alias Pleroma.Web.MastodonAPI.AccountView - alias Pleroma.Web.MastodonAPI.CustomEmojiView - - def initial_state(token, user, custom_emojis) do - limit = Config.get([:instance, :limit]) - - %{ - meta: %{ - streaming_api_base_url: Pleroma.Web.Endpoint.websocket_url(), - access_token: token, - locale: "en", - domain: Pleroma.Web.Endpoint.host(), - admin: "1", - me: "#{user.id}", - unfollow_modal: false, - boost_modal: false, - delete_modal: true, - auto_play_gif: false, - display_sensitive_media: false, - reduce_motion: false, - max_toot_chars: limit, - mascot: User.get_mascot(user)["url"] - }, - poll_limits: Config.get([:instance, :poll_limits]), - rights: %{ - delete_others_notice: present?(user.is_moderator), - admin: present?(user.is_admin) - }, - compose: %{ - me: "#{user.id}", - default_privacy: user.default_scope, - default_sensitive: false, - allow_content_types: Config.get([:instance, :allowed_post_formats]) - }, - media_attachments: %{ - accept_content_types: [ - ".jpg", - ".jpeg", - ".png", - ".gif", - ".webm", - ".mp4", - ".m4v", - "image\/jpeg", - "image\/png", - "image\/gif", - "video\/webm", - "video\/mp4" - ] - }, - settings: user.mastofe_settings || %{}, - push_subscription: nil, - accounts: %{user.id => render(AccountView, "show.json", user: user, for: user)}, - custom_emojis: render(CustomEmojiView, "index.json", custom_emojis: custom_emojis), - char_limit: limit - } - |> Jason.encode!() - |> Phoenix.HTML.raw() - end - - defp present?(nil), do: false - defp present?(false), do: false - defp present?(_), do: true - - def render("manifest.json", _params) do - %{ - name: Config.get([:instance, :name]), - description: Config.get([:instance, :description]), - icons: Config.get([:manifest, :icons]), - theme_color: Config.get([:manifest, :theme_color]), - background_color: Config.get([:manifest, :background_color]), - display: "standalone", - scope: Pleroma.Web.Endpoint.url(), - start_url: Routes.masto_fe_path(Pleroma.Web.Endpoint, :index, ["getting-started"]), - categories: [ - "social" - ], - serviceworker: %{ - src: "/sw.js" - } - } - end -end diff --git a/lib/pleroma/web/views/streamer_view.ex b/lib/pleroma/web/views/streamer_view.ex index 7706035e9..6a55242b0 100644 --- a/lib/pleroma/web/views/streamer_view.ex +++ b/lib/pleroma/web/views/streamer_view.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.StreamerView do @@ -25,6 +25,20 @@ def render("update.json", %Activity{} = activity, %User{} = user) do |> Jason.encode!() end + def render("status_update.json", %Activity{} = activity, %User{} = user) do + %{ + event: "status.update", + payload: + Pleroma.Web.MastodonAPI.StatusView.render( + "show.json", + activity: activity, + for: user + ) + |> Jason.encode!() + } + |> Jason.encode!() + end + def render("notification.json", %Notification{} = notify, %User{} = user) do %{ event: "notification", @@ -51,6 +65,19 @@ def render("update.json", %Activity{} = activity) do |> Jason.encode!() end + def render("status_update.json", %Activity{} = activity) do + %{ + event: "status.update", + payload: + Pleroma.Web.MastodonAPI.StatusView.render( + "show.json", + activity: activity + ) + |> Jason.encode!() + } + |> Jason.encode!() + end + def render("chat_update.json", %{chat_message_reference: cm_ref}) do # Explicitly giving the cmr for the object here, so we don't accidentally # send a later 'last_message' that was inserted between inserting this and diff --git a/lib/pleroma/web/web_finger.ex b/lib/pleroma/web/web_finger.ex index 938fc09e3..f95dc2458 100644 --- a/lib/pleroma/web/web_finger.ex +++ b/lib/pleroma/web/web_finger.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.WebFinger do @@ -32,7 +32,13 @@ def host_meta do def webfinger(resource, fmt) when fmt in ["XML", "JSON"] do host = Pleroma.Web.Endpoint.host() - regex = ~r/(acct:)?(?[a-z0-9A-Z_\.-]+)@#{host}/ + + regex = + if webfinger_domain = Pleroma.Config.get([__MODULE__, :domain]) do + ~r/(acct:)?(?[a-z0-9A-Z_\.-]+)@(#{host}|#{webfinger_domain})/ + else + ~r/(acct:)?(?[a-z0-9A-Z_\.-]+)@#{host}/ + end with %{"username" => username} <- Regex.named_captures(regex, resource), %User{} = user <- User.get_cached_by_nickname(username) do @@ -63,18 +69,14 @@ defp gather_aliases(%User{} = user) do end def represent_user(user, "JSON") do - {:ok, user} = User.ensure_keys_present(user) - %{ - "subject" => "acct:#{user.nickname}@#{Pleroma.Web.Endpoint.host()}", + "subject" => "acct:#{user.nickname}@#{domain()}", "aliases" => gather_aliases(user), "links" => gather_links(user) } end def represent_user(user, "XML") do - {:ok, user} = User.ensure_keys_present(user) - aliases = user |> gather_aliases() @@ -88,12 +90,16 @@ def represent_user(user, "XML") do :XRD, %{xmlns: "http://docs.oasis-open.org/ns/xri/xrd-1.0"}, [ - {:Subject, "acct:#{user.nickname}@#{Pleroma.Web.Endpoint.host()}"} + {:Subject, "acct:#{user.nickname}@#{domain()}"} ] ++ aliases ++ links } |> XmlBuilder.to_doc() end + defp domain do + Pleroma.Config.get([__MODULE__, :domain]) || Pleroma.Web.Endpoint.host() + end + defp webfinger_from_xml(body) do with {:ok, doc} <- XML.parse_document(body) do subject = XML.string_from_xpath("//Subject", doc) @@ -150,17 +156,15 @@ def get_template_from_xml(body) do end def find_lrdd_template(domain) do - with {:ok, %{status: status, body: body}} when status in 200..299 <- - HTTP.get("http://#{domain}/.well-known/host-meta") do + # WebFinger is restricted to HTTPS - https://tools.ietf.org/html/rfc7033#section-9.1 + meta_url = "https://#{domain}/.well-known/host-meta" + + with {:ok, %{status: status, body: body}} when status in 200..299 <- HTTP.get(meta_url) do get_template_from_xml(body) else - _ -> - with {:ok, %{body: body, status: status}} when status in 200..299 <- - HTTP.get("https://#{domain}/.well-known/host-meta") do - get_template_from_xml(body) - else - e -> {:error, "Can't find LRDD template: #{inspect(e)}"} - end + error -> + Logger.warn("Can't find LRDD template in #{inspect(meta_url)}: #{inspect(error)}") + {:error, :lrdd_not_found} end end @@ -174,7 +178,7 @@ defp get_address_from_domain(domain, encoded_account) when is_binary(domain) do end end - defp get_address_from_domain(_, _), do: nil + defp get_address_from_domain(_, _), do: {:error, :webfinger_no_domain} @spec finger(String.t()) :: {:ok, map()} | {:error, any()} def finger(account) do @@ -191,13 +195,11 @@ def finger(account) do encoded_account = URI.encode("acct:#{account}") with address when is_binary(address) <- get_address_from_domain(domain, encoded_account), - response <- + {:ok, %{status: status, body: body, headers: headers}} when status in 200..299 <- HTTP.get( address, [{"accept", "application/xrd+xml,application/jrd+json"}] - ), - {:ok, %{status: status, body: body, headers: headers}} when status in 200..299 <- - response do + ) do case List.keyfind(headers, "content-type", 0) do {_, content_type} -> case Plug.Conn.Utils.media_type(content_type) do @@ -215,10 +217,9 @@ def finger(account) do {:error, {:content_type, nil}} end else - e -> - Logger.debug(fn -> "Couldn't finger #{account}" end) - Logger.debug(fn -> inspect(e) end) - {:error, e} + error -> + Logger.debug("Couldn't finger #{account}: #{inspect(error)}") + error end end end diff --git a/lib/pleroma/web/web_finger/web_finger_controller.ex b/lib/pleroma/web/web_finger/web_finger_controller.ex index 7944c50ad..9e5efb77f 100644 --- a/lib/pleroma/web/web_finger/web_finger_controller.ex +++ b/lib/pleroma/web/web_finger/web_finger_controller.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.WebFinger.WebFingerController do diff --git a/lib/pleroma/web/xml.ex b/lib/pleroma/web/xml.ex index 0ab6e9d32..b699446b0 100644 --- a/lib/pleroma/web/xml.ex +++ b/lib/pleroma/web/xml.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.XML do diff --git a/lib/pleroma/workers/attachments_cleanup_worker.ex b/lib/pleroma/workers/attachments_cleanup_worker.ex index f5090dae7..4c1764053 100644 --- a/lib/pleroma/workers/attachments_cleanup_worker.ex +++ b/lib/pleroma/workers/attachments_cleanup_worker.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Workers.AttachmentsCleanupWorker do @@ -31,6 +31,9 @@ def perform(%Job{ def perform(%Job{args: %{"op" => "cleanup_attachments", "object" => _object}}), do: {:ok, :skip} + @impl Oban.Worker + def timeout(_job), do: :timer.seconds(900) + defp do_clean({object_ids, attachment_urls}) do uploader = Pleroma.Config.get([Pleroma.Upload, :uploader]) diff --git a/lib/pleroma/workers/background_worker.ex b/lib/pleroma/workers/background_worker.ex index 1e28384cb..3805293bc 100644 --- a/lib/pleroma/workers/background_worker.ex +++ b/lib/pleroma/workers/background_worker.ex @@ -1,8 +1,9 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Workers.BackgroundWorker do + alias Pleroma.Instances.Instance alias Pleroma.User use Pleroma.Workers.WorkerHelper, queue: "background" @@ -38,4 +39,11 @@ def perform(%Job{ Pleroma.FollowingRelationship.move_following(origin, target) end + + def perform(%Job{args: %{"op" => "delete_instance", "host" => host}}) do + Instance.perform(:delete_instance, host) + end + + @impl Oban.Worker + def timeout(_job), do: :timer.seconds(5) end diff --git a/lib/pleroma/workers/backup_worker.ex b/lib/pleroma/workers/backup_worker.ex index 9b763b04b..12ee70f00 100644 --- a/lib/pleroma/workers/backup_worker.ex +++ b/lib/pleroma/workers/backup_worker.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Workers.BackupWorker do @@ -30,6 +30,7 @@ def delete(backup) do |> Oban.insert() end + @impl Oban.Worker def perform(%Job{ args: %{"op" => "process", "backup_id" => backup_id, "admin_user_id" => admin_user_id} }) do @@ -37,10 +38,7 @@ def perform(%Job{ backup_id |> Backup.get() |> Backup.process(), {:ok, _job} <- schedule_deletion(backup), :ok <- Backup.remove_outdated(backup), - {:ok, _} <- - backup - |> Pleroma.Emails.UserEmail.backup_is_ready_email(admin_user_id) - |> Pleroma.Emails.Mailer.deliver() do + :ok <- maybe_deliver_email(backup, admin_user_id) do {:ok, backup} end end @@ -51,4 +49,26 @@ def perform(%Job{args: %{"op" => "delete", "backup_id" => backup_id}}) do nil -> :ok end end + + @impl Oban.Worker + def timeout(_job), do: :timer.seconds(900) + + defp has_email?(user) do + not is_nil(user.email) and user.email != "" + end + + defp maybe_deliver_email(backup, admin_user_id) do + has_mailer = Pleroma.Config.get([Pleroma.Emails.Mailer, :enabled]) + backup = backup |> Pleroma.Repo.preload(:user) + + if has_email?(backup.user) and has_mailer do + backup + |> Pleroma.Emails.UserEmail.backup_is_ready_email(admin_user_id) + |> Pleroma.Emails.Mailer.deliver() + + :ok + else + :ok + end + end end diff --git a/lib/pleroma/workers/cron/digest_emails_worker.ex b/lib/pleroma/workers/cron/digest_emails_worker.ex index 83dc75d60..1540c1605 100644 --- a/lib/pleroma/workers/cron/digest_emails_worker.ex +++ b/lib/pleroma/workers/cron/digest_emails_worker.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Workers.Cron.DigestEmailsWorker do diff --git a/lib/pleroma/workers/cron/new_users_digest_worker.ex b/lib/pleroma/workers/cron/new_users_digest_worker.ex index 9dfd92228..267fe2837 100644 --- a/lib/pleroma/workers/cron/new_users_digest_worker.ex +++ b/lib/pleroma/workers/cron/new_users_digest_worker.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Workers.Cron.NewUsersDigestWorker do diff --git a/lib/pleroma/workers/mailer_worker.ex b/lib/pleroma/workers/mailer_worker.ex index 592230e7a..940716558 100644 --- a/lib/pleroma/workers/mailer_worker.ex +++ b/lib/pleroma/workers/mailer_worker.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Workers.MailerWorker do @@ -12,4 +12,7 @@ def perform(%Job{args: %{"op" => "email", "encoded_email" => encoded_email, "con |> :erlang.binary_to_term() |> Pleroma.Emails.Mailer.deliver(config) end + + @impl Oban.Worker + def timeout(_job), do: :timer.seconds(5) end diff --git a/lib/pleroma/workers/mute_expire_worker.ex b/lib/pleroma/workers/mute_expire_worker.ex index 8da903e76..8ce458d48 100644 --- a/lib/pleroma/workers/mute_expire_worker.ex +++ b/lib/pleroma/workers/mute_expire_worker.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Workers.MuteExpireWorker do @@ -17,4 +17,7 @@ def perform(%Job{ Pleroma.Web.CommonAPI.remove_mute(user_id, activity_id) :ok end + + @impl Oban.Worker + def timeout(_job), do: :timer.seconds(5) end diff --git a/lib/pleroma/workers/poll_worker.ex b/lib/pleroma/workers/poll_worker.ex new file mode 100644 index 000000000..022d026f8 --- /dev/null +++ b/lib/pleroma/workers/poll_worker.ex @@ -0,0 +1,48 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2022 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + +defmodule Pleroma.Workers.PollWorker do + @moduledoc """ + Generates notifications when a poll ends. + """ + use Pleroma.Workers.WorkerHelper, queue: "poll_notifications" + + alias Pleroma.Activity + alias Pleroma.Notification + alias Pleroma.Object + + @impl Oban.Worker + def perform(%Job{args: %{"op" => "poll_end", "activity_id" => activity_id}}) do + with %Activity{} = activity <- find_poll_activity(activity_id) do + Notification.create_poll_notifications(activity) + end + end + + @impl Oban.Worker + def timeout(_job), do: :timer.seconds(5) + + defp find_poll_activity(activity_id) do + with nil <- Activity.get_by_id(activity_id) do + {:error, :poll_activity_not_found} + end + end + + def schedule_poll_end(%Activity{data: %{"type" => "Create"}, id: activity_id} = activity) do + with %Object{data: %{"type" => "Question", "closed" => closed}} when is_binary(closed) <- + Object.normalize(activity), + {:ok, end_time} <- NaiveDateTime.from_iso8601(closed), + :gt <- NaiveDateTime.compare(end_time, NaiveDateTime.utc_now()) do + %{ + op: "poll_end", + activity_id: activity_id + } + |> new(scheduled_at: end_time) + |> Oban.insert() + else + _ -> {:error, activity} + end + end + + def schedule_poll_end(activity), do: {:error, activity} +end diff --git a/lib/pleroma/workers/publisher_worker.ex b/lib/pleroma/workers/publisher_worker.ex index 6209715b3..598ae3779 100644 --- a/lib/pleroma/workers/publisher_worker.ex +++ b/lib/pleroma/workers/publisher_worker.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Workers.PublisherWorker do @@ -22,4 +22,7 @@ def perform(%Job{args: %{"op" => "publish_one", "module" => module_name, "params params = Map.new(params, fn {k, v} -> {String.to_atom(k), v} end) Federator.perform(:publish_one, String.to_atom(module_name), params) end + + @impl Oban.Worker + def timeout(_job), do: :timer.seconds(10) end diff --git a/lib/pleroma/workers/purge_expired_activity.ex b/lib/pleroma/workers/purge_expired_activity.ex index 027171c1e..e554684fe 100644 --- a/lib/pleroma/workers/purge_expired_activity.ex +++ b/lib/pleroma/workers/purge_expired_activity.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Workers.PurgeExpiredActivity do @@ -35,6 +35,9 @@ def perform(%Oban.Job{args: %{"activity_id" => id}}) do end end + @impl Oban.Worker + def timeout(_job), do: :timer.seconds(5) + defp enabled? do with false <- Pleroma.Config.get([__MODULE__, :enabled], false) do {:error, :expired_activities_disabled} diff --git a/lib/pleroma/workers/purge_expired_filter.ex b/lib/pleroma/workers/purge_expired_filter.ex index 4740d52e9..9114aeb7f 100644 --- a/lib/pleroma/workers/purge_expired_filter.ex +++ b/lib/pleroma/workers/purge_expired_filter.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Workers.PurgeExpiredFilter do @@ -31,6 +31,9 @@ def perform(%Job{args: %{"filter_id" => id}}) do |> Repo.delete() end + @impl Oban.Worker + def timeout(_job), do: :timer.seconds(5) + @spec get_expiration(pos_integer()) :: Job.t() | nil def get_expiration(id) do from(j in Job, diff --git a/lib/pleroma/workers/purge_expired_token.ex b/lib/pleroma/workers/purge_expired_token.ex index cfdf5c6dc..2ccd9e80b 100644 --- a/lib/pleroma/workers/purge_expired_token.ex +++ b/lib/pleroma/workers/purge_expired_token.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Workers.PurgeExpiredToken do @@ -26,4 +26,7 @@ def perform(%Oban.Job{args: %{"token_id" => id, "mod" => module}}) do |> Pleroma.Repo.get(id) |> Pleroma.Repo.delete() end + + @impl Oban.Worker + def timeout(_job), do: :timer.seconds(5) end diff --git a/lib/pleroma/workers/receiver_worker.ex b/lib/pleroma/workers/receiver_worker.ex index 69125dcd0..4f513b907 100644 --- a/lib/pleroma/workers/receiver_worker.ex +++ b/lib/pleroma/workers/receiver_worker.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Workers.ReceiverWorker do @@ -9,6 +9,15 @@ defmodule Pleroma.Workers.ReceiverWorker do @impl Oban.Worker def perform(%Job{args: %{"op" => "incoming_ap_doc", "params" => params}}) do - Federator.perform(:incoming_ap_doc, params) + with {:ok, res} <- Federator.perform(:incoming_ap_doc, params) do + {:ok, res} + else + {:error, :origin_containment_failed} -> {:cancel, :origin_containment_failed} + {:error, {:reject, reason}} -> {:cancel, reason} + e -> e + end end + + @impl Oban.Worker + def timeout(_job), do: :timer.seconds(5) end diff --git a/lib/pleroma/workers/remote_fetcher_worker.ex b/lib/pleroma/workers/remote_fetcher_worker.ex index ad4d785a1..d2a77aa17 100644 --- a/lib/pleroma/workers/remote_fetcher_worker.ex +++ b/lib/pleroma/workers/remote_fetcher_worker.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Workers.RemoteFetcherWorker do @@ -11,4 +11,7 @@ defmodule Pleroma.Workers.RemoteFetcherWorker do def perform(%Job{args: %{"op" => "fetch_remote", "id" => id} = args}) do {:ok, _object} = Fetcher.fetch_object_from_id(id, depth: args["depth"]) end + + @impl Oban.Worker + def timeout(_job), do: :timer.seconds(10) end diff --git a/lib/pleroma/workers/scheduled_activity_worker.ex b/lib/pleroma/workers/scheduled_activity_worker.ex index a4ab9928d..4df84d00f 100644 --- a/lib/pleroma/workers/scheduled_activity_worker.ex +++ b/lib/pleroma/workers/scheduled_activity_worker.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Workers.ScheduledActivityWorker do @@ -37,6 +37,9 @@ def perform(%Job{args: %{"activity_id" => activity_id}}) do end end + @impl Oban.Worker + def timeout(_job), do: :timer.seconds(5) + defp find_scheduled_activity(id) do with nil <- Repo.get(ScheduledActivity, id) do {:error, :scheduled_activity_not_found} diff --git a/lib/pleroma/workers/transmogrifier_worker.ex b/lib/pleroma/workers/transmogrifier_worker.ex index b39c1ea62..1f3f5385e 100644 --- a/lib/pleroma/workers/transmogrifier_worker.ex +++ b/lib/pleroma/workers/transmogrifier_worker.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Workers.TransmogrifierWorker do @@ -12,4 +12,7 @@ def perform(%Job{args: %{"op" => "user_upgrade", "user_id" => user_id}}) do user = User.get_cached_by_id(user_id) Pleroma.Web.ActivityPub.Transmogrifier.perform(:user_upgrade, user) end + + @impl Oban.Worker + def timeout(_job), do: :timer.seconds(5) end diff --git a/lib/pleroma/workers/web_pusher_worker.ex b/lib/pleroma/workers/web_pusher_worker.ex index 8fc2aff26..67e84b0c9 100644 --- a/lib/pleroma/workers/web_pusher_worker.ex +++ b/lib/pleroma/workers/web_pusher_worker.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Workers.WebPusherWorker do @@ -17,4 +17,7 @@ def perform(%Job{args: %{"op" => "web_push", "notification_id" => notification_i Pleroma.Web.Push.Impl.perform(notification) end + + @impl Oban.Worker + def timeout(_job), do: :timer.seconds(5) end diff --git a/lib/pleroma/workers/worker_helper.ex b/lib/pleroma/workers/worker_helper.ex index 4befbeb3b..1d20cbd89 100644 --- a/lib/pleroma/workers/worker_helper.ex +++ b/lib/pleroma/workers/worker_helper.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Workers.WorkerHelper do diff --git a/lib/pleroma/xml_builder.ex b/lib/pleroma/xml_builder.ex index 922d3f6ee..cd74cfbec 100644 --- a/lib/pleroma/xml_builder.ex +++ b/lib/pleroma/xml_builder.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.XmlBuilder do diff --git a/mix.exs b/mix.exs index ec63745ca..151513639 100644 --- a/mix.exs +++ b/mix.exs @@ -4,17 +4,16 @@ defmodule Pleroma.Mixfile do def project do [ app: :pleroma, - version: version("2.4.5"), - elixir: "~> 1.9", + version: version("2.5.0"), + elixir: "~> 1.11", elixirc_paths: elixirc_paths(Mix.env()), compilers: [:phoenix, :gettext] ++ Mix.compilers(), - elixirc_options: [warnings_as_errors: warnings_as_errors(Mix.env())], + elixirc_options: [warnings_as_errors: warnings_as_errors()], xref: [exclude: [:eldap]], start_permanent: Mix.env() == :prod, aliases: aliases(), deps: deps(), - test_coverage: [tool: ExCoveralls], - preferred_cli_env: ["coveralls.html": :test], + test_coverage: [tool: :covertool, summary: true], # Docs name: "Pleroma", homepage_url: "https://pleroma.social/", @@ -77,21 +76,21 @@ def application do :logger, :runtime_tools, :comeonin, - :quack, :fast_sanitize, - :ssl + :os_mon, + :ssl, + :esshd ], included_applications: [:ex_syslogger] ] end # Specifies which paths to compile per environment. - defp elixirc_paths(:benchmark), do: ["lib", "benchmarks"] + defp elixirc_paths(:benchmark), do: ["lib", "benchmarks", "priv/scrubbers"] defp elixirc_paths(:test), do: ["lib", "test/support"] defp elixirc_paths(_), do: ["lib"] - defp warnings_as_errors(:prod), do: false - defp warnings_as_errors(_), do: true + defp warnings_as_errors, do: System.get_env("CI") == "true" # Specifies OAuth dependencies. defp oauth_deps do @@ -115,21 +114,27 @@ defp oauth_deps do # Type `mix help deps` for examples and options. defp deps do [ - {:phoenix, "~> 1.5.5"}, + {:phoenix, "~> 1.6.0"}, + {:phoenix_ecto, "~> 4.4.0"}, + {:ecto_enum, "~> 1.4"}, + {:postgrex, ">= 0.0.0"}, + {:phoenix_html, "~> 3.1"}, + {:phoenix_live_reload, "~> 1.3.3", only: :dev}, + {:phoenix_live_view, "~> 0.17.1"}, + {:phoenix_live_dashboard, "~> 0.6.2"}, + {:telemetry_metrics, "~> 0.6.1"}, + {:telemetry_poller, "~> 1.0"}, {:tzdata, "~> 1.0.3"}, {:plug_cowboy, "~> 2.3"}, - {:phoenix_pubsub, "~> 2.0"}, - {:phoenix_ecto, "~> 4.0"}, - {:ecto_enum, "~> 1.4"}, - {:ecto_sql, "~> 3.6.2"}, - {:postgrex, ">= 0.15.5"}, - {:oban, "~> 2.3.4"}, - {:gettext, "~> 0.18"}, + {:oban, "~> 2.13"}, + {:gettext, + git: "https://github.com/tusooa/gettext.git", + ref: "72fb2496b6c5280ed911bdc3756890e7f38a4808", + override: true}, {:bcrypt_elixir, "~> 2.2"}, {:trailing_format_plug, "~> 0.0.7"}, {:fast_sanitize, "~> 0.2.0"}, {:html_entities, "~> 0.5", override: true}, - {:phoenix_html, "~> 2.14"}, {:calendar, "~> 1.0"}, {:cachex, "~> 3.2"}, {:poison, "~> 3.0", override: true}, @@ -137,29 +142,29 @@ defp deps do {:castore, "~> 0.1"}, {:cowlib, "~> 2.9", override: true}, {:gun, "~> 2.0.0-rc.1", override: true}, + {:finch, "~> 0.10.0"}, {:jason, "~> 1.2"}, - {:mogrify, "~> 0.7.4"}, + {:mogrify, "~> 0.9.1"}, {:ex_aws, "~> 2.1.6"}, {:ex_aws_s3, "~> 2.0"}, {:sweet_xml, "~> 0.7.2"}, - {:earmark, "1.4.15"}, + {:earmark, "~> 1.4.15"}, {:bbcode_pleroma, "~> 0.2.0"}, {:crypt, - git: "https://git.pleroma.social/pleroma/elixir-libraries/crypt.git", - ref: "cf2aa3f11632e8b0634810a15b3e612c7526f6a3"}, + git: "https://github.com/msantos/crypt.git", + ref: "f75cd55325e33cbea198fb41fe41871392f8fb76"}, {:cors_plug, "~> 2.0"}, - {:web_push_encryption, - git: "https://github.com/lanodan/elixir-web-push-encryption.git", branch: "bugfix/otp-24"}, + {:web_push_encryption, "~> 0.3.1"}, {:swoosh, "~> 1.0"}, - {:phoenix_swoosh, "~> 0.3"}, + {:phoenix_swoosh, "~> 1.1"}, {:gen_smtp, "~> 0.13"}, {:ex_syslogger, "~> 1.4"}, {:floki, "~> 0.27"}, {:timex, "~> 3.6"}, {:ueberauth, "~> 0.4"}, - {:linkify, "~> 0.5.1"}, - {:http_signatures, "~> 0.1.0"}, - {:telemetry, "~> 0.3"}, + {:linkify, "~> 0.5.2"}, + {:http_signatures, "~> 0.1.1"}, + {:telemetry, "~> 1.0.0", override: true}, {:poolboy, "~> 1.5"}, {:prometheus, "~> 4.6"}, {:prometheus_ex, @@ -174,7 +179,6 @@ defp deps do branch: "no-logging"}, {:prometheus_ecto, "~> 1.4"}, {:recon, "~> 2.5"}, - {:quack, "~> 0.1.1"}, {:joken, "~> 2.0"}, {:benchee, "~> 1.0"}, {:pot, "~> 1.0"}, @@ -182,9 +186,7 @@ defp deps do {:ex_const, "~> 0.2"}, {:plug_static_index_html, "~> 1.0.0"}, {:flake_id, "~> 0.1.0"}, - {:concurrent_limiter, - git: "https://git.pleroma.social/pleroma/elixir-libraries/concurrent_limiter.git", - ref: "d81be41024569330f296fc472e24198d7499ba78"}, + {:concurrent_limiter, "~> 0.1.1"}, {:remote_ip, git: "https://git.pleroma.social/pleroma/remote_ip.git", ref: "b647d0deecaa3acb140854fe4bda5b7e1dc6d1c8"}, @@ -192,11 +194,10 @@ defp deps do git: "https://git.pleroma.social/pleroma/elixir-libraries/elixir-captcha.git", ref: "e0f16822d578866e186a0974d65ad58cddc1e2ab"}, {:restarter, path: "./restarter"}, - {:majic, - git: "https://git.pleroma.social/pleroma/elixir-libraries/majic.git", - ref: "289cda1b6d0d70ccb2ba508a2b0bd24638db2880"}, - {:eblurhash, "~> 1.1.0"}, + {:majic, "~> 1.0"}, + {:eblurhash, "~> 1.2.2"}, {:open_api_spex, "~> 3.10"}, + {:ecto_psql_extras, "~> 0.6"}, # indirect dependency version override {:plug, "~> 1.10.4", override: true}, @@ -204,10 +205,9 @@ defp deps do ## dev & test {:ex_doc, "~> 0.22", only: :dev, runtime: false}, {:ex_machina, "~> 2.4", only: :test}, - {:credo, "~> 1.4", only: [:dev, :test], runtime: false}, + {:credo, "~> 1.6", only: [:dev, :test], runtime: false}, {:mock, "~> 0.3.5", only: :test}, - # temporary downgrade for excoveralls, hackney until hackney max_connections bug will be fixed - {:excoveralls, "0.12.3", only: :test}, + {:covertool, "~> 2.0", only: :test}, {:hackney, "~> 1.18.0", override: true}, {:mox, "~> 1.0", only: :test}, {:websockex, "~> 0.4.3", only: :test} @@ -245,9 +245,10 @@ defp version(version) do identifier_filter = ~r/[^0-9a-z\-]+/i git_available? = match?({_output, 0}, System.cmd("sh", ["-c", "command -v git"])) + dotgit_present? = File.exists?(".git") git_pre_release = - if git_available? do + if git_available? and dotgit_present? do {tag, tag_err} = System.cmd("git", ["describe", "--tags", "--abbrev=0"], stderr_to_stdout: true) @@ -274,6 +275,7 @@ defp version(version) do # Branch name as pre-release version component, denoted with a dot branch_name = with true <- git_available?, + true <- dotgit_present?, {branch_name, 0} <- System.cmd("git", ["rev-parse", "--abbrev-ref", "HEAD"]), branch_name <- String.trim(branch_name), branch_name <- System.get_env("PLEROMA_BUILD_BRANCH") || branch_name, diff --git a/mix.lock b/mix.lock index 3ab8d6e96..8f4f17f83 100644 --- a/mix.lock +++ b/mix.lock @@ -1,74 +1,71 @@ %{ "accept": {:hex, :accept, "0.3.5", "b33b127abca7cc948bbe6caa4c263369abf1347cfa9d8e699c6d214660f10cd1", [:rebar3], [], "hexpm", "11b18c220bcc2eab63b5470c038ef10eb6783bcb1fcdb11aa4137defa5ac1bb8"}, "base62": {:hex, :base62, "1.2.2", "85c6627eb609317b70f555294045895ffaaeb1758666ab9ef9ca38865b11e629", [:mix], [{:custom_base, "~> 0.2.1", [hex: :custom_base, repo: "hexpm", optional: false]}], "hexpm", "d41336bda8eaa5be197f1e4592400513ee60518e5b9f4dcf38f4b4dae6f377bb"}, - "base64url": {:hex, :base64url, "0.0.1", "36a90125f5948e3afd7be97662a1504b934dd5dac78451ca6e9abf85a10286be", [:rebar], [], "hexpm"}, - "bbcode": {:git, "https://git.pleroma.social/pleroma/elixir-libraries/bbcode.git", "f2d267675e9a7e1ad1ea9beb4cc23382762b66c2", [ref: "v0.2.0"]}, "bbcode_pleroma": {:hex, :bbcode_pleroma, "0.2.0", "d36f5bca6e2f62261c45be30fa9b92725c0655ad45c99025cb1c3e28e25803ef", [:mix], [{:nimble_parsec, "~> 0.5", [hex: :nimble_parsec, repo: "hexpm", optional: false]}], "hexpm", "19851074419a5fedb4ef49e1f01b30df504bb5dbb6d6adfc135238063bebd1c3"}, "bcrypt_elixir": {:hex, :bcrypt_elixir, "2.3.0", "6cb662d5c1b0a8858801cf20997bd006e7016aa8c52959c9ef80e0f34fb60b7a", [:make, :mix], [{:comeonin, "~> 5.3", [hex: :comeonin, repo: "hexpm", optional: false]}, {:elixir_make, "~> 0.6", [hex: :elixir_make, repo: "hexpm", optional: false]}], "hexpm", "2c81d61d4f6ed0e5cf7bf27a9109b791ff216a1034b3d541327484f46dd43769"}, "benchee": {:hex, :benchee, "1.0.1", "66b211f9bfd84bd97e6d1beaddf8fc2312aaabe192f776e8931cb0c16f53a521", [:mix], [{:deep_merge, "~> 1.0", [hex: :deep_merge, repo: "hexpm", optional: false]}], "hexpm", "3ad58ae787e9c7c94dd7ceda3b587ec2c64604563e049b2a0e8baafae832addb"}, - "bunt": {:hex, :bunt, "0.2.0", "951c6e801e8b1d2cbe58ebbd3e616a869061ddadcc4863d0a2182541acae9a38", [:mix], [], "hexpm", "7af5c7e09fe1d40f76c8e4f9dd2be7cebd83909f31fee7cd0e9eadc567da8353"}, + "bunt": {:hex, :bunt, "0.2.1", "e2d4792f7bc0ced7583ab54922808919518d0e57ee162901a16a1b6664ef3b14", [:mix], [], "hexpm", "a330bfb4245239787b15005e66ae6845c9cd524a288f0d141c148b02603777a5"}, "cachex": {:hex, :cachex, "3.3.0", "6f2ebb8f27491fe39121bd207c78badc499214d76c695658b19d6079beeca5c2", [:mix], [{:eternal, "~> 1.2", [hex: :eternal, repo: "hexpm", optional: false]}, {:jumper, "~> 1.0", [hex: :jumper, repo: "hexpm", optional: false]}, {:sleeplocks, "~> 1.1", [hex: :sleeplocks, repo: "hexpm", optional: false]}, {:unsafe, "~> 1.0", [hex: :unsafe, repo: "hexpm", optional: false]}], "hexpm", "d90e5ee1dde14cef33f6b187af4335b88748b72b30c038969176cd4e6ccc31a1"}, "calendar": {:hex, :calendar, "1.0.0", "f52073a708528482ec33d0a171954ca610fe2bd28f1e871f247dc7f1565fa807", [:mix], [{:tzdata, "~> 0.5.20 or ~> 0.1.201603 or ~> 1.0", [hex: :tzdata, repo: "hexpm", optional: false]}], "hexpm", "990e9581920c82912a5ee50e62ff5ef96da6b15949a2ee4734f935fdef0f0a6f"}, "captcha": {:git, "https://git.pleroma.social/pleroma/elixir-libraries/elixir-captcha.git", "e0f16822d578866e186a0974d65ad58cddc1e2ab", [ref: "e0f16822d578866e186a0974d65ad58cddc1e2ab"]}, - "castore": {:hex, :castore, "0.1.10", "b01a007416a0ae4188e70b3b306236021b16c11474038ead7aff79dd75538c23", [:mix], [], "hexpm", "a48314e0cb45682db2ea27b8ebfa11bd6fa0a6e21a65e5772ad83ca136ff2665"}, - "certifi": {:hex, :certifi, "2.8.0", "d4fb0a6bb20b7c9c3643e22507e42f356ac090a1dcea9ab99e27e0376d695eba", [:rebar3], [], "hexpm", "6ac7efc1c6f8600b08d625292d4bbf584e14847ce1b6b5c44d983d273e1097ea"}, + "castore": {:hex, :castore, "0.1.18", "deb5b9ab02400561b6f5708f3e7660fc35ca2d51bfc6a940d2f513f89c2975fc", [:mix], [], "hexpm", "61bbaf6452b782ef80b33cdb45701afbcf0a918a45ebe7e73f1130d661e66a06"}, + "certifi": {:hex, :certifi, "2.9.0", "6f2a475689dd47f19fb74334859d460a2dc4e3252a3324bd2111b8f0429e7e21", [:rebar3], [], "hexpm", "266da46bdb06d6c6d35fde799bcb28d36d985d424ad7c08b5bb48f5b5cdd4641"}, "combine": {:hex, :combine, "0.10.0", "eff8224eeb56498a2af13011d142c5e7997a80c8f5b97c499f84c841032e429f", [:mix], [], "hexpm", "1b1dbc1790073076580d0d1d64e42eae2366583e7aecd455d1215b0d16f2451b"}, "comeonin": {:hex, :comeonin, "5.3.2", "5c2f893d05c56ae3f5e24c1b983c2d5dfb88c6d979c9287a76a7feb1e1d8d646", [:mix], [], "hexpm", "d0993402844c49539aeadb3fe46a3c9bd190f1ecf86b6f9ebd71957534c95f04"}, - "concurrent_limiter": {:git, "https://git.pleroma.social/pleroma/elixir-libraries/concurrent_limiter.git", "d81be41024569330f296fc472e24198d7499ba78", [ref: "d81be41024569330f296fc472e24198d7499ba78"]}, + "concurrent_limiter": {:hex, :concurrent_limiter, "0.1.1", "43ae1dc23edda1ab03dd66febc739c4ff710d047bb4d735754909f9a474ae01c", [:mix], [{:telemetry, "~> 0.3", [hex: :telemetry, repo: "hexpm", optional: false]}], "hexpm", "53968ff238c0fbb4d7ed76ddb1af0be6f3b2f77909f6796e249e737c505a16eb"}, "connection": {:hex, :connection, "1.1.0", "ff2a49c4b75b6fb3e674bfc5536451607270aac754ffd1bdfe175abe4a6d7a68", [:mix], [], "hexpm", "722c1eb0a418fbe91ba7bd59a47e28008a189d47e37e0e7bb85585a016b2869c"}, "cors_plug": {:hex, :cors_plug, "2.0.3", "316f806d10316e6d10f09473f19052d20ba0a0ce2a1d910ddf57d663dac402ae", [:mix], [{:plug, "~> 1.8", [hex: :plug, repo: "hexpm", optional: false]}], "hexpm", "ee4ae1418e6ce117fc42c2ba3e6cbdca4e95ecd2fe59a05ec6884ca16d469aea"}, + "covertool": {:hex, :covertool, "2.0.4", "54acff6cddd88d28dea663cd2e1fe20dd32fcf5f5d3aff7d59031ce44ce39efa", [:rebar3], [], "hexpm", "5c9568ba4308fda2082172737c80c31d991ea83961eb10791f06106a870d0cdc"}, "cowboy": {:hex, :cowboy, "2.9.0", "865dd8b6607e14cf03282e10e934023a1bd8be6f6bacf921a7e2a96d800cd452", [:make, :rebar3], [{:cowlib, "2.11.0", [hex: :cowlib, repo: "hexpm", optional: false]}, {:ranch, "1.8.0", [hex: :ranch, repo: "hexpm", optional: false]}], "hexpm", "2c729f934b4e1aa149aff882f57c6372c15399a20d54f65c8d67bef583021bde"}, - "cowboy_telemetry": {:hex, :cowboy_telemetry, "0.3.1", "ebd1a1d7aff97f27c66654e78ece187abdc646992714164380d8a041eda16754", [:rebar3], [{:cowboy, "~> 2.7", [hex: :cowboy, repo: "hexpm", optional: false]}, {:telemetry, "~> 0.4", [hex: :telemetry, repo: "hexpm", optional: false]}], "hexpm", "3a6efd3366130eab84ca372cbd4a7d3c3a97bdfcfb4911233b035d117063f0af"}, + "cowboy_telemetry": {:hex, :cowboy_telemetry, "0.4.0", "f239f68b588efa7707abce16a84d0d2acf3a0f50571f8bb7f56a15865aae820c", [:rebar3], [{:cowboy, "~> 2.7", [hex: :cowboy, repo: "hexpm", optional: false]}, {:telemetry, "~> 1.0", [hex: :telemetry, repo: "hexpm", optional: false]}], "hexpm", "7d98bac1ee4565d31b62d59f8823dfd8356a169e7fcbb83831b8a5397404c9de"}, "cowlib": {:hex, :cowlib, "2.11.0", "0b9ff9c346629256c42ebe1eeb769a83c6cb771a6ee5960bd110ab0b9b872063", [:make, :rebar3], [], "hexpm", "2b3e9da0b21c4565751a6d4901c20d1b4cc25cbb7fd50d91d2ab6dd287bc86a9"}, - "credo": {:hex, :credo, "1.5.5", "e8f422026f553bc3bebb81c8e8bf1932f498ca03339856c7fec63d3faac8424b", [:mix], [{:bunt, "~> 0.2.0", [hex: :bunt, repo: "hexpm", optional: false]}, {:file_system, "~> 0.2.8", [hex: :file_system, repo: "hexpm", optional: false]}, {:jason, "~> 1.0", [hex: :jason, repo: "hexpm", optional: false]}], "hexpm", "dd8623ab7091956a855dc9f3062486add9c52d310dfd62748779c4315d8247de"}, + "credo": {:hex, :credo, "1.6.7", "323f5734350fd23a456f2688b9430e7d517afb313fbd38671b8a4449798a7854", [:mix], [{:bunt, "~> 0.2.1", [hex: :bunt, repo: "hexpm", optional: false]}, {:file_system, "~> 0.2.8", [hex: :file_system, repo: "hexpm", optional: false]}, {:jason, "~> 1.0", [hex: :jason, repo: "hexpm", optional: false]}], "hexpm", "41e110bfb007f7eda7f897c10bf019ceab9a0b269ce79f015d54b0dcf4fc7dd3"}, "crontab": {:hex, :crontab, "1.1.8", "2ce0e74777dfcadb28a1debbea707e58b879e6aa0ffbf9c9bb540887bce43617", [:mix], [{:ecto, "~> 1.0 or ~> 2.0 or ~> 3.0", [hex: :ecto, repo: "hexpm", optional: true]}], "hexpm"}, - "crypt": {:git, "https://git.pleroma.social/pleroma/elixir-libraries/crypt.git", "cf2aa3f11632e8b0634810a15b3e612c7526f6a3", [ref: "cf2aa3f11632e8b0634810a15b3e612c7526f6a3"]}, + "crypt": {:git, "https://github.com/msantos/crypt.git", "f75cd55325e33cbea198fb41fe41871392f8fb76", [ref: "f75cd55325e33cbea198fb41fe41871392f8fb76"]}, "custom_base": {:hex, :custom_base, "0.2.1", "4a832a42ea0552299d81652aa0b1f775d462175293e99dfbe4d7dbaab785a706", [:mix], [], "hexpm", "8df019facc5ec9603e94f7270f1ac73ddf339f56ade76a721eaa57c1493ba463"}, - "db_connection": {:hex, :db_connection, "2.4.0", "d04b1b73795dae60cead94189f1b8a51cc9e1f911c234cc23074017c43c031e5", [:mix], [{:connection, "~> 1.0", [hex: :connection, repo: "hexpm", optional: false]}, {:telemetry, "~> 0.4 or ~> 1.0", [hex: :telemetry, repo: "hexpm", optional: false]}], "hexpm", "ad416c21ad9f61b3103d254a71b63696ecadb6a917b36f563921e0de00d7d7c8"}, + "db_connection": {:hex, :db_connection, "2.4.2", "f92e79aff2375299a16bcb069a14ee8615c3414863a6fef93156aee8e86c2ff3", [:mix], [{:connection, "~> 1.0", [hex: :connection, repo: "hexpm", optional: false]}, {:telemetry, "~> 0.4 or ~> 1.0", [hex: :telemetry, repo: "hexpm", optional: false]}], "hexpm", "4fe53ca91b99f55ea249693a0229356a08f4d1a7931d8ffa79289b145fe83668"}, "decimal": {:hex, :decimal, "2.0.0", "a78296e617b0f5dd4c6caf57c714431347912ffb1d0842e998e9792b5642d697", [:mix], [], "hexpm", "34666e9c55dea81013e77d9d87370fe6cb6291d1ef32f46a1600230b1d44f577"}, "deep_merge": {:hex, :deep_merge, "1.0.0", "b4aa1a0d1acac393bdf38b2291af38cb1d4a52806cf7a4906f718e1feb5ee961", [:mix], [], "hexpm", "ce708e5f094b9cd4e8f2be4f00d2f4250c4095be93f8cd6d018c753894885430"}, - "earmark": {:hex, :earmark, "1.4.15", "2c7f924bf495ec1f65bd144b355d0949a05a254d0ec561740308a54946a67888", [:mix], [{:earmark_parser, ">= 1.4.13", [hex: :earmark_parser, repo: "hexpm", optional: false]}], "hexpm", "3b1209b85bc9f3586f370f7c363f6533788fb4e51db23aa79565875e7f9999ee"}, - "earmark_parser": {:hex, :earmark_parser, "1.4.13", "0c98163e7d04a15feb62000e1a891489feb29f3d10cb57d4f845c405852bbef8", [:mix], [], "hexpm", "d602c26af3a0af43d2f2645613f65841657ad6efc9f0e361c3b6c06b578214ba"}, - "eblurhash": {:hex, :eblurhash, "1.1.0", "e10ccae762598507ebfacf0b645ed49520f2afa3e7e9943e73a91117dffce415", [:rebar3], [], "hexpm", "2e6b889d09fddd374e3c5ac57c486138768763264e99ac1074ae5fa7fc9ab51d"}, - "ecto": {:hex, :ecto, "3.6.2", "efdf52acfc4ce29249bab5417415bd50abd62db7b0603b8bab0d7b996548c2bc", [:mix], [{:decimal, "~> 1.6 or ~> 2.0", [hex: :decimal, repo: "hexpm", optional: false]}, {:jason, "~> 1.0", [hex: :jason, repo: "hexpm", optional: true]}, {:telemetry, "~> 0.4", [hex: :telemetry, repo: "hexpm", optional: false]}], "hexpm", "efad6dfb04e6f986b8a3047822b0f826d9affe8e4ebdd2aeedbfcb14fd48884e"}, + "earmark": {:hex, :earmark, "1.4.18", "618c4ff1563450d1832b7fb41dc6755e470f91a6fd4c70f350a58b14f64a7db8", [:mix], [{:earmark_parser, ">= 1.4.17", [hex: :earmark_parser, repo: "hexpm", optional: false]}], "hexpm", "57ac3b6da3958ed09c669a9b159e86377fcccda56bacde8a209fa4dcdef52560"}, + "earmark_parser": {:hex, :earmark_parser, "1.4.17", "6f3c7e94170377ba45241d394389e800fb15adc5de51d0a3cd52ae766aafd63f", [:mix], [], "hexpm", "f93ac89c9feca61c165b264b5837bf82344d13bebc634cd575cb711e2e342023"}, + "eblurhash": {:hex, :eblurhash, "1.2.2", "7da4255aaea984b31bb71155f673257353b0e0554d0d30dcf859547e74602582", [:rebar3], [], "hexpm", "8c20ca00904de023a835a9dcb7b7762fed32264c85a80c3cafa85288e405044c"}, + "ecto": {:hex, :ecto, "3.9.2", "017db3bc786ff64271108522c01a5d3f6ba0aea5c84912cfb0dd73bf13684108", [:mix], [{:decimal, "~> 1.6 or ~> 2.0", [hex: :decimal, repo: "hexpm", optional: false]}, {:jason, "~> 1.0", [hex: :jason, repo: "hexpm", optional: true]}, {:telemetry, "~> 0.4 or ~> 1.0", [hex: :telemetry, repo: "hexpm", optional: false]}], "hexpm", "21466d5177e09e55289ac7eade579a642578242c7a3a9f91ad5c6583337a9d15"}, "ecto_enum": {:hex, :ecto_enum, "1.4.0", "d14b00e04b974afc69c251632d1e49594d899067ee2b376277efd8233027aec8", [:mix], [{:ecto, ">= 3.0.0", [hex: :ecto, repo: "hexpm", optional: false]}, {:ecto_sql, "> 3.0.0", [hex: :ecto_sql, repo: "hexpm", optional: false]}, {:mariaex, ">= 0.0.0", [hex: :mariaex, repo: "hexpm", optional: true]}, {:postgrex, ">= 0.0.0", [hex: :postgrex, repo: "hexpm", optional: true]}], "hexpm", "8fb55c087181c2b15eee406519dc22578fa60dd82c088be376d0010172764ee4"}, - "ecto_sql": {:hex, :ecto_sql, "3.6.2", "9526b5f691701a5181427634c30655ac33d11e17e4069eff3ae1176c764e0ba3", [:mix], [{:db_connection, "~> 2.2", [hex: :db_connection, repo: "hexpm", optional: false]}, {:ecto, "~> 3.6.2", [hex: :ecto, repo: "hexpm", optional: false]}, {:myxql, "~> 0.4.0 or ~> 0.5.0", [hex: :myxql, repo: "hexpm", optional: true]}, {:postgrex, "~> 0.15.0 or ~> 1.0", [hex: :postgrex, repo: "hexpm", optional: true]}, {:tds, "~> 2.1.1", [hex: :tds, repo: "hexpm", optional: true]}, {:telemetry, "~> 0.4.0", [hex: :telemetry, repo: "hexpm", optional: false]}], "hexpm", "5ec9d7e6f742ea39b63aceaea9ac1d1773d574ea40df5a53ef8afbd9242fdb6b"}, + "ecto_psql_extras": {:hex, :ecto_psql_extras, "0.7.4", "5d43fd088d39a158c860b17e8d210669587f63ec89ea122a4654861c8c6e2db4", [:mix], [{:ecto_sql, "~> 3.4", [hex: :ecto_sql, repo: "hexpm", optional: false]}, {:postgrex, ">= 0.15.7", [hex: :postgrex, repo: "hexpm", optional: false]}, {:table_rex, "~> 3.1.1", [hex: :table_rex, repo: "hexpm", optional: false]}], "hexpm", "311db02f1b772e3d0dc7f56a05044b5e1499d78ed6abf38885e1ca70059449e5"}, + "ecto_sql": {:hex, :ecto_sql, "3.9.0", "2bb21210a2a13317e098a420a8c1cc58b0c3421ab8e3acfa96417dab7817918c", [:mix], [{:db_connection, "~> 2.5 or ~> 2.4.1", [hex: :db_connection, repo: "hexpm", optional: false]}, {:ecto, "~> 3.9.0", [hex: :ecto, repo: "hexpm", optional: false]}, {:myxql, "~> 0.6.0", [hex: :myxql, repo: "hexpm", optional: true]}, {:postgrex, "~> 0.16.0 or ~> 1.0", [hex: :postgrex, repo: "hexpm", optional: true]}, {:tds, "~> 2.1.1 or ~> 2.2", [hex: :tds, repo: "hexpm", optional: true]}, {:telemetry, "~> 0.4.0 or ~> 1.0", [hex: :telemetry, repo: "hexpm", optional: false]}], "hexpm", "a8f3f720073b8b1ac4c978be25fa7960ed7fd44997420c304a4a2e200b596453"}, "eimp": {:hex, :eimp, "1.0.14", "fc297f0c7e2700457a95a60c7010a5f1dcb768a083b6d53f49cd94ab95a28f22", [:rebar3], [{:p1_utils, "1.0.18", [hex: :p1_utils, repo: "hexpm", optional: false]}], "hexpm", "501133f3112079b92d9e22da8b88bf4f0e13d4d67ae9c15c42c30bd25ceb83b6"}, "elixir_make": {:hex, :elixir_make, "0.6.2", "7dffacd77dec4c37b39af867cedaabb0b59f6a871f89722c25b28fcd4bd70530", [:mix], [], "hexpm", "03e49eadda22526a7e5279d53321d1cced6552f344ba4e03e619063de75348d9"}, + "esbuild": {:hex, :esbuild, "0.5.0", "d5bb08ff049d7880ee3609ed5c4b864bd2f46445ea40b16b4acead724fb4c4a3", [:mix], [{:castore, ">= 0.0.0", [hex: :castore, repo: "hexpm", optional: false]}], "hexpm", "f183a0b332d963c4cfaf585477695ea59eef9a6f2204fdd0efa00e099694ffe5"}, "esshd": {:hex, :esshd, "0.1.1", "d4dd4c46698093a40a56afecce8a46e246eb35463c457c246dacba2e056f31b5", [:mix], [], "hexpm", "d73e341e3009d390aa36387dc8862860bf9f874c94d9fd92ade2926376f49981"}, "eternal": {:hex, :eternal, "1.2.2", "d1641c86368de99375b98d183042dd6c2b234262b8d08dfd72b9eeaafc2a1abd", [:mix], [], "hexpm", "2c9fe32b9c3726703ba5e1d43a1d255a4f3f2d8f8f9bc19f094c7cb1a7a9e782"}, - "ex2ms": {:hex, :ex2ms, "1.5.0", "19e27f9212be9a96093fed8cdfbef0a2b56c21237196d26760f11dfcfae58e97", [:mix], [], "hexpm"}, "ex_aws": {:hex, :ex_aws, "2.1.9", "dc4865ecc20a05190a34a0ac5213e3e5e2b0a75a0c2835e923ae7bfeac5e3c31", [:mix], [{:configparser_ex, "~> 4.0", [hex: :configparser_ex, repo: "hexpm", optional: true]}, {:hackney, "~> 1.9", [hex: :hackney, repo: "hexpm", optional: true]}, {:jason, "~> 1.1", [hex: :jason, repo: "hexpm", optional: true]}, {:jsx, "~> 3.0", [hex: :jsx, repo: "hexpm", optional: true]}, {:sweet_xml, "~> 0.6", [hex: :sweet_xml, repo: "hexpm", optional: true]}], "hexpm", "3e6c776703c9076001fbe1f7c049535f042cb2afa0d2cbd3b47cbc4e92ac0d10"}, "ex_aws_s3": {:hex, :ex_aws_s3, "2.2.0", "07a09de557070320e264893c0acc8a1d2e7ddf80155736e0aed966486d1988e6", [:mix], [{:ex_aws, "~> 2.0", [hex: :ex_aws, repo: "hexpm", optional: false]}, {:sweet_xml, ">= 0.0.0", [hex: :sweet_xml, repo: "hexpm", optional: true]}], "hexpm", "15175c613371e29e1f88b78ec8a4327389ca1ec5b34489744b175727496b21bd"}, "ex_const": {:hex, :ex_const, "0.2.4", "d06e540c9d834865b012a17407761455efa71d0ce91e5831e86881b9c9d82448", [:mix], [], "hexpm", "96fd346610cc992b8f896ed26a98be82ac4efb065a0578f334a32d60a3ba9767"}, "ex_doc": {:hex, :ex_doc, "0.24.2", "e4c26603830c1a2286dae45f4412a4d1980e1e89dc779fcd0181ed1d5a05c8d9", [:mix], [{:earmark_parser, "~> 1.4.0", [hex: :earmark_parser, repo: "hexpm", optional: false]}, {:makeup_elixir, "~> 0.14", [hex: :makeup_elixir, repo: "hexpm", optional: false]}, {:makeup_erlang, "~> 0.1", [hex: :makeup_erlang, repo: "hexpm", optional: false]}], "hexpm", "e134e1d9e821b8d9e4244687fb2ace58d479b67b282de5158333b0d57c6fb7da"}, "ex_machina": {:hex, :ex_machina, "2.7.0", "b792cc3127fd0680fecdb6299235b4727a4944a09ff0fa904cc639272cd92dc7", [:mix], [{:ecto, "~> 2.2 or ~> 3.0", [hex: :ecto, repo: "hexpm", optional: true]}, {:ecto_sql, "~> 3.0", [hex: :ecto_sql, repo: "hexpm", optional: true]}], "hexpm", "419aa7a39bde11894c87a615c4ecaa52d8f107bbdd81d810465186f783245bf8"}, "ex_syslogger": {:hex, :ex_syslogger, "1.5.2", "72b6aa2d47a236e999171f2e1ec18698740f40af0bd02c8c650bf5f1fd1bac79", [:mix], [{:poison, ">= 1.5.0", [hex: :poison, repo: "hexpm", optional: true]}, {:syslog, "~> 1.1.0", [hex: :syslog, repo: "hexpm", optional: false]}], "hexpm", "ab9fab4136dbc62651ec6f16fa4842f10cf02ab4433fa3d0976c01be99398399"}, - "excoveralls": {:hex, :excoveralls, "0.12.3", "2142be7cb978a3ae78385487edda6d1aff0e482ffc6123877bb7270a8ffbcfe0", [:mix], [{:hackney, "~> 1.0", [hex: :hackney, repo: "hexpm", optional: false]}, {:jason, "~> 1.0", [hex: :jason, repo: "hexpm", optional: false]}], "hexpm", "568a3e616c264283f5dea5b020783ae40eef3f7ee2163f7a67cbd7b35bcadada"}, - "fast_html": {:hex, :fast_html, "2.0.4", "4910ee49f2f6b19692e3bf30bf97f1b6b7dac489cd6b0f34cd0fe3042c56ba30", [:make, :mix], [{:elixir_make, "~> 0.4", [hex: :elixir_make, repo: "hexpm", optional: false]}, {:nimble_pool, "~> 0.1.0", [hex: :nimble_pool, repo: "hexpm", optional: false]}], "hexpm", "3bb49d541dfc02ad5e425904f53376d758c09f89e521afc7d2b174b3227761ea"}, + "fast_html": {:hex, :fast_html, "2.0.5", "c61760340606c1077ff1f196f17834056cb1dd3d5cb92a9f2cabf28bc6221c3c", [:make, :mix], [{:elixir_make, "~> 0.4", [hex: :elixir_make, repo: "hexpm", optional: false]}, {:nimble_pool, "~> 0.2.0", [hex: :nimble_pool, repo: "hexpm", optional: false]}], "hexpm", "605f4f4829443c14127694ebabb681778712ceecb4470ec32aa31012330e6506"}, "fast_sanitize": {:hex, :fast_sanitize, "0.2.2", "3cbbaebaea6043865dfb5b4ecb0f1af066ad410a51470e353714b10c42007b81", [:mix], [{:fast_html, "~> 2.0", [hex: :fast_html, repo: "hexpm", optional: false]}, {:plug, "~> 1.8", [hex: :plug, repo: "hexpm", optional: false]}], "hexpm", "69f204db9250afa94a0d559d9110139850f57de2b081719fbafa1e9a89e94466"}, "file_system": {:hex, :file_system, "0.2.10", "fb082005a9cd1711c05b5248710f8826b02d7d1784e7c3451f9c1231d4fc162d", [:mix], [], "hexpm", "41195edbfb562a593726eda3b3e8b103a309b733ad25f3d642ba49696bf715dc"}, + "finch": {:hex, :finch, "0.10.2", "9ad27d68270d879f73f26604bb2e573d40f29bf0e907064a9a337f90a16a0312", [:mix], [{:castore, "~> 0.1", [hex: :castore, repo: "hexpm", optional: false]}, {:mint, "~> 1.3", [hex: :mint, repo: "hexpm", optional: false]}, {:nimble_options, "~> 0.4.0", [hex: :nimble_options, repo: "hexpm", optional: false]}, {:nimble_pool, "~> 0.2", [hex: :nimble_pool, repo: "hexpm", optional: false]}, {:telemetry, "~> 0.4 or ~> 1.0", [hex: :telemetry, repo: "hexpm", optional: false]}], "hexpm", "dd8b11b282072cec2ef30852283949c248bd5d2820c88d8acc89402b81db7550"}, "flake_id": {:hex, :flake_id, "0.1.0", "7716b086d2e405d09b647121a166498a0d93d1a623bead243e1f74216079ccb3", [:mix], [{:base62, "~> 1.2", [hex: :base62, repo: "hexpm", optional: false]}, {:ecto, ">= 2.0.0", [hex: :ecto, repo: "hexpm", optional: true]}], "hexpm", "31fc8090fde1acd267c07c36ea7365b8604055f897d3a53dd967658c691bd827"}, "floki": {:hex, :floki, "0.30.1", "75d35526d3a1459920b6e87fdbc2e0b8a3670f965dd0903708d2b267e0904c55", [:mix], [{:html_entities, "~> 0.5.0", [hex: :html_entities, repo: "hexpm", optional: false]}], "hexpm", "e9c03524447d1c4cbfccd672d739b8c18453eee377846b119d4fd71b1a176bb8"}, "gen_smtp": {:hex, :gen_smtp, "0.15.0", "9f51960c17769b26833b50df0b96123605a8024738b62db747fece14eb2fbfcc", [:rebar3], [], "hexpm", "29bd14a88030980849c7ed2447b8db6d6c9278a28b11a44cafe41b791205440f"}, - "gen_stage": {:hex, :gen_stage, "0.14.3", "d0c66f1c87faa301c1a85a809a3ee9097a4264b2edf7644bf5c123237ef732bf", [:mix], [], "hexpm"}, - "gen_state_machine": {:hex, :gen_state_machine, "2.0.5", "9ac15ec6e66acac994cc442dcc2c6f9796cf380ec4b08267223014be1c728a95", [:mix], [], "hexpm"}, - "gettext": {:hex, :gettext, "0.18.2", "7df3ea191bb56c0309c00a783334b288d08a879f53a7014341284635850a6e55", [:mix], [], "hexpm", "f9f537b13d4fdd30f3039d33cb80144c3aa1f8d9698e47d7bcbcc8df93b1f5c5"}, + "gettext": {:git, "https://github.com/tusooa/gettext.git", "72fb2496b6c5280ed911bdc3756890e7f38a4808", [ref: "72fb2496b6c5280ed911bdc3756890e7f38a4808"]}, "gun": {:hex, :gun, "2.0.0-rc.2", "7c489a32dedccb77b6e82d1f3c5a7dadfbfa004ec14e322cdb5e579c438632d2", [:make, :rebar3], [{:cowlib, "2.11.0", [hex: :cowlib, repo: "hexpm", optional: false]}], "hexpm", "6b9d1eae146410d727140dbf8b404b9631302ecc2066d1d12f22097ad7d254fc"}, - "hackney": {:hex, :hackney, "1.18.0", "c4443d960bb9fba6d01161d01cd81173089686717d9490e5d3606644c48d121f", [:rebar3], [{:certifi, "~>2.8.0", [hex: :certifi, repo: "hexpm", optional: false]}, {:idna, "~>6.1.0", [hex: :idna, repo: "hexpm", optional: false]}, {:metrics, "~>1.0.0", [hex: :metrics, repo: "hexpm", optional: false]}, {:mimerl, "~>1.1", [hex: :mimerl, repo: "hexpm", optional: false]}, {:parse_trans, "3.3.1", [hex: :parse_trans, repo: "hexpm", optional: false]}, {:ssl_verify_fun, "~>1.1.0", [hex: :ssl_verify_fun, repo: "hexpm", optional: false]}, {:unicode_util_compat, "~>0.7.0", [hex: :unicode_util_compat, repo: "hexpm", optional: false]}], "hexpm", "9afcda620704d720db8c6a3123e9848d09c87586dc1c10479c42627b905b5c5e"}, + "hackney": {:hex, :hackney, "1.18.1", "f48bf88f521f2a229fc7bae88cf4f85adc9cd9bcf23b5dc8eb6a1788c662c4f6", [:rebar3], [{:certifi, "~>2.9.0", [hex: :certifi, repo: "hexpm", optional: false]}, {:idna, "~>6.1.0", [hex: :idna, repo: "hexpm", optional: false]}, {:metrics, "~>1.0.0", [hex: :metrics, repo: "hexpm", optional: false]}, {:mimerl, "~>1.1", [hex: :mimerl, repo: "hexpm", optional: false]}, {:parse_trans, "3.3.1", [hex: :parse_trans, repo: "hexpm", optional: false]}, {:ssl_verify_fun, "~>1.1.0", [hex: :ssl_verify_fun, repo: "hexpm", optional: false]}, {:unicode_util_compat, "~>0.7.0", [hex: :unicode_util_compat, repo: "hexpm", optional: false]}], "hexpm", "a4ecdaff44297e9b5894ae499e9a070ea1888c84afdd1fd9b7b2bc384950128e"}, + "hpax": {:hex, :hpax, "0.1.2", "09a75600d9d8bbd064cdd741f21fc06fc1f4cf3d0fcc335e5aa19be1a7235c84", [:mix], [], "hexpm", "2c87843d5a23f5f16748ebe77969880e29809580efdaccd615cd3bed628a8c13"}, "html_entities": {:hex, :html_entities, "0.5.2", "9e47e70598da7de2a9ff6af8758399251db6dbb7eebe2b013f2bbd2515895c3c", [:mix], [], "hexpm", "c53ba390403485615623b9531e97696f076ed415e8d8058b1dbaa28181f4fdcc"}, - "html_sanitize_ex": {:hex, :html_sanitize_ex, "1.3.0", "f005ad692b717691203f940c686208aa3d8ffd9dd4bb3699240096a51fa9564e", [:mix], [{:mochiweb, "~> 2.15", [hex: :mochiweb, repo: "hexpm", optional: false]}], "hexpm"}, - "http_signatures": {:hex, :http_signatures, "0.1.0", "4e4b501a936dbf4cb5222597038a89ea10781776770d2e185849fa829686b34c", [:mix], [], "hexpm", "f8a7b3731e3fd17d38fa6e343fcad7b03d6874a3b0a108c8568a71ed9c2cf824"}, + "http_signatures": {:hex, :http_signatures, "0.1.1", "ca7ebc1b61542b163644c8c3b1f0e0f41037d35f2395940d3c6c7deceab41fd8", [:mix], [], "hexpm", "cc3b8a007322cc7b624c0c15eec49ee58ac977254ff529a3c482f681465942a3"}, "httpoison": {:hex, :httpoison, "1.8.0", "6b85dea15820b7804ef607ff78406ab449dd78bed923a49c7160e1886e987a3d", [:mix], [{:hackney, "~> 1.17", [hex: :hackney, repo: "hexpm", optional: false]}], "hexpm", "28089eaa98cf90c66265b6b5ad87c59a3729bea2e74e9d08f9b51eb9729b3c3a"}, "idna": {:hex, :idna, "6.1.1", "8a63070e9f7d0c62eb9d9fcb360a7de382448200fbbd1b106cc96d3d8099df8d", [:rebar3], [{:unicode_util_compat, "~>0.7.0", [hex: :unicode_util_compat, repo: "hexpm", optional: false]}], "hexpm", "92376eb7894412ed19ac475e4a86f7b413c1b9fbb5bd16dccd57934157944cea"}, "inet_cidr": {:hex, :inet_cidr, "1.0.4", "a05744ab7c221ca8e395c926c3919a821eb512e8f36547c062f62c4ca0cf3d6e", [:mix], [], "hexpm", "64a2d30189704ae41ca7dbdd587f5291db5d1dda1414e0774c29ffc81088c1bc"}, - "jason": {:hex, :jason, "1.2.2", "ba43e3f2709fd1aa1dce90aaabfd039d000469c05c56f0b8e31978e03fa39052", [:mix], [{:decimal, "~> 1.0 or ~> 2.0", [hex: :decimal, repo: "hexpm", optional: true]}], "hexpm", "18a228f5f0058ee183f29f9eae0805c6e59d61c3b006760668d8d18ff0d12179"}, + "jason": {:hex, :jason, "1.4.0", "e855647bc964a44e2f67df589ccf49105ae039d4179db7f6271dfd3843dc27e6", [:mix], [{:decimal, "~> 1.0 or ~> 2.0", [hex: :decimal, repo: "hexpm", optional: true]}], "hexpm", "79a3791085b2a0f743ca04cec0f7be26443738779d09302e01318f97bdb82121"}, "joken": {:hex, :joken, "2.3.0", "62a979c46f2c81dcb8ddc9150453b60d3757d1ac393c72bb20fc50a7b0827dc6", [:mix], [{:jose, "~> 1.10", [hex: :jose, repo: "hexpm", optional: false]}], "hexpm", "57b263a79c0ec5d536ac02d569c01e6b4de91bd1cb825625fe90eab4feb7bc1e"}, "jose": {:hex, :jose, "1.11.1", "59da64010c69aad6cde2f5b9248b896b84472e99bd18f246085b7b9fe435dcdb", [:mix, :rebar3], [], "hexpm", "078f6c9fb3cd2f4cfafc972c814261a7d1e8d2b3685c0a76eb87e158efff1ac5"}, "jumper": {:hex, :jumper, "1.0.1", "3c00542ef1a83532b72269fab9f0f0c82bf23a35e27d278bfd9ed0865cecabff", [:mix], [], "hexpm", "318c59078ac220e966d27af3646026db9b5a5e6703cb2aa3e26bcfaba65b7433"}, - "libring": {:hex, :libring, "1.4.0", "41246ba2f3fbc76b3971f6bce83119dfec1eee17e977a48d8a9cfaaf58c2a8d6", [:mix], [], "hexpm"}, - "linkify": {:hex, :linkify, "0.5.1", "6dc415cbc948b2f6ecec7cb226aab7ba9d3a1815bb501ae33e042334d707ecee", [:mix], [], "hexpm", "a3128c7e22fada4aa7214009501d8131e1fa3faf2f0a68b33dba379dc84ff944"}, - "majic": {:git, "https://git.pleroma.social/pleroma/elixir-libraries/majic.git", "289cda1b6d0d70ccb2ba508a2b0bd24638db2880", [ref: "289cda1b6d0d70ccb2ba508a2b0bd24638db2880"]}, + "linkify": {:hex, :linkify, "0.5.2", "fb66be139fdf1656ecb31f78a93592724d1b78d960a1b3598bd661013ea0e3c7", [:mix], [], "hexpm", "8d71ac690218d8952c90cbeb63cb8cc33738bb230d8a56d487d9447f2a5eab86"}, + "majic": {:hex, :majic, "1.0.0", "37e50648db5f5c2ff0c9fb46454d034d11596c03683807b9fb3850676ffdaab3", [:make, :mix], [{:elixir_make, "~> 0.6.1", [hex: :elixir_make, repo: "hexpm", optional: false]}, {:mime, "~> 1.0", [hex: :mime, repo: "hexpm", optional: false]}, {:nimble_pool, "~> 0.2", [hex: :nimble_pool, repo: "hexpm", optional: false]}, {:plug, "~> 1.0", [hex: :plug, repo: "hexpm", optional: true]}], "hexpm", "7905858f76650d49695f14ea55cd9aaaee0c6654fa391671d4cf305c275a0a9e"}, "makeup": {:hex, :makeup, "1.0.5", "d5a830bc42c9800ce07dd97fa94669dfb93d3bf5fcf6ea7a0c67b2e0e4a7f26c", [:mix], [{:nimble_parsec, "~> 0.5 or ~> 1.0", [hex: :nimble_parsec, repo: "hexpm", optional: false]}], "hexpm", "cfa158c02d3f5c0c665d0af11512fed3fba0144cf1aadee0f2ce17747fba2ca9"}, "makeup_elixir": {:hex, :makeup_elixir, "0.14.1", "4f0e96847c63c17841d42c08107405a005a2680eb9c7ccadfd757bd31dabccfb", [:mix], [{:makeup, "~> 1.0", [hex: :makeup, repo: "hexpm", optional: false]}], "hexpm", "f2438b1a80eaec9ede832b5c41cd4f373b38fd7aa33e3b22d9db79e640cbde11"}, "makeup_erlang": {:hex, :makeup_erlang, "0.1.1", "3fcb7f09eb9d98dc4d208f49cc955a34218fc41ff6b84df7c75b3e6e533cc65f", [:mix], [{:makeup, "~> 1.0", [hex: :makeup, repo: "hexpm", optional: false]}], "hexpm", "174d0809e98a4ef0b3309256cbf97101c6ec01c4ab0b23e926a9e17df2077cbb"}, @@ -76,55 +73,64 @@ "metrics": {:hex, :metrics, "1.0.1", "25f094dea2cda98213cecc3aeff09e940299d950904393b2a29d191c346a8486", [:rebar3], [], "hexpm", "69b09adddc4f74a40716ae54d140f93beb0fb8978d8636eaded0c31b6f099f16"}, "mime": {:hex, :mime, "1.6.0", "dabde576a497cef4bbdd60aceee8160e02a6c89250d6c0b29e56c0dfb00db3d2", [:mix], [], "hexpm", "31a1a8613f8321143dde1dafc36006a17d28d02bdfecb9e95a880fa7aabd19a7"}, "mimerl": {:hex, :mimerl, "1.2.0", "67e2d3f571088d5cfd3e550c383094b47159f3eee8ffa08e64106cdf5e981be3", [:rebar3], [], "hexpm", "f278585650aa581986264638ebf698f8bb19df297f66ad91b18910dfc6e19323"}, + "mint": {:hex, :mint, "1.4.2", "50330223429a6e1260b2ca5415f69b0ab086141bc76dc2fbf34d7c389a6675b2", [:mix], [{:castore, "~> 0.1.0", [hex: :castore, repo: "hexpm", optional: true]}, {:hpax, "~> 0.1.1", [hex: :hpax, repo: "hexpm", optional: false]}], "hexpm", "ce75a5bbcc59b4d7d8d70f8b2fc284b1751ffb35c7b6a6302b5192f8ab4ddd80"}, "mochiweb": {:hex, :mochiweb, "2.18.0", "eb55f1db3e6e960fac4e6db4e2db9ec3602cc9f30b86cd1481d56545c3145d2e", [:rebar3], [], "hexpm"}, "mock": {:hex, :mock, "0.3.7", "75b3bbf1466d7e486ea2052a73c6e062c6256fb429d6797999ab02fa32f29e03", [:mix], [{:meck, "~> 0.9.2", [hex: :meck, repo: "hexpm", optional: false]}], "hexpm", "4da49a4609e41fd99b7836945c26f373623ea968cfb6282742bcb94440cf7e5c"}, - "mogrify": {:hex, :mogrify, "0.7.4", "9b2496dde44b1ce12676f85d7dc531900939e6367bc537c7243a1b089435b32d", [:mix], [], "hexpm", "50d79e337fba6bc95bfbef918058c90f50b17eed9537771e61d4619488f099c3"}, + "mogrify": {:hex, :mogrify, "0.9.1", "a26f107c4987477769f272bd0f7e3ac4b7b75b11ba597fd001b877beffa9c068", [:mix], [], "hexpm", "134edf189337d2125c0948bf0c228fdeef975c594317452d536224069a5b7f05"}, "mox": {:hex, :mox, "1.0.0", "4b3c7005173f47ff30641ba044eb0fe67287743eec9bd9545e37f3002b0a9f8b", [:mix], [], "hexpm", "201b0a20b7abdaaab083e9cf97884950f8a30a1350a1da403b3145e213c6f4df"}, - "myhtmlex": {:git, "https://git.pleroma.social/pleroma/myhtmlex.git", "ad0097e2f61d4953bfef20fb6abddf23b87111e6", [ref: "ad0097e2f61d4953bfef20fb6abddf23b87111e6", submodules: true]}, + "nimble_options": {:hex, :nimble_options, "0.4.0", "c89babbab52221a24b8d1ff9e7d838be70f0d871be823165c94dd3418eea728f", [:mix], [], "hexpm", "e6701c1af326a11eea9634a3b1c62b475339ace9456c1a23ec3bc9a847bca02d"}, "nimble_parsec": {:hex, :nimble_parsec, "0.5.0", "90e2eca3d0266e5c53f8fbe0079694740b9c91b6747f2b7e3c5d21966bba8300", [:mix], [], "hexpm", "5c040b8469c1ff1b10093d3186e2e10dbe483cd73d79ec017993fb3985b8a9b3"}, - "nimble_pool": {:hex, :nimble_pool, "0.1.0", "ffa9d5be27eee2b00b0c634eb649aa27f97b39186fec3c493716c2a33e784ec6", [:mix], [], "hexpm", "343a1eaa620ddcf3430a83f39f2af499fe2370390d4f785cd475b4df5acaf3f9"}, + "nimble_pool": {:hex, :nimble_pool, "0.2.6", "91f2f4c357da4c4a0a548286c84a3a28004f68f05609b4534526871a22053cde", [:mix], [], "hexpm", "1c715055095d3f2705c4e236c18b618420a35490da94149ff8b580a2144f653f"}, "nodex": {:git, "https://git.pleroma.social/pleroma/nodex", "cb6730f943cfc6aad674c92161be23a8411f15d1", [ref: "cb6730f943cfc6aad674c92161be23a8411f15d1"]}, - "oban": {:hex, :oban, "2.3.4", "ec7509b9af2524d55f529cb7aee93d36131ae0bf0f37706f65d2fe707f4d9fd8", [:mix], [{:ecto_sql, ">= 3.4.3", [hex: :ecto_sql, repo: "hexpm", optional: false]}, {:jason, "~> 1.1", [hex: :jason, repo: "hexpm", optional: false]}, {:postgrex, "~> 0.14", [hex: :postgrex, repo: "hexpm", optional: false]}, {:telemetry, "~> 0.4", [hex: :telemetry, repo: "hexpm", optional: false]}], "hexpm", "c70ca0434758fd1805422ea4446af5e910ddc697c0c861549c8f0eb0cfbd2fdf"}, + "oban": {:hex, :oban, "2.13.4", "b4c4f48f4c89cc01036670eefa28aa9c03d09aadd402655475b936983d597006", [:mix], [{:ecto_sql, "~> 3.6", [hex: :ecto_sql, repo: "hexpm", optional: false]}, {:jason, "~> 1.1", [hex: :jason, repo: "hexpm", optional: false]}, {:postgrex, "~> 0.16", [hex: :postgrex, repo: "hexpm", optional: false]}, {:telemetry, "~> 0.4 or ~> 1.0", [hex: :telemetry, repo: "hexpm", optional: false]}], "hexpm", "a7d26f82b409e2d7928fbb75a17716e06ad3f783ebe9af260e3dd23abed7f124"}, "open_api_spex": {:hex, :open_api_spex, "3.10.0", "94e9521ad525b3fcf6dc77da7c45f87fdac24756d4de588cb0816b413e7c1844", [:mix], [{:jason, "~> 1.0", [hex: :jason, repo: "hexpm", optional: true]}, {:plug, "~> 1.7", [hex: :plug, repo: "hexpm", optional: false]}, {:poison, "~> 3.1", [hex: :poison, repo: "hexpm", optional: true]}], "hexpm", "2dbb2bde3d2b821f06936e8dfaf3284331186556291946d84eeba3750ac28765"}, - "p1_utils": {:hex, :p1_utils, "1.0.18", "3fe224de5b2e190d730a3c5da9d6e8540c96484cf4b4692921d1e28f0c32b01c", [:rebar3], [], "hexpm", "1fc8773a71a15553b179c986b22fbeead19b28fe486c332d4929700ffeb71f88"}, "parse_trans": {:hex, :parse_trans, "3.3.1", "16328ab840cc09919bd10dab29e431da3af9e9e7e7e6f0089dd5a2d2820011d8", [:rebar3], [], "hexpm", "07cd9577885f56362d414e8c4c4e6bdf10d43a8767abb92d24cbe8b24c54888b"}, "pbkdf2_elixir": {:hex, :pbkdf2_elixir, "1.2.1", "9cbe354b58121075bd20eb83076900a3832324b7dd171a6895fab57b6bb2752c", [:mix], [{:comeonin, "~> 5.3", [hex: :comeonin, repo: "hexpm", optional: false]}], "hexpm", "d3b40a4a4630f0b442f19eca891fcfeeee4c40871936fed2f68e1c4faa30481f"}, - "phoenix": {:hex, :phoenix, "1.5.9", "a6368d36cfd59d917b37c44386e01315bc89f7609a10a45a22f47c007edf2597", [:mix], [{:jason, "~> 1.0", [hex: :jason, repo: "hexpm", optional: true]}, {:phoenix_html, "~> 2.13 or ~> 3.0", [hex: :phoenix_html, repo: "hexpm", optional: true]}, {:phoenix_pubsub, "~> 2.0", [hex: :phoenix_pubsub, repo: "hexpm", optional: false]}, {:plug, "~> 1.10", [hex: :plug, repo: "hexpm", optional: false]}, {:plug_cowboy, "~> 1.0 or ~> 2.2", [hex: :plug_cowboy, repo: "hexpm", optional: true]}, {:plug_crypto, "~> 1.1.2 or ~> 1.2", [hex: :plug_crypto, repo: "hexpm", optional: false]}, {:telemetry, "~> 0.4", [hex: :telemetry, repo: "hexpm", optional: false]}], "hexpm", "7e4bce20a67c012f1fbb0af90e5da49fa7bf0d34e3a067795703b74aef75427d"}, - "phoenix_ecto": {:hex, :phoenix_ecto, "4.2.1", "13f124cf0a3ce0f1948cf24654c7b9f2347169ff75c1123f44674afee6af3b03", [:mix], [{:ecto, "~> 3.0", [hex: :ecto, repo: "hexpm", optional: false]}, {:phoenix_html, "~> 2.14.2 or ~> 2.15", [hex: :phoenix_html, repo: "hexpm", optional: true]}, {:plug, "~> 1.0", [hex: :plug, repo: "hexpm", optional: false]}], "hexpm", "478a1bae899cac0a6e02be1deec7e2944b7754c04e7d4107fc5a517f877743c0"}, - "phoenix_html": {:hex, :phoenix_html, "2.14.3", "51f720d0d543e4e157ff06b65de38e13303d5778a7919bcc696599e5934271b8", [:mix], [{:plug, "~> 1.5", [hex: :plug, repo: "hexpm", optional: false]}], "hexpm", "efd697a7fff35a13eeeb6b43db884705cba353a1a41d127d118fda5f90c8e80f"}, - "phoenix_pubsub": {:hex, :phoenix_pubsub, "2.0.0", "a1ae76717bb168cdeb10ec9d92d1480fec99e3080f011402c0a2d68d47395ffb", [:mix], [], "hexpm", "c52d948c4f261577b9c6fa804be91884b381a7f8f18450c5045975435350f771"}, - "phoenix_swoosh": {:hex, :phoenix_swoosh, "0.3.3", "039435dd975f7e55953525b88f1d596f26c6141412584c16f4db109708a8ee68", [:mix], [{:hackney, "~> 1.9", [hex: :hackney, repo: "hexpm", optional: false]}, {:phoenix, "~> 1.4", [hex: :phoenix, repo: "hexpm", optional: false]}, {:phoenix_html, "~> 2.14", [hex: :phoenix_html, repo: "hexpm", optional: false]}, {:swoosh, "~> 1.0", [hex: :swoosh, repo: "hexpm", optional: false]}], "hexpm", "4a540cea32e05356541737033d666ee7fea7700eb2101bf76783adbfe06601cd"}, + "phoenix": {:hex, :phoenix, "1.6.15", "0a1d96bbc10747fd83525370d691953cdb6f3ccbac61aa01b4acb012474b047d", [:mix], [{:castore, ">= 0.0.0", [hex: :castore, repo: "hexpm", optional: false]}, {:jason, "~> 1.0", [hex: :jason, repo: "hexpm", optional: true]}, {:phoenix_pubsub, "~> 2.0", [hex: :phoenix_pubsub, repo: "hexpm", optional: false]}, {:phoenix_view, "~> 1.0 or ~> 2.0", [hex: :phoenix_view, repo: "hexpm", optional: false]}, {:plug, "~> 1.10", [hex: :plug, repo: "hexpm", optional: false]}, {:plug_cowboy, "~> 2.2", [hex: :plug_cowboy, repo: "hexpm", optional: true]}, {:plug_crypto, "~> 1.2", [hex: :plug_crypto, repo: "hexpm", optional: false]}, {:telemetry, "~> 0.4 or ~> 1.0", [hex: :telemetry, repo: "hexpm", optional: false]}], "hexpm", "d70ab9fbf6b394755ea88b644d34d79d8b146e490973151f248cacd122d20672"}, + "phoenix_ecto": {:hex, :phoenix_ecto, "4.4.0", "0672ed4e4808b3fbed494dded89958e22fb882de47a97634c0b13e7b0b5f7720", [:mix], [{:ecto, "~> 3.3", [hex: :ecto, repo: "hexpm", optional: false]}, {:phoenix_html, "~> 2.14.2 or ~> 3.0", [hex: :phoenix_html, repo: "hexpm", optional: true]}, {:plug, "~> 1.9", [hex: :plug, repo: "hexpm", optional: false]}], "hexpm", "09864e558ed31ee00bd48fcc1d4fc58ae9678c9e81649075431e69dbabb43cc1"}, + "phoenix_html": {:hex, :phoenix_html, "3.2.0", "1c1219d4b6cb22ac72f12f73dc5fad6c7563104d083f711c3fcd8551a1f4ae11", [:mix], [{:plug, "~> 1.5", [hex: :plug, repo: "hexpm", optional: true]}], "hexpm", "36ec97ba56d25c0136ef1992c37957e4246b649d620958a1f9fa86165f8bc54f"}, + "phoenix_live_dashboard": {:hex, :phoenix_live_dashboard, "0.6.2", "0769470265eb13af01b5001b29cb935f4710d6adaa1ffc18417a570a337a2f0f", [:mix], [{:ecto, "~> 3.6.2 or ~> 3.7", [hex: :ecto, repo: "hexpm", optional: true]}, {:ecto_mysql_extras, "~> 0.3", [hex: :ecto_mysql_extras, repo: "hexpm", optional: true]}, {:ecto_psql_extras, "~> 0.7", [hex: :ecto_psql_extras, repo: "hexpm", optional: true]}, {:mime, "~> 1.6 or ~> 2.0", [hex: :mime, repo: "hexpm", optional: false]}, {:phoenix_live_view, "~> 0.17.1", [hex: :phoenix_live_view, repo: "hexpm", optional: false]}, {:telemetry_metrics, "~> 0.6.0", [hex: :telemetry_metrics, repo: "hexpm", optional: false]}], "hexpm", "5bc6c6b38a2ca8b5020b442322fcee6afd5e641637a0b1fb059d4bd89bc58e7b"}, + "phoenix_live_reload": {:hex, :phoenix_live_reload, "1.3.3", "3a53772a6118d5679bf50fc1670505a290e32a1d195df9e069d8c53ab040c054", [:mix], [{:file_system, "~> 0.2.1 or ~> 0.3", [hex: :file_system, repo: "hexpm", optional: false]}, {:phoenix, "~> 1.4", [hex: :phoenix, repo: "hexpm", optional: false]}], "hexpm", "766796676e5f558dbae5d1bdb066849673e956005e3730dfd5affd7a6da4abac"}, + "phoenix_live_view": {:hex, :phoenix_live_view, "0.17.5", "63f52a6f9f6983f04e424586ff897c016ecc5e4f8d1e2c22c2887af1c57215d8", [:mix], [{:jason, "~> 1.0", [hex: :jason, repo: "hexpm", optional: true]}, {:phoenix, "~> 1.5.9 or ~> 1.6.0", [hex: :phoenix, repo: "hexpm", optional: false]}, {:phoenix_html, "~> 3.1", [hex: :phoenix_html, repo: "hexpm", optional: false]}, {:telemetry, "~> 0.4.2 or ~> 1.0", [hex: :telemetry, repo: "hexpm", optional: false]}], "hexpm", "c5586e6a3d4df71b8214c769d4f5eb8ece2b4001711a7ca0f97323c36958b0e3"}, + "phoenix_pubsub": {:hex, :phoenix_pubsub, "2.1.1", "ba04e489ef03763bf28a17eb2eaddc2c20c6d217e2150a61e3298b0f4c2012b5", [:mix], [], "hexpm", "81367c6d1eea5878ad726be80808eb5a787a23dee699f96e72b1109c57cdd8d9"}, + "phoenix_swoosh": {:hex, :phoenix_swoosh, "1.1.0", "f8e4780705c9f254cc853f7a40e25f7198ba4d91102bcfad2226669b69766b35", [:mix], [{:finch, "~> 0.8", [hex: :finch, repo: "hexpm", optional: true]}, {:hackney, "~> 1.10", [hex: :hackney, repo: "hexpm", optional: true]}, {:phoenix, "~> 1.6", [hex: :phoenix, repo: "hexpm", optional: true]}, {:phoenix_html, "~> 3.0", [hex: :phoenix_html, repo: "hexpm", optional: true]}, {:phoenix_view, "~> 1.0 or ~> 2.0", [hex: :phoenix_view, repo: "hexpm", optional: false]}, {:swoosh, "~> 1.5", [hex: :swoosh, repo: "hexpm", optional: false]}], "hexpm", "aa82f10afd9a4b6080fdf3274dbb9432b25b210d42b4b6b55308f6e59cd87c3d"}, + "phoenix_template": {:hex, :phoenix_template, "1.0.0", "c57bc5044f25f007dc86ab21895688c098a9f846a8dda6bc40e2d0ddc146e38f", [:mix], [{:phoenix_html, "~> 2.14.2 or ~> 3.0", [hex: :phoenix_html, repo: "hexpm", optional: true]}], "hexpm", "1b066f99a26fd22064c12b2600a9a6e56700f591bf7b20b418054ea38b4d4357"}, + "phoenix_view": {:hex, :phoenix_view, "2.0.1", "a653e3d9d944aace0a064e4a13ad473ffa68f7bc4ca42dbf83cc1d464f1fb295", [:mix], [{:phoenix_html, "~> 2.14.2 or ~> 3.0", [hex: :phoenix_html, repo: "hexpm", optional: true]}, {:phoenix_template, "~> 1.0", [hex: :phoenix_template, repo: "hexpm", optional: false]}], "hexpm", "6c358e2cefc5f341c728914b867c556bbfd239fed9e881bac257d70cb2b8a6f6"}, "plug": {:hex, :plug, "1.10.4", "41eba7d1a2d671faaf531fa867645bd5a3dce0957d8e2a3f398ccff7d2ef017f", [:mix], [{:mime, "~> 1.0", [hex: :mime, repo: "hexpm", optional: false]}, {:plug_crypto, "~> 1.1.1 or ~> 1.2", [hex: :plug_crypto, repo: "hexpm", optional: false]}, {:telemetry, "~> 0.4", [hex: :telemetry, repo: "hexpm", optional: false]}], "hexpm", "ad1e233fe73d2eec56616568d260777b67f53148a999dc2d048f4eb9778fe4a0"}, - "plug_cowboy": {:hex, :plug_cowboy, "2.5.0", "51c998f788c4e68fc9f947a5eba8c215fbb1d63a520f7604134cab0270ea6513", [:mix], [{:cowboy, "~> 2.7", [hex: :cowboy, repo: "hexpm", optional: false]}, {:cowboy_telemetry, "~> 0.3", [hex: :cowboy_telemetry, repo: "hexpm", optional: false]}, {:plug, "~> 1.7", [hex: :plug, repo: "hexpm", optional: false]}, {:telemetry, "~> 0.4", [hex: :telemetry, repo: "hexpm", optional: false]}], "hexpm", "5b2c8925a5e2587446f33810a58c01e66b3c345652eeec809b76ba007acde71a"}, - "plug_crypto": {:hex, :plug_crypto, "1.2.2", "05654514ac717ff3a1843204b424477d9e60c143406aa94daf2274fdd280794d", [:mix], [], "hexpm", "87631c7ad914a5a445f0a3809f99b079113ae4ed4b867348dd9eec288cecb6db"}, + "plug_cowboy": {:hex, :plug_cowboy, "2.6.0", "d1cf12ff96a1ca4f52207c5271a6c351a4733f413803488d75b70ccf44aebec2", [:mix], [{:cowboy, "~> 2.7", [hex: :cowboy, repo: "hexpm", optional: false]}, {:cowboy_telemetry, "~> 0.3", [hex: :cowboy_telemetry, repo: "hexpm", optional: false]}, {:plug, "~> 1.14", [hex: :plug, repo: "hexpm", optional: false]}], "hexpm", "073cf20b753ce6682ed72905cd62a2d4bd9bad1bf9f7feb02a1b8e525bd94fa6"}, + "plug_crypto": {:hex, :plug_crypto, "1.2.3", "8f77d13aeb32bfd9e654cb68f0af517b371fb34c56c9f2b58fe3df1235c1251a", [:mix], [], "hexpm", "b5672099c6ad5c202c45f5a403f21a3411247f164e4a8fab056e5cd8a290f4a2"}, "plug_static_index_html": {:hex, :plug_static_index_html, "1.0.0", "840123d4d3975585133485ea86af73cb2600afd7f2a976f9f5fd8b3808e636a0", [:mix], [{:plug, "~> 1.0", [hex: :plug, repo: "hexpm", optional: false]}], "hexpm", "79fd4fcf34d110605c26560cbae8f23c603ec4158c08298bd4360fdea90bb5cf"}, "poison": {:hex, :poison, "3.1.0", "d9eb636610e096f86f25d9a46f35a9facac35609a7591b3be3326e99a0484665", [:mix], [], "hexpm", "fec8660eb7733ee4117b85f55799fd3833eb769a6df71ccf8903e8dc5447cfce"}, "poolboy": {:hex, :poolboy, "1.5.2", "392b007a1693a64540cead79830443abf5762f5d30cf50bc95cb2c1aaafa006b", [:rebar3], [], "hexpm", "dad79704ce5440f3d5a3681c8590b9dc25d1a561e8f5a9c995281012860901e3"}, - "postgrex": {:hex, :postgrex, "0.15.9", "46f8fe6f25711aeb861c4d0ae09780facfdf3adbd2fb5594ead61504dd489bda", [:mix], [{:connection, "~> 1.0", [hex: :connection, repo: "hexpm", optional: false]}, {:db_connection, "~> 2.1", [hex: :db_connection, repo: "hexpm", optional: false]}, {:decimal, "~> 1.5 or ~> 2.0", [hex: :decimal, repo: "hexpm", optional: false]}, {:jason, "~> 1.0", [hex: :jason, repo: "hexpm", optional: true]}], "hexpm", "610719103e4cb2223d4ab78f9f0f3e720320eeca6011415ab4137ddef730adee"}, + "postgrex": {:hex, :postgrex, "0.16.5", "fcc4035cc90e23933c5d69a9cd686e329469446ef7abba2cf70f08e2c4b69810", [:mix], [{:connection, "~> 1.1", [hex: :connection, repo: "hexpm", optional: false]}, {:db_connection, "~> 2.1", [hex: :db_connection, repo: "hexpm", optional: false]}, {:decimal, "~> 1.5 or ~> 2.0", [hex: :decimal, repo: "hexpm", optional: false]}, {:jason, "~> 1.0", [hex: :jason, repo: "hexpm", optional: true]}, {:table, "~> 0.1.0", [hex: :table, repo: "hexpm", optional: true]}], "hexpm", "edead639dc6e882618c01d8fc891214c481ab9a3788dfe38dd5e37fd1d5fb2e8"}, "pot": {:hex, :pot, "1.0.1", "81b511b1fa7c3123171c265cb7065a1528cebd7277b0cbc94257c50a8b2e4c17", [:rebar3], [], "hexpm", "ed87f5976531d91528452faa1138a5328db7f9f20d8feaae15f5051f79bcfb6d"}, + "prom_ex": {:hex, :prom_ex, "1.7.1", "39331ee3fe6f9a8587d8208bf9274a253bb80281700e127dd18786cda5e08c37", [:mix], [{:absinthe, ">= 1.6.0", [hex: :absinthe, repo: "hexpm", optional: true]}, {:broadway, ">= 1.0.2", [hex: :broadway, repo: "hexpm", optional: true]}, {:ecto, ">= 3.5.0", [hex: :ecto, repo: "hexpm", optional: true]}, {:finch, "~> 0.10.2", [hex: :finch, repo: "hexpm", optional: false]}, {:jason, "~> 1.2", [hex: :jason, repo: "hexpm", optional: false]}, {:oban, ">= 2.4.0", [hex: :oban, repo: "hexpm", optional: true]}, {:phoenix, ">= 1.5.0", [hex: :phoenix, repo: "hexpm", optional: true]}, {:phoenix_live_view, ">= 0.14.0", [hex: :phoenix_live_view, repo: "hexpm", optional: true]}, {:plug, ">= 1.12.1", [hex: :plug, repo: "hexpm", optional: true]}, {:plug_cowboy, "~> 2.5.1", [hex: :plug_cowboy, repo: "hexpm", optional: false]}, {:telemetry, "~> 1.0.0", [hex: :telemetry, repo: "hexpm", optional: false]}, {:telemetry_metrics, "~> 0.6.1", [hex: :telemetry_metrics, repo: "hexpm", optional: false]}, {:telemetry_metrics_prometheus_core, "~> 1.0.2", [hex: :telemetry_metrics_prometheus_core, repo: "hexpm", optional: false]}, {:telemetry_poller, "~> 1.0.0", [hex: :telemetry_poller, repo: "hexpm", optional: false]}], "hexpm", "4c978872b88a929833925a0f4d0561824804c671fdd04581e765509ed0a6ed08"}, "prometheus": {:hex, :prometheus, "4.8.0", "1ce1e1002b173c336d61f186b56263346536e76814edd9a142e12aeb2d6c1ad2", [:mix, :rebar3], [], "hexpm", "0fc2e17103073edb3758a46a5d44b006191bf25b73cbaa2b779109de396afcb5"}, "prometheus_ecto": {:hex, :prometheus_ecto, "1.4.3", "3dd4da1812b8e0dbee81ea58bb3b62ed7588f2eae0c9e97e434c46807ff82311", [:mix], [{:ecto, "~> 2.0 or ~> 3.0", [hex: :ecto, repo: "hexpm", optional: false]}, {:prometheus_ex, "~> 1.1 or ~> 2.0 or ~> 3.0", [hex: :prometheus_ex, repo: "hexpm", optional: false]}], "hexpm", "8d66289f77f913b37eda81fd287340c17e61a447549deb28efc254532b2bed82"}, "prometheus_ex": {:git, "https://github.com/lanodan/prometheus.ex.git", "31f7fbe4b71b79ba27efc2a5085746c4011ceb8f", [branch: "fix/elixir-1.14"]}, "prometheus_phoenix": {:hex, :prometheus_phoenix, "1.3.0", "c4b527e0b3a9ef1af26bdcfbfad3998f37795b9185d475ca610fe4388fdd3bb5", [:mix], [{:phoenix, "~> 1.4", [hex: :phoenix, repo: "hexpm", optional: false]}, {:prometheus_ex, "~> 1.3 or ~> 2.0 or ~> 3.0", [hex: :prometheus_ex, repo: "hexpm", optional: false]}], "hexpm", "c4d1404ac4e9d3d963da601db2a7d8ea31194f0017057fabf0cfb9bf5a6c8c75"}, "prometheus_phx": {:git, "https://git.pleroma.social/pleroma/elixir-libraries/prometheus-phx.git", "9cd8f248c9381ffedc799905050abce194a97514", [branch: "no-logging"]}, "prometheus_plugs": {:hex, :prometheus_plugs, "1.1.5", "25933d48f8af3a5941dd7b621c889749894d8a1082a6ff7c67cc99dec26377c5", [:mix], [{:accept, "~> 0.1", [hex: :accept, repo: "hexpm", optional: false]}, {:plug, "~> 1.0", [hex: :plug, repo: "hexpm", optional: false]}, {:prometheus_ex, "~> 1.1 or ~> 2.0 or ~> 3.0", [hex: :prometheus_ex, repo: "hexpm", optional: false]}, {:prometheus_process_collector, "~> 1.1", [hex: :prometheus_process_collector, repo: "hexpm", optional: true]}], "hexpm", "0273a6483ccb936d79ca19b0ab629aef0dba958697c94782bb728b920dfc6a79"}, - "quack": {:hex, :quack, "0.1.1", "cca7b4da1a233757fdb44b3334fce80c94785b3ad5a602053b7a002b5a8967bf", [:mix], [{:poison, ">= 1.0.0", [hex: :poison, repo: "hexpm", optional: false]}, {:tesla, "~> 1.2.0", [hex: :tesla, repo: "hexpm", optional: false]}], "hexpm", "d736bfa7444112eb840027bb887832a0e403a4a3437f48028c3b29a2dbbd2543"}, "ranch": {:hex, :ranch, "1.8.0", "8c7a100a139fd57f17327b6413e4167ac559fbc04ca7448e9be9057311597a1d", [:make, :rebar3], [], "hexpm", "49fbcfd3682fab1f5d109351b61257676da1a2fdbe295904176d5e521a2ddfe5"}, "recon": {:hex, :recon, "2.5.1", "430ffa60685ac1efdfb1fe4c97b8767c92d0d92e6e7c3e8621559ba77598678a", [:mix, :rebar3], [], "hexpm", "5721c6b6d50122d8f68cccac712caa1231f97894bab779eff5ff0f886cb44648"}, "remote_ip": {:git, "https://git.pleroma.social/pleroma/remote_ip.git", "b647d0deecaa3acb140854fe4bda5b7e1dc6d1c8", [ref: "b647d0deecaa3acb140854fe4bda5b7e1dc6d1c8"]}, "sleeplocks": {:hex, :sleeplocks, "1.1.1", "3d462a0639a6ef36cc75d6038b7393ae537ab394641beb59830a1b8271faeed3", [:rebar3], [], "hexpm", "84ee37aeff4d0d92b290fff986d6a95ac5eedf9b383fadfd1d88e9b84a1c02e1"}, "ssl_verify_fun": {:hex, :ssl_verify_fun, "1.1.6", "cf344f5692c82d2cd7554f5ec8fd961548d4fd09e7d22f5b62482e5aeaebd4b0", [:make, :mix, :rebar3], [], "hexpm", "bdb0d2471f453c88ff3908e7686f86f9be327d065cc1ec16fa4540197ea04680"}, "sweet_xml": {:hex, :sweet_xml, "0.7.2", "4729f997286811fabdd8288f8474e0840a76573051062f066c4b597e76f14f9f", [:mix], [], "hexpm", "6894e68a120f454534d99045ea3325f7740ea71260bc315f82e29731d570a6e8"}, - "swoosh": {:hex, :swoosh, "1.3.11", "34f79c57f19892b43bd2168de9ff5de478a721a26328ef59567aad4243e7a77b", [:mix], [{:cowboy, "~> 1.1 or ~> 2.4", [hex: :cowboy, repo: "hexpm", optional: true]}, {:finch, "~> 0.6", [hex: :finch, repo: "hexpm", optional: true]}, {:gen_smtp, "~> 0.13 or ~> 1.0", [hex: :gen_smtp, repo: "hexpm", optional: true]}, {:hackney, "~> 1.9", [hex: :hackney, repo: "hexpm", optional: true]}, {:jason, "~> 1.0", [hex: :jason, repo: "hexpm", optional: false]}, {:mail, "~> 0.2", [hex: :mail, repo: "hexpm", optional: true]}, {:mime, "~> 1.1", [hex: :mime, repo: "hexpm", optional: false]}, {:plug_cowboy, ">= 1.0.0", [hex: :plug_cowboy, repo: "hexpm", optional: true]}], "hexpm", "f1e2a048db454f9982b9cf840f75e7399dd48be31ecc2a7dc10012a803b913af"}, + "swoosh": {:hex, :swoosh, "1.8.2", "af9a22ab2c0d20b266f61acca737fa11a121902de9466a39e91bacdce012101c", [:mix], [{:cowboy, "~> 1.1 or ~> 2.4", [hex: :cowboy, repo: "hexpm", optional: true]}, {:ex_aws, "~> 2.1", [hex: :ex_aws, repo: "hexpm", optional: true]}, {:finch, "~> 0.6", [hex: :finch, repo: "hexpm", optional: true]}, {:gen_smtp, "~> 0.13 or ~> 1.0", [hex: :gen_smtp, repo: "hexpm", optional: true]}, {:hackney, "~> 1.9", [hex: :hackney, repo: "hexpm", optional: true]}, {:jason, "~> 1.0", [hex: :jason, repo: "hexpm", optional: false]}, {:mail, "~> 0.2", [hex: :mail, repo: "hexpm", optional: true]}, {:mime, "~> 1.1 or ~> 2.0", [hex: :mime, repo: "hexpm", optional: false]}, {:plug_cowboy, ">= 1.0.0", [hex: :plug_cowboy, repo: "hexpm", optional: true]}, {:telemetry, "~> 0.4.2 or ~> 1.0", [hex: :telemetry, repo: "hexpm", optional: false]}], "hexpm", "d058ba750eafadb6c09a84a352c14c5d1eeeda6e84945fcc95785b7f3067b7db"}, "syslog": {:hex, :syslog, "1.1.0", "6419a232bea84f07b56dc575225007ffe34d9fdc91abe6f1b2f254fd71d8efc2", [:rebar3], [], "hexpm", "4c6a41373c7e20587be33ef841d3de6f3beba08519809329ecc4d27b15b659e1"}, - "telemetry": {:hex, :telemetry, "0.4.3", "a06428a514bdbc63293cd9a6263aad00ddeb66f608163bdec7c8995784080818", [:rebar3], [], "hexpm", "eb72b8365ffda5bed68a620d1da88525e326cb82a75ee61354fc24b844768041"}, - "tesla": {:hex, :tesla, "1.4.1", "ff855f1cac121e0d16281b49e8f066c4a0d89965f98864515713878cca849ac8", [:mix], [{:castore, "~> 0.1", [hex: :castore, repo: "hexpm", optional: true]}, {:exjsx, ">= 3.0.0", [hex: :exjsx, repo: "hexpm", optional: true]}, {:finch, "~> 0.3", [hex: :finch, repo: "hexpm", optional: true]}, {:fuse, "~> 2.4", [hex: :fuse, repo: "hexpm", optional: true]}, {:gun, "~> 1.3", [hex: :gun, repo: "hexpm", optional: true]}, {:hackney, "~> 1.6", [hex: :hackney, repo: "hexpm", optional: true]}, {:ibrowse, "~> 4.4.0", [hex: :ibrowse, repo: "hexpm", optional: true]}, {:jason, ">= 1.0.0", [hex: :jason, repo: "hexpm", optional: true]}, {:mime, "~> 1.0", [hex: :mime, repo: "hexpm", optional: false]}, {:mint, "~> 1.0", [hex: :mint, repo: "hexpm", optional: true]}, {:poison, ">= 1.0.0", [hex: :poison, repo: "hexpm", optional: true]}, {:telemetry, "~> 0.4", [hex: :telemetry, repo: "hexpm", optional: true]}], "hexpm", "95f5de35922c8c4b3945bee7406f66eb680b0955232f78f5fb7e853aa1ce201a"}, + "table_rex": {:hex, :table_rex, "3.1.1", "0c67164d1714b5e806d5067c1e96ff098ba7ae79413cc075973e17c38a587caa", [:mix], [], "hexpm", "678a23aba4d670419c23c17790f9dcd635a4a89022040df7d5d772cb21012490"}, + "telemetry": {:hex, :telemetry, "1.0.0", "0f453a102cdf13d506b7c0ab158324c337c41f1cc7548f0bc0e130bbf0ae9452", [:rebar3], [], "hexpm", "73bc09fa59b4a0284efb4624335583c528e07ec9ae76aca96ea0673850aec57a"}, + "telemetry_metrics": {:hex, :telemetry_metrics, "0.6.1", "315d9163a1d4660aedc3fee73f33f1d355dcc76c5c3ab3d59e76e3edf80eef1f", [:mix], [{:telemetry, "~> 0.4 or ~> 1.0", [hex: :telemetry, repo: "hexpm", optional: false]}], "hexpm", "7be9e0871c41732c233be71e4be11b96e56177bf15dde64a8ac9ce72ac9834c6"}, + "telemetry_metrics_prometheus_core": {:hex, :telemetry_metrics_prometheus_core, "1.0.2", "c98b1c580de637bfeac00db41b9fb91fb4c3548ee3d512a8ed7299172312eaf3", [:mix], [{:telemetry, "~> 0.4 or ~> 1.0.0", [hex: :telemetry, repo: "hexpm", optional: false]}, {:telemetry_metrics, "~> 0.6", [hex: :telemetry_metrics, repo: "hexpm", optional: false]}], "hexpm", "48351a0d56f80e38c997b44232b1043e0a081670d16766eee920e6254175b730"}, + "telemetry_poller": {:hex, :telemetry_poller, "1.0.0", "db91bb424e07f2bb6e73926fcafbfcbcb295f0193e0a00e825e589a0a47e8453", [:rebar3], [{:telemetry, "~> 1.0", [hex: :telemetry, repo: "hexpm", optional: false]}], "hexpm", "b3a24eafd66c3f42da30fc3ca7dda1e9d546c12250a2d60d7b81d264fbec4f6e"}, + "tesla": {:hex, :tesla, "1.4.4", "bb89aa0c9745190930366f6a2ac612cdf2d0e4d7fff449861baa7875afd797b2", [:mix], [{:castore, "~> 0.1", [hex: :castore, repo: "hexpm", optional: true]}, {:exjsx, ">= 3.0.0", [hex: :exjsx, repo: "hexpm", optional: true]}, {:finch, "~> 0.3", [hex: :finch, repo: "hexpm", optional: true]}, {:fuse, "~> 2.4", [hex: :fuse, repo: "hexpm", optional: true]}, {:gun, "~> 1.3", [hex: :gun, repo: "hexpm", optional: true]}, {:hackney, "~> 1.6", [hex: :hackney, repo: "hexpm", optional: true]}, {:ibrowse, "4.4.0", [hex: :ibrowse, repo: "hexpm", optional: true]}, {:jason, ">= 1.0.0", [hex: :jason, repo: "hexpm", optional: true]}, {:mime, "~> 1.0 or ~> 2.0", [hex: :mime, repo: "hexpm", optional: false]}, {:mint, "~> 1.0", [hex: :mint, repo: "hexpm", optional: true]}, {:poison, ">= 1.0.0", [hex: :poison, repo: "hexpm", optional: true]}, {:telemetry, "~> 0.4 or ~> 1.0", [hex: :telemetry, repo: "hexpm", optional: true]}], "hexpm", "d5503a49f9dec1b287567ea8712d085947e247cb11b06bc54adb05bfde466457"}, "timex": {:hex, :timex, "3.7.5", "3eca56e23bfa4e0848f0b0a29a92fa20af251a975116c6d504966e8a90516dfd", [:mix], [{:combine, "~> 0.10", [hex: :combine, repo: "hexpm", optional: false]}, {:gettext, "~> 0.10", [hex: :gettext, repo: "hexpm", optional: false]}, {:tzdata, "~> 1.0", [hex: :tzdata, repo: "hexpm", optional: false]}], "hexpm", "a15608dca680f2ef663d71c95842c67f0af08a0f3b1d00e17bbd22872e2874e4"}, "trailing_format_plug": {:hex, :trailing_format_plug, "0.0.7", "64b877f912cf7273bed03379936df39894149e35137ac9509117e59866e10e45", [:mix], [{:plug, "> 0.12.0", [hex: :plug, repo: "hexpm", optional: false]}], "hexpm", "bd4fde4c15f3e993a999e019d64347489b91b7a9096af68b2bdadd192afa693f"}, "tzdata": {:hex, :tzdata, "1.0.5", "69f1ee029a49afa04ad77801febaf69385f3d3e3d1e4b56b9469025677b89a28", [:mix], [{:hackney, "~> 1.0", [hex: :hackney, repo: "hexpm", optional: false]}], "hexpm", "55519aa2a99e5d2095c1e61cc74c9be69688f8ab75c27da724eb8279ff402a5a"}, "ueberauth": {:hex, :ueberauth, "0.6.3", "d42ace28b870e8072cf30e32e385579c57b9cc96ec74fa1f30f30da9c14f3cc0", [:mix], [{:plug, "~> 1.5", [hex: :plug, repo: "hexpm", optional: false]}], "hexpm", "afc293d8a1140d6591b53e3eaf415ca92842cb1d32fad3c450c6f045f7f91b60"}, "unicode_util_compat": {:hex, :unicode_util_compat, "0.7.0", "bc84380c9ab48177092f43ac89e4dfa2c6d62b40b8bd132b1059ecc7232f9a78", [:rebar3], [], "hexpm", "25eee6d67df61960cf6a794239566599b09e17e668d3700247bc498638152521"}, "unsafe": {:hex, :unsafe, "1.0.1", "a27e1874f72ee49312e0a9ec2e0b27924214a05e3ddac90e91727bc76f8613d8", [:mix], [], "hexpm", "6c7729a2d214806450d29766abc2afaa7a2cbecf415be64f36a6691afebb50e5"}, - "web_push_encryption": {:git, "https://github.com/lanodan/elixir-web-push-encryption.git", "026a043037a89db4da8f07560bc8f9c68bcf0cc0", [branch: "bugfix/otp-24"]}, + "web_push_encryption": {:hex, :web_push_encryption, "0.3.1", "76d0e7375142dfee67391e7690e89f92578889cbcf2879377900b5620ee4708d", [:mix], [{:httpoison, "~> 1.0", [hex: :httpoison, repo: "hexpm", optional: false]}, {:jose, "~> 1.11.1", [hex: :jose, repo: "hexpm", optional: false]}], "hexpm", "4f82b2e57622fb9337559058e8797cb0df7e7c9790793bdc4e40bc895f70e2a2"}, "websockex": {:hex, :websockex, "0.4.3", "92b7905769c79c6480c02daacaca2ddd49de936d912976a4d3c923723b647bf0", [:mix], [], "hexpm", "95f2e7072b85a3a4cc385602d42115b73ce0b74a9121d0d6dbbf557645ac53e4"}, } diff --git a/priv/gettext/config_descriptions.pot b/priv/gettext/config_descriptions.pot new file mode 100644 index 000000000..1c3a98d3e --- /dev/null +++ b/priv/gettext/config_descriptions.pot @@ -0,0 +1,6023 @@ +## This file is a PO Template file. +## +## "msgid"s here are often extracted from source code. +## Add new translations manually only if they're dynamic +## translations that can't be statically extracted. +## +## Run "mix gettext.extract" to bring this file up to +## date. Leave "msgstr"s empty as changing them here has no +## effect: edit them in PO (.po) files instead. +msgid "" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :esshd" +msgid "Before enabling this you must add :esshd to mix.exs as one of the extra_applications and generate host keys in your priv dir with ssh-keygen -m PEM -N \"\" -b 2048 -t rsa -f ssh_host_rsa_key" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :logger" +msgid "Logger-related settings" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :mime" +msgid "Mime Types settings" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma" +msgid "Allows setting a token that can be used to authenticate requests with admin privileges without a normal user account token. Append the `admin_token` parameter to requests to utilize it. (Please reconsider using HTTP Basic Auth or OAuth-based authentication if possible)" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma" +msgid "Authenticator" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :cors_plug" +msgid "CORS plug config" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :esshd" +msgid "ESSHD" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :logger" +msgid "Logger" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :mime" +msgid "Mime Types" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma" +msgid "Pleroma Admin Token" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma" +msgid "Pleroma Authenticator" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :logger-:console" +msgid "Console logger settings" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :logger-:ex_syslogger" +msgid "ExSyslogger-related settings" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-:activitypub" +msgid "ActivityPub-related settings" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-:assets" +msgid "This section configures assets to be used with various frontends. Currently the only option relates to mascots on the mastodon frontend" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-:auth" +msgid "Authentication / authorization settings" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-:connections_pool" +msgid "Advanced settings for `Gun` connections pool" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-:email_notifications" +msgid "Email notifications settings" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-:features" +msgid "Customizable features" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-:feed" +msgid "Configure feed rendering" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-:frontend_configurations" +msgid "This form can be used to configure a keyword list that keeps the configuration data for any kind of frontend. By default, settings for pleroma_fe are configured. If you want to add your own configuration your settings all fields must be complete." +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-:frontends" +msgid "Installed frontends management" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-:gopher" +msgid "Gopher settings" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-:hackney_pools" +msgid "Advanced settings for `Hackney` connections pools" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-:http" +msgid "HTTP settings" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-:http_security" +msgid "HTTP security settings" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-:instance" +msgid "Instance-related settings" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-:instances_favicons" +msgid "Control favicons for instances" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-:ldap" +msgid "Use LDAP for user authentication. When a user logs in to the Pleroma instance, the name and password will be verified by trying to authenticate (bind) to a LDAP server. If a user exists in the LDAP directory but there is no account with the same name yet on the Pleroma instance then a new Pleroma account will be created with the same name as the LDAP user name." +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-:majic_pool" +msgid "Majic/libmagic configuration" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-:manifest" +msgid "This section describe PWA manifest instance-specific values. Currently this option relate only for MastoFE." +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-:media_preview_proxy" +msgid "Media preview proxy" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-:media_proxy" +msgid "Media proxy" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-:modules" +msgid "Custom Runtime Modules" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-:mrf" +msgid "General MRF settings" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-:mrf_activity_expiration" +msgid "Adds automatic expiration to all local activities" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-:mrf_follow_bot" +msgid "Automatically follows newly discovered accounts." +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-:mrf_hashtag" +msgid "Reject, TWKN-remove or Set-Sensitive messsages with specific hashtags (without the leading #)\n\nNote: This MRF Policy is always enabled, if you want to disable it you have to set empty lists.\n" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-:mrf_hellthread" +msgid "Block messages with excessive user mentions" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-:mrf_keyword" +msgid "Reject or Word-Replace messages matching a keyword or [Regex](https://hexdocs.pm/elixir/Regex.html)." +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-:mrf_mention" +msgid "Block messages which mention a specific user" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-:mrf_normalize_markup" +msgid "MRF NormalizeMarkup settings. Scrub configured hypertext markup." +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-:mrf_object_age" +msgid "Rejects or delists posts based on their timestamp deviance from your server's clock." +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-:mrf_rejectnonpublic" +msgid "RejectNonPublic drops posts with non-public visibility settings." +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-:mrf_simple" +msgid "Simple ingress policies" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-:mrf_steal_emoji" +msgid "Steals emojis from selected instances when it sees them." +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-:mrf_subchain" +msgid "This policy processes messages through an alternate pipeline when a given message matches certain criteria. All criteria are configured as a map of regular expressions to lists of policy modules." +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-:mrf_vocabulary" +msgid "Filter messages which belong to certain activity vocabularies" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-:oauth2" +msgid "Configure OAuth 2 provider capabilities" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-:pools" +msgid "Advanced settings for `Gun` workers pools" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-:populate_hashtags_table" +msgid "`populate_hashtags_table` background migration settings" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-:rate_limit" +msgid "Rate limit settings. This is an advanced feature enabled only for :authentication by default." +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-:restrict_unauthenticated" +msgid "Disallow viewing timelines, user profiles and statuses for unauthenticated users." +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-:rich_media" +msgid "If enabled the instance will parse metadata from attached links to generate link previews" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-:shout" +msgid "Pleroma shout settings" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-:static_fe" +msgid "Render profiles and posts using server-generated HTML that is viewable without using JavaScript" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-:streamer" +msgid "Settings for notifications streamer" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-:uri_schemes" +msgid "URI schemes related settings" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-:web_cache_ttl" +msgid "The expiration time for the web responses cache. Values should be in milliseconds or `nil` to disable expiration." +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-:welcome" +msgid "Welcome messages settings" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-:workers" +msgid "Includes custom worker options not interpretable directly by `Oban`" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-ConcurrentLimiter" +msgid "Limits configuration for background tasks." +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-Oban" +msgid "[Oban](https://github.com/sorentwo/oban) asynchronous job processor configuration." +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-Pleroma.Captcha" +msgid "Captcha-related settings" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-Pleroma.Captcha.Kocaptcha" +msgid "Kocaptcha is a very simple captcha service with a single API endpoint, the source code is here: https://github.com/koto-bank/kocaptcha. The default endpoint (https://captcha.kotobank.ch) is hosted by the developer." +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-Pleroma.Emails.Mailer" +msgid "Mailer-related settings" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-Pleroma.Emails.NewUsersDigestEmail" +msgid "New users admin email digest" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-Pleroma.Emails.UserEmail" +msgid "Email template settings" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-Pleroma.Formatter" +msgid "Configuration for Pleroma's link formatter which parses mentions, hashtags, and URLs." +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-Pleroma.ScheduledActivity" +msgid "Scheduled activities settings" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-Pleroma.Upload" +msgid "Upload general settings" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-Pleroma.Upload.Filter.AnonymizeFilename" +msgid "Filter replaces the filename of the upload" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-Pleroma.Upload.Filter.Mogrify" +msgid "Uploads mogrify filter settings" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-Pleroma.Uploaders.Local" +msgid "Local uploader-related settings" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-Pleroma.Uploaders.S3" +msgid "S3 uploader-related settings" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-Pleroma.User.Backup" +msgid "Account Backup" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-Pleroma.Web.MediaProxy.Invalidation.Http" +msgid "HTTP invalidate settings" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-Pleroma.Web.MediaProxy.Invalidation.Script" +msgid "Invalidation script settings" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-Pleroma.Web.Metadata" +msgid "Metadata-related settings" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-Pleroma.Web.Plugs.RemoteIp" +msgid "`Pleroma.Web.Plugs.RemoteIp` is a shim to call [`RemoteIp`](https://git.pleroma.social/pleroma/remote_ip) but with runtime configuration.\n**If your instance is not behind at least one reverse proxy, you should not enable this plug.**\n" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-Pleroma.Web.Preload" +msgid "Preload-related settings" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-Pleroma.Workers.PurgeExpiredActivity" +msgid "Expired activities settings" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :prometheus-Pleroma.Web.Endpoint.MetricsExporter" +msgid "Prometheus app metrics endpoint configuration" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :web_push_encryption-:vapid_details" +msgid "Web Push Notifications configuration. You can use the mix task mix web_push.gen.keypair to generate it." +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :ex_aws-:s3" +msgid "S3" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :logger-:console" +msgid "Console Logger" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :logger-:ex_syslogger" +msgid "ExSyslogger" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:activitypub" +msgid "ActivityPub" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:assets" +msgid "Assets" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:auth" +msgid "Auth" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:connections_pool" +msgid "Connections pool" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:email_notifications" +msgid "Email notifications" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:emoji" +msgid "Emoji" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:features" +msgid "Features" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:feed" +msgid "Feed" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:frontend_configurations" +msgid "Frontend configurations" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:frontends" +msgid "Frontends" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:gopher" +msgid "Gopher" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:hackney_pools" +msgid "Hackney pools" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:http" +msgid "HTTP" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:http_security" +msgid "HTTP security" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:instance" +msgid "Instance" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:instances_favicons" +msgid "Instances favicons" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:ldap" +msgid "LDAP" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:majic_pool" +msgid "Majic pool" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:manifest" +msgid "Manifest" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:markup" +msgid "Markup Settings" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:media_preview_proxy" +msgid "Media preview proxy" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:media_proxy" +msgid "Media proxy" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:modules" +msgid "Modules" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:mrf" +msgid "MRF" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:mrf_activity_expiration" +msgid "MRF Activity Expiration Policy" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:mrf_follow_bot" +msgid "MRF FollowBot Policy" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:mrf_hashtag" +msgid "MRF Hashtag" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:mrf_hellthread" +msgid "MRF Hellthread" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:mrf_keyword" +msgid "MRF Keyword" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:mrf_mention" +msgid "MRF Mention" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:mrf_normalize_markup" +msgid "MRF Normalize Markup" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:mrf_object_age" +msgid "MRF Object Age" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:mrf_rejectnonpublic" +msgid "MRF Reject Non Public" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:mrf_simple" +msgid "MRF Simple" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:mrf_steal_emoji" +msgid "MRF Emojis" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:mrf_subchain" +msgid "MRF Subchain" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:mrf_vocabulary" +msgid "MRF Vocabulary" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:oauth2" +msgid "OAuth2" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:pools" +msgid "Pools" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:populate_hashtags_table" +msgid "Populate hashtags table" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:rate_limit" +msgid "Rate limit" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:restrict_unauthenticated" +msgid "Restrict Unauthenticated" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:rich_media" +msgid "Rich media" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:shout" +msgid "Shout" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:static_fe" +msgid "Static FE" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:streamer" +msgid "Streamer" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:uri_schemes" +msgid "URI Schemes" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:user" +msgid "User" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:web_cache_ttl" +msgid "Web cache TTL" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:welcome" +msgid "Welcome" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:workers" +msgid "Workers" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-ConcurrentLimiter" +msgid "ConcurrentLimiter" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-Oban" +msgid "Oban" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-Pleroma.Captcha" +msgid "Pleroma.Captcha" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-Pleroma.Captcha.Kocaptcha" +msgid "Pleroma.Captcha.Kocaptcha" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-Pleroma.Emails.Mailer" +msgid "Pleroma.Emails.Mailer" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-Pleroma.Emails.NewUsersDigestEmail" +msgid "Pleroma.Emails.NewUsersDigestEmail" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-Pleroma.Emails.UserEmail" +msgid "Pleroma.Emails.UserEmail" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-Pleroma.Formatter" +msgid "Linkify" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-Pleroma.ScheduledActivity" +msgid "Pleroma.ScheduledActivity" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-Pleroma.Upload" +msgid "Pleroma.Upload" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-Pleroma.Upload.Filter.AnonymizeFilename" +msgid "Pleroma.Upload.Filter.AnonymizeFilename" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-Pleroma.Upload.Filter.Mogrify" +msgid "Pleroma.Upload.Filter.Mogrify" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-Pleroma.Uploaders.Local" +msgid "Pleroma.Uploaders.Local" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-Pleroma.Uploaders.S3" +msgid "Pleroma.Uploaders.S3" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-Pleroma.User" +msgid "Pleroma.User" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-Pleroma.User.Backup" +msgid "Pleroma.User.Backup" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-Pleroma.Web.ApiSpec.CastAndValidate" +msgid "Pleroma.Web.ApiSpec.CastAndValidate" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-Pleroma.Web.MediaProxy.Invalidation.Http" +msgid "Pleroma.Web.MediaProxy.Invalidation.Http" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-Pleroma.Web.MediaProxy.Invalidation.Script" +msgid "Pleroma.Web.MediaProxy.Invalidation.Script" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-Pleroma.Web.Metadata" +msgid "Pleroma.Web.Metadata" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-Pleroma.Web.Plugs.RemoteIp" +msgid "Pleroma.Web.Plugs.RemoteIp" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-Pleroma.Web.Preload" +msgid "Pleroma.Web.Preload" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-Pleroma.Workers.PurgeExpiredActivity" +msgid "Pleroma.Workers.PurgeExpiredActivity" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :prometheus-Pleroma.Web.Endpoint.MetricsExporter" +msgid "Pleroma.Web.Endpoint.MetricsExporter" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :web_push_encryption-:vapid_details" +msgid "Vapid Details" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :esshd > :enabled" +msgid "Enables SSH" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :esshd > :handler" +msgid "Handler module" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :esshd > :password_authenticator" +msgid "Authenticator module" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :esshd > :port" +msgid "Port to connect" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :esshd > :priv_dir" +msgid "Dir with SSH keys" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :ex_aws-:s3 > :access_key_id" +msgid "S3 access key ID" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :ex_aws-:s3 > :host" +msgid "S3 host" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :ex_aws-:s3 > :region" +msgid "S3 region (for AWS)" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :ex_aws-:s3 > :secret_access_key" +msgid "Secret access key" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :logger > :backends" +msgid "Where logs will be sent, :console - send logs to stdout, { ExSyslogger, :ex_syslogger } - to syslog, Quack.Logger - to Slack." +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :logger-:console > :format" +msgid "Default: \"$date $time [$level] $levelpad$node $metadata $message\"" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :logger-:console > :level" +msgid "Log level" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :logger-:ex_syslogger > :format" +msgid "Default: \"$date $time [$level] $levelpad$node $metadata $message\"" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :logger-:ex_syslogger > :ident" +msgid "A string that's prepended to every message, and is typically set to the app name" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :logger-:ex_syslogger > :level" +msgid "Log level" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma > :admin_token" +msgid "Admin token" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-:activitypub > :blockers_visible" +msgid "Whether a user can see someone who has blocked them" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-:activitypub > :follow_handshake_timeout" +msgid "Following handshake timeout" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-:activitypub > :note_replies_output_limit" +msgid "The number of Note replies' URIs to be included with outgoing federation (`5` to match Mastodon hardcoded value, `0` to disable the output)" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-:activitypub > :outgoing_blocks" +msgid "Whether to federate blocks to other instances" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-:activitypub > :sign_object_fetches" +msgid "Sign object fetches with HTTP signatures" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-:activitypub > :unfollow_blocked" +msgid "Whether blocks result in people getting unfollowed" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-:assets > :default_mascot" +msgid "This will be used as the default mascot on MastoFE. Default: `:pleroma_fox_tan`" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-:assets > :default_user_avatar" +msgid "URL of the default user avatar" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-:assets > :mascots" +msgid "Keyword of mascots, each element must contain both an URL and a mime_type key" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-:auth > :auth_template" +msgid "Authentication form template. By default it's `show.html` which corresponds to `lib/pleroma/web/templates/o_auth/o_auth/show.html.ee`." +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-:auth > :enforce_oauth_admin_scope_usage" +msgid "OAuth admin scope requirement toggle. If enabled, admin actions explicitly demand admin OAuth scope(s) presence in OAuth token (client app must support admin scopes). If disabled and token doesn't have admin scope(s), `is_admin` user flag grants access to admin-specific actions." +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-:auth > :oauth_consumer_strategies" +msgid "The list of enabled OAuth consumer strategies. By default it's set by OAUTH_CONSUMER_STRATEGIES environment variable. Each entry in this space-delimited string should be of format \"strategy\" or \"strategy:dependency\" (e.g. twitter or keycloak:ueberauth_keycloak_strategy in case dependency is named differently than ueberauth_)." +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-:auth > :oauth_consumer_template" +msgid "OAuth consumer mode authentication form template. By default it's `consumer.html` which corresponds to `lib/pleroma/web/templates/o_auth/o_auth/consumer.html.eex`." +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-:connections_pool > :connect_timeout" +msgid "Timeout while `gun` will wait until connection is up. Default: 5000ms." +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-:connections_pool > :connection_acquisition_retries" +msgid "Number of attempts to acquire the connection from the pool if it is overloaded. Default: 5" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-:connections_pool > :connection_acquisition_wait" +msgid "Timeout to acquire a connection from pool. The total max time is this value multiplied by the number of retries. Default: 250ms." +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-:connections_pool > :max_connections" +msgid "Maximum number of connections in the pool. Default: 250 connections." +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-:connections_pool > :reclaim_multiplier" +msgid "Multiplier for the number of idle connection to be reclaimed if the pool is full. For example if the pool maxes out at 250 connections and this setting is set to 0.3, the pool will reclaim at most 75 idle connections if it's overloaded. Default: 0.1" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-:email_notifications > :digest" +msgid "emails of \"what you've missed\" for users who have been inactive for a while" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-:email_notifications > :digest > :active" +msgid "Globally enable or disable digest emails" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-:email_notifications > :digest > :inactivity_threshold" +msgid "Minimum user inactivity threshold" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-:email_notifications > :digest > :interval" +msgid "Minimum interval between digest emails to one user" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-:email_notifications > :digest > :schedule" +msgid "When to send digest email, in crontab format. \"0 0 0\" is the default, meaning \"once a week at midnight on Sunday morning\"." +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-:emoji > :default_manifest" +msgid "Location of the JSON-manifest. This manifest contains information about the emoji-packs you can download. Currently only one manifest can be added (no arrays)." +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-:emoji > :groups" +msgid "Emojis are ordered in groups (tags). This is an array of key-value pairs where the key is the group name and the value is the location or array of locations. * can be used as a wildcard." +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-:emoji > :pack_extensions" +msgid "A list of file extensions for emojis, when no emoji.txt for a pack is present" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-:emoji > :shortcode_globs" +msgid "Location of custom emoji files. * can be used as a wildcard." +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-:features > :improved_hashtag_timeline" +msgid "Setting to force toggle / force disable improved hashtags timeline. `:enabled` forces hashtags to be fetched from `hashtags` table for hashtags timeline. `:disabled` forces object-embedded hashtags to be used (slower). Keep it `:auto` for automatic behaviour (it is auto-set to `:enabled` [unless overridden] when HashtagsTableMigrator completes)." +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-:feed > :post_title" +msgid "Configure title rendering" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-:feed > :post_title > :max_length" +msgid "Maximum number of characters before truncating title" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-:feed > :post_title > :omission" +msgid "Replacement which will be used after truncating string" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-:frontend_configurations > :pleroma_fe" +msgid "Settings for Pleroma FE" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-:frontend_configurations > :pleroma_fe > :alwaysShowSubjectInput" +msgid "When disabled, auto-hide the subject field if it's empty" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-:frontend_configurations > :pleroma_fe > :background" +msgid "URL of the background, unless viewing a user profile with a background that is set" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-:frontend_configurations > :pleroma_fe > :collapseMessageWithSubject" +msgid "When a message has a subject (aka Content Warning), collapse it by default" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-:frontend_configurations > :pleroma_fe > :greentext" +msgid "Enables green text on lines prefixed with the > character" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-:frontend_configurations > :pleroma_fe > :hideFilteredStatuses" +msgid "Hides filtered statuses from timelines" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-:frontend_configurations > :pleroma_fe > :hideMutedPosts" +msgid "Hides muted statuses from timelines" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-:frontend_configurations > :pleroma_fe > :hidePostStats" +msgid "Hide notices statistics (repeats, favorites, ...)" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-:frontend_configurations > :pleroma_fe > :hideSitename" +msgid "Hides instance name from PleromaFE banner" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-:frontend_configurations > :pleroma_fe > :hideUserStats" +msgid "Hide profile statistics (posts, posts per day, followers, followings, ...)" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-:frontend_configurations > :pleroma_fe > :logo" +msgid "URL of the logo, defaults to Pleroma's logo" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-:frontend_configurations > :pleroma_fe > :logoMargin" +msgid "Allows you to adjust vertical margins between logo boundary and navbar borders. The idea is that to have logo's image without any extra margins and instead adjust them to your need in layout." +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-:frontend_configurations > :pleroma_fe > :logoMask" +msgid "By default it assumes logo used will be monochrome with alpha channel to be compatible with both light and dark themes. If you want a colorful logo you must disable logoMask." +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-:frontend_configurations > :pleroma_fe > :minimalScopesMode" +msgid "Limit scope selection to Direct, User default, and Scope of post replying to. Also prevents replying to a DM with a public post from PleromaFE." +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-:frontend_configurations > :pleroma_fe > :nsfwCensorImage" +msgid "URL of the image to use for hiding NSFW media attachments in the timeline" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-:frontend_configurations > :pleroma_fe > :postContentType" +msgid "Default post formatting option" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-:frontend_configurations > :pleroma_fe > :redirectRootLogin" +msgid "Relative URL which indicates where to redirect when a user is logged in" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-:frontend_configurations > :pleroma_fe > :redirectRootNoLogin" +msgid "Relative URL which indicates where to redirect when a user isn't logged in" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-:frontend_configurations > :pleroma_fe > :scopeCopy" +msgid "Copy the scope (private/unlisted/public) in replies to posts by default" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-:frontend_configurations > :pleroma_fe > :showFeaturesPanel" +msgid "Enables panel displaying functionality of the instance on the About page" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-:frontend_configurations > :pleroma_fe > :showInstanceSpecificPanel" +msgid "Whether to show the instance's custom panel" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-:frontend_configurations > :pleroma_fe > :sidebarRight" +msgid "Change alignment of sidebar and panels to the right" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-:frontend_configurations > :pleroma_fe > :subjectLineBehavior" +msgid "Allows changing the default behaviour of subject lines in replies.\n `email`: copy and preprend re:, as in email,\n `masto`: copy verbatim, as in Mastodon,\n `noop`: don't copy the subject." +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-:frontend_configurations > :pleroma_fe > :theme" +msgid "Which theme to use. Available themes are defined in styles.json" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-:frontends > :admin" +msgid "Admin frontend" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-:frontends > :admin > name" +msgid "Name of the installed frontend. Valid config must include both `Name` and `Reference` values." +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-:frontends > :admin > ref" +msgid "Reference of the installed frontend to be used. Valid config must include both `Name` and `Reference` values." +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-:frontends > :available" +msgid "A map containing available frontends and parameters for their installation." +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-:frontends > :available > build_dir" +msgid "The directory inside the zip file " +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-:frontends > :available > build_url" +msgid "Either an url to a zip file containing the frontend or a template to build it by inserting the `ref`. The string `${ref}` will be replaced by the configured `ref`." +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-:frontends > :available > custom-http-headers" +msgid "The custom HTTP headers for the frontend" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-:frontends > :available > git" +msgid "URL of the git repository of the frontend" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-:frontends > :available > name" +msgid "Name of the frontend." +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-:frontends > :available > ref" +msgid "Reference of the frontend to be used." +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-:frontends > :primary" +msgid "Primary frontend, the one that is served for all pages by default" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-:frontends > :primary > name" +msgid "Name of the installed frontend. Valid config must include both `Name` and `Reference` values." +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-:frontends > :primary > ref" +msgid "Reference of the installed frontend to be used. Valid config must include both `Name` and `Reference` values." +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-:gopher > :dstport" +msgid "Port advertised in URLs (optional, defaults to port)" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-:gopher > :enabled" +msgid "Enables the gopher interface" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-:gopher > :ip" +msgid "IP address to bind to" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-:gopher > :port" +msgid "Port to bind to" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-:hackney_pools > :federation" +msgid "Settings for federation pool." +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-:hackney_pools > :federation > :max_connections" +msgid "Number workers in the pool." +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-:hackney_pools > :federation > :timeout" +msgid "Timeout while `hackney` will wait for response." +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-:hackney_pools > :media" +msgid "Settings for media pool." +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-:hackney_pools > :media > :max_connections" +msgid "Number workers in the pool." +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-:hackney_pools > :media > :timeout" +msgid "Timeout while `hackney` will wait for response." +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-:hackney_pools > :upload" +msgid "Settings for upload pool." +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-:hackney_pools > :upload > :max_connections" +msgid "Number workers in the pool." +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-:hackney_pools > :upload > :timeout" +msgid "Timeout while `hackney` will wait for response." +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-:http > :adapter" +msgid "Adapter specific options" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-:http > :adapter > :ssl_options" +msgid "SSL options for HTTP adapter" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-:http > :adapter > :ssl_options > :versions" +msgid "List of TLS version to use" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-:http > :proxy_url" +msgid "Proxy URL" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-:http > :user_agent" +msgid "What user agent to use. Must be a string or an atom `:default`. Default value is `:default`." +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-:http_security > :ct_max_age" +msgid "The maximum age for the Expect-CT header if sent" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-:http_security > :enabled" +msgid "Whether the managed content security policy is enabled" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-:http_security > :referrer_policy" +msgid "The referrer policy to use, either \"same-origin\" or \"no-referrer\"" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-:http_security > :report_uri" +msgid "Adds the specified URL to report-uri and report-to group in CSP header" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-:http_security > :sts" +msgid "Whether to additionally send a Strict-Transport-Security header" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-:http_security > :sts_max_age" +msgid "The maximum age for the Strict-Transport-Security header if sent" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-:instance > :account_activation_required" +msgid "Require users to confirm their emails before signing in" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-:instance > :account_approval_required" +msgid "Require users to be manually approved by an admin before signing in" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-:instance > :account_field_name_length" +msgid "An account field name maximum length. Default: 512." +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-:instance > :account_field_value_length" +msgid "An account field value maximum length. Default: 2048." +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-:instance > :allow_relay" +msgid "Permits remote instances to subscribe to all public posts of your instance. (Important!) This may increase the visibility of your instance." +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-:instance > :allowed_post_formats" +msgid "MIME-type list of formats allowed to be posted (transformed into HTML)" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-:instance > :attachment_links" +msgid "Enable to automatically add attachment link text to statuses" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-:instance > :autofollowed_nicknames" +msgid "Set to nicknames of (local) users that every new user should automatically follow" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-:instance > :autofollowing_nicknames" +msgid "Set to nicknames of (local) users that automatically follows every newly registered user" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-:instance > :avatar_upload_limit" +msgid "File size limit of user's profile avatars" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-:instance > :background_upload_limit" +msgid "File size limit of user's profile backgrounds" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-:instance > :banner_upload_limit" +msgid "File size limit of user's profile banners" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-:instance > :birthday_required" +msgid "Require users to enter their birthday." +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-:instance > :cleanup_attachments" +msgid "Enable to remove associated attachments when status is removed.\nThis will not affect duplicates and attachments without status.\nEnabling this will increase load to database when deleting statuses on larger instances.\n" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-:instance > :description" +msgid "The instance's description. It can be seen in nodeinfo and `/api/v1/instance`" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-:instance > :email" +msgid "Email used to reach an Administrator/Moderator of the instance" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-:instance > :extended_nickname_format" +msgid "Enable to use extended local nicknames format (allows underscores/dashes). This will break federation with older software for theses nicknames." +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-:instance > :external_user_synchronization" +msgid "Enabling following/followers counters synchronization for external users" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-:instance > :federating" +msgid "Enable federation with other instances" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-:instance > :federation_incoming_replies_max_depth" +msgid "Max. depth of reply-to and reply activities fetching on incoming federation, to prevent out-of-memory situations while fetching very long threads. If set to `nil`, threads of any depth will be fetched. Lower this value if you experience out-of-memory crashes." +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-:instance > :federation_reachability_timeout_days" +msgid "Timeout (in days) of each external federation target being unreachable prior to pausing federating to it" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-:instance > :healthcheck" +msgid "If enabled, system data will be shown on `/api/pleroma/healthcheck`" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-:instance > :instance_thumbnail" +msgid "The instance thumbnail can be any image that represents your instance and is used by some apps or services when they display information about your instance." +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-:instance > :invites_enabled" +msgid "Enable user invitations for admins (depends on `registrations_open` being disabled)" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-:instance > :limit" +msgid "Posts character limit (CW/Subject included in the counter)" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-:instance > :limit_to_local_content" +msgid "Limit unauthenticated users to search for local statutes and users only. Default: `:unauthenticated`." +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-:instance > :max_account_fields" +msgid "The maximum number of custom fields in the user profile. Default: 10." +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-:instance > :max_endorsed_users" +msgid "The maximum number of recommended accounts. 0 will disable the feature." +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-:instance > :max_media_attachments" +msgid "Maximum number of post media attachments" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-:instance > :max_pinned_statuses" +msgid "The maximum number of pinned statuses. 0 will disable the feature." +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-:instance > :max_remote_account_fields" +msgid "The maximum number of custom fields in the remote user profile. Default: 20." +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-:instance > :max_report_comment_size" +msgid "The maximum size of the report comment. Default: 1000." +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-:instance > :multi_factor_authentication" +msgid "Multi-factor authentication settings" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-:instance > :multi_factor_authentication > :backup_codes" +msgid "MFA backup codes settings" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-:instance > :multi_factor_authentication > :backup_codes > :length" +msgid "Determines the length of backup one-time pass-codes, in characters. Defaults to 16 characters." +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-:instance > :multi_factor_authentication > :backup_codes > :number" +msgid "Number of backup codes to generate." +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-:instance > :multi_factor_authentication > :totp" +msgid "TOTP settings" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-:instance > :multi_factor_authentication > :totp > :digits" +msgid "Determines the length of a one-time pass-code, in characters. Defaults to 6 characters." +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-:instance > :multi_factor_authentication > :totp > :period" +msgid "A period for which the TOTP code will be valid, in seconds. Defaults to 30 seconds." +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-:instance > :name" +msgid "Name of the instance" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-:instance > :notify_email" +msgid "Envelope FROM address for mail sent via Pleroma" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-:instance > :poll_limits" +msgid "A map with poll limits for local polls" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-:instance > :poll_limits > :max_expiration" +msgid "Maximum expiration time (in seconds)" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-:instance > :poll_limits > :max_option_chars" +msgid "Maximum number of characters per option" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-:instance > :poll_limits > :max_options" +msgid "Maximum number of options" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-:instance > :poll_limits > :min_expiration" +msgid "Minimum expiration time (in seconds)" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-:instance > :privileged_staff" +msgid "Let moderators access sensitive data (e.g. updating user credentials, get password reset token, delete users, index and read private statuses and chats)" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-:instance > :profile_directory" +msgid "Enable profile directory." +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-:instance > :public" +msgid "Makes the client API in authenticated mode-only except for user-profiles. Useful for disabling the Local Timeline and The Whole Known Network. Note: when setting to `false`, please also check `:restrict_unauthenticated` setting." +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-:instance > :quarantined_instances" +msgid "List of ActivityPub instances where private (DMs, followers-only) activities will not be sent and the reason for doing so" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-:instance > :registration_reason_length" +msgid "Maximum registration reason length. Default: 500." +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-:instance > :registrations_open" +msgid "Enable registrations for anyone. Invitations require this setting to be disabled." +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-:instance > :remote_limit" +msgid "Hard character limit beyond which remote posts will be dropped" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-:instance > :remote_post_retention_days" +msgid "The default amount of days to retain remote posts when pruning the database" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-:instance > :safe_dm_mentions" +msgid "If enabled, only mentions at the beginning of a post will be used to address people in direct messages. This is to prevent accidental mentioning of people when talking about them (e.g. \"@admin please keep an eye on @bad_actor\"). Default: disabled" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-:instance > :show_reactions" +msgid "Let favourites and emoji reactions be viewed through the API." +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-:instance > :skip_thread_containment" +msgid "Skip filtering out broken threads. Default: enabled." +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-:instance > :static_dir" +msgid "Instance static directory" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-:instance > :upload_limit" +msgid "File size limit of uploads (except for avatar, background, banner)" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-:instance > :user_bio_length" +msgid "A user bio maximum length. Default: 5000." +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-:instance > :user_name_length" +msgid "A user name maximum length. Default: 100." +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-:instances_favicons > :enabled" +msgid "Allow/disallow displaying and getting instances favicons" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-:ldap > :base" +msgid "LDAP base, e.g. \"dc=example,dc=com\"" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-:ldap > :enabled" +msgid "Enables LDAP authentication" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-:ldap > :host" +msgid "LDAP server hostname" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-:ldap > :port" +msgid "LDAP port, e.g. 389 or 636" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-:ldap > :ssl" +msgid "Enable to use SSL, usually implies the port 636" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-:ldap > :sslopts" +msgid "Additional SSL options" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-:ldap > :sslopts > :cacertfile" +msgid "Path to file with PEM encoded cacerts" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-:ldap > :sslopts > :verify" +msgid "Type of cert verification" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-:ldap > :tls" +msgid "Enable to use STARTTLS, usually implies the port 389" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-:ldap > :tlsopts" +msgid "Additional TLS options" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-:ldap > :tlsopts > :cacertfile" +msgid "Path to file with PEM encoded cacerts" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-:ldap > :tlsopts > :verify" +msgid "Type of cert verification" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-:ldap > :uid" +msgid "LDAP attribute name to authenticate the user, e.g. when \"cn\", the filter will be \"cn=username,base\"" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-:majic_pool > :size" +msgid "Number of majic workers to start." +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-:manifest > :background_color" +msgid "Describe the background color of the app" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-:manifest > :icons" +msgid "Describe the icons of the app" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-:manifest > :theme_color" +msgid "Describe the theme color of the app" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-:markup > :scrub_policy" +msgid "Module names are shortened (removed leading `Pleroma.HTML.` part), but on adding custom module you need to use full name." +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-:media_preview_proxy > :enabled" +msgid "Enables proxying of remote media preview to the instance's proxy. Requires enabled media proxy." +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-:media_preview_proxy > :image_quality" +msgid "Quality of the output. Ranges from 0 (min quality) to 100 (max quality)." +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-:media_preview_proxy > :min_content_length" +msgid "Min content length (in bytes) to perform preview. Media smaller in size will be served without thumbnailing." +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-:media_preview_proxy > :thumbnail_max_height" +msgid "Max height of preview thumbnail for images (video preview always has original dimensions)." +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-:media_preview_proxy > :thumbnail_max_width" +msgid "Max width of preview thumbnail for images (video preview always has original dimensions)." +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-:media_proxy > :base_url" +msgid "The base URL to access a user-uploaded file. Useful when you want to proxy the media files via another host/CDN fronts." +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-:media_proxy > :enabled" +msgid "Enables proxying of remote media via the instance's proxy" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-:media_proxy > :invalidation > :enabled" +msgid "Enables media cache object invalidation." +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-:media_proxy > :invalidation > :provider" +msgid "Module which will be used to purge objects from the cache." +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-:media_proxy > :proxy_opts" +msgid "Internal Pleroma.ReverseProxy settings" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-:media_proxy > :proxy_opts > :max_body_length" +msgid "Maximum file size (in bytes) allowed through the Pleroma MediaProxy cache." +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-:media_proxy > :proxy_opts > :max_read_duration" +msgid "Timeout (in milliseconds) of GET request to the remote URI." +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-:media_proxy > :proxy_opts > :redirect_on_failure" +msgid "Redirects the client to the origin server upon encountering HTTP errors.\n\nNote that files larger than Max Body Length will trigger an error. (e.g., Peertube videos)\n\n\n**WARNING:** This setting will allow larger files to be accessed, but exposes the\n\nIP addresses of your users to the other servers, bypassing the MediaProxy.\n" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-:media_proxy > :whitelist" +msgid "List of hosts with scheme to bypass the MediaProxy" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-:modules > :runtime_dir" +msgid "A path to custom Elixir modules (such as MRF policies)." +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-:mrf > :policies" +msgid "A list of MRF policies enabled. Module names are shortened (removed leading `Pleroma.Web.ActivityPub.MRF.` part), but on adding custom module you need to use full name." +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-:mrf > :transparency" +msgid "Make the content of your Message Rewrite Facility settings public (via nodeinfo)" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-:mrf > :transparency_exclusions" +msgid "Exclude specific instance names from MRF transparency. The use of the exclusions feature will be disclosed in nodeinfo as a boolean value. You can also provide a reason for excluding these instance names. The instances and reasons won't be publicly disclosed." +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-:mrf_activity_expiration > :days" +msgid "Default global expiration time for all local activities (in days)" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-:mrf_follow_bot > :follower_nickname" +msgid "The name of the bot account to use for following newly discovered users." +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-:mrf_hashtag > :federated_timeline_removal" +msgid "A list of hashtags which result in message being removed from federated timelines (a.k.a unlisted)." +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-:mrf_hashtag > :reject" +msgid "A list of hashtags which result in message being rejected." +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-:mrf_hashtag > :sensitive" +msgid "A list of hashtags which result in message being set as sensitive (a.k.a NSFW/R-18)" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-:mrf_hellthread > :delist_threshold" +msgid "Number of mentioned users after which the message gets removed from timelines anddisables notifications. Set to 0 to disable." +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-:mrf_hellthread > :reject_threshold" +msgid "Number of mentioned users after which the messaged gets rejected. Set to 0 to disable." +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-:mrf_keyword > :federated_timeline_removal" +msgid " A list of patterns which result in message being removed from federated timelines (a.k.a unlisted).\n\n Each pattern can be a string or [Regex](https://hexdocs.pm/elixir/Regex.html) in the format of `~r/PATTERN/`.\n" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-:mrf_keyword > :reject" +msgid " A list of patterns which result in message being rejected.\n\n Each pattern can be a string or [Regex](https://hexdocs.pm/elixir/Regex.html) in the format of `~r/PATTERN/`.\n" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-:mrf_keyword > :replace" +msgid " **Pattern**: a string or [Regex](https://hexdocs.pm/elixir/Regex.html) in the format of `~r/PATTERN/`.\n\n **Replacement**: a string. Leaving the field empty is permitted.\n" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-:mrf_mention > :actors" +msgid "A list of actors for which any post mentioning them will be dropped" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-:mrf_object_age > :threshold" +msgid "Required age (in seconds) of a post before actions are taken." +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-:mrf_rejectnonpublic > :allow_direct" +msgid "Whether to allow direct messages" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-:mrf_rejectnonpublic > :allow_followersonly" +msgid "Whether to allow followers-only posts" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-:mrf_simple > :accept" +msgid "List of instances to only accept activities from (except deletes) and the reason for doing so" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-:mrf_simple > :avatar_removal" +msgid "List of instances to strip avatars from and the reason for doing so" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-:mrf_simple > :banner_removal" +msgid "List of instances to strip banners from and the reason for doing so" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-:mrf_simple > :federated_timeline_removal" +msgid "List of instances to remove from the Federated (aka The Whole Known Network) Timeline and the reason for doing so" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-:mrf_simple > :followers_only" +msgid "Force posts from the given instances to be visible by followers only and the reason for doing so" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-:mrf_simple > :media_nsfw" +msgid "List of instances to tag all media as NSFW (sensitive) from and the reason for doing so" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-:mrf_simple > :media_removal" +msgid "List of instances to strip media attachments from and the reason for doing so" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-:mrf_simple > :reject" +msgid "List of instances to reject activities from (except deletes) and the reason for doing so" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-:mrf_simple > :reject_deletes" +msgid "List of instances to reject deletions from and the reason for doing so" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-:mrf_simple > :report_removal" +msgid "List of instances to reject reports from and the reason for doing so" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-:mrf_steal_emoji > :hosts" +msgid "List of hosts to steal emojis from" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-:mrf_steal_emoji > :rejected_shortcodes" +msgid " A list of patterns or matches to reject shortcodes with.\n\n Each pattern can be a string or [Regex](https://hexdocs.pm/elixir/Regex.html) in the format of `~r/PATTERN/`.\n" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-:mrf_steal_emoji > :size_limit" +msgid "File size limit (in bytes), checked before an emoji is saved to the disk" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-:mrf_subchain > :match_actor" +msgid "Matches a series of regular expressions against the actor field" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-:mrf_vocabulary > :accept" +msgid "A list of ActivityStreams terms to accept. If empty, all supported messages are accepted." +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-:mrf_vocabulary > :reject" +msgid "A list of ActivityStreams terms to reject. If empty, no messages are rejected." +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-:oauth2 > :clean_expired_tokens" +msgid "Enable a background job to clean expired OAuth tokens. Default: disabled." +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-:oauth2 > :issue_new_refresh_token" +msgid "Keeps old refresh token or generate new refresh token when to obtain an access token" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-:oauth2 > :token_expires_in" +msgid "The lifetime in seconds of the access token" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-:pools > :default" +msgid "Settings for default pool." +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-:pools > :default > :max_waiting" +msgid "Maximum number of requests waiting for other requests to finish. After this number is reached, the pool will start returning errrors when a new request is made" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-:pools > :default > :recv_timeout" +msgid "Timeout for the pool while gun will wait for response" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-:pools > :default > :size" +msgid "Maximum number of concurrent requests in the pool." +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-:pools > :federation" +msgid "Settings for federation pool." +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-:pools > :federation > :max_waiting" +msgid "Maximum number of requests waiting for other requests to finish. After this number is reached, the pool will start returning errrors when a new request is made" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-:pools > :federation > :recv_timeout" +msgid "Timeout for the pool while gun will wait for response" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-:pools > :federation > :size" +msgid "Maximum number of concurrent requests in the pool." +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-:pools > :media" +msgid "Settings for media pool." +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-:pools > :media > :max_waiting" +msgid "Maximum number of requests waiting for other requests to finish. After this number is reached, the pool will start returning errrors when a new request is made" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-:pools > :media > :recv_timeout" +msgid "Timeout for the pool while gun will wait for response" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-:pools > :media > :size" +msgid "Maximum number of concurrent requests in the pool." +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-:pools > :upload" +msgid "Settings for upload pool." +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-:pools > :upload > :max_waiting" +msgid "Maximum number of requests waiting for other requests to finish. After this number is reached, the pool will start returning errrors when a new request is made" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-:pools > :upload > :recv_timeout" +msgid "Timeout for the pool while gun will wait for response" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-:pools > :upload > :size" +msgid "Maximum number of concurrent requests in the pool." +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-:populate_hashtags_table > :fault_rate_allowance" +msgid "Max accepted rate of objects that failed in the migration. Any value from 0.0 which tolerates no errors to 1.0 which will enable the feature even if hashtags transfer failed for all records." +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-:populate_hashtags_table > :sleep_interval_ms" +msgid "Sleep interval between each chunk of processed records in order to decrease the load on the system (defaults to 0 and should be keep default on most instances)." +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-:rate_limit > :app_account_creation" +msgid "For registering user accounts from the same IP address" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-:rate_limit > :authentication" +msgid "For authentication create / password check / user existence check requests" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-:rate_limit > :relation_id_action" +msgid "For actions on relation with a specific user (follow, unfollow)" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-:rate_limit > :relations_actions" +msgid "For actions on relationships with all users (follow, unfollow)" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-:rate_limit > :search" +msgid "For the search requests (account & status search etc.)" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-:rate_limit > :status_id_action" +msgid "For fav / unfav or reblog / unreblog actions on the same status by the same user" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-:rate_limit > :statuses_actions" +msgid "For create / delete / fav / unfav / reblog / unreblog actions on any statuses" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-:rate_limit > :timeline" +msgid "For requests to timelines (each timeline has it's own limiter)" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-:restrict_unauthenticated > :activities" +msgid "Settings for statuses." +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-:restrict_unauthenticated > :activities > :local" +msgid "Disallow view local statuses." +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-:restrict_unauthenticated > :activities > :remote" +msgid "Disallow view remote statuses." +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-:restrict_unauthenticated > :profiles" +msgid "Settings for user profiles." +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-:restrict_unauthenticated > :profiles > :local" +msgid "Disallow view local user profiles." +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-:restrict_unauthenticated > :profiles > :remote" +msgid "Disallow view remote user profiles." +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-:restrict_unauthenticated > :timelines" +msgid "Settings for public and federated timelines." +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-:restrict_unauthenticated > :timelines > :federated" +msgid "Disallow view federated timeline." +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-:restrict_unauthenticated > :timelines > :local" +msgid "Disallow view public timeline." +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-:rich_media > :enabled" +msgid "Enables RichMedia parsing of URLs" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-:rich_media > :failure_backoff" +msgid "Amount of milliseconds after request failure, during which the request will not be retried." +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-:rich_media > :ignore_hosts" +msgid "List of hosts which will be ignored by the metadata parser" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-:rich_media > :ignore_tld" +msgid "List TLDs (top-level domains) which will ignore for parse metadata" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-:rich_media > :parsers" +msgid "List of Rich Media parsers. Module names are shortened (removed leading `Pleroma.Web.RichMedia.Parsers.` part), but on adding custom module you need to use full name." +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-:rich_media > :ttl_setters" +msgid "List of rich media TTL setters. Module names are shortened (removed leading `Pleroma.Web.RichMedia.Parser.` part), but on adding custom module you need to use full name." +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-:shout > :enabled" +msgid "Enables the backend Shoutbox chat feature." +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-:shout > :limit" +msgid "Shout message character limit." +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-:static_fe > :enabled" +msgid "Enables the rendering of static HTML. Default: disabled." +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-:streamer > :overflow_workers" +msgid "Maximum number of workers created if pool is empty" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-:streamer > :workers" +msgid "Number of workers to send notifications" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-:uri_schemes > :valid_schemes" +msgid "List of the scheme part that is considered valid to be an URL" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-:web_cache_ttl > :activity_pub" +msgid "Activity pub routes (except question activities). Default: `nil` (no expiration)." +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-:web_cache_ttl > :activity_pub_question" +msgid "Activity pub routes (question activities). Default: `30_000` (30 seconds)." +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-:welcome > :chat_message > :enabled" +msgid "Enables sending a chat message to newly registered users" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-:welcome > :chat_message > :message" +msgid "A message that will be sent to newly registered users as a chat message" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-:welcome > :chat_message > :sender_nickname" +msgid "The nickname of the local user that sends a welcome chat message" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-:welcome > :direct_message > :enabled" +msgid "Enables sending a direct message to newly registered users" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-:welcome > :direct_message > :message" +msgid "A message that will be sent to newly registered users" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-:welcome > :direct_message > :sender_nickname" +msgid "The nickname of the local user that sends a welcome message" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-:welcome > :email > :enabled" +msgid "Enables sending an email to newly registered users" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-:welcome > :email > :html" +msgid "HTML content of the welcome email. EEX template with user and instance_name variables can be used." +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-:welcome > :email > :sender" +msgid "Email address and/or nickname that will be used to send the welcome email." +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-:welcome > :email > :subject" +msgid "Subject of the welcome email. EEX template with user and instance_name variables can be used." +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-:welcome > :email > :text" +msgid "Text content of the welcome email. EEX template with user and instance_name variables can be used." +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-:workers > :retries" +msgid "Max retry attempts for failed jobs, per `Oban` queue" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-ConcurrentLimiter > Pleroma.Web.ActivityPub.MRF.MediaProxyWarmingPolicy" +msgid "Concurrent limits configuration for MediaProxyWarmingPolicy." +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-ConcurrentLimiter > Pleroma.Web.ActivityPub.MRF.MediaProxyWarmingPolicy > :max_running" +msgid "Max running concurrently jobs." +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-ConcurrentLimiter > Pleroma.Web.ActivityPub.MRF.MediaProxyWarmingPolicy > :max_waiting" +msgid "Max waiting jobs." +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-ConcurrentLimiter > Pleroma.Web.RichMedia.Helpers" +msgid "Concurrent limits configuration for getting RichMedia for activities." +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-ConcurrentLimiter > Pleroma.Web.RichMedia.Helpers > :max_running" +msgid "Max running concurrently jobs." +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-ConcurrentLimiter > Pleroma.Web.RichMedia.Helpers > :max_waiting" +msgid "Max waiting jobs." +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-Oban > :crontab" +msgid "Settings for cron background jobs" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-Oban > :log" +msgid "Logs verbose mode" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-Oban > :queues" +msgid "Background jobs queues (keys: queues, values: max numbers of concurrent jobs)" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-Oban > :queues > :activity_expiration" +msgid "Activity expiration queue" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-Oban > :queues > :attachments_cleanup" +msgid "Attachment deletion queue" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-Oban > :queues > :background" +msgid "Background queue" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-Oban > :queues > :backup" +msgid "Backup queue" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-Oban > :queues > :federator_incoming" +msgid "Incoming federation queue" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-Oban > :queues > :federator_outgoing" +msgid "Outgoing federation queue" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-Oban > :queues > :mailer" +msgid "Email sender queue, see Pleroma.Emails.Mailer" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-Oban > :queues > :scheduled_activities" +msgid "Scheduled activities queue, see Pleroma.ScheduledActivities" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-Oban > :queues > :transmogrifier" +msgid "Transmogrifier queue" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-Oban > :queues > :web_push" +msgid "Web push notifications queue" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-Pleroma.Captcha > :enabled" +msgid "Whether the captcha should be shown on registration" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-Pleroma.Captcha > :method" +msgid "The method/service to use for captcha" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-Pleroma.Captcha > :seconds_valid" +msgid "The time in seconds for which the captcha is valid" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-Pleroma.Captcha.Kocaptcha > :endpoint" +msgid "The kocaptcha endpoint to use" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-Pleroma.Emails.Mailer > :adapter" +msgid "One of the mail adapters listed in [Swoosh documentation](https://hexdocs.pm/swoosh/Swoosh.html#module-adapters)" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-Pleroma.Emails.Mailer > Swoosh.Adapters.SMTP-:auth" +msgid "SMTP AUTH enforcement mode" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-Pleroma.Emails.Mailer > Swoosh.Adapters.SMTP-:password" +msgid "SMTP AUTH password" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-Pleroma.Emails.Mailer > Swoosh.Adapters.SMTP-:port" +msgid "SMTP port" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-Pleroma.Emails.Mailer > Swoosh.Adapters.SMTP-:relay" +msgid "Hostname or IP address" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-Pleroma.Emails.Mailer > Swoosh.Adapters.SMTP-:retries" +msgid "SMTP temporary (4xx) error retries" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-Pleroma.Emails.Mailer > Swoosh.Adapters.SMTP-:ssl" +msgid "Use Implicit SSL/TLS. e.g. port 465" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-Pleroma.Emails.Mailer > Swoosh.Adapters.SMTP-:tls" +msgid "Explicit TLS (STARTTLS) enforcement mode" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-Pleroma.Emails.Mailer > Swoosh.Adapters.SMTP-:username" +msgid "SMTP AUTH username" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-Pleroma.Emails.NewUsersDigestEmail > :enabled" +msgid "Enables new users admin digest email when `true`" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-Pleroma.Emails.UserEmail > :logo" +msgid "A path to a custom logo. Set it to `nil` to use the default Pleroma logo." +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-Pleroma.Emails.UserEmail > :styling" +msgid "A map with color settings for email templates." +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-Pleroma.Formatter > :class" +msgid "Specify the class to be added to the generated link. Disable to clear." +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-Pleroma.Formatter > :extra" +msgid "Link URLs with rarely used schemes (magnet, ipfs, irc, etc.)" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-Pleroma.Formatter > :new_window" +msgid "Link URLs will open in a new window/tab." +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-Pleroma.Formatter > :rel" +msgid "Override the rel attribute. Disable to clear." +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-Pleroma.Formatter > :strip_prefix" +msgid "Strip the scheme prefix." +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-Pleroma.Formatter > :truncate" +msgid "Set to a number to truncate URLs longer than the number. Truncated URLs will end in `...`" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-Pleroma.Formatter > :validate_tld" +msgid "Set to false to disable TLD validation for URLs/emails. Can be set to :no_scheme to validate TLDs only for URLs without a scheme (e.g `example.com` will be validated, but `http://example.loki` won't)" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-Pleroma.ScheduledActivity > :daily_user_limit" +msgid "The number of scheduled activities a user is allowed to create in a single day. Default: 25." +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-Pleroma.ScheduledActivity > :enabled" +msgid "Whether scheduled activities are sent to the job queue to be executed" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-Pleroma.ScheduledActivity > :total_user_limit" +msgid "The number of scheduled activities a user is allowed to create in total. Default: 300." +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-Pleroma.Upload > :base_url" +msgid "Base URL for the uploads. Required if you use a CDN or host attachments under a different domain." +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-Pleroma.Upload > :filename_display_max_length" +msgid "Set max length of a filename to display. 0 = no limit. Default: 30" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-Pleroma.Upload > :filters" +msgid "List of filter modules for uploads. Module names are shortened (removed leading `Pleroma.Upload.Filter.` part), but on adding custom module you need to use full name." +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-Pleroma.Upload > :link_name" +msgid "If enabled, a name parameter will be added to the URL of the upload. For example `https://instance.tld/media/imagehash.png?name=realname.png`." +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-Pleroma.Upload > :proxy_remote" +msgid "Proxy requests to the remote uploader.\n\nUseful if media upload endpoint is not internet accessible.\n" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-Pleroma.Upload > :uploader" +msgid "Module which will be used for uploads" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-Pleroma.Upload.Filter.AnonymizeFilename > :text" +msgid "Text to replace filenames in links. If no setting, {random}.extension will be used. You can get the original filename extension by using {extension}, for example custom-file-name.{extension}." +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-Pleroma.Upload.Filter.Mogrify > :args" +msgid "List of actions for the mogrify command. It's possible to add self-written settings as string. For example `auto-orient, strip, {\"resize\", \"3840x1080>\"}` value will be parsed into valid list of the settings." +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-Pleroma.Uploaders.Local > :uploads" +msgid "Path where user's uploads will be saved" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-Pleroma.Uploaders.S3 > :bucket" +msgid "S3 bucket" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-Pleroma.Uploaders.S3 > :bucket_namespace" +msgid "S3 bucket namespace" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-Pleroma.Uploaders.S3 > :streaming_enabled" +msgid "Enable streaming uploads, when enabled the file will be sent to the server in chunks as it's being read. This may be unsupported by some providers, try disabling this if you have upload problems." +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-Pleroma.Uploaders.S3 > :truncated_namespace" +msgid "If you use S3 compatible service such as Digital Ocean Spaces or CDN, set folder name or \"\" etc. For example, when using CDN to S3 virtual host format, set \"\". At this time, write CNAME to CDN in Upload base_url." +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-Pleroma.User > :email_blacklist" +msgid "List of email domains users may not register with." +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-Pleroma.User > :restricted_nicknames" +msgid "List of nicknames users may not register with." +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-Pleroma.User.Backup > :limit_days" +msgid "Limit user to export not more often than once per N days" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-Pleroma.User.Backup > :purge_after_days" +msgid "Remove backup achives after N days" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-Pleroma.Web.ApiSpec.CastAndValidate > :strict" +msgid "Enables strict input validation (useful in development, not recommended in production)" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-Pleroma.Web.MediaProxy.Invalidation.Http > :headers" +msgid "HTTP headers of request" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-Pleroma.Web.MediaProxy.Invalidation.Http > :method" +msgid "HTTP method of request. Default: :purge" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-Pleroma.Web.MediaProxy.Invalidation.Http > :options" +msgid "Request options" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-Pleroma.Web.MediaProxy.Invalidation.Script > :script_path" +msgid "Path to executable script which will purge cached items." +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-Pleroma.Web.MediaProxy.Invalidation.Script > :url_format" +msgid "Optional URL format preprocessing. Only required for Apache's htcacheclean." +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-Pleroma.Web.Metadata > :providers" +msgid "List of metadata providers to enable" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-Pleroma.Web.Metadata > :unfurl_nsfw" +msgid "When enabled NSFW attachments will be shown in previews" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-Pleroma.Web.Plugs.RemoteIp > :enabled" +msgid "Enable/disable the plug. Default: disabled." +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-Pleroma.Web.Plugs.RemoteIp > :headers" +msgid " A list of strings naming the HTTP headers to use when deriving the true client IP. Default: `[\"x-forwarded-for\"]`.\n" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-Pleroma.Web.Plugs.RemoteIp > :proxies" +msgid "A list of upstream proxy IP subnets in CIDR notation from which we will parse the content of `headers`. Defaults to `[]`. IPv4 entries without a bitmask will be assumed to be /32 and IPv6 /128." +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-Pleroma.Web.Plugs.RemoteIp > :reserved" +msgid " A list of reserved IP subnets in CIDR notation which should be ignored if found in `headers`. Defaults to `[\"127.0.0.0/8\", \"::1/128\", \"fc00::/7\", \"10.0.0.0/8\", \"172.16.0.0/12\", \"192.168.0.0/16\"]`\n" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-Pleroma.Web.Preload > :providers" +msgid "List of preload providers to enable" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-Pleroma.Workers.PurgeExpiredActivity > :enabled" +msgid "Enables expired activities addition & deletion" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-Pleroma.Workers.PurgeExpiredActivity > :min_lifetime" +msgid "Minimum lifetime for ephemeral activity (in seconds)" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :prometheus-Pleroma.Web.Endpoint.MetricsExporter > :auth" +msgid "Enables HTTP Basic Auth for app metrics endpoint." +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :prometheus-Pleroma.Web.Endpoint.MetricsExporter > :enabled" +msgid "[Pleroma extension] Enables app metrics endpoint." +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :prometheus-Pleroma.Web.Endpoint.MetricsExporter > :format" +msgid "App metrics endpoint output format." +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :prometheus-Pleroma.Web.Endpoint.MetricsExporter > :ip_whitelist" +msgid "Restrict access of app metrics endpoint to the specified IP addresses." +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :prometheus-Pleroma.Web.Endpoint.MetricsExporter > :path" +msgid "App metrics endpoint URI path." +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :web_push_encryption-:vapid_details > :private_key" +msgid "VAPID private key" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :web_push_encryption-:vapid_details > :public_key" +msgid "VAPID public key" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :web_push_encryption-:vapid_details > :subject" +msgid "A mailto link for the administrative contact. It's best if this email is not a personal email address, but rather a group email to the instance moderation team." +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :cors_plug > :credentials" +msgid "Credentials" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :cors_plug > :expose" +msgid "Expose" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :cors_plug > :headers" +msgid "Headers" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :cors_plug > :max_age" +msgid "Max age" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :cors_plug > :methods" +msgid "Methods" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :esshd > :enabled" +msgid "Enabled" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :esshd > :handler" +msgid "Handler" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :esshd > :password_authenticator" +msgid "Password authenticator" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :esshd > :port" +msgid "Port" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :esshd > :priv_dir" +msgid "Priv dir" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :ex_aws-:s3 > :access_key_id" +msgid "Access key" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :ex_aws-:s3 > :host" +msgid "Host" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :ex_aws-:s3 > :region" +msgid "Region" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :ex_aws-:s3 > :secret_access_key" +msgid "Secret access key" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :logger > :backends" +msgid "Backends" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :logger-:console > :format" +msgid "Format" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :logger-:console > :level" +msgid "Level" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :logger-:console > :metadata" +msgid "Metadata" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :logger-:ex_syslogger > :format" +msgid "Format" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :logger-:ex_syslogger > :ident" +msgid "Ident" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :logger-:ex_syslogger > :level" +msgid "Level" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :logger-:ex_syslogger > :metadata" +msgid "Metadata" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :mime > :types" +msgid "Types" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :mime > :types > application/activity+json" +msgid "\"application/activity+json\"" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :mime > :types > application/jrd+json" +msgid "\"application/jrd+json\"" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :mime > :types > application/ld+json" +msgid "\"application/ld+json\"" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :mime > :types > application/xml" +msgid "\"application/xml\"" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :mime > :types > application/xrd+xml" +msgid "\"application/xrd+xml\"" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma > :admin_token" +msgid "Admin token" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma > Pleroma.Web.Auth.Authenticator" +msgid "Pleroma.Web.Auth.Authenticator" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:activitypub > :blockers_visible" +msgid "Blockers visible" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:activitypub > :follow_handshake_timeout" +msgid "Follow handshake timeout" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:activitypub > :note_replies_output_limit" +msgid "Note replies output limit" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:activitypub > :outgoing_blocks" +msgid "Outgoing blocks" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:activitypub > :sign_object_fetches" +msgid "Sign object fetches" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:activitypub > :unfollow_blocked" +msgid "Unfollow blocked" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:assets > :default_mascot" +msgid "Default mascot" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:assets > :default_user_avatar" +msgid "Default user avatar" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:assets > :mascots" +msgid "Mascots" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:auth > :auth_template" +msgid "Auth template" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:auth > :enforce_oauth_admin_scope_usage" +msgid "Enforce OAuth admin scope usage" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:auth > :oauth_consumer_strategies" +msgid "OAuth consumer strategies" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:auth > :oauth_consumer_template" +msgid "OAuth consumer template" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:connections_pool > :connect_timeout" +msgid "Connect timeout" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:connections_pool > :connection_acquisition_retries" +msgid "Connection acquisition retries" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:connections_pool > :connection_acquisition_wait" +msgid "Connection acquisition wait" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:connections_pool > :max_connections" +msgid "Max connections" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:connections_pool > :reclaim_multiplier" +msgid "Reclaim multiplier" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:email_notifications > :digest" +msgid "Digest" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:email_notifications > :digest > :active" +msgid "Enabled" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:email_notifications > :digest > :inactivity_threshold" +msgid "Inactivity threshold" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:email_notifications > :digest > :interval" +msgid "Interval" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:email_notifications > :digest > :schedule" +msgid "Schedule" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:emoji > :default_manifest" +msgid "Default manifest" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:emoji > :groups" +msgid "Groups" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:emoji > :pack_extensions" +msgid "Pack extensions" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:emoji > :shared_pack_cache_seconds_per_file" +msgid "Shared pack cache s/file" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:emoji > :shortcode_globs" +msgid "Shortcode globs" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:features > :improved_hashtag_timeline" +msgid "Improved hashtag timeline" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:feed > :post_title" +msgid "Post title" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:feed > :post_title > :max_length" +msgid "Max length" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:feed > :post_title > :omission" +msgid "Omission" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:frontend_configurations > :pleroma_fe" +msgid "Pleroma FE" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:frontend_configurations > :pleroma_fe > :alwaysShowSubjectInput" +msgid "Always show subject input" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:frontend_configurations > :pleroma_fe > :background" +msgid "Background" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:frontend_configurations > :pleroma_fe > :collapseMessageWithSubject" +msgid "Collapse message with subject" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:frontend_configurations > :pleroma_fe > :greentext" +msgid "Greentext" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:frontend_configurations > :pleroma_fe > :hideFilteredStatuses" +msgid "Hide Filtered Statuses" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:frontend_configurations > :pleroma_fe > :hideMutedPosts" +msgid "Hide Muted Posts" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:frontend_configurations > :pleroma_fe > :hidePostStats" +msgid "Hide post stats" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:frontend_configurations > :pleroma_fe > :hideSitename" +msgid "Hide Sitename" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:frontend_configurations > :pleroma_fe > :hideUserStats" +msgid "Hide user stats" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:frontend_configurations > :pleroma_fe > :logo" +msgid "Logo" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:frontend_configurations > :pleroma_fe > :logoMargin" +msgid "Logo margin" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:frontend_configurations > :pleroma_fe > :logoMask" +msgid "Logo mask" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:frontend_configurations > :pleroma_fe > :minimalScopesMode" +msgid "Minimal scopes mode" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:frontend_configurations > :pleroma_fe > :nsfwCensorImage" +msgid "NSFW Censor Image" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:frontend_configurations > :pleroma_fe > :postContentType" +msgid "Post Content Type" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:frontend_configurations > :pleroma_fe > :redirectRootLogin" +msgid "Redirect root login" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:frontend_configurations > :pleroma_fe > :redirectRootNoLogin" +msgid "Redirect root no login" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:frontend_configurations > :pleroma_fe > :scopeCopy" +msgid "Scope copy" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:frontend_configurations > :pleroma_fe > :showFeaturesPanel" +msgid "Show instance features panel" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:frontend_configurations > :pleroma_fe > :showInstanceSpecificPanel" +msgid "Show instance specific panel" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:frontend_configurations > :pleroma_fe > :sidebarRight" +msgid "Sidebar on Right" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:frontend_configurations > :pleroma_fe > :subjectLineBehavior" +msgid "Subject line behavior" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:frontend_configurations > :pleroma_fe > :theme" +msgid "Theme" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:frontends > :admin" +msgid "Admin" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:frontends > :admin > name" +msgid "Name" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:frontends > :admin > ref" +msgid "Reference" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:frontends > :available" +msgid "Available" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:frontends > :available > build_dir" +msgid "Build directory" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:frontends > :available > build_url" +msgid "Build URL" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:frontends > :available > custom-http-headers" +msgid "Custom HTTP headers" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:frontends > :available > git" +msgid "Git Repository URL" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:frontends > :available > name" +msgid "Name" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:frontends > :available > ref" +msgid "Reference" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:frontends > :primary" +msgid "Primary" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:frontends > :primary > name" +msgid "Name" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:frontends > :primary > ref" +msgid "Reference" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:gopher > :dstport" +msgid "Dstport" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:gopher > :enabled" +msgid "Enabled" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:gopher > :ip" +msgid "IP" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:gopher > :port" +msgid "Port" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:hackney_pools > :federation" +msgid "Federation" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:hackney_pools > :federation > :max_connections" +msgid "Max connections" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:hackney_pools > :federation > :timeout" +msgid "Timeout" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:hackney_pools > :media" +msgid "Media" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:hackney_pools > :media > :max_connections" +msgid "Max connections" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:hackney_pools > :media > :timeout" +msgid "Timeout" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:hackney_pools > :upload" +msgid "Upload" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:hackney_pools > :upload > :max_connections" +msgid "Max connections" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:hackney_pools > :upload > :timeout" +msgid "Timeout" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:http > :adapter" +msgid "Adapter" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:http > :adapter > :ssl_options" +msgid "SSL Options" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:http > :adapter > :ssl_options > :versions" +msgid "Versions" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:http > :proxy_url" +msgid "Proxy URL" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:http > :send_user_agent" +msgid "Send user agent" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:http > :user_agent" +msgid "User agent" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:http_security > :ct_max_age" +msgid "CT max age" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:http_security > :enabled" +msgid "Enabled" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:http_security > :referrer_policy" +msgid "Referrer policy" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:http_security > :report_uri" +msgid "Report URI" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:http_security > :sts" +msgid "STS" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:http_security > :sts_max_age" +msgid "STS max age" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:instance > :account_activation_required" +msgid "Account activation required" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:instance > :account_approval_required" +msgid "Account approval required" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:instance > :account_field_name_length" +msgid "Account field name length" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:instance > :account_field_value_length" +msgid "Account field value length" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:instance > :allow_relay" +msgid "Allow relay" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:instance > :allowed_post_formats" +msgid "Allowed post formats" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:instance > :attachment_links" +msgid "Attachment links" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:instance > :autofollowed_nicknames" +msgid "Autofollowed nicknames" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:instance > :autofollowing_nicknames" +msgid "Autofollowing nicknames" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:instance > :avatar_upload_limit" +msgid "Avatar upload limit" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:instance > :background_upload_limit" +msgid "Background upload limit" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:instance > :banner_upload_limit" +msgid "Banner upload limit" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:instance > :birthday_min_age" +msgid "Birthday min age" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:instance > :birthday_required" +msgid "Birthday required" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:instance > :cleanup_attachments" +msgid "Cleanup attachments" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:instance > :description" +msgid "Description" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:instance > :email" +msgid "Admin Email Address" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:instance > :extended_nickname_format" +msgid "Extended nickname format" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:instance > :external_user_synchronization" +msgid "External user synchronization" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:instance > :federating" +msgid "Federating" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:instance > :federation_incoming_replies_max_depth" +msgid "Fed. incoming replies max depth" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:instance > :federation_reachability_timeout_days" +msgid "Fed. reachability timeout days" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:instance > :healthcheck" +msgid "Healthcheck" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:instance > :instance_thumbnail" +msgid "Instance thumbnail" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:instance > :invites_enabled" +msgid "Invites enabled" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:instance > :limit" +msgid "Limit" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:instance > :limit_to_local_content" +msgid "Limit to local content" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:instance > :max_account_fields" +msgid "Max account fields" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:instance > :max_endorsed_users" +msgid "Max endorsed users" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:instance > :max_media_attachments" +msgid "Max media attachments" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:instance > :max_pinned_statuses" +msgid "Max pinned statuses" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:instance > :max_remote_account_fields" +msgid "Max remote account fields" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:instance > :max_report_comment_size" +msgid "Max report comment size" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:instance > :multi_factor_authentication" +msgid "Multi factor authentication" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:instance > :multi_factor_authentication > :backup_codes" +msgid "Backup codes" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:instance > :multi_factor_authentication > :backup_codes > :length" +msgid "Length" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:instance > :multi_factor_authentication > :backup_codes > :number" +msgid "Number" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:instance > :multi_factor_authentication > :totp" +msgid "TOTP settings" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:instance > :multi_factor_authentication > :totp > :digits" +msgid "Digits" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:instance > :multi_factor_authentication > :totp > :period" +msgid "Period" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:instance > :name" +msgid "Name" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:instance > :notify_email" +msgid "Sender Email Address" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:instance > :poll_limits" +msgid "Poll limits" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:instance > :poll_limits > :max_expiration" +msgid "Max expiration" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:instance > :poll_limits > :max_option_chars" +msgid "Max option chars" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:instance > :poll_limits > :max_options" +msgid "Max options" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:instance > :poll_limits > :min_expiration" +msgid "Min expiration" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:instance > :privileged_staff" +msgid "Privileged staff" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:instance > :profile_directory" +msgid "Profile directory" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:instance > :public" +msgid "Public" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:instance > :quarantined_instances" +msgid "Quarantined instances" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:instance > :registration_reason_length" +msgid "Registration reason length" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:instance > :registrations_open" +msgid "Registrations open" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:instance > :remote_limit" +msgid "Remote limit" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:instance > :remote_post_retention_days" +msgid "Remote post retention days" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:instance > :safe_dm_mentions" +msgid "Safe DM mentions" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:instance > :show_reactions" +msgid "Show reactions" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:instance > :skip_thread_containment" +msgid "Skip thread containment" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:instance > :static_dir" +msgid "Static dir" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:instance > :upload_limit" +msgid "Upload limit" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:instance > :user_bio_length" +msgid "User bio length" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:instance > :user_name_length" +msgid "User name length" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:instances_favicons > :enabled" +msgid "Enabled" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:ldap > :base" +msgid "Base" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:ldap > :enabled" +msgid "Enabled" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:ldap > :host" +msgid "Host" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:ldap > :port" +msgid "Port" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:ldap > :ssl" +msgid "SSL" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:ldap > :sslopts" +msgid "SSL options" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:ldap > :sslopts > :cacertfile" +msgid "Cacertfile" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:ldap > :sslopts > :verify" +msgid "Verify" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:ldap > :tls" +msgid "TLS" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:ldap > :tlsopts" +msgid "TLS options" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:ldap > :tlsopts > :cacertfile" +msgid "Cacertfile" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:ldap > :tlsopts > :verify" +msgid "Verify" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:ldap > :uid" +msgid "UID" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:majic_pool > :size" +msgid "Size" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:manifest > :background_color" +msgid "Background color" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:manifest > :icons" +msgid "Icons" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:manifest > :theme_color" +msgid "Theme color" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:markup > :allow_fonts" +msgid "Allow fonts" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:markup > :allow_headings" +msgid "Allow headings" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:markup > :allow_inline_images" +msgid "Allow inline images" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:markup > :allow_tables" +msgid "Allow tables" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:markup > :scrub_policy" +msgid "Scrub policy" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:media_preview_proxy > :enabled" +msgid "Enabled" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:media_preview_proxy > :image_quality" +msgid "Image quality" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:media_preview_proxy > :min_content_length" +msgid "Min content length" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:media_preview_proxy > :thumbnail_max_height" +msgid "Thumbnail max height" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:media_preview_proxy > :thumbnail_max_width" +msgid "Thumbnail max width" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:media_proxy > :base_url" +msgid "Base URL" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:media_proxy > :enabled" +msgid "Enabled" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:media_proxy > :invalidation" +msgid "Invalidation" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:media_proxy > :invalidation > :enabled" +msgid "Enabled" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:media_proxy > :invalidation > :provider" +msgid "Provider" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:media_proxy > :proxy_opts" +msgid "Advanced MediaProxy Options" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:media_proxy > :proxy_opts > :max_body_length" +msgid "Max body length" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:media_proxy > :proxy_opts > :max_read_duration" +msgid "Max read duration" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:media_proxy > :proxy_opts > :redirect_on_failure" +msgid "Redirect on failure" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:media_proxy > :whitelist" +msgid "Whitelist" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:modules > :runtime_dir" +msgid "Runtime dir" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:mrf > :policies" +msgid "Policies" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:mrf > :transparency" +msgid "MRF transparency" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:mrf > :transparency_exclusions" +msgid "MRF transparency exclusions" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:mrf_activity_expiration > :days" +msgid "Days" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:mrf_follow_bot > :follower_nickname" +msgid "Follower nickname" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:mrf_hashtag > :federated_timeline_removal" +msgid "Federated timeline removal" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:mrf_hashtag > :reject" +msgid "Reject" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:mrf_hashtag > :sensitive" +msgid "Sensitive" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:mrf_hellthread > :delist_threshold" +msgid "Delist threshold" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:mrf_hellthread > :reject_threshold" +msgid "Reject threshold" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:mrf_keyword > :federated_timeline_removal" +msgid "Federated timeline removal" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:mrf_keyword > :reject" +msgid "Reject" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:mrf_keyword > :replace" +msgid "Replace" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:mrf_mention > :actors" +msgid "Actors" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:mrf_normalize_markup > :scrub_policy" +msgid "Scrub policy" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:mrf_object_age > :actions" +msgid "Actions" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:mrf_object_age > :threshold" +msgid "Threshold" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:mrf_rejectnonpublic > :allow_direct" +msgid "Allow direct" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:mrf_rejectnonpublic > :allow_followersonly" +msgid "Allow followers-only" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:mrf_simple > :accept" +msgid "Accept" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:mrf_simple > :avatar_removal" +msgid "Avatar removal" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:mrf_simple > :banner_removal" +msgid "Banner removal" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:mrf_simple > :federated_timeline_removal" +msgid "Federated timeline removal" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:mrf_simple > :followers_only" +msgid "Followers only" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:mrf_simple > :media_nsfw" +msgid "Media NSFW" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:mrf_simple > :media_removal" +msgid "Media removal" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:mrf_simple > :reject" +msgid "Reject" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:mrf_simple > :reject_deletes" +msgid "Reject deletes" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:mrf_simple > :report_removal" +msgid "Report removal" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:mrf_steal_emoji > :hosts" +msgid "Hosts" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:mrf_steal_emoji > :rejected_shortcodes" +msgid "Rejected shortcodes" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:mrf_steal_emoji > :size_limit" +msgid "Size limit" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:mrf_subchain > :match_actor" +msgid "Match actor" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:mrf_vocabulary > :accept" +msgid "Accept" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:mrf_vocabulary > :reject" +msgid "Reject" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:oauth2 > :clean_expired_tokens" +msgid "Clean expired tokens" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:oauth2 > :issue_new_refresh_token" +msgid "Issue new refresh token" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:oauth2 > :token_expires_in" +msgid "Token expires in" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:pools > :default" +msgid "Default" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:pools > :default > :max_waiting" +msgid "Max waiting" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:pools > :default > :recv_timeout" +msgid "Recv timeout" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:pools > :default > :size" +msgid "Size" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:pools > :federation" +msgid "Federation" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:pools > :federation > :max_waiting" +msgid "Max waiting" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:pools > :federation > :recv_timeout" +msgid "Recv timeout" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:pools > :federation > :size" +msgid "Size" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:pools > :media" +msgid "Media" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:pools > :media > :max_waiting" +msgid "Max waiting" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:pools > :media > :recv_timeout" +msgid "Recv timeout" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:pools > :media > :size" +msgid "Size" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:pools > :upload" +msgid "Upload" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:pools > :upload > :max_waiting" +msgid "Max waiting" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:pools > :upload > :recv_timeout" +msgid "Recv timeout" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:pools > :upload > :size" +msgid "Size" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:populate_hashtags_table > :fault_rate_allowance" +msgid "Fault rate allowance" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:populate_hashtags_table > :sleep_interval_ms" +msgid "Sleep interval ms" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:rate_limit > :app_account_creation" +msgid "App account creation" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:rate_limit > :authentication" +msgid "Authentication" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:rate_limit > :relation_id_action" +msgid "Relation ID action" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:rate_limit > :relations_actions" +msgid "Relations actions" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:rate_limit > :search" +msgid "Search" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:rate_limit > :status_id_action" +msgid "Status ID action" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:rate_limit > :statuses_actions" +msgid "Statuses actions" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:rate_limit > :timeline" +msgid "Timeline" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:restrict_unauthenticated > :activities" +msgid "Activities" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:restrict_unauthenticated > :activities > :local" +msgid "Local" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:restrict_unauthenticated > :activities > :remote" +msgid "Remote" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:restrict_unauthenticated > :profiles" +msgid "Profiles" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:restrict_unauthenticated > :profiles > :local" +msgid "Local" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:restrict_unauthenticated > :profiles > :remote" +msgid "Remote" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:restrict_unauthenticated > :timelines" +msgid "Timelines" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:restrict_unauthenticated > :timelines > :federated" +msgid "Federated" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:restrict_unauthenticated > :timelines > :local" +msgid "Local" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:rich_media > :enabled" +msgid "Enabled" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:rich_media > :failure_backoff" +msgid "Failure backoff" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:rich_media > :ignore_hosts" +msgid "Ignore hosts" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:rich_media > :ignore_tld" +msgid "Ignore TLD" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:rich_media > :parsers" +msgid "Parsers" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:rich_media > :ttl_setters" +msgid "TTL setters" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:shout > :enabled" +msgid "Enabled" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:shout > :limit" +msgid "Limit" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:static_fe > :enabled" +msgid "Enabled" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:streamer > :overflow_workers" +msgid "Overflow workers" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:streamer > :workers" +msgid "Workers" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:uri_schemes > :valid_schemes" +msgid "Valid schemes" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:user > :deny_follow_blocked" +msgid "Deny follow blocked" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:web_cache_ttl > :activity_pub" +msgid "Activity pub" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:web_cache_ttl > :activity_pub_question" +msgid "Activity pub question" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:welcome > :chat_message" +msgid "Chat message" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:welcome > :chat_message > :enabled" +msgid "Enabled" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:welcome > :chat_message > :message" +msgid "Message" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:welcome > :chat_message > :sender_nickname" +msgid "Sender nickname" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:welcome > :direct_message" +msgid "Direct message" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:welcome > :direct_message > :enabled" +msgid "Enabled" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:welcome > :direct_message > :message" +msgid "Message" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:welcome > :direct_message > :sender_nickname" +msgid "Sender nickname" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:welcome > :email" +msgid "Email" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:welcome > :email > :enabled" +msgid "Enabled" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:welcome > :email > :html" +msgid "Html" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:welcome > :email > :sender" +msgid "Sender" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:welcome > :email > :subject" +msgid "Subject" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:welcome > :email > :text" +msgid "Text" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:workers > :retries" +msgid "Retries" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-ConcurrentLimiter > Pleroma.Web.ActivityPub.MRF.MediaProxyWarmingPolicy" +msgid "Pleroma.Web.ActivityPub.MRF.MediaProxyWarmingPolicy" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-ConcurrentLimiter > Pleroma.Web.ActivityPub.MRF.MediaProxyWarmingPolicy > :max_running" +msgid "Max running" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-ConcurrentLimiter > Pleroma.Web.ActivityPub.MRF.MediaProxyWarmingPolicy > :max_waiting" +msgid "Max waiting" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-ConcurrentLimiter > Pleroma.Web.RichMedia.Helpers" +msgid "Pleroma.Web.RichMedia.Helpers" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-ConcurrentLimiter > Pleroma.Web.RichMedia.Helpers > :max_running" +msgid "Max running" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-ConcurrentLimiter > Pleroma.Web.RichMedia.Helpers > :max_waiting" +msgid "Max waiting" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-Oban > :crontab" +msgid "Crontab" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-Oban > :log" +msgid "Log" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-Oban > :queues" +msgid "Queues" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-Oban > :queues > :activity_expiration" +msgid "Activity expiration" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-Oban > :queues > :attachments_cleanup" +msgid "Attachments cleanup" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-Oban > :queues > :background" +msgid "Background" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-Oban > :queues > :backup" +msgid "Backup" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-Oban > :queues > :federator_incoming" +msgid "Federator incoming" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-Oban > :queues > :federator_outgoing" +msgid "Federator outgoing" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-Oban > :queues > :mailer" +msgid "Mailer" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-Oban > :queues > :scheduled_activities" +msgid "Scheduled activities" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-Oban > :queues > :transmogrifier" +msgid "Transmogrifier" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-Oban > :queues > :web_push" +msgid "Web push" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-Pleroma.Captcha > :enabled" +msgid "Enabled" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-Pleroma.Captcha > :method" +msgid "Method" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-Pleroma.Captcha > :seconds_valid" +msgid "Seconds valid" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-Pleroma.Captcha.Kocaptcha > :endpoint" +msgid "Endpoint" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-Pleroma.Emails.Mailer > :adapter" +msgid "Adapter" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-Pleroma.Emails.Mailer > :enabled" +msgid "Mailer Enabled" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-Pleroma.Emails.Mailer > Swoosh.Adapters.AmazonSES-:access_key" +msgid "AWS Access Key" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-Pleroma.Emails.Mailer > Swoosh.Adapters.AmazonSES-:region" +msgid "AWS Region" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-Pleroma.Emails.Mailer > Swoosh.Adapters.AmazonSES-:secret" +msgid "AWS Secret Key" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-Pleroma.Emails.Mailer > Swoosh.Adapters.Dyn-:api_key" +msgid "Dyn API Key" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-Pleroma.Emails.Mailer > Swoosh.Adapters.Gmail-:access_token" +msgid "GMail API Access Token" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-Pleroma.Emails.Mailer > Swoosh.Adapters.Mailgun-:api_key" +msgid "Mailgun API Key" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-Pleroma.Emails.Mailer > Swoosh.Adapters.Mailgun-:domain" +msgid "Domain" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-Pleroma.Emails.Mailer > Swoosh.Adapters.Mailjet-:api_key" +msgid "MailJet Public API Key" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-Pleroma.Emails.Mailer > Swoosh.Adapters.Mailjet-:secret" +msgid "MailJet Private API Key" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-Pleroma.Emails.Mailer > Swoosh.Adapters.Mandrill-:api_key" +msgid "Mandrill API Key" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-Pleroma.Emails.Mailer > Swoosh.Adapters.Postmark-:api_key" +msgid "Postmark API Key" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-Pleroma.Emails.Mailer > Swoosh.Adapters.SMTP-:auth" +msgid "AUTH Mode" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-Pleroma.Emails.Mailer > Swoosh.Adapters.SMTP-:password" +msgid "Password" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-Pleroma.Emails.Mailer > Swoosh.Adapters.SMTP-:port" +msgid "Port" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-Pleroma.Emails.Mailer > Swoosh.Adapters.SMTP-:relay" +msgid "Relay" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-Pleroma.Emails.Mailer > Swoosh.Adapters.SMTP-:retries" +msgid "Retries" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-Pleroma.Emails.Mailer > Swoosh.Adapters.SMTP-:ssl" +msgid "Use SSL" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-Pleroma.Emails.Mailer > Swoosh.Adapters.SMTP-:tls" +msgid "STARTTLS Mode" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-Pleroma.Emails.Mailer > Swoosh.Adapters.SMTP-:username" +msgid "Username" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-Pleroma.Emails.Mailer > Swoosh.Adapters.Sendgrid-:api_key" +msgid "SendGrid API Key" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-Pleroma.Emails.Mailer > Swoosh.Adapters.Sendmail-:cmd_args" +msgid "Cmd args" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-Pleroma.Emails.Mailer > Swoosh.Adapters.Sendmail-:cmd_path" +msgid "Cmd path" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-Pleroma.Emails.Mailer > Swoosh.Adapters.Sendmail-:qmail" +msgid "Qmail compat mode" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-Pleroma.Emails.Mailer > Swoosh.Adapters.SocketLabs-:api_key" +msgid "SocketLabs API Key" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-Pleroma.Emails.Mailer > Swoosh.Adapters.SocketLabs-:server_id" +msgid "Server ID" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-Pleroma.Emails.Mailer > Swoosh.Adapters.SparkPost-:api_key" +msgid "SparkPost API key" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-Pleroma.Emails.Mailer > Swoosh.Adapters.SparkPost-:endpoint" +msgid "Endpoint" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-Pleroma.Emails.NewUsersDigestEmail > :enabled" +msgid "Enabled" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-Pleroma.Emails.UserEmail > :logo" +msgid "Logo" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-Pleroma.Emails.UserEmail > :styling" +msgid "Styling" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-Pleroma.Emails.UserEmail > :styling > :background_color" +msgid "Background color" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-Pleroma.Emails.UserEmail > :styling > :content_background_color" +msgid "Content background color" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-Pleroma.Emails.UserEmail > :styling > :header_color" +msgid "Header color" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-Pleroma.Emails.UserEmail > :styling > :link_color" +msgid "Link color" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-Pleroma.Emails.UserEmail > :styling > :text_color" +msgid "Text color" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-Pleroma.Emails.UserEmail > :styling > :text_muted_color" +msgid "Text muted color" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-Pleroma.Formatter > :class" +msgid "Class" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-Pleroma.Formatter > :extra" +msgid "Extra" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-Pleroma.Formatter > :new_window" +msgid "New window" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-Pleroma.Formatter > :rel" +msgid "Rel" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-Pleroma.Formatter > :strip_prefix" +msgid "Strip prefix" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-Pleroma.Formatter > :truncate" +msgid "Truncate" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-Pleroma.Formatter > :validate_tld" +msgid "Validate tld" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-Pleroma.ScheduledActivity > :daily_user_limit" +msgid "Daily user limit" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-Pleroma.ScheduledActivity > :enabled" +msgid "Enabled" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-Pleroma.ScheduledActivity > :total_user_limit" +msgid "Total user limit" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-Pleroma.Upload > :base_url" +msgid "Base URL" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-Pleroma.Upload > :filename_display_max_length" +msgid "Filename display max length" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-Pleroma.Upload > :filters" +msgid "Filters" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-Pleroma.Upload > :link_name" +msgid "Link name" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-Pleroma.Upload > :proxy_remote" +msgid "Proxy remote" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-Pleroma.Upload > :uploader" +msgid "Uploader" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-Pleroma.Upload.Filter.AnonymizeFilename > :text" +msgid "Text" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-Pleroma.Upload.Filter.Mogrify > :args" +msgid "Args" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-Pleroma.Uploaders.Local > :uploads" +msgid "Uploads" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-Pleroma.Uploaders.S3 > :bucket" +msgid "Bucket" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-Pleroma.Uploaders.S3 > :bucket_namespace" +msgid "Bucket namespace" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-Pleroma.Uploaders.S3 > :streaming_enabled" +msgid "Streaming enabled" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-Pleroma.Uploaders.S3 > :truncated_namespace" +msgid "Truncated namespace" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-Pleroma.User > :email_blacklist" +msgid "Email blacklist" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-Pleroma.User > :restricted_nicknames" +msgid "Restricted nicknames" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-Pleroma.User.Backup > :limit_days" +msgid "Limit days" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-Pleroma.User.Backup > :purge_after_days" +msgid "Purge after days" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-Pleroma.Web.ApiSpec.CastAndValidate > :strict" +msgid "Strict" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-Pleroma.Web.MediaProxy.Invalidation.Http > :headers" +msgid "Headers" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-Pleroma.Web.MediaProxy.Invalidation.Http > :method" +msgid "Method" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-Pleroma.Web.MediaProxy.Invalidation.Http > :options" +msgid "Options" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-Pleroma.Web.MediaProxy.Invalidation.Http > :options > :params" +msgid "Params" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-Pleroma.Web.MediaProxy.Invalidation.Script > :script_path" +msgid "Script path" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-Pleroma.Web.MediaProxy.Invalidation.Script > :url_format" +msgid "URL Format" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-Pleroma.Web.Metadata > :providers" +msgid "Providers" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-Pleroma.Web.Metadata > :unfurl_nsfw" +msgid "Unfurl NSFW" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-Pleroma.Web.Plugs.RemoteIp > :enabled" +msgid "Enabled" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-Pleroma.Web.Plugs.RemoteIp > :headers" +msgid "Headers" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-Pleroma.Web.Plugs.RemoteIp > :proxies" +msgid "Proxies" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-Pleroma.Web.Plugs.RemoteIp > :reserved" +msgid "Reserved" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-Pleroma.Web.Preload > :providers" +msgid "Providers" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-Pleroma.Workers.PurgeExpiredActivity > :enabled" +msgid "Enabled" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-Pleroma.Workers.PurgeExpiredActivity > :min_lifetime" +msgid "Min lifetime" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :prometheus-Pleroma.Web.Endpoint.MetricsExporter > :auth" +msgid "Auth" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :prometheus-Pleroma.Web.Endpoint.MetricsExporter > :enabled" +msgid "Enabled" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :prometheus-Pleroma.Web.Endpoint.MetricsExporter > :format" +msgid "Format" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :prometheus-Pleroma.Web.Endpoint.MetricsExporter > :ip_whitelist" +msgid "IP Whitelist" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :prometheus-Pleroma.Web.Endpoint.MetricsExporter > :path" +msgid "Path" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :web_push_encryption-:vapid_details > :private_key" +msgid "Private key" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :web_push_encryption-:vapid_details > :public_key" +msgid "Public key" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :web_push_encryption-:vapid_details > :subject" +msgid "Subject" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-:activitypub > :authorized_fetch_mode" +msgid "Require HTTP signatures for AP fetches" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-:instance > :short_description" +msgid "Shorter version of instance description. It can be seen on `/api/v1/instance`" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:activitypub > :authorized_fetch_mode" +msgid "Authorized fetch mode" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:instance > :short_description" +msgid "Short description" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-:delete_context_objects" +msgid "`delete_context_objects` background migration settings" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-:delete_context_objects > :fault_rate_allowance" +msgid "Max accepted rate of objects that failed in the migration. Any value from 0.0 which tolerates no errors to 1.0 which will enable the feature even if context object deletion failed for all records." +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-:delete_context_objects > :sleep_interval_ms" +msgid "Sleep interval between each chunk of processed records in order to decrease the load on the system (defaults to 0 and should be keep default on most instances)." +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-:instance > :birthday_min_age" +msgid "Minimum required age (in days) for users to create account. Only used if birthday is required." +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:delete_context_objects" +msgid "Delete context objects" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:delete_context_objects > :fault_rate_allowance" +msgid "Fault rate allowance" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:delete_context_objects > :sleep_interval_ms" +msgid "Sleep interval ms" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-:instance > :report_strip_status" +msgid "Strip associated statuses in reports to ids when closed/resolved, otherwise keep a copy" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config description at :pleroma-:mrf_object_age > :actions" +msgid "A list of actions to apply to the post. `:delist` removes the post from public timelines; `:strip_followers` removes followers from the ActivityPub recipient list ensuring they won't be delivered to home timelines, additionally for followers-only it degrades to a direct message; `:reject` rejects the message entirely" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/docs/translator.ex:5 +msgctxt "config label at :pleroma-:instance > :report_strip_status" +msgid "Report strip status" +msgstr "" diff --git a/priv/gettext/default.pot b/priv/gettext/default.pot new file mode 100644 index 000000000..10a62d2a8 --- /dev/null +++ b/priv/gettext/default.pot @@ -0,0 +1,185 @@ +## This file is a PO Template file. +## +## "msgid"s here are often extracted from source code. +## Add new translations manually only if they're dynamic +## translations that can't be statically extracted. +## +## Run "mix gettext.extract" to bring this file up to +## date. Leave "msgstr"s empty as changing them here as no +## effect: edit them in PO (.po) files instead. +msgid "" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/web/api_spec/render_error.ex:122 +msgid "%{name} - %{count} is not a multiple of %{multiple}." +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/web/api_spec/render_error.ex:131 +msgid "%{name} - %{value} is larger than exclusive maximum %{max}." +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/web/api_spec/render_error.ex:140 +msgid "%{name} - %{value} is larger than inclusive maximum %{max}." +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/web/api_spec/render_error.ex:149 +msgid "%{name} - %{value} is smaller than exclusive minimum %{min}." +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/web/api_spec/render_error.ex:158 +msgid "%{name} - %{value} is smaller than inclusive minimum %{min}." +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/web/api_spec/render_error.ex:102 +msgid "%{name} - Array items must be unique." +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/web/api_spec/render_error.ex:114 +msgid "%{name} - Array length %{length} is larger than maxItems: %{}." +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/web/api_spec/render_error.ex:106 +msgid "%{name} - Array length %{length} is smaller than minItems: %{min}." +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/web/api_spec/render_error.ex:166 +msgid "%{name} - Invalid %{type}. Got: %{value}." +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/web/api_spec/render_error.ex:174 +msgid "%{name} - Invalid format. Expected %{format}." +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/web/api_spec/render_error.ex:51 +msgid "%{name} - Invalid schema.type. Got: %{type}." +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/web/api_spec/render_error.ex:178 +msgid "%{name} - Invalid value for enum." +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/web/api_spec/render_error.ex:95 +msgid "%{name} - String length is larger than maxLength: %{length}." +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/web/api_spec/render_error.ex:88 +msgid "%{name} - String length is smaller than minLength: %{length}." +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/web/api_spec/render_error.ex:63 +msgid "%{name} - null value where %{type} expected." +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/web/api_spec/render_error.ex:60 +msgid "%{name} - null value." +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/web/api_spec/render_error.ex:182 +msgid "Failed to cast to any schema in %{polymorphic_type}" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/web/api_spec/render_error.ex:71 +msgid "Failed to cast value as %{invalid_schema}. Value must be castable using `allOf` schemas listed." +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/web/api_spec/render_error.ex:84 +msgid "Failed to cast value to one of: %{failed_schemas}." +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/web/api_spec/render_error.ex:78 +msgid "Failed to cast value using any of: %{failed_schemas}." +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/web/api_spec/render_error.ex:212 +msgid "Invalid value for header: %{name}." +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/web/api_spec/render_error.ex:204 +msgid "Missing field: %{name}." +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/web/api_spec/render_error.ex:208 +msgid "Missing header: %{name}." +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/web/api_spec/render_error.ex:196 +msgid "No value provided for required discriminator `%{field}`." +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/web/api_spec/render_error.ex:216 +msgid "Object property count %{property_count} is greater than maxProperties: %{max_properties}." +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/web/api_spec/render_error.ex:224 +msgid "Object property count %{property_count} is less than minProperties: %{min_properties}" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/web/templates/static_fe/static_fe/error.html.eex:2 +msgid "Oops" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/web/api_spec/render_error.ex:188 +msgid "Unexpected field: %{name}." +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/web/api_spec/render_error.ex:200 +msgid "Unknown schema: %{name}." +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/web/api_spec/render_error.ex:192 +msgid "Value used as discriminator for `%{field}` matches no schemas." +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/web/templates/embed/show.html.eex:43 +#: lib/pleroma/web/templates/static_fe/static_fe/_notice.html.eex:37 +msgid "announces" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/web/templates/embed/show.html.eex:44 +#: lib/pleroma/web/templates/static_fe/static_fe/_notice.html.eex:38 +msgid "likes" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/web/templates/embed/show.html.eex:42 +#: lib/pleroma/web/templates/static_fe/static_fe/_notice.html.eex:36 +msgid "replies" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/web/templates/embed/show.html.eex:27 +#: lib/pleroma/web/templates/static_fe/static_fe/_notice.html.eex:22 +msgid "sensitive media" +msgstr "" diff --git a/priv/gettext/en_test/LC_MESSAGES/default.po b/priv/gettext/en_test/LC_MESSAGES/default.po new file mode 100644 index 000000000..63db74608 --- /dev/null +++ b/priv/gettext/en_test/LC_MESSAGES/default.po @@ -0,0 +1,186 @@ +## "msgid"s in this file come from POT (.pot) files. +## +## Do not add, change, or remove "msgid"s manually here as +## they're tied to the ones in the corresponding POT file +## (with the same domain). +## +## Use "mix gettext.extract --merge" or "mix gettext.merge" +## to merge POT files into PO files. +msgid "" +msgstr "" +"Language: en_test\n" +"Plural-Forms: nplurals=2\n" + +#, elixir-format +#: lib/pleroma/web/api_spec/render_error.ex:122 +msgid "%{name} - %{count} is not a multiple of %{multiple}." +msgstr "" + +#, elixir-format +#: lib/pleroma/web/api_spec/render_error.ex:131 +msgid "%{name} - %{value} is larger than exclusive maximum %{max}." +msgstr "" + +#, elixir-format +#: lib/pleroma/web/api_spec/render_error.ex:140 +msgid "%{name} - %{value} is larger than inclusive maximum %{max}." +msgstr "" + +#, elixir-format +#: lib/pleroma/web/api_spec/render_error.ex:149 +msgid "%{name} - %{value} is smaller than exclusive minimum %{min}." +msgstr "" + +#, elixir-format +#: lib/pleroma/web/api_spec/render_error.ex:158 +msgid "%{name} - %{value} is smaller than inclusive minimum %{min}." +msgstr "" + +#, elixir-format +#: lib/pleroma/web/api_spec/render_error.ex:102 +msgid "%{name} - Array items must be unique." +msgstr "" + +#, elixir-format +#: lib/pleroma/web/api_spec/render_error.ex:114 +msgid "%{name} - Array length %{length} is larger than maxItems: %{}." +msgstr "" + +#, elixir-format +#: lib/pleroma/web/api_spec/render_error.ex:106 +msgid "%{name} - Array length %{length} is smaller than minItems: %{min}." +msgstr "" + +#, elixir-format +#: lib/pleroma/web/api_spec/render_error.ex:166 +msgid "%{name} - Invalid %{type}. Got: %{value}." +msgstr "" + +#, elixir-format +#: lib/pleroma/web/api_spec/render_error.ex:174 +msgid "%{name} - Invalid format. Expected %{format}." +msgstr "" + +#, elixir-format +#: lib/pleroma/web/api_spec/render_error.ex:51 +msgid "%{name} - Invalid schema.type. Got: %{type}." +msgstr "" + +#, elixir-format +#: lib/pleroma/web/api_spec/render_error.ex:178 +msgid "%{name} - Invalid value for enum." +msgstr "" + +#, elixir-format +#: lib/pleroma/web/api_spec/render_error.ex:95 +msgid "%{name} - String length is larger than maxLength: %{length}." +msgstr "" + +#, elixir-format +#: lib/pleroma/web/api_spec/render_error.ex:88 +msgid "%{name} - String length is smaller than minLength: %{length}." +msgstr "" + +#, elixir-format +#: lib/pleroma/web/api_spec/render_error.ex:63 +msgid "%{name} - null value where %{type} expected." +msgstr "" + +#, elixir-format +#: lib/pleroma/web/api_spec/render_error.ex:60 +msgid "%{name} - null value." +msgstr "" + +#, elixir-format +#: lib/pleroma/web/api_spec/render_error.ex:182 +msgid "Failed to cast to any schema in %{polymorphic_type}" +msgstr "" + +#, elixir-format +#: lib/pleroma/web/api_spec/render_error.ex:71 +msgid "Failed to cast value as %{invalid_schema}. Value must be castable using `allOf` schemas listed." +msgstr "" + +#, elixir-format +#: lib/pleroma/web/api_spec/render_error.ex:84 +msgid "Failed to cast value to one of: %{failed_schemas}." +msgstr "" + +#, elixir-format +#: lib/pleroma/web/api_spec/render_error.ex:78 +msgid "Failed to cast value using any of: %{failed_schemas}." +msgstr "" + +#, elixir-format +#: lib/pleroma/web/api_spec/render_error.ex:212 +msgid "Invalid value for header: %{name}." +msgstr "" + +#, elixir-format +#: lib/pleroma/web/api_spec/render_error.ex:204 +msgid "Missing field: %{name}." +msgstr "" + +#, elixir-format +#: lib/pleroma/web/api_spec/render_error.ex:208 +msgid "Missing header: %{name}." +msgstr "" + +#, elixir-format +#: lib/pleroma/web/api_spec/render_error.ex:196 +msgid "No value provided for required discriminator `%{field}`." +msgstr "" + +#, elixir-format +#: lib/pleroma/web/api_spec/render_error.ex:216 +msgid "Object property count %{property_count} is greater than maxProperties: %{max_properties}." +msgstr "" + +#, elixir-format +#: lib/pleroma/web/api_spec/render_error.ex:224 +msgid "Object property count %{property_count} is less than minProperties: %{min_properties}" +msgstr "" + +#, elixir-format +#: lib/pleroma/web/templates/static_fe/static_fe/error.html.eex:2 +msgid "Oops" +msgstr "" + +#, elixir-format +#: lib/pleroma/web/api_spec/render_error.ex:188 +msgid "Unexpected field: %{name}." +msgstr "" + +#, elixir-format +#: lib/pleroma/web/api_spec/render_error.ex:200 +msgid "Unknown schema: %{name}." +msgstr "" + +#, elixir-format +#: lib/pleroma/web/api_spec/render_error.ex:192 +msgid "Value used as discriminator for `%{field}` matches no schemas." +msgstr "" + +#, elixir-format +#: lib/pleroma/web/templates/embed/show.html.eex:43 +#: lib/pleroma/web/templates/static_fe/static_fe/_notice.html.eex:37 +msgid "announces" +msgstr "" + +#, elixir-format +#: lib/pleroma/web/templates/embed/show.html.eex:44 +#: lib/pleroma/web/templates/static_fe/static_fe/_notice.html.eex:38 +msgid "likes" +msgstr "" + +#, elixir-format +#: lib/pleroma/web/templates/embed/show.html.eex:42 +#: lib/pleroma/web/templates/static_fe/static_fe/_notice.html.eex:36 +msgid "replies" +msgstr "" + +#, elixir-format +#: lib/pleroma/web/templates/embed/show.html.eex:27 +#: lib/pleroma/web/templates/static_fe/static_fe/_notice.html.eex:22 +msgid "sensitive media" +msgstr "" diff --git a/priv/gettext/en_test/LC_MESSAGES/errors.po b/priv/gettext/en_test/LC_MESSAGES/errors.po new file mode 100644 index 000000000..a40de7f8b --- /dev/null +++ b/priv/gettext/en_test/LC_MESSAGES/errors.po @@ -0,0 +1,557 @@ +## "msgid"s in this file come from POT (.pot) files. +## +## Do not add, change, or remove "msgid"s manually here as +## they're tied to the ones in the corresponding POT file +## (with the same domain). +## +## Use "mix gettext.extract --merge" or "mix gettext.merge" +## to merge POT files into PO files. +msgid "" +msgstr "" +"Language: en_test\n" +"Plural-Forms: nplurals=2\n" + +msgid "can't be blank" +msgstr "" + +msgid "has already been taken" +msgstr "" + +msgid "is invalid" +msgstr "" + +msgid "has invalid format" +msgstr "" + +msgid "has an invalid entry" +msgstr "" + +msgid "is reserved" +msgstr "" + +msgid "does not match confirmation" +msgstr "" + +msgid "is still associated with this entry" +msgstr "" + +msgid "are still associated with this entry" +msgstr "" + +msgid "should be %{count} character(s)" +msgid_plural "should be %{count} character(s)" +msgstr[0] "" +msgstr[1] "" + +msgid "should have %{count} item(s)" +msgid_plural "should have %{count} item(s)" +msgstr[0] "" +msgstr[1] "" + +msgid "should be at least %{count} character(s)" +msgid_plural "should be at least %{count} character(s)" +msgstr[0] "" +msgstr[1] "" + +msgid "should have at least %{count} item(s)" +msgid_plural "should have at least %{count} item(s)" +msgstr[0] "" +msgstr[1] "" + +msgid "should be at most %{count} character(s)" +msgid_plural "should be at most %{count} character(s)" +msgstr[0] "" +msgstr[1] "" + +msgid "should have at most %{count} item(s)" +msgid_plural "should have at most %{count} item(s)" +msgstr[0] "" +msgstr[1] "" + +msgid "must be less than %{number}" +msgstr "" + +msgid "must be greater than %{number}" +msgstr "" + +msgid "must be less than or equal to %{number}" +msgstr "" + +msgid "must be greater than or equal to %{number}" +msgstr "" + +msgid "must be equal to %{number}" +msgstr "" + +#, elixir-format +#: lib/pleroma/web/common_api.ex:523 +msgid "Account not found" +msgstr "" + +#, elixir-format +#: lib/pleroma/web/common_api.ex:316 +msgid "Already voted" +msgstr "" + +#, elixir-format +#: lib/pleroma/web/o_auth/o_auth_controller.ex:402 +msgid "Bad request" +msgstr "" + +#, elixir-format +#: lib/pleroma/web/controller_helper.ex:97 +#: lib/pleroma/web/controller_helper.ex:103 +msgid "Can't display this activity" +msgstr "" + +#, elixir-format +#: lib/pleroma/web/mastodon_api/controllers/account_controller.ex:324 +msgid "Can't find user" +msgstr "" + +#, elixir-format +#: lib/pleroma/web/pleroma_api/controllers/account_controller.ex:80 +msgid "Can't get favorites" +msgstr "" + +#, elixir-format +#: lib/pleroma/web/common_api/utils.ex:482 +msgid "Cannot post an empty status without attachments" +msgstr "" + +#, elixir-format +#: lib/pleroma/web/common_api/utils.ex:441 +msgid "Comment must be up to %{max_size} characters" +msgstr "" + +#, elixir-format +#: lib/pleroma/config_db.ex:200 +msgid "Config with params %{params} not found" +msgstr "" + +#, elixir-format +#: lib/pleroma/web/common_api.ex:167 lib/pleroma/web/common_api.ex:171 +msgid "Could not delete" +msgstr "" + +#, elixir-format +#: lib/pleroma/web/common_api.ex:217 +msgid "Could not favorite" +msgstr "" + +#, elixir-format +#: lib/pleroma/web/common_api.ex:254 +msgid "Could not unfavorite" +msgstr "" + +#, elixir-format +#: lib/pleroma/web/common_api.ex:202 +msgid "Could not unrepeat" +msgstr "" + +#, elixir-format +#: lib/pleroma/web/common_api.ex:530 lib/pleroma/web/common_api.ex:539 +msgid "Could not update state" +msgstr "" + +#, elixir-format +#: lib/pleroma/web/mastodon_api/controllers/timeline_controller.ex:205 +msgid "Error." +msgstr "" + +#, elixir-format +#: lib/pleroma/web/twitter_api/twitter_api.ex:99 +msgid "Invalid CAPTCHA" +msgstr "" + +#, elixir-format +#: lib/pleroma/web/mastodon_api/controllers/account_controller.ex:144 +#: lib/pleroma/web/o_auth/o_auth_controller.ex:631 +msgid "Invalid credentials" +msgstr "" + +#, elixir-format +#: lib/pleroma/web/plugs/ensure_authenticated_plug.ex:42 +msgid "Invalid credentials." +msgstr "" + +#, elixir-format +#: lib/pleroma/web/common_api.ex:337 +msgid "Invalid indices" +msgstr "" + +#, elixir-format +#: lib/pleroma/web/admin_api/controllers/fallback_controller.ex:29 +msgid "Invalid parameters" +msgstr "" + +#, elixir-format +#: lib/pleroma/web/common_api/utils.ex:349 +msgid "Invalid password." +msgstr "" + +#, elixir-format +#: lib/pleroma/web/mastodon_api/controllers/account_controller.ex:254 +msgid "Invalid request" +msgstr "" + +#, elixir-format +#: lib/pleroma/web/twitter_api/twitter_api.ex:102 +msgid "Kocaptcha service unavailable" +msgstr "" + +#, elixir-format +#: lib/pleroma/web/mastodon_api/controllers/account_controller.ex:140 +msgid "Missing parameters" +msgstr "" + +#, elixir-format +#: lib/pleroma/web/common_api/utils.ex:477 +msgid "No such conversation" +msgstr "" + +#, elixir-format +#: lib/pleroma/web/admin_api/controllers/admin_api_controller.ex:171 +#: lib/pleroma/web/admin_api/controllers/admin_api_controller.ex:197 lib/pleroma/web/admin_api/controllers/admin_api_controller.ex:239 +msgid "No such permission_group" +msgstr "" + +#, elixir-format +#: lib/pleroma/web/activity_pub/activity_pub_controller.ex:504 +#: lib/pleroma/web/admin_api/controllers/fallback_controller.ex:11 lib/pleroma/web/feed/tag_controller.ex:16 +#: lib/pleroma/web/feed/user_controller.ex:69 lib/pleroma/web/o_status/o_status_controller.ex:132 +#: lib/pleroma/web/plugs/uploaded_media.ex:84 +msgid "Not found" +msgstr "" + +#, elixir-format +#: lib/pleroma/web/common_api.ex:308 +msgid "Poll's author can't vote" +msgstr "" + +#, elixir-format +#: lib/pleroma/web/mastodon_api/controllers/fallback_controller.ex:20 +#: lib/pleroma/web/mastodon_api/controllers/poll_controller.ex:39 lib/pleroma/web/mastodon_api/controllers/poll_controller.ex:51 +#: lib/pleroma/web/mastodon_api/controllers/poll_controller.ex:52 lib/pleroma/web/mastodon_api/controllers/status_controller.ex:326 +#: lib/pleroma/web/mastodon_api/controllers/subscription_controller.ex:71 +msgid "Record not found" +msgstr "" + +#, elixir-format +#: lib/pleroma/web/admin_api/controllers/fallback_controller.ex:35 +#: lib/pleroma/web/feed/user_controller.ex:78 lib/pleroma/web/mastodon_api/controllers/fallback_controller.ex:42 +#: lib/pleroma/web/o_status/o_status_controller.ex:138 +msgid "Something went wrong" +msgstr "" + +#, elixir-format +#: lib/pleroma/web/common_api/activity_draft.ex:143 +msgid "The message visibility must be direct" +msgstr "" + +#, elixir-format +#: lib/pleroma/web/common_api/utils.ex:492 +msgid "The status is over the character limit" +msgstr "" + +#, elixir-format +#: lib/pleroma/web/plugs/ensure_public_or_authenticated_plug.ex:36 +msgid "This resource requires authentication." +msgstr "" + +#, elixir-format +#: lib/pleroma/web/plugs/rate_limiter.ex:208 +msgid "Throttled" +msgstr "" + +#, elixir-format +#: lib/pleroma/web/common_api.ex:338 +msgid "Too many choices" +msgstr "" + +#, elixir-format +#: lib/pleroma/web/admin_api/controllers/admin_api_controller.ex:268 +msgid "You can't revoke your own admin status." +msgstr "" + +#, elixir-format +#: lib/pleroma/web/o_auth/o_auth_controller.ex:243 +#: lib/pleroma/web/o_auth/o_auth_controller.ex:333 +msgid "Your account is currently disabled" +msgstr "" + +#, elixir-format +#: lib/pleroma/web/o_auth/o_auth_controller.ex:205 +#: lib/pleroma/web/o_auth/o_auth_controller.ex:356 +msgid "Your login is missing a confirmed e-mail address" +msgstr "" + +#, elixir-format +#: lib/pleroma/web/activity_pub/activity_pub_controller.ex:392 +msgid "can't read inbox of %{nickname} as %{as_nickname}" +msgstr "" + +#, elixir-format +#: lib/pleroma/web/activity_pub/activity_pub_controller.ex:491 +msgid "can't update outbox of %{nickname} as %{as_nickname}" +msgstr "" + +#, elixir-format +#: lib/pleroma/web/common_api.ex:475 +msgid "conversation is already muted" +msgstr "" + +#, elixir-format +#: lib/pleroma/web/activity_pub/activity_pub_controller.ex:510 +msgid "error" +msgstr "" + +#, elixir-format +#: lib/pleroma/web/pleroma_api/controllers/mascot_controller.ex:34 +msgid "mascots can only be images" +msgstr "" + +#, elixir-format +#: lib/pleroma/web/activity_pub/activity_pub_controller.ex:63 +msgid "not found" +msgstr "" + +#, elixir-format +#: lib/pleroma/web/o_auth/o_auth_controller.ex:437 +msgid "Bad OAuth request." +msgstr "" + +#, elixir-format +#: lib/pleroma/web/twitter_api/twitter_api.ex:108 +msgid "CAPTCHA already used" +msgstr "" + +#, elixir-format +#: lib/pleroma/web/twitter_api/twitter_api.ex:105 +msgid "CAPTCHA expired" +msgstr "" + +#, elixir-format +#: lib/pleroma/web/plugs/uploaded_media.ex:57 +msgid "Failed" +msgstr "" + +#, elixir-format +#: lib/pleroma/web/o_auth/o_auth_controller.ex:453 +msgid "Failed to authenticate: %{message}." +msgstr "" + +#, elixir-format +#: lib/pleroma/web/o_auth/o_auth_controller.ex:484 +msgid "Failed to set up user account." +msgstr "" + +#, elixir-format +#: lib/pleroma/web/plugs/o_auth_scopes_plug.ex:37 +msgid "Insufficient permissions: %{permissions}." +msgstr "" + +#, elixir-format +#: lib/pleroma/web/plugs/uploaded_media.ex:111 +msgid "Internal Error" +msgstr "" + +#, elixir-format +#: lib/pleroma/web/o_auth/fallback_controller.ex:22 +#: lib/pleroma/web/o_auth/fallback_controller.ex:29 +msgid "Invalid Username/Password" +msgstr "" + +#, elixir-format +#: lib/pleroma/web/twitter_api/twitter_api.ex:111 +msgid "Invalid answer data" +msgstr "" + +#, elixir-format +#: lib/pleroma/web/nodeinfo/nodeinfo_controller.ex:33 +msgid "Nodeinfo schema version not handled" +msgstr "" + +#, elixir-format +#: lib/pleroma/web/o_auth/o_auth_controller.ex:194 +msgid "This action is outside the authorized scopes" +msgstr "" + +#, elixir-format +#: lib/pleroma/web/o_auth/fallback_controller.ex:14 +msgid "Unknown error, please check the details and try again." +msgstr "" + +#, elixir-format +#: lib/pleroma/web/o_auth/o_auth_controller.ex:136 +#: lib/pleroma/web/o_auth/o_auth_controller.ex:180 +msgid "Unlisted redirect_uri." +msgstr "" + +#, elixir-format +#: lib/pleroma/web/o_auth/o_auth_controller.ex:433 +msgid "Unsupported OAuth provider: %{provider}." +msgstr "" + +#, elixir-format +#: lib/pleroma/uploaders/uploader.ex:74 +msgid "Uploader callback timeout" +msgstr "" + +#, elixir-format +#: lib/pleroma/web/uploader_controller.ex:23 +msgid "bad request" +msgstr "" + +#, elixir-format +#: lib/pleroma/web/twitter_api/twitter_api.ex:96 +msgid "CAPTCHA Error" +msgstr "" + +#, elixir-format +#: lib/pleroma/web/common_api.ex:266 +msgid "Could not add reaction emoji" +msgstr "" + +#, elixir-format +#: lib/pleroma/web/common_api.ex:277 +msgid "Could not remove reaction emoji" +msgstr "" + +#, elixir-format +#: lib/pleroma/web/twitter_api/twitter_api.ex:122 +msgid "Invalid CAPTCHA (Missing parameter: %{name})" +msgstr "" + +#, elixir-format +#: lib/pleroma/web/mastodon_api/controllers/list_controller.ex:96 +msgid "List not found" +msgstr "" + +#, elixir-format +#: lib/pleroma/web/mastodon_api/controllers/account_controller.ex:151 +msgid "Missing parameter: %{name}" +msgstr "" + +#, elixir-format +#: lib/pleroma/web/o_auth/o_auth_controller.ex:232 +#: lib/pleroma/web/o_auth/o_auth_controller.ex:346 +msgid "Password reset is required" +msgstr "" + +#, elixir-format +#: lib/pleroma/tests/auth_test_controller.ex:9 +#: lib/pleroma/web/activity_pub/activity_pub_controller.ex:6 lib/pleroma/web/admin_api/controllers/admin_api_controller.ex:6 +#: lib/pleroma/web/admin_api/controllers/chat_controller.ex:6 lib/pleroma/web/admin_api/controllers/config_controller.ex:6 +#: lib/pleroma/web/admin_api/controllers/fallback_controller.ex:6 lib/pleroma/web/admin_api/controllers/frontend_controller.ex:6 +#: lib/pleroma/web/admin_api/controllers/instance_controller.ex:6 lib/pleroma/web/admin_api/controllers/instance_document_controller.ex:6 +#: lib/pleroma/web/admin_api/controllers/invite_controller.ex:6 lib/pleroma/web/admin_api/controllers/media_proxy_cache_controller.ex:6 +#: lib/pleroma/web/admin_api/controllers/o_auth_app_controller.ex:6 lib/pleroma/web/admin_api/controllers/relay_controller.ex:6 +#: lib/pleroma/web/admin_api/controllers/report_controller.ex:6 lib/pleroma/web/admin_api/controllers/status_controller.ex:6 +#: lib/pleroma/web/admin_api/controllers/user_controller.ex:6 lib/pleroma/web/controller_helper.ex:6 lib/pleroma/web/embed_controller.ex:6 +#: lib/pleroma/web/fallback/redirect_controller.ex:6 lib/pleroma/web/feed/tag_controller.ex:6 +#: lib/pleroma/web/feed/user_controller.ex:6 lib/pleroma/web/mailer/subscription_controller.ex:6 +#: lib/pleroma/web/manifest_controller.ex:6 lib/pleroma/web/mastodon_api/controllers/account_controller.ex:6 +#: lib/pleroma/web/mastodon_api/controllers/app_controller.ex:11 lib/pleroma/web/mastodon_api/controllers/auth_controller.ex:6 +#: lib/pleroma/web/mastodon_api/controllers/conversation_controller.ex:6 lib/pleroma/web/mastodon_api/controllers/custom_emoji_controller.ex:6 +#: lib/pleroma/web/mastodon_api/controllers/directory_controller.ex:6 lib/pleroma/web/mastodon_api/controllers/domain_block_controller.ex:6 +#: lib/pleroma/web/mastodon_api/controllers/fallback_controller.ex:6 lib/pleroma/web/mastodon_api/controllers/filter_controller.ex:6 +#: lib/pleroma/web/mastodon_api/controllers/follow_request_controller.ex:6 lib/pleroma/web/mastodon_api/controllers/instance_controller.ex:6 +#: lib/pleroma/web/mastodon_api/controllers/list_controller.ex:6 lib/pleroma/web/mastodon_api/controllers/marker_controller.ex:6 +#: lib/pleroma/web/mastodon_api/controllers/mastodon_api_controller.ex:14 lib/pleroma/web/mastodon_api/controllers/media_controller.ex:6 +#: lib/pleroma/web/mastodon_api/controllers/notification_controller.ex:6 lib/pleroma/web/mastodon_api/controllers/poll_controller.ex:6 +#: lib/pleroma/web/mastodon_api/controllers/report_controller.ex:6 lib/pleroma/web/mastodon_api/controllers/scheduled_activity_controller.ex:6 +#: lib/pleroma/web/mastodon_api/controllers/search_controller.ex:6 lib/pleroma/web/mastodon_api/controllers/status_controller.ex:6 +#: lib/pleroma/web/mastodon_api/controllers/subscription_controller.ex:7 lib/pleroma/web/mastodon_api/controllers/suggestion_controller.ex:6 +#: lib/pleroma/web/mastodon_api/controllers/timeline_controller.ex:6 lib/pleroma/web/media_proxy/media_proxy_controller.ex:6 +#: lib/pleroma/web/mongoose_im/mongoose_im_controller.ex:6 lib/pleroma/web/nodeinfo/nodeinfo_controller.ex:6 +#: lib/pleroma/web/o_auth/fallback_controller.ex:6 lib/pleroma/web/o_auth/mfa_controller.ex:10 +#: lib/pleroma/web/o_auth/o_auth_controller.ex:6 lib/pleroma/web/o_status/o_status_controller.ex:6 +#: lib/pleroma/web/pleroma_api/controllers/account_controller.ex:6 lib/pleroma/web/pleroma_api/controllers/app_controller.ex:6 +#: lib/pleroma/web/pleroma_api/controllers/backup_controller.ex:6 lib/pleroma/web/pleroma_api/controllers/chat_controller.ex:5 +#: lib/pleroma/web/pleroma_api/controllers/conversation_controller.ex:6 lib/pleroma/web/pleroma_api/controllers/emoji_file_controller.ex:6 +#: lib/pleroma/web/pleroma_api/controllers/emoji_pack_controller.ex:6 lib/pleroma/web/pleroma_api/controllers/emoji_reaction_controller.ex:6 +#: lib/pleroma/web/pleroma_api/controllers/instances_controller.ex:6 lib/pleroma/web/pleroma_api/controllers/mascot_controller.ex:6 +#: lib/pleroma/web/pleroma_api/controllers/notification_controller.ex:6 lib/pleroma/web/pleroma_api/controllers/report_controller.ex:6 +#: lib/pleroma/web/pleroma_api/controllers/scrobble_controller.ex:6 +#: lib/pleroma/web/pleroma_api/controllers/two_factor_authentication_controller.ex:7 lib/pleroma/web/pleroma_api/controllers/user_import_controller.ex:6 +#: lib/pleroma/web/static_fe/static_fe_controller.ex:6 lib/pleroma/web/twitter_api/controller.ex:6 +#: lib/pleroma/web/twitter_api/controllers/password_controller.ex:10 lib/pleroma/web/twitter_api/controllers/remote_follow_controller.ex:6 +#: lib/pleroma/web/twitter_api/controllers/util_controller.ex:6 lib/pleroma/web/uploader_controller.ex:6 +#: lib/pleroma/web/web_finger/web_finger_controller.ex:6 +msgid "Security violation: OAuth scopes check was neither handled nor explicitly skipped." +msgstr "" + +#, elixir-format +#: lib/pleroma/web/plugs/ensure_authenticated_plug.ex:32 +msgid "Two-factor authentication enabled, you must use a access token." +msgstr "" + +#, elixir-format +#: lib/pleroma/web/mastodon_api/controllers/subscription_controller.ex:61 +msgid "Web push subscription is disabled on this Pleroma instance" +msgstr "" + +#, elixir-format +#: lib/pleroma/web/admin_api/controllers/admin_api_controller.ex:234 +msgid "You can't revoke your own admin/moderator status." +msgstr "" + +#, elixir-format +#: lib/pleroma/web/mastodon_api/controllers/timeline_controller.ex:129 +msgid "authorization required for timeline view" +msgstr "" + +#, elixir-format +#: lib/pleroma/web/mastodon_api/controllers/fallback_controller.ex:24 +msgid "Access denied" +msgstr "" + +#, elixir-format +#: lib/pleroma/web/mastodon_api/controllers/account_controller.ex:321 +msgid "This API requires an authenticated user" +msgstr "" + +#, elixir-format +#: lib/pleroma/web/plugs/ensure_staff_privileged_plug.ex:26 +#: lib/pleroma/web/plugs/user_is_admin_plug.ex:21 +msgid "User is not an admin." +msgstr "" + +#, elixir-format +#: lib/pleroma/user/backup.ex:75 +msgid "Last export was less than a day ago" +msgid_plural "Last export was less than %{days} days ago" +msgstr[0] "" +msgstr[1] "" + +#, elixir-format +#: lib/pleroma/user/backup.ex:93 +msgid "Backups require enabled email" +msgstr "" + +#, elixir-format +#: lib/pleroma/web/activity_pub/activity_pub_controller.ex:423 +msgid "Character limit (%{limit} characters) exceeded, contains %{length} characters" +msgstr "" + +#, elixir-format +#: lib/pleroma/user/backup.ex:98 +msgid "Email is required" +msgstr "" + +#, elixir-format +#: lib/pleroma/web/common_api/utils.ex:507 +msgid "Too many attachments" +msgstr "" + +#, elixir-format +#: lib/pleroma/web/plugs/ensure_staff_privileged_plug.ex:33 +#: lib/pleroma/web/plugs/user_is_staff_plug.ex:20 +msgid "User is not a staff member." +msgstr "" + +#, elixir-format +#: lib/pleroma/web/o_auth/o_auth_controller.ex:366 +msgid "Your account is awaiting approval." +msgstr "" diff --git a/priv/gettext/en_test/LC_MESSAGES/posix_errors.po b/priv/gettext/en_test/LC_MESSAGES/posix_errors.po new file mode 100644 index 000000000..663fc5924 --- /dev/null +++ b/priv/gettext/en_test/LC_MESSAGES/posix_errors.po @@ -0,0 +1,153 @@ +## "msgid"s in this file come from POT (.pot) files. +## +## Do not add, change, or remove "msgid"s manually here as +## they're tied to the ones in the corresponding POT file +## (with the same domain). +## +## Use "mix gettext.extract --merge" or "mix gettext.merge" +## to merge POT files into PO files. +msgid "" +msgstr "" +"Language: en_test\n" +"Plural-Forms: nplurals=2\n" + +msgid "eperm" +msgstr "" + +msgid "eacces" +msgstr "" + +msgid "eagain" +msgstr "" + +msgid "ebadf" +msgstr "" + +msgid "ebadmsg" +msgstr "" + +msgid "ebusy" +msgstr "" + +msgid "edeadlk" +msgstr "" + +msgid "edeadlock" +msgstr "" + +msgid "edquot" +msgstr "" + +msgid "eexist" +msgstr "" + +msgid "efault" +msgstr "" + +msgid "efbig" +msgstr "" + +msgid "eftype" +msgstr "" + +msgid "eintr" +msgstr "" + +msgid "einval" +msgstr "" + +msgid "eio" +msgstr "" + +msgid "eisdir" +msgstr "" + +msgid "eloop" +msgstr "" + +msgid "emfile" +msgstr "" + +msgid "emlink" +msgstr "" + +msgid "emultihop" +msgstr "" + +msgid "enametoolong" +msgstr "" + +msgid "enfile" +msgstr "" + +msgid "enobufs" +msgstr "" + +msgid "enodev" +msgstr "" + +msgid "enolck" +msgstr "" + +msgid "enolink" +msgstr "" + +msgid "enoent" +msgstr "" + +msgid "enomem" +msgstr "" + +msgid "enospc" +msgstr "" + +msgid "enosr" +msgstr "" + +msgid "enostr" +msgstr "" + +msgid "enosys" +msgstr "" + +msgid "enotblk" +msgstr "" + +msgid "enotdir" +msgstr "" + +msgid "enotsup" +msgstr "" + +msgid "enxio" +msgstr "" + +msgid "eopnotsupp" +msgstr "" + +msgid "eoverflow" +msgstr "" + +msgid "epipe" +msgstr "" + +msgid "erange" +msgstr "" + +msgid "erofs" +msgstr "" + +msgid "espipe" +msgstr "" + +msgid "esrch" +msgstr "" + +msgid "estale" +msgstr "" + +msgid "etxtbsy" +msgstr "" + +msgid "exdev" +msgstr "" diff --git a/priv/gettext/en_test/LC_MESSAGES/static_pages.po b/priv/gettext/en_test/LC_MESSAGES/static_pages.po new file mode 100644 index 000000000..1a3b7b355 --- /dev/null +++ b/priv/gettext/en_test/LC_MESSAGES/static_pages.po @@ -0,0 +1,529 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR Free Software Foundation, Inc. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"PO-Revision-Date: 2022-03-06 11:27-0500\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=CHARSET\n" +"Content-Transfer-Encoding: 8bit\n" + +#~ ## "msgid"s in this file come from POT (.pot) files. +#~ ## +#~ ## Do not add, change, or remove "msgid"s manually here as +#~ ## they're tied to the ones in the corresponding POT file +#~ ## (with the same domain). +#~ ## +#~ ## Use "mix gettext.extract --merge" or "mix gettext.merge" +#~ ## to merge POT files into PO files. +#~ msgid "" +#~ msgstr "" +#~ "Language: en_test\n" +#~ "Plural-Forms: nplurals=2\n" + +#, elixir-format +#: lib/pleroma/web/templates/twitter_api/remote_follow/follow.html.eex:9 +msgctxt "remote follow authorization button" +msgid "Authorize" +msgstr "" + +#, elixir-format +#: lib/pleroma/web/templates/twitter_api/remote_follow/follow.html.eex:2 +msgctxt "remote follow error" +msgid "Error fetching user" +msgstr "" + +#, elixir-format +#: lib/pleroma/web/templates/twitter_api/remote_follow/follow.html.eex:4 +msgctxt "remote follow header" +msgid "Remote follow" +msgstr "" + +#, elixir-format +#: lib/pleroma/web/templates/twitter_api/remote_follow/follow_mfa.html.eex:8 +msgctxt "placeholder text for auth code entry" +msgid "Authentication code" +msgstr "" + +#, elixir-format +#: lib/pleroma/web/templates/twitter_api/remote_follow/follow_login.html.eex:10 +msgctxt "placeholder text for password entry" +msgid "Password" +msgstr "" + +#, elixir-format +#: lib/pleroma/web/templates/twitter_api/remote_follow/follow_login.html.eex:8 +msgctxt "placeholder text for username entry" +msgid "Username" +msgstr "" + +#, elixir-format +#: lib/pleroma/web/templates/twitter_api/remote_follow/follow_login.html.eex:13 +msgctxt "remote follow authorization button for login" +msgid "Authorize" +msgstr "" + +#, elixir-format +#: lib/pleroma/web/templates/twitter_api/remote_follow/follow_mfa.html.eex:12 +msgctxt "remote follow authorization button for mfa" +msgid "Authorize" +msgstr "" + +#, elixir-format +#: lib/pleroma/web/templates/twitter_api/remote_follow/followed.html.eex:2 +msgctxt "remote follow error" +msgid "Error following account" +msgstr "" + +#, elixir-format +#: lib/pleroma/web/templates/twitter_api/remote_follow/follow_login.html.eex:4 +msgctxt "remote follow header, need login" +msgid "Log in to follow" +msgstr "" + +#, elixir-format +#: lib/pleroma/web/templates/twitter_api/remote_follow/follow_mfa.html.eex:4 +msgctxt "remote follow mfa header" +msgid "Two-factor authentication" +msgstr "" + +#, elixir-format +#: lib/pleroma/web/templates/twitter_api/remote_follow/followed.html.eex:4 +msgctxt "remote follow success" +msgid "Account followed!" +msgstr "" + +#, elixir-format +#: lib/pleroma/web/templates/twitter_api/util/subscribe.html.eex:7 +msgctxt "placeholder text for account id" +msgid "Your account ID, e.g. lain@quitter.se" +msgstr "" + +#, elixir-format +#: lib/pleroma/web/templates/twitter_api/util/subscribe.html.eex:8 +msgctxt "remote follow authorization button for following with a remote account" +msgid "Follow" +msgstr "" + +#, elixir-format +#: lib/pleroma/web/templates/twitter_api/util/subscribe.html.eex:2 +msgctxt "remote follow error" +msgid "Error: %{error}" +msgstr "" + +#, elixir-format +#: lib/pleroma/web/templates/twitter_api/util/subscribe.html.eex:4 +msgctxt "remote follow header" +msgid "Remotely follow %{nickname}" +msgstr "" + +#, elixir-format +#: lib/pleroma/web/templates/twitter_api/password/reset.html.eex:12 +msgctxt "password reset button" +msgid "Reset" +msgstr "" + +#, elixir-format +#: lib/pleroma/web/templates/twitter_api/password/reset_failed.html.eex:4 +msgctxt "password reset failed homepage link" +msgid "Homepage" +msgstr "" + +#, elixir-format +#: lib/pleroma/web/templates/twitter_api/password/reset_failed.html.eex:1 +msgctxt "password reset failed message" +msgid "Password reset failed" +msgstr "" + +#, elixir-format +#: lib/pleroma/web/templates/twitter_api/password/reset.html.eex:8 +msgctxt "password reset form confirm password prompt" +msgid "Confirmation" +msgstr "" + +#, elixir-format +#: lib/pleroma/web/templates/twitter_api/password/reset.html.eex:4 +msgctxt "password reset form password prompt" +msgid "Password" +msgstr "" + +#, elixir-format +#: lib/pleroma/web/templates/twitter_api/password/invalid_token.html.eex:1 +msgctxt "password reset invalid token message" +msgid "Invalid Token" +msgstr "" + +#, elixir-format +#: lib/pleroma/web/templates/twitter_api/password/reset_success.html.eex:2 +msgctxt "password reset successful homepage link" +msgid "Homepage" +msgstr "" + +#, elixir-format +#: lib/pleroma/web/templates/twitter_api/password/reset_success.html.eex:1 +msgctxt "password reset successful message" +msgid "Password changed!" +msgstr "" + +#, elixir-format +#: lib/pleroma/web/templates/feed/feed/tag.atom.eex:15 +#: lib/pleroma/web/templates/feed/feed/tag.rss.eex:7 +msgctxt "tag feed description" +msgid "These are public toots tagged with #%{tag}. You can interact with them if you have an account anywhere in the fediverse." +msgstr "" + +#, elixir-format +#: lib/pleroma/web/templates/o_auth/o_auth/oob_token_exists.html.eex:1 +msgctxt "oauth authorization exists page title" +msgid "Authorization exists" +msgstr "" + +#, elixir-format +#: lib/pleroma/web/templates/o_auth/o_auth/show.html.eex:32 +msgctxt "oauth authorize approve button" +msgid "Approve" +msgstr "" + +#, elixir-format +#: lib/pleroma/web/templates/o_auth/o_auth/show.html.eex:30 +msgctxt "oauth authorize cancel button" +msgid "Cancel" +msgstr "" + +#, elixir-format +#: lib/pleroma/web/templates/o_auth/o_auth/show.html.eex:23 +msgctxt "oauth authorize message" +msgid "Application %{client_name} is requesting access to your account." +msgstr "" + +#, elixir-format +#: lib/pleroma/web/templates/o_auth/o_auth/oob_authorization_created.html.eex:1 +msgctxt "oauth authorized page title" +msgid "Successfully authorized" +msgstr "" + +#, elixir-format +#: lib/pleroma/web/templates/o_auth/o_auth/consumer.html.eex:1 +msgctxt "oauth external provider page title" +msgid "Sign in with external provider" +msgstr "" + +#, elixir-format +#: lib/pleroma/web/templates/o_auth/o_auth/consumer.html.eex:13 +msgctxt "oauth external provider sign in button" +msgid "Sign in with %{strategy}" +msgstr "" + +#, elixir-format +#: lib/pleroma/web/templates/o_auth/o_auth/show.html.eex:54 +msgctxt "oauth login button" +msgid "Log In" +msgstr "" + +#, elixir-format +#: lib/pleroma/web/templates/o_auth/o_auth/show.html.eex:51 +msgctxt "oauth login password prompt" +msgid "Password" +msgstr "" + +#, elixir-format +#: lib/pleroma/web/templates/o_auth/o_auth/show.html.eex:47 +msgctxt "oauth login username prompt" +msgid "Username" +msgstr "" + +#, elixir-format +#: lib/pleroma/web/templates/o_auth/o_auth/show.html.eex:39 +msgctxt "oauth register nickname prompt" +msgid "Pleroma Handle" +msgstr "" + +#, elixir-format +#: lib/pleroma/web/templates/o_auth/o_auth/show.html.eex:37 +msgctxt "oauth register nickname unchangeable warning" +msgid "Choose carefully! You won't be able to change this later. You will be able to change your display name, though." +msgstr "" + +#, elixir-format +#: lib/pleroma/web/templates/o_auth/o_auth/register.html.eex:18 +msgctxt "oauth register page email prompt" +msgid "Email" +msgstr "" + +#, elixir-format +#: lib/pleroma/web/templates/o_auth/o_auth/register.html.eex:10 +msgctxt "oauth register page fill form prompt" +msgid "If you'd like to register a new account, please provide the details below." +msgstr "" + +#, elixir-format +#: lib/pleroma/web/templates/o_auth/o_auth/register.html.eex:35 +msgctxt "oauth register page login button" +msgid "Proceed as existing user" +msgstr "" + +#, elixir-format +#: lib/pleroma/web/templates/o_auth/o_auth/register.html.eex:31 +msgctxt "oauth register page login password prompt" +msgid "Password" +msgstr "" + +#, elixir-format +#: lib/pleroma/web/templates/o_auth/o_auth/register.html.eex:24 +msgctxt "oauth register page login prompt" +msgid "Alternatively, sign in to connect to existing account." +msgstr "" + +#, elixir-format +#: lib/pleroma/web/templates/o_auth/o_auth/register.html.eex:27 +msgctxt "oauth register page login username prompt" +msgid "Name or email" +msgstr "" + +#, elixir-format +#: lib/pleroma/web/templates/o_auth/o_auth/register.html.eex:14 +msgctxt "oauth register page nickname prompt" +msgid "Nickname" +msgstr "" + +#, elixir-format +#: lib/pleroma/web/templates/o_auth/o_auth/register.html.eex:22 +msgctxt "oauth register page register button" +msgid "Proceed as new user" +msgstr "" + +#, elixir-format +#: lib/pleroma/web/templates/o_auth/o_auth/register.html.eex:8 +msgctxt "oauth register page title" +msgid "Registration Details" +msgstr "" + +#, elixir-format +#: lib/pleroma/web/templates/o_auth/o_auth/show.html.eex:36 +msgctxt "oauth register page title" +msgid "This is the first time you visit! Please enter your Pleroma handle." +msgstr "" + +#, elixir-format +#: lib/pleroma/web/templates/o_auth/o_auth/_scopes.html.eex:2 +msgctxt "oauth scopes message" +msgid "The following permissions will be granted" +msgstr "" + +#, elixir-format +#: lib/pleroma/web/templates/o_auth/o_auth/oob_authorization_created.html.eex:2 +#: lib/pleroma/web/templates/o_auth/o_auth/oob_token_exists.html.eex:2 +msgctxt "oauth token code message" +msgid "Token code is
%{token}" +msgstr "" + +#, elixir-format +#: lib/pleroma/web/templates/o_auth/mfa/totp.html.eex:12 +msgctxt "mfa auth code prompt" +msgid "Authentication code" +msgstr "" + +#, elixir-format +#: lib/pleroma/web/templates/o_auth/mfa/totp.html.eex:8 +msgctxt "mfa auth page title" +msgid "Two-factor authentication" +msgstr "" + +#, elixir-format +#: lib/pleroma/web/templates/o_auth/mfa/totp.html.eex:23 +msgctxt "mfa auth page use recovery code link" +msgid "Enter a two-factor recovery code" +msgstr "" + +#, elixir-format +#: lib/pleroma/web/templates/o_auth/mfa/totp.html.eex:20 +msgctxt "mfa auth verify code button" +msgid "Verify" +msgstr "" + +#, elixir-format +#: lib/pleroma/web/templates/o_auth/mfa/recovery.html.eex:8 +msgctxt "mfa recover page title" +msgid "Two-factor recovery" +msgstr "" + +#, elixir-format +#: lib/pleroma/web/templates/o_auth/mfa/recovery.html.eex:12 +msgctxt "mfa recover recovery code prompt" +msgid "Recovery code" +msgstr "" + +#, elixir-format +#: lib/pleroma/web/templates/o_auth/mfa/recovery.html.eex:23 +msgctxt "mfa recover use 2fa code link" +msgid "Enter a two-factor code" +msgstr "" + +#, elixir-format +#: lib/pleroma/web/templates/o_auth/mfa/recovery.html.eex:20 +msgctxt "mfa recover verify recovery code button" +msgid "Verify" +msgstr "" + +#, elixir-format +#: lib/pleroma/web/templates/static_fe/static_fe/profile.html.eex:8 +msgctxt "static fe profile page remote follow button" +msgid "Remote follow" +msgstr "" + +#, elixir-format +#: lib/pleroma/web/templates/email/digest.html.eex:163 +msgctxt "digest email header line" +msgid "Hey %{nickname}, here is what you've missed!" +msgstr "" + +#, elixir-format +#: lib/pleroma/web/templates/email/digest.html.eex:544 +msgctxt "digest email receiver address" +msgid "The email address you are subscribed as is %{email}. " +msgstr "" + +#, elixir-format +#: lib/pleroma/web/templates/email/digest.html.eex:538 +msgctxt "digest email sending reason" +msgid "You have received this email because you have signed up to receive digest emails from %{instance} Pleroma instance." +msgstr "" + +#, elixir-format +#: lib/pleroma/web/templates/email/digest.html.eex:547 +msgctxt "digest email unsubscribe action" +msgid "To unsubscribe, please go %{here}." +msgstr "" + +#, elixir-format +#: lib/pleroma/web/templates/email/digest.html.eex:547 +msgctxt "digest email unsubscribe action link text" +msgid "here" +msgstr "" + +#, elixir-format +#: lib/pleroma/web/templates/mailer/subscription/unsubscribe_failure.html.eex:1 +msgctxt "mailer unsubscribe failed message" +msgid "UNSUBSCRIBE FAILURE" +msgstr "" + +#, elixir-format +#: lib/pleroma/web/templates/mailer/subscription/unsubscribe_success.html.eex:1 +msgctxt "mailer unsubscribe successful message" +msgid "UNSUBSCRIBE SUCCESSFUL" +msgstr "" + +#, elixir-format +#: lib/pleroma/web/templates/email/digest.html.eex:385 +msgctxt "new followers count header" +msgid "%{count} New Follower" +msgid_plural "%{count} New Followers" +msgstr[0] "xx%{count} New Followerxx" +msgstr[1] "xx%{count} New Followersxx" + +#, elixir-format +#: lib/pleroma/emails/user_email.ex:356 +msgctxt "account archive email body - self-requested" +msgid "

You requested a full backup of your Pleroma account. It's ready for download:

\n

%{download_url}

\n" +msgstr "" + +#, elixir-format +#: lib/pleroma/emails/user_email.ex:384 +msgctxt "account archive email subject" +msgid "Your account archive is ready" +msgstr "" + +#, elixir-format +#: lib/pleroma/emails/user_email.ex:188 +msgctxt "approval pending email body" +msgid "

Awaiting Approval

\n

Your account at %{instance_name} is being reviewed by staff. You will receive another email once your account is approved.

\n" +msgstr "" + +#, elixir-format +#: lib/pleroma/emails/user_email.ex:202 +msgctxt "approval pending email subject" +msgid "Your account is awaiting approval" +msgstr "xxYour account is awaiting approvalxx" + +#, elixir-format +#: lib/pleroma/emails/user_email.ex:158 +msgctxt "confirmation email body" +msgid "

Thank you for registering on %{instance_name}

\n

Email confirmation is required to activate the account.

\n

Please click the following link to activate your account.

\n" +msgstr "" + +#, elixir-format +#: lib/pleroma/emails/user_email.ex:174 +msgctxt "confirmation email subject" +msgid "%{instance_name} account confirmation" +msgstr "" + +#, elixir-format +#: lib/pleroma/emails/user_email.ex:310 +msgctxt "digest email subject" +msgid "Your digest from %{instance_name}" +msgstr "xxYour digest from %{instance_name}xx" + +#, elixir-format +#: lib/pleroma/emails/user_email.ex:81 +msgctxt "password reset email body" +msgid "

Reset your password at %{instance_name}

\n

Someone has requested password change for your account at %{instance_name}.

\n

If it was you, visit the following link to proceed: reset password.

\n

If it was someone else, nothing to worry about: your data is secure and your password has not been changed.

\n" +msgstr "" + +#, elixir-format +#: lib/pleroma/emails/user_email.ex:98 +msgctxt "password reset email subject" +msgid "Password reset" +msgstr "" + +#, elixir-format +#: lib/pleroma/emails/user_email.ex:215 +msgctxt "successful registration email body" +msgid "

Hello @%{nickname},

\n

Your account at %{instance_name} has been registered successfully.

\n

No further action is required to activate your account.

\n" +msgstr "" + +#, elixir-format +#: lib/pleroma/emails/user_email.ex:231 +msgctxt "successful registration email subject" +msgid "Account registered on %{instance_name}" +msgstr "" + +#, elixir-format +#: lib/pleroma/emails/user_email.ex:119 +msgctxt "user invitation email body" +msgid "

You are invited to %{instance_name}

\n

%{inviter_name} invites you to join %{instance_name}, an instance of Pleroma federated social networking platform.

\n

Click the following link to register: accept invitation.

\n" +msgstr "" + +#, elixir-format +#: lib/pleroma/emails/user_email.ex:136 +msgctxt "user invitation email subject" +msgid "Invitation to %{instance_name}" +msgstr "" + +#, elixir-format +#: lib/pleroma/emails/user_email.ex:53 +msgctxt "welcome email html body" +msgid "Welcome to %{instance_name}!" +msgstr "" + +#, elixir-format +#: lib/pleroma/emails/user_email.ex:41 +msgctxt "welcome email subject" +msgid "Welcome to %{instance_name}!" +msgstr "" + +#, elixir-format +#: lib/pleroma/emails/user_email.ex:65 +msgctxt "welcome email text body" +msgid "Welcome to %{instance_name}!" +msgstr "" + +#, elixir-format +#: lib/pleroma/emails/user_email.ex:368 +msgctxt "account archive email body - admin requested" +msgid "

Admin @%{admin_nickname} requested a full backup of your Pleroma account. It's ready for download:

\n

%{download_url}

\n" +msgstr "" diff --git a/priv/gettext/errors.pot b/priv/gettext/errors.pot index e337226a7..19a0039ca 100644 --- a/priv/gettext/errors.pot +++ b/priv/gettext/errors.pot @@ -89,482 +89,516 @@ msgstr "" msgid "must be equal to %{number}" msgstr "" -#, elixir-format -#: lib/pleroma/web/common_api/common_api.ex:505 +#, elixir-autogen, elixir-format +#: lib/pleroma/web/common_api.ex:574 msgid "Account not found" msgstr "" -#, elixir-format -#: lib/pleroma/web/common_api/common_api.ex:339 +#, elixir-autogen, elixir-format +#: lib/pleroma/web/common_api.ex:332 msgid "Already voted" msgstr "" -#, elixir-format -#: lib/pleroma/web/oauth/oauth_controller.ex:359 +#, elixir-autogen, elixir-format +#: lib/pleroma/web/o_auth/o_auth_controller.ex:402 msgid "Bad request" msgstr "" -#, elixir-format -#: lib/pleroma/web/activity_pub/activity_pub_controller.ex:426 -msgid "Can't delete object" -msgstr "" - -#, elixir-format -#: lib/pleroma/web/controller_helper.ex:105 -#: lib/pleroma/web/controller_helper.ex:111 +#, elixir-autogen, elixir-format +#: lib/pleroma/web/controller_helper.ex:97 +#: lib/pleroma/web/controller_helper.ex:103 msgid "Can't display this activity" msgstr "" -#, elixir-format -#: lib/pleroma/web/mastodon_api/controllers/account_controller.ex:285 +#, elixir-autogen, elixir-format +#: lib/pleroma/web/mastodon_api/controllers/account_controller.ex:337 msgid "Can't find user" msgstr "" -#, elixir-format -#: lib/pleroma/web/pleroma_api/controllers/account_controller.ex:61 +#, elixir-autogen, elixir-format +#: lib/pleroma/web/pleroma_api/controllers/account_controller.ex:80 msgid "Can't get favorites" msgstr "" -#, elixir-format -#: lib/pleroma/web/activity_pub/activity_pub_controller.ex:438 -msgid "Can't like object" -msgstr "" - -#, elixir-format -#: lib/pleroma/web/common_api/utils.ex:563 +#, elixir-autogen, elixir-format +#: lib/pleroma/web/common_api/utils.ex:457 msgid "Cannot post an empty status without attachments" msgstr "" -#, elixir-format -#: lib/pleroma/web/common_api/utils.ex:511 +#, elixir-autogen, elixir-format +#: lib/pleroma/web/common_api/utils.ex:445 msgid "Comment must be up to %{max_size} characters" msgstr "" -#, elixir-format -#: lib/pleroma/config/config_db.ex:191 +#, elixir-autogen, elixir-format +#: lib/pleroma/config_db.ex:199 msgid "Config with params %{params} not found" msgstr "" -#, elixir-format -#: lib/pleroma/web/common_api/common_api.ex:181 -#: lib/pleroma/web/common_api/common_api.ex:185 +#, elixir-autogen, elixir-format +#: lib/pleroma/web/common_api.ex:183 +#: lib/pleroma/web/common_api.ex:187 msgid "Could not delete" msgstr "" -#, elixir-format -#: lib/pleroma/web/common_api/common_api.ex:231 +#, elixir-autogen, elixir-format +#: lib/pleroma/web/common_api.ex:233 msgid "Could not favorite" msgstr "" -#, elixir-format -#: lib/pleroma/web/common_api/common_api.ex:453 -msgid "Could not pin" -msgstr "" - -#, elixir-format -#: lib/pleroma/web/common_api/common_api.ex:278 +#, elixir-autogen, elixir-format +#: lib/pleroma/web/common_api.ex:270 msgid "Could not unfavorite" msgstr "" -#, elixir-format -#: lib/pleroma/web/common_api/common_api.ex:463 -msgid "Could not unpin" -msgstr "" - -#, elixir-format -#: lib/pleroma/web/common_api/common_api.ex:216 +#, elixir-autogen, elixir-format +#: lib/pleroma/web/common_api.ex:218 msgid "Could not unrepeat" msgstr "" -#, elixir-format -#: lib/pleroma/web/common_api/common_api.ex:512 -#: lib/pleroma/web/common_api/common_api.ex:521 +#, elixir-autogen, elixir-format +#: lib/pleroma/web/common_api.ex:581 +#: lib/pleroma/web/common_api.ex:590 msgid "Could not update state" msgstr "" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/pleroma/web/mastodon_api/controllers/timeline_controller.ex:207 msgid "Error." msgstr "" -#, elixir-format -#: lib/pleroma/web/twitter_api/twitter_api.ex:106 +#, elixir-autogen, elixir-format +#: lib/pleroma/web/twitter_api/twitter_api.ex:105 msgid "Invalid CAPTCHA" msgstr "" -#, elixir-format -#: lib/pleroma/web/mastodon_api/controllers/account_controller.ex:116 -#: lib/pleroma/web/oauth/oauth_controller.ex:568 +#, elixir-autogen, elixir-format +#: lib/pleroma/web/mastodon_api/controllers/account_controller.ex:146 +#: lib/pleroma/web/o_auth/o_auth_controller.ex:631 msgid "Invalid credentials" msgstr "" -#, elixir-format -#: lib/pleroma/plugs/ensure_authenticated_plug.ex:38 +#, elixir-autogen, elixir-format +#: lib/pleroma/web/plugs/ensure_authenticated_plug.ex:42 msgid "Invalid credentials." msgstr "" -#, elixir-format -#: lib/pleroma/web/common_api/common_api.ex:355 +#, elixir-autogen, elixir-format +#: lib/pleroma/web/common_api.ex:353 msgid "Invalid indices" msgstr "" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/pleroma/web/admin_api/controllers/fallback_controller.ex:29 msgid "Invalid parameters" msgstr "" -#, elixir-format -#: lib/pleroma/web/common_api/utils.ex:414 +#, elixir-autogen, elixir-format +#: lib/pleroma/web/common_api/utils.ex:353 msgid "Invalid password." msgstr "" -#, elixir-format -#: lib/pleroma/web/mastodon_api/controllers/account_controller.ex:220 +#, elixir-autogen, elixir-format +#: lib/pleroma/web/mastodon_api/controllers/account_controller.ex:267 msgid "Invalid request" msgstr "" -#, elixir-format -#: lib/pleroma/web/twitter_api/twitter_api.ex:109 +#, elixir-autogen, elixir-format +#: lib/pleroma/web/twitter_api/twitter_api.ex:108 msgid "Kocaptcha service unavailable" msgstr "" -#, elixir-format -#: lib/pleroma/web/mastodon_api/controllers/account_controller.ex:112 +#, elixir-autogen, elixir-format +#: lib/pleroma/web/mastodon_api/controllers/account_controller.ex:142 msgid "Missing parameters" msgstr "" -#, elixir-format -#: lib/pleroma/web/common_api/utils.ex:547 -msgid "No such conversation" -msgstr "" - -#, elixir-format -#: lib/pleroma/web/admin_api/controllers/admin_api_controller.ex:388 -#: lib/pleroma/web/admin_api/controllers/admin_api_controller.ex:414 lib/pleroma/web/admin_api/controllers/admin_api_controller.ex:456 +#, elixir-autogen, elixir-format +#: lib/pleroma/web/admin_api/controllers/admin_api_controller.ex:171 +#: lib/pleroma/web/admin_api/controllers/admin_api_controller.ex:197 +#: lib/pleroma/web/admin_api/controllers/admin_api_controller.ex:239 msgid "No such permission_group" msgstr "" -#, elixir-format -#: lib/pleroma/plugs/uploaded_media.ex:84 -#: lib/pleroma/web/activity_pub/activity_pub_controller.ex:486 lib/pleroma/web/admin_api/controllers/fallback_controller.ex:11 -#: lib/pleroma/web/feed/user_controller.ex:71 lib/pleroma/web/ostatus/ostatus_controller.ex:143 +#, elixir-autogen, elixir-format +#: lib/pleroma/web/activity_pub/activity_pub_controller.ex:502 +#: lib/pleroma/web/admin_api/controllers/fallback_controller.ex:11 +#: lib/pleroma/web/feed/tag_controller.ex:16 +#: lib/pleroma/web/feed/user_controller.ex:69 +#: lib/pleroma/web/o_status/o_status_controller.ex:132 +#: lib/pleroma/web/plugs/uploaded_media.ex:84 msgid "Not found" msgstr "" -#, elixir-format -#: lib/pleroma/web/common_api/common_api.ex:331 +#, elixir-autogen, elixir-format +#: lib/pleroma/web/common_api.ex:324 msgid "Poll's author can't vote" msgstr "" -#, elixir-format +#, elixir-autogen, elixir-format +#: lib/pleroma/web/mastodon_api/controllers/account_controller.ex:502 #: lib/pleroma/web/mastodon_api/controllers/fallback_controller.ex:20 -#: lib/pleroma/web/mastodon_api/controllers/poll_controller.ex:37 lib/pleroma/web/mastodon_api/controllers/poll_controller.ex:49 -#: lib/pleroma/web/mastodon_api/controllers/poll_controller.ex:50 lib/pleroma/web/mastodon_api/controllers/status_controller.ex:306 +#: lib/pleroma/web/mastodon_api/controllers/poll_controller.ex:39 +#: lib/pleroma/web/mastodon_api/controllers/poll_controller.ex:51 +#: lib/pleroma/web/mastodon_api/controllers/poll_controller.ex:52 +#: lib/pleroma/web/mastodon_api/controllers/status_controller.ex:382 #: lib/pleroma/web/mastodon_api/controllers/subscription_controller.ex:71 msgid "Record not found" msgstr "" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/pleroma/web/admin_api/controllers/fallback_controller.ex:35 -#: lib/pleroma/web/feed/user_controller.ex:77 lib/pleroma/web/mastodon_api/controllers/fallback_controller.ex:36 -#: lib/pleroma/web/ostatus/ostatus_controller.ex:149 +#: lib/pleroma/web/feed/user_controller.ex:78 +#: lib/pleroma/web/mastodon_api/controllers/fallback_controller.ex:42 +#: lib/pleroma/web/o_status/o_status_controller.ex:138 msgid "Something went wrong" msgstr "" -#, elixir-format -#: lib/pleroma/web/common_api/activity_draft.ex:107 +#, elixir-autogen, elixir-format +#: lib/pleroma/web/common_api/activity_draft.ex:143 msgid "The message visibility must be direct" msgstr "" -#, elixir-format -#: lib/pleroma/web/common_api/utils.ex:573 +#, elixir-autogen, elixir-format +#: lib/pleroma/web/common_api/utils.ex:467 msgid "The status is over the character limit" msgstr "" -#, elixir-format -#: lib/pleroma/plugs/ensure_public_or_authenticated_plug.ex:31 +#, elixir-autogen, elixir-format +#: lib/pleroma/web/plugs/ensure_public_or_authenticated_plug.ex:36 msgid "This resource requires authentication." msgstr "" -#, elixir-format -#: lib/pleroma/plugs/rate_limiter/rate_limiter.ex:206 +#, elixir-autogen, elixir-format +#: lib/pleroma/web/plugs/rate_limiter.ex:208 msgid "Throttled" msgstr "" -#, elixir-format -#: lib/pleroma/web/common_api/common_api.ex:356 +#, elixir-autogen, elixir-format +#: lib/pleroma/web/common_api.ex:354 msgid "Too many choices" msgstr "" -#, elixir-format -#: lib/pleroma/web/activity_pub/activity_pub_controller.ex:443 -msgid "Unhandled activity type" -msgstr "" - -#, elixir-format -#: lib/pleroma/web/admin_api/controllers/admin_api_controller.ex:485 +#, elixir-autogen, elixir-format +#: lib/pleroma/web/admin_api/controllers/admin_api_controller.ex:268 msgid "You can't revoke your own admin status." msgstr "" -#, elixir-format -#: lib/pleroma/web/oauth/oauth_controller.ex:221 -#: lib/pleroma/web/oauth/oauth_controller.ex:308 +#, elixir-autogen, elixir-format +#: lib/pleroma/web/o_auth/o_auth_controller.ex:243 +#: lib/pleroma/web/o_auth/o_auth_controller.ex:333 msgid "Your account is currently disabled" msgstr "" -#, elixir-format -#: lib/pleroma/web/oauth/oauth_controller.ex:183 -#: lib/pleroma/web/oauth/oauth_controller.ex:331 +#, elixir-autogen, elixir-format +#: lib/pleroma/web/o_auth/o_auth_controller.ex:205 +#: lib/pleroma/web/o_auth/o_auth_controller.ex:356 msgid "Your login is missing a confirmed e-mail address" msgstr "" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/pleroma/web/activity_pub/activity_pub_controller.ex:390 msgid "can't read inbox of %{nickname} as %{as_nickname}" msgstr "" -#, elixir-format -#: lib/pleroma/web/activity_pub/activity_pub_controller.ex:473 +#, elixir-autogen, elixir-format +#: lib/pleroma/web/activity_pub/activity_pub_controller.ex:489 msgid "can't update outbox of %{nickname} as %{as_nickname}" msgstr "" -#, elixir-format -#: lib/pleroma/web/common_api/common_api.ex:471 +#, elixir-autogen, elixir-format +#: lib/pleroma/web/common_api.ex:526 msgid "conversation is already muted" msgstr "" -#, elixir-format -#: lib/pleroma/web/activity_pub/activity_pub_controller.ex:314 -#: lib/pleroma/web/activity_pub/activity_pub_controller.ex:492 +#, elixir-autogen, elixir-format +#: lib/pleroma/web/activity_pub/activity_pub_controller.ex:508 msgid "error" msgstr "" -#, elixir-format -#: lib/pleroma/web/pleroma_api/controllers/mascot_controller.ex:32 +#, elixir-autogen, elixir-format +#: lib/pleroma/web/pleroma_api/controllers/mascot_controller.ex:34 msgid "mascots can only be images" msgstr "" -#, elixir-format -#: lib/pleroma/web/activity_pub/activity_pub_controller.ex:62 +#, elixir-autogen, elixir-format +#: lib/pleroma/web/activity_pub/activity_pub_controller.ex:63 msgid "not found" msgstr "" -#, elixir-format -#: lib/pleroma/web/oauth/oauth_controller.ex:394 +#, elixir-autogen, elixir-format +#: lib/pleroma/web/o_auth/o_auth_controller.ex:437 msgid "Bad OAuth request." msgstr "" -#, elixir-format -#: lib/pleroma/web/twitter_api/twitter_api.ex:115 +#, elixir-autogen, elixir-format +#: lib/pleroma/web/twitter_api/twitter_api.ex:114 msgid "CAPTCHA already used" msgstr "" -#, elixir-format -#: lib/pleroma/web/twitter_api/twitter_api.ex:112 +#, elixir-autogen, elixir-format +#: lib/pleroma/web/twitter_api/twitter_api.ex:111 msgid "CAPTCHA expired" msgstr "" -#, elixir-format -#: lib/pleroma/plugs/uploaded_media.ex:57 +#, elixir-autogen, elixir-format +#: lib/pleroma/web/plugs/uploaded_media.ex:57 msgid "Failed" msgstr "" -#, elixir-format -#: lib/pleroma/web/oauth/oauth_controller.ex:410 +#, elixir-autogen, elixir-format +#: lib/pleroma/web/o_auth/o_auth_controller.ex:453 msgid "Failed to authenticate: %{message}." msgstr "" -#, elixir-format -#: lib/pleroma/web/oauth/oauth_controller.ex:441 +#, elixir-autogen, elixir-format +#: lib/pleroma/web/o_auth/o_auth_controller.ex:484 msgid "Failed to set up user account." msgstr "" -#, elixir-format -#: lib/pleroma/plugs/oauth_scopes_plug.ex:38 +#, elixir-autogen, elixir-format +#: lib/pleroma/web/plugs/o_auth_scopes_plug.ex:37 msgid "Insufficient permissions: %{permissions}." msgstr "" -#, elixir-format -#: lib/pleroma/plugs/uploaded_media.ex:104 +#, elixir-autogen, elixir-format +#: lib/pleroma/web/plugs/uploaded_media.ex:111 msgid "Internal Error" msgstr "" -#, elixir-format -#: lib/pleroma/web/oauth/fallback_controller.ex:22 -#: lib/pleroma/web/oauth/fallback_controller.ex:29 +#, elixir-autogen, elixir-format +#: lib/pleroma/web/o_auth/fallback_controller.ex:22 +#: lib/pleroma/web/o_auth/fallback_controller.ex:29 msgid "Invalid Username/Password" msgstr "" -#, elixir-format -#: lib/pleroma/web/twitter_api/twitter_api.ex:118 +#, elixir-autogen, elixir-format +#: lib/pleroma/web/twitter_api/twitter_api.ex:117 msgid "Invalid answer data" msgstr "" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/pleroma/web/nodeinfo/nodeinfo_controller.ex:33 msgid "Nodeinfo schema version not handled" msgstr "" -#, elixir-format -#: lib/pleroma/web/oauth/oauth_controller.ex:172 +#, elixir-autogen, elixir-format +#: lib/pleroma/web/o_auth/o_auth_controller.ex:194 msgid "This action is outside the authorized scopes" msgstr "" -#, elixir-format -#: lib/pleroma/web/oauth/fallback_controller.ex:14 +#, elixir-autogen, elixir-format +#: lib/pleroma/web/o_auth/fallback_controller.ex:14 msgid "Unknown error, please check the details and try again." msgstr "" -#, elixir-format -#: lib/pleroma/web/oauth/oauth_controller.ex:119 -#: lib/pleroma/web/oauth/oauth_controller.ex:158 +#, elixir-autogen, elixir-format +#: lib/pleroma/web/o_auth/o_auth_controller.ex:136 +#: lib/pleroma/web/o_auth/o_auth_controller.ex:180 msgid "Unlisted redirect_uri." msgstr "" -#, elixir-format -#: lib/pleroma/web/oauth/oauth_controller.ex:390 +#, elixir-autogen, elixir-format +#: lib/pleroma/web/o_auth/o_auth_controller.ex:433 msgid "Unsupported OAuth provider: %{provider}." msgstr "" -#, elixir-format -#: lib/pleroma/uploaders/uploader.ex:72 +#, elixir-autogen, elixir-format +#: lib/pleroma/uploaders/uploader.ex:74 msgid "Uploader callback timeout" msgstr "" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/pleroma/web/uploader_controller.ex:23 msgid "bad request" msgstr "" -#, elixir-format -#: lib/pleroma/web/twitter_api/twitter_api.ex:103 +#, elixir-autogen, elixir-format +#: lib/pleroma/web/twitter_api/twitter_api.ex:102 msgid "CAPTCHA Error" msgstr "" -#, elixir-format -#: lib/pleroma/web/common_api/common_api.ex:290 +#, elixir-autogen, elixir-format +#: lib/pleroma/web/common_api.ex:282 msgid "Could not add reaction emoji" msgstr "" -#, elixir-format -#: lib/pleroma/web/common_api/common_api.ex:301 +#, elixir-autogen, elixir-format +#: lib/pleroma/web/common_api.ex:293 msgid "Could not remove reaction emoji" msgstr "" -#, elixir-format -#: lib/pleroma/web/twitter_api/twitter_api.ex:129 +#, elixir-autogen, elixir-format +#: lib/pleroma/web/twitter_api/twitter_api.ex:128 msgid "Invalid CAPTCHA (Missing parameter: %{name})" msgstr "" -#, elixir-format -#: lib/pleroma/web/mastodon_api/controllers/list_controller.ex:92 +#, elixir-autogen, elixir-format +#: lib/pleroma/web/mastodon_api/controllers/list_controller.ex:96 msgid "List not found" msgstr "" -#, elixir-format -#: lib/pleroma/web/mastodon_api/controllers/account_controller.ex:123 +#, elixir-autogen, elixir-format +#: lib/pleroma/web/mastodon_api/controllers/account_controller.ex:153 msgid "Missing parameter: %{name}" msgstr "" -#, elixir-format -#: lib/pleroma/web/oauth/oauth_controller.ex:210 -#: lib/pleroma/web/oauth/oauth_controller.ex:321 +#, elixir-autogen, elixir-format +#: lib/pleroma/web/o_auth/o_auth_controller.ex:232 +#: lib/pleroma/web/o_auth/o_auth_controller.ex:346 msgid "Password reset is required" msgstr "" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/pleroma/tests/auth_test_controller.ex:9 -#: lib/pleroma/web/activity_pub/activity_pub_controller.ex:6 lib/pleroma/web/admin_api/controllers/admin_api_controller.ex:6 -#: lib/pleroma/web/admin_api/controllers/config_controller.ex:6 lib/pleroma/web/admin_api/controllers/fallback_controller.ex:6 -#: lib/pleroma/web/admin_api/controllers/invite_controller.ex:6 lib/pleroma/web/admin_api/controllers/media_proxy_cache_controller.ex:6 -#: lib/pleroma/web/admin_api/controllers/oauth_app_controller.ex:6 lib/pleroma/web/admin_api/controllers/relay_controller.ex:6 -#: lib/pleroma/web/admin_api/controllers/report_controller.ex:6 lib/pleroma/web/admin_api/controllers/status_controller.ex:6 -#: lib/pleroma/web/controller_helper.ex:6 lib/pleroma/web/embed_controller.ex:6 -#: lib/pleroma/web/fallback_redirect_controller.ex:6 lib/pleroma/web/feed/tag_controller.ex:6 -#: lib/pleroma/web/feed/user_controller.ex:6 lib/pleroma/web/mailer/subscription_controller.ex:2 -#: lib/pleroma/web/masto_fe_controller.ex:6 lib/pleroma/web/mastodon_api/controllers/account_controller.ex:6 -#: lib/pleroma/web/mastodon_api/controllers/app_controller.ex:6 lib/pleroma/web/mastodon_api/controllers/auth_controller.ex:6 -#: lib/pleroma/web/mastodon_api/controllers/conversation_controller.ex:6 lib/pleroma/web/mastodon_api/controllers/custom_emoji_controller.ex:6 -#: lib/pleroma/web/mastodon_api/controllers/domain_block_controller.ex:6 lib/pleroma/web/mastodon_api/controllers/fallback_controller.ex:6 -#: lib/pleroma/web/mastodon_api/controllers/filter_controller.ex:6 lib/pleroma/web/mastodon_api/controllers/follow_request_controller.ex:6 -#: lib/pleroma/web/mastodon_api/controllers/instance_controller.ex:6 lib/pleroma/web/mastodon_api/controllers/list_controller.ex:6 -#: lib/pleroma/web/mastodon_api/controllers/marker_controller.ex:6 lib/pleroma/web/mastodon_api/controllers/mastodon_api_controller.ex:14 -#: lib/pleroma/web/mastodon_api/controllers/media_controller.ex:6 lib/pleroma/web/mastodon_api/controllers/notification_controller.ex:6 -#: lib/pleroma/web/mastodon_api/controllers/poll_controller.ex:6 lib/pleroma/web/mastodon_api/controllers/report_controller.ex:8 -#: lib/pleroma/web/mastodon_api/controllers/scheduled_activity_controller.ex:6 lib/pleroma/web/mastodon_api/controllers/search_controller.ex:6 -#: lib/pleroma/web/mastodon_api/controllers/status_controller.ex:6 lib/pleroma/web/mastodon_api/controllers/subscription_controller.ex:7 -#: lib/pleroma/web/mastodon_api/controllers/suggestion_controller.ex:6 lib/pleroma/web/mastodon_api/controllers/timeline_controller.ex:6 -#: lib/pleroma/web/media_proxy/media_proxy_controller.ex:6 lib/pleroma/web/mongooseim/mongoose_im_controller.ex:6 -#: lib/pleroma/web/nodeinfo/nodeinfo_controller.ex:6 lib/pleroma/web/oauth/fallback_controller.ex:6 -#: lib/pleroma/web/oauth/mfa_controller.ex:10 lib/pleroma/web/oauth/oauth_controller.ex:6 -#: lib/pleroma/web/ostatus/ostatus_controller.ex:6 lib/pleroma/web/pleroma_api/controllers/account_controller.ex:6 -#: lib/pleroma/web/pleroma_api/controllers/chat_controller.ex:5 lib/pleroma/web/pleroma_api/controllers/conversation_controller.ex:6 -#: lib/pleroma/web/pleroma_api/controllers/emoji_pack_controller.ex:2 lib/pleroma/web/pleroma_api/controllers/emoji_reaction_controller.ex:6 -#: lib/pleroma/web/pleroma_api/controllers/mascot_controller.ex:6 lib/pleroma/web/pleroma_api/controllers/notification_controller.ex:6 +#: lib/pleroma/web/activity_pub/activity_pub_controller.ex:6 +#: lib/pleroma/web/admin_api/controllers/admin_api_controller.ex:6 +#: lib/pleroma/web/admin_api/controllers/announcement_controller.ex:6 +#: lib/pleroma/web/admin_api/controllers/chat_controller.ex:6 +#: lib/pleroma/web/admin_api/controllers/config_controller.ex:6 +#: lib/pleroma/web/admin_api/controllers/fallback_controller.ex:6 +#: lib/pleroma/web/admin_api/controllers/frontend_controller.ex:6 +#: lib/pleroma/web/admin_api/controllers/instance_controller.ex:6 +#: lib/pleroma/web/admin_api/controllers/instance_document_controller.ex:6 +#: lib/pleroma/web/admin_api/controllers/invite_controller.ex:6 +#: lib/pleroma/web/admin_api/controllers/media_proxy_cache_controller.ex:6 +#: lib/pleroma/web/admin_api/controllers/o_auth_app_controller.ex:6 +#: lib/pleroma/web/admin_api/controllers/relay_controller.ex:6 +#: lib/pleroma/web/admin_api/controllers/report_controller.ex:6 +#: lib/pleroma/web/admin_api/controllers/status_controller.ex:6 +#: lib/pleroma/web/admin_api/controllers/user_controller.ex:6 +#: lib/pleroma/web/controller_helper.ex:6 +#: lib/pleroma/web/embed_controller.ex:6 +#: lib/pleroma/web/fallback/redirect_controller.ex:6 +#: lib/pleroma/web/feed/tag_controller.ex:6 +#: lib/pleroma/web/feed/user_controller.ex:6 +#: lib/pleroma/web/mailer/subscription_controller.ex:6 +#: lib/pleroma/web/manifest_controller.ex:6 +#: lib/pleroma/web/mastodon_api/controllers/account_controller.ex:6 +#: lib/pleroma/web/mastodon_api/controllers/announcement_controller.ex:6 +#: lib/pleroma/web/mastodon_api/controllers/app_controller.ex:11 +#: lib/pleroma/web/mastodon_api/controllers/auth_controller.ex:6 +#: lib/pleroma/web/mastodon_api/controllers/conversation_controller.ex:6 +#: lib/pleroma/web/mastodon_api/controllers/custom_emoji_controller.ex:6 +#: lib/pleroma/web/mastodon_api/controllers/directory_controller.ex:6 +#: lib/pleroma/web/mastodon_api/controllers/domain_block_controller.ex:6 +#: lib/pleroma/web/mastodon_api/controllers/fallback_controller.ex:6 +#: lib/pleroma/web/mastodon_api/controllers/filter_controller.ex:6 +#: lib/pleroma/web/mastodon_api/controllers/follow_request_controller.ex:6 +#: lib/pleroma/web/mastodon_api/controllers/instance_controller.ex:6 +#: lib/pleroma/web/mastodon_api/controllers/list_controller.ex:6 +#: lib/pleroma/web/mastodon_api/controllers/marker_controller.ex:6 +#: lib/pleroma/web/mastodon_api/controllers/mastodon_api_controller.ex:14 +#: lib/pleroma/web/mastodon_api/controllers/media_controller.ex:6 +#: lib/pleroma/web/mastodon_api/controllers/notification_controller.ex:6 +#: lib/pleroma/web/mastodon_api/controllers/poll_controller.ex:6 +#: lib/pleroma/web/mastodon_api/controllers/report_controller.ex:6 +#: lib/pleroma/web/mastodon_api/controllers/scheduled_activity_controller.ex:6 +#: lib/pleroma/web/mastodon_api/controllers/search_controller.ex:6 +#: lib/pleroma/web/mastodon_api/controllers/status_controller.ex:6 +#: lib/pleroma/web/mastodon_api/controllers/subscription_controller.ex:7 +#: lib/pleroma/web/mastodon_api/controllers/suggestion_controller.ex:6 +#: lib/pleroma/web/mastodon_api/controllers/timeline_controller.ex:6 +#: lib/pleroma/web/media_proxy/media_proxy_controller.ex:6 +#: lib/pleroma/web/mongoose_im/mongoose_im_controller.ex:6 +#: lib/pleroma/web/nodeinfo/nodeinfo_controller.ex:6 +#: lib/pleroma/web/o_auth/fallback_controller.ex:6 +#: lib/pleroma/web/o_auth/mfa_controller.ex:10 +#: lib/pleroma/web/o_auth/o_auth_controller.ex:6 +#: lib/pleroma/web/o_status/o_status_controller.ex:6 +#: lib/pleroma/web/pleroma_api/controllers/account_controller.ex:6 +#: lib/pleroma/web/pleroma_api/controllers/app_controller.ex:6 +#: lib/pleroma/web/pleroma_api/controllers/backup_controller.ex:6 +#: lib/pleroma/web/pleroma_api/controllers/chat_controller.ex:5 +#: lib/pleroma/web/pleroma_api/controllers/conversation_controller.ex:6 +#: lib/pleroma/web/pleroma_api/controllers/emoji_file_controller.ex:6 +#: lib/pleroma/web/pleroma_api/controllers/emoji_pack_controller.ex:6 +#: lib/pleroma/web/pleroma_api/controllers/emoji_reaction_controller.ex:6 +#: lib/pleroma/web/pleroma_api/controllers/instances_controller.ex:6 +#: lib/pleroma/web/pleroma_api/controllers/mascot_controller.ex:6 +#: lib/pleroma/web/pleroma_api/controllers/notification_controller.ex:6 +#: lib/pleroma/web/pleroma_api/controllers/report_controller.ex:6 #: lib/pleroma/web/pleroma_api/controllers/scrobble_controller.ex:6 -#: lib/pleroma/web/pleroma_api/controllers/two_factor_authentication_controller.ex:7 lib/pleroma/web/static_fe/static_fe_controller.ex:6 -#: lib/pleroma/web/twitter_api/controllers/password_controller.ex:10 lib/pleroma/web/twitter_api/controllers/remote_follow_controller.ex:6 -#: lib/pleroma/web/twitter_api/controllers/util_controller.ex:6 lib/pleroma/web/twitter_api/twitter_api_controller.ex:6 -#: lib/pleroma/web/uploader_controller.ex:6 lib/pleroma/web/web_finger/web_finger_controller.ex:6 +#: lib/pleroma/web/pleroma_api/controllers/settings_controller.ex:6 +#: lib/pleroma/web/pleroma_api/controllers/two_factor_authentication_controller.ex:7 +#: lib/pleroma/web/pleroma_api/controllers/user_import_controller.ex:6 +#: lib/pleroma/web/static_fe/static_fe_controller.ex:6 +#: lib/pleroma/web/twitter_api/controller.ex:6 +#: lib/pleroma/web/twitter_api/controllers/password_controller.ex:10 +#: lib/pleroma/web/twitter_api/controllers/remote_follow_controller.ex:6 +#: lib/pleroma/web/twitter_api/controllers/util_controller.ex:6 +#: lib/pleroma/web/uploader_controller.ex:6 +#: lib/pleroma/web/web_finger/web_finger_controller.ex:6 msgid "Security violation: OAuth scopes check was neither handled nor explicitly skipped." msgstr "" -#, elixir-format -#: lib/pleroma/plugs/ensure_authenticated_plug.ex:28 +#, elixir-autogen, elixir-format +#: lib/pleroma/web/plugs/ensure_authenticated_plug.ex:32 msgid "Two-factor authentication enabled, you must use a access token." msgstr "" -#, elixir-format -#: lib/pleroma/web/pleroma_api/controllers/emoji_pack_controller.ex:210 -msgid "Unexpected error occurred while adding file to pack." -msgstr "" - -#, elixir-format -#: lib/pleroma/web/pleroma_api/controllers/emoji_pack_controller.ex:138 -msgid "Unexpected error occurred while creating pack." -msgstr "" - -#, elixir-format -#: lib/pleroma/web/pleroma_api/controllers/emoji_pack_controller.ex:278 -msgid "Unexpected error occurred while removing file from pack." -msgstr "" - -#, elixir-format -#: lib/pleroma/web/pleroma_api/controllers/emoji_pack_controller.ex:250 -msgid "Unexpected error occurred while updating file in pack." -msgstr "" - -#, elixir-format -#: lib/pleroma/web/pleroma_api/controllers/emoji_pack_controller.ex:179 -msgid "Unexpected error occurred while updating pack metadata." -msgstr "" - -#, elixir-format +#, elixir-autogen, elixir-format #: lib/pleroma/web/mastodon_api/controllers/subscription_controller.ex:61 msgid "Web push subscription is disabled on this Pleroma instance" msgstr "" -#, elixir-format -#: lib/pleroma/web/admin_api/controllers/admin_api_controller.ex:451 +#, elixir-autogen, elixir-format +#: lib/pleroma/web/admin_api/controllers/admin_api_controller.ex:234 msgid "You can't revoke your own admin/moderator status." msgstr "" -#, elixir-format -#: lib/pleroma/web/mastodon_api/controllers/timeline_controller.ex:126 +#, elixir-autogen, elixir-format +#: lib/pleroma/web/mastodon_api/controllers/timeline_controller.ex:131 msgid "authorization required for timeline view" msgstr "" -#, elixir-format +#, elixir-autogen, elixir-format #: lib/pleroma/web/mastodon_api/controllers/fallback_controller.ex:24 msgid "Access denied" msgstr "" -#, elixir-format -#: lib/pleroma/web/mastodon_api/controllers/account_controller.ex:282 +#, elixir-autogen, elixir-format +#: lib/pleroma/web/mastodon_api/controllers/account_controller.ex:334 msgid "This API requires an authenticated user" msgstr "" -#, elixir-format -#: lib/pleroma/plugs/user_is_admin_plug.ex:21 +#, elixir-autogen, elixir-format +#: lib/pleroma/web/plugs/ensure_staff_privileged_plug.ex:26 +#: lib/pleroma/web/plugs/user_is_admin_plug.ex:21 msgid "User is not an admin." msgstr "" + +#, elixir-format +#: lib/pleroma/user/backup.ex:73 +msgid "Last export was less than a day ago" +msgid_plural "Last export was less than %{days} days ago" +msgstr[0] "" +msgstr[1] "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/web/activity_pub/activity_pub_controller.ex:421 +msgid "Character limit (%{limit} characters) exceeded, contains %{length} characters" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/web/common_api/utils.ex:482 +msgid "Too many attachments" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/web/plugs/ensure_staff_privileged_plug.ex:33 +#: lib/pleroma/web/plugs/user_is_staff_plug.ex:20 +msgid "User is not a staff member." +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/web/o_auth/o_auth_controller.ex:366 +msgid "Your account is awaiting approval." +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/web/mastodon_api/controllers/account_controller.ex:258 +#: lib/pleroma/web/mastodon_api/controllers/account_controller.ex:261 +#: lib/pleroma/web/mastodon_api/controllers/account_controller.ex:264 +msgid "File is too large" +msgstr "" diff --git a/priv/gettext/fr/LC_MESSAGES/config_descriptions.po b/priv/gettext/fr/LC_MESSAGES/config_descriptions.po new file mode 100644 index 000000000..e43db68aa --- /dev/null +++ b/priv/gettext/fr/LC_MESSAGES/config_descriptions.po @@ -0,0 +1,6011 @@ +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2022-07-22 02:09+0300\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: Automatically generated\n" +"Language-Team: none\n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Translate Toolkit 3.7.2\n" + +## This file is a PO Template file. +## +## "msgid"s here are often extracted from source code. +## Add new translations manually only if they're dynamic +## translations that can't be statically extracted. +## +## Run "mix gettext.extract" to bring this file up to +## date. Leave "msgstr"s empty as changing them here has no +## effect: edit them in PO (.po) files instead. + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :esshd" +msgid "Before enabling this you must add :esshd to mix.exs as one of the extra_applications and generate host keys in your priv dir with ssh-keygen -m PEM -N \"\" -b 2048 -t rsa -f ssh_host_rsa_key" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :logger" +msgid "Logger-related settings" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :mime" +msgid "Mime Types settings" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma" +msgid "Allows setting a token that can be used to authenticate requests with admin privileges without a normal user account token. Append the `admin_token` parameter to requests to utilize it. (Please reconsider using HTTP Basic Auth or OAuth-based authentication if possible)" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma" +msgid "Authenticator" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :quack" +msgid "Quack-related settings" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :cors_plug" +msgid "CORS plug config" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :esshd" +msgid "ESSHD" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :logger" +msgid "Logger" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :mime" +msgid "Mime Types" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma" +msgid "Pleroma Admin Token" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma" +msgid "Pleroma Authenticator" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :quack" +msgid "Quack Logger" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :logger-:console" +msgid "Console logger settings" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :logger-:ex_syslogger" +msgid "ExSyslogger-related settings" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:activitypub" +msgid "ActivityPub-related settings" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:assets" +msgid "This section configures assets to be used with various frontends. Currently the only option relates to mascots on the mastodon frontend" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:auth" +msgid "Authentication / authorization settings" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:connections_pool" +msgid "Advanced settings for `Gun` connections pool" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:email_notifications" +msgid "Email notifications settings" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:features" +msgid "Customizable features" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:feed" +msgid "Configure feed rendering" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:frontend_configurations" +msgid "This form can be used to configure a keyword list that keeps the configuration data for any kind of frontend. By default, settings for pleroma_fe are configured. If you want to add your own configuration your settings all fields must be complete." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:frontends" +msgid "Installed frontends management" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:gopher" +msgid "Gopher settings" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:hackney_pools" +msgid "Advanced settings for `Hackney` connections pools" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:http" +msgid "HTTP settings" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:http_security" +msgid "HTTP security settings" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:instance" +msgid "Instance-related settings" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:instances_favicons" +msgid "Control favicons for instances" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:ldap" +msgid "Use LDAP for user authentication. When a user logs in to the Pleroma instance, the name and password will be verified by trying to authenticate (bind) to a LDAP server. If a user exists in the LDAP directory but there is no account with the same name yet on the Pleroma instance then a new Pleroma account will be created with the same name as the LDAP user name." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:majic_pool" +msgid "Majic/libmagic configuration" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:manifest" +msgid "This section describe PWA manifest instance-specific values. Currently this option relate only for MastoFE." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:media_preview_proxy" +msgid "Media preview proxy" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:media_proxy" +msgid "Media proxy" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:modules" +msgid "Custom Runtime Modules" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:mrf" +msgid "General MRF settings" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:mrf_activity_expiration" +msgid "Adds automatic expiration to all local activities" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:mrf_follow_bot" +msgid "Automatically follows newly discovered accounts." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:mrf_hashtag" +msgid "Reject, TWKN-remove or Set-Sensitive messsages with specific hashtags (without the leading #)\n\nNote: This MRF Policy is always enabled, if you want to disable it you have to set empty lists.\n" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:mrf_hellthread" +msgid "Block messages with excessive user mentions" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:mrf_keyword" +msgid "Reject or Word-Replace messages matching a keyword or [Regex](https://hexdocs.pm/elixir/Regex.html)." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:mrf_mention" +msgid "Block messages which mention a specific user" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:mrf_normalize_markup" +msgid "MRF NormalizeMarkup settings. Scrub configured hypertext markup." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:mrf_object_age" +msgid "Rejects or delists posts based on their timestamp deviance from your server's clock." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:mrf_rejectnonpublic" +msgid "RejectNonPublic drops posts with non-public visibility settings." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:mrf_simple" +msgid "Simple ingress policies" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:mrf_steal_emoji" +msgid "Steals emojis from selected instances when it sees them." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:mrf_subchain" +msgid "This policy processes messages through an alternate pipeline when a given message matches certain criteria. All criteria are configured as a map of regular expressions to lists of policy modules." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:mrf_vocabulary" +msgid "Filter messages which belong to certain activity vocabularies" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:oauth2" +msgid "Configure OAuth 2 provider capabilities" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:pools" +msgid "Advanced settings for `Gun` workers pools" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:populate_hashtags_table" +msgid "`populate_hashtags_table` background migration settings" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:rate_limit" +msgid "Rate limit settings. This is an advanced feature enabled only for :authentication by default." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:restrict_unauthenticated" +msgid "Disallow viewing timelines, user profiles and statuses for unauthenticated users." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:rich_media" +msgid "If enabled the instance will parse metadata from attached links to generate link previews" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:shout" +msgid "Pleroma shout settings" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:static_fe" +msgid "Render profiles and posts using server-generated HTML that is viewable without using JavaScript" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:streamer" +msgid "Settings for notifications streamer" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:uri_schemes" +msgid "URI schemes related settings" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:web_cache_ttl" +msgid "The expiration time for the web responses cache. Values should be in milliseconds or `nil` to disable expiration." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:welcome" +msgid "Welcome messages settings" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:workers" +msgid "Includes custom worker options not interpretable directly by `Oban`" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-ConcurrentLimiter" +msgid "Limits configuration for background tasks." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-Oban" +msgid "[Oban](https://github.com/sorentwo/oban) asynchronous job processor configuration." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-Pleroma.Captcha" +msgid "Captcha-related settings" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-Pleroma.Captcha.Kocaptcha" +msgid "Kocaptcha is a very simple captcha service with a single API endpoint, the source code is here: https://github.com/koto-bank/kocaptcha. The default endpoint (https://captcha.kotobank.ch) is hosted by the developer." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-Pleroma.Emails.Mailer" +msgid "Mailer-related settings" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-Pleroma.Emails.NewUsersDigestEmail" +msgid "New users admin email digest" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-Pleroma.Emails.UserEmail" +msgid "Email template settings" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-Pleroma.Formatter" +msgid "Configuration for Pleroma's link formatter which parses mentions, hashtags, and URLs." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-Pleroma.ScheduledActivity" +msgid "Scheduled activities settings" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-Pleroma.Upload" +msgid "Upload general settings" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-Pleroma.Upload.Filter.AnonymizeFilename" +msgid "Filter replaces the filename of the upload" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-Pleroma.Upload.Filter.Mogrify" +msgid "Uploads mogrify filter settings" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-Pleroma.Uploaders.Local" +msgid "Local uploader-related settings" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-Pleroma.Uploaders.S3" +msgid "S3 uploader-related settings" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-Pleroma.User.Backup" +msgid "Account Backup" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-Pleroma.Web.MediaProxy.Invalidation.Http" +msgid "HTTP invalidate settings" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-Pleroma.Web.MediaProxy.Invalidation.Script" +msgid "Invalidation script settings" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-Pleroma.Web.Metadata" +msgid "Metadata-related settings" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-Pleroma.Web.Plugs.RemoteIp" +msgid "`Pleroma.Web.Plugs.RemoteIp` is a shim to call [`RemoteIp`](https://git.pleroma.social/pleroma/remote_ip) but with runtime configuration.\n**If your instance is not behind at least one reverse proxy, you should not enable this plug.**\n" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-Pleroma.Web.Preload" +msgid "Preload-related settings" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-Pleroma.Workers.PurgeExpiredActivity" +msgid "Expired activities settings" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :prometheus-Pleroma.Web.Endpoint.MetricsExporter" +msgid "Prometheus app metrics endpoint configuration" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :web_push_encryption-:vapid_details" +msgid "Web Push Notifications configuration. You can use the mix task mix web_push.gen.keypair to generate it." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :ex_aws-:s3" +msgid "S3" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :logger-:console" +msgid "Console Logger" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :logger-:ex_syslogger" +msgid "ExSyslogger" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:activitypub" +msgid "ActivityPub" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:assets" +msgid "Assets" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:auth" +msgid "Auth" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:connections_pool" +msgid "Connections pool" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:email_notifications" +msgid "Email notifications" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:emoji" +msgid "Emoji" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:features" +msgid "Features" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:feed" +msgid "Feed" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:frontend_configurations" +msgid "Frontend configurations" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:frontends" +msgid "Frontends" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:gopher" +msgid "Gopher" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:hackney_pools" +msgid "Hackney pools" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:http" +msgid "HTTP" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:http_security" +msgid "HTTP security" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:instance" +msgid "Instance" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:instances_favicons" +msgid "Instances favicons" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:ldap" +msgid "LDAP" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:majic_pool" +msgid "Majic pool" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:manifest" +msgid "Manifest" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:markup" +msgid "Markup Settings" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:media_preview_proxy" +msgid "Media preview proxy" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:media_proxy" +msgid "Media proxy" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:modules" +msgid "Modules" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:mrf" +msgid "MRF" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:mrf_activity_expiration" +msgid "MRF Activity Expiration Policy" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:mrf_follow_bot" +msgid "MRF FollowBot Policy" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:mrf_hashtag" +msgid "MRF Hashtag" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:mrf_hellthread" +msgid "MRF Hellthread" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:mrf_keyword" +msgid "MRF Keyword" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:mrf_mention" +msgid "MRF Mention" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:mrf_normalize_markup" +msgid "MRF Normalize Markup" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:mrf_object_age" +msgid "MRF Object Age" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:mrf_rejectnonpublic" +msgid "MRF Reject Non Public" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:mrf_simple" +msgid "MRF Simple" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:mrf_steal_emoji" +msgid "MRF Emojis" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:mrf_subchain" +msgid "MRF Subchain" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:mrf_vocabulary" +msgid "MRF Vocabulary" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:oauth2" +msgid "OAuth2" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:pools" +msgid "Pools" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:populate_hashtags_table" +msgid "Populate hashtags table" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:rate_limit" +msgid "Rate limit" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:restrict_unauthenticated" +msgid "Restrict Unauthenticated" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:rich_media" +msgid "Rich media" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:shout" +msgid "Shout" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:static_fe" +msgid "Static FE" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:streamer" +msgid "Streamer" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:uri_schemes" +msgid "URI Schemes" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:user" +msgid "User" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:web_cache_ttl" +msgid "Web cache TTL" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:welcome" +msgid "Welcome" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:workers" +msgid "Workers" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-ConcurrentLimiter" +msgid "ConcurrentLimiter" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Oban" +msgid "Oban" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Pleroma.Captcha" +msgid "Pleroma.Captcha" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Pleroma.Captcha.Kocaptcha" +msgid "Pleroma.Captcha.Kocaptcha" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Pleroma.Emails.Mailer" +msgid "Pleroma.Emails.Mailer" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Pleroma.Emails.NewUsersDigestEmail" +msgid "Pleroma.Emails.NewUsersDigestEmail" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Pleroma.Emails.UserEmail" +msgid "Pleroma.Emails.UserEmail" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Pleroma.Formatter" +msgid "Linkify" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Pleroma.ScheduledActivity" +msgid "Pleroma.ScheduledActivity" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Pleroma.Upload" +msgid "Pleroma.Upload" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Pleroma.Upload.Filter.AnonymizeFilename" +msgid "Pleroma.Upload.Filter.AnonymizeFilename" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Pleroma.Upload.Filter.Mogrify" +msgid "Pleroma.Upload.Filter.Mogrify" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Pleroma.Uploaders.Local" +msgid "Pleroma.Uploaders.Local" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Pleroma.Uploaders.S3" +msgid "Pleroma.Uploaders.S3" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Pleroma.User" +msgid "Pleroma.User" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Pleroma.User.Backup" +msgid "Pleroma.User.Backup" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Pleroma.Web.ApiSpec.CastAndValidate" +msgid "Pleroma.Web.ApiSpec.CastAndValidate" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Pleroma.Web.MediaProxy.Invalidation.Http" +msgid "Pleroma.Web.MediaProxy.Invalidation.Http" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Pleroma.Web.MediaProxy.Invalidation.Script" +msgid "Pleroma.Web.MediaProxy.Invalidation.Script" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Pleroma.Web.Metadata" +msgid "Pleroma.Web.Metadata" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Pleroma.Web.Plugs.RemoteIp" +msgid "Pleroma.Web.Plugs.RemoteIp" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Pleroma.Web.Preload" +msgid "Pleroma.Web.Preload" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Pleroma.Workers.PurgeExpiredActivity" +msgid "Pleroma.Workers.PurgeExpiredActivity" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :prometheus-Pleroma.Web.Endpoint.MetricsExporter" +msgid "Pleroma.Web.Endpoint.MetricsExporter" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :web_push_encryption-:vapid_details" +msgid "Vapid Details" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :esshd > :enabled" +msgid "Enables SSH" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :esshd > :handler" +msgid "Handler module" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :esshd > :password_authenticator" +msgid "Authenticator module" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :esshd > :port" +msgid "Port to connect" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :esshd > :priv_dir" +msgid "Dir with SSH keys" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :ex_aws-:s3 > :access_key_id" +msgid "S3 access key ID" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :ex_aws-:s3 > :host" +msgid "S3 host" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :ex_aws-:s3 > :region" +msgid "S3 region (for AWS)" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :ex_aws-:s3 > :secret_access_key" +msgid "Secret access key" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :logger > :backends" +msgid "Where logs will be sent, :console - send logs to stdout, { ExSyslogger, :ex_syslogger } - to syslog, Quack.Logger - to Slack." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :logger-:console > :format" +msgid "Default: \"$date $time [$level] $levelpad$node $metadata $message\"" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :logger-:console > :level" +msgid "Log level" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :logger-:ex_syslogger > :format" +msgid "Default: \"$date $time [$level] $levelpad$node $metadata $message\"" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :logger-:ex_syslogger > :ident" +msgid "A string that's prepended to every message, and is typically set to the app name" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :logger-:ex_syslogger > :level" +msgid "Log level" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma > :admin_token" +msgid "Admin token" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:activitypub > :blockers_visible" +msgid "Whether a user can see someone who has blocked them" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:activitypub > :follow_handshake_timeout" +msgid "Following handshake timeout" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:activitypub > :note_replies_output_limit" +msgid "The number of Note replies' URIs to be included with outgoing federation (`5` to match Mastodon hardcoded value, `0` to disable the output)" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:activitypub > :outgoing_blocks" +msgid "Whether to federate blocks to other instances" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:activitypub > :sign_object_fetches" +msgid "Sign object fetches with HTTP signatures" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:activitypub > :unfollow_blocked" +msgid "Whether blocks result in people getting unfollowed" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:assets > :default_mascot" +msgid "This will be used as the default mascot on MastoFE. Default: `:pleroma_fox_tan`" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:assets > :default_user_avatar" +msgid "URL of the default user avatar" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:assets > :mascots" +msgid "Keyword of mascots, each element must contain both an URL and a mime_type key" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:auth > :auth_template" +msgid "Authentication form template. By default it's `show.html` which corresponds to `lib/pleroma/web/templates/o_auth/o_auth/show.html.ee`." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:auth > :enforce_oauth_admin_scope_usage" +msgid "OAuth admin scope requirement toggle. If enabled, admin actions explicitly demand admin OAuth scope(s) presence in OAuth token (client app must support admin scopes). If disabled and token doesn't have admin scope(s), `is_admin` user flag grants access to admin-specific actions." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:auth > :oauth_consumer_strategies" +msgid "The list of enabled OAuth consumer strategies. By default it's set by OAUTH_CONSUMER_STRATEGIES environment variable. Each entry in this space-delimited string should be of format \"strategy\" or \"strategy:dependency\" (e.g. twitter or keycloak:ueberauth_keycloak_strategy in case dependency is named differently than ueberauth_)." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:auth > :oauth_consumer_template" +msgid "OAuth consumer mode authentication form template. By default it's `consumer.html` which corresponds to `lib/pleroma/web/templates/o_auth/o_auth/consumer.html.eex`." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:connections_pool > :connect_timeout" +msgid "Timeout while `gun` will wait until connection is up. Default: 5000ms." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:connections_pool > :connection_acquisition_retries" +msgid "Number of attempts to acquire the connection from the pool if it is overloaded. Default: 5" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:connections_pool > :connection_acquisition_wait" +msgid "Timeout to acquire a connection from pool. The total max time is this value multiplied by the number of retries. Default: 250ms." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:connections_pool > :max_connections" +msgid "Maximum number of connections in the pool. Default: 250 connections." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:connections_pool > :reclaim_multiplier" +msgid "Multiplier for the number of idle connection to be reclaimed if the pool is full. For example if the pool maxes out at 250 connections and this setting is set to 0.3, the pool will reclaim at most 75 idle connections if it's overloaded. Default: 0.1" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:email_notifications > :digest" +msgid "emails of \"what you've missed\" for users who have been inactive for a while" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:email_notifications > :digest > :active" +msgid "Globally enable or disable digest emails" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:email_notifications > :digest > :inactivity_threshold" +msgid "Minimum user inactivity threshold" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:email_notifications > :digest > :interval" +msgid "Minimum interval between digest emails to one user" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:email_notifications > :digest > :schedule" +msgid "When to send digest email, in crontab format. \"0 0 0\" is the default, meaning \"once a week at midnight on Sunday morning\"." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:emoji > :default_manifest" +msgid "Location of the JSON-manifest. This manifest contains information about the emoji-packs you can download. Currently only one manifest can be added (no arrays)." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:emoji > :groups" +msgid "Emojis are ordered in groups (tags). This is an array of key-value pairs where the key is the group name and the value is the location or array of locations. * can be used as a wildcard." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:emoji > :pack_extensions" +msgid "A list of file extensions for emojis, when no emoji.txt for a pack is present" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:emoji > :shortcode_globs" +msgid "Location of custom emoji files. * can be used as a wildcard." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:features > :improved_hashtag_timeline" +msgid "Setting to force toggle / force disable improved hashtags timeline. `:enabled` forces hashtags to be fetched from `hashtags` table for hashtags timeline. `:disabled` forces object-embedded hashtags to be used (slower). Keep it `:auto` for automatic behaviour (it is auto-set to `:enabled` [unless overridden] when HashtagsTableMigrator completes)." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:feed > :post_title" +msgid "Configure title rendering" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:feed > :post_title > :max_length" +msgid "Maximum number of characters before truncating title" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:feed > :post_title > :omission" +msgid "Replacement which will be used after truncating string" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:frontend_configurations > :pleroma_fe" +msgid "Settings for Pleroma FE" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:frontend_configurations > :pleroma_fe > :alwaysShowSubjectInput" +msgid "When disabled, auto-hide the subject field if it's empty" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:frontend_configurations > :pleroma_fe > :background" +msgid "URL of the background, unless viewing a user profile with a background that is set" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:frontend_configurations > :pleroma_fe > :collapseMessageWithSubject" +msgid "When a message has a subject (aka Content Warning), collapse it by default" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:frontend_configurations > :pleroma_fe > :greentext" +msgid "Enables green text on lines prefixed with the > character" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:frontend_configurations > :pleroma_fe > :hideFilteredStatuses" +msgid "Hides filtered statuses from timelines" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:frontend_configurations > :pleroma_fe > :hideMutedPosts" +msgid "Hides muted statuses from timelines" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:frontend_configurations > :pleroma_fe > :hidePostStats" +msgid "Hide notices statistics (repeats, favorites, ...)" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:frontend_configurations > :pleroma_fe > :hideSitename" +msgid "Hides instance name from PleromaFE banner" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:frontend_configurations > :pleroma_fe > :hideUserStats" +msgid "Hide profile statistics (posts, posts per day, followers, followings, ...)" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:frontend_configurations > :pleroma_fe > :logo" +msgid "URL of the logo, defaults to Pleroma's logo" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:frontend_configurations > :pleroma_fe > :logoMargin" +msgid "Allows you to adjust vertical margins between logo boundary and navbar borders. The idea is that to have logo's image without any extra margins and instead adjust them to your need in layout." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:frontend_configurations > :pleroma_fe > :logoMask" +msgid "By default it assumes logo used will be monochrome with alpha channel to be compatible with both light and dark themes. If you want a colorful logo you must disable logoMask." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:frontend_configurations > :pleroma_fe > :minimalScopesMode" +msgid "Limit scope selection to Direct, User default, and Scope of post replying to. Also prevents replying to a DM with a public post from PleromaFE." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:frontend_configurations > :pleroma_fe > :nsfwCensorImage" +msgid "URL of the image to use for hiding NSFW media attachments in the timeline" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:frontend_configurations > :pleroma_fe > :postContentType" +msgid "Default post formatting option" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:frontend_configurations > :pleroma_fe > :redirectRootLogin" +msgid "Relative URL which indicates where to redirect when a user is logged in" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:frontend_configurations > :pleroma_fe > :redirectRootNoLogin" +msgid "Relative URL which indicates where to redirect when a user isn't logged in" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:frontend_configurations > :pleroma_fe > :scopeCopy" +msgid "Copy the scope (private/unlisted/public) in replies to posts by default" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:frontend_configurations > :pleroma_fe > :showFeaturesPanel" +msgid "Enables panel displaying functionality of the instance on the About page" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:frontend_configurations > :pleroma_fe > :showInstanceSpecificPanel" +msgid "Whether to show the instance's custom panel" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:frontend_configurations > :pleroma_fe > :sidebarRight" +msgid "Change alignment of sidebar and panels to the right" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:frontend_configurations > :pleroma_fe > :subjectLineBehavior" +msgid "Allows changing the default behaviour of subject lines in replies.\n `email`: copy and preprend re:, as in email,\n `masto`: copy verbatim, as in Mastodon,\n `noop`: don't copy the subject." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:frontend_configurations > :pleroma_fe > :theme" +msgid "Which theme to use. Available themes are defined in styles.json" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:frontends > :admin" +msgid "Admin frontend" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:frontends > :admin > name" +msgid "Name of the installed frontend. Valid config must include both `Name` and `Reference` values." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:frontends > :admin > ref" +msgid "Reference of the installed frontend to be used. Valid config must include both `Name` and `Reference` values." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:frontends > :available" +msgid "A map containing available frontends and parameters for their installation." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:frontends > :available > build_dir" +msgid "The directory inside the zip file " +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:frontends > :available > build_url" +msgid "Either an url to a zip file containing the frontend or a template to build it by inserting the `ref`. The string `${ref}` will be replaced by the configured `ref`." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:frontends > :available > custom-http-headers" +msgid "The custom HTTP headers for the frontend" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:frontends > :available > git" +msgid "URL of the git repository of the frontend" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:frontends > :available > name" +msgid "Name of the frontend." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:frontends > :available > ref" +msgid "Reference of the frontend to be used." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:frontends > :primary" +msgid "Primary frontend, the one that is served for all pages by default" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:frontends > :primary > name" +msgid "Name of the installed frontend. Valid config must include both `Name` and `Reference` values." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:frontends > :primary > ref" +msgid "Reference of the installed frontend to be used. Valid config must include both `Name` and `Reference` values." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:gopher > :dstport" +msgid "Port advertised in URLs (optional, defaults to port)" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:gopher > :enabled" +msgid "Enables the gopher interface" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:gopher > :ip" +msgid "IP address to bind to" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:gopher > :port" +msgid "Port to bind to" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:hackney_pools > :federation" +msgid "Settings for federation pool." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:hackney_pools > :federation > :max_connections" +msgid "Number workers in the pool." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:hackney_pools > :federation > :timeout" +msgid "Timeout while `hackney` will wait for response." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:hackney_pools > :media" +msgid "Settings for media pool." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:hackney_pools > :media > :max_connections" +msgid "Number workers in the pool." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:hackney_pools > :media > :timeout" +msgid "Timeout while `hackney` will wait for response." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:hackney_pools > :upload" +msgid "Settings for upload pool." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:hackney_pools > :upload > :max_connections" +msgid "Number workers in the pool." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:hackney_pools > :upload > :timeout" +msgid "Timeout while `hackney` will wait for response." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:http > :adapter" +msgid "Adapter specific options" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:http > :adapter > :ssl_options" +msgid "SSL options for HTTP adapter" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:http > :adapter > :ssl_options > :versions" +msgid "List of TLS version to use" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:http > :proxy_url" +msgid "Proxy URL" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:http > :user_agent" +msgid "What user agent to use. Must be a string or an atom `:default`. Default value is `:default`." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:http_security > :ct_max_age" +msgid "The maximum age for the Expect-CT header if sent" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:http_security > :enabled" +msgid "Whether the managed content security policy is enabled" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:http_security > :referrer_policy" +msgid "The referrer policy to use, either \"same-origin\" or \"no-referrer\"" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:http_security > :report_uri" +msgid "Adds the specified URL to report-uri and report-to group in CSP header" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:http_security > :sts" +msgid "Whether to additionally send a Strict-Transport-Security header" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:http_security > :sts_max_age" +msgid "The maximum age for the Strict-Transport-Security header if sent" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:instance > :account_activation_required" +msgid "Require users to confirm their emails before signing in" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:instance > :account_approval_required" +msgid "Require users to be manually approved by an admin before signing in" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:instance > :account_field_name_length" +msgid "An account field name maximum length. Default: 512." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:instance > :account_field_value_length" +msgid "An account field value maximum length. Default: 2048." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:instance > :allow_relay" +msgid "Permits remote instances to subscribe to all public posts of your instance. (Important!) This may increase the visibility of your instance." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:instance > :allowed_post_formats" +msgid "MIME-type list of formats allowed to be posted (transformed into HTML)" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:instance > :attachment_links" +msgid "Enable to automatically add attachment link text to statuses" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:instance > :autofollowed_nicknames" +msgid "Set to nicknames of (local) users that every new user should automatically follow" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:instance > :autofollowing_nicknames" +msgid "Set to nicknames of (local) users that automatically follows every newly registered user" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:instance > :avatar_upload_limit" +msgid "File size limit of user's profile avatars" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:instance > :background_upload_limit" +msgid "File size limit of user's profile backgrounds" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:instance > :banner_upload_limit" +msgid "File size limit of user's profile banners" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:instance > :birthday_min_age" +msgid "Minimum required age for users to create account. Only used if birthday is required." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:instance > :birthday_required" +msgid "Require users to enter their birthday." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:instance > :cleanup_attachments" +msgid "Enable to remove associated attachments when status is removed.\nThis will not affect duplicates and attachments without status.\nEnabling this will increase load to database when deleting statuses on larger instances.\n" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:instance > :description" +msgid "The instance's description. It can be seen in nodeinfo and `/api/v1/instance`" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:instance > :email" +msgid "Email used to reach an Administrator/Moderator of the instance" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:instance > :extended_nickname_format" +msgid "Enable to use extended local nicknames format (allows underscores/dashes). This will break federation with older software for theses nicknames." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:instance > :external_user_synchronization" +msgid "Enabling following/followers counters synchronization for external users" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:instance > :federating" +msgid "Enable federation with other instances" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:instance > :federation_incoming_replies_max_depth" +msgid "Max. depth of reply-to and reply activities fetching on incoming federation, to prevent out-of-memory situations while fetching very long threads. If set to `nil`, threads of any depth will be fetched. Lower this value if you experience out-of-memory crashes." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:instance > :federation_reachability_timeout_days" +msgid "Timeout (in days) of each external federation target being unreachable prior to pausing federating to it" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:instance > :healthcheck" +msgid "If enabled, system data will be shown on `/api/pleroma/healthcheck`" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:instance > :instance_thumbnail" +msgid "The instance thumbnail can be any image that represents your instance and is used by some apps or services when they display information about your instance." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:instance > :invites_enabled" +msgid "Enable user invitations for admins (depends on `registrations_open` being disabled)" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:instance > :limit" +msgid "Posts character limit (CW/Subject included in the counter)" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:instance > :limit_to_local_content" +msgid "Limit unauthenticated users to search for local statutes and users only. Default: `:unauthenticated`." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:instance > :max_account_fields" +msgid "The maximum number of custom fields in the user profile. Default: 10." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:instance > :max_endorsed_users" +msgid "The maximum number of recommended accounts. 0 will disable the feature." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:instance > :max_media_attachments" +msgid "Maximum number of post media attachments" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:instance > :max_pinned_statuses" +msgid "The maximum number of pinned statuses. 0 will disable the feature." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:instance > :max_remote_account_fields" +msgid "The maximum number of custom fields in the remote user profile. Default: 20." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:instance > :max_report_comment_size" +msgid "The maximum size of the report comment. Default: 1000." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:instance > :multi_factor_authentication" +msgid "Multi-factor authentication settings" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:instance > :multi_factor_authentication > :backup_codes" +msgid "MFA backup codes settings" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:instance > :multi_factor_authentication > :backup_codes > :length" +msgid "Determines the length of backup one-time pass-codes, in characters. Defaults to 16 characters." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:instance > :multi_factor_authentication > :backup_codes > :number" +msgid "Number of backup codes to generate." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:instance > :multi_factor_authentication > :totp" +msgid "TOTP settings" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:instance > :multi_factor_authentication > :totp > :digits" +msgid "Determines the length of a one-time pass-code, in characters. Defaults to 6 characters." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:instance > :multi_factor_authentication > :totp > :period" +msgid "A period for which the TOTP code will be valid, in seconds. Defaults to 30 seconds." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:instance > :name" +msgid "Name of the instance" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:instance > :notify_email" +msgid "Envelope FROM address for mail sent via Pleroma" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:instance > :poll_limits" +msgid "A map with poll limits for local polls" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:instance > :poll_limits > :max_expiration" +msgid "Maximum expiration time (in seconds)" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:instance > :poll_limits > :max_option_chars" +msgid "Maximum number of characters per option" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:instance > :poll_limits > :max_options" +msgid "Maximum number of options" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:instance > :poll_limits > :min_expiration" +msgid "Minimum expiration time (in seconds)" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:instance > :privileged_staff" +msgid "Let moderators access sensitive data (e.g. updating user credentials, get password reset token, delete users, index and read private statuses and chats)" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:instance > :profile_directory" +msgid "Enable profile directory." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:instance > :public" +msgid "Makes the client API in authenticated mode-only except for user-profiles. Useful for disabling the Local Timeline and The Whole Known Network. Note: when setting to `false`, please also check `:restrict_unauthenticated` setting." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:instance > :quarantined_instances" +msgid "List of ActivityPub instances where private (DMs, followers-only) activities will not be sent and the reason for doing so" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:instance > :registration_reason_length" +msgid "Maximum registration reason length. Default: 500." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:instance > :registrations_open" +msgid "Enable registrations for anyone. Invitations require this setting to be disabled." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:instance > :remote_limit" +msgid "Hard character limit beyond which remote posts will be dropped" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:instance > :remote_post_retention_days" +msgid "The default amount of days to retain remote posts when pruning the database" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:instance > :safe_dm_mentions" +msgid "If enabled, only mentions at the beginning of a post will be used to address people in direct messages. This is to prevent accidental mentioning of people when talking about them (e.g. \"@admin please keep an eye on @bad_actor\"). Default: disabled" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:instance > :show_reactions" +msgid "Let favourites and emoji reactions be viewed through the API." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:instance > :skip_thread_containment" +msgid "Skip filtering out broken threads. Default: enabled." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:instance > :static_dir" +msgid "Instance static directory" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:instance > :upload_limit" +msgid "File size limit of uploads (except for avatar, background, banner)" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:instance > :user_bio_length" +msgid "A user bio maximum length. Default: 5000." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:instance > :user_name_length" +msgid "A user name maximum length. Default: 100." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:instances_favicons > :enabled" +msgid "Allow/disallow displaying and getting instances favicons" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:ldap > :base" +msgid "LDAP base, e.g. \"dc=example,dc=com\"" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:ldap > :enabled" +msgid "Enables LDAP authentication" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:ldap > :host" +msgid "LDAP server hostname" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:ldap > :port" +msgid "LDAP port, e.g. 389 or 636" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:ldap > :ssl" +msgid "Enable to use SSL, usually implies the port 636" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:ldap > :sslopts" +msgid "Additional SSL options" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:ldap > :sslopts > :cacertfile" +msgid "Path to file with PEM encoded cacerts" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:ldap > :sslopts > :verify" +msgid "Type of cert verification" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:ldap > :tls" +msgid "Enable to use STARTTLS, usually implies the port 389" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:ldap > :tlsopts" +msgid "Additional TLS options" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:ldap > :tlsopts > :cacertfile" +msgid "Path to file with PEM encoded cacerts" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:ldap > :tlsopts > :verify" +msgid "Type of cert verification" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:ldap > :uid" +msgid "LDAP attribute name to authenticate the user, e.g. when \"cn\", the filter will be \"cn=username,base\"" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:majic_pool > :size" +msgid "Number of majic workers to start." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:manifest > :background_color" +msgid "Describe the background color of the app" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:manifest > :icons" +msgid "Describe the icons of the app" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:manifest > :theme_color" +msgid "Describe the theme color of the app" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:markup > :scrub_policy" +msgid "Module names are shortened (removed leading `Pleroma.HTML.` part), but on adding custom module you need to use full name." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:media_preview_proxy > :enabled" +msgid "Enables proxying of remote media preview to the instance's proxy. Requires enabled media proxy." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:media_preview_proxy > :image_quality" +msgid "Quality of the output. Ranges from 0 (min quality) to 100 (max quality)." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:media_preview_proxy > :min_content_length" +msgid "Min content length (in bytes) to perform preview. Media smaller in size will be served without thumbnailing." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:media_preview_proxy > :thumbnail_max_height" +msgid "Max height of preview thumbnail for images (video preview always has original dimensions)." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:media_preview_proxy > :thumbnail_max_width" +msgid "Max width of preview thumbnail for images (video preview always has original dimensions)." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:media_proxy > :base_url" +msgid "The base URL to access a user-uploaded file. Useful when you want to proxy the media files via another host/CDN fronts." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:media_proxy > :enabled" +msgid "Enables proxying of remote media via the instance's proxy" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:media_proxy > :invalidation > :enabled" +msgid "Enables media cache object invalidation." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:media_proxy > :invalidation > :provider" +msgid "Module which will be used to purge objects from the cache." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:media_proxy > :proxy_opts" +msgid "Internal Pleroma.ReverseProxy settings" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:media_proxy > :proxy_opts > :max_body_length" +msgid "Maximum file size (in bytes) allowed through the Pleroma MediaProxy cache." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:media_proxy > :proxy_opts > :max_read_duration" +msgid "Timeout (in milliseconds) of GET request to the remote URI." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:media_proxy > :proxy_opts > :redirect_on_failure" +msgid "Redirects the client to the origin server upon encountering HTTP errors.\n\nNote that files larger than Max Body Length will trigger an error. (e.g., Peertube videos)\n\n\n**WARNING:** This setting will allow larger files to be accessed, but exposes the\n\nIP addresses of your users to the other servers, bypassing the MediaProxy.\n" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:media_proxy > :whitelist" +msgid "List of hosts with scheme to bypass the MediaProxy" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:modules > :runtime_dir" +msgid "A path to custom Elixir modules (such as MRF policies)." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:mrf > :policies" +msgid "A list of MRF policies enabled. Module names are shortened (removed leading `Pleroma.Web.ActivityPub.MRF.` part), but on adding custom module you need to use full name." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:mrf > :transparency" +msgid "Make the content of your Message Rewrite Facility settings public (via nodeinfo)" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:mrf > :transparency_exclusions" +msgid "Exclude specific instance names from MRF transparency. The use of the exclusions feature will be disclosed in nodeinfo as a boolean value. You can also provide a reason for excluding these instance names. The instances and reasons won't be publicly disclosed." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:mrf_activity_expiration > :days" +msgid "Default global expiration time for all local activities (in days)" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:mrf_follow_bot > :follower_nickname" +msgid "The name of the bot account to use for following newly discovered users." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:mrf_hashtag > :federated_timeline_removal" +msgid "A list of hashtags which result in message being removed from federated timelines (a.k.a unlisted)." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:mrf_hashtag > :reject" +msgid "A list of hashtags which result in message being rejected." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:mrf_hashtag > :sensitive" +msgid "A list of hashtags which result in message being set as sensitive (a.k.a NSFW/R-18)" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:mrf_hellthread > :delist_threshold" +msgid "Number of mentioned users after which the message gets removed from timelines anddisables notifications. Set to 0 to disable." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:mrf_hellthread > :reject_threshold" +msgid "Number of mentioned users after which the messaged gets rejected. Set to 0 to disable." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:mrf_keyword > :federated_timeline_removal" +msgid " A list of patterns which result in message being removed from federated timelines (a.k.a unlisted).\n\n Each pattern can be a string or [Regex](https://hexdocs.pm/elixir/Regex.html) in the format of `~r/PATTERN/`.\n" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:mrf_keyword > :reject" +msgid " A list of patterns which result in message being rejected.\n\n Each pattern can be a string or [Regex](https://hexdocs.pm/elixir/Regex.html) in the format of `~r/PATTERN/`.\n" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:mrf_keyword > :replace" +msgid " **Pattern**: a string or [Regex](https://hexdocs.pm/elixir/Regex.html) in the format of `~r/PATTERN/`.\n\n **Replacement**: a string. Leaving the field empty is permitted.\n" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:mrf_mention > :actors" +msgid "A list of actors for which any post mentioning them will be dropped" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:mrf_object_age > :actions" +msgid "A list of actions to apply to the post. `:delist` removes the post from public timelines; `:strip_followers` removes followers from the ActivityPub recipient list ensuring they won't be delivered to home timelines; `:reject` rejects the message entirely" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:mrf_object_age > :threshold" +msgid "Required age (in seconds) of a post before actions are taken." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:mrf_rejectnonpublic > :allow_direct" +msgid "Whether to allow direct messages" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:mrf_rejectnonpublic > :allow_followersonly" +msgid "Whether to allow followers-only posts" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:mrf_simple > :accept" +msgid "List of instances to only accept activities from (except deletes) and the reason for doing so" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:mrf_simple > :avatar_removal" +msgid "List of instances to strip avatars from and the reason for doing so" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:mrf_simple > :banner_removal" +msgid "List of instances to strip banners from and the reason for doing so" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:mrf_simple > :federated_timeline_removal" +msgid "List of instances to remove from the Federated (aka The Whole Known Network) Timeline and the reason for doing so" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:mrf_simple > :followers_only" +msgid "Force posts from the given instances to be visible by followers only and the reason for doing so" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:mrf_simple > :media_nsfw" +msgid "List of instances to tag all media as NSFW (sensitive) from and the reason for doing so" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:mrf_simple > :media_removal" +msgid "List of instances to strip media attachments from and the reason for doing so" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:mrf_simple > :reject" +msgid "List of instances to reject activities from (except deletes) and the reason for doing so" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:mrf_simple > :reject_deletes" +msgid "List of instances to reject deletions from and the reason for doing so" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:mrf_simple > :report_removal" +msgid "List of instances to reject reports from and the reason for doing so" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:mrf_steal_emoji > :hosts" +msgid "List of hosts to steal emojis from" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:mrf_steal_emoji > :rejected_shortcodes" +msgid " A list of patterns or matches to reject shortcodes with.\n\n Each pattern can be a string or [Regex](https://hexdocs.pm/elixir/Regex.html) in the format of `~r/PATTERN/`.\n" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:mrf_steal_emoji > :size_limit" +msgid "File size limit (in bytes), checked before an emoji is saved to the disk" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:mrf_subchain > :match_actor" +msgid "Matches a series of regular expressions against the actor field" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:mrf_vocabulary > :accept" +msgid "A list of ActivityStreams terms to accept. If empty, all supported messages are accepted." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:mrf_vocabulary > :reject" +msgid "A list of ActivityStreams terms to reject. If empty, no messages are rejected." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:oauth2 > :clean_expired_tokens" +msgid "Enable a background job to clean expired OAuth tokens. Default: disabled." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:oauth2 > :issue_new_refresh_token" +msgid "Keeps old refresh token or generate new refresh token when to obtain an access token" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:oauth2 > :token_expires_in" +msgid "The lifetime in seconds of the access token" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:pools > :default" +msgid "Settings for default pool." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:pools > :default > :max_waiting" +msgid "Maximum number of requests waiting for other requests to finish. After this number is reached, the pool will start returning errrors when a new request is made" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:pools > :default > :recv_timeout" +msgid "Timeout for the pool while gun will wait for response" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:pools > :default > :size" +msgid "Maximum number of concurrent requests in the pool." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:pools > :federation" +msgid "Settings for federation pool." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:pools > :federation > :max_waiting" +msgid "Maximum number of requests waiting for other requests to finish. After this number is reached, the pool will start returning errrors when a new request is made" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:pools > :federation > :recv_timeout" +msgid "Timeout for the pool while gun will wait for response" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:pools > :federation > :size" +msgid "Maximum number of concurrent requests in the pool." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:pools > :media" +msgid "Settings for media pool." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:pools > :media > :max_waiting" +msgid "Maximum number of requests waiting for other requests to finish. After this number is reached, the pool will start returning errrors when a new request is made" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:pools > :media > :recv_timeout" +msgid "Timeout for the pool while gun will wait for response" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:pools > :media > :size" +msgid "Maximum number of concurrent requests in the pool." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:pools > :upload" +msgid "Settings for upload pool." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:pools > :upload > :max_waiting" +msgid "Maximum number of requests waiting for other requests to finish. After this number is reached, the pool will start returning errrors when a new request is made" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:pools > :upload > :recv_timeout" +msgid "Timeout for the pool while gun will wait for response" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:pools > :upload > :size" +msgid "Maximum number of concurrent requests in the pool." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:populate_hashtags_table > :fault_rate_allowance" +msgid "Max accepted rate of objects that failed in the migration. Any value from 0.0 which tolerates no errors to 1.0 which will enable the feature even if hashtags transfer failed for all records." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:populate_hashtags_table > :sleep_interval_ms" +msgid "Sleep interval between each chunk of processed records in order to decrease the load on the system (defaults to 0 and should be keep default on most instances)." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:rate_limit > :app_account_creation" +msgid "For registering user accounts from the same IP address" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:rate_limit > :authentication" +msgid "For authentication create / password check / user existence check requests" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:rate_limit > :relation_id_action" +msgid "For actions on relation with a specific user (follow, unfollow)" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:rate_limit > :relations_actions" +msgid "For actions on relationships with all users (follow, unfollow)" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:rate_limit > :search" +msgid "For the search requests (account & status search etc.)" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:rate_limit > :status_id_action" +msgid "For fav / unfav or reblog / unreblog actions on the same status by the same user" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:rate_limit > :statuses_actions" +msgid "For create / delete / fav / unfav / reblog / unreblog actions on any statuses" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:rate_limit > :timeline" +msgid "For requests to timelines (each timeline has it's own limiter)" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:restrict_unauthenticated > :activities" +msgid "Settings for statuses." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:restrict_unauthenticated > :activities > :local" +msgid "Disallow view local statuses." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:restrict_unauthenticated > :activities > :remote" +msgid "Disallow view remote statuses." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:restrict_unauthenticated > :profiles" +msgid "Settings for user profiles." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:restrict_unauthenticated > :profiles > :local" +msgid "Disallow view local user profiles." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:restrict_unauthenticated > :profiles > :remote" +msgid "Disallow view remote user profiles." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:restrict_unauthenticated > :timelines" +msgid "Settings for public and federated timelines." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:restrict_unauthenticated > :timelines > :federated" +msgid "Disallow view federated timeline." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:restrict_unauthenticated > :timelines > :local" +msgid "Disallow view public timeline." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:rich_media > :enabled" +msgid "Enables RichMedia parsing of URLs" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:rich_media > :failure_backoff" +msgid "Amount of milliseconds after request failure, during which the request will not be retried." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:rich_media > :ignore_hosts" +msgid "List of hosts which will be ignored by the metadata parser" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:rich_media > :ignore_tld" +msgid "List TLDs (top-level domains) which will ignore for parse metadata" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:rich_media > :parsers" +msgid "List of Rich Media parsers. Module names are shortened (removed leading `Pleroma.Web.RichMedia.Parsers.` part), but on adding custom module you need to use full name." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:rich_media > :ttl_setters" +msgid "List of rich media TTL setters. Module names are shortened (removed leading `Pleroma.Web.RichMedia.Parser.` part), but on adding custom module you need to use full name." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:shout > :enabled" +msgid "Enables the backend Shoutbox chat feature." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:shout > :limit" +msgid "Shout message character limit." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:static_fe > :enabled" +msgid "Enables the rendering of static HTML. Default: disabled." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:streamer > :overflow_workers" +msgid "Maximum number of workers created if pool is empty" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:streamer > :workers" +msgid "Number of workers to send notifications" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:uri_schemes > :valid_schemes" +msgid "List of the scheme part that is considered valid to be an URL" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:web_cache_ttl > :activity_pub" +msgid "Activity pub routes (except question activities). Default: `nil` (no expiration)." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:web_cache_ttl > :activity_pub_question" +msgid "Activity pub routes (question activities). Default: `30_000` (30 seconds)." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:welcome > :chat_message > :enabled" +msgid "Enables sending a chat message to newly registered users" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:welcome > :chat_message > :message" +msgid "A message that will be sent to newly registered users as a chat message" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:welcome > :chat_message > :sender_nickname" +msgid "The nickname of the local user that sends a welcome chat message" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:welcome > :direct_message > :enabled" +msgid "Enables sending a direct message to newly registered users" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:welcome > :direct_message > :message" +msgid "A message that will be sent to newly registered users" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:welcome > :direct_message > :sender_nickname" +msgid "The nickname of the local user that sends a welcome message" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:welcome > :email > :enabled" +msgid "Enables sending an email to newly registered users" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:welcome > :email > :html" +msgid "HTML content of the welcome email. EEX template with user and instance_name variables can be used." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:welcome > :email > :sender" +msgid "Email address and/or nickname that will be used to send the welcome email." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:welcome > :email > :subject" +msgid "Subject of the welcome email. EEX template with user and instance_name variables can be used." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:welcome > :email > :text" +msgid "Text content of the welcome email. EEX template with user and instance_name variables can be used." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:workers > :retries" +msgid "Max retry attempts for failed jobs, per `Oban` queue" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-ConcurrentLimiter > Pleroma.Web.ActivityPub.MRF.MediaProxyWarmingPolicy" +msgid "Concurrent limits configuration for MediaProxyWarmingPolicy." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-ConcurrentLimiter > Pleroma.Web.ActivityPub.MRF.MediaProxyWarmingPolicy > :max_running" +msgid "Max running concurrently jobs." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-ConcurrentLimiter > Pleroma.Web.ActivityPub.MRF.MediaProxyWarmingPolicy > :max_waiting" +msgid "Max waiting jobs." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-ConcurrentLimiter > Pleroma.Web.RichMedia.Helpers" +msgid "Concurrent limits configuration for getting RichMedia for activities." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-ConcurrentLimiter > Pleroma.Web.RichMedia.Helpers > :max_running" +msgid "Max running concurrently jobs." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-ConcurrentLimiter > Pleroma.Web.RichMedia.Helpers > :max_waiting" +msgid "Max waiting jobs." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-Oban > :crontab" +msgid "Settings for cron background jobs" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-Oban > :log" +msgid "Logs verbose mode" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-Oban > :queues" +msgid "Background jobs queues (keys: queues, values: max numbers of concurrent jobs)" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-Oban > :queues > :activity_expiration" +msgid "Activity expiration queue" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-Oban > :queues > :attachments_cleanup" +msgid "Attachment deletion queue" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-Oban > :queues > :background" +msgid "Background queue" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-Oban > :queues > :backup" +msgid "Backup queue" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-Oban > :queues > :federator_incoming" +msgid "Incoming federation queue" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-Oban > :queues > :federator_outgoing" +msgid "Outgoing federation queue" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-Oban > :queues > :mailer" +msgid "Email sender queue, see Pleroma.Emails.Mailer" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-Oban > :queues > :scheduled_activities" +msgid "Scheduled activities queue, see Pleroma.ScheduledActivities" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-Oban > :queues > :transmogrifier" +msgid "Transmogrifier queue" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-Oban > :queues > :web_push" +msgid "Web push notifications queue" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-Pleroma.Captcha > :enabled" +msgid "Whether the captcha should be shown on registration" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-Pleroma.Captcha > :method" +msgid "The method/service to use for captcha" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-Pleroma.Captcha > :seconds_valid" +msgid "The time in seconds for which the captcha is valid" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-Pleroma.Captcha.Kocaptcha > :endpoint" +msgid "The kocaptcha endpoint to use" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-Pleroma.Emails.Mailer > :adapter" +msgid "One of the mail adapters listed in [Swoosh documentation](https://hexdocs.pm/swoosh/Swoosh.html#module-adapters)" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-Pleroma.Emails.Mailer > Swoosh.Adapters.SMTP-:auth" +msgid "SMTP AUTH enforcement mode" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-Pleroma.Emails.Mailer > Swoosh.Adapters.SMTP-:password" +msgid "SMTP AUTH password" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-Pleroma.Emails.Mailer > Swoosh.Adapters.SMTP-:port" +msgid "SMTP port" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-Pleroma.Emails.Mailer > Swoosh.Adapters.SMTP-:relay" +msgid "Hostname or IP address" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-Pleroma.Emails.Mailer > Swoosh.Adapters.SMTP-:retries" +msgid "SMTP temporary (4xx) error retries" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-Pleroma.Emails.Mailer > Swoosh.Adapters.SMTP-:ssl" +msgid "Use Implicit SSL/TLS. e.g. port 465" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-Pleroma.Emails.Mailer > Swoosh.Adapters.SMTP-:tls" +msgid "Explicit TLS (STARTTLS) enforcement mode" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-Pleroma.Emails.Mailer > Swoosh.Adapters.SMTP-:username" +msgid "SMTP AUTH username" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-Pleroma.Emails.NewUsersDigestEmail > :enabled" +msgid "Enables new users admin digest email when `true`" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-Pleroma.Emails.UserEmail > :logo" +msgid "A path to a custom logo. Set it to `nil` to use the default Pleroma logo." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-Pleroma.Emails.UserEmail > :styling" +msgid "A map with color settings for email templates." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-Pleroma.Formatter > :class" +msgid "Specify the class to be added to the generated link. Disable to clear." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-Pleroma.Formatter > :extra" +msgid "Link URLs with rarely used schemes (magnet, ipfs, irc, etc.)" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-Pleroma.Formatter > :new_window" +msgid "Link URLs will open in a new window/tab." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-Pleroma.Formatter > :rel" +msgid "Override the rel attribute. Disable to clear." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-Pleroma.Formatter > :strip_prefix" +msgid "Strip the scheme prefix." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-Pleroma.Formatter > :truncate" +msgid "Set to a number to truncate URLs longer than the number. Truncated URLs will end in `...`" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-Pleroma.Formatter > :validate_tld" +msgid "Set to false to disable TLD validation for URLs/emails. Can be set to :no_scheme to validate TLDs only for URLs without a scheme (e.g `example.com` will be validated, but `http://example.loki` won't)" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-Pleroma.ScheduledActivity > :daily_user_limit" +msgid "The number of scheduled activities a user is allowed to create in a single day. Default: 25." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-Pleroma.ScheduledActivity > :enabled" +msgid "Whether scheduled activities are sent to the job queue to be executed" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-Pleroma.ScheduledActivity > :total_user_limit" +msgid "The number of scheduled activities a user is allowed to create in total. Default: 300." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-Pleroma.Upload > :base_url" +msgid "Base URL for the uploads. Required if you use a CDN or host attachments under a different domain." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-Pleroma.Upload > :filename_display_max_length" +msgid "Set max length of a filename to display. 0 = no limit. Default: 30" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-Pleroma.Upload > :filters" +msgid "List of filter modules for uploads. Module names are shortened (removed leading `Pleroma.Upload.Filter.` part), but on adding custom module you need to use full name." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-Pleroma.Upload > :link_name" +msgid "If enabled, a name parameter will be added to the URL of the upload. For example `https://instance.tld/media/imagehash.png?name=realname.png`." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-Pleroma.Upload > :proxy_remote" +msgid "Proxy requests to the remote uploader.\n\nUseful if media upload endpoint is not internet accessible.\n" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-Pleroma.Upload > :uploader" +msgid "Module which will be used for uploads" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-Pleroma.Upload.Filter.AnonymizeFilename > :text" +msgid "Text to replace filenames in links. If no setting, {random}.extension will be used. You can get the original filename extension by using {extension}, for example custom-file-name.{extension}." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-Pleroma.Upload.Filter.Mogrify > :args" +msgid "List of actions for the mogrify command. It's possible to add self-written settings as string. For example `auto-orient, strip, {\"resize\", \"3840x1080>\"}` value will be parsed into valid list of the settings." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-Pleroma.Uploaders.Local > :uploads" +msgid "Path where user's uploads will be saved" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-Pleroma.Uploaders.S3 > :bucket" +msgid "S3 bucket" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-Pleroma.Uploaders.S3 > :bucket_namespace" +msgid "S3 bucket namespace" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-Pleroma.Uploaders.S3 > :streaming_enabled" +msgid "Enable streaming uploads, when enabled the file will be sent to the server in chunks as it's being read. This may be unsupported by some providers, try disabling this if you have upload problems." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-Pleroma.Uploaders.S3 > :truncated_namespace" +msgid "If you use S3 compatible service such as Digital Ocean Spaces or CDN, set folder name or \"\" etc. For example, when using CDN to S3 virtual host format, set \"\". At this time, write CNAME to CDN in Upload base_url." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-Pleroma.User > :email_blacklist" +msgid "List of email domains users may not register with." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-Pleroma.User > :restricted_nicknames" +msgid "List of nicknames users may not register with." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-Pleroma.User.Backup > :limit_days" +msgid "Limit user to export not more often than once per N days" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-Pleroma.User.Backup > :purge_after_days" +msgid "Remove backup achives after N days" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-Pleroma.Web.ApiSpec.CastAndValidate > :strict" +msgid "Enables strict input validation (useful in development, not recommended in production)" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-Pleroma.Web.MediaProxy.Invalidation.Http > :headers" +msgid "HTTP headers of request" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-Pleroma.Web.MediaProxy.Invalidation.Http > :method" +msgid "HTTP method of request. Default: :purge" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-Pleroma.Web.MediaProxy.Invalidation.Http > :options" +msgid "Request options" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-Pleroma.Web.MediaProxy.Invalidation.Script > :script_path" +msgid "Path to executable script which will purge cached items." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-Pleroma.Web.MediaProxy.Invalidation.Script > :url_format" +msgid "Optional URL format preprocessing. Only required for Apache's htcacheclean." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-Pleroma.Web.Metadata > :providers" +msgid "List of metadata providers to enable" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-Pleroma.Web.Metadata > :unfurl_nsfw" +msgid "When enabled NSFW attachments will be shown in previews" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-Pleroma.Web.Plugs.RemoteIp > :enabled" +msgid "Enable/disable the plug. Default: disabled." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-Pleroma.Web.Plugs.RemoteIp > :headers" +msgid " A list of strings naming the HTTP headers to use when deriving the true client IP. Default: `[\"x-forwarded-for\"]`.\n" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-Pleroma.Web.Plugs.RemoteIp > :proxies" +msgid "A list of upstream proxy IP subnets in CIDR notation from which we will parse the content of `headers`. Defaults to `[]`. IPv4 entries without a bitmask will be assumed to be /32 and IPv6 /128." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-Pleroma.Web.Plugs.RemoteIp > :reserved" +msgid " A list of reserved IP subnets in CIDR notation which should be ignored if found in `headers`. Defaults to `[\"127.0.0.0/8\", \"::1/128\", \"fc00::/7\", \"10.0.0.0/8\", \"172.16.0.0/12\", \"192.168.0.0/16\"]`\n" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-Pleroma.Web.Preload > :providers" +msgid "List of preload providers to enable" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-Pleroma.Workers.PurgeExpiredActivity > :enabled" +msgid "Enables expired activities addition & deletion" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-Pleroma.Workers.PurgeExpiredActivity > :min_lifetime" +msgid "Minimum lifetime for ephemeral activity (in seconds)" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :prometheus-Pleroma.Web.Endpoint.MetricsExporter > :auth" +msgid "Enables HTTP Basic Auth for app metrics endpoint." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :prometheus-Pleroma.Web.Endpoint.MetricsExporter > :enabled" +msgid "[Pleroma extension] Enables app metrics endpoint." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :prometheus-Pleroma.Web.Endpoint.MetricsExporter > :format" +msgid "App metrics endpoint output format." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :prometheus-Pleroma.Web.Endpoint.MetricsExporter > :ip_whitelist" +msgid "Restrict access of app metrics endpoint to the specified IP addresses." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :prometheus-Pleroma.Web.Endpoint.MetricsExporter > :path" +msgid "App metrics endpoint URI path." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :quack > :level" +msgid "Log level" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :quack > :meta" +msgid "Configure which metadata you want to report on" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :quack > :webhook_url" +msgid "Configure the Slack incoming webhook" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :web_push_encryption-:vapid_details > :private_key" +msgid "VAPID private key" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :web_push_encryption-:vapid_details > :public_key" +msgid "VAPID public key" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :web_push_encryption-:vapid_details > :subject" +msgid "A mailto link for the administrative contact. It's best if this email is not a personal email address, but rather a group email to the instance moderation team." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :cors_plug > :credentials" +msgid "Credentials" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :cors_plug > :expose" +msgid "Expose" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :cors_plug > :headers" +msgid "Headers" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :cors_plug > :max_age" +msgid "Max age" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :cors_plug > :methods" +msgid "Methods" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :esshd > :enabled" +msgid "Enabled" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :esshd > :handler" +msgid "Handler" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :esshd > :password_authenticator" +msgid "Password authenticator" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :esshd > :port" +msgid "Port" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :esshd > :priv_dir" +msgid "Priv dir" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :ex_aws-:s3 > :access_key_id" +msgid "Access key" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :ex_aws-:s3 > :host" +msgid "Host" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :ex_aws-:s3 > :region" +msgid "Region" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :ex_aws-:s3 > :secret_access_key" +msgid "Secret access key" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :logger > :backends" +msgid "Backends" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :logger-:console > :format" +msgid "Format" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :logger-:console > :level" +msgid "Level" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :logger-:console > :metadata" +msgid "Metadata" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :logger-:ex_syslogger > :format" +msgid "Format" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :logger-:ex_syslogger > :ident" +msgid "Ident" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :logger-:ex_syslogger > :level" +msgid "Level" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :logger-:ex_syslogger > :metadata" +msgid "Metadata" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :mime > :types" +msgid "Types" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :mime > :types > application/activity+json" +msgid "\"application/activity+json\"" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :mime > :types > application/jrd+json" +msgid "\"application/jrd+json\"" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :mime > :types > application/ld+json" +msgid "\"application/ld+json\"" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :mime > :types > application/xml" +msgid "\"application/xml\"" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :mime > :types > application/xrd+xml" +msgid "\"application/xrd+xml\"" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma > :admin_token" +msgid "Admin token" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma > Pleroma.Web.Auth.Authenticator" +msgid "Pleroma.Web.Auth.Authenticator" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:activitypub > :blockers_visible" +msgid "Blockers visible" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:activitypub > :follow_handshake_timeout" +msgid "Follow handshake timeout" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:activitypub > :note_replies_output_limit" +msgid "Note replies output limit" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:activitypub > :outgoing_blocks" +msgid "Outgoing blocks" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:activitypub > :sign_object_fetches" +msgid "Sign object fetches" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:activitypub > :unfollow_blocked" +msgid "Unfollow blocked" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:assets > :default_mascot" +msgid "Default mascot" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:assets > :default_user_avatar" +msgid "Default user avatar" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:assets > :mascots" +msgid "Mascots" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:auth > :auth_template" +msgid "Auth template" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:auth > :enforce_oauth_admin_scope_usage" +msgid "Enforce OAuth admin scope usage" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:auth > :oauth_consumer_strategies" +msgid "OAuth consumer strategies" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:auth > :oauth_consumer_template" +msgid "OAuth consumer template" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:connections_pool > :connect_timeout" +msgid "Connect timeout" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:connections_pool > :connection_acquisition_retries" +msgid "Connection acquisition retries" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:connections_pool > :connection_acquisition_wait" +msgid "Connection acquisition wait" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:connections_pool > :max_connections" +msgid "Max connections" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:connections_pool > :reclaim_multiplier" +msgid "Reclaim multiplier" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:email_notifications > :digest" +msgid "Digest" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:email_notifications > :digest > :active" +msgid "Enabled" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:email_notifications > :digest > :inactivity_threshold" +msgid "Inactivity threshold" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:email_notifications > :digest > :interval" +msgid "Interval" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:email_notifications > :digest > :schedule" +msgid "Schedule" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:emoji > :default_manifest" +msgid "Default manifest" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:emoji > :groups" +msgid "Groups" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:emoji > :pack_extensions" +msgid "Pack extensions" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:emoji > :shared_pack_cache_seconds_per_file" +msgid "Shared pack cache s/file" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:emoji > :shortcode_globs" +msgid "Shortcode globs" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:features > :improved_hashtag_timeline" +msgid "Improved hashtag timeline" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:feed > :post_title" +msgid "Post title" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:feed > :post_title > :max_length" +msgid "Max length" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:feed > :post_title > :omission" +msgid "Omission" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:frontend_configurations > :pleroma_fe" +msgid "Pleroma FE" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:frontend_configurations > :pleroma_fe > :alwaysShowSubjectInput" +msgid "Always show subject input" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:frontend_configurations > :pleroma_fe > :background" +msgid "Background" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:frontend_configurations > :pleroma_fe > :collapseMessageWithSubject" +msgid "Collapse message with subject" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:frontend_configurations > :pleroma_fe > :greentext" +msgid "Greentext" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:frontend_configurations > :pleroma_fe > :hideFilteredStatuses" +msgid "Hide Filtered Statuses" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:frontend_configurations > :pleroma_fe > :hideMutedPosts" +msgid "Hide Muted Posts" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:frontend_configurations > :pleroma_fe > :hidePostStats" +msgid "Hide post stats" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:frontend_configurations > :pleroma_fe > :hideSitename" +msgid "Hide Sitename" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:frontend_configurations > :pleroma_fe > :hideUserStats" +msgid "Hide user stats" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:frontend_configurations > :pleroma_fe > :logo" +msgid "Logo" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:frontend_configurations > :pleroma_fe > :logoMargin" +msgid "Logo margin" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:frontend_configurations > :pleroma_fe > :logoMask" +msgid "Logo mask" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:frontend_configurations > :pleroma_fe > :minimalScopesMode" +msgid "Minimal scopes mode" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:frontend_configurations > :pleroma_fe > :nsfwCensorImage" +msgid "NSFW Censor Image" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:frontend_configurations > :pleroma_fe > :postContentType" +msgid "Post Content Type" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:frontend_configurations > :pleroma_fe > :redirectRootLogin" +msgid "Redirect root login" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:frontend_configurations > :pleroma_fe > :redirectRootNoLogin" +msgid "Redirect root no login" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:frontend_configurations > :pleroma_fe > :scopeCopy" +msgid "Scope copy" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:frontend_configurations > :pleroma_fe > :showFeaturesPanel" +msgid "Show instance features panel" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:frontend_configurations > :pleroma_fe > :showInstanceSpecificPanel" +msgid "Show instance specific panel" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:frontend_configurations > :pleroma_fe > :sidebarRight" +msgid "Sidebar on Right" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:frontend_configurations > :pleroma_fe > :subjectLineBehavior" +msgid "Subject line behavior" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:frontend_configurations > :pleroma_fe > :theme" +msgid "Theme" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:frontends > :admin" +msgid "Admin" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:frontends > :admin > name" +msgid "Name" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:frontends > :admin > ref" +msgid "Reference" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:frontends > :available" +msgid "Available" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:frontends > :available > build_dir" +msgid "Build directory" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:frontends > :available > build_url" +msgid "Build URL" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:frontends > :available > custom-http-headers" +msgid "Custom HTTP headers" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:frontends > :available > git" +msgid "Git Repository URL" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:frontends > :available > name" +msgid "Name" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:frontends > :available > ref" +msgid "Reference" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:frontends > :primary" +msgid "Primary" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:frontends > :primary > name" +msgid "Name" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:frontends > :primary > ref" +msgid "Reference" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:gopher > :dstport" +msgid "Dstport" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:gopher > :enabled" +msgid "Enabled" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:gopher > :ip" +msgid "IP" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:gopher > :port" +msgid "Port" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:hackney_pools > :federation" +msgid "Federation" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:hackney_pools > :federation > :max_connections" +msgid "Max connections" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:hackney_pools > :federation > :timeout" +msgid "Timeout" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:hackney_pools > :media" +msgid "Media" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:hackney_pools > :media > :max_connections" +msgid "Max connections" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:hackney_pools > :media > :timeout" +msgid "Timeout" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:hackney_pools > :upload" +msgid "Upload" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:hackney_pools > :upload > :max_connections" +msgid "Max connections" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:hackney_pools > :upload > :timeout" +msgid "Timeout" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:http > :adapter" +msgid "Adapter" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:http > :adapter > :ssl_options" +msgid "SSL Options" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:http > :adapter > :ssl_options > :versions" +msgid "Versions" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:http > :proxy_url" +msgid "Proxy URL" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:http > :send_user_agent" +msgid "Send user agent" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:http > :user_agent" +msgid "User agent" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:http_security > :ct_max_age" +msgid "CT max age" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:http_security > :enabled" +msgid "Enabled" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:http_security > :referrer_policy" +msgid "Referrer policy" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:http_security > :report_uri" +msgid "Report URI" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:http_security > :sts" +msgid "STS" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:http_security > :sts_max_age" +msgid "STS max age" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:instance > :account_activation_required" +msgid "Account activation required" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:instance > :account_approval_required" +msgid "Account approval required" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:instance > :account_field_name_length" +msgid "Account field name length" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:instance > :account_field_value_length" +msgid "Account field value length" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:instance > :allow_relay" +msgid "Allow relay" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:instance > :allowed_post_formats" +msgid "Allowed post formats" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:instance > :attachment_links" +msgid "Attachment links" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:instance > :autofollowed_nicknames" +msgid "Autofollowed nicknames" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:instance > :autofollowing_nicknames" +msgid "Autofollowing nicknames" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:instance > :avatar_upload_limit" +msgid "Avatar upload limit" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:instance > :background_upload_limit" +msgid "Background upload limit" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:instance > :banner_upload_limit" +msgid "Banner upload limit" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:instance > :birthday_min_age" +msgid "Birthday min age" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:instance > :birthday_required" +msgid "Birthday required" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:instance > :cleanup_attachments" +msgid "Cleanup attachments" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:instance > :description" +msgid "Description" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:instance > :email" +msgid "Admin Email Address" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:instance > :extended_nickname_format" +msgid "Extended nickname format" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:instance > :external_user_synchronization" +msgid "External user synchronization" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:instance > :federating" +msgid "Federating" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:instance > :federation_incoming_replies_max_depth" +msgid "Fed. incoming replies max depth" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:instance > :federation_reachability_timeout_days" +msgid "Fed. reachability timeout days" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:instance > :healthcheck" +msgid "Healthcheck" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:instance > :instance_thumbnail" +msgid "Instance thumbnail" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:instance > :invites_enabled" +msgid "Invites enabled" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:instance > :limit" +msgid "Limit" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:instance > :limit_to_local_content" +msgid "Limit to local content" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:instance > :max_account_fields" +msgid "Max account fields" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:instance > :max_endorsed_users" +msgid "Max endorsed users" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:instance > :max_media_attachments" +msgid "Max media attachments" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:instance > :max_pinned_statuses" +msgid "Max pinned statuses" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:instance > :max_remote_account_fields" +msgid "Max remote account fields" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:instance > :max_report_comment_size" +msgid "Max report comment size" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:instance > :multi_factor_authentication" +msgid "Multi factor authentication" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:instance > :multi_factor_authentication > :backup_codes" +msgid "Backup codes" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:instance > :multi_factor_authentication > :backup_codes > :length" +msgid "Length" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:instance > :multi_factor_authentication > :backup_codes > :number" +msgid "Number" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:instance > :multi_factor_authentication > :totp" +msgid "TOTP settings" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:instance > :multi_factor_authentication > :totp > :digits" +msgid "Digits" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:instance > :multi_factor_authentication > :totp > :period" +msgid "Period" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:instance > :name" +msgid "Name" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:instance > :notify_email" +msgid "Sender Email Address" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:instance > :poll_limits" +msgid "Poll limits" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:instance > :poll_limits > :max_expiration" +msgid "Max expiration" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:instance > :poll_limits > :max_option_chars" +msgid "Max option chars" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:instance > :poll_limits > :max_options" +msgid "Max options" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:instance > :poll_limits > :min_expiration" +msgid "Min expiration" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:instance > :privileged_staff" +msgid "Privileged staff" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:instance > :profile_directory" +msgid "Profile directory" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:instance > :public" +msgid "Public" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:instance > :quarantined_instances" +msgid "Quarantined instances" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:instance > :registration_reason_length" +msgid "Registration reason length" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:instance > :registrations_open" +msgid "Registrations open" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:instance > :remote_limit" +msgid "Remote limit" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:instance > :remote_post_retention_days" +msgid "Remote post retention days" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:instance > :safe_dm_mentions" +msgid "Safe DM mentions" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:instance > :show_reactions" +msgid "Show reactions" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:instance > :skip_thread_containment" +msgid "Skip thread containment" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:instance > :static_dir" +msgid "Static dir" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:instance > :upload_limit" +msgid "Upload limit" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:instance > :user_bio_length" +msgid "User bio length" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:instance > :user_name_length" +msgid "User name length" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:instances_favicons > :enabled" +msgid "Enabled" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:ldap > :base" +msgid "Base" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:ldap > :enabled" +msgid "Enabled" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:ldap > :host" +msgid "Host" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:ldap > :port" +msgid "Port" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:ldap > :ssl" +msgid "SSL" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:ldap > :sslopts" +msgid "SSL options" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:ldap > :sslopts > :cacertfile" +msgid "Cacertfile" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:ldap > :sslopts > :verify" +msgid "Verify" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:ldap > :tls" +msgid "TLS" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:ldap > :tlsopts" +msgid "TLS options" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:ldap > :tlsopts > :cacertfile" +msgid "Cacertfile" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:ldap > :tlsopts > :verify" +msgid "Verify" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:ldap > :uid" +msgid "UID" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:majic_pool > :size" +msgid "Size" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:manifest > :background_color" +msgid "Background color" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:manifest > :icons" +msgid "Icons" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:manifest > :theme_color" +msgid "Theme color" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:markup > :allow_fonts" +msgid "Allow fonts" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:markup > :allow_headings" +msgid "Allow headings" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:markup > :allow_inline_images" +msgid "Allow inline images" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:markup > :allow_tables" +msgid "Allow tables" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:markup > :scrub_policy" +msgid "Scrub policy" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:media_preview_proxy > :enabled" +msgid "Enabled" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:media_preview_proxy > :image_quality" +msgid "Image quality" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:media_preview_proxy > :min_content_length" +msgid "Min content length" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:media_preview_proxy > :thumbnail_max_height" +msgid "Thumbnail max height" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:media_preview_proxy > :thumbnail_max_width" +msgid "Thumbnail max width" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:media_proxy > :base_url" +msgid "Base URL" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:media_proxy > :enabled" +msgid "Enabled" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:media_proxy > :invalidation" +msgid "Invalidation" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:media_proxy > :invalidation > :enabled" +msgid "Enabled" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:media_proxy > :invalidation > :provider" +msgid "Provider" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:media_proxy > :proxy_opts" +msgid "Advanced MediaProxy Options" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:media_proxy > :proxy_opts > :max_body_length" +msgid "Max body length" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:media_proxy > :proxy_opts > :max_read_duration" +msgid "Max read duration" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:media_proxy > :proxy_opts > :redirect_on_failure" +msgid "Redirect on failure" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:media_proxy > :whitelist" +msgid "Whitelist" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:modules > :runtime_dir" +msgid "Runtime dir" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:mrf > :policies" +msgid "Policies" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:mrf > :transparency" +msgid "MRF transparency" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:mrf > :transparency_exclusions" +msgid "MRF transparency exclusions" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:mrf_activity_expiration > :days" +msgid "Days" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:mrf_follow_bot > :follower_nickname" +msgid "Follower nickname" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:mrf_hashtag > :federated_timeline_removal" +msgid "Federated timeline removal" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:mrf_hashtag > :reject" +msgid "Reject" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:mrf_hashtag > :sensitive" +msgid "Sensitive" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:mrf_hellthread > :delist_threshold" +msgid "Delist threshold" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:mrf_hellthread > :reject_threshold" +msgid "Reject threshold" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:mrf_keyword > :federated_timeline_removal" +msgid "Federated timeline removal" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:mrf_keyword > :reject" +msgid "Reject" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:mrf_keyword > :replace" +msgid "Replace" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:mrf_mention > :actors" +msgid "Actors" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:mrf_normalize_markup > :scrub_policy" +msgid "Scrub policy" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:mrf_object_age > :actions" +msgid "Actions" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:mrf_object_age > :threshold" +msgid "Threshold" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:mrf_rejectnonpublic > :allow_direct" +msgid "Allow direct" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:mrf_rejectnonpublic > :allow_followersonly" +msgid "Allow followers-only" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:mrf_simple > :accept" +msgid "Accept" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:mrf_simple > :avatar_removal" +msgid "Avatar removal" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:mrf_simple > :banner_removal" +msgid "Banner removal" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:mrf_simple > :federated_timeline_removal" +msgid "Federated timeline removal" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:mrf_simple > :followers_only" +msgid "Followers only" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:mrf_simple > :media_nsfw" +msgid "Media NSFW" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:mrf_simple > :media_removal" +msgid "Media removal" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:mrf_simple > :reject" +msgid "Reject" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:mrf_simple > :reject_deletes" +msgid "Reject deletes" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:mrf_simple > :report_removal" +msgid "Report removal" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:mrf_steal_emoji > :hosts" +msgid "Hosts" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:mrf_steal_emoji > :rejected_shortcodes" +msgid "Rejected shortcodes" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:mrf_steal_emoji > :size_limit" +msgid "Size limit" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:mrf_subchain > :match_actor" +msgid "Match actor" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:mrf_vocabulary > :accept" +msgid "Accept" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:mrf_vocabulary > :reject" +msgid "Reject" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:oauth2 > :clean_expired_tokens" +msgid "Clean expired tokens" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:oauth2 > :issue_new_refresh_token" +msgid "Issue new refresh token" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:oauth2 > :token_expires_in" +msgid "Token expires in" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:pools > :default" +msgid "Default" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:pools > :default > :max_waiting" +msgid "Max waiting" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:pools > :default > :recv_timeout" +msgid "Recv timeout" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:pools > :default > :size" +msgid "Size" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:pools > :federation" +msgid "Federation" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:pools > :federation > :max_waiting" +msgid "Max waiting" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:pools > :federation > :recv_timeout" +msgid "Recv timeout" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:pools > :federation > :size" +msgid "Size" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:pools > :media" +msgid "Media" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:pools > :media > :max_waiting" +msgid "Max waiting" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:pools > :media > :recv_timeout" +msgid "Recv timeout" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:pools > :media > :size" +msgid "Size" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:pools > :upload" +msgid "Upload" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:pools > :upload > :max_waiting" +msgid "Max waiting" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:pools > :upload > :recv_timeout" +msgid "Recv timeout" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:pools > :upload > :size" +msgid "Size" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:populate_hashtags_table > :fault_rate_allowance" +msgid "Fault rate allowance" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:populate_hashtags_table > :sleep_interval_ms" +msgid "Sleep interval ms" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:rate_limit > :app_account_creation" +msgid "App account creation" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:rate_limit > :authentication" +msgid "Authentication" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:rate_limit > :relation_id_action" +msgid "Relation ID action" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:rate_limit > :relations_actions" +msgid "Relations actions" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:rate_limit > :search" +msgid "Search" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:rate_limit > :status_id_action" +msgid "Status ID action" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:rate_limit > :statuses_actions" +msgid "Statuses actions" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:rate_limit > :timeline" +msgid "Timeline" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:restrict_unauthenticated > :activities" +msgid "Activities" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:restrict_unauthenticated > :activities > :local" +msgid "Local" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:restrict_unauthenticated > :activities > :remote" +msgid "Remote" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:restrict_unauthenticated > :profiles" +msgid "Profiles" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:restrict_unauthenticated > :profiles > :local" +msgid "Local" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:restrict_unauthenticated > :profiles > :remote" +msgid "Remote" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:restrict_unauthenticated > :timelines" +msgid "Timelines" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:restrict_unauthenticated > :timelines > :federated" +msgid "Federated" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:restrict_unauthenticated > :timelines > :local" +msgid "Local" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:rich_media > :enabled" +msgid "Enabled" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:rich_media > :failure_backoff" +msgid "Failure backoff" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:rich_media > :ignore_hosts" +msgid "Ignore hosts" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:rich_media > :ignore_tld" +msgid "Ignore TLD" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:rich_media > :parsers" +msgid "Parsers" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:rich_media > :ttl_setters" +msgid "TTL setters" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:shout > :enabled" +msgid "Enabled" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:shout > :limit" +msgid "Limit" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:static_fe > :enabled" +msgid "Enabled" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:streamer > :overflow_workers" +msgid "Overflow workers" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:streamer > :workers" +msgid "Workers" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:uri_schemes > :valid_schemes" +msgid "Valid schemes" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:user > :deny_follow_blocked" +msgid "Deny follow blocked" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:web_cache_ttl > :activity_pub" +msgid "Activity pub" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:web_cache_ttl > :activity_pub_question" +msgid "Activity pub question" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:welcome > :chat_message" +msgid "Chat message" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:welcome > :chat_message > :enabled" +msgid "Enabled" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:welcome > :chat_message > :message" +msgid "Message" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:welcome > :chat_message > :sender_nickname" +msgid "Sender nickname" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:welcome > :direct_message" +msgid "Direct message" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:welcome > :direct_message > :enabled" +msgid "Enabled" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:welcome > :direct_message > :message" +msgid "Message" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:welcome > :direct_message > :sender_nickname" +msgid "Sender nickname" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:welcome > :email" +msgid "Email" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:welcome > :email > :enabled" +msgid "Enabled" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:welcome > :email > :html" +msgid "Html" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:welcome > :email > :sender" +msgid "Sender" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:welcome > :email > :subject" +msgid "Subject" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:welcome > :email > :text" +msgid "Text" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:workers > :retries" +msgid "Retries" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-ConcurrentLimiter > Pleroma.Web.ActivityPub.MRF.MediaProxyWarmingPolicy" +msgid "Pleroma.Web.ActivityPub.MRF.MediaProxyWarmingPolicy" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-ConcurrentLimiter > Pleroma.Web.ActivityPub.MRF.MediaProxyWarmingPolicy > :max_running" +msgid "Max running" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-ConcurrentLimiter > Pleroma.Web.ActivityPub.MRF.MediaProxyWarmingPolicy > :max_waiting" +msgid "Max waiting" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-ConcurrentLimiter > Pleroma.Web.RichMedia.Helpers" +msgid "Pleroma.Web.RichMedia.Helpers" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-ConcurrentLimiter > Pleroma.Web.RichMedia.Helpers > :max_running" +msgid "Max running" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-ConcurrentLimiter > Pleroma.Web.RichMedia.Helpers > :max_waiting" +msgid "Max waiting" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Oban > :crontab" +msgid "Crontab" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Oban > :log" +msgid "Log" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Oban > :queues" +msgid "Queues" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Oban > :queues > :activity_expiration" +msgid "Activity expiration" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Oban > :queues > :attachments_cleanup" +msgid "Attachments cleanup" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Oban > :queues > :background" +msgid "Background" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Oban > :queues > :backup" +msgid "Backup" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Oban > :queues > :federator_incoming" +msgid "Federator incoming" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Oban > :queues > :federator_outgoing" +msgid "Federator outgoing" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Oban > :queues > :mailer" +msgid "Mailer" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Oban > :queues > :scheduled_activities" +msgid "Scheduled activities" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Oban > :queues > :transmogrifier" +msgid "Transmogrifier" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Oban > :queues > :web_push" +msgid "Web push" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Pleroma.Captcha > :enabled" +msgid "Enabled" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Pleroma.Captcha > :method" +msgid "Method" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Pleroma.Captcha > :seconds_valid" +msgid "Seconds valid" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Pleroma.Captcha.Kocaptcha > :endpoint" +msgid "Endpoint" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Pleroma.Emails.Mailer > :adapter" +msgid "Adapter" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Pleroma.Emails.Mailer > :enabled" +msgid "Mailer Enabled" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Pleroma.Emails.Mailer > Swoosh.Adapters.AmazonSES-:access_key" +msgid "AWS Access Key" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Pleroma.Emails.Mailer > Swoosh.Adapters.AmazonSES-:region" +msgid "AWS Region" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Pleroma.Emails.Mailer > Swoosh.Adapters.AmazonSES-:secret" +msgid "AWS Secret Key" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Pleroma.Emails.Mailer > Swoosh.Adapters.Dyn-:api_key" +msgid "Dyn API Key" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Pleroma.Emails.Mailer > Swoosh.Adapters.Gmail-:access_token" +msgid "GMail API Access Token" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Pleroma.Emails.Mailer > Swoosh.Adapters.Mailgun-:api_key" +msgid "Mailgun API Key" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Pleroma.Emails.Mailer > Swoosh.Adapters.Mailgun-:domain" +msgid "Domain" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Pleroma.Emails.Mailer > Swoosh.Adapters.Mailjet-:api_key" +msgid "MailJet Public API Key" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Pleroma.Emails.Mailer > Swoosh.Adapters.Mailjet-:secret" +msgid "MailJet Private API Key" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Pleroma.Emails.Mailer > Swoosh.Adapters.Mandrill-:api_key" +msgid "Mandrill API Key" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Pleroma.Emails.Mailer > Swoosh.Adapters.Postmark-:api_key" +msgid "Postmark API Key" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Pleroma.Emails.Mailer > Swoosh.Adapters.SMTP-:auth" +msgid "AUTH Mode" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Pleroma.Emails.Mailer > Swoosh.Adapters.SMTP-:password" +msgid "Password" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Pleroma.Emails.Mailer > Swoosh.Adapters.SMTP-:port" +msgid "Port" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Pleroma.Emails.Mailer > Swoosh.Adapters.SMTP-:relay" +msgid "Relay" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Pleroma.Emails.Mailer > Swoosh.Adapters.SMTP-:retries" +msgid "Retries" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Pleroma.Emails.Mailer > Swoosh.Adapters.SMTP-:ssl" +msgid "Use SSL" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Pleroma.Emails.Mailer > Swoosh.Adapters.SMTP-:tls" +msgid "STARTTLS Mode" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Pleroma.Emails.Mailer > Swoosh.Adapters.SMTP-:username" +msgid "Username" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Pleroma.Emails.Mailer > Swoosh.Adapters.Sendgrid-:api_key" +msgid "SendGrid API Key" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Pleroma.Emails.Mailer > Swoosh.Adapters.Sendmail-:cmd_args" +msgid "Cmd args" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Pleroma.Emails.Mailer > Swoosh.Adapters.Sendmail-:cmd_path" +msgid "Cmd path" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Pleroma.Emails.Mailer > Swoosh.Adapters.Sendmail-:qmail" +msgid "Qmail compat mode" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Pleroma.Emails.Mailer > Swoosh.Adapters.SocketLabs-:api_key" +msgid "SocketLabs API Key" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Pleroma.Emails.Mailer > Swoosh.Adapters.SocketLabs-:server_id" +msgid "Server ID" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Pleroma.Emails.Mailer > Swoosh.Adapters.SparkPost-:api_key" +msgid "SparkPost API key" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Pleroma.Emails.Mailer > Swoosh.Adapters.SparkPost-:endpoint" +msgid "Endpoint" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Pleroma.Emails.NewUsersDigestEmail > :enabled" +msgid "Enabled" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Pleroma.Emails.UserEmail > :logo" +msgid "Logo" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Pleroma.Emails.UserEmail > :styling" +msgid "Styling" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Pleroma.Emails.UserEmail > :styling > :background_color" +msgid "Background color" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Pleroma.Emails.UserEmail > :styling > :content_background_color" +msgid "Content background color" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Pleroma.Emails.UserEmail > :styling > :header_color" +msgid "Header color" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Pleroma.Emails.UserEmail > :styling > :link_color" +msgid "Link color" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Pleroma.Emails.UserEmail > :styling > :text_color" +msgid "Text color" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Pleroma.Emails.UserEmail > :styling > :text_muted_color" +msgid "Text muted color" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Pleroma.Formatter > :class" +msgid "Class" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Pleroma.Formatter > :extra" +msgid "Extra" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Pleroma.Formatter > :new_window" +msgid "New window" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Pleroma.Formatter > :rel" +msgid "Rel" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Pleroma.Formatter > :strip_prefix" +msgid "Strip prefix" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Pleroma.Formatter > :truncate" +msgid "Truncate" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Pleroma.Formatter > :validate_tld" +msgid "Validate tld" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Pleroma.ScheduledActivity > :daily_user_limit" +msgid "Daily user limit" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Pleroma.ScheduledActivity > :enabled" +msgid "Enabled" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Pleroma.ScheduledActivity > :total_user_limit" +msgid "Total user limit" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Pleroma.Upload > :base_url" +msgid "Base URL" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Pleroma.Upload > :filename_display_max_length" +msgid "Filename display max length" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Pleroma.Upload > :filters" +msgid "Filters" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Pleroma.Upload > :link_name" +msgid "Link name" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Pleroma.Upload > :proxy_remote" +msgid "Proxy remote" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Pleroma.Upload > :uploader" +msgid "Uploader" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Pleroma.Upload.Filter.AnonymizeFilename > :text" +msgid "Text" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Pleroma.Upload.Filter.Mogrify > :args" +msgid "Args" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Pleroma.Uploaders.Local > :uploads" +msgid "Uploads" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Pleroma.Uploaders.S3 > :bucket" +msgid "Bucket" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Pleroma.Uploaders.S3 > :bucket_namespace" +msgid "Bucket namespace" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Pleroma.Uploaders.S3 > :streaming_enabled" +msgid "Streaming enabled" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Pleroma.Uploaders.S3 > :truncated_namespace" +msgid "Truncated namespace" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Pleroma.User > :email_blacklist" +msgid "Email blacklist" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Pleroma.User > :restricted_nicknames" +msgid "Restricted nicknames" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Pleroma.User.Backup > :limit_days" +msgid "Limit days" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Pleroma.User.Backup > :purge_after_days" +msgid "Purge after days" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Pleroma.Web.ApiSpec.CastAndValidate > :strict" +msgid "Strict" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Pleroma.Web.MediaProxy.Invalidation.Http > :headers" +msgid "Headers" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Pleroma.Web.MediaProxy.Invalidation.Http > :method" +msgid "Method" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Pleroma.Web.MediaProxy.Invalidation.Http > :options" +msgid "Options" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Pleroma.Web.MediaProxy.Invalidation.Http > :options > :params" +msgid "Params" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Pleroma.Web.MediaProxy.Invalidation.Script > :script_path" +msgid "Script path" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Pleroma.Web.MediaProxy.Invalidation.Script > :url_format" +msgid "URL Format" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Pleroma.Web.Metadata > :providers" +msgid "Providers" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Pleroma.Web.Metadata > :unfurl_nsfw" +msgid "Unfurl NSFW" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Pleroma.Web.Plugs.RemoteIp > :enabled" +msgid "Enabled" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Pleroma.Web.Plugs.RemoteIp > :headers" +msgid "Headers" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Pleroma.Web.Plugs.RemoteIp > :proxies" +msgid "Proxies" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Pleroma.Web.Plugs.RemoteIp > :reserved" +msgid "Reserved" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Pleroma.Web.Preload > :providers" +msgid "Providers" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Pleroma.Workers.PurgeExpiredActivity > :enabled" +msgid "Enabled" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Pleroma.Workers.PurgeExpiredActivity > :min_lifetime" +msgid "Min lifetime" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :prometheus-Pleroma.Web.Endpoint.MetricsExporter > :auth" +msgid "Auth" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :prometheus-Pleroma.Web.Endpoint.MetricsExporter > :enabled" +msgid "Enabled" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :prometheus-Pleroma.Web.Endpoint.MetricsExporter > :format" +msgid "Format" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :prometheus-Pleroma.Web.Endpoint.MetricsExporter > :ip_whitelist" +msgid "IP Whitelist" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :prometheus-Pleroma.Web.Endpoint.MetricsExporter > :path" +msgid "Path" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :quack > :level" +msgid "Level" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :quack > :meta" +msgid "Meta" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :quack > :webhook_url" +msgid "Webhook URL" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :web_push_encryption-:vapid_details > :private_key" +msgid "Private key" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :web_push_encryption-:vapid_details > :public_key" +msgid "Public key" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :web_push_encryption-:vapid_details > :subject" +msgid "Subject" +msgstr "" diff --git a/priv/gettext/fr/LC_MESSAGES/default.po b/priv/gettext/fr/LC_MESSAGES/default.po new file mode 100644 index 000000000..36112e754 --- /dev/null +++ b/priv/gettext/fr/LC_MESSAGES/default.po @@ -0,0 +1,212 @@ +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2022-07-21 23:42+0300\n" +"PO-Revision-Date: 2022-07-22 19:00+0000\n" +"Last-Translator: Haelwenn \n" +"Language-Team: French \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=n > 1;\n" +"X-Generator: Weblate 4.13.1\n" + +## This file is a PO Template file. +## +## "msgid"s here are often extracted from source code. +## Add new translations manually only if they're dynamic +## translations that can't be statically extracted. +## +## Run "mix gettext.extract" to bring this file up to +## date. Leave "msgstr"s empty as changing them here as no +## effect: edit them in PO (.po) files instead. +#: lib/pleroma/web/api_spec/render_error.ex:122 +#, elixir-autogen, elixir-format +msgid "%{name} - %{count} is not a multiple of %{multiple}." +msgstr "%{name} - %{count} n'est pas un multiple de %{multiple}." + +#: lib/pleroma/web/api_spec/render_error.ex:131 +#, elixir-autogen, elixir-format +msgid "%{name} - %{value} is larger than exclusive maximum %{max}." +msgstr "%{name} - %{value} est plus large que %{max}." + +#: lib/pleroma/web/api_spec/render_error.ex:140 +#, elixir-autogen, elixir-format +msgid "%{name} - %{value} is larger than inclusive maximum %{max}." +msgstr "%{name} - %{value} est plus large que %{max}." + +#: lib/pleroma/web/api_spec/render_error.ex:149 +#, elixir-autogen, elixir-format +msgid "%{name} - %{value} is smaller than exclusive minimum %{min}." +msgstr "%{name} - %{value} est plus petit que %{min}." + +#: lib/pleroma/web/api_spec/render_error.ex:158 +#, elixir-autogen, elixir-format +msgid "%{name} - %{value} is smaller than inclusive minimum %{min}." +msgstr "%{name} - %{value} est plus petit que %{min}." + +#: lib/pleroma/web/api_spec/render_error.ex:102 +#, elixir-autogen, elixir-format +msgid "%{name} - Array items must be unique." +msgstr "%{name} - Les objects de la liste doivent être uniques." + +#: lib/pleroma/web/api_spec/render_error.ex:114 +#, elixir-autogen, elixir-format +msgid "%{name} - Array length %{length} is larger than maxItems: %{}." +msgstr "" +"%{name} - La longueur %{length} de la liste est supérieure à maxItems : %{}." + +#: lib/pleroma/web/api_spec/render_error.ex:106 +#, elixir-autogen, elixir-format +msgid "%{name} - Array length %{length} is smaller than minItems: %{min}." +msgstr "" +"%{name} - La longueur %{length} de la liste est inférieure à minItems : " +"%{min}." + +#: lib/pleroma/web/api_spec/render_error.ex:166 +#, elixir-autogen, elixir-format +msgid "%{name} - Invalid %{type}. Got: %{value}." +msgstr "%{name} - %{type} invalide. Reçu : %{value}." + +#: lib/pleroma/web/api_spec/render_error.ex:174 +#, elixir-autogen, elixir-format +msgid "%{name} - Invalid format. Expected %{format}." +msgstr "%{name} - Format invalide. Format voulu : %{format}." + +#: lib/pleroma/web/api_spec/render_error.ex:51 +#, elixir-autogen, elixir-format +msgid "%{name} - Invalid schema.type. Got: %{type}." +msgstr "%{name} - schema.type invalide. Reçu : %{type}." + +#: lib/pleroma/web/api_spec/render_error.ex:178 +#, elixir-autogen, elixir-format +msgid "%{name} - Invalid value for enum." +msgstr "%{name} - valeur invalide pour enum." + +#: lib/pleroma/web/api_spec/render_error.ex:95 +#, elixir-autogen, elixir-format +msgid "%{name} - String length is larger than maxLength: %{length}." +msgstr "" +"%{name} - Longueur de chaine de caractères supérieure à maxLength : " +"%{length}." + +#: lib/pleroma/web/api_spec/render_error.ex:88 +#, elixir-autogen, elixir-format +msgid "%{name} - String length is smaller than minLength: %{length}." +msgstr "" +"%{name} - Longueur de chaine de caractères inférieure à minLength : " +"%{length}." + +#: lib/pleroma/web/api_spec/render_error.ex:63 +#, elixir-autogen, elixir-format +msgid "%{name} - null value where %{type} expected." +msgstr "%{name} - valeur nulle quand %{type} est requis." + +#: lib/pleroma/web/api_spec/render_error.ex:60 +#, elixir-autogen, elixir-format +msgid "%{name} - null value." +msgstr "%{name} - valeur nulle." + +#: lib/pleroma/web/api_spec/render_error.ex:182 +#, elixir-autogen, elixir-format +msgid "Failed to cast to any schema in %{polymorphic_type}" +msgstr "Échec de transformation du schéma en %{polymorphic_type}" + +#: lib/pleroma/web/api_spec/render_error.ex:71 +#, elixir-autogen, elixir-format +msgid "Failed to cast value as %{invalid_schema}. Value must be castable using `allOf` schemas listed." +msgstr "" +"Échec de transformation de la valeur en %{invalid_schema}. La valeur doit " +"être transformable dans un des schémas `allOf` listés." + +#: lib/pleroma/web/api_spec/render_error.ex:84 +#, elixir-autogen, elixir-format +msgid "Failed to cast value to one of: %{failed_schemas}." +msgstr "Échec de transformation de la valeur en un des : %{failed_schemas}." + +#: lib/pleroma/web/api_spec/render_error.ex:78 +#, elixir-autogen, elixir-format +msgid "Failed to cast value using any of: %{failed_schemas}." +msgstr "Échec de transformation de la valeur en un des : %{failed_schemas}." + +#: lib/pleroma/web/api_spec/render_error.ex:212 +#, elixir-autogen, elixir-format +msgid "Invalid value for header: %{name}." +msgstr "Valeur invalide pour l'en-tête : %{name}." + +#: lib/pleroma/web/api_spec/render_error.ex:204 +#, elixir-autogen, elixir-format +msgid "Missing field: %{name}." +msgstr "Champ manquant : %{name}." + +#: lib/pleroma/web/api_spec/render_error.ex:208 +#, elixir-autogen, elixir-format +msgid "Missing header: %{name}." +msgstr "En-tête manquant : %{name}." + +#: lib/pleroma/web/api_spec/render_error.ex:196 +#, elixir-autogen, elixir-format +msgid "No value provided for required discriminator `%{field}`." +msgstr "Aucune valeur fournie pour le discriminant `%{field}`." + +#: lib/pleroma/web/api_spec/render_error.ex:216 +#, elixir-autogen, elixir-format +msgid "Object property count %{property_count} is greater than maxProperties: %{max_properties}." +msgstr "" +"Le nombre de propriétés, %{property_count} est supérieur à maxProperties : " +"%{max_properties}." + +#: lib/pleroma/web/api_spec/render_error.ex:224 +#, elixir-autogen, elixir-format +msgid "Object property count %{property_count} is less than minProperties: %{min_properties}" +msgstr "" +"Le nombre de propriétés, %{property_count} est inférieur à minProperties : " +"%{min_properties}" + +#: lib/pleroma/web/templates/static_fe/static_fe/error.html.eex:2 +#, elixir-autogen, elixir-format +msgid "Oops" +msgstr "Oups" + +#: lib/pleroma/web/api_spec/render_error.ex:188 +#, elixir-autogen, elixir-format +msgid "Unexpected field: %{name}." +msgstr "Champ inconnu : %{name}." + +#: lib/pleroma/web/api_spec/render_error.ex:200 +#, elixir-autogen, elixir-format +msgid "Unknown schema: %{name}." +msgstr "Schéma inconnu : %{name}." + +#: lib/pleroma/web/api_spec/render_error.ex:192 +#, elixir-autogen, elixir-format +msgid "Value used as discriminator for `%{field}` matches no schemas." +msgstr "" +"Valeur utilisée en discriminant de `%{field}` ne correspond à aucun schémas." + +#: lib/pleroma/web/templates/embed/show.html.eex:43 +#: lib/pleroma/web/templates/static_fe/static_fe/_notice.html.eex:37 +#, elixir-autogen, elixir-format +msgid "announces" +msgstr "annonces" + +#: lib/pleroma/web/templates/embed/show.html.eex:44 +#: lib/pleroma/web/templates/static_fe/static_fe/_notice.html.eex:38 +#, elixir-autogen, elixir-format +msgid "likes" +msgstr "favoris" + +#: lib/pleroma/web/templates/embed/show.html.eex:42 +#: lib/pleroma/web/templates/static_fe/static_fe/_notice.html.eex:36 +#, elixir-autogen, elixir-format +msgid "replies" +msgstr "réponses" + +#: lib/pleroma/web/templates/embed/show.html.eex:27 +#: lib/pleroma/web/templates/static_fe/static_fe/_notice.html.eex:22 +#, elixir-autogen, elixir-format +msgid "sensitive media" +msgstr "contenu sensible" diff --git a/priv/gettext/fr/LC_MESSAGES/posix_errors.po b/priv/gettext/fr/LC_MESSAGES/posix_errors.po new file mode 100644 index 000000000..ba8169dda --- /dev/null +++ b/priv/gettext/fr/LC_MESSAGES/posix_errors.po @@ -0,0 +1,165 @@ +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2022-07-22 02:09+0300\n" +"PO-Revision-Date: 2022-07-21 23:35+0000\n" +"Last-Translator: Haelwenn \n" +"Language-Team: French \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=n > 1;\n" +"X-Generator: Weblate 4.13.1\n" + +## This file is a PO Template file. +## +## `msgid`s here are often extracted from source code. +## Add new translations manually only if they're dynamic +## translations that can't be statically extracted. +## +## Run `mix gettext.extract` to bring this file up to +## date. Leave `msgstr`s empty as changing them here as no +## effect: edit them in PO (`.po`) files instead. +msgid "eperm" +msgstr "Opération non permise" + +msgid "eacces" +msgstr "Permission refusée" + +msgid "eagain" +msgstr "Ressource temporairement indisponible" + +msgid "ebadf" +msgstr "Mauvais descripteur de fichier" + +msgid "ebadmsg" +msgstr "Mauvais message" + +msgid "ebusy" +msgstr "Périphérique ou ressource occupée" + +msgid "edeadlk" +msgstr "Interblocage des ressources évité" + +msgid "edeadlock" +msgstr "Interblocage des ressources évité" + +msgid "edquot" +msgstr "Quota disque dépassé" + +msgid "eexist" +msgstr "Fichier existant" + +msgid "efault" +msgstr "Mauvaise addresse" + +msgid "efbig" +msgstr "Fichier trop gros" + +msgid "eftype" +msgstr "Type ou format de fichier inapproprié" + +msgid "eintr" +msgstr "Appel système interrompu" + +msgid "einval" +msgstr "Argument invalide" + +msgid "eio" +msgstr "Erreur entrée/sortie" + +msgid "eisdir" +msgstr "Opération non-permise sur un répertoire" + +msgid "eloop" +msgstr "Trop de niveau de liens symboliques" + +msgid "emfile" +msgstr "Trop de fichiers ouverts" + +msgid "emlink" +msgstr "Trop de liens" + +msgid "emultihop" +msgstr "Multi-saut essayé" + +msgid "enametoolong" +msgstr "Nom de fichier trop long" + +msgid "enfile" +msgstr "Trop de fichier ouvert dans le système" + +msgid "enobufs" +msgstr "Pas d'espace tampon disponible" + +msgid "enodev" +msgstr "Périphérique inexistant" + +msgid "enolck" +msgstr "Pas de verrous disponibles" + +msgid "enolink" +msgstr "Lien rompus" + +msgid "enoent" +msgstr "Fichier ou dossier non trouvé" + +msgid "enomem" +msgstr "Échec d'allocation mémoire" + +msgid "enospc" +msgstr "Plus de place disponible sur le périphérique" + +msgid "enosr" +msgstr "Plus de flux disponibles" + +msgid "enostr" +msgstr "Périphérique qui n'est pas un flux" + +msgid "enosys" +msgstr "Fonction non implémentée" + +msgid "enotblk" +msgstr "Périphérique bloc requis" + +msgid "enotdir" +msgstr "Pas un répertoire" + +msgid "enotsup" +msgstr "Opération non supportée" + +msgid "enxio" +msgstr "Addresse de périphérique inconnue" + +msgid "eopnotsupp" +msgstr "Opération non supportée" + +msgid "eoverflow" +msgstr "Valeur trop grande pour le type de donnée definit" + +msgid "epipe" +msgstr "Tuyaux rompu" + +msgid "erange" +msgstr "Valeur numérique hors de l'interval" + +msgid "erofs" +msgstr "Système de fichier en lecture-seule" + +msgid "espipe" +msgstr "Déplacement interdit" + +msgid "esrch" +msgstr "Processus inexistant" + +msgid "estale" +msgstr "Descripteur de fichier bouché" + +msgid "etxtbsy" +msgstr "Fichier texte occupé" + +msgid "exdev" +msgstr "Lien inter-périphérique invalide" diff --git a/priv/gettext/fr/LC_MESSAGES/static_pages.po b/priv/gettext/fr/LC_MESSAGES/static_pages.po new file mode 100644 index 000000000..afcaac826 --- /dev/null +++ b/priv/gettext/fr/LC_MESSAGES/static_pages.po @@ -0,0 +1,564 @@ +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2022-07-21 23:03+0300\n" +"PO-Revision-Date: 2022-07-21 20:44+0000\n" +"Last-Translator: Haelwenn \n" +"Language-Team: French \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=n > 1;\n" +"X-Generator: Weblate 4.13.1\n" + +## This file is a PO Template file. +## +## "msgid"s here are often extracted from source code. +## Add new translations manually only if they're dynamic +## translations that can't be statically extracted. +## +## Run "mix gettext.extract" to bring this file up to +## date. Leave "msgstr"s empty as changing them here as no +## effect: edit them in PO (.po) files instead. +#: lib/pleroma/web/templates/twitter_api/remote_follow/follow.html.eex:9 +#, elixir-autogen, elixir-format +msgctxt "remote follow authorization button" +msgid "Authorize" +msgstr "Autoriser" + +#: lib/pleroma/web/templates/twitter_api/remote_follow/follow.html.eex:2 +#, elixir-autogen, elixir-format +msgctxt "remote follow error" +msgid "Error fetching user" +msgstr "Erreur de requête au compte" + +#: lib/pleroma/web/templates/twitter_api/remote_follow/follow.html.eex:4 +#, elixir-autogen, elixir-format +msgctxt "remote follow header" +msgid "Remote follow" +msgstr "Suivit distant" + +#: lib/pleroma/web/templates/twitter_api/remote_follow/follow_mfa.html.eex:8 +#, elixir-autogen, elixir-format +msgctxt "placeholder text for auth code entry" +msgid "Authentication code" +msgstr "Code d'Authentification" + +#: lib/pleroma/web/templates/twitter_api/remote_follow/follow_login.html.eex:10 +#, elixir-autogen, elixir-format +msgctxt "placeholder text for password entry" +msgid "Password" +msgstr "Mot de passe" + +#: lib/pleroma/web/templates/twitter_api/remote_follow/follow_login.html.eex:8 +#, elixir-autogen, elixir-format +msgctxt "placeholder text for username entry" +msgid "Username" +msgstr "Nom d'utilisateur·rice" + +#: lib/pleroma/web/templates/twitter_api/remote_follow/follow_login.html.eex:13 +#, elixir-autogen, elixir-format +msgctxt "remote follow authorization button for login" +msgid "Authorize" +msgstr "Autoriser" + +#: lib/pleroma/web/templates/twitter_api/remote_follow/follow_mfa.html.eex:12 +#, elixir-autogen, elixir-format +msgctxt "remote follow authorization button for mfa" +msgid "Authorize" +msgstr "Autoriser" + +#: lib/pleroma/web/templates/twitter_api/remote_follow/followed.html.eex:2 +#, elixir-autogen, elixir-format +msgctxt "remote follow error" +msgid "Error following account" +msgstr "Erreur de suivi du compte" + +#: lib/pleroma/web/templates/twitter_api/remote_follow/follow_login.html.eex:4 +#, elixir-autogen, elixir-format +msgctxt "remote follow header, need login" +msgid "Log in to follow" +msgstr "Authentification pour le suivit" + +#: lib/pleroma/web/templates/twitter_api/remote_follow/follow_mfa.html.eex:4 +#, elixir-autogen, elixir-format +msgctxt "remote follow mfa header" +msgid "Two-factor authentication" +msgstr "Authentification à deux facteurs" + +#: lib/pleroma/web/templates/twitter_api/remote_follow/followed.html.eex:4 +#, elixir-autogen, elixir-format +msgctxt "remote follow success" +msgid "Account followed!" +msgstr "Utilisateur·rice suivi·e !" + +#: lib/pleroma/web/templates/twitter_api/util/subscribe.html.eex:7 +#, elixir-autogen, elixir-format +msgctxt "placeholder text for account id" +msgid "Your account ID, e.g. lain@quitter.se" +msgstr "Votre identifiant, ex. lain@quitter.se" + +#: lib/pleroma/web/templates/twitter_api/util/subscribe.html.eex:8 +#, elixir-autogen, elixir-format +msgctxt "remote follow authorization button for following with a remote account" +msgid "Follow" +msgstr "Suivre" + +#: lib/pleroma/web/templates/twitter_api/util/subscribe.html.eex:2 +#, elixir-autogen, elixir-format +msgctxt "remote follow error" +msgid "Error: %{error}" +msgstr "Erreur : %{error}" + +#: lib/pleroma/web/templates/twitter_api/util/subscribe.html.eex:4 +#, elixir-autogen, elixir-format +msgctxt "remote follow header" +msgid "Remotely follow %{nickname}" +msgstr "Suivre %{nickname} à distance" + +#: lib/pleroma/web/templates/twitter_api/password/reset.html.eex:12 +#, elixir-autogen, elixir-format +msgctxt "password reset button" +msgid "Reset" +msgstr "Changer" + +#: lib/pleroma/web/templates/twitter_api/password/reset_failed.html.eex:4 +#, elixir-autogen, elixir-format +msgctxt "password reset failed homepage link" +msgid "Homepage" +msgstr "Page d'accueil" + +#: lib/pleroma/web/templates/twitter_api/password/reset_failed.html.eex:1 +#, elixir-autogen, elixir-format +msgctxt "password reset failed message" +msgid "Password reset failed" +msgstr "Échec de changement du mot de passe" + +#: lib/pleroma/web/templates/twitter_api/password/reset.html.eex:8 +#, elixir-autogen, elixir-format +msgctxt "password reset form confirm password prompt" +msgid "Confirmation" +msgstr "Confirmation" + +#: lib/pleroma/web/templates/twitter_api/password/reset.html.eex:4 +#, elixir-autogen, elixir-format +msgctxt "password reset form password prompt" +msgid "Password" +msgstr "Mot de passe" + +#: lib/pleroma/web/templates/twitter_api/password/invalid_token.html.eex:1 +#, elixir-autogen, elixir-format +msgctxt "password reset invalid token message" +msgid "Invalid Token" +msgstr "Jeton invalide" + +#: lib/pleroma/web/templates/twitter_api/password/reset_success.html.eex:2 +#, elixir-autogen, elixir-format +msgctxt "password reset successful homepage link" +msgid "Homepage" +msgstr "Page d'accueil" + +#: lib/pleroma/web/templates/twitter_api/password/reset_success.html.eex:1 +#, elixir-autogen, elixir-format +msgctxt "password reset successful message" +msgid "Password changed!" +msgstr "Mot de passe changé !" + +#: lib/pleroma/web/templates/feed/feed/tag.atom.eex:15 +#: lib/pleroma/web/templates/feed/feed/tag.rss.eex:7 +#, elixir-autogen, elixir-format +msgctxt "tag feed description" +msgid "These are public toots tagged with #%{tag}. You can interact with them if you have an account anywhere in the fediverse." +msgstr "" +"Ceci sont des messages publics lié à #%{tag}. Vous pouvez intéragir avec si " +"vous avez un compte sur le Fediverse." + +#: lib/pleroma/web/templates/o_auth/o_auth/oob_token_exists.html.eex:1 +#, elixir-autogen, elixir-format +msgctxt "oauth authorization exists page title" +msgid "Authorization exists" +msgstr "Autorisation existante" + +#: lib/pleroma/web/templates/o_auth/o_auth/show.html.eex:32 +#, elixir-autogen, elixir-format +msgctxt "oauth authorize approve button" +msgid "Approve" +msgstr "Approuver" + +#: lib/pleroma/web/templates/o_auth/o_auth/show.html.eex:30 +#, elixir-autogen, elixir-format +msgctxt "oauth authorize cancel button" +msgid "Cancel" +msgstr "Annuler" + +#: lib/pleroma/web/templates/o_auth/o_auth/show.html.eex:23 +#, elixir-autogen, elixir-format +msgctxt "oauth authorize message" +msgid "Application %{client_name} is requesting access to your account." +msgstr "" +"L'application %{client_name} demande un accès à votre " +"compte." + +#: lib/pleroma/web/templates/o_auth/o_auth/oob_authorization_created.html.eex:1 +#, elixir-autogen, elixir-format +msgctxt "oauth authorized page title" +msgid "Successfully authorized" +msgstr "Autorisé avec succès" + +#: lib/pleroma/web/templates/o_auth/o_auth/consumer.html.eex:1 +#, elixir-autogen, elixir-format +msgctxt "oauth external provider page title" +msgid "Sign in with external provider" +msgstr "Authentication externe" + +#: lib/pleroma/web/templates/o_auth/o_auth/consumer.html.eex:13 +#, elixir-autogen, elixir-format +msgctxt "oauth external provider sign in button" +msgid "Sign in with %{strategy}" +msgstr "Authentification avec %{strategy}" + +#: lib/pleroma/web/templates/o_auth/o_auth/show.html.eex:54 +#, elixir-autogen, elixir-format +msgctxt "oauth login button" +msgid "Log In" +msgstr "Authentification" + +#: lib/pleroma/web/templates/o_auth/o_auth/show.html.eex:51 +#, elixir-autogen, elixir-format +msgctxt "oauth login password prompt" +msgid "Password" +msgstr "Mot de passe" + +#: lib/pleroma/web/templates/o_auth/o_auth/show.html.eex:47 +#, elixir-autogen, elixir-format +msgctxt "oauth login username prompt" +msgid "Username" +msgstr "Nom d'utilisateur·rice" + +#: lib/pleroma/web/templates/o_auth/o_auth/show.html.eex:39 +#, elixir-autogen, elixir-format +msgctxt "oauth register nickname prompt" +msgid "Pleroma Handle" +msgstr "Pseudo Pleroma" + +#: lib/pleroma/web/templates/o_auth/o_auth/show.html.eex:37 +#, elixir-autogen, elixir-format +msgctxt "oauth register nickname unchangeable warning" +msgid "Choose carefully! You won't be able to change this later. You will be able to change your display name, though." +msgstr "" +"Faites attention ! Vous ne pourrez plus le changer plus tard. Mais, vous " +"pourrez changer votre Nom." + +#: lib/pleroma/web/templates/o_auth/o_auth/register.html.eex:18 +#, elixir-autogen, elixir-format +msgctxt "oauth register page email prompt" +msgid "Email" +msgstr "Courriel" + +#: lib/pleroma/web/templates/o_auth/o_auth/register.html.eex:10 +#, elixir-autogen, elixir-format +msgctxt "oauth register page fill form prompt" +msgid "If you'd like to register a new account, please provide the details below." +msgstr "Si vous voulez créer un compte, veuillez fournir les détails suivants." + +#: lib/pleroma/web/templates/o_auth/o_auth/register.html.eex:35 +#, elixir-autogen, elixir-format +msgctxt "oauth register page login button" +msgid "Proceed as existing user" +msgstr "Continuer avec un compte existant" + +#: lib/pleroma/web/templates/o_auth/o_auth/register.html.eex:31 +#, elixir-autogen, elixir-format +msgctxt "oauth register page login password prompt" +msgid "Password" +msgstr "Mot de passe" + +#: lib/pleroma/web/templates/o_auth/o_auth/register.html.eex:24 +#, elixir-autogen, elixir-format +msgctxt "oauth register page login prompt" +msgid "Alternatively, sign in to connect to existing account." +msgstr "Alternativement, s'authentifier avec un compte existant." + +#: lib/pleroma/web/templates/o_auth/o_auth/register.html.eex:27 +#, elixir-autogen, elixir-format +msgctxt "oauth register page login username prompt" +msgid "Name or email" +msgstr "Nom ou courriel" + +#: lib/pleroma/web/templates/o_auth/o_auth/register.html.eex:14 +#, elixir-autogen, elixir-format +msgctxt "oauth register page nickname prompt" +msgid "Nickname" +msgstr "Pseudonyme" + +#: lib/pleroma/web/templates/o_auth/o_auth/register.html.eex:22 +#, elixir-autogen, elixir-format +msgctxt "oauth register page register button" +msgid "Proceed as new user" +msgstr "Continuer avec un nouveau compte" + +#: lib/pleroma/web/templates/o_auth/o_auth/register.html.eex:8 +#, elixir-autogen, elixir-format +msgctxt "oauth register page title" +msgid "Registration Details" +msgstr "Détails d'inscriptions" + +#: lib/pleroma/web/templates/o_auth/o_auth/show.html.eex:36 +#, elixir-autogen, elixir-format +msgctxt "oauth register page title" +msgid "This is the first time you visit! Please enter your Pleroma handle." +msgstr "Ceci est votre première visite ! Veuillez entrer votre pseudo." + +#: lib/pleroma/web/templates/o_auth/o_auth/_scopes.html.eex:2 +#, elixir-autogen, elixir-format +msgctxt "oauth scopes message" +msgid "The following permissions will be granted" +msgstr "Les permissions suivantes seront données" + +#: lib/pleroma/web/templates/o_auth/o_auth/oob_authorization_created.html.eex:2 +#: lib/pleroma/web/templates/o_auth/o_auth/oob_token_exists.html.eex:2 +#, elixir-autogen, elixir-format +msgctxt "oauth token code message" +msgid "Token code is
%{token}" +msgstr "Le jeton est
%{token}" + +#: lib/pleroma/web/templates/o_auth/mfa/totp.html.eex:12 +#, elixir-autogen, elixir-format +msgctxt "mfa auth code prompt" +msgid "Authentication code" +msgstr "Code d'authentification" + +#: lib/pleroma/web/templates/o_auth/mfa/totp.html.eex:8 +#, elixir-autogen, elixir-format +msgctxt "mfa auth page title" +msgid "Two-factor authentication" +msgstr "Authentification à double-facteurs" + +#: lib/pleroma/web/templates/o_auth/mfa/totp.html.eex:23 +#, elixir-autogen, elixir-format +msgctxt "mfa auth page use recovery code link" +msgid "Enter a two-factor recovery code" +msgstr "Entrer un code de récupération de l'authentification à double-facteur" + +#: lib/pleroma/web/templates/o_auth/mfa/totp.html.eex:20 +#, elixir-autogen, elixir-format +msgctxt "mfa auth verify code button" +msgid "Verify" +msgstr "Vérifier" + +#: lib/pleroma/web/templates/o_auth/mfa/recovery.html.eex:8 +#, elixir-autogen, elixir-format +msgctxt "mfa recover page title" +msgid "Two-factor recovery" +msgstr "Récupération du double-facteur" + +#: lib/pleroma/web/templates/o_auth/mfa/recovery.html.eex:12 +#, elixir-autogen, elixir-format +msgctxt "mfa recover recovery code prompt" +msgid "Recovery code" +msgstr "Code de récupération" + +#: lib/pleroma/web/templates/o_auth/mfa/recovery.html.eex:23 +#, elixir-autogen, elixir-format +msgctxt "mfa recover use 2fa code link" +msgid "Enter a two-factor code" +msgstr "Entrer un code double-facteur" + +#: lib/pleroma/web/templates/o_auth/mfa/recovery.html.eex:20 +#, elixir-autogen, elixir-format +msgctxt "mfa recover verify recovery code button" +msgid "Verify" +msgstr "Vérifier" + +#: lib/pleroma/web/templates/static_fe/static_fe/profile.html.eex:8 +#, elixir-autogen, elixir-format +msgctxt "static fe profile page remote follow button" +msgid "Remote follow" +msgstr "Suivit distant" + +#: lib/pleroma/web/templates/email/digest.html.eex:163 +#, elixir-autogen, elixir-format +msgctxt "digest email header line" +msgid "Hey %{nickname}, here is what you've missed!" +msgstr "Salut %{nickname}, voici ce que tu as manqué·e !" + +#: lib/pleroma/web/templates/email/digest.html.eex:544 +#, elixir-autogen, elixir-format +msgctxt "digest email receiver address" +msgid "The email address you are subscribed as is %{email}. " +msgstr "" +"L'adresse que vous avez enregistré est %{email}. " + +#: lib/pleroma/web/templates/email/digest.html.eex:538 +#, elixir-autogen, elixir-format +msgctxt "digest email sending reason" +msgid "You have received this email because you have signed up to receive digest emails from %{instance} Pleroma instance." +msgstr "" +"Vous recevez ce courriel parce-que vous avez autorisé les messages-résumés " +"de l'instance pleroma, %{instance}." + +#: lib/pleroma/web/templates/email/digest.html.eex:547 +#, elixir-autogen, elixir-format +msgctxt "digest email unsubscribe action" +msgid "To unsubscribe, please go %{here}." +msgstr "Pour vous désinscrire, aller %{here}." + +#: lib/pleroma/web/templates/email/digest.html.eex:547 +#, elixir-autogen, elixir-format +msgctxt "digest email unsubscribe action link text" +msgid "here" +msgstr "ici" + +#: lib/pleroma/web/templates/mailer/subscription/unsubscribe_failure.html.eex:1 +#, elixir-autogen, elixir-format +msgctxt "mailer unsubscribe failed message" +msgid "UNSUBSCRIBE FAILURE" +msgstr "ÉCHEC DE DÉSINSCRIPTION" + +#: lib/pleroma/web/templates/mailer/subscription/unsubscribe_success.html.eex:1 +#, elixir-autogen, elixir-format +msgctxt "mailer unsubscribe successful message" +msgid "UNSUBSCRIBE SUCCESSFUL" +msgstr "SUCCÈS DE LA DÉSINSCRIPTION" + +#: lib/pleroma/web/templates/email/digest.html.eex:385 +#, elixir-format +msgctxt "new followers count header" +msgid "%{count} New Follower" +msgid_plural "%{count} New Followers" +msgstr[0] "%{count} nouveau suivit" +msgstr[1] "%{count} nouveaux suivits" + +#: lib/pleroma/emails/user_email.ex:356 +#, elixir-autogen, elixir-format +msgctxt "account archive email body - self-requested" +msgid "

You requested a full backup of your Pleroma account. It's ready for download:

\n

%{download_url}

\n" +msgstr "" +"

Vous avez demandé une sauvegarde complète de votre compte Pleroma. Le " +"téléchargement est prêt :

\n" +"

%{download_url}

\n" + +#: lib/pleroma/emails/user_email.ex:384 +#, elixir-autogen, elixir-format +msgctxt "account archive email subject" +msgid "Your account archive is ready" +msgstr "La sauvegarde de votre compte est prête" + +#: lib/pleroma/emails/user_email.ex:188 +#, elixir-autogen, elixir-format +msgctxt "approval pending email body" +msgid "

Awaiting Approval

\n

Your account at %{instance_name} is being reviewed by staff. You will receive another email once your account is approved.

\n" +msgstr "" +"

En attente d'approbation

\n" +"

Votre compte sur %{instance_name} est en revue par l'équipe. Vous " +"recevrez un autre courriel quand le compte sera approuvé.

\n" + +#: lib/pleroma/emails/user_email.ex:202 +#, elixir-autogen, elixir-format +msgctxt "approval pending email subject" +msgid "Your account is awaiting approval" +msgstr "Votre compte est en attente d'approbation" + +#: lib/pleroma/emails/user_email.ex:158 +#, elixir-autogen, elixir-format +msgctxt "confirmation email body" +msgid "

Thank you for registering on %{instance_name}

\n

Email confirmation is required to activate the account.

\n

Please click the following link to activate your account.

\n" +msgstr "" +"

Merci de votre inscription à %{instance_name}

\n" +"

Une confirmation du courriel est requise.

\n" +"

Veuillez cliquer sur pour activer votre " +"compte.

\n" + +#: lib/pleroma/emails/user_email.ex:174 +#, elixir-autogen, elixir-format +msgctxt "confirmation email subject" +msgid "%{instance_name} account confirmation" +msgstr "confirmation du compte %{instance_name}" + +#: lib/pleroma/emails/user_email.ex:310 +#, elixir-autogen, elixir-format +msgctxt "digest email subject" +msgid "Your digest from %{instance_name}" +msgstr "Votre résumé de %{instance_name}" + +#: lib/pleroma/emails/user_email.ex:81 +#, elixir-autogen, elixir-format +msgctxt "password reset email body" +msgid "

Reset your password at %{instance_name}

\n

Someone has requested password change for your account at %{instance_name}.

\n

If it was you, visit the following link to proceed: reset password.

\n

If it was someone else, nothing to worry about: your data is secure and your password has not been changed.

\n" +msgstr "" +"

Changement de mot de passe à %{instance_name}

\n" +"

Une requête de changement de mot de passe pour votre compte à " +"%{instance_name} à été reçue.

\n" +"

Si c'était vous, veuillez suivre le lien suivant pour continuer : changer de mot de passe.

\n" +"

Si ça n'était pas vous, rien à craindre, vos données sont sécurisés et " +"votre mot de passe n'a pas été changé.

\n" + +#: lib/pleroma/emails/user_email.ex:98 +#, elixir-autogen, elixir-format +msgctxt "password reset email subject" +msgid "Password reset" +msgstr "Changement de mot de passe" + +#: lib/pleroma/emails/user_email.ex:215 +#, elixir-autogen, elixir-format +msgctxt "successful registration email body" +msgid "

Hello @%{nickname},

\n

Your account at %{instance_name} has been registered successfully.

\n

No further action is required to activate your account.

\n" +msgstr "" +"

Bonjour @%{nickname},

\n" +"

Votre compte %{instance_name} à été enregistré avec succès.

\n" +"

Aucune action suivante est requise.

\n" + +#: lib/pleroma/emails/user_email.ex:231 +#, elixir-autogen, elixir-format +msgctxt "successful registration email subject" +msgid "Account registered on %{instance_name}" +msgstr "Compte enregistré sur %{instance_name}" + +#: lib/pleroma/emails/user_email.ex:119 +#, elixir-autogen, elixir-format +msgctxt "user invitation email body" +msgid "

You are invited to %{instance_name}

\n

%{inviter_name} invites you to join %{instance_name}, an instance of Pleroma federated social networking platform.

\n

Click the following link to register: accept invitation.

\n" +msgstr "" +"

Vous avez été invité à %{instance_name}

\n" +"

%{inviter_name} vous invite à rejoindre %{instance_name}, une instance de " +"Pleroma, réseau social fédéré.

\n" +"

Cliquer le lien suivant pour vous enregistrer : accepter l'invitation.

\n" + +#: lib/pleroma/emails/user_email.ex:136 +#, elixir-autogen, elixir-format +msgctxt "user invitation email subject" +msgid "Invitation to %{instance_name}" +msgstr "Invitation à %{instance_name}" + +#: lib/pleroma/emails/user_email.ex:53 +#, elixir-autogen, elixir-format +msgctxt "welcome email html body" +msgid "Welcome to %{instance_name}!" +msgstr "Bienvenu·e à %{instance_name} !" + +#: lib/pleroma/emails/user_email.ex:41 +#, elixir-autogen, elixir-format +msgctxt "welcome email subject" +msgid "Welcome to %{instance_name}!" +msgstr "Bienvenu·e à %{instance_name} !" + +#: lib/pleroma/emails/user_email.ex:65 +#, elixir-autogen, elixir-format +msgctxt "welcome email text body" +msgid "Welcome to %{instance_name}!" +msgstr "Bienvenu·e à %{instance_name} !" + +#: lib/pleroma/emails/user_email.ex:368 +#, elixir-autogen, elixir-format +msgctxt "account archive email body - admin requested" +msgid "

Admin @%{admin_nickname} requested a full backup of your Pleroma account. It's ready for download:

\n

%{download_url}

\n" +msgstr "" +"

L'Admin de @%{admin_nickname} à demandé une sauvegarde complète de votre " +"compte Pleroma. Le téléchargement est prêt:

\n" +"

%{download_url}

\n" diff --git a/priv/gettext/id/LC_MESSAGES/errors.po b/priv/gettext/id/LC_MESSAGES/errors.po new file mode 100644 index 000000000..bc98273be --- /dev/null +++ b/priv/gettext/id/LC_MESSAGES/errors.po @@ -0,0 +1,580 @@ +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2021-08-15 15:40+0000\n" +"PO-Revision-Date: 2021-09-03 06:45+0000\n" +"Last-Translator: @liimee \n" +"Language-Team: Indonesian \n" +"Language: id\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=1; plural=0;\n" +"X-Generator: Weblate 4.6.2\n" + +## This file is a PO Template file. +## +## `msgid`s here are often extracted from source code. +## Add new translations manually only if they're dynamic +## translations that can't be statically extracted. +## +## Run `mix gettext.extract` to bring this file up to +## date. Leave `msgstr`s empty as changing them here as no +## effect: edit them in PO (`.po`) files instead. +## From Ecto.Changeset.cast/4 +msgid "can't be blank" +msgstr "tidak boleh kosong" + +## From Ecto.Changeset.unique_constraint/3 +msgid "has already been taken" +msgstr "sudah diambil" + +## From Ecto.Changeset.put_change/3 +msgid "is invalid" +msgstr "tidak valid" + +## From Ecto.Changeset.validate_format/3 +msgid "has invalid format" +msgstr "memiliki format yang tidak valid" + +## From Ecto.Changeset.validate_subset/3 +msgid "has an invalid entry" +msgstr "" + +## From Ecto.Changeset.validate_exclusion/3 +msgid "is reserved" +msgstr "" + +## From Ecto.Changeset.validate_confirmation/3 +msgid "does not match confirmation" +msgstr "" + +## From Ecto.Changeset.no_assoc_constraint/3 +msgid "is still associated with this entry" +msgstr "" + +msgid "are still associated with this entry" +msgstr "" + +## From Ecto.Changeset.validate_length/3 +msgid "should be %{count} character(s)" +msgid_plural "should be %{count} character(s)" +msgstr[0] "harus memiliki %{count} karakter" + +msgid "should have %{count} item(s)" +msgid_plural "should have %{count} item(s)" +msgstr[0] "harus memiliki %{count} item" + +msgid "should be at least %{count} character(s)" +msgid_plural "should be at least %{count} character(s)" +msgstr[0] "harus memiliki sekurang-kurangnya %{count} karakter" + +msgid "should have at least %{count} item(s)" +msgid_plural "should have at least %{count} item(s)" +msgstr[0] "harus memiliki sekurang-kurangnya %{count} item" + +msgid "should be at most %{count} character(s)" +msgid_plural "should be at most %{count} character(s)" +msgstr[0] "" + +msgid "should have at most %{count} item(s)" +msgid_plural "should have at most %{count} item(s)" +msgstr[0] "" + +## From Ecto.Changeset.validate_number/3 +msgid "must be less than %{number}" +msgstr "harus kurang dari %{number}" + +msgid "must be greater than %{number}" +msgstr "harus lebih dari %{number}" + +msgid "must be less than or equal to %{number}" +msgstr "harus kurang dari atau sama dengan %{number}" + +msgid "must be greater than or equal to %{number}" +msgstr "harus lebih dari atau sama dengan %{number}" + +msgid "must be equal to %{number}" +msgstr "harus sama dengan %{number}" + +#: lib/pleroma/web/common_api/common_api.ex:505 +#, elixir-format +msgid "Account not found" +msgstr "Akun tidak ditemukan" + +#: lib/pleroma/web/common_api/common_api.ex:339 +#, elixir-format +msgid "Already voted" +msgstr "Sudah memilih" + +#: lib/pleroma/web/oauth/oauth_controller.ex:359 +#, elixir-format +msgid "Bad request" +msgstr "Permintaan buruk (bad request)" + +#: lib/pleroma/web/activity_pub/activity_pub_controller.ex:426 +#, elixir-format +msgid "Can't delete object" +msgstr "Tidak dapat menghapus objek" + +#: lib/pleroma/web/controller_helper.ex:105 +#: lib/pleroma/web/controller_helper.ex:111 +#, elixir-format +msgid "Can't display this activity" +msgstr "Tidak dapat menampilkan aktivitas ini" + +#: lib/pleroma/web/mastodon_api/controllers/account_controller.ex:285 +#, elixir-format +msgid "Can't find user" +msgstr "Tidak dapat mencari pengguna" + +#: lib/pleroma/web/pleroma_api/controllers/account_controller.ex:61 +#, elixir-format +msgid "Can't get favorites" +msgstr "Tidak dapat mendapatkan favorit" + +#: lib/pleroma/web/activity_pub/activity_pub_controller.ex:438 +#, elixir-format +msgid "Can't like object" +msgstr "Tidak dapat menyukai objek" + +#: lib/pleroma/web/common_api/utils.ex:563 +#, elixir-format +msgid "Cannot post an empty status without attachments" +msgstr "Tidak dapat memposting status kosong tanpa lampiran" + +#: lib/pleroma/web/common_api/utils.ex:511 +#, elixir-format +msgid "Comment must be up to %{max_size} characters" +msgstr "Komentar tidak boleh lebih dari %{max_size} karakter" + +#: lib/pleroma/config/config_db.ex:191 +#, elixir-format +msgid "Config with params %{params} not found" +msgstr "" + +#: lib/pleroma/web/common_api/common_api.ex:181 +#: lib/pleroma/web/common_api/common_api.ex:185 +#, elixir-format +msgid "Could not delete" +msgstr "Tidak dapat menghapus" + +#: lib/pleroma/web/common_api/common_api.ex:231 +#, elixir-format +msgid "Could not favorite" +msgstr "Tidak dapat memfavoritkan" + +#: lib/pleroma/web/common_api/common_api.ex:453 +#, elixir-format +msgid "Could not pin" +msgstr "Tidak dapat menyematkan" + +#: lib/pleroma/web/common_api/common_api.ex:278 +#, elixir-format +msgid "Could not unfavorite" +msgstr "" + +#: lib/pleroma/web/common_api/common_api.ex:463 +#, elixir-format +msgid "Could not unpin" +msgstr "Tidak dapat berhenti menyematkan" + +#: lib/pleroma/web/common_api/common_api.ex:216 +#, elixir-format +msgid "Could not unrepeat" +msgstr "" + +#: lib/pleroma/web/common_api/common_api.ex:512 +#: lib/pleroma/web/common_api/common_api.ex:521 +#, elixir-format +msgid "Could not update state" +msgstr "" + +#: lib/pleroma/web/mastodon_api/controllers/timeline_controller.ex:207 +#, elixir-format +msgid "Error." +msgstr "Kesalahan." + +#: lib/pleroma/web/twitter_api/twitter_api.ex:106 +#, elixir-format +msgid "Invalid CAPTCHA" +msgstr "CAPTCHA tidak valid" + +#: lib/pleroma/web/mastodon_api/controllers/account_controller.ex:116 +#: lib/pleroma/web/oauth/oauth_controller.ex:568 +#, elixir-format +msgid "Invalid credentials" +msgstr "Kredensian tidak valid" + +#: lib/pleroma/plugs/ensure_authenticated_plug.ex:38 +#, elixir-format +msgid "Invalid credentials." +msgstr "Kredensial tidak valid." + +#: lib/pleroma/web/common_api/common_api.ex:355 +#, elixir-format +msgid "Invalid indices" +msgstr "" + +#: lib/pleroma/web/admin_api/controllers/fallback_controller.ex:29 +#, elixir-format +msgid "Invalid parameters" +msgstr "Parameter tidak valid" + +#: lib/pleroma/web/common_api/utils.ex:414 +#, elixir-format +msgid "Invalid password." +msgstr "Kata sandi tidak valid." + +#: lib/pleroma/web/mastodon_api/controllers/account_controller.ex:220 +#, elixir-format +msgid "Invalid request" +msgstr "Permintaan tidak valid" + +#: lib/pleroma/web/twitter_api/twitter_api.ex:109 +#, elixir-format +msgid "Kocaptcha service unavailable" +msgstr "Layanan Kocaptcha tidak tersedia" + +#: lib/pleroma/web/mastodon_api/controllers/account_controller.ex:112 +#, elixir-format +msgid "Missing parameters" +msgstr "Parameter kurang" + +#: lib/pleroma/web/common_api/utils.ex:547 +#, elixir-format +msgid "No such conversation" +msgstr "Tidak ada percakapan ini" + +#: lib/pleroma/web/admin_api/controllers/admin_api_controller.ex:388 +#: lib/pleroma/web/admin_api/controllers/admin_api_controller.ex:414 lib/pleroma/web/admin_api/controllers/admin_api_controller.ex:456 +#, elixir-format +msgid "No such permission_group" +msgstr "" + +#: lib/pleroma/plugs/uploaded_media.ex:84 +#: lib/pleroma/web/activity_pub/activity_pub_controller.ex:486 lib/pleroma/web/admin_api/controllers/fallback_controller.ex:11 +#: lib/pleroma/web/feed/user_controller.ex:71 lib/pleroma/web/ostatus/ostatus_controller.ex:143 +#, elixir-format +msgid "Not found" +msgstr "Tidak ditemukan" + +#: lib/pleroma/web/common_api/common_api.ex:331 +#, elixir-format +msgid "Poll's author can't vote" +msgstr "Pembuat japat tidak boleh memilih" + +#: lib/pleroma/web/mastodon_api/controllers/fallback_controller.ex:20 +#: lib/pleroma/web/mastodon_api/controllers/poll_controller.ex:37 lib/pleroma/web/mastodon_api/controllers/poll_controller.ex:49 +#: lib/pleroma/web/mastodon_api/controllers/poll_controller.ex:50 lib/pleroma/web/mastodon_api/controllers/status_controller.ex:306 +#: lib/pleroma/web/mastodon_api/controllers/subscription_controller.ex:71 +#, elixir-format +msgid "Record not found" +msgstr "" + +#: lib/pleroma/web/admin_api/controllers/fallback_controller.ex:35 +#: lib/pleroma/web/feed/user_controller.ex:77 lib/pleroma/web/mastodon_api/controllers/fallback_controller.ex:36 +#: lib/pleroma/web/ostatus/ostatus_controller.ex:149 +#, elixir-format +msgid "Something went wrong" +msgstr "Sesuatu yang salah terjadi" + +#: lib/pleroma/web/common_api/activity_draft.ex:107 +#, elixir-format +msgid "The message visibility must be direct" +msgstr "Visibilitas pesan harus langsung" + +#: lib/pleroma/web/common_api/utils.ex:573 +#, elixir-format +msgid "The status is over the character limit" +msgstr "Status lebih dari batas karakter" + +#: lib/pleroma/plugs/ensure_public_or_authenticated_plug.ex:31 +#, elixir-format +msgid "This resource requires authentication." +msgstr "" + +#: lib/pleroma/plugs/rate_limiter/rate_limiter.ex:206 +#, elixir-format +msgid "Throttled" +msgstr "" + +#: lib/pleroma/web/common_api/common_api.ex:356 +#, elixir-format +msgid "Too many choices" +msgstr "Terlalu banyak pilihan" + +#: lib/pleroma/web/activity_pub/activity_pub_controller.ex:443 +#, elixir-format +msgid "Unhandled activity type" +msgstr "" + +#: lib/pleroma/web/admin_api/controllers/admin_api_controller.ex:485 +#, elixir-format +msgid "You can't revoke your own admin status." +msgstr "" + +#: lib/pleroma/web/oauth/oauth_controller.ex:221 +#: lib/pleroma/web/oauth/oauth_controller.ex:308 +#, elixir-format +msgid "Your account is currently disabled" +msgstr "Akun Anda saat ini dinonaktifkan" + +#: lib/pleroma/web/oauth/oauth_controller.ex:183 +#: lib/pleroma/web/oauth/oauth_controller.ex:331 +#, elixir-format +msgid "Your login is missing a confirmed e-mail address" +msgstr "" + +#: lib/pleroma/web/activity_pub/activity_pub_controller.ex:390 +#, elixir-format +msgid "can't read inbox of %{nickname} as %{as_nickname}" +msgstr "" + +#: lib/pleroma/web/activity_pub/activity_pub_controller.ex:473 +#, elixir-format +msgid "can't update outbox of %{nickname} as %{as_nickname}" +msgstr "" + +#: lib/pleroma/web/common_api/common_api.ex:471 +#, elixir-format +msgid "conversation is already muted" +msgstr "percakapan sudah dibisukan" + +#: lib/pleroma/web/activity_pub/activity_pub_controller.ex:314 +#: lib/pleroma/web/activity_pub/activity_pub_controller.ex:492 +#, elixir-format +msgid "error" +msgstr "kesalahan" + +#: lib/pleroma/web/pleroma_api/controllers/mascot_controller.ex:32 +#, elixir-format +msgid "mascots can only be images" +msgstr "maskot hanya dapat berbentuk gambar" + +#: lib/pleroma/web/activity_pub/activity_pub_controller.ex:62 +#, elixir-format +msgid "not found" +msgstr "tidak ditemukan" + +#: lib/pleroma/web/oauth/oauth_controller.ex:394 +#, elixir-format +msgid "Bad OAuth request." +msgstr "Permintaan OAuth buruk." + +#: lib/pleroma/web/twitter_api/twitter_api.ex:115 +#, elixir-format +msgid "CAPTCHA already used" +msgstr "CAPTCHA sudah digunakan" + +#: lib/pleroma/web/twitter_api/twitter_api.ex:112 +#, elixir-format +msgid "CAPTCHA expired" +msgstr "CAPTCHA kedaluwarsa" + +#: lib/pleroma/plugs/uploaded_media.ex:57 +#, elixir-format +msgid "Failed" +msgstr "Gagal" + +#: lib/pleroma/web/oauth/oauth_controller.ex:410 +#, elixir-format +msgid "Failed to authenticate: %{message}." +msgstr "Gagal mengotentikasi: %{message}." + +#: lib/pleroma/web/oauth/oauth_controller.ex:441 +#, elixir-format +msgid "Failed to set up user account." +msgstr "Gagal menyiapkan akun pengguna." + +#: lib/pleroma/plugs/oauth_scopes_plug.ex:38 +#, elixir-format +msgid "Insufficient permissions: %{permissions}." +msgstr "" + +#: lib/pleroma/plugs/uploaded_media.ex:104 +#, elixir-format +msgid "Internal Error" +msgstr "Kesalahan Internal" + +#: lib/pleroma/web/oauth/fallback_controller.ex:22 +#: lib/pleroma/web/oauth/fallback_controller.ex:29 +#, elixir-format +msgid "Invalid Username/Password" +msgstr "Nama Pengguna/Kata Sandi Tidak Valid" + +#: lib/pleroma/web/twitter_api/twitter_api.ex:118 +#, elixir-format +msgid "Invalid answer data" +msgstr "" + +#: lib/pleroma/web/nodeinfo/nodeinfo_controller.ex:33 +#, elixir-format +msgid "Nodeinfo schema version not handled" +msgstr "" + +#: lib/pleroma/web/oauth/oauth_controller.ex:172 +#, elixir-format +msgid "This action is outside the authorized scopes" +msgstr "" + +#: lib/pleroma/web/oauth/fallback_controller.ex:14 +#, elixir-format +msgid "Unknown error, please check the details and try again." +msgstr "Kesalahan tidak dikenal, harap periksa keterangannya dan coba lagi." + +#: lib/pleroma/web/oauth/oauth_controller.ex:119 +#: lib/pleroma/web/oauth/oauth_controller.ex:158 +#, elixir-format +msgid "Unlisted redirect_uri." +msgstr "" + +#: lib/pleroma/web/oauth/oauth_controller.ex:390 +#, elixir-format +msgid "Unsupported OAuth provider: %{provider}." +msgstr "Penyedia OAuth tidak didukung: %{provider}." + +#: lib/pleroma/uploaders/uploader.ex:72 +#, elixir-format +msgid "Uploader callback timeout" +msgstr "" + +#: lib/pleroma/web/uploader_controller.ex:23 +#, elixir-format +msgid "bad request" +msgstr "permintaan buruk (bad request)" + +#: lib/pleroma/web/twitter_api/twitter_api.ex:103 +#, elixir-format +msgid "CAPTCHA Error" +msgstr "Kesalahan CAPTCHA" + +#: lib/pleroma/web/common_api/common_api.ex:290 +#, elixir-format +msgid "Could not add reaction emoji" +msgstr "Tidak dapat menambahkan emoji reaksi" + +#: lib/pleroma/web/common_api/common_api.ex:301 +#, elixir-format +msgid "Could not remove reaction emoji" +msgstr "Tidak dapat menghapus reaksi emoji" + +#: lib/pleroma/web/twitter_api/twitter_api.ex:129 +#, elixir-format +msgid "Invalid CAPTCHA (Missing parameter: %{name})" +msgstr "CAPTCHA Tidak Valid (Parameter kurang: %{name})" + +#: lib/pleroma/web/mastodon_api/controllers/list_controller.ex:92 +#, elixir-format +msgid "List not found" +msgstr "" + +#: lib/pleroma/web/mastodon_api/controllers/account_controller.ex:123 +#, elixir-format +msgid "Missing parameter: %{name}" +msgstr "Parameter kurang: %{name}" + +#: lib/pleroma/web/oauth/oauth_controller.ex:210 +#: lib/pleroma/web/oauth/oauth_controller.ex:321 +#, elixir-format +msgid "Password reset is required" +msgstr "" + +#: lib/pleroma/tests/auth_test_controller.ex:9 +#: lib/pleroma/web/activity_pub/activity_pub_controller.ex:6 lib/pleroma/web/admin_api/controllers/admin_api_controller.ex:6 +#: lib/pleroma/web/admin_api/controllers/config_controller.ex:6 lib/pleroma/web/admin_api/controllers/fallback_controller.ex:6 +#: lib/pleroma/web/admin_api/controllers/invite_controller.ex:6 lib/pleroma/web/admin_api/controllers/media_proxy_cache_controller.ex:6 +#: lib/pleroma/web/admin_api/controllers/oauth_app_controller.ex:6 lib/pleroma/web/admin_api/controllers/relay_controller.ex:6 +#: lib/pleroma/web/admin_api/controllers/report_controller.ex:6 lib/pleroma/web/admin_api/controllers/status_controller.ex:6 +#: lib/pleroma/web/controller_helper.ex:6 lib/pleroma/web/embed_controller.ex:6 +#: lib/pleroma/web/fallback_redirect_controller.ex:6 lib/pleroma/web/feed/tag_controller.ex:6 +#: lib/pleroma/web/feed/user_controller.ex:6 lib/pleroma/web/mailer/subscription_controller.ex:2 +#: lib/pleroma/web/masto_fe_controller.ex:6 lib/pleroma/web/mastodon_api/controllers/account_controller.ex:6 +#: lib/pleroma/web/mastodon_api/controllers/app_controller.ex:6 lib/pleroma/web/mastodon_api/controllers/auth_controller.ex:6 +#: lib/pleroma/web/mastodon_api/controllers/conversation_controller.ex:6 lib/pleroma/web/mastodon_api/controllers/custom_emoji_controller.ex:6 +#: lib/pleroma/web/mastodon_api/controllers/domain_block_controller.ex:6 lib/pleroma/web/mastodon_api/controllers/fallback_controller.ex:6 +#: lib/pleroma/web/mastodon_api/controllers/filter_controller.ex:6 lib/pleroma/web/mastodon_api/controllers/follow_request_controller.ex:6 +#: lib/pleroma/web/mastodon_api/controllers/instance_controller.ex:6 lib/pleroma/web/mastodon_api/controllers/list_controller.ex:6 +#: lib/pleroma/web/mastodon_api/controllers/marker_controller.ex:6 lib/pleroma/web/mastodon_api/controllers/mastodon_api_controller.ex:14 +#: lib/pleroma/web/mastodon_api/controllers/media_controller.ex:6 lib/pleroma/web/mastodon_api/controllers/notification_controller.ex:6 +#: lib/pleroma/web/mastodon_api/controllers/poll_controller.ex:6 lib/pleroma/web/mastodon_api/controllers/report_controller.ex:8 +#: lib/pleroma/web/mastodon_api/controllers/scheduled_activity_controller.ex:6 lib/pleroma/web/mastodon_api/controllers/search_controller.ex:6 +#: lib/pleroma/web/mastodon_api/controllers/status_controller.ex:6 lib/pleroma/web/mastodon_api/controllers/subscription_controller.ex:7 +#: lib/pleroma/web/mastodon_api/controllers/suggestion_controller.ex:6 lib/pleroma/web/mastodon_api/controllers/timeline_controller.ex:6 +#: lib/pleroma/web/media_proxy/media_proxy_controller.ex:6 lib/pleroma/web/mongooseim/mongoose_im_controller.ex:6 +#: lib/pleroma/web/nodeinfo/nodeinfo_controller.ex:6 lib/pleroma/web/oauth/fallback_controller.ex:6 +#: lib/pleroma/web/oauth/mfa_controller.ex:10 lib/pleroma/web/oauth/oauth_controller.ex:6 +#: lib/pleroma/web/ostatus/ostatus_controller.ex:6 lib/pleroma/web/pleroma_api/controllers/account_controller.ex:6 +#: lib/pleroma/web/pleroma_api/controllers/chat_controller.ex:5 lib/pleroma/web/pleroma_api/controllers/conversation_controller.ex:6 +#: lib/pleroma/web/pleroma_api/controllers/emoji_pack_controller.ex:2 lib/pleroma/web/pleroma_api/controllers/emoji_reaction_controller.ex:6 +#: lib/pleroma/web/pleroma_api/controllers/mascot_controller.ex:6 lib/pleroma/web/pleroma_api/controllers/notification_controller.ex:6 +#: lib/pleroma/web/pleroma_api/controllers/scrobble_controller.ex:6 +#: lib/pleroma/web/pleroma_api/controllers/two_factor_authentication_controller.ex:7 lib/pleroma/web/static_fe/static_fe_controller.ex:6 +#: lib/pleroma/web/twitter_api/controllers/password_controller.ex:10 lib/pleroma/web/twitter_api/controllers/remote_follow_controller.ex:6 +#: lib/pleroma/web/twitter_api/controllers/util_controller.ex:6 lib/pleroma/web/twitter_api/twitter_api_controller.ex:6 +#: lib/pleroma/web/uploader_controller.ex:6 lib/pleroma/web/web_finger/web_finger_controller.ex:6 +#, elixir-format +msgid "Security violation: OAuth scopes check was neither handled nor explicitly skipped." +msgstr "" + +#: lib/pleroma/plugs/ensure_authenticated_plug.ex:28 +#, elixir-format +msgid "Two-factor authentication enabled, you must use a access token." +msgstr "Otentikasi dua-faktor diaktifkan, Anda harus menggunakan token akses." + +#: lib/pleroma/web/pleroma_api/controllers/emoji_pack_controller.ex:210 +#, elixir-format +msgid "Unexpected error occurred while adding file to pack." +msgstr "" + +#: lib/pleroma/web/pleroma_api/controllers/emoji_pack_controller.ex:138 +#, elixir-format +msgid "Unexpected error occurred while creating pack." +msgstr "" + +#: lib/pleroma/web/pleroma_api/controllers/emoji_pack_controller.ex:278 +#, elixir-format +msgid "Unexpected error occurred while removing file from pack." +msgstr "" + +#: lib/pleroma/web/pleroma_api/controllers/emoji_pack_controller.ex:250 +#, elixir-format +msgid "Unexpected error occurred while updating file in pack." +msgstr "" + +#: lib/pleroma/web/pleroma_api/controllers/emoji_pack_controller.ex:179 +#, elixir-format +msgid "Unexpected error occurred while updating pack metadata." +msgstr "" + +#: lib/pleroma/web/mastodon_api/controllers/subscription_controller.ex:61 +#, elixir-format +msgid "Web push subscription is disabled on this Pleroma instance" +msgstr "" + +#: lib/pleroma/web/admin_api/controllers/admin_api_controller.ex:451 +#, elixir-format +msgid "You can't revoke your own admin/moderator status." +msgstr "Anda tidak bisa mencabut status admin/moderator Anda sendiri." + +#: lib/pleroma/web/mastodon_api/controllers/timeline_controller.ex:126 +#, elixir-format +msgid "authorization required for timeline view" +msgstr "" + +#: lib/pleroma/web/mastodon_api/controllers/fallback_controller.ex:24 +#, elixir-format +msgid "Access denied" +msgstr "Akses ditolak" + +#: lib/pleroma/web/mastodon_api/controllers/account_controller.ex:282 +#, elixir-format +msgid "This API requires an authenticated user" +msgstr "" + +#: lib/pleroma/plugs/user_is_admin_plug.ex:21 +#, elixir-format +msgid "User is not an admin." +msgstr "Pengguna bukan seorang admin." diff --git a/priv/gettext/ja/LC_MESSAGES/errors.po b/priv/gettext/ja/LC_MESSAGES/errors.po new file mode 100644 index 000000000..5d9986485 --- /dev/null +++ b/priv/gettext/ja/LC_MESSAGES/errors.po @@ -0,0 +1,580 @@ +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2021-09-18 09:07+0000\n" +"PO-Revision-Date: 2021-09-19 09:45+0000\n" +"Last-Translator: Ryo Ueno \n" +"Language-Team: Japanese \n" +"Language: ja\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=1; plural=0;\n" +"X-Generator: Weblate 4.6.2\n" + +## This file is a PO Template file. +## +## `msgid`s here are often extracted from source code. +## Add new translations manually only if they're dynamic +## translations that can't be statically extracted. +## +## Run `mix gettext.extract` to bring this file up to +## date. Leave `msgstr`s empty as changing them here as no +## effect: edit them in PO (`.po`) files instead. +## From Ecto.Changeset.cast/4 +msgid "can't be blank" +msgstr "" + +## From Ecto.Changeset.unique_constraint/3 +msgid "has already been taken" +msgstr "" + +## From Ecto.Changeset.put_change/3 +msgid "is invalid" +msgstr "" + +## From Ecto.Changeset.validate_format/3 +msgid "has invalid format" +msgstr "" + +## From Ecto.Changeset.validate_subset/3 +msgid "has an invalid entry" +msgstr "" + +## From Ecto.Changeset.validate_exclusion/3 +msgid "is reserved" +msgstr "" + +## From Ecto.Changeset.validate_confirmation/3 +msgid "does not match confirmation" +msgstr "" + +## From Ecto.Changeset.no_assoc_constraint/3 +msgid "is still associated with this entry" +msgstr "" + +msgid "are still associated with this entry" +msgstr "" + +## From Ecto.Changeset.validate_length/3 +msgid "should be %{count} character(s)" +msgid_plural "should be %{count} character(s)" +msgstr[0] "" + +msgid "should have %{count} item(s)" +msgid_plural "should have %{count} item(s)" +msgstr[0] "" + +msgid "should be at least %{count} character(s)" +msgid_plural "should be at least %{count} character(s)" +msgstr[0] "" + +msgid "should have at least %{count} item(s)" +msgid_plural "should have at least %{count} item(s)" +msgstr[0] "" + +msgid "should be at most %{count} character(s)" +msgid_plural "should be at most %{count} character(s)" +msgstr[0] "" + +msgid "should have at most %{count} item(s)" +msgid_plural "should have at most %{count} item(s)" +msgstr[0] "" + +## From Ecto.Changeset.validate_number/3 +msgid "must be less than %{number}" +msgstr "%{number}未満でなければなりません" + +msgid "must be greater than %{number}" +msgstr "%{number}より大きくなければなりません" + +msgid "must be less than or equal to %{number}" +msgstr "%{number}以下でなければなりません" + +msgid "must be greater than or equal to %{number}" +msgstr "%{number}以上でなければなりません" + +msgid "must be equal to %{number}" +msgstr "%{number}でなければなりません" + +#: lib/pleroma/web/common_api/common_api.ex:505 +#, elixir-format +msgid "Account not found" +msgstr "アカウントがありません" + +#: lib/pleroma/web/common_api/common_api.ex:339 +#, elixir-format +msgid "Already voted" +msgstr "投票済みです" + +#: lib/pleroma/web/oauth/oauth_controller.ex:359 +#, elixir-format +msgid "Bad request" +msgstr "" + +#: lib/pleroma/web/activity_pub/activity_pub_controller.ex:426 +#, elixir-format +msgid "Can't delete object" +msgstr "オブジェクトを削除できません" + +#: lib/pleroma/web/controller_helper.ex:105 +#: lib/pleroma/web/controller_helper.ex:111 +#, elixir-format +msgid "Can't display this activity" +msgstr "このアクティビティを表示できません" + +#: lib/pleroma/web/mastodon_api/controllers/account_controller.ex:285 +#, elixir-format +msgid "Can't find user" +msgstr "ユーザーが見つかりません" + +#: lib/pleroma/web/pleroma_api/controllers/account_controller.ex:61 +#, elixir-format +msgid "Can't get favorites" +msgstr "お気に入りを取得できません" + +#: lib/pleroma/web/activity_pub/activity_pub_controller.ex:438 +#, elixir-format +msgid "Can't like object" +msgstr "" + +#: lib/pleroma/web/common_api/utils.ex:563 +#, elixir-format +msgid "Cannot post an empty status without attachments" +msgstr "本文または添付ファイルを追加してください" + +#: lib/pleroma/web/common_api/utils.ex:511 +#, elixir-format +msgid "Comment must be up to %{max_size} characters" +msgstr "" + +#: lib/pleroma/config/config_db.ex:191 +#, elixir-format +msgid "Config with params %{params} not found" +msgstr "" + +#: lib/pleroma/web/common_api/common_api.ex:181 +#: lib/pleroma/web/common_api/common_api.ex:185 +#, elixir-format +msgid "Could not delete" +msgstr "削除できません" + +#: lib/pleroma/web/common_api/common_api.ex:231 +#, elixir-format +msgid "Could not favorite" +msgstr "お気に入り登録できません" + +#: lib/pleroma/web/common_api/common_api.ex:453 +#, elixir-format +msgid "Could not pin" +msgstr "ピン留めできません" + +#: lib/pleroma/web/common_api/common_api.ex:278 +#, elixir-format +msgid "Could not unfavorite" +msgstr "お気に入り解除できません" + +#: lib/pleroma/web/common_api/common_api.ex:463 +#, elixir-format +msgid "Could not unpin" +msgstr "ピン留め解除できません" + +#: lib/pleroma/web/common_api/common_api.ex:216 +#, elixir-format +msgid "Could not unrepeat" +msgstr "リピート解除できません" + +#: lib/pleroma/web/common_api/common_api.ex:512 +#: lib/pleroma/web/common_api/common_api.ex:521 +#, elixir-format +msgid "Could not update state" +msgstr "状態を更新できません" + +#: lib/pleroma/web/mastodon_api/controllers/timeline_controller.ex:207 +#, elixir-format +msgid "Error." +msgstr "エラー。" + +#: lib/pleroma/web/twitter_api/twitter_api.ex:106 +#, elixir-format +msgid "Invalid CAPTCHA" +msgstr "CAPTCHAが間違っています" + +#: lib/pleroma/web/mastodon_api/controllers/account_controller.ex:116 +#: lib/pleroma/web/oauth/oauth_controller.ex:568 +#, elixir-format +msgid "Invalid credentials" +msgstr "認証情報が間違っています" + +#: lib/pleroma/plugs/ensure_authenticated_plug.ex:38 +#, elixir-format +msgid "Invalid credentials." +msgstr "認証情報が間違っています。" + +#: lib/pleroma/web/common_api/common_api.ex:355 +#, elixir-format +msgid "Invalid indices" +msgstr "" + +#: lib/pleroma/web/admin_api/controllers/fallback_controller.ex:29 +#, elixir-format +msgid "Invalid parameters" +msgstr "" + +#: lib/pleroma/web/common_api/utils.ex:414 +#, elixir-format +msgid "Invalid password." +msgstr "" + +#: lib/pleroma/web/mastodon_api/controllers/account_controller.ex:220 +#, elixir-format +msgid "Invalid request" +msgstr "" + +#: lib/pleroma/web/twitter_api/twitter_api.ex:109 +#, elixir-format +msgid "Kocaptcha service unavailable" +msgstr "" + +#: lib/pleroma/web/mastodon_api/controllers/account_controller.ex:112 +#, elixir-format +msgid "Missing parameters" +msgstr "" + +#: lib/pleroma/web/common_api/utils.ex:547 +#, elixir-format +msgid "No such conversation" +msgstr "" + +#: lib/pleroma/web/admin_api/controllers/admin_api_controller.ex:388 +#: lib/pleroma/web/admin_api/controllers/admin_api_controller.ex:414 lib/pleroma/web/admin_api/controllers/admin_api_controller.ex:456 +#, elixir-format +msgid "No such permission_group" +msgstr "" + +#: lib/pleroma/plugs/uploaded_media.ex:84 +#: lib/pleroma/web/activity_pub/activity_pub_controller.ex:486 lib/pleroma/web/admin_api/controllers/fallback_controller.ex:11 +#: lib/pleroma/web/feed/user_controller.ex:71 lib/pleroma/web/ostatus/ostatus_controller.ex:143 +#, elixir-format +msgid "Not found" +msgstr "" + +#: lib/pleroma/web/common_api/common_api.ex:331 +#, elixir-format +msgid "Poll's author can't vote" +msgstr "" + +#: lib/pleroma/web/mastodon_api/controllers/fallback_controller.ex:20 +#: lib/pleroma/web/mastodon_api/controllers/poll_controller.ex:37 lib/pleroma/web/mastodon_api/controllers/poll_controller.ex:49 +#: lib/pleroma/web/mastodon_api/controllers/poll_controller.ex:50 lib/pleroma/web/mastodon_api/controllers/status_controller.ex:306 +#: lib/pleroma/web/mastodon_api/controllers/subscription_controller.ex:71 +#, elixir-format +msgid "Record not found" +msgstr "" + +#: lib/pleroma/web/admin_api/controllers/fallback_controller.ex:35 +#: lib/pleroma/web/feed/user_controller.ex:77 lib/pleroma/web/mastodon_api/controllers/fallback_controller.ex:36 +#: lib/pleroma/web/ostatus/ostatus_controller.ex:149 +#, elixir-format +msgid "Something went wrong" +msgstr "" + +#: lib/pleroma/web/common_api/activity_draft.ex:107 +#, elixir-format +msgid "The message visibility must be direct" +msgstr "" + +#: lib/pleroma/web/common_api/utils.ex:573 +#, elixir-format +msgid "The status is over the character limit" +msgstr "" + +#: lib/pleroma/plugs/ensure_public_or_authenticated_plug.ex:31 +#, elixir-format +msgid "This resource requires authentication." +msgstr "" + +#: lib/pleroma/plugs/rate_limiter/rate_limiter.ex:206 +#, elixir-format +msgid "Throttled" +msgstr "" + +#: lib/pleroma/web/common_api/common_api.ex:356 +#, elixir-format +msgid "Too many choices" +msgstr "" + +#: lib/pleroma/web/activity_pub/activity_pub_controller.ex:443 +#, elixir-format +msgid "Unhandled activity type" +msgstr "" + +#: lib/pleroma/web/admin_api/controllers/admin_api_controller.ex:485 +#, elixir-format +msgid "You can't revoke your own admin status." +msgstr "" + +#: lib/pleroma/web/oauth/oauth_controller.ex:221 +#: lib/pleroma/web/oauth/oauth_controller.ex:308 +#, elixir-format +msgid "Your account is currently disabled" +msgstr "" + +#: lib/pleroma/web/oauth/oauth_controller.ex:183 +#: lib/pleroma/web/oauth/oauth_controller.ex:331 +#, elixir-format +msgid "Your login is missing a confirmed e-mail address" +msgstr "" + +#: lib/pleroma/web/activity_pub/activity_pub_controller.ex:390 +#, elixir-format +msgid "can't read inbox of %{nickname} as %{as_nickname}" +msgstr "" + +#: lib/pleroma/web/activity_pub/activity_pub_controller.ex:473 +#, elixir-format +msgid "can't update outbox of %{nickname} as %{as_nickname}" +msgstr "" + +#: lib/pleroma/web/common_api/common_api.ex:471 +#, elixir-format +msgid "conversation is already muted" +msgstr "" + +#: lib/pleroma/web/activity_pub/activity_pub_controller.ex:314 +#: lib/pleroma/web/activity_pub/activity_pub_controller.ex:492 +#, elixir-format +msgid "error" +msgstr "" + +#: lib/pleroma/web/pleroma_api/controllers/mascot_controller.ex:32 +#, elixir-format +msgid "mascots can only be images" +msgstr "" + +#: lib/pleroma/web/activity_pub/activity_pub_controller.ex:62 +#, elixir-format +msgid "not found" +msgstr "" + +#: lib/pleroma/web/oauth/oauth_controller.ex:394 +#, elixir-format +msgid "Bad OAuth request." +msgstr "" + +#: lib/pleroma/web/twitter_api/twitter_api.ex:115 +#, elixir-format +msgid "CAPTCHA already used" +msgstr "" + +#: lib/pleroma/web/twitter_api/twitter_api.ex:112 +#, elixir-format +msgid "CAPTCHA expired" +msgstr "" + +#: lib/pleroma/plugs/uploaded_media.ex:57 +#, elixir-format +msgid "Failed" +msgstr "" + +#: lib/pleroma/web/oauth/oauth_controller.ex:410 +#, elixir-format +msgid "Failed to authenticate: %{message}." +msgstr "" + +#: lib/pleroma/web/oauth/oauth_controller.ex:441 +#, elixir-format +msgid "Failed to set up user account." +msgstr "" + +#: lib/pleroma/plugs/oauth_scopes_plug.ex:38 +#, elixir-format +msgid "Insufficient permissions: %{permissions}." +msgstr "" + +#: lib/pleroma/plugs/uploaded_media.ex:104 +#, elixir-format +msgid "Internal Error" +msgstr "" + +#: lib/pleroma/web/oauth/fallback_controller.ex:22 +#: lib/pleroma/web/oauth/fallback_controller.ex:29 +#, elixir-format +msgid "Invalid Username/Password" +msgstr "" + +#: lib/pleroma/web/twitter_api/twitter_api.ex:118 +#, elixir-format +msgid "Invalid answer data" +msgstr "" + +#: lib/pleroma/web/nodeinfo/nodeinfo_controller.ex:33 +#, elixir-format +msgid "Nodeinfo schema version not handled" +msgstr "" + +#: lib/pleroma/web/oauth/oauth_controller.ex:172 +#, elixir-format +msgid "This action is outside the authorized scopes" +msgstr "" + +#: lib/pleroma/web/oauth/fallback_controller.ex:14 +#, elixir-format +msgid "Unknown error, please check the details and try again." +msgstr "" + +#: lib/pleroma/web/oauth/oauth_controller.ex:119 +#: lib/pleroma/web/oauth/oauth_controller.ex:158 +#, elixir-format +msgid "Unlisted redirect_uri." +msgstr "" + +#: lib/pleroma/web/oauth/oauth_controller.ex:390 +#, elixir-format +msgid "Unsupported OAuth provider: %{provider}." +msgstr "" + +#: lib/pleroma/uploaders/uploader.ex:72 +#, elixir-format +msgid "Uploader callback timeout" +msgstr "" + +#: lib/pleroma/web/uploader_controller.ex:23 +#, elixir-format +msgid "bad request" +msgstr "" + +#: lib/pleroma/web/twitter_api/twitter_api.ex:103 +#, elixir-format +msgid "CAPTCHA Error" +msgstr "" + +#: lib/pleroma/web/common_api/common_api.ex:290 +#, elixir-format +msgid "Could not add reaction emoji" +msgstr "" + +#: lib/pleroma/web/common_api/common_api.ex:301 +#, elixir-format +msgid "Could not remove reaction emoji" +msgstr "" + +#: lib/pleroma/web/twitter_api/twitter_api.ex:129 +#, elixir-format +msgid "Invalid CAPTCHA (Missing parameter: %{name})" +msgstr "" + +#: lib/pleroma/web/mastodon_api/controllers/list_controller.ex:92 +#, elixir-format +msgid "List not found" +msgstr "" + +#: lib/pleroma/web/mastodon_api/controllers/account_controller.ex:123 +#, elixir-format +msgid "Missing parameter: %{name}" +msgstr "" + +#: lib/pleroma/web/oauth/oauth_controller.ex:210 +#: lib/pleroma/web/oauth/oauth_controller.ex:321 +#, elixir-format +msgid "Password reset is required" +msgstr "" + +#: lib/pleroma/tests/auth_test_controller.ex:9 +#: lib/pleroma/web/activity_pub/activity_pub_controller.ex:6 lib/pleroma/web/admin_api/controllers/admin_api_controller.ex:6 +#: lib/pleroma/web/admin_api/controllers/config_controller.ex:6 lib/pleroma/web/admin_api/controllers/fallback_controller.ex:6 +#: lib/pleroma/web/admin_api/controllers/invite_controller.ex:6 lib/pleroma/web/admin_api/controllers/media_proxy_cache_controller.ex:6 +#: lib/pleroma/web/admin_api/controllers/oauth_app_controller.ex:6 lib/pleroma/web/admin_api/controllers/relay_controller.ex:6 +#: lib/pleroma/web/admin_api/controllers/report_controller.ex:6 lib/pleroma/web/admin_api/controllers/status_controller.ex:6 +#: lib/pleroma/web/controller_helper.ex:6 lib/pleroma/web/embed_controller.ex:6 +#: lib/pleroma/web/fallback_redirect_controller.ex:6 lib/pleroma/web/feed/tag_controller.ex:6 +#: lib/pleroma/web/feed/user_controller.ex:6 lib/pleroma/web/mailer/subscription_controller.ex:2 +#: lib/pleroma/web/masto_fe_controller.ex:6 lib/pleroma/web/mastodon_api/controllers/account_controller.ex:6 +#: lib/pleroma/web/mastodon_api/controllers/app_controller.ex:6 lib/pleroma/web/mastodon_api/controllers/auth_controller.ex:6 +#: lib/pleroma/web/mastodon_api/controllers/conversation_controller.ex:6 lib/pleroma/web/mastodon_api/controllers/custom_emoji_controller.ex:6 +#: lib/pleroma/web/mastodon_api/controllers/domain_block_controller.ex:6 lib/pleroma/web/mastodon_api/controllers/fallback_controller.ex:6 +#: lib/pleroma/web/mastodon_api/controllers/filter_controller.ex:6 lib/pleroma/web/mastodon_api/controllers/follow_request_controller.ex:6 +#: lib/pleroma/web/mastodon_api/controllers/instance_controller.ex:6 lib/pleroma/web/mastodon_api/controllers/list_controller.ex:6 +#: lib/pleroma/web/mastodon_api/controllers/marker_controller.ex:6 lib/pleroma/web/mastodon_api/controllers/mastodon_api_controller.ex:14 +#: lib/pleroma/web/mastodon_api/controllers/media_controller.ex:6 lib/pleroma/web/mastodon_api/controllers/notification_controller.ex:6 +#: lib/pleroma/web/mastodon_api/controllers/poll_controller.ex:6 lib/pleroma/web/mastodon_api/controllers/report_controller.ex:8 +#: lib/pleroma/web/mastodon_api/controllers/scheduled_activity_controller.ex:6 lib/pleroma/web/mastodon_api/controllers/search_controller.ex:6 +#: lib/pleroma/web/mastodon_api/controllers/status_controller.ex:6 lib/pleroma/web/mastodon_api/controllers/subscription_controller.ex:7 +#: lib/pleroma/web/mastodon_api/controllers/suggestion_controller.ex:6 lib/pleroma/web/mastodon_api/controllers/timeline_controller.ex:6 +#: lib/pleroma/web/media_proxy/media_proxy_controller.ex:6 lib/pleroma/web/mongooseim/mongoose_im_controller.ex:6 +#: lib/pleroma/web/nodeinfo/nodeinfo_controller.ex:6 lib/pleroma/web/oauth/fallback_controller.ex:6 +#: lib/pleroma/web/oauth/mfa_controller.ex:10 lib/pleroma/web/oauth/oauth_controller.ex:6 +#: lib/pleroma/web/ostatus/ostatus_controller.ex:6 lib/pleroma/web/pleroma_api/controllers/account_controller.ex:6 +#: lib/pleroma/web/pleroma_api/controllers/chat_controller.ex:5 lib/pleroma/web/pleroma_api/controllers/conversation_controller.ex:6 +#: lib/pleroma/web/pleroma_api/controllers/emoji_pack_controller.ex:2 lib/pleroma/web/pleroma_api/controllers/emoji_reaction_controller.ex:6 +#: lib/pleroma/web/pleroma_api/controllers/mascot_controller.ex:6 lib/pleroma/web/pleroma_api/controllers/notification_controller.ex:6 +#: lib/pleroma/web/pleroma_api/controllers/scrobble_controller.ex:6 +#: lib/pleroma/web/pleroma_api/controllers/two_factor_authentication_controller.ex:7 lib/pleroma/web/static_fe/static_fe_controller.ex:6 +#: lib/pleroma/web/twitter_api/controllers/password_controller.ex:10 lib/pleroma/web/twitter_api/controllers/remote_follow_controller.ex:6 +#: lib/pleroma/web/twitter_api/controllers/util_controller.ex:6 lib/pleroma/web/twitter_api/twitter_api_controller.ex:6 +#: lib/pleroma/web/uploader_controller.ex:6 lib/pleroma/web/web_finger/web_finger_controller.ex:6 +#, elixir-format +msgid "Security violation: OAuth scopes check was neither handled nor explicitly skipped." +msgstr "" + +#: lib/pleroma/plugs/ensure_authenticated_plug.ex:28 +#, elixir-format +msgid "Two-factor authentication enabled, you must use a access token." +msgstr "" + +#: lib/pleroma/web/pleroma_api/controllers/emoji_pack_controller.ex:210 +#, elixir-format +msgid "Unexpected error occurred while adding file to pack." +msgstr "" + +#: lib/pleroma/web/pleroma_api/controllers/emoji_pack_controller.ex:138 +#, elixir-format +msgid "Unexpected error occurred while creating pack." +msgstr "" + +#: lib/pleroma/web/pleroma_api/controllers/emoji_pack_controller.ex:278 +#, elixir-format +msgid "Unexpected error occurred while removing file from pack." +msgstr "" + +#: lib/pleroma/web/pleroma_api/controllers/emoji_pack_controller.ex:250 +#, elixir-format +msgid "Unexpected error occurred while updating file in pack." +msgstr "" + +#: lib/pleroma/web/pleroma_api/controllers/emoji_pack_controller.ex:179 +#, elixir-format +msgid "Unexpected error occurred while updating pack metadata." +msgstr "" + +#: lib/pleroma/web/mastodon_api/controllers/subscription_controller.ex:61 +#, elixir-format +msgid "Web push subscription is disabled on this Pleroma instance" +msgstr "" + +#: lib/pleroma/web/admin_api/controllers/admin_api_controller.ex:451 +#, elixir-format +msgid "You can't revoke your own admin/moderator status." +msgstr "" + +#: lib/pleroma/web/mastodon_api/controllers/timeline_controller.ex:126 +#, elixir-format +msgid "authorization required for timeline view" +msgstr "" + +#: lib/pleroma/web/mastodon_api/controllers/fallback_controller.ex:24 +#, elixir-format +msgid "Access denied" +msgstr "" + +#: lib/pleroma/web/mastodon_api/controllers/account_controller.ex:282 +#, elixir-format +msgid "This API requires an authenticated user" +msgstr "" + +#: lib/pleroma/plugs/user_is_admin_plug.ex:21 +#, elixir-format +msgid "User is not an admin." +msgstr "" diff --git a/priv/gettext/ko/LC_MESSAGES/default.po b/priv/gettext/ko/LC_MESSAGES/default.po new file mode 100644 index 000000000..55b695d6b --- /dev/null +++ b/priv/gettext/ko/LC_MESSAGES/default.po @@ -0,0 +1,197 @@ +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2022-12-01 19:17+0300\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: Automatically generated\n" +"Language-Team: none\n" +"Language: ko\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Translate Toolkit 3.7.2\n" + +## This file is a PO Template file. +## +## "msgid"s here are often extracted from source code. +## Add new translations manually only if they're dynamic +## translations that can't be statically extracted. +## +## Run "mix gettext.extract" to bring this file up to +## date. Leave "msgstr"s empty as changing them here as no +## effect: edit them in PO (.po) files instead. + +#: lib/pleroma/web/api_spec/render_error.ex:122 +#, elixir-autogen, elixir-format +msgid "%{name} - %{count} is not a multiple of %{multiple}." +msgstr "" + +#: lib/pleroma/web/api_spec/render_error.ex:131 +#, elixir-autogen, elixir-format +msgid "%{name} - %{value} is larger than exclusive maximum %{max}." +msgstr "" + +#: lib/pleroma/web/api_spec/render_error.ex:140 +#, elixir-autogen, elixir-format +msgid "%{name} - %{value} is larger than inclusive maximum %{max}." +msgstr "" + +#: lib/pleroma/web/api_spec/render_error.ex:149 +#, elixir-autogen, elixir-format +msgid "%{name} - %{value} is smaller than exclusive minimum %{min}." +msgstr "" + +#: lib/pleroma/web/api_spec/render_error.ex:158 +#, elixir-autogen, elixir-format +msgid "%{name} - %{value} is smaller than inclusive minimum %{min}." +msgstr "" + +#: lib/pleroma/web/api_spec/render_error.ex:102 +#, elixir-autogen, elixir-format +msgid "%{name} - Array items must be unique." +msgstr "" + +#: lib/pleroma/web/api_spec/render_error.ex:114 +#, elixir-autogen, elixir-format +msgid "%{name} - Array length %{length} is larger than maxItems: %{}." +msgstr "" + +#: lib/pleroma/web/api_spec/render_error.ex:106 +#, elixir-autogen, elixir-format +msgid "%{name} - Array length %{length} is smaller than minItems: %{min}." +msgstr "" + +#: lib/pleroma/web/api_spec/render_error.ex:166 +#, elixir-autogen, elixir-format +msgid "%{name} - Invalid %{type}. Got: %{value}." +msgstr "" + +#: lib/pleroma/web/api_spec/render_error.ex:174 +#, elixir-autogen, elixir-format +msgid "%{name} - Invalid format. Expected %{format}." +msgstr "" + +#: lib/pleroma/web/api_spec/render_error.ex:51 +#, elixir-autogen, elixir-format +msgid "%{name} - Invalid schema.type. Got: %{type}." +msgstr "" + +#: lib/pleroma/web/api_spec/render_error.ex:178 +#, elixir-autogen, elixir-format +msgid "%{name} - Invalid value for enum." +msgstr "" + +#: lib/pleroma/web/api_spec/render_error.ex:95 +#, elixir-autogen, elixir-format +msgid "%{name} - String length is larger than maxLength: %{length}." +msgstr "" + +#: lib/pleroma/web/api_spec/render_error.ex:88 +#, elixir-autogen, elixir-format +msgid "%{name} - String length is smaller than minLength: %{length}." +msgstr "" + +#: lib/pleroma/web/api_spec/render_error.ex:63 +#, elixir-autogen, elixir-format +msgid "%{name} - null value where %{type} expected." +msgstr "" + +#: lib/pleroma/web/api_spec/render_error.ex:60 +#, elixir-autogen, elixir-format +msgid "%{name} - null value." +msgstr "" + +#: lib/pleroma/web/api_spec/render_error.ex:182 +#, elixir-autogen, elixir-format +msgid "Failed to cast to any schema in %{polymorphic_type}" +msgstr "" + +#: lib/pleroma/web/api_spec/render_error.ex:71 +#, elixir-autogen, elixir-format +msgid "Failed to cast value as %{invalid_schema}. Value must be castable using `allOf` schemas listed." +msgstr "" + +#: lib/pleroma/web/api_spec/render_error.ex:84 +#, elixir-autogen, elixir-format +msgid "Failed to cast value to one of: %{failed_schemas}." +msgstr "" + +#: lib/pleroma/web/api_spec/render_error.ex:78 +#, elixir-autogen, elixir-format +msgid "Failed to cast value using any of: %{failed_schemas}." +msgstr "" + +#: lib/pleroma/web/api_spec/render_error.ex:212 +#, elixir-autogen, elixir-format +msgid "Invalid value for header: %{name}." +msgstr "" + +#: lib/pleroma/web/api_spec/render_error.ex:204 +#, elixir-autogen, elixir-format +msgid "Missing field: %{name}." +msgstr "" + +#: lib/pleroma/web/api_spec/render_error.ex:208 +#, elixir-autogen, elixir-format +msgid "Missing header: %{name}." +msgstr "" + +#: lib/pleroma/web/api_spec/render_error.ex:196 +#, elixir-autogen, elixir-format +msgid "No value provided for required discriminator `%{field}`." +msgstr "" + +#: lib/pleroma/web/api_spec/render_error.ex:216 +#, elixir-autogen, elixir-format +msgid "Object property count %{property_count} is greater than maxProperties: %{max_properties}." +msgstr "" + +#: lib/pleroma/web/api_spec/render_error.ex:224 +#, elixir-autogen, elixir-format +msgid "Object property count %{property_count} is less than minProperties: %{min_properties}" +msgstr "" + +#: lib/pleroma/web/templates/static_fe/static_fe/error.html.eex:2 +#, elixir-autogen, elixir-format +msgid "Oops" +msgstr "" + +#: lib/pleroma/web/api_spec/render_error.ex:188 +#, elixir-autogen, elixir-format +msgid "Unexpected field: %{name}." +msgstr "" + +#: lib/pleroma/web/api_spec/render_error.ex:200 +#, elixir-autogen, elixir-format +msgid "Unknown schema: %{name}." +msgstr "" + +#: lib/pleroma/web/api_spec/render_error.ex:192 +#, elixir-autogen, elixir-format +msgid "Value used as discriminator for `%{field}` matches no schemas." +msgstr "" + +#: lib/pleroma/web/templates/embed/show.html.eex:43 +#: lib/pleroma/web/templates/static_fe/static_fe/_notice.html.eex:37 +#, elixir-autogen, elixir-format +msgid "announces" +msgstr "" + +#: lib/pleroma/web/templates/embed/show.html.eex:44 +#: lib/pleroma/web/templates/static_fe/static_fe/_notice.html.eex:38 +#, elixir-autogen, elixir-format +msgid "likes" +msgstr "" + +#: lib/pleroma/web/templates/embed/show.html.eex:42 +#: lib/pleroma/web/templates/static_fe/static_fe/_notice.html.eex:36 +#, elixir-autogen, elixir-format +msgid "replies" +msgstr "" + +#: lib/pleroma/web/templates/embed/show.html.eex:27 +#: lib/pleroma/web/templates/static_fe/static_fe/_notice.html.eex:22 +#, elixir-autogen, elixir-format +msgid "sensitive media" +msgstr "" diff --git a/priv/gettext/nl/LC_MESSAGES/errors.po b/priv/gettext/nl/LC_MESSAGES/errors.po index cfcb05fe6..ce1d794cf 100644 --- a/priv/gettext/nl/LC_MESSAGES/errors.po +++ b/priv/gettext/nl/LC_MESSAGES/errors.po @@ -3,16 +3,16 @@ msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2020-05-15 09:37+0000\n" -"PO-Revision-Date: 2020-06-02 07:36+0000\n" +"PO-Revision-Date: 2022-08-14 11:04+0000\n" "Last-Translator: Fristi \n" -"Language-Team: Dutch \n" +"Language-Team: Dutch \n" "Language: nl\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Weblate 4.0.4\n" +"X-Generator: Weblate 4.13.1\n" ## This file is a PO Template file. ## @@ -118,7 +118,7 @@ msgstr "Al gestemd" #: lib/pleroma/web/oauth/oauth_controller.ex:360 #, elixir-format msgid "Bad request" -msgstr "Bad request" +msgstr "Ongeldig request" #: lib/pleroma/web/activity_pub/activity_pub_controller.ex:425 #, elixir-format @@ -155,7 +155,7 @@ msgstr "Object kan niet geliked worden" #: lib/pleroma/web/common_api/utils.ex:556 #, elixir-format msgid "Cannot post an empty status without attachments" -msgstr "Status kan niet geplaatst worden zonder tekst of bijlagen" +msgstr "Bericht kan niet geplaatst worden zonder tekst of bijlagen" #: lib/pleroma/web/common_api/utils.ex:504 #, elixir-format @@ -165,122 +165,122 @@ msgstr "Opmerking dient maximaal %{max_size} karakters te bevatten" #: lib/pleroma/config/config_db.ex:222 #, elixir-format msgid "Config with params %{params} not found" -msgstr "" +msgstr "Instelling met parameters %{params} kon niet gevonden worden" #: lib/pleroma/web/common_api/common_api.ex:95 #, elixir-format msgid "Could not delete" -msgstr "" +msgstr "Verwijderen mislukt" #: lib/pleroma/web/common_api/common_api.ex:141 #, elixir-format msgid "Could not favorite" -msgstr "" +msgstr "Favoriet maken mislukt" #: lib/pleroma/web/common_api/common_api.ex:370 #, elixir-format msgid "Could not pin" -msgstr "" +msgstr "Vastmaken mislukt" #: lib/pleroma/web/common_api/common_api.ex:112 #, elixir-format msgid "Could not repeat" -msgstr "" +msgstr "Herhalen mislukt" #: lib/pleroma/web/common_api/common_api.ex:188 #, elixir-format msgid "Could not unfavorite" -msgstr "" +msgstr "Favoriet ongedaan maken mislukt" #: lib/pleroma/web/common_api/common_api.ex:380 #, elixir-format msgid "Could not unpin" -msgstr "" +msgstr "Vastmaken ongedaan maken mislukt" #: lib/pleroma/web/common_api/common_api.ex:126 #, elixir-format msgid "Could not unrepeat" -msgstr "" +msgstr "Herhalen ongedaan maken mislukt" #: lib/pleroma/web/common_api/common_api.ex:428 #: lib/pleroma/web/common_api/common_api.ex:437 #, elixir-format msgid "Could not update state" -msgstr "" +msgstr "Status bijwerken mislukt" #: lib/pleroma/web/mastodon_api/controllers/timeline_controller.ex:202 #, elixir-format msgid "Error." -msgstr "" +msgstr "Fout." #: lib/pleroma/web/twitter_api/twitter_api.ex:106 #, elixir-format msgid "Invalid CAPTCHA" -msgstr "" +msgstr "Ongeldige CAPTCHA" #: lib/pleroma/web/mastodon_api/controllers/account_controller.ex:117 #: lib/pleroma/web/oauth/oauth_controller.ex:569 #, elixir-format msgid "Invalid credentials" -msgstr "" +msgstr "Ongeldige inloggegevens" #: lib/pleroma/plugs/ensure_authenticated_plug.ex:38 #, elixir-format msgid "Invalid credentials." -msgstr "" +msgstr "Ongeldige inloggegevens." #: lib/pleroma/web/common_api/common_api.ex:265 #, elixir-format msgid "Invalid indices" -msgstr "" +msgstr "Ongeldige indexen" #: lib/pleroma/web/admin_api/admin_api_controller.ex:1147 #, elixir-format msgid "Invalid parameters" -msgstr "" +msgstr "Ongeldige parameters" #: lib/pleroma/web/common_api/utils.ex:411 #, elixir-format msgid "Invalid password." -msgstr "" +msgstr "Ongeldig wachtwoord." #: lib/pleroma/web/mastodon_api/controllers/account_controller.ex:187 #, elixir-format msgid "Invalid request" -msgstr "" +msgstr "Ongeldig request" #: lib/pleroma/web/twitter_api/twitter_api.ex:109 #, elixir-format msgid "Kocaptcha service unavailable" -msgstr "" +msgstr "Kocaptcha service niet beschikbaar" #: lib/pleroma/web/mastodon_api/controllers/account_controller.ex:113 #, elixir-format msgid "Missing parameters" -msgstr "" +msgstr "Ontbrekende parameters" #: lib/pleroma/web/common_api/utils.ex:540 #, elixir-format msgid "No such conversation" -msgstr "" +msgstr "Gesprek niet gevonden" #: lib/pleroma/web/admin_api/admin_api_controller.ex:439 #: lib/pleroma/web/admin_api/admin_api_controller.ex:465 lib/pleroma/web/admin_api/admin_api_controller.ex:507 #, elixir-format msgid "No such permission_group" -msgstr "" +msgstr "Permission_group niet gevonden" #: lib/pleroma/plugs/uploaded_media.ex:74 #: lib/pleroma/web/activity_pub/activity_pub_controller.ex:485 lib/pleroma/web/admin_api/admin_api_controller.ex:1135 #: lib/pleroma/web/feed/user_controller.ex:73 lib/pleroma/web/ostatus/ostatus_controller.ex:143 #, elixir-format msgid "Not found" -msgstr "" +msgstr "Niet gevonden" #: lib/pleroma/web/common_api/common_api.ex:241 #, elixir-format msgid "Poll's author can't vote" -msgstr "" +msgstr "De peiling-auteur kan niet stemmen" #: lib/pleroma/web/mastodon_api/controllers/fallback_controller.ex:20 #: lib/pleroma/web/mastodon_api/controllers/poll_controller.ex:37 lib/pleroma/web/mastodon_api/controllers/poll_controller.ex:49 @@ -288,215 +288,215 @@ msgstr "" #: lib/pleroma/web/mastodon_api/controllers/subscription_controller.ex:71 #, elixir-format msgid "Record not found" -msgstr "" +msgstr "Record niet gevonden" #: lib/pleroma/web/admin_api/admin_api_controller.ex:1153 #: lib/pleroma/web/feed/user_controller.ex:79 lib/pleroma/web/mastodon_api/controllers/fallback_controller.ex:32 #: lib/pleroma/web/ostatus/ostatus_controller.ex:149 #, elixir-format msgid "Something went wrong" -msgstr "" +msgstr "Er is iets misgegaan" #: lib/pleroma/web/common_api/activity_draft.ex:107 #, elixir-format msgid "The message visibility must be direct" -msgstr "" +msgstr "De zichtbaarheid van het bericht dient privé te zijn" #: lib/pleroma/web/common_api/utils.ex:566 #, elixir-format msgid "The status is over the character limit" -msgstr "" +msgstr "Het bericht is langer dan het karakter-limiet" #: lib/pleroma/plugs/ensure_public_or_authenticated_plug.ex:31 #, elixir-format msgid "This resource requires authentication." -msgstr "" +msgstr "Deze gegevens vereisen authenticatie." #: lib/pleroma/plugs/rate_limiter/rate_limiter.ex:206 #, elixir-format msgid "Throttled" -msgstr "" +msgstr "Geremd" #: lib/pleroma/web/common_api/common_api.ex:266 #, elixir-format msgid "Too many choices" -msgstr "" +msgstr "Teveel keuzes" #: lib/pleroma/web/activity_pub/activity_pub_controller.ex:442 #, elixir-format msgid "Unhandled activity type" -msgstr "" +msgstr "Niet-ondersteund activiteits-type" #: lib/pleroma/web/admin_api/admin_api_controller.ex:536 #, elixir-format msgid "You can't revoke your own admin status." -msgstr "" +msgstr "Je kan je eigen beheerdersrechten niet intrekken." #: lib/pleroma/web/oauth/oauth_controller.ex:218 #: lib/pleroma/web/oauth/oauth_controller.ex:309 #, elixir-format msgid "Your account is currently disabled" -msgstr "" +msgstr "Je account is momenteel uitgeschakeld" #: lib/pleroma/web/oauth/oauth_controller.ex:180 #: lib/pleroma/web/oauth/oauth_controller.ex:332 #, elixir-format msgid "Your login is missing a confirmed e-mail address" -msgstr "" +msgstr "Je login bevat geen bevestigd e-mailadres" #: lib/pleroma/web/activity_pub/activity_pub_controller.ex:389 #, elixir-format msgid "can't read inbox of %{nickname} as %{as_nickname}" -msgstr "" +msgstr "kan de inbox van %{nickname} niet lezen als %{as_nickname}" #: lib/pleroma/web/activity_pub/activity_pub_controller.ex:472 #, elixir-format msgid "can't update outbox of %{nickname} as %{as_nickname}" -msgstr "" +msgstr "kan de outbox van %{nickname} niet bijwerken als %{as_nickname}" #: lib/pleroma/web/common_api/common_api.ex:388 #, elixir-format msgid "conversation is already muted" -msgstr "" +msgstr "gesprek is al genegeerd" #: lib/pleroma/web/activity_pub/activity_pub_controller.ex:316 #: lib/pleroma/web/activity_pub/activity_pub_controller.ex:491 #, elixir-format msgid "error" -msgstr "" +msgstr "fout" #: lib/pleroma/web/pleroma_api/controllers/mascot_controller.ex:29 #, elixir-format msgid "mascots can only be images" -msgstr "" +msgstr "mascottes kunnen alleen afbeeldingen zijn" #: lib/pleroma/web/activity_pub/activity_pub_controller.ex:60 #, elixir-format msgid "not found" -msgstr "" +msgstr "niet gevonden" #: lib/pleroma/web/oauth/oauth_controller.ex:395 #, elixir-format msgid "Bad OAuth request." -msgstr "" +msgstr "Ongeldig OAuth request." #: lib/pleroma/web/twitter_api/twitter_api.ex:115 #, elixir-format msgid "CAPTCHA already used" -msgstr "" +msgstr "CAPTCHA is al gebruikt" #: lib/pleroma/web/twitter_api/twitter_api.ex:112 #, elixir-format msgid "CAPTCHA expired" -msgstr "" +msgstr "CAPTCHA is verlopen" #: lib/pleroma/plugs/uploaded_media.ex:55 #, elixir-format msgid "Failed" -msgstr "" +msgstr "Mislukt" #: lib/pleroma/web/oauth/oauth_controller.ex:411 #, elixir-format msgid "Failed to authenticate: %{message}." -msgstr "" +msgstr "Authenticatie mislukt: %{message}." #: lib/pleroma/web/oauth/oauth_controller.ex:442 #, elixir-format msgid "Failed to set up user account." -msgstr "" +msgstr "Aanmaken van gebruikersaccount is mislukt." #: lib/pleroma/plugs/oauth_scopes_plug.ex:38 #, elixir-format msgid "Insufficient permissions: %{permissions}." -msgstr "" +msgstr "Niet voldoende rechten: %{permissions}." #: lib/pleroma/plugs/uploaded_media.ex:94 #, elixir-format msgid "Internal Error" -msgstr "" +msgstr "Interne Fout" #: lib/pleroma/web/oauth/fallback_controller.ex:22 #: lib/pleroma/web/oauth/fallback_controller.ex:29 #, elixir-format msgid "Invalid Username/Password" -msgstr "" +msgstr "Ongeldige Gebruikersnaam/Wachtwoord" #: lib/pleroma/web/twitter_api/twitter_api.ex:118 #, elixir-format msgid "Invalid answer data" -msgstr "" +msgstr "Ongeldig antwoord" #: lib/pleroma/web/nodeinfo/nodeinfo_controller.ex:128 #, elixir-format msgid "Nodeinfo schema version not handled" -msgstr "" +msgstr "Nodeinfo schema wordt niet ondersteund" #: lib/pleroma/web/oauth/oauth_controller.ex:169 #, elixir-format msgid "This action is outside the authorized scopes" -msgstr "" +msgstr "Deze actie bevindt zich buiten de gemachtigde scopes" #: lib/pleroma/web/oauth/fallback_controller.ex:14 #, elixir-format msgid "Unknown error, please check the details and try again." -msgstr "" +msgstr "Onbekende fout, controleer a.u.b. de details en probeer het opnieuw." #: lib/pleroma/web/oauth/oauth_controller.ex:116 #: lib/pleroma/web/oauth/oauth_controller.ex:155 #, elixir-format msgid "Unlisted redirect_uri." -msgstr "" +msgstr "Niet-vermelde redirect_uri." #: lib/pleroma/web/oauth/oauth_controller.ex:391 #, elixir-format msgid "Unsupported OAuth provider: %{provider}." -msgstr "" +msgstr "Niet ondersteunde OAuth provider: %{provider}." #: lib/pleroma/uploaders/uploader.ex:72 #, elixir-format msgid "Uploader callback timeout" -msgstr "" +msgstr "Uploader terugkoppeling timeout" #: lib/pleroma/web/uploader_controller.ex:23 #, elixir-format msgid "bad request" -msgstr "" +msgstr "ongeldig request" #: lib/pleroma/web/twitter_api/twitter_api.ex:103 #, elixir-format msgid "CAPTCHA Error" -msgstr "" +msgstr "CAPTCHA Fout" #: lib/pleroma/web/common_api/common_api.ex:200 #, elixir-format msgid "Could not add reaction emoji" -msgstr "" +msgstr "Reactie-emoji toevoegen mislukt" #: lib/pleroma/web/common_api/common_api.ex:211 #, elixir-format msgid "Could not remove reaction emoji" -msgstr "" +msgstr "Reactie-emoji verwijderen mislukt" #: lib/pleroma/web/twitter_api/twitter_api.ex:129 #, elixir-format msgid "Invalid CAPTCHA (Missing parameter: %{name})" -msgstr "" +msgstr "Ongeldige CAPTCHA (Ontbrekende parameter: %{name})" #: lib/pleroma/web/mastodon_api/controllers/list_controller.ex:92 #, elixir-format msgid "List not found" -msgstr "" +msgstr "Lijst niet gevonden" #: lib/pleroma/web/mastodon_api/controllers/account_controller.ex:124 #, elixir-format msgid "Missing parameter: %{name}" -msgstr "" +msgstr "Ontbrekende parameter: %{name}" #: lib/pleroma/web/oauth/oauth_controller.ex:207 #: lib/pleroma/web/oauth/oauth_controller.ex:322 #, elixir-format msgid "Password reset is required" -msgstr "" +msgstr "Wachtwoordherstel is vereist" #: lib/pleroma/tests/auth_test_controller.ex:9 #: lib/pleroma/web/activity_pub/activity_pub_controller.ex:6 lib/pleroma/web/admin_api/admin_api_controller.ex:6 @@ -528,53 +528,63 @@ msgstr "" #, elixir-format msgid "Security violation: OAuth scopes check was neither handled nor explicitly skipped." msgstr "" +"Schending van beveiliging: OAuth scope-controle is niet uitgevoerd en niet " +"expliciet overgeslagen." #: lib/pleroma/plugs/ensure_authenticated_plug.ex:28 #, elixir-format msgid "Two-factor authentication enabled, you must use a access token." msgstr "" +"Tweefactor authenticatie is ingeschakeld, een toegangssleutel is verplicht." #: lib/pleroma/web/pleroma_api/controllers/emoji_api_controller.ex:210 #, elixir-format msgid "Unexpected error occurred while adding file to pack." msgstr "" +"Er is een onverwachte fout opgetreden tijdens het toevoegen van het bestand." #: lib/pleroma/web/pleroma_api/controllers/emoji_api_controller.ex:138 #, elixir-format msgid "Unexpected error occurred while creating pack." msgstr "" +"Er is een onverwachte fout opgetreden tijdens het aanmaken van het pakket." #: lib/pleroma/web/pleroma_api/controllers/emoji_api_controller.ex:278 #, elixir-format msgid "Unexpected error occurred while removing file from pack." msgstr "" +"Er is een onverwachte fout opgetreden tijdens het verwijderen van het " +"bestand." #: lib/pleroma/web/pleroma_api/controllers/emoji_api_controller.ex:250 #, elixir-format msgid "Unexpected error occurred while updating file in pack." msgstr "" +"Er is een onverwachte fout opgetreden tijdens het bijwerken van het bestand." #: lib/pleroma/web/pleroma_api/controllers/emoji_api_controller.ex:179 #, elixir-format msgid "Unexpected error occurred while updating pack metadata." msgstr "" +"Er is een onverwachte fout opgetreden tijdens het bijwerken van de pakket-" +"metadata." #: lib/pleroma/plugs/user_is_admin_plug.ex:21 #, elixir-format msgid "User is not an admin." -msgstr "" +msgstr "Gebruiker is niet een beheerder." #: lib/pleroma/web/mastodon_api/controllers/subscription_controller.ex:61 #, elixir-format msgid "Web push subscription is disabled on this Pleroma instance" -msgstr "" +msgstr "Web push abbonement is uitgeschakeld op deze Pleroma instantie" #: lib/pleroma/web/admin_api/admin_api_controller.ex:502 #, elixir-format msgid "You can't revoke your own admin/moderator status." -msgstr "" +msgstr "Je kan je eigen beheerders- of moderatorrechten niet intrekken." #: lib/pleroma/web/mastodon_api/controllers/timeline_controller.ex:105 #, elixir-format msgid "authorization required for timeline view" -msgstr "" +msgstr "machtiging is vereist voor de tijdlijn weergave" diff --git a/priv/gettext/nl/LC_MESSAGES/posix_errors.po b/priv/gettext/nl/LC_MESSAGES/posix_errors.po new file mode 100644 index 000000000..cdb1f532f --- /dev/null +++ b/priv/gettext/nl/LC_MESSAGES/posix_errors.po @@ -0,0 +1,165 @@ +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2022-08-13 13:32+0300\n" +"PO-Revision-Date: 2022-08-14 11:04+0000\n" +"Last-Translator: Fristi \n" +"Language-Team: Dutch \n" +"Language: nl\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Generator: Weblate 4.13.1\n" + +## This file is a PO Template file. +## +## `msgid`s here are often extracted from source code. +## Add new translations manually only if they're dynamic +## translations that can't be statically extracted. +## +## Run `mix gettext.extract` to bring this file up to +## date. Leave `msgstr`s empty as changing them here as no +## effect: edit them in PO (`.po`) files instead. +msgid "eperm" +msgstr "Uitvoering niet toegestaan" + +msgid "eacces" +msgstr "Toegang geweigerd" + +msgid "eagain" +msgstr "Resource tijdelijk niet beschikbaar" + +msgid "ebadf" +msgstr "Ongeldige file descriptor" + +msgid "ebadmsg" +msgstr "Ongeldig bericht" + +msgid "ebusy" +msgstr "Apparaat of resource bezet" + +msgid "edeadlk" +msgstr "Resource deadlock vermeden" + +msgid "edeadlock" +msgstr "Resource deadlock vermeden" + +msgid "edquot" +msgstr "Schijf-quota overschreden" + +msgid "eexist" +msgstr "Bestand bestaat" + +msgid "efault" +msgstr "Ongeldig adres" + +msgid "efbig" +msgstr "Bestand is te groot" + +msgid "eftype" +msgstr "Ongepast bestands-type of formaat" + +msgid "eintr" +msgstr "Onderbroken systeem aanroep" + +msgid "einval" +msgstr "Ongeldig argument" + +msgid "eio" +msgstr "Input/output fout" + +msgid "eisdir" +msgstr "Illegale bewerking op een directory" + +msgid "eloop" +msgstr "Te veel niveau's van symbolische koppelingen" + +msgid "emfile" +msgstr "Te veel geopende bestanden" + +msgid "emlink" +msgstr "Te veel koppelingen" + +msgid "emultihop" +msgstr "Multihop geprobeerd" + +msgid "enametoolong" +msgstr "Bestandsnaam is te lang" + +msgid "enfile" +msgstr "Te veel geopende bestanden in systeem" + +msgid "enobufs" +msgstr "Geen buffer-ruimte beschikbaar" + +msgid "enodev" +msgstr "Apparaat bestaat niet" + +msgid "enolck" +msgstr "Geen sloten beschikbaar" + +msgid "enolink" +msgstr "Koppeling is ongedaan gemaakt" + +msgid "enoent" +msgstr "Bestand of directory bestaat niet" + +msgid "enomem" +msgstr "Geheugen kon niet toegewezen worden" + +msgid "enospc" +msgstr "Geen ruimte over op apparaat" + +msgid "enosr" +msgstr "" + +msgid "enostr" +msgstr "" + +msgid "enosys" +msgstr "" + +msgid "enotblk" +msgstr "" + +msgid "enotdir" +msgstr "" + +msgid "enotsup" +msgstr "" + +msgid "enxio" +msgstr "" + +msgid "eopnotsupp" +msgstr "" + +msgid "eoverflow" +msgstr "" + +msgid "epipe" +msgstr "" + +msgid "erange" +msgstr "" + +msgid "erofs" +msgstr "" + +msgid "espipe" +msgstr "" + +msgid "esrch" +msgstr "" + +msgid "estale" +msgstr "" + +msgid "etxtbsy" +msgstr "" + +msgid "exdev" +msgstr "" diff --git a/priv/gettext/nl/LC_MESSAGES/static_pages.po b/priv/gettext/nl/LC_MESSAGES/static_pages.po new file mode 100644 index 000000000..2972384fc --- /dev/null +++ b/priv/gettext/nl/LC_MESSAGES/static_pages.po @@ -0,0 +1,567 @@ +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2022-08-13 13:24+0300\n" +"PO-Revision-Date: 2022-08-14 11:04+0000\n" +"Last-Translator: Fristi \n" +"Language-Team: Dutch \n" +"Language: nl\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Generator: Weblate 4.13.1\n" + +## This file is a PO Template file. +## +## "msgid"s here are often extracted from source code. +## Add new translations manually only if they're dynamic +## translations that can't be statically extracted. +## +## Run "mix gettext.extract" to bring this file up to +## date. Leave "msgstr"s empty as changing them here as no +## effect: edit them in PO (.po) files instead. +#: lib/pleroma/web/templates/twitter_api/remote_follow/follow.html.eex:9 +#, elixir-autogen, elixir-format +msgctxt "remote follow authorization button" +msgid "Authorize" +msgstr "Machtigen" + +#: lib/pleroma/web/templates/twitter_api/remote_follow/follow.html.eex:2 +#, elixir-autogen, elixir-format +msgctxt "remote follow error" +msgid "Error fetching user" +msgstr "Fout bij ophalen gebruiker" + +#: lib/pleroma/web/templates/twitter_api/remote_follow/follow.html.eex:4 +#, elixir-autogen, elixir-format +msgctxt "remote follow header" +msgid "Remote follow" +msgstr "Extern volgen" + +#: lib/pleroma/web/templates/twitter_api/remote_follow/follow_mfa.html.eex:8 +#, elixir-autogen, elixir-format +msgctxt "placeholder text for auth code entry" +msgid "Authentication code" +msgstr "Authenticatiecode" + +#: lib/pleroma/web/templates/twitter_api/remote_follow/follow_login.html.eex:10 +#, elixir-autogen, elixir-format +msgctxt "placeholder text for password entry" +msgid "Password" +msgstr "Wachtwoord" + +#: lib/pleroma/web/templates/twitter_api/remote_follow/follow_login.html.eex:8 +#, elixir-autogen, elixir-format +msgctxt "placeholder text for username entry" +msgid "Username" +msgstr "Gebruikersnaam" + +#: lib/pleroma/web/templates/twitter_api/remote_follow/follow_login.html.eex:13 +#, elixir-autogen, elixir-format +msgctxt "remote follow authorization button for login" +msgid "Authorize" +msgstr "Machtigen" + +#: lib/pleroma/web/templates/twitter_api/remote_follow/follow_mfa.html.eex:12 +#, elixir-autogen, elixir-format +msgctxt "remote follow authorization button for mfa" +msgid "Authorize" +msgstr "Machtigen" + +#: lib/pleroma/web/templates/twitter_api/remote_follow/followed.html.eex:2 +#, elixir-autogen, elixir-format +msgctxt "remote follow error" +msgid "Error following account" +msgstr "Fout bij volgen van account" + +#: lib/pleroma/web/templates/twitter_api/remote_follow/follow_login.html.eex:4 +#, elixir-autogen, elixir-format +msgctxt "remote follow header, need login" +msgid "Log in to follow" +msgstr "Log in om te volgen" + +#: lib/pleroma/web/templates/twitter_api/remote_follow/follow_mfa.html.eex:4 +#, elixir-autogen, elixir-format +msgctxt "remote follow mfa header" +msgid "Two-factor authentication" +msgstr "Tweefactor authenticatie" + +#: lib/pleroma/web/templates/twitter_api/remote_follow/followed.html.eex:4 +#, elixir-autogen, elixir-format +msgctxt "remote follow success" +msgid "Account followed!" +msgstr "Account gevolgd!" + +#: lib/pleroma/web/templates/twitter_api/util/subscribe.html.eex:7 +#, elixir-autogen, elixir-format +msgctxt "placeholder text for account id" +msgid "Your account ID, e.g. lain@quitter.se" +msgstr "Je account ID, b.v. gebruiker@instantie.net" + +#: lib/pleroma/web/templates/twitter_api/util/subscribe.html.eex:8 +#, elixir-autogen, elixir-format +msgctxt "remote follow authorization button for following with a remote account" +msgid "Follow" +msgstr "Volgen" + +#: lib/pleroma/web/templates/twitter_api/util/subscribe.html.eex:2 +#, elixir-autogen, elixir-format +msgctxt "remote follow error" +msgid "Error: %{error}" +msgstr "Fout: %{error}" + +#: lib/pleroma/web/templates/twitter_api/util/subscribe.html.eex:4 +#, elixir-autogen, elixir-format +msgctxt "remote follow header" +msgid "Remotely follow %{nickname}" +msgstr "%{nickname} extern volgen" + +#: lib/pleroma/web/templates/twitter_api/password/reset.html.eex:12 +#, elixir-autogen, elixir-format +msgctxt "password reset button" +msgid "Reset" +msgstr "Herstellen" + +#: lib/pleroma/web/templates/twitter_api/password/reset_failed.html.eex:4 +#, elixir-autogen, elixir-format +msgctxt "password reset failed homepage link" +msgid "Homepage" +msgstr "Homepagina" + +#: lib/pleroma/web/templates/twitter_api/password/reset_failed.html.eex:1 +#, elixir-autogen, elixir-format +msgctxt "password reset failed message" +msgid "Password reset failed" +msgstr "Wachtwoordherstel mislukt" + +#: lib/pleroma/web/templates/twitter_api/password/reset.html.eex:8 +#, elixir-autogen, elixir-format +msgctxt "password reset form confirm password prompt" +msgid "Confirmation" +msgstr "Bevestiging" + +#: lib/pleroma/web/templates/twitter_api/password/reset.html.eex:4 +#, elixir-autogen, elixir-format +msgctxt "password reset form password prompt" +msgid "Password" +msgstr "Wachtwoord" + +#: lib/pleroma/web/templates/twitter_api/password/invalid_token.html.eex:1 +#, elixir-autogen, elixir-format +msgctxt "password reset invalid token message" +msgid "Invalid Token" +msgstr "Ongeldige Token" + +#: lib/pleroma/web/templates/twitter_api/password/reset_success.html.eex:2 +#, elixir-autogen, elixir-format +msgctxt "password reset successful homepage link" +msgid "Homepage" +msgstr "Homepagina" + +#: lib/pleroma/web/templates/twitter_api/password/reset_success.html.eex:1 +#, elixir-autogen, elixir-format +msgctxt "password reset successful message" +msgid "Password changed!" +msgstr "Wachtwoord gewijzigd!" + +#: lib/pleroma/web/templates/feed/feed/tag.atom.eex:15 +#: lib/pleroma/web/templates/feed/feed/tag.rss.eex:7 +#, elixir-autogen, elixir-format +msgctxt "tag feed description" +msgid "These are public toots tagged with #%{tag}. You can interact with them if you have an account anywhere in the fediverse." +msgstr "" +"Dit zijn openbare berichten die getagd zijn met #%{tag}. Je kunt op deze " +"reageren indien je een account hebt in de fediverse." + +#: lib/pleroma/web/templates/o_auth/o_auth/oob_token_exists.html.eex:1 +#, elixir-autogen, elixir-format +msgctxt "oauth authorization exists page title" +msgid "Authorization exists" +msgstr "Machtiging bestaat" + +#: lib/pleroma/web/templates/o_auth/o_auth/show.html.eex:32 +#, elixir-autogen, elixir-format +msgctxt "oauth authorize approve button" +msgid "Approve" +msgstr "Goedkeuren" + +#: lib/pleroma/web/templates/o_auth/o_auth/show.html.eex:30 +#, elixir-autogen, elixir-format +msgctxt "oauth authorize cancel button" +msgid "Cancel" +msgstr "Annuleren" + +#: lib/pleroma/web/templates/o_auth/o_auth/show.html.eex:23 +#, elixir-autogen, elixir-format +msgctxt "oauth authorize message" +msgid "Application %{client_name} is requesting access to your account." +msgstr "" +"Applicatie %{client_name} vraagt om toegang tot je account." + +#: lib/pleroma/web/templates/o_auth/o_auth/oob_authorization_created.html.eex:1 +#, elixir-autogen, elixir-format +msgctxt "oauth authorized page title" +msgid "Successfully authorized" +msgstr "Machtiging is geslaagd" + +#: lib/pleroma/web/templates/o_auth/o_auth/consumer.html.eex:1 +#, elixir-autogen, elixir-format +msgctxt "oauth external provider page title" +msgid "Sign in with external provider" +msgstr "Inloggen bij externe provider" + +#: lib/pleroma/web/templates/o_auth/o_auth/consumer.html.eex:13 +#, elixir-autogen, elixir-format +msgctxt "oauth external provider sign in button" +msgid "Sign in with %{strategy}" +msgstr "Inloggen met %{strategy}" + +#: lib/pleroma/web/templates/o_auth/o_auth/show.html.eex:54 +#, elixir-autogen, elixir-format +msgctxt "oauth login button" +msgid "Log In" +msgstr "Inloggen" + +#: lib/pleroma/web/templates/o_auth/o_auth/show.html.eex:51 +#, elixir-autogen, elixir-format +msgctxt "oauth login password prompt" +msgid "Password" +msgstr "Wachtwoord" + +#: lib/pleroma/web/templates/o_auth/o_auth/show.html.eex:47 +#, elixir-autogen, elixir-format +msgctxt "oauth login username prompt" +msgid "Username" +msgstr "Gebruikersnaam" + +#: lib/pleroma/web/templates/o_auth/o_auth/show.html.eex:39 +#, elixir-autogen, elixir-format +msgctxt "oauth register nickname prompt" +msgid "Pleroma Handle" +msgstr "Pleroma Gebruiker" + +#: lib/pleroma/web/templates/o_auth/o_auth/show.html.eex:37 +#, elixir-autogen, elixir-format +msgctxt "oauth register nickname unchangeable warning" +msgid "Choose carefully! You won't be able to change this later. You will be able to change your display name, though." +msgstr "" +"Let op! Je kunt je accountnaam hierna niet meer wijzigen. Je kunt echter wel " +"nog je weergavenaam wijzigen." + +#: lib/pleroma/web/templates/o_auth/o_auth/register.html.eex:18 +#, elixir-autogen, elixir-format +msgctxt "oauth register page email prompt" +msgid "Email" +msgstr "E-mail" + +#: lib/pleroma/web/templates/o_auth/o_auth/register.html.eex:10 +#, elixir-autogen, elixir-format +msgctxt "oauth register page fill form prompt" +msgid "If you'd like to register a new account, please provide the details below." +msgstr "" +"Indien je graag een nieuw account wilt registreren, vul dan a.u.b de " +"onderstaande details in." + +#: lib/pleroma/web/templates/o_auth/o_auth/register.html.eex:35 +#, elixir-autogen, elixir-format +msgctxt "oauth register page login button" +msgid "Proceed as existing user" +msgstr "Doorgaan als bestaande gebruiker" + +#: lib/pleroma/web/templates/o_auth/o_auth/register.html.eex:31 +#, elixir-autogen, elixir-format +msgctxt "oauth register page login password prompt" +msgid "Password" +msgstr "Wachtwoord" + +#: lib/pleroma/web/templates/o_auth/o_auth/register.html.eex:24 +#, elixir-autogen, elixir-format +msgctxt "oauth register page login prompt" +msgid "Alternatively, sign in to connect to existing account." +msgstr "Alternatief, log in om te verbinden met een bestaand account." + +#: lib/pleroma/web/templates/o_auth/o_auth/register.html.eex:27 +#, elixir-autogen, elixir-format +msgctxt "oauth register page login username prompt" +msgid "Name or email" +msgstr "Naam of e-mail" + +#: lib/pleroma/web/templates/o_auth/o_auth/register.html.eex:14 +#, elixir-autogen, elixir-format +msgctxt "oauth register page nickname prompt" +msgid "Nickname" +msgstr "Weergavenaam" + +#: lib/pleroma/web/templates/o_auth/o_auth/register.html.eex:22 +#, elixir-autogen, elixir-format +msgctxt "oauth register page register button" +msgid "Proceed as new user" +msgstr "Doorgaan als nieuwe gebruiker" + +#: lib/pleroma/web/templates/o_auth/o_auth/register.html.eex:8 +#, elixir-autogen, elixir-format +msgctxt "oauth register page title" +msgid "Registration Details" +msgstr "Registratiegegevens" + +#: lib/pleroma/web/templates/o_auth/o_auth/show.html.eex:36 +#, elixir-autogen, elixir-format +msgctxt "oauth register page title" +msgid "This is the first time you visit! Please enter your Pleroma handle." +msgstr "Dit is je eerste bezoek! Vul a.u.b. je Pleroma gebruikersnaam in." + +#: lib/pleroma/web/templates/o_auth/o_auth/_scopes.html.eex:2 +#, elixir-autogen, elixir-format +msgctxt "oauth scopes message" +msgid "The following permissions will be granted" +msgstr "De volgende rechten zullen worden toegekend" + +#: lib/pleroma/web/templates/o_auth/o_auth/oob_authorization_created.html.eex:2 +#: lib/pleroma/web/templates/o_auth/o_auth/oob_token_exists.html.eex:2 +#, elixir-autogen, elixir-format +msgctxt "oauth token code message" +msgid "Token code is
%{token}" +msgstr "Token code is
%{token}" + +#: lib/pleroma/web/templates/o_auth/mfa/totp.html.eex:12 +#, elixir-autogen, elixir-format +msgctxt "mfa auth code prompt" +msgid "Authentication code" +msgstr "Authenticatiecode" + +#: lib/pleroma/web/templates/o_auth/mfa/totp.html.eex:8 +#, elixir-autogen, elixir-format +msgctxt "mfa auth page title" +msgid "Two-factor authentication" +msgstr "Tweefactor authenticatie" + +#: lib/pleroma/web/templates/o_auth/mfa/totp.html.eex:23 +#, elixir-autogen, elixir-format +msgctxt "mfa auth page use recovery code link" +msgid "Enter a two-factor recovery code" +msgstr "Voer een tweefactor herstelcode in" + +#: lib/pleroma/web/templates/o_auth/mfa/totp.html.eex:20 +#, elixir-autogen, elixir-format +msgctxt "mfa auth verify code button" +msgid "Verify" +msgstr "Controleren" + +#: lib/pleroma/web/templates/o_auth/mfa/recovery.html.eex:8 +#, elixir-autogen, elixir-format +msgctxt "mfa recover page title" +msgid "Two-factor recovery" +msgstr "Tweefactor herstel" + +#: lib/pleroma/web/templates/o_auth/mfa/recovery.html.eex:12 +#, elixir-autogen, elixir-format +msgctxt "mfa recover recovery code prompt" +msgid "Recovery code" +msgstr "Herstelcode" + +#: lib/pleroma/web/templates/o_auth/mfa/recovery.html.eex:23 +#, elixir-autogen, elixir-format +msgctxt "mfa recover use 2fa code link" +msgid "Enter a two-factor code" +msgstr "Voer een tweefactor code in" + +#: lib/pleroma/web/templates/o_auth/mfa/recovery.html.eex:20 +#, elixir-autogen, elixir-format +msgctxt "mfa recover verify recovery code button" +msgid "Verify" +msgstr "Controleren" + +#: lib/pleroma/web/templates/static_fe/static_fe/profile.html.eex:8 +#, elixir-autogen, elixir-format +msgctxt "static fe profile page remote follow button" +msgid "Remote follow" +msgstr "Extern volgen" + +#: lib/pleroma/web/templates/email/digest.html.eex:163 +#, elixir-autogen, elixir-format +msgctxt "digest email header line" +msgid "Hey %{nickname}, here is what you've missed!" +msgstr "Hoi %{nickname}, dit is wat je hebt gemist!" + +#: lib/pleroma/web/templates/email/digest.html.eex:544 +#, elixir-autogen, elixir-format +msgctxt "digest email receiver address" +msgid "The email address you are subscribed as is %{email}. " +msgstr "" +"Het e-mailadres waarmee je bent ingeschreven is %{email}. " + +#: lib/pleroma/web/templates/email/digest.html.eex:538 +#, elixir-autogen, elixir-format +msgctxt "digest email sending reason" +msgid "You have received this email because you have signed up to receive digest emails from %{instance} Pleroma instance." +msgstr "" +"Je ontvangt deze e-mail omdat je bent ingeschreven voor overzichts-mails te " +"ontvangen van %{instance} Pleroma instantie." + +#: lib/pleroma/web/templates/email/digest.html.eex:547 +#, elixir-autogen, elixir-format +msgctxt "digest email unsubscribe action" +msgid "To unsubscribe, please go %{here}." +msgstr "Je kunt je %{here} uitschrijven voor deze e-mails." + +#: lib/pleroma/web/templates/email/digest.html.eex:547 +#, elixir-autogen, elixir-format +msgctxt "digest email unsubscribe action link text" +msgid "here" +msgstr "hier" + +#: lib/pleroma/web/templates/mailer/subscription/unsubscribe_failure.html.eex:1 +#, elixir-autogen, elixir-format +msgctxt "mailer unsubscribe failed message" +msgid "UNSUBSCRIBE FAILURE" +msgstr "UITSCHRIJVEN MISLUKT" + +#: lib/pleroma/web/templates/mailer/subscription/unsubscribe_success.html.eex:1 +#, elixir-autogen, elixir-format +msgctxt "mailer unsubscribe successful message" +msgid "UNSUBSCRIBE SUCCESSFUL" +msgstr "UITSCHRIJVEN GESLAAGD" + +#: lib/pleroma/web/templates/email/digest.html.eex:385 +#, elixir-format +msgctxt "new followers count header" +msgid "%{count} New Follower" +msgid_plural "%{count} New Followers" +msgstr[0] "%{count} Nieuwe Volger" +msgstr[1] "%{count} Nieuwe Volgers" + +#: lib/pleroma/emails/user_email.ex:356 +#, elixir-autogen, elixir-format +msgctxt "account archive email body - self-requested" +msgid "

You requested a full backup of your Pleroma account. It's ready for download:

\n

%{download_url}

\n" +msgstr "" +"

Je hebt een verzoek ingediend voor een volledige back-up van je Pleroma " +"account. Deze is gereed om te downloaden:

\n" +"

%{download_url}

\n" + +#: lib/pleroma/emails/user_email.ex:384 +#, elixir-autogen, elixir-format +msgctxt "account archive email subject" +msgid "Your account archive is ready" +msgstr "Je account archief is gereed" + +#: lib/pleroma/emails/user_email.ex:188 +#, elixir-autogen, elixir-format +msgctxt "approval pending email body" +msgid "

Awaiting Approval

\n

Your account at %{instance_name} is being reviewed by staff. You will receive another email once your account is approved.

\n" +msgstr "" +"

Goedkeuring in afwachting

\n" +"

Je account bij %{instance_name} zal worden beoordeeld door de beheerders. " +"Je zult een opvolgende e-mail ontvangen wanneer je account goed gekeurd " +"is.

\n" + +#: lib/pleroma/emails/user_email.ex:202 +#, elixir-autogen, elixir-format +msgctxt "approval pending email subject" +msgid "Your account is awaiting approval" +msgstr "Je account is in afwachting van goedkeuring" + +#: lib/pleroma/emails/user_email.ex:158 +#, elixir-autogen, elixir-format +msgctxt "confirmation email body" +msgid "

Thank you for registering on %{instance_name}

\n

Email confirmation is required to activate the account.

\n

Please click the following link to activate your account.

\n" +msgstr "" +"

Bedankt voor het registreren bij %{instance_name}

\n" +"

Bevestiging via e-mail is vereist om je account te activeren.

\n" +"

Je kunt je account activeren door op deze " +"link te klikken.

\n" + +#: lib/pleroma/emails/user_email.ex:174 +#, elixir-autogen, elixir-format +msgctxt "confirmation email subject" +msgid "%{instance_name} account confirmation" +msgstr "%{instance_name} account bevestiging" + +#: lib/pleroma/emails/user_email.ex:310 +#, elixir-autogen, elixir-format +msgctxt "digest email subject" +msgid "Your digest from %{instance_name}" +msgstr "Je overzicht van %{instance_name}" + +#: lib/pleroma/emails/user_email.ex:81 +#, elixir-autogen, elixir-format +msgctxt "password reset email body" +msgid "

Reset your password at %{instance_name}

\n

Someone has requested password change for your account at %{instance_name}.

\n

If it was you, visit the following link to proceed: reset password.

\n

If it was someone else, nothing to worry about: your data is secure and your password has not been changed.

\n" +msgstr "" +"

Herstel je wachtwoord bij %{instance_name}

\n" +"

Iemand heeft een verzoek ingediend om het wachtwoord van je account bij " +"%{instance_name} te herstellen.

\n" +"

Als je dit zelf geweest bent, volg dan de volgende link om door te gaan: " +"wachtwoord herstellen.

\n" +"

Indien je dit niet geweest bent, hoef je geen verdere acties te " +"ondernemen: je gegevens zijn veilig en je wachtwoord is niet gewijzigd.

\n" + +#: lib/pleroma/emails/user_email.ex:98 +#, elixir-autogen, elixir-format +msgctxt "password reset email subject" +msgid "Password reset" +msgstr "Wachtwoord herstellen" + +#: lib/pleroma/emails/user_email.ex:215 +#, elixir-autogen, elixir-format +msgctxt "successful registration email body" +msgid "

Hello @%{nickname},

\n

Your account at %{instance_name} has been registered successfully.

\n

No further action is required to activate your account.

\n" +msgstr "" +"

Hoi @%{nickname},

\n" +"

Het registreren van je account bij %{instance_name} is gelukt.

\n" +"

Er zijn geen verdere stappen vereist om je account te activeren.

\n" + +#: lib/pleroma/emails/user_email.ex:231 +#, elixir-autogen, elixir-format +msgctxt "successful registration email subject" +msgid "Account registered on %{instance_name}" +msgstr "Account registratie bij %{instance_name}" + +#: lib/pleroma/emails/user_email.ex:119 +#, elixir-autogen, elixir-format +msgctxt "user invitation email body" +msgid "

You are invited to %{instance_name}

\n

%{inviter_name} invites you to join %{instance_name}, an instance of Pleroma federated social networking platform.

\n

Click the following link to register: accept invitation.

\n" +msgstr "" +"

Je bent uitgenodigd bij %{instance_name}

\n" +"

%{inviter_name} nodigt je uit om je te registreren bij %{instance_name}, " +"een instantie van het Pleroma gefedereerde sociale netwerk.

\n" +"

Om je te registreren, klink op de volgende link: uitnodiging accepteren.

\n" + +#: lib/pleroma/emails/user_email.ex:136 +#, elixir-autogen, elixir-format +msgctxt "user invitation email subject" +msgid "Invitation to %{instance_name}" +msgstr "Uitnodiging van %{instance_name}" + +#: lib/pleroma/emails/user_email.ex:53 +#, elixir-autogen, elixir-format +msgctxt "welcome email html body" +msgid "Welcome to %{instance_name}!" +msgstr "Welkom bij %{instance_name}!" + +#: lib/pleroma/emails/user_email.ex:41 +#, elixir-autogen, elixir-format +msgctxt "welcome email subject" +msgid "Welcome to %{instance_name}!" +msgstr "Welkom bij %{instance_name}!" + +#: lib/pleroma/emails/user_email.ex:65 +#, elixir-autogen, elixir-format +msgctxt "welcome email text body" +msgid "Welcome to %{instance_name}!" +msgstr "Welkom bij %{instance_name}!" + +#: lib/pleroma/emails/user_email.ex:368 +#, elixir-autogen, elixir-format +msgctxt "account archive email body - admin requested" +msgid "

Admin @%{admin_nickname} requested a full backup of your Pleroma account. It's ready for download:

\n

%{download_url}

\n" +msgstr "" +"

Beheerder @%{admin_nickname} heeft een verzoek ingediend voor een " +"volledige back-up van je Pleroma account. Deze is gereed om te " +"downloaden:

\n" +"

%{download_url}

\n" diff --git a/priv/gettext/pl/LC_MESSAGES/errors.po b/priv/gettext/pl/LC_MESSAGES/errors.po index 653ea00a1..4acb1b54b 100644 --- a/priv/gettext/pl/LC_MESSAGES/errors.po +++ b/priv/gettext/pl/LC_MESSAGES/errors.po @@ -3,8 +3,8 @@ msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2020-05-13 16:37+0000\n" -"PO-Revision-Date: 2020-07-09 14:40+0000\n" -"Last-Translator: Ben Is \n" +"PO-Revision-Date: 2021-08-15 08:45+0000\n" +"Last-Translator: marcin mikołajczak \n" "Language-Team: Polish \n" "Language: pl\n" @@ -13,7 +13,7 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 " "|| n%100>=20) ? 1 : 2;\n" -"X-Generator: Weblate 4.0.4\n" +"X-Generator: Weblate 4.6.2\n" ## This file is a PO Template file. ## @@ -68,49 +68,49 @@ msgstr[2] "powinno mieć %{count} znaków" msgid "should have %{count} item(s)" msgid_plural "should have %{count} item(s)" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" +msgstr[0] "powinno zawierać %{count} element" +msgstr[1] "powinno zawierać %{count} elementy" +msgstr[2] "powinno zawierać %{count} elementów" msgid "should be at least %{count} character(s)" msgid_plural "should be at least %{count} character(s)" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" +msgstr[0] "powinno zawierać przynajmniej %{count} znak" +msgstr[1] "powinno zawierać przynajmniej %{count} znaki" +msgstr[2] "powinno zawierać przynajmniej %{count} znaków" msgid "should have at least %{count} item(s)" msgid_plural "should have at least %{count} item(s)" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" +msgstr[0] "powinno zawierać przynajmniej %{count} element" +msgstr[1] "powinno zawierać przynajmniej %{count} elementy" +msgstr[2] "powinno zawierać przynajmniej %{count} elementów" msgid "should be at most %{count} character(s)" msgid_plural "should be at most %{count} character(s)" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" +msgstr[0] "powinno zawierać najwyżej %{count} znak" +msgstr[1] "powinno zawierać najwyżej %{count} znaki" +msgstr[2] "powinno zawierać najwyżej %{count} znaków" msgid "should have at most %{count} item(s)" msgid_plural "should have at most %{count} item(s)" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" +msgstr[0] "powinno zawierać najwyżej %{count} element" +msgstr[1] "powinno zawierać najwyżej %{count} elementy" +msgstr[2] "powinno zawierać najwyżej %{count} elementów" ## From Ecto.Changeset.validate_number/3 msgid "must be less than %{number}" -msgstr "" +msgstr "musi wynosić mniej niż %{number}" msgid "must be greater than %{number}" -msgstr "" +msgstr "musi wynosić więcej niż %{number}" msgid "must be less than or equal to %{number}" -msgstr "" +msgstr "musi być mniejsze lub równe %{number}" msgid "must be greater than or equal to %{number}" -msgstr "" +msgstr "musi być większe lub równe %{number}" msgid "must be equal to %{number}" -msgstr "" +msgstr "musi być równe %{number}" #: lib/pleroma/web/common_api/common_api.ex:421 #, elixir-format @@ -152,7 +152,7 @@ msgstr "Nie znaleziono użytkownika" #: lib/pleroma/web/pleroma_api/controllers/account_controller.ex:114 #, elixir-format msgid "Can't get favorites" -msgstr "" +msgstr "Nie można uzyskać ulubionych" #: lib/pleroma/web/activity_pub/activity_pub_controller.ex:437 #, elixir-format @@ -172,7 +172,7 @@ msgstr "Komentarz może mieć co najwyżej %{max_size} znaków" #: lib/pleroma/config/config_db.ex:222 #, elixir-format msgid "Config with params %{params} not found" -msgstr "" +msgstr "Nie znaleziono konfiguracji z parametrami %{params}" #: lib/pleroma/web/common_api/common_api.ex:95 #, elixir-format @@ -213,38 +213,38 @@ msgstr "Nie udało się cofnąć powtórzenia" #: lib/pleroma/web/common_api/common_api.ex:437 #, elixir-format msgid "Could not update state" -msgstr "" +msgstr "Nie można zaktualizować stanu" #: lib/pleroma/web/mastodon_api/controllers/timeline_controller.ex:202 #, elixir-format msgid "Error." -msgstr "" +msgstr "Błąd." #: lib/pleroma/web/twitter_api/twitter_api.ex:106 #, elixir-format msgid "Invalid CAPTCHA" -msgstr "" +msgstr "Niewłaściwa CAPTCHA" #: lib/pleroma/web/mastodon_api/controllers/account_controller.ex:117 #: lib/pleroma/web/oauth/oauth_controller.ex:569 #, elixir-format msgid "Invalid credentials" -msgstr "" +msgstr "Nieprawidłowe dane uwierzytelniania" #: lib/pleroma/plugs/ensure_authenticated_plug.ex:38 #, elixir-format msgid "Invalid credentials." -msgstr "" +msgstr "Nieprawidłowe dane uwierzytelniania." #: lib/pleroma/web/common_api/common_api.ex:265 #, elixir-format msgid "Invalid indices" -msgstr "" +msgstr "Nieprawidłowe indeksy" #: lib/pleroma/web/admin_api/admin_api_controller.ex:1147 #, elixir-format msgid "Invalid parameters" -msgstr "" +msgstr "Nieprawidłowe parametry" #: lib/pleroma/web/common_api/utils.ex:411 #, elixir-format @@ -307,7 +307,7 @@ msgstr "Coś się zepsuło" #: lib/pleroma/web/common_api/activity_draft.ex:107 #, elixir-format msgid "The message visibility must be direct" -msgstr "" +msgstr "Widoczność wiadomości musi być „Bezpośrednia”" #: lib/pleroma/web/common_api/utils.ex:566 #, elixir-format @@ -317,17 +317,17 @@ msgstr "Ten status przekracza limit znaków" #: lib/pleroma/plugs/ensure_public_or_authenticated_plug.ex:31 #, elixir-format msgid "This resource requires authentication." -msgstr "" +msgstr "Ten zasób wymaga uwierzytelnienia." #: lib/pleroma/plugs/rate_limiter/rate_limiter.ex:206 #, elixir-format msgid "Throttled" -msgstr "" +msgstr "Ograniczono" #: lib/pleroma/web/common_api/common_api.ex:266 #, elixir-format msgid "Too many choices" -msgstr "" +msgstr "Zbyt wiele wyborów" #: lib/pleroma/web/activity_pub/activity_pub_controller.ex:442 #, elixir-format @@ -349,17 +349,18 @@ msgstr "Twoje konto jest obecnie nieaktywne" #: lib/pleroma/web/oauth/oauth_controller.ex:332 #, elixir-format msgid "Your login is missing a confirmed e-mail address" -msgstr "" +msgstr "Twój adres e-mail nie został potwierdzony" #: lib/pleroma/web/activity_pub/activity_pub_controller.ex:389 #, elixir-format msgid "can't read inbox of %{nickname} as %{as_nickname}" -msgstr "" +msgstr "Nie można odczytać skrzynki odbiorczej %{nickname} jako %{as_nickname}" #: lib/pleroma/web/activity_pub/activity_pub_controller.ex:472 #, elixir-format msgid "can't update outbox of %{nickname} as %{as_nickname}" msgstr "" +"Nie można zaktualizować skrzynki nadawczcej %{nickname} jako %{as_nickname}" #: lib/pleroma/web/common_api/common_api.ex:388 #, elixir-format @@ -405,12 +406,12 @@ msgstr "Nie udało się" #: lib/pleroma/web/oauth/oauth_controller.ex:411 #, elixir-format msgid "Failed to authenticate: %{message}." -msgstr "" +msgstr "Nie udało się uwierzytelnić: %{message}." #: lib/pleroma/web/oauth/oauth_controller.ex:442 #, elixir-format msgid "Failed to set up user account." -msgstr "" +msgstr "Nie udało się skonfigurować konta użytkownika." #: lib/pleroma/plugs/oauth_scopes_plug.ex:38 #, elixir-format @@ -431,7 +432,7 @@ msgstr "Nieprawidłowa nazwa użytkownika lub hasło" #: lib/pleroma/web/twitter_api/twitter_api.ex:118 #, elixir-format msgid "Invalid answer data" -msgstr "" +msgstr "Nieprawidłowe dane odpowiedzi" #: lib/pleroma/web/nodeinfo/nodeinfo_controller.ex:128 #, elixir-format @@ -441,7 +442,7 @@ msgstr "Nieobsługiwana wersja schematu Nodeinfo" #: lib/pleroma/web/oauth/oauth_controller.ex:169 #, elixir-format msgid "This action is outside the authorized scopes" -msgstr "" +msgstr "Ta akcja wykracza poza dozwolone zakresy" #: lib/pleroma/web/oauth/fallback_controller.ex:14 #, elixir-format @@ -452,7 +453,7 @@ msgstr "Nieznany błąd, sprawdź szczegóły i spróbuj ponownie." #: lib/pleroma/web/oauth/oauth_controller.ex:155 #, elixir-format msgid "Unlisted redirect_uri." -msgstr "" +msgstr "Niewypisany redirect_uri." #: lib/pleroma/web/oauth/oauth_controller.ex:391 #, elixir-format @@ -462,7 +463,7 @@ msgstr "Nieobsługiwany dostawca OAuth: %{provider}." #: lib/pleroma/uploaders/uploader.ex:72 #, elixir-format msgid "Uploader callback timeout" -msgstr "" +msgstr "Przekroczono czas wysyłania pliku" #: lib/pleroma/web/uploader_controller.ex:23 #, elixir-format @@ -477,12 +478,12 @@ msgstr "Błąd CAPTCHA" #: lib/pleroma/web/common_api/common_api.ex:200 #, elixir-format msgid "Could not add reaction emoji" -msgstr "" +msgstr "Nie można dodać reakcji emoji" #: lib/pleroma/web/common_api/common_api.ex:211 #, elixir-format msgid "Could not remove reaction emoji" -msgstr "" +msgstr "Nie można usunąć reakcji emoji" #: lib/pleroma/web/twitter_api/twitter_api.ex:129 #, elixir-format @@ -535,6 +536,8 @@ msgstr "Wymagany reset hasła" #, elixir-format msgid "Security violation: OAuth scopes check was neither handled nor explicitly skipped." msgstr "" +"Naruszenie bezpieczeństwa: sprawdzanie zakresów OAuth nie zostało ani " +"wykonane, ani celowo pominięte." #: lib/pleroma/plugs/ensure_authenticated_plug.ex:28 #, elixir-format @@ -569,7 +572,7 @@ msgstr "Nieoczekiwany błąd podczas zmieniania metadanych paczki." #: lib/pleroma/plugs/user_is_admin_plug.ex:21 #, elixir-format msgid "User is not an admin." -msgstr "" +msgstr "Użytkownik nie jest administratorem." #: lib/pleroma/web/mastodon_api/controllers/subscription_controller.ex:61 #, elixir-format diff --git a/priv/gettext/posix_errors.pot b/priv/gettext/posix_errors.pot index c9f593944..3533639e0 100644 --- a/priv/gettext/posix_errors.pot +++ b/priv/gettext/posix_errors.pot @@ -15,135 +15,135 @@ msgstr "" msgid "eagain" msgstr "" - + msgid "ebadf" msgstr "" - + msgid "ebadmsg" msgstr "" - + msgid "ebusy" msgstr "" - + msgid "edeadlk" msgstr "" - + msgid "edeadlock" msgstr "" - + msgid "edquot" msgstr "" - + msgid "eexist" msgstr "" - + msgid "efault" msgstr "" - + msgid "efbig" msgstr "" - + msgid "eftype" msgstr "" - + msgid "eintr" msgstr "" - + msgid "einval" msgstr "" - + msgid "eio" msgstr "" - + msgid "eisdir" msgstr "" - + msgid "eloop" msgstr "" - + msgid "emfile" msgstr "" - + msgid "emlink" msgstr "" - + msgid "emultihop" msgstr "" - + msgid "enametoolong" msgstr "" - + msgid "enfile" msgstr "" - + msgid "enobufs" msgstr "" - + msgid "enodev" msgstr "" - + msgid "enolck" msgstr "" - + msgid "enolink" msgstr "" - + msgid "enoent" msgstr "" - + msgid "enomem" msgstr "" - + msgid "enospc" msgstr "" - + msgid "enosr" msgstr "" - + msgid "enostr" msgstr "" - + msgid "enosys" msgstr "" - + msgid "enotblk" msgstr "" - + msgid "enotdir" msgstr "" - + msgid "enotsup" msgstr "" - + msgid "enxio" msgstr "" - + msgid "eopnotsupp" msgstr "" - + msgid "eoverflow" msgstr "" - + msgid "epipe" msgstr "" - + msgid "erange" msgstr "" - + msgid "erofs" msgstr "" - + msgid "espipe" msgstr "" - + msgid "esrch" msgstr "" - + msgid "estale" msgstr "" - + msgid "etxtbsy" msgstr "" - + msgid "exdev" msgstr "" diff --git a/priv/gettext/static_pages.pot b/priv/gettext/static_pages.pot new file mode 100644 index 000000000..4c372ac4d --- /dev/null +++ b/priv/gettext/static_pages.pot @@ -0,0 +1,562 @@ +## This file is a PO Template file. +## +## "msgid"s here are often extracted from source code. +## Add new translations manually only if they're dynamic +## translations that can't be statically extracted. +## +## Run "mix gettext.extract" to bring this file up to +## date. Leave "msgstr"s empty as changing them here as no +## effect: edit them in PO (.po) files instead. +msgid "" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/web/templates/twitter_api/remote_follow/follow.html.eex:9 +msgctxt "remote follow authorization button" +msgid "Authorize" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/web/templates/twitter_api/remote_follow/follow.html.eex:2 +msgctxt "remote follow error" +msgid "Error fetching user" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/web/templates/twitter_api/remote_follow/follow.html.eex:4 +msgctxt "remote follow header" +msgid "Remote follow" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/web/templates/twitter_api/remote_follow/follow_mfa.html.eex:8 +msgctxt "placeholder text for auth code entry" +msgid "Authentication code" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/web/templates/twitter_api/remote_follow/follow_login.html.eex:10 +msgctxt "placeholder text for password entry" +msgid "Password" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/web/templates/twitter_api/remote_follow/follow_login.html.eex:8 +msgctxt "placeholder text for username entry" +msgid "Username" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/web/templates/twitter_api/remote_follow/follow_login.html.eex:13 +msgctxt "remote follow authorization button for login" +msgid "Authorize" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/web/templates/twitter_api/remote_follow/follow_mfa.html.eex:12 +msgctxt "remote follow authorization button for mfa" +msgid "Authorize" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/web/templates/twitter_api/remote_follow/followed.html.eex:2 +msgctxt "remote follow error" +msgid "Error following account" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/web/templates/twitter_api/remote_follow/follow_login.html.eex:4 +msgctxt "remote follow header, need login" +msgid "Log in to follow" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/web/templates/twitter_api/remote_follow/follow_mfa.html.eex:4 +msgctxt "remote follow mfa header" +msgid "Two-factor authentication" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/web/templates/twitter_api/remote_follow/followed.html.eex:4 +msgctxt "remote follow success" +msgid "Account followed!" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/web/templates/twitter_api/util/status_interact.html.eex:7 +#: lib/pleroma/web/templates/twitter_api/util/subscribe.html.eex:7 +msgctxt "placeholder text for account id" +msgid "Your account ID, e.g. lain@quitter.se" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/web/templates/twitter_api/util/subscribe.html.eex:8 +msgctxt "remote follow authorization button for following with a remote account" +msgid "Follow" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/web/templates/twitter_api/util/subscribe.html.eex:2 +msgctxt "remote follow error" +msgid "Error: %{error}" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/web/templates/twitter_api/util/subscribe.html.eex:4 +msgctxt "remote follow header" +msgid "Remotely follow %{nickname}" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/web/templates/twitter_api/password/reset.html.eex:12 +msgctxt "password reset button" +msgid "Reset" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/web/templates/twitter_api/password/reset_failed.html.eex:4 +msgctxt "password reset failed homepage link" +msgid "Homepage" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/web/templates/twitter_api/password/reset_failed.html.eex:1 +msgctxt "password reset failed message" +msgid "Password reset failed" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/web/templates/twitter_api/password/reset.html.eex:8 +msgctxt "password reset form confirm password prompt" +msgid "Confirmation" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/web/templates/twitter_api/password/reset.html.eex:4 +msgctxt "password reset form password prompt" +msgid "Password" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/web/templates/twitter_api/password/invalid_token.html.eex:1 +msgctxt "password reset invalid token message" +msgid "Invalid Token" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/web/templates/twitter_api/password/reset_success.html.eex:2 +msgctxt "password reset successful homepage link" +msgid "Homepage" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/web/templates/twitter_api/password/reset_success.html.eex:1 +msgctxt "password reset successful message" +msgid "Password changed!" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/web/templates/feed/feed/tag.atom.eex:12 +#: lib/pleroma/web/templates/feed/feed/tag.rss.eex:8 +msgctxt "tag feed description" +msgid "These are public toots tagged with #%{tag}. You can interact with them if you have an account anywhere in the fediverse." +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/web/templates/o_auth/o_auth/oob_token_exists.html.eex:1 +msgctxt "oauth authorization exists page title" +msgid "Authorization exists" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/web/templates/o_auth/o_auth/show.html.eex:32 +msgctxt "oauth authorize approve button" +msgid "Approve" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/web/templates/o_auth/o_auth/show.html.eex:30 +msgctxt "oauth authorize cancel button" +msgid "Cancel" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/web/templates/o_auth/o_auth/show.html.eex:23 +msgctxt "oauth authorize message" +msgid "Application %{client_name} is requesting access to your account." +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/web/templates/o_auth/o_auth/oob_authorization_created.html.eex:1 +msgctxt "oauth authorized page title" +msgid "Successfully authorized" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/web/templates/o_auth/o_auth/consumer.html.eex:1 +msgctxt "oauth external provider page title" +msgid "Sign in with external provider" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/web/templates/o_auth/o_auth/consumer.html.eex:13 +msgctxt "oauth external provider sign in button" +msgid "Sign in with %{strategy}" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/web/templates/o_auth/o_auth/show.html.eex:54 +msgctxt "oauth login button" +msgid "Log In" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/web/templates/o_auth/o_auth/show.html.eex:51 +msgctxt "oauth login password prompt" +msgid "Password" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/web/templates/o_auth/o_auth/show.html.eex:47 +msgctxt "oauth login username prompt" +msgid "Username" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/web/templates/o_auth/o_auth/show.html.eex:39 +msgctxt "oauth register nickname prompt" +msgid "Pleroma Handle" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/web/templates/o_auth/o_auth/show.html.eex:37 +msgctxt "oauth register nickname unchangeable warning" +msgid "Choose carefully! You won't be able to change this later. You will be able to change your display name, though." +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/web/templates/o_auth/o_auth/register.html.eex:18 +msgctxt "oauth register page email prompt" +msgid "Email" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/web/templates/o_auth/o_auth/register.html.eex:10 +msgctxt "oauth register page fill form prompt" +msgid "If you'd like to register a new account, please provide the details below." +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/web/templates/o_auth/o_auth/register.html.eex:35 +msgctxt "oauth register page login button" +msgid "Proceed as existing user" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/web/templates/o_auth/o_auth/register.html.eex:31 +msgctxt "oauth register page login password prompt" +msgid "Password" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/web/templates/o_auth/o_auth/register.html.eex:24 +msgctxt "oauth register page login prompt" +msgid "Alternatively, sign in to connect to existing account." +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/web/templates/o_auth/o_auth/register.html.eex:27 +msgctxt "oauth register page login username prompt" +msgid "Name or email" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/web/templates/o_auth/o_auth/register.html.eex:14 +msgctxt "oauth register page nickname prompt" +msgid "Nickname" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/web/templates/o_auth/o_auth/register.html.eex:22 +msgctxt "oauth register page register button" +msgid "Proceed as new user" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/web/templates/o_auth/o_auth/register.html.eex:8 +msgctxt "oauth register page title" +msgid "Registration Details" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/web/templates/o_auth/o_auth/show.html.eex:36 +msgctxt "oauth register page title" +msgid "This is the first time you visit! Please enter your Pleroma handle." +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/web/templates/o_auth/o_auth/_scopes.html.eex:2 +msgctxt "oauth scopes message" +msgid "The following permissions will be granted" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/web/templates/o_auth/o_auth/oob_authorization_created.html.eex:2 +#: lib/pleroma/web/templates/o_auth/o_auth/oob_token_exists.html.eex:2 +msgctxt "oauth token code message" +msgid "Token code is
%{token}" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/web/templates/o_auth/mfa/totp.html.eex:12 +msgctxt "mfa auth code prompt" +msgid "Authentication code" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/web/templates/o_auth/mfa/totp.html.eex:8 +msgctxt "mfa auth page title" +msgid "Two-factor authentication" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/web/templates/o_auth/mfa/totp.html.eex:23 +msgctxt "mfa auth page use recovery code link" +msgid "Enter a two-factor recovery code" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/web/templates/o_auth/mfa/totp.html.eex:20 +msgctxt "mfa auth verify code button" +msgid "Verify" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/web/templates/o_auth/mfa/recovery.html.eex:8 +msgctxt "mfa recover page title" +msgid "Two-factor recovery" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/web/templates/o_auth/mfa/recovery.html.eex:12 +msgctxt "mfa recover recovery code prompt" +msgid "Recovery code" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/web/templates/o_auth/mfa/recovery.html.eex:23 +msgctxt "mfa recover use 2fa code link" +msgid "Enter a two-factor code" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/web/templates/o_auth/mfa/recovery.html.eex:20 +msgctxt "mfa recover verify recovery code button" +msgid "Verify" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/web/templates/static_fe/static_fe/profile.html.eex:8 +msgctxt "static fe profile page remote follow button" +msgid "Remote follow" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/web/templates/email/digest.html.eex:163 +msgctxt "digest email header line" +msgid "Hey %{nickname}, here is what you've missed!" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/web/templates/email/digest.html.eex:544 +msgctxt "digest email receiver address" +msgid "The email address you are subscribed as is %{email}. " +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/web/templates/email/digest.html.eex:538 +msgctxt "digest email sending reason" +msgid "You have received this email because you have signed up to receive digest emails from %{instance} Pleroma instance." +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/web/templates/email/digest.html.eex:547 +msgctxt "digest email unsubscribe action" +msgid "To unsubscribe, please go %{here}." +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/web/templates/email/digest.html.eex:547 +msgctxt "digest email unsubscribe action link text" +msgid "here" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/web/templates/mailer/subscription/unsubscribe_failure.html.eex:1 +msgctxt "mailer unsubscribe failed message" +msgid "UNSUBSCRIBE FAILURE" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/web/templates/mailer/subscription/unsubscribe_success.html.eex:1 +msgctxt "mailer unsubscribe successful message" +msgid "UNSUBSCRIBE SUCCESSFUL" +msgstr "" + +#, elixir-format +#: lib/pleroma/web/templates/email/digest.html.eex:385 +msgctxt "new followers count header" +msgid "%{count} New Follower" +msgid_plural "%{count} New Followers" +msgstr[0] "" +msgstr[1] "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/emails/user_email.ex:356 +msgctxt "account archive email body - self-requested" +msgid "

You requested a full backup of your Pleroma account. It's ready for download:

\n

%{download_url}

\n" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/emails/user_email.ex:384 +msgctxt "account archive email subject" +msgid "Your account archive is ready" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/emails/user_email.ex:188 +msgctxt "approval pending email body" +msgid "

Awaiting Approval

\n

Your account at %{instance_name} is being reviewed by staff. You will receive another email once your account is approved.

\n" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/emails/user_email.ex:202 +msgctxt "approval pending email subject" +msgid "Your account is awaiting approval" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/emails/user_email.ex:158 +msgctxt "confirmation email body" +msgid "

Thank you for registering on %{instance_name}

\n

Email confirmation is required to activate the account.

\n

Please click the following link to activate your account.

\n" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/emails/user_email.ex:174 +msgctxt "confirmation email subject" +msgid "%{instance_name} account confirmation" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/emails/user_email.ex:310 +msgctxt "digest email subject" +msgid "Your digest from %{instance_name}" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/emails/user_email.ex:81 +msgctxt "password reset email body" +msgid "

Reset your password at %{instance_name}

\n

Someone has requested password change for your account at %{instance_name}.

\n

If it was you, visit the following link to proceed: reset password.

\n

If it was someone else, nothing to worry about: your data is secure and your password has not been changed.

\n" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/emails/user_email.ex:98 +msgctxt "password reset email subject" +msgid "Password reset" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/emails/user_email.ex:215 +msgctxt "successful registration email body" +msgid "

Hello @%{nickname},

\n

Your account at %{instance_name} has been registered successfully.

\n

No further action is required to activate your account.

\n" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/emails/user_email.ex:231 +msgctxt "successful registration email subject" +msgid "Account registered on %{instance_name}" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/emails/user_email.ex:119 +msgctxt "user invitation email body" +msgid "

You are invited to %{instance_name}

\n

%{inviter_name} invites you to join %{instance_name}, an instance of Pleroma federated social networking platform.

\n

Click the following link to register: accept invitation.

\n" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/emails/user_email.ex:136 +msgctxt "user invitation email subject" +msgid "Invitation to %{instance_name}" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/emails/user_email.ex:53 +msgctxt "welcome email html body" +msgid "Welcome to %{instance_name}!" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/emails/user_email.ex:41 +msgctxt "welcome email subject" +msgid "Welcome to %{instance_name}!" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/emails/user_email.ex:65 +msgctxt "welcome email text body" +msgid "Welcome to %{instance_name}!" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/emails/user_email.ex:368 +msgctxt "account archive email body - admin requested" +msgid "

Admin @%{admin_nickname} requested a full backup of your Pleroma account. It's ready for download:

\n

%{download_url}

\n" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/web/twitter_api/controllers/util_controller.ex:123 +msgctxt "remote follow error message - unknown error" +msgid "Something went wrong." +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/web/twitter_api/controllers/util_controller.ex:67 +msgctxt "remote follow error message - user not found" +msgid "Could not find user" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/web/templates/twitter_api/util/status_interact.html.eex:8 +msgctxt "status interact authorization button" +msgid "Interact" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/web/templates/twitter_api/util/status_interact.html.eex:2 +msgctxt "status interact error" +msgid "Error: %{error}" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/web/twitter_api/controllers/util_controller.ex:95 +msgctxt "status interact error message - status not found" +msgid "Could not find status" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/web/twitter_api/controllers/util_controller.ex:144 +msgctxt "status interact error message - unknown error" +msgid "Something went wrong." +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/web/templates/twitter_api/util/status_interact.html.eex:4 +msgctxt "status interact header" +msgid "Interacting with %{nickname}'s %{status_link}" +msgstr "" + +#, elixir-autogen, elixir-format +#: lib/pleroma/web/templates/twitter_api/util/status_interact.html.eex:4 +msgctxt "status interact header - status link text" +msgid "status" +msgstr "" diff --git a/priv/gettext/uk/LC_MESSAGES/config_descriptions.po b/priv/gettext/uk/LC_MESSAGES/config_descriptions.po new file mode 100644 index 000000000..0bcb8a34b --- /dev/null +++ b/priv/gettext/uk/LC_MESSAGES/config_descriptions.po @@ -0,0 +1,6071 @@ +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2022-09-18 19:11+0300\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: Automatically generated\n" +"Language-Team: none\n" +"Language: uk\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Translate Toolkit 3.7.2\n" + +## This file is a PO Template file. +## +## "msgid"s here are often extracted from source code. +## Add new translations manually only if they're dynamic +## translations that can't be statically extracted. +## +## Run "mix gettext.extract" to bring this file up to +## date. Leave "msgstr"s empty as changing them here has no +## effect: edit them in PO (.po) files instead. + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :esshd" +msgid "Before enabling this you must add :esshd to mix.exs as one of the extra_applications and generate host keys in your priv dir with ssh-keygen -m PEM -N \"\" -b 2048 -t rsa -f ssh_host_rsa_key" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :logger" +msgid "Logger-related settings" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :mime" +msgid "Mime Types settings" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma" +msgid "Allows setting a token that can be used to authenticate requests with admin privileges without a normal user account token. Append the `admin_token` parameter to requests to utilize it. (Please reconsider using HTTP Basic Auth or OAuth-based authentication if possible)" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma" +msgid "Authenticator" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :quack" +msgid "Quack-related settings" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :cors_plug" +msgid "CORS plug config" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :esshd" +msgid "ESSHD" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :logger" +msgid "Logger" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :mime" +msgid "Mime Types" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma" +msgid "Pleroma Admin Token" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma" +msgid "Pleroma Authenticator" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :quack" +msgid "Quack Logger" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :logger-:console" +msgid "Console logger settings" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :logger-:ex_syslogger" +msgid "ExSyslogger-related settings" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:activitypub" +msgid "ActivityPub-related settings" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:assets" +msgid "This section configures assets to be used with various frontends. Currently the only option relates to mascots on the mastodon frontend" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:auth" +msgid "Authentication / authorization settings" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:connections_pool" +msgid "Advanced settings for `Gun` connections pool" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:email_notifications" +msgid "Email notifications settings" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:features" +msgid "Customizable features" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:feed" +msgid "Configure feed rendering" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:frontend_configurations" +msgid "This form can be used to configure a keyword list that keeps the configuration data for any kind of frontend. By default, settings for pleroma_fe are configured. If you want to add your own configuration your settings all fields must be complete." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:frontends" +msgid "Installed frontends management" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:gopher" +msgid "Gopher settings" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:hackney_pools" +msgid "Advanced settings for `Hackney` connections pools" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:http" +msgid "HTTP settings" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:http_security" +msgid "HTTP security settings" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:instance" +msgid "Instance-related settings" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:instances_favicons" +msgid "Control favicons for instances" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:ldap" +msgid "Use LDAP for user authentication. When a user logs in to the Pleroma instance, the name and password will be verified by trying to authenticate (bind) to a LDAP server. If a user exists in the LDAP directory but there is no account with the same name yet on the Pleroma instance then a new Pleroma account will be created with the same name as the LDAP user name." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:majic_pool" +msgid "Majic/libmagic configuration" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:manifest" +msgid "This section describe PWA manifest instance-specific values. Currently this option relate only for MastoFE." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:media_preview_proxy" +msgid "Media preview proxy" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:media_proxy" +msgid "Media proxy" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:modules" +msgid "Custom Runtime Modules" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:mrf" +msgid "General MRF settings" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:mrf_activity_expiration" +msgid "Adds automatic expiration to all local activities" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:mrf_follow_bot" +msgid "Automatically follows newly discovered accounts." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:mrf_hashtag" +msgid "Reject, TWKN-remove or Set-Sensitive messsages with specific hashtags (without the leading #)\n\nNote: This MRF Policy is always enabled, if you want to disable it you have to set empty lists.\n" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:mrf_hellthread" +msgid "Block messages with excessive user mentions" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:mrf_keyword" +msgid "Reject or Word-Replace messages matching a keyword or [Regex](https://hexdocs.pm/elixir/Regex.html)." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:mrf_mention" +msgid "Block messages which mention a specific user" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:mrf_normalize_markup" +msgid "MRF NormalizeMarkup settings. Scrub configured hypertext markup." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:mrf_object_age" +msgid "Rejects or delists posts based on their timestamp deviance from your server's clock." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:mrf_rejectnonpublic" +msgid "RejectNonPublic drops posts with non-public visibility settings." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:mrf_simple" +msgid "Simple ingress policies" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:mrf_steal_emoji" +msgid "Steals emojis from selected instances when it sees them." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:mrf_subchain" +msgid "This policy processes messages through an alternate pipeline when a given message matches certain criteria. All criteria are configured as a map of regular expressions to lists of policy modules." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:mrf_vocabulary" +msgid "Filter messages which belong to certain activity vocabularies" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:oauth2" +msgid "Configure OAuth 2 provider capabilities" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:pools" +msgid "Advanced settings for `Gun` workers pools" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:populate_hashtags_table" +msgid "`populate_hashtags_table` background migration settings" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:rate_limit" +msgid "Rate limit settings. This is an advanced feature enabled only for :authentication by default." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:restrict_unauthenticated" +msgid "Disallow viewing timelines, user profiles and statuses for unauthenticated users." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:rich_media" +msgid "If enabled the instance will parse metadata from attached links to generate link previews" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:shout" +msgid "Pleroma shout settings" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:static_fe" +msgid "Render profiles and posts using server-generated HTML that is viewable without using JavaScript" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:streamer" +msgid "Settings for notifications streamer" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:uri_schemes" +msgid "URI schemes related settings" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:web_cache_ttl" +msgid "The expiration time for the web responses cache. Values should be in milliseconds or `nil` to disable expiration." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:welcome" +msgid "Welcome messages settings" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:workers" +msgid "Includes custom worker options not interpretable directly by `Oban`" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-ConcurrentLimiter" +msgid "Limits configuration for background tasks." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-Oban" +msgid "[Oban](https://github.com/sorentwo/oban) asynchronous job processor configuration." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-Pleroma.Captcha" +msgid "Captcha-related settings" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-Pleroma.Captcha.Kocaptcha" +msgid "Kocaptcha is a very simple captcha service with a single API endpoint, the source code is here: https://github.com/koto-bank/kocaptcha. The default endpoint (https://captcha.kotobank.ch) is hosted by the developer." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-Pleroma.Emails.Mailer" +msgid "Mailer-related settings" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-Pleroma.Emails.NewUsersDigestEmail" +msgid "New users admin email digest" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-Pleroma.Emails.UserEmail" +msgid "Email template settings" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-Pleroma.Formatter" +msgid "Configuration for Pleroma's link formatter which parses mentions, hashtags, and URLs." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-Pleroma.ScheduledActivity" +msgid "Scheduled activities settings" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-Pleroma.Upload" +msgid "Upload general settings" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-Pleroma.Upload.Filter.AnonymizeFilename" +msgid "Filter replaces the filename of the upload" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-Pleroma.Upload.Filter.Mogrify" +msgid "Uploads mogrify filter settings" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-Pleroma.Uploaders.Local" +msgid "Local uploader-related settings" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-Pleroma.Uploaders.S3" +msgid "S3 uploader-related settings" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-Pleroma.User.Backup" +msgid "Account Backup" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-Pleroma.Web.MediaProxy.Invalidation.Http" +msgid "HTTP invalidate settings" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-Pleroma.Web.MediaProxy.Invalidation.Script" +msgid "Invalidation script settings" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-Pleroma.Web.Metadata" +msgid "Metadata-related settings" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-Pleroma.Web.Plugs.RemoteIp" +msgid "`Pleroma.Web.Plugs.RemoteIp` is a shim to call [`RemoteIp`](https://git.pleroma.social/pleroma/remote_ip) but with runtime configuration.\n**If your instance is not behind at least one reverse proxy, you should not enable this plug.**\n" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-Pleroma.Web.Preload" +msgid "Preload-related settings" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-Pleroma.Workers.PurgeExpiredActivity" +msgid "Expired activities settings" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :prometheus-Pleroma.Web.Endpoint.MetricsExporter" +msgid "Prometheus app metrics endpoint configuration" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :web_push_encryption-:vapid_details" +msgid "Web Push Notifications configuration. You can use the mix task mix web_push.gen.keypair to generate it." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :ex_aws-:s3" +msgid "S3" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :logger-:console" +msgid "Console Logger" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :logger-:ex_syslogger" +msgid "ExSyslogger" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:activitypub" +msgid "ActivityPub" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:assets" +msgid "Assets" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:auth" +msgid "Auth" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:connections_pool" +msgid "Connections pool" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:email_notifications" +msgid "Email notifications" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:emoji" +msgid "Emoji" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:features" +msgid "Features" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:feed" +msgid "Feed" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:frontend_configurations" +msgid "Frontend configurations" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:frontends" +msgid "Frontends" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:gopher" +msgid "Gopher" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:hackney_pools" +msgid "Hackney pools" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:http" +msgid "HTTP" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:http_security" +msgid "HTTP security" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:instance" +msgid "Instance" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:instances_favicons" +msgid "Instances favicons" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:ldap" +msgid "LDAP" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:majic_pool" +msgid "Majic pool" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:manifest" +msgid "Manifest" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:markup" +msgid "Markup Settings" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:media_preview_proxy" +msgid "Media preview proxy" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:media_proxy" +msgid "Media proxy" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:modules" +msgid "Modules" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:mrf" +msgid "MRF" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:mrf_activity_expiration" +msgid "MRF Activity Expiration Policy" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:mrf_follow_bot" +msgid "MRF FollowBot Policy" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:mrf_hashtag" +msgid "MRF Hashtag" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:mrf_hellthread" +msgid "MRF Hellthread" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:mrf_keyword" +msgid "MRF Keyword" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:mrf_mention" +msgid "MRF Mention" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:mrf_normalize_markup" +msgid "MRF Normalize Markup" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:mrf_object_age" +msgid "MRF Object Age" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:mrf_rejectnonpublic" +msgid "MRF Reject Non Public" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:mrf_simple" +msgid "MRF Simple" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:mrf_steal_emoji" +msgid "MRF Emojis" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:mrf_subchain" +msgid "MRF Subchain" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:mrf_vocabulary" +msgid "MRF Vocabulary" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:oauth2" +msgid "OAuth2" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:pools" +msgid "Pools" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:populate_hashtags_table" +msgid "Populate hashtags table" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:rate_limit" +msgid "Rate limit" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:restrict_unauthenticated" +msgid "Restrict Unauthenticated" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:rich_media" +msgid "Rich media" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:shout" +msgid "Shout" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:static_fe" +msgid "Static FE" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:streamer" +msgid "Streamer" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:uri_schemes" +msgid "URI Schemes" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:user" +msgid "User" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:web_cache_ttl" +msgid "Web cache TTL" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:welcome" +msgid "Welcome" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:workers" +msgid "Workers" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-ConcurrentLimiter" +msgid "ConcurrentLimiter" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Oban" +msgid "Oban" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Pleroma.Captcha" +msgid "Pleroma.Captcha" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Pleroma.Captcha.Kocaptcha" +msgid "Pleroma.Captcha.Kocaptcha" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Pleroma.Emails.Mailer" +msgid "Pleroma.Emails.Mailer" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Pleroma.Emails.NewUsersDigestEmail" +msgid "Pleroma.Emails.NewUsersDigestEmail" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Pleroma.Emails.UserEmail" +msgid "Pleroma.Emails.UserEmail" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Pleroma.Formatter" +msgid "Linkify" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Pleroma.ScheduledActivity" +msgid "Pleroma.ScheduledActivity" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Pleroma.Upload" +msgid "Pleroma.Upload" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Pleroma.Upload.Filter.AnonymizeFilename" +msgid "Pleroma.Upload.Filter.AnonymizeFilename" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Pleroma.Upload.Filter.Mogrify" +msgid "Pleroma.Upload.Filter.Mogrify" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Pleroma.Uploaders.Local" +msgid "Pleroma.Uploaders.Local" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Pleroma.Uploaders.S3" +msgid "Pleroma.Uploaders.S3" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Pleroma.User" +msgid "Pleroma.User" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Pleroma.User.Backup" +msgid "Pleroma.User.Backup" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Pleroma.Web.ApiSpec.CastAndValidate" +msgid "Pleroma.Web.ApiSpec.CastAndValidate" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Pleroma.Web.MediaProxy.Invalidation.Http" +msgid "Pleroma.Web.MediaProxy.Invalidation.Http" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Pleroma.Web.MediaProxy.Invalidation.Script" +msgid "Pleroma.Web.MediaProxy.Invalidation.Script" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Pleroma.Web.Metadata" +msgid "Pleroma.Web.Metadata" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Pleroma.Web.Plugs.RemoteIp" +msgid "Pleroma.Web.Plugs.RemoteIp" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Pleroma.Web.Preload" +msgid "Pleroma.Web.Preload" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Pleroma.Workers.PurgeExpiredActivity" +msgid "Pleroma.Workers.PurgeExpiredActivity" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :prometheus-Pleroma.Web.Endpoint.MetricsExporter" +msgid "Pleroma.Web.Endpoint.MetricsExporter" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :web_push_encryption-:vapid_details" +msgid "Vapid Details" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :esshd > :enabled" +msgid "Enables SSH" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :esshd > :handler" +msgid "Handler module" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :esshd > :password_authenticator" +msgid "Authenticator module" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :esshd > :port" +msgid "Port to connect" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :esshd > :priv_dir" +msgid "Dir with SSH keys" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :ex_aws-:s3 > :access_key_id" +msgid "S3 access key ID" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :ex_aws-:s3 > :host" +msgid "S3 host" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :ex_aws-:s3 > :region" +msgid "S3 region (for AWS)" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :ex_aws-:s3 > :secret_access_key" +msgid "Secret access key" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :logger > :backends" +msgid "Where logs will be sent, :console - send logs to stdout, { ExSyslogger, :ex_syslogger } - to syslog, Quack.Logger - to Slack." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :logger-:console > :format" +msgid "Default: \"$date $time [$level] $levelpad$node $metadata $message\"" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :logger-:console > :level" +msgid "Log level" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :logger-:ex_syslogger > :format" +msgid "Default: \"$date $time [$level] $levelpad$node $metadata $message\"" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :logger-:ex_syslogger > :ident" +msgid "A string that's prepended to every message, and is typically set to the app name" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :logger-:ex_syslogger > :level" +msgid "Log level" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma > :admin_token" +msgid "Admin token" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:activitypub > :blockers_visible" +msgid "Whether a user can see someone who has blocked them" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:activitypub > :follow_handshake_timeout" +msgid "Following handshake timeout" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:activitypub > :note_replies_output_limit" +msgid "The number of Note replies' URIs to be included with outgoing federation (`5` to match Mastodon hardcoded value, `0` to disable the output)" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:activitypub > :outgoing_blocks" +msgid "Whether to federate blocks to other instances" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:activitypub > :sign_object_fetches" +msgid "Sign object fetches with HTTP signatures" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:activitypub > :unfollow_blocked" +msgid "Whether blocks result in people getting unfollowed" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:assets > :default_mascot" +msgid "This will be used as the default mascot on MastoFE. Default: `:pleroma_fox_tan`" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:assets > :default_user_avatar" +msgid "URL of the default user avatar" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:assets > :mascots" +msgid "Keyword of mascots, each element must contain both an URL and a mime_type key" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:auth > :auth_template" +msgid "Authentication form template. By default it's `show.html` which corresponds to `lib/pleroma/web/templates/o_auth/o_auth/show.html.ee`." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:auth > :enforce_oauth_admin_scope_usage" +msgid "OAuth admin scope requirement toggle. If enabled, admin actions explicitly demand admin OAuth scope(s) presence in OAuth token (client app must support admin scopes). If disabled and token doesn't have admin scope(s), `is_admin` user flag grants access to admin-specific actions." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:auth > :oauth_consumer_strategies" +msgid "The list of enabled OAuth consumer strategies. By default it's set by OAUTH_CONSUMER_STRATEGIES environment variable. Each entry in this space-delimited string should be of format \"strategy\" or \"strategy:dependency\" (e.g. twitter or keycloak:ueberauth_keycloak_strategy in case dependency is named differently than ueberauth_)." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:auth > :oauth_consumer_template" +msgid "OAuth consumer mode authentication form template. By default it's `consumer.html` which corresponds to `lib/pleroma/web/templates/o_auth/o_auth/consumer.html.eex`." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:connections_pool > :connect_timeout" +msgid "Timeout while `gun` will wait until connection is up. Default: 5000ms." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:connections_pool > :connection_acquisition_retries" +msgid "Number of attempts to acquire the connection from the pool if it is overloaded. Default: 5" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:connections_pool > :connection_acquisition_wait" +msgid "Timeout to acquire a connection from pool. The total max time is this value multiplied by the number of retries. Default: 250ms." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:connections_pool > :max_connections" +msgid "Maximum number of connections in the pool. Default: 250 connections." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:connections_pool > :reclaim_multiplier" +msgid "Multiplier for the number of idle connection to be reclaimed if the pool is full. For example if the pool maxes out at 250 connections and this setting is set to 0.3, the pool will reclaim at most 75 idle connections if it's overloaded. Default: 0.1" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:email_notifications > :digest" +msgid "emails of \"what you've missed\" for users who have been inactive for a while" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:email_notifications > :digest > :active" +msgid "Globally enable or disable digest emails" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:email_notifications > :digest > :inactivity_threshold" +msgid "Minimum user inactivity threshold" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:email_notifications > :digest > :interval" +msgid "Minimum interval between digest emails to one user" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:email_notifications > :digest > :schedule" +msgid "When to send digest email, in crontab format. \"0 0 0\" is the default, meaning \"once a week at midnight on Sunday morning\"." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:emoji > :default_manifest" +msgid "Location of the JSON-manifest. This manifest contains information about the emoji-packs you can download. Currently only one manifest can be added (no arrays)." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:emoji > :groups" +msgid "Emojis are ordered in groups (tags). This is an array of key-value pairs where the key is the group name and the value is the location or array of locations. * can be used as a wildcard." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:emoji > :pack_extensions" +msgid "A list of file extensions for emojis, when no emoji.txt for a pack is present" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:emoji > :shortcode_globs" +msgid "Location of custom emoji files. * can be used as a wildcard." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:features > :improved_hashtag_timeline" +msgid "Setting to force toggle / force disable improved hashtags timeline. `:enabled` forces hashtags to be fetched from `hashtags` table for hashtags timeline. `:disabled` forces object-embedded hashtags to be used (slower). Keep it `:auto` for automatic behaviour (it is auto-set to `:enabled` [unless overridden] when HashtagsTableMigrator completes)." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:feed > :post_title" +msgid "Configure title rendering" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:feed > :post_title > :max_length" +msgid "Maximum number of characters before truncating title" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:feed > :post_title > :omission" +msgid "Replacement which will be used after truncating string" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:frontend_configurations > :pleroma_fe" +msgid "Settings for Pleroma FE" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:frontend_configurations > :pleroma_fe > :alwaysShowSubjectInput" +msgid "When disabled, auto-hide the subject field if it's empty" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:frontend_configurations > :pleroma_fe > :background" +msgid "URL of the background, unless viewing a user profile with a background that is set" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:frontend_configurations > :pleroma_fe > :collapseMessageWithSubject" +msgid "When a message has a subject (aka Content Warning), collapse it by default" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:frontend_configurations > :pleroma_fe > :greentext" +msgid "Enables green text on lines prefixed with the > character" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:frontend_configurations > :pleroma_fe > :hideFilteredStatuses" +msgid "Hides filtered statuses from timelines" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:frontend_configurations > :pleroma_fe > :hideMutedPosts" +msgid "Hides muted statuses from timelines" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:frontend_configurations > :pleroma_fe > :hidePostStats" +msgid "Hide notices statistics (repeats, favorites, ...)" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:frontend_configurations > :pleroma_fe > :hideSitename" +msgid "Hides instance name from PleromaFE banner" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:frontend_configurations > :pleroma_fe > :hideUserStats" +msgid "Hide profile statistics (posts, posts per day, followers, followings, ...)" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:frontend_configurations > :pleroma_fe > :logo" +msgid "URL of the logo, defaults to Pleroma's logo" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:frontend_configurations > :pleroma_fe > :logoMargin" +msgid "Allows you to adjust vertical margins between logo boundary and navbar borders. The idea is that to have logo's image without any extra margins and instead adjust them to your need in layout." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:frontend_configurations > :pleroma_fe > :logoMask" +msgid "By default it assumes logo used will be monochrome with alpha channel to be compatible with both light and dark themes. If you want a colorful logo you must disable logoMask." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:frontend_configurations > :pleroma_fe > :minimalScopesMode" +msgid "Limit scope selection to Direct, User default, and Scope of post replying to. Also prevents replying to a DM with a public post from PleromaFE." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:frontend_configurations > :pleroma_fe > :nsfwCensorImage" +msgid "URL of the image to use for hiding NSFW media attachments in the timeline" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:frontend_configurations > :pleroma_fe > :postContentType" +msgid "Default post formatting option" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:frontend_configurations > :pleroma_fe > :redirectRootLogin" +msgid "Relative URL which indicates where to redirect when a user is logged in" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:frontend_configurations > :pleroma_fe > :redirectRootNoLogin" +msgid "Relative URL which indicates where to redirect when a user isn't logged in" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:frontend_configurations > :pleroma_fe > :scopeCopy" +msgid "Copy the scope (private/unlisted/public) in replies to posts by default" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:frontend_configurations > :pleroma_fe > :showFeaturesPanel" +msgid "Enables panel displaying functionality of the instance on the About page" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:frontend_configurations > :pleroma_fe > :showInstanceSpecificPanel" +msgid "Whether to show the instance's custom panel" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:frontend_configurations > :pleroma_fe > :sidebarRight" +msgid "Change alignment of sidebar and panels to the right" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:frontend_configurations > :pleroma_fe > :subjectLineBehavior" +msgid "Allows changing the default behaviour of subject lines in replies.\n `email`: copy and preprend re:, as in email,\n `masto`: copy verbatim, as in Mastodon,\n `noop`: don't copy the subject." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:frontend_configurations > :pleroma_fe > :theme" +msgid "Which theme to use. Available themes are defined in styles.json" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:frontends > :admin" +msgid "Admin frontend" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:frontends > :admin > name" +msgid "Name of the installed frontend. Valid config must include both `Name` and `Reference` values." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:frontends > :admin > ref" +msgid "Reference of the installed frontend to be used. Valid config must include both `Name` and `Reference` values." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:frontends > :available" +msgid "A map containing available frontends and parameters for their installation." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:frontends > :available > build_dir" +msgid "The directory inside the zip file " +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:frontends > :available > build_url" +msgid "Either an url to a zip file containing the frontend or a template to build it by inserting the `ref`. The string `${ref}` will be replaced by the configured `ref`." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:frontends > :available > custom-http-headers" +msgid "The custom HTTP headers for the frontend" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:frontends > :available > git" +msgid "URL of the git repository of the frontend" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:frontends > :available > name" +msgid "Name of the frontend." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:frontends > :available > ref" +msgid "Reference of the frontend to be used." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:frontends > :primary" +msgid "Primary frontend, the one that is served for all pages by default" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:frontends > :primary > name" +msgid "Name of the installed frontend. Valid config must include both `Name` and `Reference` values." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:frontends > :primary > ref" +msgid "Reference of the installed frontend to be used. Valid config must include both `Name` and `Reference` values." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:gopher > :dstport" +msgid "Port advertised in URLs (optional, defaults to port)" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:gopher > :enabled" +msgid "Enables the gopher interface" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:gopher > :ip" +msgid "IP address to bind to" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:gopher > :port" +msgid "Port to bind to" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:hackney_pools > :federation" +msgid "Settings for federation pool." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:hackney_pools > :federation > :max_connections" +msgid "Number workers in the pool." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:hackney_pools > :federation > :timeout" +msgid "Timeout while `hackney` will wait for response." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:hackney_pools > :media" +msgid "Settings for media pool." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:hackney_pools > :media > :max_connections" +msgid "Number workers in the pool." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:hackney_pools > :media > :timeout" +msgid "Timeout while `hackney` will wait for response." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:hackney_pools > :upload" +msgid "Settings for upload pool." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:hackney_pools > :upload > :max_connections" +msgid "Number workers in the pool." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:hackney_pools > :upload > :timeout" +msgid "Timeout while `hackney` will wait for response." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:http > :adapter" +msgid "Adapter specific options" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:http > :adapter > :ssl_options" +msgid "SSL options for HTTP adapter" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:http > :adapter > :ssl_options > :versions" +msgid "List of TLS version to use" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:http > :proxy_url" +msgid "Proxy URL" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:http > :user_agent" +msgid "What user agent to use. Must be a string or an atom `:default`. Default value is `:default`." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:http_security > :ct_max_age" +msgid "The maximum age for the Expect-CT header if sent" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:http_security > :enabled" +msgid "Whether the managed content security policy is enabled" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:http_security > :referrer_policy" +msgid "The referrer policy to use, either \"same-origin\" or \"no-referrer\"" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:http_security > :report_uri" +msgid "Adds the specified URL to report-uri and report-to group in CSP header" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:http_security > :sts" +msgid "Whether to additionally send a Strict-Transport-Security header" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:http_security > :sts_max_age" +msgid "The maximum age for the Strict-Transport-Security header if sent" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:instance > :account_activation_required" +msgid "Require users to confirm their emails before signing in" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:instance > :account_approval_required" +msgid "Require users to be manually approved by an admin before signing in" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:instance > :account_field_name_length" +msgid "An account field name maximum length. Default: 512." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:instance > :account_field_value_length" +msgid "An account field value maximum length. Default: 2048." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:instance > :allow_relay" +msgid "Permits remote instances to subscribe to all public posts of your instance. (Important!) This may increase the visibility of your instance." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:instance > :allowed_post_formats" +msgid "MIME-type list of formats allowed to be posted (transformed into HTML)" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:instance > :attachment_links" +msgid "Enable to automatically add attachment link text to statuses" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:instance > :autofollowed_nicknames" +msgid "Set to nicknames of (local) users that every new user should automatically follow" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:instance > :autofollowing_nicknames" +msgid "Set to nicknames of (local) users that automatically follows every newly registered user" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:instance > :avatar_upload_limit" +msgid "File size limit of user's profile avatars" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:instance > :background_upload_limit" +msgid "File size limit of user's profile backgrounds" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:instance > :banner_upload_limit" +msgid "File size limit of user's profile banners" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:instance > :birthday_required" +msgid "Require users to enter their birthday." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:instance > :cleanup_attachments" +msgid "Enable to remove associated attachments when status is removed.\nThis will not affect duplicates and attachments without status.\nEnabling this will increase load to database when deleting statuses on larger instances.\n" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:instance > :description" +msgid "The instance's description. It can be seen in nodeinfo and `/api/v1/instance`" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:instance > :email" +msgid "Email used to reach an Administrator/Moderator of the instance" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:instance > :extended_nickname_format" +msgid "Enable to use extended local nicknames format (allows underscores/dashes). This will break federation with older software for theses nicknames." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:instance > :external_user_synchronization" +msgid "Enabling following/followers counters synchronization for external users" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:instance > :federating" +msgid "Enable federation with other instances" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:instance > :federation_incoming_replies_max_depth" +msgid "Max. depth of reply-to and reply activities fetching on incoming federation, to prevent out-of-memory situations while fetching very long threads. If set to `nil`, threads of any depth will be fetched. Lower this value if you experience out-of-memory crashes." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:instance > :federation_reachability_timeout_days" +msgid "Timeout (in days) of each external federation target being unreachable prior to pausing federating to it" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:instance > :healthcheck" +msgid "If enabled, system data will be shown on `/api/pleroma/healthcheck`" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:instance > :instance_thumbnail" +msgid "The instance thumbnail can be any image that represents your instance and is used by some apps or services when they display information about your instance." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:instance > :invites_enabled" +msgid "Enable user invitations for admins (depends on `registrations_open` being disabled)" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:instance > :limit" +msgid "Posts character limit (CW/Subject included in the counter)" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:instance > :limit_to_local_content" +msgid "Limit unauthenticated users to search for local statutes and users only. Default: `:unauthenticated`." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:instance > :max_account_fields" +msgid "The maximum number of custom fields in the user profile. Default: 10." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:instance > :max_endorsed_users" +msgid "The maximum number of recommended accounts. 0 will disable the feature." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:instance > :max_media_attachments" +msgid "Maximum number of post media attachments" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:instance > :max_pinned_statuses" +msgid "The maximum number of pinned statuses. 0 will disable the feature." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:instance > :max_remote_account_fields" +msgid "The maximum number of custom fields in the remote user profile. Default: 20." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:instance > :max_report_comment_size" +msgid "The maximum size of the report comment. Default: 1000." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:instance > :multi_factor_authentication" +msgid "Multi-factor authentication settings" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:instance > :multi_factor_authentication > :backup_codes" +msgid "MFA backup codes settings" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:instance > :multi_factor_authentication > :backup_codes > :length" +msgid "Determines the length of backup one-time pass-codes, in characters. Defaults to 16 characters." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:instance > :multi_factor_authentication > :backup_codes > :number" +msgid "Number of backup codes to generate." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:instance > :multi_factor_authentication > :totp" +msgid "TOTP settings" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:instance > :multi_factor_authentication > :totp > :digits" +msgid "Determines the length of a one-time pass-code, in characters. Defaults to 6 characters." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:instance > :multi_factor_authentication > :totp > :period" +msgid "A period for which the TOTP code will be valid, in seconds. Defaults to 30 seconds." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:instance > :name" +msgid "Name of the instance" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:instance > :notify_email" +msgid "Envelope FROM address for mail sent via Pleroma" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:instance > :poll_limits" +msgid "A map with poll limits for local polls" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:instance > :poll_limits > :max_expiration" +msgid "Maximum expiration time (in seconds)" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:instance > :poll_limits > :max_option_chars" +msgid "Maximum number of characters per option" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:instance > :poll_limits > :max_options" +msgid "Maximum number of options" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:instance > :poll_limits > :min_expiration" +msgid "Minimum expiration time (in seconds)" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:instance > :privileged_staff" +msgid "Let moderators access sensitive data (e.g. updating user credentials, get password reset token, delete users, index and read private statuses and chats)" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:instance > :profile_directory" +msgid "Enable profile directory." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:instance > :public" +msgid "Makes the client API in authenticated mode-only except for user-profiles. Useful for disabling the Local Timeline and The Whole Known Network. Note: when setting to `false`, please also check `:restrict_unauthenticated` setting." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:instance > :quarantined_instances" +msgid "List of ActivityPub instances where private (DMs, followers-only) activities will not be sent and the reason for doing so" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:instance > :registration_reason_length" +msgid "Maximum registration reason length. Default: 500." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:instance > :registrations_open" +msgid "Enable registrations for anyone. Invitations require this setting to be disabled." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:instance > :remote_limit" +msgid "Hard character limit beyond which remote posts will be dropped" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:instance > :remote_post_retention_days" +msgid "The default amount of days to retain remote posts when pruning the database" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:instance > :safe_dm_mentions" +msgid "If enabled, only mentions at the beginning of a post will be used to address people in direct messages. This is to prevent accidental mentioning of people when talking about them (e.g. \"@admin please keep an eye on @bad_actor\"). Default: disabled" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:instance > :show_reactions" +msgid "Let favourites and emoji reactions be viewed through the API." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:instance > :skip_thread_containment" +msgid "Skip filtering out broken threads. Default: enabled." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:instance > :static_dir" +msgid "Instance static directory" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:instance > :upload_limit" +msgid "File size limit of uploads (except for avatar, background, banner)" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:instance > :user_bio_length" +msgid "A user bio maximum length. Default: 5000." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:instance > :user_name_length" +msgid "A user name maximum length. Default: 100." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:instances_favicons > :enabled" +msgid "Allow/disallow displaying and getting instances favicons" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:ldap > :base" +msgid "LDAP base, e.g. \"dc=example,dc=com\"" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:ldap > :enabled" +msgid "Enables LDAP authentication" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:ldap > :host" +msgid "LDAP server hostname" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:ldap > :port" +msgid "LDAP port, e.g. 389 or 636" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:ldap > :ssl" +msgid "Enable to use SSL, usually implies the port 636" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:ldap > :sslopts" +msgid "Additional SSL options" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:ldap > :sslopts > :cacertfile" +msgid "Path to file with PEM encoded cacerts" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:ldap > :sslopts > :verify" +msgid "Type of cert verification" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:ldap > :tls" +msgid "Enable to use STARTTLS, usually implies the port 389" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:ldap > :tlsopts" +msgid "Additional TLS options" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:ldap > :tlsopts > :cacertfile" +msgid "Path to file with PEM encoded cacerts" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:ldap > :tlsopts > :verify" +msgid "Type of cert verification" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:ldap > :uid" +msgid "LDAP attribute name to authenticate the user, e.g. when \"cn\", the filter will be \"cn=username,base\"" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:majic_pool > :size" +msgid "Number of majic workers to start." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:manifest > :background_color" +msgid "Describe the background color of the app" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:manifest > :icons" +msgid "Describe the icons of the app" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:manifest > :theme_color" +msgid "Describe the theme color of the app" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:markup > :scrub_policy" +msgid "Module names are shortened (removed leading `Pleroma.HTML.` part), but on adding custom module you need to use full name." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:media_preview_proxy > :enabled" +msgid "Enables proxying of remote media preview to the instance's proxy. Requires enabled media proxy." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:media_preview_proxy > :image_quality" +msgid "Quality of the output. Ranges from 0 (min quality) to 100 (max quality)." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:media_preview_proxy > :min_content_length" +msgid "Min content length (in bytes) to perform preview. Media smaller in size will be served without thumbnailing." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:media_preview_proxy > :thumbnail_max_height" +msgid "Max height of preview thumbnail for images (video preview always has original dimensions)." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:media_preview_proxy > :thumbnail_max_width" +msgid "Max width of preview thumbnail for images (video preview always has original dimensions)." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:media_proxy > :base_url" +msgid "The base URL to access a user-uploaded file. Useful when you want to proxy the media files via another host/CDN fronts." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:media_proxy > :enabled" +msgid "Enables proxying of remote media via the instance's proxy" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:media_proxy > :invalidation > :enabled" +msgid "Enables media cache object invalidation." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:media_proxy > :invalidation > :provider" +msgid "Module which will be used to purge objects from the cache." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:media_proxy > :proxy_opts" +msgid "Internal Pleroma.ReverseProxy settings" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:media_proxy > :proxy_opts > :max_body_length" +msgid "Maximum file size (in bytes) allowed through the Pleroma MediaProxy cache." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:media_proxy > :proxy_opts > :max_read_duration" +msgid "Timeout (in milliseconds) of GET request to the remote URI." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:media_proxy > :proxy_opts > :redirect_on_failure" +msgid "Redirects the client to the origin server upon encountering HTTP errors.\n\nNote that files larger than Max Body Length will trigger an error. (e.g., Peertube videos)\n\n\n**WARNING:** This setting will allow larger files to be accessed, but exposes the\n\nIP addresses of your users to the other servers, bypassing the MediaProxy.\n" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:media_proxy > :whitelist" +msgid "List of hosts with scheme to bypass the MediaProxy" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:modules > :runtime_dir" +msgid "A path to custom Elixir modules (such as MRF policies)." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:mrf > :policies" +msgid "A list of MRF policies enabled. Module names are shortened (removed leading `Pleroma.Web.ActivityPub.MRF.` part), but on adding custom module you need to use full name." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:mrf > :transparency" +msgid "Make the content of your Message Rewrite Facility settings public (via nodeinfo)" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:mrf > :transparency_exclusions" +msgid "Exclude specific instance names from MRF transparency. The use of the exclusions feature will be disclosed in nodeinfo as a boolean value. You can also provide a reason for excluding these instance names. The instances and reasons won't be publicly disclosed." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:mrf_activity_expiration > :days" +msgid "Default global expiration time for all local activities (in days)" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:mrf_follow_bot > :follower_nickname" +msgid "The name of the bot account to use for following newly discovered users." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:mrf_hashtag > :federated_timeline_removal" +msgid "A list of hashtags which result in message being removed from federated timelines (a.k.a unlisted)." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:mrf_hashtag > :reject" +msgid "A list of hashtags which result in message being rejected." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:mrf_hashtag > :sensitive" +msgid "A list of hashtags which result in message being set as sensitive (a.k.a NSFW/R-18)" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:mrf_hellthread > :delist_threshold" +msgid "Number of mentioned users after which the message gets removed from timelines anddisables notifications. Set to 0 to disable." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:mrf_hellthread > :reject_threshold" +msgid "Number of mentioned users after which the messaged gets rejected. Set to 0 to disable." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:mrf_keyword > :federated_timeline_removal" +msgid " A list of patterns which result in message being removed from federated timelines (a.k.a unlisted).\n\n Each pattern can be a string or [Regex](https://hexdocs.pm/elixir/Regex.html) in the format of `~r/PATTERN/`.\n" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:mrf_keyword > :reject" +msgid " A list of patterns which result in message being rejected.\n\n Each pattern can be a string or [Regex](https://hexdocs.pm/elixir/Regex.html) in the format of `~r/PATTERN/`.\n" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:mrf_keyword > :replace" +msgid " **Pattern**: a string or [Regex](https://hexdocs.pm/elixir/Regex.html) in the format of `~r/PATTERN/`.\n\n **Replacement**: a string. Leaving the field empty is permitted.\n" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:mrf_mention > :actors" +msgid "A list of actors for which any post mentioning them will be dropped" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:mrf_object_age > :actions" +msgid "A list of actions to apply to the post. `:delist` removes the post from public timelines; `:strip_followers` removes followers from the ActivityPub recipient list ensuring they won't be delivered to home timelines; `:reject` rejects the message entirely" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:mrf_object_age > :threshold" +msgid "Required age (in seconds) of a post before actions are taken." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:mrf_rejectnonpublic > :allow_direct" +msgid "Whether to allow direct messages" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:mrf_rejectnonpublic > :allow_followersonly" +msgid "Whether to allow followers-only posts" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:mrf_simple > :accept" +msgid "List of instances to only accept activities from (except deletes) and the reason for doing so" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:mrf_simple > :avatar_removal" +msgid "List of instances to strip avatars from and the reason for doing so" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:mrf_simple > :banner_removal" +msgid "List of instances to strip banners from and the reason for doing so" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:mrf_simple > :federated_timeline_removal" +msgid "List of instances to remove from the Federated (aka The Whole Known Network) Timeline and the reason for doing so" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:mrf_simple > :followers_only" +msgid "Force posts from the given instances to be visible by followers only and the reason for doing so" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:mrf_simple > :media_nsfw" +msgid "List of instances to tag all media as NSFW (sensitive) from and the reason for doing so" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:mrf_simple > :media_removal" +msgid "List of instances to strip media attachments from and the reason for doing so" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:mrf_simple > :reject" +msgid "List of instances to reject activities from (except deletes) and the reason for doing so" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:mrf_simple > :reject_deletes" +msgid "List of instances to reject deletions from and the reason for doing so" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:mrf_simple > :report_removal" +msgid "List of instances to reject reports from and the reason for doing so" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:mrf_steal_emoji > :hosts" +msgid "List of hosts to steal emojis from" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:mrf_steal_emoji > :rejected_shortcodes" +msgid " A list of patterns or matches to reject shortcodes with.\n\n Each pattern can be a string or [Regex](https://hexdocs.pm/elixir/Regex.html) in the format of `~r/PATTERN/`.\n" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:mrf_steal_emoji > :size_limit" +msgid "File size limit (in bytes), checked before an emoji is saved to the disk" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:mrf_subchain > :match_actor" +msgid "Matches a series of regular expressions against the actor field" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:mrf_vocabulary > :accept" +msgid "A list of ActivityStreams terms to accept. If empty, all supported messages are accepted." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:mrf_vocabulary > :reject" +msgid "A list of ActivityStreams terms to reject. If empty, no messages are rejected." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:oauth2 > :clean_expired_tokens" +msgid "Enable a background job to clean expired OAuth tokens. Default: disabled." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:oauth2 > :issue_new_refresh_token" +msgid "Keeps old refresh token or generate new refresh token when to obtain an access token" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:oauth2 > :token_expires_in" +msgid "The lifetime in seconds of the access token" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:pools > :default" +msgid "Settings for default pool." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:pools > :default > :max_waiting" +msgid "Maximum number of requests waiting for other requests to finish. After this number is reached, the pool will start returning errrors when a new request is made" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:pools > :default > :recv_timeout" +msgid "Timeout for the pool while gun will wait for response" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:pools > :default > :size" +msgid "Maximum number of concurrent requests in the pool." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:pools > :federation" +msgid "Settings for federation pool." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:pools > :federation > :max_waiting" +msgid "Maximum number of requests waiting for other requests to finish. After this number is reached, the pool will start returning errrors when a new request is made" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:pools > :federation > :recv_timeout" +msgid "Timeout for the pool while gun will wait for response" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:pools > :federation > :size" +msgid "Maximum number of concurrent requests in the pool." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:pools > :media" +msgid "Settings for media pool." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:pools > :media > :max_waiting" +msgid "Maximum number of requests waiting for other requests to finish. After this number is reached, the pool will start returning errrors when a new request is made" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:pools > :media > :recv_timeout" +msgid "Timeout for the pool while gun will wait for response" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:pools > :media > :size" +msgid "Maximum number of concurrent requests in the pool." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:pools > :upload" +msgid "Settings for upload pool." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:pools > :upload > :max_waiting" +msgid "Maximum number of requests waiting for other requests to finish. After this number is reached, the pool will start returning errrors when a new request is made" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:pools > :upload > :recv_timeout" +msgid "Timeout for the pool while gun will wait for response" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:pools > :upload > :size" +msgid "Maximum number of concurrent requests in the pool." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:populate_hashtags_table > :fault_rate_allowance" +msgid "Max accepted rate of objects that failed in the migration. Any value from 0.0 which tolerates no errors to 1.0 which will enable the feature even if hashtags transfer failed for all records." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:populate_hashtags_table > :sleep_interval_ms" +msgid "Sleep interval between each chunk of processed records in order to decrease the load on the system (defaults to 0 and should be keep default on most instances)." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:rate_limit > :app_account_creation" +msgid "For registering user accounts from the same IP address" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:rate_limit > :authentication" +msgid "For authentication create / password check / user existence check requests" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:rate_limit > :relation_id_action" +msgid "For actions on relation with a specific user (follow, unfollow)" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:rate_limit > :relations_actions" +msgid "For actions on relationships with all users (follow, unfollow)" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:rate_limit > :search" +msgid "For the search requests (account & status search etc.)" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:rate_limit > :status_id_action" +msgid "For fav / unfav or reblog / unreblog actions on the same status by the same user" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:rate_limit > :statuses_actions" +msgid "For create / delete / fav / unfav / reblog / unreblog actions on any statuses" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:rate_limit > :timeline" +msgid "For requests to timelines (each timeline has it's own limiter)" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:restrict_unauthenticated > :activities" +msgid "Settings for statuses." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:restrict_unauthenticated > :activities > :local" +msgid "Disallow view local statuses." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:restrict_unauthenticated > :activities > :remote" +msgid "Disallow view remote statuses." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:restrict_unauthenticated > :profiles" +msgid "Settings for user profiles." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:restrict_unauthenticated > :profiles > :local" +msgid "Disallow view local user profiles." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:restrict_unauthenticated > :profiles > :remote" +msgid "Disallow view remote user profiles." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:restrict_unauthenticated > :timelines" +msgid "Settings for public and federated timelines." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:restrict_unauthenticated > :timelines > :federated" +msgid "Disallow view federated timeline." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:restrict_unauthenticated > :timelines > :local" +msgid "Disallow view public timeline." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:rich_media > :enabled" +msgid "Enables RichMedia parsing of URLs" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:rich_media > :failure_backoff" +msgid "Amount of milliseconds after request failure, during which the request will not be retried." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:rich_media > :ignore_hosts" +msgid "List of hosts which will be ignored by the metadata parser" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:rich_media > :ignore_tld" +msgid "List TLDs (top-level domains) which will ignore for parse metadata" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:rich_media > :parsers" +msgid "List of Rich Media parsers. Module names are shortened (removed leading `Pleroma.Web.RichMedia.Parsers.` part), but on adding custom module you need to use full name." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:rich_media > :ttl_setters" +msgid "List of rich media TTL setters. Module names are shortened (removed leading `Pleroma.Web.RichMedia.Parser.` part), but on adding custom module you need to use full name." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:shout > :enabled" +msgid "Enables the backend Shoutbox chat feature." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:shout > :limit" +msgid "Shout message character limit." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:static_fe > :enabled" +msgid "Enables the rendering of static HTML. Default: disabled." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:streamer > :overflow_workers" +msgid "Maximum number of workers created if pool is empty" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:streamer > :workers" +msgid "Number of workers to send notifications" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:uri_schemes > :valid_schemes" +msgid "List of the scheme part that is considered valid to be an URL" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:web_cache_ttl > :activity_pub" +msgid "Activity pub routes (except question activities). Default: `nil` (no expiration)." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:web_cache_ttl > :activity_pub_question" +msgid "Activity pub routes (question activities). Default: `30_000` (30 seconds)." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:welcome > :chat_message > :enabled" +msgid "Enables sending a chat message to newly registered users" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:welcome > :chat_message > :message" +msgid "A message that will be sent to newly registered users as a chat message" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:welcome > :chat_message > :sender_nickname" +msgid "The nickname of the local user that sends a welcome chat message" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:welcome > :direct_message > :enabled" +msgid "Enables sending a direct message to newly registered users" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:welcome > :direct_message > :message" +msgid "A message that will be sent to newly registered users" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:welcome > :direct_message > :sender_nickname" +msgid "The nickname of the local user that sends a welcome message" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:welcome > :email > :enabled" +msgid "Enables sending an email to newly registered users" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:welcome > :email > :html" +msgid "HTML content of the welcome email. EEX template with user and instance_name variables can be used." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:welcome > :email > :sender" +msgid "Email address and/or nickname that will be used to send the welcome email." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:welcome > :email > :subject" +msgid "Subject of the welcome email. EEX template with user and instance_name variables can be used." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:welcome > :email > :text" +msgid "Text content of the welcome email. EEX template with user and instance_name variables can be used." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:workers > :retries" +msgid "Max retry attempts for failed jobs, per `Oban` queue" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-ConcurrentLimiter > Pleroma.Web.ActivityPub.MRF.MediaProxyWarmingPolicy" +msgid "Concurrent limits configuration for MediaProxyWarmingPolicy." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-ConcurrentLimiter > Pleroma.Web.ActivityPub.MRF.MediaProxyWarmingPolicy > :max_running" +msgid "Max running concurrently jobs." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-ConcurrentLimiter > Pleroma.Web.ActivityPub.MRF.MediaProxyWarmingPolicy > :max_waiting" +msgid "Max waiting jobs." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-ConcurrentLimiter > Pleroma.Web.RichMedia.Helpers" +msgid "Concurrent limits configuration for getting RichMedia for activities." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-ConcurrentLimiter > Pleroma.Web.RichMedia.Helpers > :max_running" +msgid "Max running concurrently jobs." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-ConcurrentLimiter > Pleroma.Web.RichMedia.Helpers > :max_waiting" +msgid "Max waiting jobs." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-Oban > :crontab" +msgid "Settings for cron background jobs" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-Oban > :log" +msgid "Logs verbose mode" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-Oban > :queues" +msgid "Background jobs queues (keys: queues, values: max numbers of concurrent jobs)" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-Oban > :queues > :activity_expiration" +msgid "Activity expiration queue" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-Oban > :queues > :attachments_cleanup" +msgid "Attachment deletion queue" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-Oban > :queues > :background" +msgid "Background queue" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-Oban > :queues > :backup" +msgid "Backup queue" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-Oban > :queues > :federator_incoming" +msgid "Incoming federation queue" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-Oban > :queues > :federator_outgoing" +msgid "Outgoing federation queue" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-Oban > :queues > :mailer" +msgid "Email sender queue, see Pleroma.Emails.Mailer" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-Oban > :queues > :scheduled_activities" +msgid "Scheduled activities queue, see Pleroma.ScheduledActivities" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-Oban > :queues > :transmogrifier" +msgid "Transmogrifier queue" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-Oban > :queues > :web_push" +msgid "Web push notifications queue" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-Pleroma.Captcha > :enabled" +msgid "Whether the captcha should be shown on registration" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-Pleroma.Captcha > :method" +msgid "The method/service to use for captcha" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-Pleroma.Captcha > :seconds_valid" +msgid "The time in seconds for which the captcha is valid" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-Pleroma.Captcha.Kocaptcha > :endpoint" +msgid "The kocaptcha endpoint to use" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-Pleroma.Emails.Mailer > :adapter" +msgid "One of the mail adapters listed in [Swoosh documentation](https://hexdocs.pm/swoosh/Swoosh.html#module-adapters)" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-Pleroma.Emails.Mailer > Swoosh.Adapters.SMTP-:auth" +msgid "SMTP AUTH enforcement mode" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-Pleroma.Emails.Mailer > Swoosh.Adapters.SMTP-:password" +msgid "SMTP AUTH password" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-Pleroma.Emails.Mailer > Swoosh.Adapters.SMTP-:port" +msgid "SMTP port" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-Pleroma.Emails.Mailer > Swoosh.Adapters.SMTP-:relay" +msgid "Hostname or IP address" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-Pleroma.Emails.Mailer > Swoosh.Adapters.SMTP-:retries" +msgid "SMTP temporary (4xx) error retries" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-Pleroma.Emails.Mailer > Swoosh.Adapters.SMTP-:ssl" +msgid "Use Implicit SSL/TLS. e.g. port 465" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-Pleroma.Emails.Mailer > Swoosh.Adapters.SMTP-:tls" +msgid "Explicit TLS (STARTTLS) enforcement mode" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-Pleroma.Emails.Mailer > Swoosh.Adapters.SMTP-:username" +msgid "SMTP AUTH username" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-Pleroma.Emails.NewUsersDigestEmail > :enabled" +msgid "Enables new users admin digest email when `true`" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-Pleroma.Emails.UserEmail > :logo" +msgid "A path to a custom logo. Set it to `nil` to use the default Pleroma logo." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-Pleroma.Emails.UserEmail > :styling" +msgid "A map with color settings for email templates." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-Pleroma.Formatter > :class" +msgid "Specify the class to be added to the generated link. Disable to clear." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-Pleroma.Formatter > :extra" +msgid "Link URLs with rarely used schemes (magnet, ipfs, irc, etc.)" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-Pleroma.Formatter > :new_window" +msgid "Link URLs will open in a new window/tab." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-Pleroma.Formatter > :rel" +msgid "Override the rel attribute. Disable to clear." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-Pleroma.Formatter > :strip_prefix" +msgid "Strip the scheme prefix." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-Pleroma.Formatter > :truncate" +msgid "Set to a number to truncate URLs longer than the number. Truncated URLs will end in `...`" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-Pleroma.Formatter > :validate_tld" +msgid "Set to false to disable TLD validation for URLs/emails. Can be set to :no_scheme to validate TLDs only for URLs without a scheme (e.g `example.com` will be validated, but `http://example.loki` won't)" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-Pleroma.ScheduledActivity > :daily_user_limit" +msgid "The number of scheduled activities a user is allowed to create in a single day. Default: 25." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-Pleroma.ScheduledActivity > :enabled" +msgid "Whether scheduled activities are sent to the job queue to be executed" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-Pleroma.ScheduledActivity > :total_user_limit" +msgid "The number of scheduled activities a user is allowed to create in total. Default: 300." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-Pleroma.Upload > :base_url" +msgid "Base URL for the uploads. Required if you use a CDN or host attachments under a different domain." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-Pleroma.Upload > :filename_display_max_length" +msgid "Set max length of a filename to display. 0 = no limit. Default: 30" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-Pleroma.Upload > :filters" +msgid "List of filter modules for uploads. Module names are shortened (removed leading `Pleroma.Upload.Filter.` part), but on adding custom module you need to use full name." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-Pleroma.Upload > :link_name" +msgid "If enabled, a name parameter will be added to the URL of the upload. For example `https://instance.tld/media/imagehash.png?name=realname.png`." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-Pleroma.Upload > :proxy_remote" +msgid "Proxy requests to the remote uploader.\n\nUseful if media upload endpoint is not internet accessible.\n" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-Pleroma.Upload > :uploader" +msgid "Module which will be used for uploads" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-Pleroma.Upload.Filter.AnonymizeFilename > :text" +msgid "Text to replace filenames in links. If no setting, {random}.extension will be used. You can get the original filename extension by using {extension}, for example custom-file-name.{extension}." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-Pleroma.Upload.Filter.Mogrify > :args" +msgid "List of actions for the mogrify command. It's possible to add self-written settings as string. For example `auto-orient, strip, {\"resize\", \"3840x1080>\"}` value will be parsed into valid list of the settings." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-Pleroma.Uploaders.Local > :uploads" +msgid "Path where user's uploads will be saved" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-Pleroma.Uploaders.S3 > :bucket" +msgid "S3 bucket" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-Pleroma.Uploaders.S3 > :bucket_namespace" +msgid "S3 bucket namespace" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-Pleroma.Uploaders.S3 > :streaming_enabled" +msgid "Enable streaming uploads, when enabled the file will be sent to the server in chunks as it's being read. This may be unsupported by some providers, try disabling this if you have upload problems." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-Pleroma.Uploaders.S3 > :truncated_namespace" +msgid "If you use S3 compatible service such as Digital Ocean Spaces or CDN, set folder name or \"\" etc. For example, when using CDN to S3 virtual host format, set \"\". At this time, write CNAME to CDN in Upload base_url." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-Pleroma.User > :email_blacklist" +msgid "List of email domains users may not register with." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-Pleroma.User > :restricted_nicknames" +msgid "List of nicknames users may not register with." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-Pleroma.User.Backup > :limit_days" +msgid "Limit user to export not more often than once per N days" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-Pleroma.User.Backup > :purge_after_days" +msgid "Remove backup achives after N days" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-Pleroma.Web.ApiSpec.CastAndValidate > :strict" +msgid "Enables strict input validation (useful in development, not recommended in production)" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-Pleroma.Web.MediaProxy.Invalidation.Http > :headers" +msgid "HTTP headers of request" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-Pleroma.Web.MediaProxy.Invalidation.Http > :method" +msgid "HTTP method of request. Default: :purge" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-Pleroma.Web.MediaProxy.Invalidation.Http > :options" +msgid "Request options" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-Pleroma.Web.MediaProxy.Invalidation.Script > :script_path" +msgid "Path to executable script which will purge cached items." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-Pleroma.Web.MediaProxy.Invalidation.Script > :url_format" +msgid "Optional URL format preprocessing. Only required for Apache's htcacheclean." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-Pleroma.Web.Metadata > :providers" +msgid "List of metadata providers to enable" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-Pleroma.Web.Metadata > :unfurl_nsfw" +msgid "When enabled NSFW attachments will be shown in previews" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-Pleroma.Web.Plugs.RemoteIp > :enabled" +msgid "Enable/disable the plug. Default: disabled." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-Pleroma.Web.Plugs.RemoteIp > :headers" +msgid " A list of strings naming the HTTP headers to use when deriving the true client IP. Default: `[\"x-forwarded-for\"]`.\n" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-Pleroma.Web.Plugs.RemoteIp > :proxies" +msgid "A list of upstream proxy IP subnets in CIDR notation from which we will parse the content of `headers`. Defaults to `[]`. IPv4 entries without a bitmask will be assumed to be /32 and IPv6 /128." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-Pleroma.Web.Plugs.RemoteIp > :reserved" +msgid " A list of reserved IP subnets in CIDR notation which should be ignored if found in `headers`. Defaults to `[\"127.0.0.0/8\", \"::1/128\", \"fc00::/7\", \"10.0.0.0/8\", \"172.16.0.0/12\", \"192.168.0.0/16\"]`\n" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-Pleroma.Web.Preload > :providers" +msgid "List of preload providers to enable" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-Pleroma.Workers.PurgeExpiredActivity > :enabled" +msgid "Enables expired activities addition & deletion" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-Pleroma.Workers.PurgeExpiredActivity > :min_lifetime" +msgid "Minimum lifetime for ephemeral activity (in seconds)" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :prometheus-Pleroma.Web.Endpoint.MetricsExporter > :auth" +msgid "Enables HTTP Basic Auth for app metrics endpoint." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :prometheus-Pleroma.Web.Endpoint.MetricsExporter > :enabled" +msgid "[Pleroma extension] Enables app metrics endpoint." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :prometheus-Pleroma.Web.Endpoint.MetricsExporter > :format" +msgid "App metrics endpoint output format." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :prometheus-Pleroma.Web.Endpoint.MetricsExporter > :ip_whitelist" +msgid "Restrict access of app metrics endpoint to the specified IP addresses." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :prometheus-Pleroma.Web.Endpoint.MetricsExporter > :path" +msgid "App metrics endpoint URI path." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :quack > :level" +msgid "Log level" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :quack > :meta" +msgid "Configure which metadata you want to report on" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :quack > :webhook_url" +msgid "Configure the Slack incoming webhook" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :web_push_encryption-:vapid_details > :private_key" +msgid "VAPID private key" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :web_push_encryption-:vapid_details > :public_key" +msgid "VAPID public key" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :web_push_encryption-:vapid_details > :subject" +msgid "A mailto link for the administrative contact. It's best if this email is not a personal email address, but rather a group email to the instance moderation team." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :cors_plug > :credentials" +msgid "Credentials" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :cors_plug > :expose" +msgid "Expose" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :cors_plug > :headers" +msgid "Headers" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :cors_plug > :max_age" +msgid "Max age" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :cors_plug > :methods" +msgid "Methods" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :esshd > :enabled" +msgid "Enabled" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :esshd > :handler" +msgid "Handler" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :esshd > :password_authenticator" +msgid "Password authenticator" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :esshd > :port" +msgid "Port" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :esshd > :priv_dir" +msgid "Priv dir" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :ex_aws-:s3 > :access_key_id" +msgid "Access key" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :ex_aws-:s3 > :host" +msgid "Host" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :ex_aws-:s3 > :region" +msgid "Region" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :ex_aws-:s3 > :secret_access_key" +msgid "Secret access key" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :logger > :backends" +msgid "Backends" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :logger-:console > :format" +msgid "Format" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :logger-:console > :level" +msgid "Level" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :logger-:console > :metadata" +msgid "Metadata" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :logger-:ex_syslogger > :format" +msgid "Format" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :logger-:ex_syslogger > :ident" +msgid "Ident" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :logger-:ex_syslogger > :level" +msgid "Level" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :logger-:ex_syslogger > :metadata" +msgid "Metadata" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :mime > :types" +msgid "Types" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :mime > :types > application/activity+json" +msgid "\"application/activity+json\"" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :mime > :types > application/jrd+json" +msgid "\"application/jrd+json\"" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :mime > :types > application/ld+json" +msgid "\"application/ld+json\"" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :mime > :types > application/xml" +msgid "\"application/xml\"" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :mime > :types > application/xrd+xml" +msgid "\"application/xrd+xml\"" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma > :admin_token" +msgid "Admin token" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma > Pleroma.Web.Auth.Authenticator" +msgid "Pleroma.Web.Auth.Authenticator" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:activitypub > :blockers_visible" +msgid "Blockers visible" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:activitypub > :follow_handshake_timeout" +msgid "Follow handshake timeout" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:activitypub > :note_replies_output_limit" +msgid "Note replies output limit" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:activitypub > :outgoing_blocks" +msgid "Outgoing blocks" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:activitypub > :sign_object_fetches" +msgid "Sign object fetches" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:activitypub > :unfollow_blocked" +msgid "Unfollow blocked" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:assets > :default_mascot" +msgid "Default mascot" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:assets > :default_user_avatar" +msgid "Default user avatar" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:assets > :mascots" +msgid "Mascots" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:auth > :auth_template" +msgid "Auth template" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:auth > :enforce_oauth_admin_scope_usage" +msgid "Enforce OAuth admin scope usage" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:auth > :oauth_consumer_strategies" +msgid "OAuth consumer strategies" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:auth > :oauth_consumer_template" +msgid "OAuth consumer template" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:connections_pool > :connect_timeout" +msgid "Connect timeout" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:connections_pool > :connection_acquisition_retries" +msgid "Connection acquisition retries" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:connections_pool > :connection_acquisition_wait" +msgid "Connection acquisition wait" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:connections_pool > :max_connections" +msgid "Max connections" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:connections_pool > :reclaim_multiplier" +msgid "Reclaim multiplier" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:email_notifications > :digest" +msgid "Digest" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:email_notifications > :digest > :active" +msgid "Enabled" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:email_notifications > :digest > :inactivity_threshold" +msgid "Inactivity threshold" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:email_notifications > :digest > :interval" +msgid "Interval" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:email_notifications > :digest > :schedule" +msgid "Schedule" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:emoji > :default_manifest" +msgid "Default manifest" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:emoji > :groups" +msgid "Groups" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:emoji > :pack_extensions" +msgid "Pack extensions" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:emoji > :shared_pack_cache_seconds_per_file" +msgid "Shared pack cache s/file" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:emoji > :shortcode_globs" +msgid "Shortcode globs" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:features > :improved_hashtag_timeline" +msgid "Improved hashtag timeline" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:feed > :post_title" +msgid "Post title" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:feed > :post_title > :max_length" +msgid "Max length" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:feed > :post_title > :omission" +msgid "Omission" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:frontend_configurations > :pleroma_fe" +msgid "Pleroma FE" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:frontend_configurations > :pleroma_fe > :alwaysShowSubjectInput" +msgid "Always show subject input" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:frontend_configurations > :pleroma_fe > :background" +msgid "Background" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:frontend_configurations > :pleroma_fe > :collapseMessageWithSubject" +msgid "Collapse message with subject" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:frontend_configurations > :pleroma_fe > :greentext" +msgid "Greentext" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:frontend_configurations > :pleroma_fe > :hideFilteredStatuses" +msgid "Hide Filtered Statuses" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:frontend_configurations > :pleroma_fe > :hideMutedPosts" +msgid "Hide Muted Posts" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:frontend_configurations > :pleroma_fe > :hidePostStats" +msgid "Hide post stats" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:frontend_configurations > :pleroma_fe > :hideSitename" +msgid "Hide Sitename" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:frontend_configurations > :pleroma_fe > :hideUserStats" +msgid "Hide user stats" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:frontend_configurations > :pleroma_fe > :logo" +msgid "Logo" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:frontend_configurations > :pleroma_fe > :logoMargin" +msgid "Logo margin" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:frontend_configurations > :pleroma_fe > :logoMask" +msgid "Logo mask" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:frontend_configurations > :pleroma_fe > :minimalScopesMode" +msgid "Minimal scopes mode" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:frontend_configurations > :pleroma_fe > :nsfwCensorImage" +msgid "NSFW Censor Image" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:frontend_configurations > :pleroma_fe > :postContentType" +msgid "Post Content Type" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:frontend_configurations > :pleroma_fe > :redirectRootLogin" +msgid "Redirect root login" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:frontend_configurations > :pleroma_fe > :redirectRootNoLogin" +msgid "Redirect root no login" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:frontend_configurations > :pleroma_fe > :scopeCopy" +msgid "Scope copy" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:frontend_configurations > :pleroma_fe > :showFeaturesPanel" +msgid "Show instance features panel" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:frontend_configurations > :pleroma_fe > :showInstanceSpecificPanel" +msgid "Show instance specific panel" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:frontend_configurations > :pleroma_fe > :sidebarRight" +msgid "Sidebar on Right" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:frontend_configurations > :pleroma_fe > :subjectLineBehavior" +msgid "Subject line behavior" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:frontend_configurations > :pleroma_fe > :theme" +msgid "Theme" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:frontends > :admin" +msgid "Admin" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:frontends > :admin > name" +msgid "Name" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:frontends > :admin > ref" +msgid "Reference" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:frontends > :available" +msgid "Available" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:frontends > :available > build_dir" +msgid "Build directory" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:frontends > :available > build_url" +msgid "Build URL" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:frontends > :available > custom-http-headers" +msgid "Custom HTTP headers" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:frontends > :available > git" +msgid "Git Repository URL" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:frontends > :available > name" +msgid "Name" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:frontends > :available > ref" +msgid "Reference" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:frontends > :primary" +msgid "Primary" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:frontends > :primary > name" +msgid "Name" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:frontends > :primary > ref" +msgid "Reference" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:gopher > :dstport" +msgid "Dstport" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:gopher > :enabled" +msgid "Enabled" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:gopher > :ip" +msgid "IP" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:gopher > :port" +msgid "Port" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:hackney_pools > :federation" +msgid "Federation" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:hackney_pools > :federation > :max_connections" +msgid "Max connections" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:hackney_pools > :federation > :timeout" +msgid "Timeout" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:hackney_pools > :media" +msgid "Media" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:hackney_pools > :media > :max_connections" +msgid "Max connections" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:hackney_pools > :media > :timeout" +msgid "Timeout" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:hackney_pools > :upload" +msgid "Upload" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:hackney_pools > :upload > :max_connections" +msgid "Max connections" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:hackney_pools > :upload > :timeout" +msgid "Timeout" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:http > :adapter" +msgid "Adapter" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:http > :adapter > :ssl_options" +msgid "SSL Options" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:http > :adapter > :ssl_options > :versions" +msgid "Versions" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:http > :proxy_url" +msgid "Proxy URL" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:http > :send_user_agent" +msgid "Send user agent" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:http > :user_agent" +msgid "User agent" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:http_security > :ct_max_age" +msgid "CT max age" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:http_security > :enabled" +msgid "Enabled" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:http_security > :referrer_policy" +msgid "Referrer policy" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:http_security > :report_uri" +msgid "Report URI" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:http_security > :sts" +msgid "STS" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:http_security > :sts_max_age" +msgid "STS max age" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:instance > :account_activation_required" +msgid "Account activation required" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:instance > :account_approval_required" +msgid "Account approval required" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:instance > :account_field_name_length" +msgid "Account field name length" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:instance > :account_field_value_length" +msgid "Account field value length" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:instance > :allow_relay" +msgid "Allow relay" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:instance > :allowed_post_formats" +msgid "Allowed post formats" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:instance > :attachment_links" +msgid "Attachment links" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:instance > :autofollowed_nicknames" +msgid "Autofollowed nicknames" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:instance > :autofollowing_nicknames" +msgid "Autofollowing nicknames" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:instance > :avatar_upload_limit" +msgid "Avatar upload limit" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:instance > :background_upload_limit" +msgid "Background upload limit" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:instance > :banner_upload_limit" +msgid "Banner upload limit" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:instance > :birthday_min_age" +msgid "Birthday min age" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:instance > :birthday_required" +msgid "Birthday required" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:instance > :cleanup_attachments" +msgid "Cleanup attachments" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:instance > :description" +msgid "Description" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:instance > :email" +msgid "Admin Email Address" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:instance > :extended_nickname_format" +msgid "Extended nickname format" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:instance > :external_user_synchronization" +msgid "External user synchronization" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:instance > :federating" +msgid "Federating" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:instance > :federation_incoming_replies_max_depth" +msgid "Fed. incoming replies max depth" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:instance > :federation_reachability_timeout_days" +msgid "Fed. reachability timeout days" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:instance > :healthcheck" +msgid "Healthcheck" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:instance > :instance_thumbnail" +msgid "Instance thumbnail" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:instance > :invites_enabled" +msgid "Invites enabled" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:instance > :limit" +msgid "Limit" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:instance > :limit_to_local_content" +msgid "Limit to local content" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:instance > :max_account_fields" +msgid "Max account fields" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:instance > :max_endorsed_users" +msgid "Max endorsed users" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:instance > :max_media_attachments" +msgid "Max media attachments" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:instance > :max_pinned_statuses" +msgid "Max pinned statuses" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:instance > :max_remote_account_fields" +msgid "Max remote account fields" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:instance > :max_report_comment_size" +msgid "Max report comment size" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:instance > :multi_factor_authentication" +msgid "Multi factor authentication" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:instance > :multi_factor_authentication > :backup_codes" +msgid "Backup codes" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:instance > :multi_factor_authentication > :backup_codes > :length" +msgid "Length" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:instance > :multi_factor_authentication > :backup_codes > :number" +msgid "Number" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:instance > :multi_factor_authentication > :totp" +msgid "TOTP settings" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:instance > :multi_factor_authentication > :totp > :digits" +msgid "Digits" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:instance > :multi_factor_authentication > :totp > :period" +msgid "Period" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:instance > :name" +msgid "Name" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:instance > :notify_email" +msgid "Sender Email Address" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:instance > :poll_limits" +msgid "Poll limits" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:instance > :poll_limits > :max_expiration" +msgid "Max expiration" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:instance > :poll_limits > :max_option_chars" +msgid "Max option chars" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:instance > :poll_limits > :max_options" +msgid "Max options" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:instance > :poll_limits > :min_expiration" +msgid "Min expiration" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:instance > :privileged_staff" +msgid "Privileged staff" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:instance > :profile_directory" +msgid "Profile directory" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:instance > :public" +msgid "Public" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:instance > :quarantined_instances" +msgid "Quarantined instances" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:instance > :registration_reason_length" +msgid "Registration reason length" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:instance > :registrations_open" +msgid "Registrations open" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:instance > :remote_limit" +msgid "Remote limit" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:instance > :remote_post_retention_days" +msgid "Remote post retention days" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:instance > :safe_dm_mentions" +msgid "Safe DM mentions" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:instance > :show_reactions" +msgid "Show reactions" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:instance > :skip_thread_containment" +msgid "Skip thread containment" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:instance > :static_dir" +msgid "Static dir" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:instance > :upload_limit" +msgid "Upload limit" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:instance > :user_bio_length" +msgid "User bio length" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:instance > :user_name_length" +msgid "User name length" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:instances_favicons > :enabled" +msgid "Enabled" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:ldap > :base" +msgid "Base" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:ldap > :enabled" +msgid "Enabled" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:ldap > :host" +msgid "Host" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:ldap > :port" +msgid "Port" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:ldap > :ssl" +msgid "SSL" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:ldap > :sslopts" +msgid "SSL options" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:ldap > :sslopts > :cacertfile" +msgid "Cacertfile" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:ldap > :sslopts > :verify" +msgid "Verify" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:ldap > :tls" +msgid "TLS" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:ldap > :tlsopts" +msgid "TLS options" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:ldap > :tlsopts > :cacertfile" +msgid "Cacertfile" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:ldap > :tlsopts > :verify" +msgid "Verify" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:ldap > :uid" +msgid "UID" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:majic_pool > :size" +msgid "Size" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:manifest > :background_color" +msgid "Background color" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:manifest > :icons" +msgid "Icons" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:manifest > :theme_color" +msgid "Theme color" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:markup > :allow_fonts" +msgid "Allow fonts" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:markup > :allow_headings" +msgid "Allow headings" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:markup > :allow_inline_images" +msgid "Allow inline images" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:markup > :allow_tables" +msgid "Allow tables" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:markup > :scrub_policy" +msgid "Scrub policy" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:media_preview_proxy > :enabled" +msgid "Enabled" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:media_preview_proxy > :image_quality" +msgid "Image quality" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:media_preview_proxy > :min_content_length" +msgid "Min content length" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:media_preview_proxy > :thumbnail_max_height" +msgid "Thumbnail max height" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:media_preview_proxy > :thumbnail_max_width" +msgid "Thumbnail max width" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:media_proxy > :base_url" +msgid "Base URL" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:media_proxy > :enabled" +msgid "Enabled" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:media_proxy > :invalidation" +msgid "Invalidation" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:media_proxy > :invalidation > :enabled" +msgid "Enabled" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:media_proxy > :invalidation > :provider" +msgid "Provider" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:media_proxy > :proxy_opts" +msgid "Advanced MediaProxy Options" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:media_proxy > :proxy_opts > :max_body_length" +msgid "Max body length" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:media_proxy > :proxy_opts > :max_read_duration" +msgid "Max read duration" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:media_proxy > :proxy_opts > :redirect_on_failure" +msgid "Redirect on failure" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:media_proxy > :whitelist" +msgid "Whitelist" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:modules > :runtime_dir" +msgid "Runtime dir" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:mrf > :policies" +msgid "Policies" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:mrf > :transparency" +msgid "MRF transparency" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:mrf > :transparency_exclusions" +msgid "MRF transparency exclusions" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:mrf_activity_expiration > :days" +msgid "Days" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:mrf_follow_bot > :follower_nickname" +msgid "Follower nickname" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:mrf_hashtag > :federated_timeline_removal" +msgid "Federated timeline removal" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:mrf_hashtag > :reject" +msgid "Reject" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:mrf_hashtag > :sensitive" +msgid "Sensitive" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:mrf_hellthread > :delist_threshold" +msgid "Delist threshold" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:mrf_hellthread > :reject_threshold" +msgid "Reject threshold" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:mrf_keyword > :federated_timeline_removal" +msgid "Federated timeline removal" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:mrf_keyword > :reject" +msgid "Reject" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:mrf_keyword > :replace" +msgid "Replace" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:mrf_mention > :actors" +msgid "Actors" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:mrf_normalize_markup > :scrub_policy" +msgid "Scrub policy" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:mrf_object_age > :actions" +msgid "Actions" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:mrf_object_age > :threshold" +msgid "Threshold" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:mrf_rejectnonpublic > :allow_direct" +msgid "Allow direct" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:mrf_rejectnonpublic > :allow_followersonly" +msgid "Allow followers-only" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:mrf_simple > :accept" +msgid "Accept" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:mrf_simple > :avatar_removal" +msgid "Avatar removal" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:mrf_simple > :banner_removal" +msgid "Banner removal" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:mrf_simple > :federated_timeline_removal" +msgid "Federated timeline removal" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:mrf_simple > :followers_only" +msgid "Followers only" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:mrf_simple > :media_nsfw" +msgid "Media NSFW" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:mrf_simple > :media_removal" +msgid "Media removal" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:mrf_simple > :reject" +msgid "Reject" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:mrf_simple > :reject_deletes" +msgid "Reject deletes" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:mrf_simple > :report_removal" +msgid "Report removal" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:mrf_steal_emoji > :hosts" +msgid "Hosts" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:mrf_steal_emoji > :rejected_shortcodes" +msgid "Rejected shortcodes" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:mrf_steal_emoji > :size_limit" +msgid "Size limit" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:mrf_subchain > :match_actor" +msgid "Match actor" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:mrf_vocabulary > :accept" +msgid "Accept" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:mrf_vocabulary > :reject" +msgid "Reject" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:oauth2 > :clean_expired_tokens" +msgid "Clean expired tokens" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:oauth2 > :issue_new_refresh_token" +msgid "Issue new refresh token" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:oauth2 > :token_expires_in" +msgid "Token expires in" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:pools > :default" +msgid "Default" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:pools > :default > :max_waiting" +msgid "Max waiting" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:pools > :default > :recv_timeout" +msgid "Recv timeout" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:pools > :default > :size" +msgid "Size" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:pools > :federation" +msgid "Federation" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:pools > :federation > :max_waiting" +msgid "Max waiting" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:pools > :federation > :recv_timeout" +msgid "Recv timeout" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:pools > :federation > :size" +msgid "Size" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:pools > :media" +msgid "Media" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:pools > :media > :max_waiting" +msgid "Max waiting" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:pools > :media > :recv_timeout" +msgid "Recv timeout" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:pools > :media > :size" +msgid "Size" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:pools > :upload" +msgid "Upload" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:pools > :upload > :max_waiting" +msgid "Max waiting" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:pools > :upload > :recv_timeout" +msgid "Recv timeout" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:pools > :upload > :size" +msgid "Size" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:populate_hashtags_table > :fault_rate_allowance" +msgid "Fault rate allowance" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:populate_hashtags_table > :sleep_interval_ms" +msgid "Sleep interval ms" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:rate_limit > :app_account_creation" +msgid "App account creation" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:rate_limit > :authentication" +msgid "Authentication" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:rate_limit > :relation_id_action" +msgid "Relation ID action" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:rate_limit > :relations_actions" +msgid "Relations actions" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:rate_limit > :search" +msgid "Search" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:rate_limit > :status_id_action" +msgid "Status ID action" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:rate_limit > :statuses_actions" +msgid "Statuses actions" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:rate_limit > :timeline" +msgid "Timeline" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:restrict_unauthenticated > :activities" +msgid "Activities" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:restrict_unauthenticated > :activities > :local" +msgid "Local" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:restrict_unauthenticated > :activities > :remote" +msgid "Remote" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:restrict_unauthenticated > :profiles" +msgid "Profiles" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:restrict_unauthenticated > :profiles > :local" +msgid "Local" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:restrict_unauthenticated > :profiles > :remote" +msgid "Remote" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:restrict_unauthenticated > :timelines" +msgid "Timelines" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:restrict_unauthenticated > :timelines > :federated" +msgid "Federated" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:restrict_unauthenticated > :timelines > :local" +msgid "Local" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:rich_media > :enabled" +msgid "Enabled" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:rich_media > :failure_backoff" +msgid "Failure backoff" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:rich_media > :ignore_hosts" +msgid "Ignore hosts" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:rich_media > :ignore_tld" +msgid "Ignore TLD" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:rich_media > :parsers" +msgid "Parsers" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:rich_media > :ttl_setters" +msgid "TTL setters" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:shout > :enabled" +msgid "Enabled" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:shout > :limit" +msgid "Limit" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:static_fe > :enabled" +msgid "Enabled" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:streamer > :overflow_workers" +msgid "Overflow workers" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:streamer > :workers" +msgid "Workers" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:uri_schemes > :valid_schemes" +msgid "Valid schemes" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:user > :deny_follow_blocked" +msgid "Deny follow blocked" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:web_cache_ttl > :activity_pub" +msgid "Activity pub" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:web_cache_ttl > :activity_pub_question" +msgid "Activity pub question" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:welcome > :chat_message" +msgid "Chat message" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:welcome > :chat_message > :enabled" +msgid "Enabled" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:welcome > :chat_message > :message" +msgid "Message" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:welcome > :chat_message > :sender_nickname" +msgid "Sender nickname" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:welcome > :direct_message" +msgid "Direct message" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:welcome > :direct_message > :enabled" +msgid "Enabled" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:welcome > :direct_message > :message" +msgid "Message" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:welcome > :direct_message > :sender_nickname" +msgid "Sender nickname" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:welcome > :email" +msgid "Email" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:welcome > :email > :enabled" +msgid "Enabled" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:welcome > :email > :html" +msgid "Html" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:welcome > :email > :sender" +msgid "Sender" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:welcome > :email > :subject" +msgid "Subject" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:welcome > :email > :text" +msgid "Text" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:workers > :retries" +msgid "Retries" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-ConcurrentLimiter > Pleroma.Web.ActivityPub.MRF.MediaProxyWarmingPolicy" +msgid "Pleroma.Web.ActivityPub.MRF.MediaProxyWarmingPolicy" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-ConcurrentLimiter > Pleroma.Web.ActivityPub.MRF.MediaProxyWarmingPolicy > :max_running" +msgid "Max running" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-ConcurrentLimiter > Pleroma.Web.ActivityPub.MRF.MediaProxyWarmingPolicy > :max_waiting" +msgid "Max waiting" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-ConcurrentLimiter > Pleroma.Web.RichMedia.Helpers" +msgid "Pleroma.Web.RichMedia.Helpers" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-ConcurrentLimiter > Pleroma.Web.RichMedia.Helpers > :max_running" +msgid "Max running" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-ConcurrentLimiter > Pleroma.Web.RichMedia.Helpers > :max_waiting" +msgid "Max waiting" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Oban > :crontab" +msgid "Crontab" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Oban > :log" +msgid "Log" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Oban > :queues" +msgid "Queues" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Oban > :queues > :activity_expiration" +msgid "Activity expiration" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Oban > :queues > :attachments_cleanup" +msgid "Attachments cleanup" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Oban > :queues > :background" +msgid "Background" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Oban > :queues > :backup" +msgid "Backup" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Oban > :queues > :federator_incoming" +msgid "Federator incoming" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Oban > :queues > :federator_outgoing" +msgid "Federator outgoing" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Oban > :queues > :mailer" +msgid "Mailer" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Oban > :queues > :scheduled_activities" +msgid "Scheduled activities" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Oban > :queues > :transmogrifier" +msgid "Transmogrifier" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Oban > :queues > :web_push" +msgid "Web push" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Pleroma.Captcha > :enabled" +msgid "Enabled" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Pleroma.Captcha > :method" +msgid "Method" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Pleroma.Captcha > :seconds_valid" +msgid "Seconds valid" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Pleroma.Captcha.Kocaptcha > :endpoint" +msgid "Endpoint" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Pleroma.Emails.Mailer > :adapter" +msgid "Adapter" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Pleroma.Emails.Mailer > :enabled" +msgid "Mailer Enabled" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Pleroma.Emails.Mailer > Swoosh.Adapters.AmazonSES-:access_key" +msgid "AWS Access Key" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Pleroma.Emails.Mailer > Swoosh.Adapters.AmazonSES-:region" +msgid "AWS Region" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Pleroma.Emails.Mailer > Swoosh.Adapters.AmazonSES-:secret" +msgid "AWS Secret Key" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Pleroma.Emails.Mailer > Swoosh.Adapters.Dyn-:api_key" +msgid "Dyn API Key" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Pleroma.Emails.Mailer > Swoosh.Adapters.Gmail-:access_token" +msgid "GMail API Access Token" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Pleroma.Emails.Mailer > Swoosh.Adapters.Mailgun-:api_key" +msgid "Mailgun API Key" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Pleroma.Emails.Mailer > Swoosh.Adapters.Mailgun-:domain" +msgid "Domain" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Pleroma.Emails.Mailer > Swoosh.Adapters.Mailjet-:api_key" +msgid "MailJet Public API Key" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Pleroma.Emails.Mailer > Swoosh.Adapters.Mailjet-:secret" +msgid "MailJet Private API Key" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Pleroma.Emails.Mailer > Swoosh.Adapters.Mandrill-:api_key" +msgid "Mandrill API Key" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Pleroma.Emails.Mailer > Swoosh.Adapters.Postmark-:api_key" +msgid "Postmark API Key" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Pleroma.Emails.Mailer > Swoosh.Adapters.SMTP-:auth" +msgid "AUTH Mode" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Pleroma.Emails.Mailer > Swoosh.Adapters.SMTP-:password" +msgid "Password" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Pleroma.Emails.Mailer > Swoosh.Adapters.SMTP-:port" +msgid "Port" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Pleroma.Emails.Mailer > Swoosh.Adapters.SMTP-:relay" +msgid "Relay" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Pleroma.Emails.Mailer > Swoosh.Adapters.SMTP-:retries" +msgid "Retries" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Pleroma.Emails.Mailer > Swoosh.Adapters.SMTP-:ssl" +msgid "Use SSL" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Pleroma.Emails.Mailer > Swoosh.Adapters.SMTP-:tls" +msgid "STARTTLS Mode" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Pleroma.Emails.Mailer > Swoosh.Adapters.SMTP-:username" +msgid "Username" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Pleroma.Emails.Mailer > Swoosh.Adapters.Sendgrid-:api_key" +msgid "SendGrid API Key" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Pleroma.Emails.Mailer > Swoosh.Adapters.Sendmail-:cmd_args" +msgid "Cmd args" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Pleroma.Emails.Mailer > Swoosh.Adapters.Sendmail-:cmd_path" +msgid "Cmd path" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Pleroma.Emails.Mailer > Swoosh.Adapters.Sendmail-:qmail" +msgid "Qmail compat mode" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Pleroma.Emails.Mailer > Swoosh.Adapters.SocketLabs-:api_key" +msgid "SocketLabs API Key" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Pleroma.Emails.Mailer > Swoosh.Adapters.SocketLabs-:server_id" +msgid "Server ID" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Pleroma.Emails.Mailer > Swoosh.Adapters.SparkPost-:api_key" +msgid "SparkPost API key" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Pleroma.Emails.Mailer > Swoosh.Adapters.SparkPost-:endpoint" +msgid "Endpoint" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Pleroma.Emails.NewUsersDigestEmail > :enabled" +msgid "Enabled" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Pleroma.Emails.UserEmail > :logo" +msgid "Logo" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Pleroma.Emails.UserEmail > :styling" +msgid "Styling" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Pleroma.Emails.UserEmail > :styling > :background_color" +msgid "Background color" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Pleroma.Emails.UserEmail > :styling > :content_background_color" +msgid "Content background color" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Pleroma.Emails.UserEmail > :styling > :header_color" +msgid "Header color" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Pleroma.Emails.UserEmail > :styling > :link_color" +msgid "Link color" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Pleroma.Emails.UserEmail > :styling > :text_color" +msgid "Text color" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Pleroma.Emails.UserEmail > :styling > :text_muted_color" +msgid "Text muted color" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Pleroma.Formatter > :class" +msgid "Class" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Pleroma.Formatter > :extra" +msgid "Extra" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Pleroma.Formatter > :new_window" +msgid "New window" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Pleroma.Formatter > :rel" +msgid "Rel" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Pleroma.Formatter > :strip_prefix" +msgid "Strip prefix" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Pleroma.Formatter > :truncate" +msgid "Truncate" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Pleroma.Formatter > :validate_tld" +msgid "Validate tld" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Pleroma.ScheduledActivity > :daily_user_limit" +msgid "Daily user limit" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Pleroma.ScheduledActivity > :enabled" +msgid "Enabled" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Pleroma.ScheduledActivity > :total_user_limit" +msgid "Total user limit" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Pleroma.Upload > :base_url" +msgid "Base URL" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Pleroma.Upload > :filename_display_max_length" +msgid "Filename display max length" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Pleroma.Upload > :filters" +msgid "Filters" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Pleroma.Upload > :link_name" +msgid "Link name" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Pleroma.Upload > :proxy_remote" +msgid "Proxy remote" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Pleroma.Upload > :uploader" +msgid "Uploader" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Pleroma.Upload.Filter.AnonymizeFilename > :text" +msgid "Text" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Pleroma.Upload.Filter.Mogrify > :args" +msgid "Args" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Pleroma.Uploaders.Local > :uploads" +msgid "Uploads" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Pleroma.Uploaders.S3 > :bucket" +msgid "Bucket" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Pleroma.Uploaders.S3 > :bucket_namespace" +msgid "Bucket namespace" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Pleroma.Uploaders.S3 > :streaming_enabled" +msgid "Streaming enabled" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Pleroma.Uploaders.S3 > :truncated_namespace" +msgid "Truncated namespace" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Pleroma.User > :email_blacklist" +msgid "Email blacklist" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Pleroma.User > :restricted_nicknames" +msgid "Restricted nicknames" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Pleroma.User.Backup > :limit_days" +msgid "Limit days" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Pleroma.User.Backup > :purge_after_days" +msgid "Purge after days" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Pleroma.Web.ApiSpec.CastAndValidate > :strict" +msgid "Strict" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Pleroma.Web.MediaProxy.Invalidation.Http > :headers" +msgid "Headers" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Pleroma.Web.MediaProxy.Invalidation.Http > :method" +msgid "Method" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Pleroma.Web.MediaProxy.Invalidation.Http > :options" +msgid "Options" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Pleroma.Web.MediaProxy.Invalidation.Http > :options > :params" +msgid "Params" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Pleroma.Web.MediaProxy.Invalidation.Script > :script_path" +msgid "Script path" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Pleroma.Web.MediaProxy.Invalidation.Script > :url_format" +msgid "URL Format" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Pleroma.Web.Metadata > :providers" +msgid "Providers" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Pleroma.Web.Metadata > :unfurl_nsfw" +msgid "Unfurl NSFW" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Pleroma.Web.Plugs.RemoteIp > :enabled" +msgid "Enabled" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Pleroma.Web.Plugs.RemoteIp > :headers" +msgid "Headers" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Pleroma.Web.Plugs.RemoteIp > :proxies" +msgid "Proxies" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Pleroma.Web.Plugs.RemoteIp > :reserved" +msgid "Reserved" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Pleroma.Web.Preload > :providers" +msgid "Providers" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Pleroma.Workers.PurgeExpiredActivity > :enabled" +msgid "Enabled" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Pleroma.Workers.PurgeExpiredActivity > :min_lifetime" +msgid "Min lifetime" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :prometheus-Pleroma.Web.Endpoint.MetricsExporter > :auth" +msgid "Auth" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :prometheus-Pleroma.Web.Endpoint.MetricsExporter > :enabled" +msgid "Enabled" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :prometheus-Pleroma.Web.Endpoint.MetricsExporter > :format" +msgid "Format" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :prometheus-Pleroma.Web.Endpoint.MetricsExporter > :ip_whitelist" +msgid "IP Whitelist" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :prometheus-Pleroma.Web.Endpoint.MetricsExporter > :path" +msgid "Path" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :quack > :level" +msgid "Level" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :quack > :meta" +msgid "Meta" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :quack > :webhook_url" +msgid "Webhook URL" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :web_push_encryption-:vapid_details > :private_key" +msgid "Private key" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :web_push_encryption-:vapid_details > :public_key" +msgid "Public key" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :web_push_encryption-:vapid_details > :subject" +msgid "Subject" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:activitypub > :authorized_fetch_mode" +msgid "Require HTTP signatures for AP fetches" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:instance > :short_description" +msgid "Shorter version of instance description. It can be seen on `/api/v1/instance`" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:activitypub > :authorized_fetch_mode" +msgid "Authorized fetch mode" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:instance > :short_description" +msgid "Short description" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:delete_context_objects" +msgid "`delete_context_objects` background migration settings" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:delete_context_objects > :fault_rate_allowance" +msgid "Max accepted rate of objects that failed in the migration. Any value from 0.0 which tolerates no errors to 1.0 which will enable the feature even if context object deletion failed for all records." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:delete_context_objects > :sleep_interval_ms" +msgid "Sleep interval between each chunk of processed records in order to decrease the load on the system (defaults to 0 and should be keep default on most instances)." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:instance > :birthday_min_age" +msgid "Minimum required age (in days) for users to create account. Only used if birthday is required." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:delete_context_objects" +msgid "Delete context objects" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:delete_context_objects > :fault_rate_allowance" +msgid "Fault rate allowance" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:delete_context_objects > :sleep_interval_ms" +msgid "Sleep interval ms" +msgstr "" diff --git a/priv/gettext/uk/LC_MESSAGES/default.po b/priv/gettext/uk/LC_MESSAGES/default.po new file mode 100644 index 000000000..ce4f96173 --- /dev/null +++ b/priv/gettext/uk/LC_MESSAGES/default.po @@ -0,0 +1,197 @@ +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2022-09-18 19:11+0300\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: Automatically generated\n" +"Language-Team: none\n" +"Language: uk\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Translate Toolkit 3.7.2\n" + +## This file is a PO Template file. +## +## "msgid"s here are often extracted from source code. +## Add new translations manually only if they're dynamic +## translations that can't be statically extracted. +## +## Run "mix gettext.extract" to bring this file up to +## date. Leave "msgstr"s empty as changing them here as no +## effect: edit them in PO (.po) files instead. + +#: lib/pleroma/web/api_spec/render_error.ex:122 +#, elixir-autogen, elixir-format +msgid "%{name} - %{count} is not a multiple of %{multiple}." +msgstr "" + +#: lib/pleroma/web/api_spec/render_error.ex:131 +#, elixir-autogen, elixir-format +msgid "%{name} - %{value} is larger than exclusive maximum %{max}." +msgstr "" + +#: lib/pleroma/web/api_spec/render_error.ex:140 +#, elixir-autogen, elixir-format +msgid "%{name} - %{value} is larger than inclusive maximum %{max}." +msgstr "" + +#: lib/pleroma/web/api_spec/render_error.ex:149 +#, elixir-autogen, elixir-format +msgid "%{name} - %{value} is smaller than exclusive minimum %{min}." +msgstr "" + +#: lib/pleroma/web/api_spec/render_error.ex:158 +#, elixir-autogen, elixir-format +msgid "%{name} - %{value} is smaller than inclusive minimum %{min}." +msgstr "" + +#: lib/pleroma/web/api_spec/render_error.ex:102 +#, elixir-autogen, elixir-format +msgid "%{name} - Array items must be unique." +msgstr "" + +#: lib/pleroma/web/api_spec/render_error.ex:114 +#, elixir-autogen, elixir-format +msgid "%{name} - Array length %{length} is larger than maxItems: %{}." +msgstr "" + +#: lib/pleroma/web/api_spec/render_error.ex:106 +#, elixir-autogen, elixir-format +msgid "%{name} - Array length %{length} is smaller than minItems: %{min}." +msgstr "" + +#: lib/pleroma/web/api_spec/render_error.ex:166 +#, elixir-autogen, elixir-format +msgid "%{name} - Invalid %{type}. Got: %{value}." +msgstr "" + +#: lib/pleroma/web/api_spec/render_error.ex:174 +#, elixir-autogen, elixir-format +msgid "%{name} - Invalid format. Expected %{format}." +msgstr "" + +#: lib/pleroma/web/api_spec/render_error.ex:51 +#, elixir-autogen, elixir-format +msgid "%{name} - Invalid schema.type. Got: %{type}." +msgstr "" + +#: lib/pleroma/web/api_spec/render_error.ex:178 +#, elixir-autogen, elixir-format +msgid "%{name} - Invalid value for enum." +msgstr "" + +#: lib/pleroma/web/api_spec/render_error.ex:95 +#, elixir-autogen, elixir-format +msgid "%{name} - String length is larger than maxLength: %{length}." +msgstr "" + +#: lib/pleroma/web/api_spec/render_error.ex:88 +#, elixir-autogen, elixir-format +msgid "%{name} - String length is smaller than minLength: %{length}." +msgstr "" + +#: lib/pleroma/web/api_spec/render_error.ex:63 +#, elixir-autogen, elixir-format +msgid "%{name} - null value where %{type} expected." +msgstr "" + +#: lib/pleroma/web/api_spec/render_error.ex:60 +#, elixir-autogen, elixir-format +msgid "%{name} - null value." +msgstr "" + +#: lib/pleroma/web/api_spec/render_error.ex:182 +#, elixir-autogen, elixir-format +msgid "Failed to cast to any schema in %{polymorphic_type}" +msgstr "" + +#: lib/pleroma/web/api_spec/render_error.ex:71 +#, elixir-autogen, elixir-format +msgid "Failed to cast value as %{invalid_schema}. Value must be castable using `allOf` schemas listed." +msgstr "" + +#: lib/pleroma/web/api_spec/render_error.ex:84 +#, elixir-autogen, elixir-format +msgid "Failed to cast value to one of: %{failed_schemas}." +msgstr "" + +#: lib/pleroma/web/api_spec/render_error.ex:78 +#, elixir-autogen, elixir-format +msgid "Failed to cast value using any of: %{failed_schemas}." +msgstr "" + +#: lib/pleroma/web/api_spec/render_error.ex:212 +#, elixir-autogen, elixir-format +msgid "Invalid value for header: %{name}." +msgstr "" + +#: lib/pleroma/web/api_spec/render_error.ex:204 +#, elixir-autogen, elixir-format +msgid "Missing field: %{name}." +msgstr "" + +#: lib/pleroma/web/api_spec/render_error.ex:208 +#, elixir-autogen, elixir-format +msgid "Missing header: %{name}." +msgstr "" + +#: lib/pleroma/web/api_spec/render_error.ex:196 +#, elixir-autogen, elixir-format +msgid "No value provided for required discriminator `%{field}`." +msgstr "" + +#: lib/pleroma/web/api_spec/render_error.ex:216 +#, elixir-autogen, elixir-format +msgid "Object property count %{property_count} is greater than maxProperties: %{max_properties}." +msgstr "" + +#: lib/pleroma/web/api_spec/render_error.ex:224 +#, elixir-autogen, elixir-format +msgid "Object property count %{property_count} is less than minProperties: %{min_properties}" +msgstr "" + +#: lib/pleroma/web/templates/static_fe/static_fe/error.html.eex:2 +#, elixir-autogen, elixir-format +msgid "Oops" +msgstr "" + +#: lib/pleroma/web/api_spec/render_error.ex:188 +#, elixir-autogen, elixir-format +msgid "Unexpected field: %{name}." +msgstr "" + +#: lib/pleroma/web/api_spec/render_error.ex:200 +#, elixir-autogen, elixir-format +msgid "Unknown schema: %{name}." +msgstr "" + +#: lib/pleroma/web/api_spec/render_error.ex:192 +#, elixir-autogen, elixir-format +msgid "Value used as discriminator for `%{field}` matches no schemas." +msgstr "" + +#: lib/pleroma/web/templates/embed/show.html.eex:43 +#: lib/pleroma/web/templates/static_fe/static_fe/_notice.html.eex:37 +#, elixir-autogen, elixir-format +msgid "announces" +msgstr "" + +#: lib/pleroma/web/templates/embed/show.html.eex:44 +#: lib/pleroma/web/templates/static_fe/static_fe/_notice.html.eex:38 +#, elixir-autogen, elixir-format +msgid "likes" +msgstr "" + +#: lib/pleroma/web/templates/embed/show.html.eex:42 +#: lib/pleroma/web/templates/static_fe/static_fe/_notice.html.eex:36 +#, elixir-autogen, elixir-format +msgid "replies" +msgstr "" + +#: lib/pleroma/web/templates/embed/show.html.eex:27 +#: lib/pleroma/web/templates/static_fe/static_fe/_notice.html.eex:22 +#, elixir-autogen, elixir-format +msgid "sensitive media" +msgstr "" diff --git a/priv/gettext/uk/LC_MESSAGES/errors.po b/priv/gettext/uk/LC_MESSAGES/errors.po index 9638761ec..2a41b3c1d 100644 --- a/priv/gettext/uk/LC_MESSAGES/errors.po +++ b/priv/gettext/uk/LC_MESSAGES/errors.po @@ -3,17 +3,17 @@ msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2020-12-10 16:09+0000\n" -"PO-Revision-Date: 2020-12-11 00:56+0000\n" -"Last-Translator: ZEN \n" -"Language-Team: Ukrainian \n" +"PO-Revision-Date: 2022-09-18 17:09+0000\n" +"Last-Translator: Dmytro Poltavchenko \n" +"Language-Team: Ukrainian \n" "Language: uk\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=" -"4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" -"X-Generator: Weblate 4.0.4\n" +"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" +"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" +"X-Generator: Weblate 4.13.1\n" ## This file is a PO Template file. ## @@ -312,7 +312,7 @@ msgstr "Цей ресурс вимагає автентифікації." #: lib/pleroma/plugs/rate_limiter/rate_limiter.ex:206 #, elixir-format msgid "Throttled" -msgstr "Обмежено. Перевищено ліміт запитів." +msgstr "Перевищено ліміт запитів" #: lib/pleroma/web/common_api/common_api.ex:356 #, elixir-format diff --git a/priv/gettext/vi/LC_MESSAGES/errors.po b/priv/gettext/vi/LC_MESSAGES/errors.po new file mode 100644 index 000000000..3fce2675f --- /dev/null +++ b/priv/gettext/vi/LC_MESSAGES/errors.po @@ -0,0 +1,580 @@ +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2021-09-06 11:13+0000\n" +"PO-Revision-Date: 2021-09-07 16:42+0000\n" +"Last-Translator: Hồ Nhất Duy \n" +"Language-Team: Vietnamese \n" +"Language: vi\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=1; plural=0;\n" +"X-Generator: Weblate 4.6.2\n" + +## This file is a PO Template file. +## +## `msgid`s here are often extracted from source code. +## Add new translations manually only if they're dynamic +## translations that can't be statically extracted. +## +## Run `mix gettext.extract` to bring this file up to +## date. Leave `msgstr`s empty as changing them here as no +## effect: edit them in PO (`.po`) files instead. +## From Ecto.Changeset.cast/4 +msgid "can't be blank" +msgstr "không được để trống" + +## From Ecto.Changeset.unique_constraint/3 +msgid "has already been taken" +msgstr "đã có người sử dụng" + +## From Ecto.Changeset.put_change/3 +msgid "is invalid" +msgstr "không khớp" + +## From Ecto.Changeset.validate_format/3 +msgid "has invalid format" +msgstr "định dạng không hợp lệ" + +## From Ecto.Changeset.validate_subset/3 +msgid "has an invalid entry" +msgstr "có mục sai" + +## From Ecto.Changeset.validate_exclusion/3 +msgid "is reserved" +msgstr "đảo ngược" + +## From Ecto.Changeset.validate_confirmation/3 +msgid "does not match confirmation" +msgstr "không trùng khớp" + +## From Ecto.Changeset.no_assoc_constraint/3 +msgid "is still associated with this entry" +msgstr "vẫn liên kết với mục này" + +msgid "are still associated with this entry" +msgstr "vẫn liên kết với mục này" + +## From Ecto.Changeset.validate_length/3 +msgid "should be %{count} character(s)" +msgid_plural "should be %{count} character(s)" +msgstr[0] "tối thiểu %{count} ký tự" + +msgid "should have %{count} item(s)" +msgid_plural "should have %{count} item(s)" +msgstr[0] "tối thiểu %{count} mục" + +msgid "should be at least %{count} character(s)" +msgid_plural "should be at least %{count} character(s)" +msgstr[0] "tối thiểu %{count} ký tự" + +msgid "should have at least %{count} item(s)" +msgid_plural "should have at least %{count} item(s)" +msgstr[0] "tối thiểu %{count} mục" + +msgid "should be at most %{count} character(s)" +msgid_plural "should be at most %{count} character(s)" +msgstr[0] "tối đa %{count} ký tự" + +msgid "should have at most %{count} item(s)" +msgid_plural "should have at most %{count} item(s)" +msgstr[0] "tối đa %{count} mục" + +## From Ecto.Changeset.validate_number/3 +msgid "must be less than %{number}" +msgstr "phải nhỏ hơn %{number}" + +msgid "must be greater than %{number}" +msgstr "phải lớn hơn %{number}" + +msgid "must be less than or equal to %{number}" +msgstr "phải nhỏ hơn hoặc bằng %{number}" + +msgid "must be greater than or equal to %{number}" +msgstr "phải lớn hơn hoặc bằng %{number}" + +msgid "must be equal to %{number}" +msgstr "phải là %{number}" + +#: lib/pleroma/web/common_api/common_api.ex:505 +#, elixir-format +msgid "Account not found" +msgstr "Không tìm thấy tài khoản" + +#: lib/pleroma/web/common_api/common_api.ex:339 +#, elixir-format +msgid "Already voted" +msgstr "Đã bình chọn" + +#: lib/pleroma/web/oauth/oauth_controller.ex:359 +#, elixir-format +msgid "Bad request" +msgstr "Lỗi truy vấn" + +#: lib/pleroma/web/activity_pub/activity_pub_controller.ex:426 +#, elixir-format +msgid "Can't delete object" +msgstr "Không thể xóa đối tượng" + +#: lib/pleroma/web/controller_helper.ex:105 +#: lib/pleroma/web/controller_helper.ex:111 +#, elixir-format +msgid "Can't display this activity" +msgstr "Không thể hiển thị hoạt động này" + +#: lib/pleroma/web/mastodon_api/controllers/account_controller.ex:285 +#, elixir-format +msgid "Can't find user" +msgstr "Không tìm thấy người dùng" + +#: lib/pleroma/web/pleroma_api/controllers/account_controller.ex:61 +#, elixir-format +msgid "Can't get favorites" +msgstr "Không thể tải lượt thích" + +#: lib/pleroma/web/activity_pub/activity_pub_controller.ex:438 +#, elixir-format +msgid "Can't like object" +msgstr "Không thể thích đối tượng" + +#: lib/pleroma/web/common_api/utils.ex:563 +#, elixir-format +msgid "Cannot post an empty status without attachments" +msgstr "Không thể đăng một tút trống trơn" + +#: lib/pleroma/web/common_api/utils.ex:511 +#, elixir-format +msgid "Comment must be up to %{max_size} characters" +msgstr "Bình luận tối đa %{max_size} ký tự" + +#: lib/pleroma/config/config_db.ex:191 +#, elixir-format +msgid "Config with params %{params} not found" +msgstr "Không tìm thấy cấu hình %{params}" + +#: lib/pleroma/web/common_api/common_api.ex:181 +#: lib/pleroma/web/common_api/common_api.ex:185 +#, elixir-format +msgid "Could not delete" +msgstr "Không thể xóa" + +#: lib/pleroma/web/common_api/common_api.ex:231 +#, elixir-format +msgid "Could not favorite" +msgstr "Không thể thích" + +#: lib/pleroma/web/common_api/common_api.ex:453 +#, elixir-format +msgid "Could not pin" +msgstr "Không thể ghim" + +#: lib/pleroma/web/common_api/common_api.ex:278 +#, elixir-format +msgid "Could not unfavorite" +msgstr "Không thể bỏ thích" + +#: lib/pleroma/web/common_api/common_api.ex:463 +#, elixir-format +msgid "Could not unpin" +msgstr "Không thể bỏ ghim" + +#: lib/pleroma/web/common_api/common_api.ex:216 +#, elixir-format +msgid "Could not unrepeat" +msgstr "Không thể hủy chia sẻ" + +#: lib/pleroma/web/common_api/common_api.ex:512 +#: lib/pleroma/web/common_api/common_api.ex:521 +#, elixir-format +msgid "Could not update state" +msgstr "Không thể cập nhật trạng thái" + +#: lib/pleroma/web/mastodon_api/controllers/timeline_controller.ex:207 +#, elixir-format +msgid "Error." +msgstr "Lỗi." + +#: lib/pleroma/web/twitter_api/twitter_api.ex:106 +#, elixir-format +msgid "Invalid CAPTCHA" +msgstr "CAPTCHA không hợp lệ" + +#: lib/pleroma/web/mastodon_api/controllers/account_controller.ex:116 +#: lib/pleroma/web/oauth/oauth_controller.ex:568 +#, elixir-format +msgid "Invalid credentials" +msgstr "Danh tính không hợp lệ" + +#: lib/pleroma/plugs/ensure_authenticated_plug.ex:38 +#, elixir-format +msgid "Invalid credentials." +msgstr "Danh tính không hợp lệ." + +#: lib/pleroma/web/common_api/common_api.ex:355 +#, elixir-format +msgid "Invalid indices" +msgstr "Sai dấu hiệu" + +#: lib/pleroma/web/admin_api/controllers/fallback_controller.ex:29 +#, elixir-format +msgid "Invalid parameters" +msgstr "Sai tham số" + +#: lib/pleroma/web/common_api/utils.ex:414 +#, elixir-format +msgid "Invalid password." +msgstr "Sai mật khẩu." + +#: lib/pleroma/web/mastodon_api/controllers/account_controller.ex:220 +#, elixir-format +msgid "Invalid request" +msgstr "Yêu cầu không hợp lệ" + +#: lib/pleroma/web/twitter_api/twitter_api.ex:109 +#, elixir-format +msgid "Kocaptcha service unavailable" +msgstr "Dịch vụ Kocaptcha chưa sẵn sàng" + +#: lib/pleroma/web/mastodon_api/controllers/account_controller.ex:112 +#, elixir-format +msgid "Missing parameters" +msgstr "Thiếu tham số" + +#: lib/pleroma/web/common_api/utils.ex:547 +#, elixir-format +msgid "No such conversation" +msgstr "Không chuyển đổi" + +#: lib/pleroma/web/admin_api/controllers/admin_api_controller.ex:388 +#: lib/pleroma/web/admin_api/controllers/admin_api_controller.ex:414 lib/pleroma/web/admin_api/controllers/admin_api_controller.ex:456 +#, elixir-format +msgid "No such permission_group" +msgstr "Không permission_group" + +#: lib/pleroma/plugs/uploaded_media.ex:84 +#: lib/pleroma/web/activity_pub/activity_pub_controller.ex:486 lib/pleroma/web/admin_api/controllers/fallback_controller.ex:11 +#: lib/pleroma/web/feed/user_controller.ex:71 lib/pleroma/web/ostatus/ostatus_controller.ex:143 +#, elixir-format +msgid "Not found" +msgstr "Không tìm thấy" + +#: lib/pleroma/web/common_api/common_api.ex:331 +#, elixir-format +msgid "Poll's author can't vote" +msgstr "Người tạo bình chọn không thể bình chọn" + +#: lib/pleroma/web/mastodon_api/controllers/fallback_controller.ex:20 +#: lib/pleroma/web/mastodon_api/controllers/poll_controller.ex:37 lib/pleroma/web/mastodon_api/controllers/poll_controller.ex:49 +#: lib/pleroma/web/mastodon_api/controllers/poll_controller.ex:50 lib/pleroma/web/mastodon_api/controllers/status_controller.ex:306 +#: lib/pleroma/web/mastodon_api/controllers/subscription_controller.ex:71 +#, elixir-format +msgid "Record not found" +msgstr "Không tìm thấy gì hết" + +#: lib/pleroma/web/admin_api/controllers/fallback_controller.ex:35 +#: lib/pleroma/web/feed/user_controller.ex:77 lib/pleroma/web/mastodon_api/controllers/fallback_controller.ex:36 +#: lib/pleroma/web/ostatus/ostatus_controller.ex:149 +#, elixir-format +msgid "Something went wrong" +msgstr "Có lỗi xảy ra" + +#: lib/pleroma/web/common_api/activity_draft.ex:107 +#, elixir-format +msgid "The message visibility must be direct" +msgstr "Tin nhắn phải là trực tiếp" + +#: lib/pleroma/web/common_api/utils.ex:573 +#, elixir-format +msgid "The status is over the character limit" +msgstr "Tút vượt quá giới hạn ký tự" + +#: lib/pleroma/plugs/ensure_public_or_authenticated_plug.ex:31 +#, elixir-format +msgid "This resource requires authentication." +msgstr "Tài nguyên này yêu cầu xác thực." + +#: lib/pleroma/plugs/rate_limiter/rate_limiter.ex:206 +#, elixir-format +msgid "Throttled" +msgstr "Đã điều tiết" + +#: lib/pleroma/web/common_api/common_api.ex:356 +#, elixir-format +msgid "Too many choices" +msgstr "Quá nhiều lựa chọn" + +#: lib/pleroma/web/activity_pub/activity_pub_controller.ex:443 +#, elixir-format +msgid "Unhandled activity type" +msgstr "Không thể xử lý loại hoạt động" + +#: lib/pleroma/web/admin_api/controllers/admin_api_controller.ex:485 +#, elixir-format +msgid "You can't revoke your own admin status." +msgstr "Không thể tự gỡ chức vụ quản trị viên" + +#: lib/pleroma/web/oauth/oauth_controller.ex:221 +#: lib/pleroma/web/oauth/oauth_controller.ex:308 +#, elixir-format +msgid "Your account is currently disabled" +msgstr "Tài khoản của bạn bị ẩn" + +#: lib/pleroma/web/oauth/oauth_controller.ex:183 +#: lib/pleroma/web/oauth/oauth_controller.ex:331 +#, elixir-format +msgid "Your login is missing a confirmed e-mail address" +msgstr "Bạn chưa xác thực địa chỉ email" + +#: lib/pleroma/web/activity_pub/activity_pub_controller.ex:390 +#, elixir-format +msgid "can't read inbox of %{nickname} as %{as_nickname}" +msgstr "không thể đọc hộp thư đến của %{nickname} như %{as_nickname}" + +#: lib/pleroma/web/activity_pub/activity_pub_controller.ex:473 +#, elixir-format +msgid "can't update outbox of %{nickname} as %{as_nickname}" +msgstr "không thể cập nhật hộp thư đi của %{nickname} như %{as_nickname}" + +#: lib/pleroma/web/common_api/common_api.ex:471 +#, elixir-format +msgid "conversation is already muted" +msgstr "bạn đã bỏ quan tâm cuộc đối thoại này" + +#: lib/pleroma/web/activity_pub/activity_pub_controller.ex:314 +#: lib/pleroma/web/activity_pub/activity_pub_controller.ex:492 +#, elixir-format +msgid "error" +msgstr "lỗi" + +#: lib/pleroma/web/pleroma_api/controllers/mascot_controller.ex:32 +#, elixir-format +msgid "mascots can only be images" +msgstr "linh vật chỉ được là hình ảnh" + +#: lib/pleroma/web/activity_pub/activity_pub_controller.ex:62 +#, elixir-format +msgid "not found" +msgstr "không tìm thấy" + +#: lib/pleroma/web/oauth/oauth_controller.ex:394 +#, elixir-format +msgid "Bad OAuth request." +msgstr "Không thể kết nối OAuth." + +#: lib/pleroma/web/twitter_api/twitter_api.ex:115 +#, elixir-format +msgid "CAPTCHA already used" +msgstr "CAPTCHA đã dùng rồi" + +#: lib/pleroma/web/twitter_api/twitter_api.ex:112 +#, elixir-format +msgid "CAPTCHA expired" +msgstr "CAPTCHA đã hết hạn" + +#: lib/pleroma/plugs/uploaded_media.ex:57 +#, elixir-format +msgid "Failed" +msgstr "Thất bại" + +#: lib/pleroma/web/oauth/oauth_controller.ex:410 +#, elixir-format +msgid "Failed to authenticate: %{message}." +msgstr "Xác thực thất bại: %{message}." + +#: lib/pleroma/web/oauth/oauth_controller.ex:441 +#, elixir-format +msgid "Failed to set up user account." +msgstr "Tạo tài khoản không thành công." + +#: lib/pleroma/plugs/oauth_scopes_plug.ex:38 +#, elixir-format +msgid "Insufficient permissions: %{permissions}." +msgstr "Không có quyền: %{permissions}." + +#: lib/pleroma/plugs/uploaded_media.ex:104 +#, elixir-format +msgid "Internal Error" +msgstr "Lỗi nội bộ" + +#: lib/pleroma/web/oauth/fallback_controller.ex:22 +#: lib/pleroma/web/oauth/fallback_controller.ex:29 +#, elixir-format +msgid "Invalid Username/Password" +msgstr "Tên người dùng/mật khẩu không đúng" + +#: lib/pleroma/web/twitter_api/twitter_api.ex:118 +#, elixir-format +msgid "Invalid answer data" +msgstr "sai dữ liệu trả lời" + +#: lib/pleroma/web/nodeinfo/nodeinfo_controller.ex:33 +#, elixir-format +msgid "Nodeinfo schema version not handled" +msgstr "Chưa nạp Nodeinfo" + +#: lib/pleroma/web/oauth/oauth_controller.ex:172 +#, elixir-format +msgid "This action is outside the authorized scopes" +msgstr "Hành động này nằm ngoài phạm vi cho phép" + +#: lib/pleroma/web/oauth/fallback_controller.ex:14 +#, elixir-format +msgid "Unknown error, please check the details and try again." +msgstr "Lỗi chưa biết, xin kiểm tra chi tiết và thử lại sau." + +#: lib/pleroma/web/oauth/oauth_controller.ex:119 +#: lib/pleroma/web/oauth/oauth_controller.ex:158 +#, elixir-format +msgid "Unlisted redirect_uri." +msgstr "Hạn chế redirect_uri." + +#: lib/pleroma/web/oauth/oauth_controller.ex:390 +#, elixir-format +msgid "Unsupported OAuth provider: %{provider}." +msgstr "Không hỗ trợ nhà cung cấp OAuth: %{provider}." + +#: lib/pleroma/uploaders/uploader.ex:72 +#, elixir-format +msgid "Uploader callback timeout" +msgstr "Hết hạn tải lên" + +#: lib/pleroma/web/uploader_controller.ex:23 +#, elixir-format +msgid "bad request" +msgstr "lỗi kết nối" + +#: lib/pleroma/web/twitter_api/twitter_api.ex:103 +#, elixir-format +msgid "CAPTCHA Error" +msgstr "Lỗi CAPTCHA" + +#: lib/pleroma/web/common_api/common_api.ex:290 +#, elixir-format +msgid "Could not add reaction emoji" +msgstr "Không thể thêm tương tác emoji" + +#: lib/pleroma/web/common_api/common_api.ex:301 +#, elixir-format +msgid "Could not remove reaction emoji" +msgstr "Không thể xóa tương tác emoji" + +#: lib/pleroma/web/twitter_api/twitter_api.ex:129 +#, elixir-format +msgid "Invalid CAPTCHA (Missing parameter: %{name})" +msgstr "CAPTCHA sai (Thiếu tham số: %{name})" + +#: lib/pleroma/web/mastodon_api/controllers/list_controller.ex:92 +#, elixir-format +msgid "List not found" +msgstr "Không tìm thấy danh sách" + +#: lib/pleroma/web/mastodon_api/controllers/account_controller.ex:123 +#, elixir-format +msgid "Missing parameter: %{name}" +msgstr "Thiếu tham số: %{name}" + +#: lib/pleroma/web/oauth/oauth_controller.ex:210 +#: lib/pleroma/web/oauth/oauth_controller.ex:321 +#, elixir-format +msgid "Password reset is required" +msgstr "Yêu cầu đổi mật khẩu" + +#: lib/pleroma/tests/auth_test_controller.ex:9 +#: lib/pleroma/web/activity_pub/activity_pub_controller.ex:6 lib/pleroma/web/admin_api/controllers/admin_api_controller.ex:6 +#: lib/pleroma/web/admin_api/controllers/config_controller.ex:6 lib/pleroma/web/admin_api/controllers/fallback_controller.ex:6 +#: lib/pleroma/web/admin_api/controllers/invite_controller.ex:6 lib/pleroma/web/admin_api/controllers/media_proxy_cache_controller.ex:6 +#: lib/pleroma/web/admin_api/controllers/oauth_app_controller.ex:6 lib/pleroma/web/admin_api/controllers/relay_controller.ex:6 +#: lib/pleroma/web/admin_api/controllers/report_controller.ex:6 lib/pleroma/web/admin_api/controllers/status_controller.ex:6 +#: lib/pleroma/web/controller_helper.ex:6 lib/pleroma/web/embed_controller.ex:6 +#: lib/pleroma/web/fallback_redirect_controller.ex:6 lib/pleroma/web/feed/tag_controller.ex:6 +#: lib/pleroma/web/feed/user_controller.ex:6 lib/pleroma/web/mailer/subscription_controller.ex:2 +#: lib/pleroma/web/masto_fe_controller.ex:6 lib/pleroma/web/mastodon_api/controllers/account_controller.ex:6 +#: lib/pleroma/web/mastodon_api/controllers/app_controller.ex:6 lib/pleroma/web/mastodon_api/controllers/auth_controller.ex:6 +#: lib/pleroma/web/mastodon_api/controllers/conversation_controller.ex:6 lib/pleroma/web/mastodon_api/controllers/custom_emoji_controller.ex:6 +#: lib/pleroma/web/mastodon_api/controllers/domain_block_controller.ex:6 lib/pleroma/web/mastodon_api/controllers/fallback_controller.ex:6 +#: lib/pleroma/web/mastodon_api/controllers/filter_controller.ex:6 lib/pleroma/web/mastodon_api/controllers/follow_request_controller.ex:6 +#: lib/pleroma/web/mastodon_api/controllers/instance_controller.ex:6 lib/pleroma/web/mastodon_api/controllers/list_controller.ex:6 +#: lib/pleroma/web/mastodon_api/controllers/marker_controller.ex:6 lib/pleroma/web/mastodon_api/controllers/mastodon_api_controller.ex:14 +#: lib/pleroma/web/mastodon_api/controllers/media_controller.ex:6 lib/pleroma/web/mastodon_api/controllers/notification_controller.ex:6 +#: lib/pleroma/web/mastodon_api/controllers/poll_controller.ex:6 lib/pleroma/web/mastodon_api/controllers/report_controller.ex:8 +#: lib/pleroma/web/mastodon_api/controllers/scheduled_activity_controller.ex:6 lib/pleroma/web/mastodon_api/controllers/search_controller.ex:6 +#: lib/pleroma/web/mastodon_api/controllers/status_controller.ex:6 lib/pleroma/web/mastodon_api/controllers/subscription_controller.ex:7 +#: lib/pleroma/web/mastodon_api/controllers/suggestion_controller.ex:6 lib/pleroma/web/mastodon_api/controllers/timeline_controller.ex:6 +#: lib/pleroma/web/media_proxy/media_proxy_controller.ex:6 lib/pleroma/web/mongooseim/mongoose_im_controller.ex:6 +#: lib/pleroma/web/nodeinfo/nodeinfo_controller.ex:6 lib/pleroma/web/oauth/fallback_controller.ex:6 +#: lib/pleroma/web/oauth/mfa_controller.ex:10 lib/pleroma/web/oauth/oauth_controller.ex:6 +#: lib/pleroma/web/ostatus/ostatus_controller.ex:6 lib/pleroma/web/pleroma_api/controllers/account_controller.ex:6 +#: lib/pleroma/web/pleroma_api/controllers/chat_controller.ex:5 lib/pleroma/web/pleroma_api/controllers/conversation_controller.ex:6 +#: lib/pleroma/web/pleroma_api/controllers/emoji_pack_controller.ex:2 lib/pleroma/web/pleroma_api/controllers/emoji_reaction_controller.ex:6 +#: lib/pleroma/web/pleroma_api/controllers/mascot_controller.ex:6 lib/pleroma/web/pleroma_api/controllers/notification_controller.ex:6 +#: lib/pleroma/web/pleroma_api/controllers/scrobble_controller.ex:6 +#: lib/pleroma/web/pleroma_api/controllers/two_factor_authentication_controller.ex:7 lib/pleroma/web/static_fe/static_fe_controller.ex:6 +#: lib/pleroma/web/twitter_api/controllers/password_controller.ex:10 lib/pleroma/web/twitter_api/controllers/remote_follow_controller.ex:6 +#: lib/pleroma/web/twitter_api/controllers/util_controller.ex:6 lib/pleroma/web/twitter_api/twitter_api_controller.ex:6 +#: lib/pleroma/web/uploader_controller.ex:6 lib/pleroma/web/web_finger/web_finger_controller.ex:6 +#, elixir-format +msgid "Security violation: OAuth scopes check was neither handled nor explicitly skipped." +msgstr "Vi phạm bảo mật: phạm vi OAuth bị bỏ qua hoặc vượt quá giới hạn." + +#: lib/pleroma/plugs/ensure_authenticated_plug.ex:28 +#, elixir-format +msgid "Two-factor authentication enabled, you must use a access token." +msgstr "Đã bật xác thực hai bước, bạn phải sử dụng token truy cập." + +#: lib/pleroma/web/pleroma_api/controllers/emoji_pack_controller.ex:210 +#, elixir-format +msgid "Unexpected error occurred while adding file to pack." +msgstr "Xảy ra lỗi chưa biết khi nén tập tin." + +#: lib/pleroma/web/pleroma_api/controllers/emoji_pack_controller.ex:138 +#, elixir-format +msgid "Unexpected error occurred while creating pack." +msgstr "Xảy ra lỗi chưa biết khi tạo tập tin." + +#: lib/pleroma/web/pleroma_api/controllers/emoji_pack_controller.ex:278 +#, elixir-format +msgid "Unexpected error occurred while removing file from pack." +msgstr "Xảy ra lỗi chưa biết khi giải nén tập tin." + +#: lib/pleroma/web/pleroma_api/controllers/emoji_pack_controller.ex:250 +#, elixir-format +msgid "Unexpected error occurred while updating file in pack." +msgstr "Xảy ra lỗi chưa biết khi cập nhật tập tin." + +#: lib/pleroma/web/pleroma_api/controllers/emoji_pack_controller.ex:179 +#, elixir-format +msgid "Unexpected error occurred while updating pack metadata." +msgstr "Xảy ra lỗi chưa biết khi cập nhật metadata tập tin." + +#: lib/pleroma/web/mastodon_api/controllers/subscription_controller.ex:61 +#, elixir-format +msgid "Web push subscription is disabled on this Pleroma instance" +msgstr "Máy chủ Pleroma này tắt thông báo đẩy trên web" + +#: lib/pleroma/web/admin_api/controllers/admin_api_controller.ex:451 +#, elixir-format +msgid "You can't revoke your own admin/moderator status." +msgstr "Bạn không thể tự gỡ chức vụ." + +#: lib/pleroma/web/mastodon_api/controllers/timeline_controller.ex:126 +#, elixir-format +msgid "authorization required for timeline view" +msgstr "yêu cầu xác thực để xem bảng tin" + +#: lib/pleroma/web/mastodon_api/controllers/fallback_controller.ex:24 +#, elixir-format +msgid "Access denied" +msgstr "Truy cập bị từ chối" + +#: lib/pleroma/web/mastodon_api/controllers/account_controller.ex:282 +#, elixir-format +msgid "This API requires an authenticated user" +msgstr "API yêu cầu một người dùng đã xác thực" + +#: lib/pleroma/plugs/user_is_admin_plug.ex:21 +#, elixir-format +msgid "User is not an admin." +msgstr "Người này không phải quản trị viên." diff --git a/priv/gettext/zh_Hans/LC_MESSAGES/config_descriptions.po b/priv/gettext/zh_Hans/LC_MESSAGES/config_descriptions.po new file mode 100644 index 000000000..ff9ad5245 --- /dev/null +++ b/priv/gettext/zh_Hans/LC_MESSAGES/config_descriptions.po @@ -0,0 +1,6034 @@ +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2022-07-21 04:21+0300\n" +"PO-Revision-Date: 2022-07-24 10:04+0000\n" +"Last-Translator: Yating Zhan \n" +"Language-Team: Chinese (Simplified) \n" +"Language: zh_Hans\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=1; plural=0;\n" +"X-Generator: Weblate 4.13.1\n" + +## This file is a PO Template file. +## +## "msgid"s here are often extracted from source code. +## Add new translations manually only if they're dynamic +## translations that can't be statically extracted. +## +## Run "mix gettext.extract" to bring this file up to +## date. Leave "msgstr"s empty as changing them here has no +## effect: edit them in PO (.po) files instead. +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :esshd" +msgid "Before enabling this you must add :esshd to mix.exs as one of the extra_applications and generate host keys in your priv dir with ssh-keygen -m PEM -N \"\" -b 2048 -t rsa -f ssh_host_rsa_key" +msgstr "" +"在启用这个之前,必须先把 :esshd 作为 extra_application 中之一添加到 mix.exs " +"里,然后在你的 priv 目录里通过 ssh-keygen -m PEM -N \"\" -b 2048 -t rsa -f " +"ssh_host_rsa_key 生成主机密钥" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :logger" +msgid "Logger-related settings" +msgstr "日志器相关设置" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :mime" +msgid "Mime Types settings" +msgstr "Mime 类型设置" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma" +msgid "Allows setting a token that can be used to authenticate requests with admin privileges without a normal user account token. Append the `admin_token` parameter to requests to utilize it. (Please reconsider using HTTP Basic Auth or OAuth-based authentication if possible)" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma" +msgid "Authenticator" +msgstr "鉴权器" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :quack" +msgid "Quack-related settings" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :cors_plug" +msgid "CORS plug config" +msgstr "CORS 插件配置" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :esshd" +msgid "ESSHD" +msgstr "ESSHD" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :logger" +msgid "Logger" +msgstr "日志器" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :mime" +msgid "Mime Types" +msgstr "Mime 类型" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma" +msgid "Pleroma Admin Token" +msgstr "Pleroma 管理员令牌" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma" +msgid "Pleroma Authenticator" +msgstr "Pleroma 鉴权器" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :quack" +msgid "Quack Logger" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :logger-:console" +msgid "Console logger settings" +msgstr "终端日志器设置" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :logger-:ex_syslogger" +msgid "ExSyslogger-related settings" +msgstr "ExSyslogger 相关设置" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:activitypub" +msgid "ActivityPub-related settings" +msgstr "ActivityPub 相关设置" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:assets" +msgid "This section configures assets to be used with various frontends. Currently the only option relates to mascots on the mastodon frontend" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:auth" +msgid "Authentication / authorization settings" +msgstr "鉴权/授权设置" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:connections_pool" +msgid "Advanced settings for `Gun` connections pool" +msgstr "「Gun」连接池的高级设置" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:email_notifications" +msgid "Email notifications settings" +msgstr "邮件通知设置" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:features" +msgid "Customizable features" +msgstr "可定制的特性" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:feed" +msgid "Configure feed rendering" +msgstr "配置 feed 渲染" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:frontend_configurations" +msgid "This form can be used to configure a keyword list that keeps the configuration data for any kind of frontend. By default, settings for pleroma_fe are configured. If you want to add your own configuration your settings all fields must be complete." +msgstr "" +"这个表单可以用来配置一个 keyword " +"列表,来存放给任意种类的前端的配置数据。默认地,这里配置了 pleroma_fe " +"的设置。如果你想添加自己的配置,所有的项都得完成。" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:frontends" +msgid "Installed frontends management" +msgstr "已经安装的前端的管理" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:gopher" +msgid "Gopher settings" +msgstr "Gopher 设置" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:hackney_pools" +msgid "Advanced settings for `Hackney` connections pools" +msgstr "「Hackney」连接池的高级设置" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:http" +msgid "HTTP settings" +msgstr "HTTP 设置" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:http_security" +msgid "HTTP security settings" +msgstr "HTTP 安全设置" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:instance" +msgid "Instance-related settings" +msgstr "实例相关设置" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:instances_favicons" +msgid "Control favicons for instances" +msgstr "控制实例的 favicon" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:ldap" +msgid "Use LDAP for user authentication. When a user logs in to the Pleroma instance, the name and password will be verified by trying to authenticate (bind) to a LDAP server. If a user exists in the LDAP directory but there is no account with the same name yet on the Pleroma instance then a new Pleroma account will be created with the same name as the LDAP user name." +msgstr "" +"用 LDAP 作用户鉴权。当用户登录进 Pleroma 实例时,会通过向 LDAP " +"服务器尝试鉴权(绑定)来验证名字和密码。如果用户在 LDAP 目录里,但同名账号在 " +"Pleroma 实例里还不存在,那么就会创建一个新的 Pleroma 账号,它的名字和 LDAP " +"用户名一样。" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:majic_pool" +msgid "Majic/libmagic configuration" +msgstr "Majic/libmagic 配置" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format, fuzzy +msgctxt "config description at :pleroma-:manifest" +msgid "This section describe PWA manifest instance-specific values. Currently this option relate only for MastoFE." +msgstr "此处提供针对特定实例的 PWA manifest 数值。目前相关设定尚只支持 MastoFE。" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:media_preview_proxy" +msgid "Media preview proxy" +msgstr "媒体预览代理" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:media_proxy" +msgid "Media proxy" +msgstr "媒体代理" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format, fuzzy +msgctxt "config description at :pleroma-:modules" +msgid "Custom Runtime Modules" +msgstr "自定义 Runtime 模块" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:mrf" +msgid "General MRF settings" +msgstr "通用 MRF 设置" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:mrf_activity_expiration" +msgid "Adds automatic expiration to all local activities" +msgstr "给所有本地 activity 添加自动过期" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:mrf_follow_bot" +msgid "Automatically follows newly discovered accounts." +msgstr "自动关注新发现的账号。" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:mrf_hashtag" +msgid "Reject, TWKN-remove or Set-Sensitive messsages with specific hashtags (without the leading #)\n\nNote: This MRF Policy is always enabled, if you want to disable it you have to set empty lists.\n" +msgstr "" +"把带有特定标签(不带开头#号)的讯息拒绝,从已知网络里删除或者设成敏感的\n" +"\n" +"注:这个 MRF 策略总是开启的,如果你想禁用它,你得设置成空列表。\n" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:mrf_hellthread" +msgid "Block messages with excessive user mentions" +msgstr "屏蔽提及太多用户的讯息" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:mrf_keyword" +msgid "Reject or Word-Replace messages matching a keyword or [Regex](https://hexdocs.pm/elixir/Regex.html)." +msgstr "对匹配一个关键词或者[正则](https://hexdocs.pm/elixir/Regex." +"html)的讯息拒绝或替换词语。" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:mrf_mention" +msgid "Block messages which mention a specific user" +msgstr "拒绝提及特定用户的讯息" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:mrf_normalize_markup" +msgid "MRF NormalizeMarkup settings. Scrub configured hypertext markup." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:mrf_object_age" +msgid "Rejects or delists posts based on their timestamp deviance from your server's clock." +msgstr "基于时间戳和服务器时钟的差距而拒绝或除列文章。" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:mrf_rejectnonpublic" +msgid "RejectNonPublic drops posts with non-public visibility settings." +msgstr "RejectNonPublic 丢弃有非公开的可见性设置的文章。" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:mrf_simple" +msgid "Simple ingress policies" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:mrf_steal_emoji" +msgid "Steals emojis from selected instances when it sees them." +msgstr "从选择的实例偷取看到的 emoji。" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:mrf_subchain" +msgid "This policy processes messages through an alternate pipeline when a given message matches certain criteria. All criteria are configured as a map of regular expressions to lists of policy modules." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:mrf_vocabulary" +msgid "Filter messages which belong to certain activity vocabularies" +msgstr "过滤属于特定 activity 词汇的讯息" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:oauth2" +msgid "Configure OAuth 2 provider capabilities" +msgstr "配置 OAuth 2 提供者的能力" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:pools" +msgid "Advanced settings for `Gun` workers pools" +msgstr "「Gun」工人池的高级设置" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:populate_hashtags_table" +msgid "`populate_hashtags_table` background migration settings" +msgstr "「populate_hashtags_table」后台迁移设置" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:rate_limit" +msgid "Rate limit settings. This is an advanced feature enabled only for :authentication by default." +msgstr "频率限制设置。这是高级特性,默认只对 :authentication (鉴权)开启。" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:restrict_unauthenticated" +msgid "Disallow viewing timelines, user profiles and statuses for unauthenticated users." +msgstr "不允许未被鉴权的用户查看时间线、用户主页和状态。" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:rich_media" +msgid "If enabled the instance will parse metadata from attached links to generate link previews" +msgstr "如果开启,实例会从附上的链接里析出元数据来生成链接预览" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:shout" +msgid "Pleroma shout settings" +msgstr "Pleroma 留言板设定" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:static_fe" +msgid "Render profiles and posts using server-generated HTML that is viewable without using JavaScript" +msgstr "用服务器生成的,不用 JavaScript 就可以查看的 HTML 来渲染用户页和文章" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:streamer" +msgid "Settings for notifications streamer" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:uri_schemes" +msgid "URI schemes related settings" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:web_cache_ttl" +msgid "The expiration time for the web responses cache. Values should be in milliseconds or `nil` to disable expiration." +msgstr "web 回应缓存的过期时间。值应该以毫秒为单位,或者用「nil」来禁用过期。" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:welcome" +msgid "Welcome messages settings" +msgstr "欢迎讯息设置" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:workers" +msgid "Includes custom worker options not interpretable directly by `Oban`" +msgstr "包含不能直接被「Oban」解读的自定工人选项" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-ConcurrentLimiter" +msgid "Limits configuration for background tasks." +msgstr "后台任务的限制的配置。" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-Oban" +msgid "[Oban](https://github.com/sorentwo/oban) asynchronous job processor configuration." +msgstr "[Oban](https://github.com/sorentwo/oban) 异步工作处理器的配置。" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-Pleroma.Captcha" +msgid "Captcha-related settings" +msgstr "验证码相关设定" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-Pleroma.Captcha.Kocaptcha" +msgid "Kocaptcha is a very simple captcha service with a single API endpoint, the source code is here: https://github.com/koto-bank/kocaptcha. The default endpoint (https://captcha.kotobank.ch) is hosted by the developer." +msgstr "" +"Kocaptcha 是一个非常简单的验证码服务,只有一个 API 终点,源码在此: " +"https://github.com/koto-bank/kocaptcha 。默认终点( https://" +"captcha.kotobank.ch )由开发者托管。" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-Pleroma.Emails.Mailer" +msgid "Mailer-related settings" +msgstr "邮递员相关设置" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-Pleroma.Emails.NewUsersDigestEmail" +msgid "New users admin email digest" +msgstr "新用户管理邮件摘要" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-Pleroma.Emails.UserEmail" +msgid "Email template settings" +msgstr "邮件模板设定" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-Pleroma.Formatter" +msgid "Configuration for Pleroma's link formatter which parses mentions, hashtags, and URLs." +msgstr "这是 Pleroma 的链接格式器的具体设定,可在此配置提及,标签与网址等。" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-Pleroma.ScheduledActivity" +msgid "Scheduled activities settings" +msgstr "定时活动设定" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-Pleroma.Upload" +msgid "Upload general settings" +msgstr "上传通用设定" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-Pleroma.Upload.Filter.AnonymizeFilename" +msgid "Filter replaces the filename of the upload" +msgstr "过滤器将会匿名化上传文件的文件名" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-Pleroma.Upload.Filter.Mogrify" +msgid "Uploads mogrify filter settings" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-Pleroma.Uploaders.Local" +msgid "Local uploader-related settings" +msgstr "本地上传器相关设置" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-Pleroma.Uploaders.S3" +msgid "S3 uploader-related settings" +msgstr "S3 上传器相关设置" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-Pleroma.User.Backup" +msgid "Account Backup" +msgstr "账户备份" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-Pleroma.Web.MediaProxy.Invalidation.Http" +msgid "HTTP invalidate settings" +msgstr "HTTP 无效化设置" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-Pleroma.Web.MediaProxy.Invalidation.Script" +msgid "Invalidation script settings" +msgstr "无效的脚本设定" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-Pleroma.Web.Metadata" +msgid "Metadata-related settings" +msgstr "元数据相关设定" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-Pleroma.Web.Plugs.RemoteIp" +msgid "`Pleroma.Web.Plugs.RemoteIp` is a shim to call [`RemoteIp`](https://git.pleroma.social/pleroma/remote_ip) but with runtime configuration.\n**If your instance is not behind at least one reverse proxy, you should not enable this plug.**\n" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-Pleroma.Web.Preload" +msgid "Preload-related settings" +msgstr "预加载相关设定" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-Pleroma.Workers.PurgeExpiredActivity" +msgid "Expired activities settings" +msgstr "失效活动设定" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :prometheus-Pleroma.Web.Endpoint.MetricsExporter" +msgid "Prometheus app metrics endpoint configuration" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :web_push_encryption-:vapid_details" +msgid "Web Push Notifications configuration. You can use the mix task mix web_push.gen.keypair to generate it." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :ex_aws-:s3" +msgid "S3" +msgstr "S3" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :logger-:console" +msgid "Console Logger" +msgstr "终端日志器" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :logger-:ex_syslogger" +msgid "ExSyslogger" +msgstr "ExSyslogger" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:activitypub" +msgid "ActivityPub" +msgstr "ActivityPub" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:assets" +msgid "Assets" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:auth" +msgid "Auth" +msgstr "验证" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:connections_pool" +msgid "Connections pool" +msgstr "连接池" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:email_notifications" +msgid "Email notifications" +msgstr "邮件通知" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:emoji" +msgid "Emoji" +msgstr "Emoji" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:features" +msgid "Features" +msgstr "特性" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:feed" +msgid "Feed" +msgstr "信息流" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:frontend_configurations" +msgid "Frontend configurations" +msgstr "前端配置" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:frontends" +msgid "Frontends" +msgstr "前端" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:gopher" +msgid "Gopher" +msgstr "Gopher" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:hackney_pools" +msgid "Hackney pools" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:http" +msgid "HTTP" +msgstr "HTTP" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:http_security" +msgid "HTTP security" +msgstr "HTTP 安全性" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:instance" +msgid "Instance" +msgstr "实例" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:instances_favicons" +msgid "Instances favicons" +msgstr "实例图标" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:ldap" +msgid "LDAP" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:majic_pool" +msgid "Majic pool" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:manifest" +msgid "Manifest" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:markup" +msgid "Markup Settings" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:media_preview_proxy" +msgid "Media preview proxy" +msgstr "媒体文件预览代理" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:media_proxy" +msgid "Media proxy" +msgstr "媒体文件代理" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:modules" +msgid "Modules" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:mrf" +msgid "MRF" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:mrf_activity_expiration" +msgid "MRF Activity Expiration Policy" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:mrf_follow_bot" +msgid "MRF FollowBot Policy" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:mrf_hashtag" +msgid "MRF Hashtag" +msgstr "MRF 标签" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:mrf_hellthread" +msgid "MRF Hellthread" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:mrf_keyword" +msgid "MRF Keyword" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:mrf_mention" +msgid "MRF Mention" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:mrf_normalize_markup" +msgid "MRF Normalize Markup" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:mrf_object_age" +msgid "MRF Object Age" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:mrf_rejectnonpublic" +msgid "MRF Reject Non Public" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:mrf_simple" +msgid "MRF Simple" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:mrf_steal_emoji" +msgid "MRF Emojis" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:mrf_subchain" +msgid "MRF Subchain" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:mrf_vocabulary" +msgid "MRF Vocabulary" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:oauth2" +msgid "OAuth2" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:pools" +msgid "Pools" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:populate_hashtags_table" +msgid "Populate hashtags table" +msgstr "本站话题标签列表" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:rate_limit" +msgid "Rate limit" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:restrict_unauthenticated" +msgid "Restrict Unauthenticated" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:rich_media" +msgid "Rich media" +msgstr "富媒体" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:shout" +msgid "Shout" +msgstr "留言板" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:static_fe" +msgid "Static FE" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:streamer" +msgid "Streamer" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:uri_schemes" +msgid "URI Schemes" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:user" +msgid "User" +msgstr "用户" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:web_cache_ttl" +msgid "Web cache TTL" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:welcome" +msgid "Welcome" +msgstr "欢迎" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:workers" +msgid "Workers" +msgstr "工人" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-ConcurrentLimiter" +msgid "ConcurrentLimiter" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Oban" +msgid "Oban" +msgstr "Oban" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Pleroma.Captcha" +msgid "Pleroma.Captcha" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Pleroma.Captcha.Kocaptcha" +msgid "Pleroma.Captcha.Kocaptcha" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Pleroma.Emails.Mailer" +msgid "Pleroma.Emails.Mailer" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Pleroma.Emails.NewUsersDigestEmail" +msgid "Pleroma.Emails.NewUsersDigestEmail" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Pleroma.Emails.UserEmail" +msgid "Pleroma.Emails.UserEmail" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Pleroma.Formatter" +msgid "Linkify" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Pleroma.ScheduledActivity" +msgid "Pleroma.ScheduledActivity" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Pleroma.Upload" +msgid "Pleroma.Upload" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Pleroma.Upload.Filter.AnonymizeFilename" +msgid "Pleroma.Upload.Filter.AnonymizeFilename" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Pleroma.Upload.Filter.Mogrify" +msgid "Pleroma.Upload.Filter.Mogrify" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Pleroma.Uploaders.Local" +msgid "Pleroma.Uploaders.Local" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Pleroma.Uploaders.S3" +msgid "Pleroma.Uploaders.S3" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Pleroma.User" +msgid "Pleroma.User" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Pleroma.User.Backup" +msgid "Pleroma.User.Backup" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Pleroma.Web.ApiSpec.CastAndValidate" +msgid "Pleroma.Web.ApiSpec.CastAndValidate" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Pleroma.Web.MediaProxy.Invalidation.Http" +msgid "Pleroma.Web.MediaProxy.Invalidation.Http" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Pleroma.Web.MediaProxy.Invalidation.Script" +msgid "Pleroma.Web.MediaProxy.Invalidation.Script" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Pleroma.Web.Metadata" +msgid "Pleroma.Web.Metadata" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Pleroma.Web.Plugs.RemoteIp" +msgid "Pleroma.Web.Plugs.RemoteIp" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Pleroma.Web.Preload" +msgid "Pleroma.Web.Preload" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Pleroma.Workers.PurgeExpiredActivity" +msgid "Pleroma.Workers.PurgeExpiredActivity" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :prometheus-Pleroma.Web.Endpoint.MetricsExporter" +msgid "Pleroma.Web.Endpoint.MetricsExporter" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :web_push_encryption-:vapid_details" +msgid "Vapid Details" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :esshd > :enabled" +msgid "Enables SSH" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :esshd > :handler" +msgid "Handler module" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :esshd > :password_authenticator" +msgid "Authenticator module" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :esshd > :port" +msgid "Port to connect" +msgstr "用于连接的端口" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :esshd > :priv_dir" +msgid "Dir with SSH keys" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :ex_aws-:s3 > :access_key_id" +msgid "S3 access key ID" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :ex_aws-:s3 > :host" +msgid "S3 host" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :ex_aws-:s3 > :region" +msgid "S3 region (for AWS)" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :ex_aws-:s3 > :secret_access_key" +msgid "Secret access key" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :logger > :backends" +msgid "Where logs will be sent, :console - send logs to stdout, { ExSyslogger, :ex_syslogger } - to syslog, Quack.Logger - to Slack." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :logger-:console > :format" +msgid "Default: \"$date $time [$level] $levelpad$node $metadata $message\"" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :logger-:console > :level" +msgid "Log level" +msgstr "日志等级" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :logger-:ex_syslogger > :format" +msgid "Default: \"$date $time [$level] $levelpad$node $metadata $message\"" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :logger-:ex_syslogger > :ident" +msgid "A string that's prepended to every message, and is typically set to the app name" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :logger-:ex_syslogger > :level" +msgid "Log level" +msgstr "日志等级" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma > :admin_token" +msgid "Admin token" +msgstr "管理令牌" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:activitypub > :blockers_visible" +msgid "Whether a user can see someone who has blocked them" +msgstr "用户能否查看屏蔽了他们的用户" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:activitypub > :follow_handshake_timeout" +msgid "Following handshake timeout" +msgstr "关注请求超时" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:activitypub > :note_replies_output_limit" +msgid "The number of Note replies' URIs to be included with outgoing federation (`5` to match Mastodon hardcoded value, `0` to disable the output)" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:activitypub > :outgoing_blocks" +msgid "Whether to federate blocks to other instances" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:activitypub > :sign_object_fetches" +msgid "Sign object fetches with HTTP signatures" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:activitypub > :unfollow_blocked" +msgid "Whether blocks result in people getting unfollowed" +msgstr "屏蔽对象时是否同时取消对其的关注" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:assets > :default_mascot" +msgid "This will be used as the default mascot on MastoFE. Default: `:pleroma_fox_tan`" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:assets > :default_user_avatar" +msgid "URL of the default user avatar" +msgstr "默认用户头像的网址" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:assets > :mascots" +msgid "Keyword of mascots, each element must contain both an URL and a mime_type key" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:auth > :auth_template" +msgid "Authentication form template. By default it's `show.html` which corresponds to `lib/pleroma/web/templates/o_auth/o_auth/show.html.ee`." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:auth > :enforce_oauth_admin_scope_usage" +msgid "OAuth admin scope requirement toggle. If enabled, admin actions explicitly demand admin OAuth scope(s) presence in OAuth token (client app must support admin scopes). If disabled and token doesn't have admin scope(s), `is_admin` user flag grants access to admin-specific actions." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:auth > :oauth_consumer_strategies" +msgid "The list of enabled OAuth consumer strategies. By default it's set by OAUTH_CONSUMER_STRATEGIES environment variable. Each entry in this space-delimited string should be of format \"strategy\" or \"strategy:dependency\" (e.g. twitter or keycloak:ueberauth_keycloak_strategy in case dependency is named differently than ueberauth_)." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:auth > :oauth_consumer_template" +msgid "OAuth consumer mode authentication form template. By default it's `consumer.html` which corresponds to `lib/pleroma/web/templates/o_auth/o_auth/consumer.html.eex`." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:connections_pool > :connect_timeout" +msgid "Timeout while `gun` will wait until connection is up. Default: 5000ms." +msgstr "「Gun」等待连接时触发超时的上限。默认为5000ms。" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:connections_pool > :connection_acquisition_retries" +msgid "Number of attempts to acquire the connection from the pool if it is overloaded. Default: 5" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:connections_pool > :connection_acquisition_wait" +msgid "Timeout to acquire a connection from pool. The total max time is this value multiplied by the number of retries. Default: 250ms." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:connections_pool > :max_connections" +msgid "Maximum number of connections in the pool. Default: 250 connections." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:connections_pool > :reclaim_multiplier" +msgid "Multiplier for the number of idle connection to be reclaimed if the pool is full. For example if the pool maxes out at 250 connections and this setting is set to 0.3, the pool will reclaim at most 75 idle connections if it's overloaded. Default: 0.1" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:email_notifications > :digest" +msgid "emails of \"what you've missed\" for users who have been inactive for a while" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:email_notifications > :digest > :active" +msgid "Globally enable or disable digest emails" +msgstr "完全开启或关闭摘要邮件" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:email_notifications > :digest > :inactivity_threshold" +msgid "Minimum user inactivity threshold" +msgstr "非活跃用户数量最低门槛" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:email_notifications > :digest > :interval" +msgid "Minimum interval between digest emails to one user" +msgstr "单个用户每次收到摘要邮件的间隔" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:email_notifications > :digest > :schedule" +msgid "When to send digest email, in crontab format. \"0 0 0\" is the default, meaning \"once a week at midnight on Sunday morning\"." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:emoji > :default_manifest" +msgid "Location of the JSON-manifest. This manifest contains information about the emoji-packs you can download. Currently only one manifest can be added (no arrays)." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:emoji > :groups" +msgid "Emojis are ordered in groups (tags). This is an array of key-value pairs where the key is the group name and the value is the location or array of locations. * can be used as a wildcard." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:emoji > :pack_extensions" +msgid "A list of file extensions for emojis, when no emoji.txt for a pack is present" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:emoji > :shortcode_globs" +msgid "Location of custom emoji files. * can be used as a wildcard." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:features > :improved_hashtag_timeline" +msgid "Setting to force toggle / force disable improved hashtags timeline. `:enabled` forces hashtags to be fetched from `hashtags` table for hashtags timeline. `:disabled` forces object-embedded hashtags to be used (slower). Keep it `:auto` for automatic behaviour (it is auto-set to `:enabled` [unless overridden] when HashtagsTableMigrator completes)." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:feed > :post_title" +msgid "Configure title rendering" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:feed > :post_title > :max_length" +msgid "Maximum number of characters before truncating title" +msgstr "不被折叠的用户名的字数上限" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:feed > :post_title > :omission" +msgid "Replacement which will be used after truncating string" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:frontend_configurations > :pleroma_fe" +msgid "Settings for Pleroma FE" +msgstr "Pleroma FE 设定" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:frontend_configurations > :pleroma_fe > :alwaysShowSubjectInput" +msgid "When disabled, auto-hide the subject field if it's empty" +msgstr "当被停用时,自动隐藏未被填写的标题栏" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:frontend_configurations > :pleroma_fe > :background" +msgid "URL of the background, unless viewing a user profile with a background that is set" +msgstr "输入背景的网址,若浏览已设定背景的用户资料时此处将不生效" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:frontend_configurations > :pleroma_fe > :collapseMessageWithSubject" +msgid "When a message has a subject (aka Content Warning), collapse it by default" +msgstr "默认状态下,将自动折叠带有标题的信息(内容警告)" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:frontend_configurations > :pleroma_fe > :greentext" +msgid "Enables green text on lines prefixed with the > character" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:frontend_configurations > :pleroma_fe > :hideFilteredStatuses" +msgid "Hides filtered statuses from timelines" +msgstr "从时间线上隐藏被过滤的状态" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:frontend_configurations > :pleroma_fe > :hideMutedPosts" +msgid "Hides muted statuses from timelines" +msgstr "从时间线上折叠被隐藏的状态" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:frontend_configurations > :pleroma_fe > :hidePostStats" +msgid "Hide notices statistics (repeats, favorites, ...)" +msgstr "关闭互动提醒(转发,点赞等)" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:frontend_configurations > :pleroma_fe > :hideSitename" +msgid "Hides instance name from PleromaFE banner" +msgstr "在 PleromaFE 横幅上隐藏实例名称" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:frontend_configurations > :pleroma_fe > :hideUserStats" +msgid "Hide profile statistics (posts, posts per day, followers, followings, ...)" +msgstr "隐藏账号页面数据(发文数量、平均每日发文数量、关注者数量、正在关注数量等)" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:frontend_configurations > :pleroma_fe > :logo" +msgid "URL of the logo, defaults to Pleroma's logo" +msgstr "输入指定 logo 的链接,默认下为 Pleroma 的 logo" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:frontend_configurations > :pleroma_fe > :logoMargin" +msgid "Allows you to adjust vertical margins between logo boundary and navbar borders. The idea is that to have logo's image without any extra margins and instead adjust them to your need in layout." +msgstr "您可以自定义 logo 与导航栏边界之间的垂直间隔。此功能是为了去除多余的 logo " +"间隔,允许您根据自己所需来调整布局。" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:frontend_configurations > :pleroma_fe > :logoMask" +msgid "By default it assumes logo used will be monochrome with alpha channel to be compatible with both light and dark themes. If you want a colorful logo you must disable logoMask." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:frontend_configurations > :pleroma_fe > :minimalScopesMode" +msgid "Limit scope selection to Direct, User default, and Scope of post replying to. Also prevents replying to a DM with a public post from PleromaFE." +msgstr "可见范围选项将只保留私信与用户默认,或是跟随被回复帖文的设定。这能够帮助 " +"Pleroma FE 的用户不会意外将对私信的回复设置为公开。" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:frontend_configurations > :pleroma_fe > :nsfwCensorImage" +msgid "URL of the image to use for hiding NSFW media attachments in the timeline" +msgstr "在此指定用于隐藏出现在时间线上 NSFW 媒体文件的遮罩图片链接" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:frontend_configurations > :pleroma_fe > :postContentType" +msgid "Default post formatting option" +msgstr "贴文格式默认选项" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:frontend_configurations > :pleroma_fe > :redirectRootLogin" +msgid "Relative URL which indicates where to redirect when a user is logged in" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:frontend_configurations > :pleroma_fe > :redirectRootNoLogin" +msgid "Relative URL which indicates where to redirect when a user isn't logged in" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:frontend_configurations > :pleroma_fe > :scopeCopy" +msgid "Copy the scope (private/unlisted/public) in replies to posts by default" +msgstr "回复的可见范围(仅关注者/不公开/公开)将默认跟随原贴文的设定" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:frontend_configurations > :pleroma_fe > :showFeaturesPanel" +msgid "Enables panel displaying functionality of the instance on the About page" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:frontend_configurations > :pleroma_fe > :showInstanceSpecificPanel" +msgid "Whether to show the instance's custom panel" +msgstr "是否展示该实例的自定义面板" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:frontend_configurations > :pleroma_fe > :sidebarRight" +msgid "Change alignment of sidebar and panels to the right" +msgstr "将面板与侧栏向右对齐" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:frontend_configurations > :pleroma_fe > :subjectLineBehavior" +msgid "Allows changing the default behaviour of subject lines in replies.\n `email`: copy and preprend re:, as in email,\n `masto`: copy verbatim, as in Mastodon,\n `noop`: don't copy the subject." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:frontend_configurations > :pleroma_fe > :theme" +msgid "Which theme to use. Available themes are defined in styles.json" +msgstr "使用某个主题。styles.json 中已限定了可用的主题" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:frontends > :admin" +msgid "Admin frontend" +msgstr "管理员前端" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:frontends > :admin > name" +msgid "Name of the installed frontend. Valid config must include both `Name` and `Reference` values." +msgstr "已安装的前端名称。只有包含了「名称」与「引用」数值才能被算作有效配置。" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:frontends > :admin > ref" +msgid "Reference of the installed frontend to be used. Valid config must include both `Name` and `Reference` values." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:frontends > :available" +msgid "A map containing available frontends and parameters for their installation." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:frontends > :available > build_dir" +msgid "The directory inside the zip file " +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:frontends > :available > build_url" +msgid "Either an url to a zip file containing the frontend or a template to build it by inserting the `ref`. The string `${ref}` will be replaced by the configured `ref`." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:frontends > :available > custom-http-headers" +msgid "The custom HTTP headers for the frontend" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:frontends > :available > git" +msgid "URL of the git repository of the frontend" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:frontends > :available > name" +msgid "Name of the frontend." +msgstr "前端名称。" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:frontends > :available > ref" +msgid "Reference of the frontend to be used." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:frontends > :primary" +msgid "Primary frontend, the one that is served for all pages by default" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:frontends > :primary > name" +msgid "Name of the installed frontend. Valid config must include both `Name` and `Reference` values." +msgstr "已安装的前端名称。只有包含了「名称」与「引用」数值才能被算作有效配置。" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:frontends > :primary > ref" +msgid "Reference of the installed frontend to be used. Valid config must include both `Name` and `Reference` values." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:gopher > :dstport" +msgid "Port advertised in URLs (optional, defaults to port)" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:gopher > :enabled" +msgid "Enables the gopher interface" +msgstr "启用 gopher 界面" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:gopher > :ip" +msgid "IP address to bind to" +msgstr "指定绑定IP地址" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:gopher > :port" +msgid "Port to bind to" +msgstr "指定绑定端口" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:hackney_pools > :federation" +msgid "Settings for federation pool." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:hackney_pools > :federation > :max_connections" +msgid "Number workers in the pool." +msgstr "池内的工人数量。" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:hackney_pools > :federation > :timeout" +msgid "Timeout while `hackney` will wait for response." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:hackney_pools > :media" +msgid "Settings for media pool." +msgstr "媒体池设定。" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:hackney_pools > :media > :max_connections" +msgid "Number workers in the pool." +msgstr "池内的工人数量。" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:hackney_pools > :media > :timeout" +msgid "Timeout while `hackney` will wait for response." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:hackney_pools > :upload" +msgid "Settings for upload pool." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:hackney_pools > :upload > :max_connections" +msgid "Number workers in the pool." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:hackney_pools > :upload > :timeout" +msgid "Timeout while `hackney` will wait for response." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:http > :adapter" +msgid "Adapter specific options" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:http > :adapter > :ssl_options" +msgid "SSL options for HTTP adapter" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:http > :adapter > :ssl_options > :versions" +msgid "List of TLS version to use" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:http > :proxy_url" +msgid "Proxy URL" +msgstr "代理网址" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:http > :user_agent" +msgid "What user agent to use. Must be a string or an atom `:default`. Default value is `:default`." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:http_security > :ct_max_age" +msgid "The maximum age for the Expect-CT header if sent" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:http_security > :enabled" +msgid "Whether the managed content security policy is enabled" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:http_security > :referrer_policy" +msgid "The referrer policy to use, either \"same-origin\" or \"no-referrer\"" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:http_security > :report_uri" +msgid "Adds the specified URL to report-uri and report-to group in CSP header" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:http_security > :sts" +msgid "Whether to additionally send a Strict-Transport-Security header" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:http_security > :sts_max_age" +msgid "The maximum age for the Strict-Transport-Security header if sent" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:instance > :account_activation_required" +msgid "Require users to confirm their emails before signing in" +msgstr "要求用户登陆时必须确认邮件" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:instance > :account_approval_required" +msgid "Require users to be manually approved by an admin before signing in" +msgstr "用户登陆需要管理员同意" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:instance > :account_field_name_length" +msgid "An account field name maximum length. Default: 512." +msgstr "单个用户信息名称的字数上限。默认为512。" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:instance > :account_field_value_length" +msgid "An account field value maximum length. Default: 2048." +msgstr "单个用户信息内容的字数上限。默认为2048。" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:instance > :allow_relay" +msgid "Permits remote instances to subscribe to all public posts of your instance. (Important!) This may increase the visibility of your instance." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:instance > :allowed_post_formats" +msgid "MIME-type list of formats allowed to be posted (transformed into HTML)" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:instance > :attachment_links" +msgid "Enable to automatically add attachment link text to statuses" +msgstr "启用此功能将自动添加附件链接至状态中" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:instance > :autofollowed_nicknames" +msgid "Set to nicknames of (local) users that every new user should automatically follow" +msgstr "为会被新用户自动关注的(本地)用户设定昵称" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:instance > :autofollowing_nicknames" +msgid "Set to nicknames of (local) users that automatically follows every newly registered user" +msgstr "为会自动关注每一个新用户的(本地)用户设定昵称" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:instance > :avatar_upload_limit" +msgid "File size limit of user's profile avatars" +msgstr "用户头像的文件大小上限" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:instance > :background_upload_limit" +msgid "File size limit of user's profile backgrounds" +msgstr "用户资料背景的文件大小上限" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:instance > :banner_upload_limit" +msgid "File size limit of user's profile banners" +msgstr "用户资料横幅的文件大小上限" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:instance > :birthday_min_age" +msgid "Minimum required age for users to create account. Only used if birthday is required." +msgstr "创建账户的最低年龄限制。只有当需要输入生日时才生效。" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:instance > :birthday_required" +msgid "Require users to enter their birthday." +msgstr "要求用户输入出生日期。" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:instance > :cleanup_attachments" +msgid "Enable to remove associated attachments when status is removed.\nThis will not affect duplicates and attachments without status.\nEnabling this will increase load to database when deleting statuses on larger instances.\n" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:instance > :description" +msgid "The instance's description. It can be seen in nodeinfo and `/api/v1/instance`" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:instance > :email" +msgid "Email used to reach an Administrator/Moderator of the instance" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:instance > :extended_nickname_format" +msgid "Enable to use extended local nicknames format (allows underscores/dashes). This will break federation with older software for theses nicknames." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:instance > :external_user_synchronization" +msgid "Enabling following/followers counters synchronization for external users" +msgstr "为外部用户启用对关注者与正在关注数量的同步" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:instance > :federating" +msgid "Enable federation with other instances" +msgstr "启用与其他实例的联邦互通" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:instance > :federation_incoming_replies_max_depth" +msgid "Max. depth of reply-to and reply activities fetching on incoming federation, to prevent out-of-memory situations while fetching very long threads. If set to `nil`, threads of any depth will be fetched. Lower this value if you experience out-of-memory crashes." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:instance > :federation_reachability_timeout_days" +msgid "Timeout (in days) of each external federation target being unreachable prior to pausing federating to it" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format, fuzzy +msgctxt "config description at :pleroma-:instance > :healthcheck" +msgid "If enabled, system data will be shown on `/api/pleroma/healthcheck`" +msgstr "若启用,「/api/pleroma/healthcheck」下将显示系统数据" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:instance > :instance_thumbnail" +msgid "The instance thumbnail can be any image that represents your instance and is used by some apps or services when they display information about your instance." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:instance > :invites_enabled" +msgid "Enable user invitations for admins (depends on `registrations_open` being disabled)" +msgstr "只有管理员邀请的用户方能注册(需要关闭「registrations_open」选项)" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:instance > :limit" +msgid "Posts character limit (CW/Subject included in the counter)" +msgstr "贴文字数上限(内容警告/标题包含在内)" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:instance > :limit_to_local_content" +msgid "Limit unauthenticated users to search for local statutes and users only. Default: `:unauthenticated`." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:instance > :max_account_fields" +msgid "The maximum number of custom fields in the user profile. Default: 10." +msgstr "用户资料中可展示的自定用户信息最大上限。默认为10。" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:instance > :max_endorsed_users" +msgid "The maximum number of recommended accounts. 0 will disable the feature." +msgstr "推荐账户的最大数量。设置为0将关闭该功能。" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:instance > :max_media_attachments" +msgid "Maximum number of post media attachments" +msgstr "最多可上传的媒体文件数量" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:instance > :max_pinned_statuses" +msgid "The maximum number of pinned statuses. 0 will disable the feature." +msgstr "可被置顶的状态数量上限。设定为0则关闭该功能。" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:instance > :max_remote_account_fields" +msgid "The maximum number of custom fields in the remote user profile. Default: 20." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:instance > :max_report_comment_size" +msgid "The maximum size of the report comment. Default: 1000." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:instance > :multi_factor_authentication" +msgid "Multi-factor authentication settings" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:instance > :multi_factor_authentication > :backup_codes" +msgid "MFA backup codes settings" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:instance > :multi_factor_authentication > :backup_codes > :length" +msgid "Determines the length of backup one-time pass-codes, in characters. Defaults to 16 characters." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:instance > :multi_factor_authentication > :backup_codes > :number" +msgid "Number of backup codes to generate." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:instance > :multi_factor_authentication > :totp" +msgid "TOTP settings" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:instance > :multi_factor_authentication > :totp > :digits" +msgid "Determines the length of a one-time pass-code, in characters. Defaults to 6 characters." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:instance > :multi_factor_authentication > :totp > :period" +msgid "A period for which the TOTP code will be valid, in seconds. Defaults to 30 seconds." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:instance > :name" +msgid "Name of the instance" +msgstr "实例名称" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:instance > :notify_email" +msgid "Envelope FROM address for mail sent via Pleroma" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:instance > :poll_limits" +msgid "A map with poll limits for local polls" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:instance > :poll_limits > :max_expiration" +msgid "Maximum expiration time (in seconds)" +msgstr "最大有效时间(以秒为单位)" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:instance > :poll_limits > :max_option_chars" +msgid "Maximum number of characters per option" +msgstr "单个选项的字数上限" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:instance > :poll_limits > :max_options" +msgid "Maximum number of options" +msgstr "选项数量上限" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:instance > :poll_limits > :min_expiration" +msgid "Minimum expiration time (in seconds)" +msgstr "最小有效时间(以秒为单位)" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format, fuzzy +msgctxt "config description at :pleroma-:instance > :privileged_staff" +msgid "Let moderators access sensitive data (e.g. updating user credentials, get password reset token, delete users, index and read private statuses and chats)" +msgstr "允许管理员访问敏感信息(例,更新用户凭据、取得密码重置令牌、删除用户、能够索" +"引并阅览私密状态与聊天信息)" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:instance > :profile_directory" +msgid "Enable profile directory." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:instance > :public" +msgid "Makes the client API in authenticated mode-only except for user-profiles. Useful for disabling the Local Timeline and The Whole Known Network. Note: when setting to `false`, please also check `:restrict_unauthenticated` setting." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:instance > :quarantined_instances" +msgid "List of ActivityPub instances where private (DMs, followers-only) activities will not be sent and the reason for doing so" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:instance > :registration_reason_length" +msgid "Maximum registration reason length. Default: 500." +msgstr "申请注册理由的字数上限。默认为500。" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:instance > :registrations_open" +msgid "Enable registrations for anyone. Invitations require this setting to be disabled." +msgstr "开放注册。若要启用邀请制注册则需关闭此项。" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:instance > :remote_limit" +msgid "Hard character limit beyond which remote posts will be dropped" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:instance > :remote_post_retention_days" +msgid "The default amount of days to retain remote posts when pruning the database" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:instance > :safe_dm_mentions" +msgid "If enabled, only mentions at the beginning of a post will be used to address people in direct messages. This is to prevent accidental mentioning of people when talking about them (e.g. \"@admin please keep an eye on @bad_actor\"). Default: disabled" +msgstr "" +"启用后,只有处于私信最开头的用户名才会被提及。这将有助于防止意外提及不想要的" +"用户(例,“@admin 请留意 @bad_actor”)。默认下为关闭状态" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format, fuzzy +msgctxt "config description at :pleroma-:instance > :show_reactions" +msgid "Let favourites and emoji reactions be viewed through the API." +msgstr "允许通过此API来看见喜欢数量与表情反应。" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:instance > :skip_thread_containment" +msgid "Skip filtering out broken threads. Default: enabled." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:instance > :static_dir" +msgid "Instance static directory" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:instance > :upload_limit" +msgid "File size limit of uploads (except for avatar, background, banner)" +msgstr "上传文件大小上限(不包括头像、背景与横幅)" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:instance > :user_bio_length" +msgid "A user bio maximum length. Default: 5000." +msgstr "用户自传的字数上限。默认为5000。" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:instance > :user_name_length" +msgid "A user name maximum length. Default: 100." +msgstr "用户名的字数上限。默认为100。" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:instances_favicons > :enabled" +msgid "Allow/disallow displaying and getting instances favicons" +msgstr "允许/不允许获取并展示实例图标" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:ldap > :base" +msgid "LDAP base, e.g. \"dc=example,dc=com\"" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:ldap > :enabled" +msgid "Enables LDAP authentication" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:ldap > :host" +msgid "LDAP server hostname" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:ldap > :port" +msgid "LDAP port, e.g. 389 or 636" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:ldap > :ssl" +msgid "Enable to use SSL, usually implies the port 636" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:ldap > :sslopts" +msgid "Additional SSL options" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:ldap > :sslopts > :cacertfile" +msgid "Path to file with PEM encoded cacerts" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:ldap > :sslopts > :verify" +msgid "Type of cert verification" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:ldap > :tls" +msgid "Enable to use STARTTLS, usually implies the port 389" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:ldap > :tlsopts" +msgid "Additional TLS options" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:ldap > :tlsopts > :cacertfile" +msgid "Path to file with PEM encoded cacerts" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:ldap > :tlsopts > :verify" +msgid "Type of cert verification" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:ldap > :uid" +msgid "LDAP attribute name to authenticate the user, e.g. when \"cn\", the filter will be \"cn=username,base\"" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:majic_pool > :size" +msgid "Number of majic workers to start." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:manifest > :background_color" +msgid "Describe the background color of the app" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:manifest > :icons" +msgid "Describe the icons of the app" +msgstr "描述此应用的图标" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:manifest > :theme_color" +msgid "Describe the theme color of the app" +msgstr "描述此应用的主题颜色" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:markup > :scrub_policy" +msgid "Module names are shortened (removed leading `Pleroma.HTML.` part), but on adding custom module you need to use full name." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:media_preview_proxy > :enabled" +msgid "Enables proxying of remote media preview to the instance's proxy. Requires enabled media proxy." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:media_preview_proxy > :image_quality" +msgid "Quality of the output. Ranges from 0 (min quality) to 100 (max quality)." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:media_preview_proxy > :min_content_length" +msgid "Min content length (in bytes) to perform preview. Media smaller in size will be served without thumbnailing." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:media_preview_proxy > :thumbnail_max_height" +msgid "Max height of preview thumbnail for images (video preview always has original dimensions)." +msgstr "图像的生成预览缩略图的长度上限(视频预览则始终保持原始尺寸)。" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:media_preview_proxy > :thumbnail_max_width" +msgid "Max width of preview thumbnail for images (video preview always has original dimensions)." +msgstr "图像的生成预览缩略图的宽度上限(视频预览则始终保持原始尺寸)。" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:media_proxy > :base_url" +msgid "The base URL to access a user-uploaded file. Useful when you want to proxy the media files via another host/CDN fronts." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:media_proxy > :enabled" +msgid "Enables proxying of remote media via the instance's proxy" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:media_proxy > :invalidation > :enabled" +msgid "Enables media cache object invalidation." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:media_proxy > :invalidation > :provider" +msgid "Module which will be used to purge objects from the cache." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:media_proxy > :proxy_opts" +msgid "Internal Pleroma.ReverseProxy settings" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:media_proxy > :proxy_opts > :max_body_length" +msgid "Maximum file size (in bytes) allowed through the Pleroma MediaProxy cache." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:media_proxy > :proxy_opts > :max_read_duration" +msgid "Timeout (in milliseconds) of GET request to the remote URI." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:media_proxy > :proxy_opts > :redirect_on_failure" +msgid "Redirects the client to the origin server upon encountering HTTP errors.\n\nNote that files larger than Max Body Length will trigger an error. (e.g., Peertube videos)\n\n\n**WARNING:** This setting will allow larger files to be accessed, but exposes the\n\nIP addresses of your users to the other servers, bypassing the MediaProxy.\n" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:media_proxy > :whitelist" +msgid "List of hosts with scheme to bypass the MediaProxy" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:modules > :runtime_dir" +msgid "A path to custom Elixir modules (such as MRF policies)." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:mrf > :policies" +msgid "A list of MRF policies enabled. Module names are shortened (removed leading `Pleroma.Web.ActivityPub.MRF.` part), but on adding custom module you need to use full name." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:mrf > :transparency" +msgid "Make the content of your Message Rewrite Facility settings public (via nodeinfo)" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:mrf > :transparency_exclusions" +msgid "Exclude specific instance names from MRF transparency. The use of the exclusions feature will be disclosed in nodeinfo as a boolean value. You can also provide a reason for excluding these instance names. The instances and reasons won't be publicly disclosed." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:mrf_activity_expiration > :days" +msgid "Default global expiration time for all local activities (in days)" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:mrf_follow_bot > :follower_nickname" +msgid "The name of the bot account to use for following newly discovered users." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:mrf_hashtag > :federated_timeline_removal" +msgid "A list of hashtags which result in message being removed from federated timelines (a.k.a unlisted)." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:mrf_hashtag > :reject" +msgid "A list of hashtags which result in message being rejected." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:mrf_hashtag > :sensitive" +msgid "A list of hashtags which result in message being set as sensitive (a.k.a NSFW/R-18)" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:mrf_hellthread > :delist_threshold" +msgid "Number of mentioned users after which the message gets removed from timelines anddisables notifications. Set to 0 to disable." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:mrf_hellthread > :reject_threshold" +msgid "Number of mentioned users after which the messaged gets rejected. Set to 0 to disable." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:mrf_keyword > :federated_timeline_removal" +msgid " A list of patterns which result in message being removed from federated timelines (a.k.a unlisted).\n\n Each pattern can be a string or [Regex](https://hexdocs.pm/elixir/Regex.html) in the format of `~r/PATTERN/`.\n" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:mrf_keyword > :reject" +msgid " A list of patterns which result in message being rejected.\n\n Each pattern can be a string or [Regex](https://hexdocs.pm/elixir/Regex.html) in the format of `~r/PATTERN/`.\n" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:mrf_keyword > :replace" +msgid " **Pattern**: a string or [Regex](https://hexdocs.pm/elixir/Regex.html) in the format of `~r/PATTERN/`.\n\n **Replacement**: a string. Leaving the field empty is permitted.\n" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:mrf_mention > :actors" +msgid "A list of actors for which any post mentioning them will be dropped" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:mrf_object_age > :actions" +msgid "A list of actions to apply to the post. `:delist` removes the post from public timelines; `:strip_followers` removes followers from the ActivityPub recipient list ensuring they won't be delivered to home timelines; `:reject` rejects the message entirely" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:mrf_object_age > :threshold" +msgid "Required age (in seconds) of a post before actions are taken." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:mrf_rejectnonpublic > :allow_direct" +msgid "Whether to allow direct messages" +msgstr "是否允许私信" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:mrf_rejectnonpublic > :allow_followersonly" +msgid "Whether to allow followers-only posts" +msgstr "是否允许仅限关注者的帖文" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:mrf_simple > :accept" +msgid "List of instances to only accept activities from (except deletes) and the reason for doing so" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:mrf_simple > :avatar_removal" +msgid "List of instances to strip avatars from and the reason for doing so" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:mrf_simple > :banner_removal" +msgid "List of instances to strip banners from and the reason for doing so" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:mrf_simple > :federated_timeline_removal" +msgid "List of instances to remove from the Federated (aka The Whole Known Network) Timeline and the reason for doing so" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:mrf_simple > :followers_only" +msgid "Force posts from the given instances to be visible by followers only and the reason for doing so" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:mrf_simple > :media_nsfw" +msgid "List of instances to tag all media as NSFW (sensitive) from and the reason for doing so" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:mrf_simple > :media_removal" +msgid "List of instances to strip media attachments from and the reason for doing so" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:mrf_simple > :reject" +msgid "List of instances to reject activities from (except deletes) and the reason for doing so" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:mrf_simple > :reject_deletes" +msgid "List of instances to reject deletions from and the reason for doing so" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:mrf_simple > :report_removal" +msgid "List of instances to reject reports from and the reason for doing so" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:mrf_steal_emoji > :hosts" +msgid "List of hosts to steal emojis from" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:mrf_steal_emoji > :rejected_shortcodes" +msgid " A list of patterns or matches to reject shortcodes with.\n\n Each pattern can be a string or [Regex](https://hexdocs.pm/elixir/Regex.html) in the format of `~r/PATTERN/`.\n" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:mrf_steal_emoji > :size_limit" +msgid "File size limit (in bytes), checked before an emoji is saved to the disk" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:mrf_subchain > :match_actor" +msgid "Matches a series of regular expressions against the actor field" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:mrf_vocabulary > :accept" +msgid "A list of ActivityStreams terms to accept. If empty, all supported messages are accepted." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:mrf_vocabulary > :reject" +msgid "A list of ActivityStreams terms to reject. If empty, no messages are rejected." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:oauth2 > :clean_expired_tokens" +msgid "Enable a background job to clean expired OAuth tokens. Default: disabled." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:oauth2 > :issue_new_refresh_token" +msgid "Keeps old refresh token or generate new refresh token when to obtain an access token" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:oauth2 > :token_expires_in" +msgid "The lifetime in seconds of the access token" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:pools > :default" +msgid "Settings for default pool." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:pools > :default > :max_waiting" +msgid "Maximum number of requests waiting for other requests to finish. After this number is reached, the pool will start returning errrors when a new request is made" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:pools > :default > :recv_timeout" +msgid "Timeout for the pool while gun will wait for response" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:pools > :default > :size" +msgid "Maximum number of concurrent requests in the pool." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:pools > :federation" +msgid "Settings for federation pool." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:pools > :federation > :max_waiting" +msgid "Maximum number of requests waiting for other requests to finish. After this number is reached, the pool will start returning errrors when a new request is made" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:pools > :federation > :recv_timeout" +msgid "Timeout for the pool while gun will wait for response" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:pools > :federation > :size" +msgid "Maximum number of concurrent requests in the pool." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:pools > :media" +msgid "Settings for media pool." +msgstr "媒体池设定。" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:pools > :media > :max_waiting" +msgid "Maximum number of requests waiting for other requests to finish. After this number is reached, the pool will start returning errrors when a new request is made" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:pools > :media > :recv_timeout" +msgid "Timeout for the pool while gun will wait for response" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:pools > :media > :size" +msgid "Maximum number of concurrent requests in the pool." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:pools > :upload" +msgid "Settings for upload pool." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:pools > :upload > :max_waiting" +msgid "Maximum number of requests waiting for other requests to finish. After this number is reached, the pool will start returning errrors when a new request is made" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:pools > :upload > :recv_timeout" +msgid "Timeout for the pool while gun will wait for response" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:pools > :upload > :size" +msgid "Maximum number of concurrent requests in the pool." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:populate_hashtags_table > :fault_rate_allowance" +msgid "Max accepted rate of objects that failed in the migration. Any value from 0.0 which tolerates no errors to 1.0 which will enable the feature even if hashtags transfer failed for all records." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:populate_hashtags_table > :sleep_interval_ms" +msgid "Sleep interval between each chunk of processed records in order to decrease the load on the system (defaults to 0 and should be keep default on most instances)." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:rate_limit > :app_account_creation" +msgid "For registering user accounts from the same IP address" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:rate_limit > :authentication" +msgid "For authentication create / password check / user existence check requests" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:rate_limit > :relation_id_action" +msgid "For actions on relation with a specific user (follow, unfollow)" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:rate_limit > :relations_actions" +msgid "For actions on relationships with all users (follow, unfollow)" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:rate_limit > :search" +msgid "For the search requests (account & status search etc.)" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:rate_limit > :status_id_action" +msgid "For fav / unfav or reblog / unreblog actions on the same status by the same user" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:rate_limit > :statuses_actions" +msgid "For create / delete / fav / unfav / reblog / unreblog actions on any statuses" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:rate_limit > :timeline" +msgid "For requests to timelines (each timeline has it's own limiter)" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:restrict_unauthenticated > :activities" +msgid "Settings for statuses." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:restrict_unauthenticated > :activities > :local" +msgid "Disallow view local statuses." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:restrict_unauthenticated > :activities > :remote" +msgid "Disallow view remote statuses." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:restrict_unauthenticated > :profiles" +msgid "Settings for user profiles." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:restrict_unauthenticated > :profiles > :local" +msgid "Disallow view local user profiles." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:restrict_unauthenticated > :profiles > :remote" +msgid "Disallow view remote user profiles." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:restrict_unauthenticated > :timelines" +msgid "Settings for public and federated timelines." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:restrict_unauthenticated > :timelines > :federated" +msgid "Disallow view federated timeline." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:restrict_unauthenticated > :timelines > :local" +msgid "Disallow view public timeline." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:rich_media > :enabled" +msgid "Enables RichMedia parsing of URLs" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:rich_media > :failure_backoff" +msgid "Amount of milliseconds after request failure, during which the request will not be retried." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:rich_media > :ignore_hosts" +msgid "List of hosts which will be ignored by the metadata parser" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:rich_media > :ignore_tld" +msgid "List TLDs (top-level domains) which will ignore for parse metadata" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:rich_media > :parsers" +msgid "List of Rich Media parsers. Module names are shortened (removed leading `Pleroma.Web.RichMedia.Parsers.` part), but on adding custom module you need to use full name." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:rich_media > :ttl_setters" +msgid "List of rich media TTL setters. Module names are shortened (removed leading `Pleroma.Web.RichMedia.Parser.` part), but on adding custom module you need to use full name." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:shout > :enabled" +msgid "Enables the backend Shoutbox chat feature." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:shout > :limit" +msgid "Shout message character limit." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:static_fe > :enabled" +msgid "Enables the rendering of static HTML. Default: disabled." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:streamer > :overflow_workers" +msgid "Maximum number of workers created if pool is empty" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:streamer > :workers" +msgid "Number of workers to send notifications" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:uri_schemes > :valid_schemes" +msgid "List of the scheme part that is considered valid to be an URL" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:web_cache_ttl > :activity_pub" +msgid "Activity pub routes (except question activities). Default: `nil` (no expiration)." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:web_cache_ttl > :activity_pub_question" +msgid "Activity pub routes (question activities). Default: `30_000` (30 seconds)." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:welcome > :chat_message > :enabled" +msgid "Enables sending a chat message to newly registered users" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:welcome > :chat_message > :message" +msgid "A message that will be sent to newly registered users as a chat message" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:welcome > :chat_message > :sender_nickname" +msgid "The nickname of the local user that sends a welcome chat message" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:welcome > :direct_message > :enabled" +msgid "Enables sending a direct message to newly registered users" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:welcome > :direct_message > :message" +msgid "A message that will be sent to newly registered users" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:welcome > :direct_message > :sender_nickname" +msgid "The nickname of the local user that sends a welcome message" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:welcome > :email > :enabled" +msgid "Enables sending an email to newly registered users" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:welcome > :email > :html" +msgid "HTML content of the welcome email. EEX template with user and instance_name variables can be used." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:welcome > :email > :sender" +msgid "Email address and/or nickname that will be used to send the welcome email." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:welcome > :email > :subject" +msgid "Subject of the welcome email. EEX template with user and instance_name variables can be used." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:welcome > :email > :text" +msgid "Text content of the welcome email. EEX template with user and instance_name variables can be used." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-:workers > :retries" +msgid "Max retry attempts for failed jobs, per `Oban` queue" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-ConcurrentLimiter > Pleroma.Web.ActivityPub.MRF.MediaProxyWarmingPolicy" +msgid "Concurrent limits configuration for MediaProxyWarmingPolicy." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-ConcurrentLimiter > Pleroma.Web.ActivityPub.MRF.MediaProxyWarmingPolicy > :max_running" +msgid "Max running concurrently jobs." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-ConcurrentLimiter > Pleroma.Web.ActivityPub.MRF.MediaProxyWarmingPolicy > :max_waiting" +msgid "Max waiting jobs." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-ConcurrentLimiter > Pleroma.Web.RichMedia.Helpers" +msgid "Concurrent limits configuration for getting RichMedia for activities." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-ConcurrentLimiter > Pleroma.Web.RichMedia.Helpers > :max_running" +msgid "Max running concurrently jobs." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-ConcurrentLimiter > Pleroma.Web.RichMedia.Helpers > :max_waiting" +msgid "Max waiting jobs." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-Oban > :crontab" +msgid "Settings for cron background jobs" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-Oban > :log" +msgid "Logs verbose mode" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-Oban > :queues" +msgid "Background jobs queues (keys: queues, values: max numbers of concurrent jobs)" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-Oban > :queues > :activity_expiration" +msgid "Activity expiration queue" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-Oban > :queues > :attachments_cleanup" +msgid "Attachment deletion queue" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-Oban > :queues > :background" +msgid "Background queue" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-Oban > :queues > :backup" +msgid "Backup queue" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-Oban > :queues > :federator_incoming" +msgid "Incoming federation queue" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-Oban > :queues > :federator_outgoing" +msgid "Outgoing federation queue" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-Oban > :queues > :mailer" +msgid "Email sender queue, see Pleroma.Emails.Mailer" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-Oban > :queues > :scheduled_activities" +msgid "Scheduled activities queue, see Pleroma.ScheduledActivities" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-Oban > :queues > :transmogrifier" +msgid "Transmogrifier queue" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-Oban > :queues > :web_push" +msgid "Web push notifications queue" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-Pleroma.Captcha > :enabled" +msgid "Whether the captcha should be shown on registration" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-Pleroma.Captcha > :method" +msgid "The method/service to use for captcha" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-Pleroma.Captcha > :seconds_valid" +msgid "The time in seconds for which the captcha is valid" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-Pleroma.Captcha.Kocaptcha > :endpoint" +msgid "The kocaptcha endpoint to use" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-Pleroma.Emails.Mailer > :adapter" +msgid "One of the mail adapters listed in [Swoosh documentation](https://hexdocs.pm/swoosh/Swoosh.html#module-adapters)" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-Pleroma.Emails.Mailer > Swoosh.Adapters.SMTP-:auth" +msgid "SMTP AUTH enforcement mode" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-Pleroma.Emails.Mailer > Swoosh.Adapters.SMTP-:password" +msgid "SMTP AUTH password" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-Pleroma.Emails.Mailer > Swoosh.Adapters.SMTP-:port" +msgid "SMTP port" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-Pleroma.Emails.Mailer > Swoosh.Adapters.SMTP-:relay" +msgid "Hostname or IP address" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-Pleroma.Emails.Mailer > Swoosh.Adapters.SMTP-:retries" +msgid "SMTP temporary (4xx) error retries" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-Pleroma.Emails.Mailer > Swoosh.Adapters.SMTP-:ssl" +msgid "Use Implicit SSL/TLS. e.g. port 465" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-Pleroma.Emails.Mailer > Swoosh.Adapters.SMTP-:tls" +msgid "Explicit TLS (STARTTLS) enforcement mode" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-Pleroma.Emails.Mailer > Swoosh.Adapters.SMTP-:username" +msgid "SMTP AUTH username" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-Pleroma.Emails.NewUsersDigestEmail > :enabled" +msgid "Enables new users admin digest email when `true`" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-Pleroma.Emails.UserEmail > :logo" +msgid "A path to a custom logo. Set it to `nil` to use the default Pleroma logo." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-Pleroma.Emails.UserEmail > :styling" +msgid "A map with color settings for email templates." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-Pleroma.Formatter > :class" +msgid "Specify the class to be added to the generated link. Disable to clear." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-Pleroma.Formatter > :extra" +msgid "Link URLs with rarely used schemes (magnet, ipfs, irc, etc.)" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-Pleroma.Formatter > :new_window" +msgid "Link URLs will open in a new window/tab." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-Pleroma.Formatter > :rel" +msgid "Override the rel attribute. Disable to clear." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-Pleroma.Formatter > :strip_prefix" +msgid "Strip the scheme prefix." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-Pleroma.Formatter > :truncate" +msgid "Set to a number to truncate URLs longer than the number. Truncated URLs will end in `...`" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-Pleroma.Formatter > :validate_tld" +msgid "Set to false to disable TLD validation for URLs/emails. Can be set to :no_scheme to validate TLDs only for URLs without a scheme (e.g `example.com` will be validated, but `http://example.loki` won't)" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-Pleroma.ScheduledActivity > :daily_user_limit" +msgid "The number of scheduled activities a user is allowed to create in a single day. Default: 25." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-Pleroma.ScheduledActivity > :enabled" +msgid "Whether scheduled activities are sent to the job queue to be executed" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-Pleroma.ScheduledActivity > :total_user_limit" +msgid "The number of scheduled activities a user is allowed to create in total. Default: 300." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-Pleroma.Upload > :base_url" +msgid "Base URL for the uploads. Required if you use a CDN or host attachments under a different domain." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-Pleroma.Upload > :filename_display_max_length" +msgid "Set max length of a filename to display. 0 = no limit. Default: 30" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-Pleroma.Upload > :filters" +msgid "List of filter modules for uploads. Module names are shortened (removed leading `Pleroma.Upload.Filter.` part), but on adding custom module you need to use full name." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-Pleroma.Upload > :link_name" +msgid "If enabled, a name parameter will be added to the URL of the upload. For example `https://instance.tld/media/imagehash.png?name=realname.png`." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-Pleroma.Upload > :proxy_remote" +msgid "Proxy requests to the remote uploader.\n\nUseful if media upload endpoint is not internet accessible.\n" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-Pleroma.Upload > :uploader" +msgid "Module which will be used for uploads" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-Pleroma.Upload.Filter.AnonymizeFilename > :text" +msgid "Text to replace filenames in links. If no setting, {random}.extension will be used. You can get the original filename extension by using {extension}, for example custom-file-name.{extension}." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-Pleroma.Upload.Filter.Mogrify > :args" +msgid "List of actions for the mogrify command. It's possible to add self-written settings as string. For example `auto-orient, strip, {\"resize\", \"3840x1080>\"}` value will be parsed into valid list of the settings." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-Pleroma.Uploaders.Local > :uploads" +msgid "Path where user's uploads will be saved" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-Pleroma.Uploaders.S3 > :bucket" +msgid "S3 bucket" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-Pleroma.Uploaders.S3 > :bucket_namespace" +msgid "S3 bucket namespace" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-Pleroma.Uploaders.S3 > :streaming_enabled" +msgid "Enable streaming uploads, when enabled the file will be sent to the server in chunks as it's being read. This may be unsupported by some providers, try disabling this if you have upload problems." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-Pleroma.Uploaders.S3 > :truncated_namespace" +msgid "If you use S3 compatible service such as Digital Ocean Spaces or CDN, set folder name or \"\" etc. For example, when using CDN to S3 virtual host format, set \"\". At this time, write CNAME to CDN in Upload base_url." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-Pleroma.User > :email_blacklist" +msgid "List of email domains users may not register with." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-Pleroma.User > :restricted_nicknames" +msgid "List of nicknames users may not register with." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-Pleroma.User.Backup > :limit_days" +msgid "Limit user to export not more often than once per N days" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-Pleroma.User.Backup > :purge_after_days" +msgid "Remove backup achives after N days" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-Pleroma.Web.ApiSpec.CastAndValidate > :strict" +msgid "Enables strict input validation (useful in development, not recommended in production)" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-Pleroma.Web.MediaProxy.Invalidation.Http > :headers" +msgid "HTTP headers of request" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-Pleroma.Web.MediaProxy.Invalidation.Http > :method" +msgid "HTTP method of request. Default: :purge" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-Pleroma.Web.MediaProxy.Invalidation.Http > :options" +msgid "Request options" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-Pleroma.Web.MediaProxy.Invalidation.Script > :script_path" +msgid "Path to executable script which will purge cached items." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-Pleroma.Web.MediaProxy.Invalidation.Script > :url_format" +msgid "Optional URL format preprocessing. Only required for Apache's htcacheclean." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-Pleroma.Web.Metadata > :providers" +msgid "List of metadata providers to enable" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-Pleroma.Web.Metadata > :unfurl_nsfw" +msgid "When enabled NSFW attachments will be shown in previews" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-Pleroma.Web.Plugs.RemoteIp > :enabled" +msgid "Enable/disable the plug. Default: disabled." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-Pleroma.Web.Plugs.RemoteIp > :headers" +msgid " A list of strings naming the HTTP headers to use when deriving the true client IP. Default: `[\"x-forwarded-for\"]`.\n" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-Pleroma.Web.Plugs.RemoteIp > :proxies" +msgid "A list of upstream proxy IP subnets in CIDR notation from which we will parse the content of `headers`. Defaults to `[]`. IPv4 entries without a bitmask will be assumed to be /32 and IPv6 /128." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-Pleroma.Web.Plugs.RemoteIp > :reserved" +msgid " A list of reserved IP subnets in CIDR notation which should be ignored if found in `headers`. Defaults to `[\"127.0.0.0/8\", \"::1/128\", \"fc00::/7\", \"10.0.0.0/8\", \"172.16.0.0/12\", \"192.168.0.0/16\"]`\n" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-Pleroma.Web.Preload > :providers" +msgid "List of preload providers to enable" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-Pleroma.Workers.PurgeExpiredActivity > :enabled" +msgid "Enables expired activities addition & deletion" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :pleroma-Pleroma.Workers.PurgeExpiredActivity > :min_lifetime" +msgid "Minimum lifetime for ephemeral activity (in seconds)" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :prometheus-Pleroma.Web.Endpoint.MetricsExporter > :auth" +msgid "Enables HTTP Basic Auth for app metrics endpoint." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :prometheus-Pleroma.Web.Endpoint.MetricsExporter > :enabled" +msgid "[Pleroma extension] Enables app metrics endpoint." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :prometheus-Pleroma.Web.Endpoint.MetricsExporter > :format" +msgid "App metrics endpoint output format." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :prometheus-Pleroma.Web.Endpoint.MetricsExporter > :ip_whitelist" +msgid "Restrict access of app metrics endpoint to the specified IP addresses." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :prometheus-Pleroma.Web.Endpoint.MetricsExporter > :path" +msgid "App metrics endpoint URI path." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :quack > :level" +msgid "Log level" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :quack > :meta" +msgid "Configure which metadata you want to report on" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :quack > :webhook_url" +msgid "Configure the Slack incoming webhook" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :web_push_encryption-:vapid_details > :private_key" +msgid "VAPID private key" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :web_push_encryption-:vapid_details > :public_key" +msgid "VAPID public key" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config description at :web_push_encryption-:vapid_details > :subject" +msgid "A mailto link for the administrative contact. It's best if this email is not a personal email address, but rather a group email to the instance moderation team." +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :cors_plug > :credentials" +msgid "Credentials" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :cors_plug > :expose" +msgid "Expose" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :cors_plug > :headers" +msgid "Headers" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :cors_plug > :max_age" +msgid "Max age" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :cors_plug > :methods" +msgid "Methods" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :esshd > :enabled" +msgid "Enabled" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :esshd > :handler" +msgid "Handler" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :esshd > :password_authenticator" +msgid "Password authenticator" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :esshd > :port" +msgid "Port" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :esshd > :priv_dir" +msgid "Priv dir" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :ex_aws-:s3 > :access_key_id" +msgid "Access key" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :ex_aws-:s3 > :host" +msgid "Host" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :ex_aws-:s3 > :region" +msgid "Region" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :ex_aws-:s3 > :secret_access_key" +msgid "Secret access key" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :logger > :backends" +msgid "Backends" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :logger-:console > :format" +msgid "Format" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :logger-:console > :level" +msgid "Level" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :logger-:console > :metadata" +msgid "Metadata" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :logger-:ex_syslogger > :format" +msgid "Format" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :logger-:ex_syslogger > :ident" +msgid "Ident" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :logger-:ex_syslogger > :level" +msgid "Level" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :logger-:ex_syslogger > :metadata" +msgid "Metadata" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :mime > :types" +msgid "Types" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :mime > :types > application/activity+json" +msgid "\"application/activity+json\"" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :mime > :types > application/jrd+json" +msgid "\"application/jrd+json\"" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :mime > :types > application/ld+json" +msgid "\"application/ld+json\"" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :mime > :types > application/xml" +msgid "\"application/xml\"" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :mime > :types > application/xrd+xml" +msgid "\"application/xrd+xml\"" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma > :admin_token" +msgid "Admin token" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma > Pleroma.Web.Auth.Authenticator" +msgid "Pleroma.Web.Auth.Authenticator" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:activitypub > :blockers_visible" +msgid "Blockers visible" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:activitypub > :follow_handshake_timeout" +msgid "Follow handshake timeout" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:activitypub > :note_replies_output_limit" +msgid "Note replies output limit" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:activitypub > :outgoing_blocks" +msgid "Outgoing blocks" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:activitypub > :sign_object_fetches" +msgid "Sign object fetches" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:activitypub > :unfollow_blocked" +msgid "Unfollow blocked" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:assets > :default_mascot" +msgid "Default mascot" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:assets > :default_user_avatar" +msgid "Default user avatar" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:assets > :mascots" +msgid "Mascots" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:auth > :auth_template" +msgid "Auth template" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:auth > :enforce_oauth_admin_scope_usage" +msgid "Enforce OAuth admin scope usage" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:auth > :oauth_consumer_strategies" +msgid "OAuth consumer strategies" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:auth > :oauth_consumer_template" +msgid "OAuth consumer template" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:connections_pool > :connect_timeout" +msgid "Connect timeout" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:connections_pool > :connection_acquisition_retries" +msgid "Connection acquisition retries" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:connections_pool > :connection_acquisition_wait" +msgid "Connection acquisition wait" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:connections_pool > :max_connections" +msgid "Max connections" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:connections_pool > :reclaim_multiplier" +msgid "Reclaim multiplier" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:email_notifications > :digest" +msgid "Digest" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:email_notifications > :digest > :active" +msgid "Enabled" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:email_notifications > :digest > :inactivity_threshold" +msgid "Inactivity threshold" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:email_notifications > :digest > :interval" +msgid "Interval" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:email_notifications > :digest > :schedule" +msgid "Schedule" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:emoji > :default_manifest" +msgid "Default manifest" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:emoji > :groups" +msgid "Groups" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:emoji > :pack_extensions" +msgid "Pack extensions" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:emoji > :shared_pack_cache_seconds_per_file" +msgid "Shared pack cache s/file" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:emoji > :shortcode_globs" +msgid "Shortcode globs" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:features > :improved_hashtag_timeline" +msgid "Improved hashtag timeline" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:feed > :post_title" +msgid "Post title" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:feed > :post_title > :max_length" +msgid "Max length" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:feed > :post_title > :omission" +msgid "Omission" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:frontend_configurations > :pleroma_fe" +msgid "Pleroma FE" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:frontend_configurations > :pleroma_fe > :alwaysShowSubjectInput" +msgid "Always show subject input" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:frontend_configurations > :pleroma_fe > :background" +msgid "Background" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:frontend_configurations > :pleroma_fe > :collapseMessageWithSubject" +msgid "Collapse message with subject" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:frontend_configurations > :pleroma_fe > :greentext" +msgid "Greentext" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:frontend_configurations > :pleroma_fe > :hideFilteredStatuses" +msgid "Hide Filtered Statuses" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:frontend_configurations > :pleroma_fe > :hideMutedPosts" +msgid "Hide Muted Posts" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:frontend_configurations > :pleroma_fe > :hidePostStats" +msgid "Hide post stats" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:frontend_configurations > :pleroma_fe > :hideSitename" +msgid "Hide Sitename" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:frontend_configurations > :pleroma_fe > :hideUserStats" +msgid "Hide user stats" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:frontend_configurations > :pleroma_fe > :logo" +msgid "Logo" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:frontend_configurations > :pleroma_fe > :logoMargin" +msgid "Logo margin" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:frontend_configurations > :pleroma_fe > :logoMask" +msgid "Logo mask" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:frontend_configurations > :pleroma_fe > :minimalScopesMode" +msgid "Minimal scopes mode" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:frontend_configurations > :pleroma_fe > :nsfwCensorImage" +msgid "NSFW Censor Image" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:frontend_configurations > :pleroma_fe > :postContentType" +msgid "Post Content Type" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:frontend_configurations > :pleroma_fe > :redirectRootLogin" +msgid "Redirect root login" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:frontend_configurations > :pleroma_fe > :redirectRootNoLogin" +msgid "Redirect root no login" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:frontend_configurations > :pleroma_fe > :scopeCopy" +msgid "Scope copy" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:frontend_configurations > :pleroma_fe > :showFeaturesPanel" +msgid "Show instance features panel" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:frontend_configurations > :pleroma_fe > :showInstanceSpecificPanel" +msgid "Show instance specific panel" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:frontend_configurations > :pleroma_fe > :sidebarRight" +msgid "Sidebar on Right" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:frontend_configurations > :pleroma_fe > :subjectLineBehavior" +msgid "Subject line behavior" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:frontend_configurations > :pleroma_fe > :theme" +msgid "Theme" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:frontends > :admin" +msgid "Admin" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:frontends > :admin > name" +msgid "Name" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:frontends > :admin > ref" +msgid "Reference" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:frontends > :available" +msgid "Available" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:frontends > :available > build_dir" +msgid "Build directory" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:frontends > :available > build_url" +msgid "Build URL" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:frontends > :available > custom-http-headers" +msgid "Custom HTTP headers" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:frontends > :available > git" +msgid "Git Repository URL" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:frontends > :available > name" +msgid "Name" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:frontends > :available > ref" +msgid "Reference" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:frontends > :primary" +msgid "Primary" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:frontends > :primary > name" +msgid "Name" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:frontends > :primary > ref" +msgid "Reference" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:gopher > :dstport" +msgid "Dstport" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:gopher > :enabled" +msgid "Enabled" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:gopher > :ip" +msgid "IP" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:gopher > :port" +msgid "Port" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:hackney_pools > :federation" +msgid "Federation" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:hackney_pools > :federation > :max_connections" +msgid "Max connections" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:hackney_pools > :federation > :timeout" +msgid "Timeout" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:hackney_pools > :media" +msgid "Media" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:hackney_pools > :media > :max_connections" +msgid "Max connections" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:hackney_pools > :media > :timeout" +msgid "Timeout" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:hackney_pools > :upload" +msgid "Upload" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:hackney_pools > :upload > :max_connections" +msgid "Max connections" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:hackney_pools > :upload > :timeout" +msgid "Timeout" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:http > :adapter" +msgid "Adapter" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:http > :adapter > :ssl_options" +msgid "SSL Options" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:http > :adapter > :ssl_options > :versions" +msgid "Versions" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:http > :proxy_url" +msgid "Proxy URL" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:http > :send_user_agent" +msgid "Send user agent" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:http > :user_agent" +msgid "User agent" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:http_security > :ct_max_age" +msgid "CT max age" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:http_security > :enabled" +msgid "Enabled" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:http_security > :referrer_policy" +msgid "Referrer policy" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:http_security > :report_uri" +msgid "Report URI" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:http_security > :sts" +msgid "STS" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:http_security > :sts_max_age" +msgid "STS max age" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:instance > :account_activation_required" +msgid "Account activation required" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:instance > :account_approval_required" +msgid "Account approval required" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:instance > :account_field_name_length" +msgid "Account field name length" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:instance > :account_field_value_length" +msgid "Account field value length" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:instance > :allow_relay" +msgid "Allow relay" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:instance > :allowed_post_formats" +msgid "Allowed post formats" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:instance > :attachment_links" +msgid "Attachment links" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:instance > :autofollowed_nicknames" +msgid "Autofollowed nicknames" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:instance > :autofollowing_nicknames" +msgid "Autofollowing nicknames" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:instance > :avatar_upload_limit" +msgid "Avatar upload limit" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:instance > :background_upload_limit" +msgid "Background upload limit" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:instance > :banner_upload_limit" +msgid "Banner upload limit" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:instance > :birthday_min_age" +msgid "Birthday min age" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:instance > :birthday_required" +msgid "Birthday required" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:instance > :cleanup_attachments" +msgid "Cleanup attachments" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:instance > :description" +msgid "Description" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:instance > :email" +msgid "Admin Email Address" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:instance > :extended_nickname_format" +msgid "Extended nickname format" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:instance > :external_user_synchronization" +msgid "External user synchronization" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:instance > :federating" +msgid "Federating" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:instance > :federation_incoming_replies_max_depth" +msgid "Fed. incoming replies max depth" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:instance > :federation_reachability_timeout_days" +msgid "Fed. reachability timeout days" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:instance > :healthcheck" +msgid "Healthcheck" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:instance > :instance_thumbnail" +msgid "Instance thumbnail" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:instance > :invites_enabled" +msgid "Invites enabled" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:instance > :limit" +msgid "Limit" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:instance > :limit_to_local_content" +msgid "Limit to local content" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:instance > :max_account_fields" +msgid "Max account fields" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:instance > :max_endorsed_users" +msgid "Max endorsed users" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:instance > :max_media_attachments" +msgid "Max media attachments" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:instance > :max_pinned_statuses" +msgid "Max pinned statuses" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:instance > :max_remote_account_fields" +msgid "Max remote account fields" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:instance > :max_report_comment_size" +msgid "Max report comment size" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:instance > :multi_factor_authentication" +msgid "Multi factor authentication" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:instance > :multi_factor_authentication > :backup_codes" +msgid "Backup codes" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:instance > :multi_factor_authentication > :backup_codes > :length" +msgid "Length" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:instance > :multi_factor_authentication > :backup_codes > :number" +msgid "Number" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:instance > :multi_factor_authentication > :totp" +msgid "TOTP settings" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:instance > :multi_factor_authentication > :totp > :digits" +msgid "Digits" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:instance > :multi_factor_authentication > :totp > :period" +msgid "Period" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:instance > :name" +msgid "Name" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:instance > :notify_email" +msgid "Sender Email Address" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:instance > :poll_limits" +msgid "Poll limits" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:instance > :poll_limits > :max_expiration" +msgid "Max expiration" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:instance > :poll_limits > :max_option_chars" +msgid "Max option chars" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:instance > :poll_limits > :max_options" +msgid "Max options" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:instance > :poll_limits > :min_expiration" +msgid "Min expiration" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:instance > :privileged_staff" +msgid "Privileged staff" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:instance > :profile_directory" +msgid "Profile directory" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:instance > :public" +msgid "Public" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:instance > :quarantined_instances" +msgid "Quarantined instances" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:instance > :registration_reason_length" +msgid "Registration reason length" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:instance > :registrations_open" +msgid "Registrations open" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:instance > :remote_limit" +msgid "Remote limit" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:instance > :remote_post_retention_days" +msgid "Remote post retention days" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:instance > :safe_dm_mentions" +msgid "Safe DM mentions" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:instance > :show_reactions" +msgid "Show reactions" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:instance > :skip_thread_containment" +msgid "Skip thread containment" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:instance > :static_dir" +msgid "Static dir" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:instance > :upload_limit" +msgid "Upload limit" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:instance > :user_bio_length" +msgid "User bio length" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:instance > :user_name_length" +msgid "User name length" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:instances_favicons > :enabled" +msgid "Enabled" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:ldap > :base" +msgid "Base" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:ldap > :enabled" +msgid "Enabled" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:ldap > :host" +msgid "Host" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:ldap > :port" +msgid "Port" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:ldap > :ssl" +msgid "SSL" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:ldap > :sslopts" +msgid "SSL options" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:ldap > :sslopts > :cacertfile" +msgid "Cacertfile" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:ldap > :sslopts > :verify" +msgid "Verify" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:ldap > :tls" +msgid "TLS" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:ldap > :tlsopts" +msgid "TLS options" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:ldap > :tlsopts > :cacertfile" +msgid "Cacertfile" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:ldap > :tlsopts > :verify" +msgid "Verify" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:ldap > :uid" +msgid "UID" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:majic_pool > :size" +msgid "Size" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:manifest > :background_color" +msgid "Background color" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:manifest > :icons" +msgid "Icons" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:manifest > :theme_color" +msgid "Theme color" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:markup > :allow_fonts" +msgid "Allow fonts" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:markup > :allow_headings" +msgid "Allow headings" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:markup > :allow_inline_images" +msgid "Allow inline images" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:markup > :allow_tables" +msgid "Allow tables" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:markup > :scrub_policy" +msgid "Scrub policy" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:media_preview_proxy > :enabled" +msgid "Enabled" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:media_preview_proxy > :image_quality" +msgid "Image quality" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:media_preview_proxy > :min_content_length" +msgid "Min content length" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:media_preview_proxy > :thumbnail_max_height" +msgid "Thumbnail max height" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:media_preview_proxy > :thumbnail_max_width" +msgid "Thumbnail max width" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:media_proxy > :base_url" +msgid "Base URL" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:media_proxy > :enabled" +msgid "Enabled" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:media_proxy > :invalidation" +msgid "Invalidation" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:media_proxy > :invalidation > :enabled" +msgid "Enabled" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:media_proxy > :invalidation > :provider" +msgid "Provider" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:media_proxy > :proxy_opts" +msgid "Advanced MediaProxy Options" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:media_proxy > :proxy_opts > :max_body_length" +msgid "Max body length" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:media_proxy > :proxy_opts > :max_read_duration" +msgid "Max read duration" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:media_proxy > :proxy_opts > :redirect_on_failure" +msgid "Redirect on failure" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:media_proxy > :whitelist" +msgid "Whitelist" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:modules > :runtime_dir" +msgid "Runtime dir" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:mrf > :policies" +msgid "Policies" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:mrf > :transparency" +msgid "MRF transparency" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:mrf > :transparency_exclusions" +msgid "MRF transparency exclusions" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:mrf_activity_expiration > :days" +msgid "Days" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:mrf_follow_bot > :follower_nickname" +msgid "Follower nickname" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:mrf_hashtag > :federated_timeline_removal" +msgid "Federated timeline removal" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:mrf_hashtag > :reject" +msgid "Reject" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:mrf_hashtag > :sensitive" +msgid "Sensitive" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:mrf_hellthread > :delist_threshold" +msgid "Delist threshold" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:mrf_hellthread > :reject_threshold" +msgid "Reject threshold" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:mrf_keyword > :federated_timeline_removal" +msgid "Federated timeline removal" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:mrf_keyword > :reject" +msgid "Reject" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:mrf_keyword > :replace" +msgid "Replace" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:mrf_mention > :actors" +msgid "Actors" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:mrf_normalize_markup > :scrub_policy" +msgid "Scrub policy" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:mrf_object_age > :actions" +msgid "Actions" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:mrf_object_age > :threshold" +msgid "Threshold" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:mrf_rejectnonpublic > :allow_direct" +msgid "Allow direct" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:mrf_rejectnonpublic > :allow_followersonly" +msgid "Allow followers-only" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:mrf_simple > :accept" +msgid "Accept" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:mrf_simple > :avatar_removal" +msgid "Avatar removal" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:mrf_simple > :banner_removal" +msgid "Banner removal" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:mrf_simple > :federated_timeline_removal" +msgid "Federated timeline removal" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:mrf_simple > :followers_only" +msgid "Followers only" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:mrf_simple > :media_nsfw" +msgid "Media NSFW" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:mrf_simple > :media_removal" +msgid "Media removal" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:mrf_simple > :reject" +msgid "Reject" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:mrf_simple > :reject_deletes" +msgid "Reject deletes" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:mrf_simple > :report_removal" +msgid "Report removal" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:mrf_steal_emoji > :hosts" +msgid "Hosts" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:mrf_steal_emoji > :rejected_shortcodes" +msgid "Rejected shortcodes" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:mrf_steal_emoji > :size_limit" +msgid "Size limit" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:mrf_subchain > :match_actor" +msgid "Match actor" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:mrf_vocabulary > :accept" +msgid "Accept" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:mrf_vocabulary > :reject" +msgid "Reject" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:oauth2 > :clean_expired_tokens" +msgid "Clean expired tokens" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:oauth2 > :issue_new_refresh_token" +msgid "Issue new refresh token" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:oauth2 > :token_expires_in" +msgid "Token expires in" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:pools > :default" +msgid "Default" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:pools > :default > :max_waiting" +msgid "Max waiting" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:pools > :default > :recv_timeout" +msgid "Recv timeout" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:pools > :default > :size" +msgid "Size" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:pools > :federation" +msgid "Federation" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:pools > :federation > :max_waiting" +msgid "Max waiting" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:pools > :federation > :recv_timeout" +msgid "Recv timeout" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:pools > :federation > :size" +msgid "Size" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:pools > :media" +msgid "Media" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:pools > :media > :max_waiting" +msgid "Max waiting" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:pools > :media > :recv_timeout" +msgid "Recv timeout" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:pools > :media > :size" +msgid "Size" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:pools > :upload" +msgid "Upload" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:pools > :upload > :max_waiting" +msgid "Max waiting" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:pools > :upload > :recv_timeout" +msgid "Recv timeout" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:pools > :upload > :size" +msgid "Size" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:populate_hashtags_table > :fault_rate_allowance" +msgid "Fault rate allowance" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:populate_hashtags_table > :sleep_interval_ms" +msgid "Sleep interval ms" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:rate_limit > :app_account_creation" +msgid "App account creation" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:rate_limit > :authentication" +msgid "Authentication" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:rate_limit > :relation_id_action" +msgid "Relation ID action" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:rate_limit > :relations_actions" +msgid "Relations actions" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:rate_limit > :search" +msgid "Search" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:rate_limit > :status_id_action" +msgid "Status ID action" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:rate_limit > :statuses_actions" +msgid "Statuses actions" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:rate_limit > :timeline" +msgid "Timeline" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:restrict_unauthenticated > :activities" +msgid "Activities" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:restrict_unauthenticated > :activities > :local" +msgid "Local" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:restrict_unauthenticated > :activities > :remote" +msgid "Remote" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:restrict_unauthenticated > :profiles" +msgid "Profiles" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:restrict_unauthenticated > :profiles > :local" +msgid "Local" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:restrict_unauthenticated > :profiles > :remote" +msgid "Remote" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:restrict_unauthenticated > :timelines" +msgid "Timelines" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:restrict_unauthenticated > :timelines > :federated" +msgid "Federated" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:restrict_unauthenticated > :timelines > :local" +msgid "Local" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:rich_media > :enabled" +msgid "Enabled" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:rich_media > :failure_backoff" +msgid "Failure backoff" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:rich_media > :ignore_hosts" +msgid "Ignore hosts" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:rich_media > :ignore_tld" +msgid "Ignore TLD" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:rich_media > :parsers" +msgid "Parsers" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:rich_media > :ttl_setters" +msgid "TTL setters" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:shout > :enabled" +msgid "Enabled" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:shout > :limit" +msgid "Limit" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:static_fe > :enabled" +msgid "Enabled" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:streamer > :overflow_workers" +msgid "Overflow workers" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:streamer > :workers" +msgid "Workers" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:uri_schemes > :valid_schemes" +msgid "Valid schemes" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:user > :deny_follow_blocked" +msgid "Deny follow blocked" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:web_cache_ttl > :activity_pub" +msgid "Activity pub" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:web_cache_ttl > :activity_pub_question" +msgid "Activity pub question" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:welcome > :chat_message" +msgid "Chat message" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:welcome > :chat_message > :enabled" +msgid "Enabled" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:welcome > :chat_message > :message" +msgid "Message" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:welcome > :chat_message > :sender_nickname" +msgid "Sender nickname" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:welcome > :direct_message" +msgid "Direct message" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:welcome > :direct_message > :enabled" +msgid "Enabled" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:welcome > :direct_message > :message" +msgid "Message" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:welcome > :direct_message > :sender_nickname" +msgid "Sender nickname" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:welcome > :email" +msgid "Email" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:welcome > :email > :enabled" +msgid "Enabled" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:welcome > :email > :html" +msgid "Html" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:welcome > :email > :sender" +msgid "Sender" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:welcome > :email > :subject" +msgid "Subject" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:welcome > :email > :text" +msgid "Text" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-:workers > :retries" +msgid "Retries" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-ConcurrentLimiter > Pleroma.Web.ActivityPub.MRF.MediaProxyWarmingPolicy" +msgid "Pleroma.Web.ActivityPub.MRF.MediaProxyWarmingPolicy" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-ConcurrentLimiter > Pleroma.Web.ActivityPub.MRF.MediaProxyWarmingPolicy > :max_running" +msgid "Max running" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-ConcurrentLimiter > Pleroma.Web.ActivityPub.MRF.MediaProxyWarmingPolicy > :max_waiting" +msgid "Max waiting" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-ConcurrentLimiter > Pleroma.Web.RichMedia.Helpers" +msgid "Pleroma.Web.RichMedia.Helpers" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-ConcurrentLimiter > Pleroma.Web.RichMedia.Helpers > :max_running" +msgid "Max running" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-ConcurrentLimiter > Pleroma.Web.RichMedia.Helpers > :max_waiting" +msgid "Max waiting" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Oban > :crontab" +msgid "Crontab" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Oban > :log" +msgid "Log" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Oban > :queues" +msgid "Queues" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Oban > :queues > :activity_expiration" +msgid "Activity expiration" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Oban > :queues > :attachments_cleanup" +msgid "Attachments cleanup" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Oban > :queues > :background" +msgid "Background" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Oban > :queues > :backup" +msgid "Backup" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Oban > :queues > :federator_incoming" +msgid "Federator incoming" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Oban > :queues > :federator_outgoing" +msgid "Federator outgoing" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Oban > :queues > :mailer" +msgid "Mailer" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Oban > :queues > :scheduled_activities" +msgid "Scheduled activities" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Oban > :queues > :transmogrifier" +msgid "Transmogrifier" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Oban > :queues > :web_push" +msgid "Web push" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Pleroma.Captcha > :enabled" +msgid "Enabled" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Pleroma.Captcha > :method" +msgid "Method" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Pleroma.Captcha > :seconds_valid" +msgid "Seconds valid" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Pleroma.Captcha.Kocaptcha > :endpoint" +msgid "Endpoint" +msgstr "终点" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Pleroma.Emails.Mailer > :adapter" +msgid "Adapter" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Pleroma.Emails.Mailer > :enabled" +msgid "Mailer Enabled" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Pleroma.Emails.Mailer > Swoosh.Adapters.AmazonSES-:access_key" +msgid "AWS Access Key" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Pleroma.Emails.Mailer > Swoosh.Adapters.AmazonSES-:region" +msgid "AWS Region" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Pleroma.Emails.Mailer > Swoosh.Adapters.AmazonSES-:secret" +msgid "AWS Secret Key" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Pleroma.Emails.Mailer > Swoosh.Adapters.Dyn-:api_key" +msgid "Dyn API Key" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Pleroma.Emails.Mailer > Swoosh.Adapters.Gmail-:access_token" +msgid "GMail API Access Token" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Pleroma.Emails.Mailer > Swoosh.Adapters.Mailgun-:api_key" +msgid "Mailgun API Key" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Pleroma.Emails.Mailer > Swoosh.Adapters.Mailgun-:domain" +msgid "Domain" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Pleroma.Emails.Mailer > Swoosh.Adapters.Mailjet-:api_key" +msgid "MailJet Public API Key" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Pleroma.Emails.Mailer > Swoosh.Adapters.Mailjet-:secret" +msgid "MailJet Private API Key" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Pleroma.Emails.Mailer > Swoosh.Adapters.Mandrill-:api_key" +msgid "Mandrill API Key" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Pleroma.Emails.Mailer > Swoosh.Adapters.Postmark-:api_key" +msgid "Postmark API Key" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Pleroma.Emails.Mailer > Swoosh.Adapters.SMTP-:auth" +msgid "AUTH Mode" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Pleroma.Emails.Mailer > Swoosh.Adapters.SMTP-:password" +msgid "Password" +msgstr "密码" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Pleroma.Emails.Mailer > Swoosh.Adapters.SMTP-:port" +msgid "Port" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Pleroma.Emails.Mailer > Swoosh.Adapters.SMTP-:relay" +msgid "Relay" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Pleroma.Emails.Mailer > Swoosh.Adapters.SMTP-:retries" +msgid "Retries" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Pleroma.Emails.Mailer > Swoosh.Adapters.SMTP-:ssl" +msgid "Use SSL" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Pleroma.Emails.Mailer > Swoosh.Adapters.SMTP-:tls" +msgid "STARTTLS Mode" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Pleroma.Emails.Mailer > Swoosh.Adapters.SMTP-:username" +msgid "Username" +msgstr "用户名" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Pleroma.Emails.Mailer > Swoosh.Adapters.Sendgrid-:api_key" +msgid "SendGrid API Key" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Pleroma.Emails.Mailer > Swoosh.Adapters.Sendmail-:cmd_args" +msgid "Cmd args" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Pleroma.Emails.Mailer > Swoosh.Adapters.Sendmail-:cmd_path" +msgid "Cmd path" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Pleroma.Emails.Mailer > Swoosh.Adapters.Sendmail-:qmail" +msgid "Qmail compat mode" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Pleroma.Emails.Mailer > Swoosh.Adapters.SocketLabs-:api_key" +msgid "SocketLabs API Key" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Pleroma.Emails.Mailer > Swoosh.Adapters.SocketLabs-:server_id" +msgid "Server ID" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Pleroma.Emails.Mailer > Swoosh.Adapters.SparkPost-:api_key" +msgid "SparkPost API key" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Pleroma.Emails.Mailer > Swoosh.Adapters.SparkPost-:endpoint" +msgid "Endpoint" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Pleroma.Emails.NewUsersDigestEmail > :enabled" +msgid "Enabled" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Pleroma.Emails.UserEmail > :logo" +msgid "Logo" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Pleroma.Emails.UserEmail > :styling" +msgid "Styling" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Pleroma.Emails.UserEmail > :styling > :background_color" +msgid "Background color" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Pleroma.Emails.UserEmail > :styling > :content_background_color" +msgid "Content background color" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Pleroma.Emails.UserEmail > :styling > :header_color" +msgid "Header color" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Pleroma.Emails.UserEmail > :styling > :link_color" +msgid "Link color" +msgstr "链接颜色" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Pleroma.Emails.UserEmail > :styling > :text_color" +msgid "Text color" +msgstr "文本颜色" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Pleroma.Emails.UserEmail > :styling > :text_muted_color" +msgid "Text muted color" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Pleroma.Formatter > :class" +msgid "Class" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Pleroma.Formatter > :extra" +msgid "Extra" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Pleroma.Formatter > :new_window" +msgid "New window" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Pleroma.Formatter > :rel" +msgid "Rel" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Pleroma.Formatter > :strip_prefix" +msgid "Strip prefix" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Pleroma.Formatter > :truncate" +msgid "Truncate" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Pleroma.Formatter > :validate_tld" +msgid "Validate tld" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Pleroma.ScheduledActivity > :daily_user_limit" +msgid "Daily user limit" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Pleroma.ScheduledActivity > :enabled" +msgid "Enabled" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Pleroma.ScheduledActivity > :total_user_limit" +msgid "Total user limit" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Pleroma.Upload > :base_url" +msgid "Base URL" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Pleroma.Upload > :filename_display_max_length" +msgid "Filename display max length" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Pleroma.Upload > :filters" +msgid "Filters" +msgstr "过滤器" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Pleroma.Upload > :link_name" +msgid "Link name" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Pleroma.Upload > :proxy_remote" +msgid "Proxy remote" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Pleroma.Upload > :uploader" +msgid "Uploader" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Pleroma.Upload.Filter.AnonymizeFilename > :text" +msgid "Text" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Pleroma.Upload.Filter.Mogrify > :args" +msgid "Args" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Pleroma.Uploaders.Local > :uploads" +msgid "Uploads" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Pleroma.Uploaders.S3 > :bucket" +msgid "Bucket" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Pleroma.Uploaders.S3 > :bucket_namespace" +msgid "Bucket namespace" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Pleroma.Uploaders.S3 > :streaming_enabled" +msgid "Streaming enabled" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Pleroma.Uploaders.S3 > :truncated_namespace" +msgid "Truncated namespace" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Pleroma.User > :email_blacklist" +msgid "Email blacklist" +msgstr "邮件黑名单" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Pleroma.User > :restricted_nicknames" +msgid "Restricted nicknames" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Pleroma.User.Backup > :limit_days" +msgid "Limit days" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Pleroma.User.Backup > :purge_after_days" +msgid "Purge after days" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Pleroma.Web.ApiSpec.CastAndValidate > :strict" +msgid "Strict" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Pleroma.Web.MediaProxy.Invalidation.Http > :headers" +msgid "Headers" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Pleroma.Web.MediaProxy.Invalidation.Http > :method" +msgid "Method" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Pleroma.Web.MediaProxy.Invalidation.Http > :options" +msgid "Options" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Pleroma.Web.MediaProxy.Invalidation.Http > :options > :params" +msgid "Params" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Pleroma.Web.MediaProxy.Invalidation.Script > :script_path" +msgid "Script path" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Pleroma.Web.MediaProxy.Invalidation.Script > :url_format" +msgid "URL Format" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Pleroma.Web.Metadata > :providers" +msgid "Providers" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Pleroma.Web.Metadata > :unfurl_nsfw" +msgid "Unfurl NSFW" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Pleroma.Web.Plugs.RemoteIp > :enabled" +msgid "Enabled" +msgstr "已启用" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Pleroma.Web.Plugs.RemoteIp > :headers" +msgid "Headers" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Pleroma.Web.Plugs.RemoteIp > :proxies" +msgid "Proxies" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Pleroma.Web.Plugs.RemoteIp > :reserved" +msgid "Reserved" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Pleroma.Web.Preload > :providers" +msgid "Providers" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Pleroma.Workers.PurgeExpiredActivity > :enabled" +msgid "Enabled" +msgstr "已启用" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :pleroma-Pleroma.Workers.PurgeExpiredActivity > :min_lifetime" +msgid "Min lifetime" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :prometheus-Pleroma.Web.Endpoint.MetricsExporter > :auth" +msgid "Auth" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :prometheus-Pleroma.Web.Endpoint.MetricsExporter > :enabled" +msgid "Enabled" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :prometheus-Pleroma.Web.Endpoint.MetricsExporter > :format" +msgid "Format" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :prometheus-Pleroma.Web.Endpoint.MetricsExporter > :ip_whitelist" +msgid "IP Whitelist" +msgstr "IP 白名单" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :prometheus-Pleroma.Web.Endpoint.MetricsExporter > :path" +msgid "Path" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :quack > :level" +msgid "Level" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :quack > :meta" +msgid "Meta" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :quack > :webhook_url" +msgid "Webhook URL" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :web_push_encryption-:vapid_details > :private_key" +msgid "Private key" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :web_push_encryption-:vapid_details > :public_key" +msgid "Public key" +msgstr "" + +#: lib/pleroma/docs/translator.ex:5 +#, elixir-autogen, elixir-format +msgctxt "config label at :web_push_encryption-:vapid_details > :subject" +msgid "Subject" +msgstr "" diff --git a/priv/gettext/zh_Hans/LC_MESSAGES/default.po b/priv/gettext/zh_Hans/LC_MESSAGES/default.po new file mode 100644 index 000000000..ed0d1576b --- /dev/null +++ b/priv/gettext/zh_Hans/LC_MESSAGES/default.po @@ -0,0 +1,193 @@ +## "msgid"s in this file come from POT (.pot) files. +## +## Do not add, change, or remove "msgid"s manually here as +## they're tied to the ones in the corresponding POT file +## (with the same domain). +## +## Use "mix gettext.extract --merge" or "mix gettext.merge" +## to merge POT files into PO files. +msgid "" +msgstr "" +"PO-Revision-Date: 2022-07-22 19:00+0000\n" +"Last-Translator: Yating Zhan \n" +"Language-Team: Chinese (Simplified) \n" +"Language: zh_Hans\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=1; plural=0;\n" +"X-Generator: Weblate 4.13.1\n" + +#: lib/pleroma/web/api_spec/render_error.ex:122 +#, elixir-format +msgid "%{name} - %{count} is not a multiple of %{multiple}." +msgstr "%{name} - %{count} 不是 %{multiple} 的倍数。" + +#: lib/pleroma/web/api_spec/render_error.ex:131 +#, elixir-format +msgid "%{name} - %{value} is larger than exclusive maximum %{max}." +msgstr "%{name} - %{value} 大于排除性最大值 %{max}。" + +#: lib/pleroma/web/api_spec/render_error.ex:140 +#, elixir-format +msgid "%{name} - %{value} is larger than inclusive maximum %{max}." +msgstr "%{name} - %{value} 大于包括性最大值 %{max}。" + +#: lib/pleroma/web/api_spec/render_error.ex:149 +#, elixir-format +msgid "%{name} - %{value} is smaller than exclusive minimum %{min}." +msgstr "%{name} - %{value} 小于排除性最小值 %{min}。" + +#: lib/pleroma/web/api_spec/render_error.ex:158 +#, elixir-format +msgid "%{name} - %{value} is smaller than inclusive minimum %{min}." +msgstr "%{name} - %{value} 小于包括性最小值 %{min}。" + +#: lib/pleroma/web/api_spec/render_error.ex:102 +#, elixir-format +msgid "%{name} - Array items must be unique." +msgstr "%{name} - 数组项目必须唯一。" + +#: lib/pleroma/web/api_spec/render_error.ex:114 +#, elixir-format +msgid "%{name} - Array length %{length} is larger than maxItems: %{}." +msgstr "%{name} - 数组长度 %{length} 大于最大项目数: %{}。" + +#: lib/pleroma/web/api_spec/render_error.ex:106 +#, elixir-format +msgid "%{name} - Array length %{length} is smaller than minItems: %{min}." +msgstr "%{name} - 数组长度 %{length} 小于最小项目数: %{min}。" + +#: lib/pleroma/web/api_spec/render_error.ex:166 +#, elixir-format +msgid "%{name} - Invalid %{type}. Got: %{value}." +msgstr "%{name} - 不合法的 %{type}。得到的是:%{value}。" + +#: lib/pleroma/web/api_spec/render_error.ex:174 +#, elixir-format +msgid "%{name} - Invalid format. Expected %{format}." +msgstr "%{name} - 不合法的格式。预期是 %{format}。" + +#: lib/pleroma/web/api_spec/render_error.ex:51 +#, elixir-format +msgid "%{name} - Invalid schema.type. Got: %{type}." +msgstr "%{name} - 不合法的 schema.type。得到的是:%{type}。" + +#: lib/pleroma/web/api_spec/render_error.ex:178 +#, elixir-format +msgid "%{name} - Invalid value for enum." +msgstr "%{name} - 枚举值不合法。" + +#: lib/pleroma/web/api_spec/render_error.ex:95 +#, elixir-format +msgid "%{name} - String length is larger than maxLength: %{length}." +msgstr "%{name} - 字串长度大于最大长度:%{length}。" + +#: lib/pleroma/web/api_spec/render_error.ex:88 +#, elixir-format +msgid "%{name} - String length is smaller than minLength: %{length}." +msgstr "%{name} - 字串长度小于最小长度:%{length}。" + +#: lib/pleroma/web/api_spec/render_error.ex:63 +#, elixir-format +msgid "%{name} - null value where %{type} expected." +msgstr "%{name} - null 值,但是预期该是 %{type}。" + +#: lib/pleroma/web/api_spec/render_error.ex:60 +#, elixir-format +msgid "%{name} - null value." +msgstr "%{name} - null 值。" + +#: lib/pleroma/web/api_spec/render_error.ex:182 +#, elixir-format +msgid "Failed to cast to any schema in %{polymorphic_type}" +msgstr "转换到 %{polymorphic_type} 中的任一 schema 失败" + +#: lib/pleroma/web/api_spec/render_error.ex:71 +#, elixir-format +msgid "Failed to cast value as %{invalid_schema}. Value must be castable using `allOf` schemas listed." +msgstr "把值转换成 %{invalid_schema} 失败。值必须可以被转换成在列的「所有」schema。" + +#: lib/pleroma/web/api_spec/render_error.ex:84 +#, elixir-format +msgid "Failed to cast value to one of: %{failed_schemas}." +msgstr "转换值为 %{failed_schemas} 中的一个失败。" + +#: lib/pleroma/web/api_spec/render_error.ex:78 +#, elixir-format +msgid "Failed to cast value using any of: %{failed_schemas}." +msgstr "转换值为 %{failed_schemas} 中的任意一个失败。" + +#: lib/pleroma/web/api_spec/render_error.ex:212 +#, elixir-format +msgid "Invalid value for header: %{name}." +msgstr "头 %{name} 的不合法的值。" + +#: lib/pleroma/web/api_spec/render_error.ex:204 +#, elixir-format +msgid "Missing field: %{name}." +msgstr "缺少字段:%{name}。" + +#: lib/pleroma/web/api_spec/render_error.ex:208 +#, elixir-format +msgid "Missing header: %{name}." +msgstr "缺少头:%{name}。" + +#: lib/pleroma/web/api_spec/render_error.ex:196 +#, elixir-format +msgid "No value provided for required discriminator `%{field}`." +msgstr "" + +#: lib/pleroma/web/api_spec/render_error.ex:216 +#, elixir-format +msgid "Object property count %{property_count} is greater than maxProperties: %{max_properties}." +msgstr "" + +#: lib/pleroma/web/api_spec/render_error.ex:224 +#, elixir-format +msgid "Object property count %{property_count} is less than minProperties: %{min_properties}" +msgstr "" + +#: lib/pleroma/web/templates/static_fe/static_fe/error.html.eex:2 +#, elixir-format +msgid "Oops" +msgstr "嗨呀" + +#: lib/pleroma/web/api_spec/render_error.ex:188 +#, elixir-format +msgid "Unexpected field: %{name}." +msgstr "超出预期的字段:%{name}。" + +#: lib/pleroma/web/api_spec/render_error.ex:200 +#, elixir-format +msgid "Unknown schema: %{name}." +msgstr "未知的 schema:%{name}。" + +#: lib/pleroma/web/api_spec/render_error.ex:192 +#, elixir-format +msgid "Value used as discriminator for `%{field}` matches no schemas." +msgstr "" + +#: lib/pleroma/web/templates/embed/show.html.eex:43 +#: lib/pleroma/web/templates/static_fe/static_fe/_notice.html.eex:37 +#, elixir-format +msgid "announces" +msgstr "传播" + +#: lib/pleroma/web/templates/embed/show.html.eex:44 +#: lib/pleroma/web/templates/static_fe/static_fe/_notice.html.eex:38 +#, elixir-format +msgid "likes" +msgstr "喜欢" + +#: lib/pleroma/web/templates/embed/show.html.eex:42 +#: lib/pleroma/web/templates/static_fe/static_fe/_notice.html.eex:36 +#, elixir-format +msgid "replies" +msgstr "回复" + +#: lib/pleroma/web/templates/embed/show.html.eex:27 +#: lib/pleroma/web/templates/static_fe/static_fe/_notice.html.eex:22 +#, elixir-format +msgid "sensitive media" +msgstr "敏感媒体" diff --git a/priv/gettext/zh_Hans/LC_MESSAGES/errors.po b/priv/gettext/zh_Hans/LC_MESSAGES/errors.po index ecf1dab6b..4431445e3 100644 --- a/priv/gettext/zh_Hans/LC_MESSAGES/errors.po +++ b/priv/gettext/zh_Hans/LC_MESSAGES/errors.po @@ -3,16 +3,16 @@ msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2020-09-20 13:18+0000\n" -"PO-Revision-Date: 2020-12-14 06:00+0000\n" -"Last-Translator: shironeko \n" -"Language-Team: Chinese (Simplified) \n" +"PO-Revision-Date: 2022-07-22 19:00+0000\n" +"Last-Translator: Yating Zhan \n" +"Language-Team: Chinese (Simplified) \n" "Language: zh_Hans\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" -"X-Generator: Weblate 4.0.4\n" +"X-Generator: Weblate 4.13.1\n" ## This file is a PO Template file. ## @@ -65,7 +65,7 @@ msgstr[0] "应为 %{count} 个字符" msgid "should have %{count} item(s)" msgid_plural "should have %{count} item(s)" -msgstr[0] "应有 %{item} 项" +msgstr[0] "应有 %{count} 项" msgid "should be at least %{count} character(s)" msgid_plural "should be at least %{count} character(s)" @@ -99,121 +99,101 @@ msgstr "必须大于等于 %{number}" msgid "must be equal to %{number}" msgstr "必须等于 %{number}" -#: lib/pleroma/web/common_api/common_api.ex:505 +#: lib/pleroma/web/common_api.ex:523 #, elixir-format msgid "Account not found" msgstr "未找到账号" -#: lib/pleroma/web/common_api/common_api.ex:339 +#: lib/pleroma/web/common_api.ex:316 #, elixir-format msgid "Already voted" msgstr "已经进行了投票" -#: lib/pleroma/web/oauth/oauth_controller.ex:359 +#: lib/pleroma/web/o_auth/o_auth_controller.ex:402 #, elixir-format msgid "Bad request" msgstr "不正确的请求" -#: lib/pleroma/web/activity_pub/activity_pub_controller.ex:426 -#, elixir-format -msgid "Can't delete object" -msgstr "不能删除对象" - -#: lib/pleroma/web/controller_helper.ex:105 -#: lib/pleroma/web/controller_helper.ex:111 +#: lib/pleroma/web/controller_helper.ex:97 +#: lib/pleroma/web/controller_helper.ex:103 #, elixir-format msgid "Can't display this activity" msgstr "不能显示该活动" -#: lib/pleroma/web/mastodon_api/controllers/account_controller.ex:285 +#: lib/pleroma/web/mastodon_api/controllers/account_controller.ex:324 #, elixir-format msgid "Can't find user" msgstr "找不到用户" -#: lib/pleroma/web/pleroma_api/controllers/account_controller.ex:61 +#: lib/pleroma/web/pleroma_api/controllers/account_controller.ex:80 #, elixir-format msgid "Can't get favorites" msgstr "不能获取收藏" -#: lib/pleroma/web/activity_pub/activity_pub_controller.ex:438 -#, elixir-format -msgid "Can't like object" -msgstr "不能喜欢对象" - -#: lib/pleroma/web/common_api/utils.ex:563 +#: lib/pleroma/web/common_api/utils.ex:482 #, elixir-format msgid "Cannot post an empty status without attachments" msgstr "无法发送空白且不包含附件的状态" -#: lib/pleroma/web/common_api/utils.ex:511 -#, elixir-format, fuzzy +#: lib/pleroma/web/common_api/utils.ex:441 +#, elixir-format msgid "Comment must be up to %{max_size} characters" msgstr "评论最多可使用 %{max_size} 字符" -#: lib/pleroma/config/config_db.ex:191 +#: lib/pleroma/config_db.ex:200 #, elixir-format msgid "Config with params %{params} not found" msgstr "无法找到包含参数 %{params} 的配置" -#: lib/pleroma/web/common_api/common_api.ex:181 -#: lib/pleroma/web/common_api/common_api.ex:185 +#: lib/pleroma/web/common_api.ex:167 +#: lib/pleroma/web/common_api.ex:171 #, elixir-format msgid "Could not delete" msgstr "无法删除" -#: lib/pleroma/web/common_api/common_api.ex:231 +#: lib/pleroma/web/common_api.ex:217 #, elixir-format msgid "Could not favorite" msgstr "无法收藏" -#: lib/pleroma/web/common_api/common_api.ex:453 -#, elixir-format -msgid "Could not pin" -msgstr "无法置顶" - -#: lib/pleroma/web/common_api/common_api.ex:278 +#: lib/pleroma/web/common_api.ex:254 #, elixir-format msgid "Could not unfavorite" msgstr "无法取消收藏" -#: lib/pleroma/web/common_api/common_api.ex:463 -#, elixir-format -msgid "Could not unpin" -msgstr "无法取消置顶" - -#: lib/pleroma/web/common_api/common_api.ex:216 +#: lib/pleroma/web/common_api.ex:202 #, elixir-format msgid "Could not unrepeat" msgstr "无法取消转发" -#: lib/pleroma/web/common_api/common_api.ex:512 -#: lib/pleroma/web/common_api/common_api.ex:521 +#: lib/pleroma/web/common_api.ex:530 +#: lib/pleroma/web/common_api.ex:539 #, elixir-format msgid "Could not update state" msgstr "无法更新状态" -#: lib/pleroma/web/mastodon_api/controllers/timeline_controller.ex:207 +#: lib/pleroma/web/mastodon_api/controllers/timeline_controller.ex:205 #, elixir-format msgid "Error." msgstr "错误。" -#: lib/pleroma/web/twitter_api/twitter_api.ex:106 +#: lib/pleroma/web/twitter_api/twitter_api.ex:99 #, elixir-format msgid "Invalid CAPTCHA" msgstr "无效的验证码" -#: lib/pleroma/web/mastodon_api/controllers/account_controller.ex:116 -#: lib/pleroma/web/oauth/oauth_controller.ex:568 +#: lib/pleroma/web/mastodon_api/controllers/account_controller.ex:144 +#: lib/pleroma/web/o_auth/o_auth_controller.ex:631 #, elixir-format msgid "Invalid credentials" msgstr "无效的凭据" -#: lib/pleroma/plugs/ensure_authenticated_plug.ex:38 +#: lib/pleroma/web/plugs/ensure_authenticated_plug.ex:42 #, elixir-format msgid "Invalid credentials." msgstr "无效的凭据。" -#: lib/pleroma/web/common_api/common_api.ex:355 +#: lib/pleroma/web/common_api.ex:337 #, elixir-format msgid "Invalid indices" msgstr "无效的索引" @@ -223,343 +203,362 @@ msgstr "无效的索引" msgid "Invalid parameters" msgstr "无效的参数" -#: lib/pleroma/web/common_api/utils.ex:414 +#: lib/pleroma/web/common_api/utils.ex:349 #, elixir-format msgid "Invalid password." msgstr "无效的密码。" -#: lib/pleroma/web/mastodon_api/controllers/account_controller.ex:220 +#: lib/pleroma/web/mastodon_api/controllers/account_controller.ex:254 #, elixir-format msgid "Invalid request" msgstr "无效的请求" -#: lib/pleroma/web/twitter_api/twitter_api.ex:109 +#: lib/pleroma/web/twitter_api/twitter_api.ex:102 #, elixir-format msgid "Kocaptcha service unavailable" msgstr "Kocaptcha 服务不可用" -#: lib/pleroma/web/mastodon_api/controllers/account_controller.ex:112 +#: lib/pleroma/web/mastodon_api/controllers/account_controller.ex:140 #, elixir-format msgid "Missing parameters" msgstr "缺少参数" -#: lib/pleroma/web/common_api/utils.ex:547 +#: lib/pleroma/web/common_api/utils.ex:477 #, elixir-format msgid "No such conversation" msgstr "没有该对话" -#: lib/pleroma/web/admin_api/controllers/admin_api_controller.ex:388 -#: lib/pleroma/web/admin_api/controllers/admin_api_controller.ex:414 lib/pleroma/web/admin_api/controllers/admin_api_controller.ex:456 -#, elixir-format, fuzzy +#: lib/pleroma/web/admin_api/controllers/admin_api_controller.ex:171 +#: lib/pleroma/web/admin_api/controllers/admin_api_controller.ex:197 +#: lib/pleroma/web/admin_api/controllers/admin_api_controller.ex:239 +#, elixir-format msgid "No such permission_group" msgstr "没有该权限组" -#: lib/pleroma/plugs/uploaded_media.ex:84 -#: lib/pleroma/web/activity_pub/activity_pub_controller.ex:486 lib/pleroma/web/admin_api/controllers/fallback_controller.ex:11 -#: lib/pleroma/web/feed/user_controller.ex:71 lib/pleroma/web/ostatus/ostatus_controller.ex:143 +#: lib/pleroma/web/activity_pub/activity_pub_controller.ex:504 +#: lib/pleroma/web/admin_api/controllers/fallback_controller.ex:11 +#: lib/pleroma/web/feed/tag_controller.ex:16 +#: lib/pleroma/web/feed/user_controller.ex:69 +#: lib/pleroma/web/o_status/o_status_controller.ex:132 +#: lib/pleroma/web/plugs/uploaded_media.ex:84 #, elixir-format msgid "Not found" msgstr "未找到" -#: lib/pleroma/web/common_api/common_api.ex:331 +#: lib/pleroma/web/common_api.ex:308 #, elixir-format msgid "Poll's author can't vote" msgstr "投票的发起者不能投票" #: lib/pleroma/web/mastodon_api/controllers/fallback_controller.ex:20 -#: lib/pleroma/web/mastodon_api/controllers/poll_controller.ex:37 lib/pleroma/web/mastodon_api/controllers/poll_controller.ex:49 -#: lib/pleroma/web/mastodon_api/controllers/poll_controller.ex:50 lib/pleroma/web/mastodon_api/controllers/status_controller.ex:306 +#: lib/pleroma/web/mastodon_api/controllers/poll_controller.ex:39 +#: lib/pleroma/web/mastodon_api/controllers/poll_controller.ex:51 +#: lib/pleroma/web/mastodon_api/controllers/poll_controller.ex:52 +#: lib/pleroma/web/mastodon_api/controllers/status_controller.ex:326 #: lib/pleroma/web/mastodon_api/controllers/subscription_controller.ex:71 #, elixir-format msgid "Record not found" msgstr "未找到该记录" #: lib/pleroma/web/admin_api/controllers/fallback_controller.ex:35 -#: lib/pleroma/web/feed/user_controller.ex:77 lib/pleroma/web/mastodon_api/controllers/fallback_controller.ex:36 -#: lib/pleroma/web/ostatus/ostatus_controller.ex:149 +#: lib/pleroma/web/feed/user_controller.ex:78 +#: lib/pleroma/web/mastodon_api/controllers/fallback_controller.ex:42 +#: lib/pleroma/web/o_status/o_status_controller.ex:138 #, elixir-format msgid "Something went wrong" msgstr "发生了一些错误" -#: lib/pleroma/web/common_api/activity_draft.ex:107 +#: lib/pleroma/web/common_api/activity_draft.ex:143 #, elixir-format msgid "The message visibility must be direct" msgstr "该消息必须为私信" -#: lib/pleroma/web/common_api/utils.ex:573 +#: lib/pleroma/web/common_api/utils.ex:492 #, elixir-format msgid "The status is over the character limit" msgstr "状态超过了字符数限制" -#: lib/pleroma/plugs/ensure_public_or_authenticated_plug.ex:31 +#: lib/pleroma/web/plugs/ensure_public_or_authenticated_plug.ex:36 #, elixir-format msgid "This resource requires authentication." msgstr "该资源需要认证。" -#: lib/pleroma/plugs/rate_limiter/rate_limiter.ex:206 -#, elixir-format, fuzzy +#: lib/pleroma/web/plugs/rate_limiter.ex:208 +#, elixir-format msgid "Throttled" -msgstr "节流了" +msgstr "限流了" -#: lib/pleroma/web/common_api/common_api.ex:356 +#: lib/pleroma/web/common_api.ex:338 #, elixir-format msgid "Too many choices" msgstr "太多选项" -#: lib/pleroma/web/activity_pub/activity_pub_controller.ex:443 -#, elixir-format -msgid "Unhandled activity type" -msgstr "" - -#: lib/pleroma/web/admin_api/controllers/admin_api_controller.ex:485 +#: lib/pleroma/web/admin_api/controllers/admin_api_controller.ex:268 #, elixir-format msgid "You can't revoke your own admin status." msgstr "您不能撤消自己的管理员权限。" -#: lib/pleroma/web/oauth/oauth_controller.ex:221 -#: lib/pleroma/web/oauth/oauth_controller.ex:308 +#: lib/pleroma/web/o_auth/o_auth_controller.ex:243 +#: lib/pleroma/web/o_auth/o_auth_controller.ex:333 #, elixir-format msgid "Your account is currently disabled" msgstr "您的账户已被禁用" -#: lib/pleroma/web/oauth/oauth_controller.ex:183 -#: lib/pleroma/web/oauth/oauth_controller.ex:331 +#: lib/pleroma/web/o_auth/o_auth_controller.ex:205 +#: lib/pleroma/web/o_auth/o_auth_controller.ex:356 #, elixir-format msgid "Your login is missing a confirmed e-mail address" msgstr "您的账户缺少已认证的 e-mail 地址" -#: lib/pleroma/web/activity_pub/activity_pub_controller.ex:390 +#: lib/pleroma/web/activity_pub/activity_pub_controller.ex:392 #, elixir-format msgid "can't read inbox of %{nickname} as %{as_nickname}" msgstr "无法以 %{as_nickname} 读取 %{nickname} 的收件箱" -#: lib/pleroma/web/activity_pub/activity_pub_controller.ex:473 +#: lib/pleroma/web/activity_pub/activity_pub_controller.ex:491 #, elixir-format msgid "can't update outbox of %{nickname} as %{as_nickname}" msgstr "无法以 %{as_nickname} 更新 %{nickname} 的出件箱" -#: lib/pleroma/web/common_api/common_api.ex:471 +#: lib/pleroma/web/common_api.ex:475 #, elixir-format msgid "conversation is already muted" msgstr "对话已经被静音" -#: lib/pleroma/web/activity_pub/activity_pub_controller.ex:314 -#: lib/pleroma/web/activity_pub/activity_pub_controller.ex:492 +#: lib/pleroma/web/activity_pub/activity_pub_controller.ex:510 #, elixir-format msgid "error" msgstr "错误" -#: lib/pleroma/web/pleroma_api/controllers/mascot_controller.ex:32 +#: lib/pleroma/web/pleroma_api/controllers/mascot_controller.ex:34 #, elixir-format msgid "mascots can only be images" msgstr "吉祥物只能是图片" -#: lib/pleroma/web/activity_pub/activity_pub_controller.ex:62 +#: lib/pleroma/web/activity_pub/activity_pub_controller.ex:63 #, elixir-format msgid "not found" msgstr "未找到" -#: lib/pleroma/web/oauth/oauth_controller.ex:394 +#: lib/pleroma/web/o_auth/o_auth_controller.ex:437 #, elixir-format msgid "Bad OAuth request." msgstr "错误的 OAuth 请求。" -#: lib/pleroma/web/twitter_api/twitter_api.ex:115 +#: lib/pleroma/web/twitter_api/twitter_api.ex:108 #, elixir-format msgid "CAPTCHA already used" msgstr "验证码已被使用" -#: lib/pleroma/web/twitter_api/twitter_api.ex:112 +#: lib/pleroma/web/twitter_api/twitter_api.ex:105 #, elixir-format msgid "CAPTCHA expired" msgstr "验证码已过期" -#: lib/pleroma/plugs/uploaded_media.ex:57 +#: lib/pleroma/web/plugs/uploaded_media.ex:57 #, elixir-format msgid "Failed" msgstr "失败" -#: lib/pleroma/web/oauth/oauth_controller.ex:410 -#, elixir-format, fuzzy +#: lib/pleroma/web/o_auth/o_auth_controller.ex:453 +#, elixir-format msgid "Failed to authenticate: %{message}." -msgstr "认证失败:%{message}。" +msgstr "鉴权失败:%{message}。" -#: lib/pleroma/web/oauth/oauth_controller.ex:441 +#: lib/pleroma/web/o_auth/o_auth_controller.ex:484 #, elixir-format msgid "Failed to set up user account." msgstr "建立用户帐号失败。" -#: lib/pleroma/plugs/oauth_scopes_plug.ex:38 +#: lib/pleroma/web/plugs/o_auth_scopes_plug.ex:37 #, elixir-format msgid "Insufficient permissions: %{permissions}." msgstr "权限不足:%{permissions}。" -#: lib/pleroma/plugs/uploaded_media.ex:104 +#: lib/pleroma/web/plugs/uploaded_media.ex:111 #, elixir-format msgid "Internal Error" msgstr "内部错误" -#: lib/pleroma/web/oauth/fallback_controller.ex:22 -#: lib/pleroma/web/oauth/fallback_controller.ex:29 +#: lib/pleroma/web/o_auth/fallback_controller.ex:22 +#: lib/pleroma/web/o_auth/fallback_controller.ex:29 #, elixir-format msgid "Invalid Username/Password" msgstr "无效的用户名/密码" -#: lib/pleroma/web/twitter_api/twitter_api.ex:118 -#, elixir-format, fuzzy +#: lib/pleroma/web/twitter_api/twitter_api.ex:111 +#, elixir-format msgid "Invalid answer data" msgstr "无效的回答数据" #: lib/pleroma/web/nodeinfo/nodeinfo_controller.ex:33 -#, elixir-format +#, elixir-format, fuzzy msgid "Nodeinfo schema version not handled" -msgstr "" +msgstr "Nodeinfo schema 版本没被处理" -#: lib/pleroma/web/oauth/oauth_controller.ex:172 +#: lib/pleroma/web/o_auth/o_auth_controller.ex:194 #, elixir-format msgid "This action is outside the authorized scopes" msgstr "此操作在许可范围以外" -#: lib/pleroma/web/oauth/fallback_controller.ex:14 +#: lib/pleroma/web/o_auth/fallback_controller.ex:14 #, elixir-format msgid "Unknown error, please check the details and try again." msgstr "未知错误,请检查并重试。" -#: lib/pleroma/web/oauth/oauth_controller.ex:119 -#: lib/pleroma/web/oauth/oauth_controller.ex:158 +#: lib/pleroma/web/o_auth/o_auth_controller.ex:136 +#: lib/pleroma/web/o_auth/o_auth_controller.ex:180 #, elixir-format msgid "Unlisted redirect_uri." -msgstr "" +msgstr "没被列出的重定向 URI(redirect_uri)。" -#: lib/pleroma/web/oauth/oauth_controller.ex:390 +#: lib/pleroma/web/o_auth/o_auth_controller.ex:433 #, elixir-format msgid "Unsupported OAuth provider: %{provider}." msgstr "不支持的 OAuth 提供者:%{provider}。" -#: lib/pleroma/uploaders/uploader.ex:72 -#, elixir-format, fuzzy +#: lib/pleroma/uploaders/uploader.ex:74 +#, elixir-format msgid "Uploader callback timeout" -msgstr "上传回复超时" +msgstr "上传器回调超时" #: lib/pleroma/web/uploader_controller.ex:23 #, elixir-format msgid "bad request" msgstr "错误的请求" -#: lib/pleroma/web/twitter_api/twitter_api.ex:103 +#: lib/pleroma/web/twitter_api/twitter_api.ex:96 #, elixir-format msgid "CAPTCHA Error" msgstr "验证码错误" -#: lib/pleroma/web/common_api/common_api.ex:290 -#, elixir-format, fuzzy +#: lib/pleroma/web/common_api.ex:266 +#, elixir-format msgid "Could not add reaction emoji" msgstr "无法添加表情反应" -#: lib/pleroma/web/common_api/common_api.ex:301 +#: lib/pleroma/web/common_api.ex:277 #, elixir-format msgid "Could not remove reaction emoji" msgstr "无法移除表情反应" -#: lib/pleroma/web/twitter_api/twitter_api.ex:129 +#: lib/pleroma/web/twitter_api/twitter_api.ex:122 #, elixir-format msgid "Invalid CAPTCHA (Missing parameter: %{name})" msgstr "无效的验证码(缺少参数:%{name})" -#: lib/pleroma/web/mastodon_api/controllers/list_controller.ex:92 +#: lib/pleroma/web/mastodon_api/controllers/list_controller.ex:96 #, elixir-format msgid "List not found" msgstr "未找到列表" -#: lib/pleroma/web/mastodon_api/controllers/account_controller.ex:123 +#: lib/pleroma/web/mastodon_api/controllers/account_controller.ex:151 #, elixir-format msgid "Missing parameter: %{name}" msgstr "缺少参数:%{name}" -#: lib/pleroma/web/oauth/oauth_controller.ex:210 -#: lib/pleroma/web/oauth/oauth_controller.ex:321 +#: lib/pleroma/web/o_auth/o_auth_controller.ex:232 +#: lib/pleroma/web/o_auth/o_auth_controller.ex:346 #, elixir-format msgid "Password reset is required" msgstr "需要重置密码" #: lib/pleroma/tests/auth_test_controller.ex:9 -#: lib/pleroma/web/activity_pub/activity_pub_controller.ex:6 lib/pleroma/web/admin_api/controllers/admin_api_controller.ex:6 -#: lib/pleroma/web/admin_api/controllers/config_controller.ex:6 lib/pleroma/web/admin_api/controllers/fallback_controller.ex:6 -#: lib/pleroma/web/admin_api/controllers/invite_controller.ex:6 lib/pleroma/web/admin_api/controllers/media_proxy_cache_controller.ex:6 -#: lib/pleroma/web/admin_api/controllers/oauth_app_controller.ex:6 lib/pleroma/web/admin_api/controllers/relay_controller.ex:6 -#: lib/pleroma/web/admin_api/controllers/report_controller.ex:6 lib/pleroma/web/admin_api/controllers/status_controller.ex:6 -#: lib/pleroma/web/controller_helper.ex:6 lib/pleroma/web/embed_controller.ex:6 -#: lib/pleroma/web/fallback_redirect_controller.ex:6 lib/pleroma/web/feed/tag_controller.ex:6 -#: lib/pleroma/web/feed/user_controller.ex:6 lib/pleroma/web/mailer/subscription_controller.ex:2 -#: lib/pleroma/web/masto_fe_controller.ex:6 lib/pleroma/web/mastodon_api/controllers/account_controller.ex:6 -#: lib/pleroma/web/mastodon_api/controllers/app_controller.ex:6 lib/pleroma/web/mastodon_api/controllers/auth_controller.ex:6 -#: lib/pleroma/web/mastodon_api/controllers/conversation_controller.ex:6 lib/pleroma/web/mastodon_api/controllers/custom_emoji_controller.ex:6 -#: lib/pleroma/web/mastodon_api/controllers/domain_block_controller.ex:6 lib/pleroma/web/mastodon_api/controllers/fallback_controller.ex:6 -#: lib/pleroma/web/mastodon_api/controllers/filter_controller.ex:6 lib/pleroma/web/mastodon_api/controllers/follow_request_controller.ex:6 -#: lib/pleroma/web/mastodon_api/controllers/instance_controller.ex:6 lib/pleroma/web/mastodon_api/controllers/list_controller.ex:6 -#: lib/pleroma/web/mastodon_api/controllers/marker_controller.ex:6 lib/pleroma/web/mastodon_api/controllers/mastodon_api_controller.ex:14 -#: lib/pleroma/web/mastodon_api/controllers/media_controller.ex:6 lib/pleroma/web/mastodon_api/controllers/notification_controller.ex:6 -#: lib/pleroma/web/mastodon_api/controllers/poll_controller.ex:6 lib/pleroma/web/mastodon_api/controllers/report_controller.ex:8 -#: lib/pleroma/web/mastodon_api/controllers/scheduled_activity_controller.ex:6 lib/pleroma/web/mastodon_api/controllers/search_controller.ex:6 -#: lib/pleroma/web/mastodon_api/controllers/status_controller.ex:6 lib/pleroma/web/mastodon_api/controllers/subscription_controller.ex:7 -#: lib/pleroma/web/mastodon_api/controllers/suggestion_controller.ex:6 lib/pleroma/web/mastodon_api/controllers/timeline_controller.ex:6 -#: lib/pleroma/web/media_proxy/media_proxy_controller.ex:6 lib/pleroma/web/mongooseim/mongoose_im_controller.ex:6 -#: lib/pleroma/web/nodeinfo/nodeinfo_controller.ex:6 lib/pleroma/web/oauth/fallback_controller.ex:6 -#: lib/pleroma/web/oauth/mfa_controller.ex:10 lib/pleroma/web/oauth/oauth_controller.ex:6 -#: lib/pleroma/web/ostatus/ostatus_controller.ex:6 lib/pleroma/web/pleroma_api/controllers/account_controller.ex:6 -#: lib/pleroma/web/pleroma_api/controllers/chat_controller.ex:5 lib/pleroma/web/pleroma_api/controllers/conversation_controller.ex:6 -#: lib/pleroma/web/pleroma_api/controllers/emoji_pack_controller.ex:2 lib/pleroma/web/pleroma_api/controllers/emoji_reaction_controller.ex:6 -#: lib/pleroma/web/pleroma_api/controllers/mascot_controller.ex:6 lib/pleroma/web/pleroma_api/controllers/notification_controller.ex:6 +#: lib/pleroma/web/activity_pub/activity_pub_controller.ex:6 +#: lib/pleroma/web/admin_api/controllers/admin_api_controller.ex:6 +#: lib/pleroma/web/admin_api/controllers/chat_controller.ex:6 +#: lib/pleroma/web/admin_api/controllers/config_controller.ex:6 +#: lib/pleroma/web/admin_api/controllers/fallback_controller.ex:6 +#: lib/pleroma/web/admin_api/controllers/frontend_controller.ex:6 +#: lib/pleroma/web/admin_api/controllers/instance_controller.ex:6 +#: lib/pleroma/web/admin_api/controllers/instance_document_controller.ex:6 +#: lib/pleroma/web/admin_api/controllers/invite_controller.ex:6 +#: lib/pleroma/web/admin_api/controllers/media_proxy_cache_controller.ex:6 +#: lib/pleroma/web/admin_api/controllers/o_auth_app_controller.ex:6 +#: lib/pleroma/web/admin_api/controllers/relay_controller.ex:6 +#: lib/pleroma/web/admin_api/controllers/report_controller.ex:6 +#: lib/pleroma/web/admin_api/controllers/status_controller.ex:6 +#: lib/pleroma/web/admin_api/controllers/user_controller.ex:6 +#: lib/pleroma/web/controller_helper.ex:6 +#: lib/pleroma/web/embed_controller.ex:6 +#: lib/pleroma/web/fallback/redirect_controller.ex:6 +#: lib/pleroma/web/feed/tag_controller.ex:6 +#: lib/pleroma/web/feed/user_controller.ex:6 +#: lib/pleroma/web/mailer/subscription_controller.ex:6 +#: lib/pleroma/web/manifest_controller.ex:6 +#: lib/pleroma/web/mastodon_api/controllers/account_controller.ex:6 +#: lib/pleroma/web/mastodon_api/controllers/app_controller.ex:11 +#: lib/pleroma/web/mastodon_api/controllers/auth_controller.ex:6 +#: lib/pleroma/web/mastodon_api/controllers/conversation_controller.ex:6 +#: lib/pleroma/web/mastodon_api/controllers/custom_emoji_controller.ex:6 +#: lib/pleroma/web/mastodon_api/controllers/directory_controller.ex:6 +#: lib/pleroma/web/mastodon_api/controllers/domain_block_controller.ex:6 +#: lib/pleroma/web/mastodon_api/controllers/fallback_controller.ex:6 +#: lib/pleroma/web/mastodon_api/controllers/filter_controller.ex:6 +#: lib/pleroma/web/mastodon_api/controllers/follow_request_controller.ex:6 +#: lib/pleroma/web/mastodon_api/controllers/instance_controller.ex:6 +#: lib/pleroma/web/mastodon_api/controllers/list_controller.ex:6 +#: lib/pleroma/web/mastodon_api/controllers/marker_controller.ex:6 +#: lib/pleroma/web/mastodon_api/controllers/mastodon_api_controller.ex:14 +#: lib/pleroma/web/mastodon_api/controllers/media_controller.ex:6 +#: lib/pleroma/web/mastodon_api/controllers/notification_controller.ex:6 +#: lib/pleroma/web/mastodon_api/controllers/poll_controller.ex:6 +#: lib/pleroma/web/mastodon_api/controllers/report_controller.ex:6 +#: lib/pleroma/web/mastodon_api/controllers/scheduled_activity_controller.ex:6 +#: lib/pleroma/web/mastodon_api/controllers/search_controller.ex:6 +#: lib/pleroma/web/mastodon_api/controllers/status_controller.ex:6 +#: lib/pleroma/web/mastodon_api/controllers/subscription_controller.ex:7 +#: lib/pleroma/web/mastodon_api/controllers/suggestion_controller.ex:6 +#: lib/pleroma/web/mastodon_api/controllers/timeline_controller.ex:6 +#: lib/pleroma/web/media_proxy/media_proxy_controller.ex:6 +#: lib/pleroma/web/mongoose_im/mongoose_im_controller.ex:6 +#: lib/pleroma/web/nodeinfo/nodeinfo_controller.ex:6 +#: lib/pleroma/web/o_auth/fallback_controller.ex:6 +#: lib/pleroma/web/o_auth/mfa_controller.ex:10 +#: lib/pleroma/web/o_auth/o_auth_controller.ex:6 +#: lib/pleroma/web/o_status/o_status_controller.ex:6 +#: lib/pleroma/web/pleroma_api/controllers/account_controller.ex:6 +#: lib/pleroma/web/pleroma_api/controllers/app_controller.ex:6 +#: lib/pleroma/web/pleroma_api/controllers/backup_controller.ex:6 +#: lib/pleroma/web/pleroma_api/controllers/chat_controller.ex:5 +#: lib/pleroma/web/pleroma_api/controllers/conversation_controller.ex:6 +#: lib/pleroma/web/pleroma_api/controllers/emoji_file_controller.ex:6 +#: lib/pleroma/web/pleroma_api/controllers/emoji_pack_controller.ex:6 +#: lib/pleroma/web/pleroma_api/controllers/emoji_reaction_controller.ex:6 +#: lib/pleroma/web/pleroma_api/controllers/instances_controller.ex:6 +#: lib/pleroma/web/pleroma_api/controllers/mascot_controller.ex:6 +#: lib/pleroma/web/pleroma_api/controllers/notification_controller.ex:6 +#: lib/pleroma/web/pleroma_api/controllers/report_controller.ex:6 #: lib/pleroma/web/pleroma_api/controllers/scrobble_controller.ex:6 -#: lib/pleroma/web/pleroma_api/controllers/two_factor_authentication_controller.ex:7 lib/pleroma/web/static_fe/static_fe_controller.ex:6 -#: lib/pleroma/web/twitter_api/controllers/password_controller.ex:10 lib/pleroma/web/twitter_api/controllers/remote_follow_controller.ex:6 -#: lib/pleroma/web/twitter_api/controllers/util_controller.ex:6 lib/pleroma/web/twitter_api/twitter_api_controller.ex:6 -#: lib/pleroma/web/uploader_controller.ex:6 lib/pleroma/web/web_finger/web_finger_controller.ex:6 +#: lib/pleroma/web/pleroma_api/controllers/two_factor_authentication_controller.ex:7 +#: lib/pleroma/web/pleroma_api/controllers/user_import_controller.ex:6 +#: lib/pleroma/web/static_fe/static_fe_controller.ex:6 +#: lib/pleroma/web/twitter_api/controller.ex:6 +#: lib/pleroma/web/twitter_api/controllers/password_controller.ex:10 +#: lib/pleroma/web/twitter_api/controllers/remote_follow_controller.ex:6 +#: lib/pleroma/web/twitter_api/controllers/util_controller.ex:6 +#: lib/pleroma/web/uploader_controller.ex:6 +#: lib/pleroma/web/web_finger/web_finger_controller.ex:6 #, elixir-format msgid "Security violation: OAuth scopes check was neither handled nor explicitly skipped." -msgstr "" +msgstr "安全违例:OAuth 域检查既没处理也没显式跳过。" -#: lib/pleroma/plugs/ensure_authenticated_plug.ex:28 -#, elixir-format, fuzzy +#: lib/pleroma/web/plugs/ensure_authenticated_plug.ex:32 +#, elixir-format msgid "Two-factor authentication enabled, you must use a access token." -msgstr "已启用两因素验证,您需要使用访问令牌。" - -#: lib/pleroma/web/pleroma_api/controllers/emoji_pack_controller.ex:210 -#, elixir-format -msgid "Unexpected error occurred while adding file to pack." -msgstr "向表情包添加文件时发生了没有预料到的错误。" - -#: lib/pleroma/web/pleroma_api/controllers/emoji_pack_controller.ex:138 -#, elixir-format -msgid "Unexpected error occurred while creating pack." -msgstr "创建表情包时发生了没有预料到的错误。" - -#: lib/pleroma/web/pleroma_api/controllers/emoji_pack_controller.ex:278 -#, elixir-format -msgid "Unexpected error occurred while removing file from pack." -msgstr "从表情包移除文件时发生了没有预料到的错误。" - -#: lib/pleroma/web/pleroma_api/controllers/emoji_pack_controller.ex:250 -#, elixir-format -msgid "Unexpected error occurred while updating file in pack." -msgstr "更新表情包内的文件时发生了没有预料到的错误。" - -#: lib/pleroma/web/pleroma_api/controllers/emoji_pack_controller.ex:179 -#, elixir-format -msgid "Unexpected error occurred while updating pack metadata." -msgstr "更新表情包元数据时发生了没有预料到的错误。" +msgstr "已启用两因素鉴权,您需要使用访问令牌。" #: lib/pleroma/web/mastodon_api/controllers/subscription_controller.ex:61 -#, elixir-format, fuzzy +#, elixir-format msgid "Web push subscription is disabled on this Pleroma instance" msgstr "此 Pleroma 实例禁用了网页推送订阅" -#: lib/pleroma/web/admin_api/controllers/admin_api_controller.ex:451 +#: lib/pleroma/web/admin_api/controllers/admin_api_controller.ex:234 #, elixir-format msgid "You can't revoke your own admin/moderator status." msgstr "您不能撤消自己的管理员权限。" -#: lib/pleroma/web/mastodon_api/controllers/timeline_controller.ex:126 +#: lib/pleroma/web/mastodon_api/controllers/timeline_controller.ex:129 #, elixir-format msgid "authorization required for timeline view" msgstr "浏览时间线需要认证" @@ -569,12 +568,50 @@ msgstr "浏览时间线需要认证" msgid "Access denied" msgstr "拒绝访问" -#: lib/pleroma/web/mastodon_api/controllers/account_controller.ex:282 +#: lib/pleroma/web/mastodon_api/controllers/account_controller.ex:321 #, elixir-format msgid "This API requires an authenticated user" msgstr "此 API 需要已认证的用户" -#: lib/pleroma/plugs/user_is_admin_plug.ex:21 +#: lib/pleroma/web/plugs/ensure_staff_privileged_plug.ex:26 +#: lib/pleroma/web/plugs/user_is_admin_plug.ex:21 #, elixir-format msgid "User is not an admin." msgstr "该用户不是管理员。" + +#: lib/pleroma/user/backup.ex:75 +#, elixir-format +msgid "Last export was less than a day ago" +msgid_plural "Last export was less than %{days} days ago" +msgstr[0] "上次导出还不到 %{days} 天前" + +#: lib/pleroma/user/backup.ex:93 +#, elixir-format +msgid "Backups require enabled email" +msgstr "备份要求开启邮件" + +#: lib/pleroma/web/activity_pub/activity_pub_controller.ex:423 +#, elixir-format +msgid "Character limit (%{limit} characters) exceeded, contains %{length} characters" +msgstr "超过字符限制(%{limit} 个字符),包含了 %{length} 个字符" + +#: lib/pleroma/user/backup.ex:98 +#, elixir-format +msgid "Email is required" +msgstr "需要邮箱" + +#: lib/pleroma/web/common_api/utils.ex:507 +#, elixir-format +msgid "Too many attachments" +msgstr "太多附件" + +#: lib/pleroma/web/plugs/ensure_staff_privileged_plug.ex:33 +#: lib/pleroma/web/plugs/user_is_staff_plug.ex:20 +#, elixir-format +msgid "User is not a staff member." +msgstr "该用户不是运营成员。" + +#: lib/pleroma/web/o_auth/o_auth_controller.ex:366 +#, elixir-format +msgid "Your account is awaiting approval." +msgstr "你的账号正等待批准。" diff --git a/priv/gettext/zh_Hans/LC_MESSAGES/posix_errors.po b/priv/gettext/zh_Hans/LC_MESSAGES/posix_errors.po new file mode 100644 index 000000000..c486a5486 --- /dev/null +++ b/priv/gettext/zh_Hans/LC_MESSAGES/posix_errors.po @@ -0,0 +1,160 @@ +## "msgid"s in this file come from POT (.pot) files. +## +## Do not add, change, or remove "msgid"s manually here as +## they're tied to the ones in the corresponding POT file +## (with the same domain). +## +## Use "mix gettext.extract --merge" or "mix gettext.merge" +## to merge POT files into PO files. +msgid "" +msgstr "" +"PO-Revision-Date: 2022-07-22 19:00+0000\n" +"Last-Translator: Yating Zhan \n" +"Language-Team: Chinese (Simplified) \n" +"Language: zh_Hans\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=1; plural=0;\n" +"X-Generator: Weblate 4.13.1\n" + +msgid "eperm" +msgstr "不允许的操作" + +msgid "eacces" +msgstr "权限不够" + +msgid "eagain" +msgstr "资源暂时不可用" + +msgid "ebadf" +msgstr "坏的文件描述符" + +msgid "ebadmsg" +msgstr "坏讯息" + +msgid "ebusy" +msgstr "设备或资源忙" + +msgid "edeadlk" +msgstr "避免了资源死锁" + +msgid "edeadlock" +msgstr "避免了资源死锁" + +msgid "edquot" +msgstr "超出了磁盘配额" + +msgid "eexist" +msgstr "文件存在" + +msgid "efault" +msgstr "坏地址" + +msgid "efbig" +msgstr "文件太大" + +msgid "eftype" +msgstr "不合适的文件类型或格式" + +msgid "eintr" +msgstr "系统调用被中断" + +msgid "einval" +msgstr "不合法的参数" + +msgid "eio" +msgstr "输入/输出错误" + +msgid "eisdir" +msgstr "在目录上非法操作" + +msgid "eloop" +msgstr "太多层符号链接" + +msgid "emfile" +msgstr "太多打开的文件" + +msgid "emlink" +msgstr "太多链接" + +msgid "emultihop" +msgstr "" + +msgid "enametoolong" +msgstr "文件名太长" + +msgid "enfile" +msgstr "系统里太多打开的文件" + +msgid "enobufs" +msgstr "没有可用的缓冲空间" + +msgid "enodev" +msgstr "没这设备" + +msgid "enolck" +msgstr "没有可用的锁" + +msgid "enolink" +msgstr "链接被切断了" + +msgid "enoent" +msgstr "没这文件或目录" + +msgid "enomem" +msgstr "不能分配内存" + +msgid "enospc" +msgstr "设备上没剩余空间" + +msgid "enosr" +msgstr "" + +msgid "enostr" +msgstr "设备不是流" + +msgid "enosys" +msgstr "功能没实现" + +msgid "enotblk" +msgstr "" + +msgid "enotdir" +msgstr "" + +msgid "enotsup" +msgstr "不受支持的操作" + +msgid "enxio" +msgstr "该设备或路径不存在" + +msgid "eopnotsupp" +msgstr "不受支持的操作" + +msgid "eoverflow" +msgstr "请为给定类型的数据指定较小的数值" + +msgid "epipe" +msgstr "" + +msgid "erange" +msgstr "" + +msgid "erofs" +msgstr "只读权限文件系统" + +msgid "espipe" +msgstr "" + +msgid "esrch" +msgstr "具体进程不存在" + +msgid "estale" +msgstr "" + +msgid "etxtbsy" +msgstr "文本文件忙碌" + +msgid "exdev" +msgstr "该多设备链接不可用" diff --git a/priv/gettext/zh_Hans/LC_MESSAGES/static_pages.po b/priv/gettext/zh_Hans/LC_MESSAGES/static_pages.po new file mode 100644 index 000000000..cbd6feb60 --- /dev/null +++ b/priv/gettext/zh_Hans/LC_MESSAGES/static_pages.po @@ -0,0 +1,552 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR Free Software Foundation, Inc. +# FIRST AUTHOR , YEAR. +# +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"PO-Revision-Date: 2022-07-21 23:35+0000\n" +"Last-Translator: tusooa \n" +"Language-Team: Chinese (Simplified) \n" +"Language: zh_Hans\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=1; plural=0;\n" +"X-Generator: Weblate 4.13.1\n" + +## "msgid"s in this file come from POT (.pot) files. +## +## Do not add, change, or remove "msgid"s manually here as +## they're tied to the ones in the corresponding POT file +## (with the same domain). +## +## Use "mix gettext.extract --merge" or "mix gettext.merge" +## to merge POT files into PO files. +#~ msgid "" +#~ msgstr "" +#~ "Language: zh_Hans\n" +#~ "Plural-Forms: nplurals=1\n" + +#: lib/pleroma/web/templates/twitter_api/remote_follow/follow.html.eex:9 +#, elixir-format +msgctxt "remote follow authorization button" +msgid "Authorize" +msgstr "授权" + +#: lib/pleroma/web/templates/twitter_api/remote_follow/follow.html.eex:2 +#, elixir-format +msgctxt "remote follow error" +msgid "Error fetching user" +msgstr "获取用户时出错" + +#: lib/pleroma/web/templates/twitter_api/remote_follow/follow.html.eex:4 +#, elixir-format +msgctxt "remote follow header" +msgid "Remote follow" +msgstr "远程关注" + +#: lib/pleroma/web/templates/twitter_api/remote_follow/follow_mfa.html.eex:8 +#, elixir-format +msgctxt "placeholder text for auth code entry" +msgid "Authentication code" +msgstr "授权代码" + +#: lib/pleroma/web/templates/twitter_api/remote_follow/follow_login.html.eex:10 +#, elixir-format +msgctxt "placeholder text for password entry" +msgid "Password" +msgstr "密码" + +#: lib/pleroma/web/templates/twitter_api/remote_follow/follow_login.html.eex:8 +#, elixir-format +msgctxt "placeholder text for username entry" +msgid "Username" +msgstr "用户名" + +#: lib/pleroma/web/templates/twitter_api/remote_follow/follow_login.html.eex:13 +#, elixir-format +msgctxt "remote follow authorization button for login" +msgid "Authorize" +msgstr "授权" + +#: lib/pleroma/web/templates/twitter_api/remote_follow/follow_mfa.html.eex:12 +#, elixir-format +msgctxt "remote follow authorization button for mfa" +msgid "Authorize" +msgstr "授权" + +#: lib/pleroma/web/templates/twitter_api/remote_follow/followed.html.eex:2 +#, elixir-format +msgctxt "remote follow error" +msgid "Error following account" +msgstr "关注用户时出错" + +#: lib/pleroma/web/templates/twitter_api/remote_follow/follow_login.html.eex:4 +#, elixir-format +msgctxt "remote follow header, need login" +msgid "Log in to follow" +msgstr "登录以关注" + +#: lib/pleroma/web/templates/twitter_api/remote_follow/follow_mfa.html.eex:4 +#, elixir-format +msgctxt "remote follow mfa header" +msgid "Two-factor authentication" +msgstr "两步鉴权" + +#: lib/pleroma/web/templates/twitter_api/remote_follow/followed.html.eex:4 +#, elixir-format +msgctxt "remote follow success" +msgid "Account followed!" +msgstr "已经关注了账号!" + +#: lib/pleroma/web/templates/twitter_api/util/subscribe.html.eex:7 +#, elixir-format +msgctxt "placeholder text for account id" +msgid "Your account ID, e.g. lain@quitter.se" +msgstr "你的账户 ID,如 lain@quitter.se" + +#: lib/pleroma/web/templates/twitter_api/util/subscribe.html.eex:8 +#, elixir-format +msgctxt "remote follow authorization button for following with a remote account" +msgid "Follow" +msgstr "关注" + +#: lib/pleroma/web/templates/twitter_api/util/subscribe.html.eex:2 +#, elixir-format +msgctxt "remote follow error" +msgid "Error: %{error}" +msgstr "错误:%{error}" + +#: lib/pleroma/web/templates/twitter_api/util/subscribe.html.eex:4 +#, elixir-format +msgctxt "remote follow header" +msgid "Remotely follow %{nickname}" +msgstr "远程关注 %{nickname}" + +#: lib/pleroma/web/templates/twitter_api/password/reset.html.eex:12 +#, elixir-format +msgctxt "password reset button" +msgid "Reset" +msgstr "重置" + +#: lib/pleroma/web/templates/twitter_api/password/reset_failed.html.eex:4 +#, elixir-format +msgctxt "password reset failed homepage link" +msgid "Homepage" +msgstr "回主页" + +#: lib/pleroma/web/templates/twitter_api/password/reset_failed.html.eex:1 +#, elixir-format +msgctxt "password reset failed message" +msgid "Password reset failed" +msgstr "密码重置失败" + +#: lib/pleroma/web/templates/twitter_api/password/reset.html.eex:8 +#, elixir-format +msgctxt "password reset form confirm password prompt" +msgid "Confirmation" +msgstr "确认密码" + +#: lib/pleroma/web/templates/twitter_api/password/reset.html.eex:4 +#, elixir-format +msgctxt "password reset form password prompt" +msgid "Password" +msgstr "密码" + +#: lib/pleroma/web/templates/twitter_api/password/invalid_token.html.eex:1 +#, elixir-format +msgctxt "password reset invalid token message" +msgid "Invalid Token" +msgstr "无效的令牌" + +#: lib/pleroma/web/templates/twitter_api/password/reset_success.html.eex:2 +#, elixir-format +msgctxt "password reset successful homepage link" +msgid "Homepage" +msgstr "回主页" + +#: lib/pleroma/web/templates/twitter_api/password/reset_success.html.eex:1 +#, elixir-format +msgctxt "password reset successful message" +msgid "Password changed!" +msgstr "密码已经修改了!" + +#: lib/pleroma/web/templates/feed/feed/tag.atom.eex:15 +#: lib/pleroma/web/templates/feed/feed/tag.rss.eex:7 +#, elixir-format +msgctxt "tag feed description" +msgid "These are public toots tagged with #%{tag}. You can interact with them if you have an account anywhere in the fediverse." +msgstr "这些是标了 #%{tag} 签的公开文章。你要是在联邦宇宙的任何地方有账号,就能和它们互动。" + +#: lib/pleroma/web/templates/o_auth/o_auth/oob_token_exists.html.eex:1 +#, elixir-format +msgctxt "oauth authorization exists page title" +msgid "Authorization exists" +msgstr "授权已经存在" + +#: lib/pleroma/web/templates/o_auth/o_auth/show.html.eex:32 +#, elixir-format +msgctxt "oauth authorize approve button" +msgid "Approve" +msgstr "批准" + +#: lib/pleroma/web/templates/o_auth/o_auth/show.html.eex:30 +#, elixir-format +msgctxt "oauth authorize cancel button" +msgid "Cancel" +msgstr "取消" + +#: lib/pleroma/web/templates/o_auth/o_auth/show.html.eex:23 +#, elixir-format +msgctxt "oauth authorize message" +msgid "Application %{client_name} is requesting access to your account." +msgstr "应用程序 %{client_name} 在请求访问你的账号。" + +#: lib/pleroma/web/templates/o_auth/o_auth/oob_authorization_created.html.eex:1 +#, elixir-format +msgctxt "oauth authorized page title" +msgid "Successfully authorized" +msgstr "成功授权" + +#: lib/pleroma/web/templates/o_auth/o_auth/consumer.html.eex:1 +#, elixir-format +msgctxt "oauth external provider page title" +msgid "Sign in with external provider" +msgstr "通过外部提供者登录" + +#: lib/pleroma/web/templates/o_auth/o_auth/consumer.html.eex:13 +#, elixir-format +msgctxt "oauth external provider sign in button" +msgid "Sign in with %{strategy}" +msgstr "通过 %{strategy} 登录" + +#: lib/pleroma/web/templates/o_auth/o_auth/show.html.eex:54 +#, elixir-format +msgctxt "oauth login button" +msgid "Log In" +msgstr "登录" + +#: lib/pleroma/web/templates/o_auth/o_auth/show.html.eex:51 +#, elixir-format +msgctxt "oauth login password prompt" +msgid "Password" +msgstr "密码" + +#: lib/pleroma/web/templates/o_auth/o_auth/show.html.eex:47 +#, elixir-format +msgctxt "oauth login username prompt" +msgid "Username" +msgstr "用户名" + +#: lib/pleroma/web/templates/o_auth/o_auth/show.html.eex:39 +#, elixir-format +msgctxt "oauth register nickname prompt" +msgid "Pleroma Handle" +msgstr "Pleroma 用户名" + +#: lib/pleroma/web/templates/o_auth/o_auth/show.html.eex:37 +#, elixir-format +msgctxt "oauth register nickname unchangeable warning" +msgid "Choose carefully! You won't be able to change this later. You will be able to change your display name, though." +msgstr "选仔细了!你之后就不能改它了。但是你可以改显示名。" + +#: lib/pleroma/web/templates/o_auth/o_auth/register.html.eex:18 +#, elixir-format +msgctxt "oauth register page email prompt" +msgid "Email" +msgstr "邮箱" + +#: lib/pleroma/web/templates/o_auth/o_auth/register.html.eex:10 +#, elixir-format +msgctxt "oauth register page fill form prompt" +msgid "If you'd like to register a new account, please provide the details below." +msgstr "如果你想注册新账号,请提供如下信息。" + +#: lib/pleroma/web/templates/o_auth/o_auth/register.html.eex:35 +#, elixir-format +msgctxt "oauth register page login button" +msgid "Proceed as existing user" +msgstr "以已有用户继续" + +#: lib/pleroma/web/templates/o_auth/o_auth/register.html.eex:31 +#, elixir-format +msgctxt "oauth register page login password prompt" +msgid "Password" +msgstr "密码" + +#: lib/pleroma/web/templates/o_auth/o_auth/register.html.eex:24 +#, elixir-format +msgctxt "oauth register page login prompt" +msgid "Alternatively, sign in to connect to existing account." +msgstr "或者,登录到已有账号。" + +#: lib/pleroma/web/templates/o_auth/o_auth/register.html.eex:27 +#, elixir-format +msgctxt "oauth register page login username prompt" +msgid "Name or email" +msgstr "名字或邮箱" + +#: lib/pleroma/web/templates/o_auth/o_auth/register.html.eex:14 +#, elixir-format +msgctxt "oauth register page nickname prompt" +msgid "Nickname" +msgstr "昵称" + +#: lib/pleroma/web/templates/o_auth/o_auth/register.html.eex:22 +#, elixir-format +msgctxt "oauth register page register button" +msgid "Proceed as new user" +msgstr "以新用户继续" + +#: lib/pleroma/web/templates/o_auth/o_auth/register.html.eex:8 +#, elixir-format +msgctxt "oauth register page title" +msgid "Registration Details" +msgstr "注册详情" + +#: lib/pleroma/web/templates/o_auth/o_auth/show.html.eex:36 +#, elixir-format +msgctxt "oauth register page title" +msgid "This is the first time you visit! Please enter your Pleroma handle." +msgstr "这是你第一次访问。请输入 Pleroma 用户名。" + +#: lib/pleroma/web/templates/o_auth/o_auth/_scopes.html.eex:2 +#, elixir-format +msgctxt "oauth scopes message" +msgid "The following permissions will be granted" +msgstr "将要允许如下权限" + +#: lib/pleroma/web/templates/o_auth/o_auth/oob_authorization_created.html.eex:2 +#: lib/pleroma/web/templates/o_auth/o_auth/oob_token_exists.html.eex:2 +#, elixir-format +msgctxt "oauth token code message" +msgid "Token code is
%{token}" +msgstr "令牌代码是
%{token}" + +#: lib/pleroma/web/templates/o_auth/mfa/totp.html.eex:12 +#, elixir-format +msgctxt "mfa auth code prompt" +msgid "Authentication code" +msgstr "鉴权代码" + +#: lib/pleroma/web/templates/o_auth/mfa/totp.html.eex:8 +#, elixir-format +msgctxt "mfa auth page title" +msgid "Two-factor authentication" +msgstr "两步鉴权" + +#: lib/pleroma/web/templates/o_auth/mfa/totp.html.eex:23 +#, elixir-format +msgctxt "mfa auth page use recovery code link" +msgid "Enter a two-factor recovery code" +msgstr "输入两步恢复码" + +#: lib/pleroma/web/templates/o_auth/mfa/totp.html.eex:20 +#, elixir-format +msgctxt "mfa auth verify code button" +msgid "Verify" +msgstr "验证" + +#: lib/pleroma/web/templates/o_auth/mfa/recovery.html.eex:8 +#, elixir-format +msgctxt "mfa recover page title" +msgid "Two-factor recovery" +msgstr "两步恢复" + +#: lib/pleroma/web/templates/o_auth/mfa/recovery.html.eex:12 +#, elixir-format +msgctxt "mfa recover recovery code prompt" +msgid "Recovery code" +msgstr "恢复码" + +#: lib/pleroma/web/templates/o_auth/mfa/recovery.html.eex:23 +#, elixir-format +msgctxt "mfa recover use 2fa code link" +msgid "Enter a two-factor code" +msgstr "输入鉴权码" + +#: lib/pleroma/web/templates/o_auth/mfa/recovery.html.eex:20 +#, elixir-format +msgctxt "mfa recover verify recovery code button" +msgid "Verify" +msgstr "验证" + +#: lib/pleroma/web/templates/static_fe/static_fe/profile.html.eex:8 +#, elixir-format +msgctxt "static fe profile page remote follow button" +msgid "Remote follow" +msgstr "远程关注" + +#: lib/pleroma/web/templates/email/digest.html.eex:163 +#, elixir-format +msgctxt "digest email header line" +msgid "Hey %{nickname}, here is what you've missed!" +msgstr "早 %{nickname},你刚错过这些!" + +#: lib/pleroma/web/templates/email/digest.html.eex:544 +#, elixir-format +msgctxt "digest email receiver address" +msgid "The email address you are subscribed as is %{email}. " +msgstr "" +"你订阅的邮箱地址是 %{email}。 " + +#: lib/pleroma/web/templates/email/digest.html.eex:538 +#, elixir-format +msgctxt "digest email sending reason" +msgid "You have received this email because you have signed up to receive digest emails from %{instance} Pleroma instance." +msgstr "因为你选择了收取来自 %{instance} 的摘要邮件,所以你会收到这封邮件。" + +#: lib/pleroma/web/templates/email/digest.html.eex:547 +#, elixir-format +msgctxt "digest email unsubscribe action" +msgid "To unsubscribe, please go %{here}." +msgstr "要取消订阅,请去%{here}。" + +#: lib/pleroma/web/templates/email/digest.html.eex:547 +#, elixir-format +msgctxt "digest email unsubscribe action link text" +msgid "here" +msgstr "此处" + +#: lib/pleroma/web/templates/mailer/subscription/unsubscribe_failure.html.eex:1 +#, elixir-format +msgctxt "mailer unsubscribe failed message" +msgid "UNSUBSCRIBE FAILURE" +msgstr "取消订阅失败" + +#: lib/pleroma/web/templates/mailer/subscription/unsubscribe_success.html.eex:1 +#, elixir-format +msgctxt "mailer unsubscribe successful message" +msgid "UNSUBSCRIBE SUCCESSFUL" +msgstr "取消订阅成功" + +#: lib/pleroma/web/templates/email/digest.html.eex:385 +#, elixir-format +msgctxt "new followers count header" +msgid "%{count} New Follower" +msgid_plural "%{count} New Followers" +msgstr[0] "%{count} 个新关注者" + +#: lib/pleroma/emails/user_email.ex:356 +#, elixir-format +msgctxt "account archive email body - self-requested" +msgid "

You requested a full backup of your Pleroma account. It's ready for download:

\n

%{download_url}

\n" +msgstr "" +"

你之前要了一份你的 Pleroma 账号的完整备份。现在可以下载了:

\n" +"

%{download_url}

\n" + +#: lib/pleroma/emails/user_email.ex:384 +#, elixir-format +msgctxt "account archive email subject" +msgid "Your account archive is ready" +msgstr "你的账号存档准备好了" + +#: lib/pleroma/emails/user_email.ex:188 +#, elixir-format +msgctxt "approval pending email body" +msgid "

Awaiting Approval

\n

Your account at %{instance_name} is being reviewed by staff. You will receive another email once your account is approved.

\n" +msgstr "" +"

等待批准

\n" +"

管理人员正在审核你在 %{instance_name} 的账号。等账号批准之后你会收到另一封邮件。

\n" + +#: lib/pleroma/emails/user_email.ex:202 +#, elixir-format +msgctxt "approval pending email subject" +msgid "Your account is awaiting approval" +msgstr "你的账号在等待批准" + +#: lib/pleroma/emails/user_email.ex:158 +#, elixir-format +msgctxt "confirmation email body" +msgid "

Thank you for registering on %{instance_name}

\n

Email confirmation is required to activate the account.

\n

Please click the following link to activate your account.

\n" +msgstr "" +"

感谢注册 %{instance_name}

\n" +"

要激活账号,必须验证邮箱。

\n" +"

请点如下链接来激活账号

\n" + +#: lib/pleroma/emails/user_email.ex:174 +#, elixir-format +msgctxt "confirmation email subject" +msgid "%{instance_name} account confirmation" +msgstr "%{instance_name} 账号激活" + +#: lib/pleroma/emails/user_email.ex:310 +#, elixir-format +msgctxt "digest email subject" +msgid "Your digest from %{instance_name}" +msgstr "来自 %{instance_name} 的摘要" + +#: lib/pleroma/emails/user_email.ex:81 +#, elixir-format +msgctxt "password reset email body" +msgid "

Reset your password at %{instance_name}

\n

Someone has requested password change for your account at %{instance_name}.

\n

If it was you, visit the following link to proceed: reset password.

\n

If it was someone else, nothing to worry about: your data is secure and your password has not been changed.

\n" +msgstr "" +"

重置你在 %{instance_name} 的密码

\n" +"

有人请求了重置你在 %{instance_name} 的账号的密码。

\n" +"

如果那是你,访问如下链接以继续:重置密码

\n" +"

如果是别人,不必担心:你的数据很安全,密码也没变。

\n" + +#: lib/pleroma/emails/user_email.ex:98 +#, elixir-format +msgctxt "password reset email subject" +msgid "Password reset" +msgstr "密码重置" + +#: lib/pleroma/emails/user_email.ex:215 +#, elixir-format +msgctxt "successful registration email body" +msgid "

Hello @%{nickname},

\n

Your account at %{instance_name} has been registered successfully.

\n

No further action is required to activate your account.

\n" +msgstr "" +"

早 @%{nickname},

\n" +"

你在 %{instance_name} 上的账号已经成功注册了。

\n" +"

你的账号已经激活,无需再做任何操作。

\n" + +#: lib/pleroma/emails/user_email.ex:231 +#, elixir-format +msgctxt "successful registration email subject" +msgid "Account registered on %{instance_name}" +msgstr "在 %{instance_name} 上注册了账号" + +#: lib/pleroma/emails/user_email.ex:119 +#, elixir-format +msgctxt "user invitation email body" +msgid "

You are invited to %{instance_name}

\n

%{inviter_name} invites you to join %{instance_name}, an instance of Pleroma federated social networking platform.

\n

Click the following link to register: accept invitation.

\n" +msgstr "" +"

有人邀请你去 %{instance_name}

\n" +"

%{inviter_name} 邀请你去 %{instance_name}。这是社交网络平台 Pleroma 的一个实例。

\n" +"

点如下链接以注册:接受邀请

\n" + +#: lib/pleroma/emails/user_email.ex:136 +#, elixir-format +msgctxt "user invitation email subject" +msgid "Invitation to %{instance_name}" +msgstr "去 %{instance_name} 的邀请" + +#: lib/pleroma/emails/user_email.ex:53 +#, elixir-format +msgctxt "welcome email html body" +msgid "Welcome to %{instance_name}!" +msgstr "欢迎来到 %{instance_name}!" + +#: lib/pleroma/emails/user_email.ex:41 +#, elixir-format +msgctxt "welcome email subject" +msgid "Welcome to %{instance_name}!" +msgstr "欢迎来到 %{instance_name}!" + +#: lib/pleroma/emails/user_email.ex:65 +#, elixir-format +msgctxt "welcome email text body" +msgid "Welcome to %{instance_name}!" +msgstr "欢迎来到 %{instance_name}!" + +#: lib/pleroma/emails/user_email.ex:368 +#, elixir-format +msgctxt "account archive email body - admin requested" +msgid "

Admin @%{admin_nickname} requested a full backup of your Pleroma account. It's ready for download:

\n

%{download_url}

\n" +msgstr "" +"

管理员 @%{admin_nickname} 之前要了一份你的 Pleroma 账号的完整备份。现在可以下载了:

\n" +"

%{download_url}

\n" diff --git a/priv/repo/migrations/20170320193800_create_user.exs b/priv/repo/migrations/20170320193800_create_user.exs index e5f6ac52e..6592ada28 100644 --- a/priv/repo/migrations/20170320193800_create_user.exs +++ b/priv/repo/migrations/20170320193800_create_user.exs @@ -1,3 +1,7 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2022 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + defmodule Pleroma.Repo.Migrations.CreatePleroma.User do use Ecto.Migration diff --git a/priv/repo/migrations/20170321074828_create_activity.exs b/priv/repo/migrations/20170321074828_create_activity.exs index ab00a47c3..2f62a6e0c 100644 --- a/priv/repo/migrations/20170321074828_create_activity.exs +++ b/priv/repo/migrations/20170321074828_create_activity.exs @@ -1,3 +1,7 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2022 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + defmodule Pleroma.Repo.Migrations.CreatePleroma.Activity do use Ecto.Migration diff --git a/priv/repo/migrations/20170321074832_create_object.exs b/priv/repo/migrations/20170321074832_create_object.exs index c5a59ecba..68678e601 100644 --- a/priv/repo/migrations/20170321074832_create_object.exs +++ b/priv/repo/migrations/20170321074832_create_object.exs @@ -1,3 +1,7 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2022 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + defmodule Pleroma.Repo.Migrations.CreatePleroma.Object do use Ecto.Migration diff --git a/priv/repo/migrations/20170321133335_add_following_list_to_users.exs b/priv/repo/migrations/20170321133335_add_following_list_to_users.exs index 8dd83c3f8..fba4fb2f1 100644 --- a/priv/repo/migrations/20170321133335_add_following_list_to_users.exs +++ b/priv/repo/migrations/20170321133335_add_following_list_to_users.exs @@ -1,3 +1,7 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2022 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + defmodule Pleroma.Repo.Migrations.AddFollowingListToUsers do use Ecto.Migration diff --git a/priv/repo/migrations/20170321143152_add_ap_id_to_users.exs b/priv/repo/migrations/20170321143152_add_ap_id_to_users.exs index 38ceb87fd..1afb50d59 100644 --- a/priv/repo/migrations/20170321143152_add_ap_id_to_users.exs +++ b/priv/repo/migrations/20170321143152_add_ap_id_to_users.exs @@ -1,3 +1,7 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2022 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + defmodule Pleroma.Repo.Migrations.AddApIdToUsers do use Ecto.Migration diff --git a/priv/repo/migrations/20170330153447_add_index_to_objects.exs b/priv/repo/migrations/20170330153447_add_index_to_objects.exs index 93198b462..b568f3e23 100644 --- a/priv/repo/migrations/20170330153447_add_index_to_objects.exs +++ b/priv/repo/migrations/20170330153447_add_index_to_objects.exs @@ -1,3 +1,7 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2022 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + defmodule Pleroma.Repo.Migrations.AddIndexToObjects do use Ecto.Migration diff --git a/priv/repo/migrations/20170415141210_add_unique_index_to_email_and_nickname.exs b/priv/repo/migrations/20170415141210_add_unique_index_to_email_and_nickname.exs index b18c67dcb..9a606af3a 100644 --- a/priv/repo/migrations/20170415141210_add_unique_index_to_email_and_nickname.exs +++ b/priv/repo/migrations/20170415141210_add_unique_index_to_email_and_nickname.exs @@ -1,3 +1,7 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2022 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + defmodule Pleroma.Repo.Migrations.AddUniqueIndexToEmailAndNickname do use Ecto.Migration diff --git a/priv/repo/migrations/20170416122418_add_avatar_object_to_users.exs b/priv/repo/migrations/20170416122418_add_avatar_object_to_users.exs index e88752c30..e99076f4b 100644 --- a/priv/repo/migrations/20170416122418_add_avatar_object_to_users.exs +++ b/priv/repo/migrations/20170416122418_add_avatar_object_to_users.exs @@ -1,3 +1,7 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2022 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + defmodule Pleroma.Repo.Migrations.AddAvatarObjectToUsers do use Ecto.Migration diff --git a/priv/repo/migrations/20170418200143_create_webssub_server_subscription.exs b/priv/repo/migrations/20170418200143_create_webssub_server_subscription.exs index 3d94e4ee7..042aaa8e1 100644 --- a/priv/repo/migrations/20170418200143_create_webssub_server_subscription.exs +++ b/priv/repo/migrations/20170418200143_create_webssub_server_subscription.exs @@ -1,3 +1,7 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2022 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + defmodule Pleroma.Repo.Migrations.CreateWebsubServerSubscription do use Ecto.Migration diff --git a/priv/repo/migrations/20170423154511_add_fields_to_users.exs b/priv/repo/migrations/20170423154511_add_fields_to_users.exs index a079c73bd..b553381b9 100644 --- a/priv/repo/migrations/20170423154511_add_fields_to_users.exs +++ b/priv/repo/migrations/20170423154511_add_fields_to_users.exs @@ -1,3 +1,7 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2022 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + defmodule Pleroma.Repo.Migrations.AddFieldsToUsers do use Ecto.Migration diff --git a/priv/repo/migrations/20170426154155_create_websub_client_subscription.exs b/priv/repo/migrations/20170426154155_create_websub_client_subscription.exs index d020614e1..13a293c85 100644 --- a/priv/repo/migrations/20170426154155_create_websub_client_subscription.exs +++ b/priv/repo/migrations/20170426154155_create_websub_client_subscription.exs @@ -1,3 +1,7 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2022 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + defmodule Pleroma.Repo.Migrations.CreateWebsubClientSubscription do use Ecto.Migration diff --git a/priv/repo/migrations/20170427054757_add_user_and_hub.exs b/priv/repo/migrations/20170427054757_add_user_and_hub.exs index f33a8572f..801437606 100644 --- a/priv/repo/migrations/20170427054757_add_user_and_hub.exs +++ b/priv/repo/migrations/20170427054757_add_user_and_hub.exs @@ -1,3 +1,7 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2022 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + defmodule Pleroma.Repo.Migrations.AddUserAndHub do use Ecto.Migration diff --git a/priv/repo/migrations/20170501124823_add_id_contraints_to_activities_and_objects.exs b/priv/repo/migrations/20170501124823_add_id_contraints_to_activities_and_objects.exs index cebaa7c4e..361efbd5d 100644 --- a/priv/repo/migrations/20170501124823_add_id_contraints_to_activities_and_objects.exs +++ b/priv/repo/migrations/20170501124823_add_id_contraints_to_activities_and_objects.exs @@ -1,3 +1,7 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2022 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + defmodule Pleroma.Repo.Migrations.AddIdContraintsToActivitiesAndObjects do use Ecto.Migration diff --git a/priv/repo/migrations/20170501133231_add_id_contraints_to_activities_and_objects_part_two.exs b/priv/repo/migrations/20170501133231_add_id_contraints_to_activities_and_objects_part_two.exs index ecc7c23cc..d83ea881e 100644 --- a/priv/repo/migrations/20170501133231_add_id_contraints_to_activities_and_objects_part_two.exs +++ b/priv/repo/migrations/20170501133231_add_id_contraints_to_activities_and_objects_part_two.exs @@ -1,3 +1,7 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2022 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + defmodule Pleroma.Repo.Migrations.AddIdContraintsToActivitiesAndObjectsPartTwo do use Ecto.Migration diff --git a/priv/repo/migrations/20170502083023_add_local_field_to_activities.exs b/priv/repo/migrations/20170502083023_add_local_field_to_activities.exs index 6b61bd464..97f51bc1f 100644 --- a/priv/repo/migrations/20170502083023_add_local_field_to_activities.exs +++ b/priv/repo/migrations/20170502083023_add_local_field_to_activities.exs @@ -1,3 +1,7 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2022 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + defmodule Pleroma.Repo.Migrations.AddLocalFieldToActivities do use Ecto.Migration diff --git a/priv/repo/migrations/20170506222027_add_unique_index_to_apid.exs b/priv/repo/migrations/20170506222027_add_unique_index_to_apid.exs index 80f50029a..21e1989b9 100644 --- a/priv/repo/migrations/20170506222027_add_unique_index_to_apid.exs +++ b/priv/repo/migrations/20170506222027_add_unique_index_to_apid.exs @@ -1,3 +1,7 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2022 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + defmodule Pleroma.Repo.Migrations.AddUniqueIndexToAPID do use Ecto.Migration diff --git a/priv/repo/migrations/20170522160642_case_insensivtivity.exs b/priv/repo/migrations/20170522160642_case_insensivtivity.exs index 9a67727e9..70f8dc63d 100644 --- a/priv/repo/migrations/20170522160642_case_insensivtivity.exs +++ b/priv/repo/migrations/20170522160642_case_insensivtivity.exs @@ -1,3 +1,7 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2022 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + defmodule Pleroma.Repo.Migrations.CaseInsensivtivity do use Ecto.Migration diff --git a/priv/repo/migrations/20170529093232_longer_bios.exs b/priv/repo/migrations/20170529093232_longer_bios.exs index e25e5e144..029bc4a8d 100644 --- a/priv/repo/migrations/20170529093232_longer_bios.exs +++ b/priv/repo/migrations/20170529093232_longer_bios.exs @@ -1,3 +1,7 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2022 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + defmodule Pleroma.Repo.Migrations.LongerBios do use Ecto.Migration diff --git a/priv/repo/migrations/20170620095947_remove_activities_index.exs b/priv/repo/migrations/20170620095947_remove_activities_index.exs index ea3d4a509..899b537f5 100644 --- a/priv/repo/migrations/20170620095947_remove_activities_index.exs +++ b/priv/repo/migrations/20170620095947_remove_activities_index.exs @@ -1,3 +1,7 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2022 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + defmodule Pleroma.Repo.Migrations.RemoveActivitiesIndex do use Ecto.Migration diff --git a/priv/repo/migrations/20170620133028_add_object_activity_index.exs b/priv/repo/migrations/20170620133028_add_object_activity_index.exs index 5c312b8f4..d9d66d29e 100644 --- a/priv/repo/migrations/20170620133028_add_object_activity_index.exs +++ b/priv/repo/migrations/20170620133028_add_object_activity_index.exs @@ -1,3 +1,7 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2022 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + defmodule Pleroma.Repo.Migrations.AddObjectActivityIndex do use Ecto.Migration diff --git a/priv/repo/migrations/20170620142420_add_object_activity_index_part_two.exs b/priv/repo/migrations/20170620142420_add_object_activity_index_part_two.exs index c015afbe1..c67a191e3 100644 --- a/priv/repo/migrations/20170620142420_add_object_activity_index_part_two.exs +++ b/priv/repo/migrations/20170620142420_add_object_activity_index_part_two.exs @@ -1,3 +1,7 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2022 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + defmodule Pleroma.Repo.Migrations.AddObjectActivityIndexPartTwo do use Ecto.Migration diff --git a/priv/repo/migrations/20170701142005_add_actor_index_to_activity.exs b/priv/repo/migrations/20170701142005_add_actor_index_to_activity.exs index 220c48abd..e50a1cf25 100644 --- a/priv/repo/migrations/20170701142005_add_actor_index_to_activity.exs +++ b/priv/repo/migrations/20170701142005_add_actor_index_to_activity.exs @@ -1,3 +1,7 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2022 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + defmodule Pleroma.Repo.Migrations.AddActorIndexToActivity do use Ecto.Migration diff --git a/priv/repo/migrations/20170719152213_add_follower_address_to_user.exs b/priv/repo/migrations/20170719152213_add_follower_address_to_user.exs index be5eca36c..92bb46cf7 100644 --- a/priv/repo/migrations/20170719152213_add_follower_address_to_user.exs +++ b/priv/repo/migrations/20170719152213_add_follower_address_to_user.exs @@ -1,3 +1,7 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2022 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + defmodule Pleroma.Repo.Migrations.AddFollowerAddressToUser do use Ecto.Migration diff --git a/priv/repo/migrations/20170906120646_add_mastodon_apps.exs b/priv/repo/migrations/20170906120646_add_mastodon_apps.exs index 0e01625ff..6782f0aa4 100644 --- a/priv/repo/migrations/20170906120646_add_mastodon_apps.exs +++ b/priv/repo/migrations/20170906120646_add_mastodon_apps.exs @@ -1,3 +1,7 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2022 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + defmodule Pleroma.Repo.Migrations.AddMastodonApps do use Ecto.Migration diff --git a/priv/repo/migrations/20170906143140_create_o_auth_authorizations.exs b/priv/repo/migrations/20170906143140_create_o_auth_authorizations.exs index 9af8315a8..cc0d106e2 100644 --- a/priv/repo/migrations/20170906143140_create_o_auth_authorizations.exs +++ b/priv/repo/migrations/20170906143140_create_o_auth_authorizations.exs @@ -1,3 +1,7 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2022 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + defmodule Pleroma.Repo.Migrations.CreateOAuthAuthorizations do use Ecto.Migration diff --git a/priv/repo/migrations/20170906152508_create_o_auth_token.exs b/priv/repo/migrations/20170906152508_create_o_auth_token.exs index bfad98b76..14ce55b5a 100644 --- a/priv/repo/migrations/20170906152508_create_o_auth_token.exs +++ b/priv/repo/migrations/20170906152508_create_o_auth_token.exs @@ -1,3 +1,7 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2022 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + defmodule Pleroma.Repo.Migrations.CreateOAuthToken do use Ecto.Migration diff --git a/priv/repo/migrations/20170911123607_create_notifications.exs b/priv/repo/migrations/20170911123607_create_notifications.exs index 36facc5a0..615b56081 100644 --- a/priv/repo/migrations/20170911123607_create_notifications.exs +++ b/priv/repo/migrations/20170911123607_create_notifications.exs @@ -1,3 +1,7 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2022 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + defmodule Pleroma.Repo.Migrations.CreateNotifications do use Ecto.Migration diff --git a/priv/repo/migrations/20170912114248_add_context_index.exs b/priv/repo/migrations/20170912114248_add_context_index.exs index 400a432ff..710b71100 100644 --- a/priv/repo/migrations/20170912114248_add_context_index.exs +++ b/priv/repo/migrations/20170912114248_add_context_index.exs @@ -1,3 +1,7 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2022 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + defmodule Pleroma.Repo.Migrations.AddContextIndex do use Ecto.Migration @disable_ddl_transaction true diff --git a/priv/repo/migrations/20170916090107_add_fts_index_to_activities.exs b/priv/repo/migrations/20170916090107_add_fts_index_to_activities.exs index 717e25412..df62d8f61 100644 --- a/priv/repo/migrations/20170916090107_add_fts_index_to_activities.exs +++ b/priv/repo/migrations/20170916090107_add_fts_index_to_activities.exs @@ -1,3 +1,7 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2022 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + defmodule Pleroma.Repo.Migrations.AddFTSIndexToActivities do use Ecto.Migration @disable_ddl_transaction true diff --git a/priv/repo/migrations/20170917120416_add_tag_index.exs b/priv/repo/migrations/20170917120416_add_tag_index.exs index c69e0ef8f..2739f0a3c 100644 --- a/priv/repo/migrations/20170917120416_add_tag_index.exs +++ b/priv/repo/migrations/20170917120416_add_tag_index.exs @@ -1,3 +1,7 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2022 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + defmodule Pleroma.Repo.Migrations.AddTagIndex do use Ecto.Migration diff --git a/priv/repo/migrations/20171019141706_create_password_reset_tokens.exs b/priv/repo/migrations/20171019141706_create_password_reset_tokens.exs index 2be50d15e..142af0ff0 100644 --- a/priv/repo/migrations/20171019141706_create_password_reset_tokens.exs +++ b/priv/repo/migrations/20171019141706_create_password_reset_tokens.exs @@ -1,3 +1,7 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2022 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + defmodule Pleroma.Repo.Migrations.CreatePasswordResetTokens do use Ecto.Migration diff --git a/priv/repo/migrations/20171023155035_add_second_object_index_to_activty.exs b/priv/repo/migrations/20171023155035_add_second_object_index_to_activty.exs index 261940a96..0bbdd8ccf 100644 --- a/priv/repo/migrations/20171023155035_add_second_object_index_to_activty.exs +++ b/priv/repo/migrations/20171023155035_add_second_object_index_to_activty.exs @@ -1,3 +1,7 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2022 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + defmodule Pleroma.Repo.Migrations.AddSecondObjectIndexToActivty do use Ecto.Migration diff --git a/priv/repo/migrations/20171024090137_drop_object_index.exs b/priv/repo/migrations/20171024090137_drop_object_index.exs index d417577ae..0aa75b4af 100644 --- a/priv/repo/migrations/20171024090137_drop_object_index.exs +++ b/priv/repo/migrations/20171024090137_drop_object_index.exs @@ -1,3 +1,7 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2022 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + defmodule Pleroma.Repo.Migrations.DropObjectIndex do use Ecto.Migration diff --git a/priv/repo/migrations/20171024121413_add_object_actor_index.exs b/priv/repo/migrations/20171024121413_add_object_actor_index.exs index 78084536c..27b47bbb7 100644 --- a/priv/repo/migrations/20171024121413_add_object_actor_index.exs +++ b/priv/repo/migrations/20171024121413_add_object_actor_index.exs @@ -1,3 +1,7 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2022 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + defmodule Pleroma.Repo.Migrations.AddObjectActorIndex do use Ecto.Migration diff --git a/priv/repo/migrations/20171109091239_add_actor_to_activity.exs b/priv/repo/migrations/20171109091239_add_actor_to_activity.exs index 91348f5c3..999f87e3b 100644 --- a/priv/repo/migrations/20171109091239_add_actor_to_activity.exs +++ b/priv/repo/migrations/20171109091239_add_actor_to_activity.exs @@ -1,3 +1,7 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2022 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + defmodule Pleroma.Repo.Migrations.AddActorToActivity do use Ecto.Migration diff --git a/priv/repo/migrations/20171109114020_fill_actor_field.exs b/priv/repo/migrations/20171109114020_fill_actor_field.exs index fb7eca692..3e2b4c21e 100644 --- a/priv/repo/migrations/20171109114020_fill_actor_field.exs +++ b/priv/repo/migrations/20171109114020_fill_actor_field.exs @@ -1,3 +1,7 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2022 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + defmodule Pleroma.Repo.Migrations.FillActorField do use Ecto.Migration diff --git a/priv/repo/migrations/20171109141309_add_sort_index_to_activities.exs b/priv/repo/migrations/20171109141309_add_sort_index_to_activities.exs index 37fb2ce32..e7f0ebae2 100644 --- a/priv/repo/migrations/20171109141309_add_sort_index_to_activities.exs +++ b/priv/repo/migrations/20171109141309_add_sort_index_to_activities.exs @@ -1,3 +1,7 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2022 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + defmodule Pleroma.Repo.Migrations.AddSortIndexToActivities do use Ecto.Migration @disable_ddl_transaction true diff --git a/priv/repo/migrations/20171130135819_add_local_index_to_user.exs b/priv/repo/migrations/20171130135819_add_local_index_to_user.exs index 76bf9584e..32d159299 100644 --- a/priv/repo/migrations/20171130135819_add_local_index_to_user.exs +++ b/priv/repo/migrations/20171130135819_add_local_index_to_user.exs @@ -1,3 +1,7 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2022 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + defmodule Pleroma.Repo.Migrations.AddLocalIndexToUser do use Ecto.Migration diff --git a/priv/repo/migrations/20171212163643_add_recipients_to_activities.exs b/priv/repo/migrations/20171212163643_add_recipients_to_activities.exs index 6344fbeee..81556fbb7 100644 --- a/priv/repo/migrations/20171212163643_add_recipients_to_activities.exs +++ b/priv/repo/migrations/20171212163643_add_recipients_to_activities.exs @@ -1,3 +1,7 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2022 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + defmodule Pleroma.Repo.Migrations.AddRecipientsToActivities do use Ecto.Migration diff --git a/priv/repo/migrations/20171212164525_fill_recipients_in_activities.exs b/priv/repo/migrations/20171212164525_fill_recipients_in_activities.exs index 6dfa93716..db5cc2d30 100644 --- a/priv/repo/migrations/20171212164525_fill_recipients_in_activities.exs +++ b/priv/repo/migrations/20171212164525_fill_recipients_in_activities.exs @@ -1,3 +1,7 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2022 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + defmodule Pleroma.Repo.Migrations.FillRecipientsInActivities do use Ecto.Migration alias Pleroma.{Repo, Activity} @@ -14,9 +18,7 @@ def up do max = min + 10_000 execute(""" - update activities set recipients = array(select jsonb_array_elements_text(data->'to')) where id > #{ - min - } and id <= #{max}; + update activities set recipients = array(select jsonb_array_elements_text(data->'to')) where id > #{min} and id <= #{max}; """) |> IO.inspect() end) diff --git a/priv/repo/migrations/20180221210540_make_following_postgres_array.exs b/priv/repo/migrations/20180221210540_make_following_postgres_array.exs index 34e94fdc8..7e8032c4d 100644 --- a/priv/repo/migrations/20180221210540_make_following_postgres_array.exs +++ b/priv/repo/migrations/20180221210540_make_following_postgres_array.exs @@ -1,3 +1,7 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2022 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + defmodule Pleroma.Repo.Migrations.MakeFollowingPostgresArray do use Ecto.Migration diff --git a/priv/repo/migrations/20180325172351_add_follower_address_index_to_users.exs b/priv/repo/migrations/20180325172351_add_follower_address_index_to_users.exs index 18b54411c..2aeb778ae 100644 --- a/priv/repo/migrations/20180325172351_add_follower_address_index_to_users.exs +++ b/priv/repo/migrations/20180325172351_add_follower_address_index_to_users.exs @@ -1,3 +1,7 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2022 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + defmodule Pleroma.Repo.Migrations.AddFollowerAddressIndexToUsers do use Ecto.Migration diff --git a/priv/repo/migrations/20180327174350_drop_local_index_on_activities.exs b/priv/repo/migrations/20180327174350_drop_local_index_on_activities.exs index 1574e0e00..010792cc8 100644 --- a/priv/repo/migrations/20180327174350_drop_local_index_on_activities.exs +++ b/priv/repo/migrations/20180327174350_drop_local_index_on_activities.exs @@ -1,3 +1,7 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2022 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + defmodule Pleroma.Repo.Migrations.DropLocalIndexOnActivities do use Ecto.Migration diff --git a/priv/repo/migrations/20180327175831_actually_drop_local_index.exs b/priv/repo/migrations/20180327175831_actually_drop_local_index.exs index 3d52c7c80..eec5c741b 100644 --- a/priv/repo/migrations/20180327175831_actually_drop_local_index.exs +++ b/priv/repo/migrations/20180327175831_actually_drop_local_index.exs @@ -1,3 +1,7 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2022 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + defmodule Pleroma.Repo.Migrations.ActuallyDropLocalIndex do use Ecto.Migration diff --git a/priv/repo/migrations/20180429094642_create_lists.exs b/priv/repo/migrations/20180429094642_create_lists.exs index e1eb7e426..eb5101829 100644 --- a/priv/repo/migrations/20180429094642_create_lists.exs +++ b/priv/repo/migrations/20180429094642_create_lists.exs @@ -1,3 +1,7 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2022 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + defmodule Pleroma.Repo.Migrations.CreateLists do use Ecto.Migration diff --git a/priv/repo/migrations/20180513104714_modify_activity_index.exs b/priv/repo/migrations/20180513104714_modify_activity_index.exs index ec0efa238..9bae44a36 100644 --- a/priv/repo/migrations/20180513104714_modify_activity_index.exs +++ b/priv/repo/migrations/20180513104714_modify_activity_index.exs @@ -1,3 +1,7 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2022 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + defmodule Pleroma.Repo.Migrations.ModifyActivityIndex do use Ecto.Migration @disable_ddl_transaction true diff --git a/priv/repo/migrations/20180516144508_add_trigram_extension.exs b/priv/repo/migrations/20180516144508_add_trigram_extension.exs index ff0710f84..b14104cc4 100644 --- a/priv/repo/migrations/20180516144508_add_trigram_extension.exs +++ b/priv/repo/migrations/20180516144508_add_trigram_extension.exs @@ -1,3 +1,7 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2022 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + defmodule Pleroma.Repo.Migrations.AddTrigramExtension do use Ecto.Migration require Logger diff --git a/priv/repo/migrations/20180516154905_create_user_trigram_index.exs b/priv/repo/migrations/20180516154905_create_user_trigram_index.exs index 0713a7297..68878e1e2 100644 --- a/priv/repo/migrations/20180516154905_create_user_trigram_index.exs +++ b/priv/repo/migrations/20180516154905_create_user_trigram_index.exs @@ -1,3 +1,7 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2022 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + defmodule Pleroma.Repo.Migrations.CreateUserTrigramIndex do use Ecto.Migration diff --git a/priv/repo/migrations/20180530123448_add_list_follow_index.exs b/priv/repo/migrations/20180530123448_add_list_follow_index.exs index 57f8d478f..8b49501a5 100644 --- a/priv/repo/migrations/20180530123448_add_list_follow_index.exs +++ b/priv/repo/migrations/20180530123448_add_list_follow_index.exs @@ -1,3 +1,7 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2022 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + defmodule Pleroma.Repo.Migrations.AddListFollowIndex do use Ecto.Migration diff --git a/priv/repo/migrations/20180606173637_create_apid_host_extraction_index.exs b/priv/repo/migrations/20180606173637_create_apid_host_extraction_index.exs index 07b3f2875..6bc935536 100644 --- a/priv/repo/migrations/20180606173637_create_apid_host_extraction_index.exs +++ b/priv/repo/migrations/20180606173637_create_apid_host_extraction_index.exs @@ -1,3 +1,7 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2022 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + defmodule Pleroma.Repo.Migrations.CreateApidHostExtractionIndex do use Ecto.Migration @disable_ddl_transaction true diff --git a/priv/repo/migrations/20180612110515_create_user_invite_tokens.exs b/priv/repo/migrations/20180612110515_create_user_invite_tokens.exs index a75ff2a51..1291e27f3 100644 --- a/priv/repo/migrations/20180612110515_create_user_invite_tokens.exs +++ b/priv/repo/migrations/20180612110515_create_user_invite_tokens.exs @@ -1,3 +1,7 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2022 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + defmodule Pleroma.Repo.Migrations.CreateUserInviteTokens do use Ecto.Migration diff --git a/priv/repo/migrations/20180617221540_create_activities_in_reply_to_index.exs b/priv/repo/migrations/20180617221540_create_activities_in_reply_to_index.exs index c8a0e60a0..64908a015 100644 --- a/priv/repo/migrations/20180617221540_create_activities_in_reply_to_index.exs +++ b/priv/repo/migrations/20180617221540_create_activities_in_reply_to_index.exs @@ -1,3 +1,7 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2022 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + defmodule Pleroma.Repo.Migrations.CreateActivitiesInReplyToIndex do use Ecto.Migration @disable_ddl_transaction true diff --git a/priv/repo/migrations/20180813003722_create_filters.exs b/priv/repo/migrations/20180813003722_create_filters.exs index 7803558df..0867b7e48 100644 --- a/priv/repo/migrations/20180813003722_create_filters.exs +++ b/priv/repo/migrations/20180813003722_create_filters.exs @@ -1,3 +1,7 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2022 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + defmodule Pleroma.Repo.Migrations.CreateFilters do use Ecto.Migration diff --git a/priv/repo/migrations/20180829082446_add_recipients_to_and_cc_fields_to_activities.exs b/priv/repo/migrations/20180829082446_add_recipients_to_and_cc_fields_to_activities.exs index 481986039..a57168557 100644 --- a/priv/repo/migrations/20180829082446_add_recipients_to_and_cc_fields_to_activities.exs +++ b/priv/repo/migrations/20180829082446_add_recipients_to_and_cc_fields_to_activities.exs @@ -1,3 +1,7 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2022 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + defmodule Pleroma.Repo.Migrations.AddRecipientsToAndCcFieldsToActivities do use Ecto.Migration diff --git a/priv/repo/migrations/20180829182612_activities_add_to_cc_indices.exs b/priv/repo/migrations/20180829182612_activities_add_to_cc_indices.exs index 1f9f97861..7900e26e5 100644 --- a/priv/repo/migrations/20180829182612_activities_add_to_cc_indices.exs +++ b/priv/repo/migrations/20180829182612_activities_add_to_cc_indices.exs @@ -1,3 +1,7 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2022 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + defmodule Pleroma.Repo.Migrations.ActivitiesAddToCcIndices do use Ecto.Migration diff --git a/priv/repo/migrations/20180829183529_remove_recipients_to_and_cc_fields_from_activities.exs b/priv/repo/migrations/20180829183529_remove_recipients_to_and_cc_fields_from_activities.exs index 65576b8d5..6115f08c5 100644 --- a/priv/repo/migrations/20180829183529_remove_recipients_to_and_cc_fields_from_activities.exs +++ b/priv/repo/migrations/20180829183529_remove_recipients_to_and_cc_fields_from_activities.exs @@ -1,3 +1,7 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2022 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + defmodule Pleroma.Repo.Migrations.RemoveRecipientsToAndCcFieldsFromActivities do use Ecto.Migration diff --git a/priv/repo/migrations/20180903114437_users_add_is_moderator_index.exs b/priv/repo/migrations/20180903114437_users_add_is_moderator_index.exs index cbe79de05..2f6ecf59a 100644 --- a/priv/repo/migrations/20180903114437_users_add_is_moderator_index.exs +++ b/priv/repo/migrations/20180903114437_users_add_is_moderator_index.exs @@ -1,3 +1,7 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2022 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + defmodule Pleroma.Repo.Migrations.UsersAddIsModeratorIndex do use Ecto.Migration diff --git a/priv/repo/migrations/20180918182427_create_push_subscriptions.exs b/priv/repo/migrations/20180918182427_create_push_subscriptions.exs index c1b55d018..1e31bbe80 100644 --- a/priv/repo/migrations/20180918182427_create_push_subscriptions.exs +++ b/priv/repo/migrations/20180918182427_create_push_subscriptions.exs @@ -1,3 +1,7 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2022 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + defmodule Pleroma.Repo.Migrations.CreatePushSubscriptions do use Ecto.Migration diff --git a/priv/repo/migrations/20180919060348_users_add_last_refreshed_at.exs b/priv/repo/migrations/20180919060348_users_add_last_refreshed_at.exs index 16605cf7b..64d43a58c 100644 --- a/priv/repo/migrations/20180919060348_users_add_last_refreshed_at.exs +++ b/priv/repo/migrations/20180919060348_users_add_last_refreshed_at.exs @@ -1,3 +1,7 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2022 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + defmodule Pleroma.Repo.Migrations.UsersAddLastRefreshedAt do use Ecto.Migration diff --git a/priv/repo/migrations/20181201104428_add_uuid_extension.exs b/priv/repo/migrations/20181201104428_add_uuid_extension.exs index 99fcb957c..553565bc7 100644 --- a/priv/repo/migrations/20181201104428_add_uuid_extension.exs +++ b/priv/repo/migrations/20181201104428_add_uuid_extension.exs @@ -1,3 +1,7 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2022 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + defmodule Pleroma.Repo.Migrations.AddUUIDExtension do use Ecto.Migration diff --git a/priv/repo/migrations/20181201105617_add_uui_ds_to_user_info.exs b/priv/repo/migrations/20181201105617_add_uui_ds_to_user_info.exs index 964383668..83dac7992 100644 --- a/priv/repo/migrations/20181201105617_add_uui_ds_to_user_info.exs +++ b/priv/repo/migrations/20181201105617_add_uui_ds_to_user_info.exs @@ -1,3 +1,7 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2022 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + defmodule Pleroma.Repo.Migrations.AddUUIDsToUserInfo do use Ecto.Migration diff --git a/priv/repo/migrations/20181206125616_add_tags_to_users.exs b/priv/repo/migrations/20181206125616_add_tags_to_users.exs index a46c0fc35..056cae0ae 100644 --- a/priv/repo/migrations/20181206125616_add_tags_to_users.exs +++ b/priv/repo/migrations/20181206125616_add_tags_to_users.exs @@ -1,3 +1,7 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2022 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + defmodule Pleroma.Repo.Migrations.AddTagsToUsers do use Ecto.Migration diff --git a/priv/repo/migrations/20181214121049_add_bookmarks_to_users.exs b/priv/repo/migrations/20181214121049_add_bookmarks_to_users.exs index 6228f1bad..75e9a532c 100644 --- a/priv/repo/migrations/20181214121049_add_bookmarks_to_users.exs +++ b/priv/repo/migrations/20181214121049_add_bookmarks_to_users.exs @@ -1,3 +1,7 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2022 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + defmodule Pleroma.Repo.Migrations.AddBookmarksToUsers do use Ecto.Migration diff --git a/priv/repo/migrations/20181218172826_users_and_activities_flake_id.exs b/priv/repo/migrations/20181218172826_users_and_activities_flake_id.exs index c58d829af..ef2b7257b 100644 --- a/priv/repo/migrations/20181218172826_users_and_activities_flake_id.exs +++ b/priv/repo/migrations/20181218172826_users_and_activities_flake_id.exs @@ -1,3 +1,7 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2022 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + defmodule Pleroma.Repo.Migrations.UsersAndActivitiesFlakeId do use Ecto.Migration alias Pleroma.Clippy diff --git a/priv/repo/migrations/20190109152453_add_visibility_function.exs b/priv/repo/migrations/20190109152453_add_visibility_function.exs index 43d1074aa..8339de5fd 100644 --- a/priv/repo/migrations/20190109152453_add_visibility_function.exs +++ b/priv/repo/migrations/20190109152453_add_visibility_function.exs @@ -1,3 +1,7 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2022 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + defmodule Pleroma.Repo.Migrations.AddVisibilityFunction do use Ecto.Migration @disable_ddl_transaction true diff --git a/priv/repo/migrations/20190115085500_create_user_fts_index.exs b/priv/repo/migrations/20190115085500_create_user_fts_index.exs index 0c0c512d3..02b3fb53f 100644 --- a/priv/repo/migrations/20190115085500_create_user_fts_index.exs +++ b/priv/repo/migrations/20190115085500_create_user_fts_index.exs @@ -1,3 +1,7 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2022 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + defmodule Pleroma.Repo.Migrations.CreateUserFtsIndex do use Ecto.Migration diff --git a/priv/repo/migrations/20190118074940_fix_user_trigram_index.exs b/priv/repo/migrations/20190118074940_fix_user_trigram_index.exs index b0d272802..b0f5238a0 100644 --- a/priv/repo/migrations/20190118074940_fix_user_trigram_index.exs +++ b/priv/repo/migrations/20190118074940_fix_user_trigram_index.exs @@ -1,3 +1,7 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2022 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + defmodule Pleroma.Repo.Migrations.FixUserTrigramIndex do use Ecto.Migration diff --git a/priv/repo/migrations/20190122153157_update_activity_visibility.exs b/priv/repo/migrations/20190122153157_update_activity_visibility.exs index 9e29571ee..2bddbe9bd 100644 --- a/priv/repo/migrations/20190122153157_update_activity_visibility.exs +++ b/priv/repo/migrations/20190122153157_update_activity_visibility.exs @@ -1,3 +1,7 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2022 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + defmodule Pleroma.Repo.Migrations.UpdateActivityVisibility do use Ecto.Migration @disable_ddl_transaction true diff --git a/priv/repo/migrations/20190123092341_users_add_is_admin_index.exs b/priv/repo/migrations/20190123092341_users_add_is_admin_index.exs index f42d46427..a6449c61a 100644 --- a/priv/repo/migrations/20190123092341_users_add_is_admin_index.exs +++ b/priv/repo/migrations/20190123092341_users_add_is_admin_index.exs @@ -1,3 +1,7 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2022 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + defmodule Pleroma.Repo.Migrations.UsersAddIsAdminIndex do use Ecto.Migration diff --git a/priv/repo/migrations/20190123125546_create_instances.exs b/priv/repo/migrations/20190123125546_create_instances.exs index 9438736ba..e3dca393c 100644 --- a/priv/repo/migrations/20190123125546_create_instances.exs +++ b/priv/repo/migrations/20190123125546_create_instances.exs @@ -1,3 +1,7 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2022 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + defmodule Pleroma.Repo.Migrations.CreateInstances do use Ecto.Migration diff --git a/priv/repo/migrations/20190123125839_fix_info_ids.exs b/priv/repo/migrations/20190123125839_fix_info_ids.exs index 5b263b3b3..f943e181e 100644 --- a/priv/repo/migrations/20190123125839_fix_info_ids.exs +++ b/priv/repo/migrations/20190123125839_fix_info_ids.exs @@ -1,3 +1,7 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2022 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + defmodule Pleroma.Repo.Migrations.FixInfoIds do use Ecto.Migration diff --git a/priv/repo/migrations/20190124131141_update_activity_visibility_again.exs b/priv/repo/migrations/20190124131141_update_activity_visibility_again.exs index a42e4cad9..8567c8363 100644 --- a/priv/repo/migrations/20190124131141_update_activity_visibility_again.exs +++ b/priv/repo/migrations/20190124131141_update_activity_visibility_again.exs @@ -1,3 +1,7 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2022 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + defmodule Pleroma.Repo.Migrations.UpdateActivityVisibilityAgain do use Ecto.Migration @disable_ddl_transaction true diff --git a/priv/repo/migrations/20190126160540_change_push_subscriptions_varchar.exs b/priv/repo/migrations/20190126160540_change_push_subscriptions_varchar.exs index 8e1c0e630..adb345b8b 100644 --- a/priv/repo/migrations/20190126160540_change_push_subscriptions_varchar.exs +++ b/priv/repo/migrations/20190126160540_change_push_subscriptions_varchar.exs @@ -1,3 +1,7 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2022 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + defmodule Pleroma.Repo.Migrations.ChangePushSubscriptionsVarchar do use Ecto.Migration diff --git a/priv/repo/migrations/20190127151220_add_activities_likes_index.exs b/priv/repo/migrations/20190127151220_add_activities_likes_index.exs index 115b12491..d21ab95b8 100644 --- a/priv/repo/migrations/20190127151220_add_activities_likes_index.exs +++ b/priv/repo/migrations/20190127151220_add_activities_likes_index.exs @@ -1,3 +1,7 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2022 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + defmodule Pleroma.Repo.Migrations.AddActivitiesLikesIndex do use Ecto.Migration @disable_ddl_transaction true diff --git a/priv/repo/migrations/20190203185340_split_hide_network.exs b/priv/repo/migrations/20190203185340_split_hide_network.exs index fb677f68a..fbba31c83 100644 --- a/priv/repo/migrations/20190203185340_split_hide_network.exs +++ b/priv/repo/migrations/20190203185340_split_hide_network.exs @@ -1,3 +1,7 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2022 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + defmodule Pleroma.Repo.Migrations.SplitHideNetwork do use Ecto.Migration diff --git a/priv/repo/migrations/20190204200237_add_correct_dm_index.exs b/priv/repo/migrations/20190204200237_add_correct_dm_index.exs index 1facb37b8..a9beb97e0 100644 --- a/priv/repo/migrations/20190204200237_add_correct_dm_index.exs +++ b/priv/repo/migrations/20190204200237_add_correct_dm_index.exs @@ -1,3 +1,7 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2022 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + defmodule Pleroma.Repo.Migrations.AddCorrectDMIndex do use Ecto.Migration @disable_ddl_transaction true diff --git a/priv/repo/migrations/20190205114625_create_thread_mutes.exs b/priv/repo/migrations/20190205114625_create_thread_mutes.exs index df9eb7677..8d18f25d0 100644 --- a/priv/repo/migrations/20190205114625_create_thread_mutes.exs +++ b/priv/repo/migrations/20190205114625_create_thread_mutes.exs @@ -1,3 +1,7 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2022 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + defmodule Pleroma.Repo.Migrations.CreateThreadMutes do use Ecto.Migration diff --git a/priv/repo/migrations/20190208131753_add_scopes_to_o_auth_entities.exs b/priv/repo/migrations/20190208131753_add_scopes_to_o_auth_entities.exs index ad93bfce2..c52a5fdd2 100644 --- a/priv/repo/migrations/20190208131753_add_scopes_to_o_auth_entities.exs +++ b/priv/repo/migrations/20190208131753_add_scopes_to_o_auth_entities.exs @@ -1,3 +1,7 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2022 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + defmodule Pleroma.Repo.Migrations.AddScopeSToOAuthEntities do use Ecto.Migration diff --git a/priv/repo/migrations/20190213185503_change_apps_scopes_to_varchar_array.exs b/priv/repo/migrations/20190213185503_change_apps_scopes_to_varchar_array.exs index eb6fcb012..15a0192e2 100644 --- a/priv/repo/migrations/20190213185503_change_apps_scopes_to_varchar_array.exs +++ b/priv/repo/migrations/20190213185503_change_apps_scopes_to_varchar_array.exs @@ -1,3 +1,7 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2022 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + defmodule Pleroma.Repo.Migrations.ChangeAppsScopesToVarcharArray do use Ecto.Migration diff --git a/priv/repo/migrations/20190213185600_data_migration_populate_o_auth_scopes.exs b/priv/repo/migrations/20190213185600_data_migration_populate_o_auth_scopes.exs index ef5b35125..2f225438f 100644 --- a/priv/repo/migrations/20190213185600_data_migration_populate_o_auth_scopes.exs +++ b/priv/repo/migrations/20190213185600_data_migration_populate_o_auth_scopes.exs @@ -1,3 +1,7 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2022 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + defmodule Pleroma.Repo.Migrations.DataMigrationPopulateOAuthScopes do use Ecto.Migration diff --git a/priv/repo/migrations/20190222104808_data_migration_normalize_scopes.exs b/priv/repo/migrations/20190222104808_data_migration_normalize_scopes.exs index 92ab9bd2c..9807cdbf9 100644 --- a/priv/repo/migrations/20190222104808_data_migration_normalize_scopes.exs +++ b/priv/repo/migrations/20190222104808_data_migration_normalize_scopes.exs @@ -1,3 +1,7 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2022 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + defmodule Pleroma.Repo.Migrations.DataMigrationNormalizeScopes do use Ecto.Migration diff --git a/priv/repo/migrations/20190301101154_add_default_tags_to_user.exs b/priv/repo/migrations/20190301101154_add_default_tags_to_user.exs index ea0947852..fb75ebfb7 100644 --- a/priv/repo/migrations/20190301101154_add_default_tags_to_user.exs +++ b/priv/repo/migrations/20190301101154_add_default_tags_to_user.exs @@ -1,3 +1,7 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2022 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + defmodule Pleroma.Repo.Migrations.AddDefaultTagsToUser do use Ecto.Migration diff --git a/priv/repo/migrations/20190303120636_update_user_note_counters.exs b/priv/repo/migrations/20190303120636_update_user_note_counters.exs index 95dbd012f..f0a950dd9 100644 --- a/priv/repo/migrations/20190303120636_update_user_note_counters.exs +++ b/priv/repo/migrations/20190303120636_update_user_note_counters.exs @@ -1,3 +1,7 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2022 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + defmodule Pleroma.Repo.Migrations.UpdateUserNoteCounters do use Ecto.Migration diff --git a/priv/repo/migrations/20190315101315_create_registrations.exs b/priv/repo/migrations/20190315101315_create_registrations.exs index d705a499e..930d339a8 100644 --- a/priv/repo/migrations/20190315101315_create_registrations.exs +++ b/priv/repo/migrations/20190315101315_create_registrations.exs @@ -1,3 +1,7 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2022 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + defmodule Pleroma.Repo.Migrations.CreateRegistrations do use Ecto.Migration diff --git a/priv/repo/migrations/20190325185009_create_notification_id_index.exs b/priv/repo/migrations/20190325185009_create_notification_id_index.exs index 7209c16a9..b558880a7 100644 --- a/priv/repo/migrations/20190325185009_create_notification_id_index.exs +++ b/priv/repo/migrations/20190325185009_create_notification_id_index.exs @@ -1,3 +1,7 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2022 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + defmodule Pleroma.Repo.Migrations.CreateNotificationIdIndex do use Ecto.Migration diff --git a/priv/repo/migrations/20190328053912_create_scheduled_activities.exs b/priv/repo/migrations/20190328053912_create_scheduled_activities.exs index 8a01bbdb1..6030d4bb9 100644 --- a/priv/repo/migrations/20190328053912_create_scheduled_activities.exs +++ b/priv/repo/migrations/20190328053912_create_scheduled_activities.exs @@ -1,3 +1,7 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2022 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + defmodule Pleroma.Repo.Migrations.CreateScheduledActivities do use Ecto.Migration diff --git a/priv/repo/migrations/20190403131720_add_oauth_token_indexes.exs b/priv/repo/migrations/20190403131720_add_oauth_token_indexes.exs index ab1bf2165..40f30a459 100644 --- a/priv/repo/migrations/20190403131720_add_oauth_token_indexes.exs +++ b/priv/repo/migrations/20190403131720_add_oauth_token_indexes.exs @@ -1,3 +1,7 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2022 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + defmodule Pleroma.Repo.Migrations.AddOauthTokenIndexes do use Ecto.Migration diff --git a/priv/repo/migrations/20190404050946_add_fields_to_user_invite_tokens.exs b/priv/repo/migrations/20190404050946_add_fields_to_user_invite_tokens.exs index 211a14135..1f4ad2d42 100644 --- a/priv/repo/migrations/20190404050946_add_fields_to_user_invite_tokens.exs +++ b/priv/repo/migrations/20190404050946_add_fields_to_user_invite_tokens.exs @@ -1,3 +1,7 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2022 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + defmodule Pleroma.Repo.Migrations.AddFieldsToUserInviteTokens do use Ecto.Migration diff --git a/priv/repo/migrations/20190405160700_add_index_on_subscribers.exs b/priv/repo/migrations/20190405160700_add_index_on_subscribers.exs index bbf47f72c..4a43f5a3a 100644 --- a/priv/repo/migrations/20190405160700_add_index_on_subscribers.exs +++ b/priv/repo/migrations/20190405160700_add_index_on_subscribers.exs @@ -1,3 +1,7 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2022 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + defmodule Pleroma.Repo.Migrations.AddIndexOnSubscribers do use Ecto.Migration diff --git a/priv/repo/migrations/20190408123347_create_conversations.exs b/priv/repo/migrations/20190408123347_create_conversations.exs index aab6cf802..81556cff7 100644 --- a/priv/repo/migrations/20190408123347_create_conversations.exs +++ b/priv/repo/migrations/20190408123347_create_conversations.exs @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Repo.Migrations.CreateConversations do diff --git a/priv/repo/migrations/20190410152859_add_participation_updated_at_index.exs b/priv/repo/migrations/20190410152859_add_participation_updated_at_index.exs index e22c6e57d..e6fae8203 100644 --- a/priv/repo/migrations/20190410152859_add_participation_updated_at_index.exs +++ b/priv/repo/migrations/20190410152859_add_participation_updated_at_index.exs @@ -1,3 +1,7 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2022 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + defmodule Pleroma.Repo.Migrations.AddParticipationUpdatedAtIndex do use Ecto.Migration diff --git a/priv/repo/migrations/20190411094120_add_index_on_user_info_deactivated.exs b/priv/repo/migrations/20190411094120_add_index_on_user_info_deactivated.exs index 374e2323d..09d6a4499 100644 --- a/priv/repo/migrations/20190411094120_add_index_on_user_info_deactivated.exs +++ b/priv/repo/migrations/20190411094120_add_index_on_user_info_deactivated.exs @@ -1,3 +1,7 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2022 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + defmodule Pleroma.Repo.Migrations.AddIndexOnUserInfoDeactivated do use Ecto.Migration diff --git a/priv/repo/migrations/20190412052952_add_user_info_fields.exs b/priv/repo/migrations/20190412052952_add_user_info_fields.exs index 646c91f32..3ec31dc15 100644 --- a/priv/repo/migrations/20190412052952_add_user_info_fields.exs +++ b/priv/repo/migrations/20190412052952_add_user_info_fields.exs @@ -1,3 +1,7 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2022 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + defmodule Pleroma.Repo.Migrations.AddEmailNotificationsToUserInfo do use Ecto.Migration diff --git a/priv/repo/migrations/20190413082658_create_bookmarks.exs b/priv/repo/migrations/20190413082658_create_bookmarks.exs index cfd025fc5..9f2b1eccf 100644 --- a/priv/repo/migrations/20190413082658_create_bookmarks.exs +++ b/priv/repo/migrations/20190413082658_create_bookmarks.exs @@ -1,3 +1,7 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2022 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + defmodule Pleroma.Repo.Migrations.CreateBookmarks do use Ecto.Migration diff --git a/priv/repo/migrations/20190413085040_add_signin_and_last_digest_dates_to_user.exs b/priv/repo/migrations/20190413085040_add_signin_and_last_digest_dates_to_user.exs index 4312b171f..b53504e07 100644 --- a/priv/repo/migrations/20190413085040_add_signin_and_last_digest_dates_to_user.exs +++ b/priv/repo/migrations/20190413085040_add_signin_and_last_digest_dates_to_user.exs @@ -1,3 +1,7 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2022 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + defmodule Pleroma.Repo.Migrations.AddSigninAndLastDigestDatesToUser do use Ecto.Migration diff --git a/priv/repo/migrations/20190414125034_migrate_old_bookmarks.exs b/priv/repo/migrations/20190414125034_migrate_old_bookmarks.exs index b6f0ac66b..4fb759199 100644 --- a/priv/repo/migrations/20190414125034_migrate_old_bookmarks.exs +++ b/priv/repo/migrations/20190414125034_migrate_old_bookmarks.exs @@ -1,3 +1,7 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2022 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + defmodule Pleroma.Repo.Migrations.MigrateOldBookmarks do use Ecto.Migration import Ecto.Query diff --git a/priv/repo/migrations/20190501125843_add_fts_index_to_objects.exs b/priv/repo/migrations/20190501125843_add_fts_index_to_objects.exs index 41630bace..e0284d01a 100644 --- a/priv/repo/migrations/20190501125843_add_fts_index_to_objects.exs +++ b/priv/repo/migrations/20190501125843_add_fts_index_to_objects.exs @@ -1,3 +1,7 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2022 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + defmodule Pleroma.Repo.Migrations.AddFTSIndexToObjects do use Ecto.Migration diff --git a/priv/repo/migrations/20190501133552_add_refresh_token_index_to_token.exs b/priv/repo/migrations/20190501133552_add_refresh_token_index_to_token.exs index 44a266985..7439af4b9 100644 --- a/priv/repo/migrations/20190501133552_add_refresh_token_index_to_token.exs +++ b/priv/repo/migrations/20190501133552_add_refresh_token_index_to_token.exs @@ -1,3 +1,7 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2022 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + defmodule Pleroma.Repo.Migrations.AddRefreshTokenIndexToToken do use Ecto.Migration diff --git a/priv/repo/migrations/20190506054542_add_multi_factor_authentication_settings_to_user.exs b/priv/repo/migrations/20190506054542_add_multi_factor_authentication_settings_to_user.exs index 8b653c61f..99df69ab6 100644 --- a/priv/repo/migrations/20190506054542_add_multi_factor_authentication_settings_to_user.exs +++ b/priv/repo/migrations/20190506054542_add_multi_factor_authentication_settings_to_user.exs @@ -1,3 +1,7 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2022 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + defmodule Pleroma.Repo.Migrations.AddMultiFactorAuthenticationSettingsToUser do use Ecto.Migration diff --git a/priv/repo/migrations/20190508193213_create_mfa_tokens.exs b/priv/repo/migrations/20190508193213_create_mfa_tokens.exs index da9f8fabe..e49874de9 100644 --- a/priv/repo/migrations/20190508193213_create_mfa_tokens.exs +++ b/priv/repo/migrations/20190508193213_create_mfa_tokens.exs @@ -1,3 +1,7 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2022 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + defmodule Pleroma.Repo.Migrations.CreateMfaTokens do use Ecto.Migration diff --git a/priv/repo/migrations/20190511191044_set_default_state_to_reports.exs b/priv/repo/migrations/20190511191044_set_default_state_to_reports.exs index ab1351d56..376b455e7 100644 --- a/priv/repo/migrations/20190511191044_set_default_state_to_reports.exs +++ b/priv/repo/migrations/20190511191044_set_default_state_to_reports.exs @@ -1,3 +1,7 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2022 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + defmodule Pleroma.Repo.Migrations.SetDefaultStateToReports do use Ecto.Migration diff --git a/priv/repo/migrations/20190513175809_change_hide_column_in_filter_table.exs b/priv/repo/migrations/20190513175809_change_hide_column_in_filter_table.exs index 8135ab178..43a4c0be2 100644 --- a/priv/repo/migrations/20190513175809_change_hide_column_in_filter_table.exs +++ b/priv/repo/migrations/20190513175809_change_hide_column_in_filter_table.exs @@ -1,3 +1,7 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2022 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + defmodule Pleroma.Repo.Migrations.ChangeHideColumnInFilterTable do use Ecto.Migration diff --git a/priv/repo/migrations/20190515222404_add_thread_visibility_function.exs b/priv/repo/migrations/20190515222404_add_thread_visibility_function.exs index 5184c0c48..2126d82b3 100644 --- a/priv/repo/migrations/20190515222404_add_thread_visibility_function.exs +++ b/priv/repo/migrations/20190515222404_add_thread_visibility_function.exs @@ -1,3 +1,7 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2022 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + defmodule Pleroma.Repo.Migrations.AddThreadVisibilityFunction do use Ecto.Migration @disable_ddl_transaction true diff --git a/priv/repo/migrations/20190516112144_add_ap_id_to_lists.exs b/priv/repo/migrations/20190516112144_add_ap_id_to_lists.exs index 3c32bc355..db973ea1c 100644 --- a/priv/repo/migrations/20190516112144_add_ap_id_to_lists.exs +++ b/priv/repo/migrations/20190516112144_add_ap_id_to_lists.exs @@ -1,3 +1,7 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2022 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + defmodule Pleroma.Repo.Migrations.AddApIdToLists do use Ecto.Migration diff --git a/priv/repo/migrations/20190518032627_create_config.exs b/priv/repo/migrations/20190518032627_create_config.exs index cb65f3939..b14a49c33 100644 --- a/priv/repo/migrations/20190518032627_create_config.exs +++ b/priv/repo/migrations/20190518032627_create_config.exs @@ -1,3 +1,7 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2022 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + defmodule Pleroma.Repo.Migrations.CreateConfig do use Ecto.Migration diff --git a/priv/repo/migrations/20190525071417_add_non_follows_and_non_followers_fields_to_notification_settings.exs b/priv/repo/migrations/20190525071417_add_non_follows_and_non_followers_fields_to_notification_settings.exs index 505f0acb2..1c949bc97 100644 --- a/priv/repo/migrations/20190525071417_add_non_follows_and_non_followers_fields_to_notification_settings.exs +++ b/priv/repo/migrations/20190525071417_add_non_follows_and_non_followers_fields_to_notification_settings.exs @@ -1,3 +1,7 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2022 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + defmodule Pleroma.Repo.Migrations.AddNonFollowsAndNonFollowersFieldsToNotificationSettings do use Ecto.Migration diff --git a/priv/repo/migrations/20190603115238_add_index_on_activities_local.exs b/priv/repo/migrations/20190603115238_add_index_on_activities_local.exs index 7e6643497..42ea93d1f 100644 --- a/priv/repo/migrations/20190603115238_add_index_on_activities_local.exs +++ b/priv/repo/migrations/20190603115238_add_index_on_activities_local.exs @@ -1,3 +1,7 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2022 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + defmodule Pleroma.Repo.Migrations.AddIndexOnActivitiesLocal do use Ecto.Migration diff --git a/priv/repo/migrations/20190603162018_add_object_in_reply_to_index.exs b/priv/repo/migrations/20190603162018_add_object_in_reply_to_index.exs index faed5e31b..e884112cf 100644 --- a/priv/repo/migrations/20190603162018_add_object_in_reply_to_index.exs +++ b/priv/repo/migrations/20190603162018_add_object_in_reply_to_index.exs @@ -1,3 +1,7 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2022 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + defmodule Pleroma.Repo.Migrations.AddObjectInReplyToIndex do use Ecto.Migration diff --git a/priv/repo/migrations/20190603173419_add_tag_index_to_objects.exs b/priv/repo/migrations/20190603173419_add_tag_index_to_objects.exs index 9ba95917c..00c71e95f 100644 --- a/priv/repo/migrations/20190603173419_add_tag_index_to_objects.exs +++ b/priv/repo/migrations/20190603173419_add_tag_index_to_objects.exs @@ -1,3 +1,7 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2022 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + defmodule Pleroma.Repo.Migrations.AddTagIndexToObjects do use Ecto.Migration diff --git a/priv/repo/migrations/20190622151019_add_group_key_to_config.exs b/priv/repo/migrations/20190622151019_add_group_key_to_config.exs index 867dafaf3..1a04266b4 100644 --- a/priv/repo/migrations/20190622151019_add_group_key_to_config.exs +++ b/priv/repo/migrations/20190622151019_add_group_key_to_config.exs @@ -1,3 +1,7 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2022 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + defmodule Pleroma.Repo.Migrations.AddGroupKeyToConfig do use Ecto.Migration diff --git a/priv/repo/migrations/20190710115833_add_following_address_to_user.exs b/priv/repo/migrations/20190710115833_add_following_address_to_user.exs index fe30472a1..048cbfbff 100644 --- a/priv/repo/migrations/20190710115833_add_following_address_to_user.exs +++ b/priv/repo/migrations/20190710115833_add_following_address_to_user.exs @@ -1,3 +1,7 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2022 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + defmodule Pleroma.Repo.Migrations.AddFollowingAddressToUser do use Ecto.Migration diff --git a/priv/repo/migrations/20190710125051_add_following_address_index_to_user.exs b/priv/repo/migrations/20190710125051_add_following_address_index_to_user.exs index 0cbfb71f4..8acfadc86 100644 --- a/priv/repo/migrations/20190710125051_add_following_address_index_to_user.exs +++ b/priv/repo/migrations/20190710125051_add_following_address_index_to_user.exs @@ -1,3 +1,7 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2022 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + defmodule Pleroma.Repo.Migrations.AddFollowingAddressIndexToUser do use Ecto.Migration diff --git a/priv/repo/migrations/20190710125158_add_following_address_from_source_data.exs b/priv/repo/migrations/20190710125158_add_following_address_from_source_data.exs index 44f9891b1..44a3d6d2d 100644 --- a/priv/repo/migrations/20190710125158_add_following_address_from_source_data.exs +++ b/priv/repo/migrations/20190710125158_add_following_address_from_source_data.exs @@ -1,3 +1,7 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2022 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + defmodule Pleroma.Repo.Migrations.AddFollowingAddressFromSourceData do alias Pleroma.User import Ecto.Query diff --git a/priv/repo/migrations/20190711042021_create_safe_jsonb_set.exs b/priv/repo/migrations/20190711042021_create_safe_jsonb_set.exs index bfac09f9e..c1edb7cfc 100644 --- a/priv/repo/migrations/20190711042021_create_safe_jsonb_set.exs +++ b/priv/repo/migrations/20190711042021_create_safe_jsonb_set.exs @@ -1,3 +1,7 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2022 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + defmodule Pleroma.Repo.Migrations.CreateSafeJsonbSet do use Ecto.Migration diff --git a/priv/repo/migrations/20190711042024_copy_muted_to_muted_notifications.exs b/priv/repo/migrations/20190711042024_copy_muted_to_muted_notifications.exs index bbd502044..257c2b7c6 100644 --- a/priv/repo/migrations/20190711042024_copy_muted_to_muted_notifications.exs +++ b/priv/repo/migrations/20190711042024_copy_muted_to_muted_notifications.exs @@ -1,3 +1,7 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2022 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + defmodule Pleroma.Repo.Migrations.CopyMutedToMutedNotifications do use Ecto.Migration diff --git a/priv/repo/migrations/20190716100804_add_expirations_table.exs b/priv/repo/migrations/20190716100804_add_expirations_table.exs index fbde8f9d6..f9acdc9c4 100644 --- a/priv/repo/migrations/20190716100804_add_expirations_table.exs +++ b/priv/repo/migrations/20190716100804_add_expirations_table.exs @@ -1,3 +1,7 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2022 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + defmodule Pleroma.Repo.Migrations.AddExpirationsTable do use Ecto.Migration diff --git a/priv/repo/migrations/20190730055101_add_oban_jobs_table.exs b/priv/repo/migrations/20190730055101_add_oban_jobs_table.exs index 5214d59cb..a1cc0cbdc 100644 --- a/priv/repo/migrations/20190730055101_add_oban_jobs_table.exs +++ b/priv/repo/migrations/20190730055101_add_oban_jobs_table.exs @@ -1,3 +1,7 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2022 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + defmodule Pleroma.Repo.Migrations.AddObanJobsTable do use Ecto.Migration diff --git a/priv/repo/migrations/20190801154554_create_conversation_participation_recipient_ships.exs b/priv/repo/migrations/20190801154554_create_conversation_participation_recipient_ships.exs index 59cbe25ad..75e4b181a 100644 --- a/priv/repo/migrations/20190801154554_create_conversation_participation_recipient_ships.exs +++ b/priv/repo/migrations/20190801154554_create_conversation_participation_recipient_ships.exs @@ -1,3 +1,7 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2022 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + defmodule Pleroma.Repo.Migrations.CreateConversationParticipationRecipientShips do use Ecto.Migration diff --git a/priv/repo/migrations/20190818124341_create_moderation_log.exs b/priv/repo/migrations/20190818124341_create_moderation_log.exs index cef6636f3..a812a42f4 100644 --- a/priv/repo/migrations/20190818124341_create_moderation_log.exs +++ b/priv/repo/migrations/20190818124341_create_moderation_log.exs @@ -1,3 +1,7 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2022 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + defmodule Pleroma.Repo.Migrations.CreateModerationLog do use Ecto.Migration diff --git a/priv/repo/migrations/20190823000549_add_likes_index_to_objects.exs b/priv/repo/migrations/20190823000549_add_likes_index_to_objects.exs index c410dcdc2..ccdcb8d81 100644 --- a/priv/repo/migrations/20190823000549_add_likes_index_to_objects.exs +++ b/priv/repo/migrations/20190823000549_add_likes_index_to_objects.exs @@ -1,3 +1,7 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2022 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + defmodule Pleroma.Repo.Migrations.AddLikesIndexToObjects do use Ecto.Migration diff --git a/priv/repo/migrations/20190912065617_create_deliveries.exs b/priv/repo/migrations/20190912065617_create_deliveries.exs index ac2832a77..5a43c3716 100644 --- a/priv/repo/migrations/20190912065617_create_deliveries.exs +++ b/priv/repo/migrations/20190912065617_create_deliveries.exs @@ -1,3 +1,7 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2022 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + defmodule Pleroma.Repo.Migrations.CreateDeliveries do use Ecto.Migration diff --git a/priv/repo/migrations/20190917100019_update_oban.exs b/priv/repo/migrations/20190917100019_update_oban.exs index f673675de..dc25bd95a 100644 --- a/priv/repo/migrations/20190917100019_update_oban.exs +++ b/priv/repo/migrations/20190917100019_update_oban.exs @@ -1,3 +1,7 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2022 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + defmodule Pleroma.Repo.Migrations.UpdateOban do use Ecto.Migration diff --git a/priv/repo/migrations/20190929201536_drop_subscription_if_exists.exs b/priv/repo/migrations/20190929201536_drop_subscription_if_exists.exs index 8bd2a98bb..9cd4710f7 100644 --- a/priv/repo/migrations/20190929201536_drop_subscription_if_exists.exs +++ b/priv/repo/migrations/20190929201536_drop_subscription_if_exists.exs @@ -1,3 +1,7 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2022 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + defmodule Pleroma.Repo.Migrations.DropSubscriptionIfExists do use Ecto.Migration diff --git a/priv/repo/migrations/20191005165212_add_unread_conversation_count_to_user_info.exs b/priv/repo/migrations/20191005165212_add_unread_conversation_count_to_user_info.exs index 2aa1a012c..0280d18ff 100644 --- a/priv/repo/migrations/20191005165212_add_unread_conversation_count_to_user_info.exs +++ b/priv/repo/migrations/20191005165212_add_unread_conversation_count_to_user_info.exs @@ -1,3 +1,7 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2022 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + defmodule Pleroma.Repo.Migrations.AddUnreadConversationCountToUserInfo do use Ecto.Migration diff --git a/priv/repo/migrations/20191006123824_add_keys_column.exs b/priv/repo/migrations/20191006123824_add_keys_column.exs index 4114ba416..d9843d09d 100644 --- a/priv/repo/migrations/20191006123824_add_keys_column.exs +++ b/priv/repo/migrations/20191006123824_add_keys_column.exs @@ -1,3 +1,7 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2022 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + defmodule Pleroma.Repo.Migrations.AddKeysColumn do use Ecto.Migration diff --git a/priv/repo/migrations/20191006135457_move_keys_to_separate_column.exs b/priv/repo/migrations/20191006135457_move_keys_to_separate_column.exs index cb8d4ae9e..137e98230 100644 --- a/priv/repo/migrations/20191006135457_move_keys_to_separate_column.exs +++ b/priv/repo/migrations/20191006135457_move_keys_to_separate_column.exs @@ -1,3 +1,7 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2022 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + defmodule Pleroma.Repo.Migrations.MoveKeysToSeparateColumn do use Ecto.Migration diff --git a/priv/repo/migrations/20191007073319_create_following_relationships.exs b/priv/repo/migrations/20191007073319_create_following_relationships.exs index d49e24ee4..ea812bca9 100644 --- a/priv/repo/migrations/20191007073319_create_following_relationships.exs +++ b/priv/repo/migrations/20191007073319_create_following_relationships.exs @@ -1,3 +1,7 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2022 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + defmodule Pleroma.Repo.Migrations.CreateFollowingRelationships do use Ecto.Migration diff --git a/priv/repo/migrations/20191008132217_migrate_following_relationships.exs b/priv/repo/migrations/20191008132217_migrate_following_relationships.exs index 9d5c2648f..1d4b0bea3 100644 --- a/priv/repo/migrations/20191008132217_migrate_following_relationships.exs +++ b/priv/repo/migrations/20191008132217_migrate_following_relationships.exs @@ -1,3 +1,7 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2022 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + defmodule Pleroma.Repo.Migrations.MigrateFollowingRelationships do use Ecto.Migration diff --git a/priv/repo/migrations/20191008132427_drop_users_following.exs b/priv/repo/migrations/20191008132427_drop_users_following.exs index 21c0af9f4..5bfb3a194 100644 --- a/priv/repo/migrations/20191008132427_drop_users_following.exs +++ b/priv/repo/migrations/20191008132427_drop_users_following.exs @@ -1,3 +1,7 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2022 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + defmodule Pleroma.Repo.Migrations.DropUsersFollowing do use Ecto.Migration diff --git a/priv/repo/migrations/20191009154606_add_user_info_columns.exs b/priv/repo/migrations/20191009154606_add_user_info_columns.exs index 22a5a377f..36ded62ae 100644 --- a/priv/repo/migrations/20191009154606_add_user_info_columns.exs +++ b/priv/repo/migrations/20191009154606_add_user_info_columns.exs @@ -1,3 +1,7 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2022 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + defmodule Pleroma.Repo.Migrations.AddUsersInfoColumns do use Ecto.Migration diff --git a/priv/repo/migrations/20191009154608_copy_users_info_fields_to_users.exs b/priv/repo/migrations/20191009154608_copy_users_info_fields_to_users.exs index cc5ae6920..502b82c8b 100644 --- a/priv/repo/migrations/20191009154608_copy_users_info_fields_to_users.exs +++ b/priv/repo/migrations/20191009154608_copy_users_info_fields_to_users.exs @@ -1,3 +1,7 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2022 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + defmodule Pleroma.Repo.Migrations.CopyUsersInfoFieldsToUsers do use Ecto.Migration diff --git a/priv/repo/migrations/20191014181019_create_markers.exs b/priv/repo/migrations/20191014181019_create_markers.exs index c717831ba..13a25e75c 100644 --- a/priv/repo/migrations/20191014181019_create_markers.exs +++ b/priv/repo/migrations/20191014181019_create_markers.exs @@ -1,3 +1,7 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2022 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + defmodule Pleroma.Repo.Migrations.CreateMarkers do use Ecto.Migration diff --git a/priv/repo/migrations/20191017225002_drop_websub_tables.exs b/priv/repo/migrations/20191017225002_drop_websub_tables.exs index 4cf67a59c..83eefda8f 100644 --- a/priv/repo/migrations/20191017225002_drop_websub_tables.exs +++ b/priv/repo/migrations/20191017225002_drop_websub_tables.exs @@ -1,3 +1,7 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2022 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + defmodule Pleroma.Repo.Migrations.DropWebsubTables do use Ecto.Migration diff --git a/priv/repo/migrations/20191025081729_add_move_support_to_users.exs b/priv/repo/migrations/20191025081729_add_move_support_to_users.exs index 580b9eb0f..bfb75c50b 100644 --- a/priv/repo/migrations/20191025081729_add_move_support_to_users.exs +++ b/priv/repo/migrations/20191025081729_add_move_support_to_users.exs @@ -1,3 +1,7 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2022 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + defmodule Pleroma.Repo.Migrations.AddMoveSupportToUsers do use Ecto.Migration diff --git a/priv/repo/migrations/20191025143434_add_defaults_to_tables.exs b/priv/repo/migrations/20191025143434_add_defaults_to_tables.exs index a5bc82335..b2ba103a1 100644 --- a/priv/repo/migrations/20191025143434_add_defaults_to_tables.exs +++ b/priv/repo/migrations/20191025143434_add_defaults_to_tables.exs @@ -1,3 +1,7 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2022 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + defmodule Pleroma.Repo.Migrations.AddDefaultsToTables do use Ecto.Migration diff --git a/priv/repo/migrations/20191026190317_set_not_null_for_activities.exs b/priv/repo/migrations/20191026190317_set_not_null_for_activities.exs index 9b66f3cff..6403840c1 100644 --- a/priv/repo/migrations/20191026190317_set_not_null_for_activities.exs +++ b/priv/repo/migrations/20191026190317_set_not_null_for_activities.exs @@ -1,3 +1,7 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2022 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + defmodule Pleroma.Repo.Migrations.SetNotNullForActivities do use Ecto.Migration diff --git a/priv/repo/migrations/20191026190415_set_not_null_for_activity_expirations.exs b/priv/repo/migrations/20191026190415_set_not_null_for_activity_expirations.exs index e41c69e4c..b15e51cdb 100644 --- a/priv/repo/migrations/20191026190415_set_not_null_for_activity_expirations.exs +++ b/priv/repo/migrations/20191026190415_set_not_null_for_activity_expirations.exs @@ -1,3 +1,7 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2022 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + defmodule Pleroma.Repo.Migrations.SetNotNullForActivityExpirations do use Ecto.Migration diff --git a/priv/repo/migrations/20191026190500_set_not_null_for_apps.exs b/priv/repo/migrations/20191026190500_set_not_null_for_apps.exs index a6a44ddfe..d43f185ae 100644 --- a/priv/repo/migrations/20191026190500_set_not_null_for_apps.exs +++ b/priv/repo/migrations/20191026190500_set_not_null_for_apps.exs @@ -1,3 +1,7 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2022 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + defmodule Pleroma.Repo.Migrations.SetNotNullForApps do use Ecto.Migration diff --git a/priv/repo/migrations/20191026190533_set_not_null_for_bookmarks.exs b/priv/repo/migrations/20191026190533_set_not_null_for_bookmarks.exs index 5f3224003..bf193dcc6 100644 --- a/priv/repo/migrations/20191026190533_set_not_null_for_bookmarks.exs +++ b/priv/repo/migrations/20191026190533_set_not_null_for_bookmarks.exs @@ -1,3 +1,7 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2022 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + defmodule Pleroma.Repo.Migrations.SetNotNullForBookmarks do use Ecto.Migration diff --git a/priv/repo/migrations/20191026190622_set_not_null_for_config.exs b/priv/repo/migrations/20191026190622_set_not_null_for_config.exs index 204272442..780697817 100644 --- a/priv/repo/migrations/20191026190622_set_not_null_for_config.exs +++ b/priv/repo/migrations/20191026190622_set_not_null_for_config.exs @@ -1,3 +1,7 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2022 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + defmodule Pleroma.Repo.Migrations.SetNotNullForConfig do use Ecto.Migration diff --git a/priv/repo/migrations/20191026190712_set_not_null_for_conversation_participation_recipient_ships.exs b/priv/repo/migrations/20191026190712_set_not_null_for_conversation_participation_recipient_ships.exs index a5ab1d3c9..a01291f89 100644 --- a/priv/repo/migrations/20191026190712_set_not_null_for_conversation_participation_recipient_ships.exs +++ b/priv/repo/migrations/20191026190712_set_not_null_for_conversation_participation_recipient_ships.exs @@ -1,3 +1,7 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2022 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + defmodule Pleroma.Repo.Migrations.SetNotNullForConversationParticipationRecipientShips do use Ecto.Migration diff --git a/priv/repo/migrations/20191026190759_set_not_null_for_conversation_participations.exs b/priv/repo/migrations/20191026190759_set_not_null_for_conversation_participations.exs index cabb1f29f..fe14eae7b 100644 --- a/priv/repo/migrations/20191026190759_set_not_null_for_conversation_participations.exs +++ b/priv/repo/migrations/20191026190759_set_not_null_for_conversation_participations.exs @@ -1,3 +1,7 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2022 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + defmodule Pleroma.Repo.Migrations.SetNotNullForConversationParticipations do use Ecto.Migration diff --git a/priv/repo/migrations/20191026190841_set_not_null_for_filters.exs b/priv/repo/migrations/20191026190841_set_not_null_for_filters.exs index 52d7e687a..9efa2f934 100644 --- a/priv/repo/migrations/20191026190841_set_not_null_for_filters.exs +++ b/priv/repo/migrations/20191026190841_set_not_null_for_filters.exs @@ -1,3 +1,7 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2022 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + defmodule Pleroma.Repo.Migrations.SetNotNullForFilters do use Ecto.Migration diff --git a/priv/repo/migrations/20191026191023_set_not_null_for_instances.exs b/priv/repo/migrations/20191026191023_set_not_null_for_instances.exs index 4c2560da5..955b774e2 100644 --- a/priv/repo/migrations/20191026191023_set_not_null_for_instances.exs +++ b/priv/repo/migrations/20191026191023_set_not_null_for_instances.exs @@ -1,3 +1,7 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2022 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + defmodule Pleroma.Repo.Migrations.SetNotNullForInstances do use Ecto.Migration diff --git a/priv/repo/migrations/20191026191100_set_not_null_for_lists.exs b/priv/repo/migrations/20191026191100_set_not_null_for_lists.exs index 40b8b136a..f9f7ef682 100644 --- a/priv/repo/migrations/20191026191100_set_not_null_for_lists.exs +++ b/priv/repo/migrations/20191026191100_set_not_null_for_lists.exs @@ -1,3 +1,7 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2022 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + defmodule Pleroma.Repo.Migrations.SetNotNullForLists do use Ecto.Migration diff --git a/priv/repo/migrations/20191026191134_set_not_null_for_markers.exs b/priv/repo/migrations/20191026191134_set_not_null_for_markers.exs index 7d7b73e7b..ac2d0a542 100644 --- a/priv/repo/migrations/20191026191134_set_not_null_for_markers.exs +++ b/priv/repo/migrations/20191026191134_set_not_null_for_markers.exs @@ -1,3 +1,7 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2022 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + defmodule Pleroma.Repo.Migrations.SetNotNullForMarkers do use Ecto.Migration diff --git a/priv/repo/migrations/20191026191218_set_not_null_for_moderation_log.exs b/priv/repo/migrations/20191026191218_set_not_null_for_moderation_log.exs index 7238ca7f5..073945499 100644 --- a/priv/repo/migrations/20191026191218_set_not_null_for_moderation_log.exs +++ b/priv/repo/migrations/20191026191218_set_not_null_for_moderation_log.exs @@ -1,3 +1,7 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2022 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + defmodule Pleroma.Repo.Migrations.SetNotNullForModerationLog do use Ecto.Migration diff --git a/priv/repo/migrations/20191026191249_set_not_null_for_notifications.exs b/priv/repo/migrations/20191026191249_set_not_null_for_notifications.exs index 7e2976bab..8538426ec 100644 --- a/priv/repo/migrations/20191026191249_set_not_null_for_notifications.exs +++ b/priv/repo/migrations/20191026191249_set_not_null_for_notifications.exs @@ -1,3 +1,7 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2022 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + defmodule Pleroma.Repo.Migrations.SetNotNullForNotifications do use Ecto.Migration diff --git a/priv/repo/migrations/20191026191328_set_not_null_for_oauth_authorizations.exs b/priv/repo/migrations/20191026191328_set_not_null_for_oauth_authorizations.exs index bc6b36e69..a7b301540 100644 --- a/priv/repo/migrations/20191026191328_set_not_null_for_oauth_authorizations.exs +++ b/priv/repo/migrations/20191026191328_set_not_null_for_oauth_authorizations.exs @@ -1,3 +1,7 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2022 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + defmodule Pleroma.Repo.Migrations.SetNotNullForOauthAuthorizations do use Ecto.Migration diff --git a/priv/repo/migrations/20191026191401_set_not_null_for_oauth_tokens.exs b/priv/repo/migrations/20191026191401_set_not_null_for_oauth_tokens.exs index fe67db8cc..2cd35cc07 100644 --- a/priv/repo/migrations/20191026191401_set_not_null_for_oauth_tokens.exs +++ b/priv/repo/migrations/20191026191401_set_not_null_for_oauth_tokens.exs @@ -1,3 +1,7 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2022 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + defmodule Pleroma.Repo.Migrations.SetNotNullForOauthTokens do use Ecto.Migration diff --git a/priv/repo/migrations/20191026191442_set_not_null_for_objects.exs b/priv/repo/migrations/20191026191442_set_not_null_for_objects.exs index 59e89d6da..24c791ce7 100644 --- a/priv/repo/migrations/20191026191442_set_not_null_for_objects.exs +++ b/priv/repo/migrations/20191026191442_set_not_null_for_objects.exs @@ -1,3 +1,7 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2022 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + defmodule Pleroma.Repo.Migrations.SetNotNullForObjects do use Ecto.Migration diff --git a/priv/repo/migrations/20191026191524_set_not_null_for_password_reset_tokens.exs b/priv/repo/migrations/20191026191524_set_not_null_for_password_reset_tokens.exs index 51efadbd3..2d058a715 100644 --- a/priv/repo/migrations/20191026191524_set_not_null_for_password_reset_tokens.exs +++ b/priv/repo/migrations/20191026191524_set_not_null_for_password_reset_tokens.exs @@ -1,3 +1,7 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2022 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + defmodule Pleroma.Repo.Migrations.SetNotNullForPasswordResetTokens do use Ecto.Migration diff --git a/priv/repo/migrations/20191026191603_set_not_null_for_push_subscriptions.exs b/priv/repo/migrations/20191026191603_set_not_null_for_push_subscriptions.exs index 0f3a73067..4692c61c8 100644 --- a/priv/repo/migrations/20191026191603_set_not_null_for_push_subscriptions.exs +++ b/priv/repo/migrations/20191026191603_set_not_null_for_push_subscriptions.exs @@ -1,3 +1,7 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2022 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + defmodule Pleroma.Repo.Migrations.SetNotNullForPushSubscriptions do use Ecto.Migration diff --git a/priv/repo/migrations/20191026191635_set_not_null_for_registrations.exs b/priv/repo/migrations/20191026191635_set_not_null_for_registrations.exs index ddfbf4c5e..a517fdc0b 100644 --- a/priv/repo/migrations/20191026191635_set_not_null_for_registrations.exs +++ b/priv/repo/migrations/20191026191635_set_not_null_for_registrations.exs @@ -1,3 +1,7 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2022 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + defmodule Pleroma.Repo.Migrations.SetNotNullForRegistrations do use Ecto.Migration diff --git a/priv/repo/migrations/20191026191711_set_not_null_for_scheduled_activities.exs b/priv/repo/migrations/20191026191711_set_not_null_for_scheduled_activities.exs index f1830c8c3..5d70dcf82 100644 --- a/priv/repo/migrations/20191026191711_set_not_null_for_scheduled_activities.exs +++ b/priv/repo/migrations/20191026191711_set_not_null_for_scheduled_activities.exs @@ -1,3 +1,7 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2022 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + defmodule Pleroma.Repo.Migrations.SetNotNullForScheduledActivities do use Ecto.Migration diff --git a/priv/repo/migrations/20191026191753_set_not_null_for_thread_mutes.exs b/priv/repo/migrations/20191026191753_set_not_null_for_thread_mutes.exs index daa7ce314..f6b470aec 100644 --- a/priv/repo/migrations/20191026191753_set_not_null_for_thread_mutes.exs +++ b/priv/repo/migrations/20191026191753_set_not_null_for_thread_mutes.exs @@ -1,3 +1,7 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2022 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + defmodule Pleroma.Repo.Migrations.SetNotNullForThreadMutes do use Ecto.Migration diff --git a/priv/repo/migrations/20191026191826_set_not_null_for_user_invite_tokens.exs b/priv/repo/migrations/20191026191826_set_not_null_for_user_invite_tokens.exs index 836544f7f..e8e5dc4e7 100644 --- a/priv/repo/migrations/20191026191826_set_not_null_for_user_invite_tokens.exs +++ b/priv/repo/migrations/20191026191826_set_not_null_for_user_invite_tokens.exs @@ -1,3 +1,7 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2022 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + defmodule Pleroma.Repo.Migrations.SetNotNullForUserInviteTokens do use Ecto.Migration diff --git a/priv/repo/migrations/20191026191910_set_not_null_for_users.exs b/priv/repo/migrations/20191026191910_set_not_null_for_users.exs index 9d8d0ccf8..1c116ad8a 100644 --- a/priv/repo/migrations/20191026191910_set_not_null_for_users.exs +++ b/priv/repo/migrations/20191026191910_set_not_null_for_users.exs @@ -1,3 +1,7 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2022 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + defmodule Pleroma.Repo.Migrations.SetNotNullForUsers do use Ecto.Migration diff --git a/priv/repo/migrations/20191029101340_migrate_missing_follow_requests.exs b/priv/repo/migrations/20191029101340_migrate_missing_follow_requests.exs index 90b18efc8..f24568acd 100644 --- a/priv/repo/migrations/20191029101340_migrate_missing_follow_requests.exs +++ b/priv/repo/migrations/20191029101340_migrate_missing_follow_requests.exs @@ -1,3 +1,7 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2022 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + defmodule Pleroma.Repo.Migrations.MigrateMissingFollowingRelationships do use Ecto.Migration diff --git a/priv/repo/migrations/20191029172832_fix_blocked_follows.exs b/priv/repo/migrations/20191029172832_fix_blocked_follows.exs index 71f8f1330..a8d1d7270 100644 --- a/priv/repo/migrations/20191029172832_fix_blocked_follows.exs +++ b/priv/repo/migrations/20191029172832_fix_blocked_follows.exs @@ -1,3 +1,7 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2022 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + defmodule Pleroma.Repo.Migrations.FixBlockedFollows do use Ecto.Migration diff --git a/priv/repo/migrations/20191104133100_set_visible_service_actors.exs b/priv/repo/migrations/20191104133100_set_visible_service_actors.exs index 62907093c..0b35fa438 100644 --- a/priv/repo/migrations/20191104133100_set_visible_service_actors.exs +++ b/priv/repo/migrations/20191104133100_set_visible_service_actors.exs @@ -1,3 +1,7 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2022 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + defmodule Pleroma.Repo.Migrations.SetVisibleServiceActors do use Ecto.Migration import Ecto.Query diff --git a/priv/repo/migrations/20191118084425_create_user_relationships.exs b/priv/repo/migrations/20191118084425_create_user_relationships.exs index c281f887d..04268082d 100644 --- a/priv/repo/migrations/20191118084425_create_user_relationships.exs +++ b/priv/repo/migrations/20191118084425_create_user_relationships.exs @@ -1,3 +1,7 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2022 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + defmodule Pleroma.Repo.Migrations.CreateUserRelationships do use Ecto.Migration diff --git a/priv/repo/migrations/20191118084500_data_migration_populate_user_relationships.exs b/priv/repo/migrations/20191118084500_data_migration_populate_user_relationships.exs index 990e9f3b8..571a75160 100644 --- a/priv/repo/migrations/20191118084500_data_migration_populate_user_relationships.exs +++ b/priv/repo/migrations/20191118084500_data_migration_populate_user_relationships.exs @@ -1,3 +1,7 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2022 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + defmodule Pleroma.Repo.Migrations.DataMigrationPopulateUserRelationships do use Ecto.Migration diff --git a/priv/repo/migrations/20191123030554_add_activitypub_actor_type.exs b/priv/repo/migrations/20191123030554_add_activitypub_actor_type.exs index 76d3b32c4..02c327608 100644 --- a/priv/repo/migrations/20191123030554_add_activitypub_actor_type.exs +++ b/priv/repo/migrations/20191123030554_add_activitypub_actor_type.exs @@ -1,3 +1,7 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2022 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + defmodule Pleroma.Repo.Migrations.AddActivitypubActorType do use Ecto.Migration diff --git a/priv/repo/migrations/20191123103423_remove_info_from_users.exs b/priv/repo/migrations/20191123103423_remove_info_from_users.exs index b251255ea..32b982cc9 100644 --- a/priv/repo/migrations/20191123103423_remove_info_from_users.exs +++ b/priv/repo/migrations/20191123103423_remove_info_from_users.exs @@ -1,3 +1,7 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2022 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + defmodule Pleroma.Repo.Migrations.RemoveInfoFromUsers do use Ecto.Migration diff --git a/priv/repo/migrations/20191128153944_fix_missing_following_count.exs b/priv/repo/migrations/20191128153944_fix_missing_following_count.exs index 3236de7a4..b305ebc9a 100644 --- a/priv/repo/migrations/20191128153944_fix_missing_following_count.exs +++ b/priv/repo/migrations/20191128153944_fix_missing_following_count.exs @@ -1,3 +1,7 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2022 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + defmodule Pleroma.Repo.Migrations.FixMissingFollowingCount do use Ecto.Migration diff --git a/priv/repo/migrations/20191203043610_create_report_notes.exs b/priv/repo/migrations/20191203043610_create_report_notes.exs index a4f8c096d..7e193f4a4 100644 --- a/priv/repo/migrations/20191203043610_create_report_notes.exs +++ b/priv/repo/migrations/20191203043610_create_report_notes.exs @@ -1,3 +1,7 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2022 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + defmodule Pleroma.Repo.Migrations.CreateReportNotes do use Ecto.Migration diff --git a/priv/repo/migrations/20191220174645_add_scopes_to_pleroma_feo_auth_records.exs b/priv/repo/migrations/20191220174645_add_scopes_to_pleroma_feo_auth_records.exs index 6b160ad16..e99d51c26 100644 --- a/priv/repo/migrations/20191220174645_add_scopes_to_pleroma_feo_auth_records.exs +++ b/priv/repo/migrations/20191220174645_add_scopes_to_pleroma_feo_auth_records.exs @@ -1,3 +1,7 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2022 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + defmodule Pleroma.Repo.Migrations.AddScopesToPleromaFEOAuthRecords do use Ecto.Migration diff --git a/priv/repo/migrations/20200109123126_add_counter_cache_table.exs b/priv/repo/migrations/20200109123126_add_counter_cache_table.exs index df9e21193..368bc9874 100644 --- a/priv/repo/migrations/20200109123126_add_counter_cache_table.exs +++ b/priv/repo/migrations/20200109123126_add_counter_cache_table.exs @@ -1,3 +1,7 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2022 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + defmodule Pleroma.Repo.Migrations.AddCounterCacheTable do use Ecto.Migration diff --git a/priv/repo/migrations/20200227122417_add_trusted_to_apps.exs b/priv/repo/migrations/20200227122417_add_trusted_to_apps.exs index 4e2a62af0..8e61871a6 100644 --- a/priv/repo/migrations/20200227122417_add_trusted_to_apps.exs +++ b/priv/repo/migrations/20200227122417_add_trusted_to_apps.exs @@ -1,3 +1,7 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2022 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + defmodule Pleroma.Repo.Migrations.AddTrustedToApps do use Ecto.Migration diff --git a/priv/repo/migrations/20200307103755_fix_moderation_log_subjects.exs b/priv/repo/migrations/20200307103755_fix_moderation_log_subjects.exs index d1c8539e1..986ab6cba 100644 --- a/priv/repo/migrations/20200307103755_fix_moderation_log_subjects.exs +++ b/priv/repo/migrations/20200307103755_fix_moderation_log_subjects.exs @@ -1,3 +1,7 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2022 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + defmodule Pleroma.Repo.Migrations.FixModerationLogSubjects do use Ecto.Migration diff --git a/priv/repo/migrations/20200309123730_create_chats.exs b/priv/repo/migrations/20200309123730_create_chats.exs index 715d798ea..f7214bfe6 100644 --- a/priv/repo/migrations/20200309123730_create_chats.exs +++ b/priv/repo/migrations/20200309123730_create_chats.exs @@ -1,3 +1,7 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2022 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + defmodule Pleroma.Repo.Migrations.CreateChats do use Ecto.Migration diff --git a/priv/repo/migrations/20200314123607_config_remove_fetch_initial_posts.exs b/priv/repo/migrations/20200314123607_config_remove_fetch_initial_posts.exs index 392f531e8..a0930c1c4 100644 --- a/priv/repo/migrations/20200314123607_config_remove_fetch_initial_posts.exs +++ b/priv/repo/migrations/20200314123607_config_remove_fetch_initial_posts.exs @@ -1,3 +1,7 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2022 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + defmodule Pleroma.Repo.Migrations.ConfigRemoveFetchInitialPosts do use Ecto.Migration diff --git a/priv/repo/migrations/20200315125756_delete_fetch_initial_posts_jobs.exs b/priv/repo/migrations/20200315125756_delete_fetch_initial_posts_jobs.exs index 5b8e3ab91..f145d2d25 100644 --- a/priv/repo/migrations/20200315125756_delete_fetch_initial_posts_jobs.exs +++ b/priv/repo/migrations/20200315125756_delete_fetch_initial_posts_jobs.exs @@ -1,3 +1,7 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2022 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + defmodule Pleroma.Repo.Migrations.DeleteFetchInitialPostsJobs do use Ecto.Migration diff --git a/priv/repo/migrations/20200322174133_user_raw_bio.exs b/priv/repo/migrations/20200322174133_user_raw_bio.exs index ddf9be4f5..58d39b0ae 100644 --- a/priv/repo/migrations/20200322174133_user_raw_bio.exs +++ b/priv/repo/migrations/20200322174133_user_raw_bio.exs @@ -1,3 +1,7 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2022 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + defmodule Pleroma.Repo.Migrations.UserRawBio do use Ecto.Migration diff --git a/priv/repo/migrations/20200323122421_mrf_config_move_from_instance_namespace.exs b/priv/repo/migrations/20200323122421_mrf_config_move_from_instance_namespace.exs index ef36c4eb7..9d8926ad5 100644 --- a/priv/repo/migrations/20200323122421_mrf_config_move_from_instance_namespace.exs +++ b/priv/repo/migrations/20200323122421_mrf_config_move_from_instance_namespace.exs @@ -1,3 +1,7 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2022 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + defmodule Pleroma.Repo.Migrations.MrfConfigMoveFromInstanceNamespace do use Ecto.Migration diff --git a/priv/repo/migrations/20200328124805_change_following_relationships_state_to_integer.exs b/priv/repo/migrations/20200328124805_change_following_relationships_state_to_integer.exs index 2b0820f3f..7729f8a9f 100644 --- a/priv/repo/migrations/20200328124805_change_following_relationships_state_to_integer.exs +++ b/priv/repo/migrations/20200328124805_change_following_relationships_state_to_integer.exs @@ -1,3 +1,7 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2022 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + defmodule Pleroma.Repo.Migrations.ChangeFollowingRelationshipsStateToInteger do use Ecto.Migration diff --git a/priv/repo/migrations/20200328130139_add_following_relationships_following_id_index.exs b/priv/repo/migrations/20200328130139_add_following_relationships_following_id_index.exs index 884832f84..fcf0e31bc 100644 --- a/priv/repo/migrations/20200328130139_add_following_relationships_following_id_index.exs +++ b/priv/repo/migrations/20200328130139_add_following_relationships_following_id_index.exs @@ -1,3 +1,7 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2022 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + defmodule Pleroma.Repo.Migrations.AddFollowingRelationshipsFollowingIdIndex do use Ecto.Migration diff --git a/priv/repo/migrations/20200328193433_populate_user_raw_bio.exs b/priv/repo/migrations/20200328193433_populate_user_raw_bio.exs index cb35db3f5..5cf0f4725 100644 --- a/priv/repo/migrations/20200328193433_populate_user_raw_bio.exs +++ b/priv/repo/migrations/20200328193433_populate_user_raw_bio.exs @@ -1,3 +1,7 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2022 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + defmodule Pleroma.Repo.Migrations.PopulateUserRawBio do use Ecto.Migration import Ecto.Query diff --git a/priv/repo/migrations/20200401030751_users_add_public_key.exs b/priv/repo/migrations/20200401030751_users_add_public_key.exs index 04e5ad1e2..91ff371b1 100644 --- a/priv/repo/migrations/20200401030751_users_add_public_key.exs +++ b/priv/repo/migrations/20200401030751_users_add_public_key.exs @@ -1,3 +1,7 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2022 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + defmodule Pleroma.Repo.Migrations.UsersAddPublicKey do use Ecto.Migration diff --git a/priv/repo/migrations/20200401072456_users_add_inboxes.exs b/priv/repo/migrations/20200401072456_users_add_inboxes.exs index 0947f0ab2..41849bfb9 100644 --- a/priv/repo/migrations/20200401072456_users_add_inboxes.exs +++ b/priv/repo/migrations/20200401072456_users_add_inboxes.exs @@ -1,3 +1,7 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2022 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + defmodule Pleroma.Repo.Migrations.UsersAddInboxes do use Ecto.Migration diff --git a/priv/repo/migrations/20200402063221_update_oban_jobs_table.exs b/priv/repo/migrations/20200402063221_update_oban_jobs_table.exs index ca6856798..731a21cc1 100644 --- a/priv/repo/migrations/20200402063221_update_oban_jobs_table.exs +++ b/priv/repo/migrations/20200402063221_update_oban_jobs_table.exs @@ -1,3 +1,7 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2022 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + defmodule Pleroma.Repo.Migrations.UpdateObanJobsTable do use Ecto.Migration diff --git a/priv/repo/migrations/20200406100225_users_add_emoji.exs b/priv/repo/migrations/20200406100225_users_add_emoji.exs index f248108de..2e355d411 100644 --- a/priv/repo/migrations/20200406100225_users_add_emoji.exs +++ b/priv/repo/migrations/20200406100225_users_add_emoji.exs @@ -1,3 +1,7 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2022 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + defmodule Pleroma.Repo.Migrations.UsersPopulateEmoji do use Ecto.Migration diff --git a/priv/repo/migrations/20200406105422_users_remove_source_data.exs b/priv/repo/migrations/20200406105422_users_remove_source_data.exs index 9812d480f..3ba362b44 100644 --- a/priv/repo/migrations/20200406105422_users_remove_source_data.exs +++ b/priv/repo/migrations/20200406105422_users_remove_source_data.exs @@ -1,3 +1,7 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2022 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + defmodule Pleroma.Repo.Migrations.UsersRemoveSourceData do use Ecto.Migration diff --git a/priv/repo/migrations/20200415181818_update_markers.exs b/priv/repo/migrations/20200415181818_update_markers.exs index bb9d8e860..8e9756098 100644 --- a/priv/repo/migrations/20200415181818_update_markers.exs +++ b/priv/repo/migrations/20200415181818_update_markers.exs @@ -1,3 +1,7 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2022 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + defmodule Pleroma.Repo.Migrations.UpdateMarkers do use Ecto.Migration import Ecto.Query diff --git a/priv/repo/migrations/20200428221338_insert_skeletons_for_deleted_users.exs b/priv/repo/migrations/20200428221338_insert_skeletons_for_deleted_users.exs index 2adc38186..6e5c9489c 100644 --- a/priv/repo/migrations/20200428221338_insert_skeletons_for_deleted_users.exs +++ b/priv/repo/migrations/20200428221338_insert_skeletons_for_deleted_users.exs @@ -1,3 +1,7 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2022 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + defmodule Pleroma.Repo.Migrations.InsertSkeletonsForDeletedUsers do use Ecto.Migration @@ -28,9 +32,7 @@ def change do {:ok, %{rows: ap_ids}} = Ecto.Adapters.SQL.query( Repo, - "select distinct unnest(nonexistent_locals.recipients) from activities, lateral (select array_agg(recipient) as recipients from unnest(activities.recipients) as recipient where recipient similar to '#{ - instance_uri - }/users/[A-Za-z0-9]*' and not(recipient in (select ap_id from users))) nonexistent_locals;", + "select distinct unnest(nonexistent_locals.recipients) from activities, lateral (select array_agg(recipient) as recipients from unnest(activities.recipients) as recipient where recipient similar to '#{instance_uri}/users/[A-Za-z0-9]*' and not(recipient in (select ap_id from users))) nonexistent_locals;", [], timeout: :infinity ) diff --git a/priv/repo/migrations/20200505072231_remove_magic_key_field.exs b/priv/repo/migrations/20200505072231_remove_magic_key_field.exs index 2635e671b..d36946c6e 100644 --- a/priv/repo/migrations/20200505072231_remove_magic_key_field.exs +++ b/priv/repo/migrations/20200505072231_remove_magic_key_field.exs @@ -1,3 +1,7 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2022 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + defmodule Pleroma.Repo.Migrations.RemoveMagicKeyField do use Ecto.Migration diff --git a/priv/repo/migrations/20200508092434_update_counter_cache_table.exs b/priv/repo/migrations/20200508092434_update_counter_cache_table.exs index 738344868..db4f25687 100644 --- a/priv/repo/migrations/20200508092434_update_counter_cache_table.exs +++ b/priv/repo/migrations/20200508092434_update_counter_cache_table.exs @@ -1,3 +1,7 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2022 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + defmodule Pleroma.Repo.Migrations.UpdateCounterCacheTable do use Ecto.Migration diff --git a/priv/repo/migrations/20200520155351_add_recipients_contain_blocked_domains_function.exs b/priv/repo/migrations/20200520155351_add_recipients_contain_blocked_domains_function.exs index 14e873125..b63ade558 100644 --- a/priv/repo/migrations/20200520155351_add_recipients_contain_blocked_domains_function.exs +++ b/priv/repo/migrations/20200520155351_add_recipients_contain_blocked_domains_function.exs @@ -1,3 +1,7 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2022 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + defmodule Pleroma.Repo.Migrations.AddRecipientsContainBlockedDomainsFunction do use Ecto.Migration @disable_ddl_transaction true diff --git a/priv/repo/migrations/20200526144426_add_apps_indexes.exs b/priv/repo/migrations/20200526144426_add_apps_indexes.exs index 5cb6a0473..ae0541859 100644 --- a/priv/repo/migrations/20200526144426_add_apps_indexes.exs +++ b/priv/repo/migrations/20200526144426_add_apps_indexes.exs @@ -1,3 +1,7 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2022 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + defmodule Pleroma.Repo.Migrations.AddAppsIndexes do use Ecto.Migration diff --git a/priv/repo/migrations/20200527104138_change_notification_user_index.exs b/priv/repo/migrations/20200527104138_change_notification_user_index.exs index 4dcfe6de9..3c8cb1a3a 100644 --- a/priv/repo/migrations/20200527104138_change_notification_user_index.exs +++ b/priv/repo/migrations/20200527104138_change_notification_user_index.exs @@ -1,3 +1,7 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2022 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + defmodule Pleroma.Repo.Migrations.ChangeNotificationUserIndex do use Ecto.Migration diff --git a/priv/repo/migrations/20200527163635_delete_notifications_from_invisible_users.exs b/priv/repo/migrations/20200527163635_delete_notifications_from_invisible_users.exs index 9e95a8111..ac213c78e 100644 --- a/priv/repo/migrations/20200527163635_delete_notifications_from_invisible_users.exs +++ b/priv/repo/migrations/20200527163635_delete_notifications_from_invisible_users.exs @@ -1,3 +1,7 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2022 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + defmodule Pleroma.Repo.Migrations.DeleteNotificationsFromInvisibleUsers do use Ecto.Migration diff --git a/priv/repo/migrations/20200602094828_add_type_to_notifications.exs b/priv/repo/migrations/20200602094828_add_type_to_notifications.exs index 19c733628..b02f1a827 100644 --- a/priv/repo/migrations/20200602094828_add_type_to_notifications.exs +++ b/priv/repo/migrations/20200602094828_add_type_to_notifications.exs @@ -1,3 +1,7 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2022 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + defmodule Pleroma.Repo.Migrations.AddTypeToNotifications do use Ecto.Migration diff --git a/priv/repo/migrations/20200602125218_backfill_notification_types.exs b/priv/repo/migrations/20200602125218_backfill_notification_types.exs index 996d721ee..4b03ca12e 100644 --- a/priv/repo/migrations/20200602125218_backfill_notification_types.exs +++ b/priv/repo/migrations/20200602125218_backfill_notification_types.exs @@ -1,3 +1,7 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2022 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + defmodule Pleroma.Repo.Migrations.BackfillNotificationTypes do use Ecto.Migration diff --git a/priv/repo/migrations/20200602150528_create_chat_message_reference.exs b/priv/repo/migrations/20200602150528_create_chat_message_reference.exs index 5e57cddcf..6df314910 100644 --- a/priv/repo/migrations/20200602150528_create_chat_message_reference.exs +++ b/priv/repo/migrations/20200602150528_create_chat_message_reference.exs @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Repo.Migrations.CreateChatMessageReference do diff --git a/priv/repo/migrations/20200603105113_add_unique_index_to_chat_message_references.exs b/priv/repo/migrations/20200603105113_add_unique_index_to_chat_message_references.exs index fdf85132e..ea4f19aec 100644 --- a/priv/repo/migrations/20200603105113_add_unique_index_to_chat_message_references.exs +++ b/priv/repo/migrations/20200603105113_add_unique_index_to_chat_message_references.exs @@ -1,3 +1,7 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2022 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + defmodule Pleroma.Repo.Migrations.AddUniqueIndexToChatMessageReferences do use Ecto.Migration diff --git a/priv/repo/migrations/20200603120448_remove_unread_from_chats.exs b/priv/repo/migrations/20200603120448_remove_unread_from_chats.exs index 6322137d5..074ea777b 100644 --- a/priv/repo/migrations/20200603120448_remove_unread_from_chats.exs +++ b/priv/repo/migrations/20200603120448_remove_unread_from_chats.exs @@ -1,3 +1,7 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2022 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + defmodule Pleroma.Repo.Migrations.RemoveUnreadFromChats do use Ecto.Migration diff --git a/priv/repo/migrations/20200603122732_add_seen_index_to_chat_message_references.exs b/priv/repo/migrations/20200603122732_add_seen_index_to_chat_message_references.exs index a5065d612..68efb9cd9 100644 --- a/priv/repo/migrations/20200603122732_add_seen_index_to_chat_message_references.exs +++ b/priv/repo/migrations/20200603122732_add_seen_index_to_chat_message_references.exs @@ -1,3 +1,7 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2022 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + defmodule Pleroma.Repo.Migrations.AddSeenIndexToChatMessageReferences do use Ecto.Migration diff --git a/priv/repo/migrations/20200604150318_migrate_seen_to_unread_in_chat_message_references.exs b/priv/repo/migrations/20200604150318_migrate_seen_to_unread_in_chat_message_references.exs index fd6bc7bc7..6ffc6181e 100644 --- a/priv/repo/migrations/20200604150318_migrate_seen_to_unread_in_chat_message_references.exs +++ b/priv/repo/migrations/20200604150318_migrate_seen_to_unread_in_chat_message_references.exs @@ -1,3 +1,7 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2022 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + defmodule Pleroma.Repo.Migrations.MigrateSeenToUnreadInChatMessageReferences do use Ecto.Migration diff --git a/priv/repo/migrations/20200606105430_change_type_to_enum_for_notifications.exs b/priv/repo/migrations/20200606105430_change_type_to_enum_for_notifications.exs index 9ea34436b..ac8914993 100644 --- a/priv/repo/migrations/20200606105430_change_type_to_enum_for_notifications.exs +++ b/priv/repo/migrations/20200606105430_change_type_to_enum_for_notifications.exs @@ -1,3 +1,7 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2022 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + defmodule Pleroma.Repo.Migrations.ChangeTypeToEnumForNotifications do use Ecto.Migration diff --git a/priv/repo/migrations/20200607112923_change_chat_id_to_flake.exs b/priv/repo/migrations/20200607112923_change_chat_id_to_flake.exs index f14e269ca..bde9bba22 100644 --- a/priv/repo/migrations/20200607112923_change_chat_id_to_flake.exs +++ b/priv/repo/migrations/20200607112923_change_chat_id_to_flake.exs @@ -1,3 +1,7 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2022 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + defmodule Pleroma.Repo.Migrations.ChangeChatIdToFlake do use Ecto.Migration diff --git a/priv/repo/migrations/20200626163359_rename_notification_privacy_option.exs b/priv/repo/migrations/20200626163359_rename_notification_privacy_option.exs index 06d7f7272..dfe22191b 100644 --- a/priv/repo/migrations/20200626163359_rename_notification_privacy_option.exs +++ b/priv/repo/migrations/20200626163359_rename_notification_privacy_option.exs @@ -1,3 +1,7 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2022 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + defmodule Pleroma.Repo.Migrations.RenameNotificationPrivacyOption do use Ecto.Migration diff --git a/priv/repo/migrations/20200630162024_rename_user_settings_col.exs b/priv/repo/migrations/20200630162024_rename_user_settings_col.exs index 2355eb681..7393a015a 100644 --- a/priv/repo/migrations/20200630162024_rename_user_settings_col.exs +++ b/priv/repo/migrations/20200630162024_rename_user_settings_col.exs @@ -1,3 +1,7 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2022 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + defmodule Pleroma.Repo.Migrations.RenameUserSettingsCol do use Ecto.Migration diff --git a/priv/repo/migrations/20200703101031_add_chat_acceptance_to_users.exs b/priv/repo/migrations/20200703101031_add_chat_acceptance_to_users.exs index 8dfda89f1..4a372a842 100644 --- a/priv/repo/migrations/20200703101031_add_chat_acceptance_to_users.exs +++ b/priv/repo/migrations/20200703101031_add_chat_acceptance_to_users.exs @@ -1,3 +1,7 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2022 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + defmodule Pleroma.Repo.Migrations.AddChatAcceptanceToUsers do use Ecto.Migration diff --git a/priv/repo/migrations/20200706060258_remove_tesla_from_config.exs b/priv/repo/migrations/20200706060258_remove_tesla_from_config.exs index 798687f8a..85ab68487 100644 --- a/priv/repo/migrations/20200706060258_remove_tesla_from_config.exs +++ b/priv/repo/migrations/20200706060258_remove_tesla_from_config.exs @@ -1,3 +1,7 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2022 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + defmodule Pleroma.Repo.Migrations.RemoveTeslaFromConfig do use Ecto.Migration diff --git a/priv/repo/migrations/20200707112859_instances_add_favicon.exs b/priv/repo/migrations/20200707112859_instances_add_favicon.exs index 5538749dc..6eccad5ff 100644 --- a/priv/repo/migrations/20200707112859_instances_add_favicon.exs +++ b/priv/repo/migrations/20200707112859_instances_add_favicon.exs @@ -1,3 +1,7 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2022 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + defmodule Pleroma.Repo.Migrations.InstancesAddFavicon do use Ecto.Migration diff --git a/priv/repo/migrations/20200708193702_drop_user_trigram_index.exs b/priv/repo/migrations/20200708193702_drop_user_trigram_index.exs index 94efe323a..c319fefb7 100644 --- a/priv/repo/migrations/20200708193702_drop_user_trigram_index.exs +++ b/priv/repo/migrations/20200708193702_drop_user_trigram_index.exs @@ -1,3 +1,7 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2022 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + defmodule Pleroma.Repo.Migrations.DropUserTrigramIndex do @moduledoc "Drops unused trigram index on `users` (FTS index is being used instead)" diff --git a/priv/repo/migrations/20200712234852_add_approval_fields_to_users.exs b/priv/repo/migrations/20200712234852_add_approval_fields_to_users.exs index 43f741a5b..38068b528 100644 --- a/priv/repo/migrations/20200712234852_add_approval_fields_to_users.exs +++ b/priv/repo/migrations/20200712234852_add_approval_fields_to_users.exs @@ -1,3 +1,7 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2022 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + defmodule Pleroma.Repo.Migrations.AddApprovalFieldsToUsers do use Ecto.Migration diff --git a/priv/repo/migrations/20200714081657_oban_2_0_config_changes.exs b/priv/repo/migrations/20200714081657_oban_2_0_config_changes.exs index c54bb2511..625422d0c 100644 --- a/priv/repo/migrations/20200714081657_oban_2_0_config_changes.exs +++ b/priv/repo/migrations/20200714081657_oban_2_0_config_changes.exs @@ -1,3 +1,7 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2022 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + defmodule Elixir.Pleroma.Repo.Migrations.Oban20ConfigChanges do use Ecto.Migration import Ecto.Query diff --git a/priv/repo/migrations/20200716195806_autolinker_to_linkify.exs b/priv/repo/migrations/20200716195806_autolinker_to_linkify.exs index 570acba84..5c9da2154 100644 --- a/priv/repo/migrations/20200716195806_autolinker_to_linkify.exs +++ b/priv/repo/migrations/20200716195806_autolinker_to_linkify.exs @@ -1,3 +1,7 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2022 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + defmodule Pleroma.Repo.Migrations.AutolinkerToLinkify do use Ecto.Migration alias Pleroma.ConfigDB diff --git a/priv/repo/migrations/20200722185515_fix_malformed_formatter_config.exs b/priv/repo/migrations/20200722185515_fix_malformed_formatter_config.exs index 77b760825..2b0938f03 100644 --- a/priv/repo/migrations/20200722185515_fix_malformed_formatter_config.exs +++ b/priv/repo/migrations/20200722185515_fix_malformed_formatter_config.exs @@ -1,3 +1,7 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2022 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + defmodule Pleroma.Repo.Migrations.FixMalformedFormatterConfig do use Ecto.Migration alias Pleroma.ConfigDB diff --git a/priv/repo/migrations/20200724133313_move_welcome_settings.exs b/priv/repo/migrations/20200724133313_move_welcome_settings.exs index 323a8fcee..f2defb323 100644 --- a/priv/repo/migrations/20200724133313_move_welcome_settings.exs +++ b/priv/repo/migrations/20200724133313_move_welcome_settings.exs @@ -1,3 +1,7 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2022 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + defmodule Pleroma.Repo.Migrations.MoveWelcomeSettings do use Ecto.Migration diff --git a/priv/repo/migrations/20200802170532_fix_legacy_tags.exs b/priv/repo/migrations/20200802170532_fix_legacy_tags.exs index ca82fac42..72c62d16c 100644 --- a/priv/repo/migrations/20200802170532_fix_legacy_tags.exs +++ b/priv/repo/migrations/20200802170532_fix_legacy_tags.exs @@ -1,3 +1,7 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2022 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + # Fix legacy tags set by AdminFE that don't align with TagPolicy MRF defmodule Pleroma.Repo.Migrations.FixLegacyTags do diff --git a/priv/repo/migrations/20200804180322_remove_nonlocal_expirations.exs b/priv/repo/migrations/20200804180322_remove_nonlocal_expirations.exs index 389935f0d..c8b5433b0 100644 --- a/priv/repo/migrations/20200804180322_remove_nonlocal_expirations.exs +++ b/priv/repo/migrations/20200804180322_remove_nonlocal_expirations.exs @@ -1,3 +1,7 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2022 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + defmodule Pleroma.Repo.Migrations.RemoveNonlocalExpirations do use Ecto.Migration diff --git a/priv/repo/migrations/20200804183107_add_unique_index_to_app_client_id.exs b/priv/repo/migrations/20200804183107_add_unique_index_to_app_client_id.exs index 83de18096..ee42c4638 100644 --- a/priv/repo/migrations/20200804183107_add_unique_index_to_app_client_id.exs +++ b/priv/repo/migrations/20200804183107_add_unique_index_to_app_client_id.exs @@ -1,3 +1,7 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2022 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + defmodule Pleroma.Repo.Migrations.AddUniqueIndexToAppClientId do use Ecto.Migration diff --git a/priv/repo/migrations/20200806175913_rename_instance_chat.exs b/priv/repo/migrations/20200806175913_rename_instance_chat.exs index 31585efe8..47c568db7 100644 --- a/priv/repo/migrations/20200806175913_rename_instance_chat.exs +++ b/priv/repo/migrations/20200806175913_rename_instance_chat.exs @@ -1,3 +1,7 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2022 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + defmodule Pleroma.Repo.Migrations.RenameInstanceChat do use Ecto.Migration diff --git a/priv/repo/migrations/20200808173046_only_expire_creates.exs b/priv/repo/migrations/20200808173046_only_expire_creates.exs index 9df52956f..5e8fd4eff 100644 --- a/priv/repo/migrations/20200808173046_only_expire_creates.exs +++ b/priv/repo/migrations/20200808173046_only_expire_creates.exs @@ -1,3 +1,7 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2022 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + defmodule Pleroma.Repo.Migrations.OnlyExpireCreates do use Ecto.Migration diff --git a/priv/repo/migrations/20200811125613_set_defaults_to_user_approval_pending.exs b/priv/repo/migrations/20200811125613_set_defaults_to_user_approval_pending.exs index eec7da03f..38be1a1cb 100644 --- a/priv/repo/migrations/20200811125613_set_defaults_to_user_approval_pending.exs +++ b/priv/repo/migrations/20200811125613_set_defaults_to_user_approval_pending.exs @@ -1,3 +1,7 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2022 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + defmodule Pleroma.Repo.Migrations.SetDefaultsToUserApprovalPending do use Ecto.Migration diff --git a/priv/repo/migrations/20200811143147_ap_id_not_null.exs b/priv/repo/migrations/20200811143147_ap_id_not_null.exs index df649c7ca..a160daef4 100644 --- a/priv/repo/migrations/20200811143147_ap_id_not_null.exs +++ b/priv/repo/migrations/20200811143147_ap_id_not_null.exs @@ -1,3 +1,7 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2022 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + defmodule Pleroma.Repo.Migrations.ApIdNotNull do use Ecto.Migration diff --git a/priv/repo/migrations/20200817120935_add_invisible_index_to_users.exs b/priv/repo/migrations/20200817120935_add_invisible_index_to_users.exs index 2417d366e..8132bb01a 100644 --- a/priv/repo/migrations/20200817120935_add_invisible_index_to_users.exs +++ b/priv/repo/migrations/20200817120935_add_invisible_index_to_users.exs @@ -1,3 +1,7 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2022 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + defmodule Pleroma.Repo.Migrations.AddInvisibleIndexToUsers do use Ecto.Migration diff --git a/priv/repo/migrations/20200824115541_rename_activity_expiration_setting.exs b/priv/repo/migrations/20200824115541_rename_activity_expiration_setting.exs index 241882ef6..f4a79066c 100644 --- a/priv/repo/migrations/20200824115541_rename_activity_expiration_setting.exs +++ b/priv/repo/migrations/20200824115541_rename_activity_expiration_setting.exs @@ -1,3 +1,7 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2022 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + defmodule Pleroma.Repo.Migrations.RenameActivityExpirationSetting do use Ecto.Migration diff --git a/priv/repo/migrations/20200825061316_move_activity_expirations_to_oban.exs b/priv/repo/migrations/20200825061316_move_activity_expirations_to_oban.exs index 096ab4ce5..f15876180 100644 --- a/priv/repo/migrations/20200825061316_move_activity_expirations_to_oban.exs +++ b/priv/repo/migrations/20200825061316_move_activity_expirations_to_oban.exs @@ -1,3 +1,7 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2022 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + defmodule Pleroma.Repo.Migrations.MoveActivityExpirationsToOban do use Ecto.Migration diff --git a/priv/repo/migrations/20200825093037_drop_activity_expirations_table.exs b/priv/repo/migrations/20200825093037_drop_activity_expirations_table.exs index 11c461427..fb3ed6804 100644 --- a/priv/repo/migrations/20200825093037_drop_activity_expirations_table.exs +++ b/priv/repo/migrations/20200825093037_drop_activity_expirations_table.exs @@ -1,3 +1,7 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2022 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + defmodule Pleroma.Repo.Migrations.DropActivityExpirationsTable do use Ecto.Migration diff --git a/priv/repo/migrations/20200831114918_remove_unread_conversation_count_from_user.exs b/priv/repo/migrations/20200831114918_remove_unread_conversation_count_from_user.exs index b7bdb9166..cf8f80de7 100644 --- a/priv/repo/migrations/20200831114918_remove_unread_conversation_count_from_user.exs +++ b/priv/repo/migrations/20200831114918_remove_unread_conversation_count_from_user.exs @@ -1,3 +1,7 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2022 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + defmodule Pleroma.Repo.Migrations.RemoveUnreadConversationCountFromUser do use Ecto.Migration import Ecto.Query diff --git a/priv/repo/migrations/20200831115854_add_unread_index_to_conversation_participation.exs b/priv/repo/migrations/20200831115854_add_unread_index_to_conversation_participation.exs index 68771c655..fb4081387 100644 --- a/priv/repo/migrations/20200831115854_add_unread_index_to_conversation_participation.exs +++ b/priv/repo/migrations/20200831115854_add_unread_index_to_conversation_participation.exs @@ -1,3 +1,7 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2022 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + defmodule Pleroma.Repo.Migrations.AddUnreadIndexToConversationParticipation do use Ecto.Migration diff --git a/priv/repo/migrations/20200831142509_chat_constraints.exs b/priv/repo/migrations/20200831142509_chat_constraints.exs index 868a40a45..207f3cf18 100644 --- a/priv/repo/migrations/20200831142509_chat_constraints.exs +++ b/priv/repo/migrations/20200831142509_chat_constraints.exs @@ -1,3 +1,7 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2022 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + defmodule Pleroma.Repo.Migrations.ChatConstraints do use Ecto.Migration diff --git a/priv/repo/migrations/20200831152600_add_pleroma_report_to_enum_for_notifications.exs b/priv/repo/migrations/20200831152600_add_pleroma_report_to_enum_for_notifications.exs index 01fb90459..3c1b16bad 100644 --- a/priv/repo/migrations/20200831152600_add_pleroma_report_to_enum_for_notifications.exs +++ b/priv/repo/migrations/20200831152600_add_pleroma_report_to_enum_for_notifications.exs @@ -1,3 +1,7 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2022 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + defmodule Pleroma.Repo.Migrations.AddPleromaReportTypeToEnumForNotifications do use Ecto.Migration diff --git a/priv/repo/migrations/20200831192323_create_backups.exs b/priv/repo/migrations/20200831192323_create_backups.exs index 3ac5889e2..e3102f764 100644 --- a/priv/repo/migrations/20200831192323_create_backups.exs +++ b/priv/repo/migrations/20200831192323_create_backups.exs @@ -1,3 +1,7 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2022 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + defmodule Pleroma.Repo.Migrations.CreateBackups do use Ecto.Migration diff --git a/priv/repo/migrations/20200901061256_ensure_bio_is_string.exs b/priv/repo/migrations/20200901061256_ensure_bio_is_string.exs index 0e3bb3c81..c614e6fbe 100644 --- a/priv/repo/migrations/20200901061256_ensure_bio_is_string.exs +++ b/priv/repo/migrations/20200901061256_ensure_bio_is_string.exs @@ -1,3 +1,7 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2022 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + defmodule Pleroma.Repo.Migrations.EnsureBioIsString do use Ecto.Migration diff --git a/priv/repo/migrations/20200901061637_bio_set_not_null.exs b/priv/repo/migrations/20200901061637_bio_set_not_null.exs index e3a67d4e7..eed983c01 100644 --- a/priv/repo/migrations/20200901061637_bio_set_not_null.exs +++ b/priv/repo/migrations/20200901061637_bio_set_not_null.exs @@ -1,3 +1,7 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2022 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + defmodule Pleroma.Repo.Migrations.BioSetNotNull do use Ecto.Migration diff --git a/priv/repo/migrations/20200905082737_rename_await_up_timeout_in_connections_pool.exs b/priv/repo/migrations/20200905082737_rename_await_up_timeout_in_connections_pool.exs index 22c40663c..08f1e50e8 100644 --- a/priv/repo/migrations/20200905082737_rename_await_up_timeout_in_connections_pool.exs +++ b/priv/repo/migrations/20200905082737_rename_await_up_timeout_in_connections_pool.exs @@ -1,3 +1,7 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2022 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + defmodule Pleroma.Repo.Migrations.RenameAwaitUpTimeoutInConnectionsPool do use Ecto.Migration diff --git a/priv/repo/migrations/20200905091427_rename_timeout_in_pools.exs b/priv/repo/migrations/20200905091427_rename_timeout_in_pools.exs index bb2f50ecc..026f7956c 100644 --- a/priv/repo/migrations/20200905091427_rename_timeout_in_pools.exs +++ b/priv/repo/migrations/20200905091427_rename_timeout_in_pools.exs @@ -1,3 +1,7 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2022 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + defmodule Pleroma.Repo.Migrations.RenameTimeoutInPools do use Ecto.Migration diff --git a/priv/repo/migrations/20200906072147_remove_cron_stats_worker_from_oban_config.exs b/priv/repo/migrations/20200906072147_remove_cron_stats_worker_from_oban_config.exs index 022f21dc7..8b6501c4e 100644 --- a/priv/repo/migrations/20200906072147_remove_cron_stats_worker_from_oban_config.exs +++ b/priv/repo/migrations/20200906072147_remove_cron_stats_worker_from_oban_config.exs @@ -1,3 +1,7 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2022 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + defmodule Pleroma.Repo.Migrations.RemoveCronStatsWorkerFromObanConfig do use Ecto.Migration diff --git a/priv/repo/migrations/20200907084956_remove_cron_clear_oauth_token_worker_from_oban_config.exs b/priv/repo/migrations/20200907084956_remove_cron_clear_oauth_token_worker_from_oban_config.exs index b5a0a0ff6..278bd3331 100644 --- a/priv/repo/migrations/20200907084956_remove_cron_clear_oauth_token_worker_from_oban_config.exs +++ b/priv/repo/migrations/20200907084956_remove_cron_clear_oauth_token_worker_from_oban_config.exs @@ -1,3 +1,7 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2022 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + defmodule Pleroma.Repo.Migrations.RemoveCronClearOauthTokenWorkerFromObanConfig do use Ecto.Migration diff --git a/priv/repo/migrations/20200907092050_move_tokens_expiration_into_oban.exs b/priv/repo/migrations/20200907092050_move_tokens_expiration_into_oban.exs index 725c5ab0b..c140bc66a 100644 --- a/priv/repo/migrations/20200907092050_move_tokens_expiration_into_oban.exs +++ b/priv/repo/migrations/20200907092050_move_tokens_expiration_into_oban.exs @@ -1,3 +1,7 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2022 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + defmodule Pleroma.Repo.Migrations.MoveTokensExpirationIntoOban do use Ecto.Migration diff --git a/priv/repo/migrations/20200910113106_remove_managed_config_from_db.exs b/priv/repo/migrations/20200910113106_remove_managed_config_from_db.exs index e27a9ae48..d81f31860 100644 --- a/priv/repo/migrations/20200910113106_remove_managed_config_from_db.exs +++ b/priv/repo/migrations/20200910113106_remove_managed_config_from_db.exs @@ -1,3 +1,7 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2022 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + defmodule Pleroma.Repo.Migrations.RemoveManagedConfigFromDb do use Ecto.Migration import Ecto.Query diff --git a/priv/repo/migrations/20200911055909_remove_cron_jobs.exs b/priv/repo/migrations/20200911055909_remove_cron_jobs.exs index 33897d128..3885453c2 100644 --- a/priv/repo/migrations/20200911055909_remove_cron_jobs.exs +++ b/priv/repo/migrations/20200911055909_remove_cron_jobs.exs @@ -1,3 +1,7 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2022 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + defmodule Pleroma.Repo.Migrations.RemoveCronJobs do use Ecto.Migration diff --git a/priv/repo/migrations/20200914105638_delete_notification_without_activity.exs b/priv/repo/migrations/20200914105638_delete_notification_without_activity.exs index 9333fc5a1..9ff4fcff6 100644 --- a/priv/repo/migrations/20200914105638_delete_notification_without_activity.exs +++ b/priv/repo/migrations/20200914105638_delete_notification_without_activity.exs @@ -1,3 +1,7 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2022 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + defmodule Pleroma.Repo.Migrations.DeleteNotificationWithoutActivity do use Ecto.Migration diff --git a/priv/repo/migrations/20200914105800_add_notification_constraints.exs b/priv/repo/migrations/20200914105800_add_notification_constraints.exs index a65c35fd0..d2f88bc62 100644 --- a/priv/repo/migrations/20200914105800_add_notification_constraints.exs +++ b/priv/repo/migrations/20200914105800_add_notification_constraints.exs @@ -1,3 +1,7 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2022 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + defmodule Pleroma.Repo.Migrations.AddNotificationConstraints do use Ecto.Migration diff --git a/priv/repo/migrations/20200915095704_remove_background_jobs.exs b/priv/repo/migrations/20200915095704_remove_background_jobs.exs index 9785bfb8a..0881aa3a0 100644 --- a/priv/repo/migrations/20200915095704_remove_background_jobs.exs +++ b/priv/repo/migrations/20200915095704_remove_background_jobs.exs @@ -1,3 +1,7 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2022 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + defmodule Pleroma.Repo.Migrations.RemoveBackgroundJobs do use Ecto.Migration diff --git a/priv/repo/migrations/20200919182636_remoteip_plug_rename.exs b/priv/repo/migrations/20200919182636_remoteip_plug_rename.exs index 77c3b6db1..b9a8fd0e1 100644 --- a/priv/repo/migrations/20200919182636_remoteip_plug_rename.exs +++ b/priv/repo/migrations/20200919182636_remoteip_plug_rename.exs @@ -1,3 +1,7 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2022 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + defmodule Pleroma.Repo.Migrations.RemoteipPlugRename do use Ecto.Migration diff --git a/priv/repo/migrations/20200925065249_make_user_ids_ci.exs b/priv/repo/migrations/20200925065249_make_user_ids_ci.exs index 8ea0f2cf1..dc5cbd4e2 100644 --- a/priv/repo/migrations/20200925065249_make_user_ids_ci.exs +++ b/priv/repo/migrations/20200925065249_make_user_ids_ci.exs @@ -1,3 +1,7 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2022 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + defmodule Pleroma.Repo.Migrations.MakeUserIdsCI do use Ecto.Migration diff --git a/priv/repo/migrations/20200928145912_revert_citext_change.exs b/priv/repo/migrations/20200928145912_revert_citext_change.exs index 685a98533..98a8dc9fa 100644 --- a/priv/repo/migrations/20200928145912_revert_citext_change.exs +++ b/priv/repo/migrations/20200928145912_revert_citext_change.exs @@ -1,3 +1,7 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2022 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + defmodule Pleroma.Repo.Migrations.RevertCitextChange do use Ecto.Migration diff --git a/priv/repo/migrations/20200930082320_user_ur_is_index_part_three.exs b/priv/repo/migrations/20200930082320_user_ur_is_index_part_three.exs index 816c6526e..42060caee 100644 --- a/priv/repo/migrations/20200930082320_user_ur_is_index_part_three.exs +++ b/priv/repo/migrations/20200930082320_user_ur_is_index_part_three.exs @@ -1,3 +1,7 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2022 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + defmodule Pleroma.Repo.Migrations.UserURIsIndexPartThree do use Ecto.Migration diff --git a/priv/repo/migrations/20201005123100_simple_policy_string_to_tuple.exs b/priv/repo/migrations/20201005123100_simple_policy_string_to_tuple.exs new file mode 100644 index 000000000..4c6b09da6 --- /dev/null +++ b/priv/repo/migrations/20201005123100_simple_policy_string_to_tuple.exs @@ -0,0 +1,44 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2022 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + +defmodule Pleroma.Repo.Migrations.SimplePolicyStringToTuple do + use Ecto.Migration + + alias Pleroma.ConfigDB + + def up, do: ConfigDB.get_by_params(%{group: :pleroma, key: :mrf_simple}) |> update_to_tuples + def down, do: ConfigDB.get_by_params(%{group: :pleroma, key: :mrf_simple}) |> update_to_strings + + defp update_to_tuples(%{value: value}) do + new_value = + value + |> Enum.map(fn {k, v} -> + {k, + Enum.map(v, fn + {instance, reason} -> {instance, reason} + instance -> {instance, ""} + end)} + end) + + ConfigDB.update_or_create(%{group: :pleroma, key: :mrf_simple, value: new_value}) + end + + defp update_to_tuples(nil), do: {:ok, nil} + + defp update_to_strings(%{value: value}) do + new_value = + value + |> Enum.map(fn {k, v} -> + {k, + Enum.map(v, fn + {instance, _} -> instance + instance -> instance + end)} + end) + + ConfigDB.update_or_create(%{group: :pleroma, key: :mrf_simple, value: new_value}) + end + + defp update_to_strings(nil), do: {:ok, nil} +end diff --git a/priv/repo/migrations/20201005124600_quarantained_policy_string_to_tuple.exs b/priv/repo/migrations/20201005124600_quarantained_policy_string_to_tuple.exs new file mode 100644 index 000000000..9478227bc --- /dev/null +++ b/priv/repo/migrations/20201005124600_quarantained_policy_string_to_tuple.exs @@ -0,0 +1,65 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2022 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + +defmodule Pleroma.Repo.Migrations.QuarantainedStringToTuple do + use Ecto.Migration + + alias Pleroma.ConfigDB + + def up, + do: + ConfigDB.get_by_params(%{group: :pleroma, key: :instance}) + |> update_quarantined_instances_to_tuples + + def down, + do: + ConfigDB.get_by_params(%{group: :pleroma, key: :instance}) + |> update_quarantined_instances_to_strings + + defp update_quarantined_instances_to_tuples(%{value: settings}) do + settings |> List.keyfind(:quarantined_instances, 0) |> update_to_tuples + end + + defp update_quarantined_instances_to_tuples(nil), do: {:ok, nil} + + defp update_to_tuples({:quarantined_instances, instance_list}) do + new_value = + instance_list + |> Enum.map(fn + {v, r} -> {v, r} + v -> {v, ""} + end) + + ConfigDB.update_or_create(%{ + group: :pleroma, + key: :instance, + value: [quarantined_instances: new_value] + }) + end + + defp update_to_tuples(nil), do: {:ok, nil} + + defp update_quarantined_instances_to_strings(%{value: settings}) do + settings |> List.keyfind(:quarantined_instances, 0) |> update_to_strings + end + + defp update_quarantined_instances_to_strings(nil), do: {:ok, nil} + + defp update_to_strings({:quarantined_instances, instance_list}) do + new_value = + instance_list + |> Enum.map(fn + {v, _} -> v + v -> v + end) + + ConfigDB.update_or_create(%{ + group: :pleroma, + key: :instance, + value: [quarantined_instances: new_value] + }) + end + + defp update_to_strings(nil), do: {:ok, nil} +end diff --git a/priv/repo/migrations/20201005132900_transparency_exclusions_string_to_tuple.exs b/priv/repo/migrations/20201005132900_transparency_exclusions_string_to_tuple.exs new file mode 100644 index 000000000..53b73ea2f --- /dev/null +++ b/priv/repo/migrations/20201005132900_transparency_exclusions_string_to_tuple.exs @@ -0,0 +1,65 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2022 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + +defmodule Pleroma.Repo.Migrations.TransparencyExclusionsStringToTuple do + use Ecto.Migration + + alias Pleroma.ConfigDB + + def up, + do: + ConfigDB.get_by_params(%{group: :pleroma, key: :mrf}) + |> update_transparency_exclusions_instances_to_tuples + + def down, + do: + ConfigDB.get_by_params(%{group: :pleroma, key: :mrf}) + |> update_transparency_exclusions_instances_to_strings + + defp update_transparency_exclusions_instances_to_tuples(%{value: settings}) do + settings |> List.keyfind(:transparency_exclusions, 0) |> update_to_tuples + end + + defp update_transparency_exclusions_instances_to_tuples(nil), do: {:ok, nil} + + defp update_to_tuples({:transparency_exclusions, instance_list}) do + new_value = + instance_list + |> Enum.map(fn + {v, r} -> {v, r} + v -> {v, ""} + end) + + ConfigDB.update_or_create(%{ + group: :pleroma, + key: :mrf, + value: [transparency_exclusions: new_value] + }) + end + + defp update_to_tuples(nil), do: {:ok, nil} + + defp update_transparency_exclusions_instances_to_strings(%{value: settings}) do + settings |> List.keyfind(:transparency_exclusions, 0) |> update_to_strings + end + + defp update_transparency_exclusions_instances_to_strings(nil), do: {:ok, nil} + + defp update_to_strings({:transparency_exclusions, instance_list}) do + new_value = + instance_list + |> Enum.map(fn + {v, _} -> v + v -> v + end) + + ConfigDB.update_or_create(%{ + group: :pleroma, + key: :mrf, + value: [transparency_exclusions: new_value] + }) + end + + defp update_to_strings(nil), do: {:ok, nil} +end diff --git a/priv/repo/migrations/20201012173004_refactor_deactivated_user_field.exs b/priv/repo/migrations/20201012173004_refactor_deactivated_user_field.exs index 58b75b436..55adafd2a 100644 --- a/priv/repo/migrations/20201012173004_refactor_deactivated_user_field.exs +++ b/priv/repo/migrations/20201012173004_refactor_deactivated_user_field.exs @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2020 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Repo.Migrations.RefactorDeactivatedUserField do diff --git a/priv/repo/migrations/20201013141127_refactor_locked_user_field.exs b/priv/repo/migrations/20201013141127_refactor_locked_user_field.exs index 3fb643372..473287f94 100644 --- a/priv/repo/migrations/20201013141127_refactor_locked_user_field.exs +++ b/priv/repo/migrations/20201013141127_refactor_locked_user_field.exs @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Repo.Migrations.RefactorLockedUserField do diff --git a/priv/repo/migrations/20201013144052_refactor_discoverable_user_field.exs b/priv/repo/migrations/20201013144052_refactor_discoverable_user_field.exs index 6d6738e90..aeb6f24aa 100644 --- a/priv/repo/migrations/20201013144052_refactor_discoverable_user_field.exs +++ b/priv/repo/migrations/20201013144052_refactor_discoverable_user_field.exs @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Repo.Migrations.RefactorDiscoverableUserField do diff --git a/priv/repo/migrations/20201013184200_refactor_confirmation_pending_user_field.exs b/priv/repo/migrations/20201013184200_refactor_confirmation_pending_user_field.exs index d0dc42827..922d75430 100644 --- a/priv/repo/migrations/20201013184200_refactor_confirmation_pending_user_field.exs +++ b/priv/repo/migrations/20201013184200_refactor_confirmation_pending_user_field.exs @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2020 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Repo.Migrations.RefactorConfirmationPendingUserField do diff --git a/priv/repo/migrations/20201016205220_refactor_approval_pending_user_field.exs b/priv/repo/migrations/20201016205220_refactor_approval_pending_user_field.exs index 944dcf8de..f49f60067 100644 --- a/priv/repo/migrations/20201016205220_refactor_approval_pending_user_field.exs +++ b/priv/repo/migrations/20201016205220_refactor_approval_pending_user_field.exs @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2020 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Repo.Migrations.RefactorApprovalPendingUserField do diff --git a/priv/repo/migrations/20201113060459_remove_purge_expired_activity_worker_from_oban_config.exs b/priv/repo/migrations/20201113060459_remove_purge_expired_activity_worker_from_oban_config.exs index fe31f4442..4fbefd296 100644 --- a/priv/repo/migrations/20201113060459_remove_purge_expired_activity_worker_from_oban_config.exs +++ b/priv/repo/migrations/20201113060459_remove_purge_expired_activity_worker_from_oban_config.exs @@ -1,3 +1,7 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2022 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + defmodule Pleroma.Repo.Migrations.RemovePurgeExpiredActivityWorkerFromObanConfig do use Ecto.Migration diff --git a/priv/repo/migrations/20201217172858_data_migration_prolong_o_auth_tokens_valid_until.exs b/priv/repo/migrations/20201217172858_data_migration_prolong_o_auth_tokens_valid_until.exs index 560cc7447..0c7773a58 100644 --- a/priv/repo/migrations/20201217172858_data_migration_prolong_o_auth_tokens_valid_until.exs +++ b/priv/repo/migrations/20201217172858_data_migration_prolong_o_auth_tokens_valid_until.exs @@ -1,3 +1,7 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2022 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + defmodule Pleroma.Repo.Migrations.DataMigrationProlongOAuthTokensValidUntil do use Ecto.Migration diff --git a/priv/repo/migrations/20201221202251_create_hashtags.exs b/priv/repo/migrations/20201221202251_create_hashtags.exs index 8d2e9ae66..93bcfde53 100644 --- a/priv/repo/migrations/20201221202251_create_hashtags.exs +++ b/priv/repo/migrations/20201221202251_create_hashtags.exs @@ -1,3 +1,7 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2022 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + defmodule Pleroma.Repo.Migrations.CreateHashtags do use Ecto.Migration diff --git a/priv/repo/migrations/20201221202252_remove_data_from_hashtags.exs b/priv/repo/migrations/20201221202252_remove_data_from_hashtags.exs index 0442c3b87..e3d9edef5 100644 --- a/priv/repo/migrations/20201221202252_remove_data_from_hashtags.exs +++ b/priv/repo/migrations/20201221202252_remove_data_from_hashtags.exs @@ -1,3 +1,7 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2022 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + defmodule Pleroma.Repo.Migrations.RemoveDataFromHashtags do use Ecto.Migration diff --git a/priv/repo/migrations/20201221203824_create_hashtags_objects.exs b/priv/repo/migrations/20201221203824_create_hashtags_objects.exs index 581f32b3c..34049549f 100644 --- a/priv/repo/migrations/20201221203824_create_hashtags_objects.exs +++ b/priv/repo/migrations/20201221203824_create_hashtags_objects.exs @@ -1,3 +1,7 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2022 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + defmodule Pleroma.Repo.Migrations.CreateHashtagsObjects do use Ecto.Migration diff --git a/priv/repo/migrations/20201231185546_confirm_logged_in_users.exs b/priv/repo/migrations/20201231185546_confirm_logged_in_users.exs index b9656c17b..6dc3435ed 100644 --- a/priv/repo/migrations/20201231185546_confirm_logged_in_users.exs +++ b/priv/repo/migrations/20201231185546_confirm_logged_in_users.exs @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Repo.Migrations.ConfirmLoggedInUsers do diff --git a/priv/repo/migrations/20210105195018_create_data_migrations.exs b/priv/repo/migrations/20210105195018_create_data_migrations.exs index 5f2e8d96c..622daf483 100644 --- a/priv/repo/migrations/20210105195018_create_data_migrations.exs +++ b/priv/repo/migrations/20210105195018_create_data_migrations.exs @@ -1,3 +1,7 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2022 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + defmodule Pleroma.Repo.Migrations.CreateDataMigrations do use Ecto.Migration diff --git a/priv/repo/migrations/20210106183301_data_migration_create_populate_hashtags_table.exs b/priv/repo/migrations/20210106183301_data_migration_create_populate_hashtags_table.exs index cf3cf26a0..f858cca13 100644 --- a/priv/repo/migrations/20210106183301_data_migration_create_populate_hashtags_table.exs +++ b/priv/repo/migrations/20210106183301_data_migration_create_populate_hashtags_table.exs @@ -1,3 +1,7 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2022 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + defmodule Pleroma.Repo.Migrations.DataMigrationCreatePopulateHashtagsTable do use Ecto.Migration diff --git a/priv/repo/migrations/20210111172254_create_data_migration_failed_ids.exs b/priv/repo/migrations/20210111172254_create_data_migration_failed_ids.exs index 18afa74ac..dda31436c 100644 --- a/priv/repo/migrations/20210111172254_create_data_migration_failed_ids.exs +++ b/priv/repo/migrations/20210111172254_create_data_migration_failed_ids.exs @@ -1,3 +1,7 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2022 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + defmodule Pleroma.Repo.Migrations.CreateDataMigrationFailedIds do use Ecto.Migration diff --git a/priv/repo/migrations/20210113225652_deprecate_public_endpoint.exs b/priv/repo/migrations/20210113225652_deprecate_public_endpoint.exs index 6f470a459..a15b05d0a 100644 --- a/priv/repo/migrations/20210113225652_deprecate_public_endpoint.exs +++ b/priv/repo/migrations/20210113225652_deprecate_public_endpoint.exs @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Repo.Migrations.DeprecatePublicEndpoint do diff --git a/priv/repo/migrations/20210115205649_upgrade_oban_jobs_to_v9.exs b/priv/repo/migrations/20210115205649_upgrade_oban_jobs_to_v9.exs index bfb405579..e7f138e3f 100644 --- a/priv/repo/migrations/20210115205649_upgrade_oban_jobs_to_v9.exs +++ b/priv/repo/migrations/20210115205649_upgrade_oban_jobs_to_v9.exs @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors +# Copyright © 2017-2022 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Repo.Migrations.UpgradeObanJobsToV9 do diff --git a/priv/repo/migrations/20210121080964_add_default_text_search_config.exs b/priv/repo/migrations/20210121080964_add_default_text_search_config.exs index 27f600b70..31133845a 100644 --- a/priv/repo/migrations/20210121080964_add_default_text_search_config.exs +++ b/priv/repo/migrations/20210121080964_add_default_text_search_config.exs @@ -1,3 +1,7 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2022 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + defmodule Pleroma.Repo.Migrations.AddDefaultTextSearchConfig do use Ecto.Migration diff --git a/priv/repo/migrations/20210122151424_add_last_active_at_to_users.exs b/priv/repo/migrations/20210122151424_add_last_active_at_to_users.exs index 9671e495b..8c1f7f4b6 100644 --- a/priv/repo/migrations/20210122151424_add_last_active_at_to_users.exs +++ b/priv/repo/migrations/20210122151424_add_last_active_at_to_users.exs @@ -1,3 +1,7 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2022 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + defmodule Pleroma.Repo.Migrations.AddLastActiveAtToUsers do use Ecto.Migration diff --git a/priv/repo/migrations/20210128092834_remove_duplicates_from_activity_expiration_queue.exs b/priv/repo/migrations/20210128092834_remove_duplicates_from_activity_expiration_queue.exs index 309009205..a666d5cd4 100644 --- a/priv/repo/migrations/20210128092834_remove_duplicates_from_activity_expiration_queue.exs +++ b/priv/repo/migrations/20210128092834_remove_duplicates_from_activity_expiration_queue.exs @@ -1,3 +1,7 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2022 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + defmodule Pleroma.Repo.Migrations.RemoveDuplicatesFromActivityExpirationQueue do use Ecto.Migration diff --git a/priv/repo/migrations/20210202110641_add_pinned_objects_to_users.exs b/priv/repo/migrations/20210202110641_add_pinned_objects_to_users.exs index 644527246..58396612b 100644 --- a/priv/repo/migrations/20210202110641_add_pinned_objects_to_users.exs +++ b/priv/repo/migrations/20210202110641_add_pinned_objects_to_users.exs @@ -1,3 +1,7 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2022 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + defmodule Pleroma.Repo.Migrations.AddPinnedObjectsToUsers do use Ecto.Migration diff --git a/priv/repo/migrations/20210203141144_add_featured_address_to_users.exs b/priv/repo/migrations/20210203141144_add_featured_address_to_users.exs index 0f6a21611..082166237 100644 --- a/priv/repo/migrations/20210203141144_add_featured_address_to_users.exs +++ b/priv/repo/migrations/20210203141144_add_featured_address_to_users.exs @@ -1,3 +1,7 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2022 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + defmodule Pleroma.Repo.Migrations.AddFeaturedAddressToUsers do use Ecto.Migration diff --git a/priv/repo/migrations/20210205145000_move_pinned_activities_into_pinned_objects.exs b/priv/repo/migrations/20210205145000_move_pinned_activities_into_pinned_objects.exs index 9aee545e3..cf42729d3 100644 --- a/priv/repo/migrations/20210205145000_move_pinned_activities_into_pinned_objects.exs +++ b/priv/repo/migrations/20210205145000_move_pinned_activities_into_pinned_objects.exs @@ -1,3 +1,7 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2022 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + defmodule Pleroma.Repo.Migrations.MovePinnedActivitiesIntoPinnedObjects do use Ecto.Migration diff --git a/priv/repo/migrations/20210206045221_remove_pinned_activities_from_users.exs b/priv/repo/migrations/20210206045221_remove_pinned_activities_from_users.exs index a3ee93f48..9636068af 100644 --- a/priv/repo/migrations/20210206045221_remove_pinned_activities_from_users.exs +++ b/priv/repo/migrations/20210206045221_remove_pinned_activities_from_users.exs @@ -1,3 +1,7 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2022 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + defmodule Pleroma.Repo.Migrations.RemovePinnedActivitiesFromUsers do use Ecto.Migration diff --git a/priv/repo/migrations/20210218223811_add_disclose_client_to_users.exs b/priv/repo/migrations/20210218223811_add_disclose_client_to_users.exs index 37c5776ff..1c80b6a86 100644 --- a/priv/repo/migrations/20210218223811_add_disclose_client_to_users.exs +++ b/priv/repo/migrations/20210218223811_add_disclose_client_to_users.exs @@ -1,3 +1,7 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2022 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + defmodule Pleroma.Repo.Migrations.AddDiscloseClientToUsers do use Ecto.Migration diff --git a/priv/repo/migrations/20210222183840_remove_hashtags_objects_duplicate_index.exs b/priv/repo/migrations/20210222183840_remove_hashtags_objects_duplicate_index.exs index 6c4a2dfdc..4ea7ebe30 100644 --- a/priv/repo/migrations/20210222183840_remove_hashtags_objects_duplicate_index.exs +++ b/priv/repo/migrations/20210222183840_remove_hashtags_objects_duplicate_index.exs @@ -1,3 +1,7 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2022 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + defmodule Pleroma.Repo.Migrations.RemoveHashtagsObjectsDuplicateIndex do use Ecto.Migration diff --git a/priv/repo/migrations/20210222184616_change_hashtags_name_to_text.exs b/priv/repo/migrations/20210222184616_change_hashtags_name_to_text.exs index 8940b6ca3..e8c474f6a 100644 --- a/priv/repo/migrations/20210222184616_change_hashtags_name_to_text.exs +++ b/priv/repo/migrations/20210222184616_change_hashtags_name_to_text.exs @@ -1,3 +1,7 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2022 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + defmodule Pleroma.Repo.Migrations.ChangeHashtagsNameToText do use Ecto.Migration diff --git a/priv/repo/migrations/20210401143153_user_notification_settings_fix.exs b/priv/repo/migrations/20210401143153_user_notification_settings_fix.exs index cf68f1be6..3fd325789 100644 --- a/priv/repo/migrations/20210401143153_user_notification_settings_fix.exs +++ b/priv/repo/migrations/20210401143153_user_notification_settings_fix.exs @@ -1,3 +1,7 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2022 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + defmodule Pleroma.Repo.Migrations.UserNotificationSettingsFix do use Ecto.Migration diff --git a/priv/repo/migrations/20210416051708_remove_mastofe_settings_from_users.exs b/priv/repo/migrations/20210416051708_remove_mastofe_settings_from_users.exs new file mode 100644 index 000000000..4f6a43524 --- /dev/null +++ b/priv/repo/migrations/20210416051708_remove_mastofe_settings_from_users.exs @@ -0,0 +1,13 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2022 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + +defmodule Pleroma.Repo.Migrations.RemoveMastofeSettingsFromUsers do + use Ecto.Migration + + def change do + alter table(:users) do + remove_if_exists(:mastofe_settings, :map) + end + end +end diff --git a/priv/repo/migrations/20210420204354_delete_hashtags_objects_cascade.exs b/priv/repo/migrations/20210420204354_delete_hashtags_objects_cascade.exs index f4ebf53d6..195b60a4c 100644 --- a/priv/repo/migrations/20210420204354_delete_hashtags_objects_cascade.exs +++ b/priv/repo/migrations/20210420204354_delete_hashtags_objects_cascade.exs @@ -1,3 +1,7 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2022 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + defmodule Pleroma.Repo.Migrations.DeleteHashtagsObjectsCascade do use Ecto.Migration diff --git a/priv/repo/migrations/20210717000000_add_poll_to_notifications_enum.exs b/priv/repo/migrations/20210717000000_add_poll_to_notifications_enum.exs new file mode 100644 index 000000000..3b3abf5cf --- /dev/null +++ b/priv/repo/migrations/20210717000000_add_poll_to_notifications_enum.exs @@ -0,0 +1,53 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2022 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + +defmodule Pleroma.Repo.Migrations.AddPollToNotificationsEnum do + use Ecto.Migration + + @disable_ddl_transaction true + + def up do + """ + alter type notification_type add value 'poll' + """ + |> execute() + end + + def down do + alter table(:notifications) do + modify(:type, :string) + end + + """ + delete from notifications where type = 'poll' + """ + |> execute() + + """ + drop type if exists notification_type + """ + |> execute() + + """ + create type notification_type as enum ( + 'follow', + 'follow_request', + 'mention', + 'move', + 'pleroma:emoji_reaction', + 'pleroma:chat_mention', + 'reblog', + 'favourite', + 'pleroma:report' + ) + """ + |> execute() + + """ + alter table notifications + alter column type type notification_type using (type::notification_type) + """ + |> execute() + end +end diff --git a/priv/repo/migrations/20210818023112_add_user_id_to_apps.exs b/priv/repo/migrations/20210818023112_add_user_id_to_apps.exs new file mode 100644 index 000000000..b423cfd29 --- /dev/null +++ b/priv/repo/migrations/20210818023112_add_user_id_to_apps.exs @@ -0,0 +1,15 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2022 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + +defmodule Pleroma.Repo.Migrations.AddUserIdToApps do + use Ecto.Migration + + def change do + alter table(:apps) do + add(:user_id, references(:users, type: :uuid, on_delete: :delete_all)) + end + + create_if_not_exists(index(:apps, [:user_id])) + end +end diff --git a/priv/repo/migrations/20211121000000_create_user_notes.exs b/priv/repo/migrations/20211121000000_create_user_notes.exs new file mode 100644 index 000000000..925007bd5 --- /dev/null +++ b/priv/repo/migrations/20211121000000_create_user_notes.exs @@ -0,0 +1,19 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2022 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + +defmodule Pleroma.Repo.Migrations.CreateUserNotes do + use Ecto.Migration + + def change do + create_if_not_exists table(:user_notes) do + add(:source_id, references(:users, type: :uuid, on_delete: :delete_all)) + add(:target_id, references(:users, type: :uuid, on_delete: :delete_all)) + add(:comment, :string) + + timestamps() + end + + create_if_not_exists(unique_index(:user_notes, [:source_id, :target_id])) + end +end diff --git a/priv/repo/migrations/20211125110126_force_pinned_objects_to_exist.exs b/priv/repo/migrations/20211125110126_force_pinned_objects_to_exist.exs new file mode 100644 index 000000000..8749c3e13 --- /dev/null +++ b/priv/repo/migrations/20211125110126_force_pinned_objects_to_exist.exs @@ -0,0 +1,15 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2022 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + +defmodule Pleroma.Repo.Migrations.ForcePinnedObjectsToExist do + use Ecto.Migration + + def change do + execute("UPDATE users SET pinned_objects = '{}' WHERE pinned_objects IS NULL") + + alter table("users") do + modify(:pinned_objects, :map, null: false, default: %{}) + end + end +end diff --git a/priv/repo/migrations/20211126191138_add_suggestions.exs b/priv/repo/migrations/20211126191138_add_suggestions.exs new file mode 100644 index 000000000..2be497b97 --- /dev/null +++ b/priv/repo/migrations/20211126191138_add_suggestions.exs @@ -0,0 +1,15 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2022 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + +defmodule Pleroma.Repo.Migrations.AddSuggestions do + use Ecto.Migration + + def change do + alter table(:users) do + add(:is_suggested, :boolean, default: false, null: false) + end + + create_if_not_exists(index(:users, [:is_suggested])) + end +end diff --git a/priv/repo/migrations/20211222165256_add_last_status_at_to_users.exs b/priv/repo/migrations/20211222165256_add_last_status_at_to_users.exs new file mode 100644 index 000000000..2c956926b --- /dev/null +++ b/priv/repo/migrations/20211222165256_add_last_status_at_to_users.exs @@ -0,0 +1,15 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2022 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + +defmodule Pleroma.Repo.Migrations.AddLastStatusAtToUsers do + use Ecto.Migration + + def change do + alter table(:users) do + add(:last_status_at, :naive_datetime) + end + + create_if_not_exists(index(:users, [:last_status_at])) + end +end diff --git a/priv/repo/migrations/20211225154802_add_is_discoverable_index_to_users.exs b/priv/repo/migrations/20211225154802_add_is_discoverable_index_to_users.exs new file mode 100644 index 000000000..b1ca6e9ae --- /dev/null +++ b/priv/repo/migrations/20211225154802_add_is_discoverable_index_to_users.exs @@ -0,0 +1,11 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2022 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + +defmodule Pleroma.Repo.Migrations.AddIsDiscoverableIndexToUsers do + use Ecto.Migration + + def change do + create(index(:users, [:is_discoverable])) + end +end diff --git a/priv/repo/migrations/20211229075801_user_relationships_target_id_relationship_type_index.exs b/priv/repo/migrations/20211229075801_user_relationships_target_id_relationship_type_index.exs new file mode 100644 index 000000000..f2290c5a6 --- /dev/null +++ b/priv/repo/migrations/20211229075801_user_relationships_target_id_relationship_type_index.exs @@ -0,0 +1,11 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2022 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + +defmodule Pleroma.Repo.Migrations.UserRelationshipsTargetIdRelationshipTypeIndex do + use Ecto.Migration + + def change do + create_if_not_exists(index(:user_relationships, [:target_id, :relationship_type])) + end +end diff --git a/priv/repo/migrations/20220116183110_add_birthday_to_users.exs b/priv/repo/migrations/20220116183110_add_birthday_to_users.exs new file mode 100644 index 000000000..46cf7947f --- /dev/null +++ b/priv/repo/migrations/20220116183110_add_birthday_to_users.exs @@ -0,0 +1,16 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2022 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + +defmodule Pleroma.Repo.Migrations.AddBirthdayToUsers do + use Ecto.Migration + + def change do + alter table(:users) do + add_if_not_exists(:birthday, :date) + add_if_not_exists(:show_birthday, :boolean, default: false, null: false) + end + + create_if_not_exists(index(:users, [:show_birthday])) + end +end diff --git a/priv/repo/migrations/20220125104429_add_birthday_month_day_index_to_users.exs b/priv/repo/migrations/20220125104429_add_birthday_month_day_index_to_users.exs new file mode 100644 index 000000000..e14c69ed0 --- /dev/null +++ b/priv/repo/migrations/20220125104429_add_birthday_month_day_index_to_users.exs @@ -0,0 +1,15 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2022 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + +defmodule Pleroma.Repo.Migrations.AddBirthdayMonthDayIndexToUsers do + use Ecto.Migration + + def change do + create( + index(:users, ["date_part('month', birthday)", "date_part('day', birthday)"], + name: :users_birthday_month_day_index + ) + ) + end +end diff --git a/priv/repo/migrations/20220220135625_upload_filter_exiftool_to_exiftool_strip_location.exs b/priv/repo/migrations/20220220135625_upload_filter_exiftool_to_exiftool_strip_location.exs new file mode 100644 index 000000000..0878b9699 --- /dev/null +++ b/priv/repo/migrations/20220220135625_upload_filter_exiftool_to_exiftool_strip_location.exs @@ -0,0 +1,37 @@ +defmodule Pleroma.Repo.Migrations.UploadFilterExiftoolToExiftoolStripLocation do + use Ecto.Migration + + alias Pleroma.ConfigDB + + def up, + do: + ConfigDB.get_by_params(%{group: :pleroma, key: Pleroma.Upload}) + |> update_filtername( + Pleroma.Upload.Filter.Exiftool, + Pleroma.Upload.Filter.Exiftool.StripLocation + ) + + def down, + do: + ConfigDB.get_by_params(%{group: :pleroma, key: Pleroma.Upload}) + |> update_filtername( + Pleroma.Upload.Filter.Exiftool.StripLocation, + Pleroma.Upload.Filter.Exiftool + ) + + defp update_filtername(%{value: value}, from_filtername, to_filtername) do + new_value = + value + |> Keyword.update(:filters, [], fn filters -> + filters + |> Enum.map(fn + ^from_filtername -> to_filtername + filter -> filter + end) + end) + + ConfigDB.update_or_create(%{group: :pleroma, key: Pleroma.Upload, value: new_value}) + end + + defp update_filtername(_, _, _), do: nil +end diff --git a/priv/repo/migrations/20220302013920_add_language_to_users.exs b/priv/repo/migrations/20220302013920_add_language_to_users.exs new file mode 100644 index 000000000..7a63c36aa --- /dev/null +++ b/priv/repo/migrations/20220302013920_add_language_to_users.exs @@ -0,0 +1,9 @@ +defmodule Pleroma.Repo.Migrations.AddLanguageToUsers do + use Ecto.Migration + + def change do + alter table(:users) do + add_if_not_exists(:language, :string) + end + end +end diff --git a/priv/repo/migrations/20220308012601_create_announcements.exs b/priv/repo/migrations/20220308012601_create_announcements.exs new file mode 100644 index 000000000..01c9ce041 --- /dev/null +++ b/priv/repo/migrations/20220308012601_create_announcements.exs @@ -0,0 +1,26 @@ +defmodule Pleroma.Repo.Migrations.CreateAnnouncements do + use Ecto.Migration + + def change do + create_if_not_exists table(:announcements, primary_key: false) do + add(:id, :uuid, primary_key: true) + add(:data, :map) + add(:starts_at, :naive_datetime) + add(:ends_at, :naive_datetime) + add(:rendered, :map) + + timestamps() + end + + create_if_not_exists table(:announcement_read_relationships) do + add(:user_id, references(:users, type: :uuid, on_delete: :delete_all)) + add(:announcement_id, references(:announcements, type: :uuid, on_delete: :delete_all)) + + timestamps(updated_at: false) + end + + create_if_not_exists( + unique_index(:announcement_read_relationships, [:user_id, :announcement_id]) + ) + end +end diff --git a/priv/repo/migrations/20220506175506_add_index_hotspots.exs b/priv/repo/migrations/20220506175506_add_index_hotspots.exs new file mode 100644 index 000000000..e1f59bbac --- /dev/null +++ b/priv/repo/migrations/20220506175506_add_index_hotspots.exs @@ -0,0 +1,17 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2022 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + +defmodule Pleroma.Repo.Migrations.AddIndexHotspots do + use Ecto.Migration + + def change do + # Stop inserts into activities from doing a full-table scan of users: + create_if_not_exists(index(:users, [:ap_id, "COALESCE(follower_address, '')"])) + + # Change two indexes and a filter recheck into one index scan: + create_if_not_exists(index(:following_relationships, [:follower_id, :state])) + + create_if_not_exists(index(:notifications, [:user_id, :seen])) + end +end diff --git a/priv/repo/migrations/20220509180452_change_thread_visibility_to_be_local_only_aware.exs b/priv/repo/migrations/20220509180452_change_thread_visibility_to_be_local_only_aware.exs new file mode 100644 index 000000000..ea6ae6c5c --- /dev/null +++ b/priv/repo/migrations/20220509180452_change_thread_visibility_to_be_local_only_aware.exs @@ -0,0 +1,153 @@ +defmodule Pleroma.Repo.Migrations.ChangeThreadVisibilityToBeLocalOnlyAware do + use Ecto.Migration + + def up do + execute("DROP FUNCTION IF EXISTS thread_visibility(actor varchar, activity_id varchar)") + execute(update_thread_visibility()) + end + + def down do + execute( + "DROP FUNCTION IF EXISTS thread_visibility(actor varchar, activity_id varchar, local_public varchar)" + ) + + execute(restore_thread_visibility()) + end + + def update_thread_visibility do + """ + CREATE OR REPLACE FUNCTION thread_visibility(actor varchar, activity_id varchar, local_public varchar default '') RETURNS boolean AS $$ + DECLARE + public varchar := 'https://www.w3.org/ns/activitystreams#Public'; + child objects%ROWTYPE; + activity activities%ROWTYPE; + author_fa varchar; + valid_recipients varchar[]; + actor_user_following varchar[]; + BEGIN + --- Fetch actor following + SELECT array_agg(following.follower_address) INTO actor_user_following FROM following_relationships + JOIN users ON users.id = following_relationships.follower_id + JOIN users AS following ON following.id = following_relationships.following_id + WHERE users.ap_id = actor; + + --- Fetch our initial activity. + SELECT * INTO activity FROM activities WHERE activities.data->>'id' = activity_id; + + LOOP + --- Ensure that we have an activity before continuing. + --- If we don't, the thread is not satisfiable. + IF activity IS NULL THEN + RETURN false; + END IF; + + --- We only care about Create activities. + IF activity.data->>'type' != 'Create' THEN + RETURN true; + END IF; + + --- Normalize the child object into child. + SELECT * INTO child FROM objects + INNER JOIN activities ON COALESCE(activities.data->'object'->>'id', activities.data->>'object') = objects.data->>'id' + WHERE COALESCE(activity.data->'object'->>'id', activity.data->>'object') = objects.data->>'id'; + + --- Fetch the author's AS2 following collection. + SELECT COALESCE(users.follower_address, '') INTO author_fa FROM users WHERE users.ap_id = activity.actor; + + --- Prepare valid recipients array. + valid_recipients := ARRAY[actor, public]; + --- If we specified local public, add it. + IF local_public <> '' THEN + valid_recipients := valid_recipients || local_public; + END IF; + IF ARRAY[author_fa] && actor_user_following THEN + valid_recipients := valid_recipients || author_fa; + END IF; + + --- Check visibility. + IF NOT valid_recipients && activity.recipients THEN + --- activity not visible, break out of the loop + RETURN false; + END IF; + + --- If there's a parent, load it and do this all over again. + IF (child.data->'inReplyTo' IS NOT NULL) AND (child.data->'inReplyTo' != 'null'::jsonb) THEN + SELECT * INTO activity FROM activities + INNER JOIN objects ON COALESCE(activities.data->'object'->>'id', activities.data->>'object') = objects.data->>'id' + WHERE child.data->>'inReplyTo' = objects.data->>'id'; + ELSE + RETURN true; + END IF; + END LOOP; + END; + $$ LANGUAGE plpgsql IMMUTABLE; + """ + end + + # priv/repo/migrations/20191007073319_create_following_relationships.exs + def restore_thread_visibility do + """ + CREATE OR REPLACE FUNCTION thread_visibility(actor varchar, activity_id varchar) RETURNS boolean AS $$ + DECLARE + public varchar := 'https://www.w3.org/ns/activitystreams#Public'; + child objects%ROWTYPE; + activity activities%ROWTYPE; + author_fa varchar; + valid_recipients varchar[]; + actor_user_following varchar[]; + BEGIN + --- Fetch actor following + SELECT array_agg(following.follower_address) INTO actor_user_following FROM following_relationships + JOIN users ON users.id = following_relationships.follower_id + JOIN users AS following ON following.id = following_relationships.following_id + WHERE users.ap_id = actor; + + --- Fetch our initial activity. + SELECT * INTO activity FROM activities WHERE activities.data->>'id' = activity_id; + + LOOP + --- Ensure that we have an activity before continuing. + --- If we don't, the thread is not satisfiable. + IF activity IS NULL THEN + RETURN false; + END IF; + + --- We only care about Create activities. + IF activity.data->>'type' != 'Create' THEN + RETURN true; + END IF; + + --- Normalize the child object into child. + SELECT * INTO child FROM objects + INNER JOIN activities ON COALESCE(activities.data->'object'->>'id', activities.data->>'object') = objects.data->>'id' + WHERE COALESCE(activity.data->'object'->>'id', activity.data->>'object') = objects.data->>'id'; + + --- Fetch the author's AS2 following collection. + SELECT COALESCE(users.follower_address, '') INTO author_fa FROM users WHERE users.ap_id = activity.actor; + + --- Prepare valid recipients array. + valid_recipients := ARRAY[actor, public]; + IF ARRAY[author_fa] && actor_user_following THEN + valid_recipients := valid_recipients || author_fa; + END IF; + + --- Check visibility. + IF NOT valid_recipients && activity.recipients THEN + --- activity not visible, break out of the loop + RETURN false; + END IF; + + --- If there's a parent, load it and do this all over again. + IF (child.data->'inReplyTo' IS NOT NULL) AND (child.data->'inReplyTo' != 'null'::jsonb) THEN + SELECT * INTO activity FROM activities + INNER JOIN objects ON COALESCE(activities.data->'object'->>'id', activities.data->>'object') = objects.data->>'id' + WHERE child.data->>'inReplyTo' = objects.data->>'id'; + ELSE + RETURN true; + END IF; + END LOOP; + END; + $$ LANGUAGE plpgsql IMMUTABLE; + """ + end +end diff --git a/priv/repo/migrations/20220602052233_change_report_notes_content_to_text.exs b/priv/repo/migrations/20220602052233_change_report_notes_content_to_text.exs new file mode 100644 index 000000000..9343373fc --- /dev/null +++ b/priv/repo/migrations/20220602052233_change_report_notes_content_to_text.exs @@ -0,0 +1,16 @@ +defmodule Pleroma.Repo.Migrations.ChangeReportNotesContentToText do + use Ecto.Migration + + def up do + alter table(:report_notes) do + modify(:content, :text) + end + end + + # 20191203043610_create_report_notes.exs + def down do + alter table(:report_notes) do + modify(:content, :string) + end + end +end diff --git a/priv/repo/migrations/20220605185734_add_update_to_notifications_enum.exs b/priv/repo/migrations/20220605185734_add_update_to_notifications_enum.exs new file mode 100644 index 000000000..0656c885f --- /dev/null +++ b/priv/repo/migrations/20220605185734_add_update_to_notifications_enum.exs @@ -0,0 +1,51 @@ +defmodule Pleroma.Repo.Migrations.AddUpdateToNotificationsEnum do + use Ecto.Migration + + @disable_ddl_transaction true + + def up do + """ + alter type notification_type add value 'update' + """ + |> execute() + end + + # 20210717000000_add_poll_to_notifications_enum.exs + def down do + alter table(:notifications) do + modify(:type, :string) + end + + """ + delete from notifications where type = 'update' + """ + |> execute() + + """ + drop type if exists notification_type + """ + |> execute() + + """ + create type notification_type as enum ( + 'follow', + 'follow_request', + 'mention', + 'move', + 'pleroma:emoji_reaction', + 'pleroma:chat_mention', + 'reblog', + 'favourite', + 'pleroma:report', + 'poll' + ) + """ + |> execute() + + """ + alter table notifications + alter column type type notification_type using (type::notification_type) + """ + |> execute() + end +end diff --git a/priv/repo/migrations/20220616163503_add_expires_at_to_user_relationships.exs b/priv/repo/migrations/20220616163503_add_expires_at_to_user_relationships.exs new file mode 100644 index 000000000..9e117e376 --- /dev/null +++ b/priv/repo/migrations/20220616163503_add_expires_at_to_user_relationships.exs @@ -0,0 +1,13 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2022 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + +defmodule Pleroma.Repo.Migrations.AddExpiresAtToUserRelationships do + use Ecto.Migration + + def change do + alter table(:user_relationships) do + add_if_not_exists(:expires_at, :utc_datetime) + end + end +end diff --git a/priv/repo/migrations/20220711182322_add_associated_object_id_function.exs b/priv/repo/migrations/20220711182322_add_associated_object_id_function.exs new file mode 100644 index 000000000..76348f31a --- /dev/null +++ b/priv/repo/migrations/20220711182322_add_associated_object_id_function.exs @@ -0,0 +1,37 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2022 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + +defmodule Pleroma.Repo.Migrations.AddAssociatedObjectIdFunction do + use Ecto.Migration + + def up do + statement = """ + CREATE OR REPLACE FUNCTION associated_object_id(data jsonb) RETURNS varchar AS $$ + DECLARE + object_data jsonb; + BEGIN + IF jsonb_typeof(data->'object') = 'array' THEN + object_data := data->'object'->0; + ELSE + object_data := data->'object'; + END IF; + + IF jsonb_typeof(object_data->'id') = 'string' THEN + RETURN object_data->>'id'; + ELSIF jsonb_typeof(object_data) = 'string' THEN + RETURN object_data#>>'{}'; + ELSE + RETURN NULL; + END IF; + END; + $$ LANGUAGE plpgsql IMMUTABLE; + """ + + execute(statement) + end + + def down do + execute("DROP FUNCTION IF EXISTS associated_object_id(data jsonb)") + end +end diff --git a/priv/repo/migrations/20220711192750_switch_to_associated_object_id_index.exs b/priv/repo/migrations/20220711192750_switch_to_associated_object_id_index.exs new file mode 100644 index 000000000..75c1cd40b --- /dev/null +++ b/priv/repo/migrations/20220711192750_switch_to_associated_object_id_index.exs @@ -0,0 +1,37 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2022 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + +defmodule Pleroma.Repo.Migrations.SwitchToAssociatedObjectIdIndex do + use Ecto.Migration + @disable_ddl_transaction true + @disable_migration_lock true + + def up do + drop_if_exists( + index(:activities, ["(coalesce(data->'object'->>'id', data->>'object'))"], + name: :activities_create_objects_index + ) + ) + + create( + index(:activities, ["associated_object_id(data)"], + name: :activities_create_objects_index, + concurrently: true + ) + ) + end + + def down do + drop_if_exists( + index(:activities, ["associated_object_id(data)"], name: :activities_create_objects_index) + ) + + create( + index(:activities, ["(coalesce(data->'object'->>'id', data->>'object'))"], + name: :activities_create_objects_index, + concurrently: true + ) + ) + end +end diff --git a/priv/repo/migrations/20220807125023_data_migration_delete_context_objects.exs b/priv/repo/migrations/20220807125023_data_migration_delete_context_objects.exs new file mode 100644 index 000000000..84365dbe3 --- /dev/null +++ b/priv/repo/migrations/20220807125023_data_migration_delete_context_objects.exs @@ -0,0 +1,18 @@ +defmodule Pleroma.Repo.Migrations.DataMigrationDeleteContextObjects do + use Ecto.Migration + + require Logger + + def up do + dt = NaiveDateTime.utc_now() + + execute( + "INSERT INTO data_migrations(name, inserted_at, updated_at) " <> + "VALUES ('delete_context_objects', '#{dt}', '#{dt}') ON CONFLICT DO NOTHING;" + ) + end + + def down do + execute("DELETE FROM data_migrations WHERE name = 'delete_context_objects';") + end +end diff --git a/priv/repo/migrations/20220821004840_change_thread_visibility_to_use_new_object_id_index.exs b/priv/repo/migrations/20220821004840_change_thread_visibility_to_use_new_object_id_index.exs new file mode 100644 index 000000000..bb56843cb --- /dev/null +++ b/priv/repo/migrations/20220821004840_change_thread_visibility_to_use_new_object_id_index.exs @@ -0,0 +1,156 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2022 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + +defmodule Pleroma.Repo.Migrations.ChangeThreadVisibilityToUseNewObjectIdIndex do + use Ecto.Migration + + def up do + execute(update_thread_visibility()) + end + + def down do + execute(restore_thread_visibility()) + end + + def update_thread_visibility do + """ + CREATE OR REPLACE FUNCTION thread_visibility(actor varchar, activity_id varchar, local_public varchar default '') RETURNS boolean AS $$ + DECLARE + public varchar := 'https://www.w3.org/ns/activitystreams#Public'; + child objects%ROWTYPE; + activity activities%ROWTYPE; + author_fa varchar; + valid_recipients varchar[]; + actor_user_following varchar[]; + BEGIN + --- Fetch actor following + SELECT array_agg(following.follower_address) INTO actor_user_following FROM following_relationships + JOIN users ON users.id = following_relationships.follower_id + JOIN users AS following ON following.id = following_relationships.following_id + WHERE users.ap_id = actor; + + --- Fetch our initial activity. + SELECT * INTO activity FROM activities WHERE activities.data->>'id' = activity_id; + + LOOP + --- Ensure that we have an activity before continuing. + --- If we don't, the thread is not satisfiable. + IF activity IS NULL THEN + RETURN false; + END IF; + + --- We only care about Create activities. + IF activity.data->>'type' != 'Create' THEN + RETURN true; + END IF; + + --- Normalize the child object into child. + SELECT * INTO child FROM objects + INNER JOIN activities ON associated_object_id(activities.data) = objects.data->>'id' + WHERE associated_object_id(activity.data) = objects.data->>'id'; + + --- Fetch the author's AS2 following collection. + SELECT COALESCE(users.follower_address, '') INTO author_fa FROM users WHERE users.ap_id = activity.actor; + + --- Prepare valid recipients array. + valid_recipients := ARRAY[actor, public]; + --- If we specified local public, add it. + IF local_public <> '' THEN + valid_recipients := valid_recipients || local_public; + END IF; + IF ARRAY[author_fa] && actor_user_following THEN + valid_recipients := valid_recipients || author_fa; + END IF; + + --- Check visibility. + IF NOT valid_recipients && activity.recipients THEN + --- activity not visible, break out of the loop + RETURN false; + END IF; + + --- If there's a parent, load it and do this all over again. + IF (child.data->'inReplyTo' IS NOT NULL) AND (child.data->'inReplyTo' != 'null'::jsonb) THEN + SELECT * INTO activity FROM activities + INNER JOIN objects ON associated_object_id(activities.data) = objects.data->>'id' + WHERE child.data->>'inReplyTo' = objects.data->>'id'; + ELSE + RETURN true; + END IF; + END LOOP; + END; + $$ LANGUAGE plpgsql IMMUTABLE; + """ + end + + # priv/repo/migrations/20220509180452_change_thread_visibility_to_be_local_only_aware.exs + def restore_thread_visibility do + """ + CREATE OR REPLACE FUNCTION thread_visibility(actor varchar, activity_id varchar, local_public varchar default '') RETURNS boolean AS $$ + DECLARE + public varchar := 'https://www.w3.org/ns/activitystreams#Public'; + child objects%ROWTYPE; + activity activities%ROWTYPE; + author_fa varchar; + valid_recipients varchar[]; + actor_user_following varchar[]; + BEGIN + --- Fetch actor following + SELECT array_agg(following.follower_address) INTO actor_user_following FROM following_relationships + JOIN users ON users.id = following_relationships.follower_id + JOIN users AS following ON following.id = following_relationships.following_id + WHERE users.ap_id = actor; + + --- Fetch our initial activity. + SELECT * INTO activity FROM activities WHERE activities.data->>'id' = activity_id; + + LOOP + --- Ensure that we have an activity before continuing. + --- If we don't, the thread is not satisfiable. + IF activity IS NULL THEN + RETURN false; + END IF; + + --- We only care about Create activities. + IF activity.data->>'type' != 'Create' THEN + RETURN true; + END IF; + + --- Normalize the child object into child. + SELECT * INTO child FROM objects + INNER JOIN activities ON COALESCE(activities.data->'object'->>'id', activities.data->>'object') = objects.data->>'id' + WHERE COALESCE(activity.data->'object'->>'id', activity.data->>'object') = objects.data->>'id'; + + --- Fetch the author's AS2 following collection. + SELECT COALESCE(users.follower_address, '') INTO author_fa FROM users WHERE users.ap_id = activity.actor; + + --- Prepare valid recipients array. + valid_recipients := ARRAY[actor, public]; + --- If we specified local public, add it. + IF local_public <> '' THEN + valid_recipients := valid_recipients || local_public; + END IF; + IF ARRAY[author_fa] && actor_user_following THEN + valid_recipients := valid_recipients || author_fa; + END IF; + + --- Check visibility. + IF NOT valid_recipients && activity.recipients THEN + --- activity not visible, break out of the loop + RETURN false; + END IF; + + --- If there's a parent, load it and do this all over again. + IF (child.data->'inReplyTo' IS NOT NULL) AND (child.data->'inReplyTo' != 'null'::jsonb) THEN + SELECT * INTO activity FROM activities + INNER JOIN objects ON COALESCE(activities.data->'object'->>'id', activities.data->>'object') = objects.data->>'id' + WHERE child.data->>'inReplyTo' = objects.data->>'id'; + ELSE + RETURN true; + END IF; + END LOOP; + END; + $$ LANGUAGE plpgsql IMMUTABLE; + """ + end +end diff --git a/priv/repo/migrations/20220905011454_generate_unset_user_keys.exs b/priv/repo/migrations/20220905011454_generate_unset_user_keys.exs new file mode 100644 index 000000000..43bc7100b --- /dev/null +++ b/priv/repo/migrations/20220905011454_generate_unset_user_keys.exs @@ -0,0 +1,28 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2022 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + +defmodule Pleroma.Repo.Migrations.GenerateUnsetUserKeys do + use Ecto.Migration + import Ecto.Query + alias Pleroma.Keys + alias Pleroma.Repo + alias Pleroma.User + + def change do + query = + from(u in User, + where: u.local == true, + where: is_nil(u.keys), + select: u + ) + + Repo.stream(query) + |> Enum.each(fn user -> + with {:ok, pem} <- Keys.generate_rsa_pem() do + Ecto.Changeset.cast(user, %{keys: pem}, [:keys]) + |> Repo.update() + end + end) + end +end diff --git a/priv/repo/migrations/20221103014611_create_oban_peers.exs b/priv/repo/migrations/20221103014611_create_oban_peers.exs new file mode 100644 index 000000000..cb522a056 --- /dev/null +++ b/priv/repo/migrations/20221103014611_create_oban_peers.exs @@ -0,0 +1,7 @@ +defmodule Pleroma.Repo.Migrations.CreateObanPeers do + use Ecto.Migration + + def up, do: Oban.Migrations.up(version: 11) + + def down, do: Oban.Migrations.down(version: 11) +end diff --git a/priv/repo/migrations/20221103014728_swap_primary_oban_indexes.exs b/priv/repo/migrations/20221103014728_swap_primary_oban_indexes.exs new file mode 100644 index 000000000..54e2503de --- /dev/null +++ b/priv/repo/migrations/20221103014728_swap_primary_oban_indexes.exs @@ -0,0 +1,26 @@ +defmodule Pleroma.Repo.Migrations.SwapPrimaryObanIndexes do + use Ecto.Migration + + @disable_ddl_transaction true + @disable_migration_lock true + + def change do + create_if_not_exists( + index( + :oban_jobs, + [:state, :queue, :priority, :scheduled_at, :id], + concurrently: true, + prefix: "public" + ) + ) + + drop_if_exists( + index( + :oban_jobs, + [:queue, :state, :priority, :scheduled_at, :id], + concurrently: true, + prefix: "public" + ) + ) + end +end diff --git a/priv/repo/migrations/20221111164213_deprecate_quack.exs b/priv/repo/migrations/20221111164213_deprecate_quack.exs new file mode 100644 index 000000000..d30fe8117 --- /dev/null +++ b/priv/repo/migrations/20221111164213_deprecate_quack.exs @@ -0,0 +1,24 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2022 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + +defmodule Pleroma.Repo.Migrations.DeprecateQuack do + use Ecto.Migration + alias Pleroma.ConfigDB + + def up do + :quack + |> ConfigDB.get_all_by_group() + |> Enum.each(&ConfigDB.delete/1) + + logger_config = ConfigDB.get_by_group_and_key(:logger, :backends) + + if not is_nil(logger_config) do + %{value: backends} = logger_config + new_backends = backends -- [Quack.Logger] + {:ok, _} = ConfigDB.update_or_create(%{group: :logger, key: :backends, value: new_backends}) + end + end + + def down, do: :ok +end diff --git a/priv/repo/optional_migrations/rum_indexing/20190510135645_add_fts_index_to_objects_two.exs b/priv/repo/optional_migrations/rum_indexing/20190510135645_add_fts_index_to_objects_two.exs index 88476fb57..c95b97721 100644 --- a/priv/repo/optional_migrations/rum_indexing/20190510135645_add_fts_index_to_objects_two.exs +++ b/priv/repo/optional_migrations/rum_indexing/20190510135645_add_fts_index_to_objects_two.exs @@ -1,3 +1,7 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2022 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + defmodule Pleroma.Repo.Migrations.AddFtsIndexToObjectsTwo do use Ecto.Migration diff --git a/priv/repo/seeds.exs b/priv/repo/seeds.exs index 1ab36cedc..cf3510208 100644 --- a/priv/repo/seeds.exs +++ b/priv/repo/seeds.exs @@ -1,3 +1,7 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2022 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + # Script for populating the database. You can run it as: # # mix run priv/repo/seeds.exs diff --git a/priv/scrubbers/default.ex b/priv/scrubbers/default.ex index d3561f169..e10e3ec87 100644 --- a/priv/scrubbers/default.ex +++ b/priv/scrubbers/default.ex @@ -1,3 +1,7 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2022 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + defmodule Pleroma.HTML.Scrubber.Default do @doc "The default HTML scrubbing policy: no " @@ -56,7 +60,7 @@ defmodule Pleroma.HTML.Scrubber.Default do Meta.allow_tag_with_these_attributes(:u, []) Meta.allow_tag_with_these_attributes(:ul, []) - Meta.allow_tag_with_this_attribute_values(:span, "class", ["h-card"]) + Meta.allow_tag_with_this_attribute_values(:span, "class", ["h-card", "recipients-inline"]) Meta.allow_tag_with_these_attributes(:span, []) Meta.allow_tag_with_this_attribute_values(:code, "class", ["inline"]) diff --git a/priv/scrubbers/links_only.ex b/priv/scrubbers/links_only.ex index b30a00589..7f434fb25 100644 --- a/priv/scrubbers/links_only.ex +++ b/priv/scrubbers/links_only.ex @@ -1,3 +1,7 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2022 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + defmodule Pleroma.HTML.Scrubber.LinksOnly do @moduledoc """ An HTML scrubbing policy which limits to links only. diff --git a/priv/scrubbers/media_proxy.ex b/priv/scrubbers/media_proxy.ex index 5dbe57666..9935b3829 100644 --- a/priv/scrubbers/media_proxy.ex +++ b/priv/scrubbers/media_proxy.ex @@ -1,3 +1,7 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2022 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + defmodule Pleroma.HTML.Transform.MediaProxy do @moduledoc "Transforms inline image URIs to use MediaProxy." diff --git a/priv/scrubbers/twitter_text.ex b/priv/scrubbers/twitter_text.ex index bb8f3bc50..6e23b3efb 100644 --- a/priv/scrubbers/twitter_text.ex +++ b/priv/scrubbers/twitter_text.ex @@ -1,3 +1,7 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2022 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + defmodule Pleroma.HTML.Scrubber.TwitterText do @moduledoc """ An HTML scrubbing policy which limits to twitter-style text. Only diff --git a/priv/static/adminfe/app.143a1409.css b/priv/static/adminfe/app.147d87e8.css similarity index 100% rename from priv/static/adminfe/app.143a1409.css rename to priv/static/adminfe/app.147d87e8.css diff --git a/priv/static/adminfe/chunk-5243.9b37b395.css b/priv/static/adminfe/chunk-0c3d.79348811.css similarity index 100% rename from priv/static/adminfe/chunk-5243.9b37b395.css rename to priv/static/adminfe/chunk-0c3d.79348811.css diff --git a/priv/static/adminfe/chunk-0c60.487f66a2.css b/priv/static/adminfe/chunk-0c60.ee394b7b.css similarity index 100% rename from priv/static/adminfe/chunk-0c60.487f66a2.css rename to priv/static/adminfe/chunk-0c60.ee394b7b.css diff --git a/priv/static/adminfe/chunk-03c5.9aae1f65.css b/priv/static/adminfe/chunk-0fa6.d224ff3a.css similarity index 100% rename from priv/static/adminfe/chunk-03c5.9aae1f65.css rename to priv/static/adminfe/chunk-0fa6.d224ff3a.css diff --git a/priv/static/adminfe/chunk-176e.fd32d133.css b/priv/static/adminfe/chunk-176e.fd32d133.css deleted file mode 100644 index 0bedf3773..000000000 Binary files a/priv/static/adminfe/chunk-176e.fd32d133.css and /dev/null differ diff --git a/priv/static/adminfe/chunk-2658.8ab9ac8a.css b/priv/static/adminfe/chunk-1a25.098b6a73.css similarity index 100% rename from priv/static/adminfe/chunk-2658.8ab9ac8a.css rename to priv/static/adminfe/chunk-1a25.098b6a73.css diff --git a/priv/static/adminfe/chunk-2be3.846d0d5a.css b/priv/static/adminfe/chunk-2be3.846d0d5a.css new file mode 100644 index 000000000..348f82660 Binary files /dev/null and b/priv/static/adminfe/chunk-2be3.846d0d5a.css differ diff --git a/priv/static/adminfe/chunk-1719.17e585a5.css b/priv/static/adminfe/chunk-2cfa.c090392a.css similarity index 100% rename from priv/static/adminfe/chunk-1719.17e585a5.css rename to priv/static/adminfe/chunk-2cfa.c090392a.css diff --git a/priv/static/adminfe/chunk-305b.64cc20ab.css b/priv/static/adminfe/chunk-305b.64cc20ab.css new file mode 100644 index 000000000..aadddc215 Binary files /dev/null and b/priv/static/adminfe/chunk-305b.64cc20ab.css differ diff --git a/priv/static/adminfe/chunk-5ff8.4ccacc86.css b/priv/static/adminfe/chunk-31b9.abc32430.css similarity index 100% rename from priv/static/adminfe/chunk-5ff8.4ccacc86.css rename to priv/static/adminfe/chunk-31b9.abc32430.css diff --git a/priv/static/adminfe/chunk-33c9.3c0c7538.css b/priv/static/adminfe/chunk-33c9.3c0c7538.css new file mode 100644 index 000000000..6b35200b2 Binary files /dev/null and b/priv/static/adminfe/chunk-33c9.3c0c7538.css differ diff --git a/priv/static/adminfe/chunk-2de0.0a7ddf1e.css b/priv/static/adminfe/chunk-42d5.9ade3c1d.css similarity index 100% rename from priv/static/adminfe/chunk-2de0.0a7ddf1e.css rename to priv/static/adminfe/chunk-42d5.9ade3c1d.css diff --git a/priv/static/adminfe/chunk-4403.bac94db6.css b/priv/static/adminfe/chunk-4403.bac94db6.css deleted file mode 100644 index 5794e0a91..000000000 Binary files a/priv/static/adminfe/chunk-4403.bac94db6.css and /dev/null differ diff --git a/priv/static/adminfe/chunk-45ed.3bf8b200.css b/priv/static/adminfe/chunk-45ed.fc62bc5c.css similarity index 100% rename from priv/static/adminfe/chunk-45ed.3bf8b200.css rename to priv/static/adminfe/chunk-45ed.fc62bc5c.css diff --git a/priv/static/adminfe/chunk-4995.ba9a98d5.css b/priv/static/adminfe/chunk-4995.ba9a98d5.css new file mode 100644 index 000000000..6d49f2b5a Binary files /dev/null and b/priv/static/adminfe/chunk-4995.ba9a98d5.css differ diff --git a/priv/static/adminfe/chunk-4d80.3e815d08.css b/priv/static/adminfe/chunk-4d80.3e815d08.css deleted file mode 100644 index 6392d8e75..000000000 Binary files a/priv/static/adminfe/chunk-4d80.3e815d08.css and /dev/null differ diff --git a/priv/static/adminfe/chunk-5669.9e91529b.css b/priv/static/adminfe/chunk-5669.9e91529b.css new file mode 100644 index 000000000..1ecdec162 Binary files /dev/null and b/priv/static/adminfe/chunk-5669.9e91529b.css differ diff --git a/priv/static/adminfe/chunk-59e6.07d1d2f0.css b/priv/static/adminfe/chunk-59e6.07d1d2f0.css new file mode 100644 index 000000000..bafdf19ac Binary files /dev/null and b/priv/static/adminfe/chunk-59e6.07d1d2f0.css differ diff --git a/priv/static/adminfe/chunk-4a1e.4b10c06f.css b/priv/static/adminfe/chunk-5cf2.5bf52c8f.css similarity index 100% rename from priv/static/adminfe/chunk-4a1e.4b10c06f.css rename to priv/static/adminfe/chunk-5cf2.5bf52c8f.css diff --git a/priv/static/adminfe/chunk-68b6.d7a7a7ea.css b/priv/static/adminfe/chunk-68b6.d7a7a7ea.css new file mode 100644 index 000000000..6e7255d33 Binary files /dev/null and b/priv/static/adminfe/chunk-68b6.d7a7a7ea.css differ diff --git a/priv/static/adminfe/chunk-71b5.a479f25b.css b/priv/static/adminfe/chunk-71b5.a479f25b.css deleted file mode 100644 index 01089f6e6..000000000 Binary files a/priv/static/adminfe/chunk-71b5.a479f25b.css and /dev/null differ diff --git a/priv/static/adminfe/chunk-7c11.5c2bbb9c.css b/priv/static/adminfe/chunk-7c11.5c2bbb9c.css new file mode 100644 index 000000000..5c87df7e1 Binary files /dev/null and b/priv/static/adminfe/chunk-7c11.5c2bbb9c.css differ diff --git a/priv/static/adminfe/chunk-a104.e69888e1.css b/priv/static/adminfe/chunk-a104.e69888e1.css deleted file mode 100644 index abea7d536..000000000 Binary files a/priv/static/adminfe/chunk-a104.e69888e1.css and /dev/null differ diff --git a/priv/static/adminfe/chunk-bc60.adb8a162.css b/priv/static/adminfe/chunk-bc60.adb8a162.css deleted file mode 100644 index 59ca45d6c..000000000 Binary files a/priv/static/adminfe/chunk-bc60.adb8a162.css and /dev/null differ diff --git a/priv/static/adminfe/chunk-commons.c9de7e30.css b/priv/static/adminfe/chunk-commons.c9de7e30.css deleted file mode 100644 index 42f5e0ee9..000000000 Binary files a/priv/static/adminfe/chunk-commons.c9de7e30.css and /dev/null differ diff --git a/priv/static/adminfe/chunk-elementUI.852ab1db.css b/priv/static/adminfe/chunk-elementUI.852ab1db.css new file mode 100644 index 000000000..cd28ac433 Binary files /dev/null and b/priv/static/adminfe/chunk-elementUI.852ab1db.css differ diff --git a/priv/static/adminfe/chunk-elementUI.f1f2be85.css b/priv/static/adminfe/chunk-elementUI.f1f2be85.css deleted file mode 100644 index 01bdb7fd5..000000000 Binary files a/priv/static/adminfe/chunk-elementUI.f1f2be85.css and /dev/null differ diff --git a/priv/static/adminfe/chunk-f1f7.c3b9c13f.css b/priv/static/adminfe/chunk-f1f7.c3b9c13f.css deleted file mode 100644 index e5024d666..000000000 Binary files a/priv/static/adminfe/chunk-f1f7.c3b9c13f.css and /dev/null differ diff --git a/priv/static/adminfe/chunk-libs.74976a6a.css b/priv/static/adminfe/chunk-libs.0b4a26df.css similarity index 100% rename from priv/static/adminfe/chunk-libs.74976a6a.css rename to priv/static/adminfe/chunk-libs.0b4a26df.css diff --git a/priv/static/adminfe/index.html b/priv/static/adminfe/index.html index dd3e78ba9..4731b1c37 100644 --- a/priv/static/adminfe/index.html +++ b/priv/static/adminfe/index.html @@ -1 +1 @@ -Admin FE
\ No newline at end of file +Admin FE
\ No newline at end of file diff --git a/priv/static/adminfe/static/js/7zzA.e1ae1c94.js.map b/priv/static/adminfe/static/js/7zzA.e1ae1c94.js.map index 840e8a26b..feddfaeee 100644 Binary files a/priv/static/adminfe/static/js/7zzA.e1ae1c94.js.map and b/priv/static/adminfe/static/js/7zzA.e1ae1c94.js.map differ diff --git a/priv/static/adminfe/static/js/JEtC.f9ba4594.js.map b/priv/static/adminfe/static/js/JEtC.f9ba4594.js.map index 633bbc5d6..996956356 100644 Binary files a/priv/static/adminfe/static/js/JEtC.f9ba4594.js.map and b/priv/static/adminfe/static/js/JEtC.f9ba4594.js.map differ diff --git a/priv/static/adminfe/static/js/app.c3e187df.js b/priv/static/adminfe/static/js/app.c3e187df.js new file mode 100644 index 000000000..f9b525594 Binary files /dev/null and b/priv/static/adminfe/static/js/app.c3e187df.js differ diff --git a/priv/static/adminfe/static/js/app.c3e187df.js.map b/priv/static/adminfe/static/js/app.c3e187df.js.map new file mode 100644 index 000000000..2c7f69c3b Binary files /dev/null and b/priv/static/adminfe/static/js/app.c3e187df.js.map differ diff --git a/priv/static/adminfe/static/js/app.f02f5ebc.js b/priv/static/adminfe/static/js/app.f02f5ebc.js deleted file mode 100644 index 5dfda1355..000000000 Binary files a/priv/static/adminfe/static/js/app.f02f5ebc.js and /dev/null differ diff --git a/priv/static/adminfe/static/js/app.f02f5ebc.js.map b/priv/static/adminfe/static/js/app.f02f5ebc.js.map deleted file mode 100644 index d9150b9c7..000000000 Binary files a/priv/static/adminfe/static/js/app.f02f5ebc.js.map and /dev/null differ diff --git a/priv/static/adminfe/static/js/chunk-03c5.7f893db6.js b/priv/static/adminfe/static/js/chunk-03c5.7f893db6.js deleted file mode 100644 index 39c811b0a..000000000 Binary files a/priv/static/adminfe/static/js/chunk-03c5.7f893db6.js and /dev/null differ diff --git a/priv/static/adminfe/static/js/chunk-03c5.7f893db6.js.map b/priv/static/adminfe/static/js/chunk-03c5.7f893db6.js.map deleted file mode 100644 index a6bd8c2a4..000000000 Binary files a/priv/static/adminfe/static/js/chunk-03c5.7f893db6.js.map and /dev/null differ diff --git a/priv/static/adminfe/static/js/chunk-0c3d.00a00ec3.js b/priv/static/adminfe/static/js/chunk-0c3d.00a00ec3.js new file mode 100644 index 000000000..62b001352 Binary files /dev/null and b/priv/static/adminfe/static/js/chunk-0c3d.00a00ec3.js differ diff --git a/priv/static/adminfe/static/js/chunk-0c3d.00a00ec3.js.map b/priv/static/adminfe/static/js/chunk-0c3d.00a00ec3.js.map new file mode 100644 index 000000000..56069f60f Binary files /dev/null and b/priv/static/adminfe/static/js/chunk-0c3d.00a00ec3.js.map differ diff --git a/priv/static/adminfe/static/js/chunk-0c60.9b12ac3f.js b/priv/static/adminfe/static/js/chunk-0c60.9b12ac3f.js deleted file mode 100644 index 32e6d9d7f..000000000 Binary files a/priv/static/adminfe/static/js/chunk-0c60.9b12ac3f.js and /dev/null differ diff --git a/priv/static/adminfe/static/js/chunk-0c60.9b12ac3f.js.map b/priv/static/adminfe/static/js/chunk-0c60.9b12ac3f.js.map deleted file mode 100644 index cc4f8245f..000000000 Binary files a/priv/static/adminfe/static/js/chunk-0c60.9b12ac3f.js.map and /dev/null differ diff --git a/priv/static/adminfe/static/js/chunk-0c60.e0f08810.js b/priv/static/adminfe/static/js/chunk-0c60.e0f08810.js new file mode 100644 index 000000000..e637ca50a Binary files /dev/null and b/priv/static/adminfe/static/js/chunk-0c60.e0f08810.js differ diff --git a/priv/static/adminfe/static/js/chunk-0c60.e0f08810.js.map b/priv/static/adminfe/static/js/chunk-0c60.e0f08810.js.map new file mode 100644 index 000000000..6bcbd1396 Binary files /dev/null and b/priv/static/adminfe/static/js/chunk-0c60.e0f08810.js.map differ diff --git a/priv/static/adminfe/static/js/chunk-0e2d.04760e2c.js b/priv/static/adminfe/static/js/chunk-0e2d.04760e2c.js new file mode 100644 index 000000000..713bc6275 Binary files /dev/null and b/priv/static/adminfe/static/js/chunk-0e2d.04760e2c.js differ diff --git a/priv/static/adminfe/static/js/chunk-0e2d.04760e2c.js.map b/priv/static/adminfe/static/js/chunk-0e2d.04760e2c.js.map new file mode 100644 index 000000000..5942e7a75 Binary files /dev/null and b/priv/static/adminfe/static/js/chunk-0e2d.04760e2c.js.map differ diff --git a/priv/static/adminfe/static/js/chunk-0fa6.ddd4199e.js b/priv/static/adminfe/static/js/chunk-0fa6.ddd4199e.js new file mode 100644 index 000000000..beef95384 Binary files /dev/null and b/priv/static/adminfe/static/js/chunk-0fa6.ddd4199e.js differ diff --git a/priv/static/adminfe/static/js/chunk-0fa6.ddd4199e.js.map b/priv/static/adminfe/static/js/chunk-0fa6.ddd4199e.js.map new file mode 100644 index 000000000..6784cdc17 Binary files /dev/null and b/priv/static/adminfe/static/js/chunk-0fa6.ddd4199e.js.map differ diff --git a/priv/static/adminfe/static/js/chunk-16d0.7d343bb9.js b/priv/static/adminfe/static/js/chunk-16d0.7d343bb9.js new file mode 100644 index 000000000..6e1dac38a Binary files /dev/null and b/priv/static/adminfe/static/js/chunk-16d0.7d343bb9.js differ diff --git a/priv/static/adminfe/static/js/chunk-16d0.7d343bb9.js.map b/priv/static/adminfe/static/js/chunk-16d0.7d343bb9.js.map new file mode 100644 index 000000000..2ec231550 Binary files /dev/null and b/priv/static/adminfe/static/js/chunk-16d0.7d343bb9.js.map differ diff --git a/priv/static/adminfe/static/js/chunk-16d0.fef0ce65.js b/priv/static/adminfe/static/js/chunk-16d0.fef0ce65.js deleted file mode 100644 index 8bddbe967..000000000 Binary files a/priv/static/adminfe/static/js/chunk-16d0.fef0ce65.js and /dev/null differ diff --git a/priv/static/adminfe/static/js/chunk-16d0.fef0ce65.js.map b/priv/static/adminfe/static/js/chunk-16d0.fef0ce65.js.map deleted file mode 100644 index 9617ae0d0..000000000 Binary files a/priv/static/adminfe/static/js/chunk-16d0.fef0ce65.js.map and /dev/null differ diff --git a/priv/static/adminfe/static/js/chunk-1719.d152ff7e.js b/priv/static/adminfe/static/js/chunk-1719.d152ff7e.js deleted file mode 100644 index 8e0b8fc0c..000000000 Binary files a/priv/static/adminfe/static/js/chunk-1719.d152ff7e.js and /dev/null differ diff --git a/priv/static/adminfe/static/js/chunk-1719.d152ff7e.js.map b/priv/static/adminfe/static/js/chunk-1719.d152ff7e.js.map deleted file mode 100644 index ba686cddc..000000000 Binary files a/priv/static/adminfe/static/js/chunk-1719.d152ff7e.js.map and /dev/null differ diff --git a/priv/static/adminfe/static/js/chunk-176e.c2ac32bc.js b/priv/static/adminfe/static/js/chunk-176e.c2ac32bc.js deleted file mode 100644 index 96498620f..000000000 Binary files a/priv/static/adminfe/static/js/chunk-176e.c2ac32bc.js and /dev/null differ diff --git a/priv/static/adminfe/static/js/chunk-176e.c2ac32bc.js.map b/priv/static/adminfe/static/js/chunk-176e.c2ac32bc.js.map deleted file mode 100644 index c3a4d48cf..000000000 Binary files a/priv/static/adminfe/static/js/chunk-176e.c2ac32bc.js.map and /dev/null differ diff --git a/priv/static/adminfe/static/js/chunk-1a25.107c34e7.js b/priv/static/adminfe/static/js/chunk-1a25.107c34e7.js new file mode 100644 index 000000000..1109d36b6 Binary files /dev/null and b/priv/static/adminfe/static/js/chunk-1a25.107c34e7.js differ diff --git a/priv/static/adminfe/static/js/chunk-1a25.107c34e7.js.map b/priv/static/adminfe/static/js/chunk-1a25.107c34e7.js.map new file mode 100644 index 000000000..e39649604 Binary files /dev/null and b/priv/static/adminfe/static/js/chunk-1a25.107c34e7.js.map differ diff --git a/priv/static/adminfe/static/js/chunk-2658.832c58e6.js b/priv/static/adminfe/static/js/chunk-2658.832c58e6.js deleted file mode 100644 index 7d18494df..000000000 Binary files a/priv/static/adminfe/static/js/chunk-2658.832c58e6.js and /dev/null differ diff --git a/priv/static/adminfe/static/js/chunk-2658.832c58e6.js.map b/priv/static/adminfe/static/js/chunk-2658.832c58e6.js.map deleted file mode 100644 index af2645772..000000000 Binary files a/priv/static/adminfe/static/js/chunk-2658.832c58e6.js.map and /dev/null differ diff --git a/priv/static/adminfe/static/js/chunk-2be3.7b7c045e.js b/priv/static/adminfe/static/js/chunk-2be3.7b7c045e.js new file mode 100644 index 000000000..4670071d0 Binary files /dev/null and b/priv/static/adminfe/static/js/chunk-2be3.7b7c045e.js differ diff --git a/priv/static/adminfe/static/js/chunk-2be3.7b7c045e.js.map b/priv/static/adminfe/static/js/chunk-2be3.7b7c045e.js.map new file mode 100644 index 000000000..76cbef240 Binary files /dev/null and b/priv/static/adminfe/static/js/chunk-2be3.7b7c045e.js.map differ diff --git a/priv/static/adminfe/static/js/chunk-2cfa.608c3714.js b/priv/static/adminfe/static/js/chunk-2cfa.608c3714.js new file mode 100644 index 000000000..e5d39dfae Binary files /dev/null and b/priv/static/adminfe/static/js/chunk-2cfa.608c3714.js differ diff --git a/priv/static/adminfe/static/js/chunk-2cfa.608c3714.js.map b/priv/static/adminfe/static/js/chunk-2cfa.608c3714.js.map new file mode 100644 index 000000000..b9ffc2f0c Binary files /dev/null and b/priv/static/adminfe/static/js/chunk-2cfa.608c3714.js.map differ diff --git a/priv/static/adminfe/static/js/chunk-2de0.06ba9e2f.js b/priv/static/adminfe/static/js/chunk-2de0.06ba9e2f.js deleted file mode 100644 index dea6a3d19..000000000 Binary files a/priv/static/adminfe/static/js/chunk-2de0.06ba9e2f.js and /dev/null differ diff --git a/priv/static/adminfe/static/js/chunk-2de0.06ba9e2f.js.map b/priv/static/adminfe/static/js/chunk-2de0.06ba9e2f.js.map deleted file mode 100644 index f8f9cb6ed..000000000 Binary files a/priv/static/adminfe/static/js/chunk-2de0.06ba9e2f.js.map and /dev/null differ diff --git a/priv/static/adminfe/static/js/chunk-305b.3a7fb27b.js b/priv/static/adminfe/static/js/chunk-305b.3a7fb27b.js new file mode 100644 index 000000000..3801c2ad4 Binary files /dev/null and b/priv/static/adminfe/static/js/chunk-305b.3a7fb27b.js differ diff --git a/priv/static/adminfe/static/js/chunk-305b.3a7fb27b.js.map b/priv/static/adminfe/static/js/chunk-305b.3a7fb27b.js.map new file mode 100644 index 000000000..e935d010e Binary files /dev/null and b/priv/static/adminfe/static/js/chunk-305b.3a7fb27b.js.map differ diff --git a/priv/static/adminfe/static/js/chunk-319f.8919d1e7.js b/priv/static/adminfe/static/js/chunk-319f.8919d1e7.js new file mode 100644 index 000000000..67c4f0dad Binary files /dev/null and b/priv/static/adminfe/static/js/chunk-319f.8919d1e7.js differ diff --git a/priv/static/adminfe/static/js/chunk-319f.8919d1e7.js.map b/priv/static/adminfe/static/js/chunk-319f.8919d1e7.js.map new file mode 100644 index 000000000..92d070e4e Binary files /dev/null and b/priv/static/adminfe/static/js/chunk-319f.8919d1e7.js.map differ diff --git a/priv/static/adminfe/static/js/chunk-31b9.7b89f7b5.js b/priv/static/adminfe/static/js/chunk-31b9.7b89f7b5.js new file mode 100644 index 000000000..6dd253a19 Binary files /dev/null and b/priv/static/adminfe/static/js/chunk-31b9.7b89f7b5.js differ diff --git a/priv/static/adminfe/static/js/chunk-31b9.7b89f7b5.js.map b/priv/static/adminfe/static/js/chunk-31b9.7b89f7b5.js.map new file mode 100644 index 000000000..92c1fee31 Binary files /dev/null and b/priv/static/adminfe/static/js/chunk-31b9.7b89f7b5.js.map differ diff --git a/priv/static/adminfe/static/js/chunk-33c9.cf3bdd1b.js b/priv/static/adminfe/static/js/chunk-33c9.cf3bdd1b.js new file mode 100644 index 000000000..e0aa86696 Binary files /dev/null and b/priv/static/adminfe/static/js/chunk-33c9.cf3bdd1b.js differ diff --git a/priv/static/adminfe/static/js/chunk-33c9.cf3bdd1b.js.map b/priv/static/adminfe/static/js/chunk-33c9.cf3bdd1b.js.map new file mode 100644 index 000000000..f6829f340 Binary files /dev/null and b/priv/static/adminfe/static/js/chunk-33c9.cf3bdd1b.js.map differ diff --git a/priv/static/adminfe/static/js/chunk-42d5.f83ab775.js b/priv/static/adminfe/static/js/chunk-42d5.f83ab775.js new file mode 100644 index 000000000..fad2f0b44 Binary files /dev/null and b/priv/static/adminfe/static/js/chunk-42d5.f83ab775.js differ diff --git a/priv/static/adminfe/static/js/chunk-42d5.f83ab775.js.map b/priv/static/adminfe/static/js/chunk-42d5.f83ab775.js.map new file mode 100644 index 000000000..b6d1a5db9 Binary files /dev/null and b/priv/static/adminfe/static/js/chunk-42d5.f83ab775.js.map differ diff --git a/priv/static/adminfe/static/js/chunk-4403.528e3dd7.js b/priv/static/adminfe/static/js/chunk-4403.528e3dd7.js deleted file mode 100644 index aecd1db9d..000000000 Binary files a/priv/static/adminfe/static/js/chunk-4403.528e3dd7.js and /dev/null differ diff --git a/priv/static/adminfe/static/js/chunk-4403.528e3dd7.js.map b/priv/static/adminfe/static/js/chunk-4403.528e3dd7.js.map deleted file mode 100644 index 9c187fdd8..000000000 Binary files a/priv/static/adminfe/static/js/chunk-4403.528e3dd7.js.map and /dev/null differ diff --git a/priv/static/adminfe/static/js/chunk-45ed.10b6b7a7.js b/priv/static/adminfe/static/js/chunk-45ed.10b6b7a7.js new file mode 100644 index 000000000..ef49eaf11 Binary files /dev/null and b/priv/static/adminfe/static/js/chunk-45ed.10b6b7a7.js differ diff --git a/priv/static/adminfe/static/js/chunk-45ed.10b6b7a7.js.map b/priv/static/adminfe/static/js/chunk-45ed.10b6b7a7.js.map new file mode 100644 index 000000000..6ed12956c Binary files /dev/null and b/priv/static/adminfe/static/js/chunk-45ed.10b6b7a7.js.map differ diff --git a/priv/static/adminfe/static/js/chunk-45ed.a89b5b8d.js b/priv/static/adminfe/static/js/chunk-45ed.a89b5b8d.js deleted file mode 100644 index c78d4ddb8..000000000 Binary files a/priv/static/adminfe/static/js/chunk-45ed.a89b5b8d.js and /dev/null differ diff --git a/priv/static/adminfe/static/js/chunk-45ed.a89b5b8d.js.map b/priv/static/adminfe/static/js/chunk-45ed.a89b5b8d.js.map deleted file mode 100644 index 9b563e578..000000000 Binary files a/priv/static/adminfe/static/js/chunk-45ed.a89b5b8d.js.map and /dev/null differ diff --git a/priv/static/adminfe/static/js/chunk-4995.94e052fc.js b/priv/static/adminfe/static/js/chunk-4995.94e052fc.js new file mode 100644 index 000000000..db3eeb54c Binary files /dev/null and b/priv/static/adminfe/static/js/chunk-4995.94e052fc.js differ diff --git a/priv/static/adminfe/static/js/chunk-4995.94e052fc.js.map b/priv/static/adminfe/static/js/chunk-4995.94e052fc.js.map new file mode 100644 index 000000000..3048cc4c5 Binary files /dev/null and b/priv/static/adminfe/static/js/chunk-4995.94e052fc.js.map differ diff --git a/priv/static/adminfe/static/js/chunk-4a1e.0f4047c1.js b/priv/static/adminfe/static/js/chunk-4a1e.0f4047c1.js deleted file mode 100644 index 17fff7036..000000000 Binary files a/priv/static/adminfe/static/js/chunk-4a1e.0f4047c1.js and /dev/null differ diff --git a/priv/static/adminfe/static/js/chunk-4a1e.0f4047c1.js.map b/priv/static/adminfe/static/js/chunk-4a1e.0f4047c1.js.map deleted file mode 100644 index 01b9eb2dc..000000000 Binary files a/priv/static/adminfe/static/js/chunk-4a1e.0f4047c1.js.map and /dev/null differ diff --git a/priv/static/adminfe/static/js/chunk-4d80.6911cb76.js b/priv/static/adminfe/static/js/chunk-4d80.6911cb76.js deleted file mode 100644 index 70c894558..000000000 Binary files a/priv/static/adminfe/static/js/chunk-4d80.6911cb76.js and /dev/null differ diff --git a/priv/static/adminfe/static/js/chunk-4d80.6911cb76.js.map b/priv/static/adminfe/static/js/chunk-4d80.6911cb76.js.map deleted file mode 100644 index 8de714f2b..000000000 Binary files a/priv/static/adminfe/static/js/chunk-4d80.6911cb76.js.map and /dev/null differ diff --git a/priv/static/adminfe/static/js/chunk-5243.aa83b96d.js b/priv/static/adminfe/static/js/chunk-5243.aa83b96d.js deleted file mode 100644 index 4f5b13f6f..000000000 Binary files a/priv/static/adminfe/static/js/chunk-5243.aa83b96d.js and /dev/null differ diff --git a/priv/static/adminfe/static/js/chunk-5243.aa83b96d.js.map b/priv/static/adminfe/static/js/chunk-5243.aa83b96d.js.map deleted file mode 100644 index 846e97f4c..000000000 Binary files a/priv/static/adminfe/static/js/chunk-5243.aa83b96d.js.map and /dev/null differ diff --git a/priv/static/adminfe/static/js/chunk-5497.34fbd46e.js b/priv/static/adminfe/static/js/chunk-5497.34fbd46e.js deleted file mode 100644 index e28d9587b..000000000 Binary files a/priv/static/adminfe/static/js/chunk-5497.34fbd46e.js and /dev/null differ diff --git a/priv/static/adminfe/static/js/chunk-5497.34fbd46e.js.map b/priv/static/adminfe/static/js/chunk-5497.34fbd46e.js.map deleted file mode 100644 index 459246aec..000000000 Binary files a/priv/static/adminfe/static/js/chunk-5497.34fbd46e.js.map and /dev/null differ diff --git a/priv/static/adminfe/static/js/chunk-5669.88725eaa.js b/priv/static/adminfe/static/js/chunk-5669.88725eaa.js new file mode 100644 index 000000000..41d9c2adf Binary files /dev/null and b/priv/static/adminfe/static/js/chunk-5669.88725eaa.js differ diff --git a/priv/static/adminfe/static/js/chunk-5669.88725eaa.js.map b/priv/static/adminfe/static/js/chunk-5669.88725eaa.js.map new file mode 100644 index 000000000..a6aa3d1a3 Binary files /dev/null and b/priv/static/adminfe/static/js/chunk-5669.88725eaa.js.map differ diff --git a/priv/static/adminfe/static/js/chunk-59e6.01e205d8.js b/priv/static/adminfe/static/js/chunk-59e6.01e205d8.js new file mode 100644 index 000000000..1262532f3 Binary files /dev/null and b/priv/static/adminfe/static/js/chunk-59e6.01e205d8.js differ diff --git a/priv/static/adminfe/static/js/chunk-59e6.01e205d8.js.map b/priv/static/adminfe/static/js/chunk-59e6.01e205d8.js.map new file mode 100644 index 000000000..417e29f0b Binary files /dev/null and b/priv/static/adminfe/static/js/chunk-59e6.01e205d8.js.map differ diff --git a/priv/static/adminfe/static/js/chunk-5cf2.a8562f1f.js b/priv/static/adminfe/static/js/chunk-5cf2.a8562f1f.js new file mode 100644 index 000000000..c639e6216 Binary files /dev/null and b/priv/static/adminfe/static/js/chunk-5cf2.a8562f1f.js differ diff --git a/priv/static/adminfe/static/js/chunk-5cf2.a8562f1f.js.map b/priv/static/adminfe/static/js/chunk-5cf2.a8562f1f.js.map new file mode 100644 index 000000000..1e92102a6 Binary files /dev/null and b/priv/static/adminfe/static/js/chunk-5cf2.a8562f1f.js.map differ diff --git a/priv/static/adminfe/static/js/chunk-5ff8.a7482f14.js b/priv/static/adminfe/static/js/chunk-5ff8.a7482f14.js deleted file mode 100644 index 86f558de4..000000000 Binary files a/priv/static/adminfe/static/js/chunk-5ff8.a7482f14.js and /dev/null differ diff --git a/priv/static/adminfe/static/js/chunk-5ff8.a7482f14.js.map b/priv/static/adminfe/static/js/chunk-5ff8.a7482f14.js.map deleted file mode 100644 index 02804f0c6..000000000 Binary files a/priv/static/adminfe/static/js/chunk-5ff8.a7482f14.js.map and /dev/null differ diff --git a/priv/static/adminfe/static/js/chunk-68b6.4347fd87.js b/priv/static/adminfe/static/js/chunk-68b6.4347fd87.js new file mode 100644 index 000000000..895f8ce90 Binary files /dev/null and b/priv/static/adminfe/static/js/chunk-68b6.4347fd87.js differ diff --git a/priv/static/adminfe/static/js/chunk-68b6.4347fd87.js.map b/priv/static/adminfe/static/js/chunk-68b6.4347fd87.js.map new file mode 100644 index 000000000..b3441a398 Binary files /dev/null and b/priv/static/adminfe/static/js/chunk-68b6.4347fd87.js.map differ diff --git a/priv/static/adminfe/static/js/chunk-68ea.6d56674a.js b/priv/static/adminfe/static/js/chunk-68ea.6d56674a.js deleted file mode 100644 index 1f43a39db..000000000 Binary files a/priv/static/adminfe/static/js/chunk-68ea.6d56674a.js and /dev/null differ diff --git a/priv/static/adminfe/static/js/chunk-68ea.6d56674a.js.map b/priv/static/adminfe/static/js/chunk-68ea.6d56674a.js.map deleted file mode 100644 index 45000a1b0..000000000 Binary files a/priv/static/adminfe/static/js/chunk-68ea.6d56674a.js.map and /dev/null differ diff --git a/priv/static/adminfe/static/js/chunk-71b5.a60307b1.js b/priv/static/adminfe/static/js/chunk-71b5.a60307b1.js deleted file mode 100644 index ae6e3d3b0..000000000 Binary files a/priv/static/adminfe/static/js/chunk-71b5.a60307b1.js and /dev/null differ diff --git a/priv/static/adminfe/static/js/chunk-71b5.a60307b1.js.map b/priv/static/adminfe/static/js/chunk-71b5.a60307b1.js.map deleted file mode 100644 index c9ab30c0a..000000000 Binary files a/priv/static/adminfe/static/js/chunk-71b5.a60307b1.js.map and /dev/null differ diff --git a/priv/static/adminfe/static/js/chunk-7c11.b858969e.js b/priv/static/adminfe/static/js/chunk-7c11.b858969e.js new file mode 100644 index 000000000..01d4eed02 Binary files /dev/null and b/priv/static/adminfe/static/js/chunk-7c11.b858969e.js differ diff --git a/priv/static/adminfe/static/js/chunk-7c11.b858969e.js.map b/priv/static/adminfe/static/js/chunk-7c11.b858969e.js.map new file mode 100644 index 000000000..d5609102c Binary files /dev/null and b/priv/static/adminfe/static/js/chunk-7c11.b858969e.js.map differ diff --git a/priv/static/adminfe/static/js/chunk-a104.07359dcd.js b/priv/static/adminfe/static/js/chunk-a104.07359dcd.js deleted file mode 100644 index f6c3c46b7..000000000 Binary files a/priv/static/adminfe/static/js/chunk-a104.07359dcd.js and /dev/null differ diff --git a/priv/static/adminfe/static/js/chunk-a104.07359dcd.js.map b/priv/static/adminfe/static/js/chunk-a104.07359dcd.js.map deleted file mode 100644 index cc9b00b22..000000000 Binary files a/priv/static/adminfe/static/js/chunk-a104.07359dcd.js.map and /dev/null differ diff --git a/priv/static/adminfe/static/js/chunk-bc60.4dbf525d.js b/priv/static/adminfe/static/js/chunk-bc60.4dbf525d.js deleted file mode 100644 index ca1823d44..000000000 Binary files a/priv/static/adminfe/static/js/chunk-bc60.4dbf525d.js and /dev/null differ diff --git a/priv/static/adminfe/static/js/chunk-bc60.4dbf525d.js.map b/priv/static/adminfe/static/js/chunk-bc60.4dbf525d.js.map deleted file mode 100644 index 10ea33531..000000000 Binary files a/priv/static/adminfe/static/js/chunk-bc60.4dbf525d.js.map and /dev/null differ diff --git a/priv/static/adminfe/static/js/chunk-commons.7f561ac1.js b/priv/static/adminfe/static/js/chunk-commons.7f561ac1.js deleted file mode 100644 index 5c38ba894..000000000 Binary files a/priv/static/adminfe/static/js/chunk-commons.7f561ac1.js and /dev/null differ diff --git a/priv/static/adminfe/static/js/chunk-commons.7f561ac1.js.map b/priv/static/adminfe/static/js/chunk-commons.7f561ac1.js.map deleted file mode 100644 index a543f2c43..000000000 Binary files a/priv/static/adminfe/static/js/chunk-commons.7f561ac1.js.map and /dev/null differ diff --git a/priv/static/adminfe/static/js/chunk-elementUI.4c32a355.js b/priv/static/adminfe/static/js/chunk-elementUI.4c32a355.js deleted file mode 100644 index 0696ae2b3..000000000 Binary files a/priv/static/adminfe/static/js/chunk-elementUI.4c32a355.js and /dev/null differ diff --git a/priv/static/adminfe/static/js/chunk-elementUI.4c32a355.js.map b/priv/static/adminfe/static/js/chunk-elementUI.4c32a355.js.map deleted file mode 100644 index 04b4df906..000000000 Binary files a/priv/static/adminfe/static/js/chunk-elementUI.4c32a355.js.map and /dev/null differ diff --git a/priv/static/adminfe/static/js/chunk-elementUI.bec6fa77.js b/priv/static/adminfe/static/js/chunk-elementUI.bec6fa77.js new file mode 100644 index 000000000..155839b11 Binary files /dev/null and b/priv/static/adminfe/static/js/chunk-elementUI.bec6fa77.js differ diff --git a/priv/static/adminfe/static/js/chunk-elementUI.bec6fa77.js.map b/priv/static/adminfe/static/js/chunk-elementUI.bec6fa77.js.map new file mode 100644 index 000000000..02dca73f4 Binary files /dev/null and b/priv/static/adminfe/static/js/chunk-elementUI.bec6fa77.js.map differ diff --git a/priv/static/adminfe/static/js/chunk-f1f7.80ae76f2.js b/priv/static/adminfe/static/js/chunk-f1f7.80ae76f2.js deleted file mode 100644 index 20015ca8f..000000000 Binary files a/priv/static/adminfe/static/js/chunk-f1f7.80ae76f2.js and /dev/null differ diff --git a/priv/static/adminfe/static/js/chunk-f1f7.80ae76f2.js.map b/priv/static/adminfe/static/js/chunk-f1f7.80ae76f2.js.map deleted file mode 100644 index 751f252ea..000000000 Binary files a/priv/static/adminfe/static/js/chunk-f1f7.80ae76f2.js.map and /dev/null differ diff --git a/priv/static/adminfe/static/js/chunk-libs.55b24a78.js b/priv/static/adminfe/static/js/chunk-libs.55b24a78.js deleted file mode 100644 index f7b952a20..000000000 Binary files a/priv/static/adminfe/static/js/chunk-libs.55b24a78.js and /dev/null differ diff --git a/priv/static/adminfe/static/js/chunk-libs.55b24a78.js.map b/priv/static/adminfe/static/js/chunk-libs.55b24a78.js.map deleted file mode 100644 index b2023c1f3..000000000 Binary files a/priv/static/adminfe/static/js/chunk-libs.55b24a78.js.map and /dev/null differ diff --git a/priv/static/adminfe/static/js/chunk-libs.eb232bda.js b/priv/static/adminfe/static/js/chunk-libs.eb232bda.js new file mode 100644 index 000000000..895a05702 Binary files /dev/null and b/priv/static/adminfe/static/js/chunk-libs.eb232bda.js differ diff --git a/priv/static/adminfe/static/js/chunk-libs.eb232bda.js.map b/priv/static/adminfe/static/js/chunk-libs.eb232bda.js.map new file mode 100644 index 000000000..a3ed4c688 Binary files /dev/null and b/priv/static/adminfe/static/js/chunk-libs.eb232bda.js.map differ diff --git a/priv/static/adminfe/static/js/oAJy.25bb7cc7.js b/priv/static/adminfe/static/js/oAJy.25bb7cc7.js new file mode 100644 index 000000000..1c98c2800 Binary files /dev/null and b/priv/static/adminfe/static/js/oAJy.25bb7cc7.js differ diff --git a/priv/static/adminfe/static/js/oAJy.25bb7cc7.js.map b/priv/static/adminfe/static/js/oAJy.25bb7cc7.js.map new file mode 100644 index 000000000..8ed70c098 Binary files /dev/null and b/priv/static/adminfe/static/js/oAJy.25bb7cc7.js.map differ diff --git a/priv/static/adminfe/static/js/oAJy.2d5429b2.js b/priv/static/adminfe/static/js/oAJy.2d5429b2.js deleted file mode 100644 index 72ef1a89b..000000000 Binary files a/priv/static/adminfe/static/js/oAJy.2d5429b2.js and /dev/null differ diff --git a/priv/static/adminfe/static/js/oAJy.2d5429b2.js.map b/priv/static/adminfe/static/js/oAJy.2d5429b2.js.map deleted file mode 100644 index e93954508..000000000 Binary files a/priv/static/adminfe/static/js/oAJy.2d5429b2.js.map and /dev/null differ diff --git a/priv/static/adminfe/static/js/runtime.2a586239.js b/priv/static/adminfe/static/js/runtime.2a586239.js deleted file mode 100644 index 43cd69012..000000000 Binary files a/priv/static/adminfe/static/js/runtime.2a586239.js and /dev/null differ diff --git a/priv/static/adminfe/static/js/runtime.2a586239.js.map b/priv/static/adminfe/static/js/runtime.2a586239.js.map deleted file mode 100644 index 9ff192bfd..000000000 Binary files a/priv/static/adminfe/static/js/runtime.2a586239.js.map and /dev/null differ diff --git a/priv/static/adminfe/static/js/runtime.f1a41c33.js b/priv/static/adminfe/static/js/runtime.f1a41c33.js new file mode 100644 index 000000000..f97fa72c8 Binary files /dev/null and b/priv/static/adminfe/static/js/runtime.f1a41c33.js differ diff --git a/priv/static/adminfe/static/js/runtime.f1a41c33.js.map b/priv/static/adminfe/static/js/runtime.f1a41c33.js.map new file mode 100644 index 000000000..587794937 Binary files /dev/null and b/priv/static/adminfe/static/js/runtime.f1a41c33.js.map differ diff --git a/priv/static/emoji/1f004.svg b/priv/static/emoji/1f004.svg deleted file mode 100644 index f4fa5844c..000000000 --- a/priv/static/emoji/1f004.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f0cf.svg b/priv/static/emoji/1f0cf.svg deleted file mode 100644 index 0d05191cb..000000000 --- a/priv/static/emoji/1f0cf.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f170.svg b/priv/static/emoji/1f170.svg deleted file mode 100644 index 5555b84a9..000000000 --- a/priv/static/emoji/1f170.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f171.svg b/priv/static/emoji/1f171.svg deleted file mode 100644 index f77618af1..000000000 --- a/priv/static/emoji/1f171.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f17e.svg b/priv/static/emoji/1f17e.svg deleted file mode 100644 index 62f2f6d39..000000000 --- a/priv/static/emoji/1f17e.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f17f.svg b/priv/static/emoji/1f17f.svg deleted file mode 100644 index 8a494b8f7..000000000 --- a/priv/static/emoji/1f17f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f18e.svg b/priv/static/emoji/1f18e.svg deleted file mode 100644 index d19a2a439..000000000 --- a/priv/static/emoji/1f18e.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f191.svg b/priv/static/emoji/1f191.svg deleted file mode 100644 index eaebb5587..000000000 --- a/priv/static/emoji/1f191.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f192.svg b/priv/static/emoji/1f192.svg deleted file mode 100644 index 3207dcf61..000000000 --- a/priv/static/emoji/1f192.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f193.svg b/priv/static/emoji/1f193.svg deleted file mode 100644 index 2dc2d6aaf..000000000 --- a/priv/static/emoji/1f193.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f194.svg b/priv/static/emoji/1f194.svg deleted file mode 100644 index 579625992..000000000 --- a/priv/static/emoji/1f194.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f195.svg b/priv/static/emoji/1f195.svg deleted file mode 100644 index dcf5702a3..000000000 --- a/priv/static/emoji/1f195.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f196.svg b/priv/static/emoji/1f196.svg deleted file mode 100644 index ccd7c36d1..000000000 --- a/priv/static/emoji/1f196.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f197.svg b/priv/static/emoji/1f197.svg deleted file mode 100644 index 1c42dae35..000000000 --- a/priv/static/emoji/1f197.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f198.svg b/priv/static/emoji/1f198.svg deleted file mode 100644 index 6fe35a172..000000000 --- a/priv/static/emoji/1f198.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f199.svg b/priv/static/emoji/1f199.svg deleted file mode 100644 index 19ab1844d..000000000 --- a/priv/static/emoji/1f199.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f19a.svg b/priv/static/emoji/1f19a.svg deleted file mode 100644 index 2d36646ac..000000000 --- a/priv/static/emoji/1f19a.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f1e6-1f1e8.svg b/priv/static/emoji/1f1e6-1f1e8.svg deleted file mode 100644 index 53f90dc48..000000000 --- a/priv/static/emoji/1f1e6-1f1e8.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f1e6-1f1e9.svg b/priv/static/emoji/1f1e6-1f1e9.svg deleted file mode 100644 index be1059476..000000000 --- a/priv/static/emoji/1f1e6-1f1e9.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f1e6-1f1ea.svg b/priv/static/emoji/1f1e6-1f1ea.svg deleted file mode 100644 index be8e114a9..000000000 --- a/priv/static/emoji/1f1e6-1f1ea.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f1e6-1f1eb.svg b/priv/static/emoji/1f1e6-1f1eb.svg deleted file mode 100644 index 769efcadf..000000000 --- a/priv/static/emoji/1f1e6-1f1eb.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f1e6-1f1ec.svg b/priv/static/emoji/1f1e6-1f1ec.svg deleted file mode 100644 index 271661726..000000000 --- a/priv/static/emoji/1f1e6-1f1ec.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f1e6-1f1ee.svg b/priv/static/emoji/1f1e6-1f1ee.svg deleted file mode 100644 index 6a91dd9d7..000000000 --- a/priv/static/emoji/1f1e6-1f1ee.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f1e6-1f1f1.svg b/priv/static/emoji/1f1e6-1f1f1.svg deleted file mode 100644 index 2c8655ddd..000000000 --- a/priv/static/emoji/1f1e6-1f1f1.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f1e6-1f1f2.svg b/priv/static/emoji/1f1e6-1f1f2.svg deleted file mode 100644 index 0a966ab8b..000000000 --- a/priv/static/emoji/1f1e6-1f1f2.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f1e6-1f1f4.svg b/priv/static/emoji/1f1e6-1f1f4.svg deleted file mode 100644 index 65803b64a..000000000 --- a/priv/static/emoji/1f1e6-1f1f4.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f1e6-1f1f6.svg b/priv/static/emoji/1f1e6-1f1f6.svg deleted file mode 100644 index fd29680f5..000000000 --- a/priv/static/emoji/1f1e6-1f1f6.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f1e6-1f1f7.svg b/priv/static/emoji/1f1e6-1f1f7.svg deleted file mode 100644 index e8e60efdf..000000000 --- a/priv/static/emoji/1f1e6-1f1f7.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f1e6-1f1f8.svg b/priv/static/emoji/1f1e6-1f1f8.svg deleted file mode 100644 index 8b275322a..000000000 --- a/priv/static/emoji/1f1e6-1f1f8.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f1e6-1f1f9.svg b/priv/static/emoji/1f1e6-1f1f9.svg deleted file mode 100644 index bfe1ec7f1..000000000 --- a/priv/static/emoji/1f1e6-1f1f9.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f1e6-1f1fa.svg b/priv/static/emoji/1f1e6-1f1fa.svg deleted file mode 100644 index 989da76df..000000000 --- a/priv/static/emoji/1f1e6-1f1fa.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f1e6-1f1fc.svg b/priv/static/emoji/1f1e6-1f1fc.svg deleted file mode 100644 index f38395126..000000000 --- a/priv/static/emoji/1f1e6-1f1fc.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f1e6-1f1fd.svg b/priv/static/emoji/1f1e6-1f1fd.svg deleted file mode 100644 index 03bc680c7..000000000 --- a/priv/static/emoji/1f1e6-1f1fd.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f1e6-1f1ff.svg b/priv/static/emoji/1f1e6-1f1ff.svg deleted file mode 100644 index b5848545b..000000000 --- a/priv/static/emoji/1f1e6-1f1ff.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f1e6.svg b/priv/static/emoji/1f1e6.svg deleted file mode 100644 index d3753d4a7..000000000 --- a/priv/static/emoji/1f1e6.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f1e7-1f1e6.svg b/priv/static/emoji/1f1e7-1f1e6.svg deleted file mode 100644 index bbcd3b5e6..000000000 --- a/priv/static/emoji/1f1e7-1f1e6.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f1e7-1f1e7.svg b/priv/static/emoji/1f1e7-1f1e7.svg deleted file mode 100644 index 7f9e8c9d1..000000000 --- a/priv/static/emoji/1f1e7-1f1e7.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f1e7-1f1e9.svg b/priv/static/emoji/1f1e7-1f1e9.svg deleted file mode 100644 index 6edc84430..000000000 --- a/priv/static/emoji/1f1e7-1f1e9.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f1e7-1f1ea.svg b/priv/static/emoji/1f1e7-1f1ea.svg deleted file mode 100644 index e95619434..000000000 --- a/priv/static/emoji/1f1e7-1f1ea.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f1e7-1f1eb.svg b/priv/static/emoji/1f1e7-1f1eb.svg deleted file mode 100644 index 8bceec74b..000000000 --- a/priv/static/emoji/1f1e7-1f1eb.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f1e7-1f1ec.svg b/priv/static/emoji/1f1e7-1f1ec.svg deleted file mode 100644 index 6e81fba54..000000000 --- a/priv/static/emoji/1f1e7-1f1ec.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f1e7-1f1ed.svg b/priv/static/emoji/1f1e7-1f1ed.svg deleted file mode 100644 index 73de5829e..000000000 --- a/priv/static/emoji/1f1e7-1f1ed.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f1e7-1f1ee.svg b/priv/static/emoji/1f1e7-1f1ee.svg deleted file mode 100644 index e53644c54..000000000 --- a/priv/static/emoji/1f1e7-1f1ee.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f1e7-1f1ef.svg b/priv/static/emoji/1f1e7-1f1ef.svg deleted file mode 100644 index 133d71124..000000000 --- a/priv/static/emoji/1f1e7-1f1ef.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f1e7-1f1f1.svg b/priv/static/emoji/1f1e7-1f1f1.svg deleted file mode 100644 index 9d4904dd4..000000000 --- a/priv/static/emoji/1f1e7-1f1f1.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f1e7-1f1f2.svg b/priv/static/emoji/1f1e7-1f1f2.svg deleted file mode 100644 index 5e7b7f697..000000000 --- a/priv/static/emoji/1f1e7-1f1f2.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f1e7-1f1f3.svg b/priv/static/emoji/1f1e7-1f1f3.svg deleted file mode 100644 index 3c20edb28..000000000 --- a/priv/static/emoji/1f1e7-1f1f3.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f1e7-1f1f4.svg b/priv/static/emoji/1f1e7-1f1f4.svg deleted file mode 100644 index ad0a8c9a2..000000000 --- a/priv/static/emoji/1f1e7-1f1f4.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f1e7-1f1f6.svg b/priv/static/emoji/1f1e7-1f1f6.svg deleted file mode 100644 index bde492170..000000000 --- a/priv/static/emoji/1f1e7-1f1f6.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f1e7-1f1f7.svg b/priv/static/emoji/1f1e7-1f1f7.svg deleted file mode 100644 index 956e39d07..000000000 --- a/priv/static/emoji/1f1e7-1f1f7.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f1e7-1f1f8.svg b/priv/static/emoji/1f1e7-1f1f8.svg deleted file mode 100644 index a75f68bb6..000000000 --- a/priv/static/emoji/1f1e7-1f1f8.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f1e7-1f1f9.svg b/priv/static/emoji/1f1e7-1f1f9.svg deleted file mode 100644 index e822f94f3..000000000 --- a/priv/static/emoji/1f1e7-1f1f9.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f1e7-1f1fb.svg b/priv/static/emoji/1f1e7-1f1fb.svg deleted file mode 100644 index 3d104a611..000000000 --- a/priv/static/emoji/1f1e7-1f1fb.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f1e7-1f1fc.svg b/priv/static/emoji/1f1e7-1f1fc.svg deleted file mode 100644 index 5edeb5d5f..000000000 --- a/priv/static/emoji/1f1e7-1f1fc.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f1e7-1f1fe.svg b/priv/static/emoji/1f1e7-1f1fe.svg deleted file mode 100644 index 3fef573be..000000000 --- a/priv/static/emoji/1f1e7-1f1fe.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f1e7-1f1ff.svg b/priv/static/emoji/1f1e7-1f1ff.svg deleted file mode 100644 index 6f43e4a7e..000000000 --- a/priv/static/emoji/1f1e7-1f1ff.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f1e7.svg b/priv/static/emoji/1f1e7.svg deleted file mode 100644 index 52dcf7e91..000000000 --- a/priv/static/emoji/1f1e7.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f1e8-1f1e6.svg b/priv/static/emoji/1f1e8-1f1e6.svg deleted file mode 100644 index d9c386dbe..000000000 --- a/priv/static/emoji/1f1e8-1f1e6.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f1e8-1f1e8.svg b/priv/static/emoji/1f1e8-1f1e8.svg deleted file mode 100644 index ce130d70b..000000000 --- a/priv/static/emoji/1f1e8-1f1e8.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f1e8-1f1e9.svg b/priv/static/emoji/1f1e8-1f1e9.svg deleted file mode 100644 index d1b15c995..000000000 --- a/priv/static/emoji/1f1e8-1f1e9.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f1e8-1f1eb.svg b/priv/static/emoji/1f1e8-1f1eb.svg deleted file mode 100644 index 72166cbe0..000000000 --- a/priv/static/emoji/1f1e8-1f1eb.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f1e8-1f1ec.svg b/priv/static/emoji/1f1e8-1f1ec.svg deleted file mode 100644 index 3d466e3da..000000000 --- a/priv/static/emoji/1f1e8-1f1ec.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f1e8-1f1ed.svg b/priv/static/emoji/1f1e8-1f1ed.svg deleted file mode 100644 index 741b52144..000000000 --- a/priv/static/emoji/1f1e8-1f1ed.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f1e8-1f1ee.svg b/priv/static/emoji/1f1e8-1f1ee.svg deleted file mode 100644 index bd2c3e062..000000000 --- a/priv/static/emoji/1f1e8-1f1ee.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f1e8-1f1f0.svg b/priv/static/emoji/1f1e8-1f1f0.svg deleted file mode 100644 index 04e034448..000000000 --- a/priv/static/emoji/1f1e8-1f1f0.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f1e8-1f1f1.svg b/priv/static/emoji/1f1e8-1f1f1.svg deleted file mode 100644 index 52b3a007d..000000000 --- a/priv/static/emoji/1f1e8-1f1f1.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f1e8-1f1f2.svg b/priv/static/emoji/1f1e8-1f1f2.svg deleted file mode 100644 index 7da7b66a7..000000000 --- a/priv/static/emoji/1f1e8-1f1f2.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f1e8-1f1f3.svg b/priv/static/emoji/1f1e8-1f1f3.svg deleted file mode 100644 index c10116d0a..000000000 --- a/priv/static/emoji/1f1e8-1f1f3.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f1e8-1f1f4.svg b/priv/static/emoji/1f1e8-1f1f4.svg deleted file mode 100644 index dc825d246..000000000 --- a/priv/static/emoji/1f1e8-1f1f4.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f1e8-1f1f5.svg b/priv/static/emoji/1f1e8-1f1f5.svg deleted file mode 100644 index 4eafe7aa5..000000000 --- a/priv/static/emoji/1f1e8-1f1f5.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f1e8-1f1f7.svg b/priv/static/emoji/1f1e8-1f1f7.svg deleted file mode 100644 index acecc8952..000000000 --- a/priv/static/emoji/1f1e8-1f1f7.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f1e8-1f1fa.svg b/priv/static/emoji/1f1e8-1f1fa.svg deleted file mode 100644 index 13b637014..000000000 --- a/priv/static/emoji/1f1e8-1f1fa.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f1e8-1f1fb.svg b/priv/static/emoji/1f1e8-1f1fb.svg deleted file mode 100644 index 9b2cc18df..000000000 --- a/priv/static/emoji/1f1e8-1f1fb.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f1e8-1f1fc.svg b/priv/static/emoji/1f1e8-1f1fc.svg deleted file mode 100644 index c53d09f79..000000000 --- a/priv/static/emoji/1f1e8-1f1fc.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f1e8-1f1fd.svg b/priv/static/emoji/1f1e8-1f1fd.svg deleted file mode 100644 index 6a322f577..000000000 --- a/priv/static/emoji/1f1e8-1f1fd.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f1e8-1f1fe.svg b/priv/static/emoji/1f1e8-1f1fe.svg deleted file mode 100644 index 19bead4dd..000000000 --- a/priv/static/emoji/1f1e8-1f1fe.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f1e8-1f1ff.svg b/priv/static/emoji/1f1e8-1f1ff.svg deleted file mode 100644 index fd3b47061..000000000 --- a/priv/static/emoji/1f1e8-1f1ff.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f1e8.svg b/priv/static/emoji/1f1e8.svg deleted file mode 100644 index 80b6405c2..000000000 --- a/priv/static/emoji/1f1e8.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f1e9-1f1ea.svg b/priv/static/emoji/1f1e9-1f1ea.svg deleted file mode 100644 index 10a539990..000000000 --- a/priv/static/emoji/1f1e9-1f1ea.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f1e9-1f1ec.svg b/priv/static/emoji/1f1e9-1f1ec.svg deleted file mode 100644 index 565a7aa4f..000000000 --- a/priv/static/emoji/1f1e9-1f1ec.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f1e9-1f1ef.svg b/priv/static/emoji/1f1e9-1f1ef.svg deleted file mode 100644 index 42cbb243d..000000000 --- a/priv/static/emoji/1f1e9-1f1ef.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f1e9-1f1f0.svg b/priv/static/emoji/1f1e9-1f1f0.svg deleted file mode 100644 index 5ab629ba1..000000000 --- a/priv/static/emoji/1f1e9-1f1f0.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f1e9-1f1f2.svg b/priv/static/emoji/1f1e9-1f1f2.svg deleted file mode 100644 index 750424f7b..000000000 --- a/priv/static/emoji/1f1e9-1f1f2.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f1e9-1f1f4.svg b/priv/static/emoji/1f1e9-1f1f4.svg deleted file mode 100644 index c627c34ee..000000000 --- a/priv/static/emoji/1f1e9-1f1f4.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f1e9-1f1ff.svg b/priv/static/emoji/1f1e9-1f1ff.svg deleted file mode 100644 index c29a7e299..000000000 --- a/priv/static/emoji/1f1e9-1f1ff.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f1e9.svg b/priv/static/emoji/1f1e9.svg deleted file mode 100644 index 24d64af38..000000000 --- a/priv/static/emoji/1f1e9.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f1ea-1f1e6.svg b/priv/static/emoji/1f1ea-1f1e6.svg deleted file mode 100644 index d1fd565cd..000000000 --- a/priv/static/emoji/1f1ea-1f1e6.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f1ea-1f1e8.svg b/priv/static/emoji/1f1ea-1f1e8.svg deleted file mode 100644 index c035be7a9..000000000 --- a/priv/static/emoji/1f1ea-1f1e8.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f1ea-1f1ea.svg b/priv/static/emoji/1f1ea-1f1ea.svg deleted file mode 100644 index 47a55895c..000000000 --- a/priv/static/emoji/1f1ea-1f1ea.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f1ea-1f1ec.svg b/priv/static/emoji/1f1ea-1f1ec.svg deleted file mode 100644 index 2034a3e51..000000000 --- a/priv/static/emoji/1f1ea-1f1ec.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f1ea-1f1ed.svg b/priv/static/emoji/1f1ea-1f1ed.svg deleted file mode 100644 index 9b8dc5a64..000000000 --- a/priv/static/emoji/1f1ea-1f1ed.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f1ea-1f1f7.svg b/priv/static/emoji/1f1ea-1f1f7.svg deleted file mode 100644 index 8e1e510fe..000000000 --- a/priv/static/emoji/1f1ea-1f1f7.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f1ea-1f1f8.svg b/priv/static/emoji/1f1ea-1f1f8.svg deleted file mode 100644 index d1fd565cd..000000000 --- a/priv/static/emoji/1f1ea-1f1f8.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f1ea-1f1f9.svg b/priv/static/emoji/1f1ea-1f1f9.svg deleted file mode 100644 index 762cc1fb9..000000000 --- a/priv/static/emoji/1f1ea-1f1f9.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f1ea-1f1fa.svg b/priv/static/emoji/1f1ea-1f1fa.svg deleted file mode 100644 index 045024a33..000000000 --- a/priv/static/emoji/1f1ea-1f1fa.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f1ea.svg b/priv/static/emoji/1f1ea.svg deleted file mode 100644 index 352b75e7b..000000000 --- a/priv/static/emoji/1f1ea.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f1eb-1f1ee.svg b/priv/static/emoji/1f1eb-1f1ee.svg deleted file mode 100644 index e07328edd..000000000 --- a/priv/static/emoji/1f1eb-1f1ee.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f1eb-1f1ef.svg b/priv/static/emoji/1f1eb-1f1ef.svg deleted file mode 100644 index 190134b5d..000000000 --- a/priv/static/emoji/1f1eb-1f1ef.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f1eb-1f1f0.svg b/priv/static/emoji/1f1eb-1f1f0.svg deleted file mode 100644 index 0091bc78b..000000000 --- a/priv/static/emoji/1f1eb-1f1f0.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f1eb-1f1f2.svg b/priv/static/emoji/1f1eb-1f1f2.svg deleted file mode 100644 index b49556b56..000000000 --- a/priv/static/emoji/1f1eb-1f1f2.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f1eb-1f1f4.svg b/priv/static/emoji/1f1eb-1f1f4.svg deleted file mode 100644 index 93a127285..000000000 --- a/priv/static/emoji/1f1eb-1f1f4.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f1eb-1f1f7.svg b/priv/static/emoji/1f1eb-1f1f7.svg deleted file mode 100644 index 4eafe7aa5..000000000 --- a/priv/static/emoji/1f1eb-1f1f7.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f1eb.svg b/priv/static/emoji/1f1eb.svg deleted file mode 100644 index 22f9d3d74..000000000 --- a/priv/static/emoji/1f1eb.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f1ec-1f1e6.svg b/priv/static/emoji/1f1ec-1f1e6.svg deleted file mode 100644 index a8c6fa417..000000000 --- a/priv/static/emoji/1f1ec-1f1e6.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f1ec-1f1e7.svg b/priv/static/emoji/1f1ec-1f1e7.svg deleted file mode 100644 index 21b97e9fc..000000000 --- a/priv/static/emoji/1f1ec-1f1e7.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f1ec-1f1e9.svg b/priv/static/emoji/1f1ec-1f1e9.svg deleted file mode 100644 index e4f37f95a..000000000 --- a/priv/static/emoji/1f1ec-1f1e9.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f1ec-1f1ea.svg b/priv/static/emoji/1f1ec-1f1ea.svg deleted file mode 100644 index 8c2bd5a63..000000000 --- a/priv/static/emoji/1f1ec-1f1ea.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f1ec-1f1eb.svg b/priv/static/emoji/1f1ec-1f1eb.svg deleted file mode 100644 index 2f10cee3c..000000000 --- a/priv/static/emoji/1f1ec-1f1eb.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f1ec-1f1ec.svg b/priv/static/emoji/1f1ec-1f1ec.svg deleted file mode 100644 index 84f604394..000000000 --- a/priv/static/emoji/1f1ec-1f1ec.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f1ec-1f1ed.svg b/priv/static/emoji/1f1ec-1f1ed.svg deleted file mode 100644 index 33302188d..000000000 --- a/priv/static/emoji/1f1ec-1f1ed.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f1ec-1f1ee.svg b/priv/static/emoji/1f1ec-1f1ee.svg deleted file mode 100644 index 432a7272b..000000000 --- a/priv/static/emoji/1f1ec-1f1ee.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f1ec-1f1f1.svg b/priv/static/emoji/1f1ec-1f1f1.svg deleted file mode 100644 index 8a2ba3e4f..000000000 --- a/priv/static/emoji/1f1ec-1f1f1.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f1ec-1f1f2.svg b/priv/static/emoji/1f1ec-1f1f2.svg deleted file mode 100644 index 383cf9d3c..000000000 --- a/priv/static/emoji/1f1ec-1f1f2.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f1ec-1f1f3.svg b/priv/static/emoji/1f1ec-1f1f3.svg deleted file mode 100644 index 16f4a9027..000000000 --- a/priv/static/emoji/1f1ec-1f1f3.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f1ec-1f1f5.svg b/priv/static/emoji/1f1ec-1f1f5.svg deleted file mode 100644 index ca9e4c6a6..000000000 --- a/priv/static/emoji/1f1ec-1f1f5.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f1ec-1f1f6.svg b/priv/static/emoji/1f1ec-1f1f6.svg deleted file mode 100644 index d4e7119f8..000000000 --- a/priv/static/emoji/1f1ec-1f1f6.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f1ec-1f1f7.svg b/priv/static/emoji/1f1ec-1f1f7.svg deleted file mode 100644 index 74d842d61..000000000 --- a/priv/static/emoji/1f1ec-1f1f7.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f1ec-1f1f8.svg b/priv/static/emoji/1f1ec-1f1f8.svg deleted file mode 100644 index d8b1e5feb..000000000 --- a/priv/static/emoji/1f1ec-1f1f8.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f1ec-1f1f9.svg b/priv/static/emoji/1f1ec-1f1f9.svg deleted file mode 100644 index fea623c97..000000000 --- a/priv/static/emoji/1f1ec-1f1f9.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f1ec-1f1fa.svg b/priv/static/emoji/1f1ec-1f1fa.svg deleted file mode 100644 index 2098ecca2..000000000 --- a/priv/static/emoji/1f1ec-1f1fa.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f1ec-1f1fc.svg b/priv/static/emoji/1f1ec-1f1fc.svg deleted file mode 100644 index 6e01b9e21..000000000 --- a/priv/static/emoji/1f1ec-1f1fc.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f1ec-1f1fe.svg b/priv/static/emoji/1f1ec-1f1fe.svg deleted file mode 100644 index 1edc6ef47..000000000 --- a/priv/static/emoji/1f1ec-1f1fe.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f1ec.svg b/priv/static/emoji/1f1ec.svg deleted file mode 100644 index 3d7d62060..000000000 --- a/priv/static/emoji/1f1ec.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f1ed-1f1f0.svg b/priv/static/emoji/1f1ed-1f1f0.svg deleted file mode 100644 index ef5ca3bce..000000000 --- a/priv/static/emoji/1f1ed-1f1f0.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f1ed-1f1f2.svg b/priv/static/emoji/1f1ed-1f1f2.svg deleted file mode 100644 index 989da76df..000000000 --- a/priv/static/emoji/1f1ed-1f1f2.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f1ed-1f1f3.svg b/priv/static/emoji/1f1ed-1f1f3.svg deleted file mode 100644 index 298ec95af..000000000 --- a/priv/static/emoji/1f1ed-1f1f3.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f1ed-1f1f7.svg b/priv/static/emoji/1f1ed-1f1f7.svg deleted file mode 100644 index 7b8740c95..000000000 --- a/priv/static/emoji/1f1ed-1f1f7.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f1ed-1f1f9.svg b/priv/static/emoji/1f1ed-1f1f9.svg deleted file mode 100644 index 8ccca4282..000000000 --- a/priv/static/emoji/1f1ed-1f1f9.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f1ed-1f1fa.svg b/priv/static/emoji/1f1ed-1f1fa.svg deleted file mode 100644 index 206baa15b..000000000 --- a/priv/static/emoji/1f1ed-1f1fa.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f1ed.svg b/priv/static/emoji/1f1ed.svg deleted file mode 100644 index 20e48f86c..000000000 --- a/priv/static/emoji/1f1ed.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f1ee-1f1e8.svg b/priv/static/emoji/1f1ee-1f1e8.svg deleted file mode 100644 index 46b094979..000000000 --- a/priv/static/emoji/1f1ee-1f1e8.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f1ee-1f1e9.svg b/priv/static/emoji/1f1ee-1f1e9.svg deleted file mode 100644 index de31273f8..000000000 --- a/priv/static/emoji/1f1ee-1f1e9.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f1ee-1f1ea.svg b/priv/static/emoji/1f1ee-1f1ea.svg deleted file mode 100644 index 3c502571e..000000000 --- a/priv/static/emoji/1f1ee-1f1ea.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f1ee-1f1f1.svg b/priv/static/emoji/1f1ee-1f1f1.svg deleted file mode 100644 index 5cf324155..000000000 --- a/priv/static/emoji/1f1ee-1f1f1.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f1ee-1f1f2.svg b/priv/static/emoji/1f1ee-1f1f2.svg deleted file mode 100644 index 7fc9d465a..000000000 --- a/priv/static/emoji/1f1ee-1f1f2.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f1ee-1f1f3.svg b/priv/static/emoji/1f1ee-1f1f3.svg deleted file mode 100644 index 7af1dafe4..000000000 --- a/priv/static/emoji/1f1ee-1f1f3.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f1ee-1f1f4.svg b/priv/static/emoji/1f1ee-1f1f4.svg deleted file mode 100644 index 565a7aa4f..000000000 --- a/priv/static/emoji/1f1ee-1f1f4.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f1ee-1f1f6.svg b/priv/static/emoji/1f1ee-1f1f6.svg deleted file mode 100644 index 06cfe3192..000000000 --- a/priv/static/emoji/1f1ee-1f1f6.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f1ee-1f1f7.svg b/priv/static/emoji/1f1ee-1f1f7.svg deleted file mode 100644 index e8ae7b177..000000000 --- a/priv/static/emoji/1f1ee-1f1f7.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f1ee-1f1f8.svg b/priv/static/emoji/1f1ee-1f1f8.svg deleted file mode 100644 index c8e918c34..000000000 --- a/priv/static/emoji/1f1ee-1f1f8.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f1ee-1f1f9.svg b/priv/static/emoji/1f1ee-1f1f9.svg deleted file mode 100644 index 6c3801766..000000000 --- a/priv/static/emoji/1f1ee-1f1f9.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f1ee.svg b/priv/static/emoji/1f1ee.svg deleted file mode 100644 index 18b634ca2..000000000 --- a/priv/static/emoji/1f1ee.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f1ef-1f1ea.svg b/priv/static/emoji/1f1ef-1f1ea.svg deleted file mode 100644 index a17c379d1..000000000 --- a/priv/static/emoji/1f1ef-1f1ea.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f1ef-1f1f2.svg b/priv/static/emoji/1f1ef-1f1f2.svg deleted file mode 100644 index dd82d4fad..000000000 --- a/priv/static/emoji/1f1ef-1f1f2.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f1ef-1f1f4.svg b/priv/static/emoji/1f1ef-1f1f4.svg deleted file mode 100644 index 40710a56a..000000000 --- a/priv/static/emoji/1f1ef-1f1f4.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f1ef-1f1f5.svg b/priv/static/emoji/1f1ef-1f1f5.svg deleted file mode 100644 index 3a724e9fd..000000000 --- a/priv/static/emoji/1f1ef-1f1f5.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f1ef.svg b/priv/static/emoji/1f1ef.svg deleted file mode 100644 index e0a807236..000000000 --- a/priv/static/emoji/1f1ef.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f1f0-1f1ea.svg b/priv/static/emoji/1f1f0-1f1ea.svg deleted file mode 100644 index 5bee37fd7..000000000 --- a/priv/static/emoji/1f1f0-1f1ea.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f1f0-1f1ec.svg b/priv/static/emoji/1f1f0-1f1ec.svg deleted file mode 100644 index 2616d9e05..000000000 --- a/priv/static/emoji/1f1f0-1f1ec.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f1f0-1f1ed.svg b/priv/static/emoji/1f1f0-1f1ed.svg deleted file mode 100644 index 54f6e9047..000000000 --- a/priv/static/emoji/1f1f0-1f1ed.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f1f0-1f1ee.svg b/priv/static/emoji/1f1f0-1f1ee.svg deleted file mode 100644 index 233cce8d7..000000000 --- a/priv/static/emoji/1f1f0-1f1ee.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f1f0-1f1f2.svg b/priv/static/emoji/1f1f0-1f1f2.svg deleted file mode 100644 index 91c12b800..000000000 --- a/priv/static/emoji/1f1f0-1f1f2.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f1f0-1f1f3.svg b/priv/static/emoji/1f1f0-1f1f3.svg deleted file mode 100644 index 461e0f263..000000000 --- a/priv/static/emoji/1f1f0-1f1f3.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f1f0-1f1f5.svg b/priv/static/emoji/1f1f0-1f1f5.svg deleted file mode 100644 index d530523c7..000000000 --- a/priv/static/emoji/1f1f0-1f1f5.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f1f0-1f1f7.svg b/priv/static/emoji/1f1f0-1f1f7.svg deleted file mode 100644 index 7b5ee2334..000000000 --- a/priv/static/emoji/1f1f0-1f1f7.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f1f0-1f1fc.svg b/priv/static/emoji/1f1f0-1f1fc.svg deleted file mode 100644 index db949b287..000000000 --- a/priv/static/emoji/1f1f0-1f1fc.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f1f0-1f1fe.svg b/priv/static/emoji/1f1f0-1f1fe.svg deleted file mode 100644 index 57323f896..000000000 --- a/priv/static/emoji/1f1f0-1f1fe.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f1f0-1f1ff.svg b/priv/static/emoji/1f1f0-1f1ff.svg deleted file mode 100644 index d2101ab54..000000000 --- a/priv/static/emoji/1f1f0-1f1ff.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f1f0.svg b/priv/static/emoji/1f1f0.svg deleted file mode 100644 index 21484bf65..000000000 --- a/priv/static/emoji/1f1f0.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f1f1-1f1e6.svg b/priv/static/emoji/1f1f1-1f1e6.svg deleted file mode 100644 index 0ea005dbe..000000000 --- a/priv/static/emoji/1f1f1-1f1e6.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f1f1-1f1e7.svg b/priv/static/emoji/1f1f1-1f1e7.svg deleted file mode 100644 index 4271b73a4..000000000 --- a/priv/static/emoji/1f1f1-1f1e7.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f1f1-1f1e8.svg b/priv/static/emoji/1f1f1-1f1e8.svg deleted file mode 100644 index 12b2237e3..000000000 --- a/priv/static/emoji/1f1f1-1f1e8.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f1f1-1f1ee.svg b/priv/static/emoji/1f1f1-1f1ee.svg deleted file mode 100644 index 9e474bc1f..000000000 --- a/priv/static/emoji/1f1f1-1f1ee.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f1f1-1f1f0.svg b/priv/static/emoji/1f1f1-1f1f0.svg deleted file mode 100644 index a2fe8143e..000000000 --- a/priv/static/emoji/1f1f1-1f1f0.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f1f1-1f1f7.svg b/priv/static/emoji/1f1f1-1f1f7.svg deleted file mode 100644 index dd4a1e47b..000000000 --- a/priv/static/emoji/1f1f1-1f1f7.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f1f1-1f1f8.svg b/priv/static/emoji/1f1f1-1f1f8.svg deleted file mode 100644 index ec06e4fcc..000000000 --- a/priv/static/emoji/1f1f1-1f1f8.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f1f1-1f1f9.svg b/priv/static/emoji/1f1f1-1f1f9.svg deleted file mode 100644 index 5fcfd8bf1..000000000 --- a/priv/static/emoji/1f1f1-1f1f9.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f1f1-1f1fa.svg b/priv/static/emoji/1f1f1-1f1fa.svg deleted file mode 100644 index e66c904e7..000000000 --- a/priv/static/emoji/1f1f1-1f1fa.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f1f1-1f1fb.svg b/priv/static/emoji/1f1f1-1f1fb.svg deleted file mode 100644 index f5f39223b..000000000 --- a/priv/static/emoji/1f1f1-1f1fb.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f1f1-1f1fe.svg b/priv/static/emoji/1f1f1-1f1fe.svg deleted file mode 100644 index c6c12ed66..000000000 --- a/priv/static/emoji/1f1f1-1f1fe.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f1f1.svg b/priv/static/emoji/1f1f1.svg deleted file mode 100644 index d76ecd5d4..000000000 --- a/priv/static/emoji/1f1f1.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f1f2-1f1e6.svg b/priv/static/emoji/1f1f2-1f1e6.svg deleted file mode 100644 index d6d689a31..000000000 --- a/priv/static/emoji/1f1f2-1f1e6.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f1f2-1f1e8.svg b/priv/static/emoji/1f1f2-1f1e8.svg deleted file mode 100644 index 8604a1c45..000000000 --- a/priv/static/emoji/1f1f2-1f1e8.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f1f2-1f1e9.svg b/priv/static/emoji/1f1f2-1f1e9.svg deleted file mode 100644 index eb2d4a206..000000000 --- a/priv/static/emoji/1f1f2-1f1e9.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f1f2-1f1ea.svg b/priv/static/emoji/1f1f2-1f1ea.svg deleted file mode 100644 index 47c5b2e52..000000000 --- a/priv/static/emoji/1f1f2-1f1ea.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f1f2-1f1eb.svg b/priv/static/emoji/1f1f2-1f1eb.svg deleted file mode 100644 index 4eafe7aa5..000000000 --- a/priv/static/emoji/1f1f2-1f1eb.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f1f2-1f1ec.svg b/priv/static/emoji/1f1f2-1f1ec.svg deleted file mode 100644 index becf2f461..000000000 --- a/priv/static/emoji/1f1f2-1f1ec.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f1f2-1f1ed.svg b/priv/static/emoji/1f1f2-1f1ed.svg deleted file mode 100644 index 6774f9b34..000000000 --- a/priv/static/emoji/1f1f2-1f1ed.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f1f2-1f1f0.svg b/priv/static/emoji/1f1f2-1f1f0.svg deleted file mode 100644 index 371b2358f..000000000 --- a/priv/static/emoji/1f1f2-1f1f0.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f1f2-1f1f1.svg b/priv/static/emoji/1f1f2-1f1f1.svg deleted file mode 100644 index 3a522a0fd..000000000 --- a/priv/static/emoji/1f1f2-1f1f1.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f1f2-1f1f2.svg b/priv/static/emoji/1f1f2-1f1f2.svg deleted file mode 100644 index 69db533a9..000000000 --- a/priv/static/emoji/1f1f2-1f1f2.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f1f2-1f1f3.svg b/priv/static/emoji/1f1f2-1f1f3.svg deleted file mode 100644 index b9635cf7b..000000000 --- a/priv/static/emoji/1f1f2-1f1f3.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f1f2-1f1f4.svg b/priv/static/emoji/1f1f2-1f1f4.svg deleted file mode 100644 index 790900e40..000000000 --- a/priv/static/emoji/1f1f2-1f1f4.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f1f2-1f1f5.svg b/priv/static/emoji/1f1f2-1f1f5.svg deleted file mode 100644 index f0a5fb45d..000000000 --- a/priv/static/emoji/1f1f2-1f1f5.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f1f2-1f1f6.svg b/priv/static/emoji/1f1f2-1f1f6.svg deleted file mode 100644 index f7053092c..000000000 --- a/priv/static/emoji/1f1f2-1f1f6.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f1f2-1f1f7.svg b/priv/static/emoji/1f1f2-1f1f7.svg deleted file mode 100644 index 8335c8b5c..000000000 --- a/priv/static/emoji/1f1f2-1f1f7.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f1f2-1f1f8.svg b/priv/static/emoji/1f1f2-1f1f8.svg deleted file mode 100644 index 04a1cc1e5..000000000 --- a/priv/static/emoji/1f1f2-1f1f8.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f1f2-1f1f9.svg b/priv/static/emoji/1f1f2-1f1f9.svg deleted file mode 100644 index 553810216..000000000 --- a/priv/static/emoji/1f1f2-1f1f9.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f1f2-1f1fa.svg b/priv/static/emoji/1f1f2-1f1fa.svg deleted file mode 100644 index 6c2498126..000000000 --- a/priv/static/emoji/1f1f2-1f1fa.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f1f2-1f1fb.svg b/priv/static/emoji/1f1f2-1f1fb.svg deleted file mode 100644 index b57be9c6f..000000000 --- a/priv/static/emoji/1f1f2-1f1fb.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f1f2-1f1fc.svg b/priv/static/emoji/1f1f2-1f1fc.svg deleted file mode 100644 index 9b8ddf52c..000000000 --- a/priv/static/emoji/1f1f2-1f1fc.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f1f2-1f1fd.svg b/priv/static/emoji/1f1f2-1f1fd.svg deleted file mode 100644 index 93d54c46f..000000000 --- a/priv/static/emoji/1f1f2-1f1fd.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f1f2-1f1fe.svg b/priv/static/emoji/1f1f2-1f1fe.svg deleted file mode 100644 index 0480330cd..000000000 --- a/priv/static/emoji/1f1f2-1f1fe.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f1f2-1f1ff.svg b/priv/static/emoji/1f1f2-1f1ff.svg deleted file mode 100644 index cfa95772e..000000000 --- a/priv/static/emoji/1f1f2-1f1ff.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f1f2.svg b/priv/static/emoji/1f1f2.svg deleted file mode 100644 index cc6f136e0..000000000 --- a/priv/static/emoji/1f1f2.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f1f3-1f1e6.svg b/priv/static/emoji/1f1f3-1f1e6.svg deleted file mode 100644 index d2a79fd2c..000000000 --- a/priv/static/emoji/1f1f3-1f1e6.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f1f3-1f1e8.svg b/priv/static/emoji/1f1f3-1f1e8.svg deleted file mode 100644 index e5dff9345..000000000 --- a/priv/static/emoji/1f1f3-1f1e8.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f1f3-1f1ea.svg b/priv/static/emoji/1f1f3-1f1ea.svg deleted file mode 100644 index 53f25f501..000000000 --- a/priv/static/emoji/1f1f3-1f1ea.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f1f3-1f1eb.svg b/priv/static/emoji/1f1f3-1f1eb.svg deleted file mode 100644 index 990687f09..000000000 --- a/priv/static/emoji/1f1f3-1f1eb.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f1f3-1f1ec.svg b/priv/static/emoji/1f1f3-1f1ec.svg deleted file mode 100644 index 6c6e31ca0..000000000 --- a/priv/static/emoji/1f1f3-1f1ec.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f1f3-1f1ee.svg b/priv/static/emoji/1f1f3-1f1ee.svg deleted file mode 100644 index 990868aa7..000000000 --- a/priv/static/emoji/1f1f3-1f1ee.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f1f3-1f1f1.svg b/priv/static/emoji/1f1f3-1f1f1.svg deleted file mode 100644 index 65e8be9ab..000000000 --- a/priv/static/emoji/1f1f3-1f1f1.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f1f3-1f1f4.svg b/priv/static/emoji/1f1f3-1f1f4.svg deleted file mode 100644 index 4f5260a68..000000000 --- a/priv/static/emoji/1f1f3-1f1f4.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f1f3-1f1f5.svg b/priv/static/emoji/1f1f3-1f1f5.svg deleted file mode 100644 index 5e5faaf26..000000000 --- a/priv/static/emoji/1f1f3-1f1f5.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f1f3-1f1f7.svg b/priv/static/emoji/1f1f3-1f1f7.svg deleted file mode 100644 index 72485e707..000000000 --- a/priv/static/emoji/1f1f3-1f1f7.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f1f3-1f1fa.svg b/priv/static/emoji/1f1f3-1f1fa.svg deleted file mode 100644 index dd50901af..000000000 --- a/priv/static/emoji/1f1f3-1f1fa.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f1f3-1f1ff.svg b/priv/static/emoji/1f1f3-1f1ff.svg deleted file mode 100644 index 956a9d215..000000000 --- a/priv/static/emoji/1f1f3-1f1ff.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f1f3.svg b/priv/static/emoji/1f1f3.svg deleted file mode 100644 index f8d0bbd53..000000000 --- a/priv/static/emoji/1f1f3.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f1f4-1f1f2.svg b/priv/static/emoji/1f1f4-1f1f2.svg deleted file mode 100644 index 29af82589..000000000 --- a/priv/static/emoji/1f1f4-1f1f2.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f1f4.svg b/priv/static/emoji/1f1f4.svg deleted file mode 100644 index 9a56c51bf..000000000 --- a/priv/static/emoji/1f1f4.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f1f5-1f1e6.svg b/priv/static/emoji/1f1f5-1f1e6.svg deleted file mode 100644 index 4fc55f5b0..000000000 --- a/priv/static/emoji/1f1f5-1f1e6.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f1f5-1f1ea.svg b/priv/static/emoji/1f1f5-1f1ea.svg deleted file mode 100644 index fc93b299a..000000000 --- a/priv/static/emoji/1f1f5-1f1ea.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f1f5-1f1eb.svg b/priv/static/emoji/1f1f5-1f1eb.svg deleted file mode 100644 index 333c6d0ab..000000000 --- a/priv/static/emoji/1f1f5-1f1eb.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f1f5-1f1ec.svg b/priv/static/emoji/1f1f5-1f1ec.svg deleted file mode 100644 index 2d20ed8e7..000000000 --- a/priv/static/emoji/1f1f5-1f1ec.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f1f5-1f1ed.svg b/priv/static/emoji/1f1f5-1f1ed.svg deleted file mode 100644 index e9f011d36..000000000 --- a/priv/static/emoji/1f1f5-1f1ed.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f1f5-1f1f0.svg b/priv/static/emoji/1f1f5-1f1f0.svg deleted file mode 100644 index a718df6c2..000000000 --- a/priv/static/emoji/1f1f5-1f1f0.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f1f5-1f1f1.svg b/priv/static/emoji/1f1f5-1f1f1.svg deleted file mode 100644 index 8169875a7..000000000 --- a/priv/static/emoji/1f1f5-1f1f1.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f1f5-1f1f2.svg b/priv/static/emoji/1f1f5-1f1f2.svg deleted file mode 100644 index dc55c02f1..000000000 --- a/priv/static/emoji/1f1f5-1f1f2.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f1f5-1f1f3.svg b/priv/static/emoji/1f1f5-1f1f3.svg deleted file mode 100644 index 234f53f41..000000000 --- a/priv/static/emoji/1f1f5-1f1f3.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f1f5-1f1f7.svg b/priv/static/emoji/1f1f5-1f1f7.svg deleted file mode 100644 index f4c2ace36..000000000 --- a/priv/static/emoji/1f1f5-1f1f7.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f1f5-1f1f8.svg b/priv/static/emoji/1f1f5-1f1f8.svg deleted file mode 100644 index 6ce8ec769..000000000 --- a/priv/static/emoji/1f1f5-1f1f8.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f1f5-1f1f9.svg b/priv/static/emoji/1f1f5-1f1f9.svg deleted file mode 100644 index 78b29a89f..000000000 --- a/priv/static/emoji/1f1f5-1f1f9.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f1f5-1f1fc.svg b/priv/static/emoji/1f1f5-1f1fc.svg deleted file mode 100644 index 043f7a518..000000000 --- a/priv/static/emoji/1f1f5-1f1fc.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f1f5-1f1fe.svg b/priv/static/emoji/1f1f5-1f1fe.svg deleted file mode 100644 index c8e83dc3f..000000000 --- a/priv/static/emoji/1f1f5-1f1fe.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f1f5.svg b/priv/static/emoji/1f1f5.svg deleted file mode 100644 index 90d45e851..000000000 --- a/priv/static/emoji/1f1f5.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f1f6-1f1e6.svg b/priv/static/emoji/1f1f6-1f1e6.svg deleted file mode 100644 index f3e91d043..000000000 --- a/priv/static/emoji/1f1f6-1f1e6.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f1f6.svg b/priv/static/emoji/1f1f6.svg deleted file mode 100644 index e202fc225..000000000 --- a/priv/static/emoji/1f1f6.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f1f7-1f1ea.svg b/priv/static/emoji/1f1f7-1f1ea.svg deleted file mode 100644 index ab1399fc1..000000000 --- a/priv/static/emoji/1f1f7-1f1ea.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f1f7-1f1f4.svg b/priv/static/emoji/1f1f7-1f1f4.svg deleted file mode 100644 index 33ac6edf7..000000000 --- a/priv/static/emoji/1f1f7-1f1f4.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f1f7-1f1f8.svg b/priv/static/emoji/1f1f7-1f1f8.svg deleted file mode 100644 index 5c6c69e45..000000000 --- a/priv/static/emoji/1f1f7-1f1f8.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f1f7-1f1fa.svg b/priv/static/emoji/1f1f7-1f1fa.svg deleted file mode 100644 index 46f74d591..000000000 --- a/priv/static/emoji/1f1f7-1f1fa.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f1f7-1f1fc.svg b/priv/static/emoji/1f1f7-1f1fc.svg deleted file mode 100644 index 6175c02fd..000000000 --- a/priv/static/emoji/1f1f7-1f1fc.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f1f7.svg b/priv/static/emoji/1f1f7.svg deleted file mode 100644 index 8d72d9910..000000000 --- a/priv/static/emoji/1f1f7.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f1f8-1f1e6.svg b/priv/static/emoji/1f1f8-1f1e6.svg deleted file mode 100644 index d0d95800c..000000000 --- a/priv/static/emoji/1f1f8-1f1e6.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f1f8-1f1e7.svg b/priv/static/emoji/1f1f8-1f1e7.svg deleted file mode 100644 index a55ff606a..000000000 --- a/priv/static/emoji/1f1f8-1f1e7.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f1f8-1f1e8.svg b/priv/static/emoji/1f1f8-1f1e8.svg deleted file mode 100644 index 40e42eaa3..000000000 --- a/priv/static/emoji/1f1f8-1f1e8.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f1f8-1f1e9.svg b/priv/static/emoji/1f1f8-1f1e9.svg deleted file mode 100644 index ddb60bae3..000000000 --- a/priv/static/emoji/1f1f8-1f1e9.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f1f8-1f1ea.svg b/priv/static/emoji/1f1f8-1f1ea.svg deleted file mode 100644 index a039dc2de..000000000 --- a/priv/static/emoji/1f1f8-1f1ea.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f1f8-1f1ec.svg b/priv/static/emoji/1f1f8-1f1ec.svg deleted file mode 100644 index 199e54e18..000000000 --- a/priv/static/emoji/1f1f8-1f1ec.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f1f8-1f1ed.svg b/priv/static/emoji/1f1f8-1f1ed.svg deleted file mode 100644 index 57d004da3..000000000 --- a/priv/static/emoji/1f1f8-1f1ed.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f1f8-1f1ee.svg b/priv/static/emoji/1f1f8-1f1ee.svg deleted file mode 100644 index e25c04c83..000000000 --- a/priv/static/emoji/1f1f8-1f1ee.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f1f8-1f1ef.svg b/priv/static/emoji/1f1f8-1f1ef.svg deleted file mode 100644 index 4f5260a68..000000000 --- a/priv/static/emoji/1f1f8-1f1ef.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f1f8-1f1f0.svg b/priv/static/emoji/1f1f8-1f1f0.svg deleted file mode 100644 index c4f7cafdf..000000000 --- a/priv/static/emoji/1f1f8-1f1f0.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f1f8-1f1f1.svg b/priv/static/emoji/1f1f8-1f1f1.svg deleted file mode 100644 index b08dd1d73..000000000 --- a/priv/static/emoji/1f1f8-1f1f1.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f1f8-1f1f2.svg b/priv/static/emoji/1f1f8-1f1f2.svg deleted file mode 100644 index b53d00dbc..000000000 --- a/priv/static/emoji/1f1f8-1f1f2.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f1f8-1f1f3.svg b/priv/static/emoji/1f1f8-1f1f3.svg deleted file mode 100644 index c2334722b..000000000 --- a/priv/static/emoji/1f1f8-1f1f3.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f1f8-1f1f4.svg b/priv/static/emoji/1f1f8-1f1f4.svg deleted file mode 100644 index 293dd348f..000000000 --- a/priv/static/emoji/1f1f8-1f1f4.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f1f8-1f1f7.svg b/priv/static/emoji/1f1f8-1f1f7.svg deleted file mode 100644 index c483fb95e..000000000 --- a/priv/static/emoji/1f1f8-1f1f7.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f1f8-1f1f8.svg b/priv/static/emoji/1f1f8-1f1f8.svg deleted file mode 100644 index 0aa63d752..000000000 --- a/priv/static/emoji/1f1f8-1f1f8.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f1f8-1f1f9.svg b/priv/static/emoji/1f1f8-1f1f9.svg deleted file mode 100644 index f2bb52a3c..000000000 --- a/priv/static/emoji/1f1f8-1f1f9.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f1f8-1f1fb.svg b/priv/static/emoji/1f1f8-1f1fb.svg deleted file mode 100644 index 873310c09..000000000 --- a/priv/static/emoji/1f1f8-1f1fb.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f1f8-1f1fd.svg b/priv/static/emoji/1f1f8-1f1fd.svg deleted file mode 100644 index 20472431e..000000000 --- a/priv/static/emoji/1f1f8-1f1fd.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f1f8-1f1fe.svg b/priv/static/emoji/1f1f8-1f1fe.svg deleted file mode 100644 index 5e32d2cd2..000000000 --- a/priv/static/emoji/1f1f8-1f1fe.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f1f8-1f1ff.svg b/priv/static/emoji/1f1f8-1f1ff.svg deleted file mode 100644 index cb7f84a83..000000000 --- a/priv/static/emoji/1f1f8-1f1ff.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f1f8.svg b/priv/static/emoji/1f1f8.svg deleted file mode 100644 index e596113c3..000000000 --- a/priv/static/emoji/1f1f8.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f1f9-1f1e6.svg b/priv/static/emoji/1f1f9-1f1e6.svg deleted file mode 100644 index 547fa056f..000000000 --- a/priv/static/emoji/1f1f9-1f1e6.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f1f9-1f1e8.svg b/priv/static/emoji/1f1f9-1f1e8.svg deleted file mode 100644 index 3c61bc79e..000000000 --- a/priv/static/emoji/1f1f9-1f1e8.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f1f9-1f1e9.svg b/priv/static/emoji/1f1f9-1f1e9.svg deleted file mode 100644 index d106ba84d..000000000 --- a/priv/static/emoji/1f1f9-1f1e9.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f1f9-1f1eb.svg b/priv/static/emoji/1f1f9-1f1eb.svg deleted file mode 100644 index cf4bfacfc..000000000 --- a/priv/static/emoji/1f1f9-1f1eb.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f1f9-1f1ec.svg b/priv/static/emoji/1f1f9-1f1ec.svg deleted file mode 100644 index 4a05a3037..000000000 --- a/priv/static/emoji/1f1f9-1f1ec.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f1f9-1f1ed.svg b/priv/static/emoji/1f1f9-1f1ed.svg deleted file mode 100644 index ff2a66f93..000000000 --- a/priv/static/emoji/1f1f9-1f1ed.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f1f9-1f1ef.svg b/priv/static/emoji/1f1f9-1f1ef.svg deleted file mode 100644 index 6045f4657..000000000 --- a/priv/static/emoji/1f1f9-1f1ef.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f1f9-1f1f0.svg b/priv/static/emoji/1f1f9-1f1f0.svg deleted file mode 100644 index bfa93625b..000000000 --- a/priv/static/emoji/1f1f9-1f1f0.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f1f9-1f1f1.svg b/priv/static/emoji/1f1f9-1f1f1.svg deleted file mode 100644 index 6030072a3..000000000 --- a/priv/static/emoji/1f1f9-1f1f1.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f1f9-1f1f2.svg b/priv/static/emoji/1f1f9-1f1f2.svg deleted file mode 100644 index a57c35ccf..000000000 --- a/priv/static/emoji/1f1f9-1f1f2.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f1f9-1f1f3.svg b/priv/static/emoji/1f1f9-1f1f3.svg deleted file mode 100644 index c13e73024..000000000 --- a/priv/static/emoji/1f1f9-1f1f3.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f1f9-1f1f4.svg b/priv/static/emoji/1f1f9-1f1f4.svg deleted file mode 100644 index 20a9555ba..000000000 --- a/priv/static/emoji/1f1f9-1f1f4.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f1f9-1f1f7.svg b/priv/static/emoji/1f1f9-1f1f7.svg deleted file mode 100644 index 861da57e3..000000000 --- a/priv/static/emoji/1f1f9-1f1f7.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f1f9-1f1f9.svg b/priv/static/emoji/1f1f9-1f1f9.svg deleted file mode 100644 index 578c8eb40..000000000 --- a/priv/static/emoji/1f1f9-1f1f9.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f1f9-1f1fb.svg b/priv/static/emoji/1f1f9-1f1fb.svg deleted file mode 100644 index 6558df605..000000000 --- a/priv/static/emoji/1f1f9-1f1fb.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f1f9-1f1fc.svg b/priv/static/emoji/1f1f9-1f1fc.svg deleted file mode 100644 index 4cd304e16..000000000 --- a/priv/static/emoji/1f1f9-1f1fc.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f1f9-1f1ff.svg b/priv/static/emoji/1f1f9-1f1ff.svg deleted file mode 100644 index a9ddb8ed0..000000000 --- a/priv/static/emoji/1f1f9-1f1ff.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f1f9.svg b/priv/static/emoji/1f1f9.svg deleted file mode 100644 index fa3677ea4..000000000 --- a/priv/static/emoji/1f1f9.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f1fa-1f1e6.svg b/priv/static/emoji/1f1fa-1f1e6.svg deleted file mode 100644 index 989b5c28f..000000000 --- a/priv/static/emoji/1f1fa-1f1e6.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f1fa-1f1ec.svg b/priv/static/emoji/1f1fa-1f1ec.svg deleted file mode 100644 index 6602ca9ca..000000000 --- a/priv/static/emoji/1f1fa-1f1ec.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f1fa-1f1f2.svg b/priv/static/emoji/1f1fa-1f1f2.svg deleted file mode 100644 index d51f600ab..000000000 --- a/priv/static/emoji/1f1fa-1f1f2.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f1fa-1f1f3.svg b/priv/static/emoji/1f1fa-1f1f3.svg deleted file mode 100644 index a035a767c..000000000 --- a/priv/static/emoji/1f1fa-1f1f3.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f1fa-1f1f8.svg b/priv/static/emoji/1f1fa-1f1f8.svg deleted file mode 100644 index d51f600ab..000000000 --- a/priv/static/emoji/1f1fa-1f1f8.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f1fa-1f1fe.svg b/priv/static/emoji/1f1fa-1f1fe.svg deleted file mode 100644 index 796244c9d..000000000 --- a/priv/static/emoji/1f1fa-1f1fe.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f1fa-1f1ff.svg b/priv/static/emoji/1f1fa-1f1ff.svg deleted file mode 100644 index b913772ed..000000000 --- a/priv/static/emoji/1f1fa-1f1ff.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f1fa.svg b/priv/static/emoji/1f1fa.svg deleted file mode 100644 index aed705dab..000000000 --- a/priv/static/emoji/1f1fa.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f1fb-1f1e6.svg b/priv/static/emoji/1f1fb-1f1e6.svg deleted file mode 100644 index 7b2bffa76..000000000 --- a/priv/static/emoji/1f1fb-1f1e6.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f1fb-1f1e8.svg b/priv/static/emoji/1f1fb-1f1e8.svg deleted file mode 100644 index fb97611b4..000000000 --- a/priv/static/emoji/1f1fb-1f1e8.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f1fb-1f1ea.svg b/priv/static/emoji/1f1fb-1f1ea.svg deleted file mode 100644 index 294b5c69e..000000000 --- a/priv/static/emoji/1f1fb-1f1ea.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f1fb-1f1ec.svg b/priv/static/emoji/1f1fb-1f1ec.svg deleted file mode 100644 index d8194cd05..000000000 --- a/priv/static/emoji/1f1fb-1f1ec.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f1fb-1f1ee.svg b/priv/static/emoji/1f1fb-1f1ee.svg deleted file mode 100644 index d0602d299..000000000 --- a/priv/static/emoji/1f1fb-1f1ee.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f1fb-1f1f3.svg b/priv/static/emoji/1f1fb-1f1f3.svg deleted file mode 100644 index 4e0e1b586..000000000 --- a/priv/static/emoji/1f1fb-1f1f3.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f1fb-1f1fa.svg b/priv/static/emoji/1f1fb-1f1fa.svg deleted file mode 100644 index 151e7aaa7..000000000 --- a/priv/static/emoji/1f1fb-1f1fa.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f1fb.svg b/priv/static/emoji/1f1fb.svg deleted file mode 100644 index a5bf86474..000000000 --- a/priv/static/emoji/1f1fb.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f1fc-1f1eb.svg b/priv/static/emoji/1f1fc-1f1eb.svg deleted file mode 100644 index 989542250..000000000 --- a/priv/static/emoji/1f1fc-1f1eb.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f1fc-1f1f8.svg b/priv/static/emoji/1f1fc-1f1f8.svg deleted file mode 100644 index 6b075cb06..000000000 --- a/priv/static/emoji/1f1fc-1f1f8.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f1fc.svg b/priv/static/emoji/1f1fc.svg deleted file mode 100644 index c65cf0b97..000000000 --- a/priv/static/emoji/1f1fc.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f1fd-1f1f0.svg b/priv/static/emoji/1f1fd-1f1f0.svg deleted file mode 100644 index 39890a907..000000000 --- a/priv/static/emoji/1f1fd-1f1f0.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f1fd.svg b/priv/static/emoji/1f1fd.svg deleted file mode 100644 index e39fd6d20..000000000 --- a/priv/static/emoji/1f1fd.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f1fe-1f1ea.svg b/priv/static/emoji/1f1fe-1f1ea.svg deleted file mode 100644 index a82532c3c..000000000 --- a/priv/static/emoji/1f1fe-1f1ea.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f1fe-1f1f9.svg b/priv/static/emoji/1f1fe-1f1f9.svg deleted file mode 100644 index 76765b938..000000000 --- a/priv/static/emoji/1f1fe-1f1f9.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f1fe.svg b/priv/static/emoji/1f1fe.svg deleted file mode 100644 index 3c4a46f0a..000000000 --- a/priv/static/emoji/1f1fe.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f1ff-1f1e6.svg b/priv/static/emoji/1f1ff-1f1e6.svg deleted file mode 100644 index 275c136da..000000000 --- a/priv/static/emoji/1f1ff-1f1e6.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f1ff-1f1f2.svg b/priv/static/emoji/1f1ff-1f1f2.svg deleted file mode 100644 index d27689638..000000000 --- a/priv/static/emoji/1f1ff-1f1f2.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f1ff-1f1fc.svg b/priv/static/emoji/1f1ff-1f1fc.svg deleted file mode 100644 index 15a846456..000000000 --- a/priv/static/emoji/1f1ff-1f1fc.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f1ff.svg b/priv/static/emoji/1f1ff.svg deleted file mode 100644 index e1ae07de0..000000000 --- a/priv/static/emoji/1f1ff.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f201.svg b/priv/static/emoji/1f201.svg deleted file mode 100644 index c4e65413d..000000000 --- a/priv/static/emoji/1f201.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f202.svg b/priv/static/emoji/1f202.svg deleted file mode 100644 index 7f1e8415d..000000000 --- a/priv/static/emoji/1f202.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f21a.svg b/priv/static/emoji/1f21a.svg deleted file mode 100644 index 9b0253adf..000000000 --- a/priv/static/emoji/1f21a.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f22f.svg b/priv/static/emoji/1f22f.svg deleted file mode 100644 index 112269d95..000000000 --- a/priv/static/emoji/1f22f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f232.svg b/priv/static/emoji/1f232.svg deleted file mode 100644 index 4efe9bbf1..000000000 --- a/priv/static/emoji/1f232.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f233.svg b/priv/static/emoji/1f233.svg deleted file mode 100644 index 2e2072ce9..000000000 --- a/priv/static/emoji/1f233.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f234.svg b/priv/static/emoji/1f234.svg deleted file mode 100644 index b90b9c407..000000000 --- a/priv/static/emoji/1f234.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f235.svg b/priv/static/emoji/1f235.svg deleted file mode 100644 index 86f24ca51..000000000 --- a/priv/static/emoji/1f235.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f236.svg b/priv/static/emoji/1f236.svg deleted file mode 100644 index 93c5998e7..000000000 --- a/priv/static/emoji/1f236.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f237.svg b/priv/static/emoji/1f237.svg deleted file mode 100644 index 459d94886..000000000 --- a/priv/static/emoji/1f237.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f238.svg b/priv/static/emoji/1f238.svg deleted file mode 100644 index af984cb9f..000000000 --- a/priv/static/emoji/1f238.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f239.svg b/priv/static/emoji/1f239.svg deleted file mode 100644 index 889c02726..000000000 --- a/priv/static/emoji/1f239.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f23a.svg b/priv/static/emoji/1f23a.svg deleted file mode 100644 index 87a2cebdf..000000000 --- a/priv/static/emoji/1f23a.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f250.svg b/priv/static/emoji/1f250.svg deleted file mode 100644 index c7465f8a8..000000000 --- a/priv/static/emoji/1f250.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f251.svg b/priv/static/emoji/1f251.svg deleted file mode 100644 index 4bb227b50..000000000 --- a/priv/static/emoji/1f251.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f300.svg b/priv/static/emoji/1f300.svg deleted file mode 100644 index 1de6f256c..000000000 --- a/priv/static/emoji/1f300.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f301.svg b/priv/static/emoji/1f301.svg deleted file mode 100644 index d6298de42..000000000 --- a/priv/static/emoji/1f301.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f302.svg b/priv/static/emoji/1f302.svg deleted file mode 100644 index e611e6b83..000000000 --- a/priv/static/emoji/1f302.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f303.svg b/priv/static/emoji/1f303.svg deleted file mode 100644 index d6c21b48f..000000000 --- a/priv/static/emoji/1f303.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f304.svg b/priv/static/emoji/1f304.svg deleted file mode 100644 index 0709f1c47..000000000 --- a/priv/static/emoji/1f304.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f305.svg b/priv/static/emoji/1f305.svg deleted file mode 100644 index 8e3f66da6..000000000 --- a/priv/static/emoji/1f305.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f306.svg b/priv/static/emoji/1f306.svg deleted file mode 100644 index 9e7ae826e..000000000 --- a/priv/static/emoji/1f306.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f307.svg b/priv/static/emoji/1f307.svg deleted file mode 100644 index a783fe331..000000000 --- a/priv/static/emoji/1f307.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f308.svg b/priv/static/emoji/1f308.svg deleted file mode 100644 index ffe6a1239..000000000 --- a/priv/static/emoji/1f308.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f309.svg b/priv/static/emoji/1f309.svg deleted file mode 100644 index e49295b41..000000000 --- a/priv/static/emoji/1f309.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f30a.svg b/priv/static/emoji/1f30a.svg deleted file mode 100644 index 0e68ec361..000000000 --- a/priv/static/emoji/1f30a.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f30b.svg b/priv/static/emoji/1f30b.svg deleted file mode 100644 index 88d989d73..000000000 --- a/priv/static/emoji/1f30b.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f30c.svg b/priv/static/emoji/1f30c.svg deleted file mode 100644 index 7853bcd43..000000000 --- a/priv/static/emoji/1f30c.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f30d.svg b/priv/static/emoji/1f30d.svg deleted file mode 100644 index f81361082..000000000 --- a/priv/static/emoji/1f30d.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f30e.svg b/priv/static/emoji/1f30e.svg deleted file mode 100644 index 0793e724f..000000000 --- a/priv/static/emoji/1f30e.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f30f.svg b/priv/static/emoji/1f30f.svg deleted file mode 100644 index 30c0186e0..000000000 --- a/priv/static/emoji/1f30f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f310.svg b/priv/static/emoji/1f310.svg deleted file mode 100644 index a9ec9e696..000000000 --- a/priv/static/emoji/1f310.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f311.svg b/priv/static/emoji/1f311.svg deleted file mode 100644 index d71e4d1aa..000000000 --- a/priv/static/emoji/1f311.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f312.svg b/priv/static/emoji/1f312.svg deleted file mode 100644 index d3bb1a754..000000000 --- a/priv/static/emoji/1f312.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f313.svg b/priv/static/emoji/1f313.svg deleted file mode 100644 index f668b7585..000000000 --- a/priv/static/emoji/1f313.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f314.svg b/priv/static/emoji/1f314.svg deleted file mode 100644 index 90488ede9..000000000 --- a/priv/static/emoji/1f314.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f315.svg b/priv/static/emoji/1f315.svg deleted file mode 100644 index 9a7042715..000000000 --- a/priv/static/emoji/1f315.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f316.svg b/priv/static/emoji/1f316.svg deleted file mode 100644 index 9cbc981ea..000000000 --- a/priv/static/emoji/1f316.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f317.svg b/priv/static/emoji/1f317.svg deleted file mode 100644 index a5813f0f1..000000000 --- a/priv/static/emoji/1f317.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f318.svg b/priv/static/emoji/1f318.svg deleted file mode 100644 index bad95d5ec..000000000 --- a/priv/static/emoji/1f318.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f319.svg b/priv/static/emoji/1f319.svg deleted file mode 100644 index d98dc2f9f..000000000 --- a/priv/static/emoji/1f319.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f31a.svg b/priv/static/emoji/1f31a.svg deleted file mode 100644 index 6ccbb68c7..000000000 --- a/priv/static/emoji/1f31a.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f31b.svg b/priv/static/emoji/1f31b.svg deleted file mode 100644 index 3fffcdd50..000000000 --- a/priv/static/emoji/1f31b.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f31c.svg b/priv/static/emoji/1f31c.svg deleted file mode 100644 index 07501e928..000000000 --- a/priv/static/emoji/1f31c.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f31d.svg b/priv/static/emoji/1f31d.svg deleted file mode 100644 index 4c9896919..000000000 --- a/priv/static/emoji/1f31d.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f31e.svg b/priv/static/emoji/1f31e.svg deleted file mode 100644 index 2da9b1993..000000000 --- a/priv/static/emoji/1f31e.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f31f.svg b/priv/static/emoji/1f31f.svg deleted file mode 100644 index a4695dd6d..000000000 --- a/priv/static/emoji/1f31f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f320.svg b/priv/static/emoji/1f320.svg deleted file mode 100644 index 295a5a12c..000000000 --- a/priv/static/emoji/1f320.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f321.svg b/priv/static/emoji/1f321.svg deleted file mode 100644 index 95a75984e..000000000 --- a/priv/static/emoji/1f321.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f324.svg b/priv/static/emoji/1f324.svg deleted file mode 100644 index 8ba8c525d..000000000 --- a/priv/static/emoji/1f324.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f325.svg b/priv/static/emoji/1f325.svg deleted file mode 100644 index 1efae1029..000000000 --- a/priv/static/emoji/1f325.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f326.svg b/priv/static/emoji/1f326.svg deleted file mode 100644 index 3a65ae71d..000000000 --- a/priv/static/emoji/1f326.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f327.svg b/priv/static/emoji/1f327.svg deleted file mode 100644 index 99f42f5aa..000000000 --- a/priv/static/emoji/1f327.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f328.svg b/priv/static/emoji/1f328.svg deleted file mode 100644 index f937107a0..000000000 --- a/priv/static/emoji/1f328.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f329.svg b/priv/static/emoji/1f329.svg deleted file mode 100644 index 0deaddcd5..000000000 --- a/priv/static/emoji/1f329.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f32a.svg b/priv/static/emoji/1f32a.svg deleted file mode 100644 index b4620106b..000000000 --- a/priv/static/emoji/1f32a.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f32b.svg b/priv/static/emoji/1f32b.svg deleted file mode 100644 index fe6e480b6..000000000 --- a/priv/static/emoji/1f32b.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f32c.svg b/priv/static/emoji/1f32c.svg deleted file mode 100644 index 7d5545746..000000000 --- a/priv/static/emoji/1f32c.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f32d.svg b/priv/static/emoji/1f32d.svg deleted file mode 100644 index a450dbba0..000000000 --- a/priv/static/emoji/1f32d.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f32e.svg b/priv/static/emoji/1f32e.svg deleted file mode 100644 index 5b08f1f7d..000000000 --- a/priv/static/emoji/1f32e.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f32f.svg b/priv/static/emoji/1f32f.svg deleted file mode 100644 index c76d82c37..000000000 --- a/priv/static/emoji/1f32f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f330.svg b/priv/static/emoji/1f330.svg deleted file mode 100644 index d0e84b5eb..000000000 --- a/priv/static/emoji/1f330.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f331.svg b/priv/static/emoji/1f331.svg deleted file mode 100644 index 668d777ff..000000000 --- a/priv/static/emoji/1f331.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f332.svg b/priv/static/emoji/1f332.svg deleted file mode 100644 index 540f1860c..000000000 --- a/priv/static/emoji/1f332.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f333.svg b/priv/static/emoji/1f333.svg deleted file mode 100644 index 3937fc499..000000000 --- a/priv/static/emoji/1f333.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f334.svg b/priv/static/emoji/1f334.svg deleted file mode 100644 index 55d246a2f..000000000 --- a/priv/static/emoji/1f334.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f335.svg b/priv/static/emoji/1f335.svg deleted file mode 100644 index 097dc13c4..000000000 --- a/priv/static/emoji/1f335.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f336.svg b/priv/static/emoji/1f336.svg deleted file mode 100644 index eaeef864d..000000000 --- a/priv/static/emoji/1f336.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f337.svg b/priv/static/emoji/1f337.svg deleted file mode 100644 index 86a1a36f9..000000000 --- a/priv/static/emoji/1f337.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f338.svg b/priv/static/emoji/1f338.svg deleted file mode 100644 index 46ba420da..000000000 --- a/priv/static/emoji/1f338.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f339.svg b/priv/static/emoji/1f339.svg deleted file mode 100644 index 500d9257c..000000000 --- a/priv/static/emoji/1f339.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f33a.svg b/priv/static/emoji/1f33a.svg deleted file mode 100644 index 19c2f8960..000000000 --- a/priv/static/emoji/1f33a.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f33b.svg b/priv/static/emoji/1f33b.svg deleted file mode 100644 index 413e6fcbf..000000000 --- a/priv/static/emoji/1f33b.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f33c.svg b/priv/static/emoji/1f33c.svg deleted file mode 100644 index 4ee1cc002..000000000 --- a/priv/static/emoji/1f33c.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f33d.svg b/priv/static/emoji/1f33d.svg deleted file mode 100644 index 6c4ae3bf5..000000000 --- a/priv/static/emoji/1f33d.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f33e.svg b/priv/static/emoji/1f33e.svg deleted file mode 100644 index 320f1498e..000000000 --- a/priv/static/emoji/1f33e.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f33f.svg b/priv/static/emoji/1f33f.svg deleted file mode 100644 index 9243e9685..000000000 --- a/priv/static/emoji/1f33f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f340.svg b/priv/static/emoji/1f340.svg deleted file mode 100644 index cac00d450..000000000 --- a/priv/static/emoji/1f340.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f341.svg b/priv/static/emoji/1f341.svg deleted file mode 100644 index 7cd7ad977..000000000 --- a/priv/static/emoji/1f341.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f342.svg b/priv/static/emoji/1f342.svg deleted file mode 100644 index 1c9072a01..000000000 --- a/priv/static/emoji/1f342.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f343.svg b/priv/static/emoji/1f343.svg deleted file mode 100644 index 650bfa981..000000000 --- a/priv/static/emoji/1f343.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f344.svg b/priv/static/emoji/1f344.svg deleted file mode 100644 index 0cf7a7914..000000000 --- a/priv/static/emoji/1f344.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f345.svg b/priv/static/emoji/1f345.svg deleted file mode 100644 index 411c2a50e..000000000 --- a/priv/static/emoji/1f345.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f346.svg b/priv/static/emoji/1f346.svg deleted file mode 100644 index 14688a6dd..000000000 --- a/priv/static/emoji/1f346.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f347.svg b/priv/static/emoji/1f347.svg deleted file mode 100644 index e52e2f851..000000000 --- a/priv/static/emoji/1f347.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f348.svg b/priv/static/emoji/1f348.svg deleted file mode 100644 index f34827351..000000000 --- a/priv/static/emoji/1f348.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f349.svg b/priv/static/emoji/1f349.svg deleted file mode 100644 index 0f5ec06a4..000000000 --- a/priv/static/emoji/1f349.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f34a.svg b/priv/static/emoji/1f34a.svg deleted file mode 100644 index 82c0c52b1..000000000 --- a/priv/static/emoji/1f34a.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f34b.svg b/priv/static/emoji/1f34b.svg deleted file mode 100644 index ffbdc0886..000000000 --- a/priv/static/emoji/1f34b.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f34c.svg b/priv/static/emoji/1f34c.svg deleted file mode 100644 index b4120ba34..000000000 --- a/priv/static/emoji/1f34c.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f34d.svg b/priv/static/emoji/1f34d.svg deleted file mode 100644 index e96999db7..000000000 --- a/priv/static/emoji/1f34d.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f34e.svg b/priv/static/emoji/1f34e.svg deleted file mode 100644 index 2fe988620..000000000 --- a/priv/static/emoji/1f34e.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f34f.svg b/priv/static/emoji/1f34f.svg deleted file mode 100644 index 1423d8aa8..000000000 --- a/priv/static/emoji/1f34f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f350.svg b/priv/static/emoji/1f350.svg deleted file mode 100644 index 2888963f4..000000000 --- a/priv/static/emoji/1f350.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f351.svg b/priv/static/emoji/1f351.svg deleted file mode 100644 index 84e81f5e6..000000000 --- a/priv/static/emoji/1f351.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f352.svg b/priv/static/emoji/1f352.svg deleted file mode 100644 index bdba6bd67..000000000 --- a/priv/static/emoji/1f352.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f353.svg b/priv/static/emoji/1f353.svg deleted file mode 100644 index 26a41ee24..000000000 --- a/priv/static/emoji/1f353.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f354.svg b/priv/static/emoji/1f354.svg deleted file mode 100644 index a129dccb3..000000000 --- a/priv/static/emoji/1f354.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f355.svg b/priv/static/emoji/1f355.svg deleted file mode 100644 index 3a44bba9a..000000000 --- a/priv/static/emoji/1f355.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f356.svg b/priv/static/emoji/1f356.svg deleted file mode 100644 index 44fab599d..000000000 --- a/priv/static/emoji/1f356.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f357.svg b/priv/static/emoji/1f357.svg deleted file mode 100644 index 77d0b8724..000000000 --- a/priv/static/emoji/1f357.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f358.svg b/priv/static/emoji/1f358.svg deleted file mode 100644 index f35a02eaf..000000000 --- a/priv/static/emoji/1f358.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f359.svg b/priv/static/emoji/1f359.svg deleted file mode 100644 index e508f8f91..000000000 --- a/priv/static/emoji/1f359.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f35a.svg b/priv/static/emoji/1f35a.svg deleted file mode 100644 index 04019a1c9..000000000 --- a/priv/static/emoji/1f35a.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f35b.svg b/priv/static/emoji/1f35b.svg deleted file mode 100644 index be3be2261..000000000 --- a/priv/static/emoji/1f35b.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f35c.svg b/priv/static/emoji/1f35c.svg deleted file mode 100644 index e9fc9700d..000000000 --- a/priv/static/emoji/1f35c.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f35d.svg b/priv/static/emoji/1f35d.svg deleted file mode 100644 index 3ae82eb53..000000000 --- a/priv/static/emoji/1f35d.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f35e.svg b/priv/static/emoji/1f35e.svg deleted file mode 100644 index 7d2af4e75..000000000 --- a/priv/static/emoji/1f35e.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f35f.svg b/priv/static/emoji/1f35f.svg deleted file mode 100644 index faac7ecf1..000000000 --- a/priv/static/emoji/1f35f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f360.svg b/priv/static/emoji/1f360.svg deleted file mode 100644 index c2894e358..000000000 --- a/priv/static/emoji/1f360.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f361.svg b/priv/static/emoji/1f361.svg deleted file mode 100644 index e2537d904..000000000 --- a/priv/static/emoji/1f361.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f362.svg b/priv/static/emoji/1f362.svg deleted file mode 100644 index f5f7653af..000000000 --- a/priv/static/emoji/1f362.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f363.svg b/priv/static/emoji/1f363.svg deleted file mode 100644 index eed2b88c9..000000000 --- a/priv/static/emoji/1f363.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f364.svg b/priv/static/emoji/1f364.svg deleted file mode 100644 index 913042216..000000000 --- a/priv/static/emoji/1f364.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f365.svg b/priv/static/emoji/1f365.svg deleted file mode 100644 index fd448da06..000000000 --- a/priv/static/emoji/1f365.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f366.svg b/priv/static/emoji/1f366.svg deleted file mode 100644 index 9b869f8cb..000000000 --- a/priv/static/emoji/1f366.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f367.svg b/priv/static/emoji/1f367.svg deleted file mode 100644 index 232dd3cf1..000000000 --- a/priv/static/emoji/1f367.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f368.svg b/priv/static/emoji/1f368.svg deleted file mode 100644 index 187b2f4c9..000000000 --- a/priv/static/emoji/1f368.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f369.svg b/priv/static/emoji/1f369.svg deleted file mode 100644 index 3c2aa5826..000000000 --- a/priv/static/emoji/1f369.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f36a.svg b/priv/static/emoji/1f36a.svg deleted file mode 100644 index d1b604bcd..000000000 --- a/priv/static/emoji/1f36a.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f36b.svg b/priv/static/emoji/1f36b.svg deleted file mode 100644 index a993c9b4b..000000000 --- a/priv/static/emoji/1f36b.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f36c.svg b/priv/static/emoji/1f36c.svg deleted file mode 100644 index f6fbf3b70..000000000 --- a/priv/static/emoji/1f36c.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f36d.svg b/priv/static/emoji/1f36d.svg deleted file mode 100644 index e13447ede..000000000 --- a/priv/static/emoji/1f36d.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f36e.svg b/priv/static/emoji/1f36e.svg deleted file mode 100644 index 8ec517925..000000000 --- a/priv/static/emoji/1f36e.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f36f.svg b/priv/static/emoji/1f36f.svg deleted file mode 100644 index 38c4dd506..000000000 --- a/priv/static/emoji/1f36f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f370.svg b/priv/static/emoji/1f370.svg deleted file mode 100644 index c6f2cf478..000000000 --- a/priv/static/emoji/1f370.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f371.svg b/priv/static/emoji/1f371.svg deleted file mode 100644 index c4811840c..000000000 --- a/priv/static/emoji/1f371.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f372.svg b/priv/static/emoji/1f372.svg deleted file mode 100644 index 37f9be89c..000000000 --- a/priv/static/emoji/1f372.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f373.svg b/priv/static/emoji/1f373.svg deleted file mode 100644 index 733dc2bae..000000000 --- a/priv/static/emoji/1f373.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f374.svg b/priv/static/emoji/1f374.svg deleted file mode 100644 index e7de6c048..000000000 --- a/priv/static/emoji/1f374.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f375.svg b/priv/static/emoji/1f375.svg deleted file mode 100644 index 772696393..000000000 --- a/priv/static/emoji/1f375.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f376.svg b/priv/static/emoji/1f376.svg deleted file mode 100644 index 2bb872e15..000000000 --- a/priv/static/emoji/1f376.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f377.svg b/priv/static/emoji/1f377.svg deleted file mode 100644 index b7925317c..000000000 --- a/priv/static/emoji/1f377.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f378.svg b/priv/static/emoji/1f378.svg deleted file mode 100644 index c8bc0ce10..000000000 --- a/priv/static/emoji/1f378.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f379.svg b/priv/static/emoji/1f379.svg deleted file mode 100644 index 1c4db4636..000000000 --- a/priv/static/emoji/1f379.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f37a.svg b/priv/static/emoji/1f37a.svg deleted file mode 100644 index 9e6a547bf..000000000 --- a/priv/static/emoji/1f37a.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f37b.svg b/priv/static/emoji/1f37b.svg deleted file mode 100644 index a8bcb20c6..000000000 --- a/priv/static/emoji/1f37b.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f37c.svg b/priv/static/emoji/1f37c.svg deleted file mode 100644 index 61f6c8ff2..000000000 --- a/priv/static/emoji/1f37c.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f37d.svg b/priv/static/emoji/1f37d.svg deleted file mode 100644 index 7437a3504..000000000 --- a/priv/static/emoji/1f37d.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f37e.svg b/priv/static/emoji/1f37e.svg deleted file mode 100644 index a02a17eb7..000000000 --- a/priv/static/emoji/1f37e.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f37f.svg b/priv/static/emoji/1f37f.svg deleted file mode 100644 index ddbff6d95..000000000 --- a/priv/static/emoji/1f37f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f380.svg b/priv/static/emoji/1f380.svg deleted file mode 100644 index 03d4a7510..000000000 --- a/priv/static/emoji/1f380.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f381.svg b/priv/static/emoji/1f381.svg deleted file mode 100644 index 1ab82981c..000000000 --- a/priv/static/emoji/1f381.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f382.svg b/priv/static/emoji/1f382.svg deleted file mode 100644 index 35f9a002a..000000000 --- a/priv/static/emoji/1f382.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f383.svg b/priv/static/emoji/1f383.svg deleted file mode 100644 index 591fc66a4..000000000 --- a/priv/static/emoji/1f383.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f384.svg b/priv/static/emoji/1f384.svg deleted file mode 100644 index 6e9b11e27..000000000 --- a/priv/static/emoji/1f384.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f385-1f3fb.svg b/priv/static/emoji/1f385-1f3fb.svg deleted file mode 100644 index ef5c61531..000000000 --- a/priv/static/emoji/1f385-1f3fb.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f385-1f3fc.svg b/priv/static/emoji/1f385-1f3fc.svg deleted file mode 100644 index 5adcdf4eb..000000000 --- a/priv/static/emoji/1f385-1f3fc.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f385-1f3fd.svg b/priv/static/emoji/1f385-1f3fd.svg deleted file mode 100644 index 0a56a8b1c..000000000 --- a/priv/static/emoji/1f385-1f3fd.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f385-1f3fe.svg b/priv/static/emoji/1f385-1f3fe.svg deleted file mode 100644 index 16b3b33ec..000000000 --- a/priv/static/emoji/1f385-1f3fe.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f385-1f3ff.svg b/priv/static/emoji/1f385-1f3ff.svg deleted file mode 100644 index 4923cbf40..000000000 --- a/priv/static/emoji/1f385-1f3ff.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f385.svg b/priv/static/emoji/1f385.svg deleted file mode 100644 index 9c61da6c0..000000000 --- a/priv/static/emoji/1f385.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f386.svg b/priv/static/emoji/1f386.svg deleted file mode 100644 index 54a4f3214..000000000 --- a/priv/static/emoji/1f386.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f387.svg b/priv/static/emoji/1f387.svg deleted file mode 100644 index 68cfb644f..000000000 --- a/priv/static/emoji/1f387.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f388.svg b/priv/static/emoji/1f388.svg deleted file mode 100644 index 6d431bc85..000000000 --- a/priv/static/emoji/1f388.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f389.svg b/priv/static/emoji/1f389.svg deleted file mode 100644 index a4b8305af..000000000 --- a/priv/static/emoji/1f389.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f38a.svg b/priv/static/emoji/1f38a.svg deleted file mode 100644 index e709775f1..000000000 --- a/priv/static/emoji/1f38a.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f38b.svg b/priv/static/emoji/1f38b.svg deleted file mode 100644 index 063638074..000000000 --- a/priv/static/emoji/1f38b.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f38c.svg b/priv/static/emoji/1f38c.svg deleted file mode 100644 index a0dd35069..000000000 --- a/priv/static/emoji/1f38c.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f38d.svg b/priv/static/emoji/1f38d.svg deleted file mode 100644 index a774540b4..000000000 --- a/priv/static/emoji/1f38d.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f38e.svg b/priv/static/emoji/1f38e.svg deleted file mode 100644 index 56b4b80ac..000000000 --- a/priv/static/emoji/1f38e.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f38f.svg b/priv/static/emoji/1f38f.svg deleted file mode 100644 index 5457d1e8d..000000000 --- a/priv/static/emoji/1f38f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f390.svg b/priv/static/emoji/1f390.svg deleted file mode 100644 index 9aebc7979..000000000 --- a/priv/static/emoji/1f390.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f391.svg b/priv/static/emoji/1f391.svg deleted file mode 100644 index 37c3a7e1a..000000000 --- a/priv/static/emoji/1f391.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f392.svg b/priv/static/emoji/1f392.svg deleted file mode 100644 index f44d56806..000000000 --- a/priv/static/emoji/1f392.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f393.svg b/priv/static/emoji/1f393.svg deleted file mode 100644 index dcf38931c..000000000 --- a/priv/static/emoji/1f393.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f396.svg b/priv/static/emoji/1f396.svg deleted file mode 100644 index b5c22696e..000000000 --- a/priv/static/emoji/1f396.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f397.svg b/priv/static/emoji/1f397.svg deleted file mode 100644 index 1f419d451..000000000 --- a/priv/static/emoji/1f397.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f399.svg b/priv/static/emoji/1f399.svg deleted file mode 100644 index 07881e4aa..000000000 --- a/priv/static/emoji/1f399.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f39a.svg b/priv/static/emoji/1f39a.svg deleted file mode 100644 index 7071931fc..000000000 --- a/priv/static/emoji/1f39a.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f39b.svg b/priv/static/emoji/1f39b.svg deleted file mode 100644 index 9d355c4a9..000000000 --- a/priv/static/emoji/1f39b.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f39e.svg b/priv/static/emoji/1f39e.svg deleted file mode 100644 index 01f931128..000000000 --- a/priv/static/emoji/1f39e.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f39f.svg b/priv/static/emoji/1f39f.svg deleted file mode 100644 index 984f27064..000000000 --- a/priv/static/emoji/1f39f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f3a0.svg b/priv/static/emoji/1f3a0.svg deleted file mode 100644 index 35c75b697..000000000 --- a/priv/static/emoji/1f3a0.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f3a1.svg b/priv/static/emoji/1f3a1.svg deleted file mode 100644 index c35744ab8..000000000 --- a/priv/static/emoji/1f3a1.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f3a2.svg b/priv/static/emoji/1f3a2.svg deleted file mode 100644 index b1e64ec0e..000000000 --- a/priv/static/emoji/1f3a2.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f3a3.svg b/priv/static/emoji/1f3a3.svg deleted file mode 100644 index 1a1df4f9d..000000000 --- a/priv/static/emoji/1f3a3.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f3a4.svg b/priv/static/emoji/1f3a4.svg deleted file mode 100644 index e26133475..000000000 --- a/priv/static/emoji/1f3a4.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f3a5.svg b/priv/static/emoji/1f3a5.svg deleted file mode 100644 index d6c68e0d7..000000000 --- a/priv/static/emoji/1f3a5.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f3a6.svg b/priv/static/emoji/1f3a6.svg deleted file mode 100644 index 04ba5e33d..000000000 --- a/priv/static/emoji/1f3a6.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f3a7.svg b/priv/static/emoji/1f3a7.svg deleted file mode 100644 index 3a9df15ae..000000000 --- a/priv/static/emoji/1f3a7.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f3a8.svg b/priv/static/emoji/1f3a8.svg deleted file mode 100644 index 3bfdea0c9..000000000 --- a/priv/static/emoji/1f3a8.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f3a9.svg b/priv/static/emoji/1f3a9.svg deleted file mode 100644 index 1017cef3a..000000000 --- a/priv/static/emoji/1f3a9.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f3aa.svg b/priv/static/emoji/1f3aa.svg deleted file mode 100644 index fec7dd2ec..000000000 --- a/priv/static/emoji/1f3aa.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f3ab.svg b/priv/static/emoji/1f3ab.svg deleted file mode 100644 index cd234010b..000000000 --- a/priv/static/emoji/1f3ab.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f3ac.svg b/priv/static/emoji/1f3ac.svg deleted file mode 100644 index 3a3267661..000000000 --- a/priv/static/emoji/1f3ac.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f3ad.svg b/priv/static/emoji/1f3ad.svg deleted file mode 100644 index c8c990126..000000000 --- a/priv/static/emoji/1f3ad.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f3ae.svg b/priv/static/emoji/1f3ae.svg deleted file mode 100644 index 4ec08ae49..000000000 --- a/priv/static/emoji/1f3ae.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f3af.svg b/priv/static/emoji/1f3af.svg deleted file mode 100644 index 9562c6c39..000000000 --- a/priv/static/emoji/1f3af.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f3b0.svg b/priv/static/emoji/1f3b0.svg deleted file mode 100644 index 789fd08d1..000000000 --- a/priv/static/emoji/1f3b0.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f3b1.svg b/priv/static/emoji/1f3b1.svg deleted file mode 100644 index 28abf33e1..000000000 --- a/priv/static/emoji/1f3b1.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f3b2.svg b/priv/static/emoji/1f3b2.svg deleted file mode 100644 index 408f2f920..000000000 --- a/priv/static/emoji/1f3b2.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f3b3.svg b/priv/static/emoji/1f3b3.svg deleted file mode 100644 index 9227f288c..000000000 --- a/priv/static/emoji/1f3b3.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f3b4.svg b/priv/static/emoji/1f3b4.svg deleted file mode 100644 index 33d3e0f5b..000000000 --- a/priv/static/emoji/1f3b4.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f3b5.svg b/priv/static/emoji/1f3b5.svg deleted file mode 100644 index c9286d2bf..000000000 --- a/priv/static/emoji/1f3b5.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f3b6.svg b/priv/static/emoji/1f3b6.svg deleted file mode 100644 index f13b3b8bf..000000000 --- a/priv/static/emoji/1f3b6.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f3b7.svg b/priv/static/emoji/1f3b7.svg deleted file mode 100644 index ed0f849e0..000000000 --- a/priv/static/emoji/1f3b7.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f3b8.svg b/priv/static/emoji/1f3b8.svg deleted file mode 100644 index 22074a11f..000000000 --- a/priv/static/emoji/1f3b8.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f3b9.svg b/priv/static/emoji/1f3b9.svg deleted file mode 100644 index 6ce8afd98..000000000 --- a/priv/static/emoji/1f3b9.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f3ba.svg b/priv/static/emoji/1f3ba.svg deleted file mode 100644 index 454ab7818..000000000 --- a/priv/static/emoji/1f3ba.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f3bb.svg b/priv/static/emoji/1f3bb.svg deleted file mode 100644 index efb7d5da7..000000000 --- a/priv/static/emoji/1f3bb.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f3bc.svg b/priv/static/emoji/1f3bc.svg deleted file mode 100644 index 5628fcacf..000000000 --- a/priv/static/emoji/1f3bc.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f3bd.svg b/priv/static/emoji/1f3bd.svg deleted file mode 100644 index 8410aee4e..000000000 --- a/priv/static/emoji/1f3bd.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f3be.svg b/priv/static/emoji/1f3be.svg deleted file mode 100644 index 323e5c462..000000000 --- a/priv/static/emoji/1f3be.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f3bf.svg b/priv/static/emoji/1f3bf.svg deleted file mode 100644 index a117c9382..000000000 --- a/priv/static/emoji/1f3bf.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f3c0.svg b/priv/static/emoji/1f3c0.svg deleted file mode 100644 index 24693956f..000000000 --- a/priv/static/emoji/1f3c0.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f3c1.svg b/priv/static/emoji/1f3c1.svg deleted file mode 100644 index 695f0ef33..000000000 --- a/priv/static/emoji/1f3c1.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f3c2-1f3fb.svg b/priv/static/emoji/1f3c2-1f3fb.svg deleted file mode 100644 index 627fa068d..000000000 --- a/priv/static/emoji/1f3c2-1f3fb.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f3c2-1f3fc.svg b/priv/static/emoji/1f3c2-1f3fc.svg deleted file mode 100644 index c0090e160..000000000 --- a/priv/static/emoji/1f3c2-1f3fc.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f3c2-1f3fd.svg b/priv/static/emoji/1f3c2-1f3fd.svg deleted file mode 100644 index e71263c97..000000000 --- a/priv/static/emoji/1f3c2-1f3fd.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f3c2-1f3fe.svg b/priv/static/emoji/1f3c2-1f3fe.svg deleted file mode 100644 index aa7ab8fab..000000000 --- a/priv/static/emoji/1f3c2-1f3fe.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f3c2-1f3ff.svg b/priv/static/emoji/1f3c2-1f3ff.svg deleted file mode 100644 index 9f66b45fe..000000000 --- a/priv/static/emoji/1f3c2-1f3ff.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f3c2.svg b/priv/static/emoji/1f3c2.svg deleted file mode 100644 index bff2c0841..000000000 --- a/priv/static/emoji/1f3c2.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f3c3-1f3fb-200d-2640-fe0f.svg b/priv/static/emoji/1f3c3-1f3fb-200d-2640-fe0f.svg deleted file mode 100644 index 9c559abd5..000000000 --- a/priv/static/emoji/1f3c3-1f3fb-200d-2640-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f3c3-1f3fb-200d-2642-fe0f.svg b/priv/static/emoji/1f3c3-1f3fb-200d-2642-fe0f.svg deleted file mode 100644 index 604a0024c..000000000 --- a/priv/static/emoji/1f3c3-1f3fb-200d-2642-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f3c3-1f3fb.svg b/priv/static/emoji/1f3c3-1f3fb.svg deleted file mode 100644 index 604a0024c..000000000 --- a/priv/static/emoji/1f3c3-1f3fb.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f3c3-1f3fc-200d-2640-fe0f.svg b/priv/static/emoji/1f3c3-1f3fc-200d-2640-fe0f.svg deleted file mode 100644 index 2639daf5c..000000000 --- a/priv/static/emoji/1f3c3-1f3fc-200d-2640-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f3c3-1f3fc-200d-2642-fe0f.svg b/priv/static/emoji/1f3c3-1f3fc-200d-2642-fe0f.svg deleted file mode 100644 index f93e9dbfc..000000000 --- a/priv/static/emoji/1f3c3-1f3fc-200d-2642-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f3c3-1f3fc.svg b/priv/static/emoji/1f3c3-1f3fc.svg deleted file mode 100644 index f93e9dbfc..000000000 --- a/priv/static/emoji/1f3c3-1f3fc.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f3c3-1f3fd-200d-2640-fe0f.svg b/priv/static/emoji/1f3c3-1f3fd-200d-2640-fe0f.svg deleted file mode 100644 index f2677ee96..000000000 --- a/priv/static/emoji/1f3c3-1f3fd-200d-2640-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f3c3-1f3fd-200d-2642-fe0f.svg b/priv/static/emoji/1f3c3-1f3fd-200d-2642-fe0f.svg deleted file mode 100644 index 847b7f6e0..000000000 --- a/priv/static/emoji/1f3c3-1f3fd-200d-2642-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f3c3-1f3fd.svg b/priv/static/emoji/1f3c3-1f3fd.svg deleted file mode 100644 index 847b7f6e0..000000000 --- a/priv/static/emoji/1f3c3-1f3fd.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f3c3-1f3fe-200d-2640-fe0f.svg b/priv/static/emoji/1f3c3-1f3fe-200d-2640-fe0f.svg deleted file mode 100644 index 175349d18..000000000 --- a/priv/static/emoji/1f3c3-1f3fe-200d-2640-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f3c3-1f3fe-200d-2642-fe0f.svg b/priv/static/emoji/1f3c3-1f3fe-200d-2642-fe0f.svg deleted file mode 100644 index 51db6d67a..000000000 --- a/priv/static/emoji/1f3c3-1f3fe-200d-2642-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f3c3-1f3fe.svg b/priv/static/emoji/1f3c3-1f3fe.svg deleted file mode 100644 index 51db6d67a..000000000 --- a/priv/static/emoji/1f3c3-1f3fe.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f3c3-1f3ff-200d-2640-fe0f.svg b/priv/static/emoji/1f3c3-1f3ff-200d-2640-fe0f.svg deleted file mode 100644 index b19ab8811..000000000 --- a/priv/static/emoji/1f3c3-1f3ff-200d-2640-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f3c3-1f3ff-200d-2642-fe0f.svg b/priv/static/emoji/1f3c3-1f3ff-200d-2642-fe0f.svg deleted file mode 100644 index 818897772..000000000 --- a/priv/static/emoji/1f3c3-1f3ff-200d-2642-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f3c3-1f3ff.svg b/priv/static/emoji/1f3c3-1f3ff.svg deleted file mode 100644 index 818897772..000000000 --- a/priv/static/emoji/1f3c3-1f3ff.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f3c3-200d-2640-fe0f.svg b/priv/static/emoji/1f3c3-200d-2640-fe0f.svg deleted file mode 100644 index 9acdb7a73..000000000 --- a/priv/static/emoji/1f3c3-200d-2640-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f3c3-200d-2642-fe0f.svg b/priv/static/emoji/1f3c3-200d-2642-fe0f.svg deleted file mode 100644 index 42bc60109..000000000 --- a/priv/static/emoji/1f3c3-200d-2642-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f3c3.svg b/priv/static/emoji/1f3c3.svg deleted file mode 100644 index 42bc60109..000000000 --- a/priv/static/emoji/1f3c3.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f3c4-1f3fb-200d-2640-fe0f.svg b/priv/static/emoji/1f3c4-1f3fb-200d-2640-fe0f.svg deleted file mode 100644 index c5f308193..000000000 --- a/priv/static/emoji/1f3c4-1f3fb-200d-2640-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f3c4-1f3fb-200d-2642-fe0f.svg b/priv/static/emoji/1f3c4-1f3fb-200d-2642-fe0f.svg deleted file mode 100644 index e396618ff..000000000 --- a/priv/static/emoji/1f3c4-1f3fb-200d-2642-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f3c4-1f3fb.svg b/priv/static/emoji/1f3c4-1f3fb.svg deleted file mode 100644 index e396618ff..000000000 --- a/priv/static/emoji/1f3c4-1f3fb.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f3c4-1f3fc-200d-2640-fe0f.svg b/priv/static/emoji/1f3c4-1f3fc-200d-2640-fe0f.svg deleted file mode 100644 index 2fcf3c603..000000000 --- a/priv/static/emoji/1f3c4-1f3fc-200d-2640-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f3c4-1f3fc-200d-2642-fe0f.svg b/priv/static/emoji/1f3c4-1f3fc-200d-2642-fe0f.svg deleted file mode 100644 index 228af26f8..000000000 --- a/priv/static/emoji/1f3c4-1f3fc-200d-2642-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f3c4-1f3fc.svg b/priv/static/emoji/1f3c4-1f3fc.svg deleted file mode 100644 index 228af26f8..000000000 --- a/priv/static/emoji/1f3c4-1f3fc.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f3c4-1f3fd-200d-2640-fe0f.svg b/priv/static/emoji/1f3c4-1f3fd-200d-2640-fe0f.svg deleted file mode 100644 index 0d5755549..000000000 --- a/priv/static/emoji/1f3c4-1f3fd-200d-2640-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f3c4-1f3fd-200d-2642-fe0f.svg b/priv/static/emoji/1f3c4-1f3fd-200d-2642-fe0f.svg deleted file mode 100644 index 521b554b6..000000000 --- a/priv/static/emoji/1f3c4-1f3fd-200d-2642-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f3c4-1f3fd.svg b/priv/static/emoji/1f3c4-1f3fd.svg deleted file mode 100644 index 521b554b6..000000000 --- a/priv/static/emoji/1f3c4-1f3fd.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f3c4-1f3fe-200d-2640-fe0f.svg b/priv/static/emoji/1f3c4-1f3fe-200d-2640-fe0f.svg deleted file mode 100644 index 6372f70a1..000000000 --- a/priv/static/emoji/1f3c4-1f3fe-200d-2640-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f3c4-1f3fe-200d-2642-fe0f.svg b/priv/static/emoji/1f3c4-1f3fe-200d-2642-fe0f.svg deleted file mode 100644 index 147c45aea..000000000 --- a/priv/static/emoji/1f3c4-1f3fe-200d-2642-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f3c4-1f3fe.svg b/priv/static/emoji/1f3c4-1f3fe.svg deleted file mode 100644 index 147c45aea..000000000 --- a/priv/static/emoji/1f3c4-1f3fe.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f3c4-1f3ff-200d-2640-fe0f.svg b/priv/static/emoji/1f3c4-1f3ff-200d-2640-fe0f.svg deleted file mode 100644 index 8cb8ad8f9..000000000 --- a/priv/static/emoji/1f3c4-1f3ff-200d-2640-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f3c4-1f3ff-200d-2642-fe0f.svg b/priv/static/emoji/1f3c4-1f3ff-200d-2642-fe0f.svg deleted file mode 100644 index 0e0ef2e9a..000000000 --- a/priv/static/emoji/1f3c4-1f3ff-200d-2642-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f3c4-1f3ff.svg b/priv/static/emoji/1f3c4-1f3ff.svg deleted file mode 100644 index 0e0ef2e9a..000000000 --- a/priv/static/emoji/1f3c4-1f3ff.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f3c4-200d-2640-fe0f.svg b/priv/static/emoji/1f3c4-200d-2640-fe0f.svg deleted file mode 100644 index c33ecc72f..000000000 --- a/priv/static/emoji/1f3c4-200d-2640-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f3c4-200d-2642-fe0f.svg b/priv/static/emoji/1f3c4-200d-2642-fe0f.svg deleted file mode 100644 index 6da42a5c0..000000000 --- a/priv/static/emoji/1f3c4-200d-2642-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f3c4.svg b/priv/static/emoji/1f3c4.svg deleted file mode 100644 index 6da42a5c0..000000000 --- a/priv/static/emoji/1f3c4.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f3c5.svg b/priv/static/emoji/1f3c5.svg deleted file mode 100644 index a576ba8b9..000000000 --- a/priv/static/emoji/1f3c5.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f3c6.svg b/priv/static/emoji/1f3c6.svg deleted file mode 100644 index 00457c31e..000000000 --- a/priv/static/emoji/1f3c6.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f3c7-1f3fb.svg b/priv/static/emoji/1f3c7-1f3fb.svg deleted file mode 100644 index a48a00b14..000000000 --- a/priv/static/emoji/1f3c7-1f3fb.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f3c7-1f3fc.svg b/priv/static/emoji/1f3c7-1f3fc.svg deleted file mode 100644 index f80fc3236..000000000 --- a/priv/static/emoji/1f3c7-1f3fc.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f3c7-1f3fd.svg b/priv/static/emoji/1f3c7-1f3fd.svg deleted file mode 100644 index 0baedbc93..000000000 --- a/priv/static/emoji/1f3c7-1f3fd.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f3c7-1f3fe.svg b/priv/static/emoji/1f3c7-1f3fe.svg deleted file mode 100644 index ef50b0b12..000000000 --- a/priv/static/emoji/1f3c7-1f3fe.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f3c7-1f3ff.svg b/priv/static/emoji/1f3c7-1f3ff.svg deleted file mode 100644 index ba0de6554..000000000 --- a/priv/static/emoji/1f3c7-1f3ff.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f3c7.svg b/priv/static/emoji/1f3c7.svg deleted file mode 100644 index e4cf15231..000000000 --- a/priv/static/emoji/1f3c7.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f3c8.svg b/priv/static/emoji/1f3c8.svg deleted file mode 100644 index 4f5530d29..000000000 --- a/priv/static/emoji/1f3c8.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f3c9.svg b/priv/static/emoji/1f3c9.svg deleted file mode 100644 index 5e12c43c7..000000000 --- a/priv/static/emoji/1f3c9.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f3ca-1f3fb-200d-2640-fe0f.svg b/priv/static/emoji/1f3ca-1f3fb-200d-2640-fe0f.svg deleted file mode 100644 index 6ce5dcdb4..000000000 --- a/priv/static/emoji/1f3ca-1f3fb-200d-2640-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f3ca-1f3fb-200d-2642-fe0f.svg b/priv/static/emoji/1f3ca-1f3fb-200d-2642-fe0f.svg deleted file mode 100644 index b3e345531..000000000 --- a/priv/static/emoji/1f3ca-1f3fb-200d-2642-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f3ca-1f3fb.svg b/priv/static/emoji/1f3ca-1f3fb.svg deleted file mode 100644 index b3e345531..000000000 --- a/priv/static/emoji/1f3ca-1f3fb.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f3ca-1f3fc-200d-2640-fe0f.svg b/priv/static/emoji/1f3ca-1f3fc-200d-2640-fe0f.svg deleted file mode 100644 index a2457fc7d..000000000 --- a/priv/static/emoji/1f3ca-1f3fc-200d-2640-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f3ca-1f3fc-200d-2642-fe0f.svg b/priv/static/emoji/1f3ca-1f3fc-200d-2642-fe0f.svg deleted file mode 100644 index 86eda1850..000000000 --- a/priv/static/emoji/1f3ca-1f3fc-200d-2642-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f3ca-1f3fc.svg b/priv/static/emoji/1f3ca-1f3fc.svg deleted file mode 100644 index 86eda1850..000000000 --- a/priv/static/emoji/1f3ca-1f3fc.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f3ca-1f3fd-200d-2640-fe0f.svg b/priv/static/emoji/1f3ca-1f3fd-200d-2640-fe0f.svg deleted file mode 100644 index 8704f5b58..000000000 --- a/priv/static/emoji/1f3ca-1f3fd-200d-2640-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f3ca-1f3fd-200d-2642-fe0f.svg b/priv/static/emoji/1f3ca-1f3fd-200d-2642-fe0f.svg deleted file mode 100644 index bf9442202..000000000 --- a/priv/static/emoji/1f3ca-1f3fd-200d-2642-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f3ca-1f3fd.svg b/priv/static/emoji/1f3ca-1f3fd.svg deleted file mode 100644 index bf9442202..000000000 --- a/priv/static/emoji/1f3ca-1f3fd.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f3ca-1f3fe-200d-2640-fe0f.svg b/priv/static/emoji/1f3ca-1f3fe-200d-2640-fe0f.svg deleted file mode 100644 index 4ee3a44d6..000000000 --- a/priv/static/emoji/1f3ca-1f3fe-200d-2640-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f3ca-1f3fe-200d-2642-fe0f.svg b/priv/static/emoji/1f3ca-1f3fe-200d-2642-fe0f.svg deleted file mode 100644 index e320765ae..000000000 --- a/priv/static/emoji/1f3ca-1f3fe-200d-2642-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f3ca-1f3fe.svg b/priv/static/emoji/1f3ca-1f3fe.svg deleted file mode 100644 index e320765ae..000000000 --- a/priv/static/emoji/1f3ca-1f3fe.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f3ca-1f3ff-200d-2640-fe0f.svg b/priv/static/emoji/1f3ca-1f3ff-200d-2640-fe0f.svg deleted file mode 100644 index 11f4beab1..000000000 --- a/priv/static/emoji/1f3ca-1f3ff-200d-2640-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f3ca-1f3ff-200d-2642-fe0f.svg b/priv/static/emoji/1f3ca-1f3ff-200d-2642-fe0f.svg deleted file mode 100644 index a25741c20..000000000 --- a/priv/static/emoji/1f3ca-1f3ff-200d-2642-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f3ca-1f3ff.svg b/priv/static/emoji/1f3ca-1f3ff.svg deleted file mode 100644 index a25741c20..000000000 --- a/priv/static/emoji/1f3ca-1f3ff.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f3ca-200d-2640-fe0f.svg b/priv/static/emoji/1f3ca-200d-2640-fe0f.svg deleted file mode 100644 index dfc2cb61c..000000000 --- a/priv/static/emoji/1f3ca-200d-2640-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f3ca-200d-2642-fe0f.svg b/priv/static/emoji/1f3ca-200d-2642-fe0f.svg deleted file mode 100644 index 12bad0643..000000000 --- a/priv/static/emoji/1f3ca-200d-2642-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f3ca.svg b/priv/static/emoji/1f3ca.svg deleted file mode 100644 index 12bad0643..000000000 --- a/priv/static/emoji/1f3ca.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f3cb-1f3fb-200d-2640-fe0f.svg b/priv/static/emoji/1f3cb-1f3fb-200d-2640-fe0f.svg deleted file mode 100644 index de38be185..000000000 --- a/priv/static/emoji/1f3cb-1f3fb-200d-2640-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f3cb-1f3fb-200d-2642-fe0f.svg b/priv/static/emoji/1f3cb-1f3fb-200d-2642-fe0f.svg deleted file mode 100644 index 1caeeb8f2..000000000 --- a/priv/static/emoji/1f3cb-1f3fb-200d-2642-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f3cb-1f3fb.svg b/priv/static/emoji/1f3cb-1f3fb.svg deleted file mode 100644 index 1caeeb8f2..000000000 --- a/priv/static/emoji/1f3cb-1f3fb.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f3cb-1f3fc-200d-2640-fe0f.svg b/priv/static/emoji/1f3cb-1f3fc-200d-2640-fe0f.svg deleted file mode 100644 index 03f293579..000000000 --- a/priv/static/emoji/1f3cb-1f3fc-200d-2640-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f3cb-1f3fc-200d-2642-fe0f.svg b/priv/static/emoji/1f3cb-1f3fc-200d-2642-fe0f.svg deleted file mode 100644 index 44953ab18..000000000 --- a/priv/static/emoji/1f3cb-1f3fc-200d-2642-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f3cb-1f3fc.svg b/priv/static/emoji/1f3cb-1f3fc.svg deleted file mode 100644 index 44953ab18..000000000 --- a/priv/static/emoji/1f3cb-1f3fc.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f3cb-1f3fd-200d-2640-fe0f.svg b/priv/static/emoji/1f3cb-1f3fd-200d-2640-fe0f.svg deleted file mode 100644 index 00f68eeda..000000000 --- a/priv/static/emoji/1f3cb-1f3fd-200d-2640-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f3cb-1f3fd-200d-2642-fe0f.svg b/priv/static/emoji/1f3cb-1f3fd-200d-2642-fe0f.svg deleted file mode 100644 index 5401c2f65..000000000 --- a/priv/static/emoji/1f3cb-1f3fd-200d-2642-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f3cb-1f3fd.svg b/priv/static/emoji/1f3cb-1f3fd.svg deleted file mode 100644 index 5401c2f65..000000000 --- a/priv/static/emoji/1f3cb-1f3fd.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f3cb-1f3fe-200d-2640-fe0f.svg b/priv/static/emoji/1f3cb-1f3fe-200d-2640-fe0f.svg deleted file mode 100644 index 34e859a13..000000000 --- a/priv/static/emoji/1f3cb-1f3fe-200d-2640-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f3cb-1f3fe-200d-2642-fe0f.svg b/priv/static/emoji/1f3cb-1f3fe-200d-2642-fe0f.svg deleted file mode 100644 index b5f19bf25..000000000 --- a/priv/static/emoji/1f3cb-1f3fe-200d-2642-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f3cb-1f3fe.svg b/priv/static/emoji/1f3cb-1f3fe.svg deleted file mode 100644 index b5f19bf25..000000000 --- a/priv/static/emoji/1f3cb-1f3fe.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f3cb-1f3ff-200d-2640-fe0f.svg b/priv/static/emoji/1f3cb-1f3ff-200d-2640-fe0f.svg deleted file mode 100644 index 117b92a7f..000000000 --- a/priv/static/emoji/1f3cb-1f3ff-200d-2640-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f3cb-1f3ff-200d-2642-fe0f.svg b/priv/static/emoji/1f3cb-1f3ff-200d-2642-fe0f.svg deleted file mode 100644 index 2cf83c479..000000000 --- a/priv/static/emoji/1f3cb-1f3ff-200d-2642-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f3cb-1f3ff.svg b/priv/static/emoji/1f3cb-1f3ff.svg deleted file mode 100644 index 2cf83c479..000000000 --- a/priv/static/emoji/1f3cb-1f3ff.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f3cb-fe0f-200d-2640-fe0f.svg b/priv/static/emoji/1f3cb-fe0f-200d-2640-fe0f.svg deleted file mode 100644 index 1e2ac7f89..000000000 --- a/priv/static/emoji/1f3cb-fe0f-200d-2640-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f3cb-fe0f-200d-2642-fe0f.svg b/priv/static/emoji/1f3cb-fe0f-200d-2642-fe0f.svg deleted file mode 100644 index f9bbcc92c..000000000 --- a/priv/static/emoji/1f3cb-fe0f-200d-2642-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f3cb.svg b/priv/static/emoji/1f3cb.svg deleted file mode 100644 index f9bbcc92c..000000000 --- a/priv/static/emoji/1f3cb.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f3cc-1f3fb-200d-2640-fe0f.svg b/priv/static/emoji/1f3cc-1f3fb-200d-2640-fe0f.svg deleted file mode 100644 index 781baf631..000000000 --- a/priv/static/emoji/1f3cc-1f3fb-200d-2640-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f3cc-1f3fb-200d-2642-fe0f.svg b/priv/static/emoji/1f3cc-1f3fb-200d-2642-fe0f.svg deleted file mode 100644 index f478ef136..000000000 --- a/priv/static/emoji/1f3cc-1f3fb-200d-2642-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f3cc-1f3fb.svg b/priv/static/emoji/1f3cc-1f3fb.svg deleted file mode 100644 index f478ef136..000000000 --- a/priv/static/emoji/1f3cc-1f3fb.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f3cc-1f3fc-200d-2640-fe0f.svg b/priv/static/emoji/1f3cc-1f3fc-200d-2640-fe0f.svg deleted file mode 100644 index 61462b998..000000000 --- a/priv/static/emoji/1f3cc-1f3fc-200d-2640-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f3cc-1f3fc-200d-2642-fe0f.svg b/priv/static/emoji/1f3cc-1f3fc-200d-2642-fe0f.svg deleted file mode 100644 index 59373fd1f..000000000 --- a/priv/static/emoji/1f3cc-1f3fc-200d-2642-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f3cc-1f3fc.svg b/priv/static/emoji/1f3cc-1f3fc.svg deleted file mode 100644 index 59373fd1f..000000000 --- a/priv/static/emoji/1f3cc-1f3fc.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f3cc-1f3fd-200d-2640-fe0f.svg b/priv/static/emoji/1f3cc-1f3fd-200d-2640-fe0f.svg deleted file mode 100644 index 353c5c2e6..000000000 --- a/priv/static/emoji/1f3cc-1f3fd-200d-2640-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f3cc-1f3fd-200d-2642-fe0f.svg b/priv/static/emoji/1f3cc-1f3fd-200d-2642-fe0f.svg deleted file mode 100644 index 6e67562b6..000000000 --- a/priv/static/emoji/1f3cc-1f3fd-200d-2642-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f3cc-1f3fd.svg b/priv/static/emoji/1f3cc-1f3fd.svg deleted file mode 100644 index 6e67562b6..000000000 --- a/priv/static/emoji/1f3cc-1f3fd.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f3cc-1f3fe-200d-2640-fe0f.svg b/priv/static/emoji/1f3cc-1f3fe-200d-2640-fe0f.svg deleted file mode 100644 index 9a9a856e1..000000000 --- a/priv/static/emoji/1f3cc-1f3fe-200d-2640-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f3cc-1f3fe-200d-2642-fe0f.svg b/priv/static/emoji/1f3cc-1f3fe-200d-2642-fe0f.svg deleted file mode 100644 index 24031bbf7..000000000 --- a/priv/static/emoji/1f3cc-1f3fe-200d-2642-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f3cc-1f3fe.svg b/priv/static/emoji/1f3cc-1f3fe.svg deleted file mode 100644 index 24031bbf7..000000000 --- a/priv/static/emoji/1f3cc-1f3fe.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f3cc-1f3ff-200d-2640-fe0f.svg b/priv/static/emoji/1f3cc-1f3ff-200d-2640-fe0f.svg deleted file mode 100644 index 13af83999..000000000 --- a/priv/static/emoji/1f3cc-1f3ff-200d-2640-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f3cc-1f3ff-200d-2642-fe0f.svg b/priv/static/emoji/1f3cc-1f3ff-200d-2642-fe0f.svg deleted file mode 100644 index 6c8ed88f3..000000000 --- a/priv/static/emoji/1f3cc-1f3ff-200d-2642-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f3cc-1f3ff.svg b/priv/static/emoji/1f3cc-1f3ff.svg deleted file mode 100644 index 6c8ed88f3..000000000 --- a/priv/static/emoji/1f3cc-1f3ff.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f3cc-fe0f-200d-2640-fe0f.svg b/priv/static/emoji/1f3cc-fe0f-200d-2640-fe0f.svg deleted file mode 100644 index 859d12f5b..000000000 --- a/priv/static/emoji/1f3cc-fe0f-200d-2640-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f3cc-fe0f-200d-2642-fe0f.svg b/priv/static/emoji/1f3cc-fe0f-200d-2642-fe0f.svg deleted file mode 100644 index 1381d6d3c..000000000 --- a/priv/static/emoji/1f3cc-fe0f-200d-2642-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f3cc.svg b/priv/static/emoji/1f3cc.svg deleted file mode 100644 index 1381d6d3c..000000000 --- a/priv/static/emoji/1f3cc.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f3cd.svg b/priv/static/emoji/1f3cd.svg deleted file mode 100644 index c51ccc347..000000000 --- a/priv/static/emoji/1f3cd.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f3ce.svg b/priv/static/emoji/1f3ce.svg deleted file mode 100644 index 3f4271669..000000000 --- a/priv/static/emoji/1f3ce.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f3cf.svg b/priv/static/emoji/1f3cf.svg deleted file mode 100644 index 140db58e4..000000000 --- a/priv/static/emoji/1f3cf.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f3d0.svg b/priv/static/emoji/1f3d0.svg deleted file mode 100644 index b23cfc3a9..000000000 --- a/priv/static/emoji/1f3d0.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f3d1.svg b/priv/static/emoji/1f3d1.svg deleted file mode 100644 index c367cef2d..000000000 --- a/priv/static/emoji/1f3d1.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f3d2.svg b/priv/static/emoji/1f3d2.svg deleted file mode 100644 index 382c62915..000000000 --- a/priv/static/emoji/1f3d2.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f3d3.svg b/priv/static/emoji/1f3d3.svg deleted file mode 100644 index 6201ef5ae..000000000 --- a/priv/static/emoji/1f3d3.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f3d4.svg b/priv/static/emoji/1f3d4.svg deleted file mode 100644 index 8b78f31e4..000000000 --- a/priv/static/emoji/1f3d4.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f3d5.svg b/priv/static/emoji/1f3d5.svg deleted file mode 100644 index 7a2fb80ed..000000000 --- a/priv/static/emoji/1f3d5.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f3d6.svg b/priv/static/emoji/1f3d6.svg deleted file mode 100644 index 9428f90f9..000000000 --- a/priv/static/emoji/1f3d6.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f3d7.svg b/priv/static/emoji/1f3d7.svg deleted file mode 100644 index e77a170b5..000000000 --- a/priv/static/emoji/1f3d7.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f3d8.svg b/priv/static/emoji/1f3d8.svg deleted file mode 100644 index 483f1ade5..000000000 --- a/priv/static/emoji/1f3d8.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f3d9.svg b/priv/static/emoji/1f3d9.svg deleted file mode 100644 index b379d80ed..000000000 --- a/priv/static/emoji/1f3d9.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f3da.svg b/priv/static/emoji/1f3da.svg deleted file mode 100644 index 5c5ade6ba..000000000 --- a/priv/static/emoji/1f3da.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f3db.svg b/priv/static/emoji/1f3db.svg deleted file mode 100644 index bdd0d45f4..000000000 --- a/priv/static/emoji/1f3db.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f3dc.svg b/priv/static/emoji/1f3dc.svg deleted file mode 100644 index 99baa8d00..000000000 --- a/priv/static/emoji/1f3dc.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f3dd.svg b/priv/static/emoji/1f3dd.svg deleted file mode 100644 index d66d8d477..000000000 --- a/priv/static/emoji/1f3dd.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f3de.svg b/priv/static/emoji/1f3de.svg deleted file mode 100644 index 940483bd3..000000000 --- a/priv/static/emoji/1f3de.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f3df.svg b/priv/static/emoji/1f3df.svg deleted file mode 100644 index 248c6d9e9..000000000 --- a/priv/static/emoji/1f3df.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f3e0.svg b/priv/static/emoji/1f3e0.svg deleted file mode 100644 index 0692739d5..000000000 --- a/priv/static/emoji/1f3e0.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f3e1.svg b/priv/static/emoji/1f3e1.svg deleted file mode 100644 index b44b7288b..000000000 --- a/priv/static/emoji/1f3e1.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f3e2.svg b/priv/static/emoji/1f3e2.svg deleted file mode 100644 index 8d06ecd20..000000000 --- a/priv/static/emoji/1f3e2.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f3e3.svg b/priv/static/emoji/1f3e3.svg deleted file mode 100644 index 132ba410d..000000000 --- a/priv/static/emoji/1f3e3.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f3e4.svg b/priv/static/emoji/1f3e4.svg deleted file mode 100644 index 7ac74e406..000000000 --- a/priv/static/emoji/1f3e4.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f3e5.svg b/priv/static/emoji/1f3e5.svg deleted file mode 100644 index 0b2748a52..000000000 --- a/priv/static/emoji/1f3e5.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f3e6.svg b/priv/static/emoji/1f3e6.svg deleted file mode 100644 index 2fd3fb077..000000000 --- a/priv/static/emoji/1f3e6.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f3e7.svg b/priv/static/emoji/1f3e7.svg deleted file mode 100644 index e4c0000bb..000000000 --- a/priv/static/emoji/1f3e7.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f3e8.svg b/priv/static/emoji/1f3e8.svg deleted file mode 100644 index 2d67b9a9c..000000000 --- a/priv/static/emoji/1f3e8.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f3e9.svg b/priv/static/emoji/1f3e9.svg deleted file mode 100644 index 9da5e448f..000000000 --- a/priv/static/emoji/1f3e9.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f3ea.svg b/priv/static/emoji/1f3ea.svg deleted file mode 100644 index 87f3f963e..000000000 --- a/priv/static/emoji/1f3ea.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f3eb.svg b/priv/static/emoji/1f3eb.svg deleted file mode 100644 index 8be9e962a..000000000 --- a/priv/static/emoji/1f3eb.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f3ec.svg b/priv/static/emoji/1f3ec.svg deleted file mode 100644 index c30d022ed..000000000 --- a/priv/static/emoji/1f3ec.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f3ed.svg b/priv/static/emoji/1f3ed.svg deleted file mode 100644 index 04ee16260..000000000 --- a/priv/static/emoji/1f3ed.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f3ee.svg b/priv/static/emoji/1f3ee.svg deleted file mode 100644 index a825f2b79..000000000 --- a/priv/static/emoji/1f3ee.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f3ef.svg b/priv/static/emoji/1f3ef.svg deleted file mode 100644 index 21683997e..000000000 --- a/priv/static/emoji/1f3ef.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f3f0.svg b/priv/static/emoji/1f3f0.svg deleted file mode 100644 index b4e3d19fe..000000000 --- a/priv/static/emoji/1f3f0.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f3f3-fe0f-200d-1f308.svg b/priv/static/emoji/1f3f3-fe0f-200d-1f308.svg deleted file mode 100644 index 1969e4971..000000000 --- a/priv/static/emoji/1f3f3-fe0f-200d-1f308.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f3f3-fe0f-200d-26a7-fe0f.svg b/priv/static/emoji/1f3f3-fe0f-200d-26a7-fe0f.svg deleted file mode 100644 index f9fc064c0..000000000 --- a/priv/static/emoji/1f3f3-fe0f-200d-26a7-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f3f3.svg b/priv/static/emoji/1f3f3.svg deleted file mode 100644 index 2f21575d3..000000000 --- a/priv/static/emoji/1f3f3.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f3f4-200d-2620-fe0f.svg b/priv/static/emoji/1f3f4-200d-2620-fe0f.svg deleted file mode 100644 index ae0d531a1..000000000 --- a/priv/static/emoji/1f3f4-200d-2620-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f3f4-e0067-e0062-e0065-e006e-e0067-e007f.svg b/priv/static/emoji/1f3f4-e0067-e0062-e0065-e006e-e0067-e007f.svg deleted file mode 100644 index fa209567d..000000000 --- a/priv/static/emoji/1f3f4-e0067-e0062-e0065-e006e-e0067-e007f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f3f4-e0067-e0062-e0073-e0063-e0074-e007f.svg b/priv/static/emoji/1f3f4-e0067-e0062-e0073-e0063-e0074-e007f.svg deleted file mode 100644 index bfb8b4850..000000000 --- a/priv/static/emoji/1f3f4-e0067-e0062-e0073-e0063-e0074-e007f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f3f4-e0067-e0062-e0077-e006c-e0073-e007f.svg b/priv/static/emoji/1f3f4-e0067-e0062-e0077-e006c-e0073-e007f.svg deleted file mode 100644 index a8326768a..000000000 --- a/priv/static/emoji/1f3f4-e0067-e0062-e0077-e006c-e0073-e007f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f3f4.svg b/priv/static/emoji/1f3f4.svg deleted file mode 100644 index 819ff64af..000000000 --- a/priv/static/emoji/1f3f4.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f3f5.svg b/priv/static/emoji/1f3f5.svg deleted file mode 100644 index dfaa71867..000000000 --- a/priv/static/emoji/1f3f5.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f3f7.svg b/priv/static/emoji/1f3f7.svg deleted file mode 100644 index 60462664e..000000000 --- a/priv/static/emoji/1f3f7.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f3f8.svg b/priv/static/emoji/1f3f8.svg deleted file mode 100644 index 143f8eaed..000000000 --- a/priv/static/emoji/1f3f8.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f3f9.svg b/priv/static/emoji/1f3f9.svg deleted file mode 100644 index 37922127e..000000000 --- a/priv/static/emoji/1f3f9.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f3fa.svg b/priv/static/emoji/1f3fa.svg deleted file mode 100644 index 4c6b4d8f7..000000000 --- a/priv/static/emoji/1f3fa.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f3fb.svg b/priv/static/emoji/1f3fb.svg deleted file mode 100644 index e1ac3e942..000000000 --- a/priv/static/emoji/1f3fb.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f3fc.svg b/priv/static/emoji/1f3fc.svg deleted file mode 100644 index 33c58c9c5..000000000 --- a/priv/static/emoji/1f3fc.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f3fd.svg b/priv/static/emoji/1f3fd.svg deleted file mode 100644 index cb3c24e75..000000000 --- a/priv/static/emoji/1f3fd.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f3fe.svg b/priv/static/emoji/1f3fe.svg deleted file mode 100644 index 7f34e609c..000000000 --- a/priv/static/emoji/1f3fe.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f3ff.svg b/priv/static/emoji/1f3ff.svg deleted file mode 100644 index 64142d3e7..000000000 --- a/priv/static/emoji/1f3ff.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f400.svg b/priv/static/emoji/1f400.svg deleted file mode 100644 index d0a03a2cf..000000000 --- a/priv/static/emoji/1f400.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f401.svg b/priv/static/emoji/1f401.svg deleted file mode 100644 index 365ab788f..000000000 --- a/priv/static/emoji/1f401.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f402.svg b/priv/static/emoji/1f402.svg deleted file mode 100644 index 378164c30..000000000 --- a/priv/static/emoji/1f402.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f403.svg b/priv/static/emoji/1f403.svg deleted file mode 100644 index 33d0009fe..000000000 --- a/priv/static/emoji/1f403.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f404.svg b/priv/static/emoji/1f404.svg deleted file mode 100644 index 4c791dcc6..000000000 --- a/priv/static/emoji/1f404.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f405.svg b/priv/static/emoji/1f405.svg deleted file mode 100644 index c74ecf6f5..000000000 --- a/priv/static/emoji/1f405.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f406.svg b/priv/static/emoji/1f406.svg deleted file mode 100644 index 4eaef0999..000000000 --- a/priv/static/emoji/1f406.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f407.svg b/priv/static/emoji/1f407.svg deleted file mode 100644 index 71be12240..000000000 --- a/priv/static/emoji/1f407.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f408.svg b/priv/static/emoji/1f408.svg deleted file mode 100644 index edb55b1f6..000000000 --- a/priv/static/emoji/1f408.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f409.svg b/priv/static/emoji/1f409.svg deleted file mode 100644 index 14e176551..000000000 --- a/priv/static/emoji/1f409.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f40a.svg b/priv/static/emoji/1f40a.svg deleted file mode 100644 index a9a6debcc..000000000 --- a/priv/static/emoji/1f40a.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f40b.svg b/priv/static/emoji/1f40b.svg deleted file mode 100644 index 8bf0a5387..000000000 --- a/priv/static/emoji/1f40b.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f40c.svg b/priv/static/emoji/1f40c.svg deleted file mode 100644 index 2c6365828..000000000 --- a/priv/static/emoji/1f40c.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f40d.svg b/priv/static/emoji/1f40d.svg deleted file mode 100644 index 17531783b..000000000 --- a/priv/static/emoji/1f40d.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f40e.svg b/priv/static/emoji/1f40e.svg deleted file mode 100644 index 1cd00b59d..000000000 --- a/priv/static/emoji/1f40e.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f40f.svg b/priv/static/emoji/1f40f.svg deleted file mode 100644 index f0ba99efe..000000000 --- a/priv/static/emoji/1f40f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f410.svg b/priv/static/emoji/1f410.svg deleted file mode 100644 index 83d3e56a6..000000000 --- a/priv/static/emoji/1f410.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f411.svg b/priv/static/emoji/1f411.svg deleted file mode 100644 index 891e67027..000000000 --- a/priv/static/emoji/1f411.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f412.svg b/priv/static/emoji/1f412.svg deleted file mode 100644 index 6ffccee47..000000000 --- a/priv/static/emoji/1f412.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f413.svg b/priv/static/emoji/1f413.svg deleted file mode 100644 index 29a4abe88..000000000 --- a/priv/static/emoji/1f413.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f414.svg b/priv/static/emoji/1f414.svg deleted file mode 100644 index b08f7a2b0..000000000 --- a/priv/static/emoji/1f414.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f415-200d-1f9ba.svg b/priv/static/emoji/1f415-200d-1f9ba.svg deleted file mode 100644 index 0ba7fb30e..000000000 --- a/priv/static/emoji/1f415-200d-1f9ba.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f415.svg b/priv/static/emoji/1f415.svg deleted file mode 100644 index c959deb9d..000000000 --- a/priv/static/emoji/1f415.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f416.svg b/priv/static/emoji/1f416.svg deleted file mode 100644 index 9a71ef841..000000000 --- a/priv/static/emoji/1f416.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f417.svg b/priv/static/emoji/1f417.svg deleted file mode 100644 index ad7a77db8..000000000 --- a/priv/static/emoji/1f417.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f418.svg b/priv/static/emoji/1f418.svg deleted file mode 100644 index fb9656cd1..000000000 --- a/priv/static/emoji/1f418.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f419.svg b/priv/static/emoji/1f419.svg deleted file mode 100644 index d915a8fd2..000000000 --- a/priv/static/emoji/1f419.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f41a.svg b/priv/static/emoji/1f41a.svg deleted file mode 100644 index 804ece881..000000000 --- a/priv/static/emoji/1f41a.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f41b.svg b/priv/static/emoji/1f41b.svg deleted file mode 100644 index f8986dd78..000000000 --- a/priv/static/emoji/1f41b.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f41c.svg b/priv/static/emoji/1f41c.svg deleted file mode 100644 index 385b616e8..000000000 --- a/priv/static/emoji/1f41c.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f41d.svg b/priv/static/emoji/1f41d.svg deleted file mode 100644 index 31e788280..000000000 --- a/priv/static/emoji/1f41d.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f41e.svg b/priv/static/emoji/1f41e.svg deleted file mode 100644 index f314ca9a2..000000000 --- a/priv/static/emoji/1f41e.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f41f.svg b/priv/static/emoji/1f41f.svg deleted file mode 100644 index 7d9ef4108..000000000 --- a/priv/static/emoji/1f41f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f420.svg b/priv/static/emoji/1f420.svg deleted file mode 100644 index ccc11c48d..000000000 --- a/priv/static/emoji/1f420.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f421.svg b/priv/static/emoji/1f421.svg deleted file mode 100644 index 13a7ddc60..000000000 --- a/priv/static/emoji/1f421.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f422.svg b/priv/static/emoji/1f422.svg deleted file mode 100644 index fe4b659ee..000000000 --- a/priv/static/emoji/1f422.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f423.svg b/priv/static/emoji/1f423.svg deleted file mode 100644 index 98f9c8220..000000000 --- a/priv/static/emoji/1f423.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f424.svg b/priv/static/emoji/1f424.svg deleted file mode 100644 index 1286ed38d..000000000 --- a/priv/static/emoji/1f424.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f425.svg b/priv/static/emoji/1f425.svg deleted file mode 100644 index bcbd2181b..000000000 --- a/priv/static/emoji/1f425.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f426.svg b/priv/static/emoji/1f426.svg deleted file mode 100644 index 06d93a916..000000000 --- a/priv/static/emoji/1f426.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f427.svg b/priv/static/emoji/1f427.svg deleted file mode 100644 index fe34d91a9..000000000 --- a/priv/static/emoji/1f427.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f428.svg b/priv/static/emoji/1f428.svg deleted file mode 100644 index 1da7190a6..000000000 --- a/priv/static/emoji/1f428.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f429.svg b/priv/static/emoji/1f429.svg deleted file mode 100644 index 4852dda3d..000000000 --- a/priv/static/emoji/1f429.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f42a.svg b/priv/static/emoji/1f42a.svg deleted file mode 100644 index 278e144ff..000000000 --- a/priv/static/emoji/1f42a.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f42b.svg b/priv/static/emoji/1f42b.svg deleted file mode 100644 index 8d60286e9..000000000 --- a/priv/static/emoji/1f42b.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f42c.svg b/priv/static/emoji/1f42c.svg deleted file mode 100644 index ee782f2f2..000000000 --- a/priv/static/emoji/1f42c.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f42d.svg b/priv/static/emoji/1f42d.svg deleted file mode 100644 index 91e126242..000000000 --- a/priv/static/emoji/1f42d.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f42e.svg b/priv/static/emoji/1f42e.svg deleted file mode 100644 index 40fede032..000000000 --- a/priv/static/emoji/1f42e.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f42f.svg b/priv/static/emoji/1f42f.svg deleted file mode 100644 index 5ecd980c5..000000000 --- a/priv/static/emoji/1f42f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f430.svg b/priv/static/emoji/1f430.svg deleted file mode 100644 index 2f70f9669..000000000 --- a/priv/static/emoji/1f430.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f431.svg b/priv/static/emoji/1f431.svg deleted file mode 100644 index cc75dcc68..000000000 --- a/priv/static/emoji/1f431.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f432.svg b/priv/static/emoji/1f432.svg deleted file mode 100644 index 1c1b4347d..000000000 --- a/priv/static/emoji/1f432.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f433.svg b/priv/static/emoji/1f433.svg deleted file mode 100644 index f00ea1033..000000000 --- a/priv/static/emoji/1f433.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f434.svg b/priv/static/emoji/1f434.svg deleted file mode 100644 index 9aa7d6935..000000000 --- a/priv/static/emoji/1f434.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f435.svg b/priv/static/emoji/1f435.svg deleted file mode 100644 index ee6c57cf9..000000000 --- a/priv/static/emoji/1f435.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f436.svg b/priv/static/emoji/1f436.svg deleted file mode 100644 index 8b2e68580..000000000 --- a/priv/static/emoji/1f436.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f437.svg b/priv/static/emoji/1f437.svg deleted file mode 100644 index 49175ea42..000000000 --- a/priv/static/emoji/1f437.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f438.svg b/priv/static/emoji/1f438.svg deleted file mode 100644 index 74ddb592c..000000000 --- a/priv/static/emoji/1f438.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f439.svg b/priv/static/emoji/1f439.svg deleted file mode 100644 index 9bb7bae3b..000000000 --- a/priv/static/emoji/1f439.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f43a.svg b/priv/static/emoji/1f43a.svg deleted file mode 100644 index af402057e..000000000 --- a/priv/static/emoji/1f43a.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f43b.svg b/priv/static/emoji/1f43b.svg deleted file mode 100644 index 50224417b..000000000 --- a/priv/static/emoji/1f43b.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f43c.svg b/priv/static/emoji/1f43c.svg deleted file mode 100644 index 8607893a0..000000000 --- a/priv/static/emoji/1f43c.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f43d.svg b/priv/static/emoji/1f43d.svg deleted file mode 100644 index 071722db1..000000000 --- a/priv/static/emoji/1f43d.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f43e.svg b/priv/static/emoji/1f43e.svg deleted file mode 100644 index 40013679b..000000000 --- a/priv/static/emoji/1f43e.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f43f.svg b/priv/static/emoji/1f43f.svg deleted file mode 100644 index 367687490..000000000 --- a/priv/static/emoji/1f43f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f440.svg b/priv/static/emoji/1f440.svg deleted file mode 100644 index 46a268f43..000000000 --- a/priv/static/emoji/1f440.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f441-200d-1f5e8.svg b/priv/static/emoji/1f441-200d-1f5e8.svg deleted file mode 100644 index ebe9061da..000000000 --- a/priv/static/emoji/1f441-200d-1f5e8.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f441.svg b/priv/static/emoji/1f441.svg deleted file mode 100644 index 75e9c48a4..000000000 --- a/priv/static/emoji/1f441.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f442-1f3fb.svg b/priv/static/emoji/1f442-1f3fb.svg deleted file mode 100644 index 75194c52e..000000000 --- a/priv/static/emoji/1f442-1f3fb.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f442-1f3fc.svg b/priv/static/emoji/1f442-1f3fc.svg deleted file mode 100644 index f4ae52f75..000000000 --- a/priv/static/emoji/1f442-1f3fc.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f442-1f3fd.svg b/priv/static/emoji/1f442-1f3fd.svg deleted file mode 100644 index da1d80a17..000000000 --- a/priv/static/emoji/1f442-1f3fd.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f442-1f3fe.svg b/priv/static/emoji/1f442-1f3fe.svg deleted file mode 100644 index f54144b39..000000000 --- a/priv/static/emoji/1f442-1f3fe.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f442-1f3ff.svg b/priv/static/emoji/1f442-1f3ff.svg deleted file mode 100644 index 845451210..000000000 --- a/priv/static/emoji/1f442-1f3ff.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f442.svg b/priv/static/emoji/1f442.svg deleted file mode 100644 index 1b386c7cb..000000000 --- a/priv/static/emoji/1f442.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f443-1f3fb.svg b/priv/static/emoji/1f443-1f3fb.svg deleted file mode 100644 index ba2e3dc71..000000000 --- a/priv/static/emoji/1f443-1f3fb.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f443-1f3fc.svg b/priv/static/emoji/1f443-1f3fc.svg deleted file mode 100644 index e953ffde5..000000000 --- a/priv/static/emoji/1f443-1f3fc.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f443-1f3fd.svg b/priv/static/emoji/1f443-1f3fd.svg deleted file mode 100644 index fff0434a6..000000000 --- a/priv/static/emoji/1f443-1f3fd.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f443-1f3fe.svg b/priv/static/emoji/1f443-1f3fe.svg deleted file mode 100644 index bfb49618b..000000000 --- a/priv/static/emoji/1f443-1f3fe.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f443-1f3ff.svg b/priv/static/emoji/1f443-1f3ff.svg deleted file mode 100644 index e9c466d8f..000000000 --- a/priv/static/emoji/1f443-1f3ff.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f443.svg b/priv/static/emoji/1f443.svg deleted file mode 100644 index 654a6f2a4..000000000 --- a/priv/static/emoji/1f443.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f444.svg b/priv/static/emoji/1f444.svg deleted file mode 100644 index e8a29c473..000000000 --- a/priv/static/emoji/1f444.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f445.svg b/priv/static/emoji/1f445.svg deleted file mode 100644 index 64386b95e..000000000 --- a/priv/static/emoji/1f445.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f446-1f3fb.svg b/priv/static/emoji/1f446-1f3fb.svg deleted file mode 100644 index 4b66516df..000000000 --- a/priv/static/emoji/1f446-1f3fb.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f446-1f3fc.svg b/priv/static/emoji/1f446-1f3fc.svg deleted file mode 100644 index f2f802300..000000000 --- a/priv/static/emoji/1f446-1f3fc.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f446-1f3fd.svg b/priv/static/emoji/1f446-1f3fd.svg deleted file mode 100644 index 8a35f1133..000000000 --- a/priv/static/emoji/1f446-1f3fd.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f446-1f3fe.svg b/priv/static/emoji/1f446-1f3fe.svg deleted file mode 100644 index dce82c501..000000000 --- a/priv/static/emoji/1f446-1f3fe.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f446-1f3ff.svg b/priv/static/emoji/1f446-1f3ff.svg deleted file mode 100644 index 56492307a..000000000 --- a/priv/static/emoji/1f446-1f3ff.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f446.svg b/priv/static/emoji/1f446.svg deleted file mode 100644 index 46bc35968..000000000 --- a/priv/static/emoji/1f446.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f447-1f3fb.svg b/priv/static/emoji/1f447-1f3fb.svg deleted file mode 100644 index 5d5c6790b..000000000 --- a/priv/static/emoji/1f447-1f3fb.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f447-1f3fc.svg b/priv/static/emoji/1f447-1f3fc.svg deleted file mode 100644 index 6191d80ed..000000000 --- a/priv/static/emoji/1f447-1f3fc.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f447-1f3fd.svg b/priv/static/emoji/1f447-1f3fd.svg deleted file mode 100644 index 553f3b906..000000000 --- a/priv/static/emoji/1f447-1f3fd.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f447-1f3fe.svg b/priv/static/emoji/1f447-1f3fe.svg deleted file mode 100644 index 2d7fc57d5..000000000 --- a/priv/static/emoji/1f447-1f3fe.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f447-1f3ff.svg b/priv/static/emoji/1f447-1f3ff.svg deleted file mode 100644 index e64a83e56..000000000 --- a/priv/static/emoji/1f447-1f3ff.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f447.svg b/priv/static/emoji/1f447.svg deleted file mode 100644 index b3df61704..000000000 --- a/priv/static/emoji/1f447.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f448-1f3fb.svg b/priv/static/emoji/1f448-1f3fb.svg deleted file mode 100644 index 452e1731f..000000000 --- a/priv/static/emoji/1f448-1f3fb.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f448-1f3fc.svg b/priv/static/emoji/1f448-1f3fc.svg deleted file mode 100644 index 698207e4d..000000000 --- a/priv/static/emoji/1f448-1f3fc.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f448-1f3fd.svg b/priv/static/emoji/1f448-1f3fd.svg deleted file mode 100644 index dec8dbedd..000000000 --- a/priv/static/emoji/1f448-1f3fd.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f448-1f3fe.svg b/priv/static/emoji/1f448-1f3fe.svg deleted file mode 100644 index 60e329d9c..000000000 --- a/priv/static/emoji/1f448-1f3fe.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f448-1f3ff.svg b/priv/static/emoji/1f448-1f3ff.svg deleted file mode 100644 index 58e85097e..000000000 --- a/priv/static/emoji/1f448-1f3ff.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f448.svg b/priv/static/emoji/1f448.svg deleted file mode 100644 index 10cf55fae..000000000 --- a/priv/static/emoji/1f448.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f449-1f3fb.svg b/priv/static/emoji/1f449-1f3fb.svg deleted file mode 100644 index 76635f264..000000000 --- a/priv/static/emoji/1f449-1f3fb.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f449-1f3fc.svg b/priv/static/emoji/1f449-1f3fc.svg deleted file mode 100644 index 4f03a7e8f..000000000 --- a/priv/static/emoji/1f449-1f3fc.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f449-1f3fd.svg b/priv/static/emoji/1f449-1f3fd.svg deleted file mode 100644 index 5b90a8a30..000000000 --- a/priv/static/emoji/1f449-1f3fd.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f449-1f3fe.svg b/priv/static/emoji/1f449-1f3fe.svg deleted file mode 100644 index 75257c127..000000000 --- a/priv/static/emoji/1f449-1f3fe.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f449-1f3ff.svg b/priv/static/emoji/1f449-1f3ff.svg deleted file mode 100644 index d7b5893cb..000000000 --- a/priv/static/emoji/1f449-1f3ff.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f449.svg b/priv/static/emoji/1f449.svg deleted file mode 100644 index f8c6a4b1d..000000000 --- a/priv/static/emoji/1f449.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f44a-1f3fb.svg b/priv/static/emoji/1f44a-1f3fb.svg deleted file mode 100644 index c113b4ae7..000000000 --- a/priv/static/emoji/1f44a-1f3fb.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f44a-1f3fc.svg b/priv/static/emoji/1f44a-1f3fc.svg deleted file mode 100644 index 54cdf858a..000000000 --- a/priv/static/emoji/1f44a-1f3fc.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f44a-1f3fd.svg b/priv/static/emoji/1f44a-1f3fd.svg deleted file mode 100644 index b798e5bad..000000000 --- a/priv/static/emoji/1f44a-1f3fd.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f44a-1f3fe.svg b/priv/static/emoji/1f44a-1f3fe.svg deleted file mode 100644 index c9b1cf601..000000000 --- a/priv/static/emoji/1f44a-1f3fe.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f44a-1f3ff.svg b/priv/static/emoji/1f44a-1f3ff.svg deleted file mode 100644 index faa58cbc6..000000000 --- a/priv/static/emoji/1f44a-1f3ff.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f44a.svg b/priv/static/emoji/1f44a.svg deleted file mode 100644 index 813373e6d..000000000 --- a/priv/static/emoji/1f44a.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f44b-1f3fb.svg b/priv/static/emoji/1f44b-1f3fb.svg deleted file mode 100644 index de8871dc2..000000000 --- a/priv/static/emoji/1f44b-1f3fb.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f44b-1f3fc.svg b/priv/static/emoji/1f44b-1f3fc.svg deleted file mode 100644 index beec31c99..000000000 --- a/priv/static/emoji/1f44b-1f3fc.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f44b-1f3fd.svg b/priv/static/emoji/1f44b-1f3fd.svg deleted file mode 100644 index 975f489fd..000000000 --- a/priv/static/emoji/1f44b-1f3fd.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f44b-1f3fe.svg b/priv/static/emoji/1f44b-1f3fe.svg deleted file mode 100644 index 13c59cf1b..000000000 --- a/priv/static/emoji/1f44b-1f3fe.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f44b-1f3ff.svg b/priv/static/emoji/1f44b-1f3ff.svg deleted file mode 100644 index 1ce9ef377..000000000 --- a/priv/static/emoji/1f44b-1f3ff.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f44b.svg b/priv/static/emoji/1f44b.svg deleted file mode 100644 index 8942c68b0..000000000 --- a/priv/static/emoji/1f44b.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f44c-1f3fb.svg b/priv/static/emoji/1f44c-1f3fb.svg deleted file mode 100644 index e54788da9..000000000 --- a/priv/static/emoji/1f44c-1f3fb.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f44c-1f3fc.svg b/priv/static/emoji/1f44c-1f3fc.svg deleted file mode 100644 index e96a25802..000000000 --- a/priv/static/emoji/1f44c-1f3fc.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f44c-1f3fd.svg b/priv/static/emoji/1f44c-1f3fd.svg deleted file mode 100644 index 6e52b17f5..000000000 --- a/priv/static/emoji/1f44c-1f3fd.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f44c-1f3fe.svg b/priv/static/emoji/1f44c-1f3fe.svg deleted file mode 100644 index 91cb40e4a..000000000 --- a/priv/static/emoji/1f44c-1f3fe.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f44c-1f3ff.svg b/priv/static/emoji/1f44c-1f3ff.svg deleted file mode 100644 index ffa03f7a0..000000000 --- a/priv/static/emoji/1f44c-1f3ff.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f44c.svg b/priv/static/emoji/1f44c.svg deleted file mode 100644 index c36d77485..000000000 --- a/priv/static/emoji/1f44c.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f44d-1f3fb.svg b/priv/static/emoji/1f44d-1f3fb.svg deleted file mode 100644 index ac1ab0270..000000000 --- a/priv/static/emoji/1f44d-1f3fb.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f44d-1f3fc.svg b/priv/static/emoji/1f44d-1f3fc.svg deleted file mode 100644 index e5d4b0dcd..000000000 --- a/priv/static/emoji/1f44d-1f3fc.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f44d-1f3fd.svg b/priv/static/emoji/1f44d-1f3fd.svg deleted file mode 100644 index 7dde22916..000000000 --- a/priv/static/emoji/1f44d-1f3fd.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f44d-1f3fe.svg b/priv/static/emoji/1f44d-1f3fe.svg deleted file mode 100644 index a0b156577..000000000 --- a/priv/static/emoji/1f44d-1f3fe.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f44d-1f3ff.svg b/priv/static/emoji/1f44d-1f3ff.svg deleted file mode 100644 index dc21efcb7..000000000 --- a/priv/static/emoji/1f44d-1f3ff.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f44d.svg b/priv/static/emoji/1f44d.svg deleted file mode 100644 index 595672dc2..000000000 --- a/priv/static/emoji/1f44d.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f44e-1f3fb.svg b/priv/static/emoji/1f44e-1f3fb.svg deleted file mode 100644 index cf3616ea0..000000000 --- a/priv/static/emoji/1f44e-1f3fb.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f44e-1f3fc.svg b/priv/static/emoji/1f44e-1f3fc.svg deleted file mode 100644 index e929cabb8..000000000 --- a/priv/static/emoji/1f44e-1f3fc.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f44e-1f3fd.svg b/priv/static/emoji/1f44e-1f3fd.svg deleted file mode 100644 index 0584fd01f..000000000 --- a/priv/static/emoji/1f44e-1f3fd.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f44e-1f3fe.svg b/priv/static/emoji/1f44e-1f3fe.svg deleted file mode 100644 index 88af00e48..000000000 --- a/priv/static/emoji/1f44e-1f3fe.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f44e-1f3ff.svg b/priv/static/emoji/1f44e-1f3ff.svg deleted file mode 100644 index 0e8c62e31..000000000 --- a/priv/static/emoji/1f44e-1f3ff.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f44e.svg b/priv/static/emoji/1f44e.svg deleted file mode 100644 index 1569ad098..000000000 --- a/priv/static/emoji/1f44e.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f44f-1f3fb.svg b/priv/static/emoji/1f44f-1f3fb.svg deleted file mode 100644 index 27feea251..000000000 --- a/priv/static/emoji/1f44f-1f3fb.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f44f-1f3fc.svg b/priv/static/emoji/1f44f-1f3fc.svg deleted file mode 100644 index 7edc9477b..000000000 --- a/priv/static/emoji/1f44f-1f3fc.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f44f-1f3fd.svg b/priv/static/emoji/1f44f-1f3fd.svg deleted file mode 100644 index 93201cf6b..000000000 --- a/priv/static/emoji/1f44f-1f3fd.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f44f-1f3fe.svg b/priv/static/emoji/1f44f-1f3fe.svg deleted file mode 100644 index 0301e0cfd..000000000 --- a/priv/static/emoji/1f44f-1f3fe.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f44f-1f3ff.svg b/priv/static/emoji/1f44f-1f3ff.svg deleted file mode 100644 index eec087b61..000000000 --- a/priv/static/emoji/1f44f-1f3ff.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f44f.svg b/priv/static/emoji/1f44f.svg deleted file mode 100644 index 2ed7b62f4..000000000 --- a/priv/static/emoji/1f44f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f450-1f3fb.svg b/priv/static/emoji/1f450-1f3fb.svg deleted file mode 100644 index 621c9f6cb..000000000 --- a/priv/static/emoji/1f450-1f3fb.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f450-1f3fc.svg b/priv/static/emoji/1f450-1f3fc.svg deleted file mode 100644 index 70b490f40..000000000 --- a/priv/static/emoji/1f450-1f3fc.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f450-1f3fd.svg b/priv/static/emoji/1f450-1f3fd.svg deleted file mode 100644 index a8944369d..000000000 --- a/priv/static/emoji/1f450-1f3fd.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f450-1f3fe.svg b/priv/static/emoji/1f450-1f3fe.svg deleted file mode 100644 index e31b85caf..000000000 --- a/priv/static/emoji/1f450-1f3fe.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f450-1f3ff.svg b/priv/static/emoji/1f450-1f3ff.svg deleted file mode 100644 index c0d8fc430..000000000 --- a/priv/static/emoji/1f450-1f3ff.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f450.svg b/priv/static/emoji/1f450.svg deleted file mode 100644 index eebee2543..000000000 --- a/priv/static/emoji/1f450.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f451.svg b/priv/static/emoji/1f451.svg deleted file mode 100644 index 4db8d2bc3..000000000 --- a/priv/static/emoji/1f451.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f452.svg b/priv/static/emoji/1f452.svg deleted file mode 100644 index 4b647446b..000000000 --- a/priv/static/emoji/1f452.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f453.svg b/priv/static/emoji/1f453.svg deleted file mode 100644 index 18d99981e..000000000 --- a/priv/static/emoji/1f453.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f454.svg b/priv/static/emoji/1f454.svg deleted file mode 100644 index 8e860d6db..000000000 --- a/priv/static/emoji/1f454.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f455.svg b/priv/static/emoji/1f455.svg deleted file mode 100644 index 1db482028..000000000 --- a/priv/static/emoji/1f455.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f456.svg b/priv/static/emoji/1f456.svg deleted file mode 100644 index 44191ae45..000000000 --- a/priv/static/emoji/1f456.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f457.svg b/priv/static/emoji/1f457.svg deleted file mode 100644 index 29cc45c74..000000000 --- a/priv/static/emoji/1f457.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f458.svg b/priv/static/emoji/1f458.svg deleted file mode 100644 index 7c955e99e..000000000 --- a/priv/static/emoji/1f458.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f459.svg b/priv/static/emoji/1f459.svg deleted file mode 100644 index ed327f108..000000000 --- a/priv/static/emoji/1f459.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f45a.svg b/priv/static/emoji/1f45a.svg deleted file mode 100644 index 9d6306ce7..000000000 --- a/priv/static/emoji/1f45a.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f45b.svg b/priv/static/emoji/1f45b.svg deleted file mode 100644 index bb404a2bf..000000000 --- a/priv/static/emoji/1f45b.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f45c.svg b/priv/static/emoji/1f45c.svg deleted file mode 100644 index 3093d6bbf..000000000 --- a/priv/static/emoji/1f45c.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f45d.svg b/priv/static/emoji/1f45d.svg deleted file mode 100644 index 6d6b1364d..000000000 --- a/priv/static/emoji/1f45d.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f45e.svg b/priv/static/emoji/1f45e.svg deleted file mode 100644 index fe94bf599..000000000 --- a/priv/static/emoji/1f45e.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f45f.svg b/priv/static/emoji/1f45f.svg deleted file mode 100644 index f0c998c63..000000000 --- a/priv/static/emoji/1f45f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f460.svg b/priv/static/emoji/1f460.svg deleted file mode 100644 index f3aaf4490..000000000 --- a/priv/static/emoji/1f460.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f461.svg b/priv/static/emoji/1f461.svg deleted file mode 100644 index c2f62e4ff..000000000 --- a/priv/static/emoji/1f461.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f462.svg b/priv/static/emoji/1f462.svg deleted file mode 100644 index 641dd8b24..000000000 --- a/priv/static/emoji/1f462.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f463.svg b/priv/static/emoji/1f463.svg deleted file mode 100644 index bc37ac051..000000000 --- a/priv/static/emoji/1f463.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f464.svg b/priv/static/emoji/1f464.svg deleted file mode 100644 index 51d02dd25..000000000 --- a/priv/static/emoji/1f464.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f465.svg b/priv/static/emoji/1f465.svg deleted file mode 100644 index 076c6e7df..000000000 --- a/priv/static/emoji/1f465.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f466-1f3fb.svg b/priv/static/emoji/1f466-1f3fb.svg deleted file mode 100644 index 449e08924..000000000 --- a/priv/static/emoji/1f466-1f3fb.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f466-1f3fc.svg b/priv/static/emoji/1f466-1f3fc.svg deleted file mode 100644 index 20f7bf0d4..000000000 --- a/priv/static/emoji/1f466-1f3fc.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f466-1f3fd.svg b/priv/static/emoji/1f466-1f3fd.svg deleted file mode 100644 index 3b4f0dbab..000000000 --- a/priv/static/emoji/1f466-1f3fd.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f466-1f3fe.svg b/priv/static/emoji/1f466-1f3fe.svg deleted file mode 100644 index 197d83091..000000000 --- a/priv/static/emoji/1f466-1f3fe.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f466-1f3ff.svg b/priv/static/emoji/1f466-1f3ff.svg deleted file mode 100644 index c4d1e1a21..000000000 --- a/priv/static/emoji/1f466-1f3ff.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f466.svg b/priv/static/emoji/1f466.svg deleted file mode 100644 index de1318cc1..000000000 --- a/priv/static/emoji/1f466.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f467-1f3fb.svg b/priv/static/emoji/1f467-1f3fb.svg deleted file mode 100644 index 887df9fc2..000000000 --- a/priv/static/emoji/1f467-1f3fb.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f467-1f3fc.svg b/priv/static/emoji/1f467-1f3fc.svg deleted file mode 100644 index 98c09561b..000000000 --- a/priv/static/emoji/1f467-1f3fc.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f467-1f3fd.svg b/priv/static/emoji/1f467-1f3fd.svg deleted file mode 100644 index 058874c76..000000000 --- a/priv/static/emoji/1f467-1f3fd.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f467-1f3fe.svg b/priv/static/emoji/1f467-1f3fe.svg deleted file mode 100644 index dd656d86e..000000000 --- a/priv/static/emoji/1f467-1f3fe.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f467-1f3ff.svg b/priv/static/emoji/1f467-1f3ff.svg deleted file mode 100644 index 2f9980a8c..000000000 --- a/priv/static/emoji/1f467-1f3ff.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f467.svg b/priv/static/emoji/1f467.svg deleted file mode 100644 index e40a8589d..000000000 --- a/priv/static/emoji/1f467.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f468-1f3fb-200d-1f33e.svg b/priv/static/emoji/1f468-1f3fb-200d-1f33e.svg deleted file mode 100644 index e9ce82926..000000000 --- a/priv/static/emoji/1f468-1f3fb-200d-1f33e.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f468-1f3fb-200d-1f373.svg b/priv/static/emoji/1f468-1f3fb-200d-1f373.svg deleted file mode 100644 index a972e6a4b..000000000 --- a/priv/static/emoji/1f468-1f3fb-200d-1f373.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f468-1f3fb-200d-1f393.svg b/priv/static/emoji/1f468-1f3fb-200d-1f393.svg deleted file mode 100644 index e4f480ffe..000000000 --- a/priv/static/emoji/1f468-1f3fb-200d-1f393.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f468-1f3fb-200d-1f3a4.svg b/priv/static/emoji/1f468-1f3fb-200d-1f3a4.svg deleted file mode 100644 index 03b4f9882..000000000 --- a/priv/static/emoji/1f468-1f3fb-200d-1f3a4.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f468-1f3fb-200d-1f3a8.svg b/priv/static/emoji/1f468-1f3fb-200d-1f3a8.svg deleted file mode 100644 index c52490973..000000000 --- a/priv/static/emoji/1f468-1f3fb-200d-1f3a8.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f468-1f3fb-200d-1f3eb.svg b/priv/static/emoji/1f468-1f3fb-200d-1f3eb.svg deleted file mode 100644 index b8b0f125e..000000000 --- a/priv/static/emoji/1f468-1f3fb-200d-1f3eb.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f468-1f3fb-200d-1f3ed.svg b/priv/static/emoji/1f468-1f3fb-200d-1f3ed.svg deleted file mode 100644 index 96b458694..000000000 --- a/priv/static/emoji/1f468-1f3fb-200d-1f3ed.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f468-1f3fb-200d-1f4bb.svg b/priv/static/emoji/1f468-1f3fb-200d-1f4bb.svg deleted file mode 100644 index 70ea65ecb..000000000 --- a/priv/static/emoji/1f468-1f3fb-200d-1f4bb.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f468-1f3fb-200d-1f4bc.svg b/priv/static/emoji/1f468-1f3fb-200d-1f4bc.svg deleted file mode 100644 index 06f78911e..000000000 --- a/priv/static/emoji/1f468-1f3fb-200d-1f4bc.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f468-1f3fb-200d-1f527.svg b/priv/static/emoji/1f468-1f3fb-200d-1f527.svg deleted file mode 100644 index fc9059e04..000000000 --- a/priv/static/emoji/1f468-1f3fb-200d-1f527.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f468-1f3fb-200d-1f52c.svg b/priv/static/emoji/1f468-1f3fb-200d-1f52c.svg deleted file mode 100644 index 08440f068..000000000 --- a/priv/static/emoji/1f468-1f3fb-200d-1f52c.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f468-1f3fb-200d-1f680.svg b/priv/static/emoji/1f468-1f3fb-200d-1f680.svg deleted file mode 100644 index 8492ec943..000000000 --- a/priv/static/emoji/1f468-1f3fb-200d-1f680.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f468-1f3fb-200d-1f692.svg b/priv/static/emoji/1f468-1f3fb-200d-1f692.svg deleted file mode 100644 index 4d32c4df7..000000000 --- a/priv/static/emoji/1f468-1f3fb-200d-1f692.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f468-1f3fb-200d-1f9af.svg b/priv/static/emoji/1f468-1f3fb-200d-1f9af.svg deleted file mode 100644 index 06f7b2cfc..000000000 --- a/priv/static/emoji/1f468-1f3fb-200d-1f9af.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f468-1f3fb-200d-1f9b0.svg b/priv/static/emoji/1f468-1f3fb-200d-1f9b0.svg deleted file mode 100644 index e627fbc2f..000000000 --- a/priv/static/emoji/1f468-1f3fb-200d-1f9b0.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f468-1f3fb-200d-1f9b1.svg b/priv/static/emoji/1f468-1f3fb-200d-1f9b1.svg deleted file mode 100644 index d21a1f77e..000000000 --- a/priv/static/emoji/1f468-1f3fb-200d-1f9b1.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f468-1f3fb-200d-1f9b2.svg b/priv/static/emoji/1f468-1f3fb-200d-1f9b2.svg deleted file mode 100644 index 9c89431f3..000000000 --- a/priv/static/emoji/1f468-1f3fb-200d-1f9b2.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f468-1f3fb-200d-1f9b3.svg b/priv/static/emoji/1f468-1f3fb-200d-1f9b3.svg deleted file mode 100644 index 66c62c1ef..000000000 --- a/priv/static/emoji/1f468-1f3fb-200d-1f9b3.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f468-1f3fb-200d-1f9bc.svg b/priv/static/emoji/1f468-1f3fb-200d-1f9bc.svg deleted file mode 100644 index 012784566..000000000 --- a/priv/static/emoji/1f468-1f3fb-200d-1f9bc.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f468-1f3fb-200d-1f9bd.svg b/priv/static/emoji/1f468-1f3fb-200d-1f9bd.svg deleted file mode 100644 index 7d0c06d0d..000000000 --- a/priv/static/emoji/1f468-1f3fb-200d-1f9bd.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f468-1f3fb-200d-2695-fe0f.svg b/priv/static/emoji/1f468-1f3fb-200d-2695-fe0f.svg deleted file mode 100644 index 7e239f004..000000000 --- a/priv/static/emoji/1f468-1f3fb-200d-2695-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f468-1f3fb-200d-2696-fe0f.svg b/priv/static/emoji/1f468-1f3fb-200d-2696-fe0f.svg deleted file mode 100644 index 78a2a14c9..000000000 --- a/priv/static/emoji/1f468-1f3fb-200d-2696-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f468-1f3fb-200d-2708-fe0f.svg b/priv/static/emoji/1f468-1f3fb-200d-2708-fe0f.svg deleted file mode 100644 index fb5ef4b84..000000000 --- a/priv/static/emoji/1f468-1f3fb-200d-2708-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f468-1f3fb.svg b/priv/static/emoji/1f468-1f3fb.svg deleted file mode 100644 index 1ab8ea027..000000000 --- a/priv/static/emoji/1f468-1f3fb.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f468-1f3fc-200d-1f33e.svg b/priv/static/emoji/1f468-1f3fc-200d-1f33e.svg deleted file mode 100644 index a75bacf4e..000000000 --- a/priv/static/emoji/1f468-1f3fc-200d-1f33e.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f468-1f3fc-200d-1f373.svg b/priv/static/emoji/1f468-1f3fc-200d-1f373.svg deleted file mode 100644 index 1ec6e0282..000000000 --- a/priv/static/emoji/1f468-1f3fc-200d-1f373.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f468-1f3fc-200d-1f393.svg b/priv/static/emoji/1f468-1f3fc-200d-1f393.svg deleted file mode 100644 index 960ff27cc..000000000 --- a/priv/static/emoji/1f468-1f3fc-200d-1f393.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f468-1f3fc-200d-1f3a4.svg b/priv/static/emoji/1f468-1f3fc-200d-1f3a4.svg deleted file mode 100644 index e11379495..000000000 --- a/priv/static/emoji/1f468-1f3fc-200d-1f3a4.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f468-1f3fc-200d-1f3a8.svg b/priv/static/emoji/1f468-1f3fc-200d-1f3a8.svg deleted file mode 100644 index cce25b79b..000000000 --- a/priv/static/emoji/1f468-1f3fc-200d-1f3a8.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f468-1f3fc-200d-1f3eb.svg b/priv/static/emoji/1f468-1f3fc-200d-1f3eb.svg deleted file mode 100644 index fb6f4f4aa..000000000 --- a/priv/static/emoji/1f468-1f3fc-200d-1f3eb.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f468-1f3fc-200d-1f3ed.svg b/priv/static/emoji/1f468-1f3fc-200d-1f3ed.svg deleted file mode 100644 index 22ad9bfe1..000000000 --- a/priv/static/emoji/1f468-1f3fc-200d-1f3ed.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f468-1f3fc-200d-1f4bb.svg b/priv/static/emoji/1f468-1f3fc-200d-1f4bb.svg deleted file mode 100644 index 038a4fc4a..000000000 --- a/priv/static/emoji/1f468-1f3fc-200d-1f4bb.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f468-1f3fc-200d-1f4bc.svg b/priv/static/emoji/1f468-1f3fc-200d-1f4bc.svg deleted file mode 100644 index c07947ba5..000000000 --- a/priv/static/emoji/1f468-1f3fc-200d-1f4bc.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f468-1f3fc-200d-1f527.svg b/priv/static/emoji/1f468-1f3fc-200d-1f527.svg deleted file mode 100644 index d0bf573ec..000000000 --- a/priv/static/emoji/1f468-1f3fc-200d-1f527.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f468-1f3fc-200d-1f52c.svg b/priv/static/emoji/1f468-1f3fc-200d-1f52c.svg deleted file mode 100644 index 0cbcdf1f5..000000000 --- a/priv/static/emoji/1f468-1f3fc-200d-1f52c.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f468-1f3fc-200d-1f680.svg b/priv/static/emoji/1f468-1f3fc-200d-1f680.svg deleted file mode 100644 index b1567a688..000000000 --- a/priv/static/emoji/1f468-1f3fc-200d-1f680.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f468-1f3fc-200d-1f692.svg b/priv/static/emoji/1f468-1f3fc-200d-1f692.svg deleted file mode 100644 index ae7627197..000000000 --- a/priv/static/emoji/1f468-1f3fc-200d-1f692.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f468-1f3fc-200d-1f91d-200d-1f468-1f3fb.svg b/priv/static/emoji/1f468-1f3fc-200d-1f91d-200d-1f468-1f3fb.svg deleted file mode 100644 index 447fd47bf..000000000 --- a/priv/static/emoji/1f468-1f3fc-200d-1f91d-200d-1f468-1f3fb.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f468-1f3fc-200d-1f9af.svg b/priv/static/emoji/1f468-1f3fc-200d-1f9af.svg deleted file mode 100644 index 77eb17286..000000000 --- a/priv/static/emoji/1f468-1f3fc-200d-1f9af.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f468-1f3fc-200d-1f9b0.svg b/priv/static/emoji/1f468-1f3fc-200d-1f9b0.svg deleted file mode 100644 index 9582c89a2..000000000 --- a/priv/static/emoji/1f468-1f3fc-200d-1f9b0.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f468-1f3fc-200d-1f9b1.svg b/priv/static/emoji/1f468-1f3fc-200d-1f9b1.svg deleted file mode 100644 index bb09af97a..000000000 --- a/priv/static/emoji/1f468-1f3fc-200d-1f9b1.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f468-1f3fc-200d-1f9b2.svg b/priv/static/emoji/1f468-1f3fc-200d-1f9b2.svg deleted file mode 100644 index 59308642b..000000000 --- a/priv/static/emoji/1f468-1f3fc-200d-1f9b2.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f468-1f3fc-200d-1f9b3.svg b/priv/static/emoji/1f468-1f3fc-200d-1f9b3.svg deleted file mode 100644 index f4e0f36a6..000000000 --- a/priv/static/emoji/1f468-1f3fc-200d-1f9b3.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f468-1f3fc-200d-1f9bc.svg b/priv/static/emoji/1f468-1f3fc-200d-1f9bc.svg deleted file mode 100644 index 08bc53e6d..000000000 --- a/priv/static/emoji/1f468-1f3fc-200d-1f9bc.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f468-1f3fc-200d-1f9bd.svg b/priv/static/emoji/1f468-1f3fc-200d-1f9bd.svg deleted file mode 100644 index 6fbe0659c..000000000 --- a/priv/static/emoji/1f468-1f3fc-200d-1f9bd.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f468-1f3fc-200d-2695-fe0f.svg b/priv/static/emoji/1f468-1f3fc-200d-2695-fe0f.svg deleted file mode 100644 index e2f3fc6d5..000000000 --- a/priv/static/emoji/1f468-1f3fc-200d-2695-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f468-1f3fc-200d-2696-fe0f.svg b/priv/static/emoji/1f468-1f3fc-200d-2696-fe0f.svg deleted file mode 100644 index 214293e8b..000000000 --- a/priv/static/emoji/1f468-1f3fc-200d-2696-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f468-1f3fc-200d-2708-fe0f.svg b/priv/static/emoji/1f468-1f3fc-200d-2708-fe0f.svg deleted file mode 100644 index 0010ed13b..000000000 --- a/priv/static/emoji/1f468-1f3fc-200d-2708-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f468-1f3fc.svg b/priv/static/emoji/1f468-1f3fc.svg deleted file mode 100644 index 658aeabec..000000000 --- a/priv/static/emoji/1f468-1f3fc.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f468-1f3fd-200d-1f33e.svg b/priv/static/emoji/1f468-1f3fd-200d-1f33e.svg deleted file mode 100644 index 20b878f50..000000000 --- a/priv/static/emoji/1f468-1f3fd-200d-1f33e.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f468-1f3fd-200d-1f373.svg b/priv/static/emoji/1f468-1f3fd-200d-1f373.svg deleted file mode 100644 index 137e76032..000000000 --- a/priv/static/emoji/1f468-1f3fd-200d-1f373.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f468-1f3fd-200d-1f393.svg b/priv/static/emoji/1f468-1f3fd-200d-1f393.svg deleted file mode 100644 index 2383bc671..000000000 --- a/priv/static/emoji/1f468-1f3fd-200d-1f393.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f468-1f3fd-200d-1f3a4.svg b/priv/static/emoji/1f468-1f3fd-200d-1f3a4.svg deleted file mode 100644 index 69b4dbc2f..000000000 --- a/priv/static/emoji/1f468-1f3fd-200d-1f3a4.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f468-1f3fd-200d-1f3a8.svg b/priv/static/emoji/1f468-1f3fd-200d-1f3a8.svg deleted file mode 100644 index 115850f98..000000000 --- a/priv/static/emoji/1f468-1f3fd-200d-1f3a8.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f468-1f3fd-200d-1f3eb.svg b/priv/static/emoji/1f468-1f3fd-200d-1f3eb.svg deleted file mode 100644 index 5ee09e051..000000000 --- a/priv/static/emoji/1f468-1f3fd-200d-1f3eb.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f468-1f3fd-200d-1f3ed.svg b/priv/static/emoji/1f468-1f3fd-200d-1f3ed.svg deleted file mode 100644 index c78c5b792..000000000 --- a/priv/static/emoji/1f468-1f3fd-200d-1f3ed.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f468-1f3fd-200d-1f4bb.svg b/priv/static/emoji/1f468-1f3fd-200d-1f4bb.svg deleted file mode 100644 index e87322a81..000000000 --- a/priv/static/emoji/1f468-1f3fd-200d-1f4bb.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f468-1f3fd-200d-1f4bc.svg b/priv/static/emoji/1f468-1f3fd-200d-1f4bc.svg deleted file mode 100644 index 0aa43d9d9..000000000 --- a/priv/static/emoji/1f468-1f3fd-200d-1f4bc.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f468-1f3fd-200d-1f527.svg b/priv/static/emoji/1f468-1f3fd-200d-1f527.svg deleted file mode 100644 index a21d33dad..000000000 --- a/priv/static/emoji/1f468-1f3fd-200d-1f527.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f468-1f3fd-200d-1f52c.svg b/priv/static/emoji/1f468-1f3fd-200d-1f52c.svg deleted file mode 100644 index bb745edb5..000000000 --- a/priv/static/emoji/1f468-1f3fd-200d-1f52c.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f468-1f3fd-200d-1f680.svg b/priv/static/emoji/1f468-1f3fd-200d-1f680.svg deleted file mode 100644 index d6daa5d04..000000000 --- a/priv/static/emoji/1f468-1f3fd-200d-1f680.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f468-1f3fd-200d-1f692.svg b/priv/static/emoji/1f468-1f3fd-200d-1f692.svg deleted file mode 100644 index 42308ee3a..000000000 --- a/priv/static/emoji/1f468-1f3fd-200d-1f692.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f468-1f3fd-200d-1f91d-200d-1f468-1f3fb.svg b/priv/static/emoji/1f468-1f3fd-200d-1f91d-200d-1f468-1f3fb.svg deleted file mode 100644 index bb34ac855..000000000 --- a/priv/static/emoji/1f468-1f3fd-200d-1f91d-200d-1f468-1f3fb.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f468-1f3fd-200d-1f91d-200d-1f468-1f3fc.svg b/priv/static/emoji/1f468-1f3fd-200d-1f91d-200d-1f468-1f3fc.svg deleted file mode 100644 index 4d6b0dd69..000000000 --- a/priv/static/emoji/1f468-1f3fd-200d-1f91d-200d-1f468-1f3fc.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f468-1f3fd-200d-1f9af.svg b/priv/static/emoji/1f468-1f3fd-200d-1f9af.svg deleted file mode 100644 index f28f13f25..000000000 --- a/priv/static/emoji/1f468-1f3fd-200d-1f9af.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f468-1f3fd-200d-1f9b0.svg b/priv/static/emoji/1f468-1f3fd-200d-1f9b0.svg deleted file mode 100644 index a1d163677..000000000 --- a/priv/static/emoji/1f468-1f3fd-200d-1f9b0.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f468-1f3fd-200d-1f9b1.svg b/priv/static/emoji/1f468-1f3fd-200d-1f9b1.svg deleted file mode 100644 index a26b39bf8..000000000 --- a/priv/static/emoji/1f468-1f3fd-200d-1f9b1.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f468-1f3fd-200d-1f9b2.svg b/priv/static/emoji/1f468-1f3fd-200d-1f9b2.svg deleted file mode 100644 index 116085d21..000000000 --- a/priv/static/emoji/1f468-1f3fd-200d-1f9b2.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f468-1f3fd-200d-1f9b3.svg b/priv/static/emoji/1f468-1f3fd-200d-1f9b3.svg deleted file mode 100644 index 06cedb474..000000000 --- a/priv/static/emoji/1f468-1f3fd-200d-1f9b3.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f468-1f3fd-200d-1f9bc.svg b/priv/static/emoji/1f468-1f3fd-200d-1f9bc.svg deleted file mode 100644 index be45b6793..000000000 --- a/priv/static/emoji/1f468-1f3fd-200d-1f9bc.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f468-1f3fd-200d-1f9bd.svg b/priv/static/emoji/1f468-1f3fd-200d-1f9bd.svg deleted file mode 100644 index 64bf6233d..000000000 --- a/priv/static/emoji/1f468-1f3fd-200d-1f9bd.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f468-1f3fd-200d-2695-fe0f.svg b/priv/static/emoji/1f468-1f3fd-200d-2695-fe0f.svg deleted file mode 100644 index a1f496ccb..000000000 --- a/priv/static/emoji/1f468-1f3fd-200d-2695-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f468-1f3fd-200d-2696-fe0f.svg b/priv/static/emoji/1f468-1f3fd-200d-2696-fe0f.svg deleted file mode 100644 index 8ebc442a0..000000000 --- a/priv/static/emoji/1f468-1f3fd-200d-2696-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f468-1f3fd-200d-2708-fe0f.svg b/priv/static/emoji/1f468-1f3fd-200d-2708-fe0f.svg deleted file mode 100644 index dc52d245c..000000000 --- a/priv/static/emoji/1f468-1f3fd-200d-2708-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f468-1f3fd.svg b/priv/static/emoji/1f468-1f3fd.svg deleted file mode 100644 index 8c2abb3d2..000000000 --- a/priv/static/emoji/1f468-1f3fd.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f468-1f3fe-200d-1f33e.svg b/priv/static/emoji/1f468-1f3fe-200d-1f33e.svg deleted file mode 100644 index 48a941a6e..000000000 --- a/priv/static/emoji/1f468-1f3fe-200d-1f33e.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f468-1f3fe-200d-1f373.svg b/priv/static/emoji/1f468-1f3fe-200d-1f373.svg deleted file mode 100644 index 1f059617d..000000000 --- a/priv/static/emoji/1f468-1f3fe-200d-1f373.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f468-1f3fe-200d-1f393.svg b/priv/static/emoji/1f468-1f3fe-200d-1f393.svg deleted file mode 100644 index 0f2e92683..000000000 --- a/priv/static/emoji/1f468-1f3fe-200d-1f393.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f468-1f3fe-200d-1f3a4.svg b/priv/static/emoji/1f468-1f3fe-200d-1f3a4.svg deleted file mode 100644 index 3dcccacca..000000000 --- a/priv/static/emoji/1f468-1f3fe-200d-1f3a4.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f468-1f3fe-200d-1f3a8.svg b/priv/static/emoji/1f468-1f3fe-200d-1f3a8.svg deleted file mode 100644 index b6f69c8a0..000000000 --- a/priv/static/emoji/1f468-1f3fe-200d-1f3a8.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f468-1f3fe-200d-1f3eb.svg b/priv/static/emoji/1f468-1f3fe-200d-1f3eb.svg deleted file mode 100644 index 2487cb6dd..000000000 --- a/priv/static/emoji/1f468-1f3fe-200d-1f3eb.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f468-1f3fe-200d-1f3ed.svg b/priv/static/emoji/1f468-1f3fe-200d-1f3ed.svg deleted file mode 100644 index 8c20bdf2b..000000000 --- a/priv/static/emoji/1f468-1f3fe-200d-1f3ed.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f468-1f3fe-200d-1f4bb.svg b/priv/static/emoji/1f468-1f3fe-200d-1f4bb.svg deleted file mode 100644 index 705591d28..000000000 --- a/priv/static/emoji/1f468-1f3fe-200d-1f4bb.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f468-1f3fe-200d-1f4bc.svg b/priv/static/emoji/1f468-1f3fe-200d-1f4bc.svg deleted file mode 100644 index 65b919ad3..000000000 --- a/priv/static/emoji/1f468-1f3fe-200d-1f4bc.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f468-1f3fe-200d-1f527.svg b/priv/static/emoji/1f468-1f3fe-200d-1f527.svg deleted file mode 100644 index 6c40125bd..000000000 --- a/priv/static/emoji/1f468-1f3fe-200d-1f527.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f468-1f3fe-200d-1f52c.svg b/priv/static/emoji/1f468-1f3fe-200d-1f52c.svg deleted file mode 100644 index 7a84c52f2..000000000 --- a/priv/static/emoji/1f468-1f3fe-200d-1f52c.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f468-1f3fe-200d-1f680.svg b/priv/static/emoji/1f468-1f3fe-200d-1f680.svg deleted file mode 100644 index c0eefc664..000000000 --- a/priv/static/emoji/1f468-1f3fe-200d-1f680.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f468-1f3fe-200d-1f692.svg b/priv/static/emoji/1f468-1f3fe-200d-1f692.svg deleted file mode 100644 index 6fc176c84..000000000 --- a/priv/static/emoji/1f468-1f3fe-200d-1f692.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f468-1f3fe-200d-1f91d-200d-1f468-1f3fb.svg b/priv/static/emoji/1f468-1f3fe-200d-1f91d-200d-1f468-1f3fb.svg deleted file mode 100644 index 7c7ecbf2c..000000000 --- a/priv/static/emoji/1f468-1f3fe-200d-1f91d-200d-1f468-1f3fb.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f468-1f3fe-200d-1f91d-200d-1f468-1f3fc.svg b/priv/static/emoji/1f468-1f3fe-200d-1f91d-200d-1f468-1f3fc.svg deleted file mode 100644 index bbe83212d..000000000 --- a/priv/static/emoji/1f468-1f3fe-200d-1f91d-200d-1f468-1f3fc.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f468-1f3fe-200d-1f91d-200d-1f468-1f3fd.svg b/priv/static/emoji/1f468-1f3fe-200d-1f91d-200d-1f468-1f3fd.svg deleted file mode 100644 index 99a2b33d3..000000000 --- a/priv/static/emoji/1f468-1f3fe-200d-1f91d-200d-1f468-1f3fd.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f468-1f3fe-200d-1f9af.svg b/priv/static/emoji/1f468-1f3fe-200d-1f9af.svg deleted file mode 100644 index 56845736e..000000000 --- a/priv/static/emoji/1f468-1f3fe-200d-1f9af.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f468-1f3fe-200d-1f9b0.svg b/priv/static/emoji/1f468-1f3fe-200d-1f9b0.svg deleted file mode 100644 index 7d77bfd40..000000000 --- a/priv/static/emoji/1f468-1f3fe-200d-1f9b0.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f468-1f3fe-200d-1f9b1.svg b/priv/static/emoji/1f468-1f3fe-200d-1f9b1.svg deleted file mode 100644 index bc9c28d15..000000000 --- a/priv/static/emoji/1f468-1f3fe-200d-1f9b1.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f468-1f3fe-200d-1f9b2.svg b/priv/static/emoji/1f468-1f3fe-200d-1f9b2.svg deleted file mode 100644 index 4d4a86257..000000000 --- a/priv/static/emoji/1f468-1f3fe-200d-1f9b2.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f468-1f3fe-200d-1f9b3.svg b/priv/static/emoji/1f468-1f3fe-200d-1f9b3.svg deleted file mode 100644 index 28b937919..000000000 --- a/priv/static/emoji/1f468-1f3fe-200d-1f9b3.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f468-1f3fe-200d-1f9bc.svg b/priv/static/emoji/1f468-1f3fe-200d-1f9bc.svg deleted file mode 100644 index 0e2b8bed4..000000000 --- a/priv/static/emoji/1f468-1f3fe-200d-1f9bc.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f468-1f3fe-200d-1f9bd.svg b/priv/static/emoji/1f468-1f3fe-200d-1f9bd.svg deleted file mode 100644 index 655037085..000000000 --- a/priv/static/emoji/1f468-1f3fe-200d-1f9bd.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f468-1f3fe-200d-2695-fe0f.svg b/priv/static/emoji/1f468-1f3fe-200d-2695-fe0f.svg deleted file mode 100644 index 9d7e1137e..000000000 --- a/priv/static/emoji/1f468-1f3fe-200d-2695-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f468-1f3fe-200d-2696-fe0f.svg b/priv/static/emoji/1f468-1f3fe-200d-2696-fe0f.svg deleted file mode 100644 index 281274096..000000000 --- a/priv/static/emoji/1f468-1f3fe-200d-2696-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f468-1f3fe-200d-2708-fe0f.svg b/priv/static/emoji/1f468-1f3fe-200d-2708-fe0f.svg deleted file mode 100644 index 66c892e4f..000000000 --- a/priv/static/emoji/1f468-1f3fe-200d-2708-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f468-1f3fe.svg b/priv/static/emoji/1f468-1f3fe.svg deleted file mode 100644 index c09f43922..000000000 --- a/priv/static/emoji/1f468-1f3fe.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f468-1f3ff-200d-1f33e.svg b/priv/static/emoji/1f468-1f3ff-200d-1f33e.svg deleted file mode 100644 index 11210bf59..000000000 --- a/priv/static/emoji/1f468-1f3ff-200d-1f33e.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f468-1f3ff-200d-1f373.svg b/priv/static/emoji/1f468-1f3ff-200d-1f373.svg deleted file mode 100644 index 2ebe6f84c..000000000 --- a/priv/static/emoji/1f468-1f3ff-200d-1f373.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f468-1f3ff-200d-1f393.svg b/priv/static/emoji/1f468-1f3ff-200d-1f393.svg deleted file mode 100644 index e746f4c52..000000000 --- a/priv/static/emoji/1f468-1f3ff-200d-1f393.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f468-1f3ff-200d-1f3a4.svg b/priv/static/emoji/1f468-1f3ff-200d-1f3a4.svg deleted file mode 100644 index 505ac44fd..000000000 --- a/priv/static/emoji/1f468-1f3ff-200d-1f3a4.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f468-1f3ff-200d-1f3a8.svg b/priv/static/emoji/1f468-1f3ff-200d-1f3a8.svg deleted file mode 100644 index e0c3b4dc9..000000000 --- a/priv/static/emoji/1f468-1f3ff-200d-1f3a8.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f468-1f3ff-200d-1f3eb.svg b/priv/static/emoji/1f468-1f3ff-200d-1f3eb.svg deleted file mode 100644 index 658ef8241..000000000 --- a/priv/static/emoji/1f468-1f3ff-200d-1f3eb.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f468-1f3ff-200d-1f3ed.svg b/priv/static/emoji/1f468-1f3ff-200d-1f3ed.svg deleted file mode 100644 index 8635665e9..000000000 --- a/priv/static/emoji/1f468-1f3ff-200d-1f3ed.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f468-1f3ff-200d-1f4bb.svg b/priv/static/emoji/1f468-1f3ff-200d-1f4bb.svg deleted file mode 100644 index bd637ca06..000000000 --- a/priv/static/emoji/1f468-1f3ff-200d-1f4bb.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f468-1f3ff-200d-1f4bc.svg b/priv/static/emoji/1f468-1f3ff-200d-1f4bc.svg deleted file mode 100644 index b3596ae14..000000000 --- a/priv/static/emoji/1f468-1f3ff-200d-1f4bc.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f468-1f3ff-200d-1f527.svg b/priv/static/emoji/1f468-1f3ff-200d-1f527.svg deleted file mode 100644 index fac206ffc..000000000 --- a/priv/static/emoji/1f468-1f3ff-200d-1f527.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f468-1f3ff-200d-1f52c.svg b/priv/static/emoji/1f468-1f3ff-200d-1f52c.svg deleted file mode 100644 index b7367ad18..000000000 --- a/priv/static/emoji/1f468-1f3ff-200d-1f52c.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f468-1f3ff-200d-1f680.svg b/priv/static/emoji/1f468-1f3ff-200d-1f680.svg deleted file mode 100644 index 54a4f62f5..000000000 --- a/priv/static/emoji/1f468-1f3ff-200d-1f680.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f468-1f3ff-200d-1f692.svg b/priv/static/emoji/1f468-1f3ff-200d-1f692.svg deleted file mode 100644 index 1e0472d5b..000000000 --- a/priv/static/emoji/1f468-1f3ff-200d-1f692.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f468-1f3ff-200d-1f91d-200d-1f468-1f3fb.svg b/priv/static/emoji/1f468-1f3ff-200d-1f91d-200d-1f468-1f3fb.svg deleted file mode 100644 index b2383477f..000000000 --- a/priv/static/emoji/1f468-1f3ff-200d-1f91d-200d-1f468-1f3fb.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f468-1f3ff-200d-1f91d-200d-1f468-1f3fc.svg b/priv/static/emoji/1f468-1f3ff-200d-1f91d-200d-1f468-1f3fc.svg deleted file mode 100644 index a7f8308d1..000000000 --- a/priv/static/emoji/1f468-1f3ff-200d-1f91d-200d-1f468-1f3fc.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f468-1f3ff-200d-1f91d-200d-1f468-1f3fd.svg b/priv/static/emoji/1f468-1f3ff-200d-1f91d-200d-1f468-1f3fd.svg deleted file mode 100644 index e9fc548f6..000000000 --- a/priv/static/emoji/1f468-1f3ff-200d-1f91d-200d-1f468-1f3fd.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f468-1f3ff-200d-1f91d-200d-1f468-1f3fe.svg b/priv/static/emoji/1f468-1f3ff-200d-1f91d-200d-1f468-1f3fe.svg deleted file mode 100644 index f55ff86f9..000000000 --- a/priv/static/emoji/1f468-1f3ff-200d-1f91d-200d-1f468-1f3fe.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f468-1f3ff-200d-1f9af.svg b/priv/static/emoji/1f468-1f3ff-200d-1f9af.svg deleted file mode 100644 index 513caf1b3..000000000 --- a/priv/static/emoji/1f468-1f3ff-200d-1f9af.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f468-1f3ff-200d-1f9b0.svg b/priv/static/emoji/1f468-1f3ff-200d-1f9b0.svg deleted file mode 100644 index 0a5b536ba..000000000 --- a/priv/static/emoji/1f468-1f3ff-200d-1f9b0.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f468-1f3ff-200d-1f9b1.svg b/priv/static/emoji/1f468-1f3ff-200d-1f9b1.svg deleted file mode 100644 index 66c33aeae..000000000 --- a/priv/static/emoji/1f468-1f3ff-200d-1f9b1.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f468-1f3ff-200d-1f9b2.svg b/priv/static/emoji/1f468-1f3ff-200d-1f9b2.svg deleted file mode 100644 index 7ab86cd78..000000000 --- a/priv/static/emoji/1f468-1f3ff-200d-1f9b2.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f468-1f3ff-200d-1f9b3.svg b/priv/static/emoji/1f468-1f3ff-200d-1f9b3.svg deleted file mode 100644 index 370b67336..000000000 --- a/priv/static/emoji/1f468-1f3ff-200d-1f9b3.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f468-1f3ff-200d-1f9bc.svg b/priv/static/emoji/1f468-1f3ff-200d-1f9bc.svg deleted file mode 100644 index 99ad94b9f..000000000 --- a/priv/static/emoji/1f468-1f3ff-200d-1f9bc.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f468-1f3ff-200d-1f9bd.svg b/priv/static/emoji/1f468-1f3ff-200d-1f9bd.svg deleted file mode 100644 index 4f6eba077..000000000 --- a/priv/static/emoji/1f468-1f3ff-200d-1f9bd.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f468-1f3ff-200d-2695-fe0f.svg b/priv/static/emoji/1f468-1f3ff-200d-2695-fe0f.svg deleted file mode 100644 index aa3fd0ad1..000000000 --- a/priv/static/emoji/1f468-1f3ff-200d-2695-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f468-1f3ff-200d-2696-fe0f.svg b/priv/static/emoji/1f468-1f3ff-200d-2696-fe0f.svg deleted file mode 100644 index 1aaa0a1e3..000000000 --- a/priv/static/emoji/1f468-1f3ff-200d-2696-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f468-1f3ff-200d-2708-fe0f.svg b/priv/static/emoji/1f468-1f3ff-200d-2708-fe0f.svg deleted file mode 100644 index dce186ed3..000000000 --- a/priv/static/emoji/1f468-1f3ff-200d-2708-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f468-1f3ff.svg b/priv/static/emoji/1f468-1f3ff.svg deleted file mode 100644 index 96c5b170b..000000000 --- a/priv/static/emoji/1f468-1f3ff.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f468-200d-1f33e.svg b/priv/static/emoji/1f468-200d-1f33e.svg deleted file mode 100644 index 0fcee4fa1..000000000 --- a/priv/static/emoji/1f468-200d-1f33e.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f468-200d-1f373.svg b/priv/static/emoji/1f468-200d-1f373.svg deleted file mode 100644 index 9344e17dd..000000000 --- a/priv/static/emoji/1f468-200d-1f373.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f468-200d-1f393.svg b/priv/static/emoji/1f468-200d-1f393.svg deleted file mode 100644 index ab35970f5..000000000 --- a/priv/static/emoji/1f468-200d-1f393.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f468-200d-1f3a4.svg b/priv/static/emoji/1f468-200d-1f3a4.svg deleted file mode 100644 index 0462a6b2a..000000000 --- a/priv/static/emoji/1f468-200d-1f3a4.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f468-200d-1f3a8.svg b/priv/static/emoji/1f468-200d-1f3a8.svg deleted file mode 100644 index eb21722a3..000000000 --- a/priv/static/emoji/1f468-200d-1f3a8.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f468-200d-1f3eb.svg b/priv/static/emoji/1f468-200d-1f3eb.svg deleted file mode 100644 index 95963cfab..000000000 --- a/priv/static/emoji/1f468-200d-1f3eb.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f468-200d-1f3ed.svg b/priv/static/emoji/1f468-200d-1f3ed.svg deleted file mode 100644 index 6fc1eae4c..000000000 --- a/priv/static/emoji/1f468-200d-1f3ed.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f468-200d-1f466-200d-1f466.svg b/priv/static/emoji/1f468-200d-1f466-200d-1f466.svg deleted file mode 100644 index 89b3ad3d1..000000000 --- a/priv/static/emoji/1f468-200d-1f466-200d-1f466.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f468-200d-1f466.svg b/priv/static/emoji/1f468-200d-1f466.svg deleted file mode 100644 index 26c8de973..000000000 --- a/priv/static/emoji/1f468-200d-1f466.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f468-200d-1f467-200d-1f466.svg b/priv/static/emoji/1f468-200d-1f467-200d-1f466.svg deleted file mode 100644 index a2008f1c6..000000000 --- a/priv/static/emoji/1f468-200d-1f467-200d-1f466.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f468-200d-1f467-200d-1f467.svg b/priv/static/emoji/1f468-200d-1f467-200d-1f467.svg deleted file mode 100644 index acb7b7df4..000000000 --- a/priv/static/emoji/1f468-200d-1f467-200d-1f467.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f468-200d-1f467.svg b/priv/static/emoji/1f468-200d-1f467.svg deleted file mode 100644 index 4cda75140..000000000 --- a/priv/static/emoji/1f468-200d-1f467.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f468-200d-1f468-200d-1f466-200d-1f466.svg b/priv/static/emoji/1f468-200d-1f468-200d-1f466-200d-1f466.svg deleted file mode 100644 index efa5db97f..000000000 --- a/priv/static/emoji/1f468-200d-1f468-200d-1f466-200d-1f466.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f468-200d-1f468-200d-1f466.svg b/priv/static/emoji/1f468-200d-1f468-200d-1f466.svg deleted file mode 100644 index d3a5877d1..000000000 --- a/priv/static/emoji/1f468-200d-1f468-200d-1f466.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f468-200d-1f468-200d-1f467-200d-1f466.svg b/priv/static/emoji/1f468-200d-1f468-200d-1f467-200d-1f466.svg deleted file mode 100644 index 4d12c1a3c..000000000 --- a/priv/static/emoji/1f468-200d-1f468-200d-1f467-200d-1f466.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f468-200d-1f468-200d-1f467-200d-1f467.svg b/priv/static/emoji/1f468-200d-1f468-200d-1f467-200d-1f467.svg deleted file mode 100644 index a694e4295..000000000 --- a/priv/static/emoji/1f468-200d-1f468-200d-1f467-200d-1f467.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f468-200d-1f468-200d-1f467.svg b/priv/static/emoji/1f468-200d-1f468-200d-1f467.svg deleted file mode 100644 index 48c4e7312..000000000 --- a/priv/static/emoji/1f468-200d-1f468-200d-1f467.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f468-200d-1f469-200d-1f466-200d-1f466.svg b/priv/static/emoji/1f468-200d-1f469-200d-1f466-200d-1f466.svg deleted file mode 100644 index 9c3f3da35..000000000 --- a/priv/static/emoji/1f468-200d-1f469-200d-1f466-200d-1f466.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f468-200d-1f469-200d-1f466.svg b/priv/static/emoji/1f468-200d-1f469-200d-1f466.svg deleted file mode 100644 index 8f5fad9f5..000000000 --- a/priv/static/emoji/1f468-200d-1f469-200d-1f466.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f468-200d-1f469-200d-1f467-200d-1f466.svg b/priv/static/emoji/1f468-200d-1f469-200d-1f467-200d-1f466.svg deleted file mode 100644 index 885680769..000000000 --- a/priv/static/emoji/1f468-200d-1f469-200d-1f467-200d-1f466.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f468-200d-1f469-200d-1f467-200d-1f467.svg b/priv/static/emoji/1f468-200d-1f469-200d-1f467-200d-1f467.svg deleted file mode 100644 index 58111c6b0..000000000 --- a/priv/static/emoji/1f468-200d-1f469-200d-1f467-200d-1f467.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f468-200d-1f469-200d-1f467.svg b/priv/static/emoji/1f468-200d-1f469-200d-1f467.svg deleted file mode 100644 index 22a662f0f..000000000 --- a/priv/static/emoji/1f468-200d-1f469-200d-1f467.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f468-200d-1f4bb.svg b/priv/static/emoji/1f468-200d-1f4bb.svg deleted file mode 100644 index e37b0499c..000000000 --- a/priv/static/emoji/1f468-200d-1f4bb.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f468-200d-1f4bc.svg b/priv/static/emoji/1f468-200d-1f4bc.svg deleted file mode 100644 index a3f56fea1..000000000 --- a/priv/static/emoji/1f468-200d-1f4bc.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f468-200d-1f527.svg b/priv/static/emoji/1f468-200d-1f527.svg deleted file mode 100644 index 6bc505eb3..000000000 --- a/priv/static/emoji/1f468-200d-1f527.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f468-200d-1f52c.svg b/priv/static/emoji/1f468-200d-1f52c.svg deleted file mode 100644 index 02a9e1217..000000000 --- a/priv/static/emoji/1f468-200d-1f52c.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f468-200d-1f680.svg b/priv/static/emoji/1f468-200d-1f680.svg deleted file mode 100644 index dd97a2099..000000000 --- a/priv/static/emoji/1f468-200d-1f680.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f468-200d-1f692.svg b/priv/static/emoji/1f468-200d-1f692.svg deleted file mode 100644 index cfdef73d5..000000000 --- a/priv/static/emoji/1f468-200d-1f692.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f468-200d-1f9af.svg b/priv/static/emoji/1f468-200d-1f9af.svg deleted file mode 100644 index 321bc0d99..000000000 --- a/priv/static/emoji/1f468-200d-1f9af.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f468-200d-1f9b0.svg b/priv/static/emoji/1f468-200d-1f9b0.svg deleted file mode 100644 index 1b633b3ce..000000000 --- a/priv/static/emoji/1f468-200d-1f9b0.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f468-200d-1f9b1.svg b/priv/static/emoji/1f468-200d-1f9b1.svg deleted file mode 100644 index 6ac574341..000000000 --- a/priv/static/emoji/1f468-200d-1f9b1.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f468-200d-1f9b2.svg b/priv/static/emoji/1f468-200d-1f9b2.svg deleted file mode 100644 index ea49779a8..000000000 --- a/priv/static/emoji/1f468-200d-1f9b2.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f468-200d-1f9b3.svg b/priv/static/emoji/1f468-200d-1f9b3.svg deleted file mode 100644 index a14e3fd44..000000000 --- a/priv/static/emoji/1f468-200d-1f9b3.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f468-200d-1f9bc.svg b/priv/static/emoji/1f468-200d-1f9bc.svg deleted file mode 100644 index 7d37c87f6..000000000 --- a/priv/static/emoji/1f468-200d-1f9bc.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f468-200d-1f9bd.svg b/priv/static/emoji/1f468-200d-1f9bd.svg deleted file mode 100644 index b8d2858f9..000000000 --- a/priv/static/emoji/1f468-200d-1f9bd.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f468-200d-2695-fe0f.svg b/priv/static/emoji/1f468-200d-2695-fe0f.svg deleted file mode 100644 index 627461f9c..000000000 --- a/priv/static/emoji/1f468-200d-2695-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f468-200d-2696-fe0f.svg b/priv/static/emoji/1f468-200d-2696-fe0f.svg deleted file mode 100644 index 759d30781..000000000 --- a/priv/static/emoji/1f468-200d-2696-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f468-200d-2708-fe0f.svg b/priv/static/emoji/1f468-200d-2708-fe0f.svg deleted file mode 100644 index b5ed35af2..000000000 --- a/priv/static/emoji/1f468-200d-2708-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f468-200d-2764-fe0f-200d-1f468.svg b/priv/static/emoji/1f468-200d-2764-fe0f-200d-1f468.svg deleted file mode 100644 index cace24fc3..000000000 --- a/priv/static/emoji/1f468-200d-2764-fe0f-200d-1f468.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f468-200d-2764-fe0f-200d-1f48b-200d-1f468.svg b/priv/static/emoji/1f468-200d-2764-fe0f-200d-1f48b-200d-1f468.svg deleted file mode 100644 index 41dbd9681..000000000 --- a/priv/static/emoji/1f468-200d-2764-fe0f-200d-1f48b-200d-1f468.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f468.svg b/priv/static/emoji/1f468.svg deleted file mode 100644 index 98b73b587..000000000 --- a/priv/static/emoji/1f468.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f469-1f3fb-200d-1f33e.svg b/priv/static/emoji/1f469-1f3fb-200d-1f33e.svg deleted file mode 100644 index 5f246340d..000000000 --- a/priv/static/emoji/1f469-1f3fb-200d-1f33e.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f469-1f3fb-200d-1f373.svg b/priv/static/emoji/1f469-1f3fb-200d-1f373.svg deleted file mode 100644 index 6ed4b51fc..000000000 --- a/priv/static/emoji/1f469-1f3fb-200d-1f373.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f469-1f3fb-200d-1f393.svg b/priv/static/emoji/1f469-1f3fb-200d-1f393.svg deleted file mode 100644 index ed106adcc..000000000 --- a/priv/static/emoji/1f469-1f3fb-200d-1f393.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f469-1f3fb-200d-1f3a4.svg b/priv/static/emoji/1f469-1f3fb-200d-1f3a4.svg deleted file mode 100644 index e0403c5db..000000000 --- a/priv/static/emoji/1f469-1f3fb-200d-1f3a4.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f469-1f3fb-200d-1f3a8.svg b/priv/static/emoji/1f469-1f3fb-200d-1f3a8.svg deleted file mode 100644 index 0caf07166..000000000 --- a/priv/static/emoji/1f469-1f3fb-200d-1f3a8.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f469-1f3fb-200d-1f3eb.svg b/priv/static/emoji/1f469-1f3fb-200d-1f3eb.svg deleted file mode 100644 index 819bf36f4..000000000 --- a/priv/static/emoji/1f469-1f3fb-200d-1f3eb.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f469-1f3fb-200d-1f3ed.svg b/priv/static/emoji/1f469-1f3fb-200d-1f3ed.svg deleted file mode 100644 index 0914b045e..000000000 --- a/priv/static/emoji/1f469-1f3fb-200d-1f3ed.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f469-1f3fb-200d-1f4bb.svg b/priv/static/emoji/1f469-1f3fb-200d-1f4bb.svg deleted file mode 100644 index 3ab61d8fa..000000000 --- a/priv/static/emoji/1f469-1f3fb-200d-1f4bb.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f469-1f3fb-200d-1f4bc.svg b/priv/static/emoji/1f469-1f3fb-200d-1f4bc.svg deleted file mode 100644 index ebd3e39df..000000000 --- a/priv/static/emoji/1f469-1f3fb-200d-1f4bc.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f469-1f3fb-200d-1f527.svg b/priv/static/emoji/1f469-1f3fb-200d-1f527.svg deleted file mode 100644 index dd5eeb487..000000000 --- a/priv/static/emoji/1f469-1f3fb-200d-1f527.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f469-1f3fb-200d-1f52c.svg b/priv/static/emoji/1f469-1f3fb-200d-1f52c.svg deleted file mode 100644 index a2a080b0f..000000000 --- a/priv/static/emoji/1f469-1f3fb-200d-1f52c.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f469-1f3fb-200d-1f680.svg b/priv/static/emoji/1f469-1f3fb-200d-1f680.svg deleted file mode 100644 index b4e5a081c..000000000 --- a/priv/static/emoji/1f469-1f3fb-200d-1f680.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f469-1f3fb-200d-1f692.svg b/priv/static/emoji/1f469-1f3fb-200d-1f692.svg deleted file mode 100644 index 98bf83546..000000000 --- a/priv/static/emoji/1f469-1f3fb-200d-1f692.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f469-1f3fb-200d-1f91d-200d-1f468-1f3fc.svg b/priv/static/emoji/1f469-1f3fb-200d-1f91d-200d-1f468-1f3fc.svg deleted file mode 100644 index c0a072e2f..000000000 --- a/priv/static/emoji/1f469-1f3fb-200d-1f91d-200d-1f468-1f3fc.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f469-1f3fb-200d-1f91d-200d-1f468-1f3fd.svg b/priv/static/emoji/1f469-1f3fb-200d-1f91d-200d-1f468-1f3fd.svg deleted file mode 100644 index fa124a7f9..000000000 --- a/priv/static/emoji/1f469-1f3fb-200d-1f91d-200d-1f468-1f3fd.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f469-1f3fb-200d-1f91d-200d-1f468-1f3fe.svg b/priv/static/emoji/1f469-1f3fb-200d-1f91d-200d-1f468-1f3fe.svg deleted file mode 100644 index 97533c42d..000000000 --- a/priv/static/emoji/1f469-1f3fb-200d-1f91d-200d-1f468-1f3fe.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f469-1f3fb-200d-1f91d-200d-1f468-1f3ff.svg b/priv/static/emoji/1f469-1f3fb-200d-1f91d-200d-1f468-1f3ff.svg deleted file mode 100644 index 8d03f30f0..000000000 --- a/priv/static/emoji/1f469-1f3fb-200d-1f91d-200d-1f468-1f3ff.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f469-1f3fb-200d-1f9af.svg b/priv/static/emoji/1f469-1f3fb-200d-1f9af.svg deleted file mode 100644 index 3c5812183..000000000 --- a/priv/static/emoji/1f469-1f3fb-200d-1f9af.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f469-1f3fb-200d-1f9b0.svg b/priv/static/emoji/1f469-1f3fb-200d-1f9b0.svg deleted file mode 100644 index 94c85fd14..000000000 --- a/priv/static/emoji/1f469-1f3fb-200d-1f9b0.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f469-1f3fb-200d-1f9b1.svg b/priv/static/emoji/1f469-1f3fb-200d-1f9b1.svg deleted file mode 100644 index a1a2ba77e..000000000 --- a/priv/static/emoji/1f469-1f3fb-200d-1f9b1.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f469-1f3fb-200d-1f9b2.svg b/priv/static/emoji/1f469-1f3fb-200d-1f9b2.svg deleted file mode 100644 index 258c5149f..000000000 --- a/priv/static/emoji/1f469-1f3fb-200d-1f9b2.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f469-1f3fb-200d-1f9b3.svg b/priv/static/emoji/1f469-1f3fb-200d-1f9b3.svg deleted file mode 100644 index 98fbde9fd..000000000 --- a/priv/static/emoji/1f469-1f3fb-200d-1f9b3.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f469-1f3fb-200d-1f9bc.svg b/priv/static/emoji/1f469-1f3fb-200d-1f9bc.svg deleted file mode 100644 index 2f240ea5f..000000000 --- a/priv/static/emoji/1f469-1f3fb-200d-1f9bc.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f469-1f3fb-200d-1f9bd.svg b/priv/static/emoji/1f469-1f3fb-200d-1f9bd.svg deleted file mode 100644 index 68f49e076..000000000 --- a/priv/static/emoji/1f469-1f3fb-200d-1f9bd.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f469-1f3fb-200d-2695-fe0f.svg b/priv/static/emoji/1f469-1f3fb-200d-2695-fe0f.svg deleted file mode 100644 index e22a0bdf1..000000000 --- a/priv/static/emoji/1f469-1f3fb-200d-2695-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f469-1f3fb-200d-2696-fe0f.svg b/priv/static/emoji/1f469-1f3fb-200d-2696-fe0f.svg deleted file mode 100644 index 574cad0fe..000000000 --- a/priv/static/emoji/1f469-1f3fb-200d-2696-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f469-1f3fb-200d-2708-fe0f.svg b/priv/static/emoji/1f469-1f3fb-200d-2708-fe0f.svg deleted file mode 100644 index 5cd08b324..000000000 --- a/priv/static/emoji/1f469-1f3fb-200d-2708-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f469-1f3fb.svg b/priv/static/emoji/1f469-1f3fb.svg deleted file mode 100644 index b44725bbf..000000000 --- a/priv/static/emoji/1f469-1f3fb.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f469-1f3fc-200d-1f33e.svg b/priv/static/emoji/1f469-1f3fc-200d-1f33e.svg deleted file mode 100644 index 7a30a9823..000000000 --- a/priv/static/emoji/1f469-1f3fc-200d-1f33e.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f469-1f3fc-200d-1f373.svg b/priv/static/emoji/1f469-1f3fc-200d-1f373.svg deleted file mode 100644 index 4ef7a7ff8..000000000 --- a/priv/static/emoji/1f469-1f3fc-200d-1f373.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f469-1f3fc-200d-1f393.svg b/priv/static/emoji/1f469-1f3fc-200d-1f393.svg deleted file mode 100644 index d045ed82a..000000000 --- a/priv/static/emoji/1f469-1f3fc-200d-1f393.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f469-1f3fc-200d-1f3a4.svg b/priv/static/emoji/1f469-1f3fc-200d-1f3a4.svg deleted file mode 100644 index 210cd6c49..000000000 --- a/priv/static/emoji/1f469-1f3fc-200d-1f3a4.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f469-1f3fc-200d-1f3a8.svg b/priv/static/emoji/1f469-1f3fc-200d-1f3a8.svg deleted file mode 100644 index 7d83bc06e..000000000 --- a/priv/static/emoji/1f469-1f3fc-200d-1f3a8.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f469-1f3fc-200d-1f3eb.svg b/priv/static/emoji/1f469-1f3fc-200d-1f3eb.svg deleted file mode 100644 index 2ddfeb1e7..000000000 --- a/priv/static/emoji/1f469-1f3fc-200d-1f3eb.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f469-1f3fc-200d-1f3ed.svg b/priv/static/emoji/1f469-1f3fc-200d-1f3ed.svg deleted file mode 100644 index ab815ee2c..000000000 --- a/priv/static/emoji/1f469-1f3fc-200d-1f3ed.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f469-1f3fc-200d-1f4bb.svg b/priv/static/emoji/1f469-1f3fc-200d-1f4bb.svg deleted file mode 100644 index ab3600e60..000000000 --- a/priv/static/emoji/1f469-1f3fc-200d-1f4bb.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f469-1f3fc-200d-1f4bc.svg b/priv/static/emoji/1f469-1f3fc-200d-1f4bc.svg deleted file mode 100644 index b117aa664..000000000 --- a/priv/static/emoji/1f469-1f3fc-200d-1f4bc.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f469-1f3fc-200d-1f527.svg b/priv/static/emoji/1f469-1f3fc-200d-1f527.svg deleted file mode 100644 index 5f2b878a1..000000000 --- a/priv/static/emoji/1f469-1f3fc-200d-1f527.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f469-1f3fc-200d-1f52c.svg b/priv/static/emoji/1f469-1f3fc-200d-1f52c.svg deleted file mode 100644 index dfb93eec9..000000000 --- a/priv/static/emoji/1f469-1f3fc-200d-1f52c.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f469-1f3fc-200d-1f680.svg b/priv/static/emoji/1f469-1f3fc-200d-1f680.svg deleted file mode 100644 index 39635e275..000000000 --- a/priv/static/emoji/1f469-1f3fc-200d-1f680.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f469-1f3fc-200d-1f692.svg b/priv/static/emoji/1f469-1f3fc-200d-1f692.svg deleted file mode 100644 index 676cf60ac..000000000 --- a/priv/static/emoji/1f469-1f3fc-200d-1f692.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f469-1f3fc-200d-1f91d-200d-1f468-1f3fb.svg b/priv/static/emoji/1f469-1f3fc-200d-1f91d-200d-1f468-1f3fb.svg deleted file mode 100644 index 53e58734c..000000000 --- a/priv/static/emoji/1f469-1f3fc-200d-1f91d-200d-1f468-1f3fb.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f469-1f3fc-200d-1f91d-200d-1f468-1f3fd.svg b/priv/static/emoji/1f469-1f3fc-200d-1f91d-200d-1f468-1f3fd.svg deleted file mode 100644 index 16f795307..000000000 --- a/priv/static/emoji/1f469-1f3fc-200d-1f91d-200d-1f468-1f3fd.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f469-1f3fc-200d-1f91d-200d-1f468-1f3fe.svg b/priv/static/emoji/1f469-1f3fc-200d-1f91d-200d-1f468-1f3fe.svg deleted file mode 100644 index 47dd9158e..000000000 --- a/priv/static/emoji/1f469-1f3fc-200d-1f91d-200d-1f468-1f3fe.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f469-1f3fc-200d-1f91d-200d-1f468-1f3ff.svg b/priv/static/emoji/1f469-1f3fc-200d-1f91d-200d-1f468-1f3ff.svg deleted file mode 100644 index 2cdda31da..000000000 --- a/priv/static/emoji/1f469-1f3fc-200d-1f91d-200d-1f468-1f3ff.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f469-1f3fc-200d-1f91d-200d-1f469-1f3fb.svg b/priv/static/emoji/1f469-1f3fc-200d-1f91d-200d-1f469-1f3fb.svg deleted file mode 100644 index 0939b16d8..000000000 --- a/priv/static/emoji/1f469-1f3fc-200d-1f91d-200d-1f469-1f3fb.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f469-1f3fc-200d-1f9af.svg b/priv/static/emoji/1f469-1f3fc-200d-1f9af.svg deleted file mode 100644 index ad8806b3f..000000000 --- a/priv/static/emoji/1f469-1f3fc-200d-1f9af.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f469-1f3fc-200d-1f9b0.svg b/priv/static/emoji/1f469-1f3fc-200d-1f9b0.svg deleted file mode 100644 index 179dedb80..000000000 --- a/priv/static/emoji/1f469-1f3fc-200d-1f9b0.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f469-1f3fc-200d-1f9b1.svg b/priv/static/emoji/1f469-1f3fc-200d-1f9b1.svg deleted file mode 100644 index 4594647a2..000000000 --- a/priv/static/emoji/1f469-1f3fc-200d-1f9b1.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f469-1f3fc-200d-1f9b2.svg b/priv/static/emoji/1f469-1f3fc-200d-1f9b2.svg deleted file mode 100644 index 8da4ee528..000000000 --- a/priv/static/emoji/1f469-1f3fc-200d-1f9b2.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f469-1f3fc-200d-1f9b3.svg b/priv/static/emoji/1f469-1f3fc-200d-1f9b3.svg deleted file mode 100644 index 99ffa0d03..000000000 --- a/priv/static/emoji/1f469-1f3fc-200d-1f9b3.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f469-1f3fc-200d-1f9bc.svg b/priv/static/emoji/1f469-1f3fc-200d-1f9bc.svg deleted file mode 100644 index ffea3a289..000000000 --- a/priv/static/emoji/1f469-1f3fc-200d-1f9bc.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f469-1f3fc-200d-1f9bd.svg b/priv/static/emoji/1f469-1f3fc-200d-1f9bd.svg deleted file mode 100644 index 39843afd3..000000000 --- a/priv/static/emoji/1f469-1f3fc-200d-1f9bd.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f469-1f3fc-200d-2695-fe0f.svg b/priv/static/emoji/1f469-1f3fc-200d-2695-fe0f.svg deleted file mode 100644 index 0bb189f47..000000000 --- a/priv/static/emoji/1f469-1f3fc-200d-2695-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f469-1f3fc-200d-2696-fe0f.svg b/priv/static/emoji/1f469-1f3fc-200d-2696-fe0f.svg deleted file mode 100644 index 44cbc897c..000000000 --- a/priv/static/emoji/1f469-1f3fc-200d-2696-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f469-1f3fc-200d-2708-fe0f.svg b/priv/static/emoji/1f469-1f3fc-200d-2708-fe0f.svg deleted file mode 100644 index 3fc9536fd..000000000 --- a/priv/static/emoji/1f469-1f3fc-200d-2708-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f469-1f3fc.svg b/priv/static/emoji/1f469-1f3fc.svg deleted file mode 100644 index 7c3ba6335..000000000 --- a/priv/static/emoji/1f469-1f3fc.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f469-1f3fd-200d-1f33e.svg b/priv/static/emoji/1f469-1f3fd-200d-1f33e.svg deleted file mode 100644 index 841df90a9..000000000 --- a/priv/static/emoji/1f469-1f3fd-200d-1f33e.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f469-1f3fd-200d-1f373.svg b/priv/static/emoji/1f469-1f3fd-200d-1f373.svg deleted file mode 100644 index c76e15f1b..000000000 --- a/priv/static/emoji/1f469-1f3fd-200d-1f373.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f469-1f3fd-200d-1f393.svg b/priv/static/emoji/1f469-1f3fd-200d-1f393.svg deleted file mode 100644 index eead9a2fb..000000000 --- a/priv/static/emoji/1f469-1f3fd-200d-1f393.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f469-1f3fd-200d-1f3a4.svg b/priv/static/emoji/1f469-1f3fd-200d-1f3a4.svg deleted file mode 100644 index 5e589ad93..000000000 --- a/priv/static/emoji/1f469-1f3fd-200d-1f3a4.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f469-1f3fd-200d-1f3a8.svg b/priv/static/emoji/1f469-1f3fd-200d-1f3a8.svg deleted file mode 100644 index e97e8d9f6..000000000 --- a/priv/static/emoji/1f469-1f3fd-200d-1f3a8.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f469-1f3fd-200d-1f3eb.svg b/priv/static/emoji/1f469-1f3fd-200d-1f3eb.svg deleted file mode 100644 index 2d4472212..000000000 --- a/priv/static/emoji/1f469-1f3fd-200d-1f3eb.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f469-1f3fd-200d-1f3ed.svg b/priv/static/emoji/1f469-1f3fd-200d-1f3ed.svg deleted file mode 100644 index dd6e627f9..000000000 --- a/priv/static/emoji/1f469-1f3fd-200d-1f3ed.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f469-1f3fd-200d-1f4bb.svg b/priv/static/emoji/1f469-1f3fd-200d-1f4bb.svg deleted file mode 100644 index c036ad1e7..000000000 --- a/priv/static/emoji/1f469-1f3fd-200d-1f4bb.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f469-1f3fd-200d-1f4bc.svg b/priv/static/emoji/1f469-1f3fd-200d-1f4bc.svg deleted file mode 100644 index e89a5b110..000000000 --- a/priv/static/emoji/1f469-1f3fd-200d-1f4bc.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f469-1f3fd-200d-1f527.svg b/priv/static/emoji/1f469-1f3fd-200d-1f527.svg deleted file mode 100644 index ba2b753f6..000000000 --- a/priv/static/emoji/1f469-1f3fd-200d-1f527.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f469-1f3fd-200d-1f52c.svg b/priv/static/emoji/1f469-1f3fd-200d-1f52c.svg deleted file mode 100644 index bb686deb2..000000000 --- a/priv/static/emoji/1f469-1f3fd-200d-1f52c.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f469-1f3fd-200d-1f680.svg b/priv/static/emoji/1f469-1f3fd-200d-1f680.svg deleted file mode 100644 index 21ff7a7a3..000000000 --- a/priv/static/emoji/1f469-1f3fd-200d-1f680.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f469-1f3fd-200d-1f692.svg b/priv/static/emoji/1f469-1f3fd-200d-1f692.svg deleted file mode 100644 index 76f000c75..000000000 --- a/priv/static/emoji/1f469-1f3fd-200d-1f692.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f469-1f3fd-200d-1f91d-200d-1f468-1f3fb.svg b/priv/static/emoji/1f469-1f3fd-200d-1f91d-200d-1f468-1f3fb.svg deleted file mode 100644 index adf04f14e..000000000 --- a/priv/static/emoji/1f469-1f3fd-200d-1f91d-200d-1f468-1f3fb.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f469-1f3fd-200d-1f91d-200d-1f468-1f3fc.svg b/priv/static/emoji/1f469-1f3fd-200d-1f91d-200d-1f468-1f3fc.svg deleted file mode 100644 index 724aede5b..000000000 --- a/priv/static/emoji/1f469-1f3fd-200d-1f91d-200d-1f468-1f3fc.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f469-1f3fd-200d-1f91d-200d-1f468-1f3fe.svg b/priv/static/emoji/1f469-1f3fd-200d-1f91d-200d-1f468-1f3fe.svg deleted file mode 100644 index 6ab1b4275..000000000 --- a/priv/static/emoji/1f469-1f3fd-200d-1f91d-200d-1f468-1f3fe.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f469-1f3fd-200d-1f91d-200d-1f468-1f3ff.svg b/priv/static/emoji/1f469-1f3fd-200d-1f91d-200d-1f468-1f3ff.svg deleted file mode 100644 index edfadd095..000000000 --- a/priv/static/emoji/1f469-1f3fd-200d-1f91d-200d-1f468-1f3ff.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f469-1f3fd-200d-1f91d-200d-1f469-1f3fb.svg b/priv/static/emoji/1f469-1f3fd-200d-1f91d-200d-1f469-1f3fb.svg deleted file mode 100644 index 6a909b143..000000000 --- a/priv/static/emoji/1f469-1f3fd-200d-1f91d-200d-1f469-1f3fb.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f469-1f3fd-200d-1f91d-200d-1f469-1f3fc.svg b/priv/static/emoji/1f469-1f3fd-200d-1f91d-200d-1f469-1f3fc.svg deleted file mode 100644 index 9ec331669..000000000 --- a/priv/static/emoji/1f469-1f3fd-200d-1f91d-200d-1f469-1f3fc.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f469-1f3fd-200d-1f9af.svg b/priv/static/emoji/1f469-1f3fd-200d-1f9af.svg deleted file mode 100644 index c17b0ed28..000000000 --- a/priv/static/emoji/1f469-1f3fd-200d-1f9af.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f469-1f3fd-200d-1f9b0.svg b/priv/static/emoji/1f469-1f3fd-200d-1f9b0.svg deleted file mode 100644 index 7a1df80ef..000000000 --- a/priv/static/emoji/1f469-1f3fd-200d-1f9b0.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f469-1f3fd-200d-1f9b1.svg b/priv/static/emoji/1f469-1f3fd-200d-1f9b1.svg deleted file mode 100644 index 5434a54a1..000000000 --- a/priv/static/emoji/1f469-1f3fd-200d-1f9b1.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f469-1f3fd-200d-1f9b2.svg b/priv/static/emoji/1f469-1f3fd-200d-1f9b2.svg deleted file mode 100644 index 7881eb73a..000000000 --- a/priv/static/emoji/1f469-1f3fd-200d-1f9b2.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f469-1f3fd-200d-1f9b3.svg b/priv/static/emoji/1f469-1f3fd-200d-1f9b3.svg deleted file mode 100644 index 25ff51514..000000000 --- a/priv/static/emoji/1f469-1f3fd-200d-1f9b3.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f469-1f3fd-200d-1f9bc.svg b/priv/static/emoji/1f469-1f3fd-200d-1f9bc.svg deleted file mode 100644 index 798345314..000000000 --- a/priv/static/emoji/1f469-1f3fd-200d-1f9bc.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f469-1f3fd-200d-1f9bd.svg b/priv/static/emoji/1f469-1f3fd-200d-1f9bd.svg deleted file mode 100644 index c128386d5..000000000 --- a/priv/static/emoji/1f469-1f3fd-200d-1f9bd.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f469-1f3fd-200d-2695-fe0f.svg b/priv/static/emoji/1f469-1f3fd-200d-2695-fe0f.svg deleted file mode 100644 index d0b51ac68..000000000 --- a/priv/static/emoji/1f469-1f3fd-200d-2695-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f469-1f3fd-200d-2696-fe0f.svg b/priv/static/emoji/1f469-1f3fd-200d-2696-fe0f.svg deleted file mode 100644 index 8a1993e37..000000000 --- a/priv/static/emoji/1f469-1f3fd-200d-2696-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f469-1f3fd-200d-2708-fe0f.svg b/priv/static/emoji/1f469-1f3fd-200d-2708-fe0f.svg deleted file mode 100644 index e1fc6c3e5..000000000 --- a/priv/static/emoji/1f469-1f3fd-200d-2708-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f469-1f3fd.svg b/priv/static/emoji/1f469-1f3fd.svg deleted file mode 100644 index 5dba957ad..000000000 --- a/priv/static/emoji/1f469-1f3fd.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f469-1f3fe-200d-1f33e.svg b/priv/static/emoji/1f469-1f3fe-200d-1f33e.svg deleted file mode 100644 index 7570c3763..000000000 --- a/priv/static/emoji/1f469-1f3fe-200d-1f33e.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f469-1f3fe-200d-1f373.svg b/priv/static/emoji/1f469-1f3fe-200d-1f373.svg deleted file mode 100644 index 9e7522ea5..000000000 --- a/priv/static/emoji/1f469-1f3fe-200d-1f373.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f469-1f3fe-200d-1f393.svg b/priv/static/emoji/1f469-1f3fe-200d-1f393.svg deleted file mode 100644 index 4d4967b05..000000000 --- a/priv/static/emoji/1f469-1f3fe-200d-1f393.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f469-1f3fe-200d-1f3a4.svg b/priv/static/emoji/1f469-1f3fe-200d-1f3a4.svg deleted file mode 100644 index de1f4f084..000000000 --- a/priv/static/emoji/1f469-1f3fe-200d-1f3a4.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f469-1f3fe-200d-1f3a8.svg b/priv/static/emoji/1f469-1f3fe-200d-1f3a8.svg deleted file mode 100644 index 5a08cb638..000000000 --- a/priv/static/emoji/1f469-1f3fe-200d-1f3a8.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f469-1f3fe-200d-1f3eb.svg b/priv/static/emoji/1f469-1f3fe-200d-1f3eb.svg deleted file mode 100644 index 5908aebac..000000000 --- a/priv/static/emoji/1f469-1f3fe-200d-1f3eb.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f469-1f3fe-200d-1f3ed.svg b/priv/static/emoji/1f469-1f3fe-200d-1f3ed.svg deleted file mode 100644 index 626a1f04d..000000000 --- a/priv/static/emoji/1f469-1f3fe-200d-1f3ed.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f469-1f3fe-200d-1f4bb.svg b/priv/static/emoji/1f469-1f3fe-200d-1f4bb.svg deleted file mode 100644 index 86d044ec2..000000000 --- a/priv/static/emoji/1f469-1f3fe-200d-1f4bb.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f469-1f3fe-200d-1f4bc.svg b/priv/static/emoji/1f469-1f3fe-200d-1f4bc.svg deleted file mode 100644 index f67b33b2f..000000000 --- a/priv/static/emoji/1f469-1f3fe-200d-1f4bc.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f469-1f3fe-200d-1f527.svg b/priv/static/emoji/1f469-1f3fe-200d-1f527.svg deleted file mode 100644 index a3a47a086..000000000 --- a/priv/static/emoji/1f469-1f3fe-200d-1f527.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f469-1f3fe-200d-1f52c.svg b/priv/static/emoji/1f469-1f3fe-200d-1f52c.svg deleted file mode 100644 index 984578cb5..000000000 --- a/priv/static/emoji/1f469-1f3fe-200d-1f52c.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f469-1f3fe-200d-1f680.svg b/priv/static/emoji/1f469-1f3fe-200d-1f680.svg deleted file mode 100644 index 882cf4859..000000000 --- a/priv/static/emoji/1f469-1f3fe-200d-1f680.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f469-1f3fe-200d-1f692.svg b/priv/static/emoji/1f469-1f3fe-200d-1f692.svg deleted file mode 100644 index 5b666b0d8..000000000 --- a/priv/static/emoji/1f469-1f3fe-200d-1f692.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f469-1f3fe-200d-1f91d-200d-1f468-1f3fb.svg b/priv/static/emoji/1f469-1f3fe-200d-1f91d-200d-1f468-1f3fb.svg deleted file mode 100644 index c14a8e794..000000000 --- a/priv/static/emoji/1f469-1f3fe-200d-1f91d-200d-1f468-1f3fb.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f469-1f3fe-200d-1f91d-200d-1f468-1f3fc.svg b/priv/static/emoji/1f469-1f3fe-200d-1f91d-200d-1f468-1f3fc.svg deleted file mode 100644 index dff165ed5..000000000 --- a/priv/static/emoji/1f469-1f3fe-200d-1f91d-200d-1f468-1f3fc.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f469-1f3fe-200d-1f91d-200d-1f468-1f3fd.svg b/priv/static/emoji/1f469-1f3fe-200d-1f91d-200d-1f468-1f3fd.svg deleted file mode 100644 index 19a8dab4c..000000000 --- a/priv/static/emoji/1f469-1f3fe-200d-1f91d-200d-1f468-1f3fd.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f469-1f3fe-200d-1f91d-200d-1f468-1f3ff.svg b/priv/static/emoji/1f469-1f3fe-200d-1f91d-200d-1f468-1f3ff.svg deleted file mode 100644 index 6040c7be6..000000000 --- a/priv/static/emoji/1f469-1f3fe-200d-1f91d-200d-1f468-1f3ff.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f469-1f3fe-200d-1f91d-200d-1f469-1f3fb.svg b/priv/static/emoji/1f469-1f3fe-200d-1f91d-200d-1f469-1f3fb.svg deleted file mode 100644 index 77a4bce68..000000000 --- a/priv/static/emoji/1f469-1f3fe-200d-1f91d-200d-1f469-1f3fb.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f469-1f3fe-200d-1f91d-200d-1f469-1f3fc.svg b/priv/static/emoji/1f469-1f3fe-200d-1f91d-200d-1f469-1f3fc.svg deleted file mode 100644 index c30ccdf21..000000000 --- a/priv/static/emoji/1f469-1f3fe-200d-1f91d-200d-1f469-1f3fc.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f469-1f3fe-200d-1f91d-200d-1f469-1f3fd.svg b/priv/static/emoji/1f469-1f3fe-200d-1f91d-200d-1f469-1f3fd.svg deleted file mode 100644 index aa913dc93..000000000 --- a/priv/static/emoji/1f469-1f3fe-200d-1f91d-200d-1f469-1f3fd.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f469-1f3fe-200d-1f9af.svg b/priv/static/emoji/1f469-1f3fe-200d-1f9af.svg deleted file mode 100644 index 3b4b53958..000000000 --- a/priv/static/emoji/1f469-1f3fe-200d-1f9af.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f469-1f3fe-200d-1f9b0.svg b/priv/static/emoji/1f469-1f3fe-200d-1f9b0.svg deleted file mode 100644 index a10b4cb4c..000000000 --- a/priv/static/emoji/1f469-1f3fe-200d-1f9b0.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f469-1f3fe-200d-1f9b1.svg b/priv/static/emoji/1f469-1f3fe-200d-1f9b1.svg deleted file mode 100644 index 8b866fffa..000000000 --- a/priv/static/emoji/1f469-1f3fe-200d-1f9b1.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f469-1f3fe-200d-1f9b2.svg b/priv/static/emoji/1f469-1f3fe-200d-1f9b2.svg deleted file mode 100644 index 3e7738c70..000000000 --- a/priv/static/emoji/1f469-1f3fe-200d-1f9b2.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f469-1f3fe-200d-1f9b3.svg b/priv/static/emoji/1f469-1f3fe-200d-1f9b3.svg deleted file mode 100644 index 50ad4ea22..000000000 --- a/priv/static/emoji/1f469-1f3fe-200d-1f9b3.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f469-1f3fe-200d-1f9bc.svg b/priv/static/emoji/1f469-1f3fe-200d-1f9bc.svg deleted file mode 100644 index ba5ca0543..000000000 --- a/priv/static/emoji/1f469-1f3fe-200d-1f9bc.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f469-1f3fe-200d-1f9bd.svg b/priv/static/emoji/1f469-1f3fe-200d-1f9bd.svg deleted file mode 100644 index f481961b1..000000000 --- a/priv/static/emoji/1f469-1f3fe-200d-1f9bd.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f469-1f3fe-200d-2695-fe0f.svg b/priv/static/emoji/1f469-1f3fe-200d-2695-fe0f.svg deleted file mode 100644 index a6b5ffc45..000000000 --- a/priv/static/emoji/1f469-1f3fe-200d-2695-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f469-1f3fe-200d-2696-fe0f.svg b/priv/static/emoji/1f469-1f3fe-200d-2696-fe0f.svg deleted file mode 100644 index 06110b766..000000000 --- a/priv/static/emoji/1f469-1f3fe-200d-2696-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f469-1f3fe-200d-2708-fe0f.svg b/priv/static/emoji/1f469-1f3fe-200d-2708-fe0f.svg deleted file mode 100644 index 74c44cd78..000000000 --- a/priv/static/emoji/1f469-1f3fe-200d-2708-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f469-1f3fe.svg b/priv/static/emoji/1f469-1f3fe.svg deleted file mode 100644 index 4539d0eeb..000000000 --- a/priv/static/emoji/1f469-1f3fe.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f469-1f3ff-200d-1f33e.svg b/priv/static/emoji/1f469-1f3ff-200d-1f33e.svg deleted file mode 100644 index 2d1476ec8..000000000 --- a/priv/static/emoji/1f469-1f3ff-200d-1f33e.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f469-1f3ff-200d-1f373.svg b/priv/static/emoji/1f469-1f3ff-200d-1f373.svg deleted file mode 100644 index c9cafcfca..000000000 --- a/priv/static/emoji/1f469-1f3ff-200d-1f373.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f469-1f3ff-200d-1f393.svg b/priv/static/emoji/1f469-1f3ff-200d-1f393.svg deleted file mode 100644 index 934565975..000000000 --- a/priv/static/emoji/1f469-1f3ff-200d-1f393.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f469-1f3ff-200d-1f3a4.svg b/priv/static/emoji/1f469-1f3ff-200d-1f3a4.svg deleted file mode 100644 index c182d216c..000000000 --- a/priv/static/emoji/1f469-1f3ff-200d-1f3a4.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f469-1f3ff-200d-1f3a8.svg b/priv/static/emoji/1f469-1f3ff-200d-1f3a8.svg deleted file mode 100644 index fc1e99eab..000000000 --- a/priv/static/emoji/1f469-1f3ff-200d-1f3a8.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f469-1f3ff-200d-1f3eb.svg b/priv/static/emoji/1f469-1f3ff-200d-1f3eb.svg deleted file mode 100644 index c92782c76..000000000 --- a/priv/static/emoji/1f469-1f3ff-200d-1f3eb.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f469-1f3ff-200d-1f3ed.svg b/priv/static/emoji/1f469-1f3ff-200d-1f3ed.svg deleted file mode 100644 index 599992fee..000000000 --- a/priv/static/emoji/1f469-1f3ff-200d-1f3ed.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f469-1f3ff-200d-1f4bb.svg b/priv/static/emoji/1f469-1f3ff-200d-1f4bb.svg deleted file mode 100644 index e73241a28..000000000 --- a/priv/static/emoji/1f469-1f3ff-200d-1f4bb.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f469-1f3ff-200d-1f4bc.svg b/priv/static/emoji/1f469-1f3ff-200d-1f4bc.svg deleted file mode 100644 index e283c0081..000000000 --- a/priv/static/emoji/1f469-1f3ff-200d-1f4bc.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f469-1f3ff-200d-1f527.svg b/priv/static/emoji/1f469-1f3ff-200d-1f527.svg deleted file mode 100644 index 651969420..000000000 --- a/priv/static/emoji/1f469-1f3ff-200d-1f527.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f469-1f3ff-200d-1f52c.svg b/priv/static/emoji/1f469-1f3ff-200d-1f52c.svg deleted file mode 100644 index cdf068ba6..000000000 --- a/priv/static/emoji/1f469-1f3ff-200d-1f52c.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f469-1f3ff-200d-1f680.svg b/priv/static/emoji/1f469-1f3ff-200d-1f680.svg deleted file mode 100644 index 636a9fe22..000000000 --- a/priv/static/emoji/1f469-1f3ff-200d-1f680.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f469-1f3ff-200d-1f692.svg b/priv/static/emoji/1f469-1f3ff-200d-1f692.svg deleted file mode 100644 index 685893375..000000000 --- a/priv/static/emoji/1f469-1f3ff-200d-1f692.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f469-1f3ff-200d-1f91d-200d-1f468-1f3fb.svg b/priv/static/emoji/1f469-1f3ff-200d-1f91d-200d-1f468-1f3fb.svg deleted file mode 100644 index cbcfecadc..000000000 --- a/priv/static/emoji/1f469-1f3ff-200d-1f91d-200d-1f468-1f3fb.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f469-1f3ff-200d-1f91d-200d-1f468-1f3fc.svg b/priv/static/emoji/1f469-1f3ff-200d-1f91d-200d-1f468-1f3fc.svg deleted file mode 100644 index fce4c9184..000000000 --- a/priv/static/emoji/1f469-1f3ff-200d-1f91d-200d-1f468-1f3fc.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f469-1f3ff-200d-1f91d-200d-1f468-1f3fd.svg b/priv/static/emoji/1f469-1f3ff-200d-1f91d-200d-1f468-1f3fd.svg deleted file mode 100644 index 84e2b2bd8..000000000 --- a/priv/static/emoji/1f469-1f3ff-200d-1f91d-200d-1f468-1f3fd.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f469-1f3ff-200d-1f91d-200d-1f468-1f3fe.svg b/priv/static/emoji/1f469-1f3ff-200d-1f91d-200d-1f468-1f3fe.svg deleted file mode 100644 index d0ba4cd18..000000000 --- a/priv/static/emoji/1f469-1f3ff-200d-1f91d-200d-1f468-1f3fe.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f469-1f3ff-200d-1f91d-200d-1f469-1f3fb.svg b/priv/static/emoji/1f469-1f3ff-200d-1f91d-200d-1f469-1f3fb.svg deleted file mode 100644 index bfbb93bbf..000000000 --- a/priv/static/emoji/1f469-1f3ff-200d-1f91d-200d-1f469-1f3fb.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f469-1f3ff-200d-1f91d-200d-1f469-1f3fc.svg b/priv/static/emoji/1f469-1f3ff-200d-1f91d-200d-1f469-1f3fc.svg deleted file mode 100644 index 36dec9257..000000000 --- a/priv/static/emoji/1f469-1f3ff-200d-1f91d-200d-1f469-1f3fc.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f469-1f3ff-200d-1f91d-200d-1f469-1f3fd.svg b/priv/static/emoji/1f469-1f3ff-200d-1f91d-200d-1f469-1f3fd.svg deleted file mode 100644 index f18bc69bc..000000000 --- a/priv/static/emoji/1f469-1f3ff-200d-1f91d-200d-1f469-1f3fd.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f469-1f3ff-200d-1f91d-200d-1f469-1f3fe.svg b/priv/static/emoji/1f469-1f3ff-200d-1f91d-200d-1f469-1f3fe.svg deleted file mode 100644 index ac2fe9944..000000000 --- a/priv/static/emoji/1f469-1f3ff-200d-1f91d-200d-1f469-1f3fe.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f469-1f3ff-200d-1f9af.svg b/priv/static/emoji/1f469-1f3ff-200d-1f9af.svg deleted file mode 100644 index aafa3bce6..000000000 --- a/priv/static/emoji/1f469-1f3ff-200d-1f9af.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f469-1f3ff-200d-1f9b0.svg b/priv/static/emoji/1f469-1f3ff-200d-1f9b0.svg deleted file mode 100644 index 1ae85c6eb..000000000 --- a/priv/static/emoji/1f469-1f3ff-200d-1f9b0.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f469-1f3ff-200d-1f9b1.svg b/priv/static/emoji/1f469-1f3ff-200d-1f9b1.svg deleted file mode 100644 index c2844211c..000000000 --- a/priv/static/emoji/1f469-1f3ff-200d-1f9b1.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f469-1f3ff-200d-1f9b2.svg b/priv/static/emoji/1f469-1f3ff-200d-1f9b2.svg deleted file mode 100644 index f490be8ba..000000000 --- a/priv/static/emoji/1f469-1f3ff-200d-1f9b2.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f469-1f3ff-200d-1f9b3.svg b/priv/static/emoji/1f469-1f3ff-200d-1f9b3.svg deleted file mode 100644 index cf3e39d6f..000000000 --- a/priv/static/emoji/1f469-1f3ff-200d-1f9b3.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f469-1f3ff-200d-1f9bc.svg b/priv/static/emoji/1f469-1f3ff-200d-1f9bc.svg deleted file mode 100644 index 39f0c6a75..000000000 --- a/priv/static/emoji/1f469-1f3ff-200d-1f9bc.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f469-1f3ff-200d-1f9bd.svg b/priv/static/emoji/1f469-1f3ff-200d-1f9bd.svg deleted file mode 100644 index 4eea4dc72..000000000 --- a/priv/static/emoji/1f469-1f3ff-200d-1f9bd.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f469-1f3ff-200d-2695-fe0f.svg b/priv/static/emoji/1f469-1f3ff-200d-2695-fe0f.svg deleted file mode 100644 index 7db92127b..000000000 --- a/priv/static/emoji/1f469-1f3ff-200d-2695-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f469-1f3ff-200d-2696-fe0f.svg b/priv/static/emoji/1f469-1f3ff-200d-2696-fe0f.svg deleted file mode 100644 index 4fe0541fc..000000000 --- a/priv/static/emoji/1f469-1f3ff-200d-2696-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f469-1f3ff-200d-2708-fe0f.svg b/priv/static/emoji/1f469-1f3ff-200d-2708-fe0f.svg deleted file mode 100644 index 1f4a7b6dd..000000000 --- a/priv/static/emoji/1f469-1f3ff-200d-2708-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f469-1f3ff.svg b/priv/static/emoji/1f469-1f3ff.svg deleted file mode 100644 index ac43b9ef3..000000000 --- a/priv/static/emoji/1f469-1f3ff.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f469-200d-1f33e.svg b/priv/static/emoji/1f469-200d-1f33e.svg deleted file mode 100644 index c8974b5ea..000000000 --- a/priv/static/emoji/1f469-200d-1f33e.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f469-200d-1f373.svg b/priv/static/emoji/1f469-200d-1f373.svg deleted file mode 100644 index 962deccd0..000000000 --- a/priv/static/emoji/1f469-200d-1f373.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f469-200d-1f393.svg b/priv/static/emoji/1f469-200d-1f393.svg deleted file mode 100644 index 47ad3e7c0..000000000 --- a/priv/static/emoji/1f469-200d-1f393.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f469-200d-1f3a4.svg b/priv/static/emoji/1f469-200d-1f3a4.svg deleted file mode 100644 index 8aa5e4cec..000000000 --- a/priv/static/emoji/1f469-200d-1f3a4.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f469-200d-1f3a8.svg b/priv/static/emoji/1f469-200d-1f3a8.svg deleted file mode 100644 index 6d4807eef..000000000 --- a/priv/static/emoji/1f469-200d-1f3a8.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f469-200d-1f3eb.svg b/priv/static/emoji/1f469-200d-1f3eb.svg deleted file mode 100644 index 9a3e54450..000000000 --- a/priv/static/emoji/1f469-200d-1f3eb.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f469-200d-1f3ed.svg b/priv/static/emoji/1f469-200d-1f3ed.svg deleted file mode 100644 index 064bfd4d8..000000000 --- a/priv/static/emoji/1f469-200d-1f3ed.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f469-200d-1f466-200d-1f466.svg b/priv/static/emoji/1f469-200d-1f466-200d-1f466.svg deleted file mode 100644 index a10b0190a..000000000 --- a/priv/static/emoji/1f469-200d-1f466-200d-1f466.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f469-200d-1f466.svg b/priv/static/emoji/1f469-200d-1f466.svg deleted file mode 100644 index 6ae66b649..000000000 --- a/priv/static/emoji/1f469-200d-1f466.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f469-200d-1f467-200d-1f466.svg b/priv/static/emoji/1f469-200d-1f467-200d-1f466.svg deleted file mode 100644 index 710fb8e5e..000000000 --- a/priv/static/emoji/1f469-200d-1f467-200d-1f466.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f469-200d-1f467-200d-1f467.svg b/priv/static/emoji/1f469-200d-1f467-200d-1f467.svg deleted file mode 100644 index 88da46ee1..000000000 --- a/priv/static/emoji/1f469-200d-1f467-200d-1f467.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f469-200d-1f467.svg b/priv/static/emoji/1f469-200d-1f467.svg deleted file mode 100644 index 43e4333f3..000000000 --- a/priv/static/emoji/1f469-200d-1f467.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f469-200d-1f469-200d-1f466-200d-1f466.svg b/priv/static/emoji/1f469-200d-1f469-200d-1f466-200d-1f466.svg deleted file mode 100644 index 8915200c6..000000000 --- a/priv/static/emoji/1f469-200d-1f469-200d-1f466-200d-1f466.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f469-200d-1f469-200d-1f466.svg b/priv/static/emoji/1f469-200d-1f469-200d-1f466.svg deleted file mode 100644 index 8cd8bad87..000000000 --- a/priv/static/emoji/1f469-200d-1f469-200d-1f466.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f469-200d-1f469-200d-1f467-200d-1f466.svg b/priv/static/emoji/1f469-200d-1f469-200d-1f467-200d-1f466.svg deleted file mode 100644 index 976e8481d..000000000 --- a/priv/static/emoji/1f469-200d-1f469-200d-1f467-200d-1f466.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f469-200d-1f469-200d-1f467-200d-1f467.svg b/priv/static/emoji/1f469-200d-1f469-200d-1f467-200d-1f467.svg deleted file mode 100644 index 96e0434e4..000000000 --- a/priv/static/emoji/1f469-200d-1f469-200d-1f467-200d-1f467.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f469-200d-1f469-200d-1f467.svg b/priv/static/emoji/1f469-200d-1f469-200d-1f467.svg deleted file mode 100644 index 9201b66c4..000000000 --- a/priv/static/emoji/1f469-200d-1f469-200d-1f467.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f469-200d-1f4bb.svg b/priv/static/emoji/1f469-200d-1f4bb.svg deleted file mode 100644 index c69729f37..000000000 --- a/priv/static/emoji/1f469-200d-1f4bb.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f469-200d-1f4bc.svg b/priv/static/emoji/1f469-200d-1f4bc.svg deleted file mode 100644 index 9f41d662c..000000000 --- a/priv/static/emoji/1f469-200d-1f4bc.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f469-200d-1f527.svg b/priv/static/emoji/1f469-200d-1f527.svg deleted file mode 100644 index 24b160968..000000000 --- a/priv/static/emoji/1f469-200d-1f527.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f469-200d-1f52c.svg b/priv/static/emoji/1f469-200d-1f52c.svg deleted file mode 100644 index 9597ebca4..000000000 --- a/priv/static/emoji/1f469-200d-1f52c.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f469-200d-1f680.svg b/priv/static/emoji/1f469-200d-1f680.svg deleted file mode 100644 index c4fdde46a..000000000 --- a/priv/static/emoji/1f469-200d-1f680.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f469-200d-1f692.svg b/priv/static/emoji/1f469-200d-1f692.svg deleted file mode 100644 index cbde12ece..000000000 --- a/priv/static/emoji/1f469-200d-1f692.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f469-200d-1f9af.svg b/priv/static/emoji/1f469-200d-1f9af.svg deleted file mode 100644 index fe5558732..000000000 --- a/priv/static/emoji/1f469-200d-1f9af.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f469-200d-1f9b0.svg b/priv/static/emoji/1f469-200d-1f9b0.svg deleted file mode 100644 index 68367e8f7..000000000 --- a/priv/static/emoji/1f469-200d-1f9b0.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f469-200d-1f9b1.svg b/priv/static/emoji/1f469-200d-1f9b1.svg deleted file mode 100644 index 62cc26b18..000000000 --- a/priv/static/emoji/1f469-200d-1f9b1.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f469-200d-1f9b2.svg b/priv/static/emoji/1f469-200d-1f9b2.svg deleted file mode 100644 index 3fd100405..000000000 --- a/priv/static/emoji/1f469-200d-1f9b2.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f469-200d-1f9b3.svg b/priv/static/emoji/1f469-200d-1f9b3.svg deleted file mode 100644 index 1ce720e84..000000000 --- a/priv/static/emoji/1f469-200d-1f9b3.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f469-200d-1f9bc.svg b/priv/static/emoji/1f469-200d-1f9bc.svg deleted file mode 100644 index 6706ec815..000000000 --- a/priv/static/emoji/1f469-200d-1f9bc.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f469-200d-1f9bd.svg b/priv/static/emoji/1f469-200d-1f9bd.svg deleted file mode 100644 index 1d6b02cfa..000000000 --- a/priv/static/emoji/1f469-200d-1f9bd.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f469-200d-2695-fe0f.svg b/priv/static/emoji/1f469-200d-2695-fe0f.svg deleted file mode 100644 index efe29092c..000000000 --- a/priv/static/emoji/1f469-200d-2695-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f469-200d-2696-fe0f.svg b/priv/static/emoji/1f469-200d-2696-fe0f.svg deleted file mode 100644 index e8b489a72..000000000 --- a/priv/static/emoji/1f469-200d-2696-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f469-200d-2708-fe0f.svg b/priv/static/emoji/1f469-200d-2708-fe0f.svg deleted file mode 100644 index 953b06fd5..000000000 --- a/priv/static/emoji/1f469-200d-2708-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f469-200d-2764-fe0f-200d-1f468.svg b/priv/static/emoji/1f469-200d-2764-fe0f-200d-1f468.svg deleted file mode 100644 index ece280dc0..000000000 --- a/priv/static/emoji/1f469-200d-2764-fe0f-200d-1f468.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f469-200d-2764-fe0f-200d-1f469.svg b/priv/static/emoji/1f469-200d-2764-fe0f-200d-1f469.svg deleted file mode 100644 index 62abb03e7..000000000 --- a/priv/static/emoji/1f469-200d-2764-fe0f-200d-1f469.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f469-200d-2764-fe0f-200d-1f48b-200d-1f468.svg b/priv/static/emoji/1f469-200d-2764-fe0f-200d-1f48b-200d-1f468.svg deleted file mode 100644 index 8248ed607..000000000 --- a/priv/static/emoji/1f469-200d-2764-fe0f-200d-1f48b-200d-1f468.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f469-200d-2764-fe0f-200d-1f48b-200d-1f469.svg b/priv/static/emoji/1f469-200d-2764-fe0f-200d-1f48b-200d-1f469.svg deleted file mode 100644 index e46dfcaeb..000000000 --- a/priv/static/emoji/1f469-200d-2764-fe0f-200d-1f48b-200d-1f469.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f469.svg b/priv/static/emoji/1f469.svg deleted file mode 100644 index 417856771..000000000 --- a/priv/static/emoji/1f469.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f46a.svg b/priv/static/emoji/1f46a.svg deleted file mode 100644 index 8f5fad9f5..000000000 --- a/priv/static/emoji/1f46a.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f46b-1f3fb.svg b/priv/static/emoji/1f46b-1f3fb.svg deleted file mode 100644 index 5fedd969b..000000000 --- a/priv/static/emoji/1f46b-1f3fb.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f46b-1f3fc.svg b/priv/static/emoji/1f46b-1f3fc.svg deleted file mode 100644 index d5be6fe59..000000000 --- a/priv/static/emoji/1f46b-1f3fc.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f46b-1f3fd.svg b/priv/static/emoji/1f46b-1f3fd.svg deleted file mode 100644 index 15c9bdfed..000000000 --- a/priv/static/emoji/1f46b-1f3fd.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f46b-1f3fe.svg b/priv/static/emoji/1f46b-1f3fe.svg deleted file mode 100644 index 54c46de87..000000000 --- a/priv/static/emoji/1f46b-1f3fe.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f46b-1f3ff.svg b/priv/static/emoji/1f46b-1f3ff.svg deleted file mode 100644 index e0cb1e2bb..000000000 --- a/priv/static/emoji/1f46b-1f3ff.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f46b.svg b/priv/static/emoji/1f46b.svg deleted file mode 100644 index f7e46f210..000000000 --- a/priv/static/emoji/1f46b.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f46c-1f3fb.svg b/priv/static/emoji/1f46c-1f3fb.svg deleted file mode 100644 index 18c40167f..000000000 --- a/priv/static/emoji/1f46c-1f3fb.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f46c-1f3fc.svg b/priv/static/emoji/1f46c-1f3fc.svg deleted file mode 100644 index c7665eaf9..000000000 --- a/priv/static/emoji/1f46c-1f3fc.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f46c-1f3fd.svg b/priv/static/emoji/1f46c-1f3fd.svg deleted file mode 100644 index adf95058f..000000000 --- a/priv/static/emoji/1f46c-1f3fd.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f46c-1f3fe.svg b/priv/static/emoji/1f46c-1f3fe.svg deleted file mode 100644 index 484683659..000000000 --- a/priv/static/emoji/1f46c-1f3fe.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f46c-1f3ff.svg b/priv/static/emoji/1f46c-1f3ff.svg deleted file mode 100644 index f6fc11202..000000000 --- a/priv/static/emoji/1f46c-1f3ff.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f46c.svg b/priv/static/emoji/1f46c.svg deleted file mode 100644 index 0aa9dcb33..000000000 --- a/priv/static/emoji/1f46c.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f46d-1f3fb.svg b/priv/static/emoji/1f46d-1f3fb.svg deleted file mode 100644 index 8bc44aae2..000000000 --- a/priv/static/emoji/1f46d-1f3fb.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f46d-1f3fc.svg b/priv/static/emoji/1f46d-1f3fc.svg deleted file mode 100644 index 555fcbb5b..000000000 --- a/priv/static/emoji/1f46d-1f3fc.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f46d-1f3fd.svg b/priv/static/emoji/1f46d-1f3fd.svg deleted file mode 100644 index 5db65de5a..000000000 --- a/priv/static/emoji/1f46d-1f3fd.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f46d-1f3fe.svg b/priv/static/emoji/1f46d-1f3fe.svg deleted file mode 100644 index d122ab64f..000000000 --- a/priv/static/emoji/1f46d-1f3fe.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f46d-1f3ff.svg b/priv/static/emoji/1f46d-1f3ff.svg deleted file mode 100644 index 5f292d55d..000000000 --- a/priv/static/emoji/1f46d-1f3ff.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f46d.svg b/priv/static/emoji/1f46d.svg deleted file mode 100644 index 8f8ea9cfb..000000000 --- a/priv/static/emoji/1f46d.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f46e-1f3fb-200d-2640-fe0f.svg b/priv/static/emoji/1f46e-1f3fb-200d-2640-fe0f.svg deleted file mode 100644 index 3b9cc9780..000000000 --- a/priv/static/emoji/1f46e-1f3fb-200d-2640-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f46e-1f3fb-200d-2642-fe0f.svg b/priv/static/emoji/1f46e-1f3fb-200d-2642-fe0f.svg deleted file mode 100644 index 25c4c81c3..000000000 --- a/priv/static/emoji/1f46e-1f3fb-200d-2642-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f46e-1f3fb.svg b/priv/static/emoji/1f46e-1f3fb.svg deleted file mode 100644 index 25c4c81c3..000000000 --- a/priv/static/emoji/1f46e-1f3fb.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f46e-1f3fc-200d-2640-fe0f.svg b/priv/static/emoji/1f46e-1f3fc-200d-2640-fe0f.svg deleted file mode 100644 index e3f37cb42..000000000 --- a/priv/static/emoji/1f46e-1f3fc-200d-2640-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f46e-1f3fc-200d-2642-fe0f.svg b/priv/static/emoji/1f46e-1f3fc-200d-2642-fe0f.svg deleted file mode 100644 index b2c47839d..000000000 --- a/priv/static/emoji/1f46e-1f3fc-200d-2642-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f46e-1f3fc.svg b/priv/static/emoji/1f46e-1f3fc.svg deleted file mode 100644 index b2c47839d..000000000 --- a/priv/static/emoji/1f46e-1f3fc.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f46e-1f3fd-200d-2640-fe0f.svg b/priv/static/emoji/1f46e-1f3fd-200d-2640-fe0f.svg deleted file mode 100644 index 77b197430..000000000 --- a/priv/static/emoji/1f46e-1f3fd-200d-2640-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f46e-1f3fd-200d-2642-fe0f.svg b/priv/static/emoji/1f46e-1f3fd-200d-2642-fe0f.svg deleted file mode 100644 index 7e5e4b5d3..000000000 --- a/priv/static/emoji/1f46e-1f3fd-200d-2642-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f46e-1f3fd.svg b/priv/static/emoji/1f46e-1f3fd.svg deleted file mode 100644 index 7e5e4b5d3..000000000 --- a/priv/static/emoji/1f46e-1f3fd.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f46e-1f3fe-200d-2640-fe0f.svg b/priv/static/emoji/1f46e-1f3fe-200d-2640-fe0f.svg deleted file mode 100644 index d40f400c2..000000000 --- a/priv/static/emoji/1f46e-1f3fe-200d-2640-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f46e-1f3fe-200d-2642-fe0f.svg b/priv/static/emoji/1f46e-1f3fe-200d-2642-fe0f.svg deleted file mode 100644 index e817083a5..000000000 --- a/priv/static/emoji/1f46e-1f3fe-200d-2642-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f46e-1f3fe.svg b/priv/static/emoji/1f46e-1f3fe.svg deleted file mode 100644 index e817083a5..000000000 --- a/priv/static/emoji/1f46e-1f3fe.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f46e-1f3ff-200d-2640-fe0f.svg b/priv/static/emoji/1f46e-1f3ff-200d-2640-fe0f.svg deleted file mode 100644 index 43b98a0ee..000000000 --- a/priv/static/emoji/1f46e-1f3ff-200d-2640-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f46e-1f3ff-200d-2642-fe0f.svg b/priv/static/emoji/1f46e-1f3ff-200d-2642-fe0f.svg deleted file mode 100644 index 440cb510f..000000000 --- a/priv/static/emoji/1f46e-1f3ff-200d-2642-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f46e-1f3ff.svg b/priv/static/emoji/1f46e-1f3ff.svg deleted file mode 100644 index 440cb510f..000000000 --- a/priv/static/emoji/1f46e-1f3ff.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f46e-200d-2640-fe0f.svg b/priv/static/emoji/1f46e-200d-2640-fe0f.svg deleted file mode 100644 index 6b0fac225..000000000 --- a/priv/static/emoji/1f46e-200d-2640-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f46e-200d-2642-fe0f.svg b/priv/static/emoji/1f46e-200d-2642-fe0f.svg deleted file mode 100644 index 2974c9847..000000000 --- a/priv/static/emoji/1f46e-200d-2642-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f46e.svg b/priv/static/emoji/1f46e.svg deleted file mode 100644 index 2974c9847..000000000 --- a/priv/static/emoji/1f46e.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f46f-200d-2640-fe0f.svg b/priv/static/emoji/1f46f-200d-2640-fe0f.svg deleted file mode 100644 index 6559253b8..000000000 --- a/priv/static/emoji/1f46f-200d-2640-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f46f-200d-2642-fe0f.svg b/priv/static/emoji/1f46f-200d-2642-fe0f.svg deleted file mode 100644 index 04254cd99..000000000 --- a/priv/static/emoji/1f46f-200d-2642-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f46f.svg b/priv/static/emoji/1f46f.svg deleted file mode 100644 index 6559253b8..000000000 --- a/priv/static/emoji/1f46f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f470-1f3fb.svg b/priv/static/emoji/1f470-1f3fb.svg deleted file mode 100644 index 7691a70a3..000000000 --- a/priv/static/emoji/1f470-1f3fb.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f470-1f3fc.svg b/priv/static/emoji/1f470-1f3fc.svg deleted file mode 100644 index 2ce98ebb1..000000000 --- a/priv/static/emoji/1f470-1f3fc.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f470-1f3fd.svg b/priv/static/emoji/1f470-1f3fd.svg deleted file mode 100644 index 3d4070c42..000000000 --- a/priv/static/emoji/1f470-1f3fd.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f470-1f3fe.svg b/priv/static/emoji/1f470-1f3fe.svg deleted file mode 100644 index ac399c7fe..000000000 --- a/priv/static/emoji/1f470-1f3fe.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f470-1f3ff.svg b/priv/static/emoji/1f470-1f3ff.svg deleted file mode 100644 index dc1166ecb..000000000 --- a/priv/static/emoji/1f470-1f3ff.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f470.svg b/priv/static/emoji/1f470.svg deleted file mode 100644 index e68b5345b..000000000 --- a/priv/static/emoji/1f470.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f471-1f3fb-200d-2640-fe0f.svg b/priv/static/emoji/1f471-1f3fb-200d-2640-fe0f.svg deleted file mode 100644 index e9427e1d1..000000000 --- a/priv/static/emoji/1f471-1f3fb-200d-2640-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f471-1f3fb-200d-2642-fe0f.svg b/priv/static/emoji/1f471-1f3fb-200d-2642-fe0f.svg deleted file mode 100644 index 8a5a32993..000000000 --- a/priv/static/emoji/1f471-1f3fb-200d-2642-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f471-1f3fb.svg b/priv/static/emoji/1f471-1f3fb.svg deleted file mode 100644 index 8a5a32993..000000000 --- a/priv/static/emoji/1f471-1f3fb.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f471-1f3fc-200d-2640-fe0f.svg b/priv/static/emoji/1f471-1f3fc-200d-2640-fe0f.svg deleted file mode 100644 index 7c3ba6335..000000000 --- a/priv/static/emoji/1f471-1f3fc-200d-2640-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f471-1f3fc-200d-2642-fe0f.svg b/priv/static/emoji/1f471-1f3fc-200d-2642-fe0f.svg deleted file mode 100644 index 8455a9edd..000000000 --- a/priv/static/emoji/1f471-1f3fc-200d-2642-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f471-1f3fc.svg b/priv/static/emoji/1f471-1f3fc.svg deleted file mode 100644 index 8455a9edd..000000000 --- a/priv/static/emoji/1f471-1f3fc.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f471-1f3fd-200d-2640-fe0f.svg b/priv/static/emoji/1f471-1f3fd-200d-2640-fe0f.svg deleted file mode 100644 index ae6c4f829..000000000 --- a/priv/static/emoji/1f471-1f3fd-200d-2640-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f471-1f3fd-200d-2642-fe0f.svg b/priv/static/emoji/1f471-1f3fd-200d-2642-fe0f.svg deleted file mode 100644 index 4332b5b13..000000000 --- a/priv/static/emoji/1f471-1f3fd-200d-2642-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f471-1f3fd.svg b/priv/static/emoji/1f471-1f3fd.svg deleted file mode 100644 index 4332b5b13..000000000 --- a/priv/static/emoji/1f471-1f3fd.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f471-1f3fe-200d-2640-fe0f.svg b/priv/static/emoji/1f471-1f3fe-200d-2640-fe0f.svg deleted file mode 100644 index 33a7c3a00..000000000 --- a/priv/static/emoji/1f471-1f3fe-200d-2640-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f471-1f3fe-200d-2642-fe0f.svg b/priv/static/emoji/1f471-1f3fe-200d-2642-fe0f.svg deleted file mode 100644 index c8461a985..000000000 --- a/priv/static/emoji/1f471-1f3fe-200d-2642-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f471-1f3fe.svg b/priv/static/emoji/1f471-1f3fe.svg deleted file mode 100644 index c8461a985..000000000 --- a/priv/static/emoji/1f471-1f3fe.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f471-1f3ff-200d-2640-fe0f.svg b/priv/static/emoji/1f471-1f3ff-200d-2640-fe0f.svg deleted file mode 100644 index 7d3745fe5..000000000 --- a/priv/static/emoji/1f471-1f3ff-200d-2640-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f471-1f3ff-200d-2642-fe0f.svg b/priv/static/emoji/1f471-1f3ff-200d-2642-fe0f.svg deleted file mode 100644 index f91a87fef..000000000 --- a/priv/static/emoji/1f471-1f3ff-200d-2642-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f471-1f3ff.svg b/priv/static/emoji/1f471-1f3ff.svg deleted file mode 100644 index f91a87fef..000000000 --- a/priv/static/emoji/1f471-1f3ff.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f471-200d-2640-fe0f.svg b/priv/static/emoji/1f471-200d-2640-fe0f.svg deleted file mode 100644 index 2fec72cd9..000000000 --- a/priv/static/emoji/1f471-200d-2640-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f471-200d-2642-fe0f.svg b/priv/static/emoji/1f471-200d-2642-fe0f.svg deleted file mode 100644 index f73f9f5bb..000000000 --- a/priv/static/emoji/1f471-200d-2642-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f471.svg b/priv/static/emoji/1f471.svg deleted file mode 100644 index f73f9f5bb..000000000 --- a/priv/static/emoji/1f471.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f472-1f3fb.svg b/priv/static/emoji/1f472-1f3fb.svg deleted file mode 100644 index 598b23cd4..000000000 --- a/priv/static/emoji/1f472-1f3fb.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f472-1f3fc.svg b/priv/static/emoji/1f472-1f3fc.svg deleted file mode 100644 index f57b59f1c..000000000 --- a/priv/static/emoji/1f472-1f3fc.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f472-1f3fd.svg b/priv/static/emoji/1f472-1f3fd.svg deleted file mode 100644 index a4f37c4f1..000000000 --- a/priv/static/emoji/1f472-1f3fd.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f472-1f3fe.svg b/priv/static/emoji/1f472-1f3fe.svg deleted file mode 100644 index 83322d692..000000000 --- a/priv/static/emoji/1f472-1f3fe.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f472-1f3ff.svg b/priv/static/emoji/1f472-1f3ff.svg deleted file mode 100644 index e1ae612f9..000000000 --- a/priv/static/emoji/1f472-1f3ff.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f472.svg b/priv/static/emoji/1f472.svg deleted file mode 100644 index 7ed6bd532..000000000 --- a/priv/static/emoji/1f472.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f473-1f3fb-200d-2640-fe0f.svg b/priv/static/emoji/1f473-1f3fb-200d-2640-fe0f.svg deleted file mode 100644 index f93ddcc6b..000000000 --- a/priv/static/emoji/1f473-1f3fb-200d-2640-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f473-1f3fb-200d-2642-fe0f.svg b/priv/static/emoji/1f473-1f3fb-200d-2642-fe0f.svg deleted file mode 100644 index bb59f1199..000000000 --- a/priv/static/emoji/1f473-1f3fb-200d-2642-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f473-1f3fb.svg b/priv/static/emoji/1f473-1f3fb.svg deleted file mode 100644 index bb59f1199..000000000 --- a/priv/static/emoji/1f473-1f3fb.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f473-1f3fc-200d-2640-fe0f.svg b/priv/static/emoji/1f473-1f3fc-200d-2640-fe0f.svg deleted file mode 100644 index be21bc7da..000000000 --- a/priv/static/emoji/1f473-1f3fc-200d-2640-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f473-1f3fc-200d-2642-fe0f.svg b/priv/static/emoji/1f473-1f3fc-200d-2642-fe0f.svg deleted file mode 100644 index 3e748c39b..000000000 --- a/priv/static/emoji/1f473-1f3fc-200d-2642-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f473-1f3fc.svg b/priv/static/emoji/1f473-1f3fc.svg deleted file mode 100644 index 3e748c39b..000000000 --- a/priv/static/emoji/1f473-1f3fc.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f473-1f3fd-200d-2640-fe0f.svg b/priv/static/emoji/1f473-1f3fd-200d-2640-fe0f.svg deleted file mode 100644 index 61590f024..000000000 --- a/priv/static/emoji/1f473-1f3fd-200d-2640-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f473-1f3fd-200d-2642-fe0f.svg b/priv/static/emoji/1f473-1f3fd-200d-2642-fe0f.svg deleted file mode 100644 index 2373c1dc7..000000000 --- a/priv/static/emoji/1f473-1f3fd-200d-2642-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f473-1f3fd.svg b/priv/static/emoji/1f473-1f3fd.svg deleted file mode 100644 index 2373c1dc7..000000000 --- a/priv/static/emoji/1f473-1f3fd.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f473-1f3fe-200d-2640-fe0f.svg b/priv/static/emoji/1f473-1f3fe-200d-2640-fe0f.svg deleted file mode 100644 index cf5b06926..000000000 --- a/priv/static/emoji/1f473-1f3fe-200d-2640-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f473-1f3fe-200d-2642-fe0f.svg b/priv/static/emoji/1f473-1f3fe-200d-2642-fe0f.svg deleted file mode 100644 index bc680e6dc..000000000 --- a/priv/static/emoji/1f473-1f3fe-200d-2642-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f473-1f3fe.svg b/priv/static/emoji/1f473-1f3fe.svg deleted file mode 100644 index bc680e6dc..000000000 --- a/priv/static/emoji/1f473-1f3fe.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f473-1f3ff-200d-2640-fe0f.svg b/priv/static/emoji/1f473-1f3ff-200d-2640-fe0f.svg deleted file mode 100644 index 20c6ba1c9..000000000 --- a/priv/static/emoji/1f473-1f3ff-200d-2640-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f473-1f3ff-200d-2642-fe0f.svg b/priv/static/emoji/1f473-1f3ff-200d-2642-fe0f.svg deleted file mode 100644 index 6f0f3c59f..000000000 --- a/priv/static/emoji/1f473-1f3ff-200d-2642-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f473-1f3ff.svg b/priv/static/emoji/1f473-1f3ff.svg deleted file mode 100644 index 6f0f3c59f..000000000 --- a/priv/static/emoji/1f473-1f3ff.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f473-200d-2640-fe0f.svg b/priv/static/emoji/1f473-200d-2640-fe0f.svg deleted file mode 100644 index 9fe3052c0..000000000 --- a/priv/static/emoji/1f473-200d-2640-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f473-200d-2642-fe0f.svg b/priv/static/emoji/1f473-200d-2642-fe0f.svg deleted file mode 100644 index 5ef43d40a..000000000 --- a/priv/static/emoji/1f473-200d-2642-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f473.svg b/priv/static/emoji/1f473.svg deleted file mode 100644 index 5ef43d40a..000000000 --- a/priv/static/emoji/1f473.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f474-1f3fb.svg b/priv/static/emoji/1f474-1f3fb.svg deleted file mode 100644 index 307f6c9ab..000000000 --- a/priv/static/emoji/1f474-1f3fb.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f474-1f3fc.svg b/priv/static/emoji/1f474-1f3fc.svg deleted file mode 100644 index 6b3b908b2..000000000 --- a/priv/static/emoji/1f474-1f3fc.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f474-1f3fd.svg b/priv/static/emoji/1f474-1f3fd.svg deleted file mode 100644 index 1ab3c23c8..000000000 --- a/priv/static/emoji/1f474-1f3fd.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f474-1f3fe.svg b/priv/static/emoji/1f474-1f3fe.svg deleted file mode 100644 index 2fb9707f3..000000000 --- a/priv/static/emoji/1f474-1f3fe.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f474-1f3ff.svg b/priv/static/emoji/1f474-1f3ff.svg deleted file mode 100644 index e421b1177..000000000 --- a/priv/static/emoji/1f474-1f3ff.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f474.svg b/priv/static/emoji/1f474.svg deleted file mode 100644 index eecf20c79..000000000 --- a/priv/static/emoji/1f474.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f475-1f3fb.svg b/priv/static/emoji/1f475-1f3fb.svg deleted file mode 100644 index d55f164ca..000000000 --- a/priv/static/emoji/1f475-1f3fb.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f475-1f3fc.svg b/priv/static/emoji/1f475-1f3fc.svg deleted file mode 100644 index 41b7da72c..000000000 --- a/priv/static/emoji/1f475-1f3fc.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f475-1f3fd.svg b/priv/static/emoji/1f475-1f3fd.svg deleted file mode 100644 index 955ae93ff..000000000 --- a/priv/static/emoji/1f475-1f3fd.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f475-1f3fe.svg b/priv/static/emoji/1f475-1f3fe.svg deleted file mode 100644 index adb2c20b2..000000000 --- a/priv/static/emoji/1f475-1f3fe.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f475-1f3ff.svg b/priv/static/emoji/1f475-1f3ff.svg deleted file mode 100644 index 98b4bf83a..000000000 --- a/priv/static/emoji/1f475-1f3ff.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f475.svg b/priv/static/emoji/1f475.svg deleted file mode 100644 index 51867613b..000000000 --- a/priv/static/emoji/1f475.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f476-1f3fb.svg b/priv/static/emoji/1f476-1f3fb.svg deleted file mode 100644 index 44510c6a1..000000000 --- a/priv/static/emoji/1f476-1f3fb.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f476-1f3fc.svg b/priv/static/emoji/1f476-1f3fc.svg deleted file mode 100644 index fe37aa3a4..000000000 --- a/priv/static/emoji/1f476-1f3fc.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f476-1f3fd.svg b/priv/static/emoji/1f476-1f3fd.svg deleted file mode 100644 index fe23a4af0..000000000 --- a/priv/static/emoji/1f476-1f3fd.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f476-1f3fe.svg b/priv/static/emoji/1f476-1f3fe.svg deleted file mode 100644 index 492d74083..000000000 --- a/priv/static/emoji/1f476-1f3fe.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f476-1f3ff.svg b/priv/static/emoji/1f476-1f3ff.svg deleted file mode 100644 index 66853c966..000000000 --- a/priv/static/emoji/1f476-1f3ff.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f476.svg b/priv/static/emoji/1f476.svg deleted file mode 100644 index e065d3b4a..000000000 --- a/priv/static/emoji/1f476.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f477-1f3fb-200d-2640-fe0f.svg b/priv/static/emoji/1f477-1f3fb-200d-2640-fe0f.svg deleted file mode 100644 index 52408815e..000000000 --- a/priv/static/emoji/1f477-1f3fb-200d-2640-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f477-1f3fb-200d-2642-fe0f.svg b/priv/static/emoji/1f477-1f3fb-200d-2642-fe0f.svg deleted file mode 100644 index bbe5b3aab..000000000 --- a/priv/static/emoji/1f477-1f3fb-200d-2642-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f477-1f3fb.svg b/priv/static/emoji/1f477-1f3fb.svg deleted file mode 100644 index bbe5b3aab..000000000 --- a/priv/static/emoji/1f477-1f3fb.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f477-1f3fc-200d-2640-fe0f.svg b/priv/static/emoji/1f477-1f3fc-200d-2640-fe0f.svg deleted file mode 100644 index 1f1a29cd5..000000000 --- a/priv/static/emoji/1f477-1f3fc-200d-2640-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f477-1f3fc-200d-2642-fe0f.svg b/priv/static/emoji/1f477-1f3fc-200d-2642-fe0f.svg deleted file mode 100644 index de9673175..000000000 --- a/priv/static/emoji/1f477-1f3fc-200d-2642-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f477-1f3fc.svg b/priv/static/emoji/1f477-1f3fc.svg deleted file mode 100644 index de9673175..000000000 --- a/priv/static/emoji/1f477-1f3fc.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f477-1f3fd-200d-2640-fe0f.svg b/priv/static/emoji/1f477-1f3fd-200d-2640-fe0f.svg deleted file mode 100644 index 59412f2fc..000000000 --- a/priv/static/emoji/1f477-1f3fd-200d-2640-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f477-1f3fd-200d-2642-fe0f.svg b/priv/static/emoji/1f477-1f3fd-200d-2642-fe0f.svg deleted file mode 100644 index a7c900da6..000000000 --- a/priv/static/emoji/1f477-1f3fd-200d-2642-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f477-1f3fd.svg b/priv/static/emoji/1f477-1f3fd.svg deleted file mode 100644 index a7c900da6..000000000 --- a/priv/static/emoji/1f477-1f3fd.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f477-1f3fe-200d-2640-fe0f.svg b/priv/static/emoji/1f477-1f3fe-200d-2640-fe0f.svg deleted file mode 100644 index 8fb9e3787..000000000 --- a/priv/static/emoji/1f477-1f3fe-200d-2640-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f477-1f3fe-200d-2642-fe0f.svg b/priv/static/emoji/1f477-1f3fe-200d-2642-fe0f.svg deleted file mode 100644 index 4fa4d68c8..000000000 --- a/priv/static/emoji/1f477-1f3fe-200d-2642-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f477-1f3fe.svg b/priv/static/emoji/1f477-1f3fe.svg deleted file mode 100644 index 4fa4d68c8..000000000 --- a/priv/static/emoji/1f477-1f3fe.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f477-1f3ff-200d-2640-fe0f.svg b/priv/static/emoji/1f477-1f3ff-200d-2640-fe0f.svg deleted file mode 100644 index 23c567e24..000000000 --- a/priv/static/emoji/1f477-1f3ff-200d-2640-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f477-1f3ff-200d-2642-fe0f.svg b/priv/static/emoji/1f477-1f3ff-200d-2642-fe0f.svg deleted file mode 100644 index a49432184..000000000 --- a/priv/static/emoji/1f477-1f3ff-200d-2642-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f477-1f3ff.svg b/priv/static/emoji/1f477-1f3ff.svg deleted file mode 100644 index a49432184..000000000 --- a/priv/static/emoji/1f477-1f3ff.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f477-200d-2640-fe0f.svg b/priv/static/emoji/1f477-200d-2640-fe0f.svg deleted file mode 100644 index ecfd1b829..000000000 --- a/priv/static/emoji/1f477-200d-2640-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f477-200d-2642-fe0f.svg b/priv/static/emoji/1f477-200d-2642-fe0f.svg deleted file mode 100644 index d1e6b36d4..000000000 --- a/priv/static/emoji/1f477-200d-2642-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f477.svg b/priv/static/emoji/1f477.svg deleted file mode 100644 index d1e6b36d4..000000000 --- a/priv/static/emoji/1f477.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f478-1f3fb.svg b/priv/static/emoji/1f478-1f3fb.svg deleted file mode 100644 index 55dac0b15..000000000 --- a/priv/static/emoji/1f478-1f3fb.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f478-1f3fc.svg b/priv/static/emoji/1f478-1f3fc.svg deleted file mode 100644 index 2a4b944e4..000000000 --- a/priv/static/emoji/1f478-1f3fc.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f478-1f3fd.svg b/priv/static/emoji/1f478-1f3fd.svg deleted file mode 100644 index ee3213558..000000000 --- a/priv/static/emoji/1f478-1f3fd.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f478-1f3fe.svg b/priv/static/emoji/1f478-1f3fe.svg deleted file mode 100644 index 33437aabb..000000000 --- a/priv/static/emoji/1f478-1f3fe.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f478-1f3ff.svg b/priv/static/emoji/1f478-1f3ff.svg deleted file mode 100644 index 2bd03cc18..000000000 --- a/priv/static/emoji/1f478-1f3ff.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f478.svg b/priv/static/emoji/1f478.svg deleted file mode 100644 index 9704853c6..000000000 --- a/priv/static/emoji/1f478.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f479.svg b/priv/static/emoji/1f479.svg deleted file mode 100644 index 59babb152..000000000 --- a/priv/static/emoji/1f479.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f47a.svg b/priv/static/emoji/1f47a.svg deleted file mode 100644 index bb0db744a..000000000 --- a/priv/static/emoji/1f47a.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f47b.svg b/priv/static/emoji/1f47b.svg deleted file mode 100644 index 02e70fabb..000000000 --- a/priv/static/emoji/1f47b.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f47c-1f3fb.svg b/priv/static/emoji/1f47c-1f3fb.svg deleted file mode 100644 index 7a20bd077..000000000 --- a/priv/static/emoji/1f47c-1f3fb.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f47c-1f3fc.svg b/priv/static/emoji/1f47c-1f3fc.svg deleted file mode 100644 index 5e63fc02f..000000000 --- a/priv/static/emoji/1f47c-1f3fc.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f47c-1f3fd.svg b/priv/static/emoji/1f47c-1f3fd.svg deleted file mode 100644 index 17ed0f608..000000000 --- a/priv/static/emoji/1f47c-1f3fd.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f47c-1f3fe.svg b/priv/static/emoji/1f47c-1f3fe.svg deleted file mode 100644 index 208876d87..000000000 --- a/priv/static/emoji/1f47c-1f3fe.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f47c-1f3ff.svg b/priv/static/emoji/1f47c-1f3ff.svg deleted file mode 100644 index add446279..000000000 --- a/priv/static/emoji/1f47c-1f3ff.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f47c.svg b/priv/static/emoji/1f47c.svg deleted file mode 100644 index 1233b93ae..000000000 --- a/priv/static/emoji/1f47c.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f47d.svg b/priv/static/emoji/1f47d.svg deleted file mode 100644 index f6e98d1c1..000000000 --- a/priv/static/emoji/1f47d.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f47e.svg b/priv/static/emoji/1f47e.svg deleted file mode 100644 index cda344412..000000000 --- a/priv/static/emoji/1f47e.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f47f.svg b/priv/static/emoji/1f47f.svg deleted file mode 100644 index 61097f02f..000000000 --- a/priv/static/emoji/1f47f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f480.svg b/priv/static/emoji/1f480.svg deleted file mode 100644 index a8000b154..000000000 --- a/priv/static/emoji/1f480.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f481-1f3fb-200d-2640-fe0f.svg b/priv/static/emoji/1f481-1f3fb-200d-2640-fe0f.svg deleted file mode 100644 index c3f18727d..000000000 --- a/priv/static/emoji/1f481-1f3fb-200d-2640-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f481-1f3fb-200d-2642-fe0f.svg b/priv/static/emoji/1f481-1f3fb-200d-2642-fe0f.svg deleted file mode 100644 index 1b649a27a..000000000 --- a/priv/static/emoji/1f481-1f3fb-200d-2642-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f481-1f3fb.svg b/priv/static/emoji/1f481-1f3fb.svg deleted file mode 100644 index c3f18727d..000000000 --- a/priv/static/emoji/1f481-1f3fb.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f481-1f3fc-200d-2640-fe0f.svg b/priv/static/emoji/1f481-1f3fc-200d-2640-fe0f.svg deleted file mode 100644 index c3e88dcd5..000000000 --- a/priv/static/emoji/1f481-1f3fc-200d-2640-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f481-1f3fc-200d-2642-fe0f.svg b/priv/static/emoji/1f481-1f3fc-200d-2642-fe0f.svg deleted file mode 100644 index 49c9b730b..000000000 --- a/priv/static/emoji/1f481-1f3fc-200d-2642-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f481-1f3fc.svg b/priv/static/emoji/1f481-1f3fc.svg deleted file mode 100644 index c3e88dcd5..000000000 --- a/priv/static/emoji/1f481-1f3fc.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f481-1f3fd-200d-2640-fe0f.svg b/priv/static/emoji/1f481-1f3fd-200d-2640-fe0f.svg deleted file mode 100644 index 8b53b3006..000000000 --- a/priv/static/emoji/1f481-1f3fd-200d-2640-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f481-1f3fd-200d-2642-fe0f.svg b/priv/static/emoji/1f481-1f3fd-200d-2642-fe0f.svg deleted file mode 100644 index bee2e017f..000000000 --- a/priv/static/emoji/1f481-1f3fd-200d-2642-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f481-1f3fd.svg b/priv/static/emoji/1f481-1f3fd.svg deleted file mode 100644 index 8b53b3006..000000000 --- a/priv/static/emoji/1f481-1f3fd.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f481-1f3fe-200d-2640-fe0f.svg b/priv/static/emoji/1f481-1f3fe-200d-2640-fe0f.svg deleted file mode 100644 index 11e4e8320..000000000 --- a/priv/static/emoji/1f481-1f3fe-200d-2640-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f481-1f3fe-200d-2642-fe0f.svg b/priv/static/emoji/1f481-1f3fe-200d-2642-fe0f.svg deleted file mode 100644 index 70d2da2c8..000000000 --- a/priv/static/emoji/1f481-1f3fe-200d-2642-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f481-1f3fe.svg b/priv/static/emoji/1f481-1f3fe.svg deleted file mode 100644 index 11e4e8320..000000000 --- a/priv/static/emoji/1f481-1f3fe.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f481-1f3ff-200d-2640-fe0f.svg b/priv/static/emoji/1f481-1f3ff-200d-2640-fe0f.svg deleted file mode 100644 index e55c1eddf..000000000 --- a/priv/static/emoji/1f481-1f3ff-200d-2640-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f481-1f3ff-200d-2642-fe0f.svg b/priv/static/emoji/1f481-1f3ff-200d-2642-fe0f.svg deleted file mode 100644 index 7fcad0d8b..000000000 --- a/priv/static/emoji/1f481-1f3ff-200d-2642-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f481-1f3ff.svg b/priv/static/emoji/1f481-1f3ff.svg deleted file mode 100644 index e55c1eddf..000000000 --- a/priv/static/emoji/1f481-1f3ff.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f481-200d-2640-fe0f.svg b/priv/static/emoji/1f481-200d-2640-fe0f.svg deleted file mode 100644 index 7a4864fde..000000000 --- a/priv/static/emoji/1f481-200d-2640-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f481-200d-2642-fe0f.svg b/priv/static/emoji/1f481-200d-2642-fe0f.svg deleted file mode 100644 index 1bb54337c..000000000 --- a/priv/static/emoji/1f481-200d-2642-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f481.svg b/priv/static/emoji/1f481.svg deleted file mode 100644 index 7a4864fde..000000000 --- a/priv/static/emoji/1f481.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f482-1f3fb-200d-2640-fe0f.svg b/priv/static/emoji/1f482-1f3fb-200d-2640-fe0f.svg deleted file mode 100644 index 99f1919af..000000000 --- a/priv/static/emoji/1f482-1f3fb-200d-2640-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f482-1f3fb-200d-2642-fe0f.svg b/priv/static/emoji/1f482-1f3fb-200d-2642-fe0f.svg deleted file mode 100644 index c15d824fb..000000000 --- a/priv/static/emoji/1f482-1f3fb-200d-2642-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f482-1f3fb.svg b/priv/static/emoji/1f482-1f3fb.svg deleted file mode 100644 index c15d824fb..000000000 --- a/priv/static/emoji/1f482-1f3fb.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f482-1f3fc-200d-2640-fe0f.svg b/priv/static/emoji/1f482-1f3fc-200d-2640-fe0f.svg deleted file mode 100644 index 04f10dd10..000000000 --- a/priv/static/emoji/1f482-1f3fc-200d-2640-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f482-1f3fc-200d-2642-fe0f.svg b/priv/static/emoji/1f482-1f3fc-200d-2642-fe0f.svg deleted file mode 100644 index 1e6689e48..000000000 --- a/priv/static/emoji/1f482-1f3fc-200d-2642-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f482-1f3fc.svg b/priv/static/emoji/1f482-1f3fc.svg deleted file mode 100644 index 1e6689e48..000000000 --- a/priv/static/emoji/1f482-1f3fc.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f482-1f3fd-200d-2640-fe0f.svg b/priv/static/emoji/1f482-1f3fd-200d-2640-fe0f.svg deleted file mode 100644 index ebddd61b3..000000000 --- a/priv/static/emoji/1f482-1f3fd-200d-2640-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f482-1f3fd-200d-2642-fe0f.svg b/priv/static/emoji/1f482-1f3fd-200d-2642-fe0f.svg deleted file mode 100644 index 268da5487..000000000 --- a/priv/static/emoji/1f482-1f3fd-200d-2642-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f482-1f3fd.svg b/priv/static/emoji/1f482-1f3fd.svg deleted file mode 100644 index 268da5487..000000000 --- a/priv/static/emoji/1f482-1f3fd.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f482-1f3fe-200d-2640-fe0f.svg b/priv/static/emoji/1f482-1f3fe-200d-2640-fe0f.svg deleted file mode 100644 index 667d9ef9e..000000000 --- a/priv/static/emoji/1f482-1f3fe-200d-2640-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f482-1f3fe-200d-2642-fe0f.svg b/priv/static/emoji/1f482-1f3fe-200d-2642-fe0f.svg deleted file mode 100644 index 88b6c0f84..000000000 --- a/priv/static/emoji/1f482-1f3fe-200d-2642-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f482-1f3fe.svg b/priv/static/emoji/1f482-1f3fe.svg deleted file mode 100644 index 88b6c0f84..000000000 --- a/priv/static/emoji/1f482-1f3fe.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f482-1f3ff-200d-2640-fe0f.svg b/priv/static/emoji/1f482-1f3ff-200d-2640-fe0f.svg deleted file mode 100644 index 208fa74e1..000000000 --- a/priv/static/emoji/1f482-1f3ff-200d-2640-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f482-1f3ff-200d-2642-fe0f.svg b/priv/static/emoji/1f482-1f3ff-200d-2642-fe0f.svg deleted file mode 100644 index 831d1986e..000000000 --- a/priv/static/emoji/1f482-1f3ff-200d-2642-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f482-1f3ff.svg b/priv/static/emoji/1f482-1f3ff.svg deleted file mode 100644 index 831d1986e..000000000 --- a/priv/static/emoji/1f482-1f3ff.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f482-200d-2640-fe0f.svg b/priv/static/emoji/1f482-200d-2640-fe0f.svg deleted file mode 100644 index e8a33883f..000000000 --- a/priv/static/emoji/1f482-200d-2640-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f482-200d-2642-fe0f.svg b/priv/static/emoji/1f482-200d-2642-fe0f.svg deleted file mode 100644 index e8998c599..000000000 --- a/priv/static/emoji/1f482-200d-2642-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f482.svg b/priv/static/emoji/1f482.svg deleted file mode 100644 index e8998c599..000000000 --- a/priv/static/emoji/1f482.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f483-1f3fb.svg b/priv/static/emoji/1f483-1f3fb.svg deleted file mode 100644 index 72c8f2cef..000000000 --- a/priv/static/emoji/1f483-1f3fb.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f483-1f3fc.svg b/priv/static/emoji/1f483-1f3fc.svg deleted file mode 100644 index 972ac6a54..000000000 --- a/priv/static/emoji/1f483-1f3fc.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f483-1f3fd.svg b/priv/static/emoji/1f483-1f3fd.svg deleted file mode 100644 index 50377b687..000000000 --- a/priv/static/emoji/1f483-1f3fd.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f483-1f3fe.svg b/priv/static/emoji/1f483-1f3fe.svg deleted file mode 100644 index e4dde292f..000000000 --- a/priv/static/emoji/1f483-1f3fe.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f483-1f3ff.svg b/priv/static/emoji/1f483-1f3ff.svg deleted file mode 100644 index ac5350687..000000000 --- a/priv/static/emoji/1f483-1f3ff.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f483.svg b/priv/static/emoji/1f483.svg deleted file mode 100644 index abc19e5f7..000000000 --- a/priv/static/emoji/1f483.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f484.svg b/priv/static/emoji/1f484.svg deleted file mode 100644 index af7e86169..000000000 --- a/priv/static/emoji/1f484.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f485-1f3fb.svg b/priv/static/emoji/1f485-1f3fb.svg deleted file mode 100644 index 5cfe6e9d9..000000000 --- a/priv/static/emoji/1f485-1f3fb.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f485-1f3fc.svg b/priv/static/emoji/1f485-1f3fc.svg deleted file mode 100644 index af54b518a..000000000 --- a/priv/static/emoji/1f485-1f3fc.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f485-1f3fd.svg b/priv/static/emoji/1f485-1f3fd.svg deleted file mode 100644 index e1d99274e..000000000 --- a/priv/static/emoji/1f485-1f3fd.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f485-1f3fe.svg b/priv/static/emoji/1f485-1f3fe.svg deleted file mode 100644 index 18fea6316..000000000 --- a/priv/static/emoji/1f485-1f3fe.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f485-1f3ff.svg b/priv/static/emoji/1f485-1f3ff.svg deleted file mode 100644 index 49176735c..000000000 --- a/priv/static/emoji/1f485-1f3ff.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f485.svg b/priv/static/emoji/1f485.svg deleted file mode 100644 index 2ddba9368..000000000 --- a/priv/static/emoji/1f485.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f486-1f3fb-200d-2640-fe0f.svg b/priv/static/emoji/1f486-1f3fb-200d-2640-fe0f.svg deleted file mode 100644 index 28d27e296..000000000 --- a/priv/static/emoji/1f486-1f3fb-200d-2640-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f486-1f3fb-200d-2642-fe0f.svg b/priv/static/emoji/1f486-1f3fb-200d-2642-fe0f.svg deleted file mode 100644 index 92d7d0b5e..000000000 --- a/priv/static/emoji/1f486-1f3fb-200d-2642-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f486-1f3fb.svg b/priv/static/emoji/1f486-1f3fb.svg deleted file mode 100644 index 28d27e296..000000000 --- a/priv/static/emoji/1f486-1f3fb.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f486-1f3fc-200d-2640-fe0f.svg b/priv/static/emoji/1f486-1f3fc-200d-2640-fe0f.svg deleted file mode 100644 index dad79ad13..000000000 --- a/priv/static/emoji/1f486-1f3fc-200d-2640-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f486-1f3fc-200d-2642-fe0f.svg b/priv/static/emoji/1f486-1f3fc-200d-2642-fe0f.svg deleted file mode 100644 index 4627172b7..000000000 --- a/priv/static/emoji/1f486-1f3fc-200d-2642-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f486-1f3fc.svg b/priv/static/emoji/1f486-1f3fc.svg deleted file mode 100644 index dad79ad13..000000000 --- a/priv/static/emoji/1f486-1f3fc.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f486-1f3fd-200d-2640-fe0f.svg b/priv/static/emoji/1f486-1f3fd-200d-2640-fe0f.svg deleted file mode 100644 index 407d11b37..000000000 --- a/priv/static/emoji/1f486-1f3fd-200d-2640-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f486-1f3fd-200d-2642-fe0f.svg b/priv/static/emoji/1f486-1f3fd-200d-2642-fe0f.svg deleted file mode 100644 index e30946fe0..000000000 --- a/priv/static/emoji/1f486-1f3fd-200d-2642-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f486-1f3fd.svg b/priv/static/emoji/1f486-1f3fd.svg deleted file mode 100644 index 407d11b37..000000000 --- a/priv/static/emoji/1f486-1f3fd.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f486-1f3fe-200d-2640-fe0f.svg b/priv/static/emoji/1f486-1f3fe-200d-2640-fe0f.svg deleted file mode 100644 index defbf61f6..000000000 --- a/priv/static/emoji/1f486-1f3fe-200d-2640-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f486-1f3fe-200d-2642-fe0f.svg b/priv/static/emoji/1f486-1f3fe-200d-2642-fe0f.svg deleted file mode 100644 index e7d5b9d81..000000000 --- a/priv/static/emoji/1f486-1f3fe-200d-2642-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f486-1f3fe.svg b/priv/static/emoji/1f486-1f3fe.svg deleted file mode 100644 index defbf61f6..000000000 --- a/priv/static/emoji/1f486-1f3fe.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f486-1f3ff-200d-2640-fe0f.svg b/priv/static/emoji/1f486-1f3ff-200d-2640-fe0f.svg deleted file mode 100644 index 793967fdb..000000000 --- a/priv/static/emoji/1f486-1f3ff-200d-2640-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f486-1f3ff-200d-2642-fe0f.svg b/priv/static/emoji/1f486-1f3ff-200d-2642-fe0f.svg deleted file mode 100644 index 36fa5f905..000000000 --- a/priv/static/emoji/1f486-1f3ff-200d-2642-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f486-1f3ff.svg b/priv/static/emoji/1f486-1f3ff.svg deleted file mode 100644 index 793967fdb..000000000 --- a/priv/static/emoji/1f486-1f3ff.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f486-200d-2640-fe0f.svg b/priv/static/emoji/1f486-200d-2640-fe0f.svg deleted file mode 100644 index de2053b8d..000000000 --- a/priv/static/emoji/1f486-200d-2640-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f486-200d-2642-fe0f.svg b/priv/static/emoji/1f486-200d-2642-fe0f.svg deleted file mode 100644 index 39bb75b20..000000000 --- a/priv/static/emoji/1f486-200d-2642-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f486.svg b/priv/static/emoji/1f486.svg deleted file mode 100644 index 4ff1d7a63..000000000 --- a/priv/static/emoji/1f486.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f487-1f3fb-200d-2640-fe0f.svg b/priv/static/emoji/1f487-1f3fb-200d-2640-fe0f.svg deleted file mode 100644 index 3d2a27c64..000000000 --- a/priv/static/emoji/1f487-1f3fb-200d-2640-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f487-1f3fb-200d-2642-fe0f.svg b/priv/static/emoji/1f487-1f3fb-200d-2642-fe0f.svg deleted file mode 100644 index d50a42985..000000000 --- a/priv/static/emoji/1f487-1f3fb-200d-2642-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f487-1f3fb.svg b/priv/static/emoji/1f487-1f3fb.svg deleted file mode 100644 index 3d2a27c64..000000000 --- a/priv/static/emoji/1f487-1f3fb.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f487-1f3fc-200d-2640-fe0f.svg b/priv/static/emoji/1f487-1f3fc-200d-2640-fe0f.svg deleted file mode 100644 index fc1565368..000000000 --- a/priv/static/emoji/1f487-1f3fc-200d-2640-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f487-1f3fc-200d-2642-fe0f.svg b/priv/static/emoji/1f487-1f3fc-200d-2642-fe0f.svg deleted file mode 100644 index bc4c86b6d..000000000 --- a/priv/static/emoji/1f487-1f3fc-200d-2642-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f487-1f3fc.svg b/priv/static/emoji/1f487-1f3fc.svg deleted file mode 100644 index fc1565368..000000000 --- a/priv/static/emoji/1f487-1f3fc.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f487-1f3fd-200d-2640-fe0f.svg b/priv/static/emoji/1f487-1f3fd-200d-2640-fe0f.svg deleted file mode 100644 index c2d9ec711..000000000 --- a/priv/static/emoji/1f487-1f3fd-200d-2640-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f487-1f3fd-200d-2642-fe0f.svg b/priv/static/emoji/1f487-1f3fd-200d-2642-fe0f.svg deleted file mode 100644 index 89651cdb8..000000000 --- a/priv/static/emoji/1f487-1f3fd-200d-2642-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f487-1f3fd.svg b/priv/static/emoji/1f487-1f3fd.svg deleted file mode 100644 index c2d9ec711..000000000 --- a/priv/static/emoji/1f487-1f3fd.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f487-1f3fe-200d-2640-fe0f.svg b/priv/static/emoji/1f487-1f3fe-200d-2640-fe0f.svg deleted file mode 100644 index ed2374cf3..000000000 --- a/priv/static/emoji/1f487-1f3fe-200d-2640-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f487-1f3fe-200d-2642-fe0f.svg b/priv/static/emoji/1f487-1f3fe-200d-2642-fe0f.svg deleted file mode 100644 index 8deb60dbc..000000000 --- a/priv/static/emoji/1f487-1f3fe-200d-2642-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f487-1f3fe.svg b/priv/static/emoji/1f487-1f3fe.svg deleted file mode 100644 index ed2374cf3..000000000 --- a/priv/static/emoji/1f487-1f3fe.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f487-1f3ff-200d-2640-fe0f.svg b/priv/static/emoji/1f487-1f3ff-200d-2640-fe0f.svg deleted file mode 100644 index b8b4754c0..000000000 --- a/priv/static/emoji/1f487-1f3ff-200d-2640-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f487-1f3ff-200d-2642-fe0f.svg b/priv/static/emoji/1f487-1f3ff-200d-2642-fe0f.svg deleted file mode 100644 index ba85114d5..000000000 --- a/priv/static/emoji/1f487-1f3ff-200d-2642-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f487-1f3ff.svg b/priv/static/emoji/1f487-1f3ff.svg deleted file mode 100644 index b8b4754c0..000000000 --- a/priv/static/emoji/1f487-1f3ff.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f487-200d-2640-fe0f.svg b/priv/static/emoji/1f487-200d-2640-fe0f.svg deleted file mode 100644 index 8bfab8018..000000000 --- a/priv/static/emoji/1f487-200d-2640-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f487-200d-2642-fe0f.svg b/priv/static/emoji/1f487-200d-2642-fe0f.svg deleted file mode 100644 index e3bc6d90a..000000000 --- a/priv/static/emoji/1f487-200d-2642-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f487.svg b/priv/static/emoji/1f487.svg deleted file mode 100644 index 8bfab8018..000000000 --- a/priv/static/emoji/1f487.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f488.svg b/priv/static/emoji/1f488.svg deleted file mode 100644 index 33ed33287..000000000 --- a/priv/static/emoji/1f488.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f489.svg b/priv/static/emoji/1f489.svg deleted file mode 100644 index ef9c72c74..000000000 --- a/priv/static/emoji/1f489.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f48a.svg b/priv/static/emoji/1f48a.svg deleted file mode 100644 index 931839bfb..000000000 --- a/priv/static/emoji/1f48a.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f48b.svg b/priv/static/emoji/1f48b.svg deleted file mode 100644 index f71fc97fc..000000000 --- a/priv/static/emoji/1f48b.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f48c.svg b/priv/static/emoji/1f48c.svg deleted file mode 100644 index 0734ecf23..000000000 --- a/priv/static/emoji/1f48c.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f48d.svg b/priv/static/emoji/1f48d.svg deleted file mode 100644 index 083416596..000000000 --- a/priv/static/emoji/1f48d.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f48e.svg b/priv/static/emoji/1f48e.svg deleted file mode 100644 index a379f7195..000000000 --- a/priv/static/emoji/1f48e.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f48f.svg b/priv/static/emoji/1f48f.svg deleted file mode 100644 index 8248ed607..000000000 --- a/priv/static/emoji/1f48f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f490.svg b/priv/static/emoji/1f490.svg deleted file mode 100644 index f080ef7f1..000000000 --- a/priv/static/emoji/1f490.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f491.svg b/priv/static/emoji/1f491.svg deleted file mode 100644 index ece280dc0..000000000 --- a/priv/static/emoji/1f491.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f492.svg b/priv/static/emoji/1f492.svg deleted file mode 100644 index 974ddac8f..000000000 --- a/priv/static/emoji/1f492.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f493.svg b/priv/static/emoji/1f493.svg deleted file mode 100644 index 404a6e769..000000000 --- a/priv/static/emoji/1f493.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f494.svg b/priv/static/emoji/1f494.svg deleted file mode 100644 index d50c77047..000000000 --- a/priv/static/emoji/1f494.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f495.svg b/priv/static/emoji/1f495.svg deleted file mode 100644 index b4b3216f3..000000000 --- a/priv/static/emoji/1f495.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f496.svg b/priv/static/emoji/1f496.svg deleted file mode 100644 index aa3abbca7..000000000 --- a/priv/static/emoji/1f496.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f497.svg b/priv/static/emoji/1f497.svg deleted file mode 100644 index 295f9d48e..000000000 --- a/priv/static/emoji/1f497.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f498.svg b/priv/static/emoji/1f498.svg deleted file mode 100644 index 32d819fe4..000000000 --- a/priv/static/emoji/1f498.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f499.svg b/priv/static/emoji/1f499.svg deleted file mode 100644 index 9eade1212..000000000 --- a/priv/static/emoji/1f499.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f49a.svg b/priv/static/emoji/1f49a.svg deleted file mode 100644 index b81f70292..000000000 --- a/priv/static/emoji/1f49a.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f49b.svg b/priv/static/emoji/1f49b.svg deleted file mode 100644 index e57e2444a..000000000 --- a/priv/static/emoji/1f49b.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f49c.svg b/priv/static/emoji/1f49c.svg deleted file mode 100644 index f1dc073c9..000000000 --- a/priv/static/emoji/1f49c.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f49d.svg b/priv/static/emoji/1f49d.svg deleted file mode 100644 index 5db2632ff..000000000 --- a/priv/static/emoji/1f49d.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f49e.svg b/priv/static/emoji/1f49e.svg deleted file mode 100644 index b9459b7d5..000000000 --- a/priv/static/emoji/1f49e.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f49f.svg b/priv/static/emoji/1f49f.svg deleted file mode 100644 index 71adb414f..000000000 --- a/priv/static/emoji/1f49f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f4a0.svg b/priv/static/emoji/1f4a0.svg deleted file mode 100644 index 9c8056560..000000000 --- a/priv/static/emoji/1f4a0.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f4a1.svg b/priv/static/emoji/1f4a1.svg deleted file mode 100644 index 88b62e387..000000000 --- a/priv/static/emoji/1f4a1.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f4a2.svg b/priv/static/emoji/1f4a2.svg deleted file mode 100644 index 78f797b3f..000000000 --- a/priv/static/emoji/1f4a2.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f4a3.svg b/priv/static/emoji/1f4a3.svg deleted file mode 100644 index feb2c9d29..000000000 --- a/priv/static/emoji/1f4a3.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f4a4.svg b/priv/static/emoji/1f4a4.svg deleted file mode 100644 index b713e97a6..000000000 --- a/priv/static/emoji/1f4a4.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f4a5.svg b/priv/static/emoji/1f4a5.svg deleted file mode 100644 index 36c50d63b..000000000 --- a/priv/static/emoji/1f4a5.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f4a6.svg b/priv/static/emoji/1f4a6.svg deleted file mode 100644 index fd53cd840..000000000 --- a/priv/static/emoji/1f4a6.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f4a7.svg b/priv/static/emoji/1f4a7.svg deleted file mode 100644 index 3116ec317..000000000 --- a/priv/static/emoji/1f4a7.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f4a8.svg b/priv/static/emoji/1f4a8.svg deleted file mode 100644 index 006e04ad4..000000000 --- a/priv/static/emoji/1f4a8.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f4a9.svg b/priv/static/emoji/1f4a9.svg deleted file mode 100644 index 19221f6a6..000000000 --- a/priv/static/emoji/1f4a9.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f4aa-1f3fb.svg b/priv/static/emoji/1f4aa-1f3fb.svg deleted file mode 100644 index 63f868316..000000000 --- a/priv/static/emoji/1f4aa-1f3fb.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f4aa-1f3fc.svg b/priv/static/emoji/1f4aa-1f3fc.svg deleted file mode 100644 index d9e082108..000000000 --- a/priv/static/emoji/1f4aa-1f3fc.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f4aa-1f3fd.svg b/priv/static/emoji/1f4aa-1f3fd.svg deleted file mode 100644 index 39820dbc7..000000000 --- a/priv/static/emoji/1f4aa-1f3fd.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f4aa-1f3fe.svg b/priv/static/emoji/1f4aa-1f3fe.svg deleted file mode 100644 index d93cc7b9f..000000000 --- a/priv/static/emoji/1f4aa-1f3fe.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f4aa-1f3ff.svg b/priv/static/emoji/1f4aa-1f3ff.svg deleted file mode 100644 index d9b4481ed..000000000 --- a/priv/static/emoji/1f4aa-1f3ff.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f4aa.svg b/priv/static/emoji/1f4aa.svg deleted file mode 100644 index 38a7bb525..000000000 --- a/priv/static/emoji/1f4aa.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f4ab.svg b/priv/static/emoji/1f4ab.svg deleted file mode 100644 index af3261c2d..000000000 --- a/priv/static/emoji/1f4ab.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f4ac.svg b/priv/static/emoji/1f4ac.svg deleted file mode 100644 index 11533c5b5..000000000 --- a/priv/static/emoji/1f4ac.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f4ad.svg b/priv/static/emoji/1f4ad.svg deleted file mode 100644 index f3d835c8e..000000000 --- a/priv/static/emoji/1f4ad.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f4ae.svg b/priv/static/emoji/1f4ae.svg deleted file mode 100644 index 7f8b52870..000000000 --- a/priv/static/emoji/1f4ae.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f4af.svg b/priv/static/emoji/1f4af.svg deleted file mode 100644 index 3d565cc64..000000000 --- a/priv/static/emoji/1f4af.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f4b0.svg b/priv/static/emoji/1f4b0.svg deleted file mode 100644 index 5b41c52d4..000000000 --- a/priv/static/emoji/1f4b0.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f4b1.svg b/priv/static/emoji/1f4b1.svg deleted file mode 100644 index b67b0cd49..000000000 --- a/priv/static/emoji/1f4b1.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f4b2.svg b/priv/static/emoji/1f4b2.svg deleted file mode 100644 index 1bc1ead4f..000000000 --- a/priv/static/emoji/1f4b2.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f4b3.svg b/priv/static/emoji/1f4b3.svg deleted file mode 100644 index 97641af46..000000000 --- a/priv/static/emoji/1f4b3.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f4b4.svg b/priv/static/emoji/1f4b4.svg deleted file mode 100644 index 5db237d4e..000000000 --- a/priv/static/emoji/1f4b4.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f4b5.svg b/priv/static/emoji/1f4b5.svg deleted file mode 100644 index 113c6d0bb..000000000 --- a/priv/static/emoji/1f4b5.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f4b6.svg b/priv/static/emoji/1f4b6.svg deleted file mode 100644 index 1869987fe..000000000 --- a/priv/static/emoji/1f4b6.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f4b7.svg b/priv/static/emoji/1f4b7.svg deleted file mode 100644 index 93a16ff62..000000000 --- a/priv/static/emoji/1f4b7.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f4b8.svg b/priv/static/emoji/1f4b8.svg deleted file mode 100644 index d2d63ceb9..000000000 --- a/priv/static/emoji/1f4b8.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f4b9.svg b/priv/static/emoji/1f4b9.svg deleted file mode 100644 index f6143a066..000000000 --- a/priv/static/emoji/1f4b9.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f4ba.svg b/priv/static/emoji/1f4ba.svg deleted file mode 100644 index bf27bb184..000000000 --- a/priv/static/emoji/1f4ba.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f4bb.svg b/priv/static/emoji/1f4bb.svg deleted file mode 100644 index 93357fa23..000000000 --- a/priv/static/emoji/1f4bb.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f4bc.svg b/priv/static/emoji/1f4bc.svg deleted file mode 100644 index c5336c758..000000000 --- a/priv/static/emoji/1f4bc.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f4bd.svg b/priv/static/emoji/1f4bd.svg deleted file mode 100644 index a557b9bf2..000000000 --- a/priv/static/emoji/1f4bd.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f4be.svg b/priv/static/emoji/1f4be.svg deleted file mode 100644 index 7c9762695..000000000 --- a/priv/static/emoji/1f4be.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f4bf.svg b/priv/static/emoji/1f4bf.svg deleted file mode 100644 index 6824a0641..000000000 --- a/priv/static/emoji/1f4bf.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f4c0.svg b/priv/static/emoji/1f4c0.svg deleted file mode 100644 index 1b3b38b84..000000000 --- a/priv/static/emoji/1f4c0.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f4c1.svg b/priv/static/emoji/1f4c1.svg deleted file mode 100644 index 099d58bac..000000000 --- a/priv/static/emoji/1f4c1.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f4c2.svg b/priv/static/emoji/1f4c2.svg deleted file mode 100644 index 60ec37947..000000000 --- a/priv/static/emoji/1f4c2.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f4c3.svg b/priv/static/emoji/1f4c3.svg deleted file mode 100644 index bf19ad292..000000000 --- a/priv/static/emoji/1f4c3.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f4c4.svg b/priv/static/emoji/1f4c4.svg deleted file mode 100644 index 4631bc535..000000000 --- a/priv/static/emoji/1f4c4.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f4c5.svg b/priv/static/emoji/1f4c5.svg deleted file mode 100644 index ca68a82a6..000000000 --- a/priv/static/emoji/1f4c5.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f4c6.svg b/priv/static/emoji/1f4c6.svg deleted file mode 100644 index ff073d742..000000000 --- a/priv/static/emoji/1f4c6.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f4c7.svg b/priv/static/emoji/1f4c7.svg deleted file mode 100644 index 097a7151a..000000000 --- a/priv/static/emoji/1f4c7.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f4c8.svg b/priv/static/emoji/1f4c8.svg deleted file mode 100644 index cbf108fc0..000000000 --- a/priv/static/emoji/1f4c8.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f4c9.svg b/priv/static/emoji/1f4c9.svg deleted file mode 100644 index ac8c258cc..000000000 --- a/priv/static/emoji/1f4c9.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f4ca.svg b/priv/static/emoji/1f4ca.svg deleted file mode 100644 index 3c572cb85..000000000 --- a/priv/static/emoji/1f4ca.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f4cb.svg b/priv/static/emoji/1f4cb.svg deleted file mode 100644 index a51b34a91..000000000 --- a/priv/static/emoji/1f4cb.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f4cc.svg b/priv/static/emoji/1f4cc.svg deleted file mode 100644 index 2ab6da3e1..000000000 --- a/priv/static/emoji/1f4cc.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f4cd.svg b/priv/static/emoji/1f4cd.svg deleted file mode 100644 index 8ab3159c5..000000000 --- a/priv/static/emoji/1f4cd.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f4ce.svg b/priv/static/emoji/1f4ce.svg deleted file mode 100644 index 284cf6674..000000000 --- a/priv/static/emoji/1f4ce.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f4cf.svg b/priv/static/emoji/1f4cf.svg deleted file mode 100644 index 37b035b23..000000000 --- a/priv/static/emoji/1f4cf.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f4d0.svg b/priv/static/emoji/1f4d0.svg deleted file mode 100644 index b36515014..000000000 --- a/priv/static/emoji/1f4d0.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f4d1.svg b/priv/static/emoji/1f4d1.svg deleted file mode 100644 index b3bdc36ca..000000000 --- a/priv/static/emoji/1f4d1.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f4d2.svg b/priv/static/emoji/1f4d2.svg deleted file mode 100644 index ee15b1689..000000000 --- a/priv/static/emoji/1f4d2.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f4d3.svg b/priv/static/emoji/1f4d3.svg deleted file mode 100644 index b6f49c051..000000000 --- a/priv/static/emoji/1f4d3.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f4d4.svg b/priv/static/emoji/1f4d4.svg deleted file mode 100644 index 2bfc4cad5..000000000 --- a/priv/static/emoji/1f4d4.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f4d5.svg b/priv/static/emoji/1f4d5.svg deleted file mode 100644 index 701ff017c..000000000 --- a/priv/static/emoji/1f4d5.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f4d6.svg b/priv/static/emoji/1f4d6.svg deleted file mode 100644 index 0dfd08325..000000000 --- a/priv/static/emoji/1f4d6.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f4d7.svg b/priv/static/emoji/1f4d7.svg deleted file mode 100644 index ff7474477..000000000 --- a/priv/static/emoji/1f4d7.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f4d8.svg b/priv/static/emoji/1f4d8.svg deleted file mode 100644 index ce459283f..000000000 --- a/priv/static/emoji/1f4d8.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f4d9.svg b/priv/static/emoji/1f4d9.svg deleted file mode 100644 index b055f66bb..000000000 --- a/priv/static/emoji/1f4d9.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f4da.svg b/priv/static/emoji/1f4da.svg deleted file mode 100644 index 422d38841..000000000 --- a/priv/static/emoji/1f4da.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f4db.svg b/priv/static/emoji/1f4db.svg deleted file mode 100644 index 00f1a1061..000000000 --- a/priv/static/emoji/1f4db.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f4dc.svg b/priv/static/emoji/1f4dc.svg deleted file mode 100644 index 2a7fd37d5..000000000 --- a/priv/static/emoji/1f4dc.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f4dd.svg b/priv/static/emoji/1f4dd.svg deleted file mode 100644 index 1697ffbec..000000000 --- a/priv/static/emoji/1f4dd.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f4de.svg b/priv/static/emoji/1f4de.svg deleted file mode 100644 index cfaf7ca8f..000000000 --- a/priv/static/emoji/1f4de.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f4df.svg b/priv/static/emoji/1f4df.svg deleted file mode 100644 index d7d4b5fa5..000000000 --- a/priv/static/emoji/1f4df.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f4e0.svg b/priv/static/emoji/1f4e0.svg deleted file mode 100644 index 5f88b1334..000000000 --- a/priv/static/emoji/1f4e0.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f4e1.svg b/priv/static/emoji/1f4e1.svg deleted file mode 100644 index dcb02946d..000000000 --- a/priv/static/emoji/1f4e1.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f4e2.svg b/priv/static/emoji/1f4e2.svg deleted file mode 100644 index 8bd0c94fb..000000000 --- a/priv/static/emoji/1f4e2.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f4e3.svg b/priv/static/emoji/1f4e3.svg deleted file mode 100644 index 20cbc7d43..000000000 --- a/priv/static/emoji/1f4e3.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f4e4.svg b/priv/static/emoji/1f4e4.svg deleted file mode 100644 index 62d9033ec..000000000 --- a/priv/static/emoji/1f4e4.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f4e5.svg b/priv/static/emoji/1f4e5.svg deleted file mode 100644 index 921ca18a9..000000000 --- a/priv/static/emoji/1f4e5.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f4e6.svg b/priv/static/emoji/1f4e6.svg deleted file mode 100644 index 1ce096119..000000000 --- a/priv/static/emoji/1f4e6.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f4e7.svg b/priv/static/emoji/1f4e7.svg deleted file mode 100644 index d8ce780ce..000000000 --- a/priv/static/emoji/1f4e7.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f4e8.svg b/priv/static/emoji/1f4e8.svg deleted file mode 100644 index 7c59e93a4..000000000 --- a/priv/static/emoji/1f4e8.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f4e9.svg b/priv/static/emoji/1f4e9.svg deleted file mode 100644 index 1847cd13c..000000000 --- a/priv/static/emoji/1f4e9.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f4ea.svg b/priv/static/emoji/1f4ea.svg deleted file mode 100644 index 54f609e92..000000000 --- a/priv/static/emoji/1f4ea.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f4eb.svg b/priv/static/emoji/1f4eb.svg deleted file mode 100644 index 79ea795a8..000000000 --- a/priv/static/emoji/1f4eb.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f4ec.svg b/priv/static/emoji/1f4ec.svg deleted file mode 100644 index 27d6ebe61..000000000 --- a/priv/static/emoji/1f4ec.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f4ed.svg b/priv/static/emoji/1f4ed.svg deleted file mode 100644 index 4e969c95c..000000000 --- a/priv/static/emoji/1f4ed.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f4ee.svg b/priv/static/emoji/1f4ee.svg deleted file mode 100644 index 61c0332d2..000000000 --- a/priv/static/emoji/1f4ee.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f4ef.svg b/priv/static/emoji/1f4ef.svg deleted file mode 100644 index 2fa1e2d47..000000000 --- a/priv/static/emoji/1f4ef.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f4f0.svg b/priv/static/emoji/1f4f0.svg deleted file mode 100644 index a97d4771c..000000000 --- a/priv/static/emoji/1f4f0.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f4f1.svg b/priv/static/emoji/1f4f1.svg deleted file mode 100644 index 81c4e99cb..000000000 --- a/priv/static/emoji/1f4f1.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f4f2.svg b/priv/static/emoji/1f4f2.svg deleted file mode 100644 index 82f5293e7..000000000 --- a/priv/static/emoji/1f4f2.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f4f3.svg b/priv/static/emoji/1f4f3.svg deleted file mode 100644 index 287d5a9dd..000000000 --- a/priv/static/emoji/1f4f3.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f4f4.svg b/priv/static/emoji/1f4f4.svg deleted file mode 100644 index fc2d2cd4a..000000000 --- a/priv/static/emoji/1f4f4.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f4f5.svg b/priv/static/emoji/1f4f5.svg deleted file mode 100644 index fdbab38c4..000000000 --- a/priv/static/emoji/1f4f5.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f4f6.svg b/priv/static/emoji/1f4f6.svg deleted file mode 100644 index df646fd3b..000000000 --- a/priv/static/emoji/1f4f6.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f4f7.svg b/priv/static/emoji/1f4f7.svg deleted file mode 100644 index aa2d9c503..000000000 --- a/priv/static/emoji/1f4f7.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f4f8.svg b/priv/static/emoji/1f4f8.svg deleted file mode 100644 index 9bf3cf70b..000000000 --- a/priv/static/emoji/1f4f8.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f4f9.svg b/priv/static/emoji/1f4f9.svg deleted file mode 100644 index f1abb5901..000000000 --- a/priv/static/emoji/1f4f9.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f4fa.svg b/priv/static/emoji/1f4fa.svg deleted file mode 100644 index 5f864dee5..000000000 --- a/priv/static/emoji/1f4fa.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f4fb.svg b/priv/static/emoji/1f4fb.svg deleted file mode 100644 index 33808ad72..000000000 --- a/priv/static/emoji/1f4fb.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f4fc.svg b/priv/static/emoji/1f4fc.svg deleted file mode 100644 index 31024baf1..000000000 --- a/priv/static/emoji/1f4fc.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f4fd.svg b/priv/static/emoji/1f4fd.svg deleted file mode 100644 index b12b42ce9..000000000 --- a/priv/static/emoji/1f4fd.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f4ff.svg b/priv/static/emoji/1f4ff.svg deleted file mode 100644 index a38a8e276..000000000 --- a/priv/static/emoji/1f4ff.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f500.svg b/priv/static/emoji/1f500.svg deleted file mode 100644 index 43f78bc46..000000000 --- a/priv/static/emoji/1f500.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f501.svg b/priv/static/emoji/1f501.svg deleted file mode 100644 index 27efdab85..000000000 --- a/priv/static/emoji/1f501.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f502.svg b/priv/static/emoji/1f502.svg deleted file mode 100644 index 926d89658..000000000 --- a/priv/static/emoji/1f502.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f503.svg b/priv/static/emoji/1f503.svg deleted file mode 100644 index e35eb881c..000000000 --- a/priv/static/emoji/1f503.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f504.svg b/priv/static/emoji/1f504.svg deleted file mode 100644 index c88a827cd..000000000 --- a/priv/static/emoji/1f504.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f505.svg b/priv/static/emoji/1f505.svg deleted file mode 100644 index 998b8f43e..000000000 --- a/priv/static/emoji/1f505.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f506.svg b/priv/static/emoji/1f506.svg deleted file mode 100644 index 2a2d58ca4..000000000 --- a/priv/static/emoji/1f506.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f507.svg b/priv/static/emoji/1f507.svg deleted file mode 100644 index 39dddb524..000000000 --- a/priv/static/emoji/1f507.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f508.svg b/priv/static/emoji/1f508.svg deleted file mode 100644 index 11a7b0ed2..000000000 --- a/priv/static/emoji/1f508.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f509.svg b/priv/static/emoji/1f509.svg deleted file mode 100644 index 9fb6c1cd2..000000000 --- a/priv/static/emoji/1f509.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f50a.svg b/priv/static/emoji/1f50a.svg deleted file mode 100644 index de54654e9..000000000 --- a/priv/static/emoji/1f50a.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f50b.svg b/priv/static/emoji/1f50b.svg deleted file mode 100644 index 66d420fc3..000000000 --- a/priv/static/emoji/1f50b.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f50c.svg b/priv/static/emoji/1f50c.svg deleted file mode 100644 index 8f432f0de..000000000 --- a/priv/static/emoji/1f50c.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f50d.svg b/priv/static/emoji/1f50d.svg deleted file mode 100644 index 038bbc24f..000000000 --- a/priv/static/emoji/1f50d.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f50e.svg b/priv/static/emoji/1f50e.svg deleted file mode 100644 index 778ae77ef..000000000 --- a/priv/static/emoji/1f50e.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f50f.svg b/priv/static/emoji/1f50f.svg deleted file mode 100644 index d2ae4863c..000000000 --- a/priv/static/emoji/1f50f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f510.svg b/priv/static/emoji/1f510.svg deleted file mode 100644 index 014079e8b..000000000 --- a/priv/static/emoji/1f510.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f511.svg b/priv/static/emoji/1f511.svg deleted file mode 100644 index 7b4dc2a73..000000000 --- a/priv/static/emoji/1f511.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f512.svg b/priv/static/emoji/1f512.svg deleted file mode 100644 index 378fabf40..000000000 --- a/priv/static/emoji/1f512.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f513.svg b/priv/static/emoji/1f513.svg deleted file mode 100644 index cd82ec8e3..000000000 --- a/priv/static/emoji/1f513.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f514.svg b/priv/static/emoji/1f514.svg deleted file mode 100644 index 9e89a7caa..000000000 --- a/priv/static/emoji/1f514.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f515.svg b/priv/static/emoji/1f515.svg deleted file mode 100644 index 921d352c3..000000000 --- a/priv/static/emoji/1f515.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f516.svg b/priv/static/emoji/1f516.svg deleted file mode 100644 index 38dc790ab..000000000 --- a/priv/static/emoji/1f516.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f517.svg b/priv/static/emoji/1f517.svg deleted file mode 100644 index 22ddbe085..000000000 --- a/priv/static/emoji/1f517.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f518.svg b/priv/static/emoji/1f518.svg deleted file mode 100644 index e4d034803..000000000 --- a/priv/static/emoji/1f518.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f519.svg b/priv/static/emoji/1f519.svg deleted file mode 100644 index ddf8fbd3e..000000000 --- a/priv/static/emoji/1f519.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f51a.svg b/priv/static/emoji/1f51a.svg deleted file mode 100644 index d964c524e..000000000 --- a/priv/static/emoji/1f51a.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f51b.svg b/priv/static/emoji/1f51b.svg deleted file mode 100644 index a885bab4f..000000000 --- a/priv/static/emoji/1f51b.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f51c.svg b/priv/static/emoji/1f51c.svg deleted file mode 100644 index 690428101..000000000 --- a/priv/static/emoji/1f51c.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f51d.svg b/priv/static/emoji/1f51d.svg deleted file mode 100644 index 54ab898eb..000000000 --- a/priv/static/emoji/1f51d.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f51e.svg b/priv/static/emoji/1f51e.svg deleted file mode 100644 index 8f877f8bb..000000000 --- a/priv/static/emoji/1f51e.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f51f.svg b/priv/static/emoji/1f51f.svg deleted file mode 100644 index 05dc8b91a..000000000 --- a/priv/static/emoji/1f51f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f520.svg b/priv/static/emoji/1f520.svg deleted file mode 100644 index 429f11364..000000000 --- a/priv/static/emoji/1f520.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f521.svg b/priv/static/emoji/1f521.svg deleted file mode 100644 index 3c2076eab..000000000 --- a/priv/static/emoji/1f521.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f522.svg b/priv/static/emoji/1f522.svg deleted file mode 100644 index 316f8ee83..000000000 --- a/priv/static/emoji/1f522.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f523.svg b/priv/static/emoji/1f523.svg deleted file mode 100644 index 71ac15784..000000000 --- a/priv/static/emoji/1f523.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f524.svg b/priv/static/emoji/1f524.svg deleted file mode 100644 index e3e9464c6..000000000 --- a/priv/static/emoji/1f524.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f525.svg b/priv/static/emoji/1f525.svg deleted file mode 100644 index e7dee6dd2..000000000 --- a/priv/static/emoji/1f525.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f526.svg b/priv/static/emoji/1f526.svg deleted file mode 100644 index 1aff8ae2c..000000000 --- a/priv/static/emoji/1f526.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f527.svg b/priv/static/emoji/1f527.svg deleted file mode 100644 index 73a06d0da..000000000 --- a/priv/static/emoji/1f527.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f528.svg b/priv/static/emoji/1f528.svg deleted file mode 100644 index 1a0485e53..000000000 --- a/priv/static/emoji/1f528.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f529.svg b/priv/static/emoji/1f529.svg deleted file mode 100644 index e02eaa6fd..000000000 --- a/priv/static/emoji/1f529.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f52a.svg b/priv/static/emoji/1f52a.svg deleted file mode 100644 index d2ba9e7f0..000000000 --- a/priv/static/emoji/1f52a.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f52b.svg b/priv/static/emoji/1f52b.svg deleted file mode 100644 index 3c8b6e43e..000000000 --- a/priv/static/emoji/1f52b.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f52c.svg b/priv/static/emoji/1f52c.svg deleted file mode 100644 index e910ee894..000000000 --- a/priv/static/emoji/1f52c.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f52d.svg b/priv/static/emoji/1f52d.svg deleted file mode 100644 index 113c0330a..000000000 --- a/priv/static/emoji/1f52d.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f52e.svg b/priv/static/emoji/1f52e.svg deleted file mode 100644 index d7e09232d..000000000 --- a/priv/static/emoji/1f52e.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f52f.svg b/priv/static/emoji/1f52f.svg deleted file mode 100644 index 7efa37243..000000000 --- a/priv/static/emoji/1f52f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f530.svg b/priv/static/emoji/1f530.svg deleted file mode 100644 index a6b9fbe1f..000000000 --- a/priv/static/emoji/1f530.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f531.svg b/priv/static/emoji/1f531.svg deleted file mode 100644 index 20cc78d8e..000000000 --- a/priv/static/emoji/1f531.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f532.svg b/priv/static/emoji/1f532.svg deleted file mode 100644 index a2e37de7f..000000000 --- a/priv/static/emoji/1f532.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f533.svg b/priv/static/emoji/1f533.svg deleted file mode 100644 index 13f35b71a..000000000 --- a/priv/static/emoji/1f533.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f534.svg b/priv/static/emoji/1f534.svg deleted file mode 100644 index d98cc6d64..000000000 --- a/priv/static/emoji/1f534.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f535.svg b/priv/static/emoji/1f535.svg deleted file mode 100644 index 9d4ab8f50..000000000 --- a/priv/static/emoji/1f535.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f536.svg b/priv/static/emoji/1f536.svg deleted file mode 100644 index 116e72265..000000000 --- a/priv/static/emoji/1f536.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f537.svg b/priv/static/emoji/1f537.svg deleted file mode 100644 index 44acab23d..000000000 --- a/priv/static/emoji/1f537.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f538.svg b/priv/static/emoji/1f538.svg deleted file mode 100644 index 435ad6a5d..000000000 --- a/priv/static/emoji/1f538.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f539.svg b/priv/static/emoji/1f539.svg deleted file mode 100644 index bb4865d14..000000000 --- a/priv/static/emoji/1f539.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f53a.svg b/priv/static/emoji/1f53a.svg deleted file mode 100644 index 96d0ebb20..000000000 --- a/priv/static/emoji/1f53a.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f53b.svg b/priv/static/emoji/1f53b.svg deleted file mode 100644 index f846cbfb5..000000000 --- a/priv/static/emoji/1f53b.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f53c.svg b/priv/static/emoji/1f53c.svg deleted file mode 100644 index b057a592d..000000000 --- a/priv/static/emoji/1f53c.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f53d.svg b/priv/static/emoji/1f53d.svg deleted file mode 100644 index 09ec8746d..000000000 --- a/priv/static/emoji/1f53d.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f549.svg b/priv/static/emoji/1f549.svg deleted file mode 100644 index 9e6a1efb2..000000000 --- a/priv/static/emoji/1f549.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f54a.svg b/priv/static/emoji/1f54a.svg deleted file mode 100644 index 613e4956d..000000000 --- a/priv/static/emoji/1f54a.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f54b.svg b/priv/static/emoji/1f54b.svg deleted file mode 100644 index 3cd63ee3d..000000000 --- a/priv/static/emoji/1f54b.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f54c.svg b/priv/static/emoji/1f54c.svg deleted file mode 100644 index 6ef551653..000000000 --- a/priv/static/emoji/1f54c.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f54d.svg b/priv/static/emoji/1f54d.svg deleted file mode 100644 index c82ae007c..000000000 --- a/priv/static/emoji/1f54d.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f54e.svg b/priv/static/emoji/1f54e.svg deleted file mode 100644 index 1ebcec52f..000000000 --- a/priv/static/emoji/1f54e.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f550.svg b/priv/static/emoji/1f550.svg deleted file mode 100644 index da82d9765..000000000 --- a/priv/static/emoji/1f550.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f551.svg b/priv/static/emoji/1f551.svg deleted file mode 100644 index 96ab682ea..000000000 --- a/priv/static/emoji/1f551.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f552.svg b/priv/static/emoji/1f552.svg deleted file mode 100644 index ce4c487a0..000000000 --- a/priv/static/emoji/1f552.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f553.svg b/priv/static/emoji/1f553.svg deleted file mode 100644 index 2ac4eade3..000000000 --- a/priv/static/emoji/1f553.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f554.svg b/priv/static/emoji/1f554.svg deleted file mode 100644 index 1a2ef1c31..000000000 --- a/priv/static/emoji/1f554.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f555.svg b/priv/static/emoji/1f555.svg deleted file mode 100644 index 5021b165e..000000000 --- a/priv/static/emoji/1f555.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f556.svg b/priv/static/emoji/1f556.svg deleted file mode 100644 index a2eb7ef2a..000000000 --- a/priv/static/emoji/1f556.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f557.svg b/priv/static/emoji/1f557.svg deleted file mode 100644 index 3a7ff9b04..000000000 --- a/priv/static/emoji/1f557.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f558.svg b/priv/static/emoji/1f558.svg deleted file mode 100644 index e9d3cb58c..000000000 --- a/priv/static/emoji/1f558.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f559.svg b/priv/static/emoji/1f559.svg deleted file mode 100644 index 331f702d4..000000000 --- a/priv/static/emoji/1f559.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f55a.svg b/priv/static/emoji/1f55a.svg deleted file mode 100644 index 58834498d..000000000 --- a/priv/static/emoji/1f55a.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f55b.svg b/priv/static/emoji/1f55b.svg deleted file mode 100644 index 85010aeee..000000000 --- a/priv/static/emoji/1f55b.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f55c.svg b/priv/static/emoji/1f55c.svg deleted file mode 100644 index f471871f4..000000000 --- a/priv/static/emoji/1f55c.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f55d.svg b/priv/static/emoji/1f55d.svg deleted file mode 100644 index feb77f815..000000000 --- a/priv/static/emoji/1f55d.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f55e.svg b/priv/static/emoji/1f55e.svg deleted file mode 100644 index 8ab841fac..000000000 --- a/priv/static/emoji/1f55e.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f55f.svg b/priv/static/emoji/1f55f.svg deleted file mode 100644 index 81ccc7ed7..000000000 --- a/priv/static/emoji/1f55f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f560.svg b/priv/static/emoji/1f560.svg deleted file mode 100644 index 098c47f3e..000000000 --- a/priv/static/emoji/1f560.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f561.svg b/priv/static/emoji/1f561.svg deleted file mode 100644 index 3a50a9ae8..000000000 --- a/priv/static/emoji/1f561.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f562.svg b/priv/static/emoji/1f562.svg deleted file mode 100644 index f2c6ace67..000000000 --- a/priv/static/emoji/1f562.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f563.svg b/priv/static/emoji/1f563.svg deleted file mode 100644 index a14e0dc6d..000000000 --- a/priv/static/emoji/1f563.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f564.svg b/priv/static/emoji/1f564.svg deleted file mode 100644 index 4d6f8735c..000000000 --- a/priv/static/emoji/1f564.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f565.svg b/priv/static/emoji/1f565.svg deleted file mode 100644 index f658fa323..000000000 --- a/priv/static/emoji/1f565.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f566.svg b/priv/static/emoji/1f566.svg deleted file mode 100644 index 41e105ff1..000000000 --- a/priv/static/emoji/1f566.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f567.svg b/priv/static/emoji/1f567.svg deleted file mode 100644 index 7178a8815..000000000 --- a/priv/static/emoji/1f567.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f56f.svg b/priv/static/emoji/1f56f.svg deleted file mode 100644 index c0e45ac5c..000000000 --- a/priv/static/emoji/1f56f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f570.svg b/priv/static/emoji/1f570.svg deleted file mode 100644 index da6fd2682..000000000 --- a/priv/static/emoji/1f570.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f573.svg b/priv/static/emoji/1f573.svg deleted file mode 100644 index 213a6ab69..000000000 --- a/priv/static/emoji/1f573.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f574-1f3fb-200d-2640-fe0f.svg b/priv/static/emoji/1f574-1f3fb-200d-2640-fe0f.svg deleted file mode 100644 index 19175729e..000000000 --- a/priv/static/emoji/1f574-1f3fb-200d-2640-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f574-1f3fb-200d-2642-fe0f.svg b/priv/static/emoji/1f574-1f3fb-200d-2642-fe0f.svg deleted file mode 100644 index 97bc7b5a5..000000000 --- a/priv/static/emoji/1f574-1f3fb-200d-2642-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f574-1f3fb.svg b/priv/static/emoji/1f574-1f3fb.svg deleted file mode 100644 index 97bc7b5a5..000000000 --- a/priv/static/emoji/1f574-1f3fb.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f574-1f3fc-200d-2640-fe0f.svg b/priv/static/emoji/1f574-1f3fc-200d-2640-fe0f.svg deleted file mode 100644 index 3de7ee30e..000000000 --- a/priv/static/emoji/1f574-1f3fc-200d-2640-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f574-1f3fc-200d-2642-fe0f.svg b/priv/static/emoji/1f574-1f3fc-200d-2642-fe0f.svg deleted file mode 100644 index 27c10f151..000000000 --- a/priv/static/emoji/1f574-1f3fc-200d-2642-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f574-1f3fc.svg b/priv/static/emoji/1f574-1f3fc.svg deleted file mode 100644 index 27c10f151..000000000 --- a/priv/static/emoji/1f574-1f3fc.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f574-1f3fd-200d-2640-fe0f.svg b/priv/static/emoji/1f574-1f3fd-200d-2640-fe0f.svg deleted file mode 100644 index 076acec6b..000000000 --- a/priv/static/emoji/1f574-1f3fd-200d-2640-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f574-1f3fd-200d-2642-fe0f.svg b/priv/static/emoji/1f574-1f3fd-200d-2642-fe0f.svg deleted file mode 100644 index 4e980b002..000000000 --- a/priv/static/emoji/1f574-1f3fd-200d-2642-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f574-1f3fd.svg b/priv/static/emoji/1f574-1f3fd.svg deleted file mode 100644 index 4e980b002..000000000 --- a/priv/static/emoji/1f574-1f3fd.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f574-1f3fe-200d-2640-fe0f.svg b/priv/static/emoji/1f574-1f3fe-200d-2640-fe0f.svg deleted file mode 100644 index f98eb1261..000000000 --- a/priv/static/emoji/1f574-1f3fe-200d-2640-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f574-1f3fe-200d-2642-fe0f.svg b/priv/static/emoji/1f574-1f3fe-200d-2642-fe0f.svg deleted file mode 100644 index 88a306164..000000000 --- a/priv/static/emoji/1f574-1f3fe-200d-2642-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f574-1f3fe.svg b/priv/static/emoji/1f574-1f3fe.svg deleted file mode 100644 index 88a306164..000000000 --- a/priv/static/emoji/1f574-1f3fe.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f574-1f3ff-200d-2640-fe0f.svg b/priv/static/emoji/1f574-1f3ff-200d-2640-fe0f.svg deleted file mode 100644 index e8033f53e..000000000 --- a/priv/static/emoji/1f574-1f3ff-200d-2640-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f574-1f3ff-200d-2642-fe0f.svg b/priv/static/emoji/1f574-1f3ff-200d-2642-fe0f.svg deleted file mode 100644 index 57aec606d..000000000 --- a/priv/static/emoji/1f574-1f3ff-200d-2642-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f574-1f3ff.svg b/priv/static/emoji/1f574-1f3ff.svg deleted file mode 100644 index 57aec606d..000000000 --- a/priv/static/emoji/1f574-1f3ff.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f574-fe0f-200d-2640-fe0f.svg b/priv/static/emoji/1f574-fe0f-200d-2640-fe0f.svg deleted file mode 100644 index 4f80c791f..000000000 --- a/priv/static/emoji/1f574-fe0f-200d-2640-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f574-fe0f-200d-2642-fe0f.svg b/priv/static/emoji/1f574-fe0f-200d-2642-fe0f.svg deleted file mode 100644 index a834fd4b9..000000000 --- a/priv/static/emoji/1f574-fe0f-200d-2642-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f574.svg b/priv/static/emoji/1f574.svg deleted file mode 100644 index a834fd4b9..000000000 --- a/priv/static/emoji/1f574.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f575-1f3fb-200d-2640-fe0f.svg b/priv/static/emoji/1f575-1f3fb-200d-2640-fe0f.svg deleted file mode 100644 index b85b5dba8..000000000 --- a/priv/static/emoji/1f575-1f3fb-200d-2640-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f575-1f3fb-200d-2642-fe0f.svg b/priv/static/emoji/1f575-1f3fb-200d-2642-fe0f.svg deleted file mode 100644 index fd521e254..000000000 --- a/priv/static/emoji/1f575-1f3fb-200d-2642-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f575-1f3fb.svg b/priv/static/emoji/1f575-1f3fb.svg deleted file mode 100644 index fd521e254..000000000 --- a/priv/static/emoji/1f575-1f3fb.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f575-1f3fc-200d-2640-fe0f.svg b/priv/static/emoji/1f575-1f3fc-200d-2640-fe0f.svg deleted file mode 100644 index dfc8aabce..000000000 --- a/priv/static/emoji/1f575-1f3fc-200d-2640-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f575-1f3fc-200d-2642-fe0f.svg b/priv/static/emoji/1f575-1f3fc-200d-2642-fe0f.svg deleted file mode 100644 index fdb8cd5bf..000000000 --- a/priv/static/emoji/1f575-1f3fc-200d-2642-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f575-1f3fc.svg b/priv/static/emoji/1f575-1f3fc.svg deleted file mode 100644 index fdb8cd5bf..000000000 --- a/priv/static/emoji/1f575-1f3fc.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f575-1f3fd-200d-2640-fe0f.svg b/priv/static/emoji/1f575-1f3fd-200d-2640-fe0f.svg deleted file mode 100644 index b6d0b87b6..000000000 --- a/priv/static/emoji/1f575-1f3fd-200d-2640-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f575-1f3fd-200d-2642-fe0f.svg b/priv/static/emoji/1f575-1f3fd-200d-2642-fe0f.svg deleted file mode 100644 index 474f2535a..000000000 --- a/priv/static/emoji/1f575-1f3fd-200d-2642-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f575-1f3fd.svg b/priv/static/emoji/1f575-1f3fd.svg deleted file mode 100644 index 474f2535a..000000000 --- a/priv/static/emoji/1f575-1f3fd.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f575-1f3fe-200d-2640-fe0f.svg b/priv/static/emoji/1f575-1f3fe-200d-2640-fe0f.svg deleted file mode 100644 index 67b6d0b94..000000000 --- a/priv/static/emoji/1f575-1f3fe-200d-2640-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f575-1f3fe-200d-2642-fe0f.svg b/priv/static/emoji/1f575-1f3fe-200d-2642-fe0f.svg deleted file mode 100644 index 3367897ac..000000000 --- a/priv/static/emoji/1f575-1f3fe-200d-2642-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f575-1f3fe.svg b/priv/static/emoji/1f575-1f3fe.svg deleted file mode 100644 index 3367897ac..000000000 --- a/priv/static/emoji/1f575-1f3fe.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f575-1f3ff-200d-2640-fe0f.svg b/priv/static/emoji/1f575-1f3ff-200d-2640-fe0f.svg deleted file mode 100644 index fcea54da7..000000000 --- a/priv/static/emoji/1f575-1f3ff-200d-2640-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f575-1f3ff-200d-2642-fe0f.svg b/priv/static/emoji/1f575-1f3ff-200d-2642-fe0f.svg deleted file mode 100644 index eb25e6448..000000000 --- a/priv/static/emoji/1f575-1f3ff-200d-2642-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f575-1f3ff.svg b/priv/static/emoji/1f575-1f3ff.svg deleted file mode 100644 index eb25e6448..000000000 --- a/priv/static/emoji/1f575-1f3ff.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f575-fe0f-200d-2640-fe0f.svg b/priv/static/emoji/1f575-fe0f-200d-2640-fe0f.svg deleted file mode 100644 index 1f92d39d6..000000000 --- a/priv/static/emoji/1f575-fe0f-200d-2640-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f575-fe0f-200d-2642-fe0f.svg b/priv/static/emoji/1f575-fe0f-200d-2642-fe0f.svg deleted file mode 100644 index bba4b9437..000000000 --- a/priv/static/emoji/1f575-fe0f-200d-2642-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f575.svg b/priv/static/emoji/1f575.svg deleted file mode 100644 index bba4b9437..000000000 --- a/priv/static/emoji/1f575.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f576.svg b/priv/static/emoji/1f576.svg deleted file mode 100644 index 5d5c04fb8..000000000 --- a/priv/static/emoji/1f576.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f577.svg b/priv/static/emoji/1f577.svg deleted file mode 100644 index a15686510..000000000 --- a/priv/static/emoji/1f577.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f578.svg b/priv/static/emoji/1f578.svg deleted file mode 100644 index 92142fd30..000000000 --- a/priv/static/emoji/1f578.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f579.svg b/priv/static/emoji/1f579.svg deleted file mode 100644 index 33479b504..000000000 --- a/priv/static/emoji/1f579.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f57a-1f3fb.svg b/priv/static/emoji/1f57a-1f3fb.svg deleted file mode 100644 index 1eb5928c8..000000000 --- a/priv/static/emoji/1f57a-1f3fb.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f57a-1f3fc.svg b/priv/static/emoji/1f57a-1f3fc.svg deleted file mode 100644 index 37bfbee9c..000000000 --- a/priv/static/emoji/1f57a-1f3fc.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f57a-1f3fd.svg b/priv/static/emoji/1f57a-1f3fd.svg deleted file mode 100644 index 586b6c5e9..000000000 --- a/priv/static/emoji/1f57a-1f3fd.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f57a-1f3fe.svg b/priv/static/emoji/1f57a-1f3fe.svg deleted file mode 100644 index 02824e9cb..000000000 --- a/priv/static/emoji/1f57a-1f3fe.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f57a-1f3ff.svg b/priv/static/emoji/1f57a-1f3ff.svg deleted file mode 100644 index f43787a0f..000000000 --- a/priv/static/emoji/1f57a-1f3ff.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f57a.svg b/priv/static/emoji/1f57a.svg deleted file mode 100644 index e63c1ec84..000000000 --- a/priv/static/emoji/1f57a.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f587.svg b/priv/static/emoji/1f587.svg deleted file mode 100644 index a6ef18156..000000000 --- a/priv/static/emoji/1f587.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f58a.svg b/priv/static/emoji/1f58a.svg deleted file mode 100644 index 4e791e6ac..000000000 --- a/priv/static/emoji/1f58a.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f58b.svg b/priv/static/emoji/1f58b.svg deleted file mode 100644 index 8a7f77359..000000000 --- a/priv/static/emoji/1f58b.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f58c.svg b/priv/static/emoji/1f58c.svg deleted file mode 100644 index b39bcbc9d..000000000 --- a/priv/static/emoji/1f58c.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f58d.svg b/priv/static/emoji/1f58d.svg deleted file mode 100644 index 5a4cbe8e1..000000000 --- a/priv/static/emoji/1f58d.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f590-1f3fb.svg b/priv/static/emoji/1f590-1f3fb.svg deleted file mode 100644 index f106ae7dd..000000000 --- a/priv/static/emoji/1f590-1f3fb.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f590-1f3fc.svg b/priv/static/emoji/1f590-1f3fc.svg deleted file mode 100644 index 9944090ec..000000000 --- a/priv/static/emoji/1f590-1f3fc.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f590-1f3fd.svg b/priv/static/emoji/1f590-1f3fd.svg deleted file mode 100644 index 296a8f795..000000000 --- a/priv/static/emoji/1f590-1f3fd.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f590-1f3fe.svg b/priv/static/emoji/1f590-1f3fe.svg deleted file mode 100644 index 9ec61de59..000000000 --- a/priv/static/emoji/1f590-1f3fe.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f590-1f3ff.svg b/priv/static/emoji/1f590-1f3ff.svg deleted file mode 100644 index 0a4d174be..000000000 --- a/priv/static/emoji/1f590-1f3ff.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f590.svg b/priv/static/emoji/1f590.svg deleted file mode 100644 index 1c8dd6849..000000000 --- a/priv/static/emoji/1f590.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f595-1f3fb.svg b/priv/static/emoji/1f595-1f3fb.svg deleted file mode 100644 index 3865d6627..000000000 --- a/priv/static/emoji/1f595-1f3fb.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f595-1f3fc.svg b/priv/static/emoji/1f595-1f3fc.svg deleted file mode 100644 index b52ea58d4..000000000 --- a/priv/static/emoji/1f595-1f3fc.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f595-1f3fd.svg b/priv/static/emoji/1f595-1f3fd.svg deleted file mode 100644 index 7224b2124..000000000 --- a/priv/static/emoji/1f595-1f3fd.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f595-1f3fe.svg b/priv/static/emoji/1f595-1f3fe.svg deleted file mode 100644 index 571c54c3b..000000000 --- a/priv/static/emoji/1f595-1f3fe.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f595-1f3ff.svg b/priv/static/emoji/1f595-1f3ff.svg deleted file mode 100644 index 0fdb0ea6e..000000000 --- a/priv/static/emoji/1f595-1f3ff.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f595.svg b/priv/static/emoji/1f595.svg deleted file mode 100644 index e644c3763..000000000 --- a/priv/static/emoji/1f595.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f596-1f3fb.svg b/priv/static/emoji/1f596-1f3fb.svg deleted file mode 100644 index 0676c0fce..000000000 --- a/priv/static/emoji/1f596-1f3fb.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f596-1f3fc.svg b/priv/static/emoji/1f596-1f3fc.svg deleted file mode 100644 index 9f1d4f107..000000000 --- a/priv/static/emoji/1f596-1f3fc.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f596-1f3fd.svg b/priv/static/emoji/1f596-1f3fd.svg deleted file mode 100644 index b2c324d51..000000000 --- a/priv/static/emoji/1f596-1f3fd.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f596-1f3fe.svg b/priv/static/emoji/1f596-1f3fe.svg deleted file mode 100644 index eb3586eeb..000000000 --- a/priv/static/emoji/1f596-1f3fe.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f596-1f3ff.svg b/priv/static/emoji/1f596-1f3ff.svg deleted file mode 100644 index c8f2b5b00..000000000 --- a/priv/static/emoji/1f596-1f3ff.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f596.svg b/priv/static/emoji/1f596.svg deleted file mode 100644 index 4b834f87a..000000000 --- a/priv/static/emoji/1f596.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f5a4.svg b/priv/static/emoji/1f5a4.svg deleted file mode 100644 index 51ec883f8..000000000 --- a/priv/static/emoji/1f5a4.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f5a5.svg b/priv/static/emoji/1f5a5.svg deleted file mode 100644 index e1a06333e..000000000 --- a/priv/static/emoji/1f5a5.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f5a8.svg b/priv/static/emoji/1f5a8.svg deleted file mode 100644 index fae59fef5..000000000 --- a/priv/static/emoji/1f5a8.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f5b1.svg b/priv/static/emoji/1f5b1.svg deleted file mode 100644 index 961f67ee8..000000000 --- a/priv/static/emoji/1f5b1.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f5b2.svg b/priv/static/emoji/1f5b2.svg deleted file mode 100644 index caea2fdc6..000000000 --- a/priv/static/emoji/1f5b2.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f5bc.svg b/priv/static/emoji/1f5bc.svg deleted file mode 100644 index 1a2ad7273..000000000 --- a/priv/static/emoji/1f5bc.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f5c2.svg b/priv/static/emoji/1f5c2.svg deleted file mode 100644 index 822a9276e..000000000 --- a/priv/static/emoji/1f5c2.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f5c3.svg b/priv/static/emoji/1f5c3.svg deleted file mode 100644 index 48dd45b80..000000000 --- a/priv/static/emoji/1f5c3.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f5c4.svg b/priv/static/emoji/1f5c4.svg deleted file mode 100644 index 4c065fb4b..000000000 --- a/priv/static/emoji/1f5c4.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f5d1.svg b/priv/static/emoji/1f5d1.svg deleted file mode 100644 index 266950747..000000000 --- a/priv/static/emoji/1f5d1.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f5d2.svg b/priv/static/emoji/1f5d2.svg deleted file mode 100644 index cbb6965bc..000000000 --- a/priv/static/emoji/1f5d2.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f5d3.svg b/priv/static/emoji/1f5d3.svg deleted file mode 100644 index 526191c03..000000000 --- a/priv/static/emoji/1f5d3.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f5dc.svg b/priv/static/emoji/1f5dc.svg deleted file mode 100644 index 6f35d170d..000000000 --- a/priv/static/emoji/1f5dc.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f5dd.svg b/priv/static/emoji/1f5dd.svg deleted file mode 100644 index 9e97cea6e..000000000 --- a/priv/static/emoji/1f5dd.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f5de.svg b/priv/static/emoji/1f5de.svg deleted file mode 100644 index 956781760..000000000 --- a/priv/static/emoji/1f5de.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f5e1.svg b/priv/static/emoji/1f5e1.svg deleted file mode 100644 index 2741fb89d..000000000 --- a/priv/static/emoji/1f5e1.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f5e3.svg b/priv/static/emoji/1f5e3.svg deleted file mode 100644 index 4e613c046..000000000 --- a/priv/static/emoji/1f5e3.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f5e8.svg b/priv/static/emoji/1f5e8.svg deleted file mode 100644 index d09189719..000000000 --- a/priv/static/emoji/1f5e8.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f5ef.svg b/priv/static/emoji/1f5ef.svg deleted file mode 100644 index 3aba53cc6..000000000 --- a/priv/static/emoji/1f5ef.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f5f3.svg b/priv/static/emoji/1f5f3.svg deleted file mode 100644 index 9c643d363..000000000 --- a/priv/static/emoji/1f5f3.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f5fa.svg b/priv/static/emoji/1f5fa.svg deleted file mode 100644 index 337b3dc9e..000000000 --- a/priv/static/emoji/1f5fa.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f5fb.svg b/priv/static/emoji/1f5fb.svg deleted file mode 100644 index a8ad074c4..000000000 --- a/priv/static/emoji/1f5fb.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f5fc.svg b/priv/static/emoji/1f5fc.svg deleted file mode 100644 index 92fd6ae01..000000000 --- a/priv/static/emoji/1f5fc.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f5fd.svg b/priv/static/emoji/1f5fd.svg deleted file mode 100644 index 3191523a3..000000000 --- a/priv/static/emoji/1f5fd.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f5fe.svg b/priv/static/emoji/1f5fe.svg deleted file mode 100644 index a67c561e2..000000000 --- a/priv/static/emoji/1f5fe.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f5ff.svg b/priv/static/emoji/1f5ff.svg deleted file mode 100644 index 5ba18be1f..000000000 --- a/priv/static/emoji/1f5ff.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f600.svg b/priv/static/emoji/1f600.svg deleted file mode 100644 index 21afce43d..000000000 --- a/priv/static/emoji/1f600.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f601.svg b/priv/static/emoji/1f601.svg deleted file mode 100644 index 9b792cbe0..000000000 --- a/priv/static/emoji/1f601.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f602.svg b/priv/static/emoji/1f602.svg deleted file mode 100644 index 1ec793774..000000000 --- a/priv/static/emoji/1f602.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f603.svg b/priv/static/emoji/1f603.svg deleted file mode 100644 index 25d4b9628..000000000 --- a/priv/static/emoji/1f603.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f604.svg b/priv/static/emoji/1f604.svg deleted file mode 100644 index 99ac39c7e..000000000 --- a/priv/static/emoji/1f604.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f605.svg b/priv/static/emoji/1f605.svg deleted file mode 100644 index de6eb5de6..000000000 --- a/priv/static/emoji/1f605.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f606.svg b/priv/static/emoji/1f606.svg deleted file mode 100644 index e82c405ae..000000000 --- a/priv/static/emoji/1f606.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f607.svg b/priv/static/emoji/1f607.svg deleted file mode 100644 index f6260fdb1..000000000 --- a/priv/static/emoji/1f607.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f608.svg b/priv/static/emoji/1f608.svg deleted file mode 100644 index 79c24804c..000000000 --- a/priv/static/emoji/1f608.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f609.svg b/priv/static/emoji/1f609.svg deleted file mode 100644 index 1b7bba0a0..000000000 --- a/priv/static/emoji/1f609.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f60a.svg b/priv/static/emoji/1f60a.svg deleted file mode 100644 index a6d9c1b5b..000000000 --- a/priv/static/emoji/1f60a.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f60b.svg b/priv/static/emoji/1f60b.svg deleted file mode 100644 index 2c962bb64..000000000 --- a/priv/static/emoji/1f60b.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f60c.svg b/priv/static/emoji/1f60c.svg deleted file mode 100644 index f8d56233c..000000000 --- a/priv/static/emoji/1f60c.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f60d.svg b/priv/static/emoji/1f60d.svg deleted file mode 100644 index 18b1867c1..000000000 --- a/priv/static/emoji/1f60d.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f60e.svg b/priv/static/emoji/1f60e.svg deleted file mode 100644 index fff644a86..000000000 --- a/priv/static/emoji/1f60e.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f60f.svg b/priv/static/emoji/1f60f.svg deleted file mode 100644 index ef4f386e0..000000000 --- a/priv/static/emoji/1f60f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f610.svg b/priv/static/emoji/1f610.svg deleted file mode 100644 index 953f92175..000000000 --- a/priv/static/emoji/1f610.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f611.svg b/priv/static/emoji/1f611.svg deleted file mode 100644 index 55be4fd37..000000000 --- a/priv/static/emoji/1f611.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f612.svg b/priv/static/emoji/1f612.svg deleted file mode 100644 index 197089f57..000000000 --- a/priv/static/emoji/1f612.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f613.svg b/priv/static/emoji/1f613.svg deleted file mode 100644 index 83c658036..000000000 --- a/priv/static/emoji/1f613.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f614.svg b/priv/static/emoji/1f614.svg deleted file mode 100644 index be0353001..000000000 --- a/priv/static/emoji/1f614.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f615.svg b/priv/static/emoji/1f615.svg deleted file mode 100644 index 339a6a27e..000000000 --- a/priv/static/emoji/1f615.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f616.svg b/priv/static/emoji/1f616.svg deleted file mode 100644 index 2b8871cee..000000000 --- a/priv/static/emoji/1f616.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f617.svg b/priv/static/emoji/1f617.svg deleted file mode 100644 index 6b817eec7..000000000 --- a/priv/static/emoji/1f617.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f618.svg b/priv/static/emoji/1f618.svg deleted file mode 100644 index 5e00b8e4d..000000000 --- a/priv/static/emoji/1f618.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f619.svg b/priv/static/emoji/1f619.svg deleted file mode 100644 index d9dfaa9d2..000000000 --- a/priv/static/emoji/1f619.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f61a.svg b/priv/static/emoji/1f61a.svg deleted file mode 100644 index cefa35162..000000000 --- a/priv/static/emoji/1f61a.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f61b.svg b/priv/static/emoji/1f61b.svg deleted file mode 100644 index 903422aef..000000000 --- a/priv/static/emoji/1f61b.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f61c.svg b/priv/static/emoji/1f61c.svg deleted file mode 100644 index 6f7873904..000000000 --- a/priv/static/emoji/1f61c.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f61d.svg b/priv/static/emoji/1f61d.svg deleted file mode 100644 index 09dead62a..000000000 --- a/priv/static/emoji/1f61d.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f61e.svg b/priv/static/emoji/1f61e.svg deleted file mode 100644 index 7ae60a58d..000000000 --- a/priv/static/emoji/1f61e.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f61f.svg b/priv/static/emoji/1f61f.svg deleted file mode 100644 index c5cec95d5..000000000 --- a/priv/static/emoji/1f61f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f620.svg b/priv/static/emoji/1f620.svg deleted file mode 100644 index 97e829a9a..000000000 --- a/priv/static/emoji/1f620.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f621.svg b/priv/static/emoji/1f621.svg deleted file mode 100644 index f370594b9..000000000 --- a/priv/static/emoji/1f621.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f622.svg b/priv/static/emoji/1f622.svg deleted file mode 100644 index 1122bf5f7..000000000 --- a/priv/static/emoji/1f622.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f623.svg b/priv/static/emoji/1f623.svg deleted file mode 100644 index e548a2efe..000000000 --- a/priv/static/emoji/1f623.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f624.svg b/priv/static/emoji/1f624.svg deleted file mode 100644 index c211eec53..000000000 --- a/priv/static/emoji/1f624.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f625.svg b/priv/static/emoji/1f625.svg deleted file mode 100644 index 0b4293f9e..000000000 --- a/priv/static/emoji/1f625.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f626.svg b/priv/static/emoji/1f626.svg deleted file mode 100644 index 683c0d349..000000000 --- a/priv/static/emoji/1f626.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f627.svg b/priv/static/emoji/1f627.svg deleted file mode 100644 index 5c3385297..000000000 --- a/priv/static/emoji/1f627.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f628.svg b/priv/static/emoji/1f628.svg deleted file mode 100644 index 716302e2d..000000000 --- a/priv/static/emoji/1f628.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f629.svg b/priv/static/emoji/1f629.svg deleted file mode 100644 index d367d4847..000000000 --- a/priv/static/emoji/1f629.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f62a.svg b/priv/static/emoji/1f62a.svg deleted file mode 100644 index ede0d7a24..000000000 --- a/priv/static/emoji/1f62a.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f62b.svg b/priv/static/emoji/1f62b.svg deleted file mode 100644 index 4253adad0..000000000 --- a/priv/static/emoji/1f62b.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f62c.svg b/priv/static/emoji/1f62c.svg deleted file mode 100644 index 3fdb9bf2b..000000000 --- a/priv/static/emoji/1f62c.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f62d.svg b/priv/static/emoji/1f62d.svg deleted file mode 100644 index 11d1159e8..000000000 --- a/priv/static/emoji/1f62d.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f62e.svg b/priv/static/emoji/1f62e.svg deleted file mode 100644 index 21fde1f0c..000000000 --- a/priv/static/emoji/1f62e.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f62f.svg b/priv/static/emoji/1f62f.svg deleted file mode 100644 index 579bf4800..000000000 --- a/priv/static/emoji/1f62f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f630.svg b/priv/static/emoji/1f630.svg deleted file mode 100644 index de3d95cdc..000000000 --- a/priv/static/emoji/1f630.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f631.svg b/priv/static/emoji/1f631.svg deleted file mode 100644 index c70a81a7e..000000000 --- a/priv/static/emoji/1f631.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f632.svg b/priv/static/emoji/1f632.svg deleted file mode 100644 index e27932172..000000000 --- a/priv/static/emoji/1f632.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f633.svg b/priv/static/emoji/1f633.svg deleted file mode 100644 index 2663c8cee..000000000 --- a/priv/static/emoji/1f633.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f634.svg b/priv/static/emoji/1f634.svg deleted file mode 100644 index 643ae221a..000000000 --- a/priv/static/emoji/1f634.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f635.svg b/priv/static/emoji/1f635.svg deleted file mode 100644 index 7a45cf570..000000000 --- a/priv/static/emoji/1f635.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f636.svg b/priv/static/emoji/1f636.svg deleted file mode 100644 index c208383ca..000000000 --- a/priv/static/emoji/1f636.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f637.svg b/priv/static/emoji/1f637.svg deleted file mode 100644 index 098e6b0b7..000000000 --- a/priv/static/emoji/1f637.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f638.svg b/priv/static/emoji/1f638.svg deleted file mode 100644 index 4e125ab97..000000000 --- a/priv/static/emoji/1f638.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f639.svg b/priv/static/emoji/1f639.svg deleted file mode 100644 index 92f9022d9..000000000 --- a/priv/static/emoji/1f639.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f63a.svg b/priv/static/emoji/1f63a.svg deleted file mode 100644 index 88057ceb0..000000000 --- a/priv/static/emoji/1f63a.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f63b.svg b/priv/static/emoji/1f63b.svg deleted file mode 100644 index a4dd7e46b..000000000 --- a/priv/static/emoji/1f63b.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f63c.svg b/priv/static/emoji/1f63c.svg deleted file mode 100644 index 198ad47a5..000000000 --- a/priv/static/emoji/1f63c.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f63d.svg b/priv/static/emoji/1f63d.svg deleted file mode 100644 index e982de7a3..000000000 --- a/priv/static/emoji/1f63d.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f63e.svg b/priv/static/emoji/1f63e.svg deleted file mode 100644 index 19a41d75b..000000000 --- a/priv/static/emoji/1f63e.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f63f.svg b/priv/static/emoji/1f63f.svg deleted file mode 100644 index cdd84393f..000000000 --- a/priv/static/emoji/1f63f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f640.svg b/priv/static/emoji/1f640.svg deleted file mode 100644 index 65ea8a5a2..000000000 --- a/priv/static/emoji/1f640.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f641.svg b/priv/static/emoji/1f641.svg deleted file mode 100644 index cf3557b1d..000000000 --- a/priv/static/emoji/1f641.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f642.svg b/priv/static/emoji/1f642.svg deleted file mode 100644 index ff9f989a8..000000000 --- a/priv/static/emoji/1f642.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f643.svg b/priv/static/emoji/1f643.svg deleted file mode 100644 index ce062371e..000000000 --- a/priv/static/emoji/1f643.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f644.svg b/priv/static/emoji/1f644.svg deleted file mode 100644 index 91c0b62fe..000000000 --- a/priv/static/emoji/1f644.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f645-1f3fb-200d-2640-fe0f.svg b/priv/static/emoji/1f645-1f3fb-200d-2640-fe0f.svg deleted file mode 100644 index d3d6161f2..000000000 --- a/priv/static/emoji/1f645-1f3fb-200d-2640-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f645-1f3fb-200d-2642-fe0f.svg b/priv/static/emoji/1f645-1f3fb-200d-2642-fe0f.svg deleted file mode 100644 index 47b17497d..000000000 --- a/priv/static/emoji/1f645-1f3fb-200d-2642-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f645-1f3fb.svg b/priv/static/emoji/1f645-1f3fb.svg deleted file mode 100644 index d3d6161f2..000000000 --- a/priv/static/emoji/1f645-1f3fb.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f645-1f3fc-200d-2640-fe0f.svg b/priv/static/emoji/1f645-1f3fc-200d-2640-fe0f.svg deleted file mode 100644 index 061e83da3..000000000 --- a/priv/static/emoji/1f645-1f3fc-200d-2640-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f645-1f3fc-200d-2642-fe0f.svg b/priv/static/emoji/1f645-1f3fc-200d-2642-fe0f.svg deleted file mode 100644 index 47109a9c2..000000000 --- a/priv/static/emoji/1f645-1f3fc-200d-2642-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f645-1f3fc.svg b/priv/static/emoji/1f645-1f3fc.svg deleted file mode 100644 index 061e83da3..000000000 --- a/priv/static/emoji/1f645-1f3fc.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f645-1f3fd-200d-2640-fe0f.svg b/priv/static/emoji/1f645-1f3fd-200d-2640-fe0f.svg deleted file mode 100644 index 3ba6194b5..000000000 --- a/priv/static/emoji/1f645-1f3fd-200d-2640-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f645-1f3fd-200d-2642-fe0f.svg b/priv/static/emoji/1f645-1f3fd-200d-2642-fe0f.svg deleted file mode 100644 index 5e7487e79..000000000 --- a/priv/static/emoji/1f645-1f3fd-200d-2642-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f645-1f3fd.svg b/priv/static/emoji/1f645-1f3fd.svg deleted file mode 100644 index 3ba6194b5..000000000 --- a/priv/static/emoji/1f645-1f3fd.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f645-1f3fe-200d-2640-fe0f.svg b/priv/static/emoji/1f645-1f3fe-200d-2640-fe0f.svg deleted file mode 100644 index 5eacdc63d..000000000 --- a/priv/static/emoji/1f645-1f3fe-200d-2640-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f645-1f3fe-200d-2642-fe0f.svg b/priv/static/emoji/1f645-1f3fe-200d-2642-fe0f.svg deleted file mode 100644 index da7e78935..000000000 --- a/priv/static/emoji/1f645-1f3fe-200d-2642-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f645-1f3fe.svg b/priv/static/emoji/1f645-1f3fe.svg deleted file mode 100644 index 5eacdc63d..000000000 --- a/priv/static/emoji/1f645-1f3fe.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f645-1f3ff-200d-2640-fe0f.svg b/priv/static/emoji/1f645-1f3ff-200d-2640-fe0f.svg deleted file mode 100644 index e38dfd1cd..000000000 --- a/priv/static/emoji/1f645-1f3ff-200d-2640-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f645-1f3ff-200d-2642-fe0f.svg b/priv/static/emoji/1f645-1f3ff-200d-2642-fe0f.svg deleted file mode 100644 index 1fb2443b6..000000000 --- a/priv/static/emoji/1f645-1f3ff-200d-2642-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f645-1f3ff.svg b/priv/static/emoji/1f645-1f3ff.svg deleted file mode 100644 index e38dfd1cd..000000000 --- a/priv/static/emoji/1f645-1f3ff.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f645-200d-2640-fe0f.svg b/priv/static/emoji/1f645-200d-2640-fe0f.svg deleted file mode 100644 index 2e47b6710..000000000 --- a/priv/static/emoji/1f645-200d-2640-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f645-200d-2642-fe0f.svg b/priv/static/emoji/1f645-200d-2642-fe0f.svg deleted file mode 100644 index ba0fc8e83..000000000 --- a/priv/static/emoji/1f645-200d-2642-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f645.svg b/priv/static/emoji/1f645.svg deleted file mode 100644 index 2e47b6710..000000000 --- a/priv/static/emoji/1f645.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f646-1f3fb-200d-2640-fe0f.svg b/priv/static/emoji/1f646-1f3fb-200d-2640-fe0f.svg deleted file mode 100644 index 1c051497c..000000000 --- a/priv/static/emoji/1f646-1f3fb-200d-2640-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f646-1f3fb-200d-2642-fe0f.svg b/priv/static/emoji/1f646-1f3fb-200d-2642-fe0f.svg deleted file mode 100644 index b8e5f1567..000000000 --- a/priv/static/emoji/1f646-1f3fb-200d-2642-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f646-1f3fb.svg b/priv/static/emoji/1f646-1f3fb.svg deleted file mode 100644 index 6e78c309c..000000000 --- a/priv/static/emoji/1f646-1f3fb.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f646-1f3fc-200d-2640-fe0f.svg b/priv/static/emoji/1f646-1f3fc-200d-2640-fe0f.svg deleted file mode 100644 index 439f4d81f..000000000 --- a/priv/static/emoji/1f646-1f3fc-200d-2640-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f646-1f3fc-200d-2642-fe0f.svg b/priv/static/emoji/1f646-1f3fc-200d-2642-fe0f.svg deleted file mode 100644 index 564a775e0..000000000 --- a/priv/static/emoji/1f646-1f3fc-200d-2642-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f646-1f3fc.svg b/priv/static/emoji/1f646-1f3fc.svg deleted file mode 100644 index 439f4d81f..000000000 --- a/priv/static/emoji/1f646-1f3fc.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f646-1f3fd-200d-2640-fe0f.svg b/priv/static/emoji/1f646-1f3fd-200d-2640-fe0f.svg deleted file mode 100644 index e5b1aea51..000000000 --- a/priv/static/emoji/1f646-1f3fd-200d-2640-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f646-1f3fd-200d-2642-fe0f.svg b/priv/static/emoji/1f646-1f3fd-200d-2642-fe0f.svg deleted file mode 100644 index b5103e3f3..000000000 --- a/priv/static/emoji/1f646-1f3fd-200d-2642-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f646-1f3fd.svg b/priv/static/emoji/1f646-1f3fd.svg deleted file mode 100644 index e5b1aea51..000000000 --- a/priv/static/emoji/1f646-1f3fd.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f646-1f3fe-200d-2640-fe0f.svg b/priv/static/emoji/1f646-1f3fe-200d-2640-fe0f.svg deleted file mode 100644 index b041dc167..000000000 --- a/priv/static/emoji/1f646-1f3fe-200d-2640-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f646-1f3fe-200d-2642-fe0f.svg b/priv/static/emoji/1f646-1f3fe-200d-2642-fe0f.svg deleted file mode 100644 index 4b2b3b491..000000000 --- a/priv/static/emoji/1f646-1f3fe-200d-2642-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f646-1f3fe.svg b/priv/static/emoji/1f646-1f3fe.svg deleted file mode 100644 index b041dc167..000000000 --- a/priv/static/emoji/1f646-1f3fe.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f646-1f3ff-200d-2640-fe0f.svg b/priv/static/emoji/1f646-1f3ff-200d-2640-fe0f.svg deleted file mode 100644 index 66d5bd09f..000000000 --- a/priv/static/emoji/1f646-1f3ff-200d-2640-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f646-1f3ff-200d-2642-fe0f.svg b/priv/static/emoji/1f646-1f3ff-200d-2642-fe0f.svg deleted file mode 100644 index 0411b8d40..000000000 --- a/priv/static/emoji/1f646-1f3ff-200d-2642-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f646-1f3ff.svg b/priv/static/emoji/1f646-1f3ff.svg deleted file mode 100644 index 66d5bd09f..000000000 --- a/priv/static/emoji/1f646-1f3ff.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f646-200d-2640-fe0f.svg b/priv/static/emoji/1f646-200d-2640-fe0f.svg deleted file mode 100644 index ccdb92a45..000000000 --- a/priv/static/emoji/1f646-200d-2640-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f646-200d-2642-fe0f.svg b/priv/static/emoji/1f646-200d-2642-fe0f.svg deleted file mode 100644 index 1c4205d51..000000000 --- a/priv/static/emoji/1f646-200d-2642-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f646.svg b/priv/static/emoji/1f646.svg deleted file mode 100644 index ccdb92a45..000000000 --- a/priv/static/emoji/1f646.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f647-1f3fb-200d-2640-fe0f.svg b/priv/static/emoji/1f647-1f3fb-200d-2640-fe0f.svg deleted file mode 100644 index 139284fef..000000000 --- a/priv/static/emoji/1f647-1f3fb-200d-2640-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f647-1f3fb-200d-2642-fe0f.svg b/priv/static/emoji/1f647-1f3fb-200d-2642-fe0f.svg deleted file mode 100644 index 339010951..000000000 --- a/priv/static/emoji/1f647-1f3fb-200d-2642-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f647-1f3fb.svg b/priv/static/emoji/1f647-1f3fb.svg deleted file mode 100644 index 339010951..000000000 --- a/priv/static/emoji/1f647-1f3fb.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f647-1f3fc-200d-2640-fe0f.svg b/priv/static/emoji/1f647-1f3fc-200d-2640-fe0f.svg deleted file mode 100644 index ba6b6eb35..000000000 --- a/priv/static/emoji/1f647-1f3fc-200d-2640-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f647-1f3fc-200d-2642-fe0f.svg b/priv/static/emoji/1f647-1f3fc-200d-2642-fe0f.svg deleted file mode 100644 index 93d418cd2..000000000 --- a/priv/static/emoji/1f647-1f3fc-200d-2642-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f647-1f3fc.svg b/priv/static/emoji/1f647-1f3fc.svg deleted file mode 100644 index 93d418cd2..000000000 --- a/priv/static/emoji/1f647-1f3fc.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f647-1f3fd-200d-2640-fe0f.svg b/priv/static/emoji/1f647-1f3fd-200d-2640-fe0f.svg deleted file mode 100644 index e9056586e..000000000 --- a/priv/static/emoji/1f647-1f3fd-200d-2640-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f647-1f3fd-200d-2642-fe0f.svg b/priv/static/emoji/1f647-1f3fd-200d-2642-fe0f.svg deleted file mode 100644 index abd06691a..000000000 --- a/priv/static/emoji/1f647-1f3fd-200d-2642-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f647-1f3fd.svg b/priv/static/emoji/1f647-1f3fd.svg deleted file mode 100644 index abd06691a..000000000 --- a/priv/static/emoji/1f647-1f3fd.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f647-1f3fe-200d-2640-fe0f.svg b/priv/static/emoji/1f647-1f3fe-200d-2640-fe0f.svg deleted file mode 100644 index 8511aadea..000000000 --- a/priv/static/emoji/1f647-1f3fe-200d-2640-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f647-1f3fe-200d-2642-fe0f.svg b/priv/static/emoji/1f647-1f3fe-200d-2642-fe0f.svg deleted file mode 100644 index 3f55ae820..000000000 --- a/priv/static/emoji/1f647-1f3fe-200d-2642-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f647-1f3fe.svg b/priv/static/emoji/1f647-1f3fe.svg deleted file mode 100644 index 3f55ae820..000000000 --- a/priv/static/emoji/1f647-1f3fe.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f647-1f3ff-200d-2640-fe0f.svg b/priv/static/emoji/1f647-1f3ff-200d-2640-fe0f.svg deleted file mode 100644 index 00ab5588a..000000000 --- a/priv/static/emoji/1f647-1f3ff-200d-2640-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f647-1f3ff-200d-2642-fe0f.svg b/priv/static/emoji/1f647-1f3ff-200d-2642-fe0f.svg deleted file mode 100644 index 1ea343bb1..000000000 --- a/priv/static/emoji/1f647-1f3ff-200d-2642-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f647-1f3ff.svg b/priv/static/emoji/1f647-1f3ff.svg deleted file mode 100644 index 1ea343bb1..000000000 --- a/priv/static/emoji/1f647-1f3ff.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f647-200d-2640-fe0f.svg b/priv/static/emoji/1f647-200d-2640-fe0f.svg deleted file mode 100644 index 0545aa2e1..000000000 --- a/priv/static/emoji/1f647-200d-2640-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f647-200d-2642-fe0f.svg b/priv/static/emoji/1f647-200d-2642-fe0f.svg deleted file mode 100644 index 7462b006b..000000000 --- a/priv/static/emoji/1f647-200d-2642-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f647.svg b/priv/static/emoji/1f647.svg deleted file mode 100644 index 7462b006b..000000000 --- a/priv/static/emoji/1f647.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f648.svg b/priv/static/emoji/1f648.svg deleted file mode 100644 index 31e38a33f..000000000 --- a/priv/static/emoji/1f648.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f649.svg b/priv/static/emoji/1f649.svg deleted file mode 100644 index 377e0e6df..000000000 --- a/priv/static/emoji/1f649.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f64a.svg b/priv/static/emoji/1f64a.svg deleted file mode 100644 index 1e4e313ef..000000000 --- a/priv/static/emoji/1f64a.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f64b-1f3fb-200d-2640-fe0f.svg b/priv/static/emoji/1f64b-1f3fb-200d-2640-fe0f.svg deleted file mode 100644 index f10a7ef71..000000000 --- a/priv/static/emoji/1f64b-1f3fb-200d-2640-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f64b-1f3fb-200d-2642-fe0f.svg b/priv/static/emoji/1f64b-1f3fb-200d-2642-fe0f.svg deleted file mode 100644 index 46819a3cb..000000000 --- a/priv/static/emoji/1f64b-1f3fb-200d-2642-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f64b-1f3fb.svg b/priv/static/emoji/1f64b-1f3fb.svg deleted file mode 100644 index f10a7ef71..000000000 --- a/priv/static/emoji/1f64b-1f3fb.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f64b-1f3fc-200d-2640-fe0f.svg b/priv/static/emoji/1f64b-1f3fc-200d-2640-fe0f.svg deleted file mode 100644 index 34b2d325b..000000000 --- a/priv/static/emoji/1f64b-1f3fc-200d-2640-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f64b-1f3fc-200d-2642-fe0f.svg b/priv/static/emoji/1f64b-1f3fc-200d-2642-fe0f.svg deleted file mode 100644 index 177f70a68..000000000 --- a/priv/static/emoji/1f64b-1f3fc-200d-2642-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f64b-1f3fc.svg b/priv/static/emoji/1f64b-1f3fc.svg deleted file mode 100644 index 34b2d325b..000000000 --- a/priv/static/emoji/1f64b-1f3fc.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f64b-1f3fd-200d-2640-fe0f.svg b/priv/static/emoji/1f64b-1f3fd-200d-2640-fe0f.svg deleted file mode 100644 index 62156c386..000000000 --- a/priv/static/emoji/1f64b-1f3fd-200d-2640-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f64b-1f3fd-200d-2642-fe0f.svg b/priv/static/emoji/1f64b-1f3fd-200d-2642-fe0f.svg deleted file mode 100644 index b449f1c68..000000000 --- a/priv/static/emoji/1f64b-1f3fd-200d-2642-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f64b-1f3fd.svg b/priv/static/emoji/1f64b-1f3fd.svg deleted file mode 100644 index 62156c386..000000000 --- a/priv/static/emoji/1f64b-1f3fd.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f64b-1f3fe-200d-2640-fe0f.svg b/priv/static/emoji/1f64b-1f3fe-200d-2640-fe0f.svg deleted file mode 100644 index 4dcde3700..000000000 --- a/priv/static/emoji/1f64b-1f3fe-200d-2640-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f64b-1f3fe-200d-2642-fe0f.svg b/priv/static/emoji/1f64b-1f3fe-200d-2642-fe0f.svg deleted file mode 100644 index e1053e781..000000000 --- a/priv/static/emoji/1f64b-1f3fe-200d-2642-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f64b-1f3fe.svg b/priv/static/emoji/1f64b-1f3fe.svg deleted file mode 100644 index 4dcde3700..000000000 --- a/priv/static/emoji/1f64b-1f3fe.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f64b-1f3ff-200d-2640-fe0f.svg b/priv/static/emoji/1f64b-1f3ff-200d-2640-fe0f.svg deleted file mode 100644 index f939a8364..000000000 --- a/priv/static/emoji/1f64b-1f3ff-200d-2640-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f64b-1f3ff-200d-2642-fe0f.svg b/priv/static/emoji/1f64b-1f3ff-200d-2642-fe0f.svg deleted file mode 100644 index 34c358fb6..000000000 --- a/priv/static/emoji/1f64b-1f3ff-200d-2642-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f64b-1f3ff.svg b/priv/static/emoji/1f64b-1f3ff.svg deleted file mode 100644 index f939a8364..000000000 --- a/priv/static/emoji/1f64b-1f3ff.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f64b-200d-2640-fe0f.svg b/priv/static/emoji/1f64b-200d-2640-fe0f.svg deleted file mode 100644 index a5ccaa1ad..000000000 --- a/priv/static/emoji/1f64b-200d-2640-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f64b-200d-2642-fe0f.svg b/priv/static/emoji/1f64b-200d-2642-fe0f.svg deleted file mode 100644 index faf2f760a..000000000 --- a/priv/static/emoji/1f64b-200d-2642-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f64b.svg b/priv/static/emoji/1f64b.svg deleted file mode 100644 index a5ccaa1ad..000000000 --- a/priv/static/emoji/1f64b.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f64c-1f3fb.svg b/priv/static/emoji/1f64c-1f3fb.svg deleted file mode 100644 index b51e08e4a..000000000 --- a/priv/static/emoji/1f64c-1f3fb.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f64c-1f3fc.svg b/priv/static/emoji/1f64c-1f3fc.svg deleted file mode 100644 index 6c4f43eae..000000000 --- a/priv/static/emoji/1f64c-1f3fc.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f64c-1f3fd.svg b/priv/static/emoji/1f64c-1f3fd.svg deleted file mode 100644 index 5624f6075..000000000 --- a/priv/static/emoji/1f64c-1f3fd.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f64c-1f3fe.svg b/priv/static/emoji/1f64c-1f3fe.svg deleted file mode 100644 index 527cc23e3..000000000 --- a/priv/static/emoji/1f64c-1f3fe.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f64c-1f3ff.svg b/priv/static/emoji/1f64c-1f3ff.svg deleted file mode 100644 index fc0a3332f..000000000 --- a/priv/static/emoji/1f64c-1f3ff.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f64c.svg b/priv/static/emoji/1f64c.svg deleted file mode 100644 index be95511f9..000000000 --- a/priv/static/emoji/1f64c.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f64d-1f3fb-200d-2640-fe0f.svg b/priv/static/emoji/1f64d-1f3fb-200d-2640-fe0f.svg deleted file mode 100644 index 3aaba5033..000000000 --- a/priv/static/emoji/1f64d-1f3fb-200d-2640-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f64d-1f3fb-200d-2642-fe0f.svg b/priv/static/emoji/1f64d-1f3fb-200d-2642-fe0f.svg deleted file mode 100644 index 248180373..000000000 --- a/priv/static/emoji/1f64d-1f3fb-200d-2642-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f64d-1f3fb.svg b/priv/static/emoji/1f64d-1f3fb.svg deleted file mode 100644 index 3aaba5033..000000000 --- a/priv/static/emoji/1f64d-1f3fb.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f64d-1f3fc-200d-2640-fe0f.svg b/priv/static/emoji/1f64d-1f3fc-200d-2640-fe0f.svg deleted file mode 100644 index 7198a13c0..000000000 --- a/priv/static/emoji/1f64d-1f3fc-200d-2640-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f64d-1f3fc-200d-2642-fe0f.svg b/priv/static/emoji/1f64d-1f3fc-200d-2642-fe0f.svg deleted file mode 100644 index 805453438..000000000 --- a/priv/static/emoji/1f64d-1f3fc-200d-2642-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f64d-1f3fc.svg b/priv/static/emoji/1f64d-1f3fc.svg deleted file mode 100644 index 7198a13c0..000000000 --- a/priv/static/emoji/1f64d-1f3fc.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f64d-1f3fd-200d-2640-fe0f.svg b/priv/static/emoji/1f64d-1f3fd-200d-2640-fe0f.svg deleted file mode 100644 index ed14e028f..000000000 --- a/priv/static/emoji/1f64d-1f3fd-200d-2640-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f64d-1f3fd-200d-2642-fe0f.svg b/priv/static/emoji/1f64d-1f3fd-200d-2642-fe0f.svg deleted file mode 100644 index 17dee5c22..000000000 --- a/priv/static/emoji/1f64d-1f3fd-200d-2642-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f64d-1f3fd.svg b/priv/static/emoji/1f64d-1f3fd.svg deleted file mode 100644 index ed14e028f..000000000 --- a/priv/static/emoji/1f64d-1f3fd.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f64d-1f3fe-200d-2640-fe0f.svg b/priv/static/emoji/1f64d-1f3fe-200d-2640-fe0f.svg deleted file mode 100644 index 47e3da25c..000000000 --- a/priv/static/emoji/1f64d-1f3fe-200d-2640-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f64d-1f3fe-200d-2642-fe0f.svg b/priv/static/emoji/1f64d-1f3fe-200d-2642-fe0f.svg deleted file mode 100644 index a8146a4c9..000000000 --- a/priv/static/emoji/1f64d-1f3fe-200d-2642-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f64d-1f3fe.svg b/priv/static/emoji/1f64d-1f3fe.svg deleted file mode 100644 index 47e3da25c..000000000 --- a/priv/static/emoji/1f64d-1f3fe.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f64d-1f3ff-200d-2640-fe0f.svg b/priv/static/emoji/1f64d-1f3ff-200d-2640-fe0f.svg deleted file mode 100644 index 7e2411447..000000000 --- a/priv/static/emoji/1f64d-1f3ff-200d-2640-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f64d-1f3ff-200d-2642-fe0f.svg b/priv/static/emoji/1f64d-1f3ff-200d-2642-fe0f.svg deleted file mode 100644 index a5f81fe07..000000000 --- a/priv/static/emoji/1f64d-1f3ff-200d-2642-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f64d-1f3ff.svg b/priv/static/emoji/1f64d-1f3ff.svg deleted file mode 100644 index 7e2411447..000000000 --- a/priv/static/emoji/1f64d-1f3ff.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f64d-200d-2640-fe0f.svg b/priv/static/emoji/1f64d-200d-2640-fe0f.svg deleted file mode 100644 index e14fb5706..000000000 --- a/priv/static/emoji/1f64d-200d-2640-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f64d-200d-2642-fe0f.svg b/priv/static/emoji/1f64d-200d-2642-fe0f.svg deleted file mode 100644 index 6a5ce0861..000000000 --- a/priv/static/emoji/1f64d-200d-2642-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f64d.svg b/priv/static/emoji/1f64d.svg deleted file mode 100644 index e14fb5706..000000000 --- a/priv/static/emoji/1f64d.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f64e-1f3fb-200d-2640-fe0f.svg b/priv/static/emoji/1f64e-1f3fb-200d-2640-fe0f.svg deleted file mode 100644 index e283e46e5..000000000 --- a/priv/static/emoji/1f64e-1f3fb-200d-2640-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f64e-1f3fb-200d-2642-fe0f.svg b/priv/static/emoji/1f64e-1f3fb-200d-2642-fe0f.svg deleted file mode 100644 index 8afcbb547..000000000 --- a/priv/static/emoji/1f64e-1f3fb-200d-2642-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f64e-1f3fb.svg b/priv/static/emoji/1f64e-1f3fb.svg deleted file mode 100644 index e283e46e5..000000000 --- a/priv/static/emoji/1f64e-1f3fb.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f64e-1f3fc-200d-2640-fe0f.svg b/priv/static/emoji/1f64e-1f3fc-200d-2640-fe0f.svg deleted file mode 100644 index 6f7d0fe07..000000000 --- a/priv/static/emoji/1f64e-1f3fc-200d-2640-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f64e-1f3fc-200d-2642-fe0f.svg b/priv/static/emoji/1f64e-1f3fc-200d-2642-fe0f.svg deleted file mode 100644 index 6c70ec3c9..000000000 --- a/priv/static/emoji/1f64e-1f3fc-200d-2642-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f64e-1f3fc.svg b/priv/static/emoji/1f64e-1f3fc.svg deleted file mode 100644 index 6f7d0fe07..000000000 --- a/priv/static/emoji/1f64e-1f3fc.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f64e-1f3fd-200d-2640-fe0f.svg b/priv/static/emoji/1f64e-1f3fd-200d-2640-fe0f.svg deleted file mode 100644 index 96584b4a6..000000000 --- a/priv/static/emoji/1f64e-1f3fd-200d-2640-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f64e-1f3fd-200d-2642-fe0f.svg b/priv/static/emoji/1f64e-1f3fd-200d-2642-fe0f.svg deleted file mode 100644 index 4854c1102..000000000 --- a/priv/static/emoji/1f64e-1f3fd-200d-2642-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f64e-1f3fd.svg b/priv/static/emoji/1f64e-1f3fd.svg deleted file mode 100644 index 96584b4a6..000000000 --- a/priv/static/emoji/1f64e-1f3fd.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f64e-1f3fe-200d-2640-fe0f.svg b/priv/static/emoji/1f64e-1f3fe-200d-2640-fe0f.svg deleted file mode 100644 index ab993b070..000000000 --- a/priv/static/emoji/1f64e-1f3fe-200d-2640-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f64e-1f3fe-200d-2642-fe0f.svg b/priv/static/emoji/1f64e-1f3fe-200d-2642-fe0f.svg deleted file mode 100644 index f1cea099d..000000000 --- a/priv/static/emoji/1f64e-1f3fe-200d-2642-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f64e-1f3fe.svg b/priv/static/emoji/1f64e-1f3fe.svg deleted file mode 100644 index ab993b070..000000000 --- a/priv/static/emoji/1f64e-1f3fe.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f64e-1f3ff-200d-2640-fe0f.svg b/priv/static/emoji/1f64e-1f3ff-200d-2640-fe0f.svg deleted file mode 100644 index 5bdbed288..000000000 --- a/priv/static/emoji/1f64e-1f3ff-200d-2640-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f64e-1f3ff-200d-2642-fe0f.svg b/priv/static/emoji/1f64e-1f3ff-200d-2642-fe0f.svg deleted file mode 100644 index c15298ee6..000000000 --- a/priv/static/emoji/1f64e-1f3ff-200d-2642-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f64e-1f3ff.svg b/priv/static/emoji/1f64e-1f3ff.svg deleted file mode 100644 index 5bdbed288..000000000 --- a/priv/static/emoji/1f64e-1f3ff.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f64e-200d-2640-fe0f.svg b/priv/static/emoji/1f64e-200d-2640-fe0f.svg deleted file mode 100644 index 0bd74db6b..000000000 --- a/priv/static/emoji/1f64e-200d-2640-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f64e-200d-2642-fe0f.svg b/priv/static/emoji/1f64e-200d-2642-fe0f.svg deleted file mode 100644 index 97bec5bc5..000000000 --- a/priv/static/emoji/1f64e-200d-2642-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f64e.svg b/priv/static/emoji/1f64e.svg deleted file mode 100644 index 0bd74db6b..000000000 --- a/priv/static/emoji/1f64e.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f64f-1f3fb.svg b/priv/static/emoji/1f64f-1f3fb.svg deleted file mode 100644 index c7b09690e..000000000 --- a/priv/static/emoji/1f64f-1f3fb.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f64f-1f3fc.svg b/priv/static/emoji/1f64f-1f3fc.svg deleted file mode 100644 index 6dcbad553..000000000 --- a/priv/static/emoji/1f64f-1f3fc.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f64f-1f3fd.svg b/priv/static/emoji/1f64f-1f3fd.svg deleted file mode 100644 index 5d11d088c..000000000 --- a/priv/static/emoji/1f64f-1f3fd.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f64f-1f3fe.svg b/priv/static/emoji/1f64f-1f3fe.svg deleted file mode 100644 index 7026174b4..000000000 --- a/priv/static/emoji/1f64f-1f3fe.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f64f-1f3ff.svg b/priv/static/emoji/1f64f-1f3ff.svg deleted file mode 100644 index 09831e0d7..000000000 --- a/priv/static/emoji/1f64f-1f3ff.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f64f.svg b/priv/static/emoji/1f64f.svg deleted file mode 100644 index 8b33d80c9..000000000 --- a/priv/static/emoji/1f64f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f680.svg b/priv/static/emoji/1f680.svg deleted file mode 100644 index 8658d4397..000000000 --- a/priv/static/emoji/1f680.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f681.svg b/priv/static/emoji/1f681.svg deleted file mode 100644 index 8b7a40320..000000000 --- a/priv/static/emoji/1f681.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f682.svg b/priv/static/emoji/1f682.svg deleted file mode 100644 index c93874db2..000000000 --- a/priv/static/emoji/1f682.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f683.svg b/priv/static/emoji/1f683.svg deleted file mode 100644 index 775ae86f8..000000000 --- a/priv/static/emoji/1f683.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f684.svg b/priv/static/emoji/1f684.svg deleted file mode 100644 index 31e4d69fd..000000000 --- a/priv/static/emoji/1f684.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f685.svg b/priv/static/emoji/1f685.svg deleted file mode 100644 index 2b24d9ab3..000000000 --- a/priv/static/emoji/1f685.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f686.svg b/priv/static/emoji/1f686.svg deleted file mode 100644 index 3f5f5b856..000000000 --- a/priv/static/emoji/1f686.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f687.svg b/priv/static/emoji/1f687.svg deleted file mode 100644 index acd11bd4e..000000000 --- a/priv/static/emoji/1f687.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f688.svg b/priv/static/emoji/1f688.svg deleted file mode 100644 index 160cc71df..000000000 --- a/priv/static/emoji/1f688.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f689.svg b/priv/static/emoji/1f689.svg deleted file mode 100644 index cebf01dd7..000000000 --- a/priv/static/emoji/1f689.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f68a.svg b/priv/static/emoji/1f68a.svg deleted file mode 100644 index b93eab0a1..000000000 --- a/priv/static/emoji/1f68a.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f68b.svg b/priv/static/emoji/1f68b.svg deleted file mode 100644 index da204b81a..000000000 --- a/priv/static/emoji/1f68b.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f68c.svg b/priv/static/emoji/1f68c.svg deleted file mode 100644 index 457516902..000000000 --- a/priv/static/emoji/1f68c.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f68d.svg b/priv/static/emoji/1f68d.svg deleted file mode 100644 index 68ca65faa..000000000 --- a/priv/static/emoji/1f68d.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f68e.svg b/priv/static/emoji/1f68e.svg deleted file mode 100644 index e3dc44dc7..000000000 --- a/priv/static/emoji/1f68e.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f68f.svg b/priv/static/emoji/1f68f.svg deleted file mode 100644 index f833b4aab..000000000 --- a/priv/static/emoji/1f68f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f690.svg b/priv/static/emoji/1f690.svg deleted file mode 100644 index d3f105730..000000000 --- a/priv/static/emoji/1f690.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f691.svg b/priv/static/emoji/1f691.svg deleted file mode 100644 index 844dd40f0..000000000 --- a/priv/static/emoji/1f691.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f692.svg b/priv/static/emoji/1f692.svg deleted file mode 100644 index 711c9960b..000000000 --- a/priv/static/emoji/1f692.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f693.svg b/priv/static/emoji/1f693.svg deleted file mode 100644 index cbf344d7c..000000000 --- a/priv/static/emoji/1f693.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f694.svg b/priv/static/emoji/1f694.svg deleted file mode 100644 index ef1662d91..000000000 --- a/priv/static/emoji/1f694.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f695.svg b/priv/static/emoji/1f695.svg deleted file mode 100644 index 5446414a2..000000000 --- a/priv/static/emoji/1f695.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f696.svg b/priv/static/emoji/1f696.svg deleted file mode 100644 index e066a1246..000000000 --- a/priv/static/emoji/1f696.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f697.svg b/priv/static/emoji/1f697.svg deleted file mode 100644 index 97b5f10d4..000000000 --- a/priv/static/emoji/1f697.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f698.svg b/priv/static/emoji/1f698.svg deleted file mode 100644 index 25d8df01d..000000000 --- a/priv/static/emoji/1f698.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f699.svg b/priv/static/emoji/1f699.svg deleted file mode 100644 index 28e277197..000000000 --- a/priv/static/emoji/1f699.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f69a.svg b/priv/static/emoji/1f69a.svg deleted file mode 100644 index 7441d1bba..000000000 --- a/priv/static/emoji/1f69a.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f69b.svg b/priv/static/emoji/1f69b.svg deleted file mode 100644 index 271fec11d..000000000 --- a/priv/static/emoji/1f69b.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f69c.svg b/priv/static/emoji/1f69c.svg deleted file mode 100644 index 014ca11d3..000000000 --- a/priv/static/emoji/1f69c.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f69d.svg b/priv/static/emoji/1f69d.svg deleted file mode 100644 index 64ab140c5..000000000 --- a/priv/static/emoji/1f69d.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f69e.svg b/priv/static/emoji/1f69e.svg deleted file mode 100644 index 79a9320c4..000000000 --- a/priv/static/emoji/1f69e.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f69f.svg b/priv/static/emoji/1f69f.svg deleted file mode 100644 index 72eac03f2..000000000 --- a/priv/static/emoji/1f69f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f6a0.svg b/priv/static/emoji/1f6a0.svg deleted file mode 100644 index 8510956dc..000000000 --- a/priv/static/emoji/1f6a0.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f6a1.svg b/priv/static/emoji/1f6a1.svg deleted file mode 100644 index 855c5664a..000000000 --- a/priv/static/emoji/1f6a1.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f6a2.svg b/priv/static/emoji/1f6a2.svg deleted file mode 100644 index 79077f00a..000000000 --- a/priv/static/emoji/1f6a2.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f6a3-1f3fb-200d-2640-fe0f.svg b/priv/static/emoji/1f6a3-1f3fb-200d-2640-fe0f.svg deleted file mode 100644 index e5c19c946..000000000 --- a/priv/static/emoji/1f6a3-1f3fb-200d-2640-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f6a3-1f3fb-200d-2642-fe0f.svg b/priv/static/emoji/1f6a3-1f3fb-200d-2642-fe0f.svg deleted file mode 100644 index a9651dca4..000000000 --- a/priv/static/emoji/1f6a3-1f3fb-200d-2642-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f6a3-1f3fb.svg b/priv/static/emoji/1f6a3-1f3fb.svg deleted file mode 100644 index a9651dca4..000000000 --- a/priv/static/emoji/1f6a3-1f3fb.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f6a3-1f3fc-200d-2640-fe0f.svg b/priv/static/emoji/1f6a3-1f3fc-200d-2640-fe0f.svg deleted file mode 100644 index a0c9e1cef..000000000 --- a/priv/static/emoji/1f6a3-1f3fc-200d-2640-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f6a3-1f3fc-200d-2642-fe0f.svg b/priv/static/emoji/1f6a3-1f3fc-200d-2642-fe0f.svg deleted file mode 100644 index d5d8a1b1a..000000000 --- a/priv/static/emoji/1f6a3-1f3fc-200d-2642-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f6a3-1f3fc.svg b/priv/static/emoji/1f6a3-1f3fc.svg deleted file mode 100644 index d5d8a1b1a..000000000 --- a/priv/static/emoji/1f6a3-1f3fc.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f6a3-1f3fd-200d-2640-fe0f.svg b/priv/static/emoji/1f6a3-1f3fd-200d-2640-fe0f.svg deleted file mode 100644 index 16b7ac0bb..000000000 --- a/priv/static/emoji/1f6a3-1f3fd-200d-2640-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f6a3-1f3fd-200d-2642-fe0f.svg b/priv/static/emoji/1f6a3-1f3fd-200d-2642-fe0f.svg deleted file mode 100644 index 350a363a0..000000000 --- a/priv/static/emoji/1f6a3-1f3fd-200d-2642-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f6a3-1f3fd.svg b/priv/static/emoji/1f6a3-1f3fd.svg deleted file mode 100644 index 350a363a0..000000000 --- a/priv/static/emoji/1f6a3-1f3fd.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f6a3-1f3fe-200d-2640-fe0f.svg b/priv/static/emoji/1f6a3-1f3fe-200d-2640-fe0f.svg deleted file mode 100644 index 08ab1cce5..000000000 --- a/priv/static/emoji/1f6a3-1f3fe-200d-2640-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f6a3-1f3fe-200d-2642-fe0f.svg b/priv/static/emoji/1f6a3-1f3fe-200d-2642-fe0f.svg deleted file mode 100644 index 58d8d4e8a..000000000 --- a/priv/static/emoji/1f6a3-1f3fe-200d-2642-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f6a3-1f3fe.svg b/priv/static/emoji/1f6a3-1f3fe.svg deleted file mode 100644 index 58d8d4e8a..000000000 --- a/priv/static/emoji/1f6a3-1f3fe.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f6a3-1f3ff-200d-2640-fe0f.svg b/priv/static/emoji/1f6a3-1f3ff-200d-2640-fe0f.svg deleted file mode 100644 index 05a2304c9..000000000 --- a/priv/static/emoji/1f6a3-1f3ff-200d-2640-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f6a3-1f3ff-200d-2642-fe0f.svg b/priv/static/emoji/1f6a3-1f3ff-200d-2642-fe0f.svg deleted file mode 100644 index d461a4103..000000000 --- a/priv/static/emoji/1f6a3-1f3ff-200d-2642-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f6a3-1f3ff.svg b/priv/static/emoji/1f6a3-1f3ff.svg deleted file mode 100644 index d461a4103..000000000 --- a/priv/static/emoji/1f6a3-1f3ff.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f6a3-200d-2640-fe0f.svg b/priv/static/emoji/1f6a3-200d-2640-fe0f.svg deleted file mode 100644 index 8e0c5adc3..000000000 --- a/priv/static/emoji/1f6a3-200d-2640-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f6a3-200d-2642-fe0f.svg b/priv/static/emoji/1f6a3-200d-2642-fe0f.svg deleted file mode 100644 index d62822936..000000000 --- a/priv/static/emoji/1f6a3-200d-2642-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f6a3.svg b/priv/static/emoji/1f6a3.svg deleted file mode 100644 index d62822936..000000000 --- a/priv/static/emoji/1f6a3.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f6a4.svg b/priv/static/emoji/1f6a4.svg deleted file mode 100644 index 7dfe5a6b8..000000000 --- a/priv/static/emoji/1f6a4.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f6a5.svg b/priv/static/emoji/1f6a5.svg deleted file mode 100644 index 6cb382717..000000000 --- a/priv/static/emoji/1f6a5.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f6a6.svg b/priv/static/emoji/1f6a6.svg deleted file mode 100644 index 252e85cc5..000000000 --- a/priv/static/emoji/1f6a6.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f6a7.svg b/priv/static/emoji/1f6a7.svg deleted file mode 100644 index a5d135cba..000000000 --- a/priv/static/emoji/1f6a7.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f6a8.svg b/priv/static/emoji/1f6a8.svg deleted file mode 100644 index 5ed7ec85b..000000000 --- a/priv/static/emoji/1f6a8.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f6a9.svg b/priv/static/emoji/1f6a9.svg deleted file mode 100644 index a9338f190..000000000 --- a/priv/static/emoji/1f6a9.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f6aa.svg b/priv/static/emoji/1f6aa.svg deleted file mode 100644 index 1542aba5f..000000000 --- a/priv/static/emoji/1f6aa.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f6ab.svg b/priv/static/emoji/1f6ab.svg deleted file mode 100644 index 4b913ae58..000000000 --- a/priv/static/emoji/1f6ab.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f6ac.svg b/priv/static/emoji/1f6ac.svg deleted file mode 100644 index 1c0dff27a..000000000 --- a/priv/static/emoji/1f6ac.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f6ad.svg b/priv/static/emoji/1f6ad.svg deleted file mode 100644 index bda285a59..000000000 --- a/priv/static/emoji/1f6ad.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f6ae.svg b/priv/static/emoji/1f6ae.svg deleted file mode 100644 index dadbe6efa..000000000 --- a/priv/static/emoji/1f6ae.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f6af.svg b/priv/static/emoji/1f6af.svg deleted file mode 100644 index 74fad2124..000000000 --- a/priv/static/emoji/1f6af.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f6b0.svg b/priv/static/emoji/1f6b0.svg deleted file mode 100644 index 40f577463..000000000 --- a/priv/static/emoji/1f6b0.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f6b1.svg b/priv/static/emoji/1f6b1.svg deleted file mode 100644 index 5d2b5a011..000000000 --- a/priv/static/emoji/1f6b1.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f6b2.svg b/priv/static/emoji/1f6b2.svg deleted file mode 100644 index b3626aeec..000000000 --- a/priv/static/emoji/1f6b2.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f6b3.svg b/priv/static/emoji/1f6b3.svg deleted file mode 100644 index ab08b6bb2..000000000 --- a/priv/static/emoji/1f6b3.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f6b4-1f3fb-200d-2640-fe0f.svg b/priv/static/emoji/1f6b4-1f3fb-200d-2640-fe0f.svg deleted file mode 100644 index 947042da8..000000000 --- a/priv/static/emoji/1f6b4-1f3fb-200d-2640-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f6b4-1f3fb-200d-2642-fe0f.svg b/priv/static/emoji/1f6b4-1f3fb-200d-2642-fe0f.svg deleted file mode 100644 index def3807bc..000000000 --- a/priv/static/emoji/1f6b4-1f3fb-200d-2642-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f6b4-1f3fb.svg b/priv/static/emoji/1f6b4-1f3fb.svg deleted file mode 100644 index def3807bc..000000000 --- a/priv/static/emoji/1f6b4-1f3fb.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f6b4-1f3fc-200d-2640-fe0f.svg b/priv/static/emoji/1f6b4-1f3fc-200d-2640-fe0f.svg deleted file mode 100644 index bdabdf85a..000000000 --- a/priv/static/emoji/1f6b4-1f3fc-200d-2640-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f6b4-1f3fc-200d-2642-fe0f.svg b/priv/static/emoji/1f6b4-1f3fc-200d-2642-fe0f.svg deleted file mode 100644 index d163a47c0..000000000 --- a/priv/static/emoji/1f6b4-1f3fc-200d-2642-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f6b4-1f3fc.svg b/priv/static/emoji/1f6b4-1f3fc.svg deleted file mode 100644 index d163a47c0..000000000 --- a/priv/static/emoji/1f6b4-1f3fc.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f6b4-1f3fd-200d-2640-fe0f.svg b/priv/static/emoji/1f6b4-1f3fd-200d-2640-fe0f.svg deleted file mode 100644 index c30571436..000000000 --- a/priv/static/emoji/1f6b4-1f3fd-200d-2640-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f6b4-1f3fd-200d-2642-fe0f.svg b/priv/static/emoji/1f6b4-1f3fd-200d-2642-fe0f.svg deleted file mode 100644 index afc749ad3..000000000 --- a/priv/static/emoji/1f6b4-1f3fd-200d-2642-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f6b4-1f3fd.svg b/priv/static/emoji/1f6b4-1f3fd.svg deleted file mode 100644 index afc749ad3..000000000 --- a/priv/static/emoji/1f6b4-1f3fd.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f6b4-1f3fe-200d-2640-fe0f.svg b/priv/static/emoji/1f6b4-1f3fe-200d-2640-fe0f.svg deleted file mode 100644 index fa310bfb8..000000000 --- a/priv/static/emoji/1f6b4-1f3fe-200d-2640-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f6b4-1f3fe-200d-2642-fe0f.svg b/priv/static/emoji/1f6b4-1f3fe-200d-2642-fe0f.svg deleted file mode 100644 index 551789511..000000000 --- a/priv/static/emoji/1f6b4-1f3fe-200d-2642-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f6b4-1f3fe.svg b/priv/static/emoji/1f6b4-1f3fe.svg deleted file mode 100644 index 551789511..000000000 --- a/priv/static/emoji/1f6b4-1f3fe.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f6b4-1f3ff-200d-2640-fe0f.svg b/priv/static/emoji/1f6b4-1f3ff-200d-2640-fe0f.svg deleted file mode 100644 index 25c02de21..000000000 --- a/priv/static/emoji/1f6b4-1f3ff-200d-2640-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f6b4-1f3ff-200d-2642-fe0f.svg b/priv/static/emoji/1f6b4-1f3ff-200d-2642-fe0f.svg deleted file mode 100644 index c06f35930..000000000 --- a/priv/static/emoji/1f6b4-1f3ff-200d-2642-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f6b4-1f3ff.svg b/priv/static/emoji/1f6b4-1f3ff.svg deleted file mode 100644 index c06f35930..000000000 --- a/priv/static/emoji/1f6b4-1f3ff.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f6b4-200d-2640-fe0f.svg b/priv/static/emoji/1f6b4-200d-2640-fe0f.svg deleted file mode 100644 index 4ecaf7242..000000000 --- a/priv/static/emoji/1f6b4-200d-2640-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f6b4-200d-2642-fe0f.svg b/priv/static/emoji/1f6b4-200d-2642-fe0f.svg deleted file mode 100644 index ae3112edc..000000000 --- a/priv/static/emoji/1f6b4-200d-2642-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f6b4.svg b/priv/static/emoji/1f6b4.svg deleted file mode 100644 index ae3112edc..000000000 --- a/priv/static/emoji/1f6b4.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f6b5-1f3fb-200d-2640-fe0f.svg b/priv/static/emoji/1f6b5-1f3fb-200d-2640-fe0f.svg deleted file mode 100644 index b203db44e..000000000 --- a/priv/static/emoji/1f6b5-1f3fb-200d-2640-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f6b5-1f3fb-200d-2642-fe0f.svg b/priv/static/emoji/1f6b5-1f3fb-200d-2642-fe0f.svg deleted file mode 100644 index 63627abc7..000000000 --- a/priv/static/emoji/1f6b5-1f3fb-200d-2642-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f6b5-1f3fb.svg b/priv/static/emoji/1f6b5-1f3fb.svg deleted file mode 100644 index 63627abc7..000000000 --- a/priv/static/emoji/1f6b5-1f3fb.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f6b5-1f3fc-200d-2640-fe0f.svg b/priv/static/emoji/1f6b5-1f3fc-200d-2640-fe0f.svg deleted file mode 100644 index e94e02ef3..000000000 --- a/priv/static/emoji/1f6b5-1f3fc-200d-2640-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f6b5-1f3fc-200d-2642-fe0f.svg b/priv/static/emoji/1f6b5-1f3fc-200d-2642-fe0f.svg deleted file mode 100644 index e629c6cf3..000000000 --- a/priv/static/emoji/1f6b5-1f3fc-200d-2642-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f6b5-1f3fc.svg b/priv/static/emoji/1f6b5-1f3fc.svg deleted file mode 100644 index e629c6cf3..000000000 --- a/priv/static/emoji/1f6b5-1f3fc.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f6b5-1f3fd-200d-2640-fe0f.svg b/priv/static/emoji/1f6b5-1f3fd-200d-2640-fe0f.svg deleted file mode 100644 index 79bf20417..000000000 --- a/priv/static/emoji/1f6b5-1f3fd-200d-2640-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f6b5-1f3fd-200d-2642-fe0f.svg b/priv/static/emoji/1f6b5-1f3fd-200d-2642-fe0f.svg deleted file mode 100644 index c1e95693c..000000000 --- a/priv/static/emoji/1f6b5-1f3fd-200d-2642-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f6b5-1f3fd.svg b/priv/static/emoji/1f6b5-1f3fd.svg deleted file mode 100644 index c1e95693c..000000000 --- a/priv/static/emoji/1f6b5-1f3fd.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f6b5-1f3fe-200d-2640-fe0f.svg b/priv/static/emoji/1f6b5-1f3fe-200d-2640-fe0f.svg deleted file mode 100644 index e0b6d224b..000000000 --- a/priv/static/emoji/1f6b5-1f3fe-200d-2640-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f6b5-1f3fe-200d-2642-fe0f.svg b/priv/static/emoji/1f6b5-1f3fe-200d-2642-fe0f.svg deleted file mode 100644 index 55a8b20bb..000000000 --- a/priv/static/emoji/1f6b5-1f3fe-200d-2642-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f6b5-1f3fe.svg b/priv/static/emoji/1f6b5-1f3fe.svg deleted file mode 100644 index 55a8b20bb..000000000 --- a/priv/static/emoji/1f6b5-1f3fe.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f6b5-1f3ff-200d-2640-fe0f.svg b/priv/static/emoji/1f6b5-1f3ff-200d-2640-fe0f.svg deleted file mode 100644 index 17a393109..000000000 --- a/priv/static/emoji/1f6b5-1f3ff-200d-2640-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f6b5-1f3ff-200d-2642-fe0f.svg b/priv/static/emoji/1f6b5-1f3ff-200d-2642-fe0f.svg deleted file mode 100644 index c856c95ba..000000000 --- a/priv/static/emoji/1f6b5-1f3ff-200d-2642-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f6b5-1f3ff.svg b/priv/static/emoji/1f6b5-1f3ff.svg deleted file mode 100644 index c856c95ba..000000000 --- a/priv/static/emoji/1f6b5-1f3ff.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f6b5-200d-2640-fe0f.svg b/priv/static/emoji/1f6b5-200d-2640-fe0f.svg deleted file mode 100644 index aaf71dcaa..000000000 --- a/priv/static/emoji/1f6b5-200d-2640-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f6b5-200d-2642-fe0f.svg b/priv/static/emoji/1f6b5-200d-2642-fe0f.svg deleted file mode 100644 index 991430830..000000000 --- a/priv/static/emoji/1f6b5-200d-2642-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f6b5.svg b/priv/static/emoji/1f6b5.svg deleted file mode 100644 index 991430830..000000000 --- a/priv/static/emoji/1f6b5.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f6b6-1f3fb-200d-2640-fe0f.svg b/priv/static/emoji/1f6b6-1f3fb-200d-2640-fe0f.svg deleted file mode 100644 index 396c56b4e..000000000 --- a/priv/static/emoji/1f6b6-1f3fb-200d-2640-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f6b6-1f3fb-200d-2642-fe0f.svg b/priv/static/emoji/1f6b6-1f3fb-200d-2642-fe0f.svg deleted file mode 100644 index 8f5f4ce23..000000000 --- a/priv/static/emoji/1f6b6-1f3fb-200d-2642-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f6b6-1f3fb.svg b/priv/static/emoji/1f6b6-1f3fb.svg deleted file mode 100644 index 8f5f4ce23..000000000 --- a/priv/static/emoji/1f6b6-1f3fb.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f6b6-1f3fc-200d-2640-fe0f.svg b/priv/static/emoji/1f6b6-1f3fc-200d-2640-fe0f.svg deleted file mode 100644 index 571d8f0f4..000000000 --- a/priv/static/emoji/1f6b6-1f3fc-200d-2640-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f6b6-1f3fc-200d-2642-fe0f.svg b/priv/static/emoji/1f6b6-1f3fc-200d-2642-fe0f.svg deleted file mode 100644 index cba51a41c..000000000 --- a/priv/static/emoji/1f6b6-1f3fc-200d-2642-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f6b6-1f3fc.svg b/priv/static/emoji/1f6b6-1f3fc.svg deleted file mode 100644 index cba51a41c..000000000 --- a/priv/static/emoji/1f6b6-1f3fc.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f6b6-1f3fd-200d-2640-fe0f.svg b/priv/static/emoji/1f6b6-1f3fd-200d-2640-fe0f.svg deleted file mode 100644 index 65a6df4d7..000000000 --- a/priv/static/emoji/1f6b6-1f3fd-200d-2640-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f6b6-1f3fd-200d-2642-fe0f.svg b/priv/static/emoji/1f6b6-1f3fd-200d-2642-fe0f.svg deleted file mode 100644 index 84169ed7a..000000000 --- a/priv/static/emoji/1f6b6-1f3fd-200d-2642-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f6b6-1f3fd.svg b/priv/static/emoji/1f6b6-1f3fd.svg deleted file mode 100644 index 84169ed7a..000000000 --- a/priv/static/emoji/1f6b6-1f3fd.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f6b6-1f3fe-200d-2640-fe0f.svg b/priv/static/emoji/1f6b6-1f3fe-200d-2640-fe0f.svg deleted file mode 100644 index 352e7af5d..000000000 --- a/priv/static/emoji/1f6b6-1f3fe-200d-2640-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f6b6-1f3fe-200d-2642-fe0f.svg b/priv/static/emoji/1f6b6-1f3fe-200d-2642-fe0f.svg deleted file mode 100644 index 591c56223..000000000 --- a/priv/static/emoji/1f6b6-1f3fe-200d-2642-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f6b6-1f3fe.svg b/priv/static/emoji/1f6b6-1f3fe.svg deleted file mode 100644 index 591c56223..000000000 --- a/priv/static/emoji/1f6b6-1f3fe.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f6b6-1f3ff-200d-2640-fe0f.svg b/priv/static/emoji/1f6b6-1f3ff-200d-2640-fe0f.svg deleted file mode 100644 index ae7e41430..000000000 --- a/priv/static/emoji/1f6b6-1f3ff-200d-2640-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f6b6-1f3ff-200d-2642-fe0f.svg b/priv/static/emoji/1f6b6-1f3ff-200d-2642-fe0f.svg deleted file mode 100644 index 198a8377e..000000000 --- a/priv/static/emoji/1f6b6-1f3ff-200d-2642-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f6b6-1f3ff.svg b/priv/static/emoji/1f6b6-1f3ff.svg deleted file mode 100644 index 198a8377e..000000000 --- a/priv/static/emoji/1f6b6-1f3ff.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f6b6-200d-2640-fe0f.svg b/priv/static/emoji/1f6b6-200d-2640-fe0f.svg deleted file mode 100644 index 8e187bfab..000000000 --- a/priv/static/emoji/1f6b6-200d-2640-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f6b6-200d-2642-fe0f.svg b/priv/static/emoji/1f6b6-200d-2642-fe0f.svg deleted file mode 100644 index 9217939d2..000000000 --- a/priv/static/emoji/1f6b6-200d-2642-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f6b6.svg b/priv/static/emoji/1f6b6.svg deleted file mode 100644 index 9217939d2..000000000 --- a/priv/static/emoji/1f6b6.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f6b7.svg b/priv/static/emoji/1f6b7.svg deleted file mode 100644 index ebe039fa7..000000000 --- a/priv/static/emoji/1f6b7.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f6b8.svg b/priv/static/emoji/1f6b8.svg deleted file mode 100644 index a9dca0f91..000000000 --- a/priv/static/emoji/1f6b8.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f6b9.svg b/priv/static/emoji/1f6b9.svg deleted file mode 100644 index 2f7a492d8..000000000 --- a/priv/static/emoji/1f6b9.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f6ba.svg b/priv/static/emoji/1f6ba.svg deleted file mode 100644 index d73ed94bb..000000000 --- a/priv/static/emoji/1f6ba.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f6bb.svg b/priv/static/emoji/1f6bb.svg deleted file mode 100644 index 0ecbb5355..000000000 --- a/priv/static/emoji/1f6bb.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f6bc.svg b/priv/static/emoji/1f6bc.svg deleted file mode 100644 index 300b10e45..000000000 --- a/priv/static/emoji/1f6bc.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f6bd.svg b/priv/static/emoji/1f6bd.svg deleted file mode 100644 index 246344847..000000000 --- a/priv/static/emoji/1f6bd.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f6be.svg b/priv/static/emoji/1f6be.svg deleted file mode 100644 index aad724c30..000000000 --- a/priv/static/emoji/1f6be.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f6bf.svg b/priv/static/emoji/1f6bf.svg deleted file mode 100644 index 004dadf7d..000000000 --- a/priv/static/emoji/1f6bf.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f6c0-1f3fb.svg b/priv/static/emoji/1f6c0-1f3fb.svg deleted file mode 100644 index ad93c8c61..000000000 --- a/priv/static/emoji/1f6c0-1f3fb.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f6c0-1f3fc.svg b/priv/static/emoji/1f6c0-1f3fc.svg deleted file mode 100644 index 4f1e2fa1e..000000000 --- a/priv/static/emoji/1f6c0-1f3fc.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f6c0-1f3fd.svg b/priv/static/emoji/1f6c0-1f3fd.svg deleted file mode 100644 index 55b04599d..000000000 --- a/priv/static/emoji/1f6c0-1f3fd.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f6c0-1f3fe.svg b/priv/static/emoji/1f6c0-1f3fe.svg deleted file mode 100644 index d7e88365e..000000000 --- a/priv/static/emoji/1f6c0-1f3fe.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f6c0-1f3ff.svg b/priv/static/emoji/1f6c0-1f3ff.svg deleted file mode 100644 index b667e4600..000000000 --- a/priv/static/emoji/1f6c0-1f3ff.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f6c0.svg b/priv/static/emoji/1f6c0.svg deleted file mode 100644 index 1ccfa2088..000000000 --- a/priv/static/emoji/1f6c0.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f6c1.svg b/priv/static/emoji/1f6c1.svg deleted file mode 100644 index 399bd44b0..000000000 --- a/priv/static/emoji/1f6c1.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f6c2.svg b/priv/static/emoji/1f6c2.svg deleted file mode 100644 index 2e9dfdf76..000000000 --- a/priv/static/emoji/1f6c2.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f6c3.svg b/priv/static/emoji/1f6c3.svg deleted file mode 100644 index 9e58a3bec..000000000 --- a/priv/static/emoji/1f6c3.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f6c4.svg b/priv/static/emoji/1f6c4.svg deleted file mode 100644 index 63edd5a1e..000000000 --- a/priv/static/emoji/1f6c4.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f6c5.svg b/priv/static/emoji/1f6c5.svg deleted file mode 100644 index f67135d51..000000000 --- a/priv/static/emoji/1f6c5.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f6cb.svg b/priv/static/emoji/1f6cb.svg deleted file mode 100644 index c80d190df..000000000 --- a/priv/static/emoji/1f6cb.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f6cc-1f3fb.svg b/priv/static/emoji/1f6cc-1f3fb.svg deleted file mode 100644 index 6a96af598..000000000 --- a/priv/static/emoji/1f6cc-1f3fb.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f6cc-1f3fc.svg b/priv/static/emoji/1f6cc-1f3fc.svg deleted file mode 100644 index 3578121b1..000000000 --- a/priv/static/emoji/1f6cc-1f3fc.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f6cc-1f3fd.svg b/priv/static/emoji/1f6cc-1f3fd.svg deleted file mode 100644 index e16d51cb1..000000000 --- a/priv/static/emoji/1f6cc-1f3fd.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f6cc-1f3fe.svg b/priv/static/emoji/1f6cc-1f3fe.svg deleted file mode 100644 index ea3403bd6..000000000 --- a/priv/static/emoji/1f6cc-1f3fe.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f6cc-1f3ff.svg b/priv/static/emoji/1f6cc-1f3ff.svg deleted file mode 100644 index 82d725589..000000000 --- a/priv/static/emoji/1f6cc-1f3ff.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f6cc.svg b/priv/static/emoji/1f6cc.svg deleted file mode 100644 index 183ccf0ef..000000000 --- a/priv/static/emoji/1f6cc.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f6cd.svg b/priv/static/emoji/1f6cd.svg deleted file mode 100644 index e2ae91678..000000000 --- a/priv/static/emoji/1f6cd.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f6ce.svg b/priv/static/emoji/1f6ce.svg deleted file mode 100644 index 80343b630..000000000 --- a/priv/static/emoji/1f6ce.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f6cf.svg b/priv/static/emoji/1f6cf.svg deleted file mode 100644 index 9c34ec0e6..000000000 --- a/priv/static/emoji/1f6cf.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f6d0.svg b/priv/static/emoji/1f6d0.svg deleted file mode 100644 index 086e273c9..000000000 --- a/priv/static/emoji/1f6d0.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f6d1.svg b/priv/static/emoji/1f6d1.svg deleted file mode 100644 index c8eb021b7..000000000 --- a/priv/static/emoji/1f6d1.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f6d2.svg b/priv/static/emoji/1f6d2.svg deleted file mode 100644 index 03608d5f5..000000000 --- a/priv/static/emoji/1f6d2.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f6d5.svg b/priv/static/emoji/1f6d5.svg deleted file mode 100644 index 4a2e9be2d..000000000 --- a/priv/static/emoji/1f6d5.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f6e0.svg b/priv/static/emoji/1f6e0.svg deleted file mode 100644 index 085f9025e..000000000 --- a/priv/static/emoji/1f6e0.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f6e1.svg b/priv/static/emoji/1f6e1.svg deleted file mode 100644 index 97f68942e..000000000 --- a/priv/static/emoji/1f6e1.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f6e2.svg b/priv/static/emoji/1f6e2.svg deleted file mode 100644 index b7f9cc61b..000000000 --- a/priv/static/emoji/1f6e2.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f6e3.svg b/priv/static/emoji/1f6e3.svg deleted file mode 100644 index 35e82158d..000000000 --- a/priv/static/emoji/1f6e3.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f6e4.svg b/priv/static/emoji/1f6e4.svg deleted file mode 100644 index f11069e89..000000000 --- a/priv/static/emoji/1f6e4.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f6e5.svg b/priv/static/emoji/1f6e5.svg deleted file mode 100644 index b9badb2e3..000000000 --- a/priv/static/emoji/1f6e5.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f6e9.svg b/priv/static/emoji/1f6e9.svg deleted file mode 100644 index fce6b511d..000000000 --- a/priv/static/emoji/1f6e9.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f6eb.svg b/priv/static/emoji/1f6eb.svg deleted file mode 100644 index 7bcbb8c96..000000000 --- a/priv/static/emoji/1f6eb.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f6ec.svg b/priv/static/emoji/1f6ec.svg deleted file mode 100644 index ee10becd3..000000000 --- a/priv/static/emoji/1f6ec.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f6f0.svg b/priv/static/emoji/1f6f0.svg deleted file mode 100644 index 6d9bb3d2e..000000000 --- a/priv/static/emoji/1f6f0.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f6f3.svg b/priv/static/emoji/1f6f3.svg deleted file mode 100644 index 44862135b..000000000 --- a/priv/static/emoji/1f6f3.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f6f4.svg b/priv/static/emoji/1f6f4.svg deleted file mode 100644 index e217dc436..000000000 --- a/priv/static/emoji/1f6f4.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f6f5.svg b/priv/static/emoji/1f6f5.svg deleted file mode 100644 index a1e0f4b99..000000000 --- a/priv/static/emoji/1f6f5.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f6f6.svg b/priv/static/emoji/1f6f6.svg deleted file mode 100644 index b6a216525..000000000 --- a/priv/static/emoji/1f6f6.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f6f7.svg b/priv/static/emoji/1f6f7.svg deleted file mode 100644 index 12d776dba..000000000 --- a/priv/static/emoji/1f6f7.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f6f8.svg b/priv/static/emoji/1f6f8.svg deleted file mode 100644 index 5f015fe79..000000000 --- a/priv/static/emoji/1f6f8.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f6f9.svg b/priv/static/emoji/1f6f9.svg deleted file mode 100644 index 1ee4bfec4..000000000 --- a/priv/static/emoji/1f6f9.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f6fa.svg b/priv/static/emoji/1f6fa.svg deleted file mode 100644 index aae4e94ac..000000000 --- a/priv/static/emoji/1f6fa.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f7e0.svg b/priv/static/emoji/1f7e0.svg deleted file mode 100644 index 2db43d5b2..000000000 --- a/priv/static/emoji/1f7e0.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f7e1.svg b/priv/static/emoji/1f7e1.svg deleted file mode 100644 index 5c05d4385..000000000 --- a/priv/static/emoji/1f7e1.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f7e2.svg b/priv/static/emoji/1f7e2.svg deleted file mode 100644 index 3e68a3fb1..000000000 --- a/priv/static/emoji/1f7e2.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f7e3.svg b/priv/static/emoji/1f7e3.svg deleted file mode 100644 index 8a034cab4..000000000 --- a/priv/static/emoji/1f7e3.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f7e4.svg b/priv/static/emoji/1f7e4.svg deleted file mode 100644 index ebbc3a730..000000000 --- a/priv/static/emoji/1f7e4.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f7e5.svg b/priv/static/emoji/1f7e5.svg deleted file mode 100644 index 5326d657d..000000000 --- a/priv/static/emoji/1f7e5.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f7e6.svg b/priv/static/emoji/1f7e6.svg deleted file mode 100644 index 082422601..000000000 --- a/priv/static/emoji/1f7e6.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f7e7.svg b/priv/static/emoji/1f7e7.svg deleted file mode 100644 index 3cbdde4d9..000000000 --- a/priv/static/emoji/1f7e7.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f7e8.svg b/priv/static/emoji/1f7e8.svg deleted file mode 100644 index 64795b1f2..000000000 --- a/priv/static/emoji/1f7e8.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f7e9.svg b/priv/static/emoji/1f7e9.svg deleted file mode 100644 index 73ed4fa49..000000000 --- a/priv/static/emoji/1f7e9.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f7ea.svg b/priv/static/emoji/1f7ea.svg deleted file mode 100644 index c331b1f71..000000000 --- a/priv/static/emoji/1f7ea.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f7eb.svg b/priv/static/emoji/1f7eb.svg deleted file mode 100644 index 24ee98278..000000000 --- a/priv/static/emoji/1f7eb.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f90d.svg b/priv/static/emoji/1f90d.svg deleted file mode 100644 index 7deb0cd70..000000000 --- a/priv/static/emoji/1f90d.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f90e.svg b/priv/static/emoji/1f90e.svg deleted file mode 100644 index 275f3c98f..000000000 --- a/priv/static/emoji/1f90e.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f90f-1f3fb.svg b/priv/static/emoji/1f90f-1f3fb.svg deleted file mode 100644 index a14c90745..000000000 --- a/priv/static/emoji/1f90f-1f3fb.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f90f-1f3fc.svg b/priv/static/emoji/1f90f-1f3fc.svg deleted file mode 100644 index 8f109cde2..000000000 --- a/priv/static/emoji/1f90f-1f3fc.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f90f-1f3fd.svg b/priv/static/emoji/1f90f-1f3fd.svg deleted file mode 100644 index 0e9b3e620..000000000 --- a/priv/static/emoji/1f90f-1f3fd.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f90f-1f3fe.svg b/priv/static/emoji/1f90f-1f3fe.svg deleted file mode 100644 index 07ccb2b69..000000000 --- a/priv/static/emoji/1f90f-1f3fe.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f90f-1f3ff.svg b/priv/static/emoji/1f90f-1f3ff.svg deleted file mode 100644 index 78893d0e9..000000000 --- a/priv/static/emoji/1f90f-1f3ff.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f90f.svg b/priv/static/emoji/1f90f.svg deleted file mode 100644 index 626e3b5f0..000000000 --- a/priv/static/emoji/1f90f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f910.svg b/priv/static/emoji/1f910.svg deleted file mode 100644 index 873621f35..000000000 --- a/priv/static/emoji/1f910.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f911.svg b/priv/static/emoji/1f911.svg deleted file mode 100644 index 5616de71c..000000000 --- a/priv/static/emoji/1f911.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f912.svg b/priv/static/emoji/1f912.svg deleted file mode 100644 index b6ac0a986..000000000 --- a/priv/static/emoji/1f912.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f913.svg b/priv/static/emoji/1f913.svg deleted file mode 100644 index d430a6845..000000000 --- a/priv/static/emoji/1f913.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f914.svg b/priv/static/emoji/1f914.svg deleted file mode 100644 index 4e8c4cc29..000000000 --- a/priv/static/emoji/1f914.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f915.svg b/priv/static/emoji/1f915.svg deleted file mode 100644 index fce67fc54..000000000 --- a/priv/static/emoji/1f915.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f916.svg b/priv/static/emoji/1f916.svg deleted file mode 100644 index 1dbe6d68d..000000000 --- a/priv/static/emoji/1f916.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f917.svg b/priv/static/emoji/1f917.svg deleted file mode 100644 index 134167541..000000000 --- a/priv/static/emoji/1f917.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f918-1f3fb.svg b/priv/static/emoji/1f918-1f3fb.svg deleted file mode 100644 index 56fa28a56..000000000 --- a/priv/static/emoji/1f918-1f3fb.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f918-1f3fc.svg b/priv/static/emoji/1f918-1f3fc.svg deleted file mode 100644 index bae1401c4..000000000 --- a/priv/static/emoji/1f918-1f3fc.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f918-1f3fd.svg b/priv/static/emoji/1f918-1f3fd.svg deleted file mode 100644 index 98ebab088..000000000 --- a/priv/static/emoji/1f918-1f3fd.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f918-1f3fe.svg b/priv/static/emoji/1f918-1f3fe.svg deleted file mode 100644 index 873cef08c..000000000 --- a/priv/static/emoji/1f918-1f3fe.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f918-1f3ff.svg b/priv/static/emoji/1f918-1f3ff.svg deleted file mode 100644 index 052adbb63..000000000 --- a/priv/static/emoji/1f918-1f3ff.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f918.svg b/priv/static/emoji/1f918.svg deleted file mode 100644 index c3a10630e..000000000 --- a/priv/static/emoji/1f918.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f919-1f3fb.svg b/priv/static/emoji/1f919-1f3fb.svg deleted file mode 100644 index 1a9691f90..000000000 --- a/priv/static/emoji/1f919-1f3fb.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f919-1f3fc.svg b/priv/static/emoji/1f919-1f3fc.svg deleted file mode 100644 index add5b47b0..000000000 --- a/priv/static/emoji/1f919-1f3fc.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f919-1f3fd.svg b/priv/static/emoji/1f919-1f3fd.svg deleted file mode 100644 index 993c6f77f..000000000 --- a/priv/static/emoji/1f919-1f3fd.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f919-1f3fe.svg b/priv/static/emoji/1f919-1f3fe.svg deleted file mode 100644 index a433b38b0..000000000 --- a/priv/static/emoji/1f919-1f3fe.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f919-1f3ff.svg b/priv/static/emoji/1f919-1f3ff.svg deleted file mode 100644 index 226cd45d9..000000000 --- a/priv/static/emoji/1f919-1f3ff.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f919.svg b/priv/static/emoji/1f919.svg deleted file mode 100644 index 4ab045411..000000000 --- a/priv/static/emoji/1f919.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f91a-1f3fb.svg b/priv/static/emoji/1f91a-1f3fb.svg deleted file mode 100644 index 646618e6e..000000000 --- a/priv/static/emoji/1f91a-1f3fb.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f91a-1f3fc.svg b/priv/static/emoji/1f91a-1f3fc.svg deleted file mode 100644 index 4b5f98392..000000000 --- a/priv/static/emoji/1f91a-1f3fc.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f91a-1f3fd.svg b/priv/static/emoji/1f91a-1f3fd.svg deleted file mode 100644 index 6d85626e0..000000000 --- a/priv/static/emoji/1f91a-1f3fd.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f91a-1f3fe.svg b/priv/static/emoji/1f91a-1f3fe.svg deleted file mode 100644 index cc36a2487..000000000 --- a/priv/static/emoji/1f91a-1f3fe.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f91a-1f3ff.svg b/priv/static/emoji/1f91a-1f3ff.svg deleted file mode 100644 index 1345e9719..000000000 --- a/priv/static/emoji/1f91a-1f3ff.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f91a.svg b/priv/static/emoji/1f91a.svg deleted file mode 100644 index a3d2b1c9d..000000000 --- a/priv/static/emoji/1f91a.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f91b-1f3fb.svg b/priv/static/emoji/1f91b-1f3fb.svg deleted file mode 100644 index 1deb10c5c..000000000 --- a/priv/static/emoji/1f91b-1f3fb.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f91b-1f3fc.svg b/priv/static/emoji/1f91b-1f3fc.svg deleted file mode 100644 index 7edf532b7..000000000 --- a/priv/static/emoji/1f91b-1f3fc.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f91b-1f3fd.svg b/priv/static/emoji/1f91b-1f3fd.svg deleted file mode 100644 index d98a536cf..000000000 --- a/priv/static/emoji/1f91b-1f3fd.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f91b-1f3fe.svg b/priv/static/emoji/1f91b-1f3fe.svg deleted file mode 100644 index e48b751a4..000000000 --- a/priv/static/emoji/1f91b-1f3fe.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f91b-1f3ff.svg b/priv/static/emoji/1f91b-1f3ff.svg deleted file mode 100644 index 3998353b4..000000000 --- a/priv/static/emoji/1f91b-1f3ff.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f91b.svg b/priv/static/emoji/1f91b.svg deleted file mode 100644 index a5a142b5c..000000000 --- a/priv/static/emoji/1f91b.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f91c-1f3fb.svg b/priv/static/emoji/1f91c-1f3fb.svg deleted file mode 100644 index ff817fd7b..000000000 --- a/priv/static/emoji/1f91c-1f3fb.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f91c-1f3fc.svg b/priv/static/emoji/1f91c-1f3fc.svg deleted file mode 100644 index 732af9c04..000000000 --- a/priv/static/emoji/1f91c-1f3fc.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f91c-1f3fd.svg b/priv/static/emoji/1f91c-1f3fd.svg deleted file mode 100644 index 79ed35f08..000000000 --- a/priv/static/emoji/1f91c-1f3fd.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f91c-1f3fe.svg b/priv/static/emoji/1f91c-1f3fe.svg deleted file mode 100644 index 948472fc6..000000000 --- a/priv/static/emoji/1f91c-1f3fe.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f91c-1f3ff.svg b/priv/static/emoji/1f91c-1f3ff.svg deleted file mode 100644 index eb89c3a84..000000000 --- a/priv/static/emoji/1f91c-1f3ff.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f91c.svg b/priv/static/emoji/1f91c.svg deleted file mode 100644 index afaa803b5..000000000 --- a/priv/static/emoji/1f91c.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f91d.svg b/priv/static/emoji/1f91d.svg deleted file mode 100644 index 3d797a089..000000000 --- a/priv/static/emoji/1f91d.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f91e-1f3fb.svg b/priv/static/emoji/1f91e-1f3fb.svg deleted file mode 100644 index 30a387d36..000000000 --- a/priv/static/emoji/1f91e-1f3fb.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f91e-1f3fc.svg b/priv/static/emoji/1f91e-1f3fc.svg deleted file mode 100644 index ec2fa5086..000000000 --- a/priv/static/emoji/1f91e-1f3fc.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f91e-1f3fd.svg b/priv/static/emoji/1f91e-1f3fd.svg deleted file mode 100644 index b17f2690b..000000000 --- a/priv/static/emoji/1f91e-1f3fd.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f91e-1f3fe.svg b/priv/static/emoji/1f91e-1f3fe.svg deleted file mode 100644 index 28cbb7885..000000000 --- a/priv/static/emoji/1f91e-1f3fe.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f91e-1f3ff.svg b/priv/static/emoji/1f91e-1f3ff.svg deleted file mode 100644 index 86e91b2a9..000000000 --- a/priv/static/emoji/1f91e-1f3ff.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f91e.svg b/priv/static/emoji/1f91e.svg deleted file mode 100644 index f85ba6525..000000000 --- a/priv/static/emoji/1f91e.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f91f-1f3fb.svg b/priv/static/emoji/1f91f-1f3fb.svg deleted file mode 100644 index aa2623195..000000000 --- a/priv/static/emoji/1f91f-1f3fb.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f91f-1f3fc.svg b/priv/static/emoji/1f91f-1f3fc.svg deleted file mode 100644 index 13e4bac5c..000000000 --- a/priv/static/emoji/1f91f-1f3fc.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f91f-1f3fd.svg b/priv/static/emoji/1f91f-1f3fd.svg deleted file mode 100644 index 274170b9f..000000000 --- a/priv/static/emoji/1f91f-1f3fd.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f91f-1f3fe.svg b/priv/static/emoji/1f91f-1f3fe.svg deleted file mode 100644 index f4f18d8dc..000000000 --- a/priv/static/emoji/1f91f-1f3fe.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f91f-1f3ff.svg b/priv/static/emoji/1f91f-1f3ff.svg deleted file mode 100644 index d2f5581fc..000000000 --- a/priv/static/emoji/1f91f-1f3ff.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f91f.svg b/priv/static/emoji/1f91f.svg deleted file mode 100644 index 4f3d74f00..000000000 --- a/priv/static/emoji/1f91f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f920.svg b/priv/static/emoji/1f920.svg deleted file mode 100644 index da7cfa26a..000000000 --- a/priv/static/emoji/1f920.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f921.svg b/priv/static/emoji/1f921.svg deleted file mode 100644 index 6d16a6624..000000000 --- a/priv/static/emoji/1f921.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f922.svg b/priv/static/emoji/1f922.svg deleted file mode 100644 index ed7c86c0d..000000000 --- a/priv/static/emoji/1f922.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f923.svg b/priv/static/emoji/1f923.svg deleted file mode 100644 index 7ddfcae30..000000000 --- a/priv/static/emoji/1f923.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f924.svg b/priv/static/emoji/1f924.svg deleted file mode 100644 index 9af71fc9d..000000000 --- a/priv/static/emoji/1f924.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f925.svg b/priv/static/emoji/1f925.svg deleted file mode 100644 index 9f255307c..000000000 --- a/priv/static/emoji/1f925.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f926-1f3fb-200d-2640-fe0f.svg b/priv/static/emoji/1f926-1f3fb-200d-2640-fe0f.svg deleted file mode 100644 index 01f59a196..000000000 --- a/priv/static/emoji/1f926-1f3fb-200d-2640-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f926-1f3fb-200d-2642-fe0f.svg b/priv/static/emoji/1f926-1f3fb-200d-2642-fe0f.svg deleted file mode 100644 index 90f06b3e1..000000000 --- a/priv/static/emoji/1f926-1f3fb-200d-2642-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f926-1f3fb.svg b/priv/static/emoji/1f926-1f3fb.svg deleted file mode 100644 index 01f59a196..000000000 --- a/priv/static/emoji/1f926-1f3fb.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f926-1f3fc-200d-2640-fe0f.svg b/priv/static/emoji/1f926-1f3fc-200d-2640-fe0f.svg deleted file mode 100644 index a479826f8..000000000 --- a/priv/static/emoji/1f926-1f3fc-200d-2640-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f926-1f3fc-200d-2642-fe0f.svg b/priv/static/emoji/1f926-1f3fc-200d-2642-fe0f.svg deleted file mode 100644 index ea55c5ad0..000000000 --- a/priv/static/emoji/1f926-1f3fc-200d-2642-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f926-1f3fc.svg b/priv/static/emoji/1f926-1f3fc.svg deleted file mode 100644 index a479826f8..000000000 --- a/priv/static/emoji/1f926-1f3fc.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f926-1f3fd-200d-2640-fe0f.svg b/priv/static/emoji/1f926-1f3fd-200d-2640-fe0f.svg deleted file mode 100644 index ece26ca04..000000000 --- a/priv/static/emoji/1f926-1f3fd-200d-2640-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f926-1f3fd-200d-2642-fe0f.svg b/priv/static/emoji/1f926-1f3fd-200d-2642-fe0f.svg deleted file mode 100644 index 5df9aa236..000000000 --- a/priv/static/emoji/1f926-1f3fd-200d-2642-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f926-1f3fd.svg b/priv/static/emoji/1f926-1f3fd.svg deleted file mode 100644 index ece26ca04..000000000 --- a/priv/static/emoji/1f926-1f3fd.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f926-1f3fe-200d-2640-fe0f.svg b/priv/static/emoji/1f926-1f3fe-200d-2640-fe0f.svg deleted file mode 100644 index 8e677c492..000000000 --- a/priv/static/emoji/1f926-1f3fe-200d-2640-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f926-1f3fe-200d-2642-fe0f.svg b/priv/static/emoji/1f926-1f3fe-200d-2642-fe0f.svg deleted file mode 100644 index df48aee79..000000000 --- a/priv/static/emoji/1f926-1f3fe-200d-2642-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f926-1f3fe.svg b/priv/static/emoji/1f926-1f3fe.svg deleted file mode 100644 index 8e677c492..000000000 --- a/priv/static/emoji/1f926-1f3fe.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f926-1f3ff-200d-2640-fe0f.svg b/priv/static/emoji/1f926-1f3ff-200d-2640-fe0f.svg deleted file mode 100644 index c5a860357..000000000 --- a/priv/static/emoji/1f926-1f3ff-200d-2640-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f926-1f3ff-200d-2642-fe0f.svg b/priv/static/emoji/1f926-1f3ff-200d-2642-fe0f.svg deleted file mode 100644 index e19ae7548..000000000 --- a/priv/static/emoji/1f926-1f3ff-200d-2642-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f926-1f3ff.svg b/priv/static/emoji/1f926-1f3ff.svg deleted file mode 100644 index c5a860357..000000000 --- a/priv/static/emoji/1f926-1f3ff.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f926-200d-2640-fe0f.svg b/priv/static/emoji/1f926-200d-2640-fe0f.svg deleted file mode 100644 index a31d72bdd..000000000 --- a/priv/static/emoji/1f926-200d-2640-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f926-200d-2642-fe0f.svg b/priv/static/emoji/1f926-200d-2642-fe0f.svg deleted file mode 100644 index 29cbd0bb3..000000000 --- a/priv/static/emoji/1f926-200d-2642-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f926.svg b/priv/static/emoji/1f926.svg deleted file mode 100644 index a31d72bdd..000000000 --- a/priv/static/emoji/1f926.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f927.svg b/priv/static/emoji/1f927.svg deleted file mode 100644 index dc86ab356..000000000 --- a/priv/static/emoji/1f927.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f928.svg b/priv/static/emoji/1f928.svg deleted file mode 100644 index 126e459b2..000000000 --- a/priv/static/emoji/1f928.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f929.svg b/priv/static/emoji/1f929.svg deleted file mode 100644 index 260cd80a1..000000000 --- a/priv/static/emoji/1f929.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f92a.svg b/priv/static/emoji/1f92a.svg deleted file mode 100644 index baf58f21b..000000000 --- a/priv/static/emoji/1f92a.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f92b.svg b/priv/static/emoji/1f92b.svg deleted file mode 100644 index a00edc96c..000000000 --- a/priv/static/emoji/1f92b.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f92c.svg b/priv/static/emoji/1f92c.svg deleted file mode 100644 index c26a5aa4e..000000000 --- a/priv/static/emoji/1f92c.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f92d.svg b/priv/static/emoji/1f92d.svg deleted file mode 100644 index b79e06736..000000000 --- a/priv/static/emoji/1f92d.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f92e.svg b/priv/static/emoji/1f92e.svg deleted file mode 100644 index d792679fd..000000000 --- a/priv/static/emoji/1f92e.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f92f.svg b/priv/static/emoji/1f92f.svg deleted file mode 100644 index 664d96059..000000000 --- a/priv/static/emoji/1f92f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f930-1f3fb.svg b/priv/static/emoji/1f930-1f3fb.svg deleted file mode 100644 index 925d1e45f..000000000 --- a/priv/static/emoji/1f930-1f3fb.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f930-1f3fc.svg b/priv/static/emoji/1f930-1f3fc.svg deleted file mode 100644 index e308ef957..000000000 --- a/priv/static/emoji/1f930-1f3fc.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f930-1f3fd.svg b/priv/static/emoji/1f930-1f3fd.svg deleted file mode 100644 index 39d55f474..000000000 --- a/priv/static/emoji/1f930-1f3fd.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f930-1f3fe.svg b/priv/static/emoji/1f930-1f3fe.svg deleted file mode 100644 index ee049b84b..000000000 --- a/priv/static/emoji/1f930-1f3fe.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f930-1f3ff.svg b/priv/static/emoji/1f930-1f3ff.svg deleted file mode 100644 index 607d72eb1..000000000 --- a/priv/static/emoji/1f930-1f3ff.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f930.svg b/priv/static/emoji/1f930.svg deleted file mode 100644 index 31a937725..000000000 --- a/priv/static/emoji/1f930.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f931-1f3fb.svg b/priv/static/emoji/1f931-1f3fb.svg deleted file mode 100644 index e4815f2a5..000000000 --- a/priv/static/emoji/1f931-1f3fb.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f931-1f3fc.svg b/priv/static/emoji/1f931-1f3fc.svg deleted file mode 100644 index c02ddc319..000000000 --- a/priv/static/emoji/1f931-1f3fc.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f931-1f3fd.svg b/priv/static/emoji/1f931-1f3fd.svg deleted file mode 100644 index fc4150b96..000000000 --- a/priv/static/emoji/1f931-1f3fd.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f931-1f3fe.svg b/priv/static/emoji/1f931-1f3fe.svg deleted file mode 100644 index 7cd0602ff..000000000 --- a/priv/static/emoji/1f931-1f3fe.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f931-1f3ff.svg b/priv/static/emoji/1f931-1f3ff.svg deleted file mode 100644 index 6ea48e4c0..000000000 --- a/priv/static/emoji/1f931-1f3ff.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f931.svg b/priv/static/emoji/1f931.svg deleted file mode 100644 index 86dc551ca..000000000 --- a/priv/static/emoji/1f931.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f932-1f3fb.svg b/priv/static/emoji/1f932-1f3fb.svg deleted file mode 100644 index c1d616ec0..000000000 --- a/priv/static/emoji/1f932-1f3fb.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f932-1f3fc.svg b/priv/static/emoji/1f932-1f3fc.svg deleted file mode 100644 index ee95f09bc..000000000 --- a/priv/static/emoji/1f932-1f3fc.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f932-1f3fd.svg b/priv/static/emoji/1f932-1f3fd.svg deleted file mode 100644 index 78d13a06e..000000000 --- a/priv/static/emoji/1f932-1f3fd.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f932-1f3fe.svg b/priv/static/emoji/1f932-1f3fe.svg deleted file mode 100644 index 4a22a2002..000000000 --- a/priv/static/emoji/1f932-1f3fe.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f932-1f3ff.svg b/priv/static/emoji/1f932-1f3ff.svg deleted file mode 100644 index 2cd1f7d72..000000000 --- a/priv/static/emoji/1f932-1f3ff.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f932.svg b/priv/static/emoji/1f932.svg deleted file mode 100644 index 96b6c65c5..000000000 --- a/priv/static/emoji/1f932.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f933-1f3fb.svg b/priv/static/emoji/1f933-1f3fb.svg deleted file mode 100644 index 066c2a83b..000000000 --- a/priv/static/emoji/1f933-1f3fb.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f933-1f3fc.svg b/priv/static/emoji/1f933-1f3fc.svg deleted file mode 100644 index 6722d158f..000000000 --- a/priv/static/emoji/1f933-1f3fc.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f933-1f3fd.svg b/priv/static/emoji/1f933-1f3fd.svg deleted file mode 100644 index b3f2bd5aa..000000000 --- a/priv/static/emoji/1f933-1f3fd.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f933-1f3fe.svg b/priv/static/emoji/1f933-1f3fe.svg deleted file mode 100644 index f95578a61..000000000 --- a/priv/static/emoji/1f933-1f3fe.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f933-1f3ff.svg b/priv/static/emoji/1f933-1f3ff.svg deleted file mode 100644 index 1cad7851a..000000000 --- a/priv/static/emoji/1f933-1f3ff.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f933.svg b/priv/static/emoji/1f933.svg deleted file mode 100644 index 47fa031f6..000000000 --- a/priv/static/emoji/1f933.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f934-1f3fb.svg b/priv/static/emoji/1f934-1f3fb.svg deleted file mode 100644 index eaa8fb273..000000000 --- a/priv/static/emoji/1f934-1f3fb.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f934-1f3fc.svg b/priv/static/emoji/1f934-1f3fc.svg deleted file mode 100644 index 5feff0ac7..000000000 --- a/priv/static/emoji/1f934-1f3fc.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f934-1f3fd.svg b/priv/static/emoji/1f934-1f3fd.svg deleted file mode 100644 index 04db0c91e..000000000 --- a/priv/static/emoji/1f934-1f3fd.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f934-1f3fe.svg b/priv/static/emoji/1f934-1f3fe.svg deleted file mode 100644 index a26398fa9..000000000 --- a/priv/static/emoji/1f934-1f3fe.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f934-1f3ff.svg b/priv/static/emoji/1f934-1f3ff.svg deleted file mode 100644 index ad40c9d54..000000000 --- a/priv/static/emoji/1f934-1f3ff.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f934.svg b/priv/static/emoji/1f934.svg deleted file mode 100644 index 666ac38c2..000000000 --- a/priv/static/emoji/1f934.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f935-1f3fb-200d-2640-fe0f.svg b/priv/static/emoji/1f935-1f3fb-200d-2640-fe0f.svg deleted file mode 100644 index d0e7ba4e3..000000000 --- a/priv/static/emoji/1f935-1f3fb-200d-2640-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f935-1f3fb-200d-2642-fe0f.svg b/priv/static/emoji/1f935-1f3fb-200d-2642-fe0f.svg deleted file mode 100644 index abd68b8f6..000000000 --- a/priv/static/emoji/1f935-1f3fb-200d-2642-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f935-1f3fb.svg b/priv/static/emoji/1f935-1f3fb.svg deleted file mode 100644 index abd68b8f6..000000000 --- a/priv/static/emoji/1f935-1f3fb.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f935-1f3fc-200d-2640-fe0f.svg b/priv/static/emoji/1f935-1f3fc-200d-2640-fe0f.svg deleted file mode 100644 index 5b10171c3..000000000 --- a/priv/static/emoji/1f935-1f3fc-200d-2640-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f935-1f3fc-200d-2642-fe0f.svg b/priv/static/emoji/1f935-1f3fc-200d-2642-fe0f.svg deleted file mode 100644 index f7093beb7..000000000 --- a/priv/static/emoji/1f935-1f3fc-200d-2642-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f935-1f3fc.svg b/priv/static/emoji/1f935-1f3fc.svg deleted file mode 100644 index f7093beb7..000000000 --- a/priv/static/emoji/1f935-1f3fc.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f935-1f3fd-200d-2640-fe0f.svg b/priv/static/emoji/1f935-1f3fd-200d-2640-fe0f.svg deleted file mode 100644 index 35d0ab5d3..000000000 --- a/priv/static/emoji/1f935-1f3fd-200d-2640-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f935-1f3fd-200d-2642-fe0f.svg b/priv/static/emoji/1f935-1f3fd-200d-2642-fe0f.svg deleted file mode 100644 index 5ed3aa32a..000000000 --- a/priv/static/emoji/1f935-1f3fd-200d-2642-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f935-1f3fd.svg b/priv/static/emoji/1f935-1f3fd.svg deleted file mode 100644 index 5ed3aa32a..000000000 --- a/priv/static/emoji/1f935-1f3fd.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f935-1f3fe-200d-2640-fe0f.svg b/priv/static/emoji/1f935-1f3fe-200d-2640-fe0f.svg deleted file mode 100644 index 5b0623609..000000000 --- a/priv/static/emoji/1f935-1f3fe-200d-2640-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f935-1f3fe-200d-2642-fe0f.svg b/priv/static/emoji/1f935-1f3fe-200d-2642-fe0f.svg deleted file mode 100644 index 6ed7fb365..000000000 --- a/priv/static/emoji/1f935-1f3fe-200d-2642-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f935-1f3fe.svg b/priv/static/emoji/1f935-1f3fe.svg deleted file mode 100644 index 6ed7fb365..000000000 --- a/priv/static/emoji/1f935-1f3fe.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f935-1f3ff-200d-2640-fe0f.svg b/priv/static/emoji/1f935-1f3ff-200d-2640-fe0f.svg deleted file mode 100644 index 70f6517f0..000000000 --- a/priv/static/emoji/1f935-1f3ff-200d-2640-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f935-1f3ff-200d-2642-fe0f.svg b/priv/static/emoji/1f935-1f3ff-200d-2642-fe0f.svg deleted file mode 100644 index 3af34ef2c..000000000 --- a/priv/static/emoji/1f935-1f3ff-200d-2642-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f935-1f3ff.svg b/priv/static/emoji/1f935-1f3ff.svg deleted file mode 100644 index 3af34ef2c..000000000 --- a/priv/static/emoji/1f935-1f3ff.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f935-200d-2640-fe0f.svg b/priv/static/emoji/1f935-200d-2640-fe0f.svg deleted file mode 100644 index 63ef4c95e..000000000 --- a/priv/static/emoji/1f935-200d-2640-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f935-200d-2642-fe0f.svg b/priv/static/emoji/1f935-200d-2642-fe0f.svg deleted file mode 100644 index 5c87be483..000000000 --- a/priv/static/emoji/1f935-200d-2642-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f935.svg b/priv/static/emoji/1f935.svg deleted file mode 100644 index 5c87be483..000000000 --- a/priv/static/emoji/1f935.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f936-1f3fb.svg b/priv/static/emoji/1f936-1f3fb.svg deleted file mode 100644 index 0227456d0..000000000 --- a/priv/static/emoji/1f936-1f3fb.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f936-1f3fc.svg b/priv/static/emoji/1f936-1f3fc.svg deleted file mode 100644 index 5887d75e0..000000000 --- a/priv/static/emoji/1f936-1f3fc.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f936-1f3fd.svg b/priv/static/emoji/1f936-1f3fd.svg deleted file mode 100644 index 3e1853d2b..000000000 --- a/priv/static/emoji/1f936-1f3fd.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f936-1f3fe.svg b/priv/static/emoji/1f936-1f3fe.svg deleted file mode 100644 index 6d94d270d..000000000 --- a/priv/static/emoji/1f936-1f3fe.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f936-1f3ff.svg b/priv/static/emoji/1f936-1f3ff.svg deleted file mode 100644 index 2178a33ca..000000000 --- a/priv/static/emoji/1f936-1f3ff.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f936.svg b/priv/static/emoji/1f936.svg deleted file mode 100644 index 6cabe5829..000000000 --- a/priv/static/emoji/1f936.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f937-1f3fb-200d-2640-fe0f.svg b/priv/static/emoji/1f937-1f3fb-200d-2640-fe0f.svg deleted file mode 100644 index 1c60fc388..000000000 --- a/priv/static/emoji/1f937-1f3fb-200d-2640-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f937-1f3fb-200d-2642-fe0f.svg b/priv/static/emoji/1f937-1f3fb-200d-2642-fe0f.svg deleted file mode 100644 index 0a92c44a1..000000000 --- a/priv/static/emoji/1f937-1f3fb-200d-2642-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f937-1f3fb.svg b/priv/static/emoji/1f937-1f3fb.svg deleted file mode 100644 index 1c60fc388..000000000 --- a/priv/static/emoji/1f937-1f3fb.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f937-1f3fc-200d-2640-fe0f.svg b/priv/static/emoji/1f937-1f3fc-200d-2640-fe0f.svg deleted file mode 100644 index af1de0404..000000000 --- a/priv/static/emoji/1f937-1f3fc-200d-2640-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f937-1f3fc-200d-2642-fe0f.svg b/priv/static/emoji/1f937-1f3fc-200d-2642-fe0f.svg deleted file mode 100644 index b8791a962..000000000 --- a/priv/static/emoji/1f937-1f3fc-200d-2642-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f937-1f3fc.svg b/priv/static/emoji/1f937-1f3fc.svg deleted file mode 100644 index af1de0404..000000000 --- a/priv/static/emoji/1f937-1f3fc.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f937-1f3fd-200d-2640-fe0f.svg b/priv/static/emoji/1f937-1f3fd-200d-2640-fe0f.svg deleted file mode 100644 index 1e7109af3..000000000 --- a/priv/static/emoji/1f937-1f3fd-200d-2640-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f937-1f3fd-200d-2642-fe0f.svg b/priv/static/emoji/1f937-1f3fd-200d-2642-fe0f.svg deleted file mode 100644 index 48de9945a..000000000 --- a/priv/static/emoji/1f937-1f3fd-200d-2642-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f937-1f3fd.svg b/priv/static/emoji/1f937-1f3fd.svg deleted file mode 100644 index 1e7109af3..000000000 --- a/priv/static/emoji/1f937-1f3fd.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f937-1f3fe-200d-2640-fe0f.svg b/priv/static/emoji/1f937-1f3fe-200d-2640-fe0f.svg deleted file mode 100644 index b5731d5eb..000000000 --- a/priv/static/emoji/1f937-1f3fe-200d-2640-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f937-1f3fe-200d-2642-fe0f.svg b/priv/static/emoji/1f937-1f3fe-200d-2642-fe0f.svg deleted file mode 100644 index 1ce63b9ec..000000000 --- a/priv/static/emoji/1f937-1f3fe-200d-2642-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f937-1f3fe.svg b/priv/static/emoji/1f937-1f3fe.svg deleted file mode 100644 index b5731d5eb..000000000 --- a/priv/static/emoji/1f937-1f3fe.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f937-1f3ff-200d-2640-fe0f.svg b/priv/static/emoji/1f937-1f3ff-200d-2640-fe0f.svg deleted file mode 100644 index 2400a4e7c..000000000 --- a/priv/static/emoji/1f937-1f3ff-200d-2640-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f937-1f3ff-200d-2642-fe0f.svg b/priv/static/emoji/1f937-1f3ff-200d-2642-fe0f.svg deleted file mode 100644 index 534538c29..000000000 --- a/priv/static/emoji/1f937-1f3ff-200d-2642-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f937-1f3ff.svg b/priv/static/emoji/1f937-1f3ff.svg deleted file mode 100644 index 2400a4e7c..000000000 --- a/priv/static/emoji/1f937-1f3ff.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f937-200d-2640-fe0f.svg b/priv/static/emoji/1f937-200d-2640-fe0f.svg deleted file mode 100644 index f78db073b..000000000 --- a/priv/static/emoji/1f937-200d-2640-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f937-200d-2642-fe0f.svg b/priv/static/emoji/1f937-200d-2642-fe0f.svg deleted file mode 100644 index 29d7e1efb..000000000 --- a/priv/static/emoji/1f937-200d-2642-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f937.svg b/priv/static/emoji/1f937.svg deleted file mode 100644 index f78db073b..000000000 --- a/priv/static/emoji/1f937.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f938-1f3fb-200d-2640-fe0f.svg b/priv/static/emoji/1f938-1f3fb-200d-2640-fe0f.svg deleted file mode 100644 index c5a0d1e42..000000000 --- a/priv/static/emoji/1f938-1f3fb-200d-2640-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f938-1f3fb-200d-2642-fe0f.svg b/priv/static/emoji/1f938-1f3fb-200d-2642-fe0f.svg deleted file mode 100644 index 245766556..000000000 --- a/priv/static/emoji/1f938-1f3fb-200d-2642-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f938-1f3fb.svg b/priv/static/emoji/1f938-1f3fb.svg deleted file mode 100644 index c5a0d1e42..000000000 --- a/priv/static/emoji/1f938-1f3fb.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f938-1f3fc-200d-2640-fe0f.svg b/priv/static/emoji/1f938-1f3fc-200d-2640-fe0f.svg deleted file mode 100644 index 15b2df731..000000000 --- a/priv/static/emoji/1f938-1f3fc-200d-2640-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f938-1f3fc-200d-2642-fe0f.svg b/priv/static/emoji/1f938-1f3fc-200d-2642-fe0f.svg deleted file mode 100644 index 32a693857..000000000 --- a/priv/static/emoji/1f938-1f3fc-200d-2642-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f938-1f3fc.svg b/priv/static/emoji/1f938-1f3fc.svg deleted file mode 100644 index 15b2df731..000000000 --- a/priv/static/emoji/1f938-1f3fc.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f938-1f3fd-200d-2640-fe0f.svg b/priv/static/emoji/1f938-1f3fd-200d-2640-fe0f.svg deleted file mode 100644 index 58447e654..000000000 --- a/priv/static/emoji/1f938-1f3fd-200d-2640-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f938-1f3fd-200d-2642-fe0f.svg b/priv/static/emoji/1f938-1f3fd-200d-2642-fe0f.svg deleted file mode 100644 index bb9f50ce8..000000000 --- a/priv/static/emoji/1f938-1f3fd-200d-2642-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f938-1f3fd.svg b/priv/static/emoji/1f938-1f3fd.svg deleted file mode 100644 index 58447e654..000000000 --- a/priv/static/emoji/1f938-1f3fd.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f938-1f3fe-200d-2640-fe0f.svg b/priv/static/emoji/1f938-1f3fe-200d-2640-fe0f.svg deleted file mode 100644 index b17fdb449..000000000 --- a/priv/static/emoji/1f938-1f3fe-200d-2640-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f938-1f3fe-200d-2642-fe0f.svg b/priv/static/emoji/1f938-1f3fe-200d-2642-fe0f.svg deleted file mode 100644 index cce9c90ed..000000000 --- a/priv/static/emoji/1f938-1f3fe-200d-2642-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f938-1f3fe.svg b/priv/static/emoji/1f938-1f3fe.svg deleted file mode 100644 index b17fdb449..000000000 --- a/priv/static/emoji/1f938-1f3fe.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f938-1f3ff-200d-2640-fe0f.svg b/priv/static/emoji/1f938-1f3ff-200d-2640-fe0f.svg deleted file mode 100644 index 076b69d98..000000000 --- a/priv/static/emoji/1f938-1f3ff-200d-2640-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f938-1f3ff-200d-2642-fe0f.svg b/priv/static/emoji/1f938-1f3ff-200d-2642-fe0f.svg deleted file mode 100644 index 4f61ec9e6..000000000 --- a/priv/static/emoji/1f938-1f3ff-200d-2642-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f938-1f3ff.svg b/priv/static/emoji/1f938-1f3ff.svg deleted file mode 100644 index 076b69d98..000000000 --- a/priv/static/emoji/1f938-1f3ff.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f938-200d-2640-fe0f.svg b/priv/static/emoji/1f938-200d-2640-fe0f.svg deleted file mode 100644 index 9cec3f994..000000000 --- a/priv/static/emoji/1f938-200d-2640-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f938-200d-2642-fe0f.svg b/priv/static/emoji/1f938-200d-2642-fe0f.svg deleted file mode 100644 index 7aa23feb9..000000000 --- a/priv/static/emoji/1f938-200d-2642-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f938.svg b/priv/static/emoji/1f938.svg deleted file mode 100644 index 9cec3f994..000000000 --- a/priv/static/emoji/1f938.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f939-1f3fb-200d-2640-fe0f.svg b/priv/static/emoji/1f939-1f3fb-200d-2640-fe0f.svg deleted file mode 100644 index e6cda1aac..000000000 --- a/priv/static/emoji/1f939-1f3fb-200d-2640-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f939-1f3fb-200d-2642-fe0f.svg b/priv/static/emoji/1f939-1f3fb-200d-2642-fe0f.svg deleted file mode 100644 index 8b7579bf2..000000000 --- a/priv/static/emoji/1f939-1f3fb-200d-2642-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f939-1f3fb.svg b/priv/static/emoji/1f939-1f3fb.svg deleted file mode 100644 index 8b7579bf2..000000000 --- a/priv/static/emoji/1f939-1f3fb.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f939-1f3fc-200d-2640-fe0f.svg b/priv/static/emoji/1f939-1f3fc-200d-2640-fe0f.svg deleted file mode 100644 index 511b808e5..000000000 --- a/priv/static/emoji/1f939-1f3fc-200d-2640-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f939-1f3fc-200d-2642-fe0f.svg b/priv/static/emoji/1f939-1f3fc-200d-2642-fe0f.svg deleted file mode 100644 index 11006e21b..000000000 --- a/priv/static/emoji/1f939-1f3fc-200d-2642-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f939-1f3fc.svg b/priv/static/emoji/1f939-1f3fc.svg deleted file mode 100644 index 11006e21b..000000000 --- a/priv/static/emoji/1f939-1f3fc.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f939-1f3fd-200d-2640-fe0f.svg b/priv/static/emoji/1f939-1f3fd-200d-2640-fe0f.svg deleted file mode 100644 index cada29fe4..000000000 --- a/priv/static/emoji/1f939-1f3fd-200d-2640-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f939-1f3fd-200d-2642-fe0f.svg b/priv/static/emoji/1f939-1f3fd-200d-2642-fe0f.svg deleted file mode 100644 index 98b3b798e..000000000 --- a/priv/static/emoji/1f939-1f3fd-200d-2642-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f939-1f3fd.svg b/priv/static/emoji/1f939-1f3fd.svg deleted file mode 100644 index 98b3b798e..000000000 --- a/priv/static/emoji/1f939-1f3fd.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f939-1f3fe-200d-2640-fe0f.svg b/priv/static/emoji/1f939-1f3fe-200d-2640-fe0f.svg deleted file mode 100644 index 7ecc0913f..000000000 --- a/priv/static/emoji/1f939-1f3fe-200d-2640-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f939-1f3fe-200d-2642-fe0f.svg b/priv/static/emoji/1f939-1f3fe-200d-2642-fe0f.svg deleted file mode 100644 index dd3670570..000000000 --- a/priv/static/emoji/1f939-1f3fe-200d-2642-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f939-1f3fe.svg b/priv/static/emoji/1f939-1f3fe.svg deleted file mode 100644 index dd3670570..000000000 --- a/priv/static/emoji/1f939-1f3fe.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f939-1f3ff-200d-2640-fe0f.svg b/priv/static/emoji/1f939-1f3ff-200d-2640-fe0f.svg deleted file mode 100644 index 87bf7e09a..000000000 --- a/priv/static/emoji/1f939-1f3ff-200d-2640-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f939-1f3ff-200d-2642-fe0f.svg b/priv/static/emoji/1f939-1f3ff-200d-2642-fe0f.svg deleted file mode 100644 index ab10e8926..000000000 --- a/priv/static/emoji/1f939-1f3ff-200d-2642-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f939-1f3ff.svg b/priv/static/emoji/1f939-1f3ff.svg deleted file mode 100644 index ab10e8926..000000000 --- a/priv/static/emoji/1f939-1f3ff.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f939-200d-2640-fe0f.svg b/priv/static/emoji/1f939-200d-2640-fe0f.svg deleted file mode 100644 index 0e3e5e4dc..000000000 --- a/priv/static/emoji/1f939-200d-2640-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f939-200d-2642-fe0f.svg b/priv/static/emoji/1f939-200d-2642-fe0f.svg deleted file mode 100644 index 62230dc4c..000000000 --- a/priv/static/emoji/1f939-200d-2642-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f939.svg b/priv/static/emoji/1f939.svg deleted file mode 100644 index 62230dc4c..000000000 --- a/priv/static/emoji/1f939.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f93a.svg b/priv/static/emoji/1f93a.svg deleted file mode 100644 index 5cfb388e8..000000000 --- a/priv/static/emoji/1f93a.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f93c-200d-2640-fe0f.svg b/priv/static/emoji/1f93c-200d-2640-fe0f.svg deleted file mode 100644 index 9abd83379..000000000 --- a/priv/static/emoji/1f93c-200d-2640-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f93c-200d-2642-fe0f.svg b/priv/static/emoji/1f93c-200d-2642-fe0f.svg deleted file mode 100644 index 13ec50b44..000000000 --- a/priv/static/emoji/1f93c-200d-2642-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f93c.svg b/priv/static/emoji/1f93c.svg deleted file mode 100644 index 13ec50b44..000000000 --- a/priv/static/emoji/1f93c.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f93d-1f3fb-200d-2640-fe0f.svg b/priv/static/emoji/1f93d-1f3fb-200d-2640-fe0f.svg deleted file mode 100644 index 5f6fa5a88..000000000 --- a/priv/static/emoji/1f93d-1f3fb-200d-2640-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f93d-1f3fb-200d-2642-fe0f.svg b/priv/static/emoji/1f93d-1f3fb-200d-2642-fe0f.svg deleted file mode 100644 index 62da945eb..000000000 --- a/priv/static/emoji/1f93d-1f3fb-200d-2642-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f93d-1f3fb.svg b/priv/static/emoji/1f93d-1f3fb.svg deleted file mode 100644 index 62da945eb..000000000 --- a/priv/static/emoji/1f93d-1f3fb.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f93d-1f3fc-200d-2640-fe0f.svg b/priv/static/emoji/1f93d-1f3fc-200d-2640-fe0f.svg deleted file mode 100644 index f0f9e7fc9..000000000 --- a/priv/static/emoji/1f93d-1f3fc-200d-2640-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f93d-1f3fc-200d-2642-fe0f.svg b/priv/static/emoji/1f93d-1f3fc-200d-2642-fe0f.svg deleted file mode 100644 index 6df278743..000000000 --- a/priv/static/emoji/1f93d-1f3fc-200d-2642-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f93d-1f3fc.svg b/priv/static/emoji/1f93d-1f3fc.svg deleted file mode 100644 index 6df278743..000000000 --- a/priv/static/emoji/1f93d-1f3fc.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f93d-1f3fd-200d-2640-fe0f.svg b/priv/static/emoji/1f93d-1f3fd-200d-2640-fe0f.svg deleted file mode 100644 index 49c426de5..000000000 --- a/priv/static/emoji/1f93d-1f3fd-200d-2640-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f93d-1f3fd-200d-2642-fe0f.svg b/priv/static/emoji/1f93d-1f3fd-200d-2642-fe0f.svg deleted file mode 100644 index 2b8c67d12..000000000 --- a/priv/static/emoji/1f93d-1f3fd-200d-2642-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f93d-1f3fd.svg b/priv/static/emoji/1f93d-1f3fd.svg deleted file mode 100644 index 2b8c67d12..000000000 --- a/priv/static/emoji/1f93d-1f3fd.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f93d-1f3fe-200d-2640-fe0f.svg b/priv/static/emoji/1f93d-1f3fe-200d-2640-fe0f.svg deleted file mode 100644 index 1efd46ae5..000000000 --- a/priv/static/emoji/1f93d-1f3fe-200d-2640-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f93d-1f3fe-200d-2642-fe0f.svg b/priv/static/emoji/1f93d-1f3fe-200d-2642-fe0f.svg deleted file mode 100644 index 045d9fde9..000000000 --- a/priv/static/emoji/1f93d-1f3fe-200d-2642-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f93d-1f3fe.svg b/priv/static/emoji/1f93d-1f3fe.svg deleted file mode 100644 index 045d9fde9..000000000 --- a/priv/static/emoji/1f93d-1f3fe.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f93d-1f3ff-200d-2640-fe0f.svg b/priv/static/emoji/1f93d-1f3ff-200d-2640-fe0f.svg deleted file mode 100644 index bf0630163..000000000 --- a/priv/static/emoji/1f93d-1f3ff-200d-2640-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f93d-1f3ff-200d-2642-fe0f.svg b/priv/static/emoji/1f93d-1f3ff-200d-2642-fe0f.svg deleted file mode 100644 index 60c34455b..000000000 --- a/priv/static/emoji/1f93d-1f3ff-200d-2642-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f93d-1f3ff.svg b/priv/static/emoji/1f93d-1f3ff.svg deleted file mode 100644 index 60c34455b..000000000 --- a/priv/static/emoji/1f93d-1f3ff.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f93d-200d-2640-fe0f.svg b/priv/static/emoji/1f93d-200d-2640-fe0f.svg deleted file mode 100644 index 1cca2e7c3..000000000 --- a/priv/static/emoji/1f93d-200d-2640-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f93d-200d-2642-fe0f.svg b/priv/static/emoji/1f93d-200d-2642-fe0f.svg deleted file mode 100644 index 9469b6a03..000000000 --- a/priv/static/emoji/1f93d-200d-2642-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f93d.svg b/priv/static/emoji/1f93d.svg deleted file mode 100644 index 9469b6a03..000000000 --- a/priv/static/emoji/1f93d.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f93e-1f3fb-200d-2640-fe0f.svg b/priv/static/emoji/1f93e-1f3fb-200d-2640-fe0f.svg deleted file mode 100644 index 46d9bdcab..000000000 --- a/priv/static/emoji/1f93e-1f3fb-200d-2640-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f93e-1f3fb-200d-2642-fe0f.svg b/priv/static/emoji/1f93e-1f3fb-200d-2642-fe0f.svg deleted file mode 100644 index 029896345..000000000 --- a/priv/static/emoji/1f93e-1f3fb-200d-2642-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f93e-1f3fb.svg b/priv/static/emoji/1f93e-1f3fb.svg deleted file mode 100644 index 46d9bdcab..000000000 --- a/priv/static/emoji/1f93e-1f3fb.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f93e-1f3fc-200d-2640-fe0f.svg b/priv/static/emoji/1f93e-1f3fc-200d-2640-fe0f.svg deleted file mode 100644 index 2a6191fd9..000000000 --- a/priv/static/emoji/1f93e-1f3fc-200d-2640-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f93e-1f3fc-200d-2642-fe0f.svg b/priv/static/emoji/1f93e-1f3fc-200d-2642-fe0f.svg deleted file mode 100644 index ac5a4bb89..000000000 --- a/priv/static/emoji/1f93e-1f3fc-200d-2642-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f93e-1f3fc.svg b/priv/static/emoji/1f93e-1f3fc.svg deleted file mode 100644 index 2a6191fd9..000000000 --- a/priv/static/emoji/1f93e-1f3fc.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f93e-1f3fd-200d-2640-fe0f.svg b/priv/static/emoji/1f93e-1f3fd-200d-2640-fe0f.svg deleted file mode 100644 index ca6f6c27c..000000000 --- a/priv/static/emoji/1f93e-1f3fd-200d-2640-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f93e-1f3fd-200d-2642-fe0f.svg b/priv/static/emoji/1f93e-1f3fd-200d-2642-fe0f.svg deleted file mode 100644 index 63fe0d4c0..000000000 --- a/priv/static/emoji/1f93e-1f3fd-200d-2642-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f93e-1f3fd.svg b/priv/static/emoji/1f93e-1f3fd.svg deleted file mode 100644 index ca6f6c27c..000000000 --- a/priv/static/emoji/1f93e-1f3fd.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f93e-1f3fe-200d-2640-fe0f.svg b/priv/static/emoji/1f93e-1f3fe-200d-2640-fe0f.svg deleted file mode 100644 index 692ed9d36..000000000 --- a/priv/static/emoji/1f93e-1f3fe-200d-2640-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f93e-1f3fe-200d-2642-fe0f.svg b/priv/static/emoji/1f93e-1f3fe-200d-2642-fe0f.svg deleted file mode 100644 index 5639542ce..000000000 --- a/priv/static/emoji/1f93e-1f3fe-200d-2642-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f93e-1f3fe.svg b/priv/static/emoji/1f93e-1f3fe.svg deleted file mode 100644 index 692ed9d36..000000000 --- a/priv/static/emoji/1f93e-1f3fe.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f93e-1f3ff-200d-2640-fe0f.svg b/priv/static/emoji/1f93e-1f3ff-200d-2640-fe0f.svg deleted file mode 100644 index ec3b45f83..000000000 --- a/priv/static/emoji/1f93e-1f3ff-200d-2640-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f93e-1f3ff-200d-2642-fe0f.svg b/priv/static/emoji/1f93e-1f3ff-200d-2642-fe0f.svg deleted file mode 100644 index 1d547f9be..000000000 --- a/priv/static/emoji/1f93e-1f3ff-200d-2642-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f93e-1f3ff.svg b/priv/static/emoji/1f93e-1f3ff.svg deleted file mode 100644 index ec3b45f83..000000000 --- a/priv/static/emoji/1f93e-1f3ff.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f93e-200d-2640-fe0f.svg b/priv/static/emoji/1f93e-200d-2640-fe0f.svg deleted file mode 100644 index 28e86b3ef..000000000 --- a/priv/static/emoji/1f93e-200d-2640-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f93e-200d-2642-fe0f.svg b/priv/static/emoji/1f93e-200d-2642-fe0f.svg deleted file mode 100644 index 3efb4668b..000000000 --- a/priv/static/emoji/1f93e-200d-2642-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f93e.svg b/priv/static/emoji/1f93e.svg deleted file mode 100644 index 28e86b3ef..000000000 --- a/priv/static/emoji/1f93e.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f93f.svg b/priv/static/emoji/1f93f.svg deleted file mode 100644 index 01239db87..000000000 --- a/priv/static/emoji/1f93f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f940.svg b/priv/static/emoji/1f940.svg deleted file mode 100644 index dedff2088..000000000 --- a/priv/static/emoji/1f940.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f941.svg b/priv/static/emoji/1f941.svg deleted file mode 100644 index e197d16c3..000000000 --- a/priv/static/emoji/1f941.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f942.svg b/priv/static/emoji/1f942.svg deleted file mode 100644 index 30167b03f..000000000 --- a/priv/static/emoji/1f942.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f943.svg b/priv/static/emoji/1f943.svg deleted file mode 100644 index 27750ea6b..000000000 --- a/priv/static/emoji/1f943.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f944.svg b/priv/static/emoji/1f944.svg deleted file mode 100644 index 1f2d69faa..000000000 --- a/priv/static/emoji/1f944.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f945.svg b/priv/static/emoji/1f945.svg deleted file mode 100644 index 4d187f2f1..000000000 --- a/priv/static/emoji/1f945.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f947.svg b/priv/static/emoji/1f947.svg deleted file mode 100644 index c67af77c6..000000000 --- a/priv/static/emoji/1f947.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f948.svg b/priv/static/emoji/1f948.svg deleted file mode 100644 index 685db6d15..000000000 --- a/priv/static/emoji/1f948.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f949.svg b/priv/static/emoji/1f949.svg deleted file mode 100644 index 6bb5f773c..000000000 --- a/priv/static/emoji/1f949.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f94a.svg b/priv/static/emoji/1f94a.svg deleted file mode 100644 index fa16edbd0..000000000 --- a/priv/static/emoji/1f94a.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f94b.svg b/priv/static/emoji/1f94b.svg deleted file mode 100644 index 33d6e2136..000000000 --- a/priv/static/emoji/1f94b.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f94c.svg b/priv/static/emoji/1f94c.svg deleted file mode 100644 index 9bc8f8a58..000000000 --- a/priv/static/emoji/1f94c.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f94d.svg b/priv/static/emoji/1f94d.svg deleted file mode 100644 index 2a4eb10c9..000000000 --- a/priv/static/emoji/1f94d.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f94e.svg b/priv/static/emoji/1f94e.svg deleted file mode 100644 index 1c9270ce7..000000000 --- a/priv/static/emoji/1f94e.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f94f.svg b/priv/static/emoji/1f94f.svg deleted file mode 100644 index 84fdba474..000000000 --- a/priv/static/emoji/1f94f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f950.svg b/priv/static/emoji/1f950.svg deleted file mode 100644 index eef4358d8..000000000 --- a/priv/static/emoji/1f950.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f951.svg b/priv/static/emoji/1f951.svg deleted file mode 100644 index ed1d9f9f6..000000000 --- a/priv/static/emoji/1f951.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f952.svg b/priv/static/emoji/1f952.svg deleted file mode 100644 index 83cba03c6..000000000 --- a/priv/static/emoji/1f952.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f953.svg b/priv/static/emoji/1f953.svg deleted file mode 100644 index 82d4c82b4..000000000 --- a/priv/static/emoji/1f953.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f954.svg b/priv/static/emoji/1f954.svg deleted file mode 100644 index b8d120d95..000000000 --- a/priv/static/emoji/1f954.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f955.svg b/priv/static/emoji/1f955.svg deleted file mode 100644 index b949554ff..000000000 --- a/priv/static/emoji/1f955.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f956.svg b/priv/static/emoji/1f956.svg deleted file mode 100644 index 8da10427f..000000000 --- a/priv/static/emoji/1f956.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f957.svg b/priv/static/emoji/1f957.svg deleted file mode 100644 index f18b0965c..000000000 --- a/priv/static/emoji/1f957.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f958.svg b/priv/static/emoji/1f958.svg deleted file mode 100644 index 878520cf3..000000000 --- a/priv/static/emoji/1f958.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f959.svg b/priv/static/emoji/1f959.svg deleted file mode 100644 index baa9a4b90..000000000 --- a/priv/static/emoji/1f959.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f95a.svg b/priv/static/emoji/1f95a.svg deleted file mode 100644 index 1e7601763..000000000 --- a/priv/static/emoji/1f95a.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f95b.svg b/priv/static/emoji/1f95b.svg deleted file mode 100644 index 73947e88e..000000000 --- a/priv/static/emoji/1f95b.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f95c.svg b/priv/static/emoji/1f95c.svg deleted file mode 100644 index c809689a0..000000000 --- a/priv/static/emoji/1f95c.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f95d.svg b/priv/static/emoji/1f95d.svg deleted file mode 100644 index 4007a720a..000000000 --- a/priv/static/emoji/1f95d.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f95e.svg b/priv/static/emoji/1f95e.svg deleted file mode 100644 index 795fb1341..000000000 --- a/priv/static/emoji/1f95e.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f95f.svg b/priv/static/emoji/1f95f.svg deleted file mode 100644 index 57f13af88..000000000 --- a/priv/static/emoji/1f95f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f960.svg b/priv/static/emoji/1f960.svg deleted file mode 100644 index 5d61144b9..000000000 --- a/priv/static/emoji/1f960.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f961.svg b/priv/static/emoji/1f961.svg deleted file mode 100644 index 6a05c9c24..000000000 --- a/priv/static/emoji/1f961.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f962.svg b/priv/static/emoji/1f962.svg deleted file mode 100644 index adde7aa51..000000000 --- a/priv/static/emoji/1f962.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f963.svg b/priv/static/emoji/1f963.svg deleted file mode 100644 index 00e5ae6fa..000000000 --- a/priv/static/emoji/1f963.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f964.svg b/priv/static/emoji/1f964.svg deleted file mode 100644 index 3556dd9e7..000000000 --- a/priv/static/emoji/1f964.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f965.svg b/priv/static/emoji/1f965.svg deleted file mode 100644 index 7f1692794..000000000 --- a/priv/static/emoji/1f965.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f966.svg b/priv/static/emoji/1f966.svg deleted file mode 100644 index ee2bc1cb1..000000000 --- a/priv/static/emoji/1f966.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f967.svg b/priv/static/emoji/1f967.svg deleted file mode 100644 index 5916cacd8..000000000 --- a/priv/static/emoji/1f967.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f968.svg b/priv/static/emoji/1f968.svg deleted file mode 100644 index 10bd682b6..000000000 --- a/priv/static/emoji/1f968.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f969.svg b/priv/static/emoji/1f969.svg deleted file mode 100644 index 28a6a1ac6..000000000 --- a/priv/static/emoji/1f969.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f96a.svg b/priv/static/emoji/1f96a.svg deleted file mode 100644 index d514ba76e..000000000 --- a/priv/static/emoji/1f96a.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f96b.svg b/priv/static/emoji/1f96b.svg deleted file mode 100644 index 9c451ed0d..000000000 --- a/priv/static/emoji/1f96b.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f96c.svg b/priv/static/emoji/1f96c.svg deleted file mode 100644 index 6ef36cb22..000000000 --- a/priv/static/emoji/1f96c.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f96d.svg b/priv/static/emoji/1f96d.svg deleted file mode 100644 index b5607c107..000000000 --- a/priv/static/emoji/1f96d.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f96e.svg b/priv/static/emoji/1f96e.svg deleted file mode 100644 index ebb7ba98f..000000000 --- a/priv/static/emoji/1f96e.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f96f.svg b/priv/static/emoji/1f96f.svg deleted file mode 100644 index 6a65f4c19..000000000 --- a/priv/static/emoji/1f96f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f970.svg b/priv/static/emoji/1f970.svg deleted file mode 100644 index 6b063dfc8..000000000 --- a/priv/static/emoji/1f970.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f971.svg b/priv/static/emoji/1f971.svg deleted file mode 100644 index 26444c6a2..000000000 --- a/priv/static/emoji/1f971.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f973.svg b/priv/static/emoji/1f973.svg deleted file mode 100644 index c7a95387a..000000000 --- a/priv/static/emoji/1f973.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f974.svg b/priv/static/emoji/1f974.svg deleted file mode 100644 index 87bb859c2..000000000 --- a/priv/static/emoji/1f974.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f975.svg b/priv/static/emoji/1f975.svg deleted file mode 100644 index 09e99a3ed..000000000 --- a/priv/static/emoji/1f975.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f976.svg b/priv/static/emoji/1f976.svg deleted file mode 100644 index e32efddcc..000000000 --- a/priv/static/emoji/1f976.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f97a.svg b/priv/static/emoji/1f97a.svg deleted file mode 100644 index fe9336084..000000000 --- a/priv/static/emoji/1f97a.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f97b.svg b/priv/static/emoji/1f97b.svg deleted file mode 100644 index d69d53d17..000000000 --- a/priv/static/emoji/1f97b.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f97c.svg b/priv/static/emoji/1f97c.svg deleted file mode 100644 index 5d19b2733..000000000 --- a/priv/static/emoji/1f97c.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f97d.svg b/priv/static/emoji/1f97d.svg deleted file mode 100644 index cdb79f9f2..000000000 --- a/priv/static/emoji/1f97d.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f97e.svg b/priv/static/emoji/1f97e.svg deleted file mode 100644 index 67150285b..000000000 --- a/priv/static/emoji/1f97e.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f97f.svg b/priv/static/emoji/1f97f.svg deleted file mode 100644 index 220630784..000000000 --- a/priv/static/emoji/1f97f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f980.svg b/priv/static/emoji/1f980.svg deleted file mode 100644 index 8f45b53dd..000000000 --- a/priv/static/emoji/1f980.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f981.svg b/priv/static/emoji/1f981.svg deleted file mode 100644 index 674ff24e6..000000000 --- a/priv/static/emoji/1f981.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f982.svg b/priv/static/emoji/1f982.svg deleted file mode 100644 index 582c7223a..000000000 --- a/priv/static/emoji/1f982.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f983.svg b/priv/static/emoji/1f983.svg deleted file mode 100644 index e9de7de9e..000000000 --- a/priv/static/emoji/1f983.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f984.svg b/priv/static/emoji/1f984.svg deleted file mode 100644 index 19d9ff161..000000000 --- a/priv/static/emoji/1f984.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f985.svg b/priv/static/emoji/1f985.svg deleted file mode 100644 index 81b7b3cc6..000000000 --- a/priv/static/emoji/1f985.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f986.svg b/priv/static/emoji/1f986.svg deleted file mode 100644 index 085c90063..000000000 --- a/priv/static/emoji/1f986.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f987.svg b/priv/static/emoji/1f987.svg deleted file mode 100644 index 4ebb5ad4c..000000000 --- a/priv/static/emoji/1f987.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f988.svg b/priv/static/emoji/1f988.svg deleted file mode 100644 index f6381c521..000000000 --- a/priv/static/emoji/1f988.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f989.svg b/priv/static/emoji/1f989.svg deleted file mode 100644 index bb0d461ab..000000000 --- a/priv/static/emoji/1f989.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f98a.svg b/priv/static/emoji/1f98a.svg deleted file mode 100644 index 13704a415..000000000 --- a/priv/static/emoji/1f98a.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f98b.svg b/priv/static/emoji/1f98b.svg deleted file mode 100644 index 22c6ead8f..000000000 --- a/priv/static/emoji/1f98b.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f98c.svg b/priv/static/emoji/1f98c.svg deleted file mode 100644 index 86623680c..000000000 --- a/priv/static/emoji/1f98c.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f98d.svg b/priv/static/emoji/1f98d.svg deleted file mode 100644 index aa5992325..000000000 --- a/priv/static/emoji/1f98d.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f98e.svg b/priv/static/emoji/1f98e.svg deleted file mode 100644 index 1164a73b6..000000000 --- a/priv/static/emoji/1f98e.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f98f.svg b/priv/static/emoji/1f98f.svg deleted file mode 100644 index 0d07017ab..000000000 --- a/priv/static/emoji/1f98f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f990.svg b/priv/static/emoji/1f990.svg deleted file mode 100644 index 8279307e1..000000000 --- a/priv/static/emoji/1f990.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f991.svg b/priv/static/emoji/1f991.svg deleted file mode 100644 index e0bbf92cb..000000000 --- a/priv/static/emoji/1f991.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f992.svg b/priv/static/emoji/1f992.svg deleted file mode 100644 index 233e3c989..000000000 --- a/priv/static/emoji/1f992.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f993.svg b/priv/static/emoji/1f993.svg deleted file mode 100644 index 2cb4b9eb2..000000000 --- a/priv/static/emoji/1f993.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f994.svg b/priv/static/emoji/1f994.svg deleted file mode 100644 index ebbfc2ad2..000000000 --- a/priv/static/emoji/1f994.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f995.svg b/priv/static/emoji/1f995.svg deleted file mode 100644 index fb046c69c..000000000 --- a/priv/static/emoji/1f995.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f996.svg b/priv/static/emoji/1f996.svg deleted file mode 100644 index 64b68d75a..000000000 --- a/priv/static/emoji/1f996.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f997.svg b/priv/static/emoji/1f997.svg deleted file mode 100644 index f26413fdd..000000000 --- a/priv/static/emoji/1f997.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f998.svg b/priv/static/emoji/1f998.svg deleted file mode 100644 index 8a72b40a7..000000000 --- a/priv/static/emoji/1f998.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f999.svg b/priv/static/emoji/1f999.svg deleted file mode 100644 index b505faf82..000000000 --- a/priv/static/emoji/1f999.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f99a.svg b/priv/static/emoji/1f99a.svg deleted file mode 100644 index 7606d382a..000000000 --- a/priv/static/emoji/1f99a.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f99b.svg b/priv/static/emoji/1f99b.svg deleted file mode 100644 index 2764249cb..000000000 --- a/priv/static/emoji/1f99b.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f99c.svg b/priv/static/emoji/1f99c.svg deleted file mode 100644 index f7f743c52..000000000 --- a/priv/static/emoji/1f99c.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f99d.svg b/priv/static/emoji/1f99d.svg deleted file mode 100644 index 30c88720f..000000000 --- a/priv/static/emoji/1f99d.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f99e.svg b/priv/static/emoji/1f99e.svg deleted file mode 100644 index 8df2a7467..000000000 --- a/priv/static/emoji/1f99e.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f99f.svg b/priv/static/emoji/1f99f.svg deleted file mode 100644 index 588815125..000000000 --- a/priv/static/emoji/1f99f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9a0.svg b/priv/static/emoji/1f9a0.svg deleted file mode 100644 index cea144ea2..000000000 --- a/priv/static/emoji/1f9a0.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9a1.svg b/priv/static/emoji/1f9a1.svg deleted file mode 100644 index 92f42fd8b..000000000 --- a/priv/static/emoji/1f9a1.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9a2.svg b/priv/static/emoji/1f9a2.svg deleted file mode 100644 index 9c3838170..000000000 --- a/priv/static/emoji/1f9a2.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9a5.svg b/priv/static/emoji/1f9a5.svg deleted file mode 100644 index 7371a8ed1..000000000 --- a/priv/static/emoji/1f9a5.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9a6.svg b/priv/static/emoji/1f9a6.svg deleted file mode 100644 index 5ea0173a5..000000000 --- a/priv/static/emoji/1f9a6.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9a7.svg b/priv/static/emoji/1f9a7.svg deleted file mode 100644 index 038284558..000000000 --- a/priv/static/emoji/1f9a7.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9a8.svg b/priv/static/emoji/1f9a8.svg deleted file mode 100644 index 47478ffe3..000000000 --- a/priv/static/emoji/1f9a8.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9a9.svg b/priv/static/emoji/1f9a9.svg deleted file mode 100644 index aaa5cfa26..000000000 --- a/priv/static/emoji/1f9a9.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9aa.svg b/priv/static/emoji/1f9aa.svg deleted file mode 100644 index f0f477867..000000000 --- a/priv/static/emoji/1f9aa.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9ae.svg b/priv/static/emoji/1f9ae.svg deleted file mode 100644 index fc635872c..000000000 --- a/priv/static/emoji/1f9ae.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9af.svg b/priv/static/emoji/1f9af.svg deleted file mode 100644 index aba8a9807..000000000 --- a/priv/static/emoji/1f9af.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9b0.svg b/priv/static/emoji/1f9b0.svg deleted file mode 100644 index 5cb487ef0..000000000 --- a/priv/static/emoji/1f9b0.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9b1.svg b/priv/static/emoji/1f9b1.svg deleted file mode 100644 index 414422b83..000000000 --- a/priv/static/emoji/1f9b1.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9b2.svg b/priv/static/emoji/1f9b2.svg deleted file mode 100644 index 035b6919f..000000000 --- a/priv/static/emoji/1f9b2.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9b3.svg b/priv/static/emoji/1f9b3.svg deleted file mode 100644 index ea3072c4d..000000000 --- a/priv/static/emoji/1f9b3.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9b4.svg b/priv/static/emoji/1f9b4.svg deleted file mode 100644 index 624de728f..000000000 --- a/priv/static/emoji/1f9b4.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9b5-1f3fb.svg b/priv/static/emoji/1f9b5-1f3fb.svg deleted file mode 100644 index 0a233cf40..000000000 --- a/priv/static/emoji/1f9b5-1f3fb.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9b5-1f3fc.svg b/priv/static/emoji/1f9b5-1f3fc.svg deleted file mode 100644 index 229bd21db..000000000 --- a/priv/static/emoji/1f9b5-1f3fc.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9b5-1f3fd.svg b/priv/static/emoji/1f9b5-1f3fd.svg deleted file mode 100644 index dce4696fa..000000000 --- a/priv/static/emoji/1f9b5-1f3fd.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9b5-1f3fe.svg b/priv/static/emoji/1f9b5-1f3fe.svg deleted file mode 100644 index 5cb990734..000000000 --- a/priv/static/emoji/1f9b5-1f3fe.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9b5-1f3ff.svg b/priv/static/emoji/1f9b5-1f3ff.svg deleted file mode 100644 index 6bdc2f933..000000000 --- a/priv/static/emoji/1f9b5-1f3ff.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9b5.svg b/priv/static/emoji/1f9b5.svg deleted file mode 100644 index 178fd1580..000000000 --- a/priv/static/emoji/1f9b5.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9b6-1f3fb.svg b/priv/static/emoji/1f9b6-1f3fb.svg deleted file mode 100644 index 29677fb36..000000000 --- a/priv/static/emoji/1f9b6-1f3fb.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9b6-1f3fc.svg b/priv/static/emoji/1f9b6-1f3fc.svg deleted file mode 100644 index dc679d094..000000000 --- a/priv/static/emoji/1f9b6-1f3fc.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9b6-1f3fd.svg b/priv/static/emoji/1f9b6-1f3fd.svg deleted file mode 100644 index 8f0f6892c..000000000 --- a/priv/static/emoji/1f9b6-1f3fd.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9b6-1f3fe.svg b/priv/static/emoji/1f9b6-1f3fe.svg deleted file mode 100644 index 0752f6985..000000000 --- a/priv/static/emoji/1f9b6-1f3fe.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9b6-1f3ff.svg b/priv/static/emoji/1f9b6-1f3ff.svg deleted file mode 100644 index 297e0b419..000000000 --- a/priv/static/emoji/1f9b6-1f3ff.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9b6.svg b/priv/static/emoji/1f9b6.svg deleted file mode 100644 index abbbbac92..000000000 --- a/priv/static/emoji/1f9b6.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9b7.svg b/priv/static/emoji/1f9b7.svg deleted file mode 100644 index 49cc5f9c1..000000000 --- a/priv/static/emoji/1f9b7.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9b8-1f3fb-200d-2640-fe0f.svg b/priv/static/emoji/1f9b8-1f3fb-200d-2640-fe0f.svg deleted file mode 100644 index 1bb8c86fc..000000000 --- a/priv/static/emoji/1f9b8-1f3fb-200d-2640-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9b8-1f3fb-200d-2642-fe0f.svg b/priv/static/emoji/1f9b8-1f3fb-200d-2642-fe0f.svg deleted file mode 100644 index 05d48788a..000000000 --- a/priv/static/emoji/1f9b8-1f3fb-200d-2642-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9b8-1f3fb.svg b/priv/static/emoji/1f9b8-1f3fb.svg deleted file mode 100644 index 1bb8c86fc..000000000 --- a/priv/static/emoji/1f9b8-1f3fb.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9b8-1f3fc-200d-2640-fe0f.svg b/priv/static/emoji/1f9b8-1f3fc-200d-2640-fe0f.svg deleted file mode 100644 index 1ac8651e9..000000000 --- a/priv/static/emoji/1f9b8-1f3fc-200d-2640-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9b8-1f3fc-200d-2642-fe0f.svg b/priv/static/emoji/1f9b8-1f3fc-200d-2642-fe0f.svg deleted file mode 100644 index a5d6bb187..000000000 --- a/priv/static/emoji/1f9b8-1f3fc-200d-2642-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9b8-1f3fc.svg b/priv/static/emoji/1f9b8-1f3fc.svg deleted file mode 100644 index 1ac8651e9..000000000 --- a/priv/static/emoji/1f9b8-1f3fc.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9b8-1f3fd-200d-2640-fe0f.svg b/priv/static/emoji/1f9b8-1f3fd-200d-2640-fe0f.svg deleted file mode 100644 index 64a0ef6d1..000000000 --- a/priv/static/emoji/1f9b8-1f3fd-200d-2640-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9b8-1f3fd-200d-2642-fe0f.svg b/priv/static/emoji/1f9b8-1f3fd-200d-2642-fe0f.svg deleted file mode 100644 index 2573ab23d..000000000 --- a/priv/static/emoji/1f9b8-1f3fd-200d-2642-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9b8-1f3fd.svg b/priv/static/emoji/1f9b8-1f3fd.svg deleted file mode 100644 index 64a0ef6d1..000000000 --- a/priv/static/emoji/1f9b8-1f3fd.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9b8-1f3fe-200d-2640-fe0f.svg b/priv/static/emoji/1f9b8-1f3fe-200d-2640-fe0f.svg deleted file mode 100644 index e8dadca64..000000000 --- a/priv/static/emoji/1f9b8-1f3fe-200d-2640-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9b8-1f3fe-200d-2642-fe0f.svg b/priv/static/emoji/1f9b8-1f3fe-200d-2642-fe0f.svg deleted file mode 100644 index 9043fcfce..000000000 --- a/priv/static/emoji/1f9b8-1f3fe-200d-2642-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9b8-1f3fe.svg b/priv/static/emoji/1f9b8-1f3fe.svg deleted file mode 100644 index e8dadca64..000000000 --- a/priv/static/emoji/1f9b8-1f3fe.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9b8-1f3ff-200d-2640-fe0f.svg b/priv/static/emoji/1f9b8-1f3ff-200d-2640-fe0f.svg deleted file mode 100644 index d7bfc5120..000000000 --- a/priv/static/emoji/1f9b8-1f3ff-200d-2640-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9b8-1f3ff-200d-2642-fe0f.svg b/priv/static/emoji/1f9b8-1f3ff-200d-2642-fe0f.svg deleted file mode 100644 index 7cea264f1..000000000 --- a/priv/static/emoji/1f9b8-1f3ff-200d-2642-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9b8-1f3ff.svg b/priv/static/emoji/1f9b8-1f3ff.svg deleted file mode 100644 index d7bfc5120..000000000 --- a/priv/static/emoji/1f9b8-1f3ff.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9b8-200d-2640-fe0f.svg b/priv/static/emoji/1f9b8-200d-2640-fe0f.svg deleted file mode 100644 index e3129286a..000000000 --- a/priv/static/emoji/1f9b8-200d-2640-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9b8-200d-2642-fe0f.svg b/priv/static/emoji/1f9b8-200d-2642-fe0f.svg deleted file mode 100644 index 462fc3720..000000000 --- a/priv/static/emoji/1f9b8-200d-2642-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9b8.svg b/priv/static/emoji/1f9b8.svg deleted file mode 100644 index e3129286a..000000000 --- a/priv/static/emoji/1f9b8.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9b9-1f3fb-200d-2640-fe0f.svg b/priv/static/emoji/1f9b9-1f3fb-200d-2640-fe0f.svg deleted file mode 100644 index 361bab6ac..000000000 --- a/priv/static/emoji/1f9b9-1f3fb-200d-2640-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9b9-1f3fb-200d-2642-fe0f.svg b/priv/static/emoji/1f9b9-1f3fb-200d-2642-fe0f.svg deleted file mode 100644 index 0b8da862a..000000000 --- a/priv/static/emoji/1f9b9-1f3fb-200d-2642-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9b9-1f3fb.svg b/priv/static/emoji/1f9b9-1f3fb.svg deleted file mode 100644 index 361bab6ac..000000000 --- a/priv/static/emoji/1f9b9-1f3fb.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9b9-1f3fc-200d-2640-fe0f.svg b/priv/static/emoji/1f9b9-1f3fc-200d-2640-fe0f.svg deleted file mode 100644 index f035f13c1..000000000 --- a/priv/static/emoji/1f9b9-1f3fc-200d-2640-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9b9-1f3fc-200d-2642-fe0f.svg b/priv/static/emoji/1f9b9-1f3fc-200d-2642-fe0f.svg deleted file mode 100644 index e9ca2e0fc..000000000 --- a/priv/static/emoji/1f9b9-1f3fc-200d-2642-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9b9-1f3fc.svg b/priv/static/emoji/1f9b9-1f3fc.svg deleted file mode 100644 index f035f13c1..000000000 --- a/priv/static/emoji/1f9b9-1f3fc.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9b9-1f3fd-200d-2640-fe0f.svg b/priv/static/emoji/1f9b9-1f3fd-200d-2640-fe0f.svg deleted file mode 100644 index 58999ae9a..000000000 --- a/priv/static/emoji/1f9b9-1f3fd-200d-2640-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9b9-1f3fd-200d-2642-fe0f.svg b/priv/static/emoji/1f9b9-1f3fd-200d-2642-fe0f.svg deleted file mode 100644 index e873933f2..000000000 --- a/priv/static/emoji/1f9b9-1f3fd-200d-2642-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9b9-1f3fd.svg b/priv/static/emoji/1f9b9-1f3fd.svg deleted file mode 100644 index 58999ae9a..000000000 --- a/priv/static/emoji/1f9b9-1f3fd.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9b9-1f3fe-200d-2640-fe0f.svg b/priv/static/emoji/1f9b9-1f3fe-200d-2640-fe0f.svg deleted file mode 100644 index 04120e37a..000000000 --- a/priv/static/emoji/1f9b9-1f3fe-200d-2640-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9b9-1f3fe-200d-2642-fe0f.svg b/priv/static/emoji/1f9b9-1f3fe-200d-2642-fe0f.svg deleted file mode 100644 index f7e3d5611..000000000 --- a/priv/static/emoji/1f9b9-1f3fe-200d-2642-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9b9-1f3fe.svg b/priv/static/emoji/1f9b9-1f3fe.svg deleted file mode 100644 index 04120e37a..000000000 --- a/priv/static/emoji/1f9b9-1f3fe.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9b9-1f3ff-200d-2640-fe0f.svg b/priv/static/emoji/1f9b9-1f3ff-200d-2640-fe0f.svg deleted file mode 100644 index 5dadcd8b6..000000000 --- a/priv/static/emoji/1f9b9-1f3ff-200d-2640-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9b9-1f3ff-200d-2642-fe0f.svg b/priv/static/emoji/1f9b9-1f3ff-200d-2642-fe0f.svg deleted file mode 100644 index e5d56cb36..000000000 --- a/priv/static/emoji/1f9b9-1f3ff-200d-2642-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9b9-1f3ff.svg b/priv/static/emoji/1f9b9-1f3ff.svg deleted file mode 100644 index 5dadcd8b6..000000000 --- a/priv/static/emoji/1f9b9-1f3ff.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9b9-200d-2640-fe0f.svg b/priv/static/emoji/1f9b9-200d-2640-fe0f.svg deleted file mode 100644 index 7d6953ea2..000000000 --- a/priv/static/emoji/1f9b9-200d-2640-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9b9-200d-2642-fe0f.svg b/priv/static/emoji/1f9b9-200d-2642-fe0f.svg deleted file mode 100644 index ed0e66c34..000000000 --- a/priv/static/emoji/1f9b9-200d-2642-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9b9.svg b/priv/static/emoji/1f9b9.svg deleted file mode 100644 index 7d6953ea2..000000000 --- a/priv/static/emoji/1f9b9.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9ba.svg b/priv/static/emoji/1f9ba.svg deleted file mode 100644 index 50bf8e37b..000000000 --- a/priv/static/emoji/1f9ba.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9bb-1f3fb.svg b/priv/static/emoji/1f9bb-1f3fb.svg deleted file mode 100644 index b94d484ae..000000000 --- a/priv/static/emoji/1f9bb-1f3fb.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9bb-1f3fc.svg b/priv/static/emoji/1f9bb-1f3fc.svg deleted file mode 100644 index d187bad0a..000000000 --- a/priv/static/emoji/1f9bb-1f3fc.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9bb-1f3fd.svg b/priv/static/emoji/1f9bb-1f3fd.svg deleted file mode 100644 index 51ed272c8..000000000 --- a/priv/static/emoji/1f9bb-1f3fd.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9bb-1f3fe.svg b/priv/static/emoji/1f9bb-1f3fe.svg deleted file mode 100644 index af889ade4..000000000 --- a/priv/static/emoji/1f9bb-1f3fe.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9bb-1f3ff.svg b/priv/static/emoji/1f9bb-1f3ff.svg deleted file mode 100644 index 818e532d3..000000000 --- a/priv/static/emoji/1f9bb-1f3ff.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9bb.svg b/priv/static/emoji/1f9bb.svg deleted file mode 100644 index 05bc02011..000000000 --- a/priv/static/emoji/1f9bb.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9bc.svg b/priv/static/emoji/1f9bc.svg deleted file mode 100644 index 153f55312..000000000 --- a/priv/static/emoji/1f9bc.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9bd.svg b/priv/static/emoji/1f9bd.svg deleted file mode 100644 index c371d4bf8..000000000 --- a/priv/static/emoji/1f9bd.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9be.svg b/priv/static/emoji/1f9be.svg deleted file mode 100644 index c3d2db4f0..000000000 --- a/priv/static/emoji/1f9be.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9bf.svg b/priv/static/emoji/1f9bf.svg deleted file mode 100644 index db17a633b..000000000 --- a/priv/static/emoji/1f9bf.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9c0.svg b/priv/static/emoji/1f9c0.svg deleted file mode 100644 index 20e6a92f3..000000000 --- a/priv/static/emoji/1f9c0.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9c1.svg b/priv/static/emoji/1f9c1.svg deleted file mode 100644 index 1f966c363..000000000 --- a/priv/static/emoji/1f9c1.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9c2.svg b/priv/static/emoji/1f9c2.svg deleted file mode 100644 index 40dea8834..000000000 --- a/priv/static/emoji/1f9c2.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9c3.svg b/priv/static/emoji/1f9c3.svg deleted file mode 100644 index 51a3f26d4..000000000 --- a/priv/static/emoji/1f9c3.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9c4.svg b/priv/static/emoji/1f9c4.svg deleted file mode 100644 index 37a9f36e8..000000000 --- a/priv/static/emoji/1f9c4.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9c5.svg b/priv/static/emoji/1f9c5.svg deleted file mode 100644 index ab68cb1d6..000000000 --- a/priv/static/emoji/1f9c5.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9c6.svg b/priv/static/emoji/1f9c6.svg deleted file mode 100644 index c360564eb..000000000 --- a/priv/static/emoji/1f9c6.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9c7.svg b/priv/static/emoji/1f9c7.svg deleted file mode 100644 index cc92a9d18..000000000 --- a/priv/static/emoji/1f9c7.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9c8.svg b/priv/static/emoji/1f9c8.svg deleted file mode 100644 index d7a5674c6..000000000 --- a/priv/static/emoji/1f9c8.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9c9.svg b/priv/static/emoji/1f9c9.svg deleted file mode 100644 index 16b0db823..000000000 --- a/priv/static/emoji/1f9c9.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9ca.svg b/priv/static/emoji/1f9ca.svg deleted file mode 100644 index 569fe039b..000000000 --- a/priv/static/emoji/1f9ca.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9cd-1f3fb-200d-2640-fe0f.svg b/priv/static/emoji/1f9cd-1f3fb-200d-2640-fe0f.svg deleted file mode 100644 index d5981e340..000000000 --- a/priv/static/emoji/1f9cd-1f3fb-200d-2640-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9cd-1f3fb-200d-2642-fe0f.svg b/priv/static/emoji/1f9cd-1f3fb-200d-2642-fe0f.svg deleted file mode 100644 index 8fbd6c034..000000000 --- a/priv/static/emoji/1f9cd-1f3fb-200d-2642-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9cd-1f3fb.svg b/priv/static/emoji/1f9cd-1f3fb.svg deleted file mode 100644 index 8fbd6c034..000000000 --- a/priv/static/emoji/1f9cd-1f3fb.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9cd-1f3fc-200d-2640-fe0f.svg b/priv/static/emoji/1f9cd-1f3fc-200d-2640-fe0f.svg deleted file mode 100644 index 7f81ff85b..000000000 --- a/priv/static/emoji/1f9cd-1f3fc-200d-2640-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9cd-1f3fc-200d-2642-fe0f.svg b/priv/static/emoji/1f9cd-1f3fc-200d-2642-fe0f.svg deleted file mode 100644 index 0ea6dafdc..000000000 --- a/priv/static/emoji/1f9cd-1f3fc-200d-2642-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9cd-1f3fc.svg b/priv/static/emoji/1f9cd-1f3fc.svg deleted file mode 100644 index 0ea6dafdc..000000000 --- a/priv/static/emoji/1f9cd-1f3fc.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9cd-1f3fd-200d-2640-fe0f.svg b/priv/static/emoji/1f9cd-1f3fd-200d-2640-fe0f.svg deleted file mode 100644 index 48329af5f..000000000 --- a/priv/static/emoji/1f9cd-1f3fd-200d-2640-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9cd-1f3fd-200d-2642-fe0f.svg b/priv/static/emoji/1f9cd-1f3fd-200d-2642-fe0f.svg deleted file mode 100644 index 3197184b7..000000000 --- a/priv/static/emoji/1f9cd-1f3fd-200d-2642-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9cd-1f3fd.svg b/priv/static/emoji/1f9cd-1f3fd.svg deleted file mode 100644 index 3197184b7..000000000 --- a/priv/static/emoji/1f9cd-1f3fd.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9cd-1f3fe-200d-2640-fe0f.svg b/priv/static/emoji/1f9cd-1f3fe-200d-2640-fe0f.svg deleted file mode 100644 index 696243dc0..000000000 --- a/priv/static/emoji/1f9cd-1f3fe-200d-2640-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9cd-1f3fe-200d-2642-fe0f.svg b/priv/static/emoji/1f9cd-1f3fe-200d-2642-fe0f.svg deleted file mode 100644 index 8b05543d0..000000000 --- a/priv/static/emoji/1f9cd-1f3fe-200d-2642-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9cd-1f3fe.svg b/priv/static/emoji/1f9cd-1f3fe.svg deleted file mode 100644 index 8b05543d0..000000000 --- a/priv/static/emoji/1f9cd-1f3fe.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9cd-1f3ff-200d-2640-fe0f.svg b/priv/static/emoji/1f9cd-1f3ff-200d-2640-fe0f.svg deleted file mode 100644 index c96659cea..000000000 --- a/priv/static/emoji/1f9cd-1f3ff-200d-2640-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9cd-1f3ff-200d-2642-fe0f.svg b/priv/static/emoji/1f9cd-1f3ff-200d-2642-fe0f.svg deleted file mode 100644 index 59fb6a930..000000000 --- a/priv/static/emoji/1f9cd-1f3ff-200d-2642-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9cd-1f3ff.svg b/priv/static/emoji/1f9cd-1f3ff.svg deleted file mode 100644 index 59fb6a930..000000000 --- a/priv/static/emoji/1f9cd-1f3ff.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9cd-200d-2640-fe0f.svg b/priv/static/emoji/1f9cd-200d-2640-fe0f.svg deleted file mode 100644 index 1b8bfc388..000000000 --- a/priv/static/emoji/1f9cd-200d-2640-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9cd-200d-2642-fe0f.svg b/priv/static/emoji/1f9cd-200d-2642-fe0f.svg deleted file mode 100644 index 450561e2a..000000000 --- a/priv/static/emoji/1f9cd-200d-2642-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9cd.svg b/priv/static/emoji/1f9cd.svg deleted file mode 100644 index 450561e2a..000000000 --- a/priv/static/emoji/1f9cd.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9ce-1f3fb-200d-2640-fe0f.svg b/priv/static/emoji/1f9ce-1f3fb-200d-2640-fe0f.svg deleted file mode 100644 index 77c8b9ba1..000000000 --- a/priv/static/emoji/1f9ce-1f3fb-200d-2640-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9ce-1f3fb-200d-2642-fe0f.svg b/priv/static/emoji/1f9ce-1f3fb-200d-2642-fe0f.svg deleted file mode 100644 index 09e6f4d9b..000000000 --- a/priv/static/emoji/1f9ce-1f3fb-200d-2642-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9ce-1f3fb.svg b/priv/static/emoji/1f9ce-1f3fb.svg deleted file mode 100644 index 09e6f4d9b..000000000 --- a/priv/static/emoji/1f9ce-1f3fb.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9ce-1f3fc-200d-2640-fe0f.svg b/priv/static/emoji/1f9ce-1f3fc-200d-2640-fe0f.svg deleted file mode 100644 index cf2ca0cc9..000000000 --- a/priv/static/emoji/1f9ce-1f3fc-200d-2640-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9ce-1f3fc-200d-2642-fe0f.svg b/priv/static/emoji/1f9ce-1f3fc-200d-2642-fe0f.svg deleted file mode 100644 index 9bd2fc01d..000000000 --- a/priv/static/emoji/1f9ce-1f3fc-200d-2642-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9ce-1f3fc.svg b/priv/static/emoji/1f9ce-1f3fc.svg deleted file mode 100644 index 9bd2fc01d..000000000 --- a/priv/static/emoji/1f9ce-1f3fc.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9ce-1f3fd-200d-2640-fe0f.svg b/priv/static/emoji/1f9ce-1f3fd-200d-2640-fe0f.svg deleted file mode 100644 index ed058b9d9..000000000 --- a/priv/static/emoji/1f9ce-1f3fd-200d-2640-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9ce-1f3fd-200d-2642-fe0f.svg b/priv/static/emoji/1f9ce-1f3fd-200d-2642-fe0f.svg deleted file mode 100644 index 10df60c9b..000000000 --- a/priv/static/emoji/1f9ce-1f3fd-200d-2642-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9ce-1f3fd.svg b/priv/static/emoji/1f9ce-1f3fd.svg deleted file mode 100644 index 10df60c9b..000000000 --- a/priv/static/emoji/1f9ce-1f3fd.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9ce-1f3fe-200d-2640-fe0f.svg b/priv/static/emoji/1f9ce-1f3fe-200d-2640-fe0f.svg deleted file mode 100644 index 83206f8d2..000000000 --- a/priv/static/emoji/1f9ce-1f3fe-200d-2640-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9ce-1f3fe-200d-2642-fe0f.svg b/priv/static/emoji/1f9ce-1f3fe-200d-2642-fe0f.svg deleted file mode 100644 index fb24b6dfb..000000000 --- a/priv/static/emoji/1f9ce-1f3fe-200d-2642-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9ce-1f3fe.svg b/priv/static/emoji/1f9ce-1f3fe.svg deleted file mode 100644 index fb24b6dfb..000000000 --- a/priv/static/emoji/1f9ce-1f3fe.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9ce-1f3ff-200d-2640-fe0f.svg b/priv/static/emoji/1f9ce-1f3ff-200d-2640-fe0f.svg deleted file mode 100644 index 442cb9c49..000000000 --- a/priv/static/emoji/1f9ce-1f3ff-200d-2640-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9ce-1f3ff-200d-2642-fe0f.svg b/priv/static/emoji/1f9ce-1f3ff-200d-2642-fe0f.svg deleted file mode 100644 index aba0cb467..000000000 --- a/priv/static/emoji/1f9ce-1f3ff-200d-2642-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9ce-1f3ff.svg b/priv/static/emoji/1f9ce-1f3ff.svg deleted file mode 100644 index aba0cb467..000000000 --- a/priv/static/emoji/1f9ce-1f3ff.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9ce-200d-2640-fe0f.svg b/priv/static/emoji/1f9ce-200d-2640-fe0f.svg deleted file mode 100644 index 89c9ff428..000000000 --- a/priv/static/emoji/1f9ce-200d-2640-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9ce-200d-2642-fe0f.svg b/priv/static/emoji/1f9ce-200d-2642-fe0f.svg deleted file mode 100644 index 403d73eb3..000000000 --- a/priv/static/emoji/1f9ce-200d-2642-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9ce.svg b/priv/static/emoji/1f9ce.svg deleted file mode 100644 index 403d73eb3..000000000 --- a/priv/static/emoji/1f9ce.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9cf-1f3fb-200d-2640-fe0f.svg b/priv/static/emoji/1f9cf-1f3fb-200d-2640-fe0f.svg deleted file mode 100644 index 9605fac0a..000000000 --- a/priv/static/emoji/1f9cf-1f3fb-200d-2640-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9cf-1f3fb-200d-2642-fe0f.svg b/priv/static/emoji/1f9cf-1f3fb-200d-2642-fe0f.svg deleted file mode 100644 index be0cd9005..000000000 --- a/priv/static/emoji/1f9cf-1f3fb-200d-2642-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9cf-1f3fb.svg b/priv/static/emoji/1f9cf-1f3fb.svg deleted file mode 100644 index be0cd9005..000000000 --- a/priv/static/emoji/1f9cf-1f3fb.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9cf-1f3fc-200d-2640-fe0f.svg b/priv/static/emoji/1f9cf-1f3fc-200d-2640-fe0f.svg deleted file mode 100644 index a463bd6ef..000000000 --- a/priv/static/emoji/1f9cf-1f3fc-200d-2640-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9cf-1f3fc-200d-2642-fe0f.svg b/priv/static/emoji/1f9cf-1f3fc-200d-2642-fe0f.svg deleted file mode 100644 index 312364641..000000000 --- a/priv/static/emoji/1f9cf-1f3fc-200d-2642-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9cf-1f3fc.svg b/priv/static/emoji/1f9cf-1f3fc.svg deleted file mode 100644 index 312364641..000000000 --- a/priv/static/emoji/1f9cf-1f3fc.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9cf-1f3fd-200d-2640-fe0f.svg b/priv/static/emoji/1f9cf-1f3fd-200d-2640-fe0f.svg deleted file mode 100644 index 623b34451..000000000 --- a/priv/static/emoji/1f9cf-1f3fd-200d-2640-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9cf-1f3fd-200d-2642-fe0f.svg b/priv/static/emoji/1f9cf-1f3fd-200d-2642-fe0f.svg deleted file mode 100644 index d41a0fa60..000000000 --- a/priv/static/emoji/1f9cf-1f3fd-200d-2642-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9cf-1f3fd.svg b/priv/static/emoji/1f9cf-1f3fd.svg deleted file mode 100644 index d41a0fa60..000000000 --- a/priv/static/emoji/1f9cf-1f3fd.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9cf-1f3fe-200d-2640-fe0f.svg b/priv/static/emoji/1f9cf-1f3fe-200d-2640-fe0f.svg deleted file mode 100644 index d63eee453..000000000 --- a/priv/static/emoji/1f9cf-1f3fe-200d-2640-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9cf-1f3fe-200d-2642-fe0f.svg b/priv/static/emoji/1f9cf-1f3fe-200d-2642-fe0f.svg deleted file mode 100644 index dd4392664..000000000 --- a/priv/static/emoji/1f9cf-1f3fe-200d-2642-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9cf-1f3fe.svg b/priv/static/emoji/1f9cf-1f3fe.svg deleted file mode 100644 index dd4392664..000000000 --- a/priv/static/emoji/1f9cf-1f3fe.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9cf-1f3ff-200d-2640-fe0f.svg b/priv/static/emoji/1f9cf-1f3ff-200d-2640-fe0f.svg deleted file mode 100644 index 6064882a7..000000000 --- a/priv/static/emoji/1f9cf-1f3ff-200d-2640-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9cf-1f3ff-200d-2642-fe0f.svg b/priv/static/emoji/1f9cf-1f3ff-200d-2642-fe0f.svg deleted file mode 100644 index 748ab421b..000000000 --- a/priv/static/emoji/1f9cf-1f3ff-200d-2642-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9cf-1f3ff.svg b/priv/static/emoji/1f9cf-1f3ff.svg deleted file mode 100644 index 748ab421b..000000000 --- a/priv/static/emoji/1f9cf-1f3ff.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9cf-200d-2640-fe0f.svg b/priv/static/emoji/1f9cf-200d-2640-fe0f.svg deleted file mode 100644 index 7d8f058a8..000000000 --- a/priv/static/emoji/1f9cf-200d-2640-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9cf-200d-2642-fe0f.svg b/priv/static/emoji/1f9cf-200d-2642-fe0f.svg deleted file mode 100644 index 8c119c990..000000000 --- a/priv/static/emoji/1f9cf-200d-2642-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9cf.svg b/priv/static/emoji/1f9cf.svg deleted file mode 100644 index 8c119c990..000000000 --- a/priv/static/emoji/1f9cf.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9d0.svg b/priv/static/emoji/1f9d0.svg deleted file mode 100644 index 86198f7f7..000000000 --- a/priv/static/emoji/1f9d0.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9d1-1f3fb-200d-1f91d-200d-1f9d1-1f3fb.svg b/priv/static/emoji/1f9d1-1f3fb-200d-1f91d-200d-1f9d1-1f3fb.svg deleted file mode 100644 index 5fedd969b..000000000 --- a/priv/static/emoji/1f9d1-1f3fb-200d-1f91d-200d-1f9d1-1f3fb.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9d1-1f3fb.svg b/priv/static/emoji/1f9d1-1f3fb.svg deleted file mode 100644 index 9c2da5b36..000000000 --- a/priv/static/emoji/1f9d1-1f3fb.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9d1-1f3fc-200d-1f91d-200d-1f9d1-1f3fb.svg b/priv/static/emoji/1f9d1-1f3fc-200d-1f91d-200d-1f9d1-1f3fb.svg deleted file mode 100644 index 53e58734c..000000000 --- a/priv/static/emoji/1f9d1-1f3fc-200d-1f91d-200d-1f9d1-1f3fb.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9d1-1f3fc-200d-1f91d-200d-1f9d1-1f3fc.svg b/priv/static/emoji/1f9d1-1f3fc-200d-1f91d-200d-1f9d1-1f3fc.svg deleted file mode 100644 index d5be6fe59..000000000 --- a/priv/static/emoji/1f9d1-1f3fc-200d-1f91d-200d-1f9d1-1f3fc.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9d1-1f3fc.svg b/priv/static/emoji/1f9d1-1f3fc.svg deleted file mode 100644 index f9f3f6bd1..000000000 --- a/priv/static/emoji/1f9d1-1f3fc.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9d1-1f3fd-200d-1f91d-200d-1f9d1-1f3fb.svg b/priv/static/emoji/1f9d1-1f3fd-200d-1f91d-200d-1f9d1-1f3fb.svg deleted file mode 100644 index adf04f14e..000000000 --- a/priv/static/emoji/1f9d1-1f3fd-200d-1f91d-200d-1f9d1-1f3fb.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9d1-1f3fd-200d-1f91d-200d-1f9d1-1f3fc.svg b/priv/static/emoji/1f9d1-1f3fd-200d-1f91d-200d-1f9d1-1f3fc.svg deleted file mode 100644 index 724aede5b..000000000 --- a/priv/static/emoji/1f9d1-1f3fd-200d-1f91d-200d-1f9d1-1f3fc.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9d1-1f3fd-200d-1f91d-200d-1f9d1-1f3fd.svg b/priv/static/emoji/1f9d1-1f3fd-200d-1f91d-200d-1f9d1-1f3fd.svg deleted file mode 100644 index 15c9bdfed..000000000 --- a/priv/static/emoji/1f9d1-1f3fd-200d-1f91d-200d-1f9d1-1f3fd.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9d1-1f3fd.svg b/priv/static/emoji/1f9d1-1f3fd.svg deleted file mode 100644 index 814791047..000000000 --- a/priv/static/emoji/1f9d1-1f3fd.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9d1-1f3fe-200d-1f91d-200d-1f9d1-1f3fb.svg b/priv/static/emoji/1f9d1-1f3fe-200d-1f91d-200d-1f9d1-1f3fb.svg deleted file mode 100644 index c14a8e794..000000000 --- a/priv/static/emoji/1f9d1-1f3fe-200d-1f91d-200d-1f9d1-1f3fb.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9d1-1f3fe-200d-1f91d-200d-1f9d1-1f3fc.svg b/priv/static/emoji/1f9d1-1f3fe-200d-1f91d-200d-1f9d1-1f3fc.svg deleted file mode 100644 index dff165ed5..000000000 --- a/priv/static/emoji/1f9d1-1f3fe-200d-1f91d-200d-1f9d1-1f3fc.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9d1-1f3fe-200d-1f91d-200d-1f9d1-1f3fd.svg b/priv/static/emoji/1f9d1-1f3fe-200d-1f91d-200d-1f9d1-1f3fd.svg deleted file mode 100644 index 19a8dab4c..000000000 --- a/priv/static/emoji/1f9d1-1f3fe-200d-1f91d-200d-1f9d1-1f3fd.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9d1-1f3fe-200d-1f91d-200d-1f9d1-1f3fe.svg b/priv/static/emoji/1f9d1-1f3fe-200d-1f91d-200d-1f9d1-1f3fe.svg deleted file mode 100644 index 54c46de87..000000000 --- a/priv/static/emoji/1f9d1-1f3fe-200d-1f91d-200d-1f9d1-1f3fe.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9d1-1f3fe.svg b/priv/static/emoji/1f9d1-1f3fe.svg deleted file mode 100644 index 0b0527e98..000000000 --- a/priv/static/emoji/1f9d1-1f3fe.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9d1-1f3ff-200d-1f91d-200d-1f9d1-1f3fb.svg b/priv/static/emoji/1f9d1-1f3ff-200d-1f91d-200d-1f9d1-1f3fb.svg deleted file mode 100644 index cbcfecadc..000000000 --- a/priv/static/emoji/1f9d1-1f3ff-200d-1f91d-200d-1f9d1-1f3fb.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9d1-1f3ff-200d-1f91d-200d-1f9d1-1f3fc.svg b/priv/static/emoji/1f9d1-1f3ff-200d-1f91d-200d-1f9d1-1f3fc.svg deleted file mode 100644 index fce4c9184..000000000 --- a/priv/static/emoji/1f9d1-1f3ff-200d-1f91d-200d-1f9d1-1f3fc.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9d1-1f3ff-200d-1f91d-200d-1f9d1-1f3fd.svg b/priv/static/emoji/1f9d1-1f3ff-200d-1f91d-200d-1f9d1-1f3fd.svg deleted file mode 100644 index 84e2b2bd8..000000000 --- a/priv/static/emoji/1f9d1-1f3ff-200d-1f91d-200d-1f9d1-1f3fd.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9d1-1f3ff-200d-1f91d-200d-1f9d1-1f3fe.svg b/priv/static/emoji/1f9d1-1f3ff-200d-1f91d-200d-1f9d1-1f3fe.svg deleted file mode 100644 index d0ba4cd18..000000000 --- a/priv/static/emoji/1f9d1-1f3ff-200d-1f91d-200d-1f9d1-1f3fe.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9d1-1f3ff-200d-1f91d-200d-1f9d1-1f3ff.svg b/priv/static/emoji/1f9d1-1f3ff-200d-1f91d-200d-1f9d1-1f3ff.svg deleted file mode 100644 index e0cb1e2bb..000000000 --- a/priv/static/emoji/1f9d1-1f3ff-200d-1f91d-200d-1f9d1-1f3ff.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9d1-1f3ff.svg b/priv/static/emoji/1f9d1-1f3ff.svg deleted file mode 100644 index 6d56d1868..000000000 --- a/priv/static/emoji/1f9d1-1f3ff.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9d1-200d-1f91d-200d-1f9d1.svg b/priv/static/emoji/1f9d1-200d-1f91d-200d-1f9d1.svg deleted file mode 100644 index f7e46f210..000000000 --- a/priv/static/emoji/1f9d1-200d-1f91d-200d-1f9d1.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9d1.svg b/priv/static/emoji/1f9d1.svg deleted file mode 100644 index db7b14fe0..000000000 --- a/priv/static/emoji/1f9d1.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9d2-1f3fb.svg b/priv/static/emoji/1f9d2-1f3fb.svg deleted file mode 100644 index 188dea00e..000000000 --- a/priv/static/emoji/1f9d2-1f3fb.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9d2-1f3fc.svg b/priv/static/emoji/1f9d2-1f3fc.svg deleted file mode 100644 index ab1c21218..000000000 --- a/priv/static/emoji/1f9d2-1f3fc.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9d2-1f3fd.svg b/priv/static/emoji/1f9d2-1f3fd.svg deleted file mode 100644 index 467f99e45..000000000 --- a/priv/static/emoji/1f9d2-1f3fd.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9d2-1f3fe.svg b/priv/static/emoji/1f9d2-1f3fe.svg deleted file mode 100644 index 2b9aec1b3..000000000 --- a/priv/static/emoji/1f9d2-1f3fe.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9d2-1f3ff.svg b/priv/static/emoji/1f9d2-1f3ff.svg deleted file mode 100644 index 3de0af2df..000000000 --- a/priv/static/emoji/1f9d2-1f3ff.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9d2.svg b/priv/static/emoji/1f9d2.svg deleted file mode 100644 index f2a0aa300..000000000 --- a/priv/static/emoji/1f9d2.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9d3-1f3fb.svg b/priv/static/emoji/1f9d3-1f3fb.svg deleted file mode 100644 index e7dce37af..000000000 --- a/priv/static/emoji/1f9d3-1f3fb.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9d3-1f3fc.svg b/priv/static/emoji/1f9d3-1f3fc.svg deleted file mode 100644 index 9dbd38ed5..000000000 --- a/priv/static/emoji/1f9d3-1f3fc.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9d3-1f3fd.svg b/priv/static/emoji/1f9d3-1f3fd.svg deleted file mode 100644 index 9194aca9f..000000000 --- a/priv/static/emoji/1f9d3-1f3fd.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9d3-1f3fe.svg b/priv/static/emoji/1f9d3-1f3fe.svg deleted file mode 100644 index 16a87db41..000000000 --- a/priv/static/emoji/1f9d3-1f3fe.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9d3-1f3ff.svg b/priv/static/emoji/1f9d3-1f3ff.svg deleted file mode 100644 index 6a4b741df..000000000 --- a/priv/static/emoji/1f9d3-1f3ff.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9d3.svg b/priv/static/emoji/1f9d3.svg deleted file mode 100644 index 920069772..000000000 --- a/priv/static/emoji/1f9d3.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9d4-1f3fb.svg b/priv/static/emoji/1f9d4-1f3fb.svg deleted file mode 100644 index 823e9cbf2..000000000 --- a/priv/static/emoji/1f9d4-1f3fb.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9d4-1f3fc.svg b/priv/static/emoji/1f9d4-1f3fc.svg deleted file mode 100644 index 5a3dded42..000000000 --- a/priv/static/emoji/1f9d4-1f3fc.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9d4-1f3fd.svg b/priv/static/emoji/1f9d4-1f3fd.svg deleted file mode 100644 index 5346429f3..000000000 --- a/priv/static/emoji/1f9d4-1f3fd.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9d4-1f3fe.svg b/priv/static/emoji/1f9d4-1f3fe.svg deleted file mode 100644 index 3a1941d26..000000000 --- a/priv/static/emoji/1f9d4-1f3fe.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9d4-1f3ff.svg b/priv/static/emoji/1f9d4-1f3ff.svg deleted file mode 100644 index 7790ff998..000000000 --- a/priv/static/emoji/1f9d4-1f3ff.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9d4.svg b/priv/static/emoji/1f9d4.svg deleted file mode 100644 index ca23c872a..000000000 --- a/priv/static/emoji/1f9d4.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9d5-1f3fb.svg b/priv/static/emoji/1f9d5-1f3fb.svg deleted file mode 100644 index e1db714f9..000000000 --- a/priv/static/emoji/1f9d5-1f3fb.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9d5-1f3fc.svg b/priv/static/emoji/1f9d5-1f3fc.svg deleted file mode 100644 index ef64ff8e8..000000000 --- a/priv/static/emoji/1f9d5-1f3fc.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9d5-1f3fd.svg b/priv/static/emoji/1f9d5-1f3fd.svg deleted file mode 100644 index c31d2fc30..000000000 --- a/priv/static/emoji/1f9d5-1f3fd.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9d5-1f3fe.svg b/priv/static/emoji/1f9d5-1f3fe.svg deleted file mode 100644 index 4f3467544..000000000 --- a/priv/static/emoji/1f9d5-1f3fe.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9d5-1f3ff.svg b/priv/static/emoji/1f9d5-1f3ff.svg deleted file mode 100644 index 2dcef9dbb..000000000 --- a/priv/static/emoji/1f9d5-1f3ff.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9d5.svg b/priv/static/emoji/1f9d5.svg deleted file mode 100644 index a650fee88..000000000 --- a/priv/static/emoji/1f9d5.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9d6-1f3fb-200d-2640-fe0f.svg b/priv/static/emoji/1f9d6-1f3fb-200d-2640-fe0f.svg deleted file mode 100644 index 98c29804f..000000000 --- a/priv/static/emoji/1f9d6-1f3fb-200d-2640-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9d6-1f3fb-200d-2642-fe0f.svg b/priv/static/emoji/1f9d6-1f3fb-200d-2642-fe0f.svg deleted file mode 100644 index d3aff3dc1..000000000 --- a/priv/static/emoji/1f9d6-1f3fb-200d-2642-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9d6-1f3fb.svg b/priv/static/emoji/1f9d6-1f3fb.svg deleted file mode 100644 index 98c29804f..000000000 --- a/priv/static/emoji/1f9d6-1f3fb.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9d6-1f3fc-200d-2640-fe0f.svg b/priv/static/emoji/1f9d6-1f3fc-200d-2640-fe0f.svg deleted file mode 100644 index 976146def..000000000 --- a/priv/static/emoji/1f9d6-1f3fc-200d-2640-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9d6-1f3fc-200d-2642-fe0f.svg b/priv/static/emoji/1f9d6-1f3fc-200d-2642-fe0f.svg deleted file mode 100644 index 35f7e555f..000000000 --- a/priv/static/emoji/1f9d6-1f3fc-200d-2642-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9d6-1f3fc.svg b/priv/static/emoji/1f9d6-1f3fc.svg deleted file mode 100644 index 976146def..000000000 --- a/priv/static/emoji/1f9d6-1f3fc.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9d6-1f3fd-200d-2640-fe0f.svg b/priv/static/emoji/1f9d6-1f3fd-200d-2640-fe0f.svg deleted file mode 100644 index b29750071..000000000 --- a/priv/static/emoji/1f9d6-1f3fd-200d-2640-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9d6-1f3fd-200d-2642-fe0f.svg b/priv/static/emoji/1f9d6-1f3fd-200d-2642-fe0f.svg deleted file mode 100644 index 42772b46e..000000000 --- a/priv/static/emoji/1f9d6-1f3fd-200d-2642-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9d6-1f3fd.svg b/priv/static/emoji/1f9d6-1f3fd.svg deleted file mode 100644 index b29750071..000000000 --- a/priv/static/emoji/1f9d6-1f3fd.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9d6-1f3fe-200d-2640-fe0f.svg b/priv/static/emoji/1f9d6-1f3fe-200d-2640-fe0f.svg deleted file mode 100644 index 935ff3290..000000000 --- a/priv/static/emoji/1f9d6-1f3fe-200d-2640-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9d6-1f3fe-200d-2642-fe0f.svg b/priv/static/emoji/1f9d6-1f3fe-200d-2642-fe0f.svg deleted file mode 100644 index 4846f7336..000000000 --- a/priv/static/emoji/1f9d6-1f3fe-200d-2642-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9d6-1f3fe.svg b/priv/static/emoji/1f9d6-1f3fe.svg deleted file mode 100644 index 935ff3290..000000000 --- a/priv/static/emoji/1f9d6-1f3fe.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9d6-1f3ff-200d-2640-fe0f.svg b/priv/static/emoji/1f9d6-1f3ff-200d-2640-fe0f.svg deleted file mode 100644 index 1c0862f7a..000000000 --- a/priv/static/emoji/1f9d6-1f3ff-200d-2640-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9d6-1f3ff-200d-2642-fe0f.svg b/priv/static/emoji/1f9d6-1f3ff-200d-2642-fe0f.svg deleted file mode 100644 index 7512a609d..000000000 --- a/priv/static/emoji/1f9d6-1f3ff-200d-2642-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9d6-1f3ff.svg b/priv/static/emoji/1f9d6-1f3ff.svg deleted file mode 100644 index 1c0862f7a..000000000 --- a/priv/static/emoji/1f9d6-1f3ff.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9d6-200d-2640-fe0f.svg b/priv/static/emoji/1f9d6-200d-2640-fe0f.svg deleted file mode 100644 index f1d0343e3..000000000 --- a/priv/static/emoji/1f9d6-200d-2640-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9d6-200d-2642-fe0f.svg b/priv/static/emoji/1f9d6-200d-2642-fe0f.svg deleted file mode 100644 index 3ecdeee76..000000000 --- a/priv/static/emoji/1f9d6-200d-2642-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9d6.svg b/priv/static/emoji/1f9d6.svg deleted file mode 100644 index f1d0343e3..000000000 --- a/priv/static/emoji/1f9d6.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9d7-1f3fb-200d-2640-fe0f.svg b/priv/static/emoji/1f9d7-1f3fb-200d-2640-fe0f.svg deleted file mode 100644 index 1aaa8a41d..000000000 --- a/priv/static/emoji/1f9d7-1f3fb-200d-2640-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9d7-1f3fb-200d-2642-fe0f.svg b/priv/static/emoji/1f9d7-1f3fb-200d-2642-fe0f.svg deleted file mode 100644 index 5d7450bdf..000000000 --- a/priv/static/emoji/1f9d7-1f3fb-200d-2642-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9d7-1f3fb.svg b/priv/static/emoji/1f9d7-1f3fb.svg deleted file mode 100644 index 5d7450bdf..000000000 --- a/priv/static/emoji/1f9d7-1f3fb.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9d7-1f3fc-200d-2640-fe0f.svg b/priv/static/emoji/1f9d7-1f3fc-200d-2640-fe0f.svg deleted file mode 100644 index 28347d7b8..000000000 --- a/priv/static/emoji/1f9d7-1f3fc-200d-2640-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9d7-1f3fc-200d-2642-fe0f.svg b/priv/static/emoji/1f9d7-1f3fc-200d-2642-fe0f.svg deleted file mode 100644 index a8fed1463..000000000 --- a/priv/static/emoji/1f9d7-1f3fc-200d-2642-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9d7-1f3fc.svg b/priv/static/emoji/1f9d7-1f3fc.svg deleted file mode 100644 index a8fed1463..000000000 --- a/priv/static/emoji/1f9d7-1f3fc.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9d7-1f3fd-200d-2640-fe0f.svg b/priv/static/emoji/1f9d7-1f3fd-200d-2640-fe0f.svg deleted file mode 100644 index 6c665bf06..000000000 --- a/priv/static/emoji/1f9d7-1f3fd-200d-2640-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9d7-1f3fd-200d-2642-fe0f.svg b/priv/static/emoji/1f9d7-1f3fd-200d-2642-fe0f.svg deleted file mode 100644 index 8e7e28608..000000000 --- a/priv/static/emoji/1f9d7-1f3fd-200d-2642-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9d7-1f3fd.svg b/priv/static/emoji/1f9d7-1f3fd.svg deleted file mode 100644 index 8e7e28608..000000000 --- a/priv/static/emoji/1f9d7-1f3fd.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9d7-1f3fe-200d-2640-fe0f.svg b/priv/static/emoji/1f9d7-1f3fe-200d-2640-fe0f.svg deleted file mode 100644 index 03ab0f092..000000000 --- a/priv/static/emoji/1f9d7-1f3fe-200d-2640-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9d7-1f3fe-200d-2642-fe0f.svg b/priv/static/emoji/1f9d7-1f3fe-200d-2642-fe0f.svg deleted file mode 100644 index fc16b859e..000000000 --- a/priv/static/emoji/1f9d7-1f3fe-200d-2642-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9d7-1f3fe.svg b/priv/static/emoji/1f9d7-1f3fe.svg deleted file mode 100644 index fc16b859e..000000000 --- a/priv/static/emoji/1f9d7-1f3fe.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9d7-1f3ff-200d-2640-fe0f.svg b/priv/static/emoji/1f9d7-1f3ff-200d-2640-fe0f.svg deleted file mode 100644 index 1253ee6ca..000000000 --- a/priv/static/emoji/1f9d7-1f3ff-200d-2640-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9d7-1f3ff-200d-2642-fe0f.svg b/priv/static/emoji/1f9d7-1f3ff-200d-2642-fe0f.svg deleted file mode 100644 index 2a9524e2e..000000000 --- a/priv/static/emoji/1f9d7-1f3ff-200d-2642-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9d7-1f3ff.svg b/priv/static/emoji/1f9d7-1f3ff.svg deleted file mode 100644 index 2a9524e2e..000000000 --- a/priv/static/emoji/1f9d7-1f3ff.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9d7-200d-2640-fe0f.svg b/priv/static/emoji/1f9d7-200d-2640-fe0f.svg deleted file mode 100644 index c65c14a91..000000000 --- a/priv/static/emoji/1f9d7-200d-2640-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9d7-200d-2642-fe0f.svg b/priv/static/emoji/1f9d7-200d-2642-fe0f.svg deleted file mode 100644 index bb4970996..000000000 --- a/priv/static/emoji/1f9d7-200d-2642-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9d7.svg b/priv/static/emoji/1f9d7.svg deleted file mode 100644 index bb4970996..000000000 --- a/priv/static/emoji/1f9d7.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9d8-1f3fb-200d-2640-fe0f.svg b/priv/static/emoji/1f9d8-1f3fb-200d-2640-fe0f.svg deleted file mode 100644 index e51d2e439..000000000 --- a/priv/static/emoji/1f9d8-1f3fb-200d-2640-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9d8-1f3fb-200d-2642-fe0f.svg b/priv/static/emoji/1f9d8-1f3fb-200d-2642-fe0f.svg deleted file mode 100644 index ce17dc94b..000000000 --- a/priv/static/emoji/1f9d8-1f3fb-200d-2642-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9d8-1f3fb.svg b/priv/static/emoji/1f9d8-1f3fb.svg deleted file mode 100644 index e51d2e439..000000000 --- a/priv/static/emoji/1f9d8-1f3fb.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9d8-1f3fc-200d-2640-fe0f.svg b/priv/static/emoji/1f9d8-1f3fc-200d-2640-fe0f.svg deleted file mode 100644 index 079727076..000000000 --- a/priv/static/emoji/1f9d8-1f3fc-200d-2640-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9d8-1f3fc-200d-2642-fe0f.svg b/priv/static/emoji/1f9d8-1f3fc-200d-2642-fe0f.svg deleted file mode 100644 index 9e4c8d068..000000000 --- a/priv/static/emoji/1f9d8-1f3fc-200d-2642-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9d8-1f3fc.svg b/priv/static/emoji/1f9d8-1f3fc.svg deleted file mode 100644 index 079727076..000000000 --- a/priv/static/emoji/1f9d8-1f3fc.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9d8-1f3fd-200d-2640-fe0f.svg b/priv/static/emoji/1f9d8-1f3fd-200d-2640-fe0f.svg deleted file mode 100644 index 010541a1e..000000000 --- a/priv/static/emoji/1f9d8-1f3fd-200d-2640-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9d8-1f3fd-200d-2642-fe0f.svg b/priv/static/emoji/1f9d8-1f3fd-200d-2642-fe0f.svg deleted file mode 100644 index 6c3b34f59..000000000 --- a/priv/static/emoji/1f9d8-1f3fd-200d-2642-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9d8-1f3fd.svg b/priv/static/emoji/1f9d8-1f3fd.svg deleted file mode 100644 index 010541a1e..000000000 --- a/priv/static/emoji/1f9d8-1f3fd.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9d8-1f3fe-200d-2640-fe0f.svg b/priv/static/emoji/1f9d8-1f3fe-200d-2640-fe0f.svg deleted file mode 100644 index 71bc5ad76..000000000 --- a/priv/static/emoji/1f9d8-1f3fe-200d-2640-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9d8-1f3fe-200d-2642-fe0f.svg b/priv/static/emoji/1f9d8-1f3fe-200d-2642-fe0f.svg deleted file mode 100644 index c3629c6c7..000000000 --- a/priv/static/emoji/1f9d8-1f3fe-200d-2642-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9d8-1f3fe.svg b/priv/static/emoji/1f9d8-1f3fe.svg deleted file mode 100644 index 71bc5ad76..000000000 --- a/priv/static/emoji/1f9d8-1f3fe.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9d8-1f3ff-200d-2640-fe0f.svg b/priv/static/emoji/1f9d8-1f3ff-200d-2640-fe0f.svg deleted file mode 100644 index 5cc0fb7d4..000000000 --- a/priv/static/emoji/1f9d8-1f3ff-200d-2640-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9d8-1f3ff-200d-2642-fe0f.svg b/priv/static/emoji/1f9d8-1f3ff-200d-2642-fe0f.svg deleted file mode 100644 index 33acb8085..000000000 --- a/priv/static/emoji/1f9d8-1f3ff-200d-2642-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9d8-1f3ff.svg b/priv/static/emoji/1f9d8-1f3ff.svg deleted file mode 100644 index 5cc0fb7d4..000000000 --- a/priv/static/emoji/1f9d8-1f3ff.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9d8-200d-2640-fe0f.svg b/priv/static/emoji/1f9d8-200d-2640-fe0f.svg deleted file mode 100644 index 8fcb70fb6..000000000 --- a/priv/static/emoji/1f9d8-200d-2640-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9d8-200d-2642-fe0f.svg b/priv/static/emoji/1f9d8-200d-2642-fe0f.svg deleted file mode 100644 index e0c1f483a..000000000 --- a/priv/static/emoji/1f9d8-200d-2642-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9d8.svg b/priv/static/emoji/1f9d8.svg deleted file mode 100644 index 8fcb70fb6..000000000 --- a/priv/static/emoji/1f9d8.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9d9-1f3fb-200d-2640-fe0f.svg b/priv/static/emoji/1f9d9-1f3fb-200d-2640-fe0f.svg deleted file mode 100644 index cc9e856c4..000000000 --- a/priv/static/emoji/1f9d9-1f3fb-200d-2640-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9d9-1f3fb-200d-2642-fe0f.svg b/priv/static/emoji/1f9d9-1f3fb-200d-2642-fe0f.svg deleted file mode 100644 index 7f07ddab6..000000000 --- a/priv/static/emoji/1f9d9-1f3fb-200d-2642-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9d9-1f3fb.svg b/priv/static/emoji/1f9d9-1f3fb.svg deleted file mode 100644 index 7f07ddab6..000000000 --- a/priv/static/emoji/1f9d9-1f3fb.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9d9-1f3fc-200d-2640-fe0f.svg b/priv/static/emoji/1f9d9-1f3fc-200d-2640-fe0f.svg deleted file mode 100644 index bc2fb4e87..000000000 --- a/priv/static/emoji/1f9d9-1f3fc-200d-2640-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9d9-1f3fc-200d-2642-fe0f.svg b/priv/static/emoji/1f9d9-1f3fc-200d-2642-fe0f.svg deleted file mode 100644 index 3b981e929..000000000 --- a/priv/static/emoji/1f9d9-1f3fc-200d-2642-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9d9-1f3fc.svg b/priv/static/emoji/1f9d9-1f3fc.svg deleted file mode 100644 index 3b981e929..000000000 --- a/priv/static/emoji/1f9d9-1f3fc.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9d9-1f3fd-200d-2640-fe0f.svg b/priv/static/emoji/1f9d9-1f3fd-200d-2640-fe0f.svg deleted file mode 100644 index bac7c44b6..000000000 --- a/priv/static/emoji/1f9d9-1f3fd-200d-2640-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9d9-1f3fd-200d-2642-fe0f.svg b/priv/static/emoji/1f9d9-1f3fd-200d-2642-fe0f.svg deleted file mode 100644 index 936629d27..000000000 --- a/priv/static/emoji/1f9d9-1f3fd-200d-2642-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9d9-1f3fd.svg b/priv/static/emoji/1f9d9-1f3fd.svg deleted file mode 100644 index 936629d27..000000000 --- a/priv/static/emoji/1f9d9-1f3fd.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9d9-1f3fe-200d-2640-fe0f.svg b/priv/static/emoji/1f9d9-1f3fe-200d-2640-fe0f.svg deleted file mode 100644 index 28105d8cd..000000000 --- a/priv/static/emoji/1f9d9-1f3fe-200d-2640-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9d9-1f3fe-200d-2642-fe0f.svg b/priv/static/emoji/1f9d9-1f3fe-200d-2642-fe0f.svg deleted file mode 100644 index f83e59baa..000000000 --- a/priv/static/emoji/1f9d9-1f3fe-200d-2642-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9d9-1f3fe.svg b/priv/static/emoji/1f9d9-1f3fe.svg deleted file mode 100644 index f83e59baa..000000000 --- a/priv/static/emoji/1f9d9-1f3fe.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9d9-1f3ff-200d-2640-fe0f.svg b/priv/static/emoji/1f9d9-1f3ff-200d-2640-fe0f.svg deleted file mode 100644 index 252791759..000000000 --- a/priv/static/emoji/1f9d9-1f3ff-200d-2640-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9d9-1f3ff-200d-2642-fe0f.svg b/priv/static/emoji/1f9d9-1f3ff-200d-2642-fe0f.svg deleted file mode 100644 index 91482a151..000000000 --- a/priv/static/emoji/1f9d9-1f3ff-200d-2642-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9d9-1f3ff.svg b/priv/static/emoji/1f9d9-1f3ff.svg deleted file mode 100644 index 91482a151..000000000 --- a/priv/static/emoji/1f9d9-1f3ff.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9d9-200d-2640-fe0f.svg b/priv/static/emoji/1f9d9-200d-2640-fe0f.svg deleted file mode 100644 index d5b31e5e6..000000000 --- a/priv/static/emoji/1f9d9-200d-2640-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9d9-200d-2642-fe0f.svg b/priv/static/emoji/1f9d9-200d-2642-fe0f.svg deleted file mode 100644 index c747b3446..000000000 --- a/priv/static/emoji/1f9d9-200d-2642-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9d9.svg b/priv/static/emoji/1f9d9.svg deleted file mode 100644 index c747b3446..000000000 --- a/priv/static/emoji/1f9d9.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9da-1f3fb-200d-2640-fe0f.svg b/priv/static/emoji/1f9da-1f3fb-200d-2640-fe0f.svg deleted file mode 100644 index e75c0b200..000000000 --- a/priv/static/emoji/1f9da-1f3fb-200d-2640-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9da-1f3fb-200d-2642-fe0f.svg b/priv/static/emoji/1f9da-1f3fb-200d-2642-fe0f.svg deleted file mode 100644 index c8f40156c..000000000 --- a/priv/static/emoji/1f9da-1f3fb-200d-2642-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9da-1f3fb.svg b/priv/static/emoji/1f9da-1f3fb.svg deleted file mode 100644 index e75c0b200..000000000 --- a/priv/static/emoji/1f9da-1f3fb.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9da-1f3fc-200d-2640-fe0f.svg b/priv/static/emoji/1f9da-1f3fc-200d-2640-fe0f.svg deleted file mode 100644 index 3572c60d1..000000000 --- a/priv/static/emoji/1f9da-1f3fc-200d-2640-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9da-1f3fc-200d-2642-fe0f.svg b/priv/static/emoji/1f9da-1f3fc-200d-2642-fe0f.svg deleted file mode 100644 index 89375bdec..000000000 --- a/priv/static/emoji/1f9da-1f3fc-200d-2642-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9da-1f3fc.svg b/priv/static/emoji/1f9da-1f3fc.svg deleted file mode 100644 index 3572c60d1..000000000 --- a/priv/static/emoji/1f9da-1f3fc.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9da-1f3fd-200d-2640-fe0f.svg b/priv/static/emoji/1f9da-1f3fd-200d-2640-fe0f.svg deleted file mode 100644 index 9af4964ad..000000000 --- a/priv/static/emoji/1f9da-1f3fd-200d-2640-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9da-1f3fd-200d-2642-fe0f.svg b/priv/static/emoji/1f9da-1f3fd-200d-2642-fe0f.svg deleted file mode 100644 index a614bb1a8..000000000 --- a/priv/static/emoji/1f9da-1f3fd-200d-2642-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9da-1f3fd.svg b/priv/static/emoji/1f9da-1f3fd.svg deleted file mode 100644 index 9af4964ad..000000000 --- a/priv/static/emoji/1f9da-1f3fd.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9da-1f3fe-200d-2640-fe0f.svg b/priv/static/emoji/1f9da-1f3fe-200d-2640-fe0f.svg deleted file mode 100644 index 00d57b1ec..000000000 --- a/priv/static/emoji/1f9da-1f3fe-200d-2640-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9da-1f3fe-200d-2642-fe0f.svg b/priv/static/emoji/1f9da-1f3fe-200d-2642-fe0f.svg deleted file mode 100644 index 7c80a1356..000000000 --- a/priv/static/emoji/1f9da-1f3fe-200d-2642-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9da-1f3fe.svg b/priv/static/emoji/1f9da-1f3fe.svg deleted file mode 100644 index 00d57b1ec..000000000 --- a/priv/static/emoji/1f9da-1f3fe.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9da-1f3ff-200d-2640-fe0f.svg b/priv/static/emoji/1f9da-1f3ff-200d-2640-fe0f.svg deleted file mode 100644 index ce1e45dc4..000000000 --- a/priv/static/emoji/1f9da-1f3ff-200d-2640-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9da-1f3ff-200d-2642-fe0f.svg b/priv/static/emoji/1f9da-1f3ff-200d-2642-fe0f.svg deleted file mode 100644 index 4095948e0..000000000 --- a/priv/static/emoji/1f9da-1f3ff-200d-2642-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9da-1f3ff.svg b/priv/static/emoji/1f9da-1f3ff.svg deleted file mode 100644 index ce1e45dc4..000000000 --- a/priv/static/emoji/1f9da-1f3ff.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9da-200d-2640-fe0f.svg b/priv/static/emoji/1f9da-200d-2640-fe0f.svg deleted file mode 100644 index 7a60a49c8..000000000 --- a/priv/static/emoji/1f9da-200d-2640-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9da-200d-2642-fe0f.svg b/priv/static/emoji/1f9da-200d-2642-fe0f.svg deleted file mode 100644 index d53853613..000000000 --- a/priv/static/emoji/1f9da-200d-2642-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9da.svg b/priv/static/emoji/1f9da.svg deleted file mode 100644 index 7a60a49c8..000000000 --- a/priv/static/emoji/1f9da.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9db-1f3fb-200d-2640-fe0f.svg b/priv/static/emoji/1f9db-1f3fb-200d-2640-fe0f.svg deleted file mode 100644 index 68c9c959a..000000000 --- a/priv/static/emoji/1f9db-1f3fb-200d-2640-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9db-1f3fb-200d-2642-fe0f.svg b/priv/static/emoji/1f9db-1f3fb-200d-2642-fe0f.svg deleted file mode 100644 index 6c790428d..000000000 --- a/priv/static/emoji/1f9db-1f3fb-200d-2642-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9db-1f3fb.svg b/priv/static/emoji/1f9db-1f3fb.svg deleted file mode 100644 index 6c790428d..000000000 --- a/priv/static/emoji/1f9db-1f3fb.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9db-1f3fc-200d-2640-fe0f.svg b/priv/static/emoji/1f9db-1f3fc-200d-2640-fe0f.svg deleted file mode 100644 index 93acfc139..000000000 --- a/priv/static/emoji/1f9db-1f3fc-200d-2640-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9db-1f3fc-200d-2642-fe0f.svg b/priv/static/emoji/1f9db-1f3fc-200d-2642-fe0f.svg deleted file mode 100644 index fe6e755e1..000000000 --- a/priv/static/emoji/1f9db-1f3fc-200d-2642-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9db-1f3fc.svg b/priv/static/emoji/1f9db-1f3fc.svg deleted file mode 100644 index fe6e755e1..000000000 --- a/priv/static/emoji/1f9db-1f3fc.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9db-1f3fd-200d-2640-fe0f.svg b/priv/static/emoji/1f9db-1f3fd-200d-2640-fe0f.svg deleted file mode 100644 index 5bf1eee41..000000000 --- a/priv/static/emoji/1f9db-1f3fd-200d-2640-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9db-1f3fd-200d-2642-fe0f.svg b/priv/static/emoji/1f9db-1f3fd-200d-2642-fe0f.svg deleted file mode 100644 index abcb25899..000000000 --- a/priv/static/emoji/1f9db-1f3fd-200d-2642-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9db-1f3fd.svg b/priv/static/emoji/1f9db-1f3fd.svg deleted file mode 100644 index abcb25899..000000000 --- a/priv/static/emoji/1f9db-1f3fd.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9db-1f3fe-200d-2640-fe0f.svg b/priv/static/emoji/1f9db-1f3fe-200d-2640-fe0f.svg deleted file mode 100644 index aa373a32b..000000000 --- a/priv/static/emoji/1f9db-1f3fe-200d-2640-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9db-1f3fe-200d-2642-fe0f.svg b/priv/static/emoji/1f9db-1f3fe-200d-2642-fe0f.svg deleted file mode 100644 index bd9e32b80..000000000 --- a/priv/static/emoji/1f9db-1f3fe-200d-2642-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9db-1f3fe.svg b/priv/static/emoji/1f9db-1f3fe.svg deleted file mode 100644 index bd9e32b80..000000000 --- a/priv/static/emoji/1f9db-1f3fe.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9db-1f3ff-200d-2640-fe0f.svg b/priv/static/emoji/1f9db-1f3ff-200d-2640-fe0f.svg deleted file mode 100644 index 443150ac0..000000000 --- a/priv/static/emoji/1f9db-1f3ff-200d-2640-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9db-1f3ff-200d-2642-fe0f.svg b/priv/static/emoji/1f9db-1f3ff-200d-2642-fe0f.svg deleted file mode 100644 index d611a42c6..000000000 --- a/priv/static/emoji/1f9db-1f3ff-200d-2642-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9db-1f3ff.svg b/priv/static/emoji/1f9db-1f3ff.svg deleted file mode 100644 index d611a42c6..000000000 --- a/priv/static/emoji/1f9db-1f3ff.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9db-200d-2640-fe0f.svg b/priv/static/emoji/1f9db-200d-2640-fe0f.svg deleted file mode 100644 index 53d6dde10..000000000 --- a/priv/static/emoji/1f9db-200d-2640-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9db-200d-2642-fe0f.svg b/priv/static/emoji/1f9db-200d-2642-fe0f.svg deleted file mode 100644 index 1f104d13d..000000000 --- a/priv/static/emoji/1f9db-200d-2642-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9db.svg b/priv/static/emoji/1f9db.svg deleted file mode 100644 index b2192234b..000000000 --- a/priv/static/emoji/1f9db.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9dc-1f3fb-200d-2640-fe0f.svg b/priv/static/emoji/1f9dc-1f3fb-200d-2640-fe0f.svg deleted file mode 100644 index e211b06a1..000000000 --- a/priv/static/emoji/1f9dc-1f3fb-200d-2640-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9dc-1f3fb-200d-2642-fe0f.svg b/priv/static/emoji/1f9dc-1f3fb-200d-2642-fe0f.svg deleted file mode 100644 index 4263e6a86..000000000 --- a/priv/static/emoji/1f9dc-1f3fb-200d-2642-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9dc-1f3fb.svg b/priv/static/emoji/1f9dc-1f3fb.svg deleted file mode 100644 index e211b06a1..000000000 --- a/priv/static/emoji/1f9dc-1f3fb.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9dc-1f3fc-200d-2640-fe0f.svg b/priv/static/emoji/1f9dc-1f3fc-200d-2640-fe0f.svg deleted file mode 100644 index de8fa7329..000000000 --- a/priv/static/emoji/1f9dc-1f3fc-200d-2640-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9dc-1f3fc-200d-2642-fe0f.svg b/priv/static/emoji/1f9dc-1f3fc-200d-2642-fe0f.svg deleted file mode 100644 index 18637d961..000000000 --- a/priv/static/emoji/1f9dc-1f3fc-200d-2642-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9dc-1f3fc.svg b/priv/static/emoji/1f9dc-1f3fc.svg deleted file mode 100644 index de8fa7329..000000000 --- a/priv/static/emoji/1f9dc-1f3fc.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9dc-1f3fd-200d-2640-fe0f.svg b/priv/static/emoji/1f9dc-1f3fd-200d-2640-fe0f.svg deleted file mode 100644 index 0ad162b31..000000000 --- a/priv/static/emoji/1f9dc-1f3fd-200d-2640-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9dc-1f3fd-200d-2642-fe0f.svg b/priv/static/emoji/1f9dc-1f3fd-200d-2642-fe0f.svg deleted file mode 100644 index 727971080..000000000 --- a/priv/static/emoji/1f9dc-1f3fd-200d-2642-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9dc-1f3fd.svg b/priv/static/emoji/1f9dc-1f3fd.svg deleted file mode 100644 index 0ad162b31..000000000 --- a/priv/static/emoji/1f9dc-1f3fd.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9dc-1f3fe-200d-2640-fe0f.svg b/priv/static/emoji/1f9dc-1f3fe-200d-2640-fe0f.svg deleted file mode 100644 index 5f71af9d0..000000000 --- a/priv/static/emoji/1f9dc-1f3fe-200d-2640-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9dc-1f3fe-200d-2642-fe0f.svg b/priv/static/emoji/1f9dc-1f3fe-200d-2642-fe0f.svg deleted file mode 100644 index faeb2fa9e..000000000 --- a/priv/static/emoji/1f9dc-1f3fe-200d-2642-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9dc-1f3fe.svg b/priv/static/emoji/1f9dc-1f3fe.svg deleted file mode 100644 index 5f71af9d0..000000000 --- a/priv/static/emoji/1f9dc-1f3fe.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9dc-1f3ff-200d-2640-fe0f.svg b/priv/static/emoji/1f9dc-1f3ff-200d-2640-fe0f.svg deleted file mode 100644 index f2932edee..000000000 --- a/priv/static/emoji/1f9dc-1f3ff-200d-2640-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9dc-1f3ff-200d-2642-fe0f.svg b/priv/static/emoji/1f9dc-1f3ff-200d-2642-fe0f.svg deleted file mode 100644 index 2d28d8d39..000000000 --- a/priv/static/emoji/1f9dc-1f3ff-200d-2642-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9dc-1f3ff.svg b/priv/static/emoji/1f9dc-1f3ff.svg deleted file mode 100644 index f2932edee..000000000 --- a/priv/static/emoji/1f9dc-1f3ff.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9dc-200d-2640-fe0f.svg b/priv/static/emoji/1f9dc-200d-2640-fe0f.svg deleted file mode 100644 index 750f24335..000000000 --- a/priv/static/emoji/1f9dc-200d-2640-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9dc-200d-2642-fe0f.svg b/priv/static/emoji/1f9dc-200d-2642-fe0f.svg deleted file mode 100644 index 07111b5dd..000000000 --- a/priv/static/emoji/1f9dc-200d-2642-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9dc.svg b/priv/static/emoji/1f9dc.svg deleted file mode 100644 index 750f24335..000000000 --- a/priv/static/emoji/1f9dc.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9dd-1f3fb-200d-2640-fe0f.svg b/priv/static/emoji/1f9dd-1f3fb-200d-2640-fe0f.svg deleted file mode 100644 index d561e2d69..000000000 --- a/priv/static/emoji/1f9dd-1f3fb-200d-2640-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9dd-1f3fb-200d-2642-fe0f.svg b/priv/static/emoji/1f9dd-1f3fb-200d-2642-fe0f.svg deleted file mode 100644 index 95c77d46d..000000000 --- a/priv/static/emoji/1f9dd-1f3fb-200d-2642-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9dd-1f3fb.svg b/priv/static/emoji/1f9dd-1f3fb.svg deleted file mode 100644 index 95c77d46d..000000000 --- a/priv/static/emoji/1f9dd-1f3fb.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9dd-1f3fc-200d-2640-fe0f.svg b/priv/static/emoji/1f9dd-1f3fc-200d-2640-fe0f.svg deleted file mode 100644 index e1d2b351e..000000000 --- a/priv/static/emoji/1f9dd-1f3fc-200d-2640-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9dd-1f3fc-200d-2642-fe0f.svg b/priv/static/emoji/1f9dd-1f3fc-200d-2642-fe0f.svg deleted file mode 100644 index d65388c84..000000000 --- a/priv/static/emoji/1f9dd-1f3fc-200d-2642-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9dd-1f3fc.svg b/priv/static/emoji/1f9dd-1f3fc.svg deleted file mode 100644 index d65388c84..000000000 --- a/priv/static/emoji/1f9dd-1f3fc.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9dd-1f3fd-200d-2640-fe0f.svg b/priv/static/emoji/1f9dd-1f3fd-200d-2640-fe0f.svg deleted file mode 100644 index a17e88880..000000000 --- a/priv/static/emoji/1f9dd-1f3fd-200d-2640-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9dd-1f3fd-200d-2642-fe0f.svg b/priv/static/emoji/1f9dd-1f3fd-200d-2642-fe0f.svg deleted file mode 100644 index 9633b7dfa..000000000 --- a/priv/static/emoji/1f9dd-1f3fd-200d-2642-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9dd-1f3fd.svg b/priv/static/emoji/1f9dd-1f3fd.svg deleted file mode 100644 index 9633b7dfa..000000000 --- a/priv/static/emoji/1f9dd-1f3fd.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9dd-1f3fe-200d-2640-fe0f.svg b/priv/static/emoji/1f9dd-1f3fe-200d-2640-fe0f.svg deleted file mode 100644 index 842e9a781..000000000 --- a/priv/static/emoji/1f9dd-1f3fe-200d-2640-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9dd-1f3fe-200d-2642-fe0f.svg b/priv/static/emoji/1f9dd-1f3fe-200d-2642-fe0f.svg deleted file mode 100644 index 61d69acfe..000000000 --- a/priv/static/emoji/1f9dd-1f3fe-200d-2642-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9dd-1f3fe.svg b/priv/static/emoji/1f9dd-1f3fe.svg deleted file mode 100644 index 61d69acfe..000000000 --- a/priv/static/emoji/1f9dd-1f3fe.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9dd-1f3ff-200d-2640-fe0f.svg b/priv/static/emoji/1f9dd-1f3ff-200d-2640-fe0f.svg deleted file mode 100644 index 0f6c8c5f0..000000000 --- a/priv/static/emoji/1f9dd-1f3ff-200d-2640-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9dd-1f3ff-200d-2642-fe0f.svg b/priv/static/emoji/1f9dd-1f3ff-200d-2642-fe0f.svg deleted file mode 100644 index 49faa0928..000000000 --- a/priv/static/emoji/1f9dd-1f3ff-200d-2642-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9dd-1f3ff.svg b/priv/static/emoji/1f9dd-1f3ff.svg deleted file mode 100644 index 49faa0928..000000000 --- a/priv/static/emoji/1f9dd-1f3ff.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9dd-200d-2640-fe0f.svg b/priv/static/emoji/1f9dd-200d-2640-fe0f.svg deleted file mode 100644 index f452ca756..000000000 --- a/priv/static/emoji/1f9dd-200d-2640-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9dd-200d-2642-fe0f.svg b/priv/static/emoji/1f9dd-200d-2642-fe0f.svg deleted file mode 100644 index f9c1e97a7..000000000 --- a/priv/static/emoji/1f9dd-200d-2642-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9dd.svg b/priv/static/emoji/1f9dd.svg deleted file mode 100644 index f9c1e97a7..000000000 --- a/priv/static/emoji/1f9dd.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9de-200d-2640-fe0f.svg b/priv/static/emoji/1f9de-200d-2640-fe0f.svg deleted file mode 100644 index 9893e0abc..000000000 --- a/priv/static/emoji/1f9de-200d-2640-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9de-200d-2642-fe0f.svg b/priv/static/emoji/1f9de-200d-2642-fe0f.svg deleted file mode 100644 index af17a48e7..000000000 --- a/priv/static/emoji/1f9de-200d-2642-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9de.svg b/priv/static/emoji/1f9de.svg deleted file mode 100644 index af17a48e7..000000000 --- a/priv/static/emoji/1f9de.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9df-200d-2640-fe0f.svg b/priv/static/emoji/1f9df-200d-2640-fe0f.svg deleted file mode 100644 index cac9ccfc5..000000000 --- a/priv/static/emoji/1f9df-200d-2640-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9df-200d-2642-fe0f.svg b/priv/static/emoji/1f9df-200d-2642-fe0f.svg deleted file mode 100644 index 21674c3b2..000000000 --- a/priv/static/emoji/1f9df-200d-2642-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9df.svg b/priv/static/emoji/1f9df.svg deleted file mode 100644 index 21674c3b2..000000000 --- a/priv/static/emoji/1f9df.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9e0.svg b/priv/static/emoji/1f9e0.svg deleted file mode 100644 index 653427da9..000000000 --- a/priv/static/emoji/1f9e0.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9e1.svg b/priv/static/emoji/1f9e1.svg deleted file mode 100644 index 26ae9e7da..000000000 --- a/priv/static/emoji/1f9e1.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9e2.svg b/priv/static/emoji/1f9e2.svg deleted file mode 100644 index c2dd6c6f2..000000000 --- a/priv/static/emoji/1f9e2.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9e3.svg b/priv/static/emoji/1f9e3.svg deleted file mode 100644 index 2c959f447..000000000 --- a/priv/static/emoji/1f9e3.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9e4.svg b/priv/static/emoji/1f9e4.svg deleted file mode 100644 index 1b028b2aa..000000000 --- a/priv/static/emoji/1f9e4.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9e5.svg b/priv/static/emoji/1f9e5.svg deleted file mode 100644 index 392af5631..000000000 --- a/priv/static/emoji/1f9e5.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9e6.svg b/priv/static/emoji/1f9e6.svg deleted file mode 100644 index 44fc31080..000000000 --- a/priv/static/emoji/1f9e6.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9e7.svg b/priv/static/emoji/1f9e7.svg deleted file mode 100644 index 203e78de1..000000000 --- a/priv/static/emoji/1f9e7.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9e8.svg b/priv/static/emoji/1f9e8.svg deleted file mode 100644 index ff038203e..000000000 --- a/priv/static/emoji/1f9e8.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9e9.svg b/priv/static/emoji/1f9e9.svg deleted file mode 100644 index 1505f6846..000000000 --- a/priv/static/emoji/1f9e9.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9ea.svg b/priv/static/emoji/1f9ea.svg deleted file mode 100644 index 8116cfa1c..000000000 --- a/priv/static/emoji/1f9ea.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9eb.svg b/priv/static/emoji/1f9eb.svg deleted file mode 100644 index 8fdeaf9e0..000000000 --- a/priv/static/emoji/1f9eb.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9ec.svg b/priv/static/emoji/1f9ec.svg deleted file mode 100644 index 689cc3e44..000000000 --- a/priv/static/emoji/1f9ec.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9ed.svg b/priv/static/emoji/1f9ed.svg deleted file mode 100644 index fd3d583e5..000000000 --- a/priv/static/emoji/1f9ed.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9ee.svg b/priv/static/emoji/1f9ee.svg deleted file mode 100644 index c619bb0eb..000000000 --- a/priv/static/emoji/1f9ee.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9ef.svg b/priv/static/emoji/1f9ef.svg deleted file mode 100644 index e8b17ac66..000000000 --- a/priv/static/emoji/1f9ef.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9f0.svg b/priv/static/emoji/1f9f0.svg deleted file mode 100644 index ae065314d..000000000 --- a/priv/static/emoji/1f9f0.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9f1.svg b/priv/static/emoji/1f9f1.svg deleted file mode 100644 index c7f34821e..000000000 --- a/priv/static/emoji/1f9f1.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9f2.svg b/priv/static/emoji/1f9f2.svg deleted file mode 100644 index e81b4644e..000000000 --- a/priv/static/emoji/1f9f2.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9f3.svg b/priv/static/emoji/1f9f3.svg deleted file mode 100644 index 7de25182f..000000000 --- a/priv/static/emoji/1f9f3.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9f4.svg b/priv/static/emoji/1f9f4.svg deleted file mode 100644 index 2cb39a76e..000000000 --- a/priv/static/emoji/1f9f4.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9f5.svg b/priv/static/emoji/1f9f5.svg deleted file mode 100644 index 3210fbeb5..000000000 --- a/priv/static/emoji/1f9f5.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9f6.svg b/priv/static/emoji/1f9f6.svg deleted file mode 100644 index f402fd2a6..000000000 --- a/priv/static/emoji/1f9f6.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9f7.svg b/priv/static/emoji/1f9f7.svg deleted file mode 100644 index a37a0488e..000000000 --- a/priv/static/emoji/1f9f7.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9f8.svg b/priv/static/emoji/1f9f8.svg deleted file mode 100644 index 87af73b4f..000000000 --- a/priv/static/emoji/1f9f8.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9f9.svg b/priv/static/emoji/1f9f9.svg deleted file mode 100644 index 2bcbda87e..000000000 --- a/priv/static/emoji/1f9f9.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9fa.svg b/priv/static/emoji/1f9fa.svg deleted file mode 100644 index 947d95450..000000000 --- a/priv/static/emoji/1f9fa.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9fb.svg b/priv/static/emoji/1f9fb.svg deleted file mode 100644 index e8f7252f4..000000000 --- a/priv/static/emoji/1f9fb.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9fc.svg b/priv/static/emoji/1f9fc.svg deleted file mode 100644 index e5b1e02e9..000000000 --- a/priv/static/emoji/1f9fc.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9fd.svg b/priv/static/emoji/1f9fd.svg deleted file mode 100644 index 1c9575163..000000000 --- a/priv/static/emoji/1f9fd.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9fe.svg b/priv/static/emoji/1f9fe.svg deleted file mode 100644 index c6d288cd1..000000000 --- a/priv/static/emoji/1f9fe.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1f9ff.svg b/priv/static/emoji/1f9ff.svg deleted file mode 100644 index a45a528f4..000000000 --- a/priv/static/emoji/1f9ff.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1fa70.svg b/priv/static/emoji/1fa70.svg deleted file mode 100644 index a8df4c67d..000000000 --- a/priv/static/emoji/1fa70.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1fa71.svg b/priv/static/emoji/1fa71.svg deleted file mode 100644 index df3ecebac..000000000 --- a/priv/static/emoji/1fa71.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1fa72.svg b/priv/static/emoji/1fa72.svg deleted file mode 100644 index 7486e6afe..000000000 --- a/priv/static/emoji/1fa72.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1fa73.svg b/priv/static/emoji/1fa73.svg deleted file mode 100644 index 03e70ca89..000000000 --- a/priv/static/emoji/1fa73.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1fa78.svg b/priv/static/emoji/1fa78.svg deleted file mode 100644 index 2dc83a56d..000000000 --- a/priv/static/emoji/1fa78.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1fa79.svg b/priv/static/emoji/1fa79.svg deleted file mode 100644 index 41d5722af..000000000 --- a/priv/static/emoji/1fa79.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1fa7a.svg b/priv/static/emoji/1fa7a.svg deleted file mode 100644 index 848c72e6e..000000000 --- a/priv/static/emoji/1fa7a.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1fa80.svg b/priv/static/emoji/1fa80.svg deleted file mode 100644 index fc9af9be9..000000000 --- a/priv/static/emoji/1fa80.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1fa81.svg b/priv/static/emoji/1fa81.svg deleted file mode 100644 index fd8605e46..000000000 --- a/priv/static/emoji/1fa81.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1fa82.svg b/priv/static/emoji/1fa82.svg deleted file mode 100644 index acb16e264..000000000 --- a/priv/static/emoji/1fa82.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1fa90.svg b/priv/static/emoji/1fa90.svg deleted file mode 100644 index 46a0c53ce..000000000 --- a/priv/static/emoji/1fa90.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1fa91.svg b/priv/static/emoji/1fa91.svg deleted file mode 100644 index 8db580193..000000000 --- a/priv/static/emoji/1fa91.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1fa92.svg b/priv/static/emoji/1fa92.svg deleted file mode 100644 index 3b261c90f..000000000 --- a/priv/static/emoji/1fa92.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1fa93.svg b/priv/static/emoji/1fa93.svg deleted file mode 100644 index f886dfaee..000000000 --- a/priv/static/emoji/1fa93.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1fa94.svg b/priv/static/emoji/1fa94.svg deleted file mode 100644 index 34c5f381d..000000000 --- a/priv/static/emoji/1fa94.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/1fa95.svg b/priv/static/emoji/1fa95.svg deleted file mode 100644 index da6e25d06..000000000 --- a/priv/static/emoji/1fa95.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/203c.svg b/priv/static/emoji/203c.svg deleted file mode 100644 index d3579ee31..000000000 --- a/priv/static/emoji/203c.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/2049.svg b/priv/static/emoji/2049.svg deleted file mode 100644 index 8cf998537..000000000 --- a/priv/static/emoji/2049.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/2122.svg b/priv/static/emoji/2122.svg deleted file mode 100644 index 1706c28b1..000000000 --- a/priv/static/emoji/2122.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/2139.svg b/priv/static/emoji/2139.svg deleted file mode 100644 index bc3415531..000000000 --- a/priv/static/emoji/2139.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/2194.svg b/priv/static/emoji/2194.svg deleted file mode 100644 index 9884b428e..000000000 --- a/priv/static/emoji/2194.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/2195.svg b/priv/static/emoji/2195.svg deleted file mode 100644 index e7a525447..000000000 --- a/priv/static/emoji/2195.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/2196.svg b/priv/static/emoji/2196.svg deleted file mode 100644 index a6889d1e7..000000000 --- a/priv/static/emoji/2196.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/2197.svg b/priv/static/emoji/2197.svg deleted file mode 100644 index 62e4c0ffa..000000000 --- a/priv/static/emoji/2197.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/2198.svg b/priv/static/emoji/2198.svg deleted file mode 100644 index 129dd6295..000000000 --- a/priv/static/emoji/2198.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/2199.svg b/priv/static/emoji/2199.svg deleted file mode 100644 index f327e40f3..000000000 --- a/priv/static/emoji/2199.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/21a9.svg b/priv/static/emoji/21a9.svg deleted file mode 100644 index 0a3900433..000000000 --- a/priv/static/emoji/21a9.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/21aa.svg b/priv/static/emoji/21aa.svg deleted file mode 100644 index a9c586eb8..000000000 --- a/priv/static/emoji/21aa.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/23-20e3.svg b/priv/static/emoji/23-20e3.svg deleted file mode 100644 index f2f10110c..000000000 --- a/priv/static/emoji/23-20e3.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/231a.svg b/priv/static/emoji/231a.svg deleted file mode 100644 index 53e6f6efc..000000000 --- a/priv/static/emoji/231a.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/231b.svg b/priv/static/emoji/231b.svg deleted file mode 100644 index ed66084f3..000000000 --- a/priv/static/emoji/231b.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/2328.svg b/priv/static/emoji/2328.svg deleted file mode 100644 index c834ed64f..000000000 --- a/priv/static/emoji/2328.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/23cf.svg b/priv/static/emoji/23cf.svg deleted file mode 100644 index d53497c16..000000000 --- a/priv/static/emoji/23cf.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/23e9.svg b/priv/static/emoji/23e9.svg deleted file mode 100644 index 1ef719cdf..000000000 --- a/priv/static/emoji/23e9.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/23ea.svg b/priv/static/emoji/23ea.svg deleted file mode 100644 index 0510ac7b7..000000000 --- a/priv/static/emoji/23ea.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/23eb.svg b/priv/static/emoji/23eb.svg deleted file mode 100644 index a33e0f848..000000000 --- a/priv/static/emoji/23eb.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/23ec.svg b/priv/static/emoji/23ec.svg deleted file mode 100644 index 5846faec9..000000000 --- a/priv/static/emoji/23ec.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/23ed.svg b/priv/static/emoji/23ed.svg deleted file mode 100644 index 6e66128de..000000000 --- a/priv/static/emoji/23ed.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/23ee.svg b/priv/static/emoji/23ee.svg deleted file mode 100644 index 889b16257..000000000 --- a/priv/static/emoji/23ee.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/23ef.svg b/priv/static/emoji/23ef.svg deleted file mode 100644 index 69c3d2d16..000000000 --- a/priv/static/emoji/23ef.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/23f0.svg b/priv/static/emoji/23f0.svg deleted file mode 100644 index ea9ad1431..000000000 --- a/priv/static/emoji/23f0.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/23f1.svg b/priv/static/emoji/23f1.svg deleted file mode 100644 index 599d2469c..000000000 --- a/priv/static/emoji/23f1.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/23f2.svg b/priv/static/emoji/23f2.svg deleted file mode 100644 index 7cb6e02a8..000000000 --- a/priv/static/emoji/23f2.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/23f3.svg b/priv/static/emoji/23f3.svg deleted file mode 100644 index 349150449..000000000 --- a/priv/static/emoji/23f3.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/23f8.svg b/priv/static/emoji/23f8.svg deleted file mode 100644 index 9cb0ac8d0..000000000 --- a/priv/static/emoji/23f8.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/23f9.svg b/priv/static/emoji/23f9.svg deleted file mode 100644 index c38882ab0..000000000 --- a/priv/static/emoji/23f9.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/23fa.svg b/priv/static/emoji/23fa.svg deleted file mode 100644 index e8dfcca38..000000000 --- a/priv/static/emoji/23fa.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/24c2.svg b/priv/static/emoji/24c2.svg deleted file mode 100644 index 29a942974..000000000 --- a/priv/static/emoji/24c2.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/25aa.svg b/priv/static/emoji/25aa.svg deleted file mode 100644 index cb4f63bc7..000000000 --- a/priv/static/emoji/25aa.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/25ab.svg b/priv/static/emoji/25ab.svg deleted file mode 100644 index 6d1f796a4..000000000 --- a/priv/static/emoji/25ab.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/25b6.svg b/priv/static/emoji/25b6.svg deleted file mode 100644 index b373a4f72..000000000 --- a/priv/static/emoji/25b6.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/25c0.svg b/priv/static/emoji/25c0.svg deleted file mode 100644 index af74e9c28..000000000 --- a/priv/static/emoji/25c0.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/25fb.svg b/priv/static/emoji/25fb.svg deleted file mode 100644 index eb40d1491..000000000 --- a/priv/static/emoji/25fb.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/25fc.svg b/priv/static/emoji/25fc.svg deleted file mode 100644 index b91ca8056..000000000 --- a/priv/static/emoji/25fc.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/25fd.svg b/priv/static/emoji/25fd.svg deleted file mode 100644 index 6f737772c..000000000 --- a/priv/static/emoji/25fd.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/25fe.svg b/priv/static/emoji/25fe.svg deleted file mode 100644 index 9c0abf0f9..000000000 --- a/priv/static/emoji/25fe.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/2600.svg b/priv/static/emoji/2600.svg deleted file mode 100644 index 8602baef7..000000000 --- a/priv/static/emoji/2600.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/2601.svg b/priv/static/emoji/2601.svg deleted file mode 100644 index 928baa609..000000000 --- a/priv/static/emoji/2601.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/2602.svg b/priv/static/emoji/2602.svg deleted file mode 100644 index 7c633302e..000000000 --- a/priv/static/emoji/2602.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/2603.svg b/priv/static/emoji/2603.svg deleted file mode 100644 index c02380e0f..000000000 --- a/priv/static/emoji/2603.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/2604.svg b/priv/static/emoji/2604.svg deleted file mode 100644 index 07df915c4..000000000 --- a/priv/static/emoji/2604.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/260e.svg b/priv/static/emoji/260e.svg deleted file mode 100644 index e65124faa..000000000 --- a/priv/static/emoji/260e.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/2611.svg b/priv/static/emoji/2611.svg deleted file mode 100644 index 904d0fc86..000000000 --- a/priv/static/emoji/2611.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/2614.svg b/priv/static/emoji/2614.svg deleted file mode 100644 index 6240aa664..000000000 --- a/priv/static/emoji/2614.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/2615.svg b/priv/static/emoji/2615.svg deleted file mode 100644 index bb68dd5e0..000000000 --- a/priv/static/emoji/2615.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/2618.svg b/priv/static/emoji/2618.svg deleted file mode 100644 index 72eaf4755..000000000 --- a/priv/static/emoji/2618.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/261d-1f3fb.svg b/priv/static/emoji/261d-1f3fb.svg deleted file mode 100644 index 854b494b3..000000000 --- a/priv/static/emoji/261d-1f3fb.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/261d-1f3fc.svg b/priv/static/emoji/261d-1f3fc.svg deleted file mode 100644 index 76dac4ee6..000000000 --- a/priv/static/emoji/261d-1f3fc.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/261d-1f3fd.svg b/priv/static/emoji/261d-1f3fd.svg deleted file mode 100644 index e03f60e18..000000000 --- a/priv/static/emoji/261d-1f3fd.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/261d-1f3fe.svg b/priv/static/emoji/261d-1f3fe.svg deleted file mode 100644 index a83945629..000000000 --- a/priv/static/emoji/261d-1f3fe.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/261d-1f3ff.svg b/priv/static/emoji/261d-1f3ff.svg deleted file mode 100644 index 858849554..000000000 --- a/priv/static/emoji/261d-1f3ff.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/261d.svg b/priv/static/emoji/261d.svg deleted file mode 100644 index 95d8ddd17..000000000 --- a/priv/static/emoji/261d.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/2620.svg b/priv/static/emoji/2620.svg deleted file mode 100644 index 66f9862c7..000000000 --- a/priv/static/emoji/2620.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/2622.svg b/priv/static/emoji/2622.svg deleted file mode 100644 index 2039db1b7..000000000 --- a/priv/static/emoji/2622.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/2623.svg b/priv/static/emoji/2623.svg deleted file mode 100644 index 6e7d8584e..000000000 --- a/priv/static/emoji/2623.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/2626.svg b/priv/static/emoji/2626.svg deleted file mode 100644 index 4d02f16e8..000000000 --- a/priv/static/emoji/2626.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/262a.svg b/priv/static/emoji/262a.svg deleted file mode 100644 index 678a1e8fe..000000000 --- a/priv/static/emoji/262a.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/262e.svg b/priv/static/emoji/262e.svg deleted file mode 100644 index a0be08a3a..000000000 --- a/priv/static/emoji/262e.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/262f.svg b/priv/static/emoji/262f.svg deleted file mode 100644 index e0aff80c5..000000000 --- a/priv/static/emoji/262f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/2638.svg b/priv/static/emoji/2638.svg deleted file mode 100644 index a00bf1d40..000000000 --- a/priv/static/emoji/2638.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/2639.svg b/priv/static/emoji/2639.svg deleted file mode 100644 index a2a490907..000000000 --- a/priv/static/emoji/2639.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/263a.svg b/priv/static/emoji/263a.svg deleted file mode 100644 index 50201340d..000000000 --- a/priv/static/emoji/263a.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/2640.svg b/priv/static/emoji/2640.svg deleted file mode 100644 index db5291c3e..000000000 --- a/priv/static/emoji/2640.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/2642.svg b/priv/static/emoji/2642.svg deleted file mode 100644 index 29868a850..000000000 --- a/priv/static/emoji/2642.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/2648.svg b/priv/static/emoji/2648.svg deleted file mode 100644 index 0f00d2dbc..000000000 --- a/priv/static/emoji/2648.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/2649.svg b/priv/static/emoji/2649.svg deleted file mode 100644 index 6e9918a3b..000000000 --- a/priv/static/emoji/2649.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/264a.svg b/priv/static/emoji/264a.svg deleted file mode 100644 index 9f0564231..000000000 --- a/priv/static/emoji/264a.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/264b.svg b/priv/static/emoji/264b.svg deleted file mode 100644 index c5c8b6627..000000000 --- a/priv/static/emoji/264b.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/264c.svg b/priv/static/emoji/264c.svg deleted file mode 100644 index e9af63db9..000000000 --- a/priv/static/emoji/264c.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/264d.svg b/priv/static/emoji/264d.svg deleted file mode 100644 index 98ad1a87e..000000000 --- a/priv/static/emoji/264d.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/264e.svg b/priv/static/emoji/264e.svg deleted file mode 100644 index 11583c198..000000000 --- a/priv/static/emoji/264e.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/264f.svg b/priv/static/emoji/264f.svg deleted file mode 100644 index ec1b93ae4..000000000 --- a/priv/static/emoji/264f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/2650.svg b/priv/static/emoji/2650.svg deleted file mode 100644 index df13efca8..000000000 --- a/priv/static/emoji/2650.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/2651.svg b/priv/static/emoji/2651.svg deleted file mode 100644 index f3ccf92ce..000000000 --- a/priv/static/emoji/2651.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/2652.svg b/priv/static/emoji/2652.svg deleted file mode 100644 index 41e46232d..000000000 --- a/priv/static/emoji/2652.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/2653.svg b/priv/static/emoji/2653.svg deleted file mode 100644 index 854032a87..000000000 --- a/priv/static/emoji/2653.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/265f.svg b/priv/static/emoji/265f.svg deleted file mode 100644 index 10c880c2f..000000000 --- a/priv/static/emoji/265f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/2660.svg b/priv/static/emoji/2660.svg deleted file mode 100644 index 5f7b10914..000000000 --- a/priv/static/emoji/2660.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/2663.svg b/priv/static/emoji/2663.svg deleted file mode 100644 index a9dce6f24..000000000 --- a/priv/static/emoji/2663.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/2665.svg b/priv/static/emoji/2665.svg deleted file mode 100644 index 67f49c3d3..000000000 --- a/priv/static/emoji/2665.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/2666.svg b/priv/static/emoji/2666.svg deleted file mode 100644 index 02f93aadd..000000000 --- a/priv/static/emoji/2666.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/2668.svg b/priv/static/emoji/2668.svg deleted file mode 100644 index 4a87beaa0..000000000 --- a/priv/static/emoji/2668.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/267b.svg b/priv/static/emoji/267b.svg deleted file mode 100644 index 06352b9fa..000000000 --- a/priv/static/emoji/267b.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/267e.svg b/priv/static/emoji/267e.svg deleted file mode 100644 index 03df2a6a6..000000000 --- a/priv/static/emoji/267e.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/267f.svg b/priv/static/emoji/267f.svg deleted file mode 100644 index b1d1c4241..000000000 --- a/priv/static/emoji/267f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/2692.svg b/priv/static/emoji/2692.svg deleted file mode 100644 index 3a8ff2650..000000000 --- a/priv/static/emoji/2692.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/2693.svg b/priv/static/emoji/2693.svg deleted file mode 100644 index 09f3fe416..000000000 --- a/priv/static/emoji/2693.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/2694.svg b/priv/static/emoji/2694.svg deleted file mode 100644 index 3cf2fa46c..000000000 --- a/priv/static/emoji/2694.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/2695.svg b/priv/static/emoji/2695.svg deleted file mode 100644 index add4c0e78..000000000 --- a/priv/static/emoji/2695.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/2696.svg b/priv/static/emoji/2696.svg deleted file mode 100644 index 61af8441c..000000000 --- a/priv/static/emoji/2696.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/2697.svg b/priv/static/emoji/2697.svg deleted file mode 100644 index 3fe8c15b7..000000000 --- a/priv/static/emoji/2697.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/2699.svg b/priv/static/emoji/2699.svg deleted file mode 100644 index 635ca02f2..000000000 --- a/priv/static/emoji/2699.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/269b.svg b/priv/static/emoji/269b.svg deleted file mode 100644 index 385c18ced..000000000 --- a/priv/static/emoji/269b.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/269c.svg b/priv/static/emoji/269c.svg deleted file mode 100644 index 27be9c335..000000000 --- a/priv/static/emoji/269c.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/26a0.svg b/priv/static/emoji/26a0.svg deleted file mode 100644 index b9ee29735..000000000 --- a/priv/static/emoji/26a0.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/26a1.svg b/priv/static/emoji/26a1.svg deleted file mode 100644 index 9d9ae7d92..000000000 --- a/priv/static/emoji/26a1.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/26a7.svg b/priv/static/emoji/26a7.svg deleted file mode 100644 index 0d0b230b5..000000000 --- a/priv/static/emoji/26a7.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/26aa.svg b/priv/static/emoji/26aa.svg deleted file mode 100644 index 60b9bbc08..000000000 --- a/priv/static/emoji/26aa.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/26ab.svg b/priv/static/emoji/26ab.svg deleted file mode 100644 index 169b72cc9..000000000 --- a/priv/static/emoji/26ab.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/26b0.svg b/priv/static/emoji/26b0.svg deleted file mode 100644 index c1ea4d6e5..000000000 --- a/priv/static/emoji/26b0.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/26b1.svg b/priv/static/emoji/26b1.svg deleted file mode 100644 index 830c81aa0..000000000 --- a/priv/static/emoji/26b1.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/26bd.svg b/priv/static/emoji/26bd.svg deleted file mode 100644 index f24749cb5..000000000 --- a/priv/static/emoji/26bd.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/26be.svg b/priv/static/emoji/26be.svg deleted file mode 100644 index 210b8ef8c..000000000 --- a/priv/static/emoji/26be.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/26c4.svg b/priv/static/emoji/26c4.svg deleted file mode 100644 index 74caddf44..000000000 --- a/priv/static/emoji/26c4.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/26c5.svg b/priv/static/emoji/26c5.svg deleted file mode 100644 index 89d57dc55..000000000 --- a/priv/static/emoji/26c5.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/26c8.svg b/priv/static/emoji/26c8.svg deleted file mode 100644 index 878ba81b9..000000000 --- a/priv/static/emoji/26c8.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/26ce.svg b/priv/static/emoji/26ce.svg deleted file mode 100644 index 4abec0263..000000000 --- a/priv/static/emoji/26ce.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/26cf.svg b/priv/static/emoji/26cf.svg deleted file mode 100644 index ac8ac017f..000000000 --- a/priv/static/emoji/26cf.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/26d1.svg b/priv/static/emoji/26d1.svg deleted file mode 100644 index e8457ae2b..000000000 --- a/priv/static/emoji/26d1.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/26d3.svg b/priv/static/emoji/26d3.svg deleted file mode 100644 index a7b213e80..000000000 --- a/priv/static/emoji/26d3.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/26d4.svg b/priv/static/emoji/26d4.svg deleted file mode 100644 index fcab30110..000000000 --- a/priv/static/emoji/26d4.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/26e9.svg b/priv/static/emoji/26e9.svg deleted file mode 100644 index 395048ebc..000000000 --- a/priv/static/emoji/26e9.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/26ea.svg b/priv/static/emoji/26ea.svg deleted file mode 100644 index 79b8ce502..000000000 --- a/priv/static/emoji/26ea.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/26f0.svg b/priv/static/emoji/26f0.svg deleted file mode 100644 index ba331d139..000000000 --- a/priv/static/emoji/26f0.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/26f1.svg b/priv/static/emoji/26f1.svg deleted file mode 100644 index 589f38501..000000000 --- a/priv/static/emoji/26f1.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/26f2.svg b/priv/static/emoji/26f2.svg deleted file mode 100644 index 659c22850..000000000 --- a/priv/static/emoji/26f2.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/26f3.svg b/priv/static/emoji/26f3.svg deleted file mode 100644 index c4f8916c2..000000000 --- a/priv/static/emoji/26f3.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/26f4.svg b/priv/static/emoji/26f4.svg deleted file mode 100644 index 70b35429e..000000000 --- a/priv/static/emoji/26f4.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/26f5.svg b/priv/static/emoji/26f5.svg deleted file mode 100644 index c76c0dedf..000000000 --- a/priv/static/emoji/26f5.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/26f7-1f3fb.svg b/priv/static/emoji/26f7-1f3fb.svg deleted file mode 100644 index e62b3406b..000000000 --- a/priv/static/emoji/26f7-1f3fb.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/26f7-1f3fc.svg b/priv/static/emoji/26f7-1f3fc.svg deleted file mode 100644 index 38dac4b19..000000000 --- a/priv/static/emoji/26f7-1f3fc.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/26f7-1f3fd.svg b/priv/static/emoji/26f7-1f3fd.svg deleted file mode 100644 index 88013381f..000000000 --- a/priv/static/emoji/26f7-1f3fd.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/26f7-1f3fe.svg b/priv/static/emoji/26f7-1f3fe.svg deleted file mode 100644 index cb4c3011a..000000000 --- a/priv/static/emoji/26f7-1f3fe.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/26f7-1f3ff.svg b/priv/static/emoji/26f7-1f3ff.svg deleted file mode 100644 index 4184e4a47..000000000 --- a/priv/static/emoji/26f7-1f3ff.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/26f7.svg b/priv/static/emoji/26f7.svg deleted file mode 100644 index ade6f21bd..000000000 --- a/priv/static/emoji/26f7.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/26f8.svg b/priv/static/emoji/26f8.svg deleted file mode 100644 index 022e86e74..000000000 --- a/priv/static/emoji/26f8.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/26f9-1f3fb-200d-2640-fe0f.svg b/priv/static/emoji/26f9-1f3fb-200d-2640-fe0f.svg deleted file mode 100644 index 8a00ebc80..000000000 --- a/priv/static/emoji/26f9-1f3fb-200d-2640-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/26f9-1f3fb-200d-2642-fe0f.svg b/priv/static/emoji/26f9-1f3fb-200d-2642-fe0f.svg deleted file mode 100644 index 78a8b5d49..000000000 --- a/priv/static/emoji/26f9-1f3fb-200d-2642-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/26f9-1f3fb.svg b/priv/static/emoji/26f9-1f3fb.svg deleted file mode 100644 index 78a8b5d49..000000000 --- a/priv/static/emoji/26f9-1f3fb.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/26f9-1f3fc-200d-2640-fe0f.svg b/priv/static/emoji/26f9-1f3fc-200d-2640-fe0f.svg deleted file mode 100644 index 8bcada01a..000000000 --- a/priv/static/emoji/26f9-1f3fc-200d-2640-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/26f9-1f3fc-200d-2642-fe0f.svg b/priv/static/emoji/26f9-1f3fc-200d-2642-fe0f.svg deleted file mode 100644 index fb2b1e1b5..000000000 --- a/priv/static/emoji/26f9-1f3fc-200d-2642-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/26f9-1f3fc.svg b/priv/static/emoji/26f9-1f3fc.svg deleted file mode 100644 index fb2b1e1b5..000000000 --- a/priv/static/emoji/26f9-1f3fc.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/26f9-1f3fd-200d-2640-fe0f.svg b/priv/static/emoji/26f9-1f3fd-200d-2640-fe0f.svg deleted file mode 100644 index edb6001b4..000000000 --- a/priv/static/emoji/26f9-1f3fd-200d-2640-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/26f9-1f3fd-200d-2642-fe0f.svg b/priv/static/emoji/26f9-1f3fd-200d-2642-fe0f.svg deleted file mode 100644 index 9282cee90..000000000 --- a/priv/static/emoji/26f9-1f3fd-200d-2642-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/26f9-1f3fd.svg b/priv/static/emoji/26f9-1f3fd.svg deleted file mode 100644 index 9282cee90..000000000 --- a/priv/static/emoji/26f9-1f3fd.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/26f9-1f3fe-200d-2640-fe0f.svg b/priv/static/emoji/26f9-1f3fe-200d-2640-fe0f.svg deleted file mode 100644 index 5eee28138..000000000 --- a/priv/static/emoji/26f9-1f3fe-200d-2640-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/26f9-1f3fe-200d-2642-fe0f.svg b/priv/static/emoji/26f9-1f3fe-200d-2642-fe0f.svg deleted file mode 100644 index d618e5a45..000000000 --- a/priv/static/emoji/26f9-1f3fe-200d-2642-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/26f9-1f3fe.svg b/priv/static/emoji/26f9-1f3fe.svg deleted file mode 100644 index d618e5a45..000000000 --- a/priv/static/emoji/26f9-1f3fe.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/26f9-1f3ff-200d-2640-fe0f.svg b/priv/static/emoji/26f9-1f3ff-200d-2640-fe0f.svg deleted file mode 100644 index 52dcb9bec..000000000 --- a/priv/static/emoji/26f9-1f3ff-200d-2640-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/26f9-1f3ff-200d-2642-fe0f.svg b/priv/static/emoji/26f9-1f3ff-200d-2642-fe0f.svg deleted file mode 100644 index c174ef8bc..000000000 --- a/priv/static/emoji/26f9-1f3ff-200d-2642-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/26f9-1f3ff.svg b/priv/static/emoji/26f9-1f3ff.svg deleted file mode 100644 index c174ef8bc..000000000 --- a/priv/static/emoji/26f9-1f3ff.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/26f9-fe0f-200d-2640-fe0f.svg b/priv/static/emoji/26f9-fe0f-200d-2640-fe0f.svg deleted file mode 100644 index f25f03dbe..000000000 --- a/priv/static/emoji/26f9-fe0f-200d-2640-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/26f9-fe0f-200d-2642-fe0f.svg b/priv/static/emoji/26f9-fe0f-200d-2642-fe0f.svg deleted file mode 100644 index ee014e406..000000000 --- a/priv/static/emoji/26f9-fe0f-200d-2642-fe0f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/26f9.svg b/priv/static/emoji/26f9.svg deleted file mode 100644 index ee014e406..000000000 --- a/priv/static/emoji/26f9.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/26fa.svg b/priv/static/emoji/26fa.svg deleted file mode 100644 index 72c5cbdc8..000000000 --- a/priv/static/emoji/26fa.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/26fd.svg b/priv/static/emoji/26fd.svg deleted file mode 100644 index 0081947d6..000000000 --- a/priv/static/emoji/26fd.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/2702.svg b/priv/static/emoji/2702.svg deleted file mode 100644 index e5d3ac1fa..000000000 --- a/priv/static/emoji/2702.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/2705.svg b/priv/static/emoji/2705.svg deleted file mode 100644 index 9817a091d..000000000 --- a/priv/static/emoji/2705.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/2708.svg b/priv/static/emoji/2708.svg deleted file mode 100644 index ebce3afbc..000000000 --- a/priv/static/emoji/2708.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/2709.svg b/priv/static/emoji/2709.svg deleted file mode 100644 index d880c4209..000000000 --- a/priv/static/emoji/2709.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/270a-1f3fb.svg b/priv/static/emoji/270a-1f3fb.svg deleted file mode 100644 index 1929efb8b..000000000 --- a/priv/static/emoji/270a-1f3fb.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/270a-1f3fc.svg b/priv/static/emoji/270a-1f3fc.svg deleted file mode 100644 index 09dc7d3b5..000000000 --- a/priv/static/emoji/270a-1f3fc.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/270a-1f3fd.svg b/priv/static/emoji/270a-1f3fd.svg deleted file mode 100644 index 329832daf..000000000 --- a/priv/static/emoji/270a-1f3fd.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/270a-1f3fe.svg b/priv/static/emoji/270a-1f3fe.svg deleted file mode 100644 index b4bcfc5c0..000000000 --- a/priv/static/emoji/270a-1f3fe.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/270a-1f3ff.svg b/priv/static/emoji/270a-1f3ff.svg deleted file mode 100644 index e7dd06eb6..000000000 --- a/priv/static/emoji/270a-1f3ff.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/270a.svg b/priv/static/emoji/270a.svg deleted file mode 100644 index 99910432f..000000000 --- a/priv/static/emoji/270a.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/270b-1f3fb.svg b/priv/static/emoji/270b-1f3fb.svg deleted file mode 100644 index 5b64565d2..000000000 --- a/priv/static/emoji/270b-1f3fb.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/270b-1f3fc.svg b/priv/static/emoji/270b-1f3fc.svg deleted file mode 100644 index 3f69cc709..000000000 --- a/priv/static/emoji/270b-1f3fc.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/270b-1f3fd.svg b/priv/static/emoji/270b-1f3fd.svg deleted file mode 100644 index 02f74174c..000000000 --- a/priv/static/emoji/270b-1f3fd.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/270b-1f3fe.svg b/priv/static/emoji/270b-1f3fe.svg deleted file mode 100644 index ed89dbac5..000000000 --- a/priv/static/emoji/270b-1f3fe.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/270b-1f3ff.svg b/priv/static/emoji/270b-1f3ff.svg deleted file mode 100644 index 74072202c..000000000 --- a/priv/static/emoji/270b-1f3ff.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/270b.svg b/priv/static/emoji/270b.svg deleted file mode 100644 index 31576f16e..000000000 --- a/priv/static/emoji/270b.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/270c-1f3fb.svg b/priv/static/emoji/270c-1f3fb.svg deleted file mode 100644 index a95327abb..000000000 --- a/priv/static/emoji/270c-1f3fb.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/270c-1f3fc.svg b/priv/static/emoji/270c-1f3fc.svg deleted file mode 100644 index d748f2094..000000000 --- a/priv/static/emoji/270c-1f3fc.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/270c-1f3fd.svg b/priv/static/emoji/270c-1f3fd.svg deleted file mode 100644 index f93272ac3..000000000 --- a/priv/static/emoji/270c-1f3fd.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/270c-1f3fe.svg b/priv/static/emoji/270c-1f3fe.svg deleted file mode 100644 index aca5302c7..000000000 --- a/priv/static/emoji/270c-1f3fe.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/270c-1f3ff.svg b/priv/static/emoji/270c-1f3ff.svg deleted file mode 100644 index 3fa974296..000000000 --- a/priv/static/emoji/270c-1f3ff.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/270c.svg b/priv/static/emoji/270c.svg deleted file mode 100644 index 730545f57..000000000 --- a/priv/static/emoji/270c.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/270d-1f3fb.svg b/priv/static/emoji/270d-1f3fb.svg deleted file mode 100644 index 91eaf47d9..000000000 --- a/priv/static/emoji/270d-1f3fb.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/270d-1f3fc.svg b/priv/static/emoji/270d-1f3fc.svg deleted file mode 100644 index b404d7fc0..000000000 --- a/priv/static/emoji/270d-1f3fc.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/270d-1f3fd.svg b/priv/static/emoji/270d-1f3fd.svg deleted file mode 100644 index a1cbd7630..000000000 --- a/priv/static/emoji/270d-1f3fd.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/270d-1f3fe.svg b/priv/static/emoji/270d-1f3fe.svg deleted file mode 100644 index 20b99225f..000000000 --- a/priv/static/emoji/270d-1f3fe.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/270d-1f3ff.svg b/priv/static/emoji/270d-1f3ff.svg deleted file mode 100644 index ef0383f07..000000000 --- a/priv/static/emoji/270d-1f3ff.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/270d.svg b/priv/static/emoji/270d.svg deleted file mode 100644 index f13858475..000000000 --- a/priv/static/emoji/270d.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/270f.svg b/priv/static/emoji/270f.svg deleted file mode 100644 index a9b69e1b2..000000000 --- a/priv/static/emoji/270f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/2712.svg b/priv/static/emoji/2712.svg deleted file mode 100644 index 8eaec690e..000000000 --- a/priv/static/emoji/2712.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/2714.svg b/priv/static/emoji/2714.svg deleted file mode 100644 index 17972389e..000000000 --- a/priv/static/emoji/2714.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/2716.svg b/priv/static/emoji/2716.svg deleted file mode 100644 index d10237301..000000000 --- a/priv/static/emoji/2716.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/271d.svg b/priv/static/emoji/271d.svg deleted file mode 100644 index 270b812e9..000000000 --- a/priv/static/emoji/271d.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/2721.svg b/priv/static/emoji/2721.svg deleted file mode 100644 index bdf63ac5c..000000000 --- a/priv/static/emoji/2721.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/2728.svg b/priv/static/emoji/2728.svg deleted file mode 100644 index 347ad12ab..000000000 --- a/priv/static/emoji/2728.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/2733.svg b/priv/static/emoji/2733.svg deleted file mode 100644 index 0aac14f22..000000000 --- a/priv/static/emoji/2733.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/2734.svg b/priv/static/emoji/2734.svg deleted file mode 100644 index 17ed81987..000000000 --- a/priv/static/emoji/2734.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/2744.svg b/priv/static/emoji/2744.svg deleted file mode 100644 index 258c161bb..000000000 --- a/priv/static/emoji/2744.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/2747.svg b/priv/static/emoji/2747.svg deleted file mode 100644 index 61e199722..000000000 --- a/priv/static/emoji/2747.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/274c.svg b/priv/static/emoji/274c.svg deleted file mode 100644 index 4d76e24ba..000000000 --- a/priv/static/emoji/274c.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/274e.svg b/priv/static/emoji/274e.svg deleted file mode 100644 index 814a6e449..000000000 --- a/priv/static/emoji/274e.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/2753.svg b/priv/static/emoji/2753.svg deleted file mode 100644 index d76931bc4..000000000 --- a/priv/static/emoji/2753.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/2754.svg b/priv/static/emoji/2754.svg deleted file mode 100644 index ab6b64bf3..000000000 --- a/priv/static/emoji/2754.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/2755.svg b/priv/static/emoji/2755.svg deleted file mode 100644 index 40881c53c..000000000 --- a/priv/static/emoji/2755.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/2757.svg b/priv/static/emoji/2757.svg deleted file mode 100644 index e730a0839..000000000 --- a/priv/static/emoji/2757.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/2763.svg b/priv/static/emoji/2763.svg deleted file mode 100644 index b78e87834..000000000 --- a/priv/static/emoji/2763.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/2764.svg b/priv/static/emoji/2764.svg deleted file mode 100644 index 7eb5c5913..000000000 --- a/priv/static/emoji/2764.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/2795.svg b/priv/static/emoji/2795.svg deleted file mode 100644 index 5d55ec2d5..000000000 --- a/priv/static/emoji/2795.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/2796.svg b/priv/static/emoji/2796.svg deleted file mode 100644 index 589c0127c..000000000 --- a/priv/static/emoji/2796.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/2797.svg b/priv/static/emoji/2797.svg deleted file mode 100644 index 6b8a7c173..000000000 --- a/priv/static/emoji/2797.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/27a1.svg b/priv/static/emoji/27a1.svg deleted file mode 100644 index 55d2d6281..000000000 --- a/priv/static/emoji/27a1.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/27b0.svg b/priv/static/emoji/27b0.svg deleted file mode 100644 index 33abaa91f..000000000 --- a/priv/static/emoji/27b0.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/27bf.svg b/priv/static/emoji/27bf.svg deleted file mode 100644 index 0d7b5fac5..000000000 --- a/priv/static/emoji/27bf.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/2934.svg b/priv/static/emoji/2934.svg deleted file mode 100644 index 7c2e67535..000000000 --- a/priv/static/emoji/2934.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/2935.svg b/priv/static/emoji/2935.svg deleted file mode 100644 index e06163b86..000000000 --- a/priv/static/emoji/2935.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/2a-20e3.svg b/priv/static/emoji/2a-20e3.svg deleted file mode 100644 index d9c53c996..000000000 --- a/priv/static/emoji/2a-20e3.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/2b05.svg b/priv/static/emoji/2b05.svg deleted file mode 100644 index 6ac3f6346..000000000 --- a/priv/static/emoji/2b05.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/2b06.svg b/priv/static/emoji/2b06.svg deleted file mode 100644 index 080ca199c..000000000 --- a/priv/static/emoji/2b06.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/2b07.svg b/priv/static/emoji/2b07.svg deleted file mode 100644 index ed33773fc..000000000 --- a/priv/static/emoji/2b07.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/2b1b.svg b/priv/static/emoji/2b1b.svg deleted file mode 100644 index 42b60e341..000000000 --- a/priv/static/emoji/2b1b.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/2b1c.svg b/priv/static/emoji/2b1c.svg deleted file mode 100644 index a40e12e2b..000000000 --- a/priv/static/emoji/2b1c.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/2b50.svg b/priv/static/emoji/2b50.svg deleted file mode 100644 index 760ad08d7..000000000 --- a/priv/static/emoji/2b50.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/2b55.svg b/priv/static/emoji/2b55.svg deleted file mode 100644 index deb4cf112..000000000 --- a/priv/static/emoji/2b55.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/30-20e3.svg b/priv/static/emoji/30-20e3.svg deleted file mode 100644 index 8794b3a9f..000000000 --- a/priv/static/emoji/30-20e3.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/3030.svg b/priv/static/emoji/3030.svg deleted file mode 100644 index 8ea114101..000000000 --- a/priv/static/emoji/3030.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/303d.svg b/priv/static/emoji/303d.svg deleted file mode 100644 index e2c5c4957..000000000 --- a/priv/static/emoji/303d.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/31-20e3.svg b/priv/static/emoji/31-20e3.svg deleted file mode 100644 index 38197ad62..000000000 --- a/priv/static/emoji/31-20e3.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/32-20e3.svg b/priv/static/emoji/32-20e3.svg deleted file mode 100644 index 8d81b8cd0..000000000 --- a/priv/static/emoji/32-20e3.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/3297.svg b/priv/static/emoji/3297.svg deleted file mode 100644 index 7adbcf199..000000000 --- a/priv/static/emoji/3297.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/3299.svg b/priv/static/emoji/3299.svg deleted file mode 100644 index d1a793379..000000000 --- a/priv/static/emoji/3299.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/33-20e3.svg b/priv/static/emoji/33-20e3.svg deleted file mode 100644 index 95db6d281..000000000 --- a/priv/static/emoji/33-20e3.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/34-20e3.svg b/priv/static/emoji/34-20e3.svg deleted file mode 100644 index b1004f31e..000000000 --- a/priv/static/emoji/34-20e3.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/35-20e3.svg b/priv/static/emoji/35-20e3.svg deleted file mode 100644 index be3b06279..000000000 --- a/priv/static/emoji/35-20e3.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/36-20e3.svg b/priv/static/emoji/36-20e3.svg deleted file mode 100644 index c28896e42..000000000 --- a/priv/static/emoji/36-20e3.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/37-20e3.svg b/priv/static/emoji/37-20e3.svg deleted file mode 100644 index 2da4206ec..000000000 --- a/priv/static/emoji/37-20e3.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/38-20e3.svg b/priv/static/emoji/38-20e3.svg deleted file mode 100644 index b91226530..000000000 --- a/priv/static/emoji/38-20e3.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/39-20e3.svg b/priv/static/emoji/39-20e3.svg deleted file mode 100644 index 6936cfb7c..000000000 --- a/priv/static/emoji/39-20e3.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/a9.svg b/priv/static/emoji/a9.svg deleted file mode 100644 index afe4fedd6..000000000 --- a/priv/static/emoji/a9.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/ae.svg b/priv/static/emoji/ae.svg deleted file mode 100644 index bd51781e2..000000000 --- a/priv/static/emoji/ae.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/e50a.svg b/priv/static/emoji/e50a.svg deleted file mode 100644 index 4fb538949..000000000 --- a/priv/static/emoji/e50a.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/priv/static/emoji/sheet_10.png b/priv/static/emoji/sheet_10.png deleted file mode 100644 index 3ee92a1f1..000000000 Binary files a/priv/static/emoji/sheet_10.png and /dev/null differ diff --git a/priv/static/index.html b/priv/static/index.html index b1455c184..5593fe142 100644 --- a/priv/static/index.html +++ b/priv/static/index.html @@ -1 +1 @@ -
\ No newline at end of file +
\ No newline at end of file diff --git a/priv/static/instance/panel.html b/priv/static/instance/panel.html index 7e73e4824..6d901e61d 100644 --- a/priv/static/instance/panel.html +++ b/priv/static/instance/panel.html @@ -1,5 +1,5 @@
-

Welcome to Pleroma!

-

Pleroma FE | Mastodon FE

+

Welcome to Pleroma!

+

Pleroma FE

diff --git a/priv/static/instance/static.css b/priv/static/instance/static.css index 487e1ec27..48c74c125 100644 Binary files a/priv/static/instance/static.css and b/priv/static/instance/static.css differ diff --git a/priv/static/packs/arrow-key-navigation.js b/priv/static/packs/arrow-key-navigation.js deleted file mode 100644 index 6f05ce3e1..000000000 Binary files a/priv/static/packs/arrow-key-navigation.js and /dev/null differ diff --git a/priv/static/packs/arrow-key-navigation.js.map b/priv/static/packs/arrow-key-navigation.js.map deleted file mode 100644 index d5d0fc0ea..000000000 Binary files a/priv/static/packs/arrow-key-navigation.js.map and /dev/null differ diff --git a/priv/static/packs/base_polyfills.js b/priv/static/packs/base_polyfills.js deleted file mode 100644 index 04e0f921c..000000000 Binary files a/priv/static/packs/base_polyfills.js and /dev/null differ diff --git a/priv/static/packs/base_polyfills.js.LICENSE.txt b/priv/static/packs/base_polyfills.js.LICENSE.txt deleted file mode 100644 index b5fb77398..000000000 --- a/priv/static/packs/base_polyfills.js.LICENSE.txt +++ /dev/null @@ -1,5 +0,0 @@ -/* -object-assign -(c) Sindre Sorhus -@license MIT -*/ diff --git a/priv/static/packs/base_polyfills.js.map b/priv/static/packs/base_polyfills.js.map deleted file mode 100644 index a16ae5010..000000000 Binary files a/priv/static/packs/base_polyfills.js.map and /dev/null differ diff --git a/priv/static/packs/common.js b/priv/static/packs/common.js deleted file mode 100644 index 372dc3b82..000000000 Binary files a/priv/static/packs/common.js and /dev/null differ diff --git a/priv/static/packs/common.js.LICENSE.txt b/priv/static/packs/common.js.LICENSE.txt deleted file mode 100644 index 396b1a10e..000000000 --- a/priv/static/packs/common.js.LICENSE.txt +++ /dev/null @@ -1 +0,0 @@ -/*! https://mths.be/punycode v1.4.1 by @mathias */ diff --git a/priv/static/packs/common.js.map b/priv/static/packs/common.js.map deleted file mode 100644 index b077d20c4..000000000 Binary files a/priv/static/packs/common.js.map and /dev/null differ diff --git a/priv/static/packs/containers/media_container.js b/priv/static/packs/containers/media_container.js deleted file mode 100644 index d55f51c04..000000000 Binary files a/priv/static/packs/containers/media_container.js and /dev/null differ diff --git a/priv/static/packs/containers/media_container.js.LICENSE.txt b/priv/static/packs/containers/media_container.js.LICENSE.txt deleted file mode 100644 index 1fdf87e4c..000000000 --- a/priv/static/packs/containers/media_container.js.LICENSE.txt +++ /dev/null @@ -1,149 +0,0 @@ -/*! - Copyright (c) 2017 Jed Watson. - Licensed under the MIT License (MIT), see - http://jedwatson.github.io/classnames -*/ - -/*! - * escape-html - * Copyright(c) 2012-2013 TJ Holowaychuk - * Copyright(c) 2015 Andreas Lubbe - * Copyright(c) 2015 Tiancheng "Timothy" Gu - * MIT Licensed - */ - -/*! - * wavesurfer.js 3.3.1 (2020-01-14) - * https://github.com/katspaugh/wavesurfer.js - * @license BSD-3-Clause - */ - -/*! ./ajax */ - -/*! ./drawer */ - -/*! ./drawer.canvasentry */ - -/*! ./drawer.multicanvas */ - -/*! ./extend */ - -/*! ./fetch */ - -/*! ./frame */ - -/*! ./get-id */ - -/*! ./max */ - -/*! ./mediaelement */ - -/*! ./mediaelement-webaudio */ - -/*! ./min */ - -/*! ./observer */ - -/*! ./peakcache */ - -/*! ./prevent-click */ - -/*! ./request-animation-frame */ - -/*! ./style */ - -/*! ./util */ - -/*! ./util/get-id */ - -/*! ./util/style */ - -/*! ./webaudio */ - -/*! debounce */ - -/*! no static exports found */ - -/*!***********************!*\ - !*** ./src/drawer.js ***! - \***********************/ - -/*!*************************!*\ - !*** ./src/util/max.js ***! - \*************************/ - -/*!*************************!*\ - !*** ./src/util/min.js ***! - \*************************/ - -/*!*************************!*\ - !*** ./src/webaudio.js ***! - \*************************/ - -/*!**************************!*\ - !*** ./src/peakcache.js ***! - \**************************/ - -/*!**************************!*\ - !*** ./src/util/ajax.js ***! - \**************************/ - -/*!***************************!*\ - !*** ./src/util/fetch.js ***! - \***************************/ - -/*!***************************!*\ - !*** ./src/util/frame.js ***! - \***************************/ - -/*!***************************!*\ - !*** ./src/util/index.js ***! - \***************************/ - -/*!***************************!*\ - !*** ./src/util/style.js ***! - \***************************/ - -/*!***************************!*\ - !*** ./src/wavesurfer.js ***! - \***************************/ - -/*!****************************!*\ - !*** ./src/util/extend.js ***! - \****************************/ - -/*!****************************!*\ - !*** ./src/util/get-id.js ***! - \****************************/ - -/*!*****************************!*\ - !*** ./src/mediaelement.js ***! - \*****************************/ - -/*!******************************!*\ - !*** ./src/util/observer.js ***! - \******************************/ - -/*!***********************************!*\ - !*** ./src/drawer.canvasentry.js ***! - \***********************************/ - -/*!***********************************!*\ - !*** ./src/drawer.multicanvas.js ***! - \***********************************/ - -/*!***********************************!*\ - !*** ./src/util/prevent-click.js ***! - \***********************************/ - -/*!**************************************!*\ - !*** ./src/mediaelement-webaudio.js ***! - \**************************************/ - -/*!****************************************!*\ - !*** ./node_modules/debounce/index.js ***! - \****************************************/ - -/*!*********************************************!*\ - !*** ./src/util/request-animation-frame.js ***! - \*********************************************/ diff --git a/priv/static/packs/containers/media_container.js.map b/priv/static/packs/containers/media_container.js.map deleted file mode 100644 index bfe37b1d7..000000000 Binary files a/priv/static/packs/containers/media_container.js.map and /dev/null differ diff --git a/priv/static/packs/core/admin.js b/priv/static/packs/core/admin.js deleted file mode 100644 index 000669e56..000000000 Binary files a/priv/static/packs/core/admin.js and /dev/null differ diff --git a/priv/static/packs/core/admin.js.map b/priv/static/packs/core/admin.js.map deleted file mode 100644 index cdae04586..000000000 Binary files a/priv/static/packs/core/admin.js.map and /dev/null differ diff --git a/priv/static/packs/core/auth.js b/priv/static/packs/core/auth.js deleted file mode 100644 index e682011a6..000000000 Binary files a/priv/static/packs/core/auth.js and /dev/null differ diff --git a/priv/static/packs/core/auth.js.LICENSE.txt b/priv/static/packs/core/auth.js.LICENSE.txt deleted file mode 100644 index 4402748a5..000000000 --- a/priv/static/packs/core/auth.js.LICENSE.txt +++ /dev/null @@ -1,7 +0,0 @@ -/*! - * escape-html - * Copyright(c) 2012-2013 TJ Holowaychuk - * Copyright(c) 2015 Andreas Lubbe - * Copyright(c) 2015 Tiancheng "Timothy" Gu - * MIT Licensed - */ diff --git a/priv/static/packs/core/auth.js.map b/priv/static/packs/core/auth.js.map deleted file mode 100644 index ddbefa466..000000000 Binary files a/priv/static/packs/core/auth.js.map and /dev/null differ diff --git a/priv/static/packs/core/common.css b/priv/static/packs/core/common.css deleted file mode 100644 index b8e289c77..000000000 Binary files a/priv/static/packs/core/common.css and /dev/null differ diff --git a/priv/static/packs/core/common.css.map b/priv/static/packs/core/common.css.map deleted file mode 100644 index 75f1b34c3..000000000 --- a/priv/static/packs/core/common.css.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["webpack:///font-awesome.css","webpack:///./node_modules/font-awesome/css/font-awesome.css"],"names":[],"mappings":"AAAA;;;ECAA,CAMA,WACE,wBACA,4CACA,wSACA,gBACA,kBAEF,IACE,qBACA,6CACA,kBACA,oBACA,mCACA,kCAGF,OACE,uBACA,kBACA,oBAEF,OACE,cAEF,OACE,cAEF,OACE,cAEF,OACE,cAEF,OACE,mBACA,kBAEF,OACE,eACA,yBACA,qBAEF,UACE,kBAEF,OACE,kBACA,mBACA,mBACA,gBACA,kBAEF,aACE,mBAEF,WACE,yBACA,wBACA,mBAEF,cACE,WAEF,eACE,YAEF,iBACE,kBAEF,kBACE,iBAGF,YACE,YAEF,WACE,WAEF,cACE,kBAEF,eACE,iBAEF,SACE,6CACA,qCAEF,UACE,+CACA,uCAEF,2BACE,GAEE,uBAEF,GAEE,0BAGJ,mBACE,GAEE,uBAEF,GAEE,0BAGJ,cACE,sEAGA,wBAEF,eACE,sEAGA,yBAEF,eACE,sEAGA,yBAEF,oBACE,gFAGA,qBAEF,kBACE,gFAGA,qBAEF,gHAKE,gCAEF,UACE,kBACA,qBACA,UACA,WACA,gBACA,sBAEF,0BAEE,kBACA,OACA,WACA,kBAEF,aACE,oBAEF,aACE,cAEF,YACE,WAIF,iBACE,YAEF,iBACE,YAEF,kBACE,YAEF,sBACE,YAEF,iBACE,YAEF,gBACE,YAEF,kBACE,YAEF,gBACE,YAEF,gBACE,YAEF,oBACE,YAEF,cACE,YAEF,mBACE,YAEF,iBACE,YAEF,oDAGE,YAEF,uBACE,YAEF,wBACE,YAEF,qBACE,YAEF,kBACE,YAEF,+BAEE,YAEF,mBACE,YAEF,gBACE,YAEF,kBACE,YAEF,mBACE,YAEF,gBACE,YAEF,oBACE,YAEF,+BACE,YAEF,6BACE,YAEF,iBACE,YAEF,yBACE,YAEF,0CAEE,YAEF,mBACE,YAEF,oBACE,YAEF,gBACE,YAEF,gBACE,YAEF,sBACE,YAEF,sBACE,YAEF,uBACE,YAEF,qBACE,YAEF,kBACE,YAEF,mBACE,YAEF,eACE,YAEF,gBACE,YAEF,gBACE,YAEF,oBACE,YAEF,iBACE,YAEF,kBACE,YAEF,gBACE,YAEF,gBACE,YAEF,kBACE,YAEF,uBACE,YAEF,sBACE,YAEF,sBACE,YAEF,wBACE,YAEF,uBACE,YAEF,yBACE,YAEF,gBACE,YAEF,qCAEE,YAEF,kBACE,YAEF,wBACE,YAEF,uDAGE,YAEF,kBACE,YAEF,sBACE,YAEF,kBACE,YAEF,gBACE,YAEF,2CAEE,YAEF,0BACE,YAEF,0BACE,YAEF,kBACE,YAEF,yBACE,YAEF,yBACE,YAEF,oBACE,YAEF,gBACE,YAEF,iBACE,YAEF,gBACE,YAEF,mBACE,YAEF,wBACE,YAEF,wBACE,YAEF,iBACE,YAEF,wBACE,YAEF,yBACE,YAEF,uBACE,YAEF,wBACE,YAEF,wBACE,YAEF,wBACE,YAEF,2BACE,YAEF,uBACE,YAEF,sBACE,YAEF,0BACE,YAEF,0BACE,YAEF,eACE,YAEF,sBACE,YAEF,uBACE,YAEF,oBACE,YAEF,sBACE,YAEF,yCAEE,YAEF,kBACE,YAEF,oBACE,YAEF,gBACE,YAEF,iBACE,YAEF,oBACE,YAEF,8BACE,YAEF,gBACE,YAEF,gBACE,YAEF,gBACE,YAEF,eACE,YAEF,qBACE,YAEF,mDAEE,YAEF,iBACE,YAEF,oBACE,YAEF,kBACE,YAEF,mBACE,YAEF,kBACE,YAEF,sBACE,YAEF,wBACE,YAEF,mBACE,YAEF,yBACE,YAEF,kBACE,YAEF,uBACE,YAEF,oBACE,YAEF,oBACE,YAEF,4CAEE,YAEF,0BACE,YAEF,2BACE,YAEF,wBACE,YAEF,eACE,YAEF,iCAEE,YAEF,oBACE,YAEF,uBACE,YAEF,yBACE,YAEF,qBACE,YAEF,mBACE,YAEF,oBACE,YAEF,2BACE,YAEF,sBACE,YAEF,yBACE,YAEF,mBACE,YAEF,kBACE,YAEF,yBACE,YAEF,kBACE,YAEF,mBACE,YAEF,iBACE,YAEF,oBACE,YAEF,sBACE,YAEF,wBACE,YAEF,mBACE,YAEF,0CAEE,YAEF,kBACE,YAEF,kBACE,YAEF,uBACE,YAEF,+BAEE,YAEF,iBACE,YAEF,oBACE,YAEF,gBACE,YAEF,uBACE,YAEF,wBACE,YAEF,uBACE,YAEF,qBACE,YAEF,uBACE,YAEF,6BACE,YAEF,8BACE,YAEF,2BACE,YAEF,6BACE,YAEF,iBACE,YAEF,kBACE,YAEF,iBACE,YAEF,kBACE,YAEF,qBACE,YAEF,sBACE,YAEF,kCAEE,YAEF,iCAEE,YAEF,iBACE,YAEF,iBACE,YAEF,mCAEE,YAEF,mCAEE,YAEF,qBACE,YAEF,oCAEE,YAEF,kBACE,YAEF,sDAGE,YAEF,mBACE,YAEF,mBACE,YAEF,yBACE,YAEF,qBACE,YAEF,iBACE,YAEF,iBACE,YAEF,iBACE,YAEF,qBACE,YAEF,4BACE,YAEF,8BACE,YAEF,uBACE,YAEF,iBACE,YAEF,sBACE,YAEF,oBACE,YAEF,sBACE,YAEF,uBACE,YAEF,mBACE,YAEF,oCAEE,YAEF,0CAEE,YAEF,uCAEE,YAEF,oBACE,YAEF,oBACE,YAEF,uCAEE,YAEF,kCAEE,YAEF,2CAEE,YAEF,qBACE,YAEF,sBACE,YAEF,iCAEE,YAEF,mBACE,YAEF,oBACE,YAEF,sCAEE,YAEF,uBACE,YAEF,oBACE,YAEF,0BACE,YAEF,wBACE,YAEF,mBACE,YAEF,uBACE,YAEF,oBACE,YAEF,kBACE,YAEF,kBACE,YAEF,mBACE,YAEF,uBACE,YAEF,sBACE,YAEF,sBACE,YAEF,qBACE,YAEF,kBACE,YAEF,uBACE,YAEF,gBACE,YAEF,oBACE,YAEF,uBACE,YAEF,6BACE,YAEF,8BACE,YAEF,2BACE,YAEF,6BACE,YAEF,sBACE,YAEF,uBACE,YAEF,oBACE,YAEF,sBACE,YAEF,mBACE,YAEF,kBACE,YAEF,kBACE,YAEF,0CAEE,YAEF,oBACE,YAEF,sBACE,YAEF,uBACE,YAEF,mBACE,YAEF,kBACE,YAEF,uCAEE,YAEF,sBACE,YAEF,oBACE,YAEF,yBACE,YAEF,mBACE,YAEF,mBACE,YAEF,iBACE,YAEF,mBACE,YAEF,sBACE,YAEF,kBACE,YAEF,0BACE,YAEF,oBACE,YAEF,gBACE,YAEF,+CAEE,YAEF,4EAGE,YAEF,0BACE,YAEF,gBACE,YAEF,qBACE,YAEF,0CAEE,YAEF,oBACE,YAEF,gBACE,YAEF,uBACE,YAEF,uBACE,YAEF,qBACE,YAEF,kBACE,YAEF,wBACE,YAEF,sBACE,YAEF,4BACE,YAEF,kBACE,YAEF,sBACE,YAEF,6BACE,YAEF,kBACE,YAEF,kBACE,YAEF,+BACE,YAEF,gCACE,YAEF,6BACE,YAEF,+BACE,YAEF,iBACE,YAEF,gBACE,YAEF,kBACE,YAEF,sBACE,YAEF,oBACE,YAEF,sBACE,YAEF,sBACE,YAEF,sBACE,YAEF,uBACE,YAEF,kBACE,YAEF,wBACE,YAEF,0BACE,YAEF,oBACE,YAEF,sBACE,YAEF,wBACE,YAEF,yBACE,YAEF,gCACE,YAEF,wBACE,YAEF,mBACE,YAEF,sDAEE,YAEF,kDAEE,YAEF,wDAEE,YAEF,+BAEE,YAEF,eACE,YAEF,iCAEE,YAEF,gCAEE,YAEF,4DAIE,YAEF,kDAGE,YAEF,8BAEE,YAEF,kCAEE,YAEF,gBACE,YAEF,qBACE,YAEF,0BACE,YAEF,2BACE,YAEF,2BACE,YAEF,4BACE,YAEF,4BACE,YAEF,6BACE,YAEF,qBACE,YAEF,uBACE,YAEF,0BACE,YAEF,mBACE,YAEF,gBACE,YAEF,uBACE,YAEF,wBACE,YAEF,mBACE,YAEF,0BACE,YAEF,qBACE,YAEF,kBACE,YAEF,eACE,YAEF,qBACE,YAEF,4BACE,YAEF,kBACE,YAEF,yBACE,YAEF,2BACE,YAEF,yBACE,YAEF,2BACE,YAEF,4BACE,YAEF,iBACE,YAEF,mBACE,YAEF,mBACE,YAEF,iBACE,YAEF,oBACE,YAEF,iBACE,YAEF,sBACE,YAEF,kBACE,YAEF,kBACE,YAEF,gBACE,YAEF,sCAEE,YAEF,iBACE,YAEF,kBACE,YAEF,mBACE,YAEF,eACE,YAEF,cACE,YAEF,iBACE,YAEF,kBACE,YAEF,qBACE,YAEF,0BACE,YAEF,gCACE,YAEF,+BACE,YAEF,sDAEE,YAEF,wBACE,YAEF,sBACE,YAEF,wBACE,YAEF,uCAEE,YAEF,yBACE,YAEF,yBACE,YAEF,iBACE,YAEF,2BACE,YAEF,qBACE,YAEF,kBACE,YAEF,6DAGE,YAEF,kDAEE,YAEF,iBACE,YAEF,kBACE,YAEF,kBACE,YAEF,yBACE,YAEF,8BACE,YAEF,uBACE,YAEF,qBACE,YAEF,gBACE,YAEF,yBACE,YAEF,0BACE,YAEF,kBACE,YAEF,kBACE,YAEF,oBACE,YAEF,eACE,YAEF,oBACE,YAEF,iBACE,YAEF,eACE,YAEF,iBACE,YAEF,gBACE,YAEF,iBACE,YAEF,mBACE,YAEF,0BACE,YAEF,iBACE,YAEF,wBACE,YAEF,mBACE,YAEF,qCAEE,YAEF,+BAEE,YAEF,gBACE,YAEF,mBACE,YAEF,sBACE,YAEF,sBACE,YAEF,oBACE,YAEF,sBACE,YAEF,uBACE,YAEF,wBACE,YAEF,6BACE,YAEF,0EAGE,YAEF,gDAEE,YAEF,gDAEE,YAEF,gDAEE,YAEF,uBACE,YAEF,gBACE,YAEF,mBACE,YAEF,oBACE,YAEF,wGAKE,YAEF,0BACE,YAEF,qDAGE,YAEF,gCAEE,YAEF,sBACE,YAEF,eACE,YAEF,2EAGE,YAEF,yBACE,YAEF,cACE,YAEF,oCAEE,YAEF,uCAEE,YAEF,2CAEE,YAEF,mBACE,YAEF,uBACE,YAEF,kBACE,YAEF,qBACE,YAEF,mBACE,YAEF,qBACE,YAEF,4BACE,YAEF,gBACE,YAEF,6CAEE,YAEF,eACE,YAEF,sBACE,YAEF,gBACE,YAEF,sBACE,YAEF,kBACE,YAEF,gBACE,YAEF,uBACE,YAEF,gBACE,YAEF,sBACE,YAEF,kBACE,YAEF,yBACE,YAEF,mBACE,YAEF,yBACE,YAEF,uBACE,YAEF,mBACE,YAEF,qBACE,YAEF,qBACE,YAEF,sBACE,YAEF,wBACE,YAEF,iBACE,YAEF,qBACE,YAEF,cACE,YAEF,sBACE,YAEF,uBACE,YAEF,yBACE,YAEF,sBACE,YAEF,qBACE,YAEF,sBACE,YAEF,kBACE,YAEF,yBACE,YAEF,sBACE,YAEF,qBACE,YAEF,mBACE,YAEF,eACE,YAEF,mBACE,YAEF,qBACE,YAEF,cACE,YAEF,mDAGE,YAEF,oBACE,YAEF,sBACE,YAEF,0BACE,YAEF,oBACE,YAEF,oBACE,YAEF,mBACE,YAEF,kBACE,YAEF,wBACE,YAEF,uBACE,YAEF,oBACE,YAEF,qBACE,YAEF,2BACE,YAEF,mBACE,YAEF,gBACE,YAEF,uBACE,YAEF,sBACE,YAEF,uBACE,YAEF,qBACE,YAEF,iBACE,YAEF,gBACE,YAEF,mBACE,YAEF,2CAEE,YAEF,2BACE,YAEF,wBACE,YAEF,uBACE,YAEF,sBACE,YAEF,uBACE,YAEF,yBACE,YAEF,yBACE,YAEF,kBACE,YAEF,sBACE,YAEF,6BACE,YAEF,uBACE,YAEF,oBACE,YAEF,kBACE,YAEF,qBACE,YAEF,sBACE,YAEF,gCAEE,YAEF,mBACE,YAEF,iBACE,YAEF,kBACE,YAEF,kBACE,YAEF,sCAEE,YAEF,yBACE,YAEF,oBACE,YAEF,wBACE,YAEF,gEAGE,YAEF,uDAEE,YAEF,6CAEE,YAEF,gDAEE,YAEF,8CAEE,YAEF,yBACE,YAEF,oBACE,YAEF,wBACE,YAEF,0BACE,YAEF,uBACE,YAEF,yBACE,YAEF,kBACE,YAEF,0BACE,YAEF,iBACE,YAEF,yBACE,YAEF,uBACE,YAEF,kDAEE,YAEF,iDAEE,YAEF,gDAEE,YAEF,qBACE,YAEF,8CAEE,YAEF,+CAEE,YAEF,2BACE,YAEF,yBACE,YAEF,wBACE,YAEF,0BACE,YAEF,wBACE,YAEF,qBACE,YAEF,sBACE,YAEF,4BACE,YAEF,cACE,YAEF,qBACE,YAEF,uBACE,YAEF,yBACE,YAEF,gCACE,YAEF,sBACE,YAEF,uBACE,YAEF,kBACE,YAEF,kBACE,YAEF,mBACE,YAEF,iBACE,YAEF,6BACE,YAEF,oCAEE,YAEF,kBACE,YAEF,iBACE,YAEF,kBACE,YAEF,2BACE,YAEF,4BACE,YAEF,4BACE,YAEF,4BACE,YAEF,oBACE,YAEF,mBACE,YAEF,qBACE,YAEF,iBACE,YAEF,eACE,YAEF,sBACE,YAEF,wBACE,YAEF,iBACE,YAEF,iBACE,YAEF,qBACE,YAEF,qBACE,YAEF,wBACE,YAEF,gBACE,YAEF,2BACE,YAEF,oBACE,YAEF,gBACE,YAEF,wBACE,YAEF,eACE,YAEF,wBACE,YAEF,oBACE,YAEF,kBACE,YAEF,wBACE,YAEF,0BACE,YAEF,uBACE,YAEF,yBACE,YAEF,wBACE,YAEF,2BACE,YAEF,mBACE,YAEF,qBACE,YAEF,uBACE,YAEF,mBACE,YAEF,kBACE,YAEF,sBACE,YAEF,mBACE,YAEF,kBACE,YAEF,4BACE,YAEF,0BACE,YAEF,6BACE,YAEF,iBACE,YAEF,6BACE,YAEF,gCACE,YAEF,mBACE,YAEF,uCACE,YAEF,2EAEE,YAEF,+DAGE,YAEF,iBACE,YAEF,mBACE,YAEF,4CAEE,YAEF,sBACE,YAEF,kBACE,YAEF,yBACE,YAEF,oBACE,YAEF,0BACE,YAEF,2BACE,YAEF,sBACE,YAEF,uBACE,YAEF,iBACE,YAEF,qBACE,YAEF,8DAEE,YAEF,sCAEE,YAEF,uBACE,YAEF,yBACE,YAEF,2BACE,YAEF,kBACE,YAEF,wBACE,YAEF,0BACE,YAEF,yCAEE,YAEF,6CAEE,YAEF,uBACE,YAEF,yBACE,YAEF,kBACE,YAEF,oBACE,YAEF,8CAEE,YAEF,kDAEE,YAEF,iBACE,YAEF,0BACE,YAEF,oBACE,YAEF,4EAGE,YAEF,+DAEE,YAEF,qDAEE,YAEF,wDAEE,YAEF,sDAEE,YAEF,kBACE,YAEF,kDAGE,YAEF,mBACE,YAEF,2BACE,YAEF,2BACE,YAEF,0BACE,YAEF,mDAEE,YAEF,uDAEE,YAEF,oBACE,YAEF,gBACE,YAEF,gBACE,YAEF,gBACE,YAEF,mBACE,YAEF,mBACE,YAEF,qBACE,YAEF,uBACE,YAEF,uBACE,YAEF,sBACE,YAEF,kBACE,YAEF,SACE,kBACA,UACA,WACA,UACA,YACA,gBACA,mBACA,SAEF,mDAEE,gBACA,WACA,YACA,SACA,iBACA,qJ","file":"core/common.css","sourcesContent":["/*!\n * Font Awesome 4.7.0 by @davegandy - http://fontawesome.io - @fontawesome\n * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License)\n */@font-face{font-family:\"FontAwesome\";src:url(\"../fonts/fontawesome-webfont.eot?v=4.7.0\");src:url(\"../fonts/fontawesome-webfont.eot?#iefix&v=4.7.0\") format(\"embedded-opentype\"),url(\"../fonts/fontawesome-webfont.woff2?v=4.7.0\") format(\"woff2\"),url(\"../fonts/fontawesome-webfont.woff?v=4.7.0\") format(\"woff\"),url(\"../fonts/fontawesome-webfont.ttf?v=4.7.0\") format(\"truetype\"),url(\"../fonts/fontawesome-webfont.svg?v=4.7.0#fontawesomeregular\") format(\"svg\");font-weight:normal;font-style:normal}.fa{display:inline-block;font:normal normal normal 14px/1 FontAwesome;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.fa-lg{font-size:1.33333333em;line-height:.75em;vertical-align:-15%}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-fw{width:1.28571429em;text-align:center}.fa-ul{padding-left:0;margin-left:2.14285714em;list-style-type:none}.fa-ul>li{position:relative}.fa-li{position:absolute;left:-2.14285714em;width:2.14285714em;top:.14285714em;text-align:center}.fa-li.fa-lg{left:-1.85714286em}.fa-border{padding:.2em .25em .15em;border:solid .08em #eee;border-radius:.1em}.fa-pull-left{float:left}.fa-pull-right{float:right}.fa.fa-pull-left{margin-right:.3em}.fa.fa-pull-right{margin-left:.3em}.pull-right{float:right}.pull-left{float:left}.fa.pull-left{margin-right:.3em}.fa.pull-right{margin-left:.3em}.fa-spin{-webkit-animation:fa-spin 2s infinite linear;animation:fa-spin 2s infinite linear}.fa-pulse{-webkit-animation:fa-spin 1s infinite steps(8);animation:fa-spin 1s infinite steps(8)}@-webkit-keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}.fa-rotate-90{-ms-filter:\"progid:DXImageTransform.Microsoft.BasicImage(rotation=1)\";-webkit-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg)}.fa-rotate-180{-ms-filter:\"progid:DXImageTransform.Microsoft.BasicImage(rotation=2)\";-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg)}.fa-rotate-270{-ms-filter:\"progid:DXImageTransform.Microsoft.BasicImage(rotation=3)\";-webkit-transform:rotate(270deg);-ms-transform:rotate(270deg);transform:rotate(270deg)}.fa-flip-horizontal{-ms-filter:\"progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)\";-webkit-transform:scale(-1, 1);-ms-transform:scale(-1, 1);transform:scale(-1, 1)}.fa-flip-vertical{-ms-filter:\"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)\";-webkit-transform:scale(1, -1);-ms-transform:scale(1, -1);transform:scale(1, -1)}:root .fa-rotate-90,:root .fa-rotate-180,:root .fa-rotate-270,:root .fa-flip-horizontal,:root .fa-flip-vertical{filter:none}.fa-stack{position:relative;display:inline-block;width:2em;height:2em;line-height:2em;vertical-align:middle}.fa-stack-1x,.fa-stack-2x{position:absolute;left:0;width:100%;text-align:center}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:#fff}.fa-glass:before{content:\"\"}.fa-music:before{content:\"\"}.fa-search:before{content:\"\"}.fa-envelope-o:before{content:\"\"}.fa-heart:before{content:\"\"}.fa-star:before{content:\"\"}.fa-star-o:before{content:\"\"}.fa-user:before{content:\"\"}.fa-film:before{content:\"\"}.fa-th-large:before{content:\"\"}.fa-th:before{content:\"\"}.fa-th-list:before{content:\"\"}.fa-check:before{content:\"\"}.fa-remove:before,.fa-close:before,.fa-times:before{content:\"\"}.fa-search-plus:before{content:\"\"}.fa-search-minus:before{content:\"\"}.fa-power-off:before{content:\"\"}.fa-signal:before{content:\"\"}.fa-gear:before,.fa-cog:before{content:\"\"}.fa-trash-o:before{content:\"\"}.fa-home:before{content:\"\"}.fa-file-o:before{content:\"\"}.fa-clock-o:before{content:\"\"}.fa-road:before{content:\"\"}.fa-download:before{content:\"\"}.fa-arrow-circle-o-down:before{content:\"\"}.fa-arrow-circle-o-up:before{content:\"\"}.fa-inbox:before{content:\"\"}.fa-play-circle-o:before{content:\"\"}.fa-rotate-right:before,.fa-repeat:before{content:\"\"}.fa-refresh:before{content:\"\"}.fa-list-alt:before{content:\"\"}.fa-lock:before{content:\"\"}.fa-flag:before{content:\"\"}.fa-headphones:before{content:\"\"}.fa-volume-off:before{content:\"\"}.fa-volume-down:before{content:\"\"}.fa-volume-up:before{content:\"\"}.fa-qrcode:before{content:\"\"}.fa-barcode:before{content:\"\"}.fa-tag:before{content:\"\"}.fa-tags:before{content:\"\"}.fa-book:before{content:\"\"}.fa-bookmark:before{content:\"\"}.fa-print:before{content:\"\"}.fa-camera:before{content:\"\"}.fa-font:before{content:\"\"}.fa-bold:before{content:\"\"}.fa-italic:before{content:\"\"}.fa-text-height:before{content:\"\"}.fa-text-width:before{content:\"\"}.fa-align-left:before{content:\"\"}.fa-align-center:before{content:\"\"}.fa-align-right:before{content:\"\"}.fa-align-justify:before{content:\"\"}.fa-list:before{content:\"\"}.fa-dedent:before,.fa-outdent:before{content:\"\"}.fa-indent:before{content:\"\"}.fa-video-camera:before{content:\"\"}.fa-photo:before,.fa-image:before,.fa-picture-o:before{content:\"\"}.fa-pencil:before{content:\"\"}.fa-map-marker:before{content:\"\"}.fa-adjust:before{content:\"\"}.fa-tint:before{content:\"\"}.fa-edit:before,.fa-pencil-square-o:before{content:\"\"}.fa-share-square-o:before{content:\"\"}.fa-check-square-o:before{content:\"\"}.fa-arrows:before{content:\"\"}.fa-step-backward:before{content:\"\"}.fa-fast-backward:before{content:\"\"}.fa-backward:before{content:\"\"}.fa-play:before{content:\"\"}.fa-pause:before{content:\"\"}.fa-stop:before{content:\"\"}.fa-forward:before{content:\"\"}.fa-fast-forward:before{content:\"\"}.fa-step-forward:before{content:\"\"}.fa-eject:before{content:\"\"}.fa-chevron-left:before{content:\"\"}.fa-chevron-right:before{content:\"\"}.fa-plus-circle:before{content:\"\"}.fa-minus-circle:before{content:\"\"}.fa-times-circle:before{content:\"\"}.fa-check-circle:before{content:\"\"}.fa-question-circle:before{content:\"\"}.fa-info-circle:before{content:\"\"}.fa-crosshairs:before{content:\"\"}.fa-times-circle-o:before{content:\"\"}.fa-check-circle-o:before{content:\"\"}.fa-ban:before{content:\"\"}.fa-arrow-left:before{content:\"\"}.fa-arrow-right:before{content:\"\"}.fa-arrow-up:before{content:\"\"}.fa-arrow-down:before{content:\"\"}.fa-mail-forward:before,.fa-share:before{content:\"\"}.fa-expand:before{content:\"\"}.fa-compress:before{content:\"\"}.fa-plus:before{content:\"\"}.fa-minus:before{content:\"\"}.fa-asterisk:before{content:\"\"}.fa-exclamation-circle:before{content:\"\"}.fa-gift:before{content:\"\"}.fa-leaf:before{content:\"\"}.fa-fire:before{content:\"\"}.fa-eye:before{content:\"\"}.fa-eye-slash:before{content:\"\"}.fa-warning:before,.fa-exclamation-triangle:before{content:\"\"}.fa-plane:before{content:\"\"}.fa-calendar:before{content:\"\"}.fa-random:before{content:\"\"}.fa-comment:before{content:\"\"}.fa-magnet:before{content:\"\"}.fa-chevron-up:before{content:\"\"}.fa-chevron-down:before{content:\"\"}.fa-retweet:before{content:\"\"}.fa-shopping-cart:before{content:\"\"}.fa-folder:before{content:\"\"}.fa-folder-open:before{content:\"\"}.fa-arrows-v:before{content:\"\"}.fa-arrows-h:before{content:\"\"}.fa-bar-chart-o:before,.fa-bar-chart:before{content:\"\"}.fa-twitter-square:before{content:\"\"}.fa-facebook-square:before{content:\"\"}.fa-camera-retro:before{content:\"\"}.fa-key:before{content:\"\"}.fa-gears:before,.fa-cogs:before{content:\"\"}.fa-comments:before{content:\"\"}.fa-thumbs-o-up:before{content:\"\"}.fa-thumbs-o-down:before{content:\"\"}.fa-star-half:before{content:\"\"}.fa-heart-o:before{content:\"\"}.fa-sign-out:before{content:\"\"}.fa-linkedin-square:before{content:\"\"}.fa-thumb-tack:before{content:\"\"}.fa-external-link:before{content:\"\"}.fa-sign-in:before{content:\"\"}.fa-trophy:before{content:\"\"}.fa-github-square:before{content:\"\"}.fa-upload:before{content:\"\"}.fa-lemon-o:before{content:\"\"}.fa-phone:before{content:\"\"}.fa-square-o:before{content:\"\"}.fa-bookmark-o:before{content:\"\"}.fa-phone-square:before{content:\"\"}.fa-twitter:before{content:\"\"}.fa-facebook-f:before,.fa-facebook:before{content:\"\"}.fa-github:before{content:\"\"}.fa-unlock:before{content:\"\"}.fa-credit-card:before{content:\"\"}.fa-feed:before,.fa-rss:before{content:\"\"}.fa-hdd-o:before{content:\"\"}.fa-bullhorn:before{content:\"\"}.fa-bell:before{content:\"\"}.fa-certificate:before{content:\"\"}.fa-hand-o-right:before{content:\"\"}.fa-hand-o-left:before{content:\"\"}.fa-hand-o-up:before{content:\"\"}.fa-hand-o-down:before{content:\"\"}.fa-arrow-circle-left:before{content:\"\"}.fa-arrow-circle-right:before{content:\"\"}.fa-arrow-circle-up:before{content:\"\"}.fa-arrow-circle-down:before{content:\"\"}.fa-globe:before{content:\"\"}.fa-wrench:before{content:\"\"}.fa-tasks:before{content:\"\"}.fa-filter:before{content:\"\"}.fa-briefcase:before{content:\"\"}.fa-arrows-alt:before{content:\"\"}.fa-group:before,.fa-users:before{content:\"\"}.fa-chain:before,.fa-link:before{content:\"\"}.fa-cloud:before{content:\"\"}.fa-flask:before{content:\"\"}.fa-cut:before,.fa-scissors:before{content:\"\"}.fa-copy:before,.fa-files-o:before{content:\"\"}.fa-paperclip:before{content:\"\"}.fa-save:before,.fa-floppy-o:before{content:\"\"}.fa-square:before{content:\"\"}.fa-navicon:before,.fa-reorder:before,.fa-bars:before{content:\"\"}.fa-list-ul:before{content:\"\"}.fa-list-ol:before{content:\"\"}.fa-strikethrough:before{content:\"\"}.fa-underline:before{content:\"\"}.fa-table:before{content:\"\"}.fa-magic:before{content:\"\"}.fa-truck:before{content:\"\"}.fa-pinterest:before{content:\"\"}.fa-pinterest-square:before{content:\"\"}.fa-google-plus-square:before{content:\"\"}.fa-google-plus:before{content:\"\"}.fa-money:before{content:\"\"}.fa-caret-down:before{content:\"\"}.fa-caret-up:before{content:\"\"}.fa-caret-left:before{content:\"\"}.fa-caret-right:before{content:\"\"}.fa-columns:before{content:\"\"}.fa-unsorted:before,.fa-sort:before{content:\"\"}.fa-sort-down:before,.fa-sort-desc:before{content:\"\"}.fa-sort-up:before,.fa-sort-asc:before{content:\"\"}.fa-envelope:before{content:\"\"}.fa-linkedin:before{content:\"\"}.fa-rotate-left:before,.fa-undo:before{content:\"\"}.fa-legal:before,.fa-gavel:before{content:\"\"}.fa-dashboard:before,.fa-tachometer:before{content:\"\"}.fa-comment-o:before{content:\"\"}.fa-comments-o:before{content:\"\"}.fa-flash:before,.fa-bolt:before{content:\"\"}.fa-sitemap:before{content:\"\"}.fa-umbrella:before{content:\"\"}.fa-paste:before,.fa-clipboard:before{content:\"\"}.fa-lightbulb-o:before{content:\"\"}.fa-exchange:before{content:\"\"}.fa-cloud-download:before{content:\"\"}.fa-cloud-upload:before{content:\"\"}.fa-user-md:before{content:\"\"}.fa-stethoscope:before{content:\"\"}.fa-suitcase:before{content:\"\"}.fa-bell-o:before{content:\"\"}.fa-coffee:before{content:\"\"}.fa-cutlery:before{content:\"\"}.fa-file-text-o:before{content:\"\"}.fa-building-o:before{content:\"\"}.fa-hospital-o:before{content:\"\"}.fa-ambulance:before{content:\"\"}.fa-medkit:before{content:\"\"}.fa-fighter-jet:before{content:\"\"}.fa-beer:before{content:\"\"}.fa-h-square:before{content:\"\"}.fa-plus-square:before{content:\"\"}.fa-angle-double-left:before{content:\"\"}.fa-angle-double-right:before{content:\"\"}.fa-angle-double-up:before{content:\"\"}.fa-angle-double-down:before{content:\"\"}.fa-angle-left:before{content:\"\"}.fa-angle-right:before{content:\"\"}.fa-angle-up:before{content:\"\"}.fa-angle-down:before{content:\"\"}.fa-desktop:before{content:\"\"}.fa-laptop:before{content:\"\"}.fa-tablet:before{content:\"\"}.fa-mobile-phone:before,.fa-mobile:before{content:\"\"}.fa-circle-o:before{content:\"\"}.fa-quote-left:before{content:\"\"}.fa-quote-right:before{content:\"\"}.fa-spinner:before{content:\"\"}.fa-circle:before{content:\"\"}.fa-mail-reply:before,.fa-reply:before{content:\"\"}.fa-github-alt:before{content:\"\"}.fa-folder-o:before{content:\"\"}.fa-folder-open-o:before{content:\"\"}.fa-smile-o:before{content:\"\"}.fa-frown-o:before{content:\"\"}.fa-meh-o:before{content:\"\"}.fa-gamepad:before{content:\"\"}.fa-keyboard-o:before{content:\"\"}.fa-flag-o:before{content:\"\"}.fa-flag-checkered:before{content:\"\"}.fa-terminal:before{content:\"\"}.fa-code:before{content:\"\"}.fa-mail-reply-all:before,.fa-reply-all:before{content:\"\"}.fa-star-half-empty:before,.fa-star-half-full:before,.fa-star-half-o:before{content:\"\"}.fa-location-arrow:before{content:\"\"}.fa-crop:before{content:\"\"}.fa-code-fork:before{content:\"\"}.fa-unlink:before,.fa-chain-broken:before{content:\"\"}.fa-question:before{content:\"\"}.fa-info:before{content:\"\"}.fa-exclamation:before{content:\"\"}.fa-superscript:before{content:\"\"}.fa-subscript:before{content:\"\"}.fa-eraser:before{content:\"\"}.fa-puzzle-piece:before{content:\"\"}.fa-microphone:before{content:\"\"}.fa-microphone-slash:before{content:\"\"}.fa-shield:before{content:\"\"}.fa-calendar-o:before{content:\"\"}.fa-fire-extinguisher:before{content:\"\"}.fa-rocket:before{content:\"\"}.fa-maxcdn:before{content:\"\"}.fa-chevron-circle-left:before{content:\"\"}.fa-chevron-circle-right:before{content:\"\"}.fa-chevron-circle-up:before{content:\"\"}.fa-chevron-circle-down:before{content:\"\"}.fa-html5:before{content:\"\"}.fa-css3:before{content:\"\"}.fa-anchor:before{content:\"\"}.fa-unlock-alt:before{content:\"\"}.fa-bullseye:before{content:\"\"}.fa-ellipsis-h:before{content:\"\"}.fa-ellipsis-v:before{content:\"\"}.fa-rss-square:before{content:\"\"}.fa-play-circle:before{content:\"\"}.fa-ticket:before{content:\"\"}.fa-minus-square:before{content:\"\"}.fa-minus-square-o:before{content:\"\"}.fa-level-up:before{content:\"\"}.fa-level-down:before{content:\"\"}.fa-check-square:before{content:\"\"}.fa-pencil-square:before{content:\"\"}.fa-external-link-square:before{content:\"\"}.fa-share-square:before{content:\"\"}.fa-compass:before{content:\"\"}.fa-toggle-down:before,.fa-caret-square-o-down:before{content:\"\"}.fa-toggle-up:before,.fa-caret-square-o-up:before{content:\"\"}.fa-toggle-right:before,.fa-caret-square-o-right:before{content:\"\"}.fa-euro:before,.fa-eur:before{content:\"\"}.fa-gbp:before{content:\"\"}.fa-dollar:before,.fa-usd:before{content:\"\"}.fa-rupee:before,.fa-inr:before{content:\"\"}.fa-cny:before,.fa-rmb:before,.fa-yen:before,.fa-jpy:before{content:\"\"}.fa-ruble:before,.fa-rouble:before,.fa-rub:before{content:\"\"}.fa-won:before,.fa-krw:before{content:\"\"}.fa-bitcoin:before,.fa-btc:before{content:\"\"}.fa-file:before{content:\"\"}.fa-file-text:before{content:\"\"}.fa-sort-alpha-asc:before{content:\"\"}.fa-sort-alpha-desc:before{content:\"\"}.fa-sort-amount-asc:before{content:\"\"}.fa-sort-amount-desc:before{content:\"\"}.fa-sort-numeric-asc:before{content:\"\"}.fa-sort-numeric-desc:before{content:\"\"}.fa-thumbs-up:before{content:\"\"}.fa-thumbs-down:before{content:\"\"}.fa-youtube-square:before{content:\"\"}.fa-youtube:before{content:\"\"}.fa-xing:before{content:\"\"}.fa-xing-square:before{content:\"\"}.fa-youtube-play:before{content:\"\"}.fa-dropbox:before{content:\"\"}.fa-stack-overflow:before{content:\"\"}.fa-instagram:before{content:\"\"}.fa-flickr:before{content:\"\"}.fa-adn:before{content:\"\"}.fa-bitbucket:before{content:\"\"}.fa-bitbucket-square:before{content:\"\"}.fa-tumblr:before{content:\"\"}.fa-tumblr-square:before{content:\"\"}.fa-long-arrow-down:before{content:\"\"}.fa-long-arrow-up:before{content:\"\"}.fa-long-arrow-left:before{content:\"\"}.fa-long-arrow-right:before{content:\"\"}.fa-apple:before{content:\"\"}.fa-windows:before{content:\"\"}.fa-android:before{content:\"\"}.fa-linux:before{content:\"\"}.fa-dribbble:before{content:\"\"}.fa-skype:before{content:\"\"}.fa-foursquare:before{content:\"\"}.fa-trello:before{content:\"\"}.fa-female:before{content:\"\"}.fa-male:before{content:\"\"}.fa-gittip:before,.fa-gratipay:before{content:\"\"}.fa-sun-o:before{content:\"\"}.fa-moon-o:before{content:\"\"}.fa-archive:before{content:\"\"}.fa-bug:before{content:\"\"}.fa-vk:before{content:\"\"}.fa-weibo:before{content:\"\"}.fa-renren:before{content:\"\"}.fa-pagelines:before{content:\"\"}.fa-stack-exchange:before{content:\"\"}.fa-arrow-circle-o-right:before{content:\"\"}.fa-arrow-circle-o-left:before{content:\"\"}.fa-toggle-left:before,.fa-caret-square-o-left:before{content:\"\"}.fa-dot-circle-o:before{content:\"\"}.fa-wheelchair:before{content:\"\"}.fa-vimeo-square:before{content:\"\"}.fa-turkish-lira:before,.fa-try:before{content:\"\"}.fa-plus-square-o:before{content:\"\"}.fa-space-shuttle:before{content:\"\"}.fa-slack:before{content:\"\"}.fa-envelope-square:before{content:\"\"}.fa-wordpress:before{content:\"\"}.fa-openid:before{content:\"\"}.fa-institution:before,.fa-bank:before,.fa-university:before{content:\"\"}.fa-mortar-board:before,.fa-graduation-cap:before{content:\"\"}.fa-yahoo:before{content:\"\"}.fa-google:before{content:\"\"}.fa-reddit:before{content:\"\"}.fa-reddit-square:before{content:\"\"}.fa-stumbleupon-circle:before{content:\"\"}.fa-stumbleupon:before{content:\"\"}.fa-delicious:before{content:\"\"}.fa-digg:before{content:\"\"}.fa-pied-piper-pp:before{content:\"\"}.fa-pied-piper-alt:before{content:\"\"}.fa-drupal:before{content:\"\"}.fa-joomla:before{content:\"\"}.fa-language:before{content:\"\"}.fa-fax:before{content:\"\"}.fa-building:before{content:\"\"}.fa-child:before{content:\"\"}.fa-paw:before{content:\"\"}.fa-spoon:before{content:\"\"}.fa-cube:before{content:\"\"}.fa-cubes:before{content:\"\"}.fa-behance:before{content:\"\"}.fa-behance-square:before{content:\"\"}.fa-steam:before{content:\"\"}.fa-steam-square:before{content:\"\"}.fa-recycle:before{content:\"\"}.fa-automobile:before,.fa-car:before{content:\"\"}.fa-cab:before,.fa-taxi:before{content:\"\"}.fa-tree:before{content:\"\"}.fa-spotify:before{content:\"\"}.fa-deviantart:before{content:\"\"}.fa-soundcloud:before{content:\"\"}.fa-database:before{content:\"\"}.fa-file-pdf-o:before{content:\"\"}.fa-file-word-o:before{content:\"\"}.fa-file-excel-o:before{content:\"\"}.fa-file-powerpoint-o:before{content:\"\"}.fa-file-photo-o:before,.fa-file-picture-o:before,.fa-file-image-o:before{content:\"\"}.fa-file-zip-o:before,.fa-file-archive-o:before{content:\"\"}.fa-file-sound-o:before,.fa-file-audio-o:before{content:\"\"}.fa-file-movie-o:before,.fa-file-video-o:before{content:\"\"}.fa-file-code-o:before{content:\"\"}.fa-vine:before{content:\"\"}.fa-codepen:before{content:\"\"}.fa-jsfiddle:before{content:\"\"}.fa-life-bouy:before,.fa-life-buoy:before,.fa-life-saver:before,.fa-support:before,.fa-life-ring:before{content:\"\"}.fa-circle-o-notch:before{content:\"\"}.fa-ra:before,.fa-resistance:before,.fa-rebel:before{content:\"\"}.fa-ge:before,.fa-empire:before{content:\"\"}.fa-git-square:before{content:\"\"}.fa-git:before{content:\"\"}.fa-y-combinator-square:before,.fa-yc-square:before,.fa-hacker-news:before{content:\"\"}.fa-tencent-weibo:before{content:\"\"}.fa-qq:before{content:\"\"}.fa-wechat:before,.fa-weixin:before{content:\"\"}.fa-send:before,.fa-paper-plane:before{content:\"\"}.fa-send-o:before,.fa-paper-plane-o:before{content:\"\"}.fa-history:before{content:\"\"}.fa-circle-thin:before{content:\"\"}.fa-header:before{content:\"\"}.fa-paragraph:before{content:\"\"}.fa-sliders:before{content:\"\"}.fa-share-alt:before{content:\"\"}.fa-share-alt-square:before{content:\"\"}.fa-bomb:before{content:\"\"}.fa-soccer-ball-o:before,.fa-futbol-o:before{content:\"\"}.fa-tty:before{content:\"\"}.fa-binoculars:before{content:\"\"}.fa-plug:before{content:\"\"}.fa-slideshare:before{content:\"\"}.fa-twitch:before{content:\"\"}.fa-yelp:before{content:\"\"}.fa-newspaper-o:before{content:\"\"}.fa-wifi:before{content:\"\"}.fa-calculator:before{content:\"\"}.fa-paypal:before{content:\"\"}.fa-google-wallet:before{content:\"\"}.fa-cc-visa:before{content:\"\"}.fa-cc-mastercard:before{content:\"\"}.fa-cc-discover:before{content:\"\"}.fa-cc-amex:before{content:\"\"}.fa-cc-paypal:before{content:\"\"}.fa-cc-stripe:before{content:\"\"}.fa-bell-slash:before{content:\"\"}.fa-bell-slash-o:before{content:\"\"}.fa-trash:before{content:\"\"}.fa-copyright:before{content:\"\"}.fa-at:before{content:\"\"}.fa-eyedropper:before{content:\"\"}.fa-paint-brush:before{content:\"\"}.fa-birthday-cake:before{content:\"\"}.fa-area-chart:before{content:\"\"}.fa-pie-chart:before{content:\"\"}.fa-line-chart:before{content:\"\"}.fa-lastfm:before{content:\"\"}.fa-lastfm-square:before{content:\"\"}.fa-toggle-off:before{content:\"\"}.fa-toggle-on:before{content:\"\"}.fa-bicycle:before{content:\"\"}.fa-bus:before{content:\"\"}.fa-ioxhost:before{content:\"\"}.fa-angellist:before{content:\"\"}.fa-cc:before{content:\"\"}.fa-shekel:before,.fa-sheqel:before,.fa-ils:before{content:\"\"}.fa-meanpath:before{content:\"\"}.fa-buysellads:before{content:\"\"}.fa-connectdevelop:before{content:\"\"}.fa-dashcube:before{content:\"\"}.fa-forumbee:before{content:\"\"}.fa-leanpub:before{content:\"\"}.fa-sellsy:before{content:\"\"}.fa-shirtsinbulk:before{content:\"\"}.fa-simplybuilt:before{content:\"\"}.fa-skyatlas:before{content:\"\"}.fa-cart-plus:before{content:\"\"}.fa-cart-arrow-down:before{content:\"\"}.fa-diamond:before{content:\"\"}.fa-ship:before{content:\"\"}.fa-user-secret:before{content:\"\"}.fa-motorcycle:before{content:\"\"}.fa-street-view:before{content:\"\"}.fa-heartbeat:before{content:\"\"}.fa-venus:before{content:\"\"}.fa-mars:before{content:\"\"}.fa-mercury:before{content:\"\"}.fa-intersex:before,.fa-transgender:before{content:\"\"}.fa-transgender-alt:before{content:\"\"}.fa-venus-double:before{content:\"\"}.fa-mars-double:before{content:\"\"}.fa-venus-mars:before{content:\"\"}.fa-mars-stroke:before{content:\"\"}.fa-mars-stroke-v:before{content:\"\"}.fa-mars-stroke-h:before{content:\"\"}.fa-neuter:before{content:\"\"}.fa-genderless:before{content:\"\"}.fa-facebook-official:before{content:\"\"}.fa-pinterest-p:before{content:\"\"}.fa-whatsapp:before{content:\"\"}.fa-server:before{content:\"\"}.fa-user-plus:before{content:\"\"}.fa-user-times:before{content:\"\"}.fa-hotel:before,.fa-bed:before{content:\"\"}.fa-viacoin:before{content:\"\"}.fa-train:before{content:\"\"}.fa-subway:before{content:\"\"}.fa-medium:before{content:\"\"}.fa-yc:before,.fa-y-combinator:before{content:\"\"}.fa-optin-monster:before{content:\"\"}.fa-opencart:before{content:\"\"}.fa-expeditedssl:before{content:\"\"}.fa-battery-4:before,.fa-battery:before,.fa-battery-full:before{content:\"\"}.fa-battery-3:before,.fa-battery-three-quarters:before{content:\"\"}.fa-battery-2:before,.fa-battery-half:before{content:\"\"}.fa-battery-1:before,.fa-battery-quarter:before{content:\"\"}.fa-battery-0:before,.fa-battery-empty:before{content:\"\"}.fa-mouse-pointer:before{content:\"\"}.fa-i-cursor:before{content:\"\"}.fa-object-group:before{content:\"\"}.fa-object-ungroup:before{content:\"\"}.fa-sticky-note:before{content:\"\"}.fa-sticky-note-o:before{content:\"\"}.fa-cc-jcb:before{content:\"\"}.fa-cc-diners-club:before{content:\"\"}.fa-clone:before{content:\"\"}.fa-balance-scale:before{content:\"\"}.fa-hourglass-o:before{content:\"\"}.fa-hourglass-1:before,.fa-hourglass-start:before{content:\"\"}.fa-hourglass-2:before,.fa-hourglass-half:before{content:\"\"}.fa-hourglass-3:before,.fa-hourglass-end:before{content:\"\"}.fa-hourglass:before{content:\"\"}.fa-hand-grab-o:before,.fa-hand-rock-o:before{content:\"\"}.fa-hand-stop-o:before,.fa-hand-paper-o:before{content:\"\"}.fa-hand-scissors-o:before{content:\"\"}.fa-hand-lizard-o:before{content:\"\"}.fa-hand-spock-o:before{content:\"\"}.fa-hand-pointer-o:before{content:\"\"}.fa-hand-peace-o:before{content:\"\"}.fa-trademark:before{content:\"\"}.fa-registered:before{content:\"\"}.fa-creative-commons:before{content:\"\"}.fa-gg:before{content:\"\"}.fa-gg-circle:before{content:\"\"}.fa-tripadvisor:before{content:\"\"}.fa-odnoklassniki:before{content:\"\"}.fa-odnoklassniki-square:before{content:\"\"}.fa-get-pocket:before{content:\"\"}.fa-wikipedia-w:before{content:\"\"}.fa-safari:before{content:\"\"}.fa-chrome:before{content:\"\"}.fa-firefox:before{content:\"\"}.fa-opera:before{content:\"\"}.fa-internet-explorer:before{content:\"\"}.fa-tv:before,.fa-television:before{content:\"\"}.fa-contao:before{content:\"\"}.fa-500px:before{content:\"\"}.fa-amazon:before{content:\"\"}.fa-calendar-plus-o:before{content:\"\"}.fa-calendar-minus-o:before{content:\"\"}.fa-calendar-times-o:before{content:\"\"}.fa-calendar-check-o:before{content:\"\"}.fa-industry:before{content:\"\"}.fa-map-pin:before{content:\"\"}.fa-map-signs:before{content:\"\"}.fa-map-o:before{content:\"\"}.fa-map:before{content:\"\"}.fa-commenting:before{content:\"\"}.fa-commenting-o:before{content:\"\"}.fa-houzz:before{content:\"\"}.fa-vimeo:before{content:\"\"}.fa-black-tie:before{content:\"\"}.fa-fonticons:before{content:\"\"}.fa-reddit-alien:before{content:\"\"}.fa-edge:before{content:\"\"}.fa-credit-card-alt:before{content:\"\"}.fa-codiepie:before{content:\"\"}.fa-modx:before{content:\"\"}.fa-fort-awesome:before{content:\"\"}.fa-usb:before{content:\"\"}.fa-product-hunt:before{content:\"\"}.fa-mixcloud:before{content:\"\"}.fa-scribd:before{content:\"\"}.fa-pause-circle:before{content:\"\"}.fa-pause-circle-o:before{content:\"\"}.fa-stop-circle:before{content:\"\"}.fa-stop-circle-o:before{content:\"\"}.fa-shopping-bag:before{content:\"\"}.fa-shopping-basket:before{content:\"\"}.fa-hashtag:before{content:\"\"}.fa-bluetooth:before{content:\"\"}.fa-bluetooth-b:before{content:\"\"}.fa-percent:before{content:\"\"}.fa-gitlab:before{content:\"\"}.fa-wpbeginner:before{content:\"\"}.fa-wpforms:before{content:\"\"}.fa-envira:before{content:\"\"}.fa-universal-access:before{content:\"\"}.fa-wheelchair-alt:before{content:\"\"}.fa-question-circle-o:before{content:\"\"}.fa-blind:before{content:\"\"}.fa-audio-description:before{content:\"\"}.fa-volume-control-phone:before{content:\"\"}.fa-braille:before{content:\"\"}.fa-assistive-listening-systems:before{content:\"\"}.fa-asl-interpreting:before,.fa-american-sign-language-interpreting:before{content:\"\"}.fa-deafness:before,.fa-hard-of-hearing:before,.fa-deaf:before{content:\"\"}.fa-glide:before{content:\"\"}.fa-glide-g:before{content:\"\"}.fa-signing:before,.fa-sign-language:before{content:\"\"}.fa-low-vision:before{content:\"\"}.fa-viadeo:before{content:\"\"}.fa-viadeo-square:before{content:\"\"}.fa-snapchat:before{content:\"\"}.fa-snapchat-ghost:before{content:\"\"}.fa-snapchat-square:before{content:\"\"}.fa-pied-piper:before{content:\"\"}.fa-first-order:before{content:\"\"}.fa-yoast:before{content:\"\"}.fa-themeisle:before{content:\"\"}.fa-google-plus-circle:before,.fa-google-plus-official:before{content:\"\"}.fa-fa:before,.fa-font-awesome:before{content:\"\"}.fa-handshake-o:before{content:\"\"}.fa-envelope-open:before{content:\"\"}.fa-envelope-open-o:before{content:\"\"}.fa-linode:before{content:\"\"}.fa-address-book:before{content:\"\"}.fa-address-book-o:before{content:\"\"}.fa-vcard:before,.fa-address-card:before{content:\"\"}.fa-vcard-o:before,.fa-address-card-o:before{content:\"\"}.fa-user-circle:before{content:\"\"}.fa-user-circle-o:before{content:\"\"}.fa-user-o:before{content:\"\"}.fa-id-badge:before{content:\"\"}.fa-drivers-license:before,.fa-id-card:before{content:\"\"}.fa-drivers-license-o:before,.fa-id-card-o:before{content:\"\"}.fa-quora:before{content:\"\"}.fa-free-code-camp:before{content:\"\"}.fa-telegram:before{content:\"\"}.fa-thermometer-4:before,.fa-thermometer:before,.fa-thermometer-full:before{content:\"\"}.fa-thermometer-3:before,.fa-thermometer-three-quarters:before{content:\"\"}.fa-thermometer-2:before,.fa-thermometer-half:before{content:\"\"}.fa-thermometer-1:before,.fa-thermometer-quarter:before{content:\"\"}.fa-thermometer-0:before,.fa-thermometer-empty:before{content:\"\"}.fa-shower:before{content:\"\"}.fa-bathtub:before,.fa-s15:before,.fa-bath:before{content:\"\"}.fa-podcast:before{content:\"\"}.fa-window-maximize:before{content:\"\"}.fa-window-minimize:before{content:\"\"}.fa-window-restore:before{content:\"\"}.fa-times-rectangle:before,.fa-window-close:before{content:\"\"}.fa-times-rectangle-o:before,.fa-window-close-o:before{content:\"\"}.fa-bandcamp:before{content:\"\"}.fa-grav:before{content:\"\"}.fa-etsy:before{content:\"\"}.fa-imdb:before{content:\"\"}.fa-ravelry:before{content:\"\"}.fa-eercast:before{content:\"\"}.fa-microchip:before{content:\"\"}.fa-snowflake-o:before{content:\"\"}.fa-superpowers:before{content:\"\"}.fa-wpexplorer:before{content:\"\"}.fa-meetup:before{content:\"\"}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto}","/*!\n * Font Awesome 4.7.0 by @davegandy - http://fontawesome.io - @fontawesome\n * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License)\n */\n/* FONT PATH\n * -------------------------- */\n@font-face {\n font-family: 'FontAwesome';\n src: url('../fonts/fontawesome-webfont.eot?v=4.7.0');\n src: url('../fonts/fontawesome-webfont.eot?#iefix&v=4.7.0') format('embedded-opentype'), url('../fonts/fontawesome-webfont.woff2?v=4.7.0') format('woff2'), url('../fonts/fontawesome-webfont.woff?v=4.7.0') format('woff'), url('../fonts/fontawesome-webfont.ttf?v=4.7.0') format('truetype'), url('../fonts/fontawesome-webfont.svg?v=4.7.0#fontawesomeregular') format('svg');\n font-weight: normal;\n font-style: normal;\n}\n.fa {\n display: inline-block;\n font: normal normal normal 14px/1 FontAwesome;\n font-size: inherit;\n text-rendering: auto;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n}\n/* makes the font 33% larger relative to the icon container */\n.fa-lg {\n font-size: 1.33333333em;\n line-height: 0.75em;\n vertical-align: -15%;\n}\n.fa-2x {\n font-size: 2em;\n}\n.fa-3x {\n font-size: 3em;\n}\n.fa-4x {\n font-size: 4em;\n}\n.fa-5x {\n font-size: 5em;\n}\n.fa-fw {\n width: 1.28571429em;\n text-align: center;\n}\n.fa-ul {\n padding-left: 0;\n margin-left: 2.14285714em;\n list-style-type: none;\n}\n.fa-ul > li {\n position: relative;\n}\n.fa-li {\n position: absolute;\n left: -2.14285714em;\n width: 2.14285714em;\n top: 0.14285714em;\n text-align: center;\n}\n.fa-li.fa-lg {\n left: -1.85714286em;\n}\n.fa-border {\n padding: .2em .25em .15em;\n border: solid 0.08em #eeeeee;\n border-radius: .1em;\n}\n.fa-pull-left {\n float: left;\n}\n.fa-pull-right {\n float: right;\n}\n.fa.fa-pull-left {\n margin-right: .3em;\n}\n.fa.fa-pull-right {\n margin-left: .3em;\n}\n/* Deprecated as of 4.4.0 */\n.pull-right {\n float: right;\n}\n.pull-left {\n float: left;\n}\n.fa.pull-left {\n margin-right: .3em;\n}\n.fa.pull-right {\n margin-left: .3em;\n}\n.fa-spin {\n -webkit-animation: fa-spin 2s infinite linear;\n animation: fa-spin 2s infinite linear;\n}\n.fa-pulse {\n -webkit-animation: fa-spin 1s infinite steps(8);\n animation: fa-spin 1s infinite steps(8);\n}\n@-webkit-keyframes fa-spin {\n 0% {\n -webkit-transform: rotate(0deg);\n transform: rotate(0deg);\n }\n 100% {\n -webkit-transform: rotate(359deg);\n transform: rotate(359deg);\n }\n}\n@keyframes fa-spin {\n 0% {\n -webkit-transform: rotate(0deg);\n transform: rotate(0deg);\n }\n 100% {\n -webkit-transform: rotate(359deg);\n transform: rotate(359deg);\n }\n}\n.fa-rotate-90 {\n -ms-filter: \"progid:DXImageTransform.Microsoft.BasicImage(rotation=1)\";\n -webkit-transform: rotate(90deg);\n -ms-transform: rotate(90deg);\n transform: rotate(90deg);\n}\n.fa-rotate-180 {\n -ms-filter: \"progid:DXImageTransform.Microsoft.BasicImage(rotation=2)\";\n -webkit-transform: rotate(180deg);\n -ms-transform: rotate(180deg);\n transform: rotate(180deg);\n}\n.fa-rotate-270 {\n -ms-filter: \"progid:DXImageTransform.Microsoft.BasicImage(rotation=3)\";\n -webkit-transform: rotate(270deg);\n -ms-transform: rotate(270deg);\n transform: rotate(270deg);\n}\n.fa-flip-horizontal {\n -ms-filter: \"progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)\";\n -webkit-transform: scale(-1, 1);\n -ms-transform: scale(-1, 1);\n transform: scale(-1, 1);\n}\n.fa-flip-vertical {\n -ms-filter: \"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)\";\n -webkit-transform: scale(1, -1);\n -ms-transform: scale(1, -1);\n transform: scale(1, -1);\n}\n:root .fa-rotate-90,\n:root .fa-rotate-180,\n:root .fa-rotate-270,\n:root .fa-flip-horizontal,\n:root .fa-flip-vertical {\n filter: none;\n}\n.fa-stack {\n position: relative;\n display: inline-block;\n width: 2em;\n height: 2em;\n line-height: 2em;\n vertical-align: middle;\n}\n.fa-stack-1x,\n.fa-stack-2x {\n position: absolute;\n left: 0;\n width: 100%;\n text-align: center;\n}\n.fa-stack-1x {\n line-height: inherit;\n}\n.fa-stack-2x {\n font-size: 2em;\n}\n.fa-inverse {\n color: #ffffff;\n}\n/* Font Awesome uses the Unicode Private Use Area (PUA) to ensure screen\n readers do not read off random characters that represent icons */\n.fa-glass:before {\n content: \"\\f000\";\n}\n.fa-music:before {\n content: \"\\f001\";\n}\n.fa-search:before {\n content: \"\\f002\";\n}\n.fa-envelope-o:before {\n content: \"\\f003\";\n}\n.fa-heart:before {\n content: \"\\f004\";\n}\n.fa-star:before {\n content: \"\\f005\";\n}\n.fa-star-o:before {\n content: \"\\f006\";\n}\n.fa-user:before {\n content: \"\\f007\";\n}\n.fa-film:before {\n content: \"\\f008\";\n}\n.fa-th-large:before {\n content: \"\\f009\";\n}\n.fa-th:before {\n content: \"\\f00a\";\n}\n.fa-th-list:before {\n content: \"\\f00b\";\n}\n.fa-check:before {\n content: \"\\f00c\";\n}\n.fa-remove:before,\n.fa-close:before,\n.fa-times:before {\n content: \"\\f00d\";\n}\n.fa-search-plus:before {\n content: \"\\f00e\";\n}\n.fa-search-minus:before {\n content: \"\\f010\";\n}\n.fa-power-off:before {\n content: \"\\f011\";\n}\n.fa-signal:before {\n content: \"\\f012\";\n}\n.fa-gear:before,\n.fa-cog:before {\n content: \"\\f013\";\n}\n.fa-trash-o:before {\n content: \"\\f014\";\n}\n.fa-home:before {\n content: \"\\f015\";\n}\n.fa-file-o:before {\n content: \"\\f016\";\n}\n.fa-clock-o:before {\n content: \"\\f017\";\n}\n.fa-road:before {\n content: \"\\f018\";\n}\n.fa-download:before {\n content: \"\\f019\";\n}\n.fa-arrow-circle-o-down:before {\n content: \"\\f01a\";\n}\n.fa-arrow-circle-o-up:before {\n content: \"\\f01b\";\n}\n.fa-inbox:before {\n content: \"\\f01c\";\n}\n.fa-play-circle-o:before {\n content: \"\\f01d\";\n}\n.fa-rotate-right:before,\n.fa-repeat:before {\n content: \"\\f01e\";\n}\n.fa-refresh:before {\n content: \"\\f021\";\n}\n.fa-list-alt:before {\n content: \"\\f022\";\n}\n.fa-lock:before {\n content: \"\\f023\";\n}\n.fa-flag:before {\n content: \"\\f024\";\n}\n.fa-headphones:before {\n content: \"\\f025\";\n}\n.fa-volume-off:before {\n content: \"\\f026\";\n}\n.fa-volume-down:before {\n content: \"\\f027\";\n}\n.fa-volume-up:before {\n content: \"\\f028\";\n}\n.fa-qrcode:before {\n content: \"\\f029\";\n}\n.fa-barcode:before {\n content: \"\\f02a\";\n}\n.fa-tag:before {\n content: \"\\f02b\";\n}\n.fa-tags:before {\n content: \"\\f02c\";\n}\n.fa-book:before {\n content: \"\\f02d\";\n}\n.fa-bookmark:before {\n content: \"\\f02e\";\n}\n.fa-print:before {\n content: \"\\f02f\";\n}\n.fa-camera:before {\n content: \"\\f030\";\n}\n.fa-font:before {\n content: \"\\f031\";\n}\n.fa-bold:before {\n content: \"\\f032\";\n}\n.fa-italic:before {\n content: \"\\f033\";\n}\n.fa-text-height:before {\n content: \"\\f034\";\n}\n.fa-text-width:before {\n content: \"\\f035\";\n}\n.fa-align-left:before {\n content: \"\\f036\";\n}\n.fa-align-center:before {\n content: \"\\f037\";\n}\n.fa-align-right:before {\n content: \"\\f038\";\n}\n.fa-align-justify:before {\n content: \"\\f039\";\n}\n.fa-list:before {\n content: \"\\f03a\";\n}\n.fa-dedent:before,\n.fa-outdent:before {\n content: \"\\f03b\";\n}\n.fa-indent:before {\n content: \"\\f03c\";\n}\n.fa-video-camera:before {\n content: \"\\f03d\";\n}\n.fa-photo:before,\n.fa-image:before,\n.fa-picture-o:before {\n content: \"\\f03e\";\n}\n.fa-pencil:before {\n content: \"\\f040\";\n}\n.fa-map-marker:before {\n content: \"\\f041\";\n}\n.fa-adjust:before {\n content: \"\\f042\";\n}\n.fa-tint:before {\n content: \"\\f043\";\n}\n.fa-edit:before,\n.fa-pencil-square-o:before {\n content: \"\\f044\";\n}\n.fa-share-square-o:before {\n content: \"\\f045\";\n}\n.fa-check-square-o:before {\n content: \"\\f046\";\n}\n.fa-arrows:before {\n content: \"\\f047\";\n}\n.fa-step-backward:before {\n content: \"\\f048\";\n}\n.fa-fast-backward:before {\n content: \"\\f049\";\n}\n.fa-backward:before {\n content: \"\\f04a\";\n}\n.fa-play:before {\n content: \"\\f04b\";\n}\n.fa-pause:before {\n content: \"\\f04c\";\n}\n.fa-stop:before {\n content: \"\\f04d\";\n}\n.fa-forward:before {\n content: \"\\f04e\";\n}\n.fa-fast-forward:before {\n content: \"\\f050\";\n}\n.fa-step-forward:before {\n content: \"\\f051\";\n}\n.fa-eject:before {\n content: \"\\f052\";\n}\n.fa-chevron-left:before {\n content: \"\\f053\";\n}\n.fa-chevron-right:before {\n content: \"\\f054\";\n}\n.fa-plus-circle:before {\n content: \"\\f055\";\n}\n.fa-minus-circle:before {\n content: \"\\f056\";\n}\n.fa-times-circle:before {\n content: \"\\f057\";\n}\n.fa-check-circle:before {\n content: \"\\f058\";\n}\n.fa-question-circle:before {\n content: \"\\f059\";\n}\n.fa-info-circle:before {\n content: \"\\f05a\";\n}\n.fa-crosshairs:before {\n content: \"\\f05b\";\n}\n.fa-times-circle-o:before {\n content: \"\\f05c\";\n}\n.fa-check-circle-o:before {\n content: \"\\f05d\";\n}\n.fa-ban:before {\n content: \"\\f05e\";\n}\n.fa-arrow-left:before {\n content: \"\\f060\";\n}\n.fa-arrow-right:before {\n content: \"\\f061\";\n}\n.fa-arrow-up:before {\n content: \"\\f062\";\n}\n.fa-arrow-down:before {\n content: \"\\f063\";\n}\n.fa-mail-forward:before,\n.fa-share:before {\n content: \"\\f064\";\n}\n.fa-expand:before {\n content: \"\\f065\";\n}\n.fa-compress:before {\n content: \"\\f066\";\n}\n.fa-plus:before {\n content: \"\\f067\";\n}\n.fa-minus:before {\n content: \"\\f068\";\n}\n.fa-asterisk:before {\n content: \"\\f069\";\n}\n.fa-exclamation-circle:before {\n content: \"\\f06a\";\n}\n.fa-gift:before {\n content: \"\\f06b\";\n}\n.fa-leaf:before {\n content: \"\\f06c\";\n}\n.fa-fire:before {\n content: \"\\f06d\";\n}\n.fa-eye:before {\n content: \"\\f06e\";\n}\n.fa-eye-slash:before {\n content: \"\\f070\";\n}\n.fa-warning:before,\n.fa-exclamation-triangle:before {\n content: \"\\f071\";\n}\n.fa-plane:before {\n content: \"\\f072\";\n}\n.fa-calendar:before {\n content: \"\\f073\";\n}\n.fa-random:before {\n content: \"\\f074\";\n}\n.fa-comment:before {\n content: \"\\f075\";\n}\n.fa-magnet:before {\n content: \"\\f076\";\n}\n.fa-chevron-up:before {\n content: \"\\f077\";\n}\n.fa-chevron-down:before {\n content: \"\\f078\";\n}\n.fa-retweet:before {\n content: \"\\f079\";\n}\n.fa-shopping-cart:before {\n content: \"\\f07a\";\n}\n.fa-folder:before {\n content: \"\\f07b\";\n}\n.fa-folder-open:before {\n content: \"\\f07c\";\n}\n.fa-arrows-v:before {\n content: \"\\f07d\";\n}\n.fa-arrows-h:before {\n content: \"\\f07e\";\n}\n.fa-bar-chart-o:before,\n.fa-bar-chart:before {\n content: \"\\f080\";\n}\n.fa-twitter-square:before {\n content: \"\\f081\";\n}\n.fa-facebook-square:before {\n content: \"\\f082\";\n}\n.fa-camera-retro:before {\n content: \"\\f083\";\n}\n.fa-key:before {\n content: \"\\f084\";\n}\n.fa-gears:before,\n.fa-cogs:before {\n content: \"\\f085\";\n}\n.fa-comments:before {\n content: \"\\f086\";\n}\n.fa-thumbs-o-up:before {\n content: \"\\f087\";\n}\n.fa-thumbs-o-down:before {\n content: \"\\f088\";\n}\n.fa-star-half:before {\n content: \"\\f089\";\n}\n.fa-heart-o:before {\n content: \"\\f08a\";\n}\n.fa-sign-out:before {\n content: \"\\f08b\";\n}\n.fa-linkedin-square:before {\n content: \"\\f08c\";\n}\n.fa-thumb-tack:before {\n content: \"\\f08d\";\n}\n.fa-external-link:before {\n content: \"\\f08e\";\n}\n.fa-sign-in:before {\n content: \"\\f090\";\n}\n.fa-trophy:before {\n content: \"\\f091\";\n}\n.fa-github-square:before {\n content: \"\\f092\";\n}\n.fa-upload:before {\n content: \"\\f093\";\n}\n.fa-lemon-o:before {\n content: \"\\f094\";\n}\n.fa-phone:before {\n content: \"\\f095\";\n}\n.fa-square-o:before {\n content: \"\\f096\";\n}\n.fa-bookmark-o:before {\n content: \"\\f097\";\n}\n.fa-phone-square:before {\n content: \"\\f098\";\n}\n.fa-twitter:before {\n content: \"\\f099\";\n}\n.fa-facebook-f:before,\n.fa-facebook:before {\n content: \"\\f09a\";\n}\n.fa-github:before {\n content: \"\\f09b\";\n}\n.fa-unlock:before {\n content: \"\\f09c\";\n}\n.fa-credit-card:before {\n content: \"\\f09d\";\n}\n.fa-feed:before,\n.fa-rss:before {\n content: \"\\f09e\";\n}\n.fa-hdd-o:before {\n content: \"\\f0a0\";\n}\n.fa-bullhorn:before {\n content: \"\\f0a1\";\n}\n.fa-bell:before {\n content: \"\\f0f3\";\n}\n.fa-certificate:before {\n content: \"\\f0a3\";\n}\n.fa-hand-o-right:before {\n content: \"\\f0a4\";\n}\n.fa-hand-o-left:before {\n content: \"\\f0a5\";\n}\n.fa-hand-o-up:before {\n content: \"\\f0a6\";\n}\n.fa-hand-o-down:before {\n content: \"\\f0a7\";\n}\n.fa-arrow-circle-left:before {\n content: \"\\f0a8\";\n}\n.fa-arrow-circle-right:before {\n content: \"\\f0a9\";\n}\n.fa-arrow-circle-up:before {\n content: \"\\f0aa\";\n}\n.fa-arrow-circle-down:before {\n content: \"\\f0ab\";\n}\n.fa-globe:before {\n content: \"\\f0ac\";\n}\n.fa-wrench:before {\n content: \"\\f0ad\";\n}\n.fa-tasks:before {\n content: \"\\f0ae\";\n}\n.fa-filter:before {\n content: \"\\f0b0\";\n}\n.fa-briefcase:before {\n content: \"\\f0b1\";\n}\n.fa-arrows-alt:before {\n content: \"\\f0b2\";\n}\n.fa-group:before,\n.fa-users:before {\n content: \"\\f0c0\";\n}\n.fa-chain:before,\n.fa-link:before {\n content: \"\\f0c1\";\n}\n.fa-cloud:before {\n content: \"\\f0c2\";\n}\n.fa-flask:before {\n content: \"\\f0c3\";\n}\n.fa-cut:before,\n.fa-scissors:before {\n content: \"\\f0c4\";\n}\n.fa-copy:before,\n.fa-files-o:before {\n content: \"\\f0c5\";\n}\n.fa-paperclip:before {\n content: \"\\f0c6\";\n}\n.fa-save:before,\n.fa-floppy-o:before {\n content: \"\\f0c7\";\n}\n.fa-square:before {\n content: \"\\f0c8\";\n}\n.fa-navicon:before,\n.fa-reorder:before,\n.fa-bars:before {\n content: \"\\f0c9\";\n}\n.fa-list-ul:before {\n content: \"\\f0ca\";\n}\n.fa-list-ol:before {\n content: \"\\f0cb\";\n}\n.fa-strikethrough:before {\n content: \"\\f0cc\";\n}\n.fa-underline:before {\n content: \"\\f0cd\";\n}\n.fa-table:before {\n content: \"\\f0ce\";\n}\n.fa-magic:before {\n content: \"\\f0d0\";\n}\n.fa-truck:before {\n content: \"\\f0d1\";\n}\n.fa-pinterest:before {\n content: \"\\f0d2\";\n}\n.fa-pinterest-square:before {\n content: \"\\f0d3\";\n}\n.fa-google-plus-square:before {\n content: \"\\f0d4\";\n}\n.fa-google-plus:before {\n content: \"\\f0d5\";\n}\n.fa-money:before {\n content: \"\\f0d6\";\n}\n.fa-caret-down:before {\n content: \"\\f0d7\";\n}\n.fa-caret-up:before {\n content: \"\\f0d8\";\n}\n.fa-caret-left:before {\n content: \"\\f0d9\";\n}\n.fa-caret-right:before {\n content: \"\\f0da\";\n}\n.fa-columns:before {\n content: \"\\f0db\";\n}\n.fa-unsorted:before,\n.fa-sort:before {\n content: \"\\f0dc\";\n}\n.fa-sort-down:before,\n.fa-sort-desc:before {\n content: \"\\f0dd\";\n}\n.fa-sort-up:before,\n.fa-sort-asc:before {\n content: \"\\f0de\";\n}\n.fa-envelope:before {\n content: \"\\f0e0\";\n}\n.fa-linkedin:before {\n content: \"\\f0e1\";\n}\n.fa-rotate-left:before,\n.fa-undo:before {\n content: \"\\f0e2\";\n}\n.fa-legal:before,\n.fa-gavel:before {\n content: \"\\f0e3\";\n}\n.fa-dashboard:before,\n.fa-tachometer:before {\n content: \"\\f0e4\";\n}\n.fa-comment-o:before {\n content: \"\\f0e5\";\n}\n.fa-comments-o:before {\n content: \"\\f0e6\";\n}\n.fa-flash:before,\n.fa-bolt:before {\n content: \"\\f0e7\";\n}\n.fa-sitemap:before {\n content: \"\\f0e8\";\n}\n.fa-umbrella:before {\n content: \"\\f0e9\";\n}\n.fa-paste:before,\n.fa-clipboard:before {\n content: \"\\f0ea\";\n}\n.fa-lightbulb-o:before {\n content: \"\\f0eb\";\n}\n.fa-exchange:before {\n content: \"\\f0ec\";\n}\n.fa-cloud-download:before {\n content: \"\\f0ed\";\n}\n.fa-cloud-upload:before {\n content: \"\\f0ee\";\n}\n.fa-user-md:before {\n content: \"\\f0f0\";\n}\n.fa-stethoscope:before {\n content: \"\\f0f1\";\n}\n.fa-suitcase:before {\n content: \"\\f0f2\";\n}\n.fa-bell-o:before {\n content: \"\\f0a2\";\n}\n.fa-coffee:before {\n content: \"\\f0f4\";\n}\n.fa-cutlery:before {\n content: \"\\f0f5\";\n}\n.fa-file-text-o:before {\n content: \"\\f0f6\";\n}\n.fa-building-o:before {\n content: \"\\f0f7\";\n}\n.fa-hospital-o:before {\n content: \"\\f0f8\";\n}\n.fa-ambulance:before {\n content: \"\\f0f9\";\n}\n.fa-medkit:before {\n content: \"\\f0fa\";\n}\n.fa-fighter-jet:before {\n content: \"\\f0fb\";\n}\n.fa-beer:before {\n content: \"\\f0fc\";\n}\n.fa-h-square:before {\n content: \"\\f0fd\";\n}\n.fa-plus-square:before {\n content: \"\\f0fe\";\n}\n.fa-angle-double-left:before {\n content: \"\\f100\";\n}\n.fa-angle-double-right:before {\n content: \"\\f101\";\n}\n.fa-angle-double-up:before {\n content: \"\\f102\";\n}\n.fa-angle-double-down:before {\n content: \"\\f103\";\n}\n.fa-angle-left:before {\n content: \"\\f104\";\n}\n.fa-angle-right:before {\n content: \"\\f105\";\n}\n.fa-angle-up:before {\n content: \"\\f106\";\n}\n.fa-angle-down:before {\n content: \"\\f107\";\n}\n.fa-desktop:before {\n content: \"\\f108\";\n}\n.fa-laptop:before {\n content: \"\\f109\";\n}\n.fa-tablet:before {\n content: \"\\f10a\";\n}\n.fa-mobile-phone:before,\n.fa-mobile:before {\n content: \"\\f10b\";\n}\n.fa-circle-o:before {\n content: \"\\f10c\";\n}\n.fa-quote-left:before {\n content: \"\\f10d\";\n}\n.fa-quote-right:before {\n content: \"\\f10e\";\n}\n.fa-spinner:before {\n content: \"\\f110\";\n}\n.fa-circle:before {\n content: \"\\f111\";\n}\n.fa-mail-reply:before,\n.fa-reply:before {\n content: \"\\f112\";\n}\n.fa-github-alt:before {\n content: \"\\f113\";\n}\n.fa-folder-o:before {\n content: \"\\f114\";\n}\n.fa-folder-open-o:before {\n content: \"\\f115\";\n}\n.fa-smile-o:before {\n content: \"\\f118\";\n}\n.fa-frown-o:before {\n content: \"\\f119\";\n}\n.fa-meh-o:before {\n content: \"\\f11a\";\n}\n.fa-gamepad:before {\n content: \"\\f11b\";\n}\n.fa-keyboard-o:before {\n content: \"\\f11c\";\n}\n.fa-flag-o:before {\n content: \"\\f11d\";\n}\n.fa-flag-checkered:before {\n content: \"\\f11e\";\n}\n.fa-terminal:before {\n content: \"\\f120\";\n}\n.fa-code:before {\n content: \"\\f121\";\n}\n.fa-mail-reply-all:before,\n.fa-reply-all:before {\n content: \"\\f122\";\n}\n.fa-star-half-empty:before,\n.fa-star-half-full:before,\n.fa-star-half-o:before {\n content: \"\\f123\";\n}\n.fa-location-arrow:before {\n content: \"\\f124\";\n}\n.fa-crop:before {\n content: \"\\f125\";\n}\n.fa-code-fork:before {\n content: \"\\f126\";\n}\n.fa-unlink:before,\n.fa-chain-broken:before {\n content: \"\\f127\";\n}\n.fa-question:before {\n content: \"\\f128\";\n}\n.fa-info:before {\n content: \"\\f129\";\n}\n.fa-exclamation:before {\n content: \"\\f12a\";\n}\n.fa-superscript:before {\n content: \"\\f12b\";\n}\n.fa-subscript:before {\n content: \"\\f12c\";\n}\n.fa-eraser:before {\n content: \"\\f12d\";\n}\n.fa-puzzle-piece:before {\n content: \"\\f12e\";\n}\n.fa-microphone:before {\n content: \"\\f130\";\n}\n.fa-microphone-slash:before {\n content: \"\\f131\";\n}\n.fa-shield:before {\n content: \"\\f132\";\n}\n.fa-calendar-o:before {\n content: \"\\f133\";\n}\n.fa-fire-extinguisher:before {\n content: \"\\f134\";\n}\n.fa-rocket:before {\n content: \"\\f135\";\n}\n.fa-maxcdn:before {\n content: \"\\f136\";\n}\n.fa-chevron-circle-left:before {\n content: \"\\f137\";\n}\n.fa-chevron-circle-right:before {\n content: \"\\f138\";\n}\n.fa-chevron-circle-up:before {\n content: \"\\f139\";\n}\n.fa-chevron-circle-down:before {\n content: \"\\f13a\";\n}\n.fa-html5:before {\n content: \"\\f13b\";\n}\n.fa-css3:before {\n content: \"\\f13c\";\n}\n.fa-anchor:before {\n content: \"\\f13d\";\n}\n.fa-unlock-alt:before {\n content: \"\\f13e\";\n}\n.fa-bullseye:before {\n content: \"\\f140\";\n}\n.fa-ellipsis-h:before {\n content: \"\\f141\";\n}\n.fa-ellipsis-v:before {\n content: \"\\f142\";\n}\n.fa-rss-square:before {\n content: \"\\f143\";\n}\n.fa-play-circle:before {\n content: \"\\f144\";\n}\n.fa-ticket:before {\n content: \"\\f145\";\n}\n.fa-minus-square:before {\n content: \"\\f146\";\n}\n.fa-minus-square-o:before {\n content: \"\\f147\";\n}\n.fa-level-up:before {\n content: \"\\f148\";\n}\n.fa-level-down:before {\n content: \"\\f149\";\n}\n.fa-check-square:before {\n content: \"\\f14a\";\n}\n.fa-pencil-square:before {\n content: \"\\f14b\";\n}\n.fa-external-link-square:before {\n content: \"\\f14c\";\n}\n.fa-share-square:before {\n content: \"\\f14d\";\n}\n.fa-compass:before {\n content: \"\\f14e\";\n}\n.fa-toggle-down:before,\n.fa-caret-square-o-down:before {\n content: \"\\f150\";\n}\n.fa-toggle-up:before,\n.fa-caret-square-o-up:before {\n content: \"\\f151\";\n}\n.fa-toggle-right:before,\n.fa-caret-square-o-right:before {\n content: \"\\f152\";\n}\n.fa-euro:before,\n.fa-eur:before {\n content: \"\\f153\";\n}\n.fa-gbp:before {\n content: \"\\f154\";\n}\n.fa-dollar:before,\n.fa-usd:before {\n content: \"\\f155\";\n}\n.fa-rupee:before,\n.fa-inr:before {\n content: \"\\f156\";\n}\n.fa-cny:before,\n.fa-rmb:before,\n.fa-yen:before,\n.fa-jpy:before {\n content: \"\\f157\";\n}\n.fa-ruble:before,\n.fa-rouble:before,\n.fa-rub:before {\n content: \"\\f158\";\n}\n.fa-won:before,\n.fa-krw:before {\n content: \"\\f159\";\n}\n.fa-bitcoin:before,\n.fa-btc:before {\n content: \"\\f15a\";\n}\n.fa-file:before {\n content: \"\\f15b\";\n}\n.fa-file-text:before {\n content: \"\\f15c\";\n}\n.fa-sort-alpha-asc:before {\n content: \"\\f15d\";\n}\n.fa-sort-alpha-desc:before {\n content: \"\\f15e\";\n}\n.fa-sort-amount-asc:before {\n content: \"\\f160\";\n}\n.fa-sort-amount-desc:before {\n content: \"\\f161\";\n}\n.fa-sort-numeric-asc:before {\n content: \"\\f162\";\n}\n.fa-sort-numeric-desc:before {\n content: \"\\f163\";\n}\n.fa-thumbs-up:before {\n content: \"\\f164\";\n}\n.fa-thumbs-down:before {\n content: \"\\f165\";\n}\n.fa-youtube-square:before {\n content: \"\\f166\";\n}\n.fa-youtube:before {\n content: \"\\f167\";\n}\n.fa-xing:before {\n content: \"\\f168\";\n}\n.fa-xing-square:before {\n content: \"\\f169\";\n}\n.fa-youtube-play:before {\n content: \"\\f16a\";\n}\n.fa-dropbox:before {\n content: \"\\f16b\";\n}\n.fa-stack-overflow:before {\n content: \"\\f16c\";\n}\n.fa-instagram:before {\n content: \"\\f16d\";\n}\n.fa-flickr:before {\n content: \"\\f16e\";\n}\n.fa-adn:before {\n content: \"\\f170\";\n}\n.fa-bitbucket:before {\n content: \"\\f171\";\n}\n.fa-bitbucket-square:before {\n content: \"\\f172\";\n}\n.fa-tumblr:before {\n content: \"\\f173\";\n}\n.fa-tumblr-square:before {\n content: \"\\f174\";\n}\n.fa-long-arrow-down:before {\n content: \"\\f175\";\n}\n.fa-long-arrow-up:before {\n content: \"\\f176\";\n}\n.fa-long-arrow-left:before {\n content: \"\\f177\";\n}\n.fa-long-arrow-right:before {\n content: \"\\f178\";\n}\n.fa-apple:before {\n content: \"\\f179\";\n}\n.fa-windows:before {\n content: \"\\f17a\";\n}\n.fa-android:before {\n content: \"\\f17b\";\n}\n.fa-linux:before {\n content: \"\\f17c\";\n}\n.fa-dribbble:before {\n content: \"\\f17d\";\n}\n.fa-skype:before {\n content: \"\\f17e\";\n}\n.fa-foursquare:before {\n content: \"\\f180\";\n}\n.fa-trello:before {\n content: \"\\f181\";\n}\n.fa-female:before {\n content: \"\\f182\";\n}\n.fa-male:before {\n content: \"\\f183\";\n}\n.fa-gittip:before,\n.fa-gratipay:before {\n content: \"\\f184\";\n}\n.fa-sun-o:before {\n content: \"\\f185\";\n}\n.fa-moon-o:before {\n content: \"\\f186\";\n}\n.fa-archive:before {\n content: \"\\f187\";\n}\n.fa-bug:before {\n content: \"\\f188\";\n}\n.fa-vk:before {\n content: \"\\f189\";\n}\n.fa-weibo:before {\n content: \"\\f18a\";\n}\n.fa-renren:before {\n content: \"\\f18b\";\n}\n.fa-pagelines:before {\n content: \"\\f18c\";\n}\n.fa-stack-exchange:before {\n content: \"\\f18d\";\n}\n.fa-arrow-circle-o-right:before {\n content: \"\\f18e\";\n}\n.fa-arrow-circle-o-left:before {\n content: \"\\f190\";\n}\n.fa-toggle-left:before,\n.fa-caret-square-o-left:before {\n content: \"\\f191\";\n}\n.fa-dot-circle-o:before {\n content: \"\\f192\";\n}\n.fa-wheelchair:before {\n content: \"\\f193\";\n}\n.fa-vimeo-square:before {\n content: \"\\f194\";\n}\n.fa-turkish-lira:before,\n.fa-try:before {\n content: \"\\f195\";\n}\n.fa-plus-square-o:before {\n content: \"\\f196\";\n}\n.fa-space-shuttle:before {\n content: \"\\f197\";\n}\n.fa-slack:before {\n content: \"\\f198\";\n}\n.fa-envelope-square:before {\n content: \"\\f199\";\n}\n.fa-wordpress:before {\n content: \"\\f19a\";\n}\n.fa-openid:before {\n content: \"\\f19b\";\n}\n.fa-institution:before,\n.fa-bank:before,\n.fa-university:before {\n content: \"\\f19c\";\n}\n.fa-mortar-board:before,\n.fa-graduation-cap:before {\n content: \"\\f19d\";\n}\n.fa-yahoo:before {\n content: \"\\f19e\";\n}\n.fa-google:before {\n content: \"\\f1a0\";\n}\n.fa-reddit:before {\n content: \"\\f1a1\";\n}\n.fa-reddit-square:before {\n content: \"\\f1a2\";\n}\n.fa-stumbleupon-circle:before {\n content: \"\\f1a3\";\n}\n.fa-stumbleupon:before {\n content: \"\\f1a4\";\n}\n.fa-delicious:before {\n content: \"\\f1a5\";\n}\n.fa-digg:before {\n content: \"\\f1a6\";\n}\n.fa-pied-piper-pp:before {\n content: \"\\f1a7\";\n}\n.fa-pied-piper-alt:before {\n content: \"\\f1a8\";\n}\n.fa-drupal:before {\n content: \"\\f1a9\";\n}\n.fa-joomla:before {\n content: \"\\f1aa\";\n}\n.fa-language:before {\n content: \"\\f1ab\";\n}\n.fa-fax:before {\n content: \"\\f1ac\";\n}\n.fa-building:before {\n content: \"\\f1ad\";\n}\n.fa-child:before {\n content: \"\\f1ae\";\n}\n.fa-paw:before {\n content: \"\\f1b0\";\n}\n.fa-spoon:before {\n content: \"\\f1b1\";\n}\n.fa-cube:before {\n content: \"\\f1b2\";\n}\n.fa-cubes:before {\n content: \"\\f1b3\";\n}\n.fa-behance:before {\n content: \"\\f1b4\";\n}\n.fa-behance-square:before {\n content: \"\\f1b5\";\n}\n.fa-steam:before {\n content: \"\\f1b6\";\n}\n.fa-steam-square:before {\n content: \"\\f1b7\";\n}\n.fa-recycle:before {\n content: \"\\f1b8\";\n}\n.fa-automobile:before,\n.fa-car:before {\n content: \"\\f1b9\";\n}\n.fa-cab:before,\n.fa-taxi:before {\n content: \"\\f1ba\";\n}\n.fa-tree:before {\n content: \"\\f1bb\";\n}\n.fa-spotify:before {\n content: \"\\f1bc\";\n}\n.fa-deviantart:before {\n content: \"\\f1bd\";\n}\n.fa-soundcloud:before {\n content: \"\\f1be\";\n}\n.fa-database:before {\n content: \"\\f1c0\";\n}\n.fa-file-pdf-o:before {\n content: \"\\f1c1\";\n}\n.fa-file-word-o:before {\n content: \"\\f1c2\";\n}\n.fa-file-excel-o:before {\n content: \"\\f1c3\";\n}\n.fa-file-powerpoint-o:before {\n content: \"\\f1c4\";\n}\n.fa-file-photo-o:before,\n.fa-file-picture-o:before,\n.fa-file-image-o:before {\n content: \"\\f1c5\";\n}\n.fa-file-zip-o:before,\n.fa-file-archive-o:before {\n content: \"\\f1c6\";\n}\n.fa-file-sound-o:before,\n.fa-file-audio-o:before {\n content: \"\\f1c7\";\n}\n.fa-file-movie-o:before,\n.fa-file-video-o:before {\n content: \"\\f1c8\";\n}\n.fa-file-code-o:before {\n content: \"\\f1c9\";\n}\n.fa-vine:before {\n content: \"\\f1ca\";\n}\n.fa-codepen:before {\n content: \"\\f1cb\";\n}\n.fa-jsfiddle:before {\n content: \"\\f1cc\";\n}\n.fa-life-bouy:before,\n.fa-life-buoy:before,\n.fa-life-saver:before,\n.fa-support:before,\n.fa-life-ring:before {\n content: \"\\f1cd\";\n}\n.fa-circle-o-notch:before {\n content: \"\\f1ce\";\n}\n.fa-ra:before,\n.fa-resistance:before,\n.fa-rebel:before {\n content: \"\\f1d0\";\n}\n.fa-ge:before,\n.fa-empire:before {\n content: \"\\f1d1\";\n}\n.fa-git-square:before {\n content: \"\\f1d2\";\n}\n.fa-git:before {\n content: \"\\f1d3\";\n}\n.fa-y-combinator-square:before,\n.fa-yc-square:before,\n.fa-hacker-news:before {\n content: \"\\f1d4\";\n}\n.fa-tencent-weibo:before {\n content: \"\\f1d5\";\n}\n.fa-qq:before {\n content: \"\\f1d6\";\n}\n.fa-wechat:before,\n.fa-weixin:before {\n content: \"\\f1d7\";\n}\n.fa-send:before,\n.fa-paper-plane:before {\n content: \"\\f1d8\";\n}\n.fa-send-o:before,\n.fa-paper-plane-o:before {\n content: \"\\f1d9\";\n}\n.fa-history:before {\n content: \"\\f1da\";\n}\n.fa-circle-thin:before {\n content: \"\\f1db\";\n}\n.fa-header:before {\n content: \"\\f1dc\";\n}\n.fa-paragraph:before {\n content: \"\\f1dd\";\n}\n.fa-sliders:before {\n content: \"\\f1de\";\n}\n.fa-share-alt:before {\n content: \"\\f1e0\";\n}\n.fa-share-alt-square:before {\n content: \"\\f1e1\";\n}\n.fa-bomb:before {\n content: \"\\f1e2\";\n}\n.fa-soccer-ball-o:before,\n.fa-futbol-o:before {\n content: \"\\f1e3\";\n}\n.fa-tty:before {\n content: \"\\f1e4\";\n}\n.fa-binoculars:before {\n content: \"\\f1e5\";\n}\n.fa-plug:before {\n content: \"\\f1e6\";\n}\n.fa-slideshare:before {\n content: \"\\f1e7\";\n}\n.fa-twitch:before {\n content: \"\\f1e8\";\n}\n.fa-yelp:before {\n content: \"\\f1e9\";\n}\n.fa-newspaper-o:before {\n content: \"\\f1ea\";\n}\n.fa-wifi:before {\n content: \"\\f1eb\";\n}\n.fa-calculator:before {\n content: \"\\f1ec\";\n}\n.fa-paypal:before {\n content: \"\\f1ed\";\n}\n.fa-google-wallet:before {\n content: \"\\f1ee\";\n}\n.fa-cc-visa:before {\n content: \"\\f1f0\";\n}\n.fa-cc-mastercard:before {\n content: \"\\f1f1\";\n}\n.fa-cc-discover:before {\n content: \"\\f1f2\";\n}\n.fa-cc-amex:before {\n content: \"\\f1f3\";\n}\n.fa-cc-paypal:before {\n content: \"\\f1f4\";\n}\n.fa-cc-stripe:before {\n content: \"\\f1f5\";\n}\n.fa-bell-slash:before {\n content: \"\\f1f6\";\n}\n.fa-bell-slash-o:before {\n content: \"\\f1f7\";\n}\n.fa-trash:before {\n content: \"\\f1f8\";\n}\n.fa-copyright:before {\n content: \"\\f1f9\";\n}\n.fa-at:before {\n content: \"\\f1fa\";\n}\n.fa-eyedropper:before {\n content: \"\\f1fb\";\n}\n.fa-paint-brush:before {\n content: \"\\f1fc\";\n}\n.fa-birthday-cake:before {\n content: \"\\f1fd\";\n}\n.fa-area-chart:before {\n content: \"\\f1fe\";\n}\n.fa-pie-chart:before {\n content: \"\\f200\";\n}\n.fa-line-chart:before {\n content: \"\\f201\";\n}\n.fa-lastfm:before {\n content: \"\\f202\";\n}\n.fa-lastfm-square:before {\n content: \"\\f203\";\n}\n.fa-toggle-off:before {\n content: \"\\f204\";\n}\n.fa-toggle-on:before {\n content: \"\\f205\";\n}\n.fa-bicycle:before {\n content: \"\\f206\";\n}\n.fa-bus:before {\n content: \"\\f207\";\n}\n.fa-ioxhost:before {\n content: \"\\f208\";\n}\n.fa-angellist:before {\n content: \"\\f209\";\n}\n.fa-cc:before {\n content: \"\\f20a\";\n}\n.fa-shekel:before,\n.fa-sheqel:before,\n.fa-ils:before {\n content: \"\\f20b\";\n}\n.fa-meanpath:before {\n content: \"\\f20c\";\n}\n.fa-buysellads:before {\n content: \"\\f20d\";\n}\n.fa-connectdevelop:before {\n content: \"\\f20e\";\n}\n.fa-dashcube:before {\n content: \"\\f210\";\n}\n.fa-forumbee:before {\n content: \"\\f211\";\n}\n.fa-leanpub:before {\n content: \"\\f212\";\n}\n.fa-sellsy:before {\n content: \"\\f213\";\n}\n.fa-shirtsinbulk:before {\n content: \"\\f214\";\n}\n.fa-simplybuilt:before {\n content: \"\\f215\";\n}\n.fa-skyatlas:before {\n content: \"\\f216\";\n}\n.fa-cart-plus:before {\n content: \"\\f217\";\n}\n.fa-cart-arrow-down:before {\n content: \"\\f218\";\n}\n.fa-diamond:before {\n content: \"\\f219\";\n}\n.fa-ship:before {\n content: \"\\f21a\";\n}\n.fa-user-secret:before {\n content: \"\\f21b\";\n}\n.fa-motorcycle:before {\n content: \"\\f21c\";\n}\n.fa-street-view:before {\n content: \"\\f21d\";\n}\n.fa-heartbeat:before {\n content: \"\\f21e\";\n}\n.fa-venus:before {\n content: \"\\f221\";\n}\n.fa-mars:before {\n content: \"\\f222\";\n}\n.fa-mercury:before {\n content: \"\\f223\";\n}\n.fa-intersex:before,\n.fa-transgender:before {\n content: \"\\f224\";\n}\n.fa-transgender-alt:before {\n content: \"\\f225\";\n}\n.fa-venus-double:before {\n content: \"\\f226\";\n}\n.fa-mars-double:before {\n content: \"\\f227\";\n}\n.fa-venus-mars:before {\n content: \"\\f228\";\n}\n.fa-mars-stroke:before {\n content: \"\\f229\";\n}\n.fa-mars-stroke-v:before {\n content: \"\\f22a\";\n}\n.fa-mars-stroke-h:before {\n content: \"\\f22b\";\n}\n.fa-neuter:before {\n content: \"\\f22c\";\n}\n.fa-genderless:before {\n content: \"\\f22d\";\n}\n.fa-facebook-official:before {\n content: \"\\f230\";\n}\n.fa-pinterest-p:before {\n content: \"\\f231\";\n}\n.fa-whatsapp:before {\n content: \"\\f232\";\n}\n.fa-server:before {\n content: \"\\f233\";\n}\n.fa-user-plus:before {\n content: \"\\f234\";\n}\n.fa-user-times:before {\n content: \"\\f235\";\n}\n.fa-hotel:before,\n.fa-bed:before {\n content: \"\\f236\";\n}\n.fa-viacoin:before {\n content: \"\\f237\";\n}\n.fa-train:before {\n content: \"\\f238\";\n}\n.fa-subway:before {\n content: \"\\f239\";\n}\n.fa-medium:before {\n content: \"\\f23a\";\n}\n.fa-yc:before,\n.fa-y-combinator:before {\n content: \"\\f23b\";\n}\n.fa-optin-monster:before {\n content: \"\\f23c\";\n}\n.fa-opencart:before {\n content: \"\\f23d\";\n}\n.fa-expeditedssl:before {\n content: \"\\f23e\";\n}\n.fa-battery-4:before,\n.fa-battery:before,\n.fa-battery-full:before {\n content: \"\\f240\";\n}\n.fa-battery-3:before,\n.fa-battery-three-quarters:before {\n content: \"\\f241\";\n}\n.fa-battery-2:before,\n.fa-battery-half:before {\n content: \"\\f242\";\n}\n.fa-battery-1:before,\n.fa-battery-quarter:before {\n content: \"\\f243\";\n}\n.fa-battery-0:before,\n.fa-battery-empty:before {\n content: \"\\f244\";\n}\n.fa-mouse-pointer:before {\n content: \"\\f245\";\n}\n.fa-i-cursor:before {\n content: \"\\f246\";\n}\n.fa-object-group:before {\n content: \"\\f247\";\n}\n.fa-object-ungroup:before {\n content: \"\\f248\";\n}\n.fa-sticky-note:before {\n content: \"\\f249\";\n}\n.fa-sticky-note-o:before {\n content: \"\\f24a\";\n}\n.fa-cc-jcb:before {\n content: \"\\f24b\";\n}\n.fa-cc-diners-club:before {\n content: \"\\f24c\";\n}\n.fa-clone:before {\n content: \"\\f24d\";\n}\n.fa-balance-scale:before {\n content: \"\\f24e\";\n}\n.fa-hourglass-o:before {\n content: \"\\f250\";\n}\n.fa-hourglass-1:before,\n.fa-hourglass-start:before {\n content: \"\\f251\";\n}\n.fa-hourglass-2:before,\n.fa-hourglass-half:before {\n content: \"\\f252\";\n}\n.fa-hourglass-3:before,\n.fa-hourglass-end:before {\n content: \"\\f253\";\n}\n.fa-hourglass:before {\n content: \"\\f254\";\n}\n.fa-hand-grab-o:before,\n.fa-hand-rock-o:before {\n content: \"\\f255\";\n}\n.fa-hand-stop-o:before,\n.fa-hand-paper-o:before {\n content: \"\\f256\";\n}\n.fa-hand-scissors-o:before {\n content: \"\\f257\";\n}\n.fa-hand-lizard-o:before {\n content: \"\\f258\";\n}\n.fa-hand-spock-o:before {\n content: \"\\f259\";\n}\n.fa-hand-pointer-o:before {\n content: \"\\f25a\";\n}\n.fa-hand-peace-o:before {\n content: \"\\f25b\";\n}\n.fa-trademark:before {\n content: \"\\f25c\";\n}\n.fa-registered:before {\n content: \"\\f25d\";\n}\n.fa-creative-commons:before {\n content: \"\\f25e\";\n}\n.fa-gg:before {\n content: \"\\f260\";\n}\n.fa-gg-circle:before {\n content: \"\\f261\";\n}\n.fa-tripadvisor:before {\n content: \"\\f262\";\n}\n.fa-odnoklassniki:before {\n content: \"\\f263\";\n}\n.fa-odnoklassniki-square:before {\n content: \"\\f264\";\n}\n.fa-get-pocket:before {\n content: \"\\f265\";\n}\n.fa-wikipedia-w:before {\n content: \"\\f266\";\n}\n.fa-safari:before {\n content: \"\\f267\";\n}\n.fa-chrome:before {\n content: \"\\f268\";\n}\n.fa-firefox:before {\n content: \"\\f269\";\n}\n.fa-opera:before {\n content: \"\\f26a\";\n}\n.fa-internet-explorer:before {\n content: \"\\f26b\";\n}\n.fa-tv:before,\n.fa-television:before {\n content: \"\\f26c\";\n}\n.fa-contao:before {\n content: \"\\f26d\";\n}\n.fa-500px:before {\n content: \"\\f26e\";\n}\n.fa-amazon:before {\n content: \"\\f270\";\n}\n.fa-calendar-plus-o:before {\n content: \"\\f271\";\n}\n.fa-calendar-minus-o:before {\n content: \"\\f272\";\n}\n.fa-calendar-times-o:before {\n content: \"\\f273\";\n}\n.fa-calendar-check-o:before {\n content: \"\\f274\";\n}\n.fa-industry:before {\n content: \"\\f275\";\n}\n.fa-map-pin:before {\n content: \"\\f276\";\n}\n.fa-map-signs:before {\n content: \"\\f277\";\n}\n.fa-map-o:before {\n content: \"\\f278\";\n}\n.fa-map:before {\n content: \"\\f279\";\n}\n.fa-commenting:before {\n content: \"\\f27a\";\n}\n.fa-commenting-o:before {\n content: \"\\f27b\";\n}\n.fa-houzz:before {\n content: \"\\f27c\";\n}\n.fa-vimeo:before {\n content: \"\\f27d\";\n}\n.fa-black-tie:before {\n content: \"\\f27e\";\n}\n.fa-fonticons:before {\n content: \"\\f280\";\n}\n.fa-reddit-alien:before {\n content: \"\\f281\";\n}\n.fa-edge:before {\n content: \"\\f282\";\n}\n.fa-credit-card-alt:before {\n content: \"\\f283\";\n}\n.fa-codiepie:before {\n content: \"\\f284\";\n}\n.fa-modx:before {\n content: \"\\f285\";\n}\n.fa-fort-awesome:before {\n content: \"\\f286\";\n}\n.fa-usb:before {\n content: \"\\f287\";\n}\n.fa-product-hunt:before {\n content: \"\\f288\";\n}\n.fa-mixcloud:before {\n content: \"\\f289\";\n}\n.fa-scribd:before {\n content: \"\\f28a\";\n}\n.fa-pause-circle:before {\n content: \"\\f28b\";\n}\n.fa-pause-circle-o:before {\n content: \"\\f28c\";\n}\n.fa-stop-circle:before {\n content: \"\\f28d\";\n}\n.fa-stop-circle-o:before {\n content: \"\\f28e\";\n}\n.fa-shopping-bag:before {\n content: \"\\f290\";\n}\n.fa-shopping-basket:before {\n content: \"\\f291\";\n}\n.fa-hashtag:before {\n content: \"\\f292\";\n}\n.fa-bluetooth:before {\n content: \"\\f293\";\n}\n.fa-bluetooth-b:before {\n content: \"\\f294\";\n}\n.fa-percent:before {\n content: \"\\f295\";\n}\n.fa-gitlab:before {\n content: \"\\f296\";\n}\n.fa-wpbeginner:before {\n content: \"\\f297\";\n}\n.fa-wpforms:before {\n content: \"\\f298\";\n}\n.fa-envira:before {\n content: \"\\f299\";\n}\n.fa-universal-access:before {\n content: \"\\f29a\";\n}\n.fa-wheelchair-alt:before {\n content: \"\\f29b\";\n}\n.fa-question-circle-o:before {\n content: \"\\f29c\";\n}\n.fa-blind:before {\n content: \"\\f29d\";\n}\n.fa-audio-description:before {\n content: \"\\f29e\";\n}\n.fa-volume-control-phone:before {\n content: \"\\f2a0\";\n}\n.fa-braille:before {\n content: \"\\f2a1\";\n}\n.fa-assistive-listening-systems:before {\n content: \"\\f2a2\";\n}\n.fa-asl-interpreting:before,\n.fa-american-sign-language-interpreting:before {\n content: \"\\f2a3\";\n}\n.fa-deafness:before,\n.fa-hard-of-hearing:before,\n.fa-deaf:before {\n content: \"\\f2a4\";\n}\n.fa-glide:before {\n content: \"\\f2a5\";\n}\n.fa-glide-g:before {\n content: \"\\f2a6\";\n}\n.fa-signing:before,\n.fa-sign-language:before {\n content: \"\\f2a7\";\n}\n.fa-low-vision:before {\n content: \"\\f2a8\";\n}\n.fa-viadeo:before {\n content: \"\\f2a9\";\n}\n.fa-viadeo-square:before {\n content: \"\\f2aa\";\n}\n.fa-snapchat:before {\n content: \"\\f2ab\";\n}\n.fa-snapchat-ghost:before {\n content: \"\\f2ac\";\n}\n.fa-snapchat-square:before {\n content: \"\\f2ad\";\n}\n.fa-pied-piper:before {\n content: \"\\f2ae\";\n}\n.fa-first-order:before {\n content: \"\\f2b0\";\n}\n.fa-yoast:before {\n content: \"\\f2b1\";\n}\n.fa-themeisle:before {\n content: \"\\f2b2\";\n}\n.fa-google-plus-circle:before,\n.fa-google-plus-official:before {\n content: \"\\f2b3\";\n}\n.fa-fa:before,\n.fa-font-awesome:before {\n content: \"\\f2b4\";\n}\n.fa-handshake-o:before {\n content: \"\\f2b5\";\n}\n.fa-envelope-open:before {\n content: \"\\f2b6\";\n}\n.fa-envelope-open-o:before {\n content: \"\\f2b7\";\n}\n.fa-linode:before {\n content: \"\\f2b8\";\n}\n.fa-address-book:before {\n content: \"\\f2b9\";\n}\n.fa-address-book-o:before {\n content: \"\\f2ba\";\n}\n.fa-vcard:before,\n.fa-address-card:before {\n content: \"\\f2bb\";\n}\n.fa-vcard-o:before,\n.fa-address-card-o:before {\n content: \"\\f2bc\";\n}\n.fa-user-circle:before {\n content: \"\\f2bd\";\n}\n.fa-user-circle-o:before {\n content: \"\\f2be\";\n}\n.fa-user-o:before {\n content: \"\\f2c0\";\n}\n.fa-id-badge:before {\n content: \"\\f2c1\";\n}\n.fa-drivers-license:before,\n.fa-id-card:before {\n content: \"\\f2c2\";\n}\n.fa-drivers-license-o:before,\n.fa-id-card-o:before {\n content: \"\\f2c3\";\n}\n.fa-quora:before {\n content: \"\\f2c4\";\n}\n.fa-free-code-camp:before {\n content: \"\\f2c5\";\n}\n.fa-telegram:before {\n content: \"\\f2c6\";\n}\n.fa-thermometer-4:before,\n.fa-thermometer:before,\n.fa-thermometer-full:before {\n content: \"\\f2c7\";\n}\n.fa-thermometer-3:before,\n.fa-thermometer-three-quarters:before {\n content: \"\\f2c8\";\n}\n.fa-thermometer-2:before,\n.fa-thermometer-half:before {\n content: \"\\f2c9\";\n}\n.fa-thermometer-1:before,\n.fa-thermometer-quarter:before {\n content: \"\\f2ca\";\n}\n.fa-thermometer-0:before,\n.fa-thermometer-empty:before {\n content: \"\\f2cb\";\n}\n.fa-shower:before {\n content: \"\\f2cc\";\n}\n.fa-bathtub:before,\n.fa-s15:before,\n.fa-bath:before {\n content: \"\\f2cd\";\n}\n.fa-podcast:before {\n content: \"\\f2ce\";\n}\n.fa-window-maximize:before {\n content: \"\\f2d0\";\n}\n.fa-window-minimize:before {\n content: \"\\f2d1\";\n}\n.fa-window-restore:before {\n content: \"\\f2d2\";\n}\n.fa-times-rectangle:before,\n.fa-window-close:before {\n content: \"\\f2d3\";\n}\n.fa-times-rectangle-o:before,\n.fa-window-close-o:before {\n content: \"\\f2d4\";\n}\n.fa-bandcamp:before {\n content: \"\\f2d5\";\n}\n.fa-grav:before {\n content: \"\\f2d6\";\n}\n.fa-etsy:before {\n content: \"\\f2d7\";\n}\n.fa-imdb:before {\n content: \"\\f2d8\";\n}\n.fa-ravelry:before {\n content: \"\\f2d9\";\n}\n.fa-eercast:before {\n content: \"\\f2da\";\n}\n.fa-microchip:before {\n content: \"\\f2db\";\n}\n.fa-snowflake-o:before {\n content: \"\\f2dc\";\n}\n.fa-superpowers:before {\n content: \"\\f2dd\";\n}\n.fa-wpexplorer:before {\n content: \"\\f2de\";\n}\n.fa-meetup:before {\n content: \"\\f2e0\";\n}\n.sr-only {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n border: 0;\n}\n.sr-only-focusable:active,\n.sr-only-focusable:focus {\n position: static;\n width: auto;\n height: auto;\n margin: 0;\n overflow: visible;\n clip: auto;\n}\n"],"sourceRoot":""} \ No newline at end of file diff --git a/priv/static/packs/core/common.js b/priv/static/packs/core/common.js deleted file mode 100644 index 94224c402..000000000 Binary files a/priv/static/packs/core/common.js and /dev/null differ diff --git a/priv/static/packs/core/common.js.map b/priv/static/packs/core/common.js.map deleted file mode 100644 index bd4f5a5e2..000000000 Binary files a/priv/static/packs/core/common.js.map and /dev/null differ diff --git a/priv/static/packs/core/embed.js b/priv/static/packs/core/embed.js deleted file mode 100644 index 6a16743d4..000000000 Binary files a/priv/static/packs/core/embed.js and /dev/null differ diff --git a/priv/static/packs/core/embed.js.map b/priv/static/packs/core/embed.js.map deleted file mode 100644 index 7f6522d72..000000000 Binary files a/priv/static/packs/core/embed.js.map and /dev/null differ diff --git a/priv/static/packs/core/mailer.css b/priv/static/packs/core/mailer.css deleted file mode 100644 index c2bf3fca8..000000000 Binary files a/priv/static/packs/core/mailer.css and /dev/null differ diff --git a/priv/static/packs/core/mailer.css.map b/priv/static/packs/core/mailer.css.map deleted file mode 100644 index b1239f159..000000000 --- a/priv/static/packs/core/mailer.css.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["webpack:///./app/javascript/styles/mailer.scss","webpack:///./app/javascript/styles/mastodon/variables.scss"],"names":[],"mappings":"AAEA,aAGE,sBAGF,UAEE,qBACA,eACA,SACA,UACA,8BACA,0BAIA,8DAIE,oBAKF,mBAGE,qBACA,aCZsB,CDexB,WACE,UAIJ,IACE,aACA,SACA,qBACA,+BACA,WACA,iBAGF,MACE,iBACA,mBACA,mBAGF,GACE,mBAGF,mDAIE,WACA,eAGF,YACE,sBACA,iBACA,kBACA,kBACA,mBAGF,aACE,iBAGF,WACE,oBAGF,sBAGE,yBAGF,6EASE,YACA,qBACA,WACA,eACA,sBACA,mBAGF,cACE,WACA,eACA,sBAGF,aACE,iBACA,oBACA,mBAEA,yBACE,cAIJ,iBACE,eAEA,CAGF,4BAJE,cACA,iBAQA,CALF,WACE,cACA,0BAGA,WAGF,OACE,eAGF,OACE,gBAGF,OACE,gBAGF,OACE,gBAGF,OACE,gBAGF,OACE,gBAGF,OACE,gBAGF,+BAGE,uCAEA,mBALF,+BAMI,6DAIJ,wCAGE,eACA,iBACA,aCjKsB,CDkKtB,6BACA,kCAGF,EACE,cACA,aACA,mBAEA,QACE,eAGF,OACE,eACA,iBAIJ,kBAME,aC1LwB,CD8LxB,kBACA,UACA,gBAGF,GACE,eACA,iBAGF,GACE,eACA,iBAGF,GACE,eACA,iBAGF,GACE,eACA,iBACA,gBACA,cAIA,eACE,eAKF,UACE,mBAEA,aACA,iBACA,6BACA,kBACA,kBACA,gBACA,eAIJ,0BAEE,WACA,YACA,kBACA,mBACA,kBACA,mBAGF,cACE,yBAEA,qBACE,yBAIJ,MACE,wBCxQW,CDyQX,iBAGF,kBACE,oBAEA,qBACE,kBAGF,yBACE,mBAIJ,QACE,0BACA,yBAEA,qBACE,kBACA,iBACA,mBAIJ,eACE,iBAGF,aACE,0BACA,iBAIA,+BAEE,cAGF,UAEE,eAEA,0BAHA,eAIE,CAIJ,UACE,cACA,0BAGF,YACE,WAIJ,MACE,kBACA,UAGF,QACE,cACA,iBACA,kBAEA,WACE,iBACA,6BACA,kBACA,kBACA,gBACA,eACA,oBAEA,+BAEE,UCnWE,CDoWF,wBACA,4BACA,6BACA,8BAGF,aACE,4BACA,2BACA,0BAKF,wBACE,kBACA,eACA,iBAEA,0BACE,2BACA,2BAMR,gBACE,yBAGF,gBACE,yBAGF,aACE,kBAGF,YACE,iBAGF,QACE,kBACA,mBAGF,eACE,oBAGF,eACE,mBAGF,WACE,WAEA,cACE,kBACA,sBACA,iBACA,6BACA,aACA,mBACA,kBCraY,CDwad,yBACE,kBCxaQ,CD2aV,eACE,eACA,WACA,YACA,cACA,iBAIJ,IACE,WAEA,OACE,YACA,gBACA,6BACA,eACA,gBACA,WACA,uCACA,6BAIJ,QACE,oBAEA,qBACE,yBACA,kBACA,oBACA,mBAIA,0BACE,eACA,oBAGF,2BACE,UCtdE,CDudF,eACA,cACA,gBAGF,sCACE,mBAGF,2BACE,WACA,YACA,kBAIJ,UACE,eACA,mBAEA,wBACE,cACA,eACA,gBAEA,0BACE,cAMR,YACE,6BAGF,GACE,kBACA,aACA,gBACA,iBAEA,MACE,mBACA,cAEA,WACE,aCtfkB,CD2fxB,wGACE,KACE,6BAIJ,wBACE,2DAOE,qBACA,yBAGF,aACE,2BAGF,WACE,8BAGF,QACE,yBACA,2B","file":"core/mailer.css","sourcesContent":["@import 'mastodon/variables';\n\ntable,\ntd,\ndiv {\n box-sizing: border-box;\n}\n\nhtml,\nbody {\n width: 100% !important;\n min-width: 100%;\n margin: 0;\n padding: 0;\n -webkit-text-size-adjust: 100%;\n -ms-text-size-adjust: 100%;\n}\n\n.email-body {\n td,\n div,\n a,\n span {\n line-height: inherit;\n }\n}\n\na {\n &,\n &:visited,\n span {\n text-decoration: none;\n color: $ui-highlight-color;\n }\n\n #outlook & {\n padding: 0;\n }\n}\n\nimg {\n outline: none;\n border: 0;\n text-decoration: none;\n -ms-interpolation-mode: bicubic;\n clear: both;\n line-height: 100%;\n}\n\ntable {\n border-spacing: 0;\n mso-table-lspace: 0;\n mso-table-rspace: 0;\n}\n\ntd {\n vertical-align: top;\n}\n\n.email-table,\n.content-section,\n.column,\n.column-cell {\n width: 100%;\n min-width: 100%;\n}\n\n.email-body {\n font-size: 0 !important;\n line-height: 100%;\n text-align: center;\n padding-left: 16px;\n padding-right: 16px;\n}\n\n.email-start {\n padding-top: 32px;\n}\n\n.email-end {\n padding-bottom: 32px;\n}\n\n.email-body,\nhtml,\nbody {\n background-color: lighten($ui-base-color, 4%);\n}\n\n.email-container,\n.email-row,\n.col-0,\n.col-1,\n.col-2,\n.col-3,\n.col-4,\n.col-5,\n.col-6, {\n font-size: 0;\n display: inline-block;\n width: 100%;\n min-width: 100%;\n min-width: 0 !important;\n vertical-align: top;\n}\n\n.content-cell {\n width: 100%;\n min-width: 100%;\n min-width: 0 !important;\n}\n\n.column-cell {\n padding-top: 16px;\n padding-bottom: 16px;\n vertical-align: top;\n\n &.button-cell {\n padding-top: 0;\n }\n}\n\n.email-container {\n max-width: 632px;\n margin: 0 auto;\n text-align: center;\n}\n\n.email-row {\n display: block;\n max-width: 600px !important;\n margin: 0 auto;\n text-align: center;\n clear: both;\n}\n\n.col-0 {\n max-width: 50px;\n}\n\n.col-1 {\n max-width: 100px;\n}\n\n.col-2 {\n max-width: 200px;\n}\n\n.col-3 {\n max-width: 300px;\n}\n\n.col-4 {\n max-width: 400px;\n}\n\n.col-5 {\n max-width: 500px;\n}\n\n.col-6 {\n max-width: 600px;\n}\n\n.column-cell,\n.column-cell td,\np {\n font-family: Helvetica, Arial, sans-serif;\n\n @media only screen {\n font-family: $font-sans-serif, sans-serif !important;\n }\n}\n\n.email-body .column-cell,\n.column-cell,\np {\n font-size: 15px;\n line-height: 23px;\n color: $ui-primary-color;\n mso-line-height-rule: exactly;\n text-rendering: optimizelegibility;\n}\n\np {\n display: block;\n margin-top: 0;\n margin-bottom: 16px;\n\n &.small {\n font-size: 13px;\n }\n\n &.lead {\n font-size: 19px;\n line-height: 27px;\n }\n}\n\nh1,\nh2,\nh3,\nh4,\nh5,\nh6 {\n color: $ui-secondary-color;\n margin-left: 0;\n margin-right: 0;\n margin-top: 20px;\n margin-bottom: 8px;\n padding: 0;\n font-weight: 500;\n}\n\nh1 {\n font-size: 26px;\n line-height: 36px;\n}\n\nh2 {\n font-size: 23px;\n line-height: 30px;\n}\n\nh3 {\n font-size: 19px;\n line-height: 25px;\n}\n\nh5 {\n font-size: 16px;\n line-height: 21px;\n font-weight: 700;\n color: lighten($ui-base-color, 34%);\n}\n\n.input-cell {\n h5 {\n margin-top: 4px;\n }\n}\n\n.input {\n td {\n background: darken($ui-base-color, 8%);\n border-radius: 4px;\n padding: 16px;\n line-height: 20px;\n mso-line-height-rule: exactly;\n border-radius: 4px;\n text-align: center;\n font-weight: 500;\n font-size: 17px;\n }\n}\n\n.content-cell,\n.blank-cell {\n width: 100%;\n font-size: 0;\n text-align: center;\n vertical-align: top;\n padding-left: 16px;\n padding-right: 16px;\n}\n\n.content-cell {\n background-color: darken($ui-base-color, 4%);\n\n &.darker {\n background-color: darken($ui-base-color, 8%);\n }\n}\n\n.hero {\n background-color: $ui-base-color;\n padding-top: 20px;\n}\n\n.hero-with-button {\n padding-bottom: 16px;\n\n h1 {\n margin-bottom: 4px;\n }\n\n p.lead {\n margin-bottom: 32px;\n }\n}\n\n.header {\n border-radius: 5px 5px 0 0;\n background-color: darken($ui-base-color, 8%);\n\n .column-cell {\n text-align: center;\n padding-top: 20px;\n padding-bottom: 8px;\n }\n}\n\n.content-start {\n padding-top: 32px;\n}\n\n.content-end {\n border-radius: 0 0 5px 5px;\n padding-top: 16px;\n}\n\n.footer {\n .column-cell,\n p {\n color: lighten($ui-base-color, 34%);\n }\n\n p {\n margin-bottom: 0;\n font-size: 13px;\n\n &.small {\n margin-bottom: 0;\n }\n }\n\n a {\n color: lighten($ui-base-color, 34%);\n text-decoration: underline;\n }\n\n img {\n opacity: 0.3;\n }\n}\n\n.logo {\n position: relative;\n left: -4px;\n}\n\n.button {\n display: table;\n margin-left: auto;\n margin-right: auto;\n\n td {\n line-height: 20px;\n mso-line-height-rule: exactly;\n border-radius: 4px;\n text-align: center;\n font-weight: 500;\n font-size: 17px;\n padding: 0 !important;\n\n a,\n a span {\n color: $primary-text-color;\n display: block !important;\n text-align: center !important;\n vertical-align: top !important;\n line-height: inherit !important;\n }\n\n a {\n padding: 10px 22px !important;\n line-height: 26px !important;\n font-weight: 500 !important;\n }\n }\n\n &.button-small {\n td {\n border-radius: 4px;\n font-size: 14px;\n padding: 8px 16px;\n\n a {\n padding: 5px 16px !important;\n line-height: 26px !important;\n }\n }\n }\n}\n\n.button-default {\n background-color: darken($ui-base-color, 8%);\n}\n\n.button-primary {\n background-color: darken($ui-highlight-color, 3%);\n}\n\n.text-center {\n text-align: center;\n}\n\n.text-right {\n text-align: right;\n}\n\n.padded {\n padding-left: 16px;\n padding-right: 16px;\n}\n\n.padded-bottom {\n padding-bottom: 32px;\n}\n\n.margin-bottom {\n margin-bottom: 20px;\n}\n\n.hero-icon {\n width: 64px;\n\n td {\n text-align: center;\n vertical-align: middle;\n line-height: 100%;\n mso-line-height-rule: exactly;\n padding: 16px;\n border-radius: 80px;\n background: $success-green;\n }\n\n &.alert-icon td {\n background: $error-red;\n }\n\n img {\n max-width: 32px;\n width: 32px;\n height: 32px;\n display: block;\n line-height: 100%;\n }\n}\n\n.hr {\n width: 100%;\n\n td {\n font-size: 0;\n line-height: 1px;\n mso-line-height-rule: exactly;\n min-height: 1px;\n overflow: hidden;\n height: 2px;\n background-color: transparent !important;\n border-top: 1px solid lighten($ui-base-color, 8%);\n }\n}\n\n.status {\n padding-bottom: 32px;\n\n &--highlighted {\n border: 1px solid lighten($ui-base-color, 8%);\n border-radius: 4px;\n padding-bottom: 16px;\n margin-bottom: 16px;\n }\n\n .status-header {\n td {\n font-size: 14px;\n padding-bottom: 15px;\n }\n\n bdi {\n color: $white;\n font-size: 16px;\n display: block;\n font-weight: 500;\n }\n\n td:first-child {\n padding-right: 10px;\n }\n\n img {\n width: 48px;\n height: 48px;\n border-radius: 4px;\n }\n }\n\n p {\n font-size: 19px;\n margin-bottom: 20px;\n\n &.status-footer {\n color: lighten($ui-base-color, 26%);\n font-size: 14px;\n margin-bottom: 0;\n\n a {\n color: lighten($ui-base-color, 26%);\n }\n }\n }\n}\n\n.border-top {\n border-top: 1px solid lighten($ui-base-color, 8%);\n}\n\nul {\n padding-left: 15px;\n margin-top: 0;\n margin-bottom: 0;\n padding-top: 16px;\n\n li {\n margin-bottom: 16px;\n color: lighten($ui-base-color, 26%);\n\n span {\n color: $ui-primary-color;\n }\n }\n}\n\n@media only screen and (min-device-width: 768px) and (max-device-width: 1024px) and (orientation: landscape) {\n body {\n min-height: 1024px !important;\n }\n}\n\n@media (max-width: 697px) {\n .email-container,\n .col-1,\n .col-2,\n .col-3,\n .col-4,\n .col-5,\n .col-6 {\n width: 100% !important;\n max-width: none !important;\n }\n\n .email-start {\n padding-top: 16px !important;\n }\n\n .email-end {\n padding-bottom: 16px !important;\n }\n\n .padded {\n padding-left: 0 !important;\n padding-right: 0 !important;\n }\n}\n","// Commonly used web colors\n$black: #000000; // Black\n$white: #ffffff; // White\n$success-green: #79bd9a !default; // Padua\n$error-red: #df405a !default; // Cerise\n$warning-red: #ff5050 !default; // Sunset Orange\n$gold-star: #ca8f04 !default; // Dark Goldenrod\n\n$red-bookmark: $warning-red;\n\n// Pleroma-Dark colors\n$pleroma-bg: #121a24;\n$pleroma-fg: #182230;\n$pleroma-text: #b9b9ba;\n$pleroma-links: #d8a070;\n\n// Values from the classic Mastodon UI\n$classic-base-color: $pleroma-bg;\n$classic-primary-color: #9baec8;\n$classic-secondary-color: #d9e1e8;\n$classic-highlight-color: #d8a070;\n\n// Variables for defaults in UI\n$base-shadow-color: $black !default;\n$base-overlay-background: $black !default;\n$base-border-color: $white !default;\n$simple-background-color: $white !default;\n$valid-value-color: $success-green !default;\n$error-value-color: $error-red !default;\n\n// Tell UI to use selected colors\n$ui-base-color: $classic-base-color !default; // Darkest\n$ui-base-lighter-color: lighten($ui-base-color, 26%) !default; // Lighter darkest\n$ui-primary-color: $classic-primary-color !default; // Lighter\n$ui-secondary-color: $classic-secondary-color !default; // Lightest\n$ui-highlight-color: $classic-highlight-color !default;\n\n// Variables for texts\n$primary-text-color: $white !default;\n$darker-text-color: $ui-primary-color !default;\n$dark-text-color: $ui-base-lighter-color !default;\n$secondary-text-color: $ui-secondary-color !default;\n$highlight-text-color: $ui-highlight-color !default;\n$action-button-color: $ui-base-lighter-color !default;\n// For texts on inverted backgrounds\n$inverted-text-color: $ui-base-color !default;\n$lighter-text-color: $ui-base-lighter-color !default;\n$light-text-color: $ui-primary-color !default;\n\n// Language codes that uses CJK fonts\n$cjk-langs: ja, ko, zh-CN, zh-HK, zh-TW;\n\n// Variables for components\n$media-modal-media-max-width: 100%;\n// put margins on top and bottom of image to avoid the screen covered by image.\n$media-modal-media-max-height: 80%;\n\n$no-gap-breakpoint: 415px;\n\n$font-sans-serif: 'mastodon-font-sans-serif' !default;\n$font-display: 'mastodon-font-display' !default;\n$font-monospace: 'mastodon-font-monospace' !default;\n"],"sourceRoot":""} \ No newline at end of file diff --git a/priv/static/packs/core/mailer.js b/priv/static/packs/core/mailer.js deleted file mode 100644 index 503710f5d..000000000 Binary files a/priv/static/packs/core/mailer.js and /dev/null differ diff --git a/priv/static/packs/core/mailer.js.map b/priv/static/packs/core/mailer.js.map deleted file mode 100644 index fe6038d50..000000000 Binary files a/priv/static/packs/core/mailer.js.map and /dev/null differ diff --git a/priv/static/packs/core/modal.js b/priv/static/packs/core/modal.js deleted file mode 100644 index a610ed274..000000000 Binary files a/priv/static/packs/core/modal.js and /dev/null differ diff --git a/priv/static/packs/core/modal.js.map b/priv/static/packs/core/modal.js.map deleted file mode 100644 index 0e77ac03d..000000000 Binary files a/priv/static/packs/core/modal.js.map and /dev/null differ diff --git a/priv/static/packs/core/public.js b/priv/static/packs/core/public.js deleted file mode 100644 index 00ba6b774..000000000 Binary files a/priv/static/packs/core/public.js and /dev/null differ diff --git a/priv/static/packs/core/public.js.map b/priv/static/packs/core/public.js.map deleted file mode 100644 index e89df0775..000000000 Binary files a/priv/static/packs/core/public.js.map and /dev/null differ diff --git a/priv/static/packs/core/settings.js b/priv/static/packs/core/settings.js deleted file mode 100644 index 2c496dfa8..000000000 Binary files a/priv/static/packs/core/settings.js and /dev/null differ diff --git a/priv/static/packs/core/settings.js.LICENSE.txt b/priv/static/packs/core/settings.js.LICENSE.txt deleted file mode 100644 index 4402748a5..000000000 --- a/priv/static/packs/core/settings.js.LICENSE.txt +++ /dev/null @@ -1,7 +0,0 @@ -/*! - * escape-html - * Copyright(c) 2012-2013 TJ Holowaychuk - * Copyright(c) 2015 Andreas Lubbe - * Copyright(c) 2015 Tiancheng "Timothy" Gu - * MIT Licensed - */ diff --git a/priv/static/packs/core/settings.js.map b/priv/static/packs/core/settings.js.map deleted file mode 100644 index cd1dd9bf8..000000000 Binary files a/priv/static/packs/core/settings.js.map and /dev/null differ diff --git a/priv/static/packs/emoji_picker.js b/priv/static/packs/emoji_picker.js deleted file mode 100644 index 959ae18e1..000000000 Binary files a/priv/static/packs/emoji_picker.js and /dev/null differ diff --git a/priv/static/packs/emoji_picker.js.map b/priv/static/packs/emoji_picker.js.map deleted file mode 100644 index 8deead92f..000000000 Binary files a/priv/static/packs/emoji_picker.js.map and /dev/null differ diff --git a/priv/static/packs/extra_polyfills.js b/priv/static/packs/extra_polyfills.js deleted file mode 100644 index 3e613035a..000000000 Binary files a/priv/static/packs/extra_polyfills.js and /dev/null differ diff --git a/priv/static/packs/extra_polyfills.js.LICENSE.txt b/priv/static/packs/extra_polyfills.js.LICENSE.txt deleted file mode 100644 index c56b92413..000000000 --- a/priv/static/packs/extra_polyfills.js.LICENSE.txt +++ /dev/null @@ -1 +0,0 @@ -/*! npm.im/object-fit-images 3.2.4 */ diff --git a/priv/static/packs/extra_polyfills.js.map b/priv/static/packs/extra_polyfills.js.map deleted file mode 100644 index 524bdd7e1..000000000 Binary files a/priv/static/packs/extra_polyfills.js.map and /dev/null differ diff --git a/priv/static/packs/features/account_gallery.js b/priv/static/packs/features/account_gallery.js deleted file mode 100644 index 6afdba220..000000000 Binary files a/priv/static/packs/features/account_gallery.js and /dev/null differ diff --git a/priv/static/packs/features/account_gallery.js.map b/priv/static/packs/features/account_gallery.js.map deleted file mode 100644 index 6c6a30c94..000000000 Binary files a/priv/static/packs/features/account_gallery.js.map and /dev/null differ diff --git a/priv/static/packs/features/account_timeline.js b/priv/static/packs/features/account_timeline.js deleted file mode 100644 index 792bf05f0..000000000 Binary files a/priv/static/packs/features/account_timeline.js and /dev/null differ diff --git a/priv/static/packs/features/account_timeline.js.map b/priv/static/packs/features/account_timeline.js.map deleted file mode 100644 index 8766fb489..000000000 Binary files a/priv/static/packs/features/account_timeline.js.map and /dev/null differ diff --git a/priv/static/packs/features/blocks.js b/priv/static/packs/features/blocks.js deleted file mode 100644 index b41df4ce4..000000000 Binary files a/priv/static/packs/features/blocks.js and /dev/null differ diff --git a/priv/static/packs/features/blocks.js.map b/priv/static/packs/features/blocks.js.map deleted file mode 100644 index 3935acd77..000000000 Binary files a/priv/static/packs/features/blocks.js.map and /dev/null differ diff --git a/priv/static/packs/features/bookmarked_statuses.js b/priv/static/packs/features/bookmarked_statuses.js deleted file mode 100644 index 15ff22331..000000000 Binary files a/priv/static/packs/features/bookmarked_statuses.js and /dev/null differ diff --git a/priv/static/packs/features/bookmarked_statuses.js.map b/priv/static/packs/features/bookmarked_statuses.js.map deleted file mode 100644 index 01b5594a6..000000000 Binary files a/priv/static/packs/features/bookmarked_statuses.js.map and /dev/null differ diff --git a/priv/static/packs/features/community_timeline.js b/priv/static/packs/features/community_timeline.js deleted file mode 100644 index 69d215446..000000000 Binary files a/priv/static/packs/features/community_timeline.js and /dev/null differ diff --git a/priv/static/packs/features/community_timeline.js.map b/priv/static/packs/features/community_timeline.js.map deleted file mode 100644 index 66c4b57b4..000000000 Binary files a/priv/static/packs/features/community_timeline.js.map and /dev/null differ diff --git a/priv/static/packs/features/compose.js b/priv/static/packs/features/compose.js deleted file mode 100644 index fc3398284..000000000 Binary files a/priv/static/packs/features/compose.js and /dev/null differ diff --git a/priv/static/packs/features/compose.js.map b/priv/static/packs/features/compose.js.map deleted file mode 100644 index c0c9b14bd..000000000 Binary files a/priv/static/packs/features/compose.js.map and /dev/null differ diff --git a/priv/static/packs/features/direct_timeline.js b/priv/static/packs/features/direct_timeline.js deleted file mode 100644 index ff330c383..000000000 Binary files a/priv/static/packs/features/direct_timeline.js and /dev/null differ diff --git a/priv/static/packs/features/direct_timeline.js.map b/priv/static/packs/features/direct_timeline.js.map deleted file mode 100644 index fd6845a06..000000000 Binary files a/priv/static/packs/features/direct_timeline.js.map and /dev/null differ diff --git a/priv/static/packs/features/directory.js b/priv/static/packs/features/directory.js deleted file mode 100644 index 2c0111bc3..000000000 Binary files a/priv/static/packs/features/directory.js and /dev/null differ diff --git a/priv/static/packs/features/directory.js.map b/priv/static/packs/features/directory.js.map deleted file mode 100644 index be594d23d..000000000 Binary files a/priv/static/packs/features/directory.js.map and /dev/null differ diff --git a/priv/static/packs/features/domain_blocks.js b/priv/static/packs/features/domain_blocks.js deleted file mode 100644 index 2e59340de..000000000 Binary files a/priv/static/packs/features/domain_blocks.js and /dev/null differ diff --git a/priv/static/packs/features/domain_blocks.js.map b/priv/static/packs/features/domain_blocks.js.map deleted file mode 100644 index 687c9b1bc..000000000 Binary files a/priv/static/packs/features/domain_blocks.js.map and /dev/null differ diff --git a/priv/static/packs/features/favourited_statuses.js b/priv/static/packs/features/favourited_statuses.js deleted file mode 100644 index fcc60050f..000000000 Binary files a/priv/static/packs/features/favourited_statuses.js and /dev/null differ diff --git a/priv/static/packs/features/favourited_statuses.js.map b/priv/static/packs/features/favourited_statuses.js.map deleted file mode 100644 index 5d1a473bf..000000000 Binary files a/priv/static/packs/features/favourited_statuses.js.map and /dev/null differ diff --git a/priv/static/packs/features/favourites.js b/priv/static/packs/features/favourites.js deleted file mode 100644 index 337ad7f6f..000000000 Binary files a/priv/static/packs/features/favourites.js and /dev/null differ diff --git a/priv/static/packs/features/favourites.js.map b/priv/static/packs/features/favourites.js.map deleted file mode 100644 index 9f9501be2..000000000 Binary files a/priv/static/packs/features/favourites.js.map and /dev/null differ diff --git a/priv/static/packs/features/follow_requests.js b/priv/static/packs/features/follow_requests.js deleted file mode 100644 index 902c02d13..000000000 Binary files a/priv/static/packs/features/follow_requests.js and /dev/null differ diff --git a/priv/static/packs/features/follow_requests.js.map b/priv/static/packs/features/follow_requests.js.map deleted file mode 100644 index 407dbd78e..000000000 Binary files a/priv/static/packs/features/follow_requests.js.map and /dev/null differ diff --git a/priv/static/packs/features/followers.js b/priv/static/packs/features/followers.js deleted file mode 100644 index a74070322..000000000 Binary files a/priv/static/packs/features/followers.js and /dev/null differ diff --git a/priv/static/packs/features/followers.js.map b/priv/static/packs/features/followers.js.map deleted file mode 100644 index 4e5cf5a2e..000000000 Binary files a/priv/static/packs/features/followers.js.map and /dev/null differ diff --git a/priv/static/packs/features/following.js b/priv/static/packs/features/following.js deleted file mode 100644 index 5189467a3..000000000 Binary files a/priv/static/packs/features/following.js and /dev/null differ diff --git a/priv/static/packs/features/following.js.map b/priv/static/packs/features/following.js.map deleted file mode 100644 index dc4b4badb..000000000 Binary files a/priv/static/packs/features/following.js.map and /dev/null differ diff --git a/priv/static/packs/features/generic_not_found.js b/priv/static/packs/features/generic_not_found.js deleted file mode 100644 index 7dce6d8e4..000000000 Binary files a/priv/static/packs/features/generic_not_found.js and /dev/null differ diff --git a/priv/static/packs/features/generic_not_found.js.map b/priv/static/packs/features/generic_not_found.js.map deleted file mode 100644 index 3cad833d4..000000000 Binary files a/priv/static/packs/features/generic_not_found.js.map and /dev/null differ diff --git a/priv/static/packs/features/getting_started.js b/priv/static/packs/features/getting_started.js deleted file mode 100644 index 21450c8e1..000000000 Binary files a/priv/static/packs/features/getting_started.js and /dev/null differ diff --git a/priv/static/packs/features/getting_started.js.map b/priv/static/packs/features/getting_started.js.map deleted file mode 100644 index 808b2d8ba..000000000 Binary files a/priv/static/packs/features/getting_started.js.map and /dev/null differ diff --git a/priv/static/packs/features/glitch/async/directory.js b/priv/static/packs/features/glitch/async/directory.js deleted file mode 100644 index 725142be0..000000000 Binary files a/priv/static/packs/features/glitch/async/directory.js and /dev/null differ diff --git a/priv/static/packs/features/glitch/async/directory.js.map b/priv/static/packs/features/glitch/async/directory.js.map deleted file mode 100644 index e8c157894..000000000 Binary files a/priv/static/packs/features/glitch/async/directory.js.map and /dev/null differ diff --git a/priv/static/packs/features/glitch/async/list_adder.js b/priv/static/packs/features/glitch/async/list_adder.js deleted file mode 100644 index 456fbfb9a..000000000 Binary files a/priv/static/packs/features/glitch/async/list_adder.js and /dev/null differ diff --git a/priv/static/packs/features/glitch/async/list_adder.js.map b/priv/static/packs/features/glitch/async/list_adder.js.map deleted file mode 100644 index cff691afb..000000000 Binary files a/priv/static/packs/features/glitch/async/list_adder.js.map and /dev/null differ diff --git a/priv/static/packs/features/glitch/async/search.js b/priv/static/packs/features/glitch/async/search.js deleted file mode 100644 index 2edb95c49..000000000 Binary files a/priv/static/packs/features/glitch/async/search.js and /dev/null differ diff --git a/priv/static/packs/features/glitch/async/search.js.map b/priv/static/packs/features/glitch/async/search.js.map deleted file mode 100644 index 6f99ce16c..000000000 Binary files a/priv/static/packs/features/glitch/async/search.js.map and /dev/null differ diff --git a/priv/static/packs/features/hashtag_timeline.js b/priv/static/packs/features/hashtag_timeline.js deleted file mode 100644 index 139ca9b33..000000000 Binary files a/priv/static/packs/features/hashtag_timeline.js and /dev/null differ diff --git a/priv/static/packs/features/hashtag_timeline.js.map b/priv/static/packs/features/hashtag_timeline.js.map deleted file mode 100644 index 3bd79924b..000000000 Binary files a/priv/static/packs/features/hashtag_timeline.js.map and /dev/null differ diff --git a/priv/static/packs/features/home_timeline.js b/priv/static/packs/features/home_timeline.js deleted file mode 100644 index 9286699bd..000000000 Binary files a/priv/static/packs/features/home_timeline.js and /dev/null differ diff --git a/priv/static/packs/features/home_timeline.js.map b/priv/static/packs/features/home_timeline.js.map deleted file mode 100644 index 156d44782..000000000 Binary files a/priv/static/packs/features/home_timeline.js.map and /dev/null differ diff --git a/priv/static/packs/features/keyboard_shortcuts.js b/priv/static/packs/features/keyboard_shortcuts.js deleted file mode 100644 index cfeb074bd..000000000 Binary files a/priv/static/packs/features/keyboard_shortcuts.js and /dev/null differ diff --git a/priv/static/packs/features/keyboard_shortcuts.js.map b/priv/static/packs/features/keyboard_shortcuts.js.map deleted file mode 100644 index d736f454e..000000000 Binary files a/priv/static/packs/features/keyboard_shortcuts.js.map and /dev/null differ diff --git a/priv/static/packs/features/list_adder.js b/priv/static/packs/features/list_adder.js deleted file mode 100644 index 0b4da1969..000000000 Binary files a/priv/static/packs/features/list_adder.js and /dev/null differ diff --git a/priv/static/packs/features/list_adder.js.map b/priv/static/packs/features/list_adder.js.map deleted file mode 100644 index f3b671cad..000000000 Binary files a/priv/static/packs/features/list_adder.js.map and /dev/null differ diff --git a/priv/static/packs/features/list_editor.js b/priv/static/packs/features/list_editor.js deleted file mode 100644 index f63276d6c..000000000 Binary files a/priv/static/packs/features/list_editor.js and /dev/null differ diff --git a/priv/static/packs/features/list_editor.js.map b/priv/static/packs/features/list_editor.js.map deleted file mode 100644 index ee536303a..000000000 Binary files a/priv/static/packs/features/list_editor.js.map and /dev/null differ diff --git a/priv/static/packs/features/list_timeline.js b/priv/static/packs/features/list_timeline.js deleted file mode 100644 index 8592d85a1..000000000 Binary files a/priv/static/packs/features/list_timeline.js and /dev/null differ diff --git a/priv/static/packs/features/list_timeline.js.map b/priv/static/packs/features/list_timeline.js.map deleted file mode 100644 index 6e55f0a0c..000000000 Binary files a/priv/static/packs/features/list_timeline.js.map and /dev/null differ diff --git a/priv/static/packs/features/lists.js b/priv/static/packs/features/lists.js deleted file mode 100644 index 702c3adcf..000000000 Binary files a/priv/static/packs/features/lists.js and /dev/null differ diff --git a/priv/static/packs/features/lists.js.map b/priv/static/packs/features/lists.js.map deleted file mode 100644 index 58c03a95b..000000000 Binary files a/priv/static/packs/features/lists.js.map and /dev/null differ diff --git a/priv/static/packs/features/mutes.js b/priv/static/packs/features/mutes.js deleted file mode 100644 index 444d6cd06..000000000 Binary files a/priv/static/packs/features/mutes.js and /dev/null differ diff --git a/priv/static/packs/features/mutes.js.map b/priv/static/packs/features/mutes.js.map deleted file mode 100644 index 24155f586..000000000 Binary files a/priv/static/packs/features/mutes.js.map and /dev/null differ diff --git a/priv/static/packs/features/notifications.js b/priv/static/packs/features/notifications.js deleted file mode 100644 index 419aeeaac..000000000 Binary files a/priv/static/packs/features/notifications.js and /dev/null differ diff --git a/priv/static/packs/features/notifications.js.map b/priv/static/packs/features/notifications.js.map deleted file mode 100644 index 80ef6305b..000000000 Binary files a/priv/static/packs/features/notifications.js.map and /dev/null differ diff --git a/priv/static/packs/features/pinned_statuses.js b/priv/static/packs/features/pinned_statuses.js deleted file mode 100644 index 1aa2d549a..000000000 Binary files a/priv/static/packs/features/pinned_statuses.js and /dev/null differ diff --git a/priv/static/packs/features/pinned_statuses.js.map b/priv/static/packs/features/pinned_statuses.js.map deleted file mode 100644 index 898fcfd27..000000000 Binary files a/priv/static/packs/features/pinned_statuses.js.map and /dev/null differ diff --git a/priv/static/packs/features/public_timeline.js b/priv/static/packs/features/public_timeline.js deleted file mode 100644 index a32594de9..000000000 Binary files a/priv/static/packs/features/public_timeline.js and /dev/null differ diff --git a/priv/static/packs/features/public_timeline.js.map b/priv/static/packs/features/public_timeline.js.map deleted file mode 100644 index 92bd1de46..000000000 Binary files a/priv/static/packs/features/public_timeline.js.map and /dev/null differ diff --git a/priv/static/packs/features/reblogs.js b/priv/static/packs/features/reblogs.js deleted file mode 100644 index 857ed6a60..000000000 Binary files a/priv/static/packs/features/reblogs.js and /dev/null differ diff --git a/priv/static/packs/features/reblogs.js.map b/priv/static/packs/features/reblogs.js.map deleted file mode 100644 index 211b4a843..000000000 Binary files a/priv/static/packs/features/reblogs.js.map and /dev/null differ diff --git a/priv/static/packs/features/search.js b/priv/static/packs/features/search.js deleted file mode 100644 index 64bbc4984..000000000 Binary files a/priv/static/packs/features/search.js and /dev/null differ diff --git a/priv/static/packs/features/search.js.map b/priv/static/packs/features/search.js.map deleted file mode 100644 index 74113975c..000000000 Binary files a/priv/static/packs/features/search.js.map and /dev/null differ diff --git a/priv/static/packs/features/status.js b/priv/static/packs/features/status.js deleted file mode 100644 index dace442de..000000000 Binary files a/priv/static/packs/features/status.js and /dev/null differ diff --git a/priv/static/packs/features/status.js.map b/priv/static/packs/features/status.js.map deleted file mode 100644 index f4688ee17..000000000 Binary files a/priv/static/packs/features/status.js.map and /dev/null differ diff --git a/priv/static/packs/flavours/glitch/about.js b/priv/static/packs/flavours/glitch/about.js deleted file mode 100644 index 19611cdda..000000000 Binary files a/priv/static/packs/flavours/glitch/about.js and /dev/null differ diff --git a/priv/static/packs/flavours/glitch/about.js.LICENSE.txt b/priv/static/packs/flavours/glitch/about.js.LICENSE.txt deleted file mode 100644 index 90a9a7678..000000000 --- a/priv/static/packs/flavours/glitch/about.js.LICENSE.txt +++ /dev/null @@ -1,193 +0,0 @@ -/* -object-assign -(c) Sindre Sorhus -@license MIT -*/ - -/*! - Copyright (c) 2017 Jed Watson. - Licensed under the MIT License (MIT), see - http://jedwatson.github.io/classnames -*/ - -/*! - * escape-html - * Copyright(c) 2012-2013 TJ Holowaychuk - * Copyright(c) 2015 Andreas Lubbe - * Copyright(c) 2015 Tiancheng "Timothy" Gu - * MIT Licensed - */ - -/*! - * wavesurfer.js 3.3.1 (2020-01-14) - * https://github.com/katspaugh/wavesurfer.js - * @license BSD-3-Clause - */ - -/*! ./ajax */ - -/*! ./drawer */ - -/*! ./drawer.canvasentry */ - -/*! ./drawer.multicanvas */ - -/*! ./extend */ - -/*! ./fetch */ - -/*! ./frame */ - -/*! ./get-id */ - -/*! ./max */ - -/*! ./mediaelement */ - -/*! ./mediaelement-webaudio */ - -/*! ./min */ - -/*! ./observer */ - -/*! ./peakcache */ - -/*! ./prevent-click */ - -/*! ./request-animation-frame */ - -/*! ./style */ - -/*! ./util */ - -/*! ./util/get-id */ - -/*! ./util/style */ - -/*! ./webaudio */ - -/*! debounce */ - -/*! https://mths.be/punycode v1.4.1 by @mathias */ - -/*! no static exports found */ - -/*!***********************!*\ - !*** ./src/drawer.js ***! - \***********************/ - -/*!*************************!*\ - !*** ./src/util/max.js ***! - \*************************/ - -/*!*************************!*\ - !*** ./src/util/min.js ***! - \*************************/ - -/*!*************************!*\ - !*** ./src/webaudio.js ***! - \*************************/ - -/*!**************************!*\ - !*** ./src/peakcache.js ***! - \**************************/ - -/*!**************************!*\ - !*** ./src/util/ajax.js ***! - \**************************/ - -/*!***************************!*\ - !*** ./src/util/fetch.js ***! - \***************************/ - -/*!***************************!*\ - !*** ./src/util/frame.js ***! - \***************************/ - -/*!***************************!*\ - !*** ./src/util/index.js ***! - \***************************/ - -/*!***************************!*\ - !*** ./src/util/style.js ***! - \***************************/ - -/*!***************************!*\ - !*** ./src/wavesurfer.js ***! - \***************************/ - -/*!****************************!*\ - !*** ./src/util/extend.js ***! - \****************************/ - -/*!****************************!*\ - !*** ./src/util/get-id.js ***! - \****************************/ - -/*!*****************************!*\ - !*** ./src/mediaelement.js ***! - \*****************************/ - -/*!******************************!*\ - !*** ./src/util/observer.js ***! - \******************************/ - -/*!***********************************!*\ - !*** ./src/drawer.canvasentry.js ***! - \***********************************/ - -/*!***********************************!*\ - !*** ./src/drawer.multicanvas.js ***! - \***********************************/ - -/*!***********************************!*\ - !*** ./src/util/prevent-click.js ***! - \***********************************/ - -/*!**************************************!*\ - !*** ./src/mediaelement-webaudio.js ***! - \**************************************/ - -/*!****************************************!*\ - !*** ./node_modules/debounce/index.js ***! - \****************************************/ - -/*!*********************************************!*\ - !*** ./src/util/request-animation-frame.js ***! - \*********************************************/ - -/** @license React v0.19.0 - * scheduler.production.min.js - * - * Copyright (c) Facebook, Inc. and its affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */ - -/** @license React v16.12.0 - * react-is.production.min.js - * - * Copyright (c) Facebook, Inc. and its affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */ - -/** @license React v16.13.0 - * react-dom.production.min.js - * - * Copyright (c) Facebook, Inc. and its affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */ - -/** @license React v16.13.1 - * react.production.min.js - * - * Copyright (c) Facebook, Inc. and its affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */ diff --git a/priv/static/packs/flavours/glitch/about.js.map b/priv/static/packs/flavours/glitch/about.js.map deleted file mode 100644 index 4914692f5..000000000 Binary files a/priv/static/packs/flavours/glitch/about.js.map and /dev/null differ diff --git a/priv/static/packs/flavours/glitch/admin.js b/priv/static/packs/flavours/glitch/admin.js deleted file mode 100644 index 82d7437f1..000000000 Binary files a/priv/static/packs/flavours/glitch/admin.js and /dev/null differ diff --git a/priv/static/packs/flavours/glitch/admin.js.LICENSE.txt b/priv/static/packs/flavours/glitch/admin.js.LICENSE.txt deleted file mode 100644 index 2196b2def..000000000 --- a/priv/static/packs/flavours/glitch/admin.js.LICENSE.txt +++ /dev/null @@ -1,41 +0,0 @@ -/* -object-assign -(c) Sindre Sorhus -@license MIT -*/ - -/** @license React v0.19.0 - * scheduler.production.min.js - * - * Copyright (c) Facebook, Inc. and its affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */ - -/** @license React v16.12.0 - * react-is.production.min.js - * - * Copyright (c) Facebook, Inc. and its affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */ - -/** @license React v16.13.0 - * react-dom.production.min.js - * - * Copyright (c) Facebook, Inc. and its affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */ - -/** @license React v16.13.1 - * react.production.min.js - * - * Copyright (c) Facebook, Inc. and its affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */ diff --git a/priv/static/packs/flavours/glitch/admin.js.map b/priv/static/packs/flavours/glitch/admin.js.map deleted file mode 100644 index df66cbc6a..000000000 Binary files a/priv/static/packs/flavours/glitch/admin.js.map and /dev/null differ diff --git a/priv/static/packs/flavours/glitch/async/account_gallery.js b/priv/static/packs/flavours/glitch/async/account_gallery.js deleted file mode 100644 index a282e6ebc..000000000 Binary files a/priv/static/packs/flavours/glitch/async/account_gallery.js and /dev/null differ diff --git a/priv/static/packs/flavours/glitch/async/account_gallery.js.map b/priv/static/packs/flavours/glitch/async/account_gallery.js.map deleted file mode 100644 index 0aeddd9ef..000000000 Binary files a/priv/static/packs/flavours/glitch/async/account_gallery.js.map and /dev/null differ diff --git a/priv/static/packs/flavours/glitch/async/account_timeline.js b/priv/static/packs/flavours/glitch/async/account_timeline.js deleted file mode 100644 index 80863af8d..000000000 Binary files a/priv/static/packs/flavours/glitch/async/account_timeline.js and /dev/null differ diff --git a/priv/static/packs/flavours/glitch/async/account_timeline.js.map b/priv/static/packs/flavours/glitch/async/account_timeline.js.map deleted file mode 100644 index af4549145..000000000 Binary files a/priv/static/packs/flavours/glitch/async/account_timeline.js.map and /dev/null differ diff --git a/priv/static/packs/flavours/glitch/async/block_modal.js b/priv/static/packs/flavours/glitch/async/block_modal.js deleted file mode 100644 index ff78212cd..000000000 Binary files a/priv/static/packs/flavours/glitch/async/block_modal.js and /dev/null differ diff --git a/priv/static/packs/flavours/glitch/async/block_modal.js.map b/priv/static/packs/flavours/glitch/async/block_modal.js.map deleted file mode 100644 index a99478646..000000000 Binary files a/priv/static/packs/flavours/glitch/async/block_modal.js.map and /dev/null differ diff --git a/priv/static/packs/flavours/glitch/async/blocks.js b/priv/static/packs/flavours/glitch/async/blocks.js deleted file mode 100644 index 7287b772f..000000000 Binary files a/priv/static/packs/flavours/glitch/async/blocks.js and /dev/null differ diff --git a/priv/static/packs/flavours/glitch/async/blocks.js.map b/priv/static/packs/flavours/glitch/async/blocks.js.map deleted file mode 100644 index 0f1981357..000000000 Binary files a/priv/static/packs/flavours/glitch/async/blocks.js.map and /dev/null differ diff --git a/priv/static/packs/flavours/glitch/async/bookmarked_statuses.js b/priv/static/packs/flavours/glitch/async/bookmarked_statuses.js deleted file mode 100644 index 45e9d1417..000000000 Binary files a/priv/static/packs/flavours/glitch/async/bookmarked_statuses.js and /dev/null differ diff --git a/priv/static/packs/flavours/glitch/async/bookmarked_statuses.js.map b/priv/static/packs/flavours/glitch/async/bookmarked_statuses.js.map deleted file mode 100644 index 050a31135..000000000 Binary files a/priv/static/packs/flavours/glitch/async/bookmarked_statuses.js.map and /dev/null differ diff --git a/priv/static/packs/flavours/glitch/async/community_timeline.js b/priv/static/packs/flavours/glitch/async/community_timeline.js deleted file mode 100644 index 75e21406f..000000000 Binary files a/priv/static/packs/flavours/glitch/async/community_timeline.js and /dev/null differ diff --git a/priv/static/packs/flavours/glitch/async/community_timeline.js.map b/priv/static/packs/flavours/glitch/async/community_timeline.js.map deleted file mode 100644 index da2a24bdf..000000000 Binary files a/priv/static/packs/flavours/glitch/async/community_timeline.js.map and /dev/null differ diff --git a/priv/static/packs/flavours/glitch/async/compose.js b/priv/static/packs/flavours/glitch/async/compose.js deleted file mode 100644 index dbbe43090..000000000 Binary files a/priv/static/packs/flavours/glitch/async/compose.js and /dev/null differ diff --git a/priv/static/packs/flavours/glitch/async/compose.js.map b/priv/static/packs/flavours/glitch/async/compose.js.map deleted file mode 100644 index 5770307aa..000000000 Binary files a/priv/static/packs/flavours/glitch/async/compose.js.map and /dev/null differ diff --git a/priv/static/packs/flavours/glitch/async/direct_timeline.js b/priv/static/packs/flavours/glitch/async/direct_timeline.js deleted file mode 100644 index 4b19a1383..000000000 Binary files a/priv/static/packs/flavours/glitch/async/direct_timeline.js and /dev/null differ diff --git a/priv/static/packs/flavours/glitch/async/direct_timeline.js.map b/priv/static/packs/flavours/glitch/async/direct_timeline.js.map deleted file mode 100644 index 83b0d0c28..000000000 Binary files a/priv/static/packs/flavours/glitch/async/direct_timeline.js.map and /dev/null differ diff --git a/priv/static/packs/flavours/glitch/async/domain_blocks.js b/priv/static/packs/flavours/glitch/async/domain_blocks.js deleted file mode 100644 index 74fac4c3e..000000000 Binary files a/priv/static/packs/flavours/glitch/async/domain_blocks.js and /dev/null differ diff --git a/priv/static/packs/flavours/glitch/async/domain_blocks.js.map b/priv/static/packs/flavours/glitch/async/domain_blocks.js.map deleted file mode 100644 index 9534e788e..000000000 Binary files a/priv/static/packs/flavours/glitch/async/domain_blocks.js.map and /dev/null differ diff --git a/priv/static/packs/flavours/glitch/async/embed_modal.js b/priv/static/packs/flavours/glitch/async/embed_modal.js deleted file mode 100644 index 6b2709250..000000000 Binary files a/priv/static/packs/flavours/glitch/async/embed_modal.js and /dev/null differ diff --git a/priv/static/packs/flavours/glitch/async/embed_modal.js.map b/priv/static/packs/flavours/glitch/async/embed_modal.js.map deleted file mode 100644 index 848f507d6..000000000 Binary files a/priv/static/packs/flavours/glitch/async/embed_modal.js.map and /dev/null differ diff --git a/priv/static/packs/flavours/glitch/async/emoji_picker.js b/priv/static/packs/flavours/glitch/async/emoji_picker.js deleted file mode 100644 index 57833a531..000000000 Binary files a/priv/static/packs/flavours/glitch/async/emoji_picker.js and /dev/null differ diff --git a/priv/static/packs/flavours/glitch/async/emoji_picker.js.map b/priv/static/packs/flavours/glitch/async/emoji_picker.js.map deleted file mode 100644 index 252493416..000000000 Binary files a/priv/static/packs/flavours/glitch/async/emoji_picker.js.map and /dev/null differ diff --git a/priv/static/packs/flavours/glitch/async/favourited_statuses.js b/priv/static/packs/flavours/glitch/async/favourited_statuses.js deleted file mode 100644 index 4401228f6..000000000 Binary files a/priv/static/packs/flavours/glitch/async/favourited_statuses.js and /dev/null differ diff --git a/priv/static/packs/flavours/glitch/async/favourited_statuses.js.map b/priv/static/packs/flavours/glitch/async/favourited_statuses.js.map deleted file mode 100644 index 8fbbf1484..000000000 Binary files a/priv/static/packs/flavours/glitch/async/favourited_statuses.js.map and /dev/null differ diff --git a/priv/static/packs/flavours/glitch/async/favourites.js b/priv/static/packs/flavours/glitch/async/favourites.js deleted file mode 100644 index 59b9cec75..000000000 Binary files a/priv/static/packs/flavours/glitch/async/favourites.js and /dev/null differ diff --git a/priv/static/packs/flavours/glitch/async/favourites.js.map b/priv/static/packs/flavours/glitch/async/favourites.js.map deleted file mode 100644 index 4819f60ec..000000000 Binary files a/priv/static/packs/flavours/glitch/async/favourites.js.map and /dev/null differ diff --git a/priv/static/packs/flavours/glitch/async/follow_requests.js b/priv/static/packs/flavours/glitch/async/follow_requests.js deleted file mode 100644 index 57ed8204e..000000000 Binary files a/priv/static/packs/flavours/glitch/async/follow_requests.js and /dev/null differ diff --git a/priv/static/packs/flavours/glitch/async/follow_requests.js.map b/priv/static/packs/flavours/glitch/async/follow_requests.js.map deleted file mode 100644 index c0a2db075..000000000 Binary files a/priv/static/packs/flavours/glitch/async/follow_requests.js.map and /dev/null differ diff --git a/priv/static/packs/flavours/glitch/async/followers.js b/priv/static/packs/flavours/glitch/async/followers.js deleted file mode 100644 index fdb647ef2..000000000 Binary files a/priv/static/packs/flavours/glitch/async/followers.js and /dev/null differ diff --git a/priv/static/packs/flavours/glitch/async/followers.js.map b/priv/static/packs/flavours/glitch/async/followers.js.map deleted file mode 100644 index cc1470d15..000000000 Binary files a/priv/static/packs/flavours/glitch/async/followers.js.map and /dev/null differ diff --git a/priv/static/packs/flavours/glitch/async/following.js b/priv/static/packs/flavours/glitch/async/following.js deleted file mode 100644 index 60f78c45c..000000000 Binary files a/priv/static/packs/flavours/glitch/async/following.js and /dev/null differ diff --git a/priv/static/packs/flavours/glitch/async/following.js.map b/priv/static/packs/flavours/glitch/async/following.js.map deleted file mode 100644 index 7fff787bb..000000000 Binary files a/priv/static/packs/flavours/glitch/async/following.js.map and /dev/null differ diff --git a/priv/static/packs/flavours/glitch/async/generic_not_found.js b/priv/static/packs/flavours/glitch/async/generic_not_found.js deleted file mode 100644 index dca1026b6..000000000 Binary files a/priv/static/packs/flavours/glitch/async/generic_not_found.js and /dev/null differ diff --git a/priv/static/packs/flavours/glitch/async/generic_not_found.js.map b/priv/static/packs/flavours/glitch/async/generic_not_found.js.map deleted file mode 100644 index 7e0ef77c9..000000000 Binary files a/priv/static/packs/flavours/glitch/async/generic_not_found.js.map and /dev/null differ diff --git a/priv/static/packs/flavours/glitch/async/getting_started.js b/priv/static/packs/flavours/glitch/async/getting_started.js deleted file mode 100644 index b1e5d2309..000000000 Binary files a/priv/static/packs/flavours/glitch/async/getting_started.js and /dev/null differ diff --git a/priv/static/packs/flavours/glitch/async/getting_started.js.map b/priv/static/packs/flavours/glitch/async/getting_started.js.map deleted file mode 100644 index 5c9294fff..000000000 Binary files a/priv/static/packs/flavours/glitch/async/getting_started.js.map and /dev/null differ diff --git a/priv/static/packs/flavours/glitch/async/getting_started_misc.js b/priv/static/packs/flavours/glitch/async/getting_started_misc.js deleted file mode 100644 index 2b17ff3bc..000000000 Binary files a/priv/static/packs/flavours/glitch/async/getting_started_misc.js and /dev/null differ diff --git a/priv/static/packs/flavours/glitch/async/getting_started_misc.js.map b/priv/static/packs/flavours/glitch/async/getting_started_misc.js.map deleted file mode 100644 index ba253da51..000000000 Binary files a/priv/static/packs/flavours/glitch/async/getting_started_misc.js.map and /dev/null differ diff --git a/priv/static/packs/flavours/glitch/async/hashtag_timeline.js b/priv/static/packs/flavours/glitch/async/hashtag_timeline.js deleted file mode 100644 index 70c5b1c02..000000000 Binary files a/priv/static/packs/flavours/glitch/async/hashtag_timeline.js and /dev/null differ diff --git a/priv/static/packs/flavours/glitch/async/hashtag_timeline.js.map b/priv/static/packs/flavours/glitch/async/hashtag_timeline.js.map deleted file mode 100644 index f495dd459..000000000 Binary files a/priv/static/packs/flavours/glitch/async/hashtag_timeline.js.map and /dev/null differ diff --git a/priv/static/packs/flavours/glitch/async/home_timeline.js b/priv/static/packs/flavours/glitch/async/home_timeline.js deleted file mode 100644 index 778f336ed..000000000 Binary files a/priv/static/packs/flavours/glitch/async/home_timeline.js and /dev/null differ diff --git a/priv/static/packs/flavours/glitch/async/home_timeline.js.map b/priv/static/packs/flavours/glitch/async/home_timeline.js.map deleted file mode 100644 index 37db6a195..000000000 Binary files a/priv/static/packs/flavours/glitch/async/home_timeline.js.map and /dev/null differ diff --git a/priv/static/packs/flavours/glitch/async/keyboard_shortcuts.js b/priv/static/packs/flavours/glitch/async/keyboard_shortcuts.js deleted file mode 100644 index b6037c53e..000000000 Binary files a/priv/static/packs/flavours/glitch/async/keyboard_shortcuts.js and /dev/null differ diff --git a/priv/static/packs/flavours/glitch/async/keyboard_shortcuts.js.map b/priv/static/packs/flavours/glitch/async/keyboard_shortcuts.js.map deleted file mode 100644 index 2db9f69d1..000000000 Binary files a/priv/static/packs/flavours/glitch/async/keyboard_shortcuts.js.map and /dev/null differ diff --git a/priv/static/packs/flavours/glitch/async/list_editor.js b/priv/static/packs/flavours/glitch/async/list_editor.js deleted file mode 100644 index d80cb005a..000000000 Binary files a/priv/static/packs/flavours/glitch/async/list_editor.js and /dev/null differ diff --git a/priv/static/packs/flavours/glitch/async/list_editor.js.map b/priv/static/packs/flavours/glitch/async/list_editor.js.map deleted file mode 100644 index 32db1fab1..000000000 Binary files a/priv/static/packs/flavours/glitch/async/list_editor.js.map and /dev/null differ diff --git a/priv/static/packs/flavours/glitch/async/list_timeline.js b/priv/static/packs/flavours/glitch/async/list_timeline.js deleted file mode 100644 index 7be347902..000000000 Binary files a/priv/static/packs/flavours/glitch/async/list_timeline.js and /dev/null differ diff --git a/priv/static/packs/flavours/glitch/async/list_timeline.js.map b/priv/static/packs/flavours/glitch/async/list_timeline.js.map deleted file mode 100644 index 82e887f76..000000000 Binary files a/priv/static/packs/flavours/glitch/async/list_timeline.js.map and /dev/null differ diff --git a/priv/static/packs/flavours/glitch/async/lists.js b/priv/static/packs/flavours/glitch/async/lists.js deleted file mode 100644 index 01359b617..000000000 Binary files a/priv/static/packs/flavours/glitch/async/lists.js and /dev/null differ diff --git a/priv/static/packs/flavours/glitch/async/lists.js.map b/priv/static/packs/flavours/glitch/async/lists.js.map deleted file mode 100644 index 94a638597..000000000 Binary files a/priv/static/packs/flavours/glitch/async/lists.js.map and /dev/null differ diff --git a/priv/static/packs/flavours/glitch/async/mute_modal.js b/priv/static/packs/flavours/glitch/async/mute_modal.js deleted file mode 100644 index 4563b7c03..000000000 Binary files a/priv/static/packs/flavours/glitch/async/mute_modal.js and /dev/null differ diff --git a/priv/static/packs/flavours/glitch/async/mute_modal.js.map b/priv/static/packs/flavours/glitch/async/mute_modal.js.map deleted file mode 100644 index b8a427cc5..000000000 Binary files a/priv/static/packs/flavours/glitch/async/mute_modal.js.map and /dev/null differ diff --git a/priv/static/packs/flavours/glitch/async/mutes.js b/priv/static/packs/flavours/glitch/async/mutes.js deleted file mode 100644 index 561bff711..000000000 Binary files a/priv/static/packs/flavours/glitch/async/mutes.js and /dev/null differ diff --git a/priv/static/packs/flavours/glitch/async/mutes.js.map b/priv/static/packs/flavours/glitch/async/mutes.js.map deleted file mode 100644 index 288221494..000000000 Binary files a/priv/static/packs/flavours/glitch/async/mutes.js.map and /dev/null differ diff --git a/priv/static/packs/flavours/glitch/async/notifications.js b/priv/static/packs/flavours/glitch/async/notifications.js deleted file mode 100644 index 775819241..000000000 Binary files a/priv/static/packs/flavours/glitch/async/notifications.js and /dev/null differ diff --git a/priv/static/packs/flavours/glitch/async/notifications.js.map b/priv/static/packs/flavours/glitch/async/notifications.js.map deleted file mode 100644 index 7a3ae0be5..000000000 Binary files a/priv/static/packs/flavours/glitch/async/notifications.js.map and /dev/null differ diff --git a/priv/static/packs/flavours/glitch/async/onboarding_modal.js b/priv/static/packs/flavours/glitch/async/onboarding_modal.js deleted file mode 100644 index 4e5acb0c0..000000000 Binary files a/priv/static/packs/flavours/glitch/async/onboarding_modal.js and /dev/null differ diff --git a/priv/static/packs/flavours/glitch/async/onboarding_modal.js.map b/priv/static/packs/flavours/glitch/async/onboarding_modal.js.map deleted file mode 100644 index 4b7124f38..000000000 Binary files a/priv/static/packs/flavours/glitch/async/onboarding_modal.js.map and /dev/null differ diff --git a/priv/static/packs/flavours/glitch/async/pinned_accounts_editor.js b/priv/static/packs/flavours/glitch/async/pinned_accounts_editor.js deleted file mode 100644 index 799270f5b..000000000 Binary files a/priv/static/packs/flavours/glitch/async/pinned_accounts_editor.js and /dev/null differ diff --git a/priv/static/packs/flavours/glitch/async/pinned_accounts_editor.js.map b/priv/static/packs/flavours/glitch/async/pinned_accounts_editor.js.map deleted file mode 100644 index c0677599f..000000000 Binary files a/priv/static/packs/flavours/glitch/async/pinned_accounts_editor.js.map and /dev/null differ diff --git a/priv/static/packs/flavours/glitch/async/pinned_statuses.js b/priv/static/packs/flavours/glitch/async/pinned_statuses.js deleted file mode 100644 index f2f32ada7..000000000 Binary files a/priv/static/packs/flavours/glitch/async/pinned_statuses.js and /dev/null differ diff --git a/priv/static/packs/flavours/glitch/async/pinned_statuses.js.map b/priv/static/packs/flavours/glitch/async/pinned_statuses.js.map deleted file mode 100644 index 20582528c..000000000 Binary files a/priv/static/packs/flavours/glitch/async/pinned_statuses.js.map and /dev/null differ diff --git a/priv/static/packs/flavours/glitch/async/public_timeline.js b/priv/static/packs/flavours/glitch/async/public_timeline.js deleted file mode 100644 index d48e77f7e..000000000 Binary files a/priv/static/packs/flavours/glitch/async/public_timeline.js and /dev/null differ diff --git a/priv/static/packs/flavours/glitch/async/public_timeline.js.map b/priv/static/packs/flavours/glitch/async/public_timeline.js.map deleted file mode 100644 index 77fa4cf1f..000000000 Binary files a/priv/static/packs/flavours/glitch/async/public_timeline.js.map and /dev/null differ diff --git a/priv/static/packs/flavours/glitch/async/reblogs.js b/priv/static/packs/flavours/glitch/async/reblogs.js deleted file mode 100644 index 59ca6d0af..000000000 Binary files a/priv/static/packs/flavours/glitch/async/reblogs.js and /dev/null differ diff --git a/priv/static/packs/flavours/glitch/async/reblogs.js.map b/priv/static/packs/flavours/glitch/async/reblogs.js.map deleted file mode 100644 index 150c0e1ab..000000000 Binary files a/priv/static/packs/flavours/glitch/async/reblogs.js.map and /dev/null differ diff --git a/priv/static/packs/flavours/glitch/async/report_modal.js b/priv/static/packs/flavours/glitch/async/report_modal.js deleted file mode 100644 index d4d94eda1..000000000 Binary files a/priv/static/packs/flavours/glitch/async/report_modal.js and /dev/null differ diff --git a/priv/static/packs/flavours/glitch/async/report_modal.js.map b/priv/static/packs/flavours/glitch/async/report_modal.js.map deleted file mode 100644 index 50065b0ba..000000000 Binary files a/priv/static/packs/flavours/glitch/async/report_modal.js.map and /dev/null differ diff --git a/priv/static/packs/flavours/glitch/async/settings_modal.js b/priv/static/packs/flavours/glitch/async/settings_modal.js deleted file mode 100644 index 7aa1fb5a8..000000000 Binary files a/priv/static/packs/flavours/glitch/async/settings_modal.js and /dev/null differ diff --git a/priv/static/packs/flavours/glitch/async/settings_modal.js.map b/priv/static/packs/flavours/glitch/async/settings_modal.js.map deleted file mode 100644 index eec31e79a..000000000 Binary files a/priv/static/packs/flavours/glitch/async/settings_modal.js.map and /dev/null differ diff --git a/priv/static/packs/flavours/glitch/async/status.js b/priv/static/packs/flavours/glitch/async/status.js deleted file mode 100644 index bfb80c63d..000000000 Binary files a/priv/static/packs/flavours/glitch/async/status.js and /dev/null differ diff --git a/priv/static/packs/flavours/glitch/async/status.js.map b/priv/static/packs/flavours/glitch/async/status.js.map deleted file mode 100644 index a8c110f98..000000000 Binary files a/priv/static/packs/flavours/glitch/async/status.js.map and /dev/null differ diff --git a/priv/static/packs/flavours/glitch/common.css b/priv/static/packs/flavours/glitch/common.css deleted file mode 100644 index f25155ee5..000000000 Binary files a/priv/static/packs/flavours/glitch/common.css and /dev/null differ diff --git a/priv/static/packs/flavours/glitch/common.css.map b/priv/static/packs/flavours/glitch/common.css.map deleted file mode 100644 index 2d608b89f..000000000 --- a/priv/static/packs/flavours/glitch/common.css.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["webpack:///index.scss","webpack:///./app/javascript/flavours/glitch/styles/reset.scss","webpack:///./app/javascript/flavours/glitch/styles/variables.scss","webpack:///./app/javascript/flavours/glitch/styles/basics.scss","webpack:///./app/javascript/flavours/glitch/styles/containers.scss","webpack:///./app/javascript/flavours/glitch/styles/_mixins.scss","webpack:///./app/javascript/flavours/glitch/styles/lists.scss","webpack:///./app/javascript/flavours/glitch/styles/modal.scss","webpack:///./app/javascript/flavours/glitch/styles/footer.scss","webpack:///./app/javascript/flavours/glitch/styles/compact_header.scss","webpack:///./app/javascript/flavours/glitch/styles/widgets.scss","webpack:///./app/javascript/flavours/glitch/styles/forms.scss","webpack:///./app/javascript/flavours/glitch/styles/accounts.scss","webpack:///./app/javascript/flavours/glitch/styles/statuses.scss","webpack:///./app/javascript/flavours/glitch/styles/components/index.scss","webpack:///./app/javascript/flavours/glitch/styles/components/boost.scss","webpack:///./app/javascript/flavours/glitch/styles/components/accounts.scss","webpack:///./app/javascript/flavours/glitch/styles/components/domains.scss","webpack:///./app/javascript/flavours/glitch/styles/components/status.scss","webpack:///./app/javascript/flavours/glitch/styles/components/modal.scss","webpack:///./app/javascript/flavours/glitch/styles/components/composer.scss","webpack:///./app/javascript/flavours/glitch/styles/components/columns.scss","webpack:///./app/javascript/flavours/glitch/styles/components/regeneration_indicator.scss","webpack:///./app/javascript/flavours/glitch/styles/components/directory.scss","webpack:///./app/javascript/flavours/glitch/styles/components/search.scss","webpack:///","webpack:///./app/javascript/flavours/glitch/styles/components/emoji.scss","webpack:///./app/javascript/flavours/glitch/styles/components/doodle.scss","webpack:///./app/javascript/flavours/glitch/styles/components/drawer.scss","webpack:///./app/javascript/flavours/glitch/styles/components/media.scss","webpack:///./app/javascript/flavours/glitch/styles/components/sensitive.scss","webpack:///./app/javascript/flavours/glitch/styles/components/lists.scss","webpack:///./app/javascript/flavours/glitch/styles/components/emoji_picker.scss","webpack:///./app/javascript/flavours/glitch/styles/components/local_settings.scss","webpack:///./app/javascript/flavours/glitch/styles/components/error_boundary.scss","webpack:///./app/javascript/flavours/glitch/styles/components/single_column.scss","webpack:///./app/javascript/flavours/glitch/styles/components/announcements.scss","webpack:///./app/javascript/flavours/glitch/styles/polls.scss","webpack:///./app/javascript/flavours/glitch/styles/about.scss","webpack:///./app/javascript/flavours/glitch/styles/tables.scss","webpack:///./app/javascript/flavours/glitch/styles/admin.scss","webpack:///./app/javascript/flavours/glitch/styles/accessibility.scss","webpack:///./app/javascript/flavours/glitch/styles/rtl.scss","webpack:///./app/javascript/flavours/glitch/styles/dashboard.scss"],"names":[],"mappings":"AAAA,2ZCKA,QAaE,UACA,SACA,eACA,aACA,wBACA,+EAIF,aAEE,MAGF,aACE,OAGF,eACE,cAGF,WACE,qDAGF,UAEE,aACA,OAGF,wBACE,iBACA,MAGF,sCACE,qBAGF,UACE,YACA,2BAGF,kBACE,cACA,mBACA,iCAGF,kBACE,kCAGF,kBACE,2BAGF,aACE,gBACA,0BACA,CCtEW,iED6Eb,kBC7Ea,4BDiFb,sBACE,MEtFF,sBACE,mBACA,eACA,iBACA,gBACA,WDVM,kCCYN,6BACA,8BACA,CADA,0BACA,CADA,qBACA,0CACA,wCACA,kBAEA,sIAYE,eAGF,SACE,oCAEA,WACE,iBACA,kBACA,uCAGF,iBACE,WACA,YACA,mCAGF,iBACE,cAIJ,kBD5CW,kBCgDX,iBACE,kBACA,0BAEA,iBACE,YAIJ,kBACE,SACA,iBACA,uBAEA,iBACE,WACA,YACA,gBACA,YAIJ,kBACE,UACA,YAGF,iBACE,kBACA,cDtEoB,mBAPX,WCgFT,YACA,UACA,aACA,uBACA,mBACA,oBAEA,qBACE,YACA,wBAEA,aACE,gBACA,WACA,YACA,kBACA,uBAGF,cACE,iBACA,gBACA,QAMR,mBACE,eACA,cAEA,YACE,6BAKF,YAEE,WACA,mBACA,uBACA,oBACA,yEAKF,gBAEE,+EAKF,WAEE,gBCrJJ,WACE,CACA,kBACA,qCAEA,eALF,UAMI,SACA,kBAIJ,sBACE,qCAEA,gBAHF,kBAII,qBAGF,YACE,uBACA,mBACA,wBAEA,SFrBI,YEuBF,kBACA,sBAGF,YACE,uBACA,mBACA,WF9BE,qBEgCF,UACA,kBACA,iBACA,uBACA,gBACA,eACA,mCAMJ,WACE,CACA,cACA,mBACA,sBACA,qCAEA,kCAPF,UAQI,aACA,aACA,kBAKN,WACE,CACA,YACA,eACA,iBACA,sBACA,CACA,gBACA,CACA,sBACA,qCAEA,gBAZF,UAaI,CACA,eACA,CACA,mBACA,0BAKA,UACqB,sCC3EvB,iBD4EE,6BAEA,UACE,YACA,cACA,SACA,kBACA,iBF5BkB,wBG9DtB,4BACA,uBD8FA,aACE,cF/EsB,wBEiFtB,iCAEA,aACE,gBACA,uBACA,gBACA,8BAIJ,aACE,eACA,iBACA,gBACA,SAIJ,YACE,cACA,8BACA,sBACA,mCACA,CADA,0BACA,mBAEA,eACE,WACA,mBAGF,aACE,WACA,mBAGF,aACE,WACA,mBAGF,eACE,WACA,qCAGF,QA3BF,UA4BI,qCACA,mBAEA,aACE,mBAGF,aACE,WACA,mBAGF,aACE,WACA,mBAGF,aACE,WACA,UAKN,YACE,cACA,8CACA,sBACA,mCACA,CADA,0BACA,mBAEA,eACE,WACA,mBAGF,eACE,WACA,mBAGF,aACE,WACA,mBAGF,eACE,WACA,mBAGF,aACE,WACA,uCAGF,eACE,wBAGF,kBACE,qCAGF,QAxCF,iDAyCI,uCAEA,YACE,aACA,mBACA,uBACA,iCAGF,UACE,uBACA,mBACA,sBAGF,YACE,sCAIJ,QA7DF,UA8DI,qCACA,mBAEA,aACE,mBAGF,aACE,WACA,mBAGF,aACE,WACA,mBAGF,aACE,WACA,mBAGF,aACE,WACA,sCAMJ,eADF,gBAEI,4BAGF,eACE,qCAEA,0BAHF,SAII,yBAIJ,kBACE,mCACA,kBACA,YACA,cACA,aACA,oBACA,uBACA,iBACA,gBACA,qCAEA,uBAZF,cAaI,WACA,MACA,OACA,SACA,gBACA,gBACA,YACA,6BAGF,cACE,eACA,kCAGF,YACE,oBACA,2BACA,iBACA,oCAGF,YACE,oBACA,uBACA,iBACA,mCAGF,YACE,oBACA,yBACA,iBACA,+BAGF,aACE,aACA,mCAEA,aACE,YACA,WACA,kBACA,YACA,UF1UA,qCE6UA,kCARF,WASI,+GAIJ,kBAGE,kCAIJ,YACE,mBACA,eACA,eACA,gBACA,qBACA,cF/UkB,mBEiVlB,kBACA,uHAEA,yBAGE,WFvWA,qCE2WF,0CACE,YACE,qCAKN,kBACE,CACA,oBACA,kBACA,6HAEA,oBAGE,mBACA,sBAON,YACE,cACA,0DACA,sBACA,mCACA,CADA,0BACA,gCAEA,UACE,cACA,gCAGF,UACE,cACA,qCAGF,qBAjBF,0BAkBI,WACA,gCAEA,YACE,kCAKN,iBACE,qCAEA,gCAHF,eAII,sCAKF,4BADF,eAEI,wCAIJ,eACE,mBACA,mCACA,gDAEA,UACE,qIAEA,8BAEE,CAFF,sBAEE,6DAGF,wBFxaoB,8CE6atB,yBACE,gBACA,aACA,kBACA,gBACA,oDAEA,UACE,cACA,kBACA,WACA,YACA,gDACA,MACA,OACA,kDAGF,mBACE,CADF,8BACE,CADF,gBACE,cACA,WACA,YACA,SACA,0BACA,qCAGF,6CA3BF,YA4BI,gDAIJ,eACE,6JAEA,iBAEE,qCAEA,4JAJF,eAKI,sCAKN,sCA/DF,eAgEI,gBACA,oDAEA,YACE,+FAGF,eAEE,6CAIJ,iBACE,iBACA,aACA,2BACA,mDAEA,UACE,cACA,mBACA,kBACA,SACA,OACA,QACA,YACA,0BACA,WACA,oDAGF,aACE,CAEA,WACqB,yCCzgB3B,kBD0gBM,cACA,wDAEA,aACE,WACA,YACA,SACA,kBACA,yBACA,mBACA,iBF7dc,wBG9DtB,4BACA,qCD+hBI,2CAvCF,YAwCI,mBACA,0BACA,YACA,mDAEA,YACE,oDAKA,UACqB,sCCtiB7B,CDuiBQ,sBACA,wDAEA,QACE,kBACA,iBFrfY,wBG9DtB,4BACA,2DDsjBQ,mDAbF,YAcI,sCAKN,2CApEF,eAqEI,sCAGF,2CAxEF,cAyEI,8CAIJ,aACE,iBACA,mDAEA,gBACE,mBACA,sDAEA,cACE,iBACA,WFhlBF,gBEklBE,gBACA,mBACA,uBACA,6BACA,4DAEA,aACE,eACA,WF1lBJ,gBE4lBI,gBACA,uBACA,qCAKN,4CA7BF,gBA8BI,aACA,8BACA,mBACA,mDAEA,aACE,iBACA,sDAEA,cACE,iBACA,iBACA,4DAEA,aFlmBY,oDEymBlB,YACE,2BACA,oBACA,YACA,qEAEA,YACE,mBACA,gBACA,qCAGF,oEACE,YACE,6DAIJ,eACE,sBACA,cACA,cF9nBc,aEgoBd,+BACA,eACA,kBACA,kBACA,8DAEA,aACE,uEAGF,cACE,kEAGF,aACE,WACA,kBACA,SACA,OACA,WACA,gCACA,WACA,wBACA,yEAIA,+BACE,UACA,kFAGF,2BF/pBc,wEEqqBd,SACE,wBACA,8DAIJ,oBACE,cACA,2EAGF,cACE,cACA,4EAGF,eACE,eACA,kBACA,WFzsBJ,uBE2sBI,2DAIJ,aACE,WACA,4DAGF,eACE,8CAKN,YACE,eACA,kEAEA,eACE,gBACA,uBACA,cACA,2FAEA,4BACE,yEAGF,YACE,qDAIJ,gBACE,eACA,cF/tBgB,uDEkuBhB,oBACE,cFnuBc,qBEquBd,aACA,gBACA,8DAEA,eACE,WF1vBJ,qCEgwBF,6CAtCF,aAuCI,UACA,4CAKN,yBACE,qCAEA,0CAHF,eAII,wCAIJ,eACE,oCAGF,kBACE,mCACA,kBACA,gBACA,mBACA,qCAEA,mCAPF,eAQI,gBACA,gBACA,8DAGF,QACE,aACA,+DAEA,aACE,sFAGF,uBACE,yEAGF,aF3yBU,8DEizBV,mBACA,WFnzBE,qFEuzBJ,YAEE,eACA,cF1yBkB,2CE8yBpB,gBACE,iCAIJ,YACE,cACA,kDACA,qCAEA,gCALF,aAMI,+CAGF,cACE,iCAIJ,eACE,2BAGF,YACE,eACA,eACA,cACA,+BAEA,qBACE,cACA,YACA,cACA,mBACA,kBACA,qCAEA,8BARF,aASI,sCAGF,8BAZF,cAaI,sCAIJ,0BAvBF,QAwBI,6BACA,+BAEA,UACE,UACA,gBACA,gCACA,0CAEA,eACE,0CAGF,kBFj3BK,+IEo3BH,kBAGE,WEl4BZ,eACE,aAEA,oBACE,aACA,iBAIJ,eACE,cACA,oBAEA,cACE,gBACA,mBACA,eChBJ,k1BACE,aACA,sBACA,aACA,UACA,yBAGF,YACE,OACA,sBACA,yBACA,2BAEA,MACE,iBACA,qCAIJ,gBACE,YACE,yBCrBF,eACE,iBACA,oBACA,eACA,cACA,qCAEA,uBAPF,iBAQI,mBACA,+BAGF,YACE,cACA,0CACA,wCAEA,aACE,WACA,YACA,wCAGF,aACE,WACA,YACA,wCAGF,aACE,WACA,YACA,kBACA,6CAEA,aACE,wCAIJ,aACE,WACA,YACA,wCAGF,aACE,WACA,YACA,qCAGF,6BAxCF,iCAyCI,+EAEA,aAEE,wCAGF,UACE,wCAGF,aACE,+EAGF,aAEE,wCAGF,UACE,sCAIJ,uCACE,aACE,sCAIJ,4JACE,YAIE,4BAKN,wBACE,gBACA,kBACA,cNhFkB,6BMmFlB,aACE,qBACA,6BAIJ,oBACE,cACA,wGAEA,yBAGE,mCAKF,aACE,YACA,WACA,cACA,aACA,0HAMA,YACE,oBClIR,cACE,iBACA,cPeoB,gBObpB,mBACA,eACA,qBACA,qCAEA,mBATF,iBAUI,oBACA,uBAGF,aACE,qBACA,0BAGF,eACE,cPFoB,wBOMtB,oBACE,mBACA,kBACA,WACA,YACA,cC9BN,kBACE,mCACA,mBAEA,UACE,kBACA,gBACA,0BACA,gBRPI,uBQUJ,mBACE,CADF,8BACE,CADF,gBACE,cACA,WACA,YACA,SACA,0BACA,oBAIJ,kBRVW,aQYT,0BACA,eACA,cRPoB,iBQSpB,qBACA,gBACA,8BAEA,UACE,YACA,gBACA,sBAGF,kBACE,iCAEA,eACE,uBAIJ,cACE,SACA,UACA,gBACA,uBACA,oBACA,kBACA,oBACA,cACA,sBAGF,aRtCsB,qBQwCpB,4BAEA,yBACE,qCAKN,aAnEF,YAoEI,uBAIJ,kBACE,oBACA,yBAEA,YACE,yBACA,gBACA,eACA,cR9DoB,+BQkEtB,cACE,0CAEA,eACE,sDAGF,YACE,mBACA,gDAGF,UACE,YACA,0BACA,oCAIJ,YACE,mBAKF,aR3FsB,aQgGxB,YACE,kBACA,mBRzGW,mCQ2GX,qBAGF,YACE,kBACA,0BACA,kBACA,cR3GsB,mBQ6GtB,iBAGF,eACE,eACA,cRlHsB,iBQoHtB,qBACA,gBACA,UACA,oBAEA,YACE,yBACA,gBACA,eACA,cR7HoB,0BQiItB,eACE,CACA,kBACA,mBAGF,oBACE,CACA,mBACA,cR1IoB,qBQ4IpB,mBACA,gBACA,uBACA,0EAEA,yBAGE,uBAMJ,sBACA,kBACA,mBRnKW,mCQqKX,cR7JwB,gBQ+JxB,mBACA,sDAEA,eAEE,CAII,qXADF,eACE,yBAKN,aACE,0BACA,CAMI,wLAGF,oBAGE,mIAEA,yBACE,gCAMR,kBACE,oCAEA,gBACE,cRzMkB,8DQ+MpB,iBACE,eACA,4DAGF,eACE,qBACA,iEAEA,eACE,kBAMR,YACE,CACA,eRlPM,CQoPN,cACA,cRpOsB,mBQsOtB,+BANA,iBACA,CRlPM,kCQgQN,CATA,aAGF,kBACE,CAEA,iBACA,kBACA,cACA,iBAEA,URjQM,eQmQJ,gBACA,gBACA,mBACA,gBAGF,cACE,cR1PoB,qCQ8PtB,aArBF,YAsBI,mBACA,iBAEA,cACE,aAKN,kBR/Qa,kBQiRX,mCACA,iBAEA,qBACE,mBACA,uCAEA,YAEE,mBACA,8BACA,mBR5RO,kBQ8RP,aACA,qBACA,cACA,mCACA,0EAIA,kBAGE,0BAIJ,kBRpSsB,eQsSpB,8BAGF,UACE,eACA,oBAGF,aACE,eACA,gBACA,WRnUE,mBQqUF,gBACA,uBACA,wBAEA,aRzTkB,0BQ6TlB,aACE,gBACA,eACA,eACA,cRjUgB,yFQuUlB,URvVE,+BQ8VJ,aACE,YACA,uDAGF,oBRjVsB,eQuV1B,YACE,yBACA,gCAEA,aACE,WACA,YACA,kBACA,kBACA,kBACA,mBACA,yBACA,4CAEA,SACE,6CAGF,SACE,6CAGF,SACE,iBAKN,UACE,0BAEA,SACE,SACA,wBAGF,eACE,0BAGF,iBACE,yBACA,cRnYoB,gBQqYpB,aACA,sCAEA,eACE,0BAIJ,cACE,sBACA,gCACA,wCAGF,eACE,wBAGF,WACE,kBACA,eACA,gBACA,WR3aI,8BQ8aJ,aACE,cR/ZkB,gBQialB,eACA,0BAIJ,SACE,iCACA,qCAGF,kCACE,YACE,sCAYJ,qIAPF,eAQI,gBACA,gBACA,iBAOJ,gBACE,qCAEA,eAHF,oBAII,uBAGF,sBACE,sCAEA,qBAHF,sBAII,sCAGF,qBAPF,UAQI,sCAGF,qBAXF,WAYI,kCAIJ,iBACE,qCAEA,gCAHF,4BAII,iEAIA,eACE,0DAGF,cACE,iBACA,oEAEA,UACE,YACA,gBACA,yFAGF,gBACE,SACA,mKAIJ,eAGE,gBAON,aRhgBsB,iCQ+fxB,kBAKI,6BAEA,eACE,kBAIJ,cACE,iBACA,wCAMF,oBACE,gBACA,cRnhBsB,4JQshBtB,yBAGE,oBAKN,kBACE,gBACA,eACA,kBACA,yBAEA,aACE,gBACA,aACA,CACA,kBACA,gBACA,uBACA,qBACA,WR9jBI,gCQgkBJ,4FAEA,yBAGE,oCAIJ,eACE,0BAGF,iBACE,gCACA,MC/kBJ,+BACE,gBACA,iBAGF,eACE,aACA,cACA,qBAIA,kBACE,gBACA,4BAEA,QACE,0CAIA,kBACE,qDAEA,eACE,gDAIJ,iBACE,kBACA,sDAEA,iBACE,SACA,OACA,6BAKN,iBACE,gBACA,gDAEA,mBACE,eACA,gBACA,WThDA,cSkDA,WACA,4EAGF,iBAEE,mDAGF,eACE,4CAGF,iBACE,QACA,OACA,qCAGF,aTnDoB,0BSqDlB,gIAEA,oBAGE,0CAIJ,iBACE,CACA,iBACA,mBAKN,YACE,cACA,0BAEA,qBACE,cACA,UACA,cACA,oBAIJ,aTpFsB,sBSuFpB,aTrFsB,yBSyFtB,iBACE,kBACA,gBACA,wBAIJ,aACE,eACA,eACA,qBAGF,kBACE,cTzGoB,iCS4GpB,iBACE,eACA,iBACA,gBACA,gBACA,oBAIJ,kBACE,qBAGF,eACE,CAII,0JADF,eACE,sDAMJ,YACE,4DAEA,mBACE,eACA,WTzJA,gBS2JA,gBACA,cACA,wHAGF,aAEE,sDAIJ,cACE,kBACA,mDAKF,mBACE,eACA,WT/KE,cSiLF,kBACA,qBACA,gBACA,sCAGF,cACE,mCAGF,UACE,sCAIJ,cACE,4CAEA,mBACE,eACA,WTrME,cSuMF,gBACA,gBACA,4CAGF,kBACE,yCAGF,cACE,CADF,cACE,kDAIJ,oBACE,WACA,OACA,6BAGF,oBACE,cACA,4BAGF,kBACE,8CAEA,eACE,0BAIJ,YACE,CACA,eACA,oBACA,iCAEA,cACE,kCAGF,qBACE,eACA,cACA,eACA,oCAEA,aACE,2CAGF,eACE,6GAIJ,eAEE,qCAGF,yBA9BF,aA+BI,gBACA,kCAEA,cACE,0JAGF,kBAGE,iDAKN,iBACE,oBACA,eACA,WTzRI,cS2RJ,WACA,2CAKE,mBACE,eACA,WTnSA,qBSqSA,WACA,kBACA,gBACA,kBACA,cACA,0DAGF,iBACE,OACA,QACA,SACA,kDAKN,cACE,aACA,yBACA,kBACA,sJAGF,qBAKE,eACA,WTnUI,cSqUJ,WACA,UACA,oBACA,gBACA,mBACA,sBACA,kBACA,aACA,6RAEA,aACE,CAHF,+OAEA,aACE,CAHF,mQAEA,aACE,CAHF,sNAEA,aACE,8LAGF,eACE,oVAGF,oBACE,iOAGF,oBT1VY,oLS8VZ,iBACE,4WAGF,oBTjVsB,mBSoVpB,6CAKF,aACE,gUAGF,oBAME,8CAGF,aACE,gBACA,cACA,eACA,8BAIJ,UACE,uBAGF,eACE,aACA,oCAEA,YACE,mBACA,qEAIJ,aAGE,WACA,SACA,kBACA,mBTlYsB,WAlBlB,eSuZJ,oBACA,YACA,aACA,yBACA,qBACA,kBACA,sBACA,eACA,gBACA,UACA,mBACA,kBACA,sGAEA,cACE,uFAGF,wBACE,gLAGF,wBAEE,kHAGF,wBTlaoB,gGSsapB,kBTpbQ,kHSubN,wBACE,sOAGF,wBAEE,qBAKN,uBACE,CADF,oBACE,CADF,eACE,sBACA,eACA,WTvcI,cSycJ,WACA,UACA,oBACA,gBACA,wXACA,sBACA,kBACA,kBACA,mBACA,YACA,iBAGF,4BACE,oCAIA,iBACE,mCAGF,iBACE,UACA,QACA,CACA,qBACA,eACA,cTvckB,oBSyclB,oBACA,eACA,gBACA,mBACA,gBACA,yCAEA,UACE,cACA,kBACA,MACA,QACA,WACA,UACA,8DACA,4BAKN,iBACE,0CAEA,wBACE,CADF,gBACE,qCAGF,iBACE,MACA,OACA,WACA,YACA,aACA,uBACA,mBACA,8BACA,kBACA,iBACA,gBACA,YACA,8CAEA,iBACE,6HAGE,UTrhBF,aS+hBR,aACE,CACA,kBACA,eACA,gBAGF,kBACE,cTvhBsB,kBSyhBtB,kBACA,mBACA,kBACA,uBAEA,qCACE,iCACA,cT/iBY,sBSmjBd,mCACE,+BACA,cTpjBQ,kBSwjBV,oBACE,cT3iBoB,qBS6iBpB,wBAEA,UT/jBI,0BSikBF,kBAIJ,kBACE,4BAGF,SACE,sBACA,cACA,WACA,YACA,aACA,gCACA,mBTvkBS,WATL,eSmlBJ,SACA,8CAEA,QACE,iHAGF,mBAGE,kCAGF,kBACE,uBAIJ,eACE,CAII,oKADF,eACE,0DAKN,eAzEF,eA0EI,eAIJ,eACE,kBACA,gBAEA,aTxmBsB,qBS0mBpB,sBAEA,yBACE,YAKN,eACE,mBACA,eACA,eAEA,oBACE,kBACA,cAGF,aT1nBwB,yBS4nBtB,qBACA,gBACA,2DAEA,aAGE,8BAKN,kBAEE,cT5oBsB,oCS+oBtB,cACE,mBACA,kBACA,4CAGF,aTppBwB,gBSspBtB,CAII,mUADF,eACE,0DAKN,6BAtBF,eAuBI,cAIJ,YACE,eACA,uBACA,UAGF,aACE,gBT5rBM,YS8rBN,qBACA,mCACA,qBACA,cAEA,aACE,SACA,iBAIJ,kBACE,cTzrBwB,WS2rBxB,sBAEA,aACE,eACA,eAKF,kBACE,sBAEA,eACE,CAII,+JADF,eACE,4CASR,qBACE,8BACA,WTxuBI,qCS0uBJ,oCACA,kBACA,aACA,mBACA,gDAEA,UThvBI,0BSkvBF,oLAEA,oBAGE,0DAIJ,eACE,cACA,kBACA,CAII,yYADF,eACE,kEAIJ,eACE,oBAMR,YACE,eACA,mBACA,4DAEA,aAEE,6BAIA,wBACA,cACA,sBAIJ,iBACE,cT/wBsB,0BSkxBtB,iBACE,oBAIJ,eACE,mBACA,uBAEA,cACE,WT5yBI,kBS8yBJ,mBACA,SACA,UACA,4BAGF,aACE,eAIJ,aTtzBc,0SSg0BZ,+BACE,aAIJ,kBACE,sBACA,kBACA,aACA,mBACA,kBACA,kBACA,QACA,mCACA,sBAEA,aACE,8BAGF,sBACE,SACA,aACA,eACA,gCACA,oBAGF,aACE,WACA,oBACA,gBACA,eACA,CACA,oBACA,WACA,iCACA,oBAGF,oBT12Bc,gBS42BZ,2BAEA,kBT92BY,gBSg3BV,oBAKN,kBACE,6BAEA,wBACE,mBACA,eACA,aACA,4BAGF,kBACE,aACA,OACA,sBACA,cACA,cACA,gCAEA,iBACE,YACA,iBACA,kBACA,UACA,8BAGF,qBACE,qCAIJ,kBACE,gCAGF,wBACE,mCACA,kBACA,kBACA,kBACA,kBACA,sCAEA,wBACE,WACA,cACA,YACA,SACA,kBACA,MACA,UACA,yBAIJ,sBACE,aACA,mBACA,SCj7BF,aACE,qBACA,cACA,mCACA,qCAEA,QANF,eAOI,8EAMA,kBACE,YAKN,YACE,kBACA,gBACA,0BACA,gBAEA,aACE,WACA,YACA,SACA,oBACA,CADA,8BACA,CADA,gBACA,0BACA,qCAGF,WAfF,YAgBI,sCAGF,WAnBF,YAoBI,aAIJ,iBACE,aACA,aACA,2BACA,mBACA,mBACA,0BACA,qCAEA,WATF,eAUI,qBAGF,aACE,CAEA,UACqB,sCPpDzB,gBOqDI,wBAEA,UACE,YACA,cACA,SACA,kBACA,iBVLgB,wBG9DtB,4BACA,mBOoEM,oBACA,CADA,8BACA,CADA,gBACA,0BAIJ,gBACE,gBACA,iCAEA,cACE,WV/EA,gBUiFA,gBACA,uBACA,+BAGF,aACE,eACA,cVxEgB,gBU0EhB,gBACA,uBACA,aAMR,cACE,kBACA,gBACA,6GAEA,cAME,WV7GI,gBU+GJ,qBACA,iBACA,qBACA,sBAGF,eVrHM,oBUuHJ,cV9GS,eUgHT,cACA,kBAGF,cACE,uCAGF,wBAEE,cVlHsB,oBUsHxB,UACE,eACA,wBAEA,oBACE,iBACA,oBAIJ,WACE,gBACA,wBAEA,oBACE,gBACA,uBAIJ,cACE,cACA,qCAGF,YA9DF,iBA+DI,mBAEA,YACE,uCAGF,oBAEE,gBAKN,kBVrKa,mCUuKX,cVhKsB,eUkKtB,gBACA,kBACA,aACA,uBACA,mBACA,eACA,kBACA,aACA,gBACA,2BAEA,yBACE,yBAGF,qBACE,gBACA,yCAIJ,oBAEE,gBACA,eACA,kBACA,eACA,iBACA,gBACA,cV9LwB,sCUgMxB,sCACA,6DAEA,aVnNc,sCUqNZ,kCACA,qDAGF,aACE,sCACA,kCACA,0BAIJ,eACE,UACA,wBACA,gBACA,CADA,YACA,CACA,iCACA,CADA,uBACA,CADA,kBACA,eACA,iBACA,6BAEA,YACE,gCACA,yDAGF,qBAEE,aACA,kBACA,gBACA,gBACA,mBACA,uBACA,6BAGF,eACE,YACA,cACA,cV7OsB,0BU+OtB,6BAGF,aACE,cVpPoB,4BUwPtB,aVtPwB,qBUwPtB,qGAEA,yBAGE,oCAIJ,qCACE,iCACA,sCAEA,aVtRY,gBUwRV,0CAGF,aV3RY,wCUgSd,eACE,wCAIJ,UACE,0BAIA,aV3RsB,4BU8RpB,aV7RsB,qBU+RpB,qGAEA,yBAGE,iCAIJ,UVzTI,gBU2TF,wBAIJ,eACE,kBClUJ,kCACE,kBACA,gBACA,mBACA,qCAEA,iBANF,eAOI,gBACA,gBACA,6BAGF,eACE,SACA,gBACA,gFAEA,yBAEE,sCAIJ,UACE,yBAGF,kBXhBW,6GWmBT,sBAGE,CAHF,cAGE,8IAIA,eAGE,0BACA,iJAKF,yBAGE,kLAIA,iBAGE,qCAKN,4GACE,yBAGE,uCAKN,kBACE,qBAIJ,WACE,eACA,mBXzDwB,WAlBlB,oBW8EN,iBACA,YACA,iBACA,SACA,yBAEA,UACE,YACA,sBACA,iBACA,UXxFI,gFW4FN,kBAGE,qNAKA,kBXpFoB,4IW4FpB,kBX1GQ,qCWiHV,wBACE,YACE,0DAOJ,YACE,uCAGF,2BACE,gBACA,uDAEA,SACE,SACA,yDAGF,eACE,yDAKA,cACA,iBACA,mBACA,mFAGF,iBACE,eACA,WACA,WACA,WACA,qMAGF,eAGE,mEASF,cACE,gBACA,qFAGF,aXhJoB,YWkJlB,eACA,WACA,eACA,gBACA,+GAGF,aACE,eACA,CACA,sBACA,eACA,yJAEA,cACE,uEAIJ,WACE,kBACA,WACA,eACA,iDAQF,iBACE,mBACA,yHAEA,iBACE,gBACA,+FAGF,UACE,oCAMR,aACE,eACA,iBACA,cACA,SACA,uBACA,CACA,eACA,qBACA,oFAEA,yBAEE,WC9OJ,gCACE,4CACA,kBAGF,mBACE,sBACA,oBACA,gBACA,kBACA,cAGF,aACE,eACA,iBACA,cZIwB,SYFxB,uBACA,UACA,eACA,wCAEA,yBAEE,uBAGF,aZVsB,eYYpB,SAIJ,wBACE,YACA,kBACA,sBACA,WZpCM,eYsCN,qBACA,oBACA,eACA,gBACA,YACA,iBACA,iBACA,gBACA,eACA,kBACA,kBACA,yBACA,qBACA,uBACA,2BACA,qCACA,mBACA,WACA,4CAEA,wBAGE,4BACA,qCACA,sBAGF,eACE,mFAEA,wBZnEQ,gBYuEN,kBAIJ,wBZ7DsB,eY+DpB,yGAGF,cAIE,iBACA,YACA,oBACA,iBACA,4BAGF,aZpFW,mBAOW,qGYiFpB,wBAGE,8BAIJ,kBZ1EsB,2GY6EpB,wBAGE,0BAIJ,cACE,iBACA,YACA,cZrGoB,oBYuGpB,uBACA,iBACA,kBACA,yBACA,+FAEA,oBAGE,cACA,mCAGF,UACE,uBAIJ,aACE,WACA,cAIJ,oBACE,UACA,cZnHsB,SYqHtB,kBACA,uBACA,eACA,2BACA,2CACA,2DAEA,aAGE,qCACA,4BACA,2CACA,oBAGF,mCACE,uBAGF,aACE,6BACA,eACA,qBAGF,aZ3JwB,gCY+JxB,QACE,uEAGF,mBAGE,uBAGF,aZ7JsB,sFYgKpB,aAGE,qCACA,6BAGF,mCACE,gCAGF,aACE,6BACA,8BAGF,aZ5LsB,uCY+LpB,aACE,wBAKN,sBACE,0BACA,yBACA,kBACA,YACA,8BAEA,yBACE,mBAKN,aZtMwB,SYwMtB,kBACA,uBACA,eACA,gBACA,eACA,cACA,iBACA,UACA,2BACA,2CACA,0EAEA,aAGE,qCACA,4BACA,2CACA,yBAGF,mCACE,4BAGF,aACE,6BACA,eACA,0BAGF,aZnPwB,qCYuPxB,QACE,sFAGF,mBAGE,gBAIJ,iBACE,uBACA,YAGF,WACE,cACA,qBACA,QACA,SACA,kBACA,+BAEA,kBAEE,mBACA,oBACA,kBACA,mBACA,iBAKF,WACE,uCAIJ,MACE,kBACA,CZ/SU,sEYsTZ,aZtTY,uBY0TZ,aZ3Tc,4DYiUV,4CACE,CADF,oCACE,8DAKF,6CACE,CADF,qCACE,6BAKN,aACE,gBACA,qBACA,mCAEA,UZrVM,0BYuVJ,eAIJ,aACE,eACA,gBACA,uBACA,mBACA,iBAEA,aACE,wBACA,sBAIA,cACA,gBAKA,yCAPF,WACE,CAEA,gBACA,uBACA,gBACA,mBAWA,CAVA,mBAGF,aACE,CACA,cAKA,8BAIA,yBACE,sBAIJ,SACE,YACA,eACA,iBACA,uBACA,mBACA,gBACA,CAME,sDAGF,cACE,YACA,kBACA,oBACA,qBAKN,eACE,wBAGF,cACE,eAGF,iBACE,WACA,YACA,aACA,mBACA,uBACA,sBACA,6CAEA,cZxX4B,eAEC,0DYyX3B,sBACA,CADA,gCACA,CADA,kBACA,4BAGF,iBACE,qEAGF,YACE,iBAIJ,iBACE,WACA,YACA,aACA,mBACA,uBACA,qBAEA,cZhZ4B,eAEC,WYiZ3B,YACA,sBACA,CADA,gCACA,CADA,kBACA,WAIJ,oBACE,oBAGF,YACE,kBACA,2BAGF,+BACE,mBACA,SACA,gBAGF,kBZ1c0B,cY4cxB,kBACA,uCACA,mBAEA,eACE,uBAIJ,iBACE,QACA,SACA,2BACA,4BAEA,UACE,gBACA,2BACA,0BZ9dsB,2BYkexB,WACE,iBACA,uBACA,yBZresB,8BYyexB,QACE,iBACA,uBACA,4BZ5esB,6BYgfxB,SACE,gBACA,2BACA,2BZnfsB,wBYyfxB,cACE,iBACA,cACA,iBACA,sBACA,qBACA,mBZ/fsB,cARb,gBY0gBT,uBACA,mBACA,yFAEA,kBZrgBsB,cADA,UY2gBpB,sCAKN,aACE,iBACA,gBACA,QACA,gBACA,aACA,yCAEA,eACE,mBZzhBsB,cY2hBtB,kBACA,mCACA,gBACA,kBACA,sDAGF,OACE,wDAIA,UACE,8CAIJ,cACE,iBACA,cACA,iBACA,sBACA,qBACA,mBZljBsB,cARb,gBY6jBT,uBACA,mBACA,oDAEA,SACE,oDAGF,kBZ5jBsB,cADA,iBYokB1B,qBACE,iBAIA,sBACA,cZ7jBsB,oBYgkBtB,cACE,gBACA,mBACA,kBACA,mBAGF,cACE,mBACA,iBAIJ,aAEE,gBACA,qCAGF,cACE,SACE,iBAGF,aAEE,CAEA,gBACA,yCAEA,iBACE,uCAGF,kBACE,qDAKF,gBAEE,kBACA,YAKN,qBACE,aACA,mBACA,cACA,gBACA,iBAGF,aACE,cACA,CACA,sBACA,WZ3pBM,qBY6pBN,kBACA,eACA,gBACA,gCACA,2BACA,mDACA,qBAEA,eACE,eACA,qCTxoBA,6GADF,kBSgpBI,4BACA,kHT5oBJ,kBS2oBI,4BACA,wBAIJ,+BACE,cZlqBsB,sBYsqBxB,eACE,aACA,2BAGF,aACE,eACA,kBAIJ,iBACE,yBAEA,iBACE,SACA,UACA,mBZvrBsB,yBYyrBtB,gBACA,kBACA,eACA,gBACA,iBACA,WZhtBI,mDYqtBR,oBACE,aAGF,iBACE,kBACA,cACA,iCACA,mCAEA,eACE,yBAGF,YAVF,cAWI,oBAGF,YACE,sBACA,qBAGF,aACE,kBACA,iBACA,yBAKF,uBADF,YAEI,gBAIJ,oBACE,kBACA,eACA,6BACA,SACA,UACA,yBACA,CADA,qBACA,CADA,oBACA,CADA,gBACA,0CACA,wCACA,iCAGF,QACE,mBACA,WACA,YACA,gBACA,UACA,kBACA,UACA,yBAGF,kBACE,WACA,wBACA,qBAGF,UACE,YACA,UACA,mBACA,yBZjxBW,qCYmxBX,sEAGF,wBACE,4CAGF,wBZjxB0B,+EYqxB1B,wBACE,2BAGF,iBACE,WACA,YACA,MACA,SACA,gBACA,mBACA,cACA,SACA,UACA,6BACA,CAKA,uEAFF,SACE,6BAeA,CAdA,sBAGF,iBACE,WACA,YACA,MACA,SACA,gBACA,mBACA,cACA,WAGA,8CAGF,SACE,qBAGF,iBACE,QACA,SACA,WACA,YACA,yBACA,kBACA,yBACA,sBACA,yBACA,sCACA,4CAGF,SACE,qBZ70BwB,yDYi1B1B,kBZ11Ba,2BYg2Bb,iBACE,gBACA,cAGF,aACE,kBAGF,kBZz2Ba,cY22BX,oBAEA,aZr2BwB,oBYy2BxB,aZ51BsB,yBYg2BtB,0BACE,CADF,uBACE,CADF,kBACE,kDAKA,sBACA,cACA,wDAEA,kBACE,8DAGF,cACE,sDAGF,aZl3BoB,eYo3BlB,0DAEA,aZt3BkB,0BYw3BhB,sDAIJ,oBACE,cZ34BkB,sMY84BlB,yBAGE,0BAKN,aACE,UACA,mCACA,CADA,0BACA,gBACA,6BAEA,cACE,yBACA,cZ95BkB,aYg6BlB,gBACA,gCACA,sCAGF,oDACE,YACE,uCAIJ,oDACE,YACE,uCAIJ,yBA3BF,YA4BI,yCAGF,eACE,aACA,iDAEA,aZz7BkB,qBYg8BxB,oBACE,kBACA,eACA,iBACA,gBACA,mBZ58BW,gBY88BX,iBACA,qBAGF,eACE,gBACA,2BAEA,iBACE,aACA,wBAGF,kBACE,yBAGF,oBACE,gBACA,yBACA,yBACA,eAIJ,aZh+BwB,uBYk+BtB,CACA,WACA,CADA,+BACA,sBACA,cACA,oBACA,mBACA,cACA,WACA,0CAEA,UZ5/BM,4BAkBkB,qCGKtB,yDADF,cS6+BE,sBAGF,aZ7/BW,gCY+/BT,sDAEA,aZjgCS,4BASa,mDYggC1B,uBACE,YACA,6CACA,uBACA,sBACA,WACA,0DAEA,sBACE,0DAIJ,uBACE,2BACA,gDAGF,aZtgCwB,6BYwgCtB,uDAGF,aZvhC0B,yDY2hC1B,aACE,YAGF,aACE,cZphCsB,6BYshCtB,SACA,kBACA,kBACA,oBACA,SACA,aACA,sBACA,WACA,WACA,qBACA,kBAEA,kBACE,WAIJ,+BACE,oBAGF,gBACE,qEAGF,4BACE,gCAGF,eACE,kBACA,MACA,QACA,YACA,kBACA,YAEA,mBACA,yBACA,eACA,aAEA,wCAEA,UZ/hCsB,mBYiiCpB,aACA,sBACA,mBACA,uBACA,mBACA,8BACA,wBACA,gCACA,uCAGF,wBACE,kBACA,WACA,YACA,eACA,cZlmCoB,yBYomCpB,aACA,uBACA,mBACA,sCAGF,mBACE,6CAEA,8BACE,WAKN,oBACE,UACA,oBACA,kBACA,cACA,SACA,uBACA,eACA,oBAGF,aZhnCwB,eYknCtB,gBACA,yBACA,iBACA,kBACA,QACA,SACA,+BACA,yBAEA,aACE,WACA,CACA,0BACA,oBACA,mBACA,4BAIJ,iBACE,QACA,SACA,+BACA,WACA,YACA,sBACA,6BACA,CACA,wBACA,kBACA,2CAGF,2EACE,CADF,mEACE,8CAGF,4EACE,CADF,oEACE,qCAGF,GACE,sBACE,KAGF,2BACE,KAGF,2BACE,KAGF,yBACE,IAGF,wBACE,EArBF,4BAGF,GACE,sBACE,KAGF,2BACE,KAGF,2BACE,KAGF,yBACE,IAGF,wBACE,uCAIJ,GACE,wBACE,KAGF,0BACE,KAGF,2BACE,KAGF,uBACE,IAGF,sBACE,EAtBA,6BAIJ,GACE,wBACE,KAGF,0BACE,KAGF,2BACE,KAGF,uBACE,IAGF,sBACE,mCAIJ,GACE,OACE,SACA,yBACA,KAGF,wBACE,KAGF,UACE,YACA,6BACA,kBACA,UACA,IAGF,UACE,YACA,eACA,UACA,6BACA,EA5BA,yBAIJ,GACE,OACE,SACA,yBACA,KAGF,wBACE,KAGF,UACE,YACA,6BACA,kBACA,UACA,IAGF,UACE,YACA,eACA,UACA,6BACA,kCAIJ,GACE,gBACA,aACA,aAPE,wBAIJ,GACE,gBACA,aACA,6BAGF,KACE,OACA,WACA,YACA,kBACA,YACA,2BAEA,YACE,SACA,QACA,WACA,YACA,mBACA,6BAGF,mBACE,yBAGF,YACE,0BAGF,aACE,uBACA,WACA,YACA,SACA,iCAEA,oBACE,0BACA,kBACA,iBACA,WZ3yCE,gBY6yCF,eACA,+LAMA,yBACE,mEAKF,yBACE,iBAMR,aACE,iBACA,mEAGF,aZtzCwB,qBY0zCtB,mBACA,gBACA,sBACA,gBAGF,aACE,iBACA,uBAGF,eACE,8BAGF,aZz0CwB,eY20CtB,cACA,gBACA,gBACA,uBAGF,qBACE,sBAGF,WACE,8BAGF,GACE,kBACE,+BACA,2CACA,CADA,kCACA,KAGF,oBACE,0CACA,CADA,iCACA,KAGF,oBACE,2CACA,CADA,kCACA,KAGF,oBACE,0CACA,CADA,iCACA,KAGF,kBACE,2CACA,CADA,kCACA,EA3BF,qBAGF,GACE,kBACE,+BACA,2CACA,CADA,kCACA,KAGF,oBACE,0CACA,CADA,iCACA,KAGF,oBACE,2CACA,CADA,kCACA,KAGF,oBACE,0CACA,CADA,iCACA,KAGF,kBACE,2CACA,CADA,kCACA,iBAIJ,0DACE,CADF,kDACE,cAGF,kBACE,0BACA,aACA,YACA,uBACA,OACA,UACA,kBACA,MACA,kBACA,WACA,aACA,gBAEA,mBACE,oBAIJ,WACE,aACA,aACA,sBACA,kBACA,YACA,0BAGF,iBACE,MACA,QACA,SACA,OACA,WACA,kBACA,mBZn6CW,kCYq6CX,uBAGF,MACE,aACA,mBACA,uBACA,cZp6CwB,eYs6CxB,gBACA,0BACA,kBACA,qCAGF,SACE,oBACA,CADA,WACA,cAGF,wBZh7C0B,WYk7CxB,kBACA,MACA,OACA,aACA,qBAGF,iBACE,aAGF,iBACE,cACA,aACA,WACA,yBZj8CwB,kBYm8CxB,cACA,UACA,WACA,eAGF,YACE,gCACA,CACA,iBACA,qBAEA,kBACE,UACA,uBAGF,aACE,CACA,sBACA,kBACA,eACA,uBAGF,oBACE,mBZ79CsB,kBY+9CtB,cACA,eACA,wBACA,wBAGF,aACE,CACA,0BACA,gBACA,8BAEA,eACE,aACA,2BACA,8BACA,uCAGF,cACE,cZr/CkB,kBYu/ClB,+BAGF,aZ1/CoB,eY4/ClB,mBACA,gBACA,uBACA,kBACA,gBACA,YACA,iCAEA,UZphDE,qBYshDA,oHAEA,yBAGE,yCAKN,QACE,uBAIJ,kBACE,6BAEA,kBACE,oDAGF,eACE,6DAGF,UZhjDI,oBYyjDN,kBACA,cACA,2BAGF,eACE,UAGF,iBACE,cAEA,WACE,WACA,sCACA,CADA,6BACA,cAGF,cACE,iBACA,cZ5jDsB,gBY8jDtB,gBAEA,aZ/jDsB,0BYikDpB,sBAEA,oBACE,gBAIJ,qBACE,4BAKN,GACE,cACA,eACA,WARI,mBAKN,GACE,cACA,eACA,2CCrmDF,u+KACE,uCAEA,u+KACE,CAOA,8MAMF,okBACE,UClBJ,YACE,gCACA,cACA,qBACA,iCAEA,aACE,cACA,cdUoB,gBcRpB,qBACA,eACA,gBAGF,WACE,UACA,yCAEA,8CAEA,WACE,iBACA,mBAKN,YACE,0BAGF,UACE,iBACA,kBACA,kBAGF,gBd0BwB,wBG9DtB,4BACA,kBWqCA,eACA,yBAEA,oBACE,sBACA,iBACA,4BX3CF,eWiDE,2DAHF,gBdesB,wBG9DtB,4BACA,CWgDE,iBAOE,CANF,+BXjDF,UWqDI,CACA,qBACA,mCAGF,aACE,kBACA,QACA,SACA,+BACA,WdhEE,6BckEF,gBACA,eACA,0BAKN,iBACE,WACqB,sCXpErB,+BANA,UW8EuB,sCXxEvB,gEWsEA,gBdfsB,wBG9DtB,4BWyFE,CXlFF,iCANA,UWmFuB,sCX7EvB,kBW+EE,SACA,QACA,UACA,wBAIJ,WACE,aACA,mBACA,2BAGF,aACE,mBACA,sBAGF,YACE,cd3EsB,6Bc8EtB,eACE,CAII,kMADF,eACE,wBAKN,eACE,cACA,0BACA,yFAEA,oBAGE,sBAKN,4BACE,gCACA,iBACA,gBACA,cACA,aACA,4BAGF,YACE,cACA,iBACA,kBACA,2BAGF,oBACE,gBACA,cACA,8BACA,eACA,oCACA,uCAEA,aACE,kCAGF,+BACE,gCAGF,aACE,yBACA,eACA,cdtJoB,kCc0JtB,aACE,eACA,gBACA,Wd7KI,CckLA,2NADF,eACE,gCAKN,adrKwB,oBc0K1B,iBACE,mDAEA,aACE,mBACA,gBACA,4BAIJ,UACE,kBACA,wBAGF,gBACE,qBACA,eACA,cd9LsB,ecgMtB,kBACA,4BAEA,adjMwB,6BcqMxB,aACE,gBACA,uBACA,iBAIJ,kBACE,6BACA,gCACA,aACA,mBACA,eACA,kDAGF,aAEE,kBACA,yBAGF,kBACE,aACA,2BAGF,adlOwB,ecoOtB,cACA,gBACA,mBACA,kDAIA,kBACE,oDAIA,SX5MF,sBACA,WACA,YACA,gBACA,oBACA,mBHhDW,cAOW,eG4CtB,SACA,+EWsMI,aACE,CXvMN,qEWsMI,aACE,CXvMN,yEWsMI,aACE,CXvMN,gEWsMI,aACE,sEAGF,QACE,yLAGF,mBAGE,0DAGF,kBACE,qCAGF,mDArBF,cAsBI,yDAIJ,ad5PoB,iBc8PlB,eACA,4DAGF,gBACE,wDAGF,kBACE,gEAEA,cACE,iNAEA,kBAGE,cACA,gHAKN,adnSoB,0HcwSpB,cAEE,gBACA,cd7RkB,kZcgSlB,aAGE,gEAIJ,wBACE,iDAGF,edzUI,kBGkEN,CAEA,eACA,cHrDsB,uCGuDtB,UWoQI,mBd1ToB,oDGwDxB,wBACE,cH1DoB,eG4DpB,gBACA,mBACA,oDAGF,aACE,oDAGF,kBACE,oDAGF,eACE,cHjFS,sDcsUT,WACE,mDAGF,ad1US,kBc4UP,eACA,8HAEA,kBAEE,iCAON,kBACE,mBAIJ,UdtWQ,kBcwWN,cACA,mBACA,sBd3WM,yBc6WN,eACA,gBACA,YACA,kBACA,WACA,yBAEA,SACE,6BAIJ,YACE,eACA,gBACA,wBAGF,WACE,sBACA,cACA,kBACA,kBACA,gBACA,WACA,+BAEA,iBACE,QACA,SACA,+BACA,eACA,sDAIJ,kBAEE,gCACA,eACA,aACA,cACA,oEAEA,kBACE,SACA,SACA,6HAGF,aAEE,cACA,cdjZoB,ecmZpB,eACA,gBACA,kBACA,qBACA,kBACA,yJAEA,adzZsB,qWc4ZpB,aAEE,WACA,kBACA,SACA,SACA,QACA,SACA,2BACA,CAEA,4CACA,CADA,kBACA,CADA,wBACA,iLAGF,WACE,6CACA,8GAKN,kBACE,gCACA,qSAKI,YACE,iSAGF,4CACE,sBAQR,sBACA,mBACA,6BACA,gCACA,+BAEA,iBACE,iBACA,cdjcoB,CcocpB,eACA,eACA,oCAEA,aACE,gBACA,uBACA,oCAIJ,UACE,kBACA,uDAGF,iBACE,qDAGF,eACE,2BAIJ,ad3ewB,ec6etB,gBACA,gBACA,kBACA,qBACA,6BAEA,kBACE,wCAEA,eACE,6BAIJ,aACE,0BACA,mCAEA,oBACE,kBAKN,eACE,2BAEA,UACE,8FAEA,8BAEE,CAFF,sBAEE,wBAIJ,iBACE,SACA,UACA,yBAGF,eACE,aACA,kBACA,mBACA,6BAEA,mBACE,CADF,8BACE,CADF,gBACE,cACA,WACA,YACA,SACA,uBAIJ,iBACE,mBACA,YACA,gCACA,+BAEA,aACE,cACA,WACA,iBACA,gDAEA,kBACE,yBACA,wBAKN,YACE,uBACA,gBACA,iBACA,iCAEA,YACE,mBACA,iBACA,gBACA,8CAEA,wBACE,kBACA,uBACA,YACA,yCAGF,YACE,8BAIJ,WACE,4CAEA,kBACE,wCAGF,UACE,YACA,iCAGF,cACE,iBACA,Wd/mBA,gBcinBA,gBACA,mBACA,uBACA,uCAEA,aACE,eACA,cdxmBc,gBc0mBd,gBACA,uBACA,gCAKN,aACE,uBAIJ,eACE,cACA,iDAGE,qBACA,Wd5oBE,gDcgpBJ,QACE,6BACA,kDAEA,aACE,yEAGF,uBACE,4DAGF,ad3pBU,yBciqBd,cACE,gCAEA,cACE,cdtpBkB,ecwpBlB,kCAEA,oBACE,cd3pBgB,qBc6pBhB,iBACA,gBACA,yCAEA,eACE,WdlrBF,SeFR,YACE,gCACA,8BAEA,aACE,cACA,WfJI,qBeMJ,eACA,gBACA,kBAIJ,YACE,iBAGF,WACE,aACA,mBACA,mCCrBF,GACE,sBACE,KAGF,2BACE,KAGF,4BACE,KAGF,2BACE,IAGF,yBACE,EDGF,0BCrBF,GACE,sBACE,KAGF,2BACE,KAGF,4BACE,KAGF,2BACE,IAGF,yBACE,qCAIJ,GACE,yBACE,KAGF,yBACE,KAGF,4BACE,KAGF,wBACE,IAGF,sBACE,EAtBA,2BAIJ,GACE,yBACE,KAGF,yBACE,KAGF,4BACE,KAGF,wBACE,IAGF,sBACE,gCAIJ,cACE,kBAGF,iBACE,cACA,eACA,iBACA,qBACA,gBACA,iBACA,gBACA,wBAEA,SACE,4BAGF,UACE,YACA,gBACA,sBAGF,cACE,iBACA,sBACA,CADA,gCACA,CADA,kBACA,qEAGF,kBACE,qBACA,sGAEA,eACE,qEAIJ,eAEE,qJAEA,kBAEE,mXAGF,eACE,mBACA,qJAGF,eACE,gBACA,2EAGF,eACE,+NAGF,eACE,2FAGF,iBACE,8BACA,chB9FkB,mBgBgGlB,qHAEA,eACE,2JAIJ,eACE,mJAGF,iBACE,6EAGF,iBACE,eACA,6EAGF,iBACE,qBACA,qJAGF,eACE,6JAEA,QACE,2EAIJ,oBACE,2EAGF,uBACE,oBAIJ,ahB9Ic,qBgBgJZ,0BAEA,yBACE,8BAEA,aACE,kCAKF,oBACE,uCAEA,yBACE,wBAKN,ahBlJoB,4CgBuJtB,YACE,8EAEA,aACE,mCAIJ,aACE,oDAEA,ahB5LQ,egB8LN,iDAIJ,kBACE,uDAEA,kBACE,qBACA,gCAKN,oBACE,kBACA,mBACA,YACA,chB3MW,gBgB6MX,eACA,cACA,yBACA,oBACA,eACA,sBACA,sCAEA,kBACE,qBACA,+DAGF,oBACE,iBACA,sBACA,kBACA,eACA,oBACA,2GAKF,oBAGE,4BAIJ,ahBvNwB,SgByNtB,kBACA,kBACA,oBACA,SACA,aACA,sBACA,WACA,WACA,gCACA,+BAGF,UACE,kBACA,mDAGF,iBAEE,gCAGA,qEAEA,eACE,kBAKF,SACE,mBACA,kDAEA,kBACE,wDAEA,sBACE,iFAIJ,kBAEE,SAKN,iBACE,kBACA,YACA,gCACA,eACA,UAaA,mCACA,CADA,0BACA,wDAZA,QAPF,kBAUI,0BAGF,GACE,aACA,WALA,gBAGF,GACE,aACA,uDAMF,cAEE,kCAGF,kBACE,4BACA,sCAIA,ahB1SoB,qCgB8SpB,ahBnUS,6BgBuUT,ahBhUoB,CAPX,kEgB+UT,ahB/US,kCgBkVP,ahBzUoB,gEgB6UpB,UhB/VE,mBAgBgB,sEgBmVhB,kBACE,mBAMR,uBACE,sBACA,yBACA,CADA,qBACA,CADA,oBACA,CADA,gBACA,yCAEA,aACE,kBACA,OACA,QACA,MACA,SACA,6FACA,oBACA,WACA,2DAGF,oBACE,oCAGF,WACE,gBACA,uBACA,cACA,0CAEA,UACE,kBACA,MACA,gBACA,6DACA,oBACA,4CAGF,oBACE,gDAGJ,oDACE,mEAEF,oDACE,0CAGF,eACE,6DAGF,kBACE,gCAIJ,mBACE,+CAKF,sBACE,qEAEA,aACE,wBAKN,oBACE,YACA,ChBrZsB,cgBuZtB,iBACA,mBACA,CACA,sBACA,8CANA,ahBrZsB,CgByZtB,eAOA,8CAGF,aACE,eACA,eAGF,YACE,8BACA,eACA,oBAEA,sBACE,gBACA,2CAGF,oBACE,sBAIJ,YACE,mBACA,WACA,chB1bsB,iIgB6btB,gBAGE,kBACA,0EAGF,yBACE,yEAMA,0CACE,CADF,kCACE,2EAKF,2CACE,CADF,mCACE,wBAKN,YACE,mBACA,2BACA,mBAGF,+BACE,aACA,6CAEA,uBACE,OACA,gBACA,4DAEA,eACE,8DAGF,SACE,mBACA,qHAGF,cAEE,gBACA,4EAGF,cACE,0BAKN,kBACE,aACA,cACA,uBACA,aACA,kBAGF,gBACE,mBACA,iBACA,chBtgBsB,CgBwgBtB,iBACA,eACA,kBACA,+CAEA,ahB7gBsB,uBgBihBtB,aACE,gBACA,uBACA,qBAIJ,kBACE,aACA,eACA,8BAEA,mBACE,kBACA,mBACA,yDAEA,gBACE,qCAGF,oBACE,WACA,eACA,gBACA,chB1iBkB,4BgBgjBxB,iBACE,8BAGF,cACE,cACA,uCAGF,aACE,aACA,mBACA,uBACA,kBACA,kBAGF,kBACE,kBACA,wBAEA,YACE,eACA,8BACA,uBACA,uFAEA,SAEE,mCAIJ,cACE,iBACA,6CAEA,UACE,YACA,gBACA,+DAIJ,cAEE,wBAIJ,eACE,chBnmBsB,egBqmBtB,iBACA,8BAGF,kBACE,6BACA,gCACA,aACA,mBACA,eACA,wBAGF,aACE,qBACA,uDAGF,oBAEE,gBACA,eACA,gBACA,6JAGF,oBAME,4DAKA,UhBxqBM,kBgB8qBN,UACE,iKAQF,yBACE,+BAIJ,aACE,gBACA,uBACA,0DAGF,aAEE,sCAGF,kBACE,gCAGF,ahB1rB0B,cgB4rBxB,iBACA,mBACA,gBACA,2EAEA,aAEE,uBACA,gBACA,uCAGF,cACE,WhB1tBI,kCgB+tBR,UACE,kBACA,iBAGF,SACE,kBACA,YACA,WACA,ChB1sBsB,8IgBqtBtB,ahBrtBsB,wBgBytBtB,UACE,wCAGF,kBhB7tBsB,cArBX,8CgBsvBT,kBACE,qBACA,+DAOJ,yBACE,cAIJ,YACE,eACA,yBACA,kBACA,chBnvBsB,gBgBqvBtB,qBACA,gBACA,uBAEA,QACE,OACA,kBACA,QACA,MAIA,iDAHA,YACA,uBACA,mBAUE,CATF,0BAEA,yBACE,kBACA,iBACA,cAIA,sDAGF,cAEE,chB5xBoB,uBgB8xBpB,SACA,cACA,qBACA,eACA,iBACA,sMAEA,UhBtzBE,yBgB6zBJ,cACE,kBACA,YACA,+DAGF,aACE,eAKN,cACE,qBAEA,kBACE,oBAIJ,cACE,cACA,qBACA,WACE,YACA,SACA,2BAIF,UACE,YACA,qBAIJ,aACE,gBACA,kBACA,chBp1BsB,gBgBs1BtB,uBACA,mBACA,qBACA,uBAGF,aACE,gBACA,2BACA,2BAGF,ahBl2BwB,oBgBs2BxB,aACE,eACA,eACA,gBACA,uBACA,mBACA,qBAGF,cACE,mBACA,kBACA,yBAEA,cACE,kBACA,yBACA,QACA,SACA,+BACA,yBAIJ,aACE,6CAEA,UACE,mDAGF,yBACE,6CAGF,mBACE,sBAIJ,oBACE,kCAEA,QACE,4CAIA,oBACA,0CAGF,kBACE,0CAGF,aACE,6BAIJ,wBACE,2BAGF,yBACE,cACA,SACA,WACA,YACA,oBACA,CADA,8BACA,CADA,gBACA,sBACA,wBACA,kBAGF,YACE,eACA,yBACA,kBACA,gBACA,gBACA,wBAEA,aACE,chB76BoB,iBgB+6BpB,eACA,+BACA,aACA,sBACA,mBACA,uBACA,eACA,4BAEA,aACE,wBAIJ,eACE,CACA,qBACA,aACA,sBACA,uBACA,2BAEA,aACE,cACA,0BAGF,oBACE,chB38BkB,gBgB68BlB,gCAEA,yBACE,0BAKN,QACE,eACA,iDAEA,SACE,cACA,8BAGF,ahB99BoB,oCgBo+BxB,cACE,cACA,SACA,uBACA,UACA,kBACA,oBACA,oFAEA,yBAEE,6BC/gCJ,kBACE,aAGF,iBACE,8BACA,oBACA,aACA,sBAGF,cACE,MACA,OACA,QACA,SACA,0BACA,wBAGF,cACE,MACA,OACA,WACA,YACA,aACA,sBACA,mBACA,uBACA,2BACA,aACA,oBACA,yBACA,CADA,qBACA,CADA,oBACA,CADA,gBACA,oBAGF,mBACE,aACA,aACA,6CAGF,kBjBvB0B,cARb,kBiBoCX,gBACA,aACA,sBACA,0BAGF,WACE,WACA,gBACA,iBACA,8DAEA,UACE,YACA,sBACA,aACA,sBACA,mBACA,uBACA,aACA,yBACA,CADA,qBACA,CADA,oBACA,CADA,gBACA,oBAIJ,WACE,WACA,gBACA,iBACA,kBACA,wBAEA,iBACE,MACA,OACA,WACA,YACA,sBACA,aACA,aACA,CAGA,YACA,UACA,yBACA,CADA,qBACA,CADA,oBACA,CADA,gBACA,2CANA,qBACA,mBACA,uBAaF,CATE,mBAIJ,YACE,CAGA,iBACA,qCAGF,kBACE,UACE,YACA,gBACA,0BAGF,UACE,YACA,eACA,gBACA,cACA,oDAIJ,aAEE,mBACA,aACA,aACA,2DAEA,cACE,uLAGF,ajBpGsB,SiBuGpB,eACA,gBACA,kBACA,oBACA,YACA,aACA,kBACA,6BACA,+mBAEA,aAGE,yBACA,qiBAGF,ajB7IS,qwDiBiJP,aAGE,sBAMR,sBACE,yBAGF,aACE,aACA,mBACA,uBACA,wBAGF,UACE,YACA,mBACA,mBACA,aACA,eACA,8BAEA,kBACE,+BAGF,cACE,mBACA,kCAIJ,mBACE,CACA,mBACA,0EAEA,mBACE,yBAIJ,cACE,iBACA,4BAEA,cACE,gBACA,cjBvMS,mBiByMT,2BAGF,ajBnMwB,kGiBsMtB,aAGE,2CAIJ,aACE,2BAGF,cACE,cjBtMoB,gBiBwMpB,mBACA,sCAEA,eACE,kCAGF,eACE,mBjBrOO,cAQa,kBiBgOpB,eACA,gBACA,CAII,2NADF,eACE,oCAOV,WACE,UACA,mCAME,mBACA,mBACA,sCAEA,cACE,iBACA,kBACA,qCAGF,eACE,oCAIJ,kBACE,mBACA,kBACA,eAIJ,iBACE,eACA,mBACA,sBAEA,eACE,cjBzRS,kBiB2RT,yBACA,eACA,qBAGF,kBjBhSW,cAQa,gBiB2RtB,aACA,kBACA,6HAQF,eACE,qJAGF,kBACE,cjB1SsB,mBiB4StB,kBACA,aACA,kBACA,eACA,sCACA,yPAEA,iBACE,mBACA,qNAGF,mBACE,gBACA,4CAMJ,YACE,mBACA,gDAEA,UACE,cACA,4DAEA,aACE,2DAGF,cACE,kDAGF,iBACE,uDAIJ,eACE,sDAIJ,UjB3WM,2DiBgXR,0BACE,cACE,iBACA,qJAGF,cAIE,mBACA,4CAGF,kBACE,sDAGF,WACE,eACA,mBAIJ,oBACE,eACA,gBACA,iBACA,uHAGF,kBAOE,cjB7YW,kBiB+YX,gBACA,eACA,YACA,kBACA,sBACA,+SAEA,ajBjYsB,YiBmYpB,eACA,WACA,eACA,gBACA,uSAGF,YACE,uPAGF,WACE,WACA,+WAGF,aACE,wBAKF,ejBvbM,CAiBkB,gBiByatB,oBACA,iEjB3bI,2BAiBkB,qDiBkb1B,iBAEE,aACA,qEAEA,wBACE,CADF,qBACE,CADF,oBACE,CADF,gBACE,gBACA,kKAIJ,YAKE,8BACA,mBjBncwB,aiBqcxB,iBACA,0LAEA,aACE,iBACA,cjB7boB,mBiB+bpB,kNAGF,aACE,6DAIJ,cAEE,yDAGF,WAEE,eACA,0BAGF,gBAEE,sDAGF,qBAEE,eAGF,UACE,gBACA,0BAGF,YACE,6BACA,qCAEA,yBAJF,cAKI,gBACA,iDAIJ,qBAEE,UACA,qCAEA,+CALF,UAMI,sDAIJ,aAEE,gBACA,gBACA,gBACA,kBACA,2FAEA,ajBzgBwB,qCiB6gBxB,oDAZF,eAaI,sCAKF,4BADF,eAEI,yBAIJ,YACE,+BACA,gBACA,0BAEA,cACE,iBACA,mBACA,sCAGF,aACE,sBACA,WACA,CACA,ajBhjBS,gBATL,aiB4jBJ,oBACA,eACA,YACA,CACA,SACA,kBACA,yBACA,iBACA,gBACA,gBACA,4CAEA,wBACE,+CAGF,ejB5kBI,yBiB8kBF,mBACA,kBACA,6DAEA,QACE,gBACA,gBACA,mEAEA,QACE,0DAIJ,ajBnlBO,oBiBqlBL,eACA,gBjB/lBA,+CiBomBJ,YACE,8BACA,mBACA,4CAIJ,aACE,cjBnmBS,eiBqmBT,gBACA,mBACA,wCAGF,eACE,mBACA,+CAEA,ajB9mBS,eiBgnBP,qCAIJ,uBAnFF,YAoFI,eACA,QACA,wCAEA,iBACE,iBAKN,eAWE,eACA,wBAXA,eACE,iBACA,uBAGF,aACE,gBACA,2CAMF,eACE,mBAGF,eACE,cACA,gBACA,+BAEA,4BACE,4BAGF,QACE,oCAIA,ajB/pBO,aiBiqBL,kBACA,eACA,mBACA,qBACA,8EAEA,eAEE,yWAOA,kBjBvqBgB,WAlBlB,iJiBgsBA,iBAGE,oMAUR,aACE,iIAIJ,4BAIE,cjBxrBsB,eiB0rBtB,gBACA,6cAEA,aAGE,6BACA,uCAIJ,iBACE,mBACA,oBACA,eAEA,yFAEA,qBACE,qGAIJ,YAIE,eACA,iIAEA,eACE,CAII,w1BADF,eACE,sDAMR,iBAEE,oDAKA,eACE,0DAGF,eACE,mBACA,aACA,mBACA,wEAEA,ajBzwBS,CiB2wBP,gBACA,uBAKN,YACE,2CAEA,QACE,WACA,cAIJ,UACE,eACA,gBACA,iBAEA,YACE,gBACA,eACA,kBACA,sCAGF,YACE,4CAEA,kBACE,yDAGF,SACE,sBACA,cACA,WACA,YACA,aACA,gDACA,mBjBpzBO,WATL,eiBg0BF,CACA,eACA,kBACA,2EAEA,QACE,wMAGF,mBAGE,+DAGF,kBACE,qCAGF,wDA7BF,cA8BI,4DAIJ,WACE,eACA,gBACA,SACA,kBACA,cAKN,iBACE,YACA,gBACA,YACA,aACA,uBACA,mBACA,gBjB12BM,yDiB62BN,aAGE,gBACA,WACA,YACA,SACA,sBACA,CADA,gCACA,CADA,kBACA,gBjBr3BI,uBiBy3BN,iBACE,YACA,aACA,+BACA,iEACA,kBACA,wCACA,uBAGF,iBACE,WACA,YACA,MACA,OACA,uBAGF,iBACE,YACA,WACA,UACA,YACA,4BACA,6BAEA,UACE,8BAGF,UjBt5BI,eiBw5BF,gBACA,cACA,kBACA,2BAGF,iBACE,mCACA,qCAIJ,oCACE,eAEE,uBAGF,YACE,wBAKN,gBACE,sCAEA,eACE,gCAGF,eACE,qDAGF,ajBl7BW,iDiBs7BX,YACE,0DAEA,YACE,0BAIJ,YACE,iBACA,uBACA,kDAGF,ajB/6BsB,qBiBi7BpB,wDAEA,yBACE,WCp9BN,YACE,kCAEA,iBACE,MACA,QACA,oIAEA,+BAEE,oBAKN,cACE,uBACA,eACA,gBACA,clBasB,4CkBVtB,alBjBY,sCkBsBd,2CACE,oBAGF,QACE,wBACA,UACA,+CAEA,WACE,mBACA,UACA,0BAGF,aACE,sBACA,SACA,YACA,kBACA,aACA,WACA,UACA,clBvCS,gBATL,ekBmDJ,oBACA,gBACA,qDAEA,alBzBoB,CkBuBpB,2CAEA,alBzBoB,CkBuBpB,+CAEA,alBzBoB,CkBuBpB,sCAEA,alBzBoB,gCkB6BpB,8Cf/CA,uCADF,ceiD4D,0Cf5C5D,ce4C4D,oBAI9D,alBvDa,mBkByDX,mBlBlDsB,oCkBoDtB,iBACA,kBACA,eACA,gBACA,sBAEA,alB5CsB,gBkB8CpB,0BACA,mFAEA,oBAEU,iCAKZ,mBACA,eAEA,gBACA,wCAEA,alB1EwB,sDkB8ExB,YACE,2CAGF,oBACE,kBACA,yBACA,sBACA,WACA,YACA,cACA,gBACA,kBACA,SACA,kBACA,sBACA,kDAEA,oBlBhGsB,qCkBuG1B,eACE,kBACA,aACA,mBlB5GsB,gBkB8GtB,gBACA,cACA,yBAEA,iBACE,gBACA,wCAEA,alB7HS,iCkB+HT,WACE,iBACA,2BAIJ,iBACE,cACA,CACA,cACA,iBACA,clB1IS,qBkB4IT,gBACA,iBACA,qBACA,mBACA,gBACA,gGAEA,kBACE,qBACA,iIAEA,eACE,kJAIJ,eACE,mBACA,2DAGF,eACE,eACA,8BAGF,cACE,wFAGF,eACE,sCAGF,iBACE,8BACA,clBhLO,mBkBkLP,mDAEA,eACE,8DAIJ,eACE,0DAGF,iBACE,+BAGF,iBACE,eACA,2DAGF,eACE,+DAEA,QACE,8BAIJ,oBACE,8BAGF,uBACE,6BAGF,alBjMoB,qBkBmMlB,mCAEA,oEAGE,oBACE,gDAEA,qDAMR,UACE,YACA,gBACA,uDAIJ,iBAEE,WACA,mIAGE,aACE,sBACA,SACA,YACA,0BACA,yBACA,WACA,iBACA,UACA,clB5PO,gBATL,ekBwQF,oBACA,YACA,qBACA,yLAEA,alB/OkB,CkB6OlB,sKAEA,alB/OkB,CkB6OlB,8KAEA,alB/OkB,CkB6OlB,4JAEA,alB/OkB,yKkBmPlB,SACE,qJAGF,kBlBpQoB,+IkBqQpB,8Cf1QF,8JADF,ce4Q8D,kKfvQ9D,ceuQ8D,qCfhQ5D,8TADF,sBeoQM,gBACA,6BAMR,aACE,kBACA,SACA,UACA,WACA,gBACA,2CAEA,aACE,mBACA,WACA,YACA,clB/QoB,ekBiRpB,iBACA,kBACA,WACA,4CAIJ,iBACE,SACA,oCAGF,aACE,kBACA,sBACA,SACA,0BACA,YACA,WACA,clBzTW,mBAQa,sCkBoTxB,eACA,WACA,aACA,6CAGF,aACE,0CAGF,YACE,eACA,kBACA,iMAEA,kBAGa,iKAEb,YAGE,mBACA,mBACA,2BACA,iBACA,eACA,+DAGF,6BACE,qEAEA,aACE,gBACA,uBACA,mBACA,sEAGF,eACE,qEAGF,aACE,iBACA,gBACA,uBACA,mBACA,4EAMA,alB/VkB,wBkBoWxB,eACE,iCAEA,YACE,mBACA,eACA,oBACA,YACA,gBACA,8BAIJ,UACE,WACA,cACA,kCAEA,iBACE,kBACA,aACA,WACA,sBlBzZI,wBkB2ZJ,sBACA,4BACA,gBACA,2CAEA,aACE,kBACA,sBACA,SACA,OACA,SACA,SACA,aACA,WACA,clBvZoB,gFkByZpB,eACA,oBACA,gBACA,UACA,UACA,4BACA,iDAEA,UlBlbE,sEkBobF,WACE,clBpakB,CAjBlB,4DkBobF,WACE,clBpakB,CAjBlB,gEkBobF,WACE,clBpakB,CAjBlB,uDkBobF,WACE,clBpakB,yCkByatB,2EAKE,0CAKN,iFACE,aACA,uBACA,8BACA,UACA,4BACA,8CAEA,aACE,clB5bsB,ekB8btB,gBACA,aACA,oBACA,2JAEA,aAGE,wCAIJ,SACE,kCAIJ,YACE,aACA,clBldsB,gBkBodtB,sCAEA,cACE,kBACA,2CAGF,aACE,gDAEA,aACE,eACA,gBACA,yBACA,qDAGF,iBACE,eACA,kBACA,WACA,WACA,mBlB5dkB,8DkB+dlB,iBACE,MACA,OACA,WACA,kBACA,mBlBhfkB,0BkBuf1B,alBhgBa,oBkBkgBX,eACA,gBlB5gBM,4BkBghBR,YACE,mBACA,0BACA,YACA,aACA,8BACA,cACA,oBAGF,YACE,cACA,sBAEA,oBACE,uBACA,cACA,YACA,iBACA,sBACA,uBAGF,oBACE,aACA,CAEA,oBACA,CADA,6BACA,UACA,QACA,YACA,uBACA,2BAIJ,iBACE,iBACA,0CAKE,yBACE,qCACA,WlB7jBE,mBAkBkB,gBkB8iBpB,8CAGA,yBACE,oCACA,uCAMR,iBACE,kBACA,uCACA,gBlB9kBM,gBkBglBN,uBACA,6CAGF,YACE,mBACA,aACA,clB9kBW,ekBglBX,sDAEA,aACE,clB9jBoB,wEkBikBpB,6EAEA,aACE,clBzlBO,gBkB2lBP,sGAIJ,kBlBtlBwB,WAlBlB,6PkBgnBF,UlBhnBE,0DkBonBN,wCAGF,gBACE,iBACA,mBACA,gBACA,yBACA,cACA,+BAEA,oBACE,SACA,eACA,kBACA,gCAGF,oBACE,aACA,UACA,WACA,kBACA,kCAIA,alB5oBU,CmBFZ,+BAHF,YACE,cACA,kBAUA,CATA,cAKA,kBACA,2BACA,gBAEA,uBAEA,YACE,uBACA,WACA,YACA,iBACA,6BAEA,WACE,gBACA,oBACA,aACA,yBACA,gBACA,oCAEA,0BACE,oCAGF,cACE,YACA,oBACA,YACA,6BAIJ,qBACE,WACA,gBACA,cACA,aACA,sBACA,qCAEA,4BARF,cASI,qBAMR,kBACE,wBACA,CADA,eACA,MACA,UACA,cACA,qCAEA,mBAPF,gBAQI,+BAGF,eACE,qCAEA,6BAHF,kBAII,wHAMJ,WAGE,mCAIJ,YACE,mBACA,uBACA,YACA,CnB7EW,ImB4Fb,aACE,aACA,sBACA,WACA,YACA,CAIA,oBAGF,qBACE,WACA,mBACA,cnBlGwB,emBoGxB,cACA,eACA,SACA,iBACA,aACA,SACA,UACA,2BAEA,yBACE,6BAIJ,kBACE,SACA,oBACA,cnBrHwB,emBuHxB,cACA,eACA,kBACA,UACA,mCAEA,yBACE,wCAGF,kBACE,2BAIJ,oBACE,iBACA,2BAGF,iBACE,kCAGF,cACE,cACA,eACA,aACA,kBACA,QACA,UACA,cAGF,kBACE,WnB5KM,cmB8KN,eACA,aACA,qBACA,2DAEA,kBAGE,oBAGF,SACE,2BAGF,sBACE,cnB7KsB,kGmBgLtB,sBAGE,WnBpME,kCmBwMJ,anBtLsB,oBmB4L1B,oBACE,iBACA,oBAGF,kBnB1Ma,cAqBW,iBmBwLtB,eACA,gBACA,yBACA,eACA,yBAGF,iBACE,cACA,UACA,gCAEA,uCACE,uCAEA,aACE,WACA,kBACA,aACA,OACA,QACA,cACA,UACA,oBACA,YACA,UACA,oFACA,wCAIJ,SACE,kBACA,gBAIJ,YACE,eACA,mBACA,cACA,eACA,kBACA,UACA,UACA,gBACA,uBAEA,QACE,YACA,aACA,cACA,uBACA,aACA,gBACA,uBACA,gBACA,mBACA,OACA,4CAGF,anBlQwB,4CmBuQtB,anBvQsB,0CmByQpB,4CAIJ,SAEE,SAIJ,WACE,kBACA,sBACA,aACA,sBACA,gBACA,wDAEA,SACE,gBACA,gBACA,qBAGF,kBnB1SW,yBmB+Sb,WACE,aACA,cACA,uBAGF,kBACE,iCAGF,iBACE,sEAGF,kBACE,SACA,cnBxTsB,emB0TtB,eACA,eACA,kFAEA,aACE,CAKA,kLAEA,UnBtVI,mBmBwVF,kFAKJ,2BACE,wCAIJ,YACE,oBACA,6BACA,+CAEA,sBAEE,kBACA,eACA,qBACA,0CAGF,eACE,gDAKJ,SACE,6BAGF,eACE,gBACA,gBACA,cnB5WsB,0DmB8WtB,UACA,UACA,kBACA,uCAEA,YACE,WACA,uCAGF,iBACE,gCAGF,QACE,uBACA,SACA,6BACA,cACA,iCAIF,eACE,2CACA,YACE,WACA,mCAKN,kBACE,aACA,mCAIA,anBpZsB,0BmBsZpB,gCAIJ,WACE,4DAEA,cACE,uEAEA,eACE,uBAKN,oBACE,uBACA,gBACA,mBACA,OACA,sBAGF,oBACE,iBACA,6EAGF,anBrawB,mBArBX,kBmB+bX,aACA,eACA,gBACA,eACA,aACA,cACA,mBACA,uBACA,yBACA,4EAdF,cAeI,6FAGF,eACE,mFAGF,anBvcwB,qBmByctB,qGAEA,yBACE,uCAKN,kBACE,aACA,eAGF,qBACE,uCAKA,sBACE,6BACA,qCASF,qCAXA,sBACE,6BACA,sCAgBF,mJAFF,qBAGI,sBAKF,wBACA,aACA,2BACA,mBACA,mBACA,2BAEA,aACE,iCAEA,UACE,kBACA,uCAEA,SACE,kCAKN,aACE,aACA,yBC9hBJ,iBACE,eACA,gBACA,cpB6BsB,mBArBX,eoBLX,aACA,cACA,sBACA,mBACA,uBACA,aACA,qEAGE,aAEE,WACA,aACA,SACA,yCAIJ,gBACE,gCAGF,eACE,uCAEA,aACE,mBACA,cpBDkB,qCoBKpB,cACE,gBACA,kBCtCJ,UACE,cACA,+BACA,0BAEA,UACE,qCAGF,iBATF,QAUI,mBAIJ,qBACE,mBACA,uBAEA,YACE,kBACA,gBACA,gBACA,2BAEA,aACE,WACA,YACA,SACA,oBACA,CADA,8BACA,CADA,gBACA,uBAIJ,YACE,mBACA,mBACA,aACA,6BAEA,aACE,aACA,mBACA,qBACA,gBACA,qCAGF,UACE,eACA,cACA,+BAGF,aACE,WACA,YACA,gBACA,mCAEA,UACE,YACA,cACA,SACA,kBACA,mBACA,oBACA,CADA,8BACA,CADA,gBACA,qCAIJ,gBACE,gBACA,4CAEA,cACE,WrB1EF,gBqB4EE,gBACA,uBACA,0CAGF,aACE,eACA,crBnEc,gBqBqEd,gBACA,uBACA,yBAKN,kBrBnFS,aqBqFP,mBACA,uBACA,gDAEA,YACE,cACA,eACA,mDAGF,qBACE,kBACA,gCACA,WACA,gBACA,mBACA,gBACA,uBACA,qDAEA,YACE,iEAEA,cACE,sDAIJ,YACE,cAOV,kBrBzHa,sBqB4HX,iBACE,4BAGF,aACE,eAIJ,cACE,kBACA,qBACA,cACA,iBACA,eACA,mBACA,gBACA,uBACA,eACA,oEAEA,YAEE,sBAGF,oBACE,kBACA,yBACA,sBACA,WACA,YACA,cACA,kBACA,SACA,kBACA,sBACA,8BAEA,oBACE,mBACA,CC/KJ,eAGF,SnBkDE,sBACA,WACA,YACA,gBACA,oBACA,mBHhDW,cAOW,eG4CtB,SACA,cmBxDA,CACA,2BACA,iBACA,eACA,2CAEA,aACE,CAHF,iCAEA,aACE,CAHF,qCAEA,aACE,CAHF,4BAEA,aACE,kCAGF,QACE,6EAGF,mBAGE,sBAGF,kBACE,qCAGF,eA3BF,cA4BI,kCAKF,QACE,qDAGF,mBAEE,mBAGF,iBACE,SACA,WACA,UACA,qBACA,UACA,0BACA,4CACA,eACA,WACA,YACA,ctBtCsB,esBwCtB,oBACA,0BAEA,mBACE,WACA,0BAIJ,sBACE,iCAEA,mBACE,WACA,gCAIJ,QACE,uBACA,ctB/CoB,esBiDpB,uCAEA,uBACE,sCAGF,aACE,yBAKN,atB7DwB,mBsB+DtB,gCACA,kBACA,eACA,gBACA,uBAGF,YACE,ctBrFsB,kBsBuFtB,iBAIA,atB7EsB,mBsB+EpB,gCACA,gBACA,aACA,eACA,eACA,qBAEA,oBACE,iBACA,eAIJ,YACE,mBACA,aACA,gCACA,0BAEA,eACE,qBAGF,aACE,ctBvGkB,gBsByGlB,uBACA,mBACA,4BAEA,eACE,uBAGF,atB/HkB,qBsBiIhB,eACA,gBACA,cACA,gBACA,uBACA,mBACA,qGAKE,yBACE,wBAMR,aACE,eACA,iBACA,gBACA,iBACA,mBACA,gBACA,ctBzJoB,0BsB6JtB,aACE,WACA,2CAEA,oCACE,yBACA,0CAGF,wBACE,WC1LR,yCCCE,qBACA,sBACA,CADA,kBACA,wBACA,WACA,YACA,eAEA,UACE,8BAIJ,exBXQ,kBwBaN,sCACA,kBACA,eACA,UACA,iDAEA,2BACE,2DAGF,UACE,mCAIJ,iBACE,SACA,WACA,eACA,yCAGF,iBACE,UACA,SACA,UACA,gBxBvCM,kBwByCN,sCACA,gBACA,gDAEA,aACE,eACA,SACA,gBACA,uBACA,iKAEA,+BAGE,2DAIJ,WACE,wBAKF,2BACE,eAIJ,aACE,wBACA,UACA,eACA,0CAEA,mBAEE,mBAGF,8BACE,CADF,sBACE,WACA,cACA,SACA,WACA,YACA,0EAMA,SACE,oBACA,CADA,WACA,eChGN,WAEE,0BAGF,kBANW,kBAQT,cACA,iCACA,wBACE,mCAOF,WACE,SACA,UACA,2CAGF,aACE,aAEA,sBACA,YACA,6BACA,6DAGE,oBACE,WACA,iBACA,iBACA,iJAGF,UACE,gEAEF,oBACE,gBACA,WACA,2CAKN,yBACE,sBACA,kBACA,YACA,gBACA,kDAEA,uBACE,CADF,oBACE,CADF,eACE,WACA,YACA,SACA,4BACA,WACA,yBACA,eACA,4CACA,sBACA,oBACA,6DAEA,uBACE,6DAGF,sBACE,wEAGF,sBACE,kBACA,SCjFR,WACE,sBACA,aACA,sBACA,kBACA,iBACA,UACA,qBAEA,iBACE,oBAGF,kBACE,2DvBDF,SuBI0D,yBvBC1D,SuBD0D,qCvBQxD,qLuBLA,yBAGF,eACE,gBACA,eACA,qCvBZA,4BuBgBA,SACE,WACA,YACA,eACA,UACA,+BALF,SACE,WACA,YACA,eACA,UACA,yCAIJ,4BAGF,YACE,mBACA,mBACA,UACA,mBACA,eACA,mBAEA,aACE,sBACA,oCACA,sBACA,YACA,cACA,c1BtCoB,kB0BwCpB,qBACA,eACA,mBAGF,iCACE,iDAEA,YAEE,mBACA,mCACA,SAKN,iBACE,mBACA,UACA,qCvBrDE,6CADF,euBwDkF,sCvBlEhF,sBADF,cuBoE0D,yBvB/D1D,cuB+D0D,gBAG5D,e1BlFQ,kBGkEN,CACA,sBACA,gBACA,cHrDsB,uCGuDtB,mBAEA,wBACE,cH1DoB,eG4DpB,gBACA,mBACA,mBAGF,aACE,mBAGF,kBACE,mBAGF,eACE,cHjFS,kB0B6Eb,YACE,c1BvEsB,a0ByEtB,mBACA,oBAEA,aACE,qBACA,wBAGF,aACE,c1BjFsB,gB0BmFtB,mBACA,gBACA,uBACA,0BAIJ,aACE,gBACA,gBACA,kBAGF,kB1BxGa,kB0B0GX,gBACA,yBAEA,a1BxFsB,mB0B0FpB,aACA,gBACA,eACA,eACA,6BAEA,oBACE,iBACA,0BAIJ,iBACE,6BAEA,kBACE,gCACA,eACA,aACA,aACA,gBACA,eACA,c1BhHkB,iC0BmHlB,oBACE,iBACA,8FAIJ,eAEE,mCAGF,aACE,aACA,c1B7IoB,qB0B+IpB,0HAEA,aAGE,0BACA,gBAQN,WACA,kBAGA,+BANF,qBACE,UACA,CAEA,eACA,aAgBA,CAfA,eAGF,iBACE,MACA,OACA,mBACA,CAGA,qBACA,CACA,eACA,WACA,YACA,uBAEA,kB1B1LW,0B0B+Lb,u1BACE,OACA,gBACA,aACA,8BAEA,aACE,sBACA,CADA,4DACA,CADA,kBACA,+BACA,CADA,2BACA,UACA,YACA,oBACA,eACA,yBACA,CADA,qBACA,CADA,oBACA,CADA,gBACA,oCAGF,aACE,WACA,YACA,YACA,eACA,sCAGF,yBAzBF,aA0BI,iBAIJ,kBACE,eACA,gBACA,mBAGF,cACE,kBACA,MACA,OACA,WACA,YACA,0BACA,oBCrPF,kBACE,gB3BAM,WACA,e2BEN,aACA,sBACA,YACA,uBACA,eACA,kBACA,kBACA,YACA,gBAGF,e3BdQ,cAiBgB,oB2BCtB,YACA,iEAEA,aAGE,iCAGF,eACE,2BxBcF,iBACE,mBACA,cACA,eACA,aACA,gBACA,yBwBfJ,aACE,eACA,yBAGF,aACE,eACA,gBACA,6BAGF,aACE,kBACA,W3B7CM,0B2B+CN,WACA,SACA,gBACA,kBACA,eACA,gBACA,UACA,oBACA,WACA,4BACA,iBACA,wDAKE,SACE,uBAKN,WACE,aACA,sBACA,4BAEA,iBACE,c3B3DoB,a2B6DpB,YACA,mBACA,CAGE,yDAIJ,UACE,gBAIJ,qBACE,eACA,gBACA,kBACA,kBACA,WACA,aACA,2BxBzDA,iBACE,mBACA,cACA,eACA,aACA,gBACA,sBwBwDJ,WACE,sBACA,cACA,WACA,kBACA,kBACA,gBACA,kCAEA,eACE,qEAIA,cACE,MACA,gCAIJ,e3B5HM,gC2BiIR,cACE,cACA,qBACA,c3BlHwB,kB2BoHxB,UACA,mEAEA,WAEE,WACA,sBACA,CADA,gCACA,CADA,kBACA,CAIE,0HAFF,WACE,oBACA,CADA,8BACA,CADA,gB3BhJE,C2BiJF,wBAKN,UACE,CAEA,iBACA,MACA,OACA,UACA,gB3B7JM,iC2BgKN,YACE,sBAIJ,WACE,gBACA,kBACA,WACA,aACA,uBACA,qCAGF,cACE,YACA,WACA,kBACA,UACA,sBACA,CADA,gCACA,CADA,kBACA,yBACA,CADA,qBACA,CADA,oBACA,CADA,gBACA,qDAEA,WACE,oBACA,CADA,8BACA,CADA,gBACA,sCAIJ,0BACE,2BACA,gBACA,kBACA,yBAGF,eACE,iBACA,yBAGF,UACE,cAGF,UACE,YACA,kBACA,qCAEA,UACE,YACA,aACA,mBACA,uBACA,2CAEA,c3BrK0B,eAEC,C2B+K7B,8CALF,iBACE,MACA,OACA,QACA,SAYA,CAXA,yBAQA,mBACA,8BACA,oBACA,4BAEA,mBACE,0DAGF,SACE,4DAEA,mBACE,mBAKN,yBACE,sBACA,SACA,W3BjQM,e2BmQN,aACA,mBACA,eACA,cACA,cACA,kBACA,kBACA,MACA,SACA,yBAGF,MACE,0BAGF,OACE,CASA,4CANF,UACE,kBACA,kBACA,OACA,YACA,oBAUA,6BAEA,WACE,sBAGF,mBACE,qBACA,gBACA,c3B9RsB,mF2BiStB,yBAGE,wBAKN,oBACE,sBAGF,qB3B9TQ,Y2BgUN,WACA,kBACA,YACA,UACA,SACA,YACA,8BAGF,wB3BvT0B,qB2B2T1B,iBACE,UACA,QACA,YACA,qKAKA,WAEE,mFAGF,WACE,eAKJ,qBACE,kBACA,mBACA,kBACA,oBACA,cACA,wBAEA,eACE,YACA,yBAGF,cACE,kBACA,gBACA,gCAEA,UACE,cACA,kBACA,6BACA,WACA,SACA,OACA,oBACA,qCAIJ,qCACE,iCAGF,wBACE,uCAIA,mBACA,mBACA,6BACA,0BACA,eAIJ,eACE,kBACA,gB3BnZM,e2BqZN,kBACA,sBACA,cACA,wBAEA,eACE,sBACA,qBAGF,SACE,gCAGF,UACE,YACA,0BxB3XF,iBACE,mBACA,cACA,eACA,aACA,gBACA,qBwB0XF,eACE,gBACA,UACA,kBACA,0BAGF,oBACE,sBACA,SACA,gCAEA,wBACE,0BACA,qBACA,sBACA,UACA,4BAKF,qBACE,CADF,gCACE,CADF,kBACE,kBACA,QACA,2BACA,yBAIJ,iBACE,UACA,SACA,OACA,QACA,sBACA,iFACA,eACA,UACA,4BACA,gCAEA,SACE,6EAKF,iBAEE,wBAIJ,YACE,kBACA,MACA,OACA,WACA,YACA,UACA,SACA,gB3BxeI,cAiBgB,gB2B0dpB,oBACA,+BAEA,aACE,oBACA,8GAEA,aAGE,+BAIJ,aACE,eACA,kCAGF,aACE,eACA,gBACA,4BAIJ,YACE,8BACA,oBACA,CAGE,gUAEA,aAIE,wBAKN,cACE,mBACA,gBACA,uBACA,oCAGE,cACE,qCAKF,eACE,+BAIJ,sBACE,iBACA,eACA,SACA,0BACA,8GAEA,U3B9iBE,+E2BsjBN,cAGE,gBACA,6BAGF,U3B7jBM,iB2B+jBJ,yBAGF,oBACE,aACA,mDAGF,U3BvkBM,uB2B4kBN,cACE,YACA,eACA,8BAEA,UACE,WACA,+BAOA,6DANA,iBACA,cACA,kBACA,WACA,UACA,YAWA,CAVA,+BASA,kBACA,+BAGF,iBACE,UACA,kBACA,WACA,YACA,YACA,UACA,4BACA,mBACA,sCACA,oBACA,qBAIJ,gBACE,uBAEA,oBACE,eACA,gBACA,W3B5nBE,sF2B+nBF,yBAGE,qBAKN,cACE,YACA,kBACA,4BAEA,UACE,WACA,+BACA,kBACA,cACA,kBACA,WACA,SACA,2DAGF,aAEE,kBACA,WACA,kBACA,SACA,mBACA,6BAGF,6BACE,6BAGF,iBACE,UACA,UACA,kBACA,WACA,YACA,QACA,iBACA,4BACA,mBACA,sCACA,oBACA,CAGE,yFAKF,SACE,6GAQF,gBACE,oBACA,iBCtsBR,YACE,mBACA,mBACA,kBACA,QACA,SACA,YACA,mBAGF,YACE,kBACA,gBACA,yBACA,0BACA,eACA,iBACA,yBACA,WACA,4BACA,wCAEA,uBCtBF,kB7BWa,sB6BTX,kBACA,uCACA,YACA,gBACA,qCAEA,aARF,SASI,kBAGF,cACE,mBACA,gBACA,eACA,kBACA,0BACA,6BAGF,WACE,6BAGF,yBACE,sCAEA,uBACE,uCACA,wBACA,wBAIJ,eACE,kDAIA,oBACE,+BAIJ,cACE,sBAGF,eACE,aAIJ,kB7B3Ca,sB6B6CX,kBACA,uCACA,YACA,gBACA,qCAEA,YARF,SASI,uBAGF,kBACE,oBAGF,kBACE,YACA,0BACA,gBACA,mBAGF,YACE,gCACA,4BAGF,YACE,iCAGF,aACE,gBACA,qBACA,eACA,aACA,aC3FJ,cAOE,qBACA,c9BGW,2B8BVX,qBAEE,iBACA,+BAOF,WACE,iBAIJ,sBACE,6BAEA,uBACE,2BACA,4BACA,mB9BHsB,4B8BOxB,oBACE,8BACA,+BACA,aACA,qBAIJ,YACE,8BACA,cACA,c9BLsB,c8BOtB,oBAGF,iBACE,OACA,kBACA,iBACA,gBACA,8BACA,eACA,0BAEA,aACE,6BAIJ,a9BpC0B,mC8BuCxB,aACE,oDAGF,QACE,wBAIJ,iBACE,YACA,OACA,WACA,WACA,yBACA,uBAIA,oBACE,WACA,eACA,yBAGF,iBACE,gBACA,oBAIJ,iBACE,aACA,gBACA,kBACA,gB9B5FM,sB8B8FN,sGAEA,+BAEE,oBAKF,2BACA,gB9BxGM,0B8B2GN,cACE,gBACA,gBACA,oBACA,cACA,WACA,gCACA,c9BzGS,yB8B2GT,kBACA,4CAEA,QACE,2GAGF,mBAGE,wCAKN,cACE,6CAEA,SACE,kBACA,kBACA,qDAGF,SACE,WACA,kBACA,MACA,OACA,WACA,YACA,sCACA,mBACA,4BAIJ,SACE,kBACA,wBACA,gBACA,MACA,iCAEA,aACE,WACA,gBACA,gBACA,gB9BpKI,mB8ByKR,iBACE,qBACA,YACA,wBAEA,UACE,YACA,wBAIJ,cACE,kBACA,iBACA,c9BvKsB,mD8B0KtB,YACE,qDAGF,eACE,uDAGF,YACE,qBAIJ,YACE,wBC1MF,iBACE,aACA,mBACA,mB/BgBwB,cARb,kB+BLX,YACA,WACA,gBACA,iBACA,gBACA,4DAEA,aACE,eACA,mFAGF,iBACE,kBACA,gBACA,+FAEA,iBACE,OACA,MACA,kCAIJ,aACE,cACA,2BAGF,cACE,gBACA,iBACA,mBACA,2BAGF,cACE,gBACA,iBACA,gBACA,mBACA,0CAIJ,aACE,kBACA,cACA,mBACA,gCACA,eACA,qBACA,aACA,0BACA,4DAEA,aACE,iBACA,gDAGF,kB/BhDwB,iD+BoDxB,kB/BnDwB,WAlBlB,qG+B0EN,kB/BxEU,WAFJ,oC+BgFR,kBACE,YACA,eACA,iBACA,gBACA,8BAGF,aACE,UACA,kBACA,YACA,gBACA,oCAGF,iBACE,4FAGF,eAEE,mBACA,qCAGF,mCACE,UACE,cACA,0CAGF,YACE,4DAEA,YACE,kBCtHN,UhCEQ,gCgCCN,oBAEA,cACE,iBACA,gBACA,kBACA,mBAGF,UhCVM,0BgCYJ,oBAGF,eACE,cACA,iBACA,mDAGF,UACE,YACA,gBACA,gCACA,gBC3BJ,WACE,gBACA,aACA,sBACA,yBACA,kBACA,+BAEA,gBACE,eACA,CACA,2BACA,kCAGF,QACE,iCAGF,aACE,6BAGF,sBACE,0BAGF,MACE,kBACA,aACA,sBACA,iBACA,mDAGF,eACE,sBjClCI,0BiCoCJ,cACA,gDAGF,iBACE,gDAGF,WACE,mBAIJ,eACE,mBACA,yBACA,gBACA,aACA,sBACA,qBAEA,aACE,sBAGF,aACE,SACA,CACA,4BACA,cACA,qDAHA,sBAOA,qCAIJ,qBAEI,cACE,wBAKN,qBACE,WACA,cACA,6DAEA,UAEE,YACA,UACA,wCAGF,YACE,cACA,kDACA,qCAEA,uCALF,aAMI,yCAIJ,eACE,oCAGF,YACE,uDAGF,cACE,sCAGF,gBACE,eACA,CACA,2BACA,yCAGF,QACE,mCAGF,gBACE,yBAEA,kCAHF,eAII,sCAIJ,sBACE,gBACA,sCAGF,uCACE,YACE,iKAEA,eAGE,6CAIJ,gBACE,2EAGF,YAEE,kGAGF,gBACE,+BAGF,YACE,gBACA,gLAEA,eAIE,gCAIJ,iBACE,6CAEA,cACE,8CAKF,gBACE,CAIA,yFAGF,eACE,0BAMR,cACE,aACA,uBACA,mBACA,gBACA,iBACA,iBACA,gBACA,mBACA,WjCjNM,kBiCmNN,eACA,iBACA,qBACA,sCACA,4FAEA,kBAGE,qCAIJ,UACE,UACE,uDAGF,kCACE,mCAGF,kBAEE,sCAIJ,2CACE,YACE,sCAOA,sEAGF,YACE,uCAIJ,0CACE,YACE,uCAIJ,UACE,YACE,gCC1QJ,oBACE,gBACA,yCAEA,UACE,YACA,gBACA,iCAGF,kBACE,qBACA,4CAEA,eACE,iCAIJ,alCAwB,qBkCEtB,uCAEA,yBACE,+CAIA,oBACE,oDAEA,yBACE,gDAKN,aACE,gBAKN,kBACE,eACA,aACA,qBACA,0BAEA,WACE,cACA,qCAEA,yBAJF,YAKI,4BAIJ,wBACE,cACA,kBACA,qCAEA,0BALF,UAMI,uBAIJ,qBACE,WACA,aACA,kBACA,eACA,iBACA,qBACA,gBACA,gBACA,gBACA,aACA,sBACA,6BAEA,aACE,gBACA,mBACA,mBACA,8BAGF,iBACE,SACA,WACA,cACA,mBlCzEoB,kBkC2EpB,cACA,eACA,4BAIJ,YACE,clCpFoB,kBkCsFpB,WACA,QACA,mDAIJ,YACE,oDAGF,UACE,gBAGF,YACE,eACA,mBACA,gBACA,iBACA,wBACA,sBAEA,aACE,mBACA,SACA,kBACA,WACA,eACA,yBACA,CADA,qBACA,CADA,oBACA,CADA,gBACA,cACA,aACA,mBACA,2BACA,2CACA,6BAEA,aACE,aACA,WACA,YACA,iCAEA,aACE,SACA,WACA,YACA,eACA,gBACA,sBACA,sBACA,CADA,gCACA,CADA,kBACA,6BAIJ,aACE,cACA,eACA,gBACA,kBACA,gBACA,clClJkB,mFkCsJpB,kBAGE,4BACA,2CACA,wGAEA,aACE,6BAIJ,0BACE,2CACA,yBACA,yDAEA,aACE,uCAKN,UACE,oCAGF,WACE,8BAGF,alCrLsB,SkCuLpB,eACA,WACA,cACA,cACA,YACA,aACA,mBACA,WACA,2BACA,2CACA,2GAEA,SAGE,cACA,4BACA,2CACA,qCAKF,SACE,OCjON,eACE,eACA,8BAEA,QAEE,gBACA,UAGF,kBACE,kBACA,cAGF,iBACE,cACA,mBACA,WACA,aACA,sBAEA,kBnCFsB,emCOxB,iBACE,aACA,cACA,iBACA,eACA,gBACA,qBAEA,oBACE,qBACA,yBACA,4BACA,oEAGF,YAEE,kCAGF,aACE,gCAIA,qBACA,WACA,eACA,cnC5CO,cmC8CP,UACA,oBACA,gBnCzDE,yBmC2DF,kBACA,iBACA,sCAEA,oBnC7CoB,0BmCkDtB,cACE,wBAGF,YACE,mBACA,iBACA,cAIJ,oBACE,kBACA,yBACA,sBACA,WACA,YACA,cACA,kBACA,SACA,kBACA,sBACA,gBACA,mBACA,cACA,uBAEA,iBACE,qBAGF,oBnClGY,8EmCuGZ,oBAGE,iBACA,gCAGF,mBACE,SACA,wCAGF,mBAEE,eAIJ,oBACE,WACA,gBACA,cACA,cAGF,aACE,qBACA,oBAEA,cACE,eAIJ,eACE,mBACA,cnC9GoB,amCkHtB,cACE,uBACA,UACA,SACA,SACA,cnCvHoB,0BmCyHpB,kBACA,mBAEA,oBACE,sCAGF,mCAEE,eAIJ,WACE,eACA,kBACA,eACA,6BAIJ,4BACE,kBACA,gCAEA,YACE,2CAGF,4BACE,aACA,aACA,mBACA,mGAEA,UAEE,aACA,+GAEA,oBnC7KoB,sDmCmLxB,cACE,gBACA,iBACA,YACA,oBACA,cnC5KoB,sCmC+KpB,gCAGF,YACE,mBACA,8CAEA,aACE,wBACA,iBACA,oCAIJ,uBACE,CADF,oBACE,CADF,eACE,sBACA,eACA,cnCrNS,qBmCuNT,WACA,UACA,oBACA,qXACA,yBACA,kBACA,CACA,yBACA,mDAGF,aACE,cAIJ,anClNwB,qBmCqNtB,+BACE,6BAEA,+BACE,YCpPN,qBACE,iBANc,cAQd,kBACA,sCAEA,WANF,UAOI,eACA,mBAIJ,sBACE,eACA,gBACA,gBACA,qBACA,cpCJsB,oBoCOtB,apCLwB,0BoCOtB,6EAEA,oBAGE,wCAIJ,apClBsB,oBoCuBtB,YACE,oBACA,+BAEA,eACE,yBAIJ,eACE,cpChCsB,qBoCoCxB,iBACE,cpCrCsB,uBoCyCxB,eACE,mBACA,kBACA,kBACA,yHAGF,sBAME,mBACA,oBACA,gBACA,cpCzDsB,qBoC6DxB,aACE,qBAGF,gBACE,qBAGF,eACE,qBAGF,gBACE,yCAGF,aAEE,qBAGF,eACE,qBAGF,kBACE,yCAMA,iBACA,iBACA,yDAEA,2BACE,yDAGF,2BACE,qBAIJ,UACE,SACA,SACA,gCACA,eACA,4BAEA,UACE,SACA,wBAIJ,UACE,yBACA,8BACA,CADA,iBACA,gBACA,mBACA,iEAEA,+BAEE,cACA,kBACA,gBACA,gBACA,cpCrIkB,iCoCyIpB,uBACE,gBACA,gBACA,cpC9HkB,qDoCkIpB,WAEE,iBACA,kBACA,qBACA,mEAEA,SACE,kBACA,iFAEA,gBACE,kBACA,6EAGF,iBACE,SACA,UACA,mBACA,gBACA,uBACA,+BAMR,YACE,oBAIJ,kBACE,eACA,mCAEA,iBACE,oBACA,8BAGF,YACE,8BACA,eACA,6BAGF,UACE,uBACA,eACA,iBACA,WpCpNI,iBoCsNJ,kBACA,qEAEA,aAEE,6CAIA,apC9MoB,oCoCmNtB,sBACE,gBACA,eACA,iBACA,qCAGF,4BA3BF,iBA4BI,4BAIJ,iBACE,YACA,sBACA,mBACA,CACA,sBACA,0BACA,QACA,aACA,yCAEA,sBACE,eACA,iBACA,gBACA,cpC/OkB,mBoCiPlB,mBACA,gCACA,uBACA,mBACA,gBACA,wFAEA,eAEE,cACA,2CAGF,oBACE,2BAKN,iBACE,mCAIE,UACqB,sCjCnRzB,CiCoRI,kBACA,uCAEA,aACE,WACA,YACA,mBACA,iBpCpOgB,wBG9DtB,4BACA,iCiCsSE,cACE,mCAEA,aACE,WpC3SA,qBoC6SA,uDAGE,yBACE,2CAKN,aACE,cpCvSgB,kCoC+StB,sBAEE,CACA,eACA,eACA,iBACA,mBACA,cpCtToB,sCoCyTpB,apCvTsB,0BoCyTpB,kBAIJ,cACE,SACA,UACA,gBACA,uBACA,oBACA,kBACA,oBACA,cACA,kBAGF,sBACE,eACA,iBACA,gBACA,mBACA,cpC/UsB,wBoCkVtB,sBACE,cACA,eACA,gBACA,cACA,kBAKF,cACA,iBpC7VsB,mCoC2VxB,sBACE,CAEA,eACA,mBACA,cpChWsB,kBoCqWtB,cACA,iBpCtWsB,kBoC8WtB,cpC9WsB,mCoC6WxB,sBACE,CACA,gBACA,gBACA,mBACA,cpClXsB,kBoCuXtB,cpCvXsB,kBoC+XxB,sBACE,eACA,iBACA,gBACA,mBACA,cpCpYsB,mCoCwYxB,gBAEE,mDAEA,2BACE,mDAGF,2BACE,kBAIJ,eACE,kBAGF,kBACE,yCAGF,cAEE,kBAGF,UACE,SACA,SACA,2CACA,cACA,yBAEA,UACE,SACA,iDAIJ,YAEE,+BAGF,kBpC5bW,kBoC8bT,kBACA,gBACA,sBACA,oCAEA,UACE,aACA,2BACA,iBACA,8BACA,mBACA,uDAGF,YACE,yBACA,qBACA,mFAEA,aACE,eACA,qCAGF,sDAVF,UAWI,8BACA,6CAIJ,MACE,sBACA,qCAEA,2CAJF,YAKI,sBAKN,iBACE,yBAEA,WACE,WACA,uBACA,4BAIJ,iBACE,mBACA,uCAEA,eACE,mCAGF,eACE,cACA,qCAGF,eACE,UACA,mDAEA,kBACE,aACA,iBACA,0FAKE,oBACE,gFAIJ,cACE,qDAIJ,aACE,cACA,6CAMA,UACqB,sCjC9hB3B,mDiCiiBI,cACE,4DAEA,cACE,qCAKN,oCACE,eACE,sCAIJ,2BA9DF,iBA+DI,mFAIJ,qBAGE,mBpCtjBS,kBoCwjBT,kCACA,uBAGF,YACE,kBACA,WACA,YACA,2BAEA,YACE,WACA,uCAKF,YACE,eACA,mBACA,mBACA,qCAGF,sCACE,kBACE,uCAIJ,apC9kBsB,qCoCklBtB,eACE,WpCpmBE,gBoCsmBF,2CAEA,apCxlBkB,gDoC2lBhB,apC1lBkB,+CoCgmBtB,eACE,qBAIJ,kBACE,yBAEA,aACE,SACA,eACA,YACA,kBACA,qCAIJ,gDAEI,kBACE,yCAGF,eACE,gBACA,WACA,kBACA,uDAEA,iBACE,sCAMR,8BACE,aACE,uCAEA,gBACE,sDAGF,kBACE,6EAIJ,aAEE,qBAIJ,WACE,UAIJ,mBACE,qCAEA,SAHF,eAII,kBAGF,YACE,uBACA,mBACA,aACA,qBAEA,SpC1rBI,YoC4rBF,qCAGF,gBAXF,SAYI,mBACA,sBAIJ,eACE,uBACA,gBACA,gBACA,uBAGF,eACE,gBACA,0BAEA,YACE,yBACA,gBACA,eACA,cpCpsBkB,6BoCwsBpB,eACE,iBACA,+BAGF,kBpCptBS,aoCstBP,0BACA,aACA,uCAEA,YACE,gCAIJ,cACE,gBACA,uDAEA,YACE,mBACA,iDAGF,UACE,YACA,0BACA,gCAIJ,YACE,uCAEA,sBACE,eACA,gBACA,cACA,qCAGF,cACE,cpCnvBgB,uFoCyvBtB,eACE,cASA,CpCnwBoB,2CoCgwBpB,iBACA,CACA,kBACA,gBAGF,eACE,cACA,aACA,kDACA,cACA,qCAEA,eAPF,oCAQI,cACA,8BAEA,UACE,aACA,sBACA,0CAEA,OACE,cACA,2CAGF,YACE,mBACA,QACA,cACA,qCAIJ,UACE,2BAGF,eACE,sCAIJ,eAtCF,UAuCI,6BAEA,aACE,gBACA,gBACA,2GAEA,eAGE,uFAIJ,+BAGE,2BAGF,YACE,gCAEA,eACE,qEAEA,eAEE,gBACA,2CAGF,eACE,SAQZ,iBACE,qBACA,iBAGF,aACE,kBACA,aACA,UACA,YACA,cpCh2BsB,qBoCk2BtB,eACA,qCAEA,gBAVF,eAWI,WACA,gBACA,cpC11BoB,SqChCxB,UACE,eACA,iBACA,yBACA,qBAEA,WAEE,iBACA,mBACA,6BACA,gBACA,mBACA,oBAGF,qBACE,gCACA,aACA,gBACA,oBAGF,eACE,qEAGF,kBrChBW,UqCqBX,arCZwB,0BqCctB,gBAEA,oBACE,eAIJ,eACE,CAII,4HADF,eACE,+FAOF,sBAEE,yFAKF,YAEE,gCAMJ,kBrCzDS,6BqC2DP,gCACA,4CAEA,qBACE,8BACA,2CAGF,uBACE,+BACA,0BAKN,qBACE,gBAIJ,aACE,mBACA,MAGF,+BACE,0BAGF,sBACE,SACA,aACA,8CAGF,oBAEE,qBACA,iBACA,eACA,crC5FsB,gBqC8FtB,0DAEA,UrChHM,wDqCoHN,eACE,iBACA,sEAGF,cACE,yCAKF,YAEE,yDAEA,qBACE,iBACA,eACA,gBACA,qEAEA,cACE,2EAGF,YACE,mBACA,uFAEA,YACE,qHAOJ,sBACA,cACA,uBAIJ,wBACE,mBrCvJS,sBqCyJT,YACA,mBACA,gCAEA,gBACE,mBACA,oBAIJ,YACE,yBACA,aACA,mBrCtKS,gCqCyKT,aACE,gBACA,mBAIJ,wBACE,aACA,mBACA,qCAEA,wCACE,4BACE,0BAIJ,kBACE,iCAGF,kBrC9LS,uCqCiMP,kBACE,4BAIJ,gBACE,oBACA,sCAEA,SACE,wCAGF,YACE,mBACA,mCAGF,aACE,aACA,uBACA,mBACA,kBACA,6CAEA,UACE,YACA,kCAIJ,aACE,mCAGF,aACE,iBACA,crC/NgB,gBqCiOhB,mCAIJ,QACE,WACA,qCAEA,sBACE,gBACA,qCAOJ,4FAFF,YAGI,gCAIJ,aACE,sCAEA,eACE,4BAIJ,wBACE,aACA,gBACA,qCAEA,2BALF,4BAMI,sCAIJ,+CACE,YACE,iBCzRN,YACE,uBACA,WACA,iBACA,iCAEA,gBACE,gBACA,oBACA,cACA,wCAEA,YACE,yBACA,mBtCPO,YsCSP,yBAIJ,WAvBc,UAyBZ,oBACA,iCAEA,YACE,mBACA,YACA,uCAEA,aACE,yCAEA,oBACE,aACA,2CAGF,StCxCA,YsC0CE,kBACA,YACA,uCAIJ,aACE,ctCjCgB,qBsCmChB,cACA,eACA,aACA,0HAIA,kBAGE,+BAKN,aACE,iBACA,YACA,aACA,qCAGF,sCACE,YACE,6BAIJ,eACE,0BACA,gBACA,mBACA,qCAEA,2BANF,eAOI,+BAGF,aACE,aACA,ctC3EgB,qBsC6EhB,0BACA,2CACA,0BACA,mBACA,gBACA,uBACA,mCAEA,gBACE,oCAGF,UtCzGA,yBsC2GE,0BACA,2CACA,uCAGF,kBACE,sBACA,+BAIJ,kBACE,wBACA,SACA,iCAEA,QACE,kBACA,6DAIJ,UtCjIE,yBAkBkB,gBsCkHlB,gBACA,mEAEA,wBACE,6DAKN,yBACE,iCAIJ,qBACE,WACA,gBApJY,cAsJZ,sCAGF,uCACE,YACE,iCAGF,WA/JY,cAiKV,sCAIJ,gCACE,UACE,0BAMF,2BACA,qCAEA,wBALF,cAMI,CACA,sBACA,kCAGF,YACE,oBAEA,gCACA,0BAEA,eAEA,mBACA,8BACA,mCAEA,eACE,kBACA,yCAGF,mBACE,4DAEA,eACE,qCAIJ,gCAzBF,eA0BI,iBACA,6BAIJ,atCnMsB,esCqMpB,iBACA,gBACA,qCAEA,2BANF,eAOI,6BAIJ,atC9MsB,esCgNpB,iBACA,gBACA,mBACA,4BAGF,wBACE,eACA,gBACA,ctC1NkB,mBsC4NlB,kBACA,gCACA,4BAGF,cACE,ctCjOoB,iBsCmOpB,gBACA,0CAGF,UtCxPI,gBsC0PF,uFAGF,eAEE,gEAGF,aACE,4CAGF,cACE,gBACA,WtCxQE,oBsC0QF,iBACA,gBACA,mBACA,2BAGF,cACE,iBACA,ctCjQoB,mBsCmQpB,kCAEA,UtCtRE,gBsCwRA,CAII,2NADF,eACE,4BAMR,UACE,SACA,SACA,2CACA,cACA,mCAEA,UACE,SACA,qCAKN,eA9SF,aA+SI,iCAEA,YACE,yBAGF,UACE,UACA,YACA,iCAEA,YACE,4BAGF,YACE,8DAGF,eAEE,gCACA,gBACA,0EAEA,eACE,+BAIJ,eACE,6DAGF,2BtCjUoB,YsCwU1B,UACE,SACA,cACA,WACA,sDAKA,atCnVsB,0DsCsVpB,atCpVsB,4DsCyVxB,atC1Wc,gBsC4WZ,4DAGF,atC9WU,gBsCgXR,0DAGF,atCvVsB,gBsCyVpB,0DAGF,atCtXU,gBsCwXR,UAIJ,YACE,eACA,yBAEA,aACE,qBACA,oCAEA,kBACE,4BAGF,cACE,gBACA,+BAEA,oBACE,iBACA,gCAIJ,eACE,yBACA,eACA,CAII,iNADF,eACE,6CAKN,aACE,mBACA,2BAGF,oBACE,ctCxZkB,qBsC0ZlB,yBACA,eACA,gBACA,gCACA,iCAEA,UtChbE,gCsCkbA,oCAGF,atCnaoB,gCsCqalB,iBAMR,aACE,iBACA,eACA,sBAGF,aACE,eACA,cACA,wBAEA,aACE,kBAIJ,YACE,eACA,mBACA,wBAGF,YACE,WACA,sBACA,aACA,+BAEA,aACE,qBACA,gBACA,eACA,iBACA,ctC7csB,CsCkdlB,4MADF,eACE,sCAKN,aACE,gCAIJ,YAEE,mBACA,kEAEA,UACE,kBACA,4BACA,gFAEA,iBACE,kDAKN,aAEE,aACA,sBACA,4EAEA,cACE,WACA,kBACA,mBACA,uEAIJ,cAEE,iBAGF,YACE,eACA,kBACA,2CAEA,kBACE,eACA,8BAGF,kBACE,+CAGF,gBACE,uDAEA,gBACE,mBACA,YACA,YAKN,kBACE,eACA,cAEA,atC3hBwB,qBsC6hBtB,oBAEA,yBACE,SAKN,aACE,YAGF,gBACE,eACA,mBtCpjBW,gCsCsjBX,uBAEA,eACE,oBAGF,YACE,2BACA,mBACA,ctCxjBoB,esC0jBpB,eACA,oBAGF,iBACE,4BAEA,aACE,SACA,kBACA,WACA,YACA,qBAIJ,2BACE,mBAGF,oBACE,uBAGF,atCpkBsB,sDsCwkBtB,atCrlBwB,qBsCylBtB,gBACA,yDAIJ,oBAIE,ctClmBwB,iGsCqmBxB,eACE,yIAIA,4BACE,cACA,iIAGF,8BACE,CADF,sBACE,WACA,sBAKN,YAEE,mBACA,sCAEA,aACE,CACA,gBACA,kBACA,0DAIA,8BACE,CADF,sBACE,WACA,gBAKN,kBACE,8BACA,yBAEA,yBtC9pBc,yBsCkqBd,yBACE,wBAGF,yBtCnqBU,wBsCwqBR,2BACA,eACA,iBACA,4BACA,kBACA,gBACA,0BAEA,atCpqBoB,uBsC0qBpB,wBACA,qBAGF,atChqBsB,csCqqBxB,kBtC1rBa,kBsC4rBX,mBACA,uBAEA,YACE,8BACA,mBACA,aACA,gCAEA,SACE,SACA,gDAEA,aACE,8BAIJ,aACE,gBACA,ctCzsBkB,yBsC2sBlB,iBACA,gCAEA,aACE,qBACA,iHAEA,aAGE,mCAIJ,atCvuBM,6BsC8uBR,YACE,2BACA,6BACA,mCAEA,kBACE,gFAGF,YAEE,cACA,sBACA,YACA,ctC9uBgB,mLsCivBhB,kBAEE,gBACA,uBACA,sCAIJ,aACE,6BACA,4CAEA,atC/uBgB,iBsCivBd,gBACA,wCAIJ,aACE,sBACA,WACA,aACA,qBACA,ctCzwBgB,WsCgxBxB,kBAGE,0BAFA,eACA,uBASA,CARA,eAGF,oBACE,gBACA,CAEA,qBACA,oBAGF,YACE,eACA,CACA,kBACA,wBAEA,qBACE,cACA,mBACA,aACA,0FAGF,kBAEE,kBACA,YACA,6CAGF,QACE,SACA,+CAEA,aACE,sEAGF,uBACE,yDAGF,atC70BY,8CsCk1Bd,qBACE,aACA,WtCr1BI,csC01BR,iBACE,qBAGF,wBACE,kBACA,2BAEA,cACE,mBtC11BS,gCsC41BT,kCAEA,cACE,cACA,gBACA,eACA,gBACA,ctC31BoB,qBsC61BpB,mBACA,uHAEA,UtCj3BE,iCsCw3BJ,cACE,ctC31BkB,uCsC+1BpB,YACE,8BACA,mBACA,sCAGF,eACE,kkECp4BN,kIACE,CADF,sIACE,uIAYA,aAEE,yIAGF,aAEE,qIAGF,aAEE,6IAGF,aAEE,UChCJ,aACE,gCAEA,gBACE,eACA,mBACA,+BAGF,cACE,iBACA,8CAGF,aACE,kBACA,wBAGF,gBACE,iCAGF,aACE,kBACA,uCAGF,oBACE,gDAGF,SACE,YACA,8BAGF,cACE,iBACA,mEAGF,aACE,kBACA,2DAGF,cAEE,gBACA,mFAGF,cACE,gBACA,+BAGF,eACE,2EAGF,UAEE,mCAGF,aACE,iBACA,yBAGF,kBACE,kBACA,4BAGF,UACE,UACA,wBAGF,aACE,kCAGF,MACE,WACA,cACA,mBACA,2CAGF,aACE,iBACA,0CAGF,gBACE,eACA,mCAGF,WACE,sCAGF,gBACE,gBACA,yCAGF,UACE,iCAGF,aACE,iBACA,+BAGF,UACE,0BAGF,gBACE,eACA,UAGA,WACA,yCAGF,iBACE,mBACA,4GAGF,iBAEE,gBACA,uCAGF,kBACE,eACA,2BAGF,aACE,kBACA,wCAGF,SACE,YACA,yDAGF,SACE,WACA,CAKA,oFAGF,UACE,OACA,uGAGF,UAEE,gBACA,uCAIA,cACE,iBACA,kEAEA,cACE,gBACA,qCAKN,WACE,eACA,iBACA,uCAGF,WACE,sCAGF,aACE,kBACA,0CAGF,gBACE,eACA,uDAGF,gBACE,2CAGF,cACE,iBACA,YACA,yEAGF,aAEE,iBACA,iBAGF,wBACE,iBAGF,SACE,oBACA,yBAGF,aACE,8EAGF,cAEE,gBACA,oDAGF,cACE,mBACA,gEAGF,iBACE,gBACA,CAMA,8KAGF,SACE,QACA,yDAGF,kBACE,eACA,uDAGF,kBACE,gBACA,qDAGF,SACE,QACA,8FAGF,cAEE,mBACA,4CAGF,UACE,SACA,kDAEA,UACE,OACA,+DACA,8BAIJ,sXACE,uCAGF,gBAEE,kCAGF,cACE,iBACA,gDAGF,UACE,UACA,gEAGF,aACE,uDAGF,WACE,WACA,uDAGF,UACE,WACA,uDAGF,UACE,WACA,kDAGF,MACE,0CAGF,iBACE,yBACA,qDAGF,cACE,iBACA,qCAGF,kCACE,gBAEE,kBACA,2DAEA,gBACE,mBACA,uEAKF,gBAEE,kBACA,gFAKN,cAEE,gBACA,6CAKE,eACE,eACA,sDAIJ,aACE,kBACA,4DAKF,cACE,gBACA,8DAGF,gBACE,eACA,mCAIJ,aACE,kBACA,iBACA,kCAGF,WACE,mCAGF,WACE,oCAGF,cACE,gBACA,gFAGF,cACE,mBACA,+DAGF,SACE,QACA,sBChbJ,YACE,eACA,CACA,kBACA,0BAEA,qBACE,iBACA,cACA,mBACA,yDAEA,YAEE,mBACA,kBACA,sBACA,YACA,4BAGF,oBACE,cACA,cACA,qGAEA,kBAGE,sDAKN,iBAEE,gBACA,eACA,iBACA,WzCrCI,uByCuCJ,mBACA,iBACA,4BAGF,cACE,6BAGF,cACE,czCjCoB,kByCmCpB,gBACA,qBAIJ,YACE,eACA,cACA,yBAEA,gBACE,mBACA,6BAEA,aACE,sCAIJ,azCrDwB,gByCuDtB,qBACA,0D","file":"flavours/glitch/common.css","sourcesContent":["html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,em,img,ins,kbd,q,s,samp,small,strike,strong,sub,sup,tt,var,b,u,i,center,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td,article,aside,canvas,details,embed,figure,figcaption,footer,header,hgroup,menu,nav,output,ruby,section,summary,time,mark,audio,video{margin:0;padding:0;border:0;font-size:100%;font:inherit;vertical-align:baseline}article,aside,details,figcaption,figure,footer,header,hgroup,menu,nav,section{display:block}body{line-height:1}ol,ul{list-style:none}blockquote,q{quotes:none}blockquote:before,blockquote:after,q:before,q:after{content:\"\";content:none}table{border-collapse:collapse;border-spacing:0}html{scrollbar-color:#192432 rgba(0,0,0,.1)}::-webkit-scrollbar{width:12px;height:12px}::-webkit-scrollbar-thumb{background:#192432;border:0px none #fff;border-radius:50px}::-webkit-scrollbar-thumb:hover{background:#1c2938}::-webkit-scrollbar-thumb:active{background:#192432}::-webkit-scrollbar-track{border:0px none #fff;border-radius:0;background:rgba(0,0,0,.1)}::-webkit-scrollbar-track:hover{background:#121a24}::-webkit-scrollbar-track:active{background:#121a24}::-webkit-scrollbar-corner{background:transparent}body{font-family:sans-serif,sans-serif;background:#06090c;font-size:13px;line-height:18px;font-weight:400;color:#fff;text-rendering:optimizelegibility;font-feature-settings:\"kern\";text-size-adjust:none;-webkit-tap-highlight-color:rgba(0,0,0,0);-webkit-tap-highlight-color:transparent}body.system-font{font-family:system-ui,-apple-system,BlinkMacSystemFont,\"Segoe UI\",\"Oxygen\",\"Ubuntu\",\"Cantarell\",\"Fira Sans\",\"Droid Sans\",\"Helvetica Neue\",sans-serif,sans-serif}body.app-body{padding:0}body.app-body.layout-single-column{height:auto;min-height:100vh;overflow-y:scroll}body.app-body.layout-multiple-columns{position:absolute;width:100%;height:100%}body.app-body.with-modals--active{overflow-y:hidden}body.lighter{background:#121a24}body.with-modals{overflow-x:hidden;overflow-y:scroll}body.with-modals--active{overflow-y:hidden}body.embed{background:#192432;margin:0;padding-bottom:0}body.embed .container{position:absolute;width:100%;height:100%;overflow:hidden}body.admin{background:#0b1016;padding:0}body.error{position:absolute;text-align:center;color:#9baec8;background:#121a24;width:100%;height:100%;padding:0;display:flex;justify-content:center;align-items:center}body.error .dialog{vertical-align:middle;margin:20px}body.error .dialog img{display:block;max-width:470px;width:100%;height:auto;margin-top:-120px}body.error .dialog h1{font-size:20px;line-height:28px;font-weight:400}button{font-family:inherit;cursor:pointer}button:focus{outline:none}.app-holder,.app-holder>div{display:flex;width:100%;align-items:center;justify-content:center;outline:0 !important}.layout-single-column .app-holder,.layout-single-column .app-holder>div{min-height:100vh}.layout-multiple-columns .app-holder,.layout-multiple-columns .app-holder>div{height:100%}.container-alt{width:700px;margin:0 auto;margin-top:40px}@media screen and (max-width: 740px){.container-alt{width:100%;margin:0}}.logo-container{margin:100px auto 50px}@media screen and (max-width: 500px){.logo-container{margin:40px auto 0}}.logo-container h1{display:flex;justify-content:center;align-items:center}.logo-container h1 svg{fill:#fff;height:42px;margin-right:10px}.logo-container h1 a{display:flex;justify-content:center;align-items:center;color:#fff;text-decoration:none;outline:0;padding:12px 16px;line-height:32px;font-family:sans-serif,sans-serif;font-weight:500;font-size:14px}.compose-standalone .compose-form{width:400px;margin:0 auto;padding:20px 0;margin-top:40px;box-sizing:border-box}@media screen and (max-width: 400px){.compose-standalone .compose-form{width:100%;margin-top:0;padding:20px}}.account-header{width:400px;margin:0 auto;display:flex;font-size:13px;line-height:18px;box-sizing:border-box;padding:20px 0;padding-bottom:0;margin-bottom:-30px;margin-top:40px}@media screen and (max-width: 440px){.account-header{width:100%;margin:0;margin-bottom:10px;padding:20px;padding-bottom:0}}.account-header .avatar{width:40px;height:40px;width:40px;height:40px;background-size:40px 40px;margin-right:8px}.account-header .avatar img{width:100%;height:100%;display:block;margin:0;border-radius:4px;border-radius:8%;background-position:50%;background-clip:padding-box}.account-header .name{flex:1 1 auto;color:#d9e1e8;width:calc(100% - 88px)}.account-header .name .username{display:block;font-weight:500;text-overflow:ellipsis;overflow:hidden}.account-header .logout-link{display:block;font-size:32px;line-height:40px;margin-left:8px}.grid-3{display:grid;grid-gap:10px;grid-template-columns:3fr 1fr;grid-auto-columns:25%;grid-auto-rows:max-content}.grid-3 .column-0{grid-column:1/3;grid-row:1}.grid-3 .column-1{grid-column:1;grid-row:2}.grid-3 .column-2{grid-column:2;grid-row:2}.grid-3 .column-3{grid-column:1/3;grid-row:3}@media screen and (max-width: 415px){.grid-3{grid-gap:0;grid-template-columns:minmax(0, 100%)}.grid-3 .column-0{grid-column:1}.grid-3 .column-1{grid-column:1;grid-row:3}.grid-3 .column-2{grid-column:1;grid-row:2}.grid-3 .column-3{grid-column:1;grid-row:4}}.grid-4{display:grid;grid-gap:10px;grid-template-columns:repeat(4, minmax(0, 1fr));grid-auto-columns:25%;grid-auto-rows:max-content}.grid-4 .column-0{grid-column:1/5;grid-row:1}.grid-4 .column-1{grid-column:1/4;grid-row:2}.grid-4 .column-2{grid-column:4;grid-row:2}.grid-4 .column-3{grid-column:2/5;grid-row:3}.grid-4 .column-4{grid-column:1;grid-row:3}.grid-4 .landing-page__call-to-action{min-height:100%}.grid-4 .flash-message{margin-bottom:10px}@media screen and (max-width: 738px){.grid-4{grid-template-columns:minmax(0, 50%) minmax(0, 50%)}.grid-4 .landing-page__call-to-action{padding:20px;display:flex;align-items:center;justify-content:center}.grid-4 .row__information-board{width:100%;justify-content:center;align-items:center}.grid-4 .row__mascot{display:none}}@media screen and (max-width: 415px){.grid-4{grid-gap:0;grid-template-columns:minmax(0, 100%)}.grid-4 .column-0{grid-column:1}.grid-4 .column-1{grid-column:1;grid-row:3}.grid-4 .column-2{grid-column:1;grid-row:2}.grid-4 .column-3{grid-column:1;grid-row:5}.grid-4 .column-4{grid-column:1;grid-row:4}}@media screen and (max-width: 415px){.public-layout{padding-top:48px}}.public-layout .container{max-width:960px}@media screen and (max-width: 415px){.public-layout .container{padding:0}}.public-layout .header{background:#202e3f;box-shadow:0 0 15px rgba(0,0,0,.2);border-radius:4px;height:48px;margin:10px 0;display:flex;align-items:stretch;justify-content:center;flex-wrap:nowrap;overflow:hidden}@media screen and (max-width: 415px){.public-layout .header{position:fixed;width:100%;top:0;left:0;margin:0;border-radius:0;box-shadow:none;z-index:110}}.public-layout .header>div{flex:1 1 33.3%;min-height:1px}.public-layout .header .nav-left{display:flex;align-items:stretch;justify-content:flex-start;flex-wrap:nowrap}.public-layout .header .nav-center{display:flex;align-items:stretch;justify-content:center;flex-wrap:nowrap}.public-layout .header .nav-right{display:flex;align-items:stretch;justify-content:flex-end;flex-wrap:nowrap}.public-layout .header .brand{display:block;padding:15px}.public-layout .header .brand svg{display:block;height:18px;width:auto;position:relative;bottom:-2px;fill:#fff}@media screen and (max-width: 415px){.public-layout .header .brand svg{height:20px}}.public-layout .header .brand:hover,.public-layout .header .brand:focus,.public-layout .header .brand:active{background:#26374d}.public-layout .header .nav-link{display:flex;align-items:center;padding:0 1rem;font-size:12px;font-weight:500;text-decoration:none;color:#9baec8;white-space:nowrap;text-align:center}.public-layout .header .nav-link:hover,.public-layout .header .nav-link:focus,.public-layout .header .nav-link:active{text-decoration:underline;color:#fff}@media screen and (max-width: 550px){.public-layout .header .nav-link.optional{display:none}}.public-layout .header .nav-button{background:#2d415a;margin:8px;margin-left:0;border-radius:4px}.public-layout .header .nav-button:hover,.public-layout .header .nav-button:focus,.public-layout .header .nav-button:active{text-decoration:none;background:#344b68}.public-layout .grid{display:grid;grid-gap:10px;grid-template-columns:minmax(300px, 3fr) minmax(298px, 1fr);grid-auto-columns:25%;grid-auto-rows:max-content}.public-layout .grid .column-0{grid-row:1;grid-column:1}.public-layout .grid .column-1{grid-row:1;grid-column:2}@media screen and (max-width: 600px){.public-layout .grid{grid-template-columns:100%;grid-gap:0}.public-layout .grid .column-1{display:none}}.public-layout .directory__card{border-radius:4px}@media screen and (max-width: 415px){.public-layout .directory__card{border-radius:0}}@media screen and (max-width: 415px){.public-layout .page-header{border-bottom:0}}.public-layout .public-account-header{overflow:hidden;margin-bottom:10px;box-shadow:0 0 15px rgba(0,0,0,.2)}.public-layout .public-account-header.inactive{opacity:.5}.public-layout .public-account-header.inactive .public-account-header__image,.public-layout .public-account-header.inactive .avatar{filter:grayscale(100%)}.public-layout .public-account-header.inactive .logo-button{background-color:#d9e1e8}.public-layout .public-account-header__image{border-radius:4px 4px 0 0;overflow:hidden;height:300px;position:relative;background:#000}.public-layout .public-account-header__image::after{content:\"\";display:block;position:absolute;width:100%;height:100%;box-shadow:inset 0 -1px 1px 1px rgba(0,0,0,.15);top:0;left:0}.public-layout .public-account-header__image img{object-fit:cover;display:block;width:100%;height:100%;margin:0;border-radius:4px 4px 0 0}@media screen and (max-width: 600px){.public-layout .public-account-header__image{height:200px}}.public-layout .public-account-header--no-bar{margin-bottom:0}.public-layout .public-account-header--no-bar .public-account-header__image,.public-layout .public-account-header--no-bar .public-account-header__image img{border-radius:4px}@media screen and (max-width: 415px){.public-layout .public-account-header--no-bar .public-account-header__image,.public-layout .public-account-header--no-bar .public-account-header__image img{border-radius:0}}@media screen and (max-width: 415px){.public-layout .public-account-header{margin-bottom:0;box-shadow:none}.public-layout .public-account-header__image::after{display:none}.public-layout .public-account-header__image,.public-layout .public-account-header__image img{border-radius:0}}.public-layout .public-account-header__bar{position:relative;margin-top:-80px;display:flex;justify-content:flex-start}.public-layout .public-account-header__bar::before{content:\"\";display:block;background:#192432;position:absolute;bottom:0;left:0;right:0;height:60px;border-radius:0 0 4px 4px;z-index:-1}.public-layout .public-account-header__bar .avatar{display:block;width:120px;height:120px;width:120px;height:120px;background-size:120px 120px;padding-left:16px;flex:0 0 auto}.public-layout .public-account-header__bar .avatar img{display:block;width:100%;height:100%;margin:0;border-radius:50%;border:4px solid #192432;background:#040609;border-radius:8%;background-position:50%;background-clip:padding-box}@media screen and (max-width: 600px){.public-layout .public-account-header__bar{margin-top:0;background:#192432;border-radius:0 0 4px 4px;padding:5px}.public-layout .public-account-header__bar::before{display:none}.public-layout .public-account-header__bar .avatar{width:48px;height:48px;width:48px;height:48px;background-size:48px 48px;padding:7px 0;padding-left:10px}.public-layout .public-account-header__bar .avatar img{border:0;border-radius:4px;border-radius:8%;background-position:50%;background-clip:padding-box}}@media screen and (max-width: 600px)and (max-width: 360px){.public-layout .public-account-header__bar .avatar{display:none}}@media screen and (max-width: 415px){.public-layout .public-account-header__bar{border-radius:0}}@media screen and (max-width: 600px){.public-layout .public-account-header__bar{flex-wrap:wrap}}.public-layout .public-account-header__tabs{flex:1 1 auto;margin-left:20px}.public-layout .public-account-header__tabs__name{padding-top:20px;padding-bottom:8px}.public-layout .public-account-header__tabs__name h1{font-size:20px;line-height:27px;color:#fff;font-weight:500;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;text-shadow:1px 1px 1px #000}.public-layout .public-account-header__tabs__name h1 small{display:block;font-size:14px;color:#fff;font-weight:400;overflow:hidden;text-overflow:ellipsis}@media screen and (max-width: 600px){.public-layout .public-account-header__tabs{margin-left:15px;display:flex;justify-content:space-between;align-items:center}.public-layout .public-account-header__tabs__name{padding-top:0;padding-bottom:0}.public-layout .public-account-header__tabs__name h1{font-size:16px;line-height:24px;text-shadow:none}.public-layout .public-account-header__tabs__name h1 small{color:#9baec8}}.public-layout .public-account-header__tabs__tabs{display:flex;justify-content:flex-start;align-items:stretch;height:58px}.public-layout .public-account-header__tabs__tabs .details-counters{display:flex;flex-direction:row;min-width:300px}@media screen and (max-width: 600px){.public-layout .public-account-header__tabs__tabs .details-counters{display:none}}.public-layout .public-account-header__tabs__tabs .counter{min-width:33.3%;box-sizing:border-box;flex:0 0 auto;color:#9baec8;padding:10px;border-right:1px solid #192432;cursor:default;text-align:center;position:relative}.public-layout .public-account-header__tabs__tabs .counter a{display:block}.public-layout .public-account-header__tabs__tabs .counter:last-child{border-right:0}.public-layout .public-account-header__tabs__tabs .counter::after{display:block;content:\"\";position:absolute;bottom:0;left:0;width:100%;border-bottom:4px solid #9baec8;opacity:.5;transition:all 400ms ease}.public-layout .public-account-header__tabs__tabs .counter.active::after{border-bottom:4px solid #d8a070;opacity:1}.public-layout .public-account-header__tabs__tabs .counter.active.inactive::after{border-bottom-color:#d9e1e8}.public-layout .public-account-header__tabs__tabs .counter:hover::after{opacity:1;transition-duration:100ms}.public-layout .public-account-header__tabs__tabs .counter a{text-decoration:none;color:inherit}.public-layout .public-account-header__tabs__tabs .counter .counter-label{font-size:12px;display:block}.public-layout .public-account-header__tabs__tabs .counter .counter-number{font-weight:500;font-size:18px;margin-bottom:5px;color:#fff;font-family:sans-serif,sans-serif}.public-layout .public-account-header__tabs__tabs .spacer{flex:1 1 auto;height:1px}.public-layout .public-account-header__tabs__tabs__buttons{padding:7px 8px}.public-layout .public-account-header__extra{display:none;margin-top:4px}.public-layout .public-account-header__extra .public-account-bio{border-radius:0;box-shadow:none;background:transparent;margin:0 -5px}.public-layout .public-account-header__extra .public-account-bio .account__header__fields{border-top:1px solid #26374d}.public-layout .public-account-header__extra .public-account-bio .roles{display:none}.public-layout .public-account-header__extra__links{margin-top:-15px;font-size:14px;color:#9baec8}.public-layout .public-account-header__extra__links a{display:inline-block;color:#9baec8;text-decoration:none;padding:15px;font-weight:500}.public-layout .public-account-header__extra__links a strong{font-weight:700;color:#fff}@media screen and (max-width: 600px){.public-layout .public-account-header__extra{display:block;flex:100%}}.public-layout .account__section-headline{border-radius:4px 4px 0 0}@media screen and (max-width: 415px){.public-layout .account__section-headline{border-radius:0}}.public-layout .detailed-status__meta{margin-top:25px}.public-layout .public-account-bio{background:#202e3f;box-shadow:0 0 15px rgba(0,0,0,.2);border-radius:4px;overflow:hidden;margin-bottom:10px}@media screen and (max-width: 415px){.public-layout .public-account-bio{box-shadow:none;margin-bottom:0;border-radius:0}}.public-layout .public-account-bio .account__header__fields{margin:0;border-top:0}.public-layout .public-account-bio .account__header__fields a{color:#e1b590}.public-layout .public-account-bio .account__header__fields dl:first-child .verified{border-radius:0 4px 0 0}.public-layout .public-account-bio .account__header__fields .verified a{color:#79bd9a}.public-layout .public-account-bio .account__header__content{padding:20px;padding-bottom:0;color:#fff}.public-layout .public-account-bio__extra,.public-layout .public-account-bio .roles{padding:20px;font-size:14px;color:#9baec8}.public-layout .public-account-bio .roles{padding-bottom:0}.public-layout .directory__list{display:grid;grid-gap:10px;grid-template-columns:minmax(0, 50%) minmax(0, 50%)}@media screen and (max-width: 415px){.public-layout .directory__list{display:block}}.public-layout .directory__list .icon-button{font-size:18px}.public-layout .directory__card{margin-bottom:0}.public-layout .card-grid{display:flex;flex-wrap:wrap;min-width:100%;margin:0 -5px}.public-layout .card-grid>div{box-sizing:border-box;flex:1 0 auto;width:300px;padding:0 5px;margin-bottom:10px;max-width:33.333%}@media screen and (max-width: 900px){.public-layout .card-grid>div{max-width:50%}}@media screen and (max-width: 600px){.public-layout .card-grid>div{max-width:100%}}@media screen and (max-width: 415px){.public-layout .card-grid{margin:0;border-top:1px solid #202e3f}.public-layout .card-grid>div{width:100%;padding:0;margin-bottom:0;border-bottom:1px solid #202e3f}.public-layout .card-grid>div:last-child{border-bottom:0}.public-layout .card-grid>div .card__bar{background:#121a24}.public-layout .card-grid>div .card__bar:hover,.public-layout .card-grid>div .card__bar:active,.public-layout .card-grid>div .card__bar:focus{background:#192432}}.no-list{list-style:none}.no-list li{display:inline-block;margin:0 5px}.recovery-codes{list-style:none;margin:0 auto}.recovery-codes li{font-size:125%;line-height:1.5;letter-spacing:1px}.modal-layout{background:#121a24 url('data:image/svg+xml;utf8,') repeat-x bottom fixed;display:flex;flex-direction:column;height:100vh;padding:0}.modal-layout__mastodon{display:flex;flex:1;flex-direction:column;justify-content:flex-end}.modal-layout__mastodon>*{flex:1;max-height:235px}@media screen and (max-width: 600px){.account-header{margin-top:0}}.public-layout .footer{text-align:left;padding-top:20px;padding-bottom:60px;font-size:12px;color:#4c6d98}@media screen and (max-width: 415px){.public-layout .footer{padding-left:20px;padding-right:20px}}.public-layout .footer .grid{display:grid;grid-gap:10px;grid-template-columns:1fr 1fr 2fr 1fr 1fr}.public-layout .footer .grid .column-0{grid-column:1;grid-row:1;min-width:0}.public-layout .footer .grid .column-1{grid-column:2;grid-row:1;min-width:0}.public-layout .footer .grid .column-2{grid-column:3;grid-row:1;min-width:0;text-align:center}.public-layout .footer .grid .column-2 h4 a{color:#4c6d98}.public-layout .footer .grid .column-3{grid-column:4;grid-row:1;min-width:0}.public-layout .footer .grid .column-4{grid-column:5;grid-row:1;min-width:0}@media screen and (max-width: 690px){.public-layout .footer .grid{grid-template-columns:1fr 2fr 1fr}.public-layout .footer .grid .column-0,.public-layout .footer .grid .column-1{grid-column:1}.public-layout .footer .grid .column-1{grid-row:2}.public-layout .footer .grid .column-2{grid-column:2}.public-layout .footer .grid .column-3,.public-layout .footer .grid .column-4{grid-column:3}.public-layout .footer .grid .column-4{grid-row:2}}@media screen and (max-width: 600px){.public-layout .footer .grid .column-1{display:block}}@media screen and (max-width: 415px){.public-layout .footer .grid .column-0,.public-layout .footer .grid .column-1,.public-layout .footer .grid .column-3,.public-layout .footer .grid .column-4{display:none}}.public-layout .footer h4{text-transform:uppercase;font-weight:700;margin-bottom:8px;color:#9baec8}.public-layout .footer h4 a{color:inherit;text-decoration:none}.public-layout .footer ul a{text-decoration:none;color:#4c6d98}.public-layout .footer ul a:hover,.public-layout .footer ul a:active,.public-layout .footer ul a:focus{text-decoration:underline}.public-layout .footer .brand svg{display:block;height:36px;width:auto;margin:0 auto;fill:#4c6d98}.public-layout .footer .brand:hover svg,.public-layout .footer .brand:focus svg,.public-layout .footer .brand:active svg{fill:#5377a5}.compact-header h1{font-size:24px;line-height:28px;color:#9baec8;font-weight:500;margin-bottom:20px;padding:0 10px;word-wrap:break-word}@media screen and (max-width: 740px){.compact-header h1{text-align:center;padding:20px 10px 0}}.compact-header h1 a{color:inherit;text-decoration:none}.compact-header h1 small{font-weight:400;color:#d9e1e8}.compact-header h1 img{display:inline-block;margin-bottom:-5px;margin-right:15px;width:36px;height:36px}.hero-widget{margin-bottom:10px;box-shadow:0 0 15px rgba(0,0,0,.2)}.hero-widget__img{width:100%;position:relative;overflow:hidden;border-radius:4px 4px 0 0;background:#000}.hero-widget__img img{object-fit:cover;display:block;width:100%;height:100%;margin:0;border-radius:4px 4px 0 0}.hero-widget__text{background:#121a24;padding:20px;border-radius:0 0 4px 4px;font-size:15px;color:#9baec8;line-height:20px;word-wrap:break-word;font-weight:400}.hero-widget__text .emojione{width:20px;height:20px;margin:-3px 0 0}.hero-widget__text p{margin-bottom:20px}.hero-widget__text p:last-child{margin-bottom:0}.hero-widget__text em{display:inline;margin:0;padding:0;font-weight:700;background:transparent;font-family:inherit;font-size:inherit;line-height:inherit;color:#bcc9da}.hero-widget__text a{color:#d9e1e8;text-decoration:none}.hero-widget__text a:hover{text-decoration:underline}@media screen and (max-width: 415px){.hero-widget{display:none}}.endorsements-widget{margin-bottom:10px;padding-bottom:10px}.endorsements-widget h4{padding:10px;text-transform:uppercase;font-weight:700;font-size:13px;color:#9baec8}.endorsements-widget .account{padding:10px 0}.endorsements-widget .account:last-child{border-bottom:0}.endorsements-widget .account .account__display-name{display:flex;align-items:center}.endorsements-widget .account .account__avatar{width:44px;height:44px;background-size:44px 44px}.endorsements-widget .trends__item{padding:10px}.trends-widget h4{color:#9baec8}.box-widget{padding:20px;border-radius:4px;background:#121a24;box-shadow:0 0 15px rgba(0,0,0,.2)}.placeholder-widget{padding:16px;border-radius:4px;border:2px dashed #3e5a7c;text-align:center;color:#9baec8;margin-bottom:10px}.contact-widget{min-height:100%;font-size:15px;color:#9baec8;line-height:20px;word-wrap:break-word;font-weight:400;padding:0}.contact-widget h4{padding:10px;text-transform:uppercase;font-weight:700;font-size:13px;color:#9baec8}.contact-widget .account{border-bottom:0;padding:10px 0;padding-top:5px}.contact-widget>a{display:inline-block;padding:10px;padding-top:0;color:#9baec8;text-decoration:none;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.contact-widget>a:hover,.contact-widget>a:focus,.contact-widget>a:active{text-decoration:underline}.moved-account-widget{padding:15px;padding-bottom:20px;border-radius:4px;background:#121a24;box-shadow:0 0 15px rgba(0,0,0,.2);color:#d9e1e8;font-weight:400;margin-bottom:10px}.moved-account-widget strong,.moved-account-widget a{font-weight:500}.moved-account-widget strong:lang(ja),.moved-account-widget a:lang(ja){font-weight:700}.moved-account-widget strong:lang(ko),.moved-account-widget a:lang(ko){font-weight:700}.moved-account-widget strong:lang(zh-CN),.moved-account-widget a:lang(zh-CN){font-weight:700}.moved-account-widget strong:lang(zh-HK),.moved-account-widget a:lang(zh-HK){font-weight:700}.moved-account-widget strong:lang(zh-TW),.moved-account-widget a:lang(zh-TW){font-weight:700}.moved-account-widget a{color:inherit;text-decoration:underline}.moved-account-widget a.mention{text-decoration:none}.moved-account-widget a.mention span{text-decoration:none}.moved-account-widget a.mention:focus,.moved-account-widget a.mention:hover,.moved-account-widget a.mention:active{text-decoration:none}.moved-account-widget a.mention:focus span,.moved-account-widget a.mention:hover span,.moved-account-widget a.mention:active span{text-decoration:underline}.moved-account-widget__message{margin-bottom:15px}.moved-account-widget__message .fa{margin-right:5px;color:#9baec8}.moved-account-widget__card .detailed-status__display-avatar{position:relative;cursor:pointer}.moved-account-widget__card .detailed-status__display-name{margin-bottom:0;text-decoration:none}.moved-account-widget__card .detailed-status__display-name span{font-weight:400}.memoriam-widget{padding:20px;border-radius:4px;background:#000;box-shadow:0 0 15px rgba(0,0,0,.2);font-size:14px;color:#9baec8;margin-bottom:10px}.page-header{background:#202e3f;box-shadow:0 0 15px rgba(0,0,0,.2);border-radius:4px;padding:60px 15px;text-align:center;margin:10px 0}.page-header h1{color:#fff;font-size:36px;line-height:1.1;font-weight:700;margin-bottom:10px}.page-header p{font-size:15px;color:#9baec8}@media screen and (max-width: 415px){.page-header{margin-top:0;background:#192432}.page-header h1{font-size:24px}}.directory{background:#121a24;border-radius:4px;box-shadow:0 0 15px rgba(0,0,0,.2)}.directory__tag{box-sizing:border-box;margin-bottom:10px}.directory__tag>a,.directory__tag>div{display:flex;align-items:center;justify-content:space-between;background:#121a24;border-radius:4px;padding:15px;text-decoration:none;color:inherit;box-shadow:0 0 15px rgba(0,0,0,.2)}.directory__tag>a:hover,.directory__tag>a:active,.directory__tag>a:focus{background:#202e3f}.directory__tag.active>a{background:#d8a070;cursor:default}.directory__tag.disabled>div{opacity:.5;cursor:default}.directory__tag h4{flex:1 1 auto;font-size:18px;font-weight:700;color:#fff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.directory__tag h4 .fa{color:#9baec8}.directory__tag h4 small{display:block;font-weight:400;font-size:15px;margin-top:8px;color:#9baec8}.directory__tag.active h4,.directory__tag.active h4 .fa,.directory__tag.active h4 small{color:#fff}.directory__tag .avatar-stack{flex:0 0 auto;width:120px}.directory__tag.active .avatar-stack .account__avatar{border-color:#d8a070}.avatar-stack{display:flex;justify-content:flex-end}.avatar-stack .account__avatar{flex:0 0 auto;width:36px;height:36px;border-radius:50%;position:relative;margin-left:-10px;background:#040609;border:2px solid #121a24}.avatar-stack .account__avatar:nth-child(1){z-index:1}.avatar-stack .account__avatar:nth-child(2){z-index:2}.avatar-stack .account__avatar:nth-child(3){z-index:3}.accounts-table{width:100%}.accounts-table .account{padding:0;border:0}.accounts-table strong{font-weight:700}.accounts-table thead th{text-align:center;text-transform:uppercase;color:#9baec8;font-weight:700;padding:10px}.accounts-table thead th:first-child{text-align:left}.accounts-table tbody td{padding:15px 0;vertical-align:middle;border-bottom:1px solid #202e3f}.accounts-table tbody tr:last-child td{border-bottom:0}.accounts-table__count{width:120px;text-align:center;font-size:15px;font-weight:500;color:#fff}.accounts-table__count small{display:block;color:#9baec8;font-weight:400;font-size:14px}.accounts-table__comment{width:50%;vertical-align:initial !important}@media screen and (max-width: 415px){.accounts-table tbody td.optional{display:none}}@media screen and (max-width: 415px){.moved-account-widget,.memoriam-widget,.box-widget,.contact-widget,.landing-page__information.contact-widget,.directory,.page-header{margin-bottom:0;box-shadow:none;border-radius:0}}.statuses-grid{min-height:600px}@media screen and (max-width: 640px){.statuses-grid{width:100% !important}}.statuses-grid__item{width:313.3333333333px}@media screen and (max-width: 1255px){.statuses-grid__item{width:306.6666666667px}}@media screen and (max-width: 640px){.statuses-grid__item{width:100%}}@media screen and (max-width: 415px){.statuses-grid__item{width:100vw}}.statuses-grid .detailed-status{border-radius:4px}@media screen and (max-width: 415px){.statuses-grid .detailed-status{border-top:1px solid #2d415a}}.statuses-grid .detailed-status.compact .detailed-status__meta{margin-top:15px}.statuses-grid .detailed-status.compact .status__content{font-size:15px;line-height:20px}.statuses-grid .detailed-status.compact .status__content .emojione{width:20px;height:20px;margin:-3px 0 0}.statuses-grid .detailed-status.compact .status__content .status__content__spoiler-link{line-height:20px;margin:0}.statuses-grid .detailed-status.compact .media-gallery,.statuses-grid .detailed-status.compact .status-card,.statuses-grid .detailed-status.compact .video-player{margin-top:15px}.notice-widget{margin-bottom:10px;color:#9baec8}.notice-widget p{margin-bottom:10px}.notice-widget p:last-child{margin-bottom:0}.notice-widget a{font-size:14px;line-height:20px}.notice-widget a,.placeholder-widget a{text-decoration:none;font-weight:500;color:#d8a070}.notice-widget a:hover,.notice-widget a:focus,.notice-widget a:active,.placeholder-widget a:hover,.placeholder-widget a:focus,.placeholder-widget a:active{text-decoration:underline}.table-of-contents{background:#0b1016;min-height:100%;font-size:14px;border-radius:4px}.table-of-contents li a{display:block;font-weight:500;padding:15px;overflow:hidden;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-decoration:none;color:#fff;border-bottom:1px solid #192432}.table-of-contents li a:hover,.table-of-contents li a:focus,.table-of-contents li a:active{text-decoration:underline}.table-of-contents li:last-child a{border-bottom:0}.table-of-contents li ul{padding-left:20px;border-bottom:1px solid #192432}code{font-family:monospace,monospace;font-weight:400}.form-container{max-width:400px;padding:20px;margin:0 auto}.simple_form .input{margin-bottom:15px;overflow:hidden}.simple_form .input.hidden{margin:0}.simple_form .input.radio_buttons .radio{margin-bottom:15px}.simple_form .input.radio_buttons .radio:last-child{margin-bottom:0}.simple_form .input.radio_buttons .radio>label{position:relative;padding-left:28px}.simple_form .input.radio_buttons .radio>label input{position:absolute;top:-2px;left:0}.simple_form .input.boolean{position:relative;margin-bottom:0}.simple_form .input.boolean .label_input>label{font-family:inherit;font-size:14px;padding-top:5px;color:#fff;display:block;width:auto}.simple_form .input.boolean .label_input,.simple_form .input.boolean .hint{padding-left:28px}.simple_form .input.boolean .label_input__wrapper{position:static}.simple_form .input.boolean label.checkbox{position:absolute;top:2px;left:0}.simple_form .input.boolean label a{color:#d8a070;text-decoration:underline}.simple_form .input.boolean label a:hover,.simple_form .input.boolean label a:active,.simple_form .input.boolean label a:focus{text-decoration:none}.simple_form .input.boolean .recommended{position:absolute;margin:0 4px;margin-top:-2px}.simple_form .row{display:flex;margin:0 -5px}.simple_form .row .input{box-sizing:border-box;flex:1 1 auto;width:50%;padding:0 5px}.simple_form .hint{color:#9baec8}.simple_form .hint a{color:#d8a070}.simple_form .hint code{border-radius:3px;padding:.2em .4em;background:#000}.simple_form span.hint{display:block;font-size:12px;margin-top:4px}.simple_form p.hint{margin-bottom:15px;color:#9baec8}.simple_form p.hint.subtle-hint{text-align:center;font-size:12px;line-height:18px;margin-top:15px;margin-bottom:0}.simple_form .card{margin-bottom:15px}.simple_form strong{font-weight:500}.simple_form strong:lang(ja){font-weight:700}.simple_form strong:lang(ko){font-weight:700}.simple_form strong:lang(zh-CN){font-weight:700}.simple_form strong:lang(zh-HK){font-weight:700}.simple_form strong:lang(zh-TW){font-weight:700}.simple_form .input.with_floating_label .label_input{display:flex}.simple_form .input.with_floating_label .label_input>label{font-family:inherit;font-size:14px;color:#fff;font-weight:500;min-width:150px;flex:0 0 auto}.simple_form .input.with_floating_label .label_input input,.simple_form .input.with_floating_label .label_input select{flex:1 1 auto}.simple_form .input.with_floating_label.select .hint{margin-top:6px;margin-left:150px}.simple_form .input.with_label .label_input>label{font-family:inherit;font-size:14px;color:#fff;display:block;margin-bottom:8px;word-wrap:break-word;font-weight:500}.simple_form .input.with_label .hint{margin-top:6px}.simple_form .input.with_label ul{flex:390px}.simple_form .input.with_block_label{max-width:none}.simple_form .input.with_block_label>label{font-family:inherit;font-size:16px;color:#fff;display:block;font-weight:500;padding-top:5px}.simple_form .input.with_block_label .hint{margin-bottom:15px}.simple_form .input.with_block_label ul{columns:2}.simple_form .input.datetime .label_input select{display:inline-block;width:auto;flex:0}.simple_form .required abbr{text-decoration:none;color:#e87487}.simple_form .fields-group{margin-bottom:25px}.simple_form .fields-group .input:last-child{margin-bottom:0}.simple_form .fields-row{display:flex;margin:0 -10px;padding-top:5px;margin-bottom:25px}.simple_form .fields-row .input{max-width:none}.simple_form .fields-row__column{box-sizing:border-box;padding:0 10px;flex:1 1 auto;min-height:1px}.simple_form .fields-row__column-6{max-width:50%}.simple_form .fields-row__column .actions{margin-top:27px}.simple_form .fields-row .fields-group:last-child,.simple_form .fields-row .fields-row__column.fields-group{margin-bottom:0}@media screen and (max-width: 600px){.simple_form .fields-row{display:block;margin-bottom:0}.simple_form .fields-row__column{max-width:none}.simple_form .fields-row .fields-group:last-child,.simple_form .fields-row .fields-row__column.fields-group,.simple_form .fields-row .fields-row__column{margin-bottom:25px}}.simple_form .input.radio_buttons .radio label{margin-bottom:5px;font-family:inherit;font-size:14px;color:#fff;display:block;width:auto}.simple_form .check_boxes .checkbox label{font-family:inherit;font-size:14px;color:#fff;display:inline-block;width:auto;position:relative;padding-top:5px;padding-left:25px;flex:1 1 auto}.simple_form .check_boxes .checkbox input[type=checkbox]{position:absolute;left:0;top:5px;margin:0}.simple_form .input.static .label_input__wrapper{font-size:16px;padding:10px;border:1px solid #3e5a7c;border-radius:4px}.simple_form input[type=text],.simple_form input[type=number],.simple_form input[type=email],.simple_form input[type=password],.simple_form textarea{box-sizing:border-box;font-size:16px;color:#fff;display:block;width:100%;outline:0;font-family:inherit;resize:vertical;background:#010102;border:1px solid #000;border-radius:4px;padding:10px}.simple_form input[type=text]::placeholder,.simple_form input[type=number]::placeholder,.simple_form input[type=email]::placeholder,.simple_form input[type=password]::placeholder,.simple_form textarea::placeholder{color:#a8b9cf}.simple_form input[type=text]:invalid,.simple_form input[type=number]:invalid,.simple_form input[type=email]:invalid,.simple_form input[type=password]:invalid,.simple_form textarea:invalid{box-shadow:none}.simple_form input[type=text]:focus:invalid:not(:placeholder-shown),.simple_form input[type=number]:focus:invalid:not(:placeholder-shown),.simple_form input[type=email]:focus:invalid:not(:placeholder-shown),.simple_form input[type=password]:focus:invalid:not(:placeholder-shown),.simple_form textarea:focus:invalid:not(:placeholder-shown){border-color:#e87487}.simple_form input[type=text]:required:valid,.simple_form input[type=number]:required:valid,.simple_form input[type=email]:required:valid,.simple_form input[type=password]:required:valid,.simple_form textarea:required:valid{border-color:#79bd9a}.simple_form input[type=text]:hover,.simple_form input[type=number]:hover,.simple_form input[type=email]:hover,.simple_form input[type=password]:hover,.simple_form textarea:hover{border-color:#000}.simple_form input[type=text]:active,.simple_form input[type=text]:focus,.simple_form input[type=number]:active,.simple_form input[type=number]:focus,.simple_form input[type=email]:active,.simple_form input[type=email]:focus,.simple_form input[type=password]:active,.simple_form input[type=password]:focus,.simple_form textarea:active,.simple_form textarea:focus{border-color:#d8a070;background:#040609}.simple_form .input.field_with_errors label{color:#e87487}.simple_form .input.field_with_errors input[type=text],.simple_form .input.field_with_errors input[type=number],.simple_form .input.field_with_errors input[type=email],.simple_form .input.field_with_errors input[type=password],.simple_form .input.field_with_errors textarea,.simple_form .input.field_with_errors select{border-color:#e87487}.simple_form .input.field_with_errors .error{display:block;font-weight:500;color:#e87487;margin-top:4px}.simple_form .input.disabled{opacity:.5}.simple_form .actions{margin-top:30px;display:flex}.simple_form .actions.actions--top{margin-top:0;margin-bottom:30px}.simple_form button,.simple_form .button,.simple_form .block-button{display:block;width:100%;border:0;border-radius:4px;background:#d8a070;color:#fff;font-size:18px;line-height:inherit;height:auto;padding:10px;text-transform:uppercase;text-decoration:none;text-align:center;box-sizing:border-box;cursor:pointer;font-weight:500;outline:0;margin-bottom:10px;margin-right:10px}.simple_form button:last-child,.simple_form .button:last-child,.simple_form .block-button:last-child{margin-right:0}.simple_form button:hover,.simple_form .button:hover,.simple_form .block-button:hover{background-color:#ddad84}.simple_form button:active,.simple_form button:focus,.simple_form .button:active,.simple_form .button:focus,.simple_form .block-button:active,.simple_form .block-button:focus{background-color:#d3935c}.simple_form button:disabled:hover,.simple_form .button:disabled:hover,.simple_form .block-button:disabled:hover{background-color:#9baec8}.simple_form button.negative,.simple_form .button.negative,.simple_form .block-button.negative{background:#df405a}.simple_form button.negative:hover,.simple_form .button.negative:hover,.simple_form .block-button.negative:hover{background-color:#e3566d}.simple_form button.negative:active,.simple_form button.negative:focus,.simple_form .button.negative:active,.simple_form .button.negative:focus,.simple_form .block-button.negative:active,.simple_form .block-button.negative:focus{background-color:#db2a47}.simple_form select{appearance:none;box-sizing:border-box;font-size:16px;color:#fff;display:block;width:100%;outline:0;font-family:inherit;resize:vertical;background:#010102 url(\"data:image/svg+xml;utf8,\") no-repeat right 8px center/auto 16px;border:1px solid #000;border-radius:4px;padding-left:10px;padding-right:30px;height:41px}.simple_form h4{margin-bottom:15px !important}.simple_form .label_input__wrapper{position:relative}.simple_form .label_input__append{position:absolute;right:3px;top:1px;padding:10px;padding-bottom:9px;font-size:16px;color:#3e5a7c;font-family:inherit;pointer-events:none;cursor:default;max-width:140px;white-space:nowrap;overflow:hidden}.simple_form .label_input__append::after{content:\"\";display:block;position:absolute;top:0;right:0;bottom:1px;width:5px;background-image:linear-gradient(to right, rgba(1, 1, 2, 0), #010102)}.simple_form__overlay-area{position:relative}.simple_form__overlay-area__blurred form{filter:blur(2px)}.simple_form__overlay-area__overlay{position:absolute;top:0;left:0;width:100%;height:100%;display:flex;justify-content:center;align-items:center;background:rgba(18,26,36,.65);border-radius:4px;margin-left:-4px;margin-top:-4px;padding:4px}.simple_form__overlay-area__overlay__content{text-align:center}.simple_form__overlay-area__overlay__content.rich-formatting,.simple_form__overlay-area__overlay__content.rich-formatting p{color:#fff}.block-icon{display:block;margin:0 auto;margin-bottom:10px;font-size:24px}.flash-message{background:#202e3f;color:#9baec8;border-radius:4px;padding:15px 10px;margin-bottom:30px;text-align:center}.flash-message.notice{border:1px solid rgba(121,189,154,.5);background:rgba(121,189,154,.25);color:#79bd9a}.flash-message.alert{border:1px solid rgba(223,64,90,.5);background:rgba(223,64,90,.25);color:#df405a}.flash-message a{display:inline-block;color:#9baec8;text-decoration:none}.flash-message a:hover{color:#fff;text-decoration:underline}.flash-message p{margin-bottom:15px}.flash-message .oauth-code{outline:0;box-sizing:border-box;display:block;width:100%;border:none;padding:10px;font-family:monospace,monospace;background:#121a24;color:#fff;font-size:14px;margin:0}.flash-message .oauth-code::-moz-focus-inner{border:0}.flash-message .oauth-code::-moz-focus-inner,.flash-message .oauth-code:focus,.flash-message .oauth-code:active{outline:0 !important}.flash-message .oauth-code:focus{background:#192432}.flash-message strong{font-weight:500}.flash-message strong:lang(ja){font-weight:700}.flash-message strong:lang(ko){font-weight:700}.flash-message strong:lang(zh-CN){font-weight:700}.flash-message strong:lang(zh-HK){font-weight:700}.flash-message strong:lang(zh-TW){font-weight:700}@media screen and (max-width: 740px)and (min-width: 441px){.flash-message{margin-top:40px}}.form-footer{margin-top:30px;text-align:center}.form-footer a{color:#9baec8;text-decoration:none}.form-footer a:hover{text-decoration:underline}.quick-nav{list-style:none;margin-bottom:25px;font-size:14px}.quick-nav li{display:inline-block;margin-right:10px}.quick-nav a{color:#d8a070;text-transform:uppercase;text-decoration:none;font-weight:700}.quick-nav a:hover,.quick-nav a:focus,.quick-nav a:active{color:#e1b590}.oauth-prompt,.follow-prompt{margin-bottom:30px;color:#9baec8}.oauth-prompt h2,.follow-prompt h2{font-size:16px;margin-bottom:30px;text-align:center}.oauth-prompt strong,.follow-prompt strong{color:#d9e1e8;font-weight:500}.oauth-prompt strong:lang(ja),.follow-prompt strong:lang(ja){font-weight:700}.oauth-prompt strong:lang(ko),.follow-prompt strong:lang(ko){font-weight:700}.oauth-prompt strong:lang(zh-CN),.follow-prompt strong:lang(zh-CN){font-weight:700}.oauth-prompt strong:lang(zh-HK),.follow-prompt strong:lang(zh-HK){font-weight:700}.oauth-prompt strong:lang(zh-TW),.follow-prompt strong:lang(zh-TW){font-weight:700}@media screen and (max-width: 740px)and (min-width: 441px){.oauth-prompt,.follow-prompt{margin-top:40px}}.qr-wrapper{display:flex;flex-wrap:wrap;align-items:flex-start}.qr-code{flex:0 0 auto;background:#fff;padding:4px;margin:0 10px 20px 0;box-shadow:0 0 15px rgba(0,0,0,.2);display:inline-block}.qr-code svg{display:block;margin:0}.qr-alternative{margin-bottom:20px;color:#d9e1e8;flex:150px}.qr-alternative samp{display:block;font-size:14px}.table-form p{margin-bottom:15px}.table-form p strong{font-weight:500}.table-form p strong:lang(ja){font-weight:700}.table-form p strong:lang(ko){font-weight:700}.table-form p strong:lang(zh-CN){font-weight:700}.table-form p strong:lang(zh-HK){font-weight:700}.table-form p strong:lang(zh-TW){font-weight:700}.simple_form .warning,.table-form .warning{box-sizing:border-box;background:rgba(223,64,90,.5);color:#fff;text-shadow:1px 1px 0 rgba(0,0,0,.3);box-shadow:0 2px 6px rgba(0,0,0,.4);border-radius:4px;padding:10px;margin-bottom:15px}.simple_form .warning a,.table-form .warning a{color:#fff;text-decoration:underline}.simple_form .warning a:hover,.simple_form .warning a:focus,.simple_form .warning a:active,.table-form .warning a:hover,.table-form .warning a:focus,.table-form .warning a:active{text-decoration:none}.simple_form .warning strong,.table-form .warning strong{font-weight:600;display:block;margin-bottom:5px}.simple_form .warning strong:lang(ja),.table-form .warning strong:lang(ja){font-weight:700}.simple_form .warning strong:lang(ko),.table-form .warning strong:lang(ko){font-weight:700}.simple_form .warning strong:lang(zh-CN),.table-form .warning strong:lang(zh-CN){font-weight:700}.simple_form .warning strong:lang(zh-HK),.table-form .warning strong:lang(zh-HK){font-weight:700}.simple_form .warning strong:lang(zh-TW),.table-form .warning strong:lang(zh-TW){font-weight:700}.simple_form .warning strong .fa,.table-form .warning strong .fa{font-weight:400}.action-pagination{display:flex;flex-wrap:wrap;align-items:center}.action-pagination .actions,.action-pagination .pagination{flex:1 1 auto}.action-pagination .actions{padding:30px 0;padding-right:20px;flex:0 0 auto}.post-follow-actions{text-align:center;color:#9baec8}.post-follow-actions div{margin-bottom:4px}.alternative-login{margin-top:20px;margin-bottom:20px}.alternative-login h4{font-size:16px;color:#fff;text-align:center;margin-bottom:20px;border:0;padding:0}.alternative-login .button{display:block}.scope-danger{color:#ff5050}.form_admin_settings_site_short_description textarea,.form_admin_settings_site_description textarea,.form_admin_settings_site_extended_description textarea,.form_admin_settings_site_terms textarea,.form_admin_settings_custom_css textarea,.form_admin_settings_closed_registrations_message textarea{font-family:monospace,monospace}.input-copy{background:#010102;border:1px solid #000;border-radius:4px;display:flex;align-items:center;padding-right:4px;position:relative;top:1px;transition:border-color 300ms linear}.input-copy__wrapper{flex:1 1 auto}.input-copy input[type=text]{background:transparent;border:0;padding:10px;font-size:14px;font-family:monospace,monospace}.input-copy button{flex:0 0 auto;margin:4px;text-transform:none;font-weight:400;font-size:14px;padding:7px 18px;padding-bottom:6px;width:auto;transition:background 300ms linear}.input-copy.copied{border-color:#79bd9a;transition:none}.input-copy.copied button{background:#79bd9a;transition:none}.connection-prompt{margin-bottom:25px}.connection-prompt .fa-link{background-color:#0b1016;border-radius:100%;font-size:24px;padding:10px}.connection-prompt__column{align-items:center;display:flex;flex:1;flex-direction:column;flex-shrink:1;max-width:50%}.connection-prompt__column-sep{align-self:center;flex-grow:0;overflow:visible;position:relative;z-index:1}.connection-prompt__column p{word-break:break-word}.connection-prompt .account__avatar{margin-bottom:20px}.connection-prompt__connection{background-color:#202e3f;box-shadow:0 0 15px rgba(0,0,0,.2);border-radius:4px;padding:25px 10px;position:relative;text-align:center}.connection-prompt__connection::after{background-color:#0b1016;content:\"\";display:block;height:100%;left:50%;position:absolute;top:0;width:1px}.connection-prompt__row{align-items:flex-start;display:flex;flex-direction:row}.card>a{display:block;text-decoration:none;color:inherit;box-shadow:0 0 15px rgba(0,0,0,.2)}@media screen and (max-width: 415px){.card>a{box-shadow:none}}.card>a:hover .card__bar,.card>a:active .card__bar,.card>a:focus .card__bar{background:#202e3f}.card__img{height:130px;position:relative;background:#000;border-radius:4px 4px 0 0}.card__img img{display:block;width:100%;height:100%;margin:0;object-fit:cover;border-radius:4px 4px 0 0}@media screen and (max-width: 600px){.card__img{height:200px}}@media screen and (max-width: 415px){.card__img{display:none}}.card__bar{position:relative;padding:15px;display:flex;justify-content:flex-start;align-items:center;background:#192432;border-radius:0 0 4px 4px}@media screen and (max-width: 415px){.card__bar{border-radius:0}}.card__bar .avatar{flex:0 0 auto;width:48px;height:48px;width:48px;height:48px;background-size:48px 48px;padding-top:2px}.card__bar .avatar img{width:100%;height:100%;display:block;margin:0;border-radius:4px;border-radius:8%;background-position:50%;background-clip:padding-box;background:#040609;object-fit:cover}.card__bar .display-name{margin-left:15px;text-align:left}.card__bar .display-name strong{font-size:15px;color:#fff;font-weight:500;overflow:hidden;text-overflow:ellipsis}.card__bar .display-name span{display:block;font-size:14px;color:#9baec8;font-weight:400;overflow:hidden;text-overflow:ellipsis}.pagination{padding:30px 0;text-align:center;overflow:hidden}.pagination a,.pagination .current,.pagination .newer,.pagination .older,.pagination .page,.pagination .gap{font-size:14px;color:#fff;font-weight:500;display:inline-block;padding:6px 10px;text-decoration:none}.pagination .current{background:#fff;border-radius:100px;color:#121a24;cursor:default;margin:0 10px}.pagination .gap{cursor:default}.pagination .older,.pagination .newer{text-transform:uppercase;color:#d9e1e8}.pagination .older{float:left;padding-left:0}.pagination .older .fa{display:inline-block;margin-right:5px}.pagination .newer{float:right;padding-right:0}.pagination .newer .fa{display:inline-block;margin-left:5px}.pagination .disabled{cursor:default;color:#233346}@media screen and (max-width: 700px){.pagination{padding:30px 20px}.pagination .page{display:none}.pagination .newer,.pagination .older{display:inline-block}}.nothing-here{background:#121a24;box-shadow:0 0 15px rgba(0,0,0,.2);color:#9baec8;font-size:14px;font-weight:500;text-align:center;display:flex;justify-content:center;align-items:center;cursor:default;border-radius:4px;padding:20px;min-height:30vh}.nothing-here--under-tabs{border-radius:0 0 4px 4px}.nothing-here--flexible{box-sizing:border-box;min-height:100%}.account-role,.simple_form .recommended{display:inline-block;padding:4px 6px;cursor:default;border-radius:3px;font-size:12px;line-height:12px;font-weight:500;color:#d9e1e8;background-color:rgba(217,225,232,.1);border:1px solid rgba(217,225,232,.5)}.account-role.moderator,.simple_form .recommended.moderator{color:#79bd9a;background-color:rgba(121,189,154,.1);border-color:rgba(121,189,154,.5)}.account-role.admin,.simple_form .recommended.admin{color:#e87487;background-color:rgba(232,116,135,.1);border-color:rgba(232,116,135,.5)}.account__header__fields{max-width:100vw;padding:0;margin:15px -15px -15px;border:0 none;border-top:1px solid #26374d;border-bottom:1px solid #26374d;font-size:14px;line-height:20px}.account__header__fields dl{display:flex;border-bottom:1px solid #26374d}.account__header__fields dt,.account__header__fields dd{box-sizing:border-box;padding:14px;text-align:center;max-height:48px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.account__header__fields dt{font-weight:500;width:120px;flex:0 0 auto;color:#d9e1e8;background:rgba(4,6,9,.5)}.account__header__fields dd{flex:1 1 auto;color:#9baec8}.account__header__fields a{color:#d8a070;text-decoration:none}.account__header__fields a:hover,.account__header__fields a:focus,.account__header__fields a:active{text-decoration:underline}.account__header__fields .verified{border:1px solid rgba(121,189,154,.5);background:rgba(121,189,154,.25)}.account__header__fields .verified a{color:#79bd9a;font-weight:500}.account__header__fields .verified__mark{color:#79bd9a}.account__header__fields dl:last-child{border-bottom:0}.directory__tag .trends__item__current{width:auto}.pending-account__header{color:#9baec8}.pending-account__header a{color:#d9e1e8;text-decoration:none}.pending-account__header a:hover,.pending-account__header a:active,.pending-account__header a:focus{text-decoration:underline}.pending-account__header strong{color:#fff;font-weight:700}.pending-account__body{margin-top:10px}.activity-stream{box-shadow:0 0 15px rgba(0,0,0,.2);border-radius:4px;overflow:hidden;margin-bottom:10px}@media screen and (max-width: 415px){.activity-stream{margin-bottom:0;border-radius:0;box-shadow:none}}.activity-stream--headless{border-radius:0;margin:0;box-shadow:none}.activity-stream--headless .detailed-status,.activity-stream--headless .status{border-radius:0 !important}.activity-stream div[data-component]{width:100%}.activity-stream .entry{background:#121a24}.activity-stream .entry .detailed-status,.activity-stream .entry .status,.activity-stream .entry .load-more{animation:none}.activity-stream .entry:last-child .detailed-status,.activity-stream .entry:last-child .status,.activity-stream .entry:last-child .load-more{border-bottom:0;border-radius:0 0 4px 4px}.activity-stream .entry:first-child .detailed-status,.activity-stream .entry:first-child .status,.activity-stream .entry:first-child .load-more{border-radius:4px 4px 0 0}.activity-stream .entry:first-child:last-child .detailed-status,.activity-stream .entry:first-child:last-child .status,.activity-stream .entry:first-child:last-child .load-more{border-radius:4px}@media screen and (max-width: 740px){.activity-stream .entry .detailed-status,.activity-stream .entry .status,.activity-stream .entry .load-more{border-radius:0 !important}}.activity-stream--highlighted .entry{background:#202e3f}.button.logo-button{flex:0 auto;font-size:14px;background:#d8a070;color:#fff;text-transform:none;line-height:36px;height:auto;padding:3px 15px;border:0}.button.logo-button svg{width:20px;height:auto;vertical-align:middle;margin-right:5px;fill:#fff}.button.logo-button:active,.button.logo-button:focus,.button.logo-button:hover{background:#e3bb98}.button.logo-button:disabled:active,.button.logo-button:disabled:focus,.button.logo-button:disabled:hover,.button.logo-button.disabled:active,.button.logo-button.disabled:focus,.button.logo-button.disabled:hover{background:#9baec8}.button.logo-button.button--destructive:active,.button.logo-button.button--destructive:focus,.button.logo-button.button--destructive:hover{background:#df405a}@media screen and (max-width: 415px){.button.logo-button svg{display:none}}.embed .detailed-status,.public-layout .detailed-status{padding:15px}.embed .status,.public-layout .status{padding:15px 15px 15px 78px;min-height:50px}.embed .status__avatar,.public-layout .status__avatar{left:15px;top:17px}.embed .status__content,.public-layout .status__content{padding-top:5px}.embed .status__prepend,.public-layout .status__prepend{padding:8px 0;padding-bottom:2px;margin:initial;margin-left:78px;padding-top:15px}.embed .status__prepend-icon-wrapper,.public-layout .status__prepend-icon-wrapper{position:absolute;margin:initial;float:initial;width:auto;left:-32px}.embed .status .media-gallery,.embed .status__action-bar,.embed .status .video-player,.public-layout .status .media-gallery,.public-layout .status__action-bar,.public-layout .status .video-player{margin-top:10px}.embed .status .status__info,.public-layout .status .status__info{font-size:15px;display:initial}.embed .status .status__relative-time,.public-layout .status .status__relative-time{color:#3e5a7c;float:right;font-size:14px;width:auto;margin:initial;padding:initial}.embed .status .status__info .status__display-name,.public-layout .status .status__info .status__display-name{display:block;max-width:100%;padding:6px 0;padding-right:25px;margin:initial}.embed .status .status__info .status__display-name .display-name strong,.public-layout .status .status__info .status__display-name .display-name strong{display:inline}.embed .status .status__avatar,.public-layout .status .status__avatar{height:48px;position:absolute;width:48px;margin:initial}.rtl .embed .status,.rtl .public-layout .status{padding-left:10px;padding-right:68px}.rtl .embed .status .status__info .status__display-name,.rtl .public-layout .status .status__info .status__display-name{padding-left:25px;padding-right:0}.rtl .embed .status .status__relative-time,.rtl .public-layout .status .status__relative-time{float:left}.status__content__read-more-button{display:block;font-size:15px;line-height:20px;color:#e1b590;border:0;background:transparent;padding:0;padding-top:8px;text-decoration:none}.status__content__read-more-button:hover,.status__content__read-more-button:active{text-decoration:underline}.app-body{-webkit-overflow-scrolling:touch;-ms-overflow-style:-ms-autohiding-scrollbar}.animated-number{display:inline-flex;flex-direction:column;align-items:stretch;overflow:hidden;position:relative}.link-button{display:block;font-size:15px;line-height:20px;color:#d8a070;border:0;background:transparent;padding:0;cursor:pointer}.link-button:hover,.link-button:active{text-decoration:underline}.link-button:disabled{color:#9baec8;cursor:default}.button{background-color:#d59864;border:10px none;border-radius:4px;box-sizing:border-box;color:#fff;cursor:pointer;display:inline-block;font-family:inherit;font-size:14px;font-weight:500;height:36px;letter-spacing:0;line-height:36px;overflow:hidden;padding:0 16px;position:relative;text-align:center;text-transform:uppercase;text-decoration:none;text-overflow:ellipsis;transition:all 100ms ease-in;transition-property:background-color;white-space:nowrap;width:auto}.button:active,.button:focus,.button:hover{background-color:#e0b38c;transition:all 200ms ease-out;transition-property:background-color}.button--destructive{transition:none}.button--destructive:active,.button--destructive:focus,.button--destructive:hover{background-color:#df405a;transition:none}.button:disabled{background-color:#9baec8;cursor:default}.button.button-primary,.button.button-alternative,.button.button-secondary,.button.button-alternative-2{font-size:16px;line-height:36px;height:auto;text-transform:none;padding:4px 16px}.button.button-alternative{color:#121a24;background:#9baec8}.button.button-alternative:active,.button.button-alternative:focus,.button.button-alternative:hover{background-color:#a8b9cf}.button.button-alternative-2{background:#3e5a7c}.button.button-alternative-2:active,.button.button-alternative-2:focus,.button.button-alternative-2:hover{background-color:#45648a}.button.button-secondary{font-size:16px;line-height:36px;height:auto;color:#9baec8;text-transform:none;background:transparent;padding:3px 15px;border-radius:4px;border:1px solid #9baec8}.button.button-secondary:active,.button.button-secondary:focus,.button.button-secondary:hover{border-color:#a8b9cf;color:#a8b9cf}.button.button-secondary:disabled{opacity:.5}.button.button--block{display:block;width:100%}.icon-button{display:inline-block;padding:0;color:#3e5a7c;border:0;border-radius:4px;background:transparent;cursor:pointer;transition:all 100ms ease-in;transition-property:background-color,color}.icon-button:hover,.icon-button:active,.icon-button:focus{color:#4a6b94;background-color:rgba(62,90,124,.15);transition:all 200ms ease-out;transition-property:background-color,color}.icon-button:focus{background-color:rgba(62,90,124,.3)}.icon-button.disabled{color:#283a50;background-color:transparent;cursor:default}.icon-button.active{color:#d8a070}.icon-button::-moz-focus-inner{border:0}.icon-button::-moz-focus-inner,.icon-button:focus,.icon-button:active{outline:0 !important}.icon-button.inverted{color:#3e5a7c}.icon-button.inverted:hover,.icon-button.inverted:active,.icon-button.inverted:focus{color:#324965;background-color:rgba(62,90,124,.15)}.icon-button.inverted:focus{background-color:rgba(62,90,124,.3)}.icon-button.inverted.disabled{color:#4a6b94;background-color:transparent}.icon-button.inverted.active{color:#d8a070}.icon-button.inverted.active.disabled{color:#e6c3a4}.icon-button.overlayed{box-sizing:content-box;background:rgba(0,0,0,.6);color:rgba(255,255,255,.7);border-radius:4px;padding:2px}.icon-button.overlayed:hover{background:rgba(0,0,0,.9)}.text-icon-button{color:#3e5a7c;border:0;border-radius:4px;background:transparent;cursor:pointer;font-weight:600;font-size:11px;padding:0 3px;line-height:27px;outline:0;transition:all 100ms ease-in;transition-property:background-color,color}.text-icon-button:hover,.text-icon-button:active,.text-icon-button:focus{color:#324965;background-color:rgba(62,90,124,.15);transition:all 200ms ease-out;transition-property:background-color,color}.text-icon-button:focus{background-color:rgba(62,90,124,.3)}.text-icon-button.disabled{color:#6b8cb5;background-color:transparent;cursor:default}.text-icon-button.active{color:#d8a070}.text-icon-button::-moz-focus-inner{border:0}.text-icon-button::-moz-focus-inner,.text-icon-button:focus,.text-icon-button:active{outline:0 !important}.dropdown-menu{position:absolute;transform-origin:50% 0}.invisible{font-size:0;line-height:0;display:inline-block;width:0;height:0;position:absolute}.invisible img,.invisible svg{margin:0 !important;border:0 !important;padding:0 !important;width:0 !important;height:0 !important}.ellipsis::after{content:\"…\"}.notification__favourite-icon-wrapper{left:0;position:absolute}.notification__favourite-icon-wrapper .fa.star-icon{color:#ca8f04}.star-icon.active{color:#ca8f04}.bookmark-icon.active{color:#ff5050}.no-reduce-motion .icon-button.star-icon.activate>.fa-star{animation:spring-rotate-in 1s linear}.no-reduce-motion .icon-button.star-icon.deactivate>.fa-star{animation:spring-rotate-out 1s linear}.notification__display-name{color:inherit;font-weight:500;text-decoration:none}.notification__display-name:hover{color:#fff;text-decoration:underline}.display-name{display:block;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.display-name a{color:inherit;text-decoration:inherit}.display-name strong{height:18px;font-size:16px;font-weight:500;line-height:18px;text-overflow:ellipsis;overflow:hidden;white-space:nowrap}.display-name span{display:block;height:18px;font-size:15px;line-height:18px;text-overflow:ellipsis;overflow:hidden;white-space:nowrap}.display-name>a:hover strong{text-decoration:underline}.display-name.inline{padding:0;height:18px;font-size:15px;line-height:18px;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.display-name.inline strong{display:inline;height:auto;font-size:inherit;line-height:inherit}.display-name.inline span{display:inline;height:auto;font-size:inherit;line-height:inherit}.display-name__html{font-weight:500}.display-name__account{font-size:14px}.image-loader{position:relative;width:100%;height:100%;display:flex;align-items:center;justify-content:center;flex-direction:column}.image-loader .image-loader__preview-canvas{max-width:100%;max-height:80%;background:url(\"~images/void.png\") repeat;object-fit:contain}.image-loader .loading-bar{position:relative}.image-loader.image-loader--amorphous .image-loader__preview-canvas{display:none}.zoomable-image{position:relative;width:100%;height:100%;display:flex;align-items:center;justify-content:center}.zoomable-image img{max-width:100%;max-height:80%;width:auto;height:auto;object-fit:contain}.dropdown{display:inline-block}.dropdown__content{display:none;position:absolute}.dropdown-menu__separator{border-bottom:1px solid #c0cdd9;margin:5px 7px 6px;height:0}.dropdown-menu{background:#d9e1e8;padding:4px 0;border-radius:4px;box-shadow:2px 4px 15px rgba(0,0,0,.4)}.dropdown-menu ul{list-style:none}.dropdown-menu__arrow{position:absolute;width:0;height:0;border:0 solid transparent}.dropdown-menu__arrow.left{right:-5px;margin-top:-5px;border-width:5px 0 5px 5px;border-left-color:#d9e1e8}.dropdown-menu__arrow.top{bottom:-5px;margin-left:-7px;border-width:5px 7px 0;border-top-color:#d9e1e8}.dropdown-menu__arrow.bottom{top:-5px;margin-left:-7px;border-width:0 7px 5px;border-bottom-color:#d9e1e8}.dropdown-menu__arrow.right{left:-5px;margin-top:-5px;border-width:5px 5px 5px 0;border-right-color:#d9e1e8}.dropdown-menu__item a{font-size:13px;line-height:18px;display:block;padding:4px 14px;box-sizing:border-box;text-decoration:none;background:#d9e1e8;color:#121a24;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dropdown-menu__item a:focus,.dropdown-menu__item a:hover,.dropdown-menu__item a:active{background:#d8a070;color:#d9e1e8;outline:0}.dropdown--active .dropdown__content{display:block;line-height:18px;max-width:311px;right:0;text-align:left;z-index:9999}.dropdown--active .dropdown__content>ul{list-style:none;background:#d9e1e8;padding:4px 0;border-radius:4px;box-shadow:0 0 15px rgba(0,0,0,.4);min-width:140px;position:relative}.dropdown--active .dropdown__content.dropdown__right{right:0}.dropdown--active .dropdown__content.dropdown__left>ul{left:-98px}.dropdown--active .dropdown__content>ul>li>a{font-size:13px;line-height:18px;display:block;padding:4px 14px;box-sizing:border-box;text-decoration:none;background:#d9e1e8;color:#121a24;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dropdown--active .dropdown__content>ul>li>a:focus{outline:0}.dropdown--active .dropdown__content>ul>li>a:hover{background:#d8a070;color:#d9e1e8}.dropdown__icon{vertical-align:middle}.static-content{padding:10px;padding-top:20px;color:#3e5a7c}.static-content h1{font-size:16px;font-weight:500;margin-bottom:40px;text-align:center}.static-content p{font-size:13px;margin-bottom:20px}.column,.drawer{flex:1 1 100%;overflow:hidden}@media screen and (min-width: 631px){.columns-area{padding:0}.column,.drawer{flex:0 0 auto;padding:10px;padding-left:5px;padding-right:5px}.column:first-child,.drawer:first-child{padding-left:10px}.column:last-child,.drawer:last-child{padding-right:10px}.columns-area>div .column,.columns-area>div .drawer{padding-left:5px;padding-right:5px}}.tabs-bar{box-sizing:border-box;display:flex;background:#202e3f;flex:0 0 auto;overflow-y:auto}.tabs-bar__link{display:block;flex:1 1 auto;padding:15px 10px;padding-bottom:13px;color:#fff;text-decoration:none;text-align:center;font-size:14px;font-weight:500;border-bottom:2px solid #202e3f;transition:all 50ms linear;transition-property:border-bottom,background,color}.tabs-bar__link .fa{font-weight:400;font-size:16px}@media screen and (min-width: 631px){.auto-columns .tabs-bar__link:hover,.auto-columns .tabs-bar__link:focus,.auto-columns .tabs-bar__link:active{background:#2a3c54;border-bottom-color:#2a3c54}}.multi-columns .tabs-bar__link:hover,.multi-columns .tabs-bar__link:focus,.multi-columns .tabs-bar__link:active{background:#2a3c54;border-bottom-color:#2a3c54}.tabs-bar__link.active{border-bottom:2px solid #d8a070;color:#d8a070}.tabs-bar__link span{margin-left:5px;display:none}.tabs-bar__link span.icon{margin-left:0;display:inline}.icon-with-badge{position:relative}.icon-with-badge__badge{position:absolute;left:9px;top:-13px;background:#d8a070;border:2px solid #202e3f;padding:1px 6px;border-radius:6px;font-size:10px;font-weight:500;line-height:14px;color:#fff}.column-link--transparent .icon-with-badge__badge{border-color:#040609}.scrollable{overflow-y:scroll;overflow-x:hidden;flex:1 1 auto;-webkit-overflow-scrolling:touch}.scrollable.optionally-scrollable{overflow-y:auto}@supports(display: grid){.scrollable{contain:strict}}.scrollable--flex{display:flex;flex-direction:column}.scrollable__append{flex:1 1 auto;position:relative;min-height:120px}@supports(display: grid){.scrollable.fullscreen{contain:none}}.react-toggle{display:inline-block;position:relative;cursor:pointer;background-color:transparent;border:0;padding:0;user-select:none;-webkit-tap-highlight-color:rgba(0,0,0,0);-webkit-tap-highlight-color:transparent}.react-toggle-screenreader-only{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.react-toggle--disabled{cursor:not-allowed;opacity:.5;transition:opacity .25s}.react-toggle-track{width:50px;height:24px;padding:0;border-radius:30px;background-color:#121a24;transition:background-color .2s ease}.react-toggle:hover:not(.react-toggle--disabled) .react-toggle-track{background-color:#010102}.react-toggle--checked .react-toggle-track{background-color:#d8a070}.react-toggle--checked:hover:not(.react-toggle--disabled) .react-toggle-track{background-color:#e3bb98}.react-toggle-track-check{position:absolute;width:14px;height:10px;top:0;bottom:0;margin-top:auto;margin-bottom:auto;line-height:0;left:8px;opacity:0;transition:opacity .25s ease}.react-toggle--checked .react-toggle-track-check{opacity:1;transition:opacity .25s ease}.react-toggle-track-x{position:absolute;width:10px;height:10px;top:0;bottom:0;margin-top:auto;margin-bottom:auto;line-height:0;right:10px;opacity:1;transition:opacity .25s ease}.react-toggle--checked .react-toggle-track-x{opacity:0}.react-toggle-thumb{position:absolute;top:1px;left:1px;width:22px;height:22px;border:1px solid #121a24;border-radius:50%;background-color:#fafafa;box-sizing:border-box;transition:all .25s ease;transition-property:border-color,left}.react-toggle--checked .react-toggle-thumb{left:27px;border-color:#d8a070}.getting-started__wrapper,.getting_started,.flex-spacer{background:#121a24}.getting-started__wrapper{position:relative;overflow-y:auto}.flex-spacer{flex:1 1 auto}.getting-started{background:#121a24;flex:1 0 auto}.getting-started p{color:#d9e1e8}.getting-started a{color:#3e5a7c}.getting-started__panel{height:min-content}.getting-started__panel,.getting-started__footer{padding:10px;padding-top:20px;flex:0 1 auto}.getting-started__panel ul,.getting-started__footer ul{margin-bottom:10px}.getting-started__panel ul li,.getting-started__footer ul li{display:inline}.getting-started__panel p,.getting-started__footer p{color:#3e5a7c;font-size:13px}.getting-started__panel p a,.getting-started__footer p a{color:#3e5a7c;text-decoration:underline}.getting-started__panel a,.getting-started__footer a{text-decoration:none;color:#9baec8}.getting-started__panel a:hover,.getting-started__panel a:focus,.getting-started__panel a:active,.getting-started__footer a:hover,.getting-started__footer a:focus,.getting-started__footer a:active{text-decoration:underline}.getting-started__trends{flex:0 1 auto;opacity:1;animation:fade 150ms linear;margin-top:10px}.getting-started__trends h4{font-size:12px;text-transform:uppercase;color:#9baec8;padding:10px;font-weight:500;border-bottom:1px solid #202e3f}@media screen and (max-height: 810px){.getting-started__trends .trends__item:nth-child(3){display:none}}@media screen and (max-height: 720px){.getting-started__trends .trends__item:nth-child(2){display:none}}@media screen and (max-height: 670px){.getting-started__trends{display:none}}.getting-started__trends .trends__item{border-bottom:0;padding:10px}.getting-started__trends .trends__item__current{color:#9baec8}.column-link__badge{display:inline-block;border-radius:4px;font-size:12px;line-height:19px;font-weight:500;background:#121a24;padding:4px 8px;margin:-6px 10px}.keyboard-shortcuts{padding:8px 0 0;overflow:hidden}.keyboard-shortcuts thead{position:absolute;left:-9999px}.keyboard-shortcuts td{padding:0 10px 8px}.keyboard-shortcuts kbd{display:inline-block;padding:3px 5px;background-color:#202e3f;border:1px solid #0b1016}.setting-text{color:#9baec8;background:transparent;border:none;border-bottom:2px solid #9baec8;box-sizing:border-box;display:block;font-family:inherit;margin-bottom:10px;padding:7px 0;width:100%}.setting-text:focus,.setting-text:active{color:#fff;border-bottom-color:#d8a070}@media screen and (max-width: 600px){.auto-columns .setting-text,.single-column .setting-text{font-size:16px}}.setting-text.light{color:#121a24;border-bottom:2px solid #405c80}.setting-text.light:focus,.setting-text.light:active{color:#121a24;border-bottom-color:#d8a070}.no-reduce-motion button.icon-button i.fa-retweet{background-position:0 0;height:19px;transition:background-position .9s steps(10);transition-duration:0s;vertical-align:middle;width:22px}.no-reduce-motion button.icon-button i.fa-retweet::before{display:none !important}.no-reduce-motion button.icon-button.active i.fa-retweet{transition-duration:.9s;background-position:0 100%}.reduce-motion button.icon-button i.fa-retweet{color:#3e5a7c;transition:color 100ms ease-in}.reduce-motion button.icon-button.active i.fa-retweet{color:#d8a070}.reduce-motion button.icon-button.disabled i.fa-retweet{color:#283a50}.load-more{display:block;color:#3e5a7c;background-color:transparent;border:0;font-size:inherit;text-align:center;line-height:inherit;margin:0;padding:15px;box-sizing:border-box;width:100%;clear:both;text-decoration:none}.load-more:hover{background:#151f2b}.load-gap{border-bottom:1px solid #202e3f}.missing-indicator{padding-top:68px}.scrollable>div>:first-child .notification__dismiss-overlay>.wrappy{border-top:1px solid #121a24}.notification__dismiss-overlay{overflow:hidden;position:absolute;top:0;right:0;bottom:-1px;padding-left:15px;z-index:999;align-items:center;justify-content:flex-end;cursor:pointer;display:flex}.notification__dismiss-overlay .wrappy{width:4rem;align-self:stretch;display:flex;flex-direction:column;align-items:center;justify-content:center;background:#202e3f;border-left:1px solid #344b68;box-shadow:0 0 5px #000;border-bottom:1px solid #121a24}.notification__dismiss-overlay .ckbox{border:2px solid #9baec8;border-radius:2px;width:30px;height:30px;font-size:20px;color:#9baec8;text-shadow:0 0 5px #000;display:flex;justify-content:center;align-items:center}.notification__dismiss-overlay:focus{outline:0 !important}.notification__dismiss-overlay:focus .ckbox{box-shadow:0 0 1px 1px #d8a070}.text-btn{display:inline-block;padding:0;font-family:inherit;font-size:inherit;color:inherit;border:0;background:transparent;cursor:pointer}.loading-indicator{color:#3e5a7c;font-size:12px;font-weight:400;text-transform:uppercase;overflow:visible;position:absolute;top:50%;left:50%;transform:translate(-50%, -50%)}.loading-indicator span{display:block;float:left;margin-left:50%;transform:translateX(-50%);margin:82px 0 0 50%;white-space:nowrap}.loading-indicator__figure{position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);width:42px;height:42px;box-sizing:border-box;background-color:transparent;border:0 solid #3e5a7c;border-width:6px;border-radius:50%}.no-reduce-motion .loading-indicator span{animation:loader-label 1.15s infinite cubic-bezier(0.215, 0.61, 0.355, 1)}.no-reduce-motion .loading-indicator__figure{animation:loader-figure 1.15s infinite cubic-bezier(0.215, 0.61, 0.355, 1)}@keyframes spring-rotate-in{0%{transform:rotate(0deg)}30%{transform:rotate(-484.8deg)}60%{transform:rotate(-316.7deg)}90%{transform:rotate(-375deg)}100%{transform:rotate(-360deg)}}@keyframes spring-rotate-out{0%{transform:rotate(-360deg)}30%{transform:rotate(124.8deg)}60%{transform:rotate(-43.27deg)}90%{transform:rotate(15deg)}100%{transform:rotate(0deg)}}@keyframes loader-figure{0%{width:0;height:0;background-color:#3e5a7c}29%{background-color:#3e5a7c}30%{width:42px;height:42px;background-color:transparent;border-width:21px;opacity:1}100%{width:42px;height:42px;border-width:0;opacity:0;background-color:transparent}}@keyframes loader-label{0%{opacity:.25}30%{opacity:1}100%{opacity:.25}}.spoiler-button{top:0;left:0;width:100%;height:100%;position:absolute;z-index:100}.spoiler-button--minified{display:flex;left:4px;top:4px;width:auto;height:auto;align-items:center}.spoiler-button--click-thru{pointer-events:none}.spoiler-button--hidden{display:none}.spoiler-button__overlay{display:block;background:transparent;width:100%;height:100%;border:0}.spoiler-button__overlay__label{display:inline-block;background:rgba(0,0,0,.5);border-radius:8px;padding:8px 12px;color:#fff;font-weight:500;font-size:14px}.spoiler-button__overlay:hover .spoiler-button__overlay__label,.spoiler-button__overlay:focus .spoiler-button__overlay__label,.spoiler-button__overlay:active .spoiler-button__overlay__label{background:rgba(0,0,0,.8)}.spoiler-button__overlay:disabled .spoiler-button__overlay__label{background:rgba(0,0,0,.5)}.setting-toggle{display:block;line-height:24px}.setting-toggle__label,.setting-radio__label,.setting-meta__label{color:#9baec8;display:inline-block;margin-bottom:14px;margin-left:8px;vertical-align:middle}.setting-radio{display:block;line-height:18px}.setting-radio__label{margin-bottom:0}.column-settings__row legend{color:#9baec8;cursor:default;display:block;font-weight:500;margin-top:10px}.setting-radio__input{vertical-align:middle}.setting-meta__label{float:right}@keyframes heartbeat{from{transform:scale(1);transform-origin:center center;animation-timing-function:ease-out}10%{transform:scale(0.91);animation-timing-function:ease-in}17%{transform:scale(0.98);animation-timing-function:ease-out}33%{transform:scale(0.87);animation-timing-function:ease-in}45%{transform:scale(1);animation-timing-function:ease-out}}.pulse-loading{animation:heartbeat 1.5s ease-in-out infinite both}.upload-area{align-items:center;background:rgba(0,0,0,.8);display:flex;height:100%;justify-content:center;left:0;opacity:0;position:absolute;top:0;visibility:hidden;width:100%;z-index:2000}.upload-area *{pointer-events:none}.upload-area__drop{width:320px;height:160px;display:flex;box-sizing:border-box;position:relative;padding:8px}.upload-area__background{position:absolute;top:0;right:0;bottom:0;left:0;z-index:-1;border-radius:4px;background:#121a24;box-shadow:0 0 5px rgba(0,0,0,.2)}.upload-area__content{flex:1;display:flex;align-items:center;justify-content:center;color:#d9e1e8;font-size:18px;font-weight:500;border:2px dashed #3e5a7c;border-radius:4px}.dropdown--active .emoji-button img{opacity:1;filter:none}.loading-bar{background-color:#d8a070;height:3px;position:absolute;top:0;left:0;z-index:9999}.icon-badge-wrapper{position:relative}.icon-badge{position:absolute;display:block;right:-0.25em;top:-0.25em;background-color:#d8a070;border-radius:50%;font-size:75%;width:1em;height:1em}.conversation{display:flex;border-bottom:1px solid #202e3f;padding:5px;padding-bottom:0}.conversation:focus{background:#151f2b;outline:0}.conversation__avatar{flex:0 0 auto;padding:10px;padding-top:12px;position:relative;cursor:pointer}.conversation__unread{display:inline-block;background:#d8a070;border-radius:50%;width:.625rem;height:.625rem;margin:-0.1ex .15em .1ex}.conversation__content{flex:1 1 auto;padding:10px 5px;padding-right:15px;overflow:hidden}.conversation__content__info{overflow:hidden;display:flex;flex-direction:row-reverse;justify-content:space-between}.conversation__content__relative-time{font-size:15px;color:#9baec8;padding-left:15px}.conversation__content__names{color:#9baec8;font-size:15px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-bottom:4px;flex-basis:90px;flex-grow:1}.conversation__content__names a{color:#fff;text-decoration:none}.conversation__content__names a:hover,.conversation__content__names a:focus,.conversation__content__names a:active{text-decoration:underline}.conversation__content .status__content{margin:0}.conversation--unread{background:#151f2b}.conversation--unread:focus{background:#192432}.conversation--unread .conversation__content__info{font-weight:700}.conversation--unread .conversation__content__relative-time{color:#fff}.ui .flash-message{margin-top:10px;margin-left:auto;margin-right:auto;margin-bottom:0;min-width:75%}::-webkit-scrollbar-thumb{border-radius:0}noscript{text-align:center}noscript img{width:200px;opacity:.5;animation:flicker 4s infinite}noscript div{font-size:14px;margin:30px auto;color:#d9e1e8;max-width:400px}noscript div a{color:#d8a070;text-decoration:underline}noscript div a:hover{text-decoration:none}noscript div a{word-break:break-word}@keyframes flicker{0%{opacity:1}30%{opacity:.75}100%{opacity:1}}button.icon-button i.fa-retweet{background-image:url(\"data:image/svg+xml;utf8,\")}button.icon-button i.fa-retweet:hover{background-image:url(\"data:image/svg+xml;utf8,\")}button.icon-button.disabled i.fa-retweet,button.icon-button.disabled i.fa-retweet:hover{background-image:url(\"data:image/svg+xml;utf8,\")}.status-direct button.icon-button.disabled i.fa-retweet,.status-direct button.icon-button.disabled i.fa-retweet:hover{background-image:url(\"data:image/svg+xml;utf8,\")}.account{padding:10px;border-bottom:1px solid #202e3f;color:inherit;text-decoration:none}.account .account__display-name{flex:1 1 auto;display:block;color:#9baec8;overflow:hidden;text-decoration:none;font-size:14px}.account.small{border:none;padding:0}.account.small>.account__avatar-wrapper{margin:0 8px 0 0}.account.small>.display-name{height:24px;line-height:24px}.account__wrapper{display:flex}.account__avatar-wrapper{float:left;margin-left:12px;margin-right:12px}.account__avatar{border-radius:8%;background-position:50%;background-clip:padding-box;position:relative;cursor:pointer}.account__avatar-inline{display:inline-block;vertical-align:middle;margin-right:5px}.account__avatar-composite{border-radius:8%;background-position:50%;background-clip:padding-box;overflow:hidden;position:relative}.account__avatar-composite div{border-radius:8%;background-position:50%;background-clip:padding-box;float:left;position:relative;box-sizing:border-box}.account__avatar-composite__label{display:block;position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);color:#fff;text-shadow:1px 1px 2px #000;font-weight:700;font-size:15px}.account__avatar-overlay{position:relative;width:48px;height:48px;background-size:48px 48px}.account__avatar-overlay-base{border-radius:8%;background-position:50%;background-clip:padding-box;width:36px;height:36px;background-size:36px 36px}.account__avatar-overlay-overlay{border-radius:8%;background-position:50%;background-clip:padding-box;width:24px;height:24px;background-size:24px 24px;position:absolute;bottom:0;right:0;z-index:1}.account__relationship{height:18px;padding:10px;white-space:nowrap}.account__header__wrapper{flex:0 0 auto;background:#192432}.account__disclaimer{padding:10px;color:#3e5a7c}.account__disclaimer strong{font-weight:500}.account__disclaimer strong:lang(ja){font-weight:700}.account__disclaimer strong:lang(ko){font-weight:700}.account__disclaimer strong:lang(zh-CN){font-weight:700}.account__disclaimer strong:lang(zh-HK){font-weight:700}.account__disclaimer strong:lang(zh-TW){font-weight:700}.account__disclaimer a{font-weight:500;color:inherit;text-decoration:underline}.account__disclaimer a:hover,.account__disclaimer a:focus,.account__disclaimer a:active{text-decoration:none}.account__action-bar{border-top:1px solid #202e3f;border-bottom:1px solid #202e3f;line-height:36px;overflow:hidden;flex:0 0 auto;display:flex}.account__action-bar-links{display:flex;flex:1 1 auto;line-height:18px;text-align:center}.account__action-bar__tab{text-decoration:none;overflow:hidden;flex:0 1 100%;border-left:1px solid #202e3f;padding:10px 0;border-bottom:4px solid transparent}.account__action-bar__tab:first-child{border-left:0}.account__action-bar__tab.active{border-bottom:4px solid #d8a070}.account__action-bar__tab>span{display:block;text-transform:uppercase;font-size:11px;color:#9baec8}.account__action-bar__tab strong{display:block;font-size:15px;font-weight:500;color:#fff}.account__action-bar__tab strong:lang(ja){font-weight:700}.account__action-bar__tab strong:lang(ko){font-weight:700}.account__action-bar__tab strong:lang(zh-CN){font-weight:700}.account__action-bar__tab strong:lang(zh-HK){font-weight:700}.account__action-bar__tab strong:lang(zh-TW){font-weight:700}.account__action-bar__tab abbr{color:#d8a070}.account-authorize{padding:14px 10px}.account-authorize .detailed-status__display-name{display:block;margin-bottom:15px;overflow:hidden}.account-authorize__avatar{float:left;margin-right:10px}.notification__message{margin-left:42px;padding:8px 0 0 26px;cursor:default;color:#9baec8;font-size:15px;position:relative}.notification__message .fa{color:#d8a070}.notification__message>span{display:block;overflow:hidden;text-overflow:ellipsis}.account--panel{background:#192432;border-top:1px solid #202e3f;border-bottom:1px solid #202e3f;display:flex;flex-direction:row;padding:10px 0}.account--panel__button,.detailed-status__button{flex:1 1 auto;text-align:center}.column-settings__outer{background:#202e3f;padding:15px}.column-settings__section{color:#9baec8;cursor:default;display:block;font-weight:500;margin-bottom:10px}.column-settings__hashtags .column-settings__row{margin-bottom:15px}.column-settings__hashtags .column-select__control{outline:0;box-sizing:border-box;width:100%;border:none;box-shadow:none;font-family:inherit;background:#121a24;color:#9baec8;font-size:14px;margin:0}.column-settings__hashtags .column-select__control::placeholder{color:#a8b9cf}.column-settings__hashtags .column-select__control::-moz-focus-inner{border:0}.column-settings__hashtags .column-select__control::-moz-focus-inner,.column-settings__hashtags .column-select__control:focus,.column-settings__hashtags .column-select__control:active{outline:0 !important}.column-settings__hashtags .column-select__control:focus{background:#192432}@media screen and (max-width: 600px){.column-settings__hashtags .column-select__control{font-size:16px}}.column-settings__hashtags .column-select__placeholder{color:#3e5a7c;padding-left:2px;font-size:12px}.column-settings__hashtags .column-select__value-container{padding-left:6px}.column-settings__hashtags .column-select__multi-value{background:#202e3f}.column-settings__hashtags .column-select__multi-value__remove{cursor:pointer}.column-settings__hashtags .column-select__multi-value__remove:hover,.column-settings__hashtags .column-select__multi-value__remove:active,.column-settings__hashtags .column-select__multi-value__remove:focus{background:#26374d;color:#a8b9cf}.column-settings__hashtags .column-select__multi-value__label,.column-settings__hashtags .column-select__input{color:#9baec8}.column-settings__hashtags .column-select__clear-indicator,.column-settings__hashtags .column-select__dropdown-indicator{cursor:pointer;transition:none;color:#3e5a7c}.column-settings__hashtags .column-select__clear-indicator:hover,.column-settings__hashtags .column-select__clear-indicator:active,.column-settings__hashtags .column-select__clear-indicator:focus,.column-settings__hashtags .column-select__dropdown-indicator:hover,.column-settings__hashtags .column-select__dropdown-indicator:active,.column-settings__hashtags .column-select__dropdown-indicator:focus{color:#45648a}.column-settings__hashtags .column-select__indicator-separator{background-color:#202e3f}.column-settings__hashtags .column-select__menu{background:#fff;border-radius:4px;padding:10px 14px;padding-bottom:14px;margin-top:10px;color:#9baec8;box-shadow:2px 4px 15px rgba(0,0,0,.4);padding:0;background:#d9e1e8}.column-settings__hashtags .column-select__menu h4{text-transform:uppercase;color:#9baec8;font-size:13px;font-weight:500;margin-bottom:10px}.column-settings__hashtags .column-select__menu li{padding:4px 0}.column-settings__hashtags .column-select__menu ul{margin-bottom:10px}.column-settings__hashtags .column-select__menu em{font-weight:500;color:#121a24}.column-settings__hashtags .column-select__menu-list{padding:6px}.column-settings__hashtags .column-select__option{color:#121a24;border-radius:4px;font-size:14px}.column-settings__hashtags .column-select__option--is-focused,.column-settings__hashtags .column-select__option--is-selected{background:#b9c8d5}.column-settings__row .text-btn{margin-bottom:15px}.relationship-tag{color:#fff;margin-bottom:4px;display:block;vertical-align:top;background-color:#000;text-transform:uppercase;font-size:11px;font-weight:500;padding:4px;border-radius:4px;opacity:.7}.relationship-tag:hover{opacity:1}.account-gallery__container{display:flex;flex-wrap:wrap;padding:4px 2px}.account-gallery__item{border:none;box-sizing:border-box;display:block;position:relative;border-radius:4px;overflow:hidden;margin:2px}.account-gallery__item__icons{position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);font-size:24px}.notification__filter-bar,.account__section-headline{background:#0b1016;border-bottom:1px solid #202e3f;cursor:default;display:flex;flex-shrink:0}.notification__filter-bar button,.account__section-headline button{background:#0b1016;border:0;margin:0}.notification__filter-bar button,.notification__filter-bar a,.account__section-headline button,.account__section-headline a{display:block;flex:1 1 auto;color:#9baec8;padding:15px 0;font-size:14px;font-weight:500;text-align:center;text-decoration:none;position:relative}.notification__filter-bar button.active,.notification__filter-bar a.active,.account__section-headline button.active,.account__section-headline a.active{color:#d9e1e8}.notification__filter-bar button.active::before,.notification__filter-bar button.active::after,.notification__filter-bar a.active::before,.notification__filter-bar a.active::after,.account__section-headline button.active::before,.account__section-headline button.active::after,.account__section-headline a.active::before,.account__section-headline a.active::after{display:block;content:\"\";position:absolute;bottom:0;left:50%;width:0;height:0;transform:translateX(-50%);border-style:solid;border-width:0 10px 10px;border-color:transparent transparent #202e3f}.notification__filter-bar button.active::after,.notification__filter-bar a.active::after,.account__section-headline button.active::after,.account__section-headline a.active::after{bottom:-1px;border-color:transparent transparent #121a24}.notification__filter-bar.directory__section-headline,.account__section-headline.directory__section-headline{background:#0f151d;border-bottom-color:transparent}.notification__filter-bar.directory__section-headline a.active::before,.notification__filter-bar.directory__section-headline button.active::before,.account__section-headline.directory__section-headline a.active::before,.account__section-headline.directory__section-headline button.active::before{display:none}.notification__filter-bar.directory__section-headline a.active::after,.notification__filter-bar.directory__section-headline button.active::after,.account__section-headline.directory__section-headline a.active::after,.account__section-headline.directory__section-headline button.active::after{border-color:transparent transparent #06090c}.account__moved-note{padding:14px 10px;padding-bottom:16px;background:#192432;border-top:1px solid #202e3f;border-bottom:1px solid #202e3f}.account__moved-note__message{position:relative;margin-left:58px;color:#3e5a7c;padding:8px 0;padding-top:0;padding-bottom:4px;font-size:14px}.account__moved-note__message>span{display:block;overflow:hidden;text-overflow:ellipsis}.account__moved-note__icon-wrapper{left:-26px;position:absolute}.account__moved-note .detailed-status__display-avatar{position:relative}.account__moved-note .detailed-status__display-name{margin-bottom:0}.account__header__content{color:#9baec8;font-size:14px;font-weight:400;overflow:hidden;word-break:normal;word-wrap:break-word}.account__header__content p{margin-bottom:20px}.account__header__content p:last-child{margin-bottom:0}.account__header__content a{color:inherit;text-decoration:underline}.account__header__content a:hover{text-decoration:none}.account__header{overflow:hidden}.account__header.inactive{opacity:.5}.account__header.inactive .account__header__image,.account__header.inactive .account__avatar{filter:grayscale(100%)}.account__header__info{position:absolute;top:10px;left:10px}.account__header__image{overflow:hidden;height:145px;position:relative;background:#0b1016}.account__header__image img{object-fit:cover;display:block;width:100%;height:100%;margin:0}.account__header__bar{position:relative;background:#192432;padding:5px;border-bottom:1px solid #26374d}.account__header__bar .avatar{display:block;flex:0 0 auto;width:94px;margin-left:-2px}.account__header__bar .avatar .account__avatar{background:#040609;border:2px solid #192432}.account__header__tabs{display:flex;align-items:flex-start;padding:7px 5px;margin-top:-55px}.account__header__tabs__buttons{display:flex;align-items:center;padding-top:55px;overflow:hidden}.account__header__tabs__buttons .icon-button{border:1px solid #26374d;border-radius:4px;box-sizing:content-box;padding:2px}.account__header__tabs__buttons .button{margin:0 8px}.account__header__tabs__name{padding:5px}.account__header__tabs__name .account-role{vertical-align:top}.account__header__tabs__name .emojione{width:22px;height:22px}.account__header__tabs__name h1{font-size:16px;line-height:24px;color:#fff;font-weight:500;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.account__header__tabs__name h1 small{display:block;font-size:14px;color:#9baec8;font-weight:400;overflow:hidden;text-overflow:ellipsis}.account__header__tabs .spacer{flex:1 1 auto}.account__header__bio{overflow:hidden;margin:0 -5px}.account__header__bio .account__header__content{padding:20px 15px;padding-bottom:5px;color:#fff}.account__header__bio .account__header__fields{margin:0;border-top:1px solid #26374d}.account__header__bio .account__header__fields a{color:#e1b590}.account__header__bio .account__header__fields dl:first-child .verified{border-radius:0 4px 0 0}.account__header__bio .account__header__fields .verified a{color:#79bd9a}.account__header__extra{margin-top:4px}.account__header__extra__links{font-size:14px;color:#9baec8;padding:10px 0}.account__header__extra__links a{display:inline-block;color:#9baec8;text-decoration:none;padding:5px 10px;font-weight:500}.account__header__extra__links a strong{font-weight:700;color:#fff}.domain{padding:10px;border-bottom:1px solid #202e3f}.domain .domain__domain-name{flex:1 1 auto;display:block;color:#fff;text-decoration:none;font-size:14px;font-weight:500}.domain__wrapper{display:flex}.domain_buttons{height:18px;padding:10px;white-space:nowrap}@keyframes spring-flip-in{0%{transform:rotate(0deg)}30%{transform:rotate(-242.4deg)}60%{transform:rotate(-158.35deg)}90%{transform:rotate(-187.5deg)}100%{transform:rotate(-180deg)}}@keyframes spring-flip-out{0%{transform:rotate(-180deg)}30%{transform:rotate(62.4deg)}60%{transform:rotate(-21.635deg)}90%{transform:rotate(7.5deg)}100%{transform:rotate(0deg)}}.status__content--with-action{cursor:pointer}.status__content{position:relative;margin:10px 0;font-size:15px;line-height:20px;word-wrap:break-word;font-weight:400;overflow:visible;padding-top:5px}.status__content:focus{outline:0}.status__content .emojione{width:20px;height:20px;margin:-3px 0 0}.status__content img{max-width:100%;max-height:400px;object-fit:contain}.status__content p,.status__content pre,.status__content blockquote{margin-bottom:20px;white-space:pre-wrap}.status__content p:last-child,.status__content pre:last-child,.status__content blockquote:last-child{margin-bottom:0}.status__content .status__content__text,.status__content .e-content{overflow:hidden}.status__content .status__content__text>ul,.status__content .status__content__text>ol,.status__content .e-content>ul,.status__content .e-content>ol{margin-bottom:20px}.status__content .status__content__text h1,.status__content .status__content__text h2,.status__content .status__content__text h3,.status__content .status__content__text h4,.status__content .status__content__text h5,.status__content .e-content h1,.status__content .e-content h2,.status__content .e-content h3,.status__content .e-content h4,.status__content .e-content h5{margin-top:20px;margin-bottom:20px}.status__content .status__content__text h1,.status__content .status__content__text h2,.status__content .e-content h1,.status__content .e-content h2{font-weight:700;font-size:1.2em}.status__content .status__content__text h2,.status__content .e-content h2{font-size:1.1em}.status__content .status__content__text h3,.status__content .status__content__text h4,.status__content .status__content__text h5,.status__content .e-content h3,.status__content .e-content h4,.status__content .e-content h5{font-weight:500}.status__content .status__content__text blockquote,.status__content .e-content blockquote{padding-left:10px;border-left:3px solid #9baec8;color:#9baec8;white-space:normal}.status__content .status__content__text blockquote p:last-child,.status__content .e-content blockquote p:last-child{margin-bottom:0}.status__content .status__content__text b,.status__content .status__content__text strong,.status__content .e-content b,.status__content .e-content strong{font-weight:700}.status__content .status__content__text em,.status__content .status__content__text i,.status__content .e-content em,.status__content .e-content i{font-style:italic}.status__content .status__content__text sub,.status__content .e-content sub{font-size:smaller;text-align:sub}.status__content .status__content__text sup,.status__content .e-content sup{font-size:smaller;vertical-align:super}.status__content .status__content__text ul,.status__content .status__content__text ol,.status__content .e-content ul,.status__content .e-content ol{margin-left:1em}.status__content .status__content__text ul p,.status__content .status__content__text ol p,.status__content .e-content ul p,.status__content .e-content ol p{margin:0}.status__content .status__content__text ul,.status__content .e-content ul{list-style-type:disc}.status__content .status__content__text ol,.status__content .e-content ol{list-style-type:decimal}.status__content a{color:#d8a070;text-decoration:none}.status__content a:hover{text-decoration:underline}.status__content a:hover .fa{color:#4a6b94}.status__content a.mention:hover{text-decoration:none}.status__content a.mention:hover span{text-decoration:underline}.status__content a .fa{color:#3e5a7c}.status__content .status__content__spoiler{display:none}.status__content .status__content__spoiler.status__content__spoiler--visible{display:block}.status__content a.unhandled-link{color:#e1b590}.status__content a.unhandled-link .link-origin-tag{color:#ca8f04;font-size:.8em}.status__content .status__content__spoiler-link{background:#45648a}.status__content .status__content__spoiler-link:hover{background:#4a6b94;text-decoration:none}.status__content__spoiler-link{display:inline-block;border-radius:2px;background:#45648a;border:none;color:#121a24;font-weight:500;font-size:11px;padding:0 5px;text-transform:uppercase;line-height:inherit;cursor:pointer;vertical-align:bottom}.status__content__spoiler-link:hover{background:#4a6b94;text-decoration:none}.status__content__spoiler-link .status__content__spoiler-icon{display:inline-block;margin:0 0 0 5px;border-left:1px solid currentColor;padding:0 0 0 4px;font-size:16px;vertical-align:-2px}.notif-cleaning .status,.notif-cleaning .notification-follow,.notif-cleaning .notification-follow-request{padding-right:4.5rem}.status__wrapper--filtered{color:#3e5a7c;border:0;font-size:inherit;text-align:center;line-height:inherit;margin:0;padding:15px;box-sizing:border-box;width:100%;clear:both;border-bottom:1px solid #202e3f}.status__prepend-icon-wrapper{left:-26px;position:absolute}.notification-follow,.notification-follow-request{position:relative;border-bottom:1px solid #202e3f}.notification-follow .account,.notification-follow-request .account{border-bottom:0 none}.focusable:focus{outline:0;background:#192432}.focusable:focus.status.status-direct:not(.read){background:#26374d}.focusable:focus.status.status-direct:not(.read).muted{background:transparent}.focusable:focus .detailed-status,.focusable:focus .detailed-status__action-bar{background:#202e3f}.status{padding:10px 14px;position:relative;height:auto;border-bottom:1px solid #202e3f;cursor:default;opacity:1;animation:fade 150ms linear}@supports(-ms-overflow-style: -ms-autohiding-scrollbar){.status{padding-right:28px}}@keyframes fade{0%{opacity:0}100%{opacity:1}}.status .video-player,.status .audio-player{margin-top:8px}.status.status-direct:not(.read){background:#202e3f;border-bottom-color:#26374d}.status.light .status__relative-time{color:#3e5a7c}.status.light .status__display-name{color:#121a24}.status.light .display-name{color:#9baec8}.status.light .display-name strong{color:#121a24}.status.light .status__content{color:#121a24}.status.light .status__content a{color:#d8a070}.status.light .status__content a.status__content__spoiler-link{color:#fff;background:#9baec8}.status.light .status__content a.status__content__spoiler-link:hover{background:#b5c3d6}.status.collapsed{background-position:center;background-size:cover;user-select:none}.status.collapsed.has-background::before{display:block;position:absolute;left:0;right:0;top:0;bottom:0;background-image:linear-gradient(to bottom, rgba(0, 0, 0, 0.75), rgba(0, 0, 0, 0.65) 24px, rgba(0, 0, 0, 0.8));pointer-events:none;content:\"\"}.status.collapsed .display-name:hover .display-name__html{text-decoration:none}.status.collapsed .status__content{height:20px;overflow:hidden;text-overflow:ellipsis;padding-top:0}.status.collapsed .status__content:after{content:\"\";position:absolute;top:0;bottom:0;left:0;right:0;background:linear-gradient(rgba(18, 26, 36, 0), #121a24);pointer-events:none}.status.collapsed .status__content a:hover{text-decoration:none}.status.collapsed:focus>.status__content:after{background:linear-gradient(rgba(25, 36, 50, 0), #192432)}.status.collapsed.status-direct:not(.read)>.status__content:after{background:linear-gradient(rgba(32, 46, 63, 0), #202e3f)}.status.collapsed .notification__message{margin-bottom:0}.status.collapsed .status__info .notification__message>span{white-space:nowrap}.status .notification__message{margin:-10px 0px 10px 0}.notification-favourite .status.status-direct{background:transparent}.notification-favourite .status.status-direct .icon-button.disabled{color:#547aa9}.status__relative-time{display:inline-block;flex-grow:1;color:#3e5a7c;font-size:14px;text-align:right;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.status__display-name{color:#3e5a7c;overflow:hidden}.status__info__account .status__display-name{display:block;max-width:100%}.status__info{display:flex;justify-content:space-between;font-size:15px}.status__info>span{text-overflow:ellipsis;overflow:hidden}.status__info .notification__message>span{word-wrap:break-word}.status__info__icons{display:flex;align-items:center;height:1em;color:#3e5a7c}.status__info__icons .status__media-icon,.status__info__icons .status__visibility-icon,.status__info__icons .status__reply-icon{padding-left:2px;padding-right:2px}.status__info__icons .status__collapse-button.active>.fa-angle-double-up{transform:rotate(-180deg)}.no-reduce-motion .status__collapse-button.activate>.fa-angle-double-up{animation:spring-flip-in 1s linear}.no-reduce-motion .status__collapse-button.deactivate>.fa-angle-double-up{animation:spring-flip-out 1s linear}.status__info__account{display:flex;align-items:center;justify-content:flex-start}.status-check-box{border-bottom:1px solid #d9e1e8;display:flex}.status-check-box .status-check-box__status{margin:10px 0 10px 10px;flex:1;overflow:hidden}.status-check-box .status-check-box__status .media-gallery{max-width:250px}.status-check-box .status-check-box__status .status__content{padding:0;white-space:normal}.status-check-box .status-check-box__status .video-player,.status-check-box .status-check-box__status .audio-player{margin-top:8px;max-width:250px}.status-check-box .status-check-box__status .media-gallery__item-thumbnail{cursor:default}.status-check-box-toggle{align-items:center;display:flex;flex:0 0 auto;justify-content:center;padding:10px}.status__prepend{margin-top:-10px;margin-bottom:10px;margin-left:58px;color:#3e5a7c;padding:8px 0;padding-bottom:2px;font-size:14px;position:relative}.status__prepend .status__display-name strong{color:#3e5a7c}.status__prepend>span{display:block;overflow:hidden;text-overflow:ellipsis}.status__action-bar{align-items:center;display:flex;margin-top:8px}.status__action-bar__counter{display:inline-flex;margin-right:11px;align-items:center}.status__action-bar__counter .status__action-bar-button{margin-right:4px}.status__action-bar__counter__label{display:inline-block;width:14px;font-size:12px;font-weight:500;color:#3e5a7c}.status__action-bar-button{margin-right:18px}.status__action-bar-dropdown{height:23.15px;width:23.15px}.detailed-status__action-bar-dropdown{flex:1 1 auto;display:flex;align-items:center;justify-content:center;position:relative}.detailed-status{background:#192432;padding:14px 10px}.detailed-status--flex{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-start}.detailed-status--flex .status__content,.detailed-status--flex .detailed-status__meta{flex:100%}.detailed-status .status__content{font-size:19px;line-height:24px}.detailed-status .status__content .emojione{width:24px;height:24px;margin:-1px 0 0}.detailed-status .video-player,.detailed-status .audio-player{margin-top:8px}.detailed-status__meta{margin-top:15px;color:#3e5a7c;font-size:14px;line-height:18px}.detailed-status__action-bar{background:#192432;border-top:1px solid #202e3f;border-bottom:1px solid #202e3f;display:flex;flex-direction:row;padding:10px 0}.detailed-status__link{color:inherit;text-decoration:none}.detailed-status__favorites,.detailed-status__reblogs{display:inline-block;font-weight:500;font-size:12px;margin-left:6px}.status__display-name,.status__relative-time,.detailed-status__display-name,.detailed-status__datetime,.detailed-status__application,.account__display-name{text-decoration:none}.status__display-name strong,.account__display-name strong{color:#fff}.muted .emojione{opacity:.5}a.status__display-name:hover strong,.reply-indicator__display-name:hover strong,.detailed-status__display-name:hover strong,.account__display-name:hover strong{text-decoration:underline}.account__display-name strong{display:block;overflow:hidden;text-overflow:ellipsis}.detailed-status__application,.detailed-status__datetime{color:inherit}.detailed-status .button.logo-button{margin-bottom:15px}.detailed-status__display-name{color:#d9e1e8;display:block;line-height:24px;margin-bottom:15px;overflow:hidden}.detailed-status__display-name strong,.detailed-status__display-name span{display:block;text-overflow:ellipsis;overflow:hidden}.detailed-status__display-name strong{font-size:16px;color:#fff}.detailed-status__display-avatar{float:left;margin-right:10px}.status__avatar{flex:none;margin:0 10px 0 0;height:48px;width:48px}.muted .status__content,.muted .status__content p,.muted .status__content a,.muted .status__content__text{color:#3e5a7c}.muted .status__display-name strong{color:#3e5a7c}.muted .status__avatar{opacity:.5}.muted a.status__content__spoiler-link{background:#3e5a7c;color:#121a24}.muted a.status__content__spoiler-link:hover{background:#436187;text-decoration:none}.status__relative-time:hover,.detailed-status__datetime:hover{text-decoration:underline}.status-card{display:flex;font-size:14px;border:1px solid #202e3f;border-radius:4px;color:#3e5a7c;margin-top:14px;text-decoration:none;overflow:hidden}.status-card__actions{bottom:0;left:0;position:absolute;right:0;top:0;display:flex;justify-content:center;align-items:center}.status-card__actions>div{background:rgba(0,0,0,.6);border-radius:8px;padding:12px 9px;flex:0 0 auto;display:flex;justify-content:center;align-items:center}.status-card__actions button,.status-card__actions a{display:inline;color:#d9e1e8;background:transparent;border:0;padding:0 8px;text-decoration:none;font-size:18px;line-height:18px}.status-card__actions button:hover,.status-card__actions button:active,.status-card__actions button:focus,.status-card__actions a:hover,.status-card__actions a:active,.status-card__actions a:focus{color:#fff}.status-card__actions a{font-size:19px;position:relative;bottom:-1px}.status-card__actions a .fa,.status-card__actions a:hover .fa{color:inherit}a.status-card{cursor:pointer}a.status-card:hover{background:#202e3f}.status-card-photo{cursor:zoom-in;display:block;text-decoration:none;width:100%;height:auto;margin:0}.status-card-video iframe{width:100%;height:100%}.status-card__title{display:block;font-weight:500;margin-bottom:5px;color:#9baec8;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-decoration:none}.status-card__content{flex:1 1 auto;overflow:hidden;padding:14px 14px 14px 8px}.status-card__description{color:#9baec8}.status-card__host{display:block;margin-top:5px;font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.status-card__image{flex:0 0 100px;background:#202e3f;position:relative}.status-card__image>.fa{font-size:21px;position:absolute;transform-origin:50% 50%;top:50%;left:50%;transform:translate(-50%, -50%)}.status-card.horizontal{display:block}.status-card.horizontal .status-card__image{width:100%}.status-card.horizontal .status-card__image-image{border-radius:4px 4px 0 0}.status-card.horizontal .status-card__title{white-space:inherit}.status-card.compact{border-color:#192432}.status-card.compact.interactive{border:0}.status-card.compact .status-card__content{padding:8px;padding-top:10px}.status-card.compact .status-card__title{white-space:nowrap}.status-card.compact .status-card__image{flex:0 0 60px}a.status-card.compact:hover{background-color:#192432}.status-card__image-image{border-radius:4px 0 0 4px;display:block;margin:0;width:100%;height:100%;object-fit:cover;background-size:cover;background-position:center center}.attachment-list{display:flex;font-size:14px;border:1px solid #202e3f;border-radius:4px;margin-top:14px;overflow:hidden}.attachment-list__icon{flex:0 0 auto;color:#3e5a7c;padding:8px 18px;cursor:default;border-right:1px solid #202e3f;display:flex;flex-direction:column;align-items:center;justify-content:center;font-size:26px}.attachment-list__icon .fa{display:block}.attachment-list__list{list-style:none;padding:4px 0;padding-left:8px;display:flex;flex-direction:column;justify-content:center}.attachment-list__list li{display:block;padding:4px 0}.attachment-list__list a{text-decoration:none;color:#3e5a7c;font-weight:500}.attachment-list__list a:hover{text-decoration:underline}.attachment-list.compact{border:0;margin-top:4px}.attachment-list.compact .attachment-list__list{padding:0;display:block}.attachment-list.compact .fa{color:#3e5a7c}.status__wrapper--filtered__button{display:inline;color:#e1b590;border:0;background:transparent;padding:0;font-size:inherit;line-height:inherit}.status__wrapper--filtered__button:hover,.status__wrapper--filtered__button:active{text-decoration:underline}.modal-container--preloader{background:#202e3f}.modal-root{position:relative;transition:opacity .3s linear;will-change:opacity;z-index:9999}.modal-root__overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.7)}.modal-root__container{position:fixed;top:0;left:0;width:100%;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;align-content:space-around;z-index:9999;pointer-events:none;user-select:none}.modal-root__modal{pointer-events:auto;display:flex;z-index:9999}.onboarding-modal,.error-modal,.embed-modal{background:#d9e1e8;color:#121a24;border-radius:8px;overflow:hidden;display:flex;flex-direction:column}.onboarding-modal__pager{height:80vh;width:80vw;max-width:520px;max-height:470px}.onboarding-modal__pager .react-swipeable-view-container>div{width:100%;height:100%;box-sizing:border-box;display:none;flex-direction:column;align-items:center;justify-content:center;display:flex;user-select:text}.error-modal__body{height:80vh;width:80vw;max-width:520px;max-height:420px;position:relative}.error-modal__body>div{position:absolute;top:0;left:0;width:100%;height:100%;box-sizing:border-box;padding:25px;display:none;flex-direction:column;align-items:center;justify-content:center;display:flex;opacity:0;user-select:text}.error-modal__body{display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center}@media screen and (max-width: 550px){.onboarding-modal{width:100%;height:100%;border-radius:0}.onboarding-modal__pager{width:100%;height:auto;max-width:none;max-height:none;flex:1 1 auto}}.onboarding-modal__paginator,.error-modal__footer{flex:0 0 auto;background:#c0cdd9;display:flex;padding:25px}.onboarding-modal__paginator>div,.error-modal__footer>div{min-width:33px}.onboarding-modal__paginator .onboarding-modal__nav,.onboarding-modal__paginator .error-modal__nav,.error-modal__footer .onboarding-modal__nav,.error-modal__footer .error-modal__nav{color:#3e5a7c;border:0;font-size:14px;font-weight:500;padding:10px 25px;line-height:inherit;height:auto;margin:-10px;border-radius:4px;background-color:transparent}.onboarding-modal__paginator .onboarding-modal__nav:hover,.onboarding-modal__paginator .onboarding-modal__nav:focus,.onboarding-modal__paginator .onboarding-modal__nav:active,.onboarding-modal__paginator .error-modal__nav:hover,.onboarding-modal__paginator .error-modal__nav:focus,.onboarding-modal__paginator .error-modal__nav:active,.error-modal__footer .onboarding-modal__nav:hover,.error-modal__footer .onboarding-modal__nav:focus,.error-modal__footer .onboarding-modal__nav:active,.error-modal__footer .error-modal__nav:hover,.error-modal__footer .error-modal__nav:focus,.error-modal__footer .error-modal__nav:active{color:#37506f;background-color:#a6b9c9}.onboarding-modal__paginator .onboarding-modal__nav.onboarding-modal__done,.onboarding-modal__paginator .onboarding-modal__nav.onboarding-modal__next,.onboarding-modal__paginator .error-modal__nav.onboarding-modal__done,.onboarding-modal__paginator .error-modal__nav.onboarding-modal__next,.error-modal__footer .onboarding-modal__nav.onboarding-modal__done,.error-modal__footer .onboarding-modal__nav.onboarding-modal__next,.error-modal__footer .error-modal__nav.onboarding-modal__done,.error-modal__footer .error-modal__nav.onboarding-modal__next{color:#121a24}.onboarding-modal__paginator .onboarding-modal__nav.onboarding-modal__done:hover,.onboarding-modal__paginator .onboarding-modal__nav.onboarding-modal__done:focus,.onboarding-modal__paginator .onboarding-modal__nav.onboarding-modal__done:active,.onboarding-modal__paginator .onboarding-modal__nav.onboarding-modal__next:hover,.onboarding-modal__paginator .onboarding-modal__nav.onboarding-modal__next:focus,.onboarding-modal__paginator .onboarding-modal__nav.onboarding-modal__next:active,.onboarding-modal__paginator .error-modal__nav.onboarding-modal__done:hover,.onboarding-modal__paginator .error-modal__nav.onboarding-modal__done:focus,.onboarding-modal__paginator .error-modal__nav.onboarding-modal__done:active,.onboarding-modal__paginator .error-modal__nav.onboarding-modal__next:hover,.onboarding-modal__paginator .error-modal__nav.onboarding-modal__next:focus,.onboarding-modal__paginator .error-modal__nav.onboarding-modal__next:active,.error-modal__footer .onboarding-modal__nav.onboarding-modal__done:hover,.error-modal__footer .onboarding-modal__nav.onboarding-modal__done:focus,.error-modal__footer .onboarding-modal__nav.onboarding-modal__done:active,.error-modal__footer .onboarding-modal__nav.onboarding-modal__next:hover,.error-modal__footer .onboarding-modal__nav.onboarding-modal__next:focus,.error-modal__footer .onboarding-modal__nav.onboarding-modal__next:active,.error-modal__footer .error-modal__nav.onboarding-modal__done:hover,.error-modal__footer .error-modal__nav.onboarding-modal__done:focus,.error-modal__footer .error-modal__nav.onboarding-modal__done:active,.error-modal__footer .error-modal__nav.onboarding-modal__next:hover,.error-modal__footer .error-modal__nav.onboarding-modal__next:focus,.error-modal__footer .error-modal__nav.onboarding-modal__next:active{color:#192432}.error-modal__footer{justify-content:center}.onboarding-modal__dots{flex:1 1 auto;display:flex;align-items:center;justify-content:center}.onboarding-modal__dot{width:14px;height:14px;border-radius:14px;background:#a6b9c9;margin:0 3px;cursor:pointer}.onboarding-modal__dot:hover{background:#a0b4c5}.onboarding-modal__dot.active{cursor:default;background:#8da5ba}.onboarding-modal__page__wrapper{pointer-events:none;padding:25px;padding-bottom:0}.onboarding-modal__page__wrapper.onboarding-modal__page__wrapper--active{pointer-events:auto}.onboarding-modal__page{cursor:default;line-height:21px}.onboarding-modal__page h1{font-size:18px;font-weight:500;color:#121a24;margin-bottom:20px}.onboarding-modal__page a{color:#d8a070}.onboarding-modal__page a:hover,.onboarding-modal__page a:focus,.onboarding-modal__page a:active{color:#dcab80}.onboarding-modal__page .navigation-bar a{color:inherit}.onboarding-modal__page p{font-size:16px;color:#3e5a7c;margin-top:10px;margin-bottom:10px}.onboarding-modal__page p:last-child{margin-bottom:0}.onboarding-modal__page p strong{font-weight:500;background:#121a24;color:#d9e1e8;border-radius:4px;font-size:14px;padding:3px 6px}.onboarding-modal__page p strong:lang(ja){font-weight:700}.onboarding-modal__page p strong:lang(ko){font-weight:700}.onboarding-modal__page p strong:lang(zh-CN){font-weight:700}.onboarding-modal__page p strong:lang(zh-HK){font-weight:700}.onboarding-modal__page p strong:lang(zh-TW){font-weight:700}.onboarding-modal__page__wrapper-0{height:100%;padding:0}.onboarding-modal__page-one__lead{padding:65px;padding-top:45px;padding-bottom:0;margin-bottom:10px}.onboarding-modal__page-one__lead h1{font-size:26px;line-height:36px;margin-bottom:8px}.onboarding-modal__page-one__lead p{margin-bottom:0}.onboarding-modal__page-one__extra{padding-right:65px;padding-left:185px;text-align:center}.display-case{text-align:center;font-size:15px;margin-bottom:15px}.display-case__label{font-weight:500;color:#121a24;margin-bottom:5px;text-transform:uppercase;font-size:12px}.display-case__case{background:#121a24;color:#d9e1e8;font-weight:500;padding:10px;border-radius:4px}.onboarding-modal__page-two p,.onboarding-modal__page-three p,.onboarding-modal__page-four p,.onboarding-modal__page-five p{text-align:left}.onboarding-modal__page-two .figure,.onboarding-modal__page-three .figure,.onboarding-modal__page-four .figure,.onboarding-modal__page-five .figure{background:#040609;color:#d9e1e8;margin-bottom:20px;border-radius:4px;padding:10px;text-align:center;font-size:14px;box-shadow:1px 2px 6px rgba(0,0,0,.3)}.onboarding-modal__page-two .figure .onboarding-modal__image,.onboarding-modal__page-three .figure .onboarding-modal__image,.onboarding-modal__page-four .figure .onboarding-modal__image,.onboarding-modal__page-five .figure .onboarding-modal__image{border-radius:4px;margin-bottom:10px}.onboarding-modal__page-two .figure.non-interactive,.onboarding-modal__page-three .figure.non-interactive,.onboarding-modal__page-four .figure.non-interactive,.onboarding-modal__page-five .figure.non-interactive{pointer-events:none;text-align:left}.onboarding-modal__page-four__columns .row{display:flex;margin-bottom:20px}.onboarding-modal__page-four__columns .row>div{flex:1 1 0;margin:0 10px}.onboarding-modal__page-four__columns .row>div:first-child{margin-left:0}.onboarding-modal__page-four__columns .row>div:last-child{margin-right:0}.onboarding-modal__page-four__columns .row>div p{text-align:center}.onboarding-modal__page-four__columns .row:last-child{margin-bottom:0}.onboarding-modal__page-four__columns .column-header{color:#fff}@media screen and (max-width: 320px)and (max-height: 600px){.onboarding-modal__page p{font-size:14px;line-height:20px}.onboarding-modal__page-two .figure,.onboarding-modal__page-three .figure,.onboarding-modal__page-four .figure,.onboarding-modal__page-five .figure{font-size:12px;margin-bottom:10px}.onboarding-modal__page-four__columns .row{margin-bottom:10px}.onboarding-modal__page-four__columns .column-header{padding:5px;font-size:12px}}.onboard-sliders{display:inline-block;max-width:30px;max-height:auto;margin-left:10px}.boost-modal,.doodle-modal,.favourite-modal,.confirmation-modal,.report-modal,.actions-modal,.mute-modal,.block-modal{background:#f2f5f7;color:#121a24;border-radius:8px;overflow:hidden;max-width:90vw;width:480px;position:relative;flex-direction:column}.boost-modal .status__relative-time,.doodle-modal .status__relative-time,.favourite-modal .status__relative-time,.confirmation-modal .status__relative-time,.report-modal .status__relative-time,.actions-modal .status__relative-time,.mute-modal .status__relative-time,.block-modal .status__relative-time{color:#3e5a7c;float:right;font-size:14px;width:auto;margin:initial;padding:initial}.boost-modal .status__display-name,.doodle-modal .status__display-name,.favourite-modal .status__display-name,.confirmation-modal .status__display-name,.report-modal .status__display-name,.actions-modal .status__display-name,.mute-modal .status__display-name,.block-modal .status__display-name{display:flex}.boost-modal .status__avatar,.doodle-modal .status__avatar,.favourite-modal .status__avatar,.confirmation-modal .status__avatar,.report-modal .status__avatar,.actions-modal .status__avatar,.mute-modal .status__avatar,.block-modal .status__avatar{height:48px;width:48px}.boost-modal .status__content__spoiler-link,.doodle-modal .status__content__spoiler-link,.favourite-modal .status__content__spoiler-link,.confirmation-modal .status__content__spoiler-link,.report-modal .status__content__spoiler-link,.actions-modal .status__content__spoiler-link,.mute-modal .status__content__spoiler-link,.block-modal .status__content__spoiler-link{color:#f2f5f7}.actions-modal .status{background:#fff;border-bottom-color:#d9e1e8;padding-top:10px;padding-bottom:10px}.actions-modal .dropdown-menu__separator{border-bottom-color:#d9e1e8}.boost-modal__container,.favourite-modal__container{overflow-x:scroll;padding:10px}.boost-modal__container .status,.favourite-modal__container .status{user-select:text;border-bottom:0}.boost-modal__action-bar,.doodle-modal__action-bar,.favourite-modal__action-bar,.confirmation-modal__action-bar,.mute-modal__action-bar,.block-modal__action-bar{display:flex;justify-content:space-between;background:#d9e1e8;padding:10px;line-height:36px}.boost-modal__action-bar>div,.doodle-modal__action-bar>div,.favourite-modal__action-bar>div,.confirmation-modal__action-bar>div,.mute-modal__action-bar>div,.block-modal__action-bar>div{flex:1 1 auto;text-align:right;color:#3e5a7c;padding-right:10px}.boost-modal__action-bar .button,.doodle-modal__action-bar .button,.favourite-modal__action-bar .button,.confirmation-modal__action-bar .button,.mute-modal__action-bar .button,.block-modal__action-bar .button{flex:0 0 auto}.boost-modal__status-header,.favourite-modal__status-header{font-size:15px}.boost-modal__status-time,.favourite-modal__status-time{float:right;font-size:14px}.mute-modal,.block-modal{line-height:24px}.mute-modal .react-toggle,.block-modal .react-toggle{vertical-align:middle}.report-modal{width:90vw;max-width:700px}.report-modal__container{display:flex;border-top:1px solid #d9e1e8}@media screen and (max-width: 480px){.report-modal__container{flex-wrap:wrap;overflow-y:auto}}.report-modal__statuses,.report-modal__comment{box-sizing:border-box;width:50%}@media screen and (max-width: 480px){.report-modal__statuses,.report-modal__comment{width:100%}}.report-modal__statuses,.focal-point-modal__content{flex:1 1 auto;min-height:20vh;max-height:80vh;overflow-y:auto;overflow-x:hidden}.report-modal__statuses .status__content a,.focal-point-modal__content .status__content a{color:#d8a070}@media screen and (max-width: 480px){.report-modal__statuses,.focal-point-modal__content{max-height:10vh}}@media screen and (max-width: 480px){.focal-point-modal__content{max-height:40vh}}.report-modal__comment{padding:20px;border-right:1px solid #d9e1e8;max-width:320px}.report-modal__comment p{font-size:14px;line-height:20px;margin-bottom:20px}.report-modal__comment .setting-text{display:block;box-sizing:border-box;width:100%;margin:0;color:#121a24;background:#fff;padding:10px;font-family:inherit;font-size:14px;resize:none;border:0;outline:0;border-radius:4px;border:1px solid #d9e1e8;min-height:100px;max-height:50vh;margin-bottom:10px}.report-modal__comment .setting-text:focus{border:1px solid #c0cdd9}.report-modal__comment .setting-text__wrapper{background:#fff;border:1px solid #d9e1e8;margin-bottom:10px;border-radius:4px}.report-modal__comment .setting-text__wrapper .setting-text{border:0;margin-bottom:0;border-radius:0}.report-modal__comment .setting-text__wrapper .setting-text:focus{border:0}.report-modal__comment .setting-text__wrapper__modifiers{color:#121a24;font-family:inherit;font-size:14px;background:#fff}.report-modal__comment .setting-text__toolbar{display:flex;justify-content:space-between;margin-bottom:20px}.report-modal__comment .setting-text-label{display:block;color:#121a24;font-size:14px;font-weight:500;margin-bottom:10px}.report-modal__comment .setting-toggle{margin-top:20px;margin-bottom:24px}.report-modal__comment .setting-toggle__label{color:#121a24;font-size:14px}@media screen and (max-width: 480px){.report-modal__comment{padding:10px;max-width:100%;order:2}.report-modal__comment .setting-toggle{margin-bottom:4px}}.actions-modal{max-height:80vh;max-width:80vw}.actions-modal .status{overflow-y:auto;max-height:300px}.actions-modal strong{display:block;font-weight:500}.actions-modal .actions-modal__item-label{font-weight:500}.actions-modal ul{overflow-y:auto;flex-shrink:0;max-height:80vh}.actions-modal ul.with-status{max-height:calc(80vh - 75px)}.actions-modal ul li:empty{margin:0}.actions-modal ul li:not(:empty) a{color:#121a24;display:flex;padding:12px 16px;font-size:15px;align-items:center;text-decoration:none}.actions-modal ul li:not(:empty) a,.actions-modal ul li:not(:empty) a button{transition:none}.actions-modal ul li:not(:empty) a.active,.actions-modal ul li:not(:empty) a.active button,.actions-modal ul li:not(:empty) a:hover,.actions-modal ul li:not(:empty) a:hover button,.actions-modal ul li:not(:empty) a:active,.actions-modal ul li:not(:empty) a:active button,.actions-modal ul li:not(:empty) a:focus,.actions-modal ul li:not(:empty) a:focus button{background:#d8a070;color:#fff}.actions-modal ul li:not(:empty) a>.react-toggle,.actions-modal ul li:not(:empty) a>.icon,.actions-modal ul li:not(:empty) a button:first-child{margin-right:10px}.confirmation-modal__action-bar .confirmation-modal__secondary-button,.mute-modal__action-bar .confirmation-modal__secondary-button,.block-modal__action-bar .confirmation-modal__secondary-button{flex-shrink:1}.confirmation-modal__secondary-button,.confirmation-modal__cancel-button,.mute-modal__cancel-button,.block-modal__cancel-button{background-color:transparent;color:#3e5a7c;font-size:14px;font-weight:500}.confirmation-modal__secondary-button:hover,.confirmation-modal__secondary-button:focus,.confirmation-modal__secondary-button:active,.confirmation-modal__cancel-button:hover,.confirmation-modal__cancel-button:focus,.confirmation-modal__cancel-button:active,.mute-modal__cancel-button:hover,.mute-modal__cancel-button:focus,.mute-modal__cancel-button:active,.block-modal__cancel-button:hover,.block-modal__cancel-button:focus,.block-modal__cancel-button:active{color:#37506f;background-color:transparent}.confirmation-modal__do_not_ask_again{padding-left:20px;padding-right:20px;padding-bottom:10px;font-size:14px}.confirmation-modal__do_not_ask_again label,.confirmation-modal__do_not_ask_again input{vertical-align:middle}.confirmation-modal__container,.mute-modal__container,.block-modal__container,.report-modal__target{padding:30px;font-size:16px}.confirmation-modal__container strong,.mute-modal__container strong,.block-modal__container strong,.report-modal__target strong{font-weight:500}.confirmation-modal__container strong:lang(ja),.mute-modal__container strong:lang(ja),.block-modal__container strong:lang(ja),.report-modal__target strong:lang(ja){font-weight:700}.confirmation-modal__container strong:lang(ko),.mute-modal__container strong:lang(ko),.block-modal__container strong:lang(ko),.report-modal__target strong:lang(ko){font-weight:700}.confirmation-modal__container strong:lang(zh-CN),.mute-modal__container strong:lang(zh-CN),.block-modal__container strong:lang(zh-CN),.report-modal__target strong:lang(zh-CN){font-weight:700}.confirmation-modal__container strong:lang(zh-HK),.mute-modal__container strong:lang(zh-HK),.block-modal__container strong:lang(zh-HK),.report-modal__target strong:lang(zh-HK){font-weight:700}.confirmation-modal__container strong:lang(zh-TW),.mute-modal__container strong:lang(zh-TW),.block-modal__container strong:lang(zh-TW),.report-modal__target strong:lang(zh-TW){font-weight:700}.confirmation-modal__container,.report-modal__target{text-align:center}.block-modal__explanation,.mute-modal__explanation{margin-top:20px}.block-modal .setting-toggle,.mute-modal .setting-toggle{margin-top:20px;margin-bottom:24px;display:flex;align-items:center}.block-modal .setting-toggle__label,.mute-modal .setting-toggle__label{color:#121a24;margin:0;margin-left:8px}.report-modal__target{padding:15px}.report-modal__target .media-modal__close{top:14px;right:15px}.embed-modal{width:auto;max-width:80vw;max-height:80vh}.embed-modal h4{padding:30px;font-weight:500;font-size:16px;text-align:center}.embed-modal .embed-modal__container{padding:10px}.embed-modal .embed-modal__container .hint{margin-bottom:15px}.embed-modal .embed-modal__container .embed-modal__html{outline:0;box-sizing:border-box;display:block;width:100%;border:none;padding:10px;font-family:\"mastodon-font-monospace\",monospace;background:#121a24;color:#fff;font-size:14px;margin:0;margin-bottom:15px;border-radius:4px}.embed-modal .embed-modal__container .embed-modal__html::-moz-focus-inner{border:0}.embed-modal .embed-modal__container .embed-modal__html::-moz-focus-inner,.embed-modal .embed-modal__container .embed-modal__html:focus,.embed-modal .embed-modal__container .embed-modal__html:active{outline:0 !important}.embed-modal .embed-modal__container .embed-modal__html:focus{background:#192432}@media screen and (max-width: 600px){.embed-modal .embed-modal__container .embed-modal__html{font-size:16px}}.embed-modal .embed-modal__container .embed-modal__iframe{width:400px;max-width:100%;overflow:hidden;border:0;border-radius:4px}.focal-point{position:relative;cursor:move;overflow:hidden;height:100%;display:flex;justify-content:center;align-items:center;background:#000}.focal-point img,.focal-point video,.focal-point canvas{display:block;max-height:80vh;width:100%;height:auto;margin:0;object-fit:contain;background:#000}.focal-point__reticle{position:absolute;width:100px;height:100px;transform:translate(-50%, -50%);background:url(\"~images/reticle.png\") no-repeat 0 0;border-radius:50%;box-shadow:0 0 0 9999em rgba(0,0,0,.35)}.focal-point__overlay{position:absolute;width:100%;height:100%;top:0;left:0}.focal-point__preview{position:absolute;bottom:10px;right:10px;z-index:2;cursor:move;transition:opacity .1s ease}.focal-point__preview:hover{opacity:.5}.focal-point__preview strong{color:#fff;font-size:14px;font-weight:500;display:block;margin-bottom:5px}.focal-point__preview div{border-radius:4px;box-shadow:0 0 14px rgba(0,0,0,.2)}@media screen and (max-width: 480px){.focal-point img,.focal-point video{max-height:100%}.focal-point__preview{display:none}}.filtered-status-info{text-align:start}.filtered-status-info .spoiler__text{margin-top:20px}.filtered-status-info .account{border-bottom:0}.filtered-status-info .account__display-name strong{color:#121a24}.filtered-status-info .status__content__spoiler{display:none}.filtered-status-info .status__content__spoiler--visible{display:flex}.filtered-status-info ul{padding:10px;margin-left:12px;list-style:disc inside}.filtered-status-info .filtered-status-edit-link{color:#3e5a7c;text-decoration:none}.filtered-status-info .filtered-status-edit-link:hover{text-decoration:underline}.composer{padding:10px}.composer .emoji-picker-dropdown{position:absolute;top:0;right:0}.composer .emoji-picker-dropdown ::-webkit-scrollbar-track:hover,.composer .emoji-picker-dropdown ::-webkit-scrollbar-track:active{background-color:rgba(0,0,0,.3)}.character-counter{cursor:default;font-family:sans-serif,sans-serif;font-size:14px;font-weight:600;color:#3e5a7c}.character-counter.character-counter--over{color:#ff5050}.no-reduce-motion .composer--spoiler{transition:height .4s ease,opacity .4s ease}.composer--spoiler{height:0;transform-origin:bottom;opacity:0}.composer--spoiler.composer--spoiler--visible{height:36px;margin-bottom:11px;opacity:1}.composer--spoiler input{display:block;box-sizing:border-box;margin:0;border:none;border-radius:4px;padding:10px;width:100%;outline:0;color:#121a24;background:#fff;font-size:14px;font-family:inherit;resize:vertical}.composer--spoiler input::placeholder{color:#3e5a7c}.composer--spoiler input:focus{outline:0}@media screen and (max-width: 630px){.auto-columns .composer--spoiler input{font-size:16px}}.single-column .composer--spoiler input{font-size:16px}.composer--warning{color:#121a24;margin-bottom:15px;background:#9baec8;box-shadow:0 2px 6px rgba(0,0,0,.3);padding:8px 10px;border-radius:4px;font-size:13px;font-weight:400}.composer--warning a{color:#3e5a7c;font-weight:500;text-decoration:underline}.composer--warning a:active,.composer--warning a:focus,.composer--warning a:hover{text-decoration:none}.compose-form__sensitive-button{padding:10px;padding-top:0;font-size:14px;font-weight:500}.compose-form__sensitive-button.active{color:#d8a070}.compose-form__sensitive-button input[type=checkbox]{display:none}.compose-form__sensitive-button .checkbox{display:inline-block;position:relative;border:1px solid #9baec8;box-sizing:border-box;width:18px;height:18px;flex:0 0 auto;margin-left:5px;margin-right:10px;top:-1px;border-radius:4px;vertical-align:middle}.compose-form__sensitive-button .checkbox.active{border-color:#d8a070;background:#d8a070}.composer--reply{margin:0 0 10px;border-radius:4px;padding:10px;background:#9baec8;min-height:23px;overflow-y:auto;flex:0 2 auto}.composer--reply>header{margin-bottom:5px;overflow:hidden}.composer--reply>header>.account.small{color:#121a24}.composer--reply>header>.cancel{float:right;line-height:24px}.composer--reply>.content{position:relative;margin:10px 0;padding:0 12px;font-size:14px;line-height:20px;color:#121a24;word-wrap:break-word;font-weight:400;overflow:visible;white-space:pre-wrap;padding-top:5px;overflow:hidden}.composer--reply>.content p,.composer--reply>.content pre,.composer--reply>.content blockquote{margin-bottom:20px;white-space:pre-wrap}.composer--reply>.content p:last-child,.composer--reply>.content pre:last-child,.composer--reply>.content blockquote:last-child{margin-bottom:0}.composer--reply>.content h1,.composer--reply>.content h2,.composer--reply>.content h3,.composer--reply>.content h4,.composer--reply>.content h5{margin-top:20px;margin-bottom:20px}.composer--reply>.content h1,.composer--reply>.content h2{font-weight:700;font-size:18px}.composer--reply>.content h2{font-size:16px}.composer--reply>.content h3,.composer--reply>.content h4,.composer--reply>.content h5{font-weight:500}.composer--reply>.content blockquote{padding-left:10px;border-left:3px solid #121a24;color:#121a24;white-space:normal}.composer--reply>.content blockquote p:last-child{margin-bottom:0}.composer--reply>.content b,.composer--reply>.content strong{font-weight:700}.composer--reply>.content em,.composer--reply>.content i{font-style:italic}.composer--reply>.content sub{font-size:smaller;text-align:sub}.composer--reply>.content ul,.composer--reply>.content ol{margin-left:1em}.composer--reply>.content ul p,.composer--reply>.content ol p{margin:0}.composer--reply>.content ul{list-style-type:disc}.composer--reply>.content ol{list-style-type:decimal}.composer--reply>.content a{color:#3e5a7c;text-decoration:none}.composer--reply>.content a:hover{text-decoration:underline}.composer--reply>.content a.mention:hover{text-decoration:none}.composer--reply>.content a.mention:hover span{text-decoration:underline}.composer--reply .emojione{width:20px;height:20px;margin:-5px 0 0}.compose-form__autosuggest-wrapper,.autosuggest-input{position:relative;width:100%}.compose-form__autosuggest-wrapper label .autosuggest-textarea__textarea,.autosuggest-input label .autosuggest-textarea__textarea{display:block;box-sizing:border-box;margin:0;border:none;border-radius:4px 4px 0 0;padding:10px 32px 0 10px;width:100%;min-height:100px;outline:0;color:#121a24;background:#fff;font-size:14px;font-family:inherit;resize:none;scrollbar-color:initial}.compose-form__autosuggest-wrapper label .autosuggest-textarea__textarea::placeholder,.autosuggest-input label .autosuggest-textarea__textarea::placeholder{color:#3e5a7c}.compose-form__autosuggest-wrapper label .autosuggest-textarea__textarea::-webkit-scrollbar,.autosuggest-input label .autosuggest-textarea__textarea::-webkit-scrollbar{all:unset}.compose-form__autosuggest-wrapper label .autosuggest-textarea__textarea:disabled,.autosuggest-input label .autosuggest-textarea__textarea:disabled{background:#d9e1e8}.compose-form__autosuggest-wrapper label .autosuggest-textarea__textarea:focus,.autosuggest-input label .autosuggest-textarea__textarea:focus{outline:0}@media screen and (max-width: 630px){.auto-columns .compose-form__autosuggest-wrapper label .autosuggest-textarea__textarea,.auto-columns .autosuggest-input label .autosuggest-textarea__textarea{font-size:16px}}.single-column .compose-form__autosuggest-wrapper label .autosuggest-textarea__textarea,.single-column .autosuggest-input label .autosuggest-textarea__textarea{font-size:16px}@media screen and (max-width: 600px){.auto-columns .compose-form__autosuggest-wrapper label .autosuggest-textarea__textarea,.single-column .compose-form__autosuggest-wrapper label .autosuggest-textarea__textarea,.auto-columns .autosuggest-input label .autosuggest-textarea__textarea,.single-column .autosuggest-input label .autosuggest-textarea__textarea{height:100px !important;resize:vertical}}.composer--textarea--icons{display:block;position:absolute;top:29px;right:5px;bottom:5px;overflow:hidden}.composer--textarea--icons>.textarea_icon{display:block;margin:2px 0 0 2px;width:24px;height:24px;color:#3e5a7c;font-size:18px;line-height:24px;text-align:center;opacity:.8}.autosuggest-textarea__suggestions-wrapper{position:relative;height:0}.autosuggest-textarea__suggestions{display:block;position:absolute;box-sizing:border-box;top:100%;border-radius:0 0 4px 4px;padding:6px;width:100%;color:#121a24;background:#d9e1e8;box-shadow:4px 4px 6px rgba(0,0,0,.4);font-size:14px;z-index:99;display:none}.autosuggest-textarea__suggestions--visible{display:block}.autosuggest-textarea__suggestions__item{padding:10px;cursor:pointer;border-radius:4px}.autosuggest-textarea__suggestions__item:hover,.autosuggest-textarea__suggestions__item:focus,.autosuggest-textarea__suggestions__item:active,.autosuggest-textarea__suggestions__item.selected{background:#b9c8d5}.autosuggest-textarea__suggestions__item>.account,.autosuggest-textarea__suggestions__item>.emoji,.autosuggest-textarea__suggestions__item>.autosuggest-hashtag{display:flex;flex-direction:row;align-items:center;justify-content:flex-start;line-height:18px;font-size:14px}.autosuggest-textarea__suggestions__item .autosuggest-hashtag{justify-content:space-between}.autosuggest-textarea__suggestions__item .autosuggest-hashtag__name{flex:1 1 auto;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.autosuggest-textarea__suggestions__item .autosuggest-hashtag strong{font-weight:500}.autosuggest-textarea__suggestions__item .autosuggest-hashtag__uses{flex:0 0 auto;text-align:right;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.autosuggest-textarea__suggestions__item>.account.small .display-name>span{color:#3e5a7c}.composer--upload_form{overflow:hidden}.composer--upload_form>.content{display:flex;flex-direction:row;flex-wrap:wrap;font-family:inherit;padding:5px;overflow:hidden}.composer--upload_form--item{flex:1 1 0;margin:5px;min-width:40%}.composer--upload_form--item>div{position:relative;border-radius:4px;height:140px;width:100%;background-color:#000;background-position:center;background-size:cover;background-repeat:no-repeat;overflow:hidden}.composer--upload_form--item>div textarea{display:block;position:absolute;box-sizing:border-box;bottom:0;left:0;margin:0;border:0;padding:10px;width:100%;color:#d9e1e8;background:linear-gradient(0deg, rgba(0, 0, 0, 0.8) 0, rgba(0, 0, 0, 0.35) 80%, transparent);font-size:14px;font-family:inherit;font-weight:500;opacity:0;z-index:2;transition:opacity .1s ease}.composer--upload_form--item>div textarea:focus{color:#fff}.composer--upload_form--item>div textarea::placeholder{opacity:.54;color:#d9e1e8}.composer--upload_form--item>div>.close{mix-blend-mode:difference}.composer--upload_form--item.active>div textarea{opacity:1}.composer--upload_form--actions{background:linear-gradient(180deg, rgba(0, 0, 0, 0.8) 0, rgba(0, 0, 0, 0.35) 80%, transparent);display:flex;align-items:flex-start;justify-content:space-between;opacity:0;transition:opacity .1s ease}.composer--upload_form--actions .icon-button{flex:0 1 auto;color:#d9e1e8;font-size:14px;font-weight:500;padding:10px;font-family:inherit}.composer--upload_form--actions .icon-button:hover,.composer--upload_form--actions .icon-button:focus,.composer--upload_form--actions .icon-button:active{color:#e6ebf0}.composer--upload_form--actions.active{opacity:1}.composer--upload_form--progress{display:flex;padding:10px;color:#9baec8;overflow:hidden}.composer--upload_form--progress>.fa{font-size:34px;margin-right:10px}.composer--upload_form--progress>.message{flex:1 1 auto}.composer--upload_form--progress>.message>span{display:block;font-size:12px;font-weight:500;text-transform:uppercase}.composer--upload_form--progress>.message>.backdrop{position:relative;margin-top:5px;border-radius:6px;width:100%;height:6px;background:#3e5a7c}.composer--upload_form--progress>.message>.backdrop>.tracker{position:absolute;top:0;left:0;height:6px;border-radius:6px;background:#d8a070}.compose-form__modifiers{color:#121a24;font-family:inherit;font-size:14px;background:#fff}.composer--options-wrapper{padding:10px;background:#ebebeb;border-radius:0 0 4px 4px;height:27px;display:flex;justify-content:space-between;flex:0 0 auto}.composer--options{display:flex;flex:0 0 auto}.composer--options>*{display:inline-block;box-sizing:content-box;padding:0 3px;height:27px;line-height:27px;vertical-align:bottom}.composer--options>hr{display:inline-block;margin:0 3px;border-width:0 0 0 1px;border-style:none none none solid;border-color:transparent transparent transparent #c2c2c2;padding:0;width:0;height:27px;background:transparent}.compose--counter-wrapper{align-self:center;margin-right:4px}.composer--options--dropdown.open>.value{border-radius:4px 4px 0 0;box-shadow:0 -4px 4px rgba(0,0,0,.1);color:#fff;background:#d8a070;transition:none}.composer--options--dropdown.open.top>.value{border-radius:0 0 4px 4px;box-shadow:0 4px 4px rgba(0,0,0,.1)}.composer--options--dropdown--content{position:absolute;border-radius:4px;box-shadow:2px 4px 15px rgba(0,0,0,.4);background:#fff;overflow:hidden;transform-origin:50% 0}.composer--options--dropdown--content--item{display:flex;align-items:center;padding:10px;color:#121a24;cursor:pointer}.composer--options--dropdown--content--item>.content{flex:1 1 auto;color:#3e5a7c}.composer--options--dropdown--content--item>.content:not(:first-child){margin-left:10px}.composer--options--dropdown--content--item>.content strong{display:block;color:#121a24;font-weight:500}.composer--options--dropdown--content--item:hover,.composer--options--dropdown--content--item.active{background:#d8a070;color:#fff}.composer--options--dropdown--content--item:hover>.content,.composer--options--dropdown--content--item.active>.content{color:#fff}.composer--options--dropdown--content--item:hover>.content strong,.composer--options--dropdown--content--item.active>.content strong{color:#fff}.composer--options--dropdown--content--item.active:hover{background:#dcab80}.composer--publisher{padding-top:10px;text-align:right;white-space:nowrap;overflow:hidden;justify-content:flex-end;flex:0 0 auto}.composer--publisher>.primary{display:inline-block;margin:0;padding:0 10px;text-align:center}.composer--publisher>.side_arm{display:inline-block;margin:0 2px;padding:0;width:36px;text-align:center}.composer--publisher.over>.count{color:#ff5050}.column__wrapper{display:flex;flex:1 1 auto;position:relative}.columns-area{display:flex;flex:1 1 auto;flex-direction:row;justify-content:flex-start;overflow-x:auto;position:relative}.columns-area__panels{display:flex;justify-content:center;width:100%;height:100%;min-height:100vh}.columns-area__panels__pane{height:100%;overflow:hidden;pointer-events:none;display:flex;justify-content:flex-end;min-width:285px}.columns-area__panels__pane--start{justify-content:flex-start}.columns-area__panels__pane__inner{position:fixed;width:285px;pointer-events:auto;height:100%}.columns-area__panels__main{box-sizing:border-box;width:100%;max-width:600px;flex:0 0 auto;display:flex;flex-direction:column}@media screen and (min-width: 415px){.columns-area__panels__main{padding:0 10px}}.tabs-bar__wrapper{background:#040609;position:sticky;top:0;z-index:2;padding-top:0}@media screen and (min-width: 415px){.tabs-bar__wrapper{padding-top:10px}}.tabs-bar__wrapper .tabs-bar{margin-bottom:0}@media screen and (min-width: 415px){.tabs-bar__wrapper .tabs-bar{margin-bottom:10px}}.react-swipeable-view-container,.react-swipeable-view-container .columns-area,.react-swipeable-view-container .column{height:100%}.react-swipeable-view-container>*{display:flex;align-items:center;justify-content:center;height:100%}.column{width:330px;position:relative;box-sizing:border-box;display:flex;flex-direction:column}.column>.scrollable{background:#121a24}.ui{flex:0 0 auto;display:flex;flex-direction:column;width:100%;height:100%}.column{overflow:hidden}.column-back-button{box-sizing:border-box;width:100%;background:#192432;color:#d8a070;cursor:pointer;flex:0 0 auto;font-size:16px;border:0;text-align:unset;padding:15px;margin:0;z-index:3}.column-back-button:hover{text-decoration:underline}.column-header__back-button{background:#192432;border:0;font-family:inherit;color:#d8a070;cursor:pointer;flex:0 0 auto;font-size:16px;padding:0 5px 0 0;z-index:3}.column-header__back-button:hover{text-decoration:underline}.column-header__back-button:last-child{padding:0 15px 0 0}.column-back-button__icon{display:inline-block;margin-right:5px}.column-back-button--slim{position:relative}.column-back-button--slim-button{cursor:pointer;flex:0 0 auto;font-size:16px;padding:15px;position:absolute;right:0;top:-48px}.column-link{background:#202e3f;color:#fff;display:block;font-size:16px;padding:15px;text-decoration:none}.column-link:hover,.column-link:focus,.column-link:active{background:#253549}.column-link:focus{outline:0}.column-link--transparent{background:transparent;color:#d9e1e8}.column-link--transparent:hover,.column-link--transparent:focus,.column-link--transparent:active{background:transparent;color:#fff}.column-link--transparent.active{color:#d8a070}.column-link__icon{display:inline-block;margin-right:5px}.column-subheading{background:#121a24;color:#3e5a7c;padding:8px 20px;font-size:12px;font-weight:500;text-transform:uppercase;cursor:default}.column-header__wrapper{position:relative;flex:0 0 auto;z-index:1}.column-header__wrapper.active{box-shadow:0 1px 0 rgba(216,160,112,.3)}.column-header__wrapper.active::before{display:block;content:\"\";position:absolute;bottom:-13px;left:0;right:0;margin:0 auto;width:60%;pointer-events:none;height:28px;z-index:1;background:radial-gradient(ellipse, rgba(216, 160, 112, 0.23) 0%, rgba(216, 160, 112, 0) 60%)}.column-header__wrapper .announcements{z-index:1;position:relative}.column-header{display:flex;font-size:16px;background:#192432;flex:0 0 auto;cursor:pointer;position:relative;z-index:2;outline:0;overflow:hidden}.column-header>button{margin:0;border:none;padding:15px;color:inherit;background:transparent;font:inherit;text-align:left;text-overflow:ellipsis;overflow:hidden;white-space:nowrap;flex:1}.column-header>.column-header__back-button{color:#d8a070}.column-header.active .column-header__icon{color:#d8a070;text-shadow:0 0 10px rgba(216,160,112,.4)}.column-header:focus,.column-header:active{outline:0}.column{width:330px;position:relative;box-sizing:border-box;display:flex;flex-direction:column;overflow:hidden}.wide .columns-area:not(.columns-area--mobile) .column{flex:auto;min-width:330px;max-width:400px}.column>.scrollable{background:#121a24}.column-header__buttons{height:48px;display:flex;margin-left:0}.column-header__links{margin-bottom:14px}.column-header__links .text-btn{margin-right:10px}.column-header__button,.column-header__notif-cleaning-buttons button{background:#192432;border:0;color:#9baec8;cursor:pointer;font-size:16px;padding:0 15px}.column-header__button:hover,.column-header__notif-cleaning-buttons button:hover{color:#b2c1d5}.column-header__button.active,.column-header__notif-cleaning-buttons button.active{color:#fff;background:#202e3f}.column-header__button.active:hover,.column-header__notif-cleaning-buttons button.active:hover{color:#fff;background:#202e3f}.column-header__button:focus,.column-header__notif-cleaning-buttons button:focus{text-shadow:0 0 4px #d3935c}.column-header__notif-cleaning-buttons{display:flex;align-items:stretch;justify-content:space-around}.column-header__notif-cleaning-buttons button{background:transparent;text-align:center;padding:10px 0;white-space:pre-wrap}.column-header__notif-cleaning-buttons b{font-weight:bold}.column-header__collapsible-inner.nopad-drawer{padding:0}.column-header__collapsible{max-height:70vh;overflow:hidden;overflow-y:auto;color:#9baec8;transition:max-height 150ms ease-in-out,opacity 300ms linear;opacity:1;z-index:1;position:relative}.column-header__collapsible.collapsed{max-height:0;opacity:.5}.column-header__collapsible.animating{overflow-y:hidden}.column-header__collapsible hr{height:0;background:transparent;border:0;border-top:1px solid #26374d;margin:10px 0}.column-header__collapsible.ncd{transition:none}.column-header__collapsible.ncd.collapsed{max-height:0;opacity:.7}.column-header__collapsible-inner{background:#202e3f;padding:15px}.column-header__setting-btn:hover{color:#9baec8;text-decoration:underline}.column-header__setting-arrows{float:right}.column-header__setting-arrows .column-header__setting-btn{padding:0 10px}.column-header__setting-arrows .column-header__setting-btn:last-child{padding-right:0}.column-header__title{display:inline-block;text-overflow:ellipsis;overflow:hidden;white-space:nowrap;flex:1}.column-header__icon{display:inline-block;margin-right:5px}.empty-column-indicator,.error-column,.follow_requests-unlocked_explanation{color:#3e5a7c;background:#121a24;text-align:center;padding:20px;font-size:15px;font-weight:400;cursor:default;display:flex;flex:1 1 auto;align-items:center;justify-content:center}@supports(display: grid){.empty-column-indicator,.error-column,.follow_requests-unlocked_explanation{contain:strict}}.empty-column-indicator>span,.error-column>span,.follow_requests-unlocked_explanation>span{max-width:400px}.empty-column-indicator a,.error-column a,.follow_requests-unlocked_explanation a{color:#d8a070;text-decoration:none}.empty-column-indicator a:hover,.error-column a:hover,.follow_requests-unlocked_explanation a:hover{text-decoration:underline}.follow_requests-unlocked_explanation{background:#0b1016;contain:initial}.error-column{flex-direction:column}.single-column.navbar-under .tabs-bar{margin-top:0 !important;margin-bottom:-6px !important}@media screen and (max-width: 415px){.auto-columns.navbar-under .tabs-bar{margin-top:0 !important;margin-bottom:-6px !important}}@media screen and (max-width: 415px){.auto-columns.navbar-under .react-swipeable-view-container .columns-area,.single-column.navbar-under .react-swipeable-view-container .columns-area{height:100% !important}}.column-inline-form{padding:7px 15px;padding-right:5px;display:flex;justify-content:flex-start;align-items:center;background:#192432}.column-inline-form label{flex:1 1 auto}.column-inline-form label input{width:100%;margin-bottom:6px}.column-inline-form label input:focus{outline:0}.column-inline-form .icon-button{flex:0 0 auto;margin:0 5px}.regeneration-indicator{text-align:center;font-size:16px;font-weight:500;color:#3e5a7c;background:#121a24;cursor:default;display:flex;flex:1 1 auto;flex-direction:column;align-items:center;justify-content:center;padding:20px}.regeneration-indicator__figure,.regeneration-indicator__figure img{display:block;width:auto;height:160px;margin:0}.regeneration-indicator--without-header{padding-top:68px}.regeneration-indicator__label{margin-top:30px}.regeneration-indicator__label strong{display:block;margin-bottom:10px;color:#3e5a7c}.regeneration-indicator__label span{font-size:15px;font-weight:400}.directory__list{width:100%;margin:10px 0;transition:opacity 100ms ease-in}.directory__list.loading{opacity:.7}@media screen and (max-width: 415px){.directory__list{margin:0}}.directory__card{box-sizing:border-box;margin-bottom:10px}.directory__card__img{height:125px;position:relative;background:#000;overflow:hidden}.directory__card__img img{display:block;width:100%;height:100%;margin:0;object-fit:cover}.directory__card__bar{display:flex;align-items:center;background:#192432;padding:10px}.directory__card__bar__name{flex:1 1 auto;display:flex;align-items:center;text-decoration:none;overflow:hidden}.directory__card__bar__relationship{width:23px;min-height:1px;flex:0 0 auto}.directory__card__bar .avatar{flex:0 0 auto;width:48px;height:48px;padding-top:2px}.directory__card__bar .avatar img{width:100%;height:100%;display:block;margin:0;border-radius:4px;background:#040609;object-fit:cover}.directory__card__bar .display-name{margin-left:15px;text-align:left}.directory__card__bar .display-name strong{font-size:15px;color:#fff;font-weight:500;overflow:hidden;text-overflow:ellipsis}.directory__card__bar .display-name span{display:block;font-size:14px;color:#9baec8;font-weight:400;overflow:hidden;text-overflow:ellipsis}.directory__card__extra{background:#121a24;display:flex;align-items:center;justify-content:center}.directory__card__extra .accounts-table__count{width:33.33%;flex:0 0 auto;padding:15px 0}.directory__card__extra .account__header__content{box-sizing:border-box;padding:15px 10px;border-bottom:1px solid #202e3f;width:100%;min-height:48px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.directory__card__extra .account__header__content p{display:none}.directory__card__extra .account__header__content p:first-child{display:inline}.directory__card__extra .account__header__content br{display:none}.filter-form{background:#121a24}.filter-form__column{padding:10px 15px}.filter-form .radio-button{display:block}.radio-button{font-size:14px;position:relative;display:inline-block;padding:6px 0;line-height:18px;cursor:default;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:pointer}.radio-button input[type=radio],.radio-button input[type=checkbox]{display:none}.radio-button__input{display:inline-block;position:relative;border:1px solid #9baec8;box-sizing:border-box;width:18px;height:18px;flex:0 0 auto;margin-right:10px;top:-1px;border-radius:50%;vertical-align:middle}.radio-button__input.checked{border-color:#e1b590;background:#e1b590}.search{position:relative}.search__input{outline:0;box-sizing:border-box;width:100%;border:none;box-shadow:none;font-family:inherit;background:#121a24;color:#9baec8;font-size:14px;margin:0;display:block;padding:15px;padding-right:30px;line-height:18px;font-size:16px}.search__input::placeholder{color:#a8b9cf}.search__input::-moz-focus-inner{border:0}.search__input::-moz-focus-inner,.search__input:focus,.search__input:active{outline:0 !important}.search__input:focus{background:#192432}@media screen and (max-width: 600px){.search__input{font-size:16px}}.search__icon::-moz-focus-inner{border:0}.search__icon::-moz-focus-inner,.search__icon:focus{outline:0 !important}.search__icon .fa{position:absolute;top:16px;right:10px;z-index:2;display:inline-block;opacity:0;transition:all 100ms linear;transition-property:color,transform,opacity;font-size:18px;width:18px;height:18px;color:#d9e1e8;cursor:default;pointer-events:none}.search__icon .fa.active{pointer-events:auto;opacity:.3}.search__icon .fa-search{transform:rotate(0deg)}.search__icon .fa-search.active{pointer-events:auto;opacity:.3}.search__icon .fa-times-circle{top:17px;transform:rotate(0deg);color:#3e5a7c;cursor:pointer}.search__icon .fa-times-circle.active{transform:rotate(90deg)}.search__icon .fa-times-circle:hover{color:#4a6b94}.search-results__header{color:#3e5a7c;background:#151f2b;border-bottom:1px solid #0b1016;padding:15px 10px;font-size:14px;font-weight:500}.search-results__info{padding:20px;color:#9baec8;text-align:center}.trends__header{color:#3e5a7c;background:#151f2b;border-bottom:1px solid #0b1016;font-weight:500;padding:15px;font-size:16px;cursor:default}.trends__header .fa{display:inline-block;margin-right:5px}.trends__item{display:flex;align-items:center;padding:15px;border-bottom:1px solid #202e3f}.trends__item:last-child{border-bottom:0}.trends__item__name{flex:1 1 auto;color:#3e5a7c;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.trends__item__name strong{font-weight:500}.trends__item__name a{color:#9baec8;text-decoration:none;font-size:14px;font-weight:500;display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.trends__item__name a:hover span,.trends__item__name a:focus span,.trends__item__name a:active span{text-decoration:underline}.trends__item__current{flex:0 0 auto;font-size:24px;line-height:36px;font-weight:500;text-align:right;padding-right:15px;margin-left:5px;color:#d9e1e8}.trends__item__sparkline{flex:0 0 auto;width:50px}.trends__item__sparkline path:first-child{fill:rgba(216,160,112,.25) !important;fill-opacity:1 !important}.trends__item__sparkline path:last-child{stroke:#dfb088 !important}.emojione{font-size:inherit;vertical-align:middle;object-fit:contain;margin:-0.2ex .15em .2ex;width:16px;height:16px}.emojione img{width:auto}.emoji-picker-dropdown__menu{background:#fff;position:absolute;box-shadow:4px 4px 6px rgba(0,0,0,.4);border-radius:4px;margin-top:5px;z-index:2}.emoji-picker-dropdown__menu .emoji-mart-scroll{transition:opacity 200ms ease}.emoji-picker-dropdown__menu.selecting .emoji-mart-scroll{opacity:.5}.emoji-picker-dropdown__modifiers{position:absolute;top:60px;right:11px;cursor:pointer}.emoji-picker-dropdown__modifiers__menu{position:absolute;z-index:4;top:-4px;left:-8px;background:#fff;border-radius:4px;box-shadow:1px 2px 6px rgba(0,0,0,.2);overflow:hidden}.emoji-picker-dropdown__modifiers__menu button{display:block;cursor:pointer;border:0;padding:4px 8px;background:transparent}.emoji-picker-dropdown__modifiers__menu button:hover,.emoji-picker-dropdown__modifiers__menu button:focus,.emoji-picker-dropdown__modifiers__menu button:active{background:rgba(217,225,232,.4)}.emoji-picker-dropdown__modifiers__menu .emoji-mart-emoji{height:22px}.emoji-mart-emoji span{background-repeat:no-repeat}.emoji-button{display:block;padding:5px 5px 2px 2px;outline:0;cursor:pointer}.emoji-button:active,.emoji-button:focus{outline:0 !important}.emoji-button img{filter:grayscale(100%);opacity:.8;display:block;margin:0;width:22px;height:22px}.emoji-button:hover img,.emoji-button:active img,.emoji-button:focus img{opacity:1;filter:none}.doodle-modal{width:unset}.doodle-modal__container{background:#d9e1e8;text-align:center;line-height:0}.doodle-modal__container canvas{border:5px solid #d9e1e8}.doodle-modal__action-bar .filler{flex-grow:1;margin:0;padding:0}.doodle-modal__action-bar .doodle-toolbar{line-height:1;display:flex;flex-direction:column;flex-grow:0;justify-content:space-around}.doodle-modal__action-bar .doodle-toolbar.with-inputs label{display:inline-block;width:70px;text-align:right;margin-right:2px}.doodle-modal__action-bar .doodle-toolbar.with-inputs input[type=number],.doodle-modal__action-bar .doodle-toolbar.with-inputs input[type=text]{width:40px}.doodle-modal__action-bar .doodle-toolbar.with-inputs span.val{display:inline-block;text-align:left;width:50px}.doodle-modal__action-bar .doodle-palette{padding-right:0 !important;border:1px solid #000;line-height:.2rem;flex-grow:0;background:#fff}.doodle-modal__action-bar .doodle-palette button{appearance:none;width:1rem;height:1rem;margin:0;padding:0;text-align:center;color:#000;text-shadow:0 0 1px #fff;cursor:pointer;box-shadow:inset 0 0 1px rgba(255,255,255,.5);border:1px solid #000;outline-offset:-1px}.doodle-modal__action-bar .doodle-palette button.foreground{outline:1px dashed #fff}.doodle-modal__action-bar .doodle-palette button.background{outline:1px dashed red}.doodle-modal__action-bar .doodle-palette button.foreground.background{outline:1px dashed red;border-color:#fff}.drawer{width:300px;box-sizing:border-box;display:flex;flex-direction:column;overflow-y:hidden;padding:10px 5px;flex:none}.drawer:first-child{padding-left:10px}.drawer:last-child{padding-right:10px}@media screen and (max-width: 630px){.auto-columns .drawer{flex:auto}}.single-column .drawer{flex:auto}@media screen and (max-width: 630px){.auto-columns .drawer,.auto-columns .drawer:first-child,.auto-columns .drawer:last-child,.single-column .drawer,.single-column .drawer:first-child,.single-column .drawer:last-child{padding:0}}.wide .drawer{min-width:300px;max-width:400px;flex:1 1 200px}@media screen and (max-width: 630px){:root .auto-columns .drawer{flex:auto;width:100%;min-width:0;max-width:none;padding:0}}:root .single-column .drawer{flex:auto;width:100%;min-width:0;max-width:none;padding:0}.react-swipeable-view-container .drawer{height:100%}.drawer--header{display:flex;flex-direction:row;margin-bottom:10px;flex:none;background:#202e3f;font-size:16px}.drawer--header>*{display:block;box-sizing:border-box;border-bottom:2px solid transparent;padding:15px 5px 13px;height:48px;flex:1 1 auto;color:#9baec8;text-align:center;text-decoration:none;cursor:pointer}.drawer--header a{transition:background 100ms ease-in}.drawer--header a:focus,.drawer--header a:hover{outline:none;background:#17212e;transition:background 200ms ease-out}.search{position:relative;margin-bottom:10px;flex:none}@media screen and (max-width: 415px){.auto-columns .search,.single-column .search{margin-bottom:0}}@media screen and (max-width: 630px){.auto-columns .search{font-size:16px}}.single-column .search{font-size:16px}.search-popout{background:#fff;border-radius:4px;padding:10px 14px;padding-bottom:14px;margin-top:10px;color:#9baec8;box-shadow:2px 4px 15px rgba(0,0,0,.4)}.search-popout h4{text-transform:uppercase;color:#9baec8;font-size:13px;font-weight:500;margin-bottom:10px}.search-popout li{padding:4px 0}.search-popout ul{margin-bottom:10px}.search-popout em{font-weight:500;color:#121a24}.drawer--account{padding:10px;color:#9baec8;display:flex;align-items:center}.drawer--account a{color:inherit;text-decoration:none}.drawer--account .acct{display:block;color:#d9e1e8;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.navigation-bar__profile{flex:1 1 auto;margin-left:8px;overflow:hidden}.drawer--results{background:#121a24;overflow-x:hidden;overflow-y:auto}.drawer--results>header{color:#3e5a7c;background:#151f2b;padding:15px;font-weight:500;font-size:16px;cursor:default}.drawer--results>header .fa{display:inline-block;margin-right:5px}.drawer--results>section{margin-bottom:5px}.drawer--results>section h5{background:#0b1016;border-bottom:1px solid #202e3f;cursor:default;display:flex;padding:15px;font-weight:500;font-size:16px;color:#3e5a7c}.drawer--results>section h5 .fa{display:inline-block;margin-right:5px}.drawer--results>section .account:last-child,.drawer--results>section>div:last-child .status{border-bottom:0}.drawer--results>section>.hashtag{display:block;padding:10px;color:#d9e1e8;text-decoration:none}.drawer--results>section>.hashtag:hover,.drawer--results>section>.hashtag:active,.drawer--results>section>.hashtag:focus{color:#e6ebf0;text-decoration:underline}.drawer__pager{box-sizing:border-box;padding:0;flex-grow:1;position:relative;overflow:hidden;display:flex}.drawer__inner{position:absolute;top:0;left:0;background:#283a50;box-sizing:border-box;padding:0;display:flex;flex-direction:column;overflow:hidden;overflow-y:auto;width:100%;height:100%}.drawer__inner.darker{background:#121a24}.drawer__inner__mastodon{background:#283a50 url('data:image/svg+xml;utf8,') no-repeat bottom/100% auto;flex:1;min-height:47px;display:none}.drawer__inner__mastodon>img{display:block;object-fit:contain;object-position:bottom left;width:85%;height:100%;pointer-events:none;user-drag:none;user-select:none}.drawer__inner__mastodon>.mastodon{display:block;width:100%;height:100%;border:none;cursor:inherit}@media screen and (min-height: 640px){.drawer__inner__mastodon{display:block}}.pseudo-drawer{background:#283a50;font-size:13px;text-align:left}.drawer__backdrop{cursor:pointer;position:absolute;top:0;left:0;width:100%;height:100%;background:rgba(0,0,0,.5)}.video-error-cover{align-items:center;background:#000;color:#fff;cursor:pointer;display:flex;flex-direction:column;height:100%;justify-content:center;margin-top:8px;position:relative;text-align:center;z-index:100}.media-spoiler{background:#000;color:#9baec8;border:0;width:100%;height:100%}.media-spoiler:hover,.media-spoiler:active,.media-spoiler:focus{color:#b5c3d6}.status__content>.media-spoiler{margin-top:15px}.media-spoiler.full-width{margin-left:-14px;margin-right:-14px;width:inherit;max-width:none;height:250px;border-radius:0px}.media-spoiler__warning{display:block;font-size:14px}.media-spoiler__trigger{display:block;font-size:11px;font-weight:500}.media-gallery__gifv__label{display:block;position:absolute;color:#fff;background:rgba(0,0,0,.5);bottom:6px;left:6px;padding:2px 6px;border-radius:2px;font-size:11px;font-weight:600;z-index:1;pointer-events:none;opacity:.9;transition:opacity .1s ease;line-height:18px}.media-gallery__gifv:hover .media-gallery__gifv__label{opacity:1}.media-gallery__audio{height:100%;display:flex;flex-direction:column}.media-gallery__audio span{text-align:center;color:#9baec8;display:flex;height:100%;align-items:center}.media-gallery__audio span p{width:100%}.media-gallery__audio audio{width:100%}.media-gallery{box-sizing:border-box;margin-top:8px;overflow:hidden;border-radius:4px;position:relative;width:100%;height:110px}.media-gallery.full-width{margin-left:-14px;margin-right:-14px;width:inherit;max-width:none;height:250px;border-radius:0px}.media-gallery__item{border:none;box-sizing:border-box;display:block;float:left;position:relative;border-radius:4px;overflow:hidden}.full-width .media-gallery__item{border-radius:0}.media-gallery__item.standalone .media-gallery__item-gifv-thumbnail{transform:none;top:0}.media-gallery__item.letterbox{background:#000}.media-gallery__item-thumbnail{cursor:zoom-in;display:block;text-decoration:none;color:#d9e1e8;position:relative;z-index:1}.media-gallery__item-thumbnail,.media-gallery__item-thumbnail img{height:100%;width:100%;object-fit:contain}.media-gallery__item-thumbnail:not(.letterbox),.media-gallery__item-thumbnail img:not(.letterbox){height:100%;object-fit:cover}.media-gallery__preview{width:100%;height:100%;object-fit:cover;position:absolute;top:0;left:0;z-index:0;background:#000}.media-gallery__preview--hidden{display:none}.media-gallery__gifv{height:100%;overflow:hidden;position:relative;width:100%;display:flex;justify-content:center}.media-gallery__item-gifv-thumbnail{cursor:zoom-in;height:100%;width:100%;position:relative;z-index:1;object-fit:contain;user-select:none}.media-gallery__item-gifv-thumbnail:not(.letterbox){height:100%;object-fit:cover}.media-gallery__item-thumbnail-label{clip:rect(1px 1px 1px 1px);clip:rect(1px, 1px, 1px, 1px);overflow:hidden;position:absolute}.video-modal__container{max-width:100vw;max-height:100vh}.audio-modal__container{width:50vw}.media-modal{width:100%;height:100%;position:relative}.media-modal .extended-video-player{width:100%;height:100%;display:flex;align-items:center;justify-content:center}.media-modal .extended-video-player video{max-width:100%;max-height:80%}.media-modal__closer{position:absolute;top:0;left:0;right:0;bottom:0}.media-modal__navigation{position:absolute;top:0;left:0;right:0;bottom:0;pointer-events:none;transition:opacity .3s linear;will-change:opacity}.media-modal__navigation *{pointer-events:auto}.media-modal__navigation.media-modal__navigation--hidden{opacity:0}.media-modal__navigation.media-modal__navigation--hidden *{pointer-events:none}.media-modal__nav{background:rgba(0,0,0,.5);box-sizing:border-box;border:0;color:#fff;cursor:pointer;display:flex;align-items:center;font-size:24px;height:20vmax;margin:auto 0;padding:30px 15px;position:absolute;top:0;bottom:0}.media-modal__nav--left{left:0}.media-modal__nav--right{right:0}.media-modal__pagination{width:100%;text-align:center;position:absolute;left:0;bottom:20px;pointer-events:none}.media-modal__meta{text-align:center;position:absolute;left:0;bottom:20px;width:100%;pointer-events:none}.media-modal__meta--shifted{bottom:62px}.media-modal__meta a{pointer-events:auto;text-decoration:none;font-weight:500;color:#d9e1e8}.media-modal__meta a:hover,.media-modal__meta a:focus,.media-modal__meta a:active{text-decoration:underline}.media-modal__page-dot{display:inline-block}.media-modal__button{background-color:#fff;height:12px;width:12px;border-radius:6px;margin:10px;padding:0;border:0;font-size:0}.media-modal__button--active{background-color:#d8a070}.media-modal__close{position:absolute;right:8px;top:8px;z-index:100}.detailed .video-player__volume__current,.detailed .video-player__volume::before,.fullscreen .video-player__volume__current,.fullscreen .video-player__volume::before{bottom:27px}.detailed .video-player__volume__handle,.fullscreen .video-player__volume__handle{bottom:23px}.audio-player{box-sizing:border-box;position:relative;background:#040609;border-radius:4px;padding-bottom:44px;direction:ltr}.audio-player.editable{border-radius:0;height:100%}.audio-player__waveform{padding:15px 0;position:relative;overflow:hidden}.audio-player__waveform::before{content:\"\";display:block;position:absolute;border-top:1px solid #192432;width:100%;height:0;left:0;top:calc(50% + 1px)}.audio-player__progress-placeholder{background-color:rgba(225,181,144,.5)}.audio-player__wave-placeholder{background-color:#2d415a}.audio-player .video-player__controls{padding:0 15px;padding-top:10px;background:#040609;border-top:1px solid #192432;border-radius:0 0 4px 4px}.video-player{overflow:hidden;position:relative;background:#000;max-width:100%;border-radius:4px;box-sizing:border-box;direction:ltr}.video-player.editable{border-radius:0;height:100% !important}.video-player:focus{outline:0}.detailed-status .video-player{width:100%;height:100%}.video-player.full-width{margin-left:-14px;margin-right:-14px;width:inherit;max-width:none;height:250px;border-radius:0px}.video-player video{max-width:100vw;max-height:80vh;z-index:1;position:relative}.video-player.fullscreen{width:100% !important;height:100% !important;margin:0}.video-player.fullscreen video{max-width:100% !important;max-height:100% !important;width:100% !important;height:100% !important;outline:0}.video-player.inline video{object-fit:contain;position:relative;top:50%;transform:translateY(-50%)}.video-player__controls{position:absolute;z-index:2;bottom:0;left:0;right:0;box-sizing:border-box;background:linear-gradient(0deg, rgba(0, 0, 0, 0.85) 0, rgba(0, 0, 0, 0.45) 60%, transparent);padding:0 15px;opacity:0;transition:opacity .1s ease}.video-player__controls.active{opacity:1}.video-player.inactive video,.video-player.inactive .video-player__controls{visibility:hidden}.video-player__spoiler{display:none;position:absolute;top:0;left:0;width:100%;height:100%;z-index:4;border:0;background:#000;color:#9baec8;transition:none;pointer-events:none}.video-player__spoiler.active{display:block;pointer-events:auto}.video-player__spoiler.active:hover,.video-player__spoiler.active:active,.video-player__spoiler.active:focus{color:#b2c1d5}.video-player__spoiler__title{display:block;font-size:14px}.video-player__spoiler__subtitle{display:block;font-size:11px;font-weight:500}.video-player__buttons-bar{display:flex;justify-content:space-between;padding-bottom:10px}.video-player__buttons-bar .video-player__download__icon{color:inherit}.video-player__buttons-bar .video-player__download__icon .fa,.video-player__buttons-bar .video-player__download__icon:active .fa,.video-player__buttons-bar .video-player__download__icon:hover .fa,.video-player__buttons-bar .video-player__download__icon:focus .fa{color:inherit}.video-player__buttons{font-size:16px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.video-player__buttons.left button{padding-left:0}.video-player__buttons.right button{padding-right:0}.video-player__buttons button{background:transparent;padding:2px 10px;font-size:16px;border:0;color:rgba(255,255,255,.75)}.video-player__buttons button:active,.video-player__buttons button:hover,.video-player__buttons button:focus{color:#fff}.video-player__time-sep,.video-player__time-total,.video-player__time-current{font-size:14px;font-weight:500}.video-player__time-current{color:#fff;margin-left:60px}.video-player__time-sep{display:inline-block;margin:0 6px}.video-player__time-sep,.video-player__time-total{color:#fff}.video-player__volume{cursor:pointer;height:24px;display:inline}.video-player__volume::before{content:\"\";width:50px;background:rgba(255,255,255,.35);border-radius:4px;display:block;position:absolute;height:4px;left:70px;bottom:20px}.video-player__volume__current{display:block;position:absolute;height:4px;border-radius:4px;left:70px;bottom:20px;background:#e1b590}.video-player__volume__handle{position:absolute;z-index:3;border-radius:50%;width:12px;height:12px;bottom:16px;left:70px;transition:opacity .1s ease;background:#e1b590;box-shadow:1px 2px 6px rgba(0,0,0,.2);pointer-events:none}.video-player__link{padding:2px 10px}.video-player__link a{text-decoration:none;font-size:14px;font-weight:500;color:#fff}.video-player__link a:hover,.video-player__link a:active,.video-player__link a:focus{text-decoration:underline}.video-player__seek{cursor:pointer;height:24px;position:relative}.video-player__seek::before{content:\"\";width:100%;background:rgba(255,255,255,.35);border-radius:4px;display:block;position:absolute;height:4px;top:10px}.video-player__seek__progress,.video-player__seek__buffer{display:block;position:absolute;height:4px;border-radius:4px;top:10px;background:#e1b590}.video-player__seek__buffer{background:rgba(255,255,255,.2)}.video-player__seek__handle{position:absolute;z-index:3;opacity:0;border-radius:50%;width:12px;height:12px;top:6px;margin-left:-6px;transition:opacity .1s ease;background:#e1b590;box-shadow:1px 2px 6px rgba(0,0,0,.2);pointer-events:none}.video-player__seek__handle.active{opacity:1}.video-player__seek:hover .video-player__seek__handle{opacity:1}.video-player.detailed .video-player__buttons button,.video-player.fullscreen .video-player__buttons button{padding-top:10px;padding-bottom:10px}.sensitive-info{display:flex;flex-direction:row;align-items:center;position:absolute;top:4px;left:4px;z-index:100}.sensitive-marker{margin:0 3px;border-radius:2px;padding:2px 6px;color:rgba(255,255,255,.8);background:rgba(0,0,0,.5);font-size:12px;line-height:18px;text-transform:uppercase;opacity:.9;transition:opacity .1s ease}.media-gallery:hover .sensitive-marker{opacity:1}.list-editor{background:#121a24;flex-direction:column;border-radius:8px;box-shadow:2px 4px 15px rgba(0,0,0,.4);width:380px;overflow:hidden}@media screen and (max-width: 420px){.list-editor{width:90%}}.list-editor h4{padding:15px 0;background:#283a50;font-weight:500;font-size:16px;text-align:center;border-radius:8px 8px 0 0}.list-editor .drawer__pager{height:50vh}.list-editor .drawer__inner{border-radius:0 0 8px 8px}.list-editor .drawer__inner.backdrop{width:calc(100% - 60px);box-shadow:2px 4px 15px rgba(0,0,0,.4);border-radius:0 0 0 8px}.list-editor__accounts{overflow-y:auto}.list-editor .account__display-name:hover strong{text-decoration:none}.list-editor .account__avatar{cursor:default}.list-editor .search{margin-bottom:0}.list-adder{background:#121a24;flex-direction:column;border-radius:8px;box-shadow:2px 4px 15px rgba(0,0,0,.4);width:380px;overflow:hidden}@media screen and (max-width: 420px){.list-adder{width:90%}}.list-adder__account{background:#283a50}.list-adder__lists{background:#283a50;height:50vh;border-radius:0 0 8px 8px;overflow-y:auto}.list-adder .list{padding:10px;border-bottom:1px solid #202e3f}.list-adder .list__wrapper{display:flex}.list-adder .list__display-name{flex:1 1 auto;overflow:hidden;text-decoration:none;font-size:16px;padding:10px}.emoji-mart{font-size:13px;display:inline-block;color:#121a24}.emoji-mart,.emoji-mart *{box-sizing:border-box;line-height:1.15}.emoji-mart .emoji-mart-emoji{padding:6px}.emoji-mart-bar{border:0 solid #c0cdd9}.emoji-mart-bar:first-child{border-bottom-width:1px;border-top-left-radius:5px;border-top-right-radius:5px;background:#d9e1e8}.emoji-mart-bar:last-child{border-top-width:1px;border-bottom-left-radius:5px;border-bottom-right-radius:5px;display:none}.emoji-mart-anchors{display:flex;justify-content:space-between;padding:0 6px;color:#3e5a7c;line-height:0}.emoji-mart-anchor{position:relative;flex:1;text-align:center;padding:12px 4px;overflow:hidden;transition:color .1s ease-out;cursor:pointer}.emoji-mart-anchor:hover{color:#37506f}.emoji-mart-anchor-selected{color:#d8a070}.emoji-mart-anchor-selected:hover{color:#d49560}.emoji-mart-anchor-selected .emoji-mart-anchor-bar{bottom:0}.emoji-mart-anchor-bar{position:absolute;bottom:-3px;left:0;width:100%;height:3px;background-color:#d59864}.emoji-mart-anchors i{display:inline-block;width:100%;max-width:22px}.emoji-mart-anchors svg{fill:currentColor;max-height:18px}.emoji-mart-scroll{overflow-y:scroll;height:270px;max-height:35vh;padding:0 6px 6px;background:#fff;will-change:transform}.emoji-mart-scroll::-webkit-scrollbar-track:hover,.emoji-mart-scroll::-webkit-scrollbar-track:active{background-color:rgba(0,0,0,.3)}.emoji-mart-search{padding:10px;padding-right:45px;background:#fff}.emoji-mart-search input{font-size:14px;font-weight:400;padding:7px 9px;font-family:inherit;display:block;width:100%;background:rgba(217,225,232,.3);color:#121a24;border:1px solid #d9e1e8;border-radius:4px}.emoji-mart-search input::-moz-focus-inner{border:0}.emoji-mart-search input::-moz-focus-inner,.emoji-mart-search input:focus,.emoji-mart-search input:active{outline:0 !important}.emoji-mart-category .emoji-mart-emoji{cursor:pointer}.emoji-mart-category .emoji-mart-emoji span{z-index:1;position:relative;text-align:center}.emoji-mart-category .emoji-mart-emoji:hover::before{z-index:0;content:\"\";position:absolute;top:0;left:0;width:100%;height:100%;background-color:rgba(217,225,232,.7);border-radius:100%}.emoji-mart-category-label{z-index:2;position:relative;position:-webkit-sticky;position:sticky;top:0}.emoji-mart-category-label span{display:block;width:100%;font-weight:500;padding:5px 6px;background:#fff}.emoji-mart-emoji{position:relative;display:inline-block;font-size:0}.emoji-mart-emoji span{width:22px;height:22px}.emoji-mart-no-results{font-size:14px;text-align:center;padding-top:70px;color:#9baec8}.emoji-mart-no-results .emoji-mart-category-label{display:none}.emoji-mart-no-results .emoji-mart-no-results-label{margin-top:.2em}.emoji-mart-no-results .emoji-mart-emoji:hover::before{content:none}.emoji-mart-preview{display:none}.glitch.local-settings{position:relative;display:flex;flex-direction:row;background:#d9e1e8;color:#121a24;border-radius:8px;height:80vh;width:80vw;max-width:740px;max-height:450px;overflow:hidden}.glitch.local-settings label,.glitch.local-settings legend{display:block;font-size:14px}.glitch.local-settings .boolean label,.glitch.local-settings .radio_buttons label{position:relative;padding-left:28px;padding-top:3px}.glitch.local-settings .boolean label input,.glitch.local-settings .radio_buttons label input{position:absolute;left:0;top:0}.glitch.local-settings span.hint{display:block;color:#3e5a7c}.glitch.local-settings h1{font-size:18px;font-weight:500;line-height:24px;margin-bottom:20px}.glitch.local-settings h2{font-size:15px;font-weight:500;line-height:20px;margin-top:20px;margin-bottom:10px}.glitch.local-settings__navigation__item{display:block;padding:15px 20px;color:inherit;background:#f2f5f7;border-bottom:1px #d9e1e8 solid;cursor:pointer;text-decoration:none;outline:none;transition:background .3s}.glitch.local-settings__navigation__item .text-icon-button{color:inherit;transition:unset}.glitch.local-settings__navigation__item:hover{background:#d9e1e8}.glitch.local-settings__navigation__item.active{background:#d8a070;color:#fff}.glitch.local-settings__navigation__item.close,.glitch.local-settings__navigation__item.close:hover{background:#df405a;color:#fff}.glitch.local-settings__navigation{background:#f2f5f7;width:212px;font-size:15px;line-height:20px;overflow-y:auto}.glitch.local-settings__page{display:block;flex:auto;padding:15px 20px 15px 20px;width:360px;overflow-y:auto}.glitch.local-settings__page__item{margin-bottom:2px}.glitch.local-settings__page__item.string,.glitch.local-settings__page__item.radio_buttons{margin-top:10px;margin-bottom:10px}@media screen and (max-width: 630px){.glitch.local-settings__navigation{width:40px;flex-shrink:0}.glitch.local-settings__navigation__item{padding:10px}.glitch.local-settings__navigation__item span:last-of-type{display:none}}.error-boundary{color:#fff;font-size:15px;line-height:20px}.error-boundary h1{font-size:26px;line-height:36px;font-weight:400;margin-bottom:8px}.error-boundary a{color:#fff;text-decoration:underline}.error-boundary ul{list-style:disc;margin-left:0;padding-left:1em}.error-boundary textarea.web_app_crash-stacktrace{width:100%;resize:none;white-space:pre;font-family:monospace,monospace}.compose-panel{width:285px;margin-top:10px;display:flex;flex-direction:column;height:calc(100% - 10px);overflow-y:hidden}.compose-panel .search__input{line-height:18px;font-size:16px;padding:15px;padding-right:30px}.compose-panel .search__icon .fa{top:15px}.compose-panel .drawer--account{flex:0 1 48px}.compose-panel .flex-spacer{background:transparent}.compose-panel .composer{flex:1;overflow-y:hidden;display:flex;flex-direction:column;min-height:310px}.compose-panel .compose-form__autosuggest-wrapper{overflow-y:auto;background-color:#fff;border-radius:4px 4px 0 0;flex:0 1 auto}.compose-panel .autosuggest-textarea__textarea{overflow-y:hidden}.compose-panel .compose-form__upload-thumbnail{height:80px}.navigation-panel{margin-top:10px;margin-bottom:10px;height:calc(100% - 20px);overflow-y:auto;display:flex;flex-direction:column}.navigation-panel>a{flex:0 0 auto}.navigation-panel hr{flex:0 0 auto;border:0;background:transparent;border-top:1px solid #192432;margin:10px 0}.navigation-panel .flex-spacer{background:transparent}@media screen and (min-width: 600px){.tabs-bar__link span{display:inline}}.columns-area--mobile{flex-direction:column;width:100%;margin:0 auto}.columns-area--mobile .column,.columns-area--mobile .drawer{width:100%;height:100%;padding:0}.columns-area--mobile .directory__list{display:grid;grid-gap:10px;grid-template-columns:minmax(0, 50%) minmax(0, 50%)}@media screen and (max-width: 415px){.columns-area--mobile .directory__list{display:block}}.columns-area--mobile .directory__card{margin-bottom:0}.columns-area--mobile .filter-form{display:flex}.columns-area--mobile .autosuggest-textarea__textarea{font-size:16px}.columns-area--mobile .search__input{line-height:18px;font-size:16px;padding:15px;padding-right:30px}.columns-area--mobile .search__icon .fa{top:15px}.columns-area--mobile .scrollable{overflow:visible}@supports(display: grid){.columns-area--mobile .scrollable{contain:content}}@media screen and (min-width: 415px){.columns-area--mobile{padding:10px 0;padding-top:0}}@media screen and (min-width: 630px){.columns-area--mobile .detailed-status{padding:15px}.columns-area--mobile .detailed-status .media-gallery,.columns-area--mobile .detailed-status .video-player,.columns-area--mobile .detailed-status .audio-player{margin-top:15px}.columns-area--mobile .account__header__bar{padding:5px 10px}.columns-area--mobile .navigation-bar,.columns-area--mobile .compose-form{padding:15px}.columns-area--mobile .compose-form .compose-form__publish .compose-form__publish-button-wrapper{padding-top:15px}.columns-area--mobile .status{padding:15px;min-height:50px}.columns-area--mobile .status .media-gallery,.columns-area--mobile .status__action-bar,.columns-area--mobile .status .video-player,.columns-area--mobile .status .audio-player{margin-top:10px}.columns-area--mobile .account{padding:15px 10px}.columns-area--mobile .account__header__bio{margin:0 -10px}.columns-area--mobile .notification__message{padding-top:15px}.columns-area--mobile .notification .status{padding-top:8px}.columns-area--mobile .notification .account{padding-top:8px}}.floating-action-button{position:fixed;display:flex;justify-content:center;align-items:center;width:3.9375rem;height:3.9375rem;bottom:1.3125rem;right:1.3125rem;background:#d59864;color:#fff;border-radius:50%;font-size:21px;line-height:21px;text-decoration:none;box-shadow:2px 3px 9px rgba(0,0,0,.4)}.floating-action-button:hover,.floating-action-button:focus,.floating-action-button:active{background:#e0b38c}@media screen and (min-width: 415px){.tabs-bar{width:100%}.react-swipeable-view-container .columns-area--mobile{height:calc(100% - 10px) !important}.getting-started__wrapper,.search{margin-bottom:10px}}@media screen and (max-width: 895px){.columns-area__panels__pane--compositional{display:none}}@media screen and (min-width: 895px){.floating-action-button,.tabs-bar__link.optional{display:none}.search-page .search{display:none}}@media screen and (max-width: 1190px){.columns-area__panels__pane--navigational{display:none}}@media screen and (min-width: 1190px){.tabs-bar{display:none}}.announcements__item__content{word-wrap:break-word;overflow-y:auto}.announcements__item__content .emojione{width:20px;height:20px;margin:-3px 0 0}.announcements__item__content p{margin-bottom:10px;white-space:pre-wrap}.announcements__item__content p:last-child{margin-bottom:0}.announcements__item__content a{color:#d9e1e8;text-decoration:none}.announcements__item__content a:hover{text-decoration:underline}.announcements__item__content a.mention:hover{text-decoration:none}.announcements__item__content a.mention:hover span{text-decoration:underline}.announcements__item__content a.unhandled-link{color:#e1b590}.announcements{background:#202e3f;font-size:13px;display:flex;align-items:flex-end}.announcements__mastodon{width:124px;flex:0 0 auto}@media screen and (max-width: 424px){.announcements__mastodon{display:none}}.announcements__container{width:calc(100% - 124px);flex:0 0 auto;position:relative}@media screen and (max-width: 424px){.announcements__container{width:100%}}.announcements__item{box-sizing:border-box;width:100%;padding:15px;position:relative;font-size:15px;line-height:20px;word-wrap:break-word;font-weight:400;max-height:50vh;overflow:hidden;display:flex;flex-direction:column}.announcements__item__range{display:block;font-weight:500;margin-bottom:10px;padding-right:18px}.announcements__item__unread{position:absolute;top:19px;right:19px;display:block;background:#d8a070;border-radius:50%;width:.625rem;height:.625rem}.announcements__pagination{padding:15px;color:#9baec8;position:absolute;bottom:3px;right:0}.layout-multiple-columns .announcements__mastodon{display:none}.layout-multiple-columns .announcements__container{width:100%}.reactions-bar{display:flex;flex-wrap:wrap;align-items:center;margin-top:15px;margin-left:-2px;width:calc(100% - (90px - 33px))}.reactions-bar__item{flex-shrink:0;background:#26374d;border:0;border-radius:3px;margin:2px;cursor:pointer;user-select:none;padding:0 6px;display:flex;align-items:center;transition:all 100ms ease-in;transition-property:background-color,color}.reactions-bar__item__emoji{display:block;margin:3px 0;width:16px;height:16px}.reactions-bar__item__emoji img{display:block;margin:0;width:100%;height:100%;min-width:auto;min-height:auto;vertical-align:bottom;object-fit:contain}.reactions-bar__item__count{display:block;min-width:9px;font-size:13px;font-weight:500;text-align:center;margin-left:6px;color:#9baec8}.reactions-bar__item:hover,.reactions-bar__item:focus,.reactions-bar__item:active{background:#2d415a;transition:all 200ms ease-out;transition-property:background-color,color}.reactions-bar__item:hover__count,.reactions-bar__item:focus__count,.reactions-bar__item:active__count{color:#a8b9cf}.reactions-bar__item.active{transition:all 100ms ease-in;transition-property:background-color,color;background-color:#4a4c54}.reactions-bar__item.active .reactions-bar__item__count{color:#e1b590}.reactions-bar .emoji-picker-dropdown{margin:2px}.reactions-bar:hover .emoji-button{opacity:.85}.reactions-bar .emoji-button{color:#9baec8;margin:0;font-size:16px;width:auto;flex-shrink:0;padding:0 6px;height:22px;display:flex;align-items:center;opacity:.5;transition:all 100ms ease-in;transition-property:background-color,color}.reactions-bar .emoji-button:hover,.reactions-bar .emoji-button:active,.reactions-bar .emoji-button:focus{opacity:1;color:#a8b9cf;transition:all 200ms ease-out;transition-property:background-color,color}.reactions-bar--empty .emoji-button{padding:0}.poll{margin-top:16px;font-size:14px}.poll ul,.e-content .poll ul{margin:0;list-style:none}.poll li{margin-bottom:10px;position:relative}.poll__chart{border-radius:4px;display:block;background:#8ba1bf;height:5px;min-width:1%}.poll__chart.leading{background:#d8a070}.poll__option{position:relative;display:flex;padding:6px 0;line-height:18px;cursor:default;overflow:hidden}.poll__option__text{display:inline-block;word-wrap:break-word;overflow-wrap:break-word;max-width:calc(100% - 45px - 25px)}.poll__option input[type=radio],.poll__option input[type=checkbox]{display:none}.poll__option .autossugest-input{flex:1 1 auto}.poll__option input[type=text]{display:block;box-sizing:border-box;width:100%;font-size:14px;color:#121a24;display:block;outline:0;font-family:inherit;background:#fff;border:1px solid #dbdbdb;border-radius:4px;padding:6px 10px}.poll__option input[type=text]:focus{border-color:#d8a070}.poll__option.selectable{cursor:pointer}.poll__option.editable{display:flex;align-items:center;overflow:visible}.poll__input{display:inline-block;position:relative;border:1px solid #9baec8;box-sizing:border-box;width:18px;height:18px;flex:0 0 auto;margin-right:10px;top:-1px;border-radius:50%;vertical-align:middle;margin-top:auto;margin-bottom:auto;flex:0 0 18px}.poll__input.checkbox{border-radius:4px}.poll__input.active{border-color:#79bd9a;background:#79bd9a}.poll__input:active,.poll__input:focus,.poll__input:hover{border-color:#acd6c1;border-width:4px}.poll__input::-moz-focus-inner{outline:0 !important;border:0}.poll__input:focus,.poll__input:active{outline:0 !important}.poll__number{display:inline-block;width:45px;font-weight:700;flex:0 0 45px}.poll__voted{padding:0 5px;display:inline-block}.poll__voted__mark{font-size:18px}.poll__footer{padding-top:6px;padding-bottom:5px;color:#3e5a7c}.poll__link{display:inline;background:transparent;padding:0;margin:0;border:0;color:#3e5a7c;text-decoration:underline;font-size:inherit}.poll__link:hover{text-decoration:none}.poll__link:active,.poll__link:focus{background-color:rgba(62,90,124,.1)}.poll .button{height:36px;padding:0 16px;margin-right:10px;font-size:14px}.compose-form__poll-wrapper{border-top:1px solid #ebebeb;overflow-x:hidden}.compose-form__poll-wrapper ul{padding:10px}.compose-form__poll-wrapper .poll__footer{border-top:1px solid #ebebeb;padding:10px;display:flex;align-items:center}.compose-form__poll-wrapper .poll__footer button,.compose-form__poll-wrapper .poll__footer select{width:100%;flex:1 1 50%}.compose-form__poll-wrapper .poll__footer button:focus,.compose-form__poll-wrapper .poll__footer select:focus{border-color:#d8a070}.compose-form__poll-wrapper .button.button-secondary{font-size:14px;font-weight:400;padding:6px 10px;height:auto;line-height:inherit;color:#3e5a7c;border-color:#3e5a7c;margin-right:5px}.compose-form__poll-wrapper li{display:flex;align-items:center}.compose-form__poll-wrapper li .poll__option{flex:0 0 auto;width:calc(100% - (23px + 6px));margin-right:6px}.compose-form__poll-wrapper select{appearance:none;box-sizing:border-box;font-size:14px;color:#121a24;display:inline-block;width:auto;outline:0;font-family:inherit;background:#fff url(\"data:image/svg+xml;utf8,\") no-repeat right 8px center/auto 16px;border:1px solid #dbdbdb;border-radius:4px;padding:6px 10px;padding-right:30px}.compose-form__poll-wrapper .icon-button.disabled{color:#dbdbdb}.muted .poll{color:#3e5a7c}.muted .poll__chart{background:rgba(109,137,175,.2)}.muted .poll__chart.leading{background:rgba(216,160,112,.2)}.container{box-sizing:border-box;max-width:1235px;margin:0 auto;position:relative}@media screen and (max-width: 1255px){.container{width:100%;padding:0 10px}}.rich-formatting{font-family:sans-serif,sans-serif;font-size:14px;font-weight:400;line-height:1.7;word-wrap:break-word;color:#9baec8}.rich-formatting a{color:#d8a070;text-decoration:underline}.rich-formatting a:hover,.rich-formatting a:focus,.rich-formatting a:active{text-decoration:none}.rich-formatting p,.rich-formatting li{color:#9baec8}.rich-formatting p{margin-top:0;margin-bottom:.85em}.rich-formatting p:last-child{margin-bottom:0}.rich-formatting strong{font-weight:700;color:#d9e1e8}.rich-formatting em{font-style:italic;color:#d9e1e8}.rich-formatting code{font-size:.85em;background:#040609;border-radius:4px;padding:.2em .3em}.rich-formatting h1,.rich-formatting h2,.rich-formatting h3,.rich-formatting h4,.rich-formatting h5,.rich-formatting h6{font-family:sans-serif,sans-serif;margin-top:1.275em;margin-bottom:.85em;font-weight:500;color:#d9e1e8}.rich-formatting h1{font-size:2em}.rich-formatting h2{font-size:1.75em}.rich-formatting h3{font-size:1.5em}.rich-formatting h4{font-size:1.25em}.rich-formatting h5,.rich-formatting h6{font-size:1em}.rich-formatting ul{list-style:disc}.rich-formatting ol{list-style:decimal}.rich-formatting ul,.rich-formatting ol{margin:0;padding:0;padding-left:2em;margin-bottom:.85em}.rich-formatting ul[type=a],.rich-formatting ol[type=a]{list-style-type:lower-alpha}.rich-formatting ul[type=i],.rich-formatting ol[type=i]{list-style-type:lower-roman}.rich-formatting hr{width:100%;height:0;border:0;border-bottom:1px solid #192432;margin:1.7em 0}.rich-formatting hr.spacer{height:1px;border:0}.rich-formatting table{width:100%;border-collapse:collapse;break-inside:auto;margin-top:24px;margin-bottom:32px}.rich-formatting table thead tr,.rich-formatting table tbody tr{border-bottom:1px solid #192432;font-size:1em;line-height:1.625;font-weight:400;text-align:left;color:#9baec8}.rich-formatting table thead tr{border-bottom-width:2px;line-height:1.5;font-weight:500;color:#3e5a7c}.rich-formatting table th,.rich-formatting table td{padding:8px;align-self:start;align-items:start;word-break:break-all}.rich-formatting table th.nowrap,.rich-formatting table td.nowrap{width:25%;position:relative}.rich-formatting table th.nowrap::before,.rich-formatting table td.nowrap::before{content:\" \";visibility:hidden}.rich-formatting table th.nowrap span,.rich-formatting table td.nowrap span{position:absolute;left:8px;right:8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.rich-formatting>:first-child{margin-top:0}.information-board{background:#0b1016;padding:20px 0}.information-board .container-alt{position:relative;padding-right:295px}.information-board__sections{display:flex;justify-content:space-between;flex-wrap:wrap}.information-board__section{flex:1 0 0;font-family:sans-serif,sans-serif;font-size:16px;line-height:28px;color:#fff;text-align:right;padding:10px 15px}.information-board__section span,.information-board__section strong{display:block}.information-board__section span:last-child{color:#d9e1e8}.information-board__section strong{font-family:sans-serif,sans-serif;font-weight:500;font-size:32px;line-height:48px}@media screen and (max-width: 700px){.information-board__section{text-align:center}}.information-board .panel{position:absolute;width:280px;box-sizing:border-box;background:#040609;padding:20px;padding-top:10px;border-radius:4px 4px 0 0;right:0;bottom:-40px}.information-board .panel .panel-header{font-family:sans-serif,sans-serif;font-size:14px;line-height:24px;font-weight:500;color:#9baec8;padding-bottom:5px;margin-bottom:15px;border-bottom:1px solid #192432;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.information-board .panel .panel-header a,.information-board .panel .panel-header span{font-weight:400;color:#7a93b6}.information-board .panel .panel-header a{text-decoration:none}.information-board .owner{text-align:center}.information-board .owner .avatar{width:80px;height:80px;width:80px;height:80px;background-size:80px 80px;margin:0 auto;margin-bottom:15px}.information-board .owner .avatar img{display:block;width:80px;height:80px;border-radius:48px;border-radius:8%;background-position:50%;background-clip:padding-box}.information-board .owner .name{font-size:14px}.information-board .owner .name a{display:block;color:#fff;text-decoration:none}.information-board .owner .name a:hover .display_name{text-decoration:underline}.information-board .owner .name .username{display:block;color:#9baec8}.landing-page p,.landing-page li{font-family:sans-serif,sans-serif;font-size:16px;font-weight:400;font-size:16px;line-height:30px;margin-bottom:12px;color:#9baec8}.landing-page p a,.landing-page li a{color:#d8a070;text-decoration:underline}.landing-page em{display:inline;margin:0;padding:0;font-weight:700;background:transparent;font-family:inherit;font-size:inherit;line-height:inherit;color:#bcc9da}.landing-page h1{font-family:sans-serif,sans-serif;font-size:26px;line-height:30px;font-weight:500;margin-bottom:20px;color:#d9e1e8}.landing-page h1 small{font-family:sans-serif,sans-serif;display:block;font-size:18px;font-weight:400;color:#bcc9da}.landing-page h2{font-family:sans-serif,sans-serif;font-size:22px;line-height:26px;font-weight:500;margin-bottom:20px;color:#d9e1e8}.landing-page h3{font-family:sans-serif,sans-serif;font-size:18px;line-height:24px;font-weight:500;margin-bottom:20px;color:#d9e1e8}.landing-page h4{font-family:sans-serif,sans-serif;font-size:16px;line-height:24px;font-weight:500;margin-bottom:20px;color:#d9e1e8}.landing-page h5{font-family:sans-serif,sans-serif;font-size:14px;line-height:24px;font-weight:500;margin-bottom:20px;color:#d9e1e8}.landing-page h6{font-family:sans-serif,sans-serif;font-size:12px;line-height:24px;font-weight:500;margin-bottom:20px;color:#d9e1e8}.landing-page ul,.landing-page ol{margin-left:20px}.landing-page ul[type=a],.landing-page ol[type=a]{list-style-type:lower-alpha}.landing-page ul[type=i],.landing-page ol[type=i]{list-style-type:lower-roman}.landing-page ul{list-style:disc}.landing-page ol{list-style:decimal}.landing-page li>ol,.landing-page li>ul{margin-top:6px}.landing-page hr{width:100%;height:0;border:0;border-bottom:1px solid rgba(62,90,124,.6);margin:20px 0}.landing-page hr.spacer{height:1px;border:0}.landing-page__information,.landing-page__forms{padding:20px}.landing-page__call-to-action{background:#121a24;border-radius:4px;padding:25px 40px;overflow:hidden;box-sizing:border-box}.landing-page__call-to-action .row{width:100%;display:flex;flex-direction:row-reverse;flex-wrap:nowrap;justify-content:space-between;align-items:center}.landing-page__call-to-action .row__information-board{display:flex;justify-content:flex-end;align-items:flex-end}.landing-page__call-to-action .row__information-board .information-board__section{flex:1 0 auto;padding:0 10px}@media screen and (max-width: 415px){.landing-page__call-to-action .row__information-board{width:100%;justify-content:space-between}}.landing-page__call-to-action .row__mascot{flex:1;margin:10px -50px 0 0}@media screen and (max-width: 415px){.landing-page__call-to-action .row__mascot{display:none}}.landing-page__logo{margin-right:20px}.landing-page__logo img{height:50px;width:auto;mix-blend-mode:lighten}.landing-page__information{padding:45px 40px;margin-bottom:10px}.landing-page__information:last-child{margin-bottom:0}.landing-page__information strong{font-weight:500;color:#bcc9da}.landing-page__information .account{border-bottom:0;padding:0}.landing-page__information .account__display-name{align-items:center;display:flex;margin-right:5px}.landing-page__information .account div.account__display-name:hover .display-name strong{text-decoration:none}.landing-page__information .account div.account__display-name .account__avatar{cursor:default}.landing-page__information .account__avatar-wrapper{margin-left:0;flex:0 0 auto}.landing-page__information .account__avatar{width:44px;height:44px;background-size:44px 44px;width:44px;height:44px;background-size:44px 44px}.landing-page__information .account .display-name{font-size:15px}.landing-page__information .account .display-name__account{font-size:14px}@media screen and (max-width: 960px){.landing-page__information .contact{margin-top:30px}}@media screen and (max-width: 700px){.landing-page__information{padding:25px 20px}}.landing-page__information,.landing-page__forms,.landing-page #mastodon-timeline{box-sizing:border-box;background:#121a24;border-radius:4px;box-shadow:0 0 6px rgba(0,0,0,.1)}.landing-page__mascot{height:104px;position:relative;left:-40px;bottom:25px}.landing-page__mascot img{height:190px;width:auto}.landing-page__short-description .row{display:flex;flex-wrap:wrap;align-items:center;margin-bottom:40px}@media screen and (max-width: 700px){.landing-page__short-description .row{margin-bottom:20px}}.landing-page__short-description p a{color:#d9e1e8}.landing-page__short-description h1{font-weight:500;color:#fff;margin-bottom:0}.landing-page__short-description h1 small{color:#9baec8}.landing-page__short-description h1 small span{color:#d9e1e8}.landing-page__short-description p:last-child{margin-bottom:0}.landing-page__hero{margin-bottom:10px}.landing-page__hero img{display:block;margin:0;max-width:100%;height:auto;border-radius:4px}@media screen and (max-width: 840px){.landing-page .information-board .container-alt{padding-right:20px}.landing-page .information-board .panel{position:static;margin-top:20px;width:100%;border-radius:4px}.landing-page .information-board .panel .panel-header{text-align:center}}@media screen and (max-width: 675px){.landing-page .header-wrapper{padding-top:0}.landing-page .header-wrapper.compact{padding-bottom:0}.landing-page .header-wrapper.compact .hero .heading{text-align:initial}.landing-page .header .container-alt,.landing-page .features .container-alt{display:block}}.landing-page .cta{margin:20px}.landing{margin-bottom:100px}@media screen and (max-width: 738px){.landing{margin-bottom:0}}.landing__brand{display:flex;justify-content:center;align-items:center;padding:50px}.landing__brand svg{fill:#fff;height:52px}@media screen and (max-width: 415px){.landing__brand{padding:0;margin-bottom:30px}}.landing .directory{margin-top:30px;background:transparent;box-shadow:none;border-radius:0}.landing .hero-widget{margin-top:30px;margin-bottom:0}.landing .hero-widget h4{padding:10px;text-transform:uppercase;font-weight:700;font-size:13px;color:#9baec8}.landing .hero-widget__text{border-radius:0;padding-bottom:0}.landing .hero-widget__footer{background:#121a24;padding:10px;border-radius:0 0 4px 4px;display:flex}.landing .hero-widget__footer__column{flex:1 1 50%}.landing .hero-widget .account{padding:10px 0;border-bottom:0}.landing .hero-widget .account .account__display-name{display:flex;align-items:center}.landing .hero-widget .account .account__avatar{width:44px;height:44px;background-size:44px 44px}.landing .hero-widget__counter{padding:10px}.landing .hero-widget__counter strong{font-family:sans-serif,sans-serif;font-size:15px;font-weight:700;display:block}.landing .hero-widget__counter span{font-size:14px;color:#9baec8}.landing .simple_form .user_agreement .label_input>label{font-weight:400;color:#9baec8}.landing .simple_form p.lead{color:#9baec8;font-size:15px;line-height:20px;font-weight:400;margin-bottom:25px}.landing__grid{max-width:960px;margin:0 auto;display:grid;grid-template-columns:minmax(0, 50%) minmax(0, 50%);grid-gap:30px}@media screen and (max-width: 738px){.landing__grid{grid-template-columns:minmax(0, 100%);grid-gap:10px}.landing__grid__column-login{grid-row:1;display:flex;flex-direction:column}.landing__grid__column-login .box-widget{order:2;flex:0 0 auto}.landing__grid__column-login .hero-widget{margin-top:0;margin-bottom:10px;order:1;flex:0 0 auto}.landing__grid__column-registration{grid-row:2}.landing__grid .directory{margin-top:10px}}@media screen and (max-width: 415px){.landing__grid{grid-gap:0}.landing__grid .hero-widget{display:block;margin-bottom:0;box-shadow:none}.landing__grid .hero-widget__img,.landing__grid .hero-widget__img img,.landing__grid .hero-widget__footer{border-radius:0}.landing__grid .hero-widget,.landing__grid .box-widget,.landing__grid .directory__tag{border-bottom:1px solid #202e3f}.landing__grid .directory{margin-top:0}.landing__grid .directory__tag{margin-bottom:0}.landing__grid .directory__tag>a,.landing__grid .directory__tag>div{border-radius:0;box-shadow:none}.landing__grid .directory__tag:last-child{border-bottom:0}}.brand{position:relative;text-decoration:none}.brand__tagline{display:block;position:absolute;bottom:-10px;left:50px;width:300px;color:#9baec8;text-decoration:none;font-size:14px}@media screen and (max-width: 415px){.brand__tagline{position:static;width:auto;margin-top:20px;color:#3e5a7c}}.table{width:100%;max-width:100%;border-spacing:0;border-collapse:collapse}.table th,.table td{padding:8px;line-height:18px;vertical-align:top;border-top:1px solid #121a24;text-align:left;background:#0b1016}.table>thead>tr>th{vertical-align:bottom;border-bottom:2px solid #121a24;border-top:0;font-weight:500}.table>tbody>tr>th{font-weight:500}.table>tbody>tr:nth-child(odd)>td,.table>tbody>tr:nth-child(odd)>th{background:#121a24}.table a{color:#d8a070;text-decoration:underline}.table a:hover{text-decoration:none}.table strong{font-weight:500}.table strong:lang(ja){font-weight:700}.table strong:lang(ko){font-weight:700}.table strong:lang(zh-CN){font-weight:700}.table strong:lang(zh-HK){font-weight:700}.table strong:lang(zh-TW){font-weight:700}.table.inline-table>tbody>tr:nth-child(odd)>td,.table.inline-table>tbody>tr:nth-child(odd)>th{background:transparent}.table.inline-table>tbody>tr:first-child>td,.table.inline-table>tbody>tr:first-child>th{border-top:0}.table.batch-table>thead>tr>th{background:#121a24;border-top:1px solid #040609;border-bottom:1px solid #040609}.table.batch-table>thead>tr>th:first-child{border-radius:4px 0 0;border-left:1px solid #040609}.table.batch-table>thead>tr>th:last-child{border-radius:0 4px 0 0;border-right:1px solid #040609}.table--invites tbody td{vertical-align:middle}.table-wrapper{overflow:auto;margin-bottom:20px}samp{font-family:monospace,monospace}button.table-action-link{background:transparent;border:0;font:inherit}button.table-action-link,a.table-action-link{text-decoration:none;display:inline-block;margin-right:5px;padding:0 10px;color:#9baec8;font-weight:500}button.table-action-link:hover,a.table-action-link:hover{color:#fff}button.table-action-link i.fa,a.table-action-link i.fa{font-weight:400;margin-right:5px}button.table-action-link:first-child,a.table-action-link:first-child{padding-left:0}.batch-table__toolbar,.batch-table__row{display:flex}.batch-table__toolbar__select,.batch-table__row__select{box-sizing:border-box;padding:8px 16px;cursor:pointer;min-height:100%}.batch-table__toolbar__select input,.batch-table__row__select input{margin-top:8px}.batch-table__toolbar__select--aligned,.batch-table__row__select--aligned{display:flex;align-items:center}.batch-table__toolbar__select--aligned input,.batch-table__row__select--aligned input{margin-top:0}.batch-table__toolbar__actions,.batch-table__toolbar__content,.batch-table__row__actions,.batch-table__row__content{padding:8px 0;padding-right:16px;flex:1 1 auto}.batch-table__toolbar{border:1px solid #040609;background:#121a24;border-radius:4px 0 0;height:47px;align-items:center}.batch-table__toolbar__actions{text-align:right;padding-right:11px}.batch-table__form{padding:16px;border:1px solid #040609;border-top:0;background:#121a24}.batch-table__form .fields-row{padding-top:0;margin-bottom:0}.batch-table__row{border:1px solid #040609;border-top:0;background:#0b1016}@media screen and (max-width: 415px){.optional .batch-table__row:first-child{border-top:1px solid #040609}}.batch-table__row:hover{background:#0f151d}.batch-table__row:nth-child(even){background:#121a24}.batch-table__row:nth-child(even):hover{background:#151f2b}.batch-table__row__content{padding-top:12px;padding-bottom:16px}.batch-table__row__content--unpadded{padding:0}.batch-table__row__content--with-image{display:flex;align-items:center}.batch-table__row__content__image{flex:0 0 auto;display:flex;justify-content:center;align-items:center;margin-right:10px}.batch-table__row__content__image .emojione{width:32px;height:32px}.batch-table__row__content__text{flex:1 1 auto}.batch-table__row__content__extra{flex:0 0 auto;text-align:right;color:#9baec8;font-weight:500}.batch-table__row .directory__tag{margin:0;width:100%}.batch-table__row .directory__tag a{background:transparent;border-radius:0}@media screen and (max-width: 415px){.batch-table.optional .batch-table__toolbar,.batch-table.optional .batch-table__row__select{display:none}}.batch-table .status__content{padding-top:0}.batch-table .status__content strong{font-weight:700}.batch-table .nothing-here{border:1px solid #040609;border-top:0;box-shadow:none}@media screen and (max-width: 415px){.batch-table .nothing-here{border-top:1px solid #040609}}@media screen and (max-width: 870px){.batch-table .accounts-table tbody td.optional{display:none}}.admin-wrapper{display:flex;justify-content:center;width:100%;min-height:100vh}.admin-wrapper .sidebar-wrapper{min-height:100vh;overflow:hidden;pointer-events:none;flex:1 1 auto}.admin-wrapper .sidebar-wrapper__inner{display:flex;justify-content:flex-end;background:#121a24;height:100%}.admin-wrapper .sidebar{width:240px;padding:0;pointer-events:auto}.admin-wrapper .sidebar__toggle{display:none;background:#202e3f;height:48px}.admin-wrapper .sidebar__toggle__logo{flex:1 1 auto}.admin-wrapper .sidebar__toggle__logo a{display:inline-block;padding:15px}.admin-wrapper .sidebar__toggle__logo svg{fill:#fff;height:20px;position:relative;bottom:-2px}.admin-wrapper .sidebar__toggle__icon{display:block;color:#9baec8;text-decoration:none;flex:0 0 auto;font-size:20px;padding:15px}.admin-wrapper .sidebar__toggle a:hover,.admin-wrapper .sidebar__toggle a:focus,.admin-wrapper .sidebar__toggle a:active{background:#26374d}.admin-wrapper .sidebar .logo{display:block;margin:40px auto;width:100px;height:100px}@media screen and (max-width: 600px){.admin-wrapper .sidebar>a:first-child{display:none}}.admin-wrapper .sidebar ul{list-style:none;border-radius:4px 0 0 4px;overflow:hidden;margin-bottom:20px}@media screen and (max-width: 600px){.admin-wrapper .sidebar ul{margin-bottom:0}}.admin-wrapper .sidebar ul a{display:block;padding:15px;color:#9baec8;text-decoration:none;transition:all 200ms linear;transition-property:color,background-color;border-radius:4px 0 0 4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.admin-wrapper .sidebar ul a i.fa{margin-right:5px}.admin-wrapper .sidebar ul a:hover{color:#fff;background-color:#0a0e13;transition:all 100ms linear;transition-property:color,background-color}.admin-wrapper .sidebar ul a.selected{background:#0f151d;border-radius:4px 0 0}.admin-wrapper .sidebar ul ul{background:#0b1016;border-radius:0 0 0 4px;margin:0}.admin-wrapper .sidebar ul ul a{border:0;padding:15px 35px}.admin-wrapper .sidebar ul .simple-navigation-active-leaf a{color:#fff;background-color:#d8a070;border-bottom:0;border-radius:0}.admin-wrapper .sidebar ul .simple-navigation-active-leaf a:hover{background-color:#ddad84}.admin-wrapper .sidebar>ul>.simple-navigation-active-leaf a{border-radius:4px 0 0 4px}.admin-wrapper .content-wrapper{box-sizing:border-box;width:100%;max-width:840px;flex:1 1 auto}@media screen and (max-width: 1080px){.admin-wrapper .sidebar-wrapper--empty{display:none}.admin-wrapper .sidebar-wrapper{width:240px;flex:0 0 auto}}@media screen and (max-width: 600px){.admin-wrapper .sidebar-wrapper{width:100%}}.admin-wrapper .content{padding:20px 15px;padding-top:60px;padding-left:25px}@media screen and (max-width: 600px){.admin-wrapper .content{max-width:none;padding:15px;padding-top:30px}}.admin-wrapper .content-heading{display:flex;padding-bottom:40px;border-bottom:1px solid #202e3f;margin:-15px -15px 40px 0;flex-wrap:wrap;align-items:center;justify-content:space-between}.admin-wrapper .content-heading>*{margin-top:15px;margin-right:15px}.admin-wrapper .content-heading-actions{display:inline-flex}.admin-wrapper .content-heading-actions>:not(:first-child){margin-left:5px}@media screen and (max-width: 600px){.admin-wrapper .content-heading{border-bottom:0;padding-bottom:0}}.admin-wrapper .content h2{color:#d9e1e8;font-size:24px;line-height:28px;font-weight:400}@media screen and (max-width: 600px){.admin-wrapper .content h2{font-weight:700}}.admin-wrapper .content h3{color:#d9e1e8;font-size:20px;line-height:28px;font-weight:400;margin-bottom:30px}.admin-wrapper .content h4{text-transform:uppercase;font-size:13px;font-weight:700;color:#9baec8;padding-bottom:8px;margin-bottom:8px;border-bottom:1px solid #202e3f}.admin-wrapper .content h6{font-size:16px;color:#d9e1e8;line-height:28px;font-weight:500}.admin-wrapper .content .fields-group h6{color:#fff;font-weight:500}.admin-wrapper .content .directory__tag>a,.admin-wrapper .content .directory__tag>div{box-shadow:none}.admin-wrapper .content .directory__tag .table-action-link .fa{color:inherit}.admin-wrapper .content .directory__tag h4{font-size:18px;font-weight:700;color:#fff;text-transform:none;padding-bottom:0;margin-bottom:0;border-bottom:none}.admin-wrapper .content>p{font-size:14px;line-height:21px;color:#d9e1e8;margin-bottom:20px}.admin-wrapper .content>p strong{color:#fff;font-weight:500}.admin-wrapper .content>p strong:lang(ja){font-weight:700}.admin-wrapper .content>p strong:lang(ko){font-weight:700}.admin-wrapper .content>p strong:lang(zh-CN){font-weight:700}.admin-wrapper .content>p strong:lang(zh-HK){font-weight:700}.admin-wrapper .content>p strong:lang(zh-TW){font-weight:700}.admin-wrapper .content hr{width:100%;height:0;border:0;border-bottom:1px solid rgba(62,90,124,.6);margin:20px 0}.admin-wrapper .content hr.spacer{height:1px;border:0}@media screen and (max-width: 600px){.admin-wrapper{display:block}.admin-wrapper .sidebar-wrapper{min-height:0}.admin-wrapper .sidebar{width:100%;padding:0;height:auto}.admin-wrapper .sidebar__toggle{display:flex}.admin-wrapper .sidebar>ul{display:none}.admin-wrapper .sidebar ul a,.admin-wrapper .sidebar ul ul a{border-radius:0;border-bottom:1px solid #192432;transition:none}.admin-wrapper .sidebar ul a:hover,.admin-wrapper .sidebar ul ul a:hover{transition:none}.admin-wrapper .sidebar ul ul{border-radius:0}.admin-wrapper .sidebar ul .simple-navigation-active-leaf a{border-bottom-color:#d8a070}}hr.spacer{width:100%;border:0;margin:20px 0;height:1px}body .muted-hint,.admin-wrapper .content .muted-hint{color:#9baec8}body .muted-hint a,.admin-wrapper .content .muted-hint a{color:#d8a070}body .positive-hint,.admin-wrapper .content .positive-hint{color:#79bd9a;font-weight:500}body .negative-hint,.admin-wrapper .content .negative-hint{color:#df405a;font-weight:500}body .neutral-hint,.admin-wrapper .content .neutral-hint{color:#3e5a7c;font-weight:500}body .warning-hint,.admin-wrapper .content .warning-hint{color:#ca8f04;font-weight:500}.filters{display:flex;flex-wrap:wrap}.filters .filter-subset{flex:0 0 auto;margin:0 40px 20px 0}.filters .filter-subset:last-child{margin-bottom:30px}.filters .filter-subset ul{margin-top:5px;list-style:none}.filters .filter-subset ul li{display:inline-block;margin-right:5px}.filters .filter-subset strong{font-weight:500;text-transform:uppercase;font-size:12px}.filters .filter-subset strong:lang(ja){font-weight:700}.filters .filter-subset strong:lang(ko){font-weight:700}.filters .filter-subset strong:lang(zh-CN){font-weight:700}.filters .filter-subset strong:lang(zh-HK){font-weight:700}.filters .filter-subset strong:lang(zh-TW){font-weight:700}.filters .filter-subset--with-select strong{display:block;margin-bottom:10px}.filters .filter-subset a{display:inline-block;color:#9baec8;text-decoration:none;text-transform:uppercase;font-size:12px;font-weight:500;border-bottom:2px solid #121a24}.filters .filter-subset a:hover{color:#fff;border-bottom:2px solid #1b2635}.filters .filter-subset a.selected{color:#d8a070;border-bottom:2px solid #d8a070}.flavour-screen{display:block;margin:10px auto;max-width:100%}.flavour-description{display:block;font-size:16px;margin:10px 0}.flavour-description>p{margin:10px 0}.report-accounts{display:flex;flex-wrap:wrap;margin-bottom:20px}.report-accounts__item{display:flex;flex:250px;flex-direction:column;margin:0 5px}.report-accounts__item>strong{display:block;margin:0 0 10px -5px;font-weight:500;font-size:14px;line-height:18px;color:#d9e1e8}.report-accounts__item>strong:lang(ja){font-weight:700}.report-accounts__item>strong:lang(ko){font-weight:700}.report-accounts__item>strong:lang(zh-CN){font-weight:700}.report-accounts__item>strong:lang(zh-HK){font-weight:700}.report-accounts__item>strong:lang(zh-TW){font-weight:700}.report-accounts__item .account-card{flex:1 1 auto}.report-status,.account-status{display:flex;margin-bottom:10px}.report-status .activity-stream,.account-status .activity-stream{flex:2 0 0;margin-right:20px;max-width:calc(100% - 60px)}.report-status .activity-stream .entry,.account-status .activity-stream .entry{border-radius:4px}.report-status__actions,.account-status__actions{flex:0 0 auto;display:flex;flex-direction:column}.report-status__actions .icon-button,.account-status__actions .icon-button{font-size:24px;width:24px;text-align:center;margin-bottom:10px}.simple_form.new_report_note,.simple_form.new_account_moderation_note{max-width:100%}.batch-form-box{display:flex;flex-wrap:wrap;margin-bottom:5px}.batch-form-box #form_status_batch_action{margin:0 5px 5px 0;font-size:14px}.batch-form-box input.button{margin:0 5px 5px 0}.batch-form-box .media-spoiler-toggle-buttons{margin-left:auto}.batch-form-box .media-spoiler-toggle-buttons .button{overflow:visible;margin:0 0 5px 5px;float:right}.back-link{margin-bottom:10px;font-size:14px}.back-link a{color:#d8a070;text-decoration:none}.back-link a:hover{text-decoration:underline}.spacer{flex:1 1 auto}.log-entry{line-height:20px;padding:15px 0;background:#121a24;border-bottom:1px solid #192432}.log-entry:last-child{border-bottom:0}.log-entry__header{display:flex;justify-content:flex-start;align-items:center;color:#9baec8;font-size:14px;padding:0 10px}.log-entry__avatar{margin-right:10px}.log-entry__avatar .avatar{display:block;margin:0;border-radius:50%;width:40px;height:40px}.log-entry__content{max-width:calc(100% - 90px)}.log-entry__title{word-wrap:break-word}.log-entry__timestamp{color:#3e5a7c}.log-entry a,.log-entry .username,.log-entry .target{color:#d9e1e8;text-decoration:none;font-weight:500}a.name-tag,.name-tag,a.inline-name-tag,.inline-name-tag{text-decoration:none;color:#d9e1e8}a.name-tag .username,.name-tag .username,a.inline-name-tag .username,.inline-name-tag .username{font-weight:500}a.name-tag.suspended .username,.name-tag.suspended .username,a.inline-name-tag.suspended .username,.inline-name-tag.suspended .username{text-decoration:line-through;color:#e87487}a.name-tag.suspended .avatar,.name-tag.suspended .avatar,a.inline-name-tag.suspended .avatar,.inline-name-tag.suspended .avatar{filter:grayscale(100%);opacity:.8}a.name-tag,.name-tag{display:flex;align-items:center}a.name-tag .avatar,.name-tag .avatar{display:block;margin:0;margin-right:5px;border-radius:50%}a.name-tag.suspended .avatar,.name-tag.suspended .avatar{filter:grayscale(100%);opacity:.8}.speech-bubble{margin-bottom:20px;border-left:4px solid #d8a070}.speech-bubble.positive{border-left-color:#79bd9a}.speech-bubble.negative{border-left-color:#e87487}.speech-bubble.warning{border-left-color:#ca8f04}.speech-bubble__bubble{padding:16px;padding-left:14px;font-size:15px;line-height:20px;border-radius:4px 4px 4px 0;position:relative;font-weight:500}.speech-bubble__bubble a{color:#9baec8}.speech-bubble__owner{padding:8px;padding-left:12px}.speech-bubble time{color:#3e5a7c}.report-card{background:#121a24;border-radius:4px;margin-bottom:20px}.report-card__profile{display:flex;justify-content:space-between;align-items:center;padding:15px}.report-card__profile .account{padding:0;border:0}.report-card__profile .account__avatar-wrapper{margin-left:0}.report-card__profile__stats{flex:0 0 auto;font-weight:500;color:#9baec8;text-transform:uppercase;text-align:right}.report-card__profile__stats a{color:inherit;text-decoration:none}.report-card__profile__stats a:focus,.report-card__profile__stats a:hover,.report-card__profile__stats a:active{color:#b5c3d6}.report-card__profile__stats .red{color:#df405a}.report-card__summary__item{display:flex;justify-content:flex-start;border-top:1px solid #0b1016}.report-card__summary__item:hover{background:#151f2b}.report-card__summary__item__reported-by,.report-card__summary__item__assigned{padding:15px;flex:0 0 auto;box-sizing:border-box;width:150px;color:#9baec8}.report-card__summary__item__reported-by,.report-card__summary__item__reported-by .username,.report-card__summary__item__assigned,.report-card__summary__item__assigned .username{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.report-card__summary__item__content{flex:1 1 auto;max-width:calc(100% - 300px)}.report-card__summary__item__content__icon{color:#3e5a7c;margin-right:4px;font-weight:500}.report-card__summary__item__content a{display:block;box-sizing:border-box;width:100%;padding:15px;text-decoration:none;color:#9baec8}.one-line{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ellipsized-ip{display:inline-block;max-width:120px;overflow:hidden;text-overflow:ellipsis;vertical-align:middle}.admin-account-bio{display:flex;flex-wrap:wrap;margin:0 -5px;margin-top:20px}.admin-account-bio>div{box-sizing:border-box;padding:0 5px;margin-bottom:10px;flex:1 0 50%}.admin-account-bio .account__header__fields,.admin-account-bio .account__header__content{background:#202e3f;border-radius:4px;height:100%}.admin-account-bio .account__header__fields{margin:0;border:0}.admin-account-bio .account__header__fields a{color:#e1b590}.admin-account-bio .account__header__fields dl:first-child .verified{border-radius:0 4px 0 0}.admin-account-bio .account__header__fields .verified a{color:#79bd9a}.admin-account-bio .account__header__content{box-sizing:border-box;padding:20px;color:#fff}.center-text{text-align:center}.announcements-list{border:1px solid #192432;border-radius:4px}.announcements-list__item{padding:15px 0;background:#121a24;border-bottom:1px solid #192432}.announcements-list__item__title{padding:0 15px;display:block;font-weight:500;font-size:18px;line-height:1.5;color:#d9e1e8;text-decoration:none;margin-bottom:10px}.announcements-list__item__title:hover,.announcements-list__item__title:focus,.announcements-list__item__title:active{color:#fff}.announcements-list__item__meta{padding:0 15px;color:#3e5a7c}.announcements-list__item__action-bar{display:flex;justify-content:space-between;align-items:center}.announcements-list__item:last-child{border-bottom:0}.emojione[title=\":wavy_dash:\"],.emojione[title=\":waving_black_flag:\"],.emojione[title=\":water_buffalo:\"],.emojione[title=\":video_game:\"],.emojione[title=\":video_camera:\"],.emojione[title=\":vhs:\"],.emojione[title=\":turkey:\"],.emojione[title=\":tophat:\"],.emojione[title=\":top:\"],.emojione[title=\":tm:\"],.emojione[title=\":telephone_receiver:\"],.emojione[title=\":spider:\"],.emojione[title=\":speaking_head_in_silhouette:\"],.emojione[title=\":spades:\"],.emojione[title=\":soon:\"],.emojione[title=\":registered:\"],.emojione[title=\":on:\"],.emojione[title=\":musical_score:\"],.emojione[title=\":movie_camera:\"],.emojione[title=\":mortar_board:\"],.emojione[title=\":microphone:\"],.emojione[title=\":male-guard:\"],.emojione[title=\":lower_left_fountain_pen:\"],.emojione[title=\":lower_left_ballpoint_pen:\"],.emojione[title=\":kaaba:\"],.emojione[title=\":joystick:\"],.emojione[title=\":hole:\"],.emojione[title=\":hocho:\"],.emojione[title=\":heavy_plus_sign:\"],.emojione[title=\":heavy_multiplication_x:\"],.emojione[title=\":heavy_minus_sign:\"],.emojione[title=\":heavy_dollar_sign:\"],.emojione[title=\":heavy_division_sign:\"],.emojione[title=\":heavy_check_mark:\"],.emojione[title=\":guardsman:\"],.emojione[title=\":gorilla:\"],.emojione[title=\":fried_egg:\"],.emojione[title=\":film_projector:\"],.emojione[title=\":female-guard:\"],.emojione[title=\":end:\"],.emojione[title=\":electric_plug:\"],.emojione[title=\":eight_pointed_black_star:\"],.emojione[title=\":dark_sunglasses:\"],.emojione[title=\":currency_exchange:\"],.emojione[title=\":curly_loop:\"],.emojione[title=\":copyright:\"],.emojione[title=\":clubs:\"],.emojione[title=\":camera_with_flash:\"],.emojione[title=\":camera:\"],.emojione[title=\":busts_in_silhouette:\"],.emojione[title=\":bust_in_silhouette:\"],.emojione[title=\":bowling:\"],.emojione[title=\":bomb:\"],.emojione[title=\":black_small_square:\"],.emojione[title=\":black_nib:\"],.emojione[title=\":black_medium_square:\"],.emojione[title=\":black_medium_small_square:\"],.emojione[title=\":black_large_square:\"],.emojione[title=\":black_heart:\"],.emojione[title=\":black_circle:\"],.emojione[title=\":back:\"],.emojione[title=\":ant:\"],.emojione[title=\":8ball:\"]{filter:drop-shadow(1px 1px 0 #ffffff) drop-shadow(-1px 1px 0 #ffffff) drop-shadow(1px -1px 0 #ffffff) drop-shadow(-1px -1px 0 #ffffff)}.hicolor-privacy-icons .status__visibility-icon.fa-globe,.hicolor-privacy-icons .composer--options--dropdown--content--item .fa-globe{color:#1976d2}.hicolor-privacy-icons .status__visibility-icon.fa-unlock,.hicolor-privacy-icons .composer--options--dropdown--content--item .fa-unlock{color:#388e3c}.hicolor-privacy-icons .status__visibility-icon.fa-lock,.hicolor-privacy-icons .composer--options--dropdown--content--item .fa-lock{color:#ffa000}.hicolor-privacy-icons .status__visibility-icon.fa-envelope,.hicolor-privacy-icons .composer--options--dropdown--content--item .fa-envelope{color:#d32f2f}body.rtl{direction:rtl}body.rtl .column-header>button{text-align:right;padding-left:0;padding-right:15px}body.rtl .radio-button__input{margin-right:0;margin-left:10px}body.rtl .directory__card__bar .display-name{margin-left:0;margin-right:15px}body.rtl .display-name{text-align:right}body.rtl .notification__message{margin-left:0;margin-right:68px}body.rtl .drawer__inner__mastodon>img{transform:scaleX(-1)}body.rtl .notification__favourite-icon-wrapper{left:auto;right:-26px}body.rtl .landing-page__logo{margin-right:0;margin-left:20px}body.rtl .landing-page .features-list .features-list__row .visual{margin-left:0;margin-right:15px}body.rtl .column-link__icon,body.rtl .column-header__icon{margin-right:0;margin-left:5px}body.rtl .compose-form .compose-form__buttons-wrapper .character-counter__wrapper{margin-right:0;margin-left:4px}body.rtl .composer--publisher{text-align:left}body.rtl .boost-modal__status-time,body.rtl .favourite-modal__status-time{float:left}body.rtl .navigation-bar__profile{margin-left:0;margin-right:8px}body.rtl .search__input{padding-right:10px;padding-left:30px}body.rtl .search__icon .fa{right:auto;left:10px}body.rtl .columns-area{direction:rtl}body.rtl .column-header__buttons{left:0;right:auto;margin-left:0;margin-right:-15px}body.rtl .column-inline-form .icon-button{margin-left:0;margin-right:5px}body.rtl .column-header__links .text-btn{margin-left:10px;margin-right:0}body.rtl .account__avatar-wrapper{float:right}body.rtl .column-header__back-button{padding-left:5px;padding-right:0}body.rtl .column-header__setting-arrows{float:left}body.rtl .setting-toggle__label{margin-left:0;margin-right:8px}body.rtl .setting-meta__label{float:left}body.rtl .status__avatar{margin-left:10px;margin-right:0;left:auto;right:10px}body.rtl .activity-stream .status.light{padding-left:10px;padding-right:68px}body.rtl .status__info .status__display-name,body.rtl .activity-stream .status.light .status__display-name{padding-left:25px;padding-right:0}body.rtl .activity-stream .pre-header{padding-right:68px;padding-left:0}body.rtl .status__prepend{margin-left:0;margin-right:58px}body.rtl .status__prepend-icon-wrapper{left:auto;right:-26px}body.rtl .activity-stream .pre-header .pre-header__icon{left:auto;right:42px}body.rtl .account__avatar-overlay-overlay{right:auto;left:0}body.rtl .column-back-button--slim-button{right:auto;left:0}body.rtl .status__relative-time,body.rtl .activity-stream .status.light .status__header .status__meta{float:left;text-align:left}body.rtl .status__action-bar__counter{margin-right:0;margin-left:11px}body.rtl .status__action-bar__counter .status__action-bar-button{margin-right:0;margin-left:4px}body.rtl .status__action-bar-button{float:right;margin-right:0;margin-left:18px}body.rtl .status__action-bar-dropdown{float:right}body.rtl .privacy-dropdown__dropdown{margin-left:0;margin-right:40px}body.rtl .privacy-dropdown__option__icon{margin-left:10px;margin-right:0}body.rtl .detailed-status__display-name .display-name{text-align:right}body.rtl .detailed-status__display-avatar{margin-right:0;margin-left:10px;float:right}body.rtl .detailed-status__favorites,body.rtl .detailed-status__reblogs{margin-left:0;margin-right:6px}body.rtl .fa-ul{margin-left:2.14285714em}body.rtl .fa-li{left:auto;right:-2.14285714em}body.rtl .admin-wrapper{direction:rtl}body.rtl .admin-wrapper .sidebar ul a i.fa,body.rtl a.table-action-link i.fa{margin-right:0;margin-left:5px}body.rtl .simple_form .check_boxes .checkbox label{padding-left:0;padding-right:25px}body.rtl .simple_form .input.with_label.boolean label.checkbox{padding-left:25px;padding-right:0}body.rtl .simple_form .check_boxes .checkbox input[type=checkbox],body.rtl .simple_form .input.boolean input[type=checkbox]{left:auto;right:0}body.rtl .simple_form .input.radio_buttons .radio{left:auto;right:0}body.rtl .simple_form .input.radio_buttons .radio>label{padding-right:28px;padding-left:0}body.rtl .simple_form .input-with-append .input input{padding-left:142px;padding-right:0}body.rtl .simple_form .input.boolean label.checkbox{left:auto;right:0}body.rtl .simple_form .input.boolean .label_input,body.rtl .simple_form .input.boolean .hint{padding-left:0;padding-right:28px}body.rtl .simple_form .label_input__append{right:auto;left:3px}body.rtl .simple_form .label_input__append::after{right:auto;left:0;background-image:linear-gradient(to left, rgba(1, 1, 2, 0), #010102)}body.rtl .simple_form select{background:#010102 url(\"data:image/svg+xml;utf8,\") no-repeat left 8px center/auto 16px}body.rtl .table th,body.rtl .table td{text-align:right}body.rtl .filters .filter-subset{margin-right:0;margin-left:45px}body.rtl .landing-page .header-wrapper .mascot{right:60px;left:auto}body.rtl .landing-page__call-to-action .row__information-board{direction:rtl}body.rtl .landing-page .header .hero .floats .float-1{left:-120px;right:auto}body.rtl .landing-page .header .hero .floats .float-2{left:210px;right:auto}body.rtl .landing-page .header .hero .floats .float-3{left:110px;right:auto}body.rtl .landing-page .header .links .brand img{left:0}body.rtl .landing-page .fa-external-link{padding-right:5px;padding-left:0 !important}body.rtl .landing-page .features #mastodon-timeline{margin-right:0;margin-left:30px}@media screen and (min-width: 631px){body.rtl .column,body.rtl .drawer{padding-left:5px;padding-right:5px}body.rtl .column:first-child,body.rtl .drawer:first-child{padding-left:5px;padding-right:10px}body.rtl .columns-area>div .column,body.rtl .columns-area>div .drawer{padding-left:5px;padding-right:5px}}body.rtl .columns-area--mobile .column,body.rtl .columns-area--mobile .drawer{padding-left:0;padding-right:0}body.rtl .public-layout .header .nav-button{margin-left:8px;margin-right:0}body.rtl .public-layout .public-account-header__tabs{margin-left:0;margin-right:20px}body.rtl .landing-page__information .account__display-name{margin-right:0;margin-left:5px}body.rtl .landing-page__information .account__avatar-wrapper{margin-left:12px;margin-right:0}body.rtl .card__bar .display-name{margin-left:0;margin-right:15px;text-align:right}body.rtl .fa-chevron-left::before{content:\"\"}body.rtl .fa-chevron-right::before{content:\"\"}body.rtl .column-back-button__icon{margin-right:0;margin-left:5px}body.rtl .column-header__setting-arrows .column-header__setting-btn:last-child{padding-left:0;padding-right:10px}body.rtl .simple_form .input.radio_buttons .radio>label input{left:auto;right:0}.dashboard__counters{display:flex;flex-wrap:wrap;margin:0 -5px;margin-bottom:20px}.dashboard__counters>div{box-sizing:border-box;flex:0 0 33.333%;padding:0 5px;margin-bottom:10px}.dashboard__counters>div>div,.dashboard__counters>div>a{padding:20px;background:#192432;border-radius:4px;box-sizing:border-box;height:100%}.dashboard__counters>div>a{text-decoration:none;color:inherit;display:block}.dashboard__counters>div>a:hover,.dashboard__counters>div>a:focus,.dashboard__counters>div>a:active{background:#202e3f}.dashboard__counters__num,.dashboard__counters__text{text-align:center;font-weight:500;font-size:24px;line-height:21px;color:#fff;font-family:sans-serif,sans-serif;margin-bottom:20px;line-height:30px}.dashboard__counters__text{font-size:18px}.dashboard__counters__label{font-size:14px;color:#9baec8;text-align:center;font-weight:500}.dashboard__widgets{display:flex;flex-wrap:wrap;margin:0 -5px}.dashboard__widgets>div{flex:0 0 33.333%;margin-bottom:20px}.dashboard__widgets>div>div{padding:0 5px}.dashboard__widgets a:not(.name-tag){color:#d9e1e8;font-weight:500;text-decoration:none}","/* http://meyerweb.com/eric/tools/css/reset/\n v2.0 | 20110126\n License: none (public domain)\n*/\n\nhtml, body, div, span, applet, object, iframe,\nh1, h2, h3, h4, h5, h6, p, blockquote, pre,\na, abbr, acronym, address, big, cite, code,\ndel, dfn, em, img, ins, kbd, q, s, samp,\nsmall, strike, strong, sub, sup, tt, var,\nb, u, i, center,\ndl, dt, dd, ol, ul, li,\nfieldset, form, label, legend,\ntable, caption, tbody, tfoot, thead, tr, th, td,\narticle, aside, canvas, details, embed,\nfigure, figcaption, footer, header, hgroup,\nmenu, nav, output, ruby, section, summary,\ntime, mark, audio, video {\n margin: 0;\n padding: 0;\n border: 0;\n font-size: 100%;\n font: inherit;\n vertical-align: baseline;\n}\n\n/* HTML5 display-role reset for older browsers */\narticle, aside, details, figcaption, figure,\nfooter, header, hgroup, menu, nav, section {\n display: block;\n}\n\nbody {\n line-height: 1;\n}\n\nol, ul {\n list-style: none;\n}\n\nblockquote, q {\n quotes: none;\n}\n\nblockquote:before, blockquote:after,\nq:before, q:after {\n content: '';\n content: none;\n}\n\ntable {\n border-collapse: collapse;\n border-spacing: 0;\n}\n\nhtml {\n scrollbar-color: lighten($ui-base-color, 4%) rgba($base-overlay-background, 0.1);\n}\n\n::-webkit-scrollbar {\n width: 12px;\n height: 12px;\n}\n\n::-webkit-scrollbar-thumb {\n background: lighten($ui-base-color, 4%);\n border: 0px none $base-border-color;\n border-radius: 50px;\n}\n\n::-webkit-scrollbar-thumb:hover {\n background: lighten($ui-base-color, 6%);\n}\n\n::-webkit-scrollbar-thumb:active {\n background: lighten($ui-base-color, 4%);\n}\n\n::-webkit-scrollbar-track {\n border: 0px none $base-border-color;\n border-radius: 0;\n background: rgba($base-overlay-background, 0.1);\n}\n\n::-webkit-scrollbar-track:hover {\n background: $ui-base-color;\n}\n\n::-webkit-scrollbar-track:active {\n background: $ui-base-color;\n}\n\n::-webkit-scrollbar-corner {\n background: transparent;\n}\n","// Commonly used web colors\n$black: #000000; // Black\n$white: #ffffff; // White\n$success-green: #79bd9a; // Padua\n$error-red: #df405a; // Cerise\n$warning-red: #ff5050; // Sunset Orange\n$gold-star: #ca8f04; // Dark Goldenrod\n\n$red-bookmark: $warning-red;\n\n// Pleroma-Dark colors\n$pleroma-bg: #121a24;\n$pleroma-fg: #182230;\n$pleroma-text: #b9b9ba;\n$pleroma-links: #d8a070;\n\n// Values from the classic Mastodon UI\n$classic-base-color: $pleroma-bg;\n$classic-primary-color: #9baec8;\n$classic-secondary-color: #d9e1e8;\n$classic-highlight-color: #d8a070;\n\n// Variables for defaults in UI\n$base-shadow-color: $black !default;\n$base-overlay-background: $black !default;\n$base-border-color: $white !default;\n$simple-background-color: $white !default;\n$valid-value-color: $success-green !default;\n$error-value-color: $error-red !default;\n\n// Tell UI to use selected colors\n$ui-base-color: $classic-base-color !default; // Darkest\n$ui-base-lighter-color: lighten($ui-base-color, 26%) !default; // Lighter darkest\n$ui-primary-color: $classic-primary-color !default; // Lighter\n$ui-secondary-color: $classic-secondary-color !default; // Lightest\n$ui-highlight-color: $classic-highlight-color !default;\n\n// Variables for texts\n$primary-text-color: $white !default;\n$darker-text-color: $ui-primary-color !default;\n$dark-text-color: $ui-base-lighter-color !default;\n$secondary-text-color: $ui-secondary-color !default;\n$highlight-text-color: $ui-highlight-color !default;\n$action-button-color: $ui-base-lighter-color !default;\n// For texts on inverted backgrounds\n$inverted-text-color: $ui-base-color !default;\n$lighter-text-color: $ui-base-lighter-color !default;\n$light-text-color: $ui-primary-color !default;\n\n// Language codes that uses CJK fonts\n$cjk-langs: ja, ko, zh-CN, zh-HK, zh-TW;\n\n// Variables for components\n$media-modal-media-max-width: 100%;\n// put margins on top and bottom of image to avoid the screen covered by image.\n$media-modal-media-max-height: 80%;\n\n$no-gap-breakpoint: 415px;\n\n$font-sans-serif: sans-serif !default;\n$font-display: sans-serif !default;\n$font-monospace: monospace !default;\n\n// Avatar border size (8% default, 100% for rounded avatars)\n$ui-avatar-border-size: 8%;\n\n// More variables\n$dismiss-overlay-width: 4rem;\n","@function hex-color($color) {\n @if type-of($color) == 'color' {\n $color: str-slice(ie-hex-str($color), 4);\n }\n @return '%23' + unquote($color)\n}\n\nbody {\n font-family: $font-sans-serif, sans-serif;\n background: darken($ui-base-color, 7%);\n font-size: 13px;\n line-height: 18px;\n font-weight: 400;\n color: $primary-text-color;\n text-rendering: optimizelegibility;\n font-feature-settings: \"kern\";\n text-size-adjust: none;\n -webkit-tap-highlight-color: rgba(0,0,0,0);\n -webkit-tap-highlight-color: transparent;\n\n &.system-font {\n // system-ui => standard property (Chrome/Android WebView 56+, Opera 43+, Safari 11+)\n // -apple-system => Safari <11 specific\n // BlinkMacSystemFont => Chrome <56 on macOS specific\n // Segoe UI => Windows 7/8/10\n // Oxygen => KDE\n // Ubuntu => Unity/Ubuntu\n // Cantarell => GNOME\n // Fira Sans => Firefox OS\n // Droid Sans => Older Androids (<4.0)\n // Helvetica Neue => Older macOS <10.11\n // $font-sans-serif => web-font (Roboto) fallback and newer Androids (>=4.0)\n font-family: system-ui, -apple-system, BlinkMacSystemFont, \"Segoe UI\", \"Oxygen\", \"Ubuntu\", \"Cantarell\", \"Fira Sans\", \"Droid Sans\", \"Helvetica Neue\", $font-sans-serif, sans-serif;\n }\n\n &.app-body {\n padding: 0;\n\n &.layout-single-column {\n height: auto;\n min-height: 100vh;\n overflow-y: scroll;\n }\n\n &.layout-multiple-columns {\n position: absolute;\n width: 100%;\n height: 100%;\n }\n\n &.with-modals--active {\n overflow-y: hidden;\n }\n }\n\n &.lighter {\n background: $ui-base-color;\n }\n\n &.with-modals {\n overflow-x: hidden;\n overflow-y: scroll;\n\n &--active {\n overflow-y: hidden;\n }\n }\n\n &.embed {\n background: lighten($ui-base-color, 4%);\n margin: 0;\n padding-bottom: 0;\n\n .container {\n position: absolute;\n width: 100%;\n height: 100%;\n overflow: hidden;\n }\n }\n\n &.admin {\n background: darken($ui-base-color, 4%);\n padding: 0;\n }\n\n &.error {\n position: absolute;\n text-align: center;\n color: $darker-text-color;\n background: $ui-base-color;\n width: 100%;\n height: 100%;\n padding: 0;\n display: flex;\n justify-content: center;\n align-items: center;\n\n .dialog {\n vertical-align: middle;\n margin: 20px;\n\n img {\n display: block;\n max-width: 470px;\n width: 100%;\n height: auto;\n margin-top: -120px;\n }\n\n h1 {\n font-size: 20px;\n line-height: 28px;\n font-weight: 400;\n }\n }\n }\n}\n\nbutton {\n font-family: inherit;\n cursor: pointer;\n\n &:focus {\n outline: none;\n }\n}\n\n.app-holder {\n &,\n & > div {\n display: flex;\n width: 100%;\n align-items: center;\n justify-content: center;\n outline: 0 !important;\n }\n}\n\n.layout-single-column .app-holder {\n &,\n & > div {\n min-height: 100vh;\n }\n}\n\n.layout-multiple-columns .app-holder {\n &,\n & > div {\n height: 100%;\n }\n}\n",".container-alt {\n width: 700px;\n margin: 0 auto;\n margin-top: 40px;\n\n @media screen and (max-width: 740px) {\n width: 100%;\n margin: 0;\n }\n}\n\n.logo-container {\n margin: 100px auto 50px;\n\n @media screen and (max-width: 500px) {\n margin: 40px auto 0;\n }\n\n h1 {\n display: flex;\n justify-content: center;\n align-items: center;\n\n svg {\n fill: $primary-text-color;\n height: 42px;\n margin-right: 10px;\n }\n\n a {\n display: flex;\n justify-content: center;\n align-items: center;\n color: $primary-text-color;\n text-decoration: none;\n outline: 0;\n padding: 12px 16px;\n line-height: 32px;\n font-family: $font-display, sans-serif;\n font-weight: 500;\n font-size: 14px;\n }\n }\n}\n\n.compose-standalone {\n .compose-form {\n width: 400px;\n margin: 0 auto;\n padding: 20px 0;\n margin-top: 40px;\n box-sizing: border-box;\n\n @media screen and (max-width: 400px) {\n width: 100%;\n margin-top: 0;\n padding: 20px;\n }\n }\n}\n\n.account-header {\n width: 400px;\n margin: 0 auto;\n display: flex;\n font-size: 13px;\n line-height: 18px;\n box-sizing: border-box;\n padding: 20px 0;\n padding-bottom: 0;\n margin-bottom: -30px;\n margin-top: 40px;\n\n @media screen and (max-width: 440px) {\n width: 100%;\n margin: 0;\n margin-bottom: 10px;\n padding: 20px;\n padding-bottom: 0;\n }\n\n .avatar {\n width: 40px;\n height: 40px;\n @include avatar-size(40px);\n margin-right: 8px;\n\n img {\n width: 100%;\n height: 100%;\n display: block;\n margin: 0;\n border-radius: 4px;\n @include avatar-radius();\n }\n }\n\n .name {\n flex: 1 1 auto;\n color: $secondary-text-color;\n width: calc(100% - 88px);\n\n .username {\n display: block;\n font-weight: 500;\n text-overflow: ellipsis;\n overflow: hidden;\n }\n }\n\n .logout-link {\n display: block;\n font-size: 32px;\n line-height: 40px;\n margin-left: 8px;\n }\n}\n\n.grid-3 {\n display: grid;\n grid-gap: 10px;\n grid-template-columns: 3fr 1fr;\n grid-auto-columns: 25%;\n grid-auto-rows: max-content;\n\n .column-0 {\n grid-column: 1/3;\n grid-row: 1;\n }\n\n .column-1 {\n grid-column: 1;\n grid-row: 2;\n }\n\n .column-2 {\n grid-column: 2;\n grid-row: 2;\n }\n\n .column-3 {\n grid-column: 1/3;\n grid-row: 3;\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n grid-gap: 0;\n grid-template-columns: minmax(0, 100%);\n\n .column-0 {\n grid-column: 1;\n }\n\n .column-1 {\n grid-column: 1;\n grid-row: 3;\n }\n\n .column-2 {\n grid-column: 1;\n grid-row: 2;\n }\n\n .column-3 {\n grid-column: 1;\n grid-row: 4;\n }\n }\n}\n\n.grid-4 {\n display: grid;\n grid-gap: 10px;\n grid-template-columns: repeat(4, minmax(0, 1fr));\n grid-auto-columns: 25%;\n grid-auto-rows: max-content;\n\n .column-0 {\n grid-column: 1 / 5;\n grid-row: 1;\n }\n\n .column-1 {\n grid-column: 1 / 4;\n grid-row: 2;\n }\n\n .column-2 {\n grid-column: 4;\n grid-row: 2;\n }\n\n .column-3 {\n grid-column: 2 / 5;\n grid-row: 3;\n }\n\n .column-4 {\n grid-column: 1;\n grid-row: 3;\n }\n\n .landing-page__call-to-action {\n min-height: 100%;\n }\n\n .flash-message {\n margin-bottom: 10px;\n }\n\n @media screen and (max-width: 738px) {\n grid-template-columns: minmax(0, 50%) minmax(0, 50%);\n\n .landing-page__call-to-action {\n padding: 20px;\n display: flex;\n align-items: center;\n justify-content: center;\n }\n\n .row__information-board {\n width: 100%;\n justify-content: center;\n align-items: center;\n }\n\n .row__mascot {\n display: none;\n }\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n grid-gap: 0;\n grid-template-columns: minmax(0, 100%);\n\n .column-0 {\n grid-column: 1;\n }\n\n .column-1 {\n grid-column: 1;\n grid-row: 3;\n }\n\n .column-2 {\n grid-column: 1;\n grid-row: 2;\n }\n\n .column-3 {\n grid-column: 1;\n grid-row: 5;\n }\n\n .column-4 {\n grid-column: 1;\n grid-row: 4;\n }\n }\n}\n\n.public-layout {\n @media screen and (max-width: $no-gap-breakpoint) {\n padding-top: 48px;\n }\n\n .container {\n max-width: 960px;\n\n @media screen and (max-width: $no-gap-breakpoint) {\n padding: 0;\n }\n }\n\n .header {\n background: lighten($ui-base-color, 8%);\n box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);\n border-radius: 4px;\n height: 48px;\n margin: 10px 0;\n display: flex;\n align-items: stretch;\n justify-content: center;\n flex-wrap: nowrap;\n overflow: hidden;\n\n @media screen and (max-width: $no-gap-breakpoint) {\n position: fixed;\n width: 100%;\n top: 0;\n left: 0;\n margin: 0;\n border-radius: 0;\n box-shadow: none;\n z-index: 110;\n }\n\n & > div {\n flex: 1 1 33.3%;\n min-height: 1px;\n }\n\n .nav-left {\n display: flex;\n align-items: stretch;\n justify-content: flex-start;\n flex-wrap: nowrap;\n }\n\n .nav-center {\n display: flex;\n align-items: stretch;\n justify-content: center;\n flex-wrap: nowrap;\n }\n\n .nav-right {\n display: flex;\n align-items: stretch;\n justify-content: flex-end;\n flex-wrap: nowrap;\n }\n\n .brand {\n display: block;\n padding: 15px;\n\n svg {\n display: block;\n height: 18px;\n width: auto;\n position: relative;\n bottom: -2px;\n fill: $primary-text-color;\n\n @media screen and (max-width: $no-gap-breakpoint) {\n height: 20px;\n }\n }\n\n &:hover,\n &:focus,\n &:active {\n background: lighten($ui-base-color, 12%);\n }\n }\n\n .nav-link {\n display: flex;\n align-items: center;\n padding: 0 1rem;\n font-size: 12px;\n font-weight: 500;\n text-decoration: none;\n color: $darker-text-color;\n white-space: nowrap;\n text-align: center;\n\n &:hover,\n &:focus,\n &:active {\n text-decoration: underline;\n color: $primary-text-color;\n }\n\n @media screen and (max-width: 550px) {\n &.optional {\n display: none;\n }\n }\n }\n\n .nav-button {\n background: lighten($ui-base-color, 16%);\n margin: 8px;\n margin-left: 0;\n border-radius: 4px;\n\n &:hover,\n &:focus,\n &:active {\n text-decoration: none;\n background: lighten($ui-base-color, 20%);\n }\n }\n }\n\n $no-columns-breakpoint: 600px;\n\n .grid {\n display: grid;\n grid-gap: 10px;\n grid-template-columns: minmax(300px, 3fr) minmax(298px, 1fr);\n grid-auto-columns: 25%;\n grid-auto-rows: max-content;\n\n .column-0 {\n grid-row: 1;\n grid-column: 1;\n }\n\n .column-1 {\n grid-row: 1;\n grid-column: 2;\n }\n\n @media screen and (max-width: $no-columns-breakpoint) {\n grid-template-columns: 100%;\n grid-gap: 0;\n\n .column-1 {\n display: none;\n }\n }\n }\n\n .directory__card {\n border-radius: 4px;\n\n @media screen and (max-width: $no-gap-breakpoint) {\n border-radius: 0;\n }\n }\n\n .page-header {\n @media screen and (max-width: $no-gap-breakpoint) {\n border-bottom: 0;\n }\n }\n\n .public-account-header {\n overflow: hidden;\n margin-bottom: 10px;\n box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);\n\n &.inactive {\n opacity: 0.5;\n\n .public-account-header__image,\n .avatar {\n filter: grayscale(100%);\n }\n\n .logo-button {\n background-color: $secondary-text-color;\n }\n }\n\n &__image {\n border-radius: 4px 4px 0 0;\n overflow: hidden;\n height: 300px;\n position: relative;\n background: darken($ui-base-color, 12%);\n\n &::after {\n content: \"\";\n display: block;\n position: absolute;\n width: 100%;\n height: 100%;\n box-shadow: inset 0 -1px 1px 1px rgba($base-shadow-color, 0.15);\n top: 0;\n left: 0;\n }\n\n img {\n object-fit: cover;\n display: block;\n width: 100%;\n height: 100%;\n margin: 0;\n border-radius: 4px 4px 0 0;\n }\n\n @media screen and (max-width: 600px) {\n height: 200px;\n }\n }\n\n &--no-bar {\n margin-bottom: 0;\n\n .public-account-header__image,\n .public-account-header__image img {\n border-radius: 4px;\n\n @media screen and (max-width: $no-gap-breakpoint) {\n border-radius: 0;\n }\n }\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n margin-bottom: 0;\n box-shadow: none;\n\n &__image::after {\n display: none;\n }\n\n &__image,\n &__image img {\n border-radius: 0;\n }\n }\n\n &__bar {\n position: relative;\n margin-top: -80px;\n display: flex;\n justify-content: flex-start;\n\n &::before {\n content: \"\";\n display: block;\n background: lighten($ui-base-color, 4%);\n position: absolute;\n bottom: 0;\n left: 0;\n right: 0;\n height: 60px;\n border-radius: 0 0 4px 4px;\n z-index: -1;\n }\n\n .avatar {\n display: block;\n width: 120px;\n height: 120px;\n @include avatar-size(120px);\n padding-left: 20px - 4px;\n flex: 0 0 auto;\n\n img {\n display: block;\n width: 100%;\n height: 100%;\n margin: 0;\n border-radius: 50%;\n border: 4px solid lighten($ui-base-color, 4%);\n background: darken($ui-base-color, 8%);\n @include avatar-radius();\n }\n }\n\n @media screen and (max-width: 600px) {\n margin-top: 0;\n background: lighten($ui-base-color, 4%);\n border-radius: 0 0 4px 4px;\n padding: 5px;\n\n &::before {\n display: none;\n }\n\n .avatar {\n width: 48px;\n height: 48px;\n @include avatar-size(48px);\n padding: 7px 0;\n padding-left: 10px;\n\n img {\n border: 0;\n border-radius: 4px;\n @include avatar-radius();\n }\n\n @media screen and (max-width: 360px) {\n display: none;\n }\n }\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n border-radius: 0;\n }\n\n @media screen and (max-width: $no-columns-breakpoint) {\n flex-wrap: wrap;\n }\n }\n\n &__tabs {\n flex: 1 1 auto;\n margin-left: 20px;\n\n &__name {\n padding-top: 20px;\n padding-bottom: 8px;\n\n h1 {\n font-size: 20px;\n line-height: 18px * 1.5;\n color: $primary-text-color;\n font-weight: 500;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n text-shadow: 1px 1px 1px $base-shadow-color;\n\n small {\n display: block;\n font-size: 14px;\n color: $primary-text-color;\n font-weight: 400;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n }\n }\n\n @media screen and (max-width: 600px) {\n margin-left: 15px;\n display: flex;\n justify-content: space-between;\n align-items: center;\n\n &__name {\n padding-top: 0;\n padding-bottom: 0;\n\n h1 {\n font-size: 16px;\n line-height: 24px;\n text-shadow: none;\n\n small {\n color: $darker-text-color;\n }\n }\n }\n }\n\n &__tabs {\n display: flex;\n justify-content: flex-start;\n align-items: stretch;\n height: 58px;\n\n .details-counters {\n display: flex;\n flex-direction: row;\n min-width: 300px;\n }\n\n @media screen and (max-width: $no-columns-breakpoint) {\n .details-counters {\n display: none;\n }\n }\n\n .counter {\n min-width: 33.3%;\n box-sizing: border-box;\n flex: 0 0 auto;\n color: $darker-text-color;\n padding: 10px;\n border-right: 1px solid lighten($ui-base-color, 4%);\n cursor: default;\n text-align: center;\n position: relative;\n\n a {\n display: block;\n }\n\n &:last-child {\n border-right: 0;\n }\n\n &::after {\n display: block;\n content: \"\";\n position: absolute;\n bottom: 0;\n left: 0;\n width: 100%;\n border-bottom: 4px solid $ui-primary-color;\n opacity: 0.5;\n transition: all 400ms ease;\n }\n\n &.active {\n &::after {\n border-bottom: 4px solid $highlight-text-color;\n opacity: 1;\n }\n\n &.inactive::after {\n border-bottom-color: $secondary-text-color;\n }\n }\n\n &:hover {\n &::after {\n opacity: 1;\n transition-duration: 100ms;\n }\n }\n\n a {\n text-decoration: none;\n color: inherit;\n }\n\n .counter-label {\n font-size: 12px;\n display: block;\n }\n\n .counter-number {\n font-weight: 500;\n font-size: 18px;\n margin-bottom: 5px;\n color: $primary-text-color;\n font-family: $font-display, sans-serif;\n }\n }\n\n .spacer {\n flex: 1 1 auto;\n height: 1px;\n }\n\n &__buttons {\n padding: 7px 8px;\n }\n }\n }\n\n &__extra {\n display: none;\n margin-top: 4px;\n\n .public-account-bio {\n border-radius: 0;\n box-shadow: none;\n background: transparent;\n margin: 0 -5px;\n\n .account__header__fields {\n border-top: 1px solid lighten($ui-base-color, 12%);\n }\n\n .roles {\n display: none;\n }\n }\n\n &__links {\n margin-top: -15px;\n font-size: 14px;\n color: $darker-text-color;\n\n a {\n display: inline-block;\n color: $darker-text-color;\n text-decoration: none;\n padding: 15px;\n font-weight: 500;\n\n strong {\n font-weight: 700;\n color: $primary-text-color;\n }\n }\n }\n\n @media screen and (max-width: $no-columns-breakpoint) {\n display: block;\n flex: 100%;\n }\n }\n }\n\n .account__section-headline {\n border-radius: 4px 4px 0 0;\n\n @media screen and (max-width: $no-gap-breakpoint) {\n border-radius: 0;\n }\n }\n\n .detailed-status__meta {\n margin-top: 25px;\n }\n\n .public-account-bio {\n background: lighten($ui-base-color, 8%);\n box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);\n border-radius: 4px;\n overflow: hidden;\n margin-bottom: 10px;\n\n @media screen and (max-width: $no-gap-breakpoint) {\n box-shadow: none;\n margin-bottom: 0;\n border-radius: 0;\n }\n\n .account__header__fields {\n margin: 0;\n border-top: 0;\n\n a {\n color: lighten($ui-highlight-color, 8%);\n }\n\n dl:first-child .verified {\n border-radius: 0 4px 0 0;\n }\n\n .verified a {\n color: $valid-value-color;\n }\n }\n\n .account__header__content {\n padding: 20px;\n padding-bottom: 0;\n color: $primary-text-color;\n }\n\n &__extra,\n .roles {\n padding: 20px;\n font-size: 14px;\n color: $darker-text-color;\n }\n\n .roles {\n padding-bottom: 0;\n }\n }\n\n .directory__list {\n display: grid;\n grid-gap: 10px;\n grid-template-columns: minmax(0, 50%) minmax(0, 50%);\n\n @media screen and (max-width: $no-gap-breakpoint) {\n display: block;\n }\n\n .icon-button {\n font-size: 18px;\n }\n }\n\n .directory__card {\n margin-bottom: 0;\n }\n\n .card-grid {\n display: flex;\n flex-wrap: wrap;\n min-width: 100%;\n margin: 0 -5px;\n\n & > div {\n box-sizing: border-box;\n flex: 1 0 auto;\n width: 300px;\n padding: 0 5px;\n margin-bottom: 10px;\n max-width: 33.333%;\n\n @media screen and (max-width: 900px) {\n max-width: 50%;\n }\n\n @media screen and (max-width: 600px) {\n max-width: 100%;\n }\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n margin: 0;\n border-top: 1px solid lighten($ui-base-color, 8%);\n\n & > div {\n width: 100%;\n padding: 0;\n margin-bottom: 0;\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n\n &:last-child {\n border-bottom: 0;\n }\n\n .card__bar {\n background: $ui-base-color;\n\n &:hover,\n &:active,\n &:focus {\n background: lighten($ui-base-color, 4%);\n }\n }\n }\n }\n }\n}\n","@mixin avatar-radius() {\n border-radius: $ui-avatar-border-size;\n background-position: 50%;\n background-clip: padding-box;\n}\n\n@mixin avatar-size($size:48px) {\n width: $size;\n height: $size;\n background-size: $size $size;\n}\n\n@mixin single-column($media, $parent: '&') {\n .auto-columns #{$parent} {\n @media #{$media} {\n @content;\n }\n }\n .single-column #{$parent} {\n @content;\n }\n}\n\n@mixin limited-single-column($media, $parent: '&') {\n .auto-columns #{$parent}, .single-column #{$parent} {\n @media #{$media} {\n @content;\n }\n }\n}\n\n@mixin multi-columns($media, $parent: '&') {\n .auto-columns #{$parent} {\n @media #{$media} {\n @content;\n }\n }\n .multi-columns #{$parent} {\n @content;\n }\n}\n\n@mixin fullwidth-gallery {\n &.full-width {\n margin-left: -14px;\n margin-right: -14px;\n width: inherit;\n max-width: none;\n height: 250px;\n border-radius: 0px;\n }\n}\n\n@mixin search-input() {\n outline: 0;\n box-sizing: border-box;\n width: 100%;\n border: none;\n box-shadow: none;\n font-family: inherit;\n background: $ui-base-color;\n color: $darker-text-color;\n font-size: 14px;\n margin: 0;\n}\n\n@mixin search-popout() {\n background: $simple-background-color;\n border-radius: 4px;\n padding: 10px 14px;\n padding-bottom: 14px;\n margin-top: 10px;\n color: $light-text-color;\n box-shadow: 2px 4px 15px rgba($base-shadow-color, 0.4);\n\n h4 {\n text-transform: uppercase;\n color: $light-text-color;\n font-size: 13px;\n font-weight: 500;\n margin-bottom: 10px;\n }\n\n li {\n padding: 4px 0;\n }\n\n ul {\n margin-bottom: 10px;\n }\n\n em {\n font-weight: 500;\n color: $inverted-text-color;\n }\n}\n",".no-list {\n list-style: none;\n\n li {\n display: inline-block;\n margin: 0 5px;\n }\n}\n\n.recovery-codes {\n list-style: none;\n margin: 0 auto;\n\n li {\n font-size: 125%;\n line-height: 1.5;\n letter-spacing: 1px;\n }\n}\n",".modal-layout {\n background: $ui-base-color url('data:image/svg+xml;utf8,') repeat-x bottom fixed;\n display: flex;\n flex-direction: column;\n height: 100vh;\n padding: 0;\n}\n\n.modal-layout__mastodon {\n display: flex;\n flex: 1;\n flex-direction: column;\n justify-content: flex-end;\n\n > * {\n flex: 1;\n max-height: 235px;\n }\n}\n\n@media screen and (max-width: 600px) {\n .account-header {\n margin-top: 0;\n }\n}\n",".public-layout {\n .footer {\n text-align: left;\n padding-top: 20px;\n padding-bottom: 60px;\n font-size: 12px;\n color: lighten($ui-base-color, 34%);\n\n @media screen and (max-width: $no-gap-breakpoint) {\n padding-left: 20px;\n padding-right: 20px;\n }\n\n .grid {\n display: grid;\n grid-gap: 10px;\n grid-template-columns: 1fr 1fr 2fr 1fr 1fr;\n\n .column-0 {\n grid-column: 1;\n grid-row: 1;\n min-width: 0;\n }\n\n .column-1 {\n grid-column: 2;\n grid-row: 1;\n min-width: 0;\n }\n\n .column-2 {\n grid-column: 3;\n grid-row: 1;\n min-width: 0;\n text-align: center;\n\n h4 a {\n color: lighten($ui-base-color, 34%);\n }\n }\n\n .column-3 {\n grid-column: 4;\n grid-row: 1;\n min-width: 0;\n }\n\n .column-4 {\n grid-column: 5;\n grid-row: 1;\n min-width: 0;\n }\n\n @media screen and (max-width: 690px) {\n grid-template-columns: 1fr 2fr 1fr;\n\n .column-0,\n .column-1 {\n grid-column: 1;\n }\n\n .column-1 {\n grid-row: 2;\n }\n\n .column-2 {\n grid-column: 2;\n }\n\n .column-3,\n .column-4 {\n grid-column: 3;\n }\n\n .column-4 {\n grid-row: 2;\n }\n }\n\n @media screen and (max-width: 600px) {\n .column-1 {\n display: block;\n }\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n .column-0,\n .column-1,\n .column-3,\n .column-4 {\n display: none;\n }\n }\n }\n\n h4 {\n text-transform: uppercase;\n font-weight: 700;\n margin-bottom: 8px;\n color: $darker-text-color;\n\n a {\n color: inherit;\n text-decoration: none;\n }\n }\n\n ul a {\n text-decoration: none;\n color: lighten($ui-base-color, 34%);\n\n &:hover,\n &:active,\n &:focus {\n text-decoration: underline;\n }\n }\n\n .brand {\n svg {\n display: block;\n height: 36px;\n width: auto;\n margin: 0 auto;\n fill: lighten($ui-base-color, 34%);\n }\n\n &:hover,\n &:focus,\n &:active {\n svg {\n fill: lighten($ui-base-color, 38%);\n }\n }\n }\n }\n}\n",".compact-header {\n h1 {\n font-size: 24px;\n line-height: 28px;\n color: $darker-text-color;\n font-weight: 500;\n margin-bottom: 20px;\n padding: 0 10px;\n word-wrap: break-word;\n\n @media screen and (max-width: 740px) {\n text-align: center;\n padding: 20px 10px 0;\n }\n\n a {\n color: inherit;\n text-decoration: none;\n }\n\n small {\n font-weight: 400;\n color: $secondary-text-color;\n }\n\n img {\n display: inline-block;\n margin-bottom: -5px;\n margin-right: 15px;\n width: 36px;\n height: 36px;\n }\n }\n}\n",".hero-widget {\n margin-bottom: 10px;\n box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);\n\n &__img {\n width: 100%;\n position: relative;\n overflow: hidden;\n border-radius: 4px 4px 0 0;\n background: $base-shadow-color;\n\n img {\n object-fit: cover;\n display: block;\n width: 100%;\n height: 100%;\n margin: 0;\n border-radius: 4px 4px 0 0;\n }\n }\n\n &__text {\n background: $ui-base-color;\n padding: 20px;\n border-radius: 0 0 4px 4px;\n font-size: 15px;\n color: $darker-text-color;\n line-height: 20px;\n word-wrap: break-word;\n font-weight: 400;\n\n .emojione {\n width: 20px;\n height: 20px;\n margin: -3px 0 0;\n }\n\n p {\n margin-bottom: 20px;\n\n &:last-child {\n margin-bottom: 0;\n }\n }\n\n em {\n display: inline;\n margin: 0;\n padding: 0;\n font-weight: 700;\n background: transparent;\n font-family: inherit;\n font-size: inherit;\n line-height: inherit;\n color: lighten($darker-text-color, 10%);\n }\n\n a {\n color: $secondary-text-color;\n text-decoration: none;\n\n &:hover {\n text-decoration: underline;\n }\n }\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n display: none;\n }\n}\n\n.endorsements-widget {\n margin-bottom: 10px;\n padding-bottom: 10px;\n\n h4 {\n padding: 10px;\n text-transform: uppercase;\n font-weight: 700;\n font-size: 13px;\n color: $darker-text-color;\n }\n\n .account {\n padding: 10px 0;\n\n &:last-child {\n border-bottom: 0;\n }\n\n .account__display-name {\n display: flex;\n align-items: center;\n }\n\n .account__avatar {\n width: 44px;\n height: 44px;\n background-size: 44px 44px;\n }\n }\n\n .trends__item {\n padding: 10px;\n }\n}\n\n.trends-widget {\n h4 {\n color: $darker-text-color;\n }\n}\n\n.box-widget {\n padding: 20px;\n border-radius: 4px;\n background: $ui-base-color;\n box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);\n}\n\n.placeholder-widget {\n padding: 16px;\n border-radius: 4px;\n border: 2px dashed $dark-text-color;\n text-align: center;\n color: $darker-text-color;\n margin-bottom: 10px;\n}\n\n.contact-widget {\n min-height: 100%;\n font-size: 15px;\n color: $darker-text-color;\n line-height: 20px;\n word-wrap: break-word;\n font-weight: 400;\n padding: 0;\n\n h4 {\n padding: 10px;\n text-transform: uppercase;\n font-weight: 700;\n font-size: 13px;\n color: $darker-text-color;\n }\n\n .account {\n border-bottom: 0;\n padding: 10px 0;\n padding-top: 5px;\n }\n\n & > a {\n display: inline-block;\n padding: 10px;\n padding-top: 0;\n color: $darker-text-color;\n text-decoration: none;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n\n &:hover,\n &:focus,\n &:active {\n text-decoration: underline;\n }\n }\n}\n\n.moved-account-widget {\n padding: 15px;\n padding-bottom: 20px;\n border-radius: 4px;\n background: $ui-base-color;\n box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);\n color: $secondary-text-color;\n font-weight: 400;\n margin-bottom: 10px;\n\n strong,\n a {\n font-weight: 500;\n\n @each $lang in $cjk-langs {\n &:lang(#{$lang}) {\n font-weight: 700;\n }\n }\n }\n\n a {\n color: inherit;\n text-decoration: underline;\n\n &.mention {\n text-decoration: none;\n\n span {\n text-decoration: none;\n }\n\n &:focus,\n &:hover,\n &:active {\n text-decoration: none;\n\n span {\n text-decoration: underline;\n }\n }\n }\n }\n\n &__message {\n margin-bottom: 15px;\n\n .fa {\n margin-right: 5px;\n color: $darker-text-color;\n }\n }\n\n &__card {\n .detailed-status__display-avatar {\n position: relative;\n cursor: pointer;\n }\n\n .detailed-status__display-name {\n margin-bottom: 0;\n text-decoration: none;\n\n span {\n font-weight: 400;\n }\n }\n }\n}\n\n.memoriam-widget {\n padding: 20px;\n border-radius: 4px;\n background: $base-shadow-color;\n box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);\n font-size: 14px;\n color: $darker-text-color;\n margin-bottom: 10px;\n}\n\n.page-header {\n background: lighten($ui-base-color, 8%);\n box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);\n border-radius: 4px;\n padding: 60px 15px;\n text-align: center;\n margin: 10px 0;\n\n h1 {\n color: $primary-text-color;\n font-size: 36px;\n line-height: 1.1;\n font-weight: 700;\n margin-bottom: 10px;\n }\n\n p {\n font-size: 15px;\n color: $darker-text-color;\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n margin-top: 0;\n background: lighten($ui-base-color, 4%);\n\n h1 {\n font-size: 24px;\n }\n }\n}\n\n.directory {\n background: $ui-base-color;\n border-radius: 4px;\n box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);\n\n &__tag {\n box-sizing: border-box;\n margin-bottom: 10px;\n\n & > a,\n & > div {\n display: flex;\n align-items: center;\n justify-content: space-between;\n background: $ui-base-color;\n border-radius: 4px;\n padding: 15px;\n text-decoration: none;\n color: inherit;\n box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);\n }\n\n & > a {\n &:hover,\n &:active,\n &:focus {\n background: lighten($ui-base-color, 8%);\n }\n }\n\n &.active > a {\n background: $ui-highlight-color;\n cursor: default;\n }\n\n &.disabled > div {\n opacity: 0.5;\n cursor: default;\n }\n\n h4 {\n flex: 1 1 auto;\n font-size: 18px;\n font-weight: 700;\n color: $primary-text-color;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n\n .fa {\n color: $darker-text-color;\n }\n\n small {\n display: block;\n font-weight: 400;\n font-size: 15px;\n margin-top: 8px;\n color: $darker-text-color;\n }\n }\n\n &.active h4 {\n &,\n .fa,\n small {\n color: $primary-text-color;\n }\n }\n\n .avatar-stack {\n flex: 0 0 auto;\n width: (36px + 4px) * 3;\n }\n\n &.active .avatar-stack .account__avatar {\n border-color: $ui-highlight-color;\n }\n }\n}\n\n.avatar-stack {\n display: flex;\n justify-content: flex-end;\n\n .account__avatar {\n flex: 0 0 auto;\n width: 36px;\n height: 36px;\n border-radius: 50%;\n position: relative;\n margin-left: -10px;\n background: darken($ui-base-color, 8%);\n border: 2px solid $ui-base-color;\n\n &:nth-child(1) {\n z-index: 1;\n }\n\n &:nth-child(2) {\n z-index: 2;\n }\n\n &:nth-child(3) {\n z-index: 3;\n }\n }\n}\n\n.accounts-table {\n width: 100%;\n\n .account {\n padding: 0;\n border: 0;\n }\n\n strong {\n font-weight: 700;\n }\n\n thead th {\n text-align: center;\n text-transform: uppercase;\n color: $darker-text-color;\n font-weight: 700;\n padding: 10px;\n\n &:first-child {\n text-align: left;\n }\n }\n\n tbody td {\n padding: 15px 0;\n vertical-align: middle;\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n }\n\n tbody tr:last-child td {\n border-bottom: 0;\n }\n\n &__count {\n width: 120px;\n text-align: center;\n font-size: 15px;\n font-weight: 500;\n color: $primary-text-color;\n\n small {\n display: block;\n color: $darker-text-color;\n font-weight: 400;\n font-size: 14px;\n }\n }\n\n &__comment {\n width: 50%;\n vertical-align: initial !important;\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n tbody td.optional {\n display: none;\n }\n }\n}\n\n.moved-account-widget,\n.memoriam-widget,\n.box-widget,\n.contact-widget,\n.landing-page__information.contact-widget,\n.directory,\n.page-header {\n @media screen and (max-width: $no-gap-breakpoint) {\n margin-bottom: 0;\n box-shadow: none;\n border-radius: 0;\n }\n}\n\n$maximum-width: 1235px;\n$fluid-breakpoint: $maximum-width + 20px;\n\n.statuses-grid {\n min-height: 600px;\n\n @media screen and (max-width: 640px) {\n width: 100% !important; // Masonry layout is unnecessary at this width\n }\n\n &__item {\n width: (960px - 20px) / 3;\n\n @media screen and (max-width: $fluid-breakpoint) {\n width: (940px - 20px) / 3;\n }\n\n @media screen and (max-width: 640px) {\n width: 100%;\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n width: 100vw;\n }\n }\n\n .detailed-status {\n border-radius: 4px;\n\n @media screen and (max-width: $no-gap-breakpoint) {\n border-top: 1px solid lighten($ui-base-color, 16%);\n }\n\n &.compact {\n .detailed-status__meta {\n margin-top: 15px;\n }\n\n .status__content {\n font-size: 15px;\n line-height: 20px;\n\n .emojione {\n width: 20px;\n height: 20px;\n margin: -3px 0 0;\n }\n\n .status__content__spoiler-link {\n line-height: 20px;\n margin: 0;\n }\n }\n\n .media-gallery,\n .status-card,\n .video-player {\n margin-top: 15px;\n }\n }\n }\n}\n\n.notice-widget {\n margin-bottom: 10px;\n color: $darker-text-color;\n\n p {\n margin-bottom: 10px;\n\n &:last-child {\n margin-bottom: 0;\n }\n }\n\n a {\n font-size: 14px;\n line-height: 20px;\n }\n}\n\n.notice-widget,\n.placeholder-widget {\n a {\n text-decoration: none;\n font-weight: 500;\n color: $ui-highlight-color;\n\n &:hover,\n &:focus,\n &:active {\n text-decoration: underline;\n }\n }\n}\n\n.table-of-contents {\n background: darken($ui-base-color, 4%);\n min-height: 100%;\n font-size: 14px;\n border-radius: 4px;\n\n li a {\n display: block;\n font-weight: 500;\n padding: 15px;\n overflow: hidden;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n text-decoration: none;\n color: $primary-text-color;\n border-bottom: 1px solid lighten($ui-base-color, 4%);\n\n &:hover,\n &:focus,\n &:active {\n text-decoration: underline;\n }\n }\n\n li:last-child a {\n border-bottom: 0;\n }\n\n li ul {\n padding-left: 20px;\n border-bottom: 1px solid lighten($ui-base-color, 4%);\n }\n}\n","$no-columns-breakpoint: 600px;\n\ncode {\n font-family: $font-monospace, monospace;\n font-weight: 400;\n}\n\n.form-container {\n max-width: 400px;\n padding: 20px;\n margin: 0 auto;\n}\n\n.simple_form {\n .input {\n margin-bottom: 15px;\n overflow: hidden;\n\n &.hidden {\n margin: 0;\n }\n\n &.radio_buttons {\n .radio {\n margin-bottom: 15px;\n\n &:last-child {\n margin-bottom: 0;\n }\n }\n\n .radio > label {\n position: relative;\n padding-left: 28px;\n\n input {\n position: absolute;\n top: -2px;\n left: 0;\n }\n }\n }\n\n &.boolean {\n position: relative;\n margin-bottom: 0;\n\n .label_input > label {\n font-family: inherit;\n font-size: 14px;\n padding-top: 5px;\n color: $primary-text-color;\n display: block;\n width: auto;\n }\n\n .label_input,\n .hint {\n padding-left: 28px;\n }\n\n .label_input__wrapper {\n position: static;\n }\n\n label.checkbox {\n position: absolute;\n top: 2px;\n left: 0;\n }\n\n label a {\n color: $highlight-text-color;\n text-decoration: underline;\n\n &:hover,\n &:active,\n &:focus {\n text-decoration: none;\n }\n }\n\n .recommended {\n position: absolute;\n margin: 0 4px;\n margin-top: -2px;\n }\n }\n }\n\n .row {\n display: flex;\n margin: 0 -5px;\n\n .input {\n box-sizing: border-box;\n flex: 1 1 auto;\n width: 50%;\n padding: 0 5px;\n }\n }\n\n .hint {\n color: $darker-text-color;\n\n a {\n color: $highlight-text-color;\n }\n\n code {\n border-radius: 3px;\n padding: 0.2em 0.4em;\n background: darken($ui-base-color, 12%);\n }\n }\n\n span.hint {\n display: block;\n font-size: 12px;\n margin-top: 4px;\n }\n\n p.hint {\n margin-bottom: 15px;\n color: $darker-text-color;\n\n &.subtle-hint {\n text-align: center;\n font-size: 12px;\n line-height: 18px;\n margin-top: 15px;\n margin-bottom: 0;\n }\n }\n\n .card {\n margin-bottom: 15px;\n }\n\n strong {\n font-weight: 500;\n\n @each $lang in $cjk-langs {\n &:lang(#{$lang}) {\n font-weight: 700;\n }\n }\n }\n\n .input.with_floating_label {\n .label_input {\n display: flex;\n\n & > label {\n font-family: inherit;\n font-size: 14px;\n color: $primary-text-color;\n font-weight: 500;\n min-width: 150px;\n flex: 0 0 auto;\n }\n\n input,\n select {\n flex: 1 1 auto;\n }\n }\n\n &.select .hint {\n margin-top: 6px;\n margin-left: 150px;\n }\n }\n\n .input.with_label {\n .label_input > label {\n font-family: inherit;\n font-size: 14px;\n color: $primary-text-color;\n display: block;\n margin-bottom: 8px;\n word-wrap: break-word;\n font-weight: 500;\n }\n\n .hint {\n margin-top: 6px;\n }\n\n ul {\n flex: 390px;\n }\n }\n\n .input.with_block_label {\n max-width: none;\n\n & > label {\n font-family: inherit;\n font-size: 16px;\n color: $primary-text-color;\n display: block;\n font-weight: 500;\n padding-top: 5px;\n }\n\n .hint {\n margin-bottom: 15px;\n }\n\n ul {\n columns: 2;\n }\n }\n\n .input.datetime .label_input select {\n display: inline-block;\n width: auto;\n flex: 0;\n }\n\n .required abbr {\n text-decoration: none;\n color: lighten($error-value-color, 12%);\n }\n\n .fields-group {\n margin-bottom: 25px;\n\n .input:last-child {\n margin-bottom: 0;\n }\n }\n\n .fields-row {\n display: flex;\n margin: 0 -10px;\n padding-top: 5px;\n margin-bottom: 25px;\n\n .input {\n max-width: none;\n }\n\n &__column {\n box-sizing: border-box;\n padding: 0 10px;\n flex: 1 1 auto;\n min-height: 1px;\n\n &-6 {\n max-width: 50%;\n }\n\n .actions {\n margin-top: 27px;\n }\n }\n\n .fields-group:last-child,\n .fields-row__column.fields-group {\n margin-bottom: 0;\n }\n\n @media screen and (max-width: $no-columns-breakpoint) {\n display: block;\n margin-bottom: 0;\n\n &__column {\n max-width: none;\n }\n\n .fields-group:last-child,\n .fields-row__column.fields-group,\n .fields-row__column {\n margin-bottom: 25px;\n }\n }\n }\n\n .input.radio_buttons .radio label {\n margin-bottom: 5px;\n font-family: inherit;\n font-size: 14px;\n color: $primary-text-color;\n display: block;\n width: auto;\n }\n\n .check_boxes {\n .checkbox {\n label {\n font-family: inherit;\n font-size: 14px;\n color: $primary-text-color;\n display: inline-block;\n width: auto;\n position: relative;\n padding-top: 5px;\n padding-left: 25px;\n flex: 1 1 auto;\n }\n\n input[type=checkbox] {\n position: absolute;\n left: 0;\n top: 5px;\n margin: 0;\n }\n }\n }\n\n .input.static .label_input__wrapper {\n font-size: 16px;\n padding: 10px;\n border: 1px solid $dark-text-color;\n border-radius: 4px;\n }\n\n input[type=text],\n input[type=number],\n input[type=email],\n input[type=password],\n textarea {\n box-sizing: border-box;\n font-size: 16px;\n color: $primary-text-color;\n display: block;\n width: 100%;\n outline: 0;\n font-family: inherit;\n resize: vertical;\n background: darken($ui-base-color, 10%);\n border: 1px solid darken($ui-base-color, 14%);\n border-radius: 4px;\n padding: 10px;\n\n &::placeholder {\n color: lighten($darker-text-color, 4%);\n }\n\n &:invalid {\n box-shadow: none;\n }\n\n &:focus:invalid:not(:placeholder-shown) {\n border-color: lighten($error-red, 12%);\n }\n\n &:required:valid {\n border-color: $valid-value-color;\n }\n\n &:hover {\n border-color: darken($ui-base-color, 20%);\n }\n\n &:active,\n &:focus {\n border-color: $highlight-text-color;\n background: darken($ui-base-color, 8%);\n }\n }\n\n .input.field_with_errors {\n label {\n color: lighten($error-red, 12%);\n }\n\n input[type=text],\n input[type=number],\n input[type=email],\n input[type=password],\n textarea,\n select {\n border-color: lighten($error-red, 12%);\n }\n\n .error {\n display: block;\n font-weight: 500;\n color: lighten($error-red, 12%);\n margin-top: 4px;\n }\n }\n\n .input.disabled {\n opacity: 0.5;\n }\n\n .actions {\n margin-top: 30px;\n display: flex;\n\n &.actions--top {\n margin-top: 0;\n margin-bottom: 30px;\n }\n }\n\n button,\n .button,\n .block-button {\n display: block;\n width: 100%;\n border: 0;\n border-radius: 4px;\n background: $ui-highlight-color;\n color: $primary-text-color;\n font-size: 18px;\n line-height: inherit;\n height: auto;\n padding: 10px;\n text-transform: uppercase;\n text-decoration: none;\n text-align: center;\n box-sizing: border-box;\n cursor: pointer;\n font-weight: 500;\n outline: 0;\n margin-bottom: 10px;\n margin-right: 10px;\n\n &:last-child {\n margin-right: 0;\n }\n\n &:hover {\n background-color: lighten($ui-highlight-color, 5%);\n }\n\n &:active,\n &:focus {\n background-color: darken($ui-highlight-color, 5%);\n }\n\n &:disabled:hover {\n background-color: $ui-primary-color;\n }\n\n &.negative {\n background: $error-value-color;\n\n &:hover {\n background-color: lighten($error-value-color, 5%);\n }\n\n &:active,\n &:focus {\n background-color: darken($error-value-color, 5%);\n }\n }\n }\n\n select {\n appearance: none;\n box-sizing: border-box;\n font-size: 16px;\n color: $primary-text-color;\n display: block;\n width: 100%;\n outline: 0;\n font-family: inherit;\n resize: vertical;\n background: darken($ui-base-color, 10%) url(\"data:image/svg+xml;utf8,\") no-repeat right 8px center / auto 16px;\n border: 1px solid darken($ui-base-color, 14%);\n border-radius: 4px;\n padding-left: 10px;\n padding-right: 30px;\n height: 41px;\n }\n\n h4 {\n margin-bottom: 15px !important;\n }\n\n .label_input {\n &__wrapper {\n position: relative;\n }\n\n &__append {\n position: absolute;\n right: 3px;\n top: 1px;\n padding: 10px;\n padding-bottom: 9px;\n font-size: 16px;\n color: $dark-text-color;\n font-family: inherit;\n pointer-events: none;\n cursor: default;\n max-width: 140px;\n white-space: nowrap;\n overflow: hidden;\n\n &::after {\n content: '';\n display: block;\n position: absolute;\n top: 0;\n right: 0;\n bottom: 1px;\n width: 5px;\n background-image: linear-gradient(to right, rgba(darken($ui-base-color, 10%), 0), darken($ui-base-color, 10%));\n }\n }\n }\n\n &__overlay-area {\n position: relative;\n\n &__blurred form {\n filter: blur(2px);\n }\n\n &__overlay {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n display: flex;\n justify-content: center;\n align-items: center;\n background: rgba($ui-base-color, 0.65);\n border-radius: 4px;\n margin-left: -4px;\n margin-top: -4px;\n padding: 4px;\n\n &__content {\n text-align: center;\n\n &.rich-formatting {\n &,\n p {\n color: $primary-text-color;\n }\n }\n }\n }\n }\n}\n\n.block-icon {\n display: block;\n margin: 0 auto;\n margin-bottom: 10px;\n font-size: 24px;\n}\n\n.flash-message {\n background: lighten($ui-base-color, 8%);\n color: $darker-text-color;\n border-radius: 4px;\n padding: 15px 10px;\n margin-bottom: 30px;\n text-align: center;\n\n &.notice {\n border: 1px solid rgba($valid-value-color, 0.5);\n background: rgba($valid-value-color, 0.25);\n color: $valid-value-color;\n }\n\n &.alert {\n border: 1px solid rgba($error-value-color, 0.5);\n background: rgba($error-value-color, 0.25);\n color: $error-value-color;\n }\n\n a {\n display: inline-block;\n color: $darker-text-color;\n text-decoration: none;\n\n &:hover {\n color: $primary-text-color;\n text-decoration: underline;\n }\n }\n\n p {\n margin-bottom: 15px;\n }\n\n .oauth-code {\n outline: 0;\n box-sizing: border-box;\n display: block;\n width: 100%;\n border: none;\n padding: 10px;\n font-family: $font-monospace, monospace;\n background: $ui-base-color;\n color: $primary-text-color;\n font-size: 14px;\n margin: 0;\n\n &::-moz-focus-inner {\n border: 0;\n }\n\n &::-moz-focus-inner,\n &:focus,\n &:active {\n outline: 0 !important;\n }\n\n &:focus {\n background: lighten($ui-base-color, 4%);\n }\n }\n\n strong {\n font-weight: 500;\n\n @each $lang in $cjk-langs {\n &:lang(#{$lang}) {\n font-weight: 700;\n }\n }\n }\n\n @media screen and (max-width: 740px) and (min-width: 441px) {\n margin-top: 40px;\n }\n}\n\n.form-footer {\n margin-top: 30px;\n text-align: center;\n\n a {\n color: $darker-text-color;\n text-decoration: none;\n\n &:hover {\n text-decoration: underline;\n }\n }\n}\n\n.quick-nav {\n list-style: none;\n margin-bottom: 25px;\n font-size: 14px;\n\n li {\n display: inline-block;\n margin-right: 10px;\n }\n\n a {\n color: $highlight-text-color;\n text-transform: uppercase;\n text-decoration: none;\n font-weight: 700;\n\n &:hover,\n &:focus,\n &:active {\n color: lighten($highlight-text-color, 8%);\n }\n }\n}\n\n.oauth-prompt,\n.follow-prompt {\n margin-bottom: 30px;\n color: $darker-text-color;\n\n h2 {\n font-size: 16px;\n margin-bottom: 30px;\n text-align: center;\n }\n\n strong {\n color: $secondary-text-color;\n font-weight: 500;\n\n @each $lang in $cjk-langs {\n &:lang(#{$lang}) {\n font-weight: 700;\n }\n }\n }\n\n @media screen and (max-width: 740px) and (min-width: 441px) {\n margin-top: 40px;\n }\n}\n\n.qr-wrapper {\n display: flex;\n flex-wrap: wrap;\n align-items: flex-start;\n}\n\n.qr-code {\n flex: 0 0 auto;\n background: $simple-background-color;\n padding: 4px;\n margin: 0 10px 20px 0;\n box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);\n display: inline-block;\n\n svg {\n display: block;\n margin: 0;\n }\n}\n\n.qr-alternative {\n margin-bottom: 20px;\n color: $secondary-text-color;\n flex: 150px;\n\n samp {\n display: block;\n font-size: 14px;\n }\n}\n\n.table-form {\n p {\n margin-bottom: 15px;\n\n strong {\n font-weight: 500;\n\n @each $lang in $cjk-langs {\n &:lang(#{$lang}) {\n font-weight: 700;\n }\n }\n }\n }\n}\n\n.simple_form,\n.table-form {\n .warning {\n box-sizing: border-box;\n background: rgba($error-value-color, 0.5);\n color: $primary-text-color;\n text-shadow: 1px 1px 0 rgba($base-shadow-color, 0.3);\n box-shadow: 0 2px 6px rgba($base-shadow-color, 0.4);\n border-radius: 4px;\n padding: 10px;\n margin-bottom: 15px;\n\n a {\n color: $primary-text-color;\n text-decoration: underline;\n\n &:hover,\n &:focus,\n &:active {\n text-decoration: none;\n }\n }\n\n strong {\n font-weight: 600;\n display: block;\n margin-bottom: 5px;\n\n @each $lang in $cjk-langs {\n &:lang(#{$lang}) {\n font-weight: 700;\n }\n }\n\n .fa {\n font-weight: 400;\n }\n }\n }\n}\n\n.action-pagination {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n\n .actions,\n .pagination {\n flex: 1 1 auto;\n }\n\n .actions {\n padding: 30px 0;\n padding-right: 20px;\n flex: 0 0 auto;\n }\n}\n\n.post-follow-actions {\n text-align: center;\n color: $darker-text-color;\n\n div {\n margin-bottom: 4px;\n }\n}\n\n.alternative-login {\n margin-top: 20px;\n margin-bottom: 20px;\n\n h4 {\n font-size: 16px;\n color: $primary-text-color;\n text-align: center;\n margin-bottom: 20px;\n border: 0;\n padding: 0;\n }\n\n .button {\n display: block;\n }\n}\n\n.scope-danger {\n color: $warning-red;\n}\n\n.form_admin_settings_site_short_description,\n.form_admin_settings_site_description,\n.form_admin_settings_site_extended_description,\n.form_admin_settings_site_terms,\n.form_admin_settings_custom_css,\n.form_admin_settings_closed_registrations_message {\n textarea {\n font-family: $font-monospace, monospace;\n }\n}\n\n.input-copy {\n background: darken($ui-base-color, 10%);\n border: 1px solid darken($ui-base-color, 14%);\n border-radius: 4px;\n display: flex;\n align-items: center;\n padding-right: 4px;\n position: relative;\n top: 1px;\n transition: border-color 300ms linear;\n\n &__wrapper {\n flex: 1 1 auto;\n }\n\n input[type=text] {\n background: transparent;\n border: 0;\n padding: 10px;\n font-size: 14px;\n font-family: $font-monospace, monospace;\n }\n\n button {\n flex: 0 0 auto;\n margin: 4px;\n text-transform: none;\n font-weight: 400;\n font-size: 14px;\n padding: 7px 18px;\n padding-bottom: 6px;\n width: auto;\n transition: background 300ms linear;\n }\n\n &.copied {\n border-color: $valid-value-color;\n transition: none;\n\n button {\n background: $valid-value-color;\n transition: none;\n }\n }\n}\n\n.connection-prompt {\n margin-bottom: 25px;\n\n .fa-link {\n background-color: darken($ui-base-color, 4%);\n border-radius: 100%;\n font-size: 24px;\n padding: 10px;\n }\n\n &__column {\n align-items: center;\n display: flex;\n flex: 1;\n flex-direction: column;\n flex-shrink: 1;\n max-width: 50%;\n\n &-sep {\n align-self: center;\n flex-grow: 0;\n overflow: visible;\n position: relative;\n z-index: 1;\n }\n\n p {\n word-break: break-word;\n }\n }\n\n .account__avatar {\n margin-bottom: 20px;\n }\n\n &__connection {\n background-color: lighten($ui-base-color, 8%);\n box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);\n border-radius: 4px;\n padding: 25px 10px;\n position: relative;\n text-align: center;\n\n &::after {\n background-color: darken($ui-base-color, 4%);\n content: '';\n display: block;\n height: 100%;\n left: 50%;\n position: absolute;\n top: 0;\n width: 1px;\n }\n }\n\n &__row {\n align-items: flex-start;\n display: flex;\n flex-direction: row;\n }\n}\n",".card {\n & > a {\n display: block;\n text-decoration: none;\n color: inherit;\n box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);\n\n @media screen and (max-width: $no-gap-breakpoint) {\n box-shadow: none;\n }\n\n &:hover,\n &:active,\n &:focus {\n .card__bar {\n background: lighten($ui-base-color, 8%);\n }\n }\n }\n\n &__img {\n height: 130px;\n position: relative;\n background: darken($ui-base-color, 12%);\n border-radius: 4px 4px 0 0;\n\n img {\n display: block;\n width: 100%;\n height: 100%;\n margin: 0;\n object-fit: cover;\n border-radius: 4px 4px 0 0;\n }\n\n @media screen and (max-width: 600px) {\n height: 200px;\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n display: none;\n }\n }\n\n &__bar {\n position: relative;\n padding: 15px;\n display: flex;\n justify-content: flex-start;\n align-items: center;\n background: lighten($ui-base-color, 4%);\n border-radius: 0 0 4px 4px;\n\n @media screen and (max-width: $no-gap-breakpoint) {\n border-radius: 0;\n }\n\n .avatar {\n flex: 0 0 auto;\n width: 48px;\n height: 48px;\n @include avatar-size(48px);\n padding-top: 2px;\n\n img {\n width: 100%;\n height: 100%;\n display: block;\n margin: 0;\n border-radius: 4px;\n @include avatar-radius();\n background: darken($ui-base-color, 8%);\n object-fit: cover;\n }\n }\n\n .display-name {\n margin-left: 15px;\n text-align: left;\n\n strong {\n font-size: 15px;\n color: $primary-text-color;\n font-weight: 500;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n span {\n display: block;\n font-size: 14px;\n color: $darker-text-color;\n font-weight: 400;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n }\n }\n}\n\n.pagination {\n padding: 30px 0;\n text-align: center;\n overflow: hidden;\n\n a,\n .current,\n .newer,\n .older,\n .page,\n .gap {\n font-size: 14px;\n color: $primary-text-color;\n font-weight: 500;\n display: inline-block;\n padding: 6px 10px;\n text-decoration: none;\n }\n\n .current {\n background: $simple-background-color;\n border-radius: 100px;\n color: $inverted-text-color;\n cursor: default;\n margin: 0 10px;\n }\n\n .gap {\n cursor: default;\n }\n\n .older,\n .newer {\n text-transform: uppercase;\n color: $secondary-text-color;\n }\n\n .older {\n float: left;\n padding-left: 0;\n\n .fa {\n display: inline-block;\n margin-right: 5px;\n }\n }\n\n .newer {\n float: right;\n padding-right: 0;\n\n .fa {\n display: inline-block;\n margin-left: 5px;\n }\n }\n\n .disabled {\n cursor: default;\n color: lighten($inverted-text-color, 10%);\n }\n\n @media screen and (max-width: 700px) {\n padding: 30px 20px;\n\n .page {\n display: none;\n }\n\n .newer,\n .older {\n display: inline-block;\n }\n }\n}\n\n.nothing-here {\n background: $ui-base-color;\n box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);\n color: $light-text-color;\n font-size: 14px;\n font-weight: 500;\n text-align: center;\n display: flex;\n justify-content: center;\n align-items: center;\n cursor: default;\n border-radius: 4px;\n padding: 20px;\n min-height: 30vh;\n\n &--under-tabs {\n border-radius: 0 0 4px 4px;\n }\n\n &--flexible {\n box-sizing: border-box;\n min-height: 100%;\n }\n}\n\n.account-role,\n.simple_form .recommended {\n display: inline-block;\n padding: 4px 6px;\n cursor: default;\n border-radius: 3px;\n font-size: 12px;\n line-height: 12px;\n font-weight: 500;\n color: $ui-secondary-color;\n background-color: rgba($ui-secondary-color, 0.1);\n border: 1px solid rgba($ui-secondary-color, 0.5);\n\n &.moderator {\n color: $success-green;\n background-color: rgba($success-green, 0.1);\n border-color: rgba($success-green, 0.5);\n }\n\n &.admin {\n color: lighten($error-red, 12%);\n background-color: rgba(lighten($error-red, 12%), 0.1);\n border-color: rgba(lighten($error-red, 12%), 0.5);\n }\n}\n\n.account__header__fields {\n max-width: 100vw;\n padding: 0;\n margin: 15px -15px -15px;\n border: 0 none;\n border-top: 1px solid lighten($ui-base-color, 12%);\n border-bottom: 1px solid lighten($ui-base-color, 12%);\n font-size: 14px;\n line-height: 20px;\n\n dl {\n display: flex;\n border-bottom: 1px solid lighten($ui-base-color, 12%);\n }\n\n dt,\n dd {\n box-sizing: border-box;\n padding: 14px;\n text-align: center;\n max-height: 48px;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n }\n\n dt {\n font-weight: 500;\n width: 120px;\n flex: 0 0 auto;\n color: $secondary-text-color;\n background: rgba(darken($ui-base-color, 8%), 0.5);\n }\n\n dd {\n flex: 1 1 auto;\n color: $darker-text-color;\n }\n\n a {\n color: $highlight-text-color;\n text-decoration: none;\n\n &:hover,\n &:focus,\n &:active {\n text-decoration: underline;\n }\n }\n\n .verified {\n border: 1px solid rgba($valid-value-color, 0.5);\n background: rgba($valid-value-color, 0.25);\n\n a {\n color: $valid-value-color;\n font-weight: 500;\n }\n\n &__mark {\n color: $valid-value-color;\n }\n }\n\n dl:last-child {\n border-bottom: 0;\n }\n}\n\n.directory__tag .trends__item__current {\n width: auto;\n}\n\n.pending-account {\n &__header {\n color: $darker-text-color;\n\n a {\n color: $ui-secondary-color;\n text-decoration: none;\n\n &:hover,\n &:active,\n &:focus {\n text-decoration: underline;\n }\n }\n\n strong {\n color: $primary-text-color;\n font-weight: 700;\n }\n }\n\n &__body {\n margin-top: 10px;\n }\n}\n",".activity-stream {\n box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);\n border-radius: 4px;\n overflow: hidden;\n margin-bottom: 10px;\n\n @media screen and (max-width: $no-gap-breakpoint) {\n margin-bottom: 0;\n border-radius: 0;\n box-shadow: none;\n }\n\n &--headless {\n border-radius: 0;\n margin: 0;\n box-shadow: none;\n\n .detailed-status,\n .status {\n border-radius: 0 !important;\n }\n }\n\n div[data-component] {\n width: 100%;\n }\n\n .entry {\n background: $ui-base-color;\n\n .detailed-status,\n .status,\n .load-more {\n animation: none;\n }\n\n &:last-child {\n .detailed-status,\n .status,\n .load-more {\n border-bottom: 0;\n border-radius: 0 0 4px 4px;\n }\n }\n\n &:first-child {\n .detailed-status,\n .status,\n .load-more {\n border-radius: 4px 4px 0 0;\n }\n\n &:last-child {\n .detailed-status,\n .status,\n .load-more {\n border-radius: 4px;\n }\n }\n }\n\n @media screen and (max-width: 740px) {\n .detailed-status,\n .status,\n .load-more {\n border-radius: 0 !important;\n }\n }\n }\n\n &--highlighted .entry {\n background: lighten($ui-base-color, 8%);\n }\n}\n\n.button.logo-button {\n flex: 0 auto;\n font-size: 14px;\n background: $ui-highlight-color;\n color: $primary-text-color;\n text-transform: none;\n line-height: 36px;\n height: auto;\n padding: 3px 15px;\n border: 0;\n\n svg {\n width: 20px;\n height: auto;\n vertical-align: middle;\n margin-right: 5px;\n fill: $primary-text-color;\n }\n\n &:active,\n &:focus,\n &:hover {\n background: lighten($ui-highlight-color, 10%);\n }\n\n &:disabled,\n &.disabled {\n &:active,\n &:focus,\n &:hover {\n background: $ui-primary-color;\n }\n }\n\n &.button--destructive {\n &:active,\n &:focus,\n &:hover {\n background: $error-red;\n }\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n svg {\n display: none;\n }\n }\n}\n\n.embed,\n.public-layout {\n .detailed-status {\n padding: 15px;\n }\n\n .status {\n padding: 15px 15px 15px (48px + 15px * 2);\n min-height: 48px + 2px;\n\n &__avatar {\n left: 15px;\n top: 17px;\n }\n\n &__content {\n padding-top: 5px;\n }\n\n &__prepend {\n padding: 8px 0;\n padding-bottom: 2px;\n margin: initial;\n margin-left: 48px + 15px * 2;\n padding-top: 15px;\n }\n\n &__prepend-icon-wrapper {\n position: absolute;\n margin: initial;\n float: initial;\n width: auto;\n left: -32px;\n }\n\n .media-gallery,\n &__action-bar,\n .video-player {\n margin-top: 10px;\n }\n }\n}\n\n// Styling from upstream's WebUI, as public pages use the same layout\n.embed,\n.public-layout {\n .status {\n .status__info {\n font-size: 15px;\n display: initial;\n }\n\n .status__relative-time {\n color: $dark-text-color;\n float: right;\n font-size: 14px;\n width: auto;\n margin: initial;\n padding: initial;\n }\n\n .status__info .status__display-name {\n display: block;\n max-width: 100%;\n padding: 6px 0;\n padding-right: 25px;\n margin: initial;\n\n .display-name strong {\n display: inline;\n }\n }\n\n .status__avatar {\n height: 48px;\n position: absolute;\n width: 48px;\n margin: initial;\n }\n }\n}\n\n.rtl {\n .embed,\n .public-layout {\n .status {\n padding-left: 10px;\n padding-right: 68px;\n\n .status__info .status__display-name {\n padding-left: 25px;\n padding-right: 0;\n }\n\n .status__relative-time {\n float: left;\n }\n }\n }\n}\n\n.status__content__read-more-button {\n display: block;\n font-size: 15px;\n line-height: 20px;\n color: lighten($ui-highlight-color, 8%);\n border: 0;\n background: transparent;\n padding: 0;\n padding-top: 8px;\n text-decoration: none;\n\n &:hover,\n &:active {\n text-decoration: underline;\n }\n}\n",".app-body {\n -webkit-overflow-scrolling: touch;\n -ms-overflow-style: -ms-autohiding-scrollbar;\n}\n\n.animated-number {\n display: inline-flex;\n flex-direction: column;\n align-items: stretch;\n overflow: hidden;\n position: relative;\n}\n\n.link-button {\n display: block;\n font-size: 15px;\n line-height: 20px;\n color: $ui-highlight-color;\n border: 0;\n background: transparent;\n padding: 0;\n cursor: pointer;\n\n &:hover,\n &:active {\n text-decoration: underline;\n }\n\n &:disabled {\n color: $ui-primary-color;\n cursor: default;\n }\n}\n\n.button {\n background-color: darken($ui-highlight-color, 3%);\n border: 10px none;\n border-radius: 4px;\n box-sizing: border-box;\n color: $primary-text-color;\n cursor: pointer;\n display: inline-block;\n font-family: inherit;\n font-size: 14px;\n font-weight: 500;\n height: 36px;\n letter-spacing: 0;\n line-height: 36px;\n overflow: hidden;\n padding: 0 16px;\n position: relative;\n text-align: center;\n text-transform: uppercase;\n text-decoration: none;\n text-overflow: ellipsis;\n transition: all 100ms ease-in;\n transition-property: background-color;\n white-space: nowrap;\n width: auto;\n\n &:active,\n &:focus,\n &:hover {\n background-color: lighten($ui-highlight-color, 7%);\n transition: all 200ms ease-out;\n transition-property: background-color;\n }\n\n &--destructive {\n transition: none;\n\n &:active,\n &:focus,\n &:hover {\n background-color: $error-red;\n transition: none;\n }\n }\n\n &:disabled {\n background-color: $ui-primary-color;\n cursor: default;\n }\n\n &.button-primary,\n &.button-alternative,\n &.button-secondary,\n &.button-alternative-2 {\n font-size: 16px;\n line-height: 36px;\n height: auto;\n text-transform: none;\n padding: 4px 16px;\n }\n\n &.button-alternative {\n color: $inverted-text-color;\n background: $ui-primary-color;\n\n &:active,\n &:focus,\n &:hover {\n background-color: lighten($ui-primary-color, 4%);\n }\n }\n\n &.button-alternative-2 {\n background: $ui-base-lighter-color;\n\n &:active,\n &:focus,\n &:hover {\n background-color: lighten($ui-base-lighter-color, 4%);\n }\n }\n\n &.button-secondary {\n font-size: 16px;\n line-height: 36px;\n height: auto;\n color: $darker-text-color;\n text-transform: none;\n background: transparent;\n padding: 3px 15px;\n border-radius: 4px;\n border: 1px solid $ui-primary-color;\n\n &:active,\n &:focus,\n &:hover {\n border-color: lighten($ui-primary-color, 4%);\n color: lighten($darker-text-color, 4%);\n }\n\n &:disabled {\n opacity: 0.5;\n }\n }\n\n &.button--block {\n display: block;\n width: 100%;\n }\n}\n\n.icon-button {\n display: inline-block;\n padding: 0;\n color: $action-button-color;\n border: 0;\n border-radius: 4px;\n background: transparent;\n cursor: pointer;\n transition: all 100ms ease-in;\n transition-property: background-color, color;\n\n &:hover,\n &:active,\n &:focus {\n color: lighten($action-button-color, 7%);\n background-color: rgba($action-button-color, 0.15);\n transition: all 200ms ease-out;\n transition-property: background-color, color;\n }\n\n &:focus {\n background-color: rgba($action-button-color, 0.3);\n }\n\n &.disabled {\n color: darken($action-button-color, 13%);\n background-color: transparent;\n cursor: default;\n }\n\n &.active {\n color: $highlight-text-color;\n }\n\n &::-moz-focus-inner {\n border: 0;\n }\n\n &::-moz-focus-inner,\n &:focus,\n &:active {\n outline: 0 !important;\n }\n\n &.inverted {\n color: $lighter-text-color;\n\n &:hover,\n &:active,\n &:focus {\n color: darken($lighter-text-color, 7%);\n background-color: rgba($lighter-text-color, 0.15);\n }\n\n &:focus {\n background-color: rgba($lighter-text-color, 0.3);\n }\n\n &.disabled {\n color: lighten($lighter-text-color, 7%);\n background-color: transparent;\n }\n\n &.active {\n color: $highlight-text-color;\n\n &.disabled {\n color: lighten($highlight-text-color, 13%);\n }\n }\n }\n\n &.overlayed {\n box-sizing: content-box;\n background: rgba($base-overlay-background, 0.6);\n color: rgba($primary-text-color, 0.7);\n border-radius: 4px;\n padding: 2px;\n\n &:hover {\n background: rgba($base-overlay-background, 0.9);\n }\n }\n}\n\n.text-icon-button {\n color: $lighter-text-color;\n border: 0;\n border-radius: 4px;\n background: transparent;\n cursor: pointer;\n font-weight: 600;\n font-size: 11px;\n padding: 0 3px;\n line-height: 27px;\n outline: 0;\n transition: all 100ms ease-in;\n transition-property: background-color, color;\n\n &:hover,\n &:active,\n &:focus {\n color: darken($lighter-text-color, 7%);\n background-color: rgba($lighter-text-color, 0.15);\n transition: all 200ms ease-out;\n transition-property: background-color, color;\n }\n\n &:focus {\n background-color: rgba($lighter-text-color, 0.3);\n }\n\n &.disabled {\n color: lighten($lighter-text-color, 20%);\n background-color: transparent;\n cursor: default;\n }\n\n &.active {\n color: $highlight-text-color;\n }\n\n &::-moz-focus-inner {\n border: 0;\n }\n\n &::-moz-focus-inner,\n &:focus,\n &:active {\n outline: 0 !important;\n }\n}\n\n.dropdown-menu {\n position: absolute;\n transform-origin: 50% 0;\n}\n\n.invisible {\n font-size: 0;\n line-height: 0;\n display: inline-block;\n width: 0;\n height: 0;\n position: absolute;\n\n img,\n svg {\n margin: 0 !important;\n border: 0 !important;\n padding: 0 !important;\n width: 0 !important;\n height: 0 !important;\n }\n}\n\n.ellipsis {\n &::after {\n content: \"…\";\n }\n}\n\n.notification__favourite-icon-wrapper {\n left: 0;\n position: absolute;\n\n .fa.star-icon {\n color: $gold-star;\n }\n}\n\n.star-icon.active {\n color: $gold-star;\n}\n\n.bookmark-icon.active {\n color: $red-bookmark;\n}\n\n.no-reduce-motion .icon-button.star-icon {\n &.activate {\n & > .fa-star {\n animation: spring-rotate-in 1s linear;\n }\n }\n\n &.deactivate {\n & > .fa-star {\n animation: spring-rotate-out 1s linear;\n }\n }\n}\n\n.notification__display-name {\n color: inherit;\n font-weight: 500;\n text-decoration: none;\n\n &:hover {\n color: $primary-text-color;\n text-decoration: underline;\n }\n}\n\n.display-name {\n display: block;\n max-width: 100%;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n\n a {\n color: inherit;\n text-decoration: inherit;\n }\n\n strong {\n height: 18px;\n font-size: 16px;\n font-weight: 500;\n line-height: 18px;\n text-overflow: ellipsis;\n overflow: hidden;\n white-space: nowrap;\n }\n\n span {\n display: block;\n height: 18px;\n font-size: 15px;\n line-height: 18px;\n text-overflow: ellipsis;\n overflow: hidden;\n white-space: nowrap;\n }\n\n > a:hover {\n strong {\n text-decoration: underline;\n }\n }\n\n &.inline {\n padding: 0;\n height: 18px;\n font-size: 15px;\n line-height: 18px;\n text-overflow: ellipsis;\n white-space: nowrap;\n overflow: hidden;\n\n strong {\n display: inline;\n height: auto;\n font-size: inherit;\n line-height: inherit;\n }\n\n span {\n display: inline;\n height: auto;\n font-size: inherit;\n line-height: inherit;\n }\n }\n}\n\n.display-name__html {\n font-weight: 500;\n}\n\n.display-name__account {\n font-size: 14px;\n}\n\n.image-loader {\n position: relative;\n width: 100%;\n height: 100%;\n display: flex;\n align-items: center;\n justify-content: center;\n flex-direction: column;\n\n .image-loader__preview-canvas {\n max-width: $media-modal-media-max-width;\n max-height: $media-modal-media-max-height;\n background: url('~images/void.png') repeat;\n object-fit: contain;\n }\n\n .loading-bar {\n position: relative;\n }\n\n &.image-loader--amorphous .image-loader__preview-canvas {\n display: none;\n }\n}\n\n.zoomable-image {\n position: relative;\n width: 100%;\n height: 100%;\n display: flex;\n align-items: center;\n justify-content: center;\n\n img {\n max-width: $media-modal-media-max-width;\n max-height: $media-modal-media-max-height;\n width: auto;\n height: auto;\n object-fit: contain;\n }\n}\n\n.dropdown {\n display: inline-block;\n}\n\n.dropdown__content {\n display: none;\n position: absolute;\n}\n\n.dropdown-menu__separator {\n border-bottom: 1px solid darken($ui-secondary-color, 8%);\n margin: 5px 7px 6px;\n height: 0;\n}\n\n.dropdown-menu {\n background: $ui-secondary-color;\n padding: 4px 0;\n border-radius: 4px;\n box-shadow: 2px 4px 15px rgba($base-shadow-color, 0.4);\n\n ul {\n list-style: none;\n }\n}\n\n.dropdown-menu__arrow {\n position: absolute;\n width: 0;\n height: 0;\n border: 0 solid transparent;\n\n &.left {\n right: -5px;\n margin-top: -5px;\n border-width: 5px 0 5px 5px;\n border-left-color: $ui-secondary-color;\n }\n\n &.top {\n bottom: -5px;\n margin-left: -7px;\n border-width: 5px 7px 0;\n border-top-color: $ui-secondary-color;\n }\n\n &.bottom {\n top: -5px;\n margin-left: -7px;\n border-width: 0 7px 5px;\n border-bottom-color: $ui-secondary-color;\n }\n\n &.right {\n left: -5px;\n margin-top: -5px;\n border-width: 5px 5px 5px 0;\n border-right-color: $ui-secondary-color;\n }\n}\n\n.dropdown-menu__item {\n a {\n font-size: 13px;\n line-height: 18px;\n display: block;\n padding: 4px 14px;\n box-sizing: border-box;\n text-decoration: none;\n background: $ui-secondary-color;\n color: $inverted-text-color;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n\n &:focus,\n &:hover,\n &:active {\n background: $ui-highlight-color;\n color: $secondary-text-color;\n outline: 0;\n }\n }\n}\n\n.dropdown--active .dropdown__content {\n display: block;\n line-height: 18px;\n max-width: 311px;\n right: 0;\n text-align: left;\n z-index: 9999;\n\n & > ul {\n list-style: none;\n background: $ui-secondary-color;\n padding: 4px 0;\n border-radius: 4px;\n box-shadow: 0 0 15px rgba($base-shadow-color, 0.4);\n min-width: 140px;\n position: relative;\n }\n\n &.dropdown__right {\n right: 0;\n }\n\n &.dropdown__left {\n & > ul {\n left: -98px;\n }\n }\n\n & > ul > li > a {\n font-size: 13px;\n line-height: 18px;\n display: block;\n padding: 4px 14px;\n box-sizing: border-box;\n text-decoration: none;\n background: $ui-secondary-color;\n color: $inverted-text-color;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n\n &:focus {\n outline: 0;\n }\n\n &:hover {\n background: $ui-highlight-color;\n color: $secondary-text-color;\n }\n }\n}\n\n.dropdown__icon {\n vertical-align: middle;\n}\n\n.static-content {\n padding: 10px;\n padding-top: 20px;\n color: $dark-text-color;\n\n h1 {\n font-size: 16px;\n font-weight: 500;\n margin-bottom: 40px;\n text-align: center;\n }\n\n p {\n font-size: 13px;\n margin-bottom: 20px;\n }\n}\n\n.column,\n.drawer {\n flex: 1 1 100%;\n overflow: hidden;\n}\n\n@media screen and (min-width: 631px) {\n .columns-area {\n padding: 0;\n }\n\n .column,\n .drawer {\n flex: 0 0 auto;\n padding: 10px;\n padding-left: 5px;\n padding-right: 5px;\n\n &:first-child {\n padding-left: 10px;\n }\n\n &:last-child {\n padding-right: 10px;\n }\n }\n\n .columns-area > div {\n .column,\n .drawer {\n padding-left: 5px;\n padding-right: 5px;\n }\n }\n}\n\n.tabs-bar {\n box-sizing: border-box;\n display: flex;\n background: lighten($ui-base-color, 8%);\n flex: 0 0 auto;\n overflow-y: auto;\n}\n\n.tabs-bar__link {\n display: block;\n flex: 1 1 auto;\n padding: 15px 10px;\n padding-bottom: 13px;\n color: $primary-text-color;\n text-decoration: none;\n text-align: center;\n font-size: 14px;\n font-weight: 500;\n border-bottom: 2px solid lighten($ui-base-color, 8%);\n transition: all 50ms linear;\n transition-property: border-bottom, background, color;\n\n .fa {\n font-weight: 400;\n font-size: 16px;\n }\n\n &:hover,\n &:focus,\n &:active {\n @include multi-columns('screen and (min-width: 631px)') {\n background: lighten($ui-base-color, 14%);\n border-bottom-color: lighten($ui-base-color, 14%);\n }\n }\n\n &.active {\n border-bottom: 2px solid $ui-highlight-color;\n color: $highlight-text-color;\n }\n\n span {\n margin-left: 5px;\n display: none;\n }\n\n span.icon {\n margin-left: 0;\n display: inline;\n }\n}\n\n.icon-with-badge {\n position: relative;\n\n &__badge {\n position: absolute;\n left: 9px;\n top: -13px;\n background: $ui-highlight-color;\n border: 2px solid lighten($ui-base-color, 8%);\n padding: 1px 6px;\n border-radius: 6px;\n font-size: 10px;\n font-weight: 500;\n line-height: 14px;\n color: $primary-text-color;\n }\n}\n\n.column-link--transparent .icon-with-badge__badge {\n border-color: darken($ui-base-color, 8%);\n}\n\n.scrollable {\n overflow-y: scroll;\n overflow-x: hidden;\n flex: 1 1 auto;\n -webkit-overflow-scrolling: touch;\n\n &.optionally-scrollable {\n overflow-y: auto;\n }\n\n @supports(display: grid) { // hack to fix Chrome <57\n contain: strict;\n }\n\n &--flex {\n display: flex;\n flex-direction: column;\n }\n\n &__append {\n flex: 1 1 auto;\n position: relative;\n min-height: 120px;\n }\n}\n\n.scrollable.fullscreen {\n @supports(display: grid) { // hack to fix Chrome <57\n contain: none;\n }\n}\n\n.react-toggle {\n display: inline-block;\n position: relative;\n cursor: pointer;\n background-color: transparent;\n border: 0;\n padding: 0;\n user-select: none;\n -webkit-tap-highlight-color: rgba($base-overlay-background, 0);\n -webkit-tap-highlight-color: transparent;\n}\n\n.react-toggle-screenreader-only {\n border: 0;\n clip: rect(0 0 0 0);\n height: 1px;\n margin: -1px;\n overflow: hidden;\n padding: 0;\n position: absolute;\n width: 1px;\n}\n\n.react-toggle--disabled {\n cursor: not-allowed;\n opacity: 0.5;\n transition: opacity 0.25s;\n}\n\n.react-toggle-track {\n width: 50px;\n height: 24px;\n padding: 0;\n border-radius: 30px;\n background-color: $ui-base-color;\n transition: background-color 0.2s ease;\n}\n\n.react-toggle:hover:not(.react-toggle--disabled) .react-toggle-track {\n background-color: darken($ui-base-color, 10%);\n}\n\n.react-toggle--checked .react-toggle-track {\n background-color: $ui-highlight-color;\n}\n\n.react-toggle--checked:hover:not(.react-toggle--disabled) .react-toggle-track {\n background-color: lighten($ui-highlight-color, 10%);\n}\n\n.react-toggle-track-check {\n position: absolute;\n width: 14px;\n height: 10px;\n top: 0;\n bottom: 0;\n margin-top: auto;\n margin-bottom: auto;\n line-height: 0;\n left: 8px;\n opacity: 0;\n transition: opacity 0.25s ease;\n}\n\n.react-toggle--checked .react-toggle-track-check {\n opacity: 1;\n transition: opacity 0.25s ease;\n}\n\n.react-toggle-track-x {\n position: absolute;\n width: 10px;\n height: 10px;\n top: 0;\n bottom: 0;\n margin-top: auto;\n margin-bottom: auto;\n line-height: 0;\n right: 10px;\n opacity: 1;\n transition: opacity 0.25s ease;\n}\n\n.react-toggle--checked .react-toggle-track-x {\n opacity: 0;\n}\n\n.react-toggle-thumb {\n position: absolute;\n top: 1px;\n left: 1px;\n width: 22px;\n height: 22px;\n border: 1px solid $ui-base-color;\n border-radius: 50%;\n background-color: darken($simple-background-color, 2%);\n box-sizing: border-box;\n transition: all 0.25s ease;\n transition-property: border-color, left;\n}\n\n.react-toggle--checked .react-toggle-thumb {\n left: 27px;\n border-color: $ui-highlight-color;\n}\n\n.getting-started__wrapper,\n.getting_started,\n.flex-spacer {\n background: $ui-base-color;\n}\n\n.getting-started__wrapper {\n position: relative;\n overflow-y: auto;\n}\n\n.flex-spacer {\n flex: 1 1 auto;\n}\n\n.getting-started {\n background: $ui-base-color;\n flex: 1 0 auto;\n\n p {\n color: $secondary-text-color;\n }\n\n a {\n color: $dark-text-color;\n }\n\n &__panel {\n height: min-content;\n }\n\n &__panel,\n &__footer {\n padding: 10px;\n padding-top: 20px;\n flex: 0 1 auto;\n\n ul {\n margin-bottom: 10px;\n }\n\n ul li {\n display: inline;\n }\n\n p {\n color: $dark-text-color;\n font-size: 13px;\n\n a {\n color: $dark-text-color;\n text-decoration: underline;\n }\n }\n\n a {\n text-decoration: none;\n color: $darker-text-color;\n\n &:hover,\n &:focus,\n &:active {\n text-decoration: underline;\n }\n }\n }\n\n &__trends {\n flex: 0 1 auto;\n opacity: 1;\n animation: fade 150ms linear;\n margin-top: 10px;\n\n h4 {\n font-size: 12px;\n text-transform: uppercase;\n color: $darker-text-color;\n padding: 10px;\n font-weight: 500;\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n }\n\n @media screen and (max-height: 810px) {\n .trends__item:nth-child(3) {\n display: none;\n }\n }\n\n @media screen and (max-height: 720px) {\n .trends__item:nth-child(2) {\n display: none;\n }\n }\n\n @media screen and (max-height: 670px) {\n display: none;\n }\n\n .trends__item {\n border-bottom: 0;\n padding: 10px;\n\n &__current {\n color: $darker-text-color;\n }\n }\n }\n}\n\n.column-link__badge {\n display: inline-block;\n border-radius: 4px;\n font-size: 12px;\n line-height: 19px;\n font-weight: 500;\n background: $ui-base-color;\n padding: 4px 8px;\n margin: -6px 10px;\n}\n\n.keyboard-shortcuts {\n padding: 8px 0 0;\n overflow: hidden;\n\n thead {\n position: absolute;\n left: -9999px;\n }\n\n td {\n padding: 0 10px 8px;\n }\n\n kbd {\n display: inline-block;\n padding: 3px 5px;\n background-color: lighten($ui-base-color, 8%);\n border: 1px solid darken($ui-base-color, 4%);\n }\n}\n\n.setting-text {\n color: $darker-text-color;\n background: transparent;\n border: none;\n border-bottom: 2px solid $ui-primary-color;\n box-sizing: border-box;\n display: block;\n font-family: inherit;\n margin-bottom: 10px;\n padding: 7px 0;\n width: 100%;\n\n &:focus,\n &:active {\n color: $primary-text-color;\n border-bottom-color: $ui-highlight-color;\n }\n\n @include limited-single-column('screen and (max-width: 600px)') {\n font-size: 16px;\n }\n\n &.light {\n color: $inverted-text-color;\n border-bottom: 2px solid lighten($ui-base-color, 27%);\n\n &:focus,\n &:active {\n color: $inverted-text-color;\n border-bottom-color: $ui-highlight-color;\n }\n }\n}\n\n.no-reduce-motion button.icon-button i.fa-retweet {\n background-position: 0 0;\n height: 19px;\n transition: background-position 0.9s steps(10);\n transition-duration: 0s;\n vertical-align: middle;\n width: 22px;\n\n &::before {\n display: none !important;\n }\n}\n\n.no-reduce-motion button.icon-button.active i.fa-retweet {\n transition-duration: 0.9s;\n background-position: 0 100%;\n}\n\n.reduce-motion button.icon-button i.fa-retweet {\n color: $action-button-color;\n transition: color 100ms ease-in;\n}\n\n.reduce-motion button.icon-button.active i.fa-retweet {\n color: $highlight-text-color;\n}\n\n.reduce-motion button.icon-button.disabled i.fa-retweet {\n color: darken($action-button-color, 13%);\n}\n\n.load-more {\n display: block;\n color: $dark-text-color;\n background-color: transparent;\n border: 0;\n font-size: inherit;\n text-align: center;\n line-height: inherit;\n margin: 0;\n padding: 15px;\n box-sizing: border-box;\n width: 100%;\n clear: both;\n text-decoration: none;\n\n &:hover {\n background: lighten($ui-base-color, 2%);\n }\n}\n\n.load-gap {\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n}\n\n.missing-indicator {\n padding-top: 20px + 48px;\n}\n\n.scrollable > div > :first-child .notification__dismiss-overlay > .wrappy {\n border-top: 1px solid $ui-base-color;\n}\n\n.notification__dismiss-overlay {\n overflow: hidden;\n position: absolute;\n top: 0;\n right: 0;\n bottom: -1px;\n padding-left: 15px; // space for the box shadow to be visible\n\n z-index: 999;\n align-items: center;\n justify-content: flex-end;\n cursor: pointer;\n\n display: flex;\n\n .wrappy {\n width: $dismiss-overlay-width;\n align-self: stretch;\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n background: lighten($ui-base-color, 8%);\n border-left: 1px solid lighten($ui-base-color, 20%);\n box-shadow: 0 0 5px black;\n border-bottom: 1px solid $ui-base-color;\n }\n\n .ckbox {\n border: 2px solid $ui-primary-color;\n border-radius: 2px;\n width: 30px;\n height: 30px;\n font-size: 20px;\n color: $darker-text-color;\n text-shadow: 0 0 5px black;\n display: flex;\n justify-content: center;\n align-items: center;\n }\n\n &:focus {\n outline: 0 !important;\n\n .ckbox {\n box-shadow: 0 0 1px 1px $ui-highlight-color;\n }\n }\n}\n\n.text-btn {\n display: inline-block;\n padding: 0;\n font-family: inherit;\n font-size: inherit;\n color: inherit;\n border: 0;\n background: transparent;\n cursor: pointer;\n}\n\n.loading-indicator {\n color: $dark-text-color;\n font-size: 12px;\n font-weight: 400;\n text-transform: uppercase;\n overflow: visible;\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n\n span {\n display: block;\n float: left;\n margin-left: 50%;\n transform: translateX(-50%);\n margin: 82px 0 0 50%;\n white-space: nowrap;\n }\n}\n\n.loading-indicator__figure {\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n width: 42px;\n height: 42px;\n box-sizing: border-box;\n background-color: transparent;\n border: 0 solid lighten($ui-base-color, 26%);\n border-width: 6px;\n border-radius: 50%;\n}\n\n.no-reduce-motion .loading-indicator span {\n animation: loader-label 1.15s infinite cubic-bezier(0.215, 0.610, 0.355, 1.000);\n}\n\n.no-reduce-motion .loading-indicator__figure {\n animation: loader-figure 1.15s infinite cubic-bezier(0.215, 0.610, 0.355, 1.000);\n}\n\n@keyframes spring-rotate-in {\n 0% {\n transform: rotate(0deg);\n }\n\n 30% {\n transform: rotate(-484.8deg);\n }\n\n 60% {\n transform: rotate(-316.7deg);\n }\n\n 90% {\n transform: rotate(-375deg);\n }\n\n 100% {\n transform: rotate(-360deg);\n }\n}\n\n@keyframes spring-rotate-out {\n 0% {\n transform: rotate(-360deg);\n }\n\n 30% {\n transform: rotate(124.8deg);\n }\n\n 60% {\n transform: rotate(-43.27deg);\n }\n\n 90% {\n transform: rotate(15deg);\n }\n\n 100% {\n transform: rotate(0deg);\n }\n}\n\n@keyframes loader-figure {\n 0% {\n width: 0;\n height: 0;\n background-color: lighten($ui-base-color, 26%);\n }\n\n 29% {\n background-color: lighten($ui-base-color, 26%);\n }\n\n 30% {\n width: 42px;\n height: 42px;\n background-color: transparent;\n border-width: 21px;\n opacity: 1;\n }\n\n 100% {\n width: 42px;\n height: 42px;\n border-width: 0;\n opacity: 0;\n background-color: transparent;\n }\n}\n\n@keyframes loader-label {\n 0% { opacity: 0.25; }\n 30% { opacity: 1; }\n 100% { opacity: 0.25; }\n}\n\n.spoiler-button {\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n position: absolute;\n z-index: 100;\n\n &--minified {\n display: flex;\n left: 4px;\n top: 4px;\n width: auto;\n height: auto;\n align-items: center;\n }\n\n &--click-thru {\n pointer-events: none;\n }\n\n &--hidden {\n display: none;\n }\n\n &__overlay {\n display: block;\n background: transparent;\n width: 100%;\n height: 100%;\n border: 0;\n\n &__label {\n display: inline-block;\n background: rgba($base-overlay-background, 0.5);\n border-radius: 8px;\n padding: 8px 12px;\n color: $primary-text-color;\n font-weight: 500;\n font-size: 14px;\n }\n\n &:hover,\n &:focus,\n &:active {\n .spoiler-button__overlay__label {\n background: rgba($base-overlay-background, 0.8);\n }\n }\n\n &:disabled {\n .spoiler-button__overlay__label {\n background: rgba($base-overlay-background, 0.5);\n }\n }\n }\n}\n\n.setting-toggle {\n display: block;\n line-height: 24px;\n}\n\n.setting-toggle__label,\n.setting-radio__label,\n.setting-meta__label {\n color: $darker-text-color;\n display: inline-block;\n margin-bottom: 14px;\n margin-left: 8px;\n vertical-align: middle;\n}\n\n.setting-radio {\n display: block;\n line-height: 18px;\n}\n\n.setting-radio__label {\n margin-bottom: 0;\n}\n\n.column-settings__row legend {\n color: $darker-text-color;\n cursor: default;\n display: block;\n font-weight: 500;\n margin-top: 10px;\n}\n\n.setting-radio__input {\n vertical-align: middle;\n}\n\n.setting-meta__label {\n float: right;\n}\n\n@keyframes heartbeat {\n from {\n transform: scale(1);\n transform-origin: center center;\n animation-timing-function: ease-out;\n }\n\n 10% {\n transform: scale(0.91);\n animation-timing-function: ease-in;\n }\n\n 17% {\n transform: scale(0.98);\n animation-timing-function: ease-out;\n }\n\n 33% {\n transform: scale(0.87);\n animation-timing-function: ease-in;\n }\n\n 45% {\n transform: scale(1);\n animation-timing-function: ease-out;\n }\n}\n\n.pulse-loading {\n animation: heartbeat 1.5s ease-in-out infinite both;\n}\n\n.upload-area {\n align-items: center;\n background: rgba($base-overlay-background, 0.8);\n display: flex;\n height: 100%;\n justify-content: center;\n left: 0;\n opacity: 0;\n position: absolute;\n top: 0;\n visibility: hidden;\n width: 100%;\n z-index: 2000;\n\n * {\n pointer-events: none;\n }\n}\n\n.upload-area__drop {\n width: 320px;\n height: 160px;\n display: flex;\n box-sizing: border-box;\n position: relative;\n padding: 8px;\n}\n\n.upload-area__background {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: -1;\n border-radius: 4px;\n background: $ui-base-color;\n box-shadow: 0 0 5px rgba($base-shadow-color, 0.2);\n}\n\n.upload-area__content {\n flex: 1;\n display: flex;\n align-items: center;\n justify-content: center;\n color: $secondary-text-color;\n font-size: 18px;\n font-weight: 500;\n border: 2px dashed $ui-base-lighter-color;\n border-radius: 4px;\n}\n\n.dropdown--active .emoji-button img {\n opacity: 1;\n filter: none;\n}\n\n.loading-bar {\n background-color: $ui-highlight-color;\n height: 3px;\n position: absolute;\n top: 0;\n left: 0;\n z-index: 9999;\n}\n\n.icon-badge-wrapper {\n position: relative;\n}\n\n.icon-badge {\n position: absolute;\n display: block;\n right: -.25em;\n top: -.25em;\n background-color: $ui-highlight-color;\n border-radius: 50%;\n font-size: 75%;\n width: 1em;\n height: 1em;\n}\n\n.conversation {\n display: flex;\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n padding: 5px;\n padding-bottom: 0;\n\n &:focus {\n background: lighten($ui-base-color, 2%);\n outline: 0;\n }\n\n &__avatar {\n flex: 0 0 auto;\n padding: 10px;\n padding-top: 12px;\n position: relative;\n cursor: pointer;\n }\n\n &__unread {\n display: inline-block;\n background: $highlight-text-color;\n border-radius: 50%;\n width: 0.625rem;\n height: 0.625rem;\n margin: -.1ex .15em .1ex;\n }\n\n &__content {\n flex: 1 1 auto;\n padding: 10px 5px;\n padding-right: 15px;\n overflow: hidden;\n\n &__info {\n overflow: hidden;\n display: flex;\n flex-direction: row-reverse;\n justify-content: space-between;\n }\n\n &__relative-time {\n font-size: 15px;\n color: $darker-text-color;\n padding-left: 15px;\n }\n\n &__names {\n color: $darker-text-color;\n font-size: 15px;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n margin-bottom: 4px;\n flex-basis: 90px;\n flex-grow: 1;\n\n a {\n color: $primary-text-color;\n text-decoration: none;\n\n &:hover,\n &:focus,\n &:active {\n text-decoration: underline;\n }\n }\n }\n\n .status__content {\n margin: 0;\n }\n }\n\n &--unread {\n background: lighten($ui-base-color, 2%);\n\n &:focus {\n background: lighten($ui-base-color, 4%);\n }\n\n .conversation__content__info {\n font-weight: 700;\n }\n\n .conversation__content__relative-time {\n color: $primary-text-color;\n }\n }\n}\n\n.ui .flash-message {\n margin-top: 10px;\n margin-left: auto;\n margin-right: auto;\n margin-bottom: 0;\n min-width: 75%;\n}\n\n::-webkit-scrollbar-thumb {\n border-radius: 0;\n}\n\nnoscript {\n text-align: center;\n\n img {\n width: 200px;\n opacity: 0.5;\n animation: flicker 4s infinite;\n }\n\n div {\n font-size: 14px;\n margin: 30px auto;\n color: $secondary-text-color;\n max-width: 400px;\n\n a {\n color: $highlight-text-color;\n text-decoration: underline;\n\n &:hover {\n text-decoration: none;\n }\n }\n\n a {\n word-break: break-word;\n }\n }\n}\n\n@keyframes flicker {\n 0% { opacity: 1; }\n 30% { opacity: 0.75; }\n 100% { opacity: 1; }\n}\n\n@import 'boost';\n@import 'accounts';\n@import 'domains';\n@import 'status';\n@import 'modal';\n@import 'composer';\n@import 'columns';\n@import 'regeneration_indicator';\n@import 'directory';\n@import 'search';\n@import 'emoji';\n@import 'doodle';\n@import 'drawer';\n@import 'media';\n@import 'sensitive';\n@import 'lists';\n@import 'emoji_picker';\n@import 'local_settings';\n@import 'error_boundary';\n@import 'single_column';\n@import 'announcements';\n","button.icon-button i.fa-retweet {\n background-image: url(\"data:image/svg+xml;utf8,\");\n\n &:hover {\n background-image: url(\"data:image/svg+xml;utf8,\");\n }\n}\n\n// Disabled variant\nbutton.icon-button.disabled i.fa-retweet {\n &, &:hover {\n background-image: url(\"data:image/svg+xml;utf8,\");\n }\n}\n\n// Disabled variant for use with DMs\n.status-direct button.icon-button.disabled i.fa-retweet {\n &, &:hover {\n background-image: url(\"data:image/svg+xml;utf8,\");\n }\n}\n",".account {\n padding: 10px;\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n color: inherit;\n text-decoration: none;\n\n .account__display-name {\n flex: 1 1 auto;\n display: block;\n color: $darker-text-color;\n overflow: hidden;\n text-decoration: none;\n font-size: 14px;\n }\n\n &.small {\n border: none;\n padding: 0;\n\n & > .account__avatar-wrapper { margin: 0 8px 0 0 }\n\n & > .display-name {\n height: 24px;\n line-height: 24px;\n }\n }\n}\n\n.account__wrapper {\n display: flex;\n}\n\n.account__avatar-wrapper {\n float: left;\n margin-left: 12px;\n margin-right: 12px;\n}\n\n.account__avatar {\n @include avatar-radius();\n position: relative;\n cursor: pointer;\n\n &-inline {\n display: inline-block;\n vertical-align: middle;\n margin-right: 5px;\n }\n\n &-composite {\n @include avatar-radius;\n overflow: hidden;\n position: relative;\n\n & div {\n @include avatar-radius;\n float: left;\n position: relative;\n box-sizing: border-box;\n }\n\n &__label {\n display: block;\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n color: $primary-text-color;\n text-shadow: 1px 1px 2px $base-shadow-color;\n font-weight: 700;\n font-size: 15px;\n }\n }\n}\n\n.account__avatar-overlay {\n position: relative;\n @include avatar-size(48px);\n\n &-base {\n @include avatar-radius();\n @include avatar-size(36px);\n }\n\n &-overlay {\n @include avatar-radius();\n @include avatar-size(24px);\n\n position: absolute;\n bottom: 0;\n right: 0;\n z-index: 1;\n }\n}\n\n.account__relationship {\n height: 18px;\n padding: 10px;\n white-space: nowrap;\n}\n\n.account__header__wrapper {\n flex: 0 0 auto;\n background: lighten($ui-base-color, 4%);\n}\n\n.account__disclaimer {\n padding: 10px;\n color: $dark-text-color;\n\n strong {\n font-weight: 500;\n\n @each $lang in $cjk-langs {\n &:lang(#{$lang}) {\n font-weight: 700;\n }\n }\n }\n\n a {\n font-weight: 500;\n color: inherit;\n text-decoration: underline;\n\n &:hover,\n &:focus,\n &:active {\n text-decoration: none;\n }\n }\n}\n\n.account__action-bar {\n border-top: 1px solid lighten($ui-base-color, 8%);\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n line-height: 36px;\n overflow: hidden;\n flex: 0 0 auto;\n display: flex;\n}\n\n.account__action-bar-links {\n display: flex;\n flex: 1 1 auto;\n line-height: 18px;\n text-align: center;\n}\n\n.account__action-bar__tab {\n text-decoration: none;\n overflow: hidden;\n flex: 0 1 100%;\n border-left: 1px solid lighten($ui-base-color, 8%);\n padding: 10px 0;\n border-bottom: 4px solid transparent;\n\n &:first-child {\n border-left: 0;\n }\n\n &.active {\n border-bottom: 4px solid $ui-highlight-color;\n }\n\n & > span {\n display: block;\n text-transform: uppercase;\n font-size: 11px;\n color: $darker-text-color;\n }\n\n strong {\n display: block;\n font-size: 15px;\n font-weight: 500;\n color: $primary-text-color;\n\n @each $lang in $cjk-langs {\n &:lang(#{$lang}) {\n font-weight: 700;\n }\n }\n }\n\n abbr {\n color: $highlight-text-color;\n }\n}\n\n.account-authorize {\n padding: 14px 10px;\n\n .detailed-status__display-name {\n display: block;\n margin-bottom: 15px;\n overflow: hidden;\n }\n}\n\n.account-authorize__avatar {\n float: left;\n margin-right: 10px;\n}\n\n.notification__message {\n margin-left: 42px;\n padding: 8px 0 0 26px;\n cursor: default;\n color: $darker-text-color;\n font-size: 15px;\n position: relative;\n\n .fa {\n color: $highlight-text-color;\n }\n\n > span {\n display: block;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n}\n\n.account--panel {\n background: lighten($ui-base-color, 4%);\n border-top: 1px solid lighten($ui-base-color, 8%);\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n display: flex;\n flex-direction: row;\n padding: 10px 0;\n}\n\n.account--panel__button,\n.detailed-status__button {\n flex: 1 1 auto;\n text-align: center;\n}\n\n.column-settings__outer {\n background: lighten($ui-base-color, 8%);\n padding: 15px;\n}\n\n.column-settings__section {\n color: $darker-text-color;\n cursor: default;\n display: block;\n font-weight: 500;\n margin-bottom: 10px;\n}\n\n.column-settings__hashtags {\n .column-settings__row {\n margin-bottom: 15px;\n }\n\n .column-select {\n &__control {\n @include search-input();\n\n &::placeholder {\n color: lighten($darker-text-color, 4%);\n }\n\n &::-moz-focus-inner {\n border: 0;\n }\n\n &::-moz-focus-inner,\n &:focus,\n &:active {\n outline: 0 !important;\n }\n\n &:focus {\n background: lighten($ui-base-color, 4%);\n }\n\n @media screen and (max-width: 600px) {\n font-size: 16px;\n }\n }\n\n &__placeholder {\n color: $dark-text-color;\n padding-left: 2px;\n font-size: 12px;\n }\n\n &__value-container {\n padding-left: 6px;\n }\n\n &__multi-value {\n background: lighten($ui-base-color, 8%);\n\n &__remove {\n cursor: pointer;\n\n &:hover,\n &:active,\n &:focus {\n background: lighten($ui-base-color, 12%);\n color: lighten($darker-text-color, 4%);\n }\n }\n }\n\n &__multi-value__label,\n &__input {\n color: $darker-text-color;\n }\n\n &__clear-indicator,\n &__dropdown-indicator {\n cursor: pointer;\n transition: none;\n color: $dark-text-color;\n\n &:hover,\n &:active,\n &:focus {\n color: lighten($dark-text-color, 4%);\n }\n }\n\n &__indicator-separator {\n background-color: lighten($ui-base-color, 8%);\n }\n\n &__menu {\n @include search-popout();\n padding: 0;\n background: $ui-secondary-color;\n }\n\n &__menu-list {\n padding: 6px;\n }\n\n &__option {\n color: $inverted-text-color;\n border-radius: 4px;\n font-size: 14px;\n\n &--is-focused,\n &--is-selected {\n background: darken($ui-secondary-color, 10%);\n }\n }\n }\n}\n\n.column-settings__row {\n .text-btn {\n margin-bottom: 15px;\n }\n}\n\n.relationship-tag {\n color: $primary-text-color;\n margin-bottom: 4px;\n display: block;\n vertical-align: top;\n background-color: $base-overlay-background;\n text-transform: uppercase;\n font-size: 11px;\n font-weight: 500;\n padding: 4px;\n border-radius: 4px;\n opacity: 0.7;\n\n &:hover {\n opacity: 1;\n }\n}\n\n.account-gallery__container {\n display: flex;\n flex-wrap: wrap;\n padding: 4px 2px;\n}\n\n.account-gallery__item {\n border: none;\n box-sizing: border-box;\n display: block;\n position: relative;\n border-radius: 4px;\n overflow: hidden;\n margin: 2px;\n\n &__icons {\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n font-size: 24px;\n }\n}\n\n.notification__filter-bar,\n.account__section-headline {\n background: darken($ui-base-color, 4%);\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n cursor: default;\n display: flex;\n flex-shrink: 0;\n\n button {\n background: darken($ui-base-color, 4%);\n border: 0;\n margin: 0;\n }\n\n button,\n a {\n display: block;\n flex: 1 1 auto;\n color: $darker-text-color;\n padding: 15px 0;\n font-size: 14px;\n font-weight: 500;\n text-align: center;\n text-decoration: none;\n position: relative;\n\n &.active {\n color: $secondary-text-color;\n\n &::before,\n &::after {\n display: block;\n content: \"\";\n position: absolute;\n bottom: 0;\n left: 50%;\n width: 0;\n height: 0;\n transform: translateX(-50%);\n border-style: solid;\n border-width: 0 10px 10px;\n border-color: transparent transparent lighten($ui-base-color, 8%);\n }\n\n &::after {\n bottom: -1px;\n border-color: transparent transparent $ui-base-color;\n }\n }\n }\n\n &.directory__section-headline {\n background: darken($ui-base-color, 2%);\n border-bottom-color: transparent;\n\n a,\n button {\n &.active {\n &::before {\n display: none;\n }\n\n &::after {\n border-color: transparent transparent darken($ui-base-color, 7%);\n }\n }\n }\n }\n}\n\n.account__moved-note {\n padding: 14px 10px;\n padding-bottom: 16px;\n background: lighten($ui-base-color, 4%);\n border-top: 1px solid lighten($ui-base-color, 8%);\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n\n &__message {\n position: relative;\n margin-left: 58px;\n color: $dark-text-color;\n padding: 8px 0;\n padding-top: 0;\n padding-bottom: 4px;\n font-size: 14px;\n\n > span {\n display: block;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n }\n\n &__icon-wrapper {\n left: -26px;\n position: absolute;\n }\n\n .detailed-status__display-avatar {\n position: relative;\n }\n\n .detailed-status__display-name {\n margin-bottom: 0;\n }\n}\n\n.account__header__content {\n color: $darker-text-color;\n font-size: 14px;\n font-weight: 400;\n overflow: hidden;\n word-break: normal;\n word-wrap: break-word;\n\n p {\n margin-bottom: 20px;\n\n &:last-child {\n margin-bottom: 0;\n }\n }\n\n a {\n color: inherit;\n text-decoration: underline;\n\n &:hover {\n text-decoration: none;\n }\n }\n}\n\n.account__header {\n overflow: hidden;\n\n &.inactive {\n opacity: 0.5;\n\n .account__header__image,\n .account__avatar {\n filter: grayscale(100%);\n }\n }\n\n &__info {\n position: absolute;\n top: 10px;\n left: 10px;\n }\n\n &__image {\n overflow: hidden;\n height: 145px;\n position: relative;\n background: darken($ui-base-color, 4%);\n\n img {\n object-fit: cover;\n display: block;\n width: 100%;\n height: 100%;\n margin: 0;\n }\n }\n\n &__bar {\n position: relative;\n background: lighten($ui-base-color, 4%);\n padding: 5px;\n border-bottom: 1px solid lighten($ui-base-color, 12%);\n\n .avatar {\n display: block;\n flex: 0 0 auto;\n width: 94px;\n margin-left: -2px;\n\n .account__avatar {\n background: darken($ui-base-color, 8%);\n border: 2px solid lighten($ui-base-color, 4%);\n }\n }\n }\n\n &__tabs {\n display: flex;\n align-items: flex-start;\n padding: 7px 5px;\n margin-top: -55px;\n\n &__buttons {\n display: flex;\n align-items: center;\n padding-top: 55px;\n overflow: hidden;\n\n .icon-button {\n border: 1px solid lighten($ui-base-color, 12%);\n border-radius: 4px;\n box-sizing: content-box;\n padding: 2px;\n }\n\n .button {\n margin: 0 8px;\n }\n }\n\n &__name {\n padding: 5px;\n\n .account-role {\n vertical-align: top;\n }\n\n .emojione {\n width: 22px;\n height: 22px;\n }\n\n h1 {\n font-size: 16px;\n line-height: 24px;\n color: $primary-text-color;\n font-weight: 500;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n\n small {\n display: block;\n font-size: 14px;\n color: $darker-text-color;\n font-weight: 400;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n }\n }\n\n .spacer {\n flex: 1 1 auto;\n }\n }\n\n &__bio {\n overflow: hidden;\n margin: 0 -5px;\n\n .account__header__content {\n padding: 20px 15px;\n padding-bottom: 5px;\n color: $primary-text-color;\n }\n\n .account__header__fields {\n margin: 0;\n border-top: 1px solid lighten($ui-base-color, 12%);\n\n a {\n color: lighten($ui-highlight-color, 8%);\n }\n\n dl:first-child .verified {\n border-radius: 0 4px 0 0;\n }\n\n .verified a {\n color: $valid-value-color;\n }\n }\n }\n\n &__extra {\n margin-top: 4px;\n\n &__links {\n font-size: 14px;\n color: $darker-text-color;\n padding: 10px 0;\n\n a {\n display: inline-block;\n color: $darker-text-color;\n text-decoration: none;\n padding: 5px 10px;\n font-weight: 500;\n\n strong {\n font-weight: 700;\n color: $primary-text-color;\n }\n }\n }\n }\n}\n",".domain {\n padding: 10px;\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n\n .domain__domain-name {\n flex: 1 1 auto;\n display: block;\n color: $primary-text-color;\n text-decoration: none;\n font-size: 14px;\n font-weight: 500;\n }\n}\n\n.domain__wrapper {\n display: flex;\n}\n\n.domain_buttons {\n height: 18px;\n padding: 10px;\n white-space: nowrap;\n}\n","@keyframes spring-flip-in {\n 0% {\n transform: rotate(0deg);\n }\n\n 30% {\n transform: rotate(-242.4deg);\n }\n\n 60% {\n transform: rotate(-158.35deg);\n }\n\n 90% {\n transform: rotate(-187.5deg);\n }\n\n 100% {\n transform: rotate(-180deg);\n }\n}\n\n@keyframes spring-flip-out {\n 0% {\n transform: rotate(-180deg);\n }\n\n 30% {\n transform: rotate(62.4deg);\n }\n\n 60% {\n transform: rotate(-21.635deg);\n }\n\n 90% {\n transform: rotate(7.5deg);\n }\n\n 100% {\n transform: rotate(0deg);\n }\n}\n\n.status__content--with-action {\n cursor: pointer;\n}\n\n.status__content {\n position: relative;\n margin: 10px 0;\n font-size: 15px;\n line-height: 20px;\n word-wrap: break-word;\n font-weight: 400;\n overflow: visible;\n padding-top: 5px;\n\n &:focus {\n outline: 0;\n }\n\n .emojione {\n width: 20px;\n height: 20px;\n margin: -3px 0 0;\n }\n\n img {\n max-width: 100%;\n max-height: 400px;\n object-fit: contain;\n }\n\n p, pre, blockquote {\n margin-bottom: 20px;\n white-space: pre-wrap;\n\n &:last-child {\n margin-bottom: 0;\n }\n }\n\n .status__content__text,\n .e-content {\n overflow: hidden;\n\n & > ul,\n & > ol {\n margin-bottom: 20px;\n }\n\n h1, h2, h3, h4, h5 {\n margin-top: 20px;\n margin-bottom: 20px;\n }\n\n h1, h2 {\n font-weight: 700;\n font-size: 1.2em;\n }\n\n h2 {\n font-size: 1.1em;\n }\n\n h3, h4, h5 {\n font-weight: 500;\n }\n\n blockquote {\n padding-left: 10px;\n border-left: 3px solid $darker-text-color;\n color: $darker-text-color;\n white-space: normal;\n\n p:last-child {\n margin-bottom: 0;\n }\n }\n\n b, strong {\n font-weight: 700;\n }\n\n em, i {\n font-style: italic;\n }\n\n sub {\n font-size: smaller;\n text-align: sub;\n }\n\n sup {\n font-size: smaller;\n vertical-align: super;\n }\n\n ul, ol {\n margin-left: 1em;\n\n p {\n margin: 0;\n }\n }\n\n ul {\n list-style-type: disc;\n }\n\n ol {\n list-style-type: decimal;\n }\n }\n\n a {\n color: $pleroma-links;\n text-decoration: none;\n\n &:hover {\n text-decoration: underline;\n\n .fa {\n color: lighten($dark-text-color, 7%);\n }\n }\n\n &.mention {\n &:hover {\n text-decoration: none;\n\n span {\n text-decoration: underline;\n }\n }\n }\n\n .fa {\n color: $dark-text-color;\n }\n }\n\n .status__content__spoiler {\n display: none;\n\n &.status__content__spoiler--visible {\n display: block;\n }\n }\n\n a.unhandled-link {\n color: lighten($ui-highlight-color, 8%);\n\n .link-origin-tag {\n color: $gold-star;\n font-size: 0.8em;\n }\n }\n\n .status__content__spoiler-link {\n background: lighten($ui-base-color, 30%);\n\n &:hover {\n background: lighten($ui-base-color, 33%);\n text-decoration: none;\n }\n }\n}\n\n.status__content__spoiler-link {\n display: inline-block;\n border-radius: 2px;\n background: lighten($ui-base-color, 30%);\n border: none;\n color: $inverted-text-color;\n font-weight: 500;\n font-size: 11px;\n padding: 0 5px;\n text-transform: uppercase;\n line-height: inherit;\n cursor: pointer;\n vertical-align: bottom;\n\n &:hover {\n background: lighten($ui-base-color, 33%);\n text-decoration: none;\n }\n\n .status__content__spoiler-icon {\n display: inline-block;\n margin: 0 0 0 5px;\n border-left: 1px solid currentColor;\n padding: 0 0 0 4px;\n font-size: 16px;\n vertical-align: -2px;\n }\n}\n\n.notif-cleaning {\n .status,\n .notification-follow,\n .notification-follow-request {\n padding-right: ($dismiss-overlay-width + 0.5rem);\n }\n}\n\n.status__wrapper--filtered {\n color: $dark-text-color;\n border: 0;\n font-size: inherit;\n text-align: center;\n line-height: inherit;\n margin: 0;\n padding: 15px;\n box-sizing: border-box;\n width: 100%;\n clear: both;\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n}\n\n.status__prepend-icon-wrapper {\n left: -26px;\n position: absolute;\n}\n\n.notification-follow,\n.notification-follow-request {\n position: relative;\n\n // same like Status\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n\n .account {\n border-bottom: 0 none;\n }\n}\n\n.focusable {\n &:focus {\n outline: 0;\n background: lighten($ui-base-color, 4%);\n\n &.status.status-direct:not(.read) {\n background: lighten($ui-base-color, 12%);\n\n &.muted {\n background: transparent;\n }\n }\n\n .detailed-status,\n .detailed-status__action-bar {\n background: lighten($ui-base-color, 8%);\n }\n }\n}\n\n.status {\n padding: 10px 14px;\n position: relative;\n height: auto;\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n cursor: default;\n\n @supports (-ms-overflow-style: -ms-autohiding-scrollbar) {\n // Add margin to avoid Edge auto-hiding scrollbar appearing over content.\n // On Edge 16 this is 16px and Edge <=15 it's 12px, so aim for 16px.\n padding-right: 28px; // 12px + 16px\n }\n\n @keyframes fade {\n 0% { opacity: 0; }\n 100% { opacity: 1; }\n }\n\n opacity: 1;\n animation: fade 150ms linear;\n\n .video-player,\n .audio-player {\n margin-top: 8px;\n }\n\n &.status-direct:not(.read) {\n background: lighten($ui-base-color, 8%);\n border-bottom-color: lighten($ui-base-color, 12%);\n }\n\n &.light {\n .status__relative-time {\n color: $lighter-text-color;\n }\n\n .status__display-name {\n color: $inverted-text-color;\n }\n\n .display-name {\n color: $light-text-color;\n\n strong {\n color: $inverted-text-color;\n }\n }\n\n .status__content {\n color: $inverted-text-color;\n\n a {\n color: $highlight-text-color;\n }\n\n a.status__content__spoiler-link {\n color: $primary-text-color;\n background: $ui-primary-color;\n\n &:hover {\n background: lighten($ui-primary-color, 8%);\n }\n }\n }\n }\n\n &.collapsed {\n background-position: center;\n background-size: cover;\n user-select: none;\n\n &.has-background::before {\n display: block;\n position: absolute;\n left: 0;\n right: 0;\n top: 0;\n bottom: 0;\n background-image: linear-gradient(to bottom, rgba($base-shadow-color, .75), rgba($base-shadow-color, .65) 24px, rgba($base-shadow-color, .8));\n pointer-events: none;\n content: \"\";\n }\n\n .display-name:hover .display-name__html {\n text-decoration: none;\n }\n\n .status__content {\n height: 20px;\n overflow: hidden;\n text-overflow: ellipsis;\n padding-top: 0;\n\n &:after {\n content: \"\";\n position: absolute;\n top: 0; bottom: 0;\n left: 0; right: 0;\n background: linear-gradient(rgba($ui-base-color, 0), rgba($ui-base-color, 1));\n pointer-events: none;\n }\n \n a:hover {\n text-decoration: none;\n }\n }\n &:focus > .status__content:after {\n background: linear-gradient(rgba(lighten($ui-base-color, 4%), 0), rgba(lighten($ui-base-color, 4%), 1));\n }\n &.status-direct:not(.read)> .status__content:after {\n background: linear-gradient(rgba(lighten($ui-base-color, 8%), 0), rgba(lighten($ui-base-color, 8%), 1));\n }\n\n .notification__message {\n margin-bottom: 0;\n }\n\n .status__info .notification__message > span {\n white-space: nowrap;\n }\n }\n\n .notification__message {\n margin: -10px 0px 10px 0;\n }\n}\n\n.notification-favourite {\n .status.status-direct {\n background: transparent;\n\n .icon-button.disabled {\n color: lighten($action-button-color, 13%);\n }\n }\n}\n\n.status__relative-time {\n display: inline-block;\n flex-grow: 1;\n color: $dark-text-color;\n font-size: 14px;\n text-align: right;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n.status__display-name {\n color: $dark-text-color;\n overflow: hidden;\n}\n\n.status__info__account .status__display-name {\n display: block;\n max-width: 100%;\n}\n\n.status__info {\n display: flex;\n justify-content: space-between;\n font-size: 15px;\n\n > span {\n text-overflow: ellipsis;\n overflow: hidden;\n }\n\n .notification__message > span {\n word-wrap: break-word;\n }\n}\n\n.status__info__icons {\n display: flex;\n align-items: center;\n height: 1em;\n color: $action-button-color;\n\n .status__media-icon,\n .status__visibility-icon,\n .status__reply-icon {\n padding-left: 2px;\n padding-right: 2px;\n }\n\n .status__collapse-button.active > .fa-angle-double-up {\n transform: rotate(-180deg);\n }\n}\n\n.no-reduce-motion .status__collapse-button {\n &.activate {\n & > .fa-angle-double-up {\n animation: spring-flip-in 1s linear;\n }\n }\n\n &.deactivate {\n & > .fa-angle-double-up {\n animation: spring-flip-out 1s linear;\n }\n }\n}\n\n.status__info__account {\n display: flex;\n align-items: center;\n justify-content: flex-start;\n}\n\n.status-check-box {\n border-bottom: 1px solid $ui-secondary-color;\n display: flex;\n\n .status-check-box__status {\n margin: 10px 0 10px 10px;\n flex: 1;\n overflow: hidden;\n\n .media-gallery {\n max-width: 250px;\n }\n\n .status__content {\n padding: 0;\n white-space: normal;\n }\n\n .video-player,\n .audio-player {\n margin-top: 8px;\n max-width: 250px;\n }\n\n .media-gallery__item-thumbnail {\n cursor: default;\n }\n }\n}\n\n.status-check-box-toggle {\n align-items: center;\n display: flex;\n flex: 0 0 auto;\n justify-content: center;\n padding: 10px;\n}\n\n.status__prepend {\n margin-top: -10px;\n margin-bottom: 10px;\n margin-left: 58px;\n color: $dark-text-color;\n padding: 8px 0;\n padding-bottom: 2px;\n font-size: 14px;\n position: relative;\n\n .status__display-name strong {\n color: $dark-text-color;\n }\n\n > span {\n display: block;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n}\n\n.status__action-bar {\n align-items: center;\n display: flex;\n margin-top: 8px;\n\n &__counter {\n display: inline-flex;\n margin-right: 11px;\n align-items: center;\n\n .status__action-bar-button {\n margin-right: 4px;\n }\n\n &__label {\n display: inline-block;\n width: 14px;\n font-size: 12px;\n font-weight: 500;\n color: $action-button-color;\n }\n }\n}\n\n.status__action-bar-button {\n margin-right: 18px;\n}\n\n.status__action-bar-dropdown {\n height: 23.15px;\n width: 23.15px;\n}\n\n.detailed-status__action-bar-dropdown {\n flex: 1 1 auto;\n display: flex;\n align-items: center;\n justify-content: center;\n position: relative;\n}\n\n.detailed-status {\n background: lighten($ui-base-color, 4%);\n padding: 14px 10px;\n\n &--flex {\n display: flex;\n flex-wrap: wrap;\n justify-content: space-between;\n align-items: flex-start;\n\n .status__content,\n .detailed-status__meta {\n flex: 100%;\n }\n }\n\n .status__content {\n font-size: 19px;\n line-height: 24px;\n\n .emojione {\n width: 24px;\n height: 24px;\n margin: -1px 0 0;\n }\n }\n\n .video-player,\n .audio-player {\n margin-top: 8px;\n }\n}\n\n.detailed-status__meta {\n margin-top: 15px;\n color: $dark-text-color;\n font-size: 14px;\n line-height: 18px;\n}\n\n.detailed-status__action-bar {\n background: lighten($ui-base-color, 4%);\n border-top: 1px solid lighten($ui-base-color, 8%);\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n display: flex;\n flex-direction: row;\n padding: 10px 0;\n}\n\n.detailed-status__link {\n color: inherit;\n text-decoration: none;\n}\n\n.detailed-status__favorites,\n.detailed-status__reblogs {\n display: inline-block;\n font-weight: 500;\n font-size: 12px;\n margin-left: 6px;\n}\n\n.status__display-name,\n.status__relative-time,\n.detailed-status__display-name,\n.detailed-status__datetime,\n.detailed-status__application,\n.account__display-name {\n text-decoration: none;\n}\n\n.status__display-name,\n.account__display-name {\n strong {\n color: $primary-text-color;\n }\n}\n\n.muted {\n .emojione {\n opacity: 0.5;\n }\n}\n\na.status__display-name,\n.reply-indicator__display-name,\n.detailed-status__display-name,\n.account__display-name {\n &:hover strong {\n text-decoration: underline;\n }\n}\n\n.account__display-name strong {\n display: block;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n.detailed-status__application,\n.detailed-status__datetime {\n color: inherit;\n}\n\n.detailed-status .button.logo-button {\n margin-bottom: 15px;\n}\n\n.detailed-status__display-name {\n color: $secondary-text-color;\n display: block;\n line-height: 24px;\n margin-bottom: 15px;\n overflow: hidden;\n\n strong,\n span {\n display: block;\n text-overflow: ellipsis;\n overflow: hidden;\n }\n\n strong {\n font-size: 16px;\n color: $primary-text-color;\n }\n}\n\n.detailed-status__display-avatar {\n float: left;\n margin-right: 10px;\n}\n\n.status__avatar {\n flex: none;\n margin: 0 10px 0 0;\n height: 48px;\n width: 48px;\n}\n\n.muted {\n .status__content,\n .status__content p,\n .status__content a,\n .status__content__text {\n color: $dark-text-color;\n }\n\n .status__display-name strong {\n color: $dark-text-color;\n }\n\n .status__avatar {\n opacity: 0.5;\n }\n\n a.status__content__spoiler-link {\n background: $ui-base-lighter-color;\n color: $inverted-text-color;\n\n &:hover {\n background: lighten($ui-base-color, 29%);\n text-decoration: none;\n }\n }\n}\n\n.status__relative-time,\n.detailed-status__datetime {\n &:hover {\n text-decoration: underline;\n }\n}\n\n.status-card {\n display: flex;\n font-size: 14px;\n border: 1px solid lighten($ui-base-color, 8%);\n border-radius: 4px;\n color: $dark-text-color;\n margin-top: 14px;\n text-decoration: none;\n overflow: hidden;\n\n &__actions {\n bottom: 0;\n left: 0;\n position: absolute;\n right: 0;\n top: 0;\n display: flex;\n justify-content: center;\n align-items: center;\n\n & > div {\n background: rgba($base-shadow-color, 0.6);\n border-radius: 8px;\n padding: 12px 9px;\n flex: 0 0 auto;\n display: flex;\n justify-content: center;\n align-items: center;\n }\n\n button,\n a {\n display: inline;\n color: $secondary-text-color;\n background: transparent;\n border: 0;\n padding: 0 8px;\n text-decoration: none;\n font-size: 18px;\n line-height: 18px;\n\n &:hover,\n &:active,\n &:focus {\n color: $primary-text-color;\n }\n }\n\n a {\n font-size: 19px;\n position: relative;\n bottom: -1px;\n }\n\n a .fa, a:hover .fa {\n color: inherit;\n }\n }\n}\n\na.status-card {\n cursor: pointer;\n\n &:hover {\n background: lighten($ui-base-color, 8%);\n }\n}\n\n.status-card-photo {\n cursor: zoom-in;\n display: block;\n text-decoration: none;\n width: 100%;\n height: auto;\n margin: 0;\n}\n\n.status-card-video {\n iframe {\n width: 100%;\n height: 100%;\n }\n}\n\n.status-card__title {\n display: block;\n font-weight: 500;\n margin-bottom: 5px;\n color: $darker-text-color;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n text-decoration: none;\n}\n\n.status-card__content {\n flex: 1 1 auto;\n overflow: hidden;\n padding: 14px 14px 14px 8px;\n}\n\n.status-card__description {\n color: $darker-text-color;\n}\n\n.status-card__host {\n display: block;\n margin-top: 5px;\n font-size: 13px;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.status-card__image {\n flex: 0 0 100px;\n background: lighten($ui-base-color, 8%);\n position: relative;\n\n & > .fa {\n font-size: 21px;\n position: absolute;\n transform-origin: 50% 50%;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n }\n}\n\n.status-card.horizontal {\n display: block;\n\n .status-card__image {\n width: 100%;\n }\n\n .status-card__image-image {\n border-radius: 4px 4px 0 0;\n }\n\n .status-card__title {\n white-space: inherit;\n }\n}\n\n.status-card.compact {\n border-color: lighten($ui-base-color, 4%);\n\n &.interactive {\n border: 0;\n }\n\n .status-card__content {\n padding: 8px;\n padding-top: 10px;\n }\n\n .status-card__title {\n white-space: nowrap;\n }\n\n .status-card__image {\n flex: 0 0 60px;\n }\n}\n\na.status-card.compact:hover {\n background-color: lighten($ui-base-color, 4%);\n}\n\n.status-card__image-image {\n border-radius: 4px 0 0 4px;\n display: block;\n margin: 0;\n width: 100%;\n height: 100%;\n object-fit: cover;\n background-size: cover;\n background-position: center center;\n}\n\n.attachment-list {\n display: flex;\n font-size: 14px;\n border: 1px solid lighten($ui-base-color, 8%);\n border-radius: 4px;\n margin-top: 14px;\n overflow: hidden;\n\n &__icon {\n flex: 0 0 auto;\n color: $dark-text-color;\n padding: 8px 18px;\n cursor: default;\n border-right: 1px solid lighten($ui-base-color, 8%);\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n font-size: 26px;\n\n .fa {\n display: block;\n }\n }\n\n &__list {\n list-style: none;\n padding: 4px 0;\n padding-left: 8px;\n display: flex;\n flex-direction: column;\n justify-content: center;\n\n li {\n display: block;\n padding: 4px 0;\n }\n\n a {\n text-decoration: none;\n color: $dark-text-color;\n font-weight: 500;\n\n &:hover {\n text-decoration: underline;\n }\n }\n }\n\n &.compact {\n border: 0;\n margin-top: 4px;\n\n .attachment-list__list {\n padding: 0;\n display: block;\n }\n\n .fa {\n color: $dark-text-color;\n }\n }\n}\n\n.status__wrapper--filtered__button {\n display: inline;\n color: lighten($ui-highlight-color, 8%);\n border: 0;\n background: transparent;\n padding: 0;\n font-size: inherit;\n line-height: inherit;\n\n &:hover,\n &:active {\n text-decoration: underline;\n }\n}\n",".modal-container--preloader {\n background: lighten($ui-base-color, 8%);\n}\n\n.modal-root {\n position: relative;\n transition: opacity 0.3s linear;\n will-change: opacity;\n z-index: 9999;\n}\n\n.modal-root__overlay {\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background: rgba($base-overlay-background, 0.7);\n}\n\n.modal-root__container {\n position: fixed;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n align-content: space-around;\n z-index: 9999;\n pointer-events: none;\n user-select: none;\n}\n\n.modal-root__modal {\n pointer-events: auto;\n display: flex;\n z-index: 9999;\n}\n\n.onboarding-modal,\n.error-modal,\n.embed-modal {\n background: $ui-secondary-color;\n color: $inverted-text-color;\n border-radius: 8px;\n overflow: hidden;\n display: flex;\n flex-direction: column;\n}\n\n.onboarding-modal__pager {\n height: 80vh;\n width: 80vw;\n max-width: 520px;\n max-height: 470px;\n\n .react-swipeable-view-container > div {\n width: 100%;\n height: 100%;\n box-sizing: border-box;\n display: none;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n display: flex;\n user-select: text;\n }\n}\n\n.error-modal__body {\n height: 80vh;\n width: 80vw;\n max-width: 520px;\n max-height: 420px;\n position: relative;\n\n & > div {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n box-sizing: border-box;\n padding: 25px;\n display: none;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n display: flex;\n opacity: 0;\n user-select: text;\n }\n}\n\n.error-modal__body {\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n text-align: center;\n}\n\n@media screen and (max-width: 550px) {\n .onboarding-modal {\n width: 100%;\n height: 100%;\n border-radius: 0;\n }\n\n .onboarding-modal__pager {\n width: 100%;\n height: auto;\n max-width: none;\n max-height: none;\n flex: 1 1 auto;\n }\n}\n\n.onboarding-modal__paginator,\n.error-modal__footer {\n flex: 0 0 auto;\n background: darken($ui-secondary-color, 8%);\n display: flex;\n padding: 25px;\n\n & > div {\n min-width: 33px;\n }\n\n .onboarding-modal__nav,\n .error-modal__nav {\n color: $lighter-text-color;\n border: 0;\n font-size: 14px;\n font-weight: 500;\n padding: 10px 25px;\n line-height: inherit;\n height: auto;\n margin: -10px;\n border-radius: 4px;\n background-color: transparent;\n\n &:hover,\n &:focus,\n &:active {\n color: darken($lighter-text-color, 4%);\n background-color: darken($ui-secondary-color, 16%);\n }\n\n &.onboarding-modal__done,\n &.onboarding-modal__next {\n color: $inverted-text-color;\n\n &:hover,\n &:focus,\n &:active {\n color: lighten($inverted-text-color, 4%);\n }\n }\n }\n}\n\n.error-modal__footer {\n justify-content: center;\n}\n\n.onboarding-modal__dots {\n flex: 1 1 auto;\n display: flex;\n align-items: center;\n justify-content: center;\n}\n\n.onboarding-modal__dot {\n width: 14px;\n height: 14px;\n border-radius: 14px;\n background: darken($ui-secondary-color, 16%);\n margin: 0 3px;\n cursor: pointer;\n\n &:hover {\n background: darken($ui-secondary-color, 18%);\n }\n\n &.active {\n cursor: default;\n background: darken($ui-secondary-color, 24%);\n }\n}\n\n.onboarding-modal__page__wrapper {\n pointer-events: none;\n padding: 25px;\n padding-bottom: 0;\n\n &.onboarding-modal__page__wrapper--active {\n pointer-events: auto;\n }\n}\n\n.onboarding-modal__page {\n cursor: default;\n line-height: 21px;\n\n h1 {\n font-size: 18px;\n font-weight: 500;\n color: $inverted-text-color;\n margin-bottom: 20px;\n }\n\n a {\n color: $highlight-text-color;\n\n &:hover,\n &:focus,\n &:active {\n color: lighten($highlight-text-color, 4%);\n }\n }\n\n .navigation-bar a {\n color: inherit;\n }\n\n p {\n font-size: 16px;\n color: $lighter-text-color;\n margin-top: 10px;\n margin-bottom: 10px;\n\n &:last-child {\n margin-bottom: 0;\n }\n\n strong {\n font-weight: 500;\n background: $ui-base-color;\n color: $secondary-text-color;\n border-radius: 4px;\n font-size: 14px;\n padding: 3px 6px;\n\n @each $lang in $cjk-langs {\n &:lang(#{$lang}) {\n font-weight: 700;\n }\n }\n }\n }\n}\n\n.onboarding-modal__page__wrapper-0 {\n height: 100%;\n padding: 0;\n}\n\n.onboarding-modal__page-one {\n &__lead {\n padding: 65px;\n padding-top: 45px;\n padding-bottom: 0;\n margin-bottom: 10px;\n\n h1 {\n font-size: 26px;\n line-height: 36px;\n margin-bottom: 8px;\n }\n\n p {\n margin-bottom: 0;\n }\n }\n\n &__extra {\n padding-right: 65px;\n padding-left: 185px;\n text-align: center;\n }\n}\n\n.display-case {\n text-align: center;\n font-size: 15px;\n margin-bottom: 15px;\n\n &__label {\n font-weight: 500;\n color: $inverted-text-color;\n margin-bottom: 5px;\n text-transform: uppercase;\n font-size: 12px;\n }\n\n &__case {\n background: $ui-base-color;\n color: $secondary-text-color;\n font-weight: 500;\n padding: 10px;\n border-radius: 4px;\n }\n}\n\n.onboarding-modal__page-two,\n.onboarding-modal__page-three,\n.onboarding-modal__page-four,\n.onboarding-modal__page-five {\n p {\n text-align: left;\n }\n\n .figure {\n background: darken($ui-base-color, 8%);\n color: $secondary-text-color;\n margin-bottom: 20px;\n border-radius: 4px;\n padding: 10px;\n text-align: center;\n font-size: 14px;\n box-shadow: 1px 2px 6px rgba($base-shadow-color, 0.3);\n\n .onboarding-modal__image {\n border-radius: 4px;\n margin-bottom: 10px;\n }\n\n &.non-interactive {\n pointer-events: none;\n text-align: left;\n }\n }\n}\n\n.onboarding-modal__page-four__columns {\n .row {\n display: flex;\n margin-bottom: 20px;\n\n & > div {\n flex: 1 1 0;\n margin: 0 10px;\n\n &:first-child {\n margin-left: 0;\n }\n\n &:last-child {\n margin-right: 0;\n }\n\n p {\n text-align: center;\n }\n }\n\n &:last-child {\n margin-bottom: 0;\n }\n }\n\n .column-header {\n color: $primary-text-color;\n }\n}\n\n@media screen and (max-width: 320px) and (max-height: 600px) {\n .onboarding-modal__page p {\n font-size: 14px;\n line-height: 20px;\n }\n\n .onboarding-modal__page-two .figure,\n .onboarding-modal__page-three .figure,\n .onboarding-modal__page-four .figure,\n .onboarding-modal__page-five .figure {\n font-size: 12px;\n margin-bottom: 10px;\n }\n\n .onboarding-modal__page-four__columns .row {\n margin-bottom: 10px;\n }\n\n .onboarding-modal__page-four__columns .column-header {\n padding: 5px;\n font-size: 12px;\n }\n}\n\n.onboard-sliders {\n display: inline-block;\n max-width: 30px;\n max-height: auto;\n margin-left: 10px;\n}\n\n.boost-modal,\n.favourite-modal,\n.confirmation-modal,\n.report-modal,\n.actions-modal,\n.mute-modal,\n.block-modal {\n background: lighten($ui-secondary-color, 8%);\n color: $inverted-text-color;\n border-radius: 8px;\n overflow: hidden;\n max-width: 90vw;\n width: 480px;\n position: relative;\n flex-direction: column;\n\n .status__relative-time {\n color: $dark-text-color;\n float: right;\n font-size: 14px;\n width: auto;\n margin: initial;\n padding: initial;\n }\n\n .status__display-name {\n display: flex;\n }\n\n .status__avatar {\n height: 48px;\n width: 48px;\n }\n\n .status__content__spoiler-link {\n color: lighten($secondary-text-color, 8%);\n }\n}\n\n.actions-modal {\n .status {\n background: $white;\n border-bottom-color: $ui-secondary-color;\n padding-top: 10px;\n padding-bottom: 10px;\n }\n\n .dropdown-menu__separator {\n border-bottom-color: $ui-secondary-color;\n }\n}\n\n.boost-modal__container,\n.favourite-modal__container {\n overflow-x: scroll;\n padding: 10px;\n\n .status {\n user-select: text;\n border-bottom: 0;\n }\n}\n\n.boost-modal__action-bar,\n.favourite-modal__action-bar,\n.confirmation-modal__action-bar,\n.mute-modal__action-bar,\n.block-modal__action-bar {\n display: flex;\n justify-content: space-between;\n background: $ui-secondary-color;\n padding: 10px;\n line-height: 36px;\n\n & > div {\n flex: 1 1 auto;\n text-align: right;\n color: $lighter-text-color;\n padding-right: 10px;\n }\n\n .button {\n flex: 0 0 auto;\n }\n}\n\n.boost-modal__status-header,\n.favourite-modal__status-header {\n font-size: 15px;\n}\n\n.boost-modal__status-time,\n.favourite-modal__status-time {\n float: right;\n font-size: 14px;\n}\n\n.mute-modal,\n.block-modal {\n line-height: 24px;\n}\n\n.mute-modal .react-toggle,\n.block-modal .react-toggle {\n vertical-align: middle;\n}\n\n.report-modal {\n width: 90vw;\n max-width: 700px;\n}\n\n.report-modal__container {\n display: flex;\n border-top: 1px solid $ui-secondary-color;\n\n @media screen and (max-width: 480px) {\n flex-wrap: wrap;\n overflow-y: auto;\n }\n}\n\n.report-modal__statuses,\n.report-modal__comment {\n box-sizing: border-box;\n width: 50%;\n\n @media screen and (max-width: 480px) {\n width: 100%;\n }\n}\n\n.report-modal__statuses,\n.focal-point-modal__content {\n flex: 1 1 auto;\n min-height: 20vh;\n max-height: 80vh;\n overflow-y: auto;\n overflow-x: hidden;\n\n .status__content a {\n color: $highlight-text-color;\n }\n\n @media screen and (max-width: 480px) {\n max-height: 10vh;\n }\n}\n\n.focal-point-modal__content {\n @media screen and (max-width: 480px) {\n max-height: 40vh;\n }\n}\n\n.report-modal__comment {\n padding: 20px;\n border-right: 1px solid $ui-secondary-color;\n max-width: 320px;\n\n p {\n font-size: 14px;\n line-height: 20px;\n margin-bottom: 20px;\n }\n\n .setting-text {\n display: block;\n box-sizing: border-box;\n width: 100%;\n margin: 0;\n color: $inverted-text-color;\n background: $white;\n padding: 10px;\n font-family: inherit;\n font-size: 14px;\n resize: none;\n border: 0;\n outline: 0;\n border-radius: 4px;\n border: 1px solid $ui-secondary-color;\n min-height: 100px;\n max-height: 50vh;\n margin-bottom: 10px;\n\n &:focus {\n border: 1px solid darken($ui-secondary-color, 8%);\n }\n\n &__wrapper {\n background: $white;\n border: 1px solid $ui-secondary-color;\n margin-bottom: 10px;\n border-radius: 4px;\n\n .setting-text {\n border: 0;\n margin-bottom: 0;\n border-radius: 0;\n\n &:focus {\n border: 0;\n }\n }\n\n &__modifiers {\n color: $inverted-text-color;\n font-family: inherit;\n font-size: 14px;\n background: $white;\n }\n }\n\n &__toolbar {\n display: flex;\n justify-content: space-between;\n margin-bottom: 20px;\n }\n }\n\n .setting-text-label {\n display: block;\n color: $inverted-text-color;\n font-size: 14px;\n font-weight: 500;\n margin-bottom: 10px;\n }\n\n .setting-toggle {\n margin-top: 20px;\n margin-bottom: 24px;\n\n &__label {\n color: $inverted-text-color;\n font-size: 14px;\n }\n }\n\n @media screen and (max-width: 480px) {\n padding: 10px;\n max-width: 100%;\n order: 2;\n\n .setting-toggle {\n margin-bottom: 4px;\n }\n }\n}\n\n.actions-modal {\n .status {\n overflow-y: auto;\n max-height: 300px;\n }\n\n strong {\n display: block;\n font-weight: 500;\n }\n\n max-height: 80vh;\n max-width: 80vw;\n\n .actions-modal__item-label {\n font-weight: 500;\n }\n\n ul {\n overflow-y: auto;\n flex-shrink: 0;\n max-height: 80vh;\n\n &.with-status {\n max-height: calc(80vh - 75px);\n }\n\n li:empty {\n margin: 0;\n }\n\n li:not(:empty) {\n a {\n color: $inverted-text-color;\n display: flex;\n padding: 12px 16px;\n font-size: 15px;\n align-items: center;\n text-decoration: none;\n\n &,\n button {\n transition: none;\n }\n\n &.active,\n &:hover,\n &:active,\n &:focus {\n &,\n button {\n background: $ui-highlight-color;\n color: $primary-text-color;\n }\n }\n\n & > .react-toggle,\n & > .icon,\n button:first-child {\n margin-right: 10px;\n }\n }\n }\n }\n}\n\n.confirmation-modal__action-bar,\n.mute-modal__action-bar,\n.block-modal__action-bar {\n .confirmation-modal__secondary-button {\n flex-shrink: 1;\n }\n}\n\n.confirmation-modal__secondary-button,\n.confirmation-modal__cancel-button,\n.mute-modal__cancel-button,\n.block-modal__cancel-button {\n background-color: transparent;\n color: $lighter-text-color;\n font-size: 14px;\n font-weight: 500;\n\n &:hover,\n &:focus,\n &:active {\n color: darken($lighter-text-color, 4%);\n background-color: transparent;\n }\n}\n\n.confirmation-modal__do_not_ask_again {\n padding-left: 20px;\n padding-right: 20px;\n padding-bottom: 10px;\n\n font-size: 14px;\n\n label, input {\n vertical-align: middle;\n }\n}\n\n.confirmation-modal__container,\n.mute-modal__container,\n.block-modal__container,\n.report-modal__target {\n padding: 30px;\n font-size: 16px;\n\n strong {\n font-weight: 500;\n\n @each $lang in $cjk-langs {\n &:lang(#{$lang}) {\n font-weight: 700;\n }\n }\n }\n}\n\n.confirmation-modal__container,\n.report-modal__target {\n text-align: center;\n}\n\n.block-modal,\n.mute-modal {\n &__explanation {\n margin-top: 20px;\n }\n\n .setting-toggle {\n margin-top: 20px;\n margin-bottom: 24px;\n display: flex;\n align-items: center;\n\n &__label {\n color: $inverted-text-color;\n margin: 0;\n margin-left: 8px;\n }\n }\n}\n\n.report-modal__target {\n padding: 15px;\n\n .media-modal__close {\n top: 14px;\n right: 15px;\n }\n}\n\n.embed-modal {\n width: auto;\n max-width: 80vw;\n max-height: 80vh;\n\n h4 {\n padding: 30px;\n font-weight: 500;\n font-size: 16px;\n text-align: center;\n }\n\n .embed-modal__container {\n padding: 10px;\n\n .hint {\n margin-bottom: 15px;\n }\n\n .embed-modal__html {\n outline: 0;\n box-sizing: border-box;\n display: block;\n width: 100%;\n border: none;\n padding: 10px;\n font-family: 'mastodon-font-monospace', monospace;\n background: $ui-base-color;\n color: $primary-text-color;\n font-size: 14px;\n margin: 0;\n margin-bottom: 15px;\n border-radius: 4px;\n\n &::-moz-focus-inner {\n border: 0;\n }\n\n &::-moz-focus-inner,\n &:focus,\n &:active {\n outline: 0 !important;\n }\n\n &:focus {\n background: lighten($ui-base-color, 4%);\n }\n\n @media screen and (max-width: 600px) {\n font-size: 16px;\n }\n }\n\n .embed-modal__iframe {\n width: 400px;\n max-width: 100%;\n overflow: hidden;\n border: 0;\n border-radius: 4px;\n }\n }\n}\n\n.focal-point {\n position: relative;\n cursor: move;\n overflow: hidden;\n height: 100%;\n display: flex;\n justify-content: center;\n align-items: center;\n background: $base-shadow-color;\n\n img,\n video,\n canvas {\n display: block;\n max-height: 80vh;\n width: 100%;\n height: auto;\n margin: 0;\n object-fit: contain;\n background: $base-shadow-color;\n }\n\n &__reticle {\n position: absolute;\n width: 100px;\n height: 100px;\n transform: translate(-50%, -50%);\n background: url('~images/reticle.png') no-repeat 0 0;\n border-radius: 50%;\n box-shadow: 0 0 0 9999em rgba($base-shadow-color, 0.35);\n }\n\n &__overlay {\n position: absolute;\n width: 100%;\n height: 100%;\n top: 0;\n left: 0;\n }\n\n &__preview {\n position: absolute;\n bottom: 10px;\n right: 10px;\n z-index: 2;\n cursor: move;\n transition: opacity 0.1s ease;\n\n &:hover {\n opacity: 0.5;\n }\n\n strong {\n color: $primary-text-color;\n font-size: 14px;\n font-weight: 500;\n display: block;\n margin-bottom: 5px;\n }\n\n div {\n border-radius: 4px;\n box-shadow: 0 0 14px rgba($base-shadow-color, 0.2);\n }\n }\n\n @media screen and (max-width: 480px) {\n img,\n video {\n max-height: 100%;\n }\n\n &__preview {\n display: none;\n }\n }\n}\n\n.filtered-status-info {\n text-align: start;\n\n .spoiler__text {\n margin-top: 20px;\n }\n\n .account {\n border-bottom: 0;\n }\n\n .account__display-name strong {\n color: $inverted-text-color;\n }\n\n .status__content__spoiler {\n display: none;\n\n &--visible {\n display: flex;\n }\n }\n\n ul {\n padding: 10px;\n margin-left: 12px;\n list-style: disc inside;\n }\n\n .filtered-status-edit-link {\n color: $action-button-color;\n text-decoration: none;\n\n &:hover {\n text-decoration: underline\n }\n }\n}\n",".composer {\n padding: 10px;\n\n .emoji-picker-dropdown {\n position: absolute;\n top: 0;\n right: 0;\n\n ::-webkit-scrollbar-track:hover,\n ::-webkit-scrollbar-track:active {\n background-color: rgba($base-overlay-background, 0.3);\n }\n }\n}\n\n.character-counter {\n cursor: default;\n font-family: $font-sans-serif, sans-serif;\n font-size: 14px;\n font-weight: 600;\n color: $lighter-text-color;\n\n &.character-counter--over {\n color: $warning-red;\n }\n}\n\n.no-reduce-motion .composer--spoiler {\n transition: height 0.4s ease, opacity 0.4s ease;\n}\n\n.composer--spoiler {\n height: 0;\n transform-origin: bottom;\n opacity: 0.0;\n\n &.composer--spoiler--visible {\n height: 36px;\n margin-bottom: 11px;\n opacity: 1.0;\n }\n\n input {\n display: block;\n box-sizing: border-box;\n margin: 0;\n border: none;\n border-radius: 4px;\n padding: 10px;\n width: 100%;\n outline: 0;\n color: $inverted-text-color;\n background: $simple-background-color;\n font-size: 14px;\n font-family: inherit;\n resize: vertical;\n\n &::placeholder {\n color: $dark-text-color;\n }\n\n &:focus { outline: 0 }\n @include single-column('screen and (max-width: 630px)') { font-size: 16px }\n }\n}\n\n.composer--warning {\n color: $inverted-text-color;\n margin-bottom: 15px;\n background: $ui-primary-color;\n box-shadow: 0 2px 6px rgba($base-shadow-color, 0.3);\n padding: 8px 10px;\n border-radius: 4px;\n font-size: 13px;\n font-weight: 400;\n\n a {\n color: $lighter-text-color;\n font-weight: 500;\n text-decoration: underline;\n\n &:active,\n &:focus,\n &:hover { text-decoration: none }\n }\n}\n\n.compose-form__sensitive-button {\n padding: 10px;\n padding-top: 0;\n\n font-size: 14px;\n font-weight: 500;\n\n &.active {\n color: $highlight-text-color;\n }\n\n input[type=checkbox] {\n display: none;\n }\n\n .checkbox {\n display: inline-block;\n position: relative;\n border: 1px solid $ui-primary-color;\n box-sizing: border-box;\n width: 18px;\n height: 18px;\n flex: 0 0 auto;\n margin-left: 5px;\n margin-right: 10px;\n top: -1px;\n border-radius: 4px;\n vertical-align: middle;\n\n &.active {\n border-color: $highlight-text-color;\n background: $highlight-text-color;\n }\n }\n}\n\n.composer--reply {\n margin: 0 0 10px;\n border-radius: 4px;\n padding: 10px;\n background: $ui-primary-color;\n min-height: 23px;\n overflow-y: auto;\n flex: 0 2 auto;\n\n & > header {\n margin-bottom: 5px;\n overflow: hidden;\n\n & > .account.small { color: $inverted-text-color; }\n\n & > .cancel {\n float: right;\n line-height: 24px;\n }\n }\n\n & > .content {\n position: relative;\n margin: 10px 0;\n padding: 0 12px;\n font-size: 14px;\n line-height: 20px;\n color: $inverted-text-color;\n word-wrap: break-word;\n font-weight: 400;\n overflow: visible;\n white-space: pre-wrap;\n padding-top: 5px;\n overflow: hidden;\n\n p, pre, blockquote {\n margin-bottom: 20px;\n white-space: pre-wrap;\n\n &:last-child {\n margin-bottom: 0;\n }\n }\n\n h1, h2, h3, h4, h5 {\n margin-top: 20px;\n margin-bottom: 20px;\n }\n\n h1, h2 {\n font-weight: 700;\n font-size: 18px;\n }\n\n h2 {\n font-size: 16px;\n }\n\n h3, h4, h5 {\n font-weight: 500;\n }\n\n blockquote {\n padding-left: 10px;\n border-left: 3px solid $inverted-text-color;\n color: $inverted-text-color;\n white-space: normal;\n\n p:last-child {\n margin-bottom: 0;\n }\n }\n\n b, strong {\n font-weight: 700;\n }\n\n em, i {\n font-style: italic;\n }\n\n sub {\n font-size: smaller;\n text-align: sub;\n }\n\n ul, ol {\n margin-left: 1em;\n\n p {\n margin: 0;\n }\n }\n\n ul {\n list-style-type: disc;\n }\n\n ol {\n list-style-type: decimal;\n }\n\n a {\n color: $lighter-text-color;\n text-decoration: none;\n\n &:hover { text-decoration: underline }\n\n &.mention {\n &:hover {\n text-decoration: none;\n\n span { text-decoration: underline }\n }\n }\n }\n }\n\n .emojione {\n width: 20px;\n height: 20px;\n margin: -5px 0 0;\n }\n}\n\n.compose-form__autosuggest-wrapper,\n.autosuggest-input {\n position: relative;\n width: 100%;\n\n label {\n .autosuggest-textarea__textarea {\n display: block;\n box-sizing: border-box;\n margin: 0;\n border: none;\n border-radius: 4px 4px 0 0;\n padding: 10px 32px 0 10px;\n width: 100%;\n min-height: 100px;\n outline: 0;\n color: $inverted-text-color;\n background: $simple-background-color;\n font-size: 14px;\n font-family: inherit;\n resize: none;\n scrollbar-color: initial;\n\n &::placeholder {\n color: $dark-text-color;\n }\n\n &::-webkit-scrollbar {\n all: unset;\n }\n\n &:disabled { background: $ui-secondary-color }\n &:focus { outline: 0 }\n @include single-column('screen and (max-width: 630px)') { font-size: 16px }\n\n @include limited-single-column('screen and (max-width: 600px)') {\n height: 100px !important; // prevent auto-resize textarea\n resize: vertical;\n }\n }\n }\n}\n\n.composer--textarea--icons {\n display: block;\n position: absolute;\n top: 29px;\n right: 5px;\n bottom: 5px;\n overflow: hidden;\n\n & > .textarea_icon {\n display: block;\n margin: 2px 0 0 2px;\n width: 24px;\n height: 24px;\n color: $lighter-text-color;\n font-size: 18px;\n line-height: 24px;\n text-align: center;\n opacity: .8;\n }\n}\n\n.autosuggest-textarea__suggestions-wrapper {\n position: relative;\n height: 0;\n}\n\n.autosuggest-textarea__suggestions {\n display: block;\n position: absolute;\n box-sizing: border-box;\n top: 100%;\n border-radius: 0 0 4px 4px;\n padding: 6px;\n width: 100%;\n color: $inverted-text-color;\n background: $ui-secondary-color;\n box-shadow: 4px 4px 6px rgba($base-shadow-color, 0.4);\n font-size: 14px;\n z-index: 99;\n display: none;\n}\n\n.autosuggest-textarea__suggestions--visible {\n display: block;\n}\n\n.autosuggest-textarea__suggestions__item {\n padding: 10px;\n cursor: pointer;\n border-radius: 4px;\n\n &:hover,\n &:focus,\n &:active,\n &.selected { background: darken($ui-secondary-color, 10%) }\n\n > .account,\n > .emoji,\n > .autosuggest-hashtag {\n display: flex;\n flex-direction: row;\n align-items: center;\n justify-content: flex-start;\n line-height: 18px;\n font-size: 14px;\n }\n\n .autosuggest-hashtag {\n justify-content: space-between;\n\n &__name {\n flex: 1 1 auto;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n\n strong {\n font-weight: 500;\n }\n\n &__uses {\n flex: 0 0 auto;\n text-align: right;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n }\n\n & > .account.small {\n .display-name {\n & > span { color: $lighter-text-color }\n }\n }\n}\n\n.composer--upload_form {\n overflow: hidden;\n\n & > .content {\n display: flex;\n flex-direction: row;\n flex-wrap: wrap;\n font-family: inherit;\n padding: 5px;\n overflow: hidden;\n }\n}\n\n.composer--upload_form--item {\n flex: 1 1 0;\n margin: 5px;\n min-width: 40%;\n\n & > div {\n position: relative;\n border-radius: 4px;\n height: 140px;\n width: 100%;\n background-color: $base-shadow-color;\n background-position: center;\n background-size: cover;\n background-repeat: no-repeat;\n overflow: hidden;\n\n textarea {\n display: block;\n position: absolute;\n box-sizing: border-box;\n bottom: 0;\n left: 0;\n margin: 0;\n border: 0;\n padding: 10px;\n width: 100%;\n color: $secondary-text-color;\n background: linear-gradient(0deg, rgba($base-shadow-color, 0.8) 0, rgba($base-shadow-color, 0.35) 80%, transparent);\n font-size: 14px;\n font-family: inherit;\n font-weight: 500;\n opacity: 0;\n z-index: 2;\n transition: opacity .1s ease;\n\n &:focus { color: $white }\n\n &::placeholder {\n opacity: 0.54;\n color: $secondary-text-color;\n }\n }\n\n & > .close { mix-blend-mode: difference }\n }\n\n &.active {\n & > div {\n textarea { opacity: 1 }\n }\n }\n}\n\n.composer--upload_form--actions {\n background: linear-gradient(180deg, rgba($base-shadow-color, 0.8) 0, rgba($base-shadow-color, 0.35) 80%, transparent);\n display: flex;\n align-items: flex-start;\n justify-content: space-between;\n opacity: 0;\n transition: opacity .1s ease;\n\n .icon-button {\n flex: 0 1 auto;\n color: $ui-secondary-color;\n font-size: 14px;\n font-weight: 500;\n padding: 10px;\n font-family: inherit;\n\n &:hover,\n &:focus,\n &:active {\n color: lighten($ui-secondary-color, 4%);\n }\n }\n\n &.active {\n opacity: 1;\n }\n}\n\n.composer--upload_form--progress {\n display: flex;\n padding: 10px;\n color: $darker-text-color;\n overflow: hidden;\n\n & > .fa {\n font-size: 34px;\n margin-right: 10px;\n }\n\n & > .message {\n flex: 1 1 auto;\n\n & > span {\n display: block;\n font-size: 12px;\n font-weight: 500;\n text-transform: uppercase;\n }\n\n & > .backdrop {\n position: relative;\n margin-top: 5px;\n border-radius: 6px;\n width: 100%;\n height: 6px;\n background: $ui-base-lighter-color;\n\n & > .tracker {\n position: absolute;\n top: 0;\n left: 0;\n height: 6px;\n border-radius: 6px;\n background: $ui-highlight-color;\n }\n }\n }\n}\n\n.compose-form__modifiers {\n color: $inverted-text-color;\n font-family: inherit;\n font-size: 14px;\n background: $simple-background-color;\n}\n\n.composer--options-wrapper {\n padding: 10px;\n background: darken($simple-background-color, 8%);\n border-radius: 0 0 4px 4px;\n height: 27px;\n display: flex;\n justify-content: space-between;\n flex: 0 0 auto;\n}\n\n.composer--options {\n display: flex;\n flex: 0 0 auto;\n\n & > * {\n display: inline-block;\n box-sizing: content-box;\n padding: 0 3px;\n height: 27px;\n line-height: 27px;\n vertical-align: bottom;\n }\n\n & > hr {\n display: inline-block;\n margin: 0 3px;\n border-width: 0 0 0 1px;\n border-style: none none none solid;\n border-color: transparent transparent transparent darken($simple-background-color, 24%);\n padding: 0;\n width: 0;\n height: 27px;\n background: transparent;\n }\n}\n\n.compose--counter-wrapper {\n align-self: center;\n margin-right: 4px;\n}\n\n.composer--options--dropdown {\n &.open {\n & > .value {\n border-radius: 4px 4px 0 0;\n box-shadow: 0 -4px 4px rgba($base-shadow-color, 0.1);\n color: $primary-text-color;\n background: $ui-highlight-color;\n transition: none;\n }\n &.top {\n & > .value {\n border-radius: 0 0 4px 4px;\n box-shadow: 0 4px 4px rgba($base-shadow-color, 0.1);\n }\n }\n }\n}\n\n.composer--options--dropdown--content {\n position: absolute;\n border-radius: 4px;\n box-shadow: 2px 4px 15px rgba($base-shadow-color, 0.4);\n background: $simple-background-color;\n overflow: hidden;\n transform-origin: 50% 0;\n}\n\n.composer--options--dropdown--content--item {\n display: flex;\n align-items: center;\n padding: 10px;\n color: $inverted-text-color;\n cursor: pointer;\n\n & > .content {\n flex: 1 1 auto;\n color: $lighter-text-color;\n\n &:not(:first-child) { margin-left: 10px }\n\n strong {\n display: block;\n color: $inverted-text-color;\n font-weight: 500;\n }\n }\n\n &:hover,\n &.active {\n background: $ui-highlight-color;\n color: $primary-text-color;\n\n & > .content {\n color: $primary-text-color;\n\n strong { color: $primary-text-color }\n }\n }\n\n &.active:hover { background: lighten($ui-highlight-color, 4%) }\n}\n\n.composer--publisher {\n padding-top: 10px;\n text-align: right;\n white-space: nowrap;\n overflow: hidden;\n justify-content: flex-end;\n flex: 0 0 auto;\n\n & > .primary {\n display: inline-block;\n margin: 0;\n padding: 0 10px;\n text-align: center;\n }\n\n & > .side_arm {\n display: inline-block;\n margin: 0 2px;\n padding: 0;\n width: 36px;\n text-align: center;\n }\n\n &.over {\n & > .count { color: $warning-red }\n }\n}\n",".column__wrapper {\n display: flex;\n flex: 1 1 auto;\n position: relative;\n}\n\n.columns-area {\n display: flex;\n flex: 1 1 auto;\n flex-direction: row;\n justify-content: flex-start;\n overflow-x: auto;\n position: relative;\n\n &__panels {\n display: flex;\n justify-content: center;\n width: 100%;\n height: 100%;\n min-height: 100vh;\n\n &__pane {\n height: 100%;\n overflow: hidden;\n pointer-events: none;\n display: flex;\n justify-content: flex-end;\n min-width: 285px;\n\n &--start {\n justify-content: flex-start;\n }\n\n &__inner {\n position: fixed;\n width: 285px;\n pointer-events: auto;\n height: 100%;\n }\n }\n\n &__main {\n box-sizing: border-box;\n width: 100%;\n max-width: 600px;\n flex: 0 0 auto;\n display: flex;\n flex-direction: column;\n\n @media screen and (min-width: $no-gap-breakpoint) {\n padding: 0 10px;\n }\n }\n }\n}\n\n.tabs-bar__wrapper {\n background: darken($ui-base-color, 8%);\n position: sticky;\n top: 0;\n z-index: 2;\n padding-top: 0;\n\n @media screen and (min-width: $no-gap-breakpoint) {\n padding-top: 10px;\n }\n\n .tabs-bar {\n margin-bottom: 0;\n\n @media screen and (min-width: $no-gap-breakpoint) {\n margin-bottom: 10px;\n }\n }\n}\n\n.react-swipeable-view-container {\n &,\n .columns-area,\n .column {\n height: 100%;\n }\n}\n\n.react-swipeable-view-container > * {\n display: flex;\n align-items: center;\n justify-content: center;\n height: 100%;\n}\n\n.column {\n width: 330px;\n position: relative;\n box-sizing: border-box;\n display: flex;\n flex-direction: column;\n\n > .scrollable {\n background: $ui-base-color;\n }\n}\n\n.ui {\n flex: 0 0 auto;\n display: flex;\n flex-direction: column;\n width: 100%;\n height: 100%;\n}\n\n.column {\n overflow: hidden;\n}\n\n.column-back-button {\n box-sizing: border-box;\n width: 100%;\n background: lighten($ui-base-color, 4%);\n color: $highlight-text-color;\n cursor: pointer;\n flex: 0 0 auto;\n font-size: 16px;\n border: 0;\n text-align: unset;\n padding: 15px;\n margin: 0;\n z-index: 3;\n\n &:hover {\n text-decoration: underline;\n }\n}\n\n.column-header__back-button {\n background: lighten($ui-base-color, 4%);\n border: 0;\n font-family: inherit;\n color: $highlight-text-color;\n cursor: pointer;\n flex: 0 0 auto;\n font-size: 16px;\n padding: 0 5px 0 0;\n z-index: 3;\n\n &:hover {\n text-decoration: underline;\n }\n\n &:last-child {\n padding: 0 15px 0 0;\n }\n}\n\n.column-back-button__icon {\n display: inline-block;\n margin-right: 5px;\n}\n\n.column-back-button--slim {\n position: relative;\n}\n\n.column-back-button--slim-button {\n cursor: pointer;\n flex: 0 0 auto;\n font-size: 16px;\n padding: 15px;\n position: absolute;\n right: 0;\n top: -48px;\n}\n\n.column-link {\n background: lighten($ui-base-color, 8%);\n color: $primary-text-color;\n display: block;\n font-size: 16px;\n padding: 15px;\n text-decoration: none;\n\n &:hover,\n &:focus,\n &:active {\n background: lighten($ui-base-color, 11%);\n }\n\n &:focus {\n outline: 0;\n }\n\n &--transparent {\n background: transparent;\n color: $ui-secondary-color;\n\n &:hover,\n &:focus,\n &:active {\n background: transparent;\n color: $primary-text-color;\n }\n\n &.active {\n color: $ui-highlight-color;\n }\n }\n}\n\n.column-link__icon {\n display: inline-block;\n margin-right: 5px;\n}\n\n.column-subheading {\n background: $ui-base-color;\n color: $dark-text-color;\n padding: 8px 20px;\n font-size: 12px;\n font-weight: 500;\n text-transform: uppercase;\n cursor: default;\n}\n\n.column-header__wrapper {\n position: relative;\n flex: 0 0 auto;\n z-index: 1;\n\n &.active {\n box-shadow: 0 1px 0 rgba($highlight-text-color, 0.3);\n\n &::before {\n display: block;\n content: \"\";\n position: absolute;\n bottom: -13px;\n left: 0;\n right: 0;\n margin: 0 auto;\n width: 60%;\n pointer-events: none;\n height: 28px;\n z-index: 1;\n background: radial-gradient(ellipse, rgba($ui-highlight-color, 0.23) 0%, rgba($ui-highlight-color, 0) 60%);\n }\n }\n\n .announcements {\n z-index: 1;\n position: relative;\n }\n}\n\n.column-header {\n display: flex;\n font-size: 16px;\n background: lighten($ui-base-color, 4%);\n flex: 0 0 auto;\n cursor: pointer;\n position: relative;\n z-index: 2;\n outline: 0;\n overflow: hidden;\n\n & > button {\n margin: 0;\n border: none;\n padding: 15px;\n color: inherit;\n background: transparent;\n font: inherit;\n text-align: left;\n text-overflow: ellipsis;\n overflow: hidden;\n white-space: nowrap;\n flex: 1;\n }\n\n & > .column-header__back-button {\n color: $highlight-text-color;\n }\n\n &.active {\n .column-header__icon {\n color: $highlight-text-color;\n text-shadow: 0 0 10px rgba($ui-highlight-color, 0.4);\n }\n }\n\n &:focus,\n &:active {\n outline: 0;\n }\n}\n\n.column {\n width: 330px;\n position: relative;\n box-sizing: border-box;\n display: flex;\n flex-direction: column;\n overflow: hidden;\n\n .wide .columns-area:not(.columns-area--mobile) & {\n flex: auto;\n min-width: 330px;\n max-width: 400px;\n }\n\n > .scrollable {\n background: $ui-base-color;\n }\n}\n\n.column-header__buttons {\n height: 48px;\n display: flex;\n margin-left: 0;\n}\n\n.column-header__links {\n margin-bottom: 14px;\n}\n\n.column-header__links .text-btn {\n margin-right: 10px;\n}\n\n.column-header__button {\n background: lighten($ui-base-color, 4%);\n border: 0;\n color: $darker-text-color;\n cursor: pointer;\n font-size: 16px;\n padding: 0 15px;\n\n &:hover {\n color: lighten($darker-text-color, 7%);\n }\n\n &.active {\n color: $primary-text-color;\n background: lighten($ui-base-color, 8%);\n\n &:hover {\n color: $primary-text-color;\n background: lighten($ui-base-color, 8%);\n }\n }\n\n // glitch - added focus ring for keyboard navigation\n &:focus {\n text-shadow: 0 0 4px darken($ui-highlight-color, 5%);\n }\n}\n\n.column-header__notif-cleaning-buttons {\n display: flex;\n align-items: stretch;\n justify-content: space-around;\n\n button {\n @extend .column-header__button;\n background: transparent;\n text-align: center;\n padding: 10px 0;\n white-space: pre-wrap;\n }\n\n b {\n font-weight: bold;\n }\n}\n\n// The notifs drawer with no padding to have more space for the buttons\n.column-header__collapsible-inner.nopad-drawer {\n padding: 0;\n}\n\n.column-header__collapsible {\n max-height: 70vh;\n overflow: hidden;\n overflow-y: auto;\n color: $darker-text-color;\n transition: max-height 150ms ease-in-out, opacity 300ms linear;\n opacity: 1;\n z-index: 1;\n position: relative;\n\n &.collapsed {\n max-height: 0;\n opacity: 0.5;\n }\n\n &.animating {\n overflow-y: hidden;\n }\n\n hr {\n height: 0;\n background: transparent;\n border: 0;\n border-top: 1px solid lighten($ui-base-color, 12%);\n margin: 10px 0;\n }\n\n // notif cleaning drawer\n &.ncd {\n transition: none;\n &.collapsed {\n max-height: 0;\n opacity: 0.7;\n }\n }\n}\n\n.column-header__collapsible-inner {\n background: lighten($ui-base-color, 8%);\n padding: 15px;\n}\n\n.column-header__setting-btn {\n &:hover {\n color: $darker-text-color;\n text-decoration: underline;\n }\n}\n\n.column-header__setting-arrows {\n float: right;\n\n .column-header__setting-btn {\n padding: 0 10px;\n\n &:last-child {\n padding-right: 0;\n }\n }\n}\n\n.column-header__title {\n display: inline-block;\n text-overflow: ellipsis;\n overflow: hidden;\n white-space: nowrap;\n flex: 1;\n}\n\n.column-header__icon {\n display: inline-block;\n margin-right: 5px;\n}\n\n.empty-column-indicator,\n.error-column,\n.follow_requests-unlocked_explanation {\n color: $dark-text-color;\n background: $ui-base-color;\n text-align: center;\n padding: 20px;\n font-size: 15px;\n font-weight: 400;\n cursor: default;\n display: flex;\n flex: 1 1 auto;\n align-items: center;\n justify-content: center;\n @supports(display: grid) { // hack to fix Chrome <57\n contain: strict;\n }\n\n & > span {\n max-width: 400px;\n }\n\n a {\n color: $highlight-text-color;\n text-decoration: none;\n\n &:hover {\n text-decoration: underline;\n }\n }\n}\n\n.follow_requests-unlocked_explanation {\n background: darken($ui-base-color, 4%);\n contain: initial;\n}\n\n.error-column {\n flex-direction: column;\n}\n\n// more fixes for the navbar-under mode\n@mixin fix-margins-for-navbar-under {\n .tabs-bar {\n margin-top: 0 !important;\n margin-bottom: -6px !important;\n }\n}\n\n.single-column.navbar-under {\n @include fix-margins-for-navbar-under;\n}\n\n.auto-columns.navbar-under {\n @media screen and (max-width: $no-gap-breakpoint) {\n @include fix-margins-for-navbar-under;\n }\n}\n\n.auto-columns.navbar-under .react-swipeable-view-container .columns-area,\n.single-column.navbar-under .react-swipeable-view-container .columns-area {\n @media screen and (max-width: $no-gap-breakpoint) {\n height: 100% !important;\n }\n}\n\n.column-inline-form {\n padding: 7px 15px;\n padding-right: 5px;\n display: flex;\n justify-content: flex-start;\n align-items: center;\n background: lighten($ui-base-color, 4%);\n\n label {\n flex: 1 1 auto;\n\n input {\n width: 100%;\n margin-bottom: 6px;\n\n &:focus {\n outline: 0;\n }\n }\n }\n\n .icon-button {\n flex: 0 0 auto;\n margin: 0 5px;\n }\n}\n",".regeneration-indicator {\n text-align: center;\n font-size: 16px;\n font-weight: 500;\n color: $dark-text-color;\n background: $ui-base-color;\n cursor: default;\n display: flex;\n flex: 1 1 auto;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n padding: 20px;\n\n &__figure {\n &,\n img {\n display: block;\n width: auto;\n height: 160px;\n margin: 0;\n }\n }\n\n &--without-header {\n padding-top: 20px + 48px;\n }\n\n &__label {\n margin-top: 30px;\n\n strong {\n display: block;\n margin-bottom: 10px;\n color: $dark-text-color;\n }\n\n span {\n font-size: 15px;\n font-weight: 400;\n }\n }\n}\n",".directory {\n &__list {\n width: 100%;\n margin: 10px 0;\n transition: opacity 100ms ease-in;\n\n &.loading {\n opacity: 0.7;\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n margin: 0;\n }\n }\n\n &__card {\n box-sizing: border-box;\n margin-bottom: 10px;\n\n &__img {\n height: 125px;\n position: relative;\n background: darken($ui-base-color, 12%);\n overflow: hidden;\n\n img {\n display: block;\n width: 100%;\n height: 100%;\n margin: 0;\n object-fit: cover;\n }\n }\n\n &__bar {\n display: flex;\n align-items: center;\n background: lighten($ui-base-color, 4%);\n padding: 10px;\n\n &__name {\n flex: 1 1 auto;\n display: flex;\n align-items: center;\n text-decoration: none;\n overflow: hidden;\n }\n\n &__relationship {\n width: 23px;\n min-height: 1px;\n flex: 0 0 auto;\n }\n\n .avatar {\n flex: 0 0 auto;\n width: 48px;\n height: 48px;\n padding-top: 2px;\n\n img {\n width: 100%;\n height: 100%;\n display: block;\n margin: 0;\n border-radius: 4px;\n background: darken($ui-base-color, 8%);\n object-fit: cover;\n }\n }\n\n .display-name {\n margin-left: 15px;\n text-align: left;\n\n strong {\n font-size: 15px;\n color: $primary-text-color;\n font-weight: 500;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n span {\n display: block;\n font-size: 14px;\n color: $darker-text-color;\n font-weight: 400;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n }\n }\n\n &__extra {\n background: $ui-base-color;\n display: flex;\n align-items: center;\n justify-content: center;\n\n .accounts-table__count {\n width: 33.33%;\n flex: 0 0 auto;\n padding: 15px 0;\n }\n\n .account__header__content {\n box-sizing: border-box;\n padding: 15px 10px;\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n width: 100%;\n min-height: 18px + 30px;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n\n p {\n display: none;\n\n &:first-child {\n display: inline;\n }\n }\n\n br {\n display: none;\n }\n }\n }\n }\n}\n\n.filter-form {\n background: $ui-base-color;\n\n &__column {\n padding: 10px 15px;\n }\n\n .radio-button {\n display: block;\n }\n}\n\n.radio-button {\n font-size: 14px;\n position: relative;\n display: inline-block;\n padding: 6px 0;\n line-height: 18px;\n cursor: default;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n cursor: pointer;\n\n input[type=radio],\n input[type=checkbox] {\n display: none;\n }\n\n &__input {\n display: inline-block;\n position: relative;\n border: 1px solid $ui-primary-color;\n box-sizing: border-box;\n width: 18px;\n height: 18px;\n flex: 0 0 auto;\n margin-right: 10px;\n top: -1px;\n border-radius: 50%;\n vertical-align: middle;\n\n &.checked {\n border-color: lighten($ui-highlight-color, 8%);\n background: lighten($ui-highlight-color, 8%);\n }\n }\n}\n",".search {\n position: relative;\n}\n\n.search__input {\n @include search-input();\n\n display: block;\n padding: 15px;\n padding-right: 30px;\n line-height: 18px;\n font-size: 16px;\n\n &::placeholder {\n color: lighten($darker-text-color, 4%);\n }\n\n &::-moz-focus-inner {\n border: 0;\n }\n\n &::-moz-focus-inner,\n &:focus,\n &:active {\n outline: 0 !important;\n }\n\n &:focus {\n background: lighten($ui-base-color, 4%);\n }\n\n @media screen and (max-width: 600px) {\n font-size: 16px;\n }\n}\n\n.search__icon {\n &::-moz-focus-inner {\n border: 0;\n }\n\n &::-moz-focus-inner,\n &:focus {\n outline: 0 !important;\n }\n\n .fa {\n position: absolute;\n top: 16px;\n right: 10px;\n z-index: 2;\n display: inline-block;\n opacity: 0;\n transition: all 100ms linear;\n transition-property: color, transform, opacity;\n font-size: 18px;\n width: 18px;\n height: 18px;\n color: $secondary-text-color;\n cursor: default;\n pointer-events: none;\n\n &.active {\n pointer-events: auto;\n opacity: 0.3;\n }\n }\n\n .fa-search {\n transform: rotate(0deg);\n\n &.active {\n pointer-events: auto;\n opacity: 0.3;\n }\n }\n\n .fa-times-circle {\n top: 17px;\n transform: rotate(0deg);\n color: $action-button-color;\n cursor: pointer;\n\n &.active {\n transform: rotate(90deg);\n }\n\n &:hover {\n color: lighten($action-button-color, 7%);\n }\n }\n}\n\n.search-results__header {\n color: $dark-text-color;\n background: lighten($ui-base-color, 2%);\n border-bottom: 1px solid darken($ui-base-color, 4%);\n padding: 15px 10px;\n font-size: 14px;\n font-weight: 500;\n}\n\n.search-results__info {\n padding: 20px;\n color: $darker-text-color;\n text-align: center;\n}\n\n.trends {\n &__header {\n color: $dark-text-color;\n background: lighten($ui-base-color, 2%);\n border-bottom: 1px solid darken($ui-base-color, 4%);\n font-weight: 500;\n padding: 15px;\n font-size: 16px;\n cursor: default;\n\n .fa {\n display: inline-block;\n margin-right: 5px;\n }\n }\n\n &__item {\n display: flex;\n align-items: center;\n padding: 15px;\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n\n &:last-child {\n border-bottom: 0;\n }\n\n &__name {\n flex: 1 1 auto;\n color: $dark-text-color;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n\n strong {\n font-weight: 500;\n }\n\n a {\n color: $darker-text-color;\n text-decoration: none;\n font-size: 14px;\n font-weight: 500;\n display: block;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n\n &:hover,\n &:focus,\n &:active {\n span {\n text-decoration: underline;\n }\n }\n }\n }\n\n &__current {\n flex: 0 0 auto;\n font-size: 24px;\n line-height: 36px;\n font-weight: 500;\n text-align: right;\n padding-right: 15px;\n margin-left: 5px;\n color: $secondary-text-color;\n }\n\n &__sparkline {\n flex: 0 0 auto;\n width: 50px;\n\n path:first-child {\n fill: rgba($highlight-text-color, 0.25) !important;\n fill-opacity: 1 !important;\n }\n\n path:last-child {\n stroke: lighten($highlight-text-color, 6%) !important;\n }\n }\n }\n}\n",null,".emojione {\n font-size: inherit;\n vertical-align: middle;\n object-fit: contain;\n margin: -.2ex .15em .2ex;\n width: 16px;\n height: 16px;\n\n img {\n width: auto;\n }\n}\n\n.emoji-picker-dropdown__menu {\n background: $simple-background-color;\n position: absolute;\n box-shadow: 4px 4px 6px rgba($base-shadow-color, 0.4);\n border-radius: 4px;\n margin-top: 5px;\n z-index: 2;\n\n .emoji-mart-scroll {\n transition: opacity 200ms ease;\n }\n\n &.selecting .emoji-mart-scroll {\n opacity: 0.5;\n }\n}\n\n.emoji-picker-dropdown__modifiers {\n position: absolute;\n top: 60px;\n right: 11px;\n cursor: pointer;\n}\n\n.emoji-picker-dropdown__modifiers__menu {\n position: absolute;\n z-index: 4;\n top: -4px;\n left: -8px;\n background: $simple-background-color;\n border-radius: 4px;\n box-shadow: 1px 2px 6px rgba($base-shadow-color, 0.2);\n overflow: hidden;\n\n button {\n display: block;\n cursor: pointer;\n border: 0;\n padding: 4px 8px;\n background: transparent;\n\n &:hover,\n &:focus,\n &:active {\n background: rgba($ui-secondary-color, 0.4);\n }\n }\n\n .emoji-mart-emoji {\n height: 22px;\n }\n}\n\n.emoji-mart-emoji {\n span {\n background-repeat: no-repeat;\n }\n}\n\n.emoji-button {\n display: block;\n padding: 5px 5px 2px 2px;\n outline: 0;\n cursor: pointer;\n\n &:active,\n &:focus {\n outline: 0 !important;\n }\n\n img {\n filter: grayscale(100%);\n opacity: 0.8;\n display: block;\n margin: 0;\n width: 22px;\n height: 22px;\n }\n\n &:hover,\n &:active,\n &:focus {\n img {\n opacity: 1;\n filter: none;\n }\n }\n}\n","$doodleBg: #d9e1e8;\n.doodle-modal {\n @extend .boost-modal;\n width: unset;\n}\n\n.doodle-modal__container {\n background: $doodleBg;\n text-align: center;\n line-height: 0; // remove weird gap under canvas\n canvas {\n border: 5px solid $doodleBg;\n }\n}\n\n.doodle-modal__action-bar {\n @extend .boost-modal__action-bar;\n\n .filler {\n flex-grow: 1;\n margin: 0;\n padding: 0;\n }\n\n .doodle-toolbar {\n line-height: 1;\n\n display: flex;\n flex-direction: column;\n flex-grow: 0;\n justify-content: space-around;\n\n &.with-inputs {\n label {\n display: inline-block;\n width: 70px;\n text-align: right;\n margin-right: 2px;\n }\n\n input[type=\"number\"],input[type=\"text\"] {\n width: 40px;\n }\n span.val {\n display: inline-block;\n text-align: left;\n width: 50px;\n }\n }\n }\n\n .doodle-palette {\n padding-right: 0 !important;\n border: 1px solid black;\n line-height: .2rem;\n flex-grow: 0;\n background: white;\n\n button {\n appearance: none;\n width: 1rem;\n height: 1rem;\n margin: 0; padding: 0;\n text-align: center;\n color: black;\n text-shadow: 0 0 1px white;\n cursor: pointer;\n box-shadow: inset 0 0 1px rgba(white, .5);\n border: 1px solid black;\n outline-offset:-1px;\n\n &.foreground {\n outline: 1px dashed white;\n }\n\n &.background {\n outline: 1px dashed red;\n }\n\n &.foreground.background {\n outline: 1px dashed red;\n border-color: white;\n }\n }\n }\n}\n",".drawer {\n width: 300px;\n box-sizing: border-box;\n display: flex;\n flex-direction: column;\n overflow-y: hidden;\n padding: 10px 5px;\n flex: none;\n\n &:first-child {\n padding-left: 10px;\n }\n\n &:last-child {\n padding-right: 10px;\n }\n\n @include single-column('screen and (max-width: 630px)') { flex: auto }\n\n @include limited-single-column('screen and (max-width: 630px)') {\n &, &:first-child, &:last-child { padding: 0 }\n }\n\n .wide & {\n min-width: 300px;\n max-width: 400px;\n flex: 1 1 200px;\n }\n\n @include single-column('screen and (max-width: 630px)') {\n :root & { // Overrides `.wide` for single-column view\n flex: auto;\n width: 100%;\n min-width: 0;\n max-width: none;\n padding: 0;\n }\n }\n\n .react-swipeable-view-container & { height: 100% }\n}\n\n.drawer--header {\n display: flex;\n flex-direction: row;\n margin-bottom: 10px;\n flex: none;\n background: lighten($ui-base-color, 8%);\n font-size: 16px;\n\n & > * {\n display: block;\n box-sizing: border-box;\n border-bottom: 2px solid transparent;\n padding: 15px 5px 13px;\n height: 48px;\n flex: 1 1 auto;\n color: $darker-text-color;\n text-align: center;\n text-decoration: none;\n cursor: pointer;\n }\n\n a {\n transition: background 100ms ease-in;\n\n &:focus,\n &:hover {\n outline: none;\n background: lighten($ui-base-color, 3%);\n transition: background 200ms ease-out;\n }\n }\n}\n\n.search {\n position: relative;\n margin-bottom: 10px;\n flex: none;\n\n @include limited-single-column('screen and (max-width: #{$no-gap-breakpoint})') { margin-bottom: 0 }\n @include single-column('screen and (max-width: 630px)') { font-size: 16px }\n}\n\n.search-popout {\n @include search-popout();\n}\n\n.drawer--account {\n padding: 10px;\n color: $darker-text-color;\n display: flex;\n align-items: center;\n\n a {\n color: inherit;\n text-decoration: none;\n }\n\n .acct {\n display: block;\n color: $secondary-text-color;\n font-weight: 500;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n}\n\n.navigation-bar__profile {\n flex: 1 1 auto;\n margin-left: 8px;\n overflow: hidden;\n}\n\n.drawer--results {\n background: $ui-base-color;\n overflow-x: hidden;\n overflow-y: auto;\n\n & > header {\n color: $dark-text-color;\n background: lighten($ui-base-color, 2%);\n padding: 15px;\n font-weight: 500;\n font-size: 16px;\n cursor: default;\n\n .fa {\n display: inline-block;\n margin-right: 5px;\n }\n }\n\n & > section {\n margin-bottom: 5px;\n\n h5 {\n background: darken($ui-base-color, 4%);\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n cursor: default;\n display: flex;\n padding: 15px;\n font-weight: 500;\n font-size: 16px;\n color: $dark-text-color;\n\n .fa {\n display: inline-block;\n margin-right: 5px;\n }\n }\n\n .account:last-child,\n & > div:last-child .status {\n border-bottom: 0;\n }\n\n & > .hashtag {\n display: block;\n padding: 10px;\n color: $secondary-text-color;\n text-decoration: none;\n\n &:hover,\n &:active,\n &:focus {\n color: lighten($secondary-text-color, 4%);\n text-decoration: underline;\n }\n }\n }\n}\n\n.drawer__pager {\n box-sizing: border-box;\n padding: 0;\n flex-grow: 1;\n position: relative;\n overflow: hidden;\n display: flex;\n}\n\n.drawer__inner {\n position: absolute;\n top: 0;\n left: 0;\n background: lighten($ui-base-color, 13%);\n box-sizing: border-box;\n padding: 0;\n display: flex;\n flex-direction: column;\n overflow: hidden;\n overflow-y: auto;\n width: 100%;\n height: 100%;\n\n &.darker {\n background: $ui-base-color;\n }\n}\n\n.drawer__inner__mastodon {\n background: lighten($ui-base-color, 13%) url('data:image/svg+xml;utf8,') no-repeat bottom / 100% auto;\n flex: 1;\n min-height: 47px;\n display: none;\n\n > img {\n display: block;\n object-fit: contain;\n object-position: bottom left;\n width: 85%;\n height: 100%;\n pointer-events: none;\n user-drag: none;\n user-select: none;\n }\n\n > .mastodon {\n display: block;\n width: 100%;\n height: 100%;\n border: none;\n cursor: inherit;\n }\n\n @media screen and (min-height: 640px) {\n display: block;\n }\n}\n\n.pseudo-drawer {\n background: lighten($ui-base-color, 13%);\n font-size: 13px;\n text-align: left;\n}\n\n.drawer__backdrop {\n cursor: pointer;\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n background: rgba($base-overlay-background, 0.5);\n}\n",".video-error-cover {\n align-items: center;\n background: $base-overlay-background;\n color: $primary-text-color;\n cursor: pointer;\n display: flex;\n flex-direction: column;\n height: 100%;\n justify-content: center;\n margin-top: 8px;\n position: relative;\n text-align: center;\n z-index: 100;\n}\n\n.media-spoiler {\n background: $base-overlay-background;\n color: $darker-text-color;\n border: 0;\n width: 100%;\n height: 100%;\n\n &:hover,\n &:active,\n &:focus {\n color: lighten($darker-text-color, 8%);\n }\n\n .status__content > & {\n margin-top: 15px; // Add margin when used bare for NSFW video player\n }\n @include fullwidth-gallery;\n}\n\n.media-spoiler__warning {\n display: block;\n font-size: 14px;\n}\n\n.media-spoiler__trigger {\n display: block;\n font-size: 11px;\n font-weight: 500;\n}\n\n.media-gallery__gifv__label {\n display: block;\n position: absolute;\n color: $primary-text-color;\n background: rgba($base-overlay-background, 0.5);\n bottom: 6px;\n left: 6px;\n padding: 2px 6px;\n border-radius: 2px;\n font-size: 11px;\n font-weight: 600;\n z-index: 1;\n pointer-events: none;\n opacity: 0.9;\n transition: opacity 0.1s ease;\n line-height: 18px;\n}\n\n.media-gallery__gifv {\n &:hover {\n .media-gallery__gifv__label {\n opacity: 1;\n }\n }\n}\n\n.media-gallery__audio {\n height: 100%;\n display: flex;\n flex-direction: column;\n\n span {\n text-align: center;\n color: $darker-text-color;\n display: flex;\n height: 100%;\n align-items: center;\n\n p {\n width: 100%;\n }\n }\n\n audio {\n width: 100%;\n }\n}\n\n.media-gallery {\n box-sizing: border-box;\n margin-top: 8px;\n overflow: hidden;\n border-radius: 4px;\n position: relative;\n width: 100%;\n height: 110px;\n\n @include fullwidth-gallery;\n}\n\n.media-gallery__item {\n border: none;\n box-sizing: border-box;\n display: block;\n float: left;\n position: relative;\n border-radius: 4px;\n overflow: hidden;\n\n .full-width & {\n border-radius: 0;\n }\n\n &.standalone {\n .media-gallery__item-gifv-thumbnail {\n transform: none;\n top: 0;\n }\n }\n\n &.letterbox {\n background: $base-shadow-color;\n }\n}\n\n.media-gallery__item-thumbnail {\n cursor: zoom-in;\n display: block;\n text-decoration: none;\n color: $secondary-text-color;\n position: relative;\n z-index: 1;\n\n &,\n img {\n height: 100%;\n width: 100%;\n object-fit: contain;\n\n &:not(.letterbox) {\n height: 100%;\n object-fit: cover;\n }\n }\n}\n\n.media-gallery__preview {\n width: 100%;\n height: 100%;\n object-fit: cover;\n position: absolute;\n top: 0;\n left: 0;\n z-index: 0;\n background: $base-overlay-background;\n\n &--hidden {\n display: none;\n }\n}\n\n.media-gallery__gifv {\n height: 100%;\n overflow: hidden;\n position: relative;\n width: 100%;\n display: flex;\n justify-content: center;\n}\n\n.media-gallery__item-gifv-thumbnail {\n cursor: zoom-in;\n height: 100%;\n width: 100%;\n position: relative;\n z-index: 1;\n object-fit: contain;\n user-select: none;\n\n &:not(.letterbox) {\n height: 100%;\n object-fit: cover;\n }\n}\n\n.media-gallery__item-thumbnail-label {\n clip: rect(1px 1px 1px 1px); /* IE6, IE7 */\n clip: rect(1px, 1px, 1px, 1px);\n overflow: hidden;\n position: absolute;\n}\n\n.video-modal__container {\n max-width: 100vw;\n max-height: 100vh;\n}\n\n.audio-modal__container {\n width: 50vw;\n}\n\n.media-modal {\n width: 100%;\n height: 100%;\n position: relative;\n\n .extended-video-player {\n width: 100%;\n height: 100%;\n display: flex;\n align-items: center;\n justify-content: center;\n\n video {\n max-width: $media-modal-media-max-width;\n max-height: $media-modal-media-max-height;\n }\n }\n}\n\n.media-modal__closer {\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n}\n\n.media-modal__navigation {\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n pointer-events: none;\n transition: opacity 0.3s linear;\n will-change: opacity;\n\n * {\n pointer-events: auto;\n }\n\n &.media-modal__navigation--hidden {\n opacity: 0;\n\n * {\n pointer-events: none;\n }\n }\n}\n\n.media-modal__nav {\n background: rgba($base-overlay-background, 0.5);\n box-sizing: border-box;\n border: 0;\n color: $primary-text-color;\n cursor: pointer;\n display: flex;\n align-items: center;\n font-size: 24px;\n height: 20vmax;\n margin: auto 0;\n padding: 30px 15px;\n position: absolute;\n top: 0;\n bottom: 0;\n}\n\n.media-modal__nav--left {\n left: 0;\n}\n\n.media-modal__nav--right {\n right: 0;\n}\n\n.media-modal__pagination {\n width: 100%;\n text-align: center;\n position: absolute;\n left: 0;\n bottom: 20px;\n pointer-events: none;\n}\n\n.media-modal__meta {\n text-align: center;\n position: absolute;\n left: 0;\n bottom: 20px;\n width: 100%;\n pointer-events: none;\n\n &--shifted {\n bottom: 62px;\n }\n\n a {\n pointer-events: auto;\n text-decoration: none;\n font-weight: 500;\n color: $ui-secondary-color;\n\n &:hover,\n &:focus,\n &:active {\n text-decoration: underline;\n }\n }\n}\n\n.media-modal__page-dot {\n display: inline-block;\n}\n\n.media-modal__button {\n background-color: $white;\n height: 12px;\n width: 12px;\n border-radius: 6px;\n margin: 10px;\n padding: 0;\n border: 0;\n font-size: 0;\n}\n\n.media-modal__button--active {\n background-color: $ui-highlight-color;\n}\n\n.media-modal__close {\n position: absolute;\n right: 8px;\n top: 8px;\n z-index: 100;\n}\n\n.detailed,\n.fullscreen {\n .video-player__volume__current,\n .video-player__volume::before {\n bottom: 27px;\n }\n\n .video-player__volume__handle {\n bottom: 23px;\n }\n\n}\n\n.audio-player {\n box-sizing: border-box;\n position: relative;\n background: darken($ui-base-color, 8%);\n border-radius: 4px;\n padding-bottom: 44px;\n direction: ltr;\n\n &.editable {\n border-radius: 0;\n height: 100%;\n }\n\n &__waveform {\n padding: 15px 0;\n position: relative;\n overflow: hidden;\n\n &::before {\n content: \"\";\n display: block;\n position: absolute;\n border-top: 1px solid lighten($ui-base-color, 4%);\n width: 100%;\n height: 0;\n left: 0;\n top: calc(50% + 1px);\n }\n }\n\n &__progress-placeholder {\n background-color: rgba(lighten($ui-highlight-color, 8%), 0.5);\n }\n\n &__wave-placeholder {\n background-color: lighten($ui-base-color, 16%);\n }\n\n .video-player__controls {\n padding: 0 15px;\n padding-top: 10px;\n background: darken($ui-base-color, 8%);\n border-top: 1px solid lighten($ui-base-color, 4%);\n border-radius: 0 0 4px 4px;\n }\n}\n\n.video-player {\n overflow: hidden;\n position: relative;\n background: $base-shadow-color;\n max-width: 100%;\n border-radius: 4px;\n box-sizing: border-box;\n direction: ltr;\n\n &.editable {\n border-radius: 0;\n height: 100% !important;\n }\n\n &:focus {\n outline: 0;\n }\n\n .detailed-status & {\n width: 100%;\n height: 100%;\n }\n\n @include fullwidth-gallery;\n\n video {\n max-width: 100vw;\n max-height: 80vh;\n z-index: 1;\n position: relative;\n }\n\n &.fullscreen {\n width: 100% !important;\n height: 100% !important;\n margin: 0;\n\n video {\n max-width: 100% !important;\n max-height: 100% !important;\n width: 100% !important;\n height: 100% !important;\n outline: 0;\n }\n }\n\n &.inline {\n video {\n object-fit: contain;\n position: relative;\n top: 50%;\n transform: translateY(-50%);\n }\n }\n\n &__controls {\n position: absolute;\n z-index: 2;\n bottom: 0;\n left: 0;\n right: 0;\n box-sizing: border-box;\n background: linear-gradient(0deg, rgba($base-shadow-color, 0.85) 0, rgba($base-shadow-color, 0.45) 60%, transparent);\n padding: 0 15px;\n opacity: 0;\n transition: opacity .1s ease;\n\n &.active {\n opacity: 1;\n }\n }\n\n &.inactive {\n video,\n .video-player__controls {\n visibility: hidden;\n }\n }\n\n &__spoiler {\n display: none;\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n z-index: 4;\n border: 0;\n background: $base-shadow-color;\n color: $darker-text-color;\n transition: none;\n pointer-events: none;\n\n &.active {\n display: block;\n pointer-events: auto;\n\n &:hover,\n &:active,\n &:focus {\n color: lighten($darker-text-color, 7%);\n }\n }\n\n &__title {\n display: block;\n font-size: 14px;\n }\n\n &__subtitle {\n display: block;\n font-size: 11px;\n font-weight: 500;\n }\n }\n\n &__buttons-bar {\n display: flex;\n justify-content: space-between;\n padding-bottom: 10px;\n\n .video-player__download__icon {\n color: inherit;\n\n .fa,\n &:active .fa,\n &:hover .fa,\n &:focus .fa {\n color: inherit;\n }\n }\n }\n\n &__buttons {\n font-size: 16px;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n\n &.left {\n button {\n padding-left: 0;\n }\n }\n\n &.right {\n button {\n padding-right: 0;\n }\n }\n\n button {\n background: transparent;\n padding: 2px 10px;\n font-size: 16px;\n border: 0;\n color: rgba($white, 0.75);\n\n &:active,\n &:hover,\n &:focus {\n color: $white;\n }\n }\n }\n\n &__time-sep,\n &__time-total,\n &__time-current {\n font-size: 14px;\n font-weight: 500;\n }\n\n &__time-current {\n color: $white;\n margin-left: 60px;\n }\n\n &__time-sep {\n display: inline-block;\n margin: 0 6px;\n }\n\n &__time-sep,\n &__time-total {\n color: $white;\n }\n\n &__volume {\n cursor: pointer;\n height: 24px;\n display: inline;\n\n &::before {\n content: \"\";\n width: 50px;\n background: rgba($white, 0.35);\n border-radius: 4px;\n display: block;\n position: absolute;\n height: 4px;\n left: 70px;\n bottom: 20px;\n }\n\n &__current {\n display: block;\n position: absolute;\n height: 4px;\n border-radius: 4px;\n left: 70px;\n bottom: 20px;\n background: lighten($ui-highlight-color, 8%);\n }\n\n &__handle {\n position: absolute;\n z-index: 3;\n border-radius: 50%;\n width: 12px;\n height: 12px;\n bottom: 16px;\n left: 70px;\n transition: opacity .1s ease;\n background: lighten($ui-highlight-color, 8%);\n box-shadow: 1px 2px 6px rgba($base-shadow-color, 0.2);\n pointer-events: none;\n }\n }\n\n &__link {\n padding: 2px 10px;\n\n a {\n text-decoration: none;\n font-size: 14px;\n font-weight: 500;\n color: $white;\n\n &:hover,\n &:active,\n &:focus {\n text-decoration: underline;\n }\n }\n }\n\n &__seek {\n cursor: pointer;\n height: 24px;\n position: relative;\n\n &::before {\n content: \"\";\n width: 100%;\n background: rgba($white, 0.35);\n border-radius: 4px;\n display: block;\n position: absolute;\n height: 4px;\n top: 10px;\n }\n\n &__progress,\n &__buffer {\n display: block;\n position: absolute;\n height: 4px;\n border-radius: 4px;\n top: 10px;\n background: lighten($ui-highlight-color, 8%);\n }\n\n &__buffer {\n background: rgba($white, 0.2);\n }\n\n &__handle {\n position: absolute;\n z-index: 3;\n opacity: 0;\n border-radius: 50%;\n width: 12px;\n height: 12px;\n top: 6px;\n margin-left: -6px;\n transition: opacity .1s ease;\n background: lighten($ui-highlight-color, 8%);\n box-shadow: 1px 2px 6px rgba($base-shadow-color, 0.2);\n pointer-events: none;\n\n &.active {\n opacity: 1;\n }\n }\n\n &:hover {\n .video-player__seek__handle {\n opacity: 1;\n }\n }\n }\n\n &.detailed,\n &.fullscreen {\n .video-player__buttons {\n button {\n padding-top: 10px;\n padding-bottom: 10px;\n }\n }\n }\n}\n",".sensitive-info {\n display: flex;\n flex-direction: row;\n align-items: center;\n position: absolute;\n top: 4px;\n left: 4px;\n z-index: 100;\n}\n\n.sensitive-marker {\n margin: 0 3px;\n border-radius: 2px;\n padding: 2px 6px;\n color: rgba($primary-text-color, 0.8);\n background: rgba($base-overlay-background, 0.5);\n font-size: 12px;\n line-height: 18px;\n text-transform: uppercase;\n opacity: .9;\n transition: opacity .1s ease;\n\n .media-gallery:hover & { opacity: 1 }\n}\n",".list-editor {\n background: $ui-base-color;\n flex-direction: column;\n border-radius: 8px;\n box-shadow: 2px 4px 15px rgba($base-shadow-color, 0.4);\n width: 380px;\n overflow: hidden;\n\n @media screen and (max-width: 420px) {\n width: 90%;\n }\n\n h4 {\n padding: 15px 0;\n background: lighten($ui-base-color, 13%);\n font-weight: 500;\n font-size: 16px;\n text-align: center;\n border-radius: 8px 8px 0 0;\n }\n\n .drawer__pager {\n height: 50vh;\n }\n\n .drawer__inner {\n border-radius: 0 0 8px 8px;\n\n &.backdrop {\n width: calc(100% - 60px);\n box-shadow: 2px 4px 15px rgba($base-shadow-color, 0.4);\n border-radius: 0 0 0 8px;\n }\n }\n\n &__accounts {\n overflow-y: auto;\n }\n\n .account__display-name {\n &:hover strong {\n text-decoration: none;\n }\n }\n\n .account__avatar {\n cursor: default;\n }\n\n .search {\n margin-bottom: 0;\n }\n}\n\n.list-adder {\n background: $ui-base-color;\n flex-direction: column;\n border-radius: 8px;\n box-shadow: 2px 4px 15px rgba($base-shadow-color, 0.4);\n width: 380px;\n overflow: hidden;\n\n @media screen and (max-width: 420px) {\n width: 90%;\n }\n\n &__account {\n background: lighten($ui-base-color, 13%);\n }\n\n &__lists {\n background: lighten($ui-base-color, 13%);\n height: 50vh;\n border-radius: 0 0 8px 8px;\n overflow-y: auto;\n }\n\n .list {\n padding: 10px;\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n }\n\n .list__wrapper {\n display: flex;\n }\n\n .list__display-name {\n flex: 1 1 auto;\n overflow: hidden;\n text-decoration: none;\n font-size: 16px;\n padding: 10px;\n }\n}\n",".emoji-mart {\n &,\n * {\n box-sizing: border-box;\n line-height: 1.15;\n }\n\n font-size: 13px;\n display: inline-block;\n color: $inverted-text-color;\n\n .emoji-mart-emoji {\n padding: 6px;\n }\n}\n\n.emoji-mart-bar {\n border: 0 solid darken($ui-secondary-color, 8%);\n\n &:first-child {\n border-bottom-width: 1px;\n border-top-left-radius: 5px;\n border-top-right-radius: 5px;\n background: $ui-secondary-color;\n }\n\n &:last-child {\n border-top-width: 1px;\n border-bottom-left-radius: 5px;\n border-bottom-right-radius: 5px;\n display: none;\n }\n}\n\n.emoji-mart-anchors {\n display: flex;\n justify-content: space-between;\n padding: 0 6px;\n color: $lighter-text-color;\n line-height: 0;\n}\n\n.emoji-mart-anchor {\n position: relative;\n flex: 1;\n text-align: center;\n padding: 12px 4px;\n overflow: hidden;\n transition: color .1s ease-out;\n cursor: pointer;\n\n &:hover {\n color: darken($lighter-text-color, 4%);\n }\n}\n\n.emoji-mart-anchor-selected {\n color: $highlight-text-color;\n\n &:hover {\n color: darken($highlight-text-color, 4%);\n }\n\n .emoji-mart-anchor-bar {\n bottom: 0;\n }\n}\n\n.emoji-mart-anchor-bar {\n position: absolute;\n bottom: -3px;\n left: 0;\n width: 100%;\n height: 3px;\n background-color: darken($ui-highlight-color, 3%);\n}\n\n.emoji-mart-anchors {\n i {\n display: inline-block;\n width: 100%;\n max-width: 22px;\n }\n\n svg {\n fill: currentColor;\n max-height: 18px;\n }\n}\n\n.emoji-mart-scroll {\n overflow-y: scroll;\n height: 270px;\n max-height: 35vh;\n padding: 0 6px 6px;\n background: $simple-background-color;\n will-change: transform;\n\n &::-webkit-scrollbar-track:hover,\n &::-webkit-scrollbar-track:active {\n background-color: rgba($base-overlay-background, 0.3);\n }\n}\n\n.emoji-mart-search {\n padding: 10px;\n padding-right: 45px;\n background: $simple-background-color;\n\n input {\n font-size: 14px;\n font-weight: 400;\n padding: 7px 9px;\n font-family: inherit;\n display: block;\n width: 100%;\n background: rgba($ui-secondary-color, 0.3);\n color: $inverted-text-color;\n border: 1px solid $ui-secondary-color;\n border-radius: 4px;\n\n &::-moz-focus-inner {\n border: 0;\n }\n\n &::-moz-focus-inner,\n &:focus,\n &:active {\n outline: 0 !important;\n }\n }\n}\n\n.emoji-mart-category .emoji-mart-emoji {\n cursor: pointer;\n\n span {\n z-index: 1;\n position: relative;\n text-align: center;\n }\n\n &:hover::before {\n z-index: 0;\n content: \"\";\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n background-color: rgba($ui-secondary-color, 0.7);\n border-radius: 100%;\n }\n}\n\n.emoji-mart-category-label {\n z-index: 2;\n position: relative;\n position: -webkit-sticky;\n position: sticky;\n top: 0;\n\n span {\n display: block;\n width: 100%;\n font-weight: 500;\n padding: 5px 6px;\n background: $simple-background-color;\n }\n}\n\n.emoji-mart-emoji {\n position: relative;\n display: inline-block;\n font-size: 0;\n\n span {\n width: 22px;\n height: 22px;\n }\n}\n\n.emoji-mart-no-results {\n font-size: 14px;\n text-align: center;\n padding-top: 70px;\n color: $light-text-color;\n\n .emoji-mart-category-label {\n display: none;\n }\n\n .emoji-mart-no-results-label {\n margin-top: .2em;\n }\n\n .emoji-mart-emoji:hover::before {\n content: none;\n }\n}\n\n.emoji-mart-preview {\n display: none;\n}\n",".glitch.local-settings {\n position: relative;\n display: flex;\n flex-direction: row;\n background: $ui-secondary-color;\n color: $inverted-text-color;\n border-radius: 8px;\n height: 80vh;\n width: 80vw;\n max-width: 740px;\n max-height: 450px;\n overflow: hidden;\n\n label, legend {\n display: block;\n font-size: 14px;\n }\n\n .boolean label, .radio_buttons label {\n position: relative;\n padding-left: 28px;\n padding-top: 3px;\n\n input {\n position: absolute;\n left: 0;\n top: 0;\n }\n }\n\n span.hint {\n display: block;\n color: $lighter-text-color;\n }\n\n h1 {\n font-size: 18px;\n font-weight: 500;\n line-height: 24px;\n margin-bottom: 20px;\n }\n\n h2 {\n font-size: 15px;\n font-weight: 500;\n line-height: 20px;\n margin-top: 20px;\n margin-bottom: 10px;\n }\n}\n\n.glitch.local-settings__navigation__item {\n display: block;\n padding: 15px 20px;\n color: inherit;\n background: lighten($ui-secondary-color, 8%);\n border-bottom: 1px $ui-secondary-color solid;\n cursor: pointer;\n text-decoration: none;\n outline: none;\n transition: background .3s;\n\n .text-icon-button {\n color: inherit;\n transition: unset;\n }\n\n &:hover {\n background: $ui-secondary-color;\n }\n\n &.active {\n background: $ui-highlight-color;\n color: $primary-text-color;\n }\n\n &.close, &.close:hover {\n background: $error-value-color;\n color: $primary-text-color;\n }\n}\n\n.glitch.local-settings__navigation {\n background: lighten($ui-secondary-color, 8%);\n width: 212px;\n font-size: 15px;\n line-height: 20px;\n overflow-y: auto;\n}\n\n.glitch.local-settings__page {\n display: block;\n flex: auto;\n padding: 15px 20px 15px 20px;\n width: 360px;\n overflow-y: auto;\n}\n\n.glitch.local-settings__page__item {\n margin-bottom: 2px;\n}\n\n.glitch.local-settings__page__item.string,\n.glitch.local-settings__page__item.radio_buttons {\n margin-top: 10px;\n margin-bottom: 10px;\n}\n\n@media screen and (max-width: 630px) {\n .glitch.local-settings__navigation {\n width: 40px;\n flex-shrink: 0;\n }\n\n .glitch.local-settings__navigation__item {\n padding: 10px;\n\n span:last-of-type {\n display: none;\n }\n }\n}\n",".error-boundary {\n color: $primary-text-color;\n font-size: 15px;\n line-height: 20px;\n\n h1 {\n font-size: 26px;\n line-height: 36px;\n font-weight: 400;\n margin-bottom: 8px;\n }\n\n a {\n color: $primary-text-color;\n text-decoration: underline;\n }\n\n ul {\n list-style: disc;\n margin-left: 0;\n padding-left: 1em;\n }\n\n textarea.web_app_crash-stacktrace {\n width: 100%;\n resize: none;\n white-space: pre;\n font-family: $font-monospace, monospace;\n }\n}\n",".compose-panel {\n width: 285px;\n margin-top: 10px;\n display: flex;\n flex-direction: column;\n height: calc(100% - 10px);\n overflow-y: hidden;\n\n .search__input {\n line-height: 18px;\n font-size: 16px;\n padding: 15px;\n padding-right: 30px;\n }\n\n .search__icon .fa {\n top: 15px;\n }\n\n .drawer--account {\n flex: 0 1 48px;\n }\n\n .flex-spacer {\n background: transparent;\n }\n\n .composer {\n flex: 1;\n overflow-y: hidden;\n display: flex;\n flex-direction: column;\n min-height: 310px;\n }\n\n .compose-form__autosuggest-wrapper {\n overflow-y: auto;\n background-color: $white;\n border-radius: 4px 4px 0 0;\n flex: 0 1 auto;\n }\n\n .autosuggest-textarea__textarea {\n overflow-y: hidden;\n }\n\n .compose-form__upload-thumbnail {\n height: 80px;\n }\n}\n\n.navigation-panel {\n margin-top: 10px;\n margin-bottom: 10px;\n height: calc(100% - 20px);\n overflow-y: auto;\n display: flex;\n flex-direction: column;\n\n & > a {\n flex: 0 0 auto;\n }\n\n hr {\n flex: 0 0 auto;\n border: 0;\n background: transparent;\n border-top: 1px solid lighten($ui-base-color, 4%);\n margin: 10px 0;\n }\n\n .flex-spacer {\n background: transparent;\n }\n}\n\n@media screen and (min-width: 600px) {\n .tabs-bar__link {\n span {\n display: inline;\n }\n }\n}\n\n.columns-area--mobile {\n flex-direction: column;\n width: 100%;\n margin: 0 auto;\n\n .column,\n .drawer {\n width: 100%;\n height: 100%;\n padding: 0;\n }\n\n .directory__list {\n display: grid;\n grid-gap: 10px;\n grid-template-columns: minmax(0, 50%) minmax(0, 50%);\n\n @media screen and (max-width: $no-gap-breakpoint) {\n display: block;\n }\n }\n\n .directory__card {\n margin-bottom: 0;\n }\n\n .filter-form {\n display: flex;\n }\n\n .autosuggest-textarea__textarea {\n font-size: 16px;\n }\n\n .search__input {\n line-height: 18px;\n font-size: 16px;\n padding: 15px;\n padding-right: 30px;\n }\n\n .search__icon .fa {\n top: 15px;\n }\n\n .scrollable {\n overflow: visible;\n\n @supports(display: grid) {\n contain: content;\n }\n }\n\n @media screen and (min-width: $no-gap-breakpoint) {\n padding: 10px 0;\n padding-top: 0;\n }\n\n @media screen and (min-width: 630px) {\n .detailed-status {\n padding: 15px;\n\n .media-gallery,\n .video-player,\n .audio-player {\n margin-top: 15px;\n }\n }\n\n .account__header__bar {\n padding: 5px 10px;\n }\n\n .navigation-bar,\n .compose-form {\n padding: 15px;\n }\n\n .compose-form .compose-form__publish .compose-form__publish-button-wrapper {\n padding-top: 15px;\n }\n\n .status {\n padding: 15px;\n min-height: 48px + 2px;\n\n .media-gallery,\n &__action-bar,\n .video-player,\n .audio-player {\n margin-top: 10px;\n }\n }\n\n .account {\n padding: 15px 10px;\n\n &__header__bio {\n margin: 0 -10px;\n }\n }\n\n .notification {\n &__message {\n padding-top: 15px;\n }\n\n .status {\n padding-top: 8px;\n }\n\n .account {\n padding-top: 8px;\n }\n }\n }\n}\n\n.floating-action-button {\n position: fixed;\n display: flex;\n justify-content: center;\n align-items: center;\n width: 3.9375rem;\n height: 3.9375rem;\n bottom: 1.3125rem;\n right: 1.3125rem;\n background: darken($ui-highlight-color, 3%);\n color: $white;\n border-radius: 50%;\n font-size: 21px;\n line-height: 21px;\n text-decoration: none;\n box-shadow: 2px 3px 9px rgba($base-shadow-color, 0.4);\n\n &:hover,\n &:focus,\n &:active {\n background: lighten($ui-highlight-color, 7%);\n }\n}\n\n@media screen and (min-width: $no-gap-breakpoint) {\n .tabs-bar {\n width: 100%;\n }\n\n .react-swipeable-view-container .columns-area--mobile {\n height: calc(100% - 10px) !important;\n }\n\n .getting-started__wrapper,\n .search {\n margin-bottom: 10px;\n }\n}\n\n@media screen and (max-width: 600px + (285px * 1) + (10px * 1)) {\n .columns-area__panels__pane--compositional {\n display: none;\n }\n}\n\n@media screen and (min-width: 600px + (285px * 1) + (10px * 1)) {\n .floating-action-button,\n .tabs-bar__link.optional {\n display: none;\n }\n\n .search-page .search {\n display: none;\n }\n}\n\n@media screen and (max-width: 600px + (285px * 2) + (10px * 2)) {\n .columns-area__panels__pane--navigational {\n display: none;\n }\n}\n\n@media screen and (min-width: 600px + (285px * 2) + (10px * 2)) {\n .tabs-bar {\n display: none;\n }\n}\n",".announcements__item__content {\n word-wrap: break-word;\n overflow-y: auto;\n\n .emojione {\n width: 20px;\n height: 20px;\n margin: -3px 0 0;\n }\n\n p {\n margin-bottom: 10px;\n white-space: pre-wrap;\n\n &:last-child {\n margin-bottom: 0;\n }\n }\n\n a {\n color: $secondary-text-color;\n text-decoration: none;\n\n &:hover {\n text-decoration: underline;\n }\n\n &.mention {\n &:hover {\n text-decoration: none;\n\n span {\n text-decoration: underline;\n }\n }\n }\n\n &.unhandled-link {\n color: lighten($ui-highlight-color, 8%);\n }\n }\n}\n\n.announcements {\n background: lighten($ui-base-color, 8%);\n font-size: 13px;\n display: flex;\n align-items: flex-end;\n\n &__mastodon {\n width: 124px;\n flex: 0 0 auto;\n\n @media screen and (max-width: 124px + 300px) {\n display: none;\n }\n }\n\n &__container {\n width: calc(100% - 124px);\n flex: 0 0 auto;\n position: relative;\n\n @media screen and (max-width: 124px + 300px) {\n width: 100%;\n }\n }\n\n &__item {\n box-sizing: border-box;\n width: 100%;\n padding: 15px;\n position: relative;\n font-size: 15px;\n line-height: 20px;\n word-wrap: break-word;\n font-weight: 400;\n max-height: 50vh;\n overflow: hidden;\n display: flex;\n flex-direction: column;\n\n &__range {\n display: block;\n font-weight: 500;\n margin-bottom: 10px;\n padding-right: 18px;\n }\n\n &__unread {\n position: absolute;\n top: 19px;\n right: 19px;\n display: block;\n background: $highlight-text-color;\n border-radius: 50%;\n width: 0.625rem;\n height: 0.625rem;\n }\n }\n\n &__pagination {\n padding: 15px;\n color: $darker-text-color;\n position: absolute;\n bottom: 3px;\n right: 0;\n }\n}\n\n.layout-multiple-columns .announcements__mastodon {\n display: none;\n}\n\n.layout-multiple-columns .announcements__container {\n width: 100%;\n}\n\n.reactions-bar {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n margin-top: 15px;\n margin-left: -2px;\n width: calc(100% - (90px - 33px));\n\n &__item {\n flex-shrink: 0;\n background: lighten($ui-base-color, 12%);\n border: 0;\n border-radius: 3px;\n margin: 2px;\n cursor: pointer;\n user-select: none;\n padding: 0 6px;\n display: flex;\n align-items: center;\n transition: all 100ms ease-in;\n transition-property: background-color, color;\n\n &__emoji {\n display: block;\n margin: 3px 0;\n width: 16px;\n height: 16px;\n\n img {\n display: block;\n margin: 0;\n width: 100%;\n height: 100%;\n min-width: auto;\n min-height: auto;\n vertical-align: bottom;\n object-fit: contain;\n }\n }\n\n &__count {\n display: block;\n min-width: 9px;\n font-size: 13px;\n font-weight: 500;\n text-align: center;\n margin-left: 6px;\n color: $darker-text-color;\n }\n\n &:hover,\n &:focus,\n &:active {\n background: lighten($ui-base-color, 16%);\n transition: all 200ms ease-out;\n transition-property: background-color, color;\n\n &__count {\n color: lighten($darker-text-color, 4%);\n }\n }\n\n &.active {\n transition: all 100ms ease-in;\n transition-property: background-color, color;\n background-color: mix(lighten($ui-base-color, 12%), $ui-highlight-color, 80%);\n\n .reactions-bar__item__count {\n color: lighten($highlight-text-color, 8%);\n }\n }\n }\n\n .emoji-picker-dropdown {\n margin: 2px;\n }\n\n &:hover .emoji-button {\n opacity: 0.85;\n }\n\n .emoji-button {\n color: $darker-text-color;\n margin: 0;\n font-size: 16px;\n width: auto;\n flex-shrink: 0;\n padding: 0 6px;\n height: 22px;\n display: flex;\n align-items: center;\n opacity: 0.5;\n transition: all 100ms ease-in;\n transition-property: background-color, color;\n\n &:hover,\n &:active,\n &:focus {\n opacity: 1;\n color: lighten($darker-text-color, 4%);\n transition: all 200ms ease-out;\n transition-property: background-color, color;\n }\n }\n\n &--empty {\n .emoji-button {\n padding: 0;\n }\n }\n}\n",".poll {\n margin-top: 16px;\n font-size: 14px;\n\n ul,\n .e-content & ul {\n margin: 0;\n list-style: none;\n }\n\n li {\n margin-bottom: 10px;\n position: relative;\n }\n\n &__chart {\n border-radius: 4px;\n display: block;\n background: darken($ui-primary-color, 5%);\n height: 5px;\n min-width: 1%;\n\n &.leading {\n background: $ui-highlight-color;\n }\n }\n\n &__option {\n position: relative;\n display: flex;\n padding: 6px 0;\n line-height: 18px;\n cursor: default;\n overflow: hidden;\n\n &__text {\n display: inline-block;\n word-wrap: break-word;\n overflow-wrap: break-word;\n max-width: calc(100% - 45px - 25px);\n }\n\n input[type=radio],\n input[type=checkbox] {\n display: none;\n }\n\n .autossugest-input {\n flex: 1 1 auto;\n }\n\n input[type=text] {\n display: block;\n box-sizing: border-box;\n width: 100%;\n font-size: 14px;\n color: $inverted-text-color;\n display: block;\n outline: 0;\n font-family: inherit;\n background: $simple-background-color;\n border: 1px solid darken($simple-background-color, 14%);\n border-radius: 4px;\n padding: 6px 10px;\n\n &:focus {\n border-color: $highlight-text-color;\n }\n }\n\n &.selectable {\n cursor: pointer;\n }\n\n &.editable {\n display: flex;\n align-items: center;\n overflow: visible;\n }\n }\n\n &__input {\n display: inline-block;\n position: relative;\n border: 1px solid $ui-primary-color;\n box-sizing: border-box;\n width: 18px;\n height: 18px;\n flex: 0 0 auto;\n margin-right: 10px;\n top: -1px;\n border-radius: 50%;\n vertical-align: middle;\n margin-top: auto;\n margin-bottom: auto;\n flex: 0 0 18px;\n\n &.checkbox {\n border-radius: 4px;\n }\n\n &.active {\n border-color: $valid-value-color;\n background: $valid-value-color;\n }\n\n &:active,\n &:focus,\n &:hover {\n border-color: lighten($valid-value-color, 15%);\n border-width: 4px;\n }\n\n &::-moz-focus-inner {\n outline: 0 !important;\n border: 0;\n }\n\n &:focus,\n &:active {\n outline: 0 !important;\n }\n }\n\n &__number {\n display: inline-block;\n width: 45px;\n font-weight: 700;\n flex: 0 0 45px;\n }\n\n &__voted {\n padding: 0 5px;\n display: inline-block;\n\n &__mark {\n font-size: 18px;\n }\n }\n\n &__footer {\n padding-top: 6px;\n padding-bottom: 5px;\n color: $dark-text-color;\n }\n\n &__link {\n display: inline;\n background: transparent;\n padding: 0;\n margin: 0;\n border: 0;\n color: $dark-text-color;\n text-decoration: underline;\n font-size: inherit;\n\n &:hover {\n text-decoration: none;\n }\n\n &:active,\n &:focus {\n background-color: rgba($dark-text-color, .1);\n }\n }\n\n .button {\n height: 36px;\n padding: 0 16px;\n margin-right: 10px;\n font-size: 14px;\n }\n}\n\n.compose-form__poll-wrapper {\n border-top: 1px solid darken($simple-background-color, 8%);\n overflow-x: hidden;\n\n ul {\n padding: 10px;\n }\n\n .poll__footer {\n border-top: 1px solid darken($simple-background-color, 8%);\n padding: 10px;\n display: flex;\n align-items: center;\n\n button,\n select {\n width: 100%;\n flex: 1 1 50%;\n\n &:focus {\n border-color: $highlight-text-color;\n }\n }\n }\n\n .button.button-secondary {\n font-size: 14px;\n font-weight: 400;\n padding: 6px 10px;\n height: auto;\n line-height: inherit;\n color: $action-button-color;\n border-color: $action-button-color;\n margin-right: 5px;\n }\n\n li {\n display: flex;\n align-items: center;\n\n .poll__option {\n flex: 0 0 auto;\n width: calc(100% - (23px + 6px));\n margin-right: 6px;\n }\n }\n\n select {\n appearance: none;\n box-sizing: border-box;\n font-size: 14px;\n color: $inverted-text-color;\n display: inline-block;\n width: auto;\n outline: 0;\n font-family: inherit;\n background: $simple-background-color url(\"data:image/svg+xml;utf8,\") no-repeat right 8px center / auto 16px;\n border: 1px solid darken($simple-background-color, 14%);\n border-radius: 4px;\n padding: 6px 10px;\n padding-right: 30px;\n }\n\n .icon-button.disabled {\n color: darken($simple-background-color, 14%);\n }\n}\n\n.muted .poll {\n color: $dark-text-color;\n\n &__chart {\n background: rgba(darken($ui-primary-color, 14%), 0.2);\n\n &.leading {\n background: rgba($ui-highlight-color, 0.2);\n }\n }\n}\n","$maximum-width: 1235px;\n$fluid-breakpoint: $maximum-width + 20px;\n$column-breakpoint: 700px;\n$small-breakpoint: 960px;\n\n.container {\n box-sizing: border-box;\n max-width: $maximum-width;\n margin: 0 auto;\n position: relative;\n\n @media screen and (max-width: $fluid-breakpoint) {\n width: 100%;\n padding: 0 10px;\n }\n}\n\n.rich-formatting {\n font-family: $font-sans-serif, sans-serif;\n font-size: 14px;\n font-weight: 400;\n line-height: 1.7;\n word-wrap: break-word;\n color: $darker-text-color;\n\n a {\n color: $highlight-text-color;\n text-decoration: underline;\n\n &:hover,\n &:focus,\n &:active {\n text-decoration: none;\n }\n }\n\n p,\n li {\n color: $darker-text-color;\n }\n\n p {\n margin-top: 0;\n margin-bottom: .85em;\n\n &:last-child {\n margin-bottom: 0;\n }\n }\n\n strong {\n font-weight: 700;\n color: $secondary-text-color;\n }\n\n em {\n font-style: italic;\n color: $secondary-text-color;\n }\n\n code {\n font-size: 0.85em;\n background: darken($ui-base-color, 8%);\n border-radius: 4px;\n padding: 0.2em 0.3em;\n }\n\n h1,\n h2,\n h3,\n h4,\n h5,\n h6 {\n font-family: $font-display, sans-serif;\n margin-top: 1.275em;\n margin-bottom: .85em;\n font-weight: 500;\n color: $secondary-text-color;\n }\n\n h1 {\n font-size: 2em;\n }\n\n h2 {\n font-size: 1.75em;\n }\n\n h3 {\n font-size: 1.5em;\n }\n\n h4 {\n font-size: 1.25em;\n }\n\n h5,\n h6 {\n font-size: 1em;\n }\n\n ul {\n list-style: disc;\n }\n\n ol {\n list-style: decimal;\n }\n\n ul,\n ol {\n margin: 0;\n padding: 0;\n padding-left: 2em;\n margin-bottom: 0.85em;\n\n &[type='a'] {\n list-style-type: lower-alpha;\n }\n\n &[type='i'] {\n list-style-type: lower-roman;\n }\n }\n\n hr {\n width: 100%;\n height: 0;\n border: 0;\n border-bottom: 1px solid lighten($ui-base-color, 4%);\n margin: 1.7em 0;\n\n &.spacer {\n height: 1px;\n border: 0;\n }\n }\n\n table {\n width: 100%;\n border-collapse: collapse;\n break-inside: auto;\n margin-top: 24px;\n margin-bottom: 32px;\n\n thead tr,\n tbody tr {\n border-bottom: 1px solid lighten($ui-base-color, 4%);\n font-size: 1em;\n line-height: 1.625;\n font-weight: 400;\n text-align: left;\n color: $darker-text-color;\n }\n\n thead tr {\n border-bottom-width: 2px;\n line-height: 1.5;\n font-weight: 500;\n color: $dark-text-color;\n }\n\n th,\n td {\n padding: 8px;\n align-self: start;\n align-items: start;\n word-break: break-all;\n\n &.nowrap {\n width: 25%;\n position: relative;\n\n &::before {\n content: ' ';\n visibility: hidden;\n }\n\n span {\n position: absolute;\n left: 8px;\n right: 8px;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n }\n }\n }\n\n & > :first-child {\n margin-top: 0;\n }\n}\n\n.information-board {\n background: darken($ui-base-color, 4%);\n padding: 20px 0;\n\n .container-alt {\n position: relative;\n padding-right: 280px + 15px;\n }\n\n &__sections {\n display: flex;\n justify-content: space-between;\n flex-wrap: wrap;\n }\n\n &__section {\n flex: 1 0 0;\n font-family: $font-sans-serif, sans-serif;\n font-size: 16px;\n line-height: 28px;\n color: $primary-text-color;\n text-align: right;\n padding: 10px 15px;\n\n span,\n strong {\n display: block;\n }\n\n span {\n &:last-child {\n color: $secondary-text-color;\n }\n }\n\n strong {\n font-family: $font-display, sans-serif;\n font-weight: 500;\n font-size: 32px;\n line-height: 48px;\n }\n\n @media screen and (max-width: $column-breakpoint) {\n text-align: center;\n }\n }\n\n .panel {\n position: absolute;\n width: 280px;\n box-sizing: border-box;\n background: darken($ui-base-color, 8%);\n padding: 20px;\n padding-top: 10px;\n border-radius: 4px 4px 0 0;\n right: 0;\n bottom: -40px;\n\n .panel-header {\n font-family: $font-display, sans-serif;\n font-size: 14px;\n line-height: 24px;\n font-weight: 500;\n color: $darker-text-color;\n padding-bottom: 5px;\n margin-bottom: 15px;\n border-bottom: 1px solid lighten($ui-base-color, 4%);\n text-overflow: ellipsis;\n white-space: nowrap;\n overflow: hidden;\n\n a,\n span {\n font-weight: 400;\n color: darken($darker-text-color, 10%);\n }\n\n a {\n text-decoration: none;\n }\n }\n }\n\n .owner {\n text-align: center;\n\n .avatar {\n width: 80px;\n height: 80px;\n @include avatar-size(80px);\n margin: 0 auto;\n margin-bottom: 15px;\n\n img {\n display: block;\n width: 80px;\n height: 80px;\n border-radius: 48px;\n @include avatar-radius();\n }\n }\n\n .name {\n font-size: 14px;\n\n a {\n display: block;\n color: $primary-text-color;\n text-decoration: none;\n\n &:hover {\n .display_name {\n text-decoration: underline;\n }\n }\n }\n\n .username {\n display: block;\n color: $darker-text-color;\n }\n }\n }\n}\n\n.landing-page {\n p,\n li {\n font-family: $font-sans-serif, sans-serif;\n font-size: 16px;\n font-weight: 400;\n font-size: 16px;\n line-height: 30px;\n margin-bottom: 12px;\n color: $darker-text-color;\n\n a {\n color: $highlight-text-color;\n text-decoration: underline;\n }\n }\n\n em {\n display: inline;\n margin: 0;\n padding: 0;\n font-weight: 700;\n background: transparent;\n font-family: inherit;\n font-size: inherit;\n line-height: inherit;\n color: lighten($darker-text-color, 10%);\n }\n\n h1 {\n font-family: $font-display, sans-serif;\n font-size: 26px;\n line-height: 30px;\n font-weight: 500;\n margin-bottom: 20px;\n color: $secondary-text-color;\n\n small {\n font-family: $font-sans-serif, sans-serif;\n display: block;\n font-size: 18px;\n font-weight: 400;\n color: lighten($darker-text-color, 10%);\n }\n }\n\n h2 {\n font-family: $font-display, sans-serif;\n font-size: 22px;\n line-height: 26px;\n font-weight: 500;\n margin-bottom: 20px;\n color: $secondary-text-color;\n }\n\n h3 {\n font-family: $font-display, sans-serif;\n font-size: 18px;\n line-height: 24px;\n font-weight: 500;\n margin-bottom: 20px;\n color: $secondary-text-color;\n }\n\n h4 {\n font-family: $font-display, sans-serif;\n font-size: 16px;\n line-height: 24px;\n font-weight: 500;\n margin-bottom: 20px;\n color: $secondary-text-color;\n }\n\n h5 {\n font-family: $font-display, sans-serif;\n font-size: 14px;\n line-height: 24px;\n font-weight: 500;\n margin-bottom: 20px;\n color: $secondary-text-color;\n }\n\n h6 {\n font-family: $font-display, sans-serif;\n font-size: 12px;\n line-height: 24px;\n font-weight: 500;\n margin-bottom: 20px;\n color: $secondary-text-color;\n }\n\n ul,\n ol {\n margin-left: 20px;\n\n &[type='a'] {\n list-style-type: lower-alpha;\n }\n\n &[type='i'] {\n list-style-type: lower-roman;\n }\n }\n\n ul {\n list-style: disc;\n }\n\n ol {\n list-style: decimal;\n }\n\n li > ol,\n li > ul {\n margin-top: 6px;\n }\n\n hr {\n width: 100%;\n height: 0;\n border: 0;\n border-bottom: 1px solid rgba($ui-base-lighter-color, .6);\n margin: 20px 0;\n\n &.spacer {\n height: 1px;\n border: 0;\n }\n }\n\n &__information,\n &__forms {\n padding: 20px;\n }\n\n &__call-to-action {\n background: $ui-base-color;\n border-radius: 4px;\n padding: 25px 40px;\n overflow: hidden;\n box-sizing: border-box;\n\n .row {\n width: 100%;\n display: flex;\n flex-direction: row-reverse;\n flex-wrap: nowrap;\n justify-content: space-between;\n align-items: center;\n }\n\n .row__information-board {\n display: flex;\n justify-content: flex-end;\n align-items: flex-end;\n\n .information-board__section {\n flex: 1 0 auto;\n padding: 0 10px;\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n width: 100%;\n justify-content: space-between;\n }\n }\n\n .row__mascot {\n flex: 1;\n margin: 10px -50px 0 0;\n\n @media screen and (max-width: $no-gap-breakpoint) {\n display: none;\n }\n }\n }\n\n &__logo {\n margin-right: 20px;\n\n img {\n height: 50px;\n width: auto;\n mix-blend-mode: lighten;\n }\n }\n\n &__information {\n padding: 45px 40px;\n margin-bottom: 10px;\n\n &:last-child {\n margin-bottom: 0;\n }\n\n strong {\n font-weight: 500;\n color: lighten($darker-text-color, 10%);\n }\n\n .account {\n border-bottom: 0;\n padding: 0;\n\n &__display-name {\n align-items: center;\n display: flex;\n margin-right: 5px;\n }\n\n div.account__display-name {\n &:hover {\n .display-name strong {\n text-decoration: none;\n }\n }\n\n .account__avatar {\n cursor: default;\n }\n }\n\n &__avatar-wrapper {\n margin-left: 0;\n flex: 0 0 auto;\n }\n\n &__avatar {\n width: 44px;\n height: 44px;\n background-size: 44px 44px;\n @include avatar-size(44px);\n }\n\n .display-name {\n font-size: 15px;\n\n &__account {\n font-size: 14px;\n }\n }\n }\n\n @media screen and (max-width: $small-breakpoint) {\n .contact {\n margin-top: 30px;\n }\n }\n\n @media screen and (max-width: $column-breakpoint) {\n padding: 25px 20px;\n }\n }\n\n &__information,\n &__forms,\n #mastodon-timeline {\n box-sizing: border-box;\n background: $ui-base-color;\n border-radius: 4px;\n box-shadow: 0 0 6px rgba($black, 0.1);\n }\n\n &__mascot {\n height: 104px;\n position: relative;\n left: -40px;\n bottom: 25px;\n\n img {\n height: 190px;\n width: auto;\n }\n }\n\n &__short-description {\n .row {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n margin-bottom: 40px;\n }\n\n @media screen and (max-width: $column-breakpoint) {\n .row {\n margin-bottom: 20px;\n }\n }\n\n p a {\n color: $secondary-text-color;\n }\n\n h1 {\n font-weight: 500;\n color: $primary-text-color;\n margin-bottom: 0;\n\n small {\n color: $darker-text-color;\n\n span {\n color: $secondary-text-color;\n }\n }\n }\n\n p:last-child {\n margin-bottom: 0;\n }\n }\n\n &__hero {\n margin-bottom: 10px;\n\n img {\n display: block;\n margin: 0;\n max-width: 100%;\n height: auto;\n border-radius: 4px;\n }\n }\n\n @media screen and (max-width: 840px) {\n .information-board {\n .container-alt {\n padding-right: 20px;\n }\n\n .panel {\n position: static;\n margin-top: 20px;\n width: 100%;\n border-radius: 4px;\n\n .panel-header {\n text-align: center;\n }\n }\n }\n }\n\n @media screen and (max-width: 675px) {\n .header-wrapper {\n padding-top: 0;\n\n &.compact {\n padding-bottom: 0;\n }\n\n &.compact .hero .heading {\n text-align: initial;\n }\n }\n\n .header .container-alt,\n .features .container-alt {\n display: block;\n }\n }\n\n .cta {\n margin: 20px;\n }\n}\n\n.landing {\n margin-bottom: 100px;\n\n @media screen and (max-width: 738px) {\n margin-bottom: 0;\n }\n\n &__brand {\n display: flex;\n justify-content: center;\n align-items: center;\n padding: 50px;\n\n svg {\n fill: $primary-text-color;\n height: 52px;\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n padding: 0;\n margin-bottom: 30px;\n }\n }\n\n .directory {\n margin-top: 30px;\n background: transparent;\n box-shadow: none;\n border-radius: 0;\n }\n\n .hero-widget {\n margin-top: 30px;\n margin-bottom: 0;\n\n h4 {\n padding: 10px;\n text-transform: uppercase;\n font-weight: 700;\n font-size: 13px;\n color: $darker-text-color;\n }\n\n &__text {\n border-radius: 0;\n padding-bottom: 0;\n }\n\n &__footer {\n background: $ui-base-color;\n padding: 10px;\n border-radius: 0 0 4px 4px;\n display: flex;\n\n &__column {\n flex: 1 1 50%;\n }\n }\n\n .account {\n padding: 10px 0;\n border-bottom: 0;\n\n .account__display-name {\n display: flex;\n align-items: center;\n }\n\n .account__avatar {\n width: 44px;\n height: 44px;\n background-size: 44px 44px;\n }\n }\n\n &__counter {\n padding: 10px;\n\n strong {\n font-family: $font-display, sans-serif;\n font-size: 15px;\n font-weight: 700;\n display: block;\n }\n\n span {\n font-size: 14px;\n color: $darker-text-color;\n }\n }\n }\n\n .simple_form .user_agreement .label_input > label {\n font-weight: 400;\n color: $darker-text-color;\n }\n\n .simple_form p.lead {\n color: $darker-text-color;\n font-size: 15px;\n line-height: 20px;\n font-weight: 400;\n margin-bottom: 25px;\n }\n\n &__grid {\n max-width: 960px;\n margin: 0 auto;\n display: grid;\n grid-template-columns: minmax(0, 50%) minmax(0, 50%);\n grid-gap: 30px;\n\n @media screen and (max-width: 738px) {\n grid-template-columns: minmax(0, 100%);\n grid-gap: 10px;\n\n &__column-login {\n grid-row: 1;\n display: flex;\n flex-direction: column;\n\n .box-widget {\n order: 2;\n flex: 0 0 auto;\n }\n\n .hero-widget {\n margin-top: 0;\n margin-bottom: 10px;\n order: 1;\n flex: 0 0 auto;\n }\n }\n\n &__column-registration {\n grid-row: 2;\n }\n\n .directory {\n margin-top: 10px;\n }\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n grid-gap: 0;\n\n .hero-widget {\n display: block;\n margin-bottom: 0;\n box-shadow: none;\n\n &__img,\n &__img img,\n &__footer {\n border-radius: 0;\n }\n }\n\n .hero-widget,\n .box-widget,\n .directory__tag {\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n }\n\n .directory {\n margin-top: 0;\n\n &__tag {\n margin-bottom: 0;\n\n & > a,\n & > div {\n border-radius: 0;\n box-shadow: none;\n }\n\n &:last-child {\n border-bottom: 0;\n }\n }\n }\n }\n }\n}\n\n.brand {\n position: relative;\n text-decoration: none;\n}\n\n.brand__tagline {\n display: block;\n position: absolute;\n bottom: -10px;\n left: 50px;\n width: 300px;\n color: $ui-primary-color;\n text-decoration: none;\n font-size: 14px;\n\n @media screen and (max-width: $no-gap-breakpoint) {\n position: static;\n width: auto;\n margin-top: 20px;\n color: $dark-text-color;\n }\n}\n\n",".table {\n width: 100%;\n max-width: 100%;\n border-spacing: 0;\n border-collapse: collapse;\n\n th,\n td {\n padding: 8px;\n line-height: 18px;\n vertical-align: top;\n border-top: 1px solid $ui-base-color;\n text-align: left;\n background: darken($ui-base-color, 4%);\n }\n\n & > thead > tr > th {\n vertical-align: bottom;\n border-bottom: 2px solid $ui-base-color;\n border-top: 0;\n font-weight: 500;\n }\n\n & > tbody > tr > th {\n font-weight: 500;\n }\n\n & > tbody > tr:nth-child(odd) > td,\n & > tbody > tr:nth-child(odd) > th {\n background: $ui-base-color;\n }\n\n a {\n color: $highlight-text-color;\n text-decoration: underline;\n\n &:hover {\n text-decoration: none;\n }\n }\n\n strong {\n font-weight: 500;\n\n @each $lang in $cjk-langs {\n &:lang(#{$lang}) {\n font-weight: 700;\n }\n }\n }\n\n &.inline-table {\n & > tbody > tr:nth-child(odd) {\n & > td,\n & > th {\n background: transparent;\n }\n }\n\n & > tbody > tr:first-child {\n & > td,\n & > th {\n border-top: 0;\n }\n }\n }\n\n &.batch-table {\n & > thead > tr > th {\n background: $ui-base-color;\n border-top: 1px solid darken($ui-base-color, 8%);\n border-bottom: 1px solid darken($ui-base-color, 8%);\n\n &:first-child {\n border-radius: 4px 0 0;\n border-left: 1px solid darken($ui-base-color, 8%);\n }\n\n &:last-child {\n border-radius: 0 4px 0 0;\n border-right: 1px solid darken($ui-base-color, 8%);\n }\n }\n }\n\n &--invites tbody td {\n vertical-align: middle;\n }\n}\n\n.table-wrapper {\n overflow: auto;\n margin-bottom: 20px;\n}\n\nsamp {\n font-family: $font-monospace, monospace;\n}\n\nbutton.table-action-link {\n background: transparent;\n border: 0;\n font: inherit;\n}\n\nbutton.table-action-link,\na.table-action-link {\n text-decoration: none;\n display: inline-block;\n margin-right: 5px;\n padding: 0 10px;\n color: $darker-text-color;\n font-weight: 500;\n\n &:hover {\n color: $primary-text-color;\n }\n\n i.fa {\n font-weight: 400;\n margin-right: 5px;\n }\n\n &:first-child {\n padding-left: 0;\n }\n}\n\n.batch-table {\n &__toolbar,\n &__row {\n display: flex;\n\n &__select {\n box-sizing: border-box;\n padding: 8px 16px;\n cursor: pointer;\n min-height: 100%;\n\n input {\n margin-top: 8px;\n }\n\n &--aligned {\n display: flex;\n align-items: center;\n\n input {\n margin-top: 0;\n }\n }\n }\n\n &__actions,\n &__content {\n padding: 8px 0;\n padding-right: 16px;\n flex: 1 1 auto;\n }\n }\n\n &__toolbar {\n border: 1px solid darken($ui-base-color, 8%);\n background: $ui-base-color;\n border-radius: 4px 0 0;\n height: 47px;\n align-items: center;\n\n &__actions {\n text-align: right;\n padding-right: 16px - 5px;\n }\n }\n\n &__form {\n padding: 16px;\n border: 1px solid darken($ui-base-color, 8%);\n border-top: 0;\n background: $ui-base-color;\n\n .fields-row {\n padding-top: 0;\n margin-bottom: 0;\n }\n }\n\n &__row {\n border: 1px solid darken($ui-base-color, 8%);\n border-top: 0;\n background: darken($ui-base-color, 4%);\n\n @media screen and (max-width: $no-gap-breakpoint) {\n .optional &:first-child {\n border-top: 1px solid darken($ui-base-color, 8%);\n }\n }\n\n &:hover {\n background: darken($ui-base-color, 2%);\n }\n\n &:nth-child(even) {\n background: $ui-base-color;\n\n &:hover {\n background: lighten($ui-base-color, 2%);\n }\n }\n\n &__content {\n padding-top: 12px;\n padding-bottom: 16px;\n\n &--unpadded {\n padding: 0;\n }\n\n &--with-image {\n display: flex;\n align-items: center;\n }\n\n &__image {\n flex: 0 0 auto;\n display: flex;\n justify-content: center;\n align-items: center;\n margin-right: 10px;\n\n .emojione {\n width: 32px;\n height: 32px;\n }\n }\n\n &__text {\n flex: 1 1 auto;\n }\n\n &__extra {\n flex: 0 0 auto;\n text-align: right;\n color: $darker-text-color;\n font-weight: 500;\n }\n }\n\n .directory__tag {\n margin: 0;\n width: 100%;\n\n a {\n background: transparent;\n border-radius: 0;\n }\n }\n }\n\n &.optional .batch-table__toolbar,\n &.optional .batch-table__row__select {\n @media screen and (max-width: $no-gap-breakpoint) {\n display: none;\n }\n }\n\n .status__content {\n padding-top: 0;\n\n strong {\n font-weight: 700;\n }\n }\n\n .nothing-here {\n border: 1px solid darken($ui-base-color, 8%);\n border-top: 0;\n box-shadow: none;\n\n @media screen and (max-width: $no-gap-breakpoint) {\n border-top: 1px solid darken($ui-base-color, 8%);\n }\n }\n\n @media screen and (max-width: 870px) {\n .accounts-table tbody td.optional {\n display: none;\n }\n }\n}\n","$no-columns-breakpoint: 600px;\n$sidebar-width: 240px;\n$content-width: 840px;\n\n.admin-wrapper {\n display: flex;\n justify-content: center;\n width: 100%;\n min-height: 100vh;\n\n .sidebar-wrapper {\n min-height: 100vh;\n overflow: hidden;\n pointer-events: none;\n flex: 1 1 auto;\n\n &__inner {\n display: flex;\n justify-content: flex-end;\n background: $ui-base-color;\n height: 100%;\n }\n }\n\n .sidebar {\n width: $sidebar-width;\n padding: 0;\n pointer-events: auto;\n\n &__toggle {\n display: none;\n background: lighten($ui-base-color, 8%);\n height: 48px;\n\n &__logo {\n flex: 1 1 auto;\n\n a {\n display: inline-block;\n padding: 15px;\n }\n\n svg {\n fill: $primary-text-color;\n height: 20px;\n position: relative;\n bottom: -2px;\n }\n }\n\n &__icon {\n display: block;\n color: $darker-text-color;\n text-decoration: none;\n flex: 0 0 auto;\n font-size: 20px;\n padding: 15px;\n }\n\n a {\n &:hover,\n &:focus,\n &:active {\n background: lighten($ui-base-color, 12%);\n }\n }\n }\n\n .logo {\n display: block;\n margin: 40px auto;\n width: 100px;\n height: 100px;\n }\n\n @media screen and (max-width: $no-columns-breakpoint) {\n & > a:first-child {\n display: none;\n }\n }\n\n ul {\n list-style: none;\n border-radius: 4px 0 0 4px;\n overflow: hidden;\n margin-bottom: 20px;\n\n @media screen and (max-width: $no-columns-breakpoint) {\n margin-bottom: 0;\n }\n\n a {\n display: block;\n padding: 15px;\n color: $darker-text-color;\n text-decoration: none;\n transition: all 200ms linear;\n transition-property: color, background-color;\n border-radius: 4px 0 0 4px;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n\n i.fa {\n margin-right: 5px;\n }\n\n &:hover {\n color: $primary-text-color;\n background-color: darken($ui-base-color, 5%);\n transition: all 100ms linear;\n transition-property: color, background-color;\n }\n\n &.selected {\n background: darken($ui-base-color, 2%);\n border-radius: 4px 0 0;\n }\n }\n\n ul {\n background: darken($ui-base-color, 4%);\n border-radius: 0 0 0 4px;\n margin: 0;\n\n a {\n border: 0;\n padding: 15px 35px;\n }\n }\n\n .simple-navigation-active-leaf a {\n color: $primary-text-color;\n background-color: $ui-highlight-color;\n border-bottom: 0;\n border-radius: 0;\n\n &:hover {\n background-color: lighten($ui-highlight-color, 5%);\n }\n }\n }\n\n & > ul > .simple-navigation-active-leaf a {\n border-radius: 4px 0 0 4px;\n }\n }\n\n .content-wrapper {\n box-sizing: border-box;\n width: 100%;\n max-width: $content-width;\n flex: 1 1 auto;\n }\n\n @media screen and (max-width: $content-width + $sidebar-width) {\n .sidebar-wrapper--empty {\n display: none;\n }\n\n .sidebar-wrapper {\n width: $sidebar-width;\n flex: 0 0 auto;\n }\n }\n\n @media screen and (max-width: $no-columns-breakpoint) {\n .sidebar-wrapper {\n width: 100%;\n }\n }\n\n .content {\n padding: 20px 15px;\n padding-top: 60px;\n padding-left: 25px;\n\n @media screen and (max-width: $no-columns-breakpoint) {\n max-width: none;\n padding: 15px;\n padding-top: 30px;\n }\n\n &-heading {\n display: flex;\n\n padding-bottom: 40px;\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n\n margin: -15px -15px 40px 0;\n\n flex-wrap: wrap;\n align-items: center;\n justify-content: space-between;\n\n & > * {\n margin-top: 15px;\n margin-right: 15px;\n }\n\n &-actions {\n display: inline-flex;\n\n & > :not(:first-child) {\n margin-left: 5px;\n }\n }\n\n @media screen and (max-width: $no-columns-breakpoint) {\n border-bottom: 0;\n padding-bottom: 0;\n }\n }\n\n h2 {\n color: $secondary-text-color;\n font-size: 24px;\n line-height: 28px;\n font-weight: 400;\n\n @media screen and (max-width: $no-columns-breakpoint) {\n font-weight: 700;\n }\n }\n\n h3 {\n color: $secondary-text-color;\n font-size: 20px;\n line-height: 28px;\n font-weight: 400;\n margin-bottom: 30px;\n }\n\n h4 {\n text-transform: uppercase;\n font-size: 13px;\n font-weight: 700;\n color: $darker-text-color;\n padding-bottom: 8px;\n margin-bottom: 8px;\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n }\n\n h6 {\n font-size: 16px;\n color: $secondary-text-color;\n line-height: 28px;\n font-weight: 500;\n }\n\n .fields-group h6 {\n color: $primary-text-color;\n font-weight: 500;\n }\n\n .directory__tag > a,\n .directory__tag > div {\n box-shadow: none;\n }\n\n .directory__tag .table-action-link .fa {\n color: inherit;\n }\n\n .directory__tag h4 {\n font-size: 18px;\n font-weight: 700;\n color: $primary-text-color;\n text-transform: none;\n padding-bottom: 0;\n margin-bottom: 0;\n border-bottom: none;\n }\n\n & > p {\n font-size: 14px;\n line-height: 21px;\n color: $secondary-text-color;\n margin-bottom: 20px;\n\n strong {\n color: $primary-text-color;\n font-weight: 500;\n\n @each $lang in $cjk-langs {\n &:lang(#{$lang}) {\n font-weight: 700;\n }\n }\n }\n }\n\n hr {\n width: 100%;\n height: 0;\n border: 0;\n border-bottom: 1px solid rgba($ui-base-lighter-color, .6);\n margin: 20px 0;\n\n &.spacer {\n height: 1px;\n border: 0;\n }\n }\n }\n\n @media screen and (max-width: $no-columns-breakpoint) {\n display: block;\n\n .sidebar-wrapper {\n min-height: 0;\n }\n\n .sidebar {\n width: 100%;\n padding: 0;\n height: auto;\n\n &__toggle {\n display: flex;\n }\n\n & > ul {\n display: none;\n }\n\n ul a,\n ul ul a {\n border-radius: 0;\n border-bottom: 1px solid lighten($ui-base-color, 4%);\n transition: none;\n\n &:hover {\n transition: none;\n }\n }\n\n ul ul {\n border-radius: 0;\n }\n\n ul .simple-navigation-active-leaf a {\n border-bottom-color: $ui-highlight-color;\n }\n }\n }\n}\n\nhr.spacer {\n width: 100%;\n border: 0;\n margin: 20px 0;\n height: 1px;\n}\n\nbody,\n.admin-wrapper .content {\n .muted-hint {\n color: $darker-text-color;\n\n a {\n color: $highlight-text-color;\n }\n }\n\n .positive-hint {\n color: $valid-value-color;\n font-weight: 500;\n }\n\n .negative-hint {\n color: $error-value-color;\n font-weight: 500;\n }\n\n .neutral-hint {\n color: $dark-text-color;\n font-weight: 500;\n }\n\n .warning-hint {\n color: $gold-star;\n font-weight: 500;\n }\n}\n\n.filters {\n display: flex;\n flex-wrap: wrap;\n\n .filter-subset {\n flex: 0 0 auto;\n margin: 0 40px 20px 0;\n\n &:last-child {\n margin-bottom: 30px;\n }\n\n ul {\n margin-top: 5px;\n list-style: none;\n\n li {\n display: inline-block;\n margin-right: 5px;\n }\n }\n\n strong {\n font-weight: 500;\n text-transform: uppercase;\n font-size: 12px;\n\n @each $lang in $cjk-langs {\n &:lang(#{$lang}) {\n font-weight: 700;\n }\n }\n }\n\n &--with-select strong {\n display: block;\n margin-bottom: 10px;\n }\n\n a {\n display: inline-block;\n color: $darker-text-color;\n text-decoration: none;\n text-transform: uppercase;\n font-size: 12px;\n font-weight: 500;\n border-bottom: 2px solid $ui-base-color;\n\n &:hover {\n color: $primary-text-color;\n border-bottom: 2px solid lighten($ui-base-color, 5%);\n }\n\n &.selected {\n color: $highlight-text-color;\n border-bottom: 2px solid $ui-highlight-color;\n }\n }\n }\n}\n\n.flavour-screen {\n display: block;\n margin: 10px auto;\n max-width: 100%;\n}\n\n.flavour-description {\n display: block;\n font-size: 16px;\n margin: 10px 0;\n\n & > p {\n margin: 10px 0;\n }\n}\n\n.report-accounts {\n display: flex;\n flex-wrap: wrap;\n margin-bottom: 20px;\n}\n\n.report-accounts__item {\n display: flex;\n flex: 250px;\n flex-direction: column;\n margin: 0 5px;\n\n & > strong {\n display: block;\n margin: 0 0 10px -5px;\n font-weight: 500;\n font-size: 14px;\n line-height: 18px;\n color: $secondary-text-color;\n\n @each $lang in $cjk-langs {\n &:lang(#{$lang}) {\n font-weight: 700;\n }\n }\n }\n\n .account-card {\n flex: 1 1 auto;\n }\n}\n\n.report-status,\n.account-status {\n display: flex;\n margin-bottom: 10px;\n\n .activity-stream {\n flex: 2 0 0;\n margin-right: 20px;\n max-width: calc(100% - 60px);\n\n .entry {\n border-radius: 4px;\n }\n }\n}\n\n.report-status__actions,\n.account-status__actions {\n flex: 0 0 auto;\n display: flex;\n flex-direction: column;\n\n .icon-button {\n font-size: 24px;\n width: 24px;\n text-align: center;\n margin-bottom: 10px;\n }\n}\n\n.simple_form.new_report_note,\n.simple_form.new_account_moderation_note {\n max-width: 100%;\n}\n\n.batch-form-box {\n display: flex;\n flex-wrap: wrap;\n margin-bottom: 5px;\n\n #form_status_batch_action {\n margin: 0 5px 5px 0;\n font-size: 14px;\n }\n\n input.button {\n margin: 0 5px 5px 0;\n }\n\n .media-spoiler-toggle-buttons {\n margin-left: auto;\n\n .button {\n overflow: visible;\n margin: 0 0 5px 5px;\n float: right;\n }\n }\n}\n\n.back-link {\n margin-bottom: 10px;\n font-size: 14px;\n\n a {\n color: $highlight-text-color;\n text-decoration: none;\n\n &:hover {\n text-decoration: underline;\n }\n }\n}\n\n.spacer {\n flex: 1 1 auto;\n}\n\n.log-entry {\n line-height: 20px;\n padding: 15px 0;\n background: $ui-base-color;\n border-bottom: 1px solid lighten($ui-base-color, 4%);\n\n &:last-child {\n border-bottom: 0;\n }\n\n &__header {\n display: flex;\n justify-content: flex-start;\n align-items: center;\n color: $darker-text-color;\n font-size: 14px;\n padding: 0 10px;\n }\n\n &__avatar {\n margin-right: 10px;\n\n .avatar {\n display: block;\n margin: 0;\n border-radius: 50%;\n width: 40px;\n height: 40px;\n }\n }\n\n &__content {\n max-width: calc(100% - 90px);\n }\n\n &__title {\n word-wrap: break-word;\n }\n\n &__timestamp {\n color: $dark-text-color;\n }\n\n a,\n .username,\n .target {\n color: $secondary-text-color;\n text-decoration: none;\n font-weight: 500;\n }\n}\n\na.name-tag,\n.name-tag,\na.inline-name-tag,\n.inline-name-tag {\n text-decoration: none;\n color: $secondary-text-color;\n\n .username {\n font-weight: 500;\n }\n\n &.suspended {\n .username {\n text-decoration: line-through;\n color: lighten($error-red, 12%);\n }\n\n .avatar {\n filter: grayscale(100%);\n opacity: 0.8;\n }\n }\n}\n\na.name-tag,\n.name-tag {\n display: flex;\n align-items: center;\n\n .avatar {\n display: block;\n margin: 0;\n margin-right: 5px;\n border-radius: 50%;\n }\n\n &.suspended {\n .avatar {\n filter: grayscale(100%);\n opacity: 0.8;\n }\n }\n}\n\n.speech-bubble {\n margin-bottom: 20px;\n border-left: 4px solid $ui-highlight-color;\n\n &.positive {\n border-left-color: $success-green;\n }\n\n &.negative {\n border-left-color: lighten($error-red, 12%);\n }\n\n &.warning {\n border-left-color: $gold-star;\n }\n\n &__bubble {\n padding: 16px;\n padding-left: 14px;\n font-size: 15px;\n line-height: 20px;\n border-radius: 4px 4px 4px 0;\n position: relative;\n font-weight: 500;\n\n a {\n color: $darker-text-color;\n }\n }\n\n &__owner {\n padding: 8px;\n padding-left: 12px;\n }\n\n time {\n color: $dark-text-color;\n }\n}\n\n.report-card {\n background: $ui-base-color;\n border-radius: 4px;\n margin-bottom: 20px;\n\n &__profile {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 15px;\n\n .account {\n padding: 0;\n border: 0;\n\n &__avatar-wrapper {\n margin-left: 0;\n }\n }\n\n &__stats {\n flex: 0 0 auto;\n font-weight: 500;\n color: $darker-text-color;\n text-transform: uppercase;\n text-align: right;\n\n a {\n color: inherit;\n text-decoration: none;\n\n &:focus,\n &:hover,\n &:active {\n color: lighten($darker-text-color, 8%);\n }\n }\n\n .red {\n color: $error-value-color;\n }\n }\n }\n\n &__summary {\n &__item {\n display: flex;\n justify-content: flex-start;\n border-top: 1px solid darken($ui-base-color, 4%);\n\n &:hover {\n background: lighten($ui-base-color, 2%);\n }\n\n &__reported-by,\n &__assigned {\n padding: 15px;\n flex: 0 0 auto;\n box-sizing: border-box;\n width: 150px;\n color: $darker-text-color;\n\n &,\n .username {\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n }\n\n &__content {\n flex: 1 1 auto;\n max-width: calc(100% - 300px);\n\n &__icon {\n color: $dark-text-color;\n margin-right: 4px;\n font-weight: 500;\n }\n }\n\n &__content a {\n display: block;\n box-sizing: border-box;\n width: 100%;\n padding: 15px;\n text-decoration: none;\n color: $darker-text-color;\n }\n }\n }\n}\n\n.one-line {\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n.ellipsized-ip {\n display: inline-block;\n max-width: 120px;\n overflow: hidden;\n text-overflow: ellipsis;\n vertical-align: middle;\n}\n\n.admin-account-bio {\n display: flex;\n flex-wrap: wrap;\n margin: 0 -5px;\n margin-top: 20px;\n\n > div {\n box-sizing: border-box;\n padding: 0 5px;\n margin-bottom: 10px;\n flex: 1 0 50%;\n }\n\n .account__header__fields,\n .account__header__content {\n background: lighten($ui-base-color, 8%);\n border-radius: 4px;\n height: 100%;\n }\n\n .account__header__fields {\n margin: 0;\n border: 0;\n\n a {\n color: lighten($ui-highlight-color, 8%);\n }\n\n dl:first-child .verified {\n border-radius: 0 4px 0 0;\n }\n\n .verified a {\n color: $valid-value-color;\n }\n }\n\n .account__header__content {\n box-sizing: border-box;\n padding: 20px;\n color: $primary-text-color;\n }\n}\n\n.center-text {\n text-align: center;\n}\n\n.announcements-list {\n border: 1px solid lighten($ui-base-color, 4%);\n border-radius: 4px;\n\n &__item {\n padding: 15px 0;\n background: $ui-base-color;\n border-bottom: 1px solid lighten($ui-base-color, 4%);\n\n &__title {\n padding: 0 15px;\n display: block;\n font-weight: 500;\n font-size: 18px;\n line-height: 1.5;\n color: $secondary-text-color;\n text-decoration: none;\n margin-bottom: 10px;\n\n &:hover,\n &:focus,\n &:active {\n color: $primary-text-color;\n }\n }\n\n &__meta {\n padding: 0 15px;\n color: $dark-text-color;\n }\n\n &__action-bar {\n display: flex;\n justify-content: space-between;\n align-items: center;\n }\n\n &:last-child {\n border-bottom: 0;\n }\n }\n}\n","$emojis-requiring-outlines: '8ball' 'ant' 'back' 'black_circle' 'black_heart' 'black_large_square' 'black_medium_small_square' 'black_medium_square' 'black_nib' 'black_small_square' 'bomb' 'bowling' 'bust_in_silhouette' 'busts_in_silhouette' 'camera' 'camera_with_flash' 'clubs' 'copyright' 'curly_loop' 'currency_exchange' 'dark_sunglasses' 'eight_pointed_black_star' 'electric_plug' 'end' 'female-guard' 'film_projector' 'fried_egg' 'gorilla' 'guardsman' 'heavy_check_mark' 'heavy_division_sign' 'heavy_dollar_sign' 'heavy_minus_sign' 'heavy_multiplication_x' 'heavy_plus_sign' 'hocho' 'hole' 'joystick' 'kaaba' 'lower_left_ballpoint_pen' 'lower_left_fountain_pen' 'male-guard' 'microphone' 'mortar_board' 'movie_camera' 'musical_score' 'on' 'registered' 'soon' 'spades' 'speaking_head_in_silhouette' 'spider' 'telephone_receiver' 'tm' 'top' 'tophat' 'turkey' 'vhs' 'video_camera' 'video_game' 'water_buffalo' 'waving_black_flag' 'wavy_dash' !default;\n\n%emoji-outline {\n filter: drop-shadow(1px 1px 0 $primary-text-color) drop-shadow(-1px 1px 0 $primary-text-color) drop-shadow(1px -1px 0 $primary-text-color) drop-shadow(-1px -1px 0 $primary-text-color);\n}\n\n.emojione {\n @each $emoji in $emojis-requiring-outlines {\n &[title=':#{$emoji}:'] {\n @extend %emoji-outline;\n }\n }\n}\n\n.hicolor-privacy-icons {\n .status__visibility-icon.fa-globe,\n .composer--options--dropdown--content--item .fa-globe {\n color: #1976D2;\n }\n\n .status__visibility-icon.fa-unlock,\n .composer--options--dropdown--content--item .fa-unlock {\n color: #388E3C;\n }\n\n .status__visibility-icon.fa-lock,\n .composer--options--dropdown--content--item .fa-lock {\n color: #FFA000;\n }\n\n .status__visibility-icon.fa-envelope,\n .composer--options--dropdown--content--item .fa-envelope {\n color: #D32F2F;\n }\n}\n","body.rtl {\n direction: rtl;\n\n .column-header > button {\n text-align: right;\n padding-left: 0;\n padding-right: 15px;\n }\n\n .radio-button__input {\n margin-right: 0;\n margin-left: 10px;\n }\n\n .directory__card__bar .display-name {\n margin-left: 0;\n margin-right: 15px;\n }\n\n .display-name {\n text-align: right;\n }\n\n .notification__message {\n margin-left: 0;\n margin-right: 68px;\n }\n\n .drawer__inner__mastodon > img {\n transform: scaleX(-1);\n }\n\n .notification__favourite-icon-wrapper {\n left: auto;\n right: -26px;\n }\n\n .landing-page__logo {\n margin-right: 0;\n margin-left: 20px;\n }\n\n .landing-page .features-list .features-list__row .visual {\n margin-left: 0;\n margin-right: 15px;\n }\n\n .column-link__icon,\n .column-header__icon {\n margin-right: 0;\n margin-left: 5px;\n }\n\n .compose-form .compose-form__buttons-wrapper .character-counter__wrapper {\n margin-right: 0;\n margin-left: 4px;\n }\n\n .composer--publisher {\n text-align: left;\n }\n\n .boost-modal__status-time,\n .favourite-modal__status-time {\n float: left;\n }\n\n .navigation-bar__profile {\n margin-left: 0;\n margin-right: 8px;\n }\n\n .search__input {\n padding-right: 10px;\n padding-left: 30px;\n }\n\n .search__icon .fa {\n right: auto;\n left: 10px;\n }\n\n .columns-area {\n direction: rtl;\n }\n\n .column-header__buttons {\n left: 0;\n right: auto;\n margin-left: 0;\n margin-right: -15px;\n }\n\n .column-inline-form .icon-button {\n margin-left: 0;\n margin-right: 5px;\n }\n\n .column-header__links .text-btn {\n margin-left: 10px;\n margin-right: 0;\n }\n\n .account__avatar-wrapper {\n float: right;\n }\n\n .column-header__back-button {\n padding-left: 5px;\n padding-right: 0;\n }\n\n .column-header__setting-arrows {\n float: left;\n }\n\n .setting-toggle__label {\n margin-left: 0;\n margin-right: 8px;\n }\n\n .setting-meta__label {\n float: left;\n }\n\n .status__avatar {\n margin-left: 10px;\n margin-right: 0;\n\n // Those are used for public pages\n left: auto;\n right: 10px;\n }\n\n .activity-stream .status.light {\n padding-left: 10px;\n padding-right: 68px;\n }\n\n .status__info .status__display-name,\n .activity-stream .status.light .status__display-name {\n padding-left: 25px;\n padding-right: 0;\n }\n\n .activity-stream .pre-header {\n padding-right: 68px;\n padding-left: 0;\n }\n\n .status__prepend {\n margin-left: 0;\n margin-right: 58px;\n }\n\n .status__prepend-icon-wrapper {\n left: auto;\n right: -26px;\n }\n\n .activity-stream .pre-header .pre-header__icon {\n left: auto;\n right: 42px;\n }\n\n .account__avatar-overlay-overlay {\n right: auto;\n left: 0;\n }\n\n .column-back-button--slim-button {\n right: auto;\n left: 0;\n }\n\n .status__relative-time,\n .activity-stream .status.light .status__header .status__meta {\n float: left;\n text-align: left;\n }\n\n .status__action-bar {\n &__counter {\n margin-right: 0;\n margin-left: 11px;\n\n .status__action-bar-button {\n margin-right: 0;\n margin-left: 4px;\n }\n }\n }\n\n .status__action-bar-button {\n float: right;\n margin-right: 0;\n margin-left: 18px;\n }\n\n .status__action-bar-dropdown {\n float: right;\n }\n\n .privacy-dropdown__dropdown {\n margin-left: 0;\n margin-right: 40px;\n }\n\n .privacy-dropdown__option__icon {\n margin-left: 10px;\n margin-right: 0;\n }\n\n .detailed-status__display-name .display-name {\n text-align: right;\n }\n\n .detailed-status__display-avatar {\n margin-right: 0;\n margin-left: 10px;\n float: right;\n }\n\n .detailed-status__favorites,\n .detailed-status__reblogs {\n margin-left: 0;\n margin-right: 6px;\n }\n\n .fa-ul {\n margin-left: 2.14285714em;\n }\n\n .fa-li {\n left: auto;\n right: -2.14285714em;\n }\n\n .admin-wrapper {\n direction: rtl;\n }\n\n .admin-wrapper .sidebar ul a i.fa,\n a.table-action-link i.fa {\n margin-right: 0;\n margin-left: 5px;\n }\n\n .simple_form .check_boxes .checkbox label {\n padding-left: 0;\n padding-right: 25px;\n }\n\n .simple_form .input.with_label.boolean label.checkbox {\n padding-left: 25px;\n padding-right: 0;\n }\n\n .simple_form .check_boxes .checkbox input[type=\"checkbox\"],\n .simple_form .input.boolean input[type=\"checkbox\"] {\n left: auto;\n right: 0;\n }\n\n .simple_form .input.radio_buttons .radio {\n left: auto;\n right: 0;\n }\n\n .simple_form .input.radio_buttons .radio > label {\n padding-right: 28px;\n padding-left: 0;\n }\n\n .simple_form .input-with-append .input input {\n padding-left: 142px;\n padding-right: 0;\n }\n\n .simple_form .input.boolean label.checkbox {\n left: auto;\n right: 0;\n }\n\n .simple_form .input.boolean .label_input,\n .simple_form .input.boolean .hint {\n padding-left: 0;\n padding-right: 28px;\n }\n\n .simple_form .label_input__append {\n right: auto;\n left: 3px;\n\n &::after {\n right: auto;\n left: 0;\n background-image: linear-gradient(to left, rgba(darken($ui-base-color, 10%), 0), darken($ui-base-color, 10%));\n }\n }\n\n .simple_form select {\n background: darken($ui-base-color, 10%) url(\"data:image/svg+xml;utf8,\") no-repeat left 8px center / auto 16px;\n }\n\n .table th,\n .table td {\n text-align: right;\n }\n\n .filters .filter-subset {\n margin-right: 0;\n margin-left: 45px;\n }\n\n .landing-page .header-wrapper .mascot {\n right: 60px;\n left: auto;\n }\n\n .landing-page__call-to-action .row__information-board {\n direction: rtl;\n }\n\n .landing-page .header .hero .floats .float-1 {\n left: -120px;\n right: auto;\n }\n\n .landing-page .header .hero .floats .float-2 {\n left: 210px;\n right: auto;\n }\n\n .landing-page .header .hero .floats .float-3 {\n left: 110px;\n right: auto;\n }\n\n .landing-page .header .links .brand img {\n left: 0;\n }\n\n .landing-page .fa-external-link {\n padding-right: 5px;\n padding-left: 0 !important;\n }\n\n .landing-page .features #mastodon-timeline {\n margin-right: 0;\n margin-left: 30px;\n }\n\n @media screen and (min-width: 631px) {\n .column,\n .drawer {\n padding-left: 5px;\n padding-right: 5px;\n\n &:first-child {\n padding-left: 5px;\n padding-right: 10px;\n }\n }\n\n .columns-area > div {\n .column,\n .drawer {\n padding-left: 5px;\n padding-right: 5px;\n }\n }\n }\n\n .columns-area--mobile .column,\n .columns-area--mobile .drawer {\n padding-left: 0;\n padding-right: 0;\n }\n\n .public-layout {\n .header {\n .nav-button {\n margin-left: 8px;\n margin-right: 0;\n }\n }\n\n .public-account-header__tabs {\n margin-left: 0;\n margin-right: 20px;\n }\n }\n\n .landing-page__information {\n .account__display-name {\n margin-right: 0;\n margin-left: 5px;\n }\n\n .account__avatar-wrapper {\n margin-left: 12px;\n margin-right: 0;\n }\n }\n\n .card__bar .display-name {\n margin-left: 0;\n margin-right: 15px;\n text-align: right;\n }\n\n .fa-chevron-left::before {\n content: \"\\F054\";\n }\n\n .fa-chevron-right::before {\n content: \"\\F053\";\n }\n\n .column-back-button__icon {\n margin-right: 0;\n margin-left: 5px;\n }\n\n .column-header__setting-arrows .column-header__setting-btn:last-child {\n padding-left: 0;\n padding-right: 10px;\n }\n\n .simple_form .input.radio_buttons .radio > label input {\n left: auto;\n right: 0;\n }\n}\n",".dashboard__counters {\n display: flex;\n flex-wrap: wrap;\n margin: 0 -5px;\n margin-bottom: 20px;\n\n & > div {\n box-sizing: border-box;\n flex: 0 0 33.333%;\n padding: 0 5px;\n margin-bottom: 10px;\n\n & > div,\n & > a {\n padding: 20px;\n background: lighten($ui-base-color, 4%);\n border-radius: 4px;\n box-sizing: border-box;\n height: 100%;\n }\n\n & > a {\n text-decoration: none;\n color: inherit;\n display: block;\n\n &:hover,\n &:focus,\n &:active {\n background: lighten($ui-base-color, 8%);\n }\n }\n }\n\n &__num,\n &__text {\n text-align: center;\n font-weight: 500;\n font-size: 24px;\n line-height: 21px;\n color: $primary-text-color;\n font-family: $font-display, sans-serif;\n margin-bottom: 20px;\n line-height: 30px;\n }\n\n &__text {\n font-size: 18px;\n }\n\n &__label {\n font-size: 14px;\n color: $darker-text-color;\n text-align: center;\n font-weight: 500;\n }\n}\n\n.dashboard__widgets {\n display: flex;\n flex-wrap: wrap;\n margin: 0 -5px;\n\n & > div {\n flex: 0 0 33.333%;\n margin-bottom: 20px;\n\n & > div {\n padding: 0 5px;\n }\n }\n\n a:not(.name-tag) {\n color: $ui-secondary-color;\n font-weight: 500;\n text-decoration: none;\n }\n}\n"],"sourceRoot":""} \ No newline at end of file diff --git a/priv/static/packs/flavours/glitch/common.js b/priv/static/packs/flavours/glitch/common.js deleted file mode 100644 index 6535dc828..000000000 Binary files a/priv/static/packs/flavours/glitch/common.js and /dev/null differ diff --git a/priv/static/packs/flavours/glitch/common.js.map b/priv/static/packs/flavours/glitch/common.js.map deleted file mode 100644 index 4090e336c..000000000 Binary files a/priv/static/packs/flavours/glitch/common.js.map and /dev/null differ diff --git a/priv/static/packs/flavours/glitch/embed.js b/priv/static/packs/flavours/glitch/embed.js deleted file mode 100644 index fa84055a4..000000000 Binary files a/priv/static/packs/flavours/glitch/embed.js and /dev/null differ diff --git a/priv/static/packs/flavours/glitch/embed.js.LICENSE.txt b/priv/static/packs/flavours/glitch/embed.js.LICENSE.txt deleted file mode 100644 index 2196b2def..000000000 --- a/priv/static/packs/flavours/glitch/embed.js.LICENSE.txt +++ /dev/null @@ -1,41 +0,0 @@ -/* -object-assign -(c) Sindre Sorhus -@license MIT -*/ - -/** @license React v0.19.0 - * scheduler.production.min.js - * - * Copyright (c) Facebook, Inc. and its affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */ - -/** @license React v16.12.0 - * react-is.production.min.js - * - * Copyright (c) Facebook, Inc. and its affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */ - -/** @license React v16.13.0 - * react-dom.production.min.js - * - * Copyright (c) Facebook, Inc. and its affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */ - -/** @license React v16.13.1 - * react.production.min.js - * - * Copyright (c) Facebook, Inc. and its affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */ diff --git a/priv/static/packs/flavours/glitch/embed.js.map b/priv/static/packs/flavours/glitch/embed.js.map deleted file mode 100644 index 18537f622..000000000 Binary files a/priv/static/packs/flavours/glitch/embed.js.map and /dev/null differ diff --git a/priv/static/packs/flavours/glitch/error.js b/priv/static/packs/flavours/glitch/error.js deleted file mode 100644 index 4b17ae7a4..000000000 Binary files a/priv/static/packs/flavours/glitch/error.js and /dev/null differ diff --git a/priv/static/packs/flavours/glitch/error.js.map b/priv/static/packs/flavours/glitch/error.js.map deleted file mode 100644 index 767bb9551..000000000 Binary files a/priv/static/packs/flavours/glitch/error.js.map and /dev/null differ diff --git a/priv/static/packs/flavours/glitch/home.js b/priv/static/packs/flavours/glitch/home.js deleted file mode 100644 index 030a30c4d..000000000 Binary files a/priv/static/packs/flavours/glitch/home.js and /dev/null differ diff --git a/priv/static/packs/flavours/glitch/home.js.LICENSE.txt b/priv/static/packs/flavours/glitch/home.js.LICENSE.txt deleted file mode 100644 index 41a8734c9..000000000 --- a/priv/static/packs/flavours/glitch/home.js.LICENSE.txt +++ /dev/null @@ -1,202 +0,0 @@ -/* -object-assign -(c) Sindre Sorhus -@license MIT -*/ - -/*! - Copyright (c) 2017 Jed Watson. - Licensed under the MIT License (MIT), see - http://jedwatson.github.io/classnames -*/ - -/*! - * escape-html - * Copyright(c) 2012-2013 TJ Holowaychuk - * Copyright(c) 2015 Andreas Lubbe - * Copyright(c) 2015 Tiancheng "Timothy" Gu - * MIT Licensed - */ - -/*! - * wavesurfer.js 3.3.1 (2020-01-14) - * https://github.com/katspaugh/wavesurfer.js - * @license BSD-3-Clause - */ - -/*! ./ajax */ - -/*! ./drawer */ - -/*! ./drawer.canvasentry */ - -/*! ./drawer.multicanvas */ - -/*! ./extend */ - -/*! ./fetch */ - -/*! ./frame */ - -/*! ./get-id */ - -/*! ./max */ - -/*! ./mediaelement */ - -/*! ./mediaelement-webaudio */ - -/*! ./min */ - -/*! ./observer */ - -/*! ./peakcache */ - -/*! ./prevent-click */ - -/*! ./request-animation-frame */ - -/*! ./style */ - -/*! ./util */ - -/*! ./util/get-id */ - -/*! ./util/style */ - -/*! ./webaudio */ - -/*! debounce */ - -/*! https://mths.be/punycode v1.4.1 by @mathias */ - -/*! no static exports found */ - -/*!***********************!*\ - !*** ./src/drawer.js ***! - \***********************/ - -/*!*************************!*\ - !*** ./src/util/max.js ***! - \*************************/ - -/*!*************************!*\ - !*** ./src/util/min.js ***! - \*************************/ - -/*!*************************!*\ - !*** ./src/webaudio.js ***! - \*************************/ - -/*!**************************!*\ - !*** ./src/peakcache.js ***! - \**************************/ - -/*!**************************!*\ - !*** ./src/util/ajax.js ***! - \**************************/ - -/*!***************************!*\ - !*** ./src/util/fetch.js ***! - \***************************/ - -/*!***************************!*\ - !*** ./src/util/frame.js ***! - \***************************/ - -/*!***************************!*\ - !*** ./src/util/index.js ***! - \***************************/ - -/*!***************************!*\ - !*** ./src/util/style.js ***! - \***************************/ - -/*!***************************!*\ - !*** ./src/wavesurfer.js ***! - \***************************/ - -/*!****************************!*\ - !*** ./src/util/extend.js ***! - \****************************/ - -/*!****************************!*\ - !*** ./src/util/get-id.js ***! - \****************************/ - -/*!*****************************!*\ - !*** ./src/mediaelement.js ***! - \*****************************/ - -/*!******************************!*\ - !*** ./src/util/observer.js ***! - \******************************/ - -/*!***********************************!*\ - !*** ./src/drawer.canvasentry.js ***! - \***********************************/ - -/*!***********************************!*\ - !*** ./src/drawer.multicanvas.js ***! - \***********************************/ - -/*!***********************************!*\ - !*** ./src/util/prevent-click.js ***! - \***********************************/ - -/*!**************************************!*\ - !*** ./src/mediaelement-webaudio.js ***! - \**************************************/ - -/*!****************************************!*\ - !*** ./node_modules/debounce/index.js ***! - \****************************************/ - -/*!*********************************************!*\ - !*** ./src/util/request-animation-frame.js ***! - \*********************************************/ - -/** - * @license MIT - * @fileOverview Favico animations - * @author Miroslav Magda, http://blog.ejci.net - * @version 0.3.10 - */ - -/** @license React v0.19.0 - * scheduler.production.min.js - * - * Copyright (c) Facebook, Inc. and its affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */ - -/** @license React v16.12.0 - * react-is.production.min.js - * - * Copyright (c) Facebook, Inc. and its affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */ - -/** @license React v16.13.0 - * react-dom.production.min.js - * - * Copyright (c) Facebook, Inc. and its affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */ - -/** @license React v16.13.1 - * react.production.min.js - * - * Copyright (c) Facebook, Inc. and its affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */ - -/*@cc_on!@*/ diff --git a/priv/static/packs/flavours/glitch/home.js.map b/priv/static/packs/flavours/glitch/home.js.map deleted file mode 100644 index 5a58c58f0..000000000 Binary files a/priv/static/packs/flavours/glitch/home.js.map and /dev/null differ diff --git a/priv/static/packs/flavours/glitch/public.js b/priv/static/packs/flavours/glitch/public.js deleted file mode 100644 index c983e7f64..000000000 Binary files a/priv/static/packs/flavours/glitch/public.js and /dev/null differ diff --git a/priv/static/packs/flavours/glitch/public.js.LICENSE.txt b/priv/static/packs/flavours/glitch/public.js.LICENSE.txt deleted file mode 100644 index 2196b2def..000000000 --- a/priv/static/packs/flavours/glitch/public.js.LICENSE.txt +++ /dev/null @@ -1,41 +0,0 @@ -/* -object-assign -(c) Sindre Sorhus -@license MIT -*/ - -/** @license React v0.19.0 - * scheduler.production.min.js - * - * Copyright (c) Facebook, Inc. and its affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */ - -/** @license React v16.12.0 - * react-is.production.min.js - * - * Copyright (c) Facebook, Inc. and its affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */ - -/** @license React v16.13.0 - * react-dom.production.min.js - * - * Copyright (c) Facebook, Inc. and its affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */ - -/** @license React v16.13.1 - * react.production.min.js - * - * Copyright (c) Facebook, Inc. and its affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */ diff --git a/priv/static/packs/flavours/glitch/public.js.map b/priv/static/packs/flavours/glitch/public.js.map deleted file mode 100644 index b34718a35..000000000 Binary files a/priv/static/packs/flavours/glitch/public.js.map and /dev/null differ diff --git a/priv/static/packs/flavours/glitch/settings.js b/priv/static/packs/flavours/glitch/settings.js deleted file mode 100644 index 2cf26d61e..000000000 Binary files a/priv/static/packs/flavours/glitch/settings.js and /dev/null differ diff --git a/priv/static/packs/flavours/glitch/settings.js.map b/priv/static/packs/flavours/glitch/settings.js.map deleted file mode 100644 index 41ba698a5..000000000 Binary files a/priv/static/packs/flavours/glitch/settings.js.map and /dev/null differ diff --git a/priv/static/packs/flavours/glitch/share.js b/priv/static/packs/flavours/glitch/share.js deleted file mode 100644 index 67e6ff793..000000000 Binary files a/priv/static/packs/flavours/glitch/share.js and /dev/null differ diff --git a/priv/static/packs/flavours/glitch/share.js.LICENSE.txt b/priv/static/packs/flavours/glitch/share.js.LICENSE.txt deleted file mode 100644 index 90a9a7678..000000000 --- a/priv/static/packs/flavours/glitch/share.js.LICENSE.txt +++ /dev/null @@ -1,193 +0,0 @@ -/* -object-assign -(c) Sindre Sorhus -@license MIT -*/ - -/*! - Copyright (c) 2017 Jed Watson. - Licensed under the MIT License (MIT), see - http://jedwatson.github.io/classnames -*/ - -/*! - * escape-html - * Copyright(c) 2012-2013 TJ Holowaychuk - * Copyright(c) 2015 Andreas Lubbe - * Copyright(c) 2015 Tiancheng "Timothy" Gu - * MIT Licensed - */ - -/*! - * wavesurfer.js 3.3.1 (2020-01-14) - * https://github.com/katspaugh/wavesurfer.js - * @license BSD-3-Clause - */ - -/*! ./ajax */ - -/*! ./drawer */ - -/*! ./drawer.canvasentry */ - -/*! ./drawer.multicanvas */ - -/*! ./extend */ - -/*! ./fetch */ - -/*! ./frame */ - -/*! ./get-id */ - -/*! ./max */ - -/*! ./mediaelement */ - -/*! ./mediaelement-webaudio */ - -/*! ./min */ - -/*! ./observer */ - -/*! ./peakcache */ - -/*! ./prevent-click */ - -/*! ./request-animation-frame */ - -/*! ./style */ - -/*! ./util */ - -/*! ./util/get-id */ - -/*! ./util/style */ - -/*! ./webaudio */ - -/*! debounce */ - -/*! https://mths.be/punycode v1.4.1 by @mathias */ - -/*! no static exports found */ - -/*!***********************!*\ - !*** ./src/drawer.js ***! - \***********************/ - -/*!*************************!*\ - !*** ./src/util/max.js ***! - \*************************/ - -/*!*************************!*\ - !*** ./src/util/min.js ***! - \*************************/ - -/*!*************************!*\ - !*** ./src/webaudio.js ***! - \*************************/ - -/*!**************************!*\ - !*** ./src/peakcache.js ***! - \**************************/ - -/*!**************************!*\ - !*** ./src/util/ajax.js ***! - \**************************/ - -/*!***************************!*\ - !*** ./src/util/fetch.js ***! - \***************************/ - -/*!***************************!*\ - !*** ./src/util/frame.js ***! - \***************************/ - -/*!***************************!*\ - !*** ./src/util/index.js ***! - \***************************/ - -/*!***************************!*\ - !*** ./src/util/style.js ***! - \***************************/ - -/*!***************************!*\ - !*** ./src/wavesurfer.js ***! - \***************************/ - -/*!****************************!*\ - !*** ./src/util/extend.js ***! - \****************************/ - -/*!****************************!*\ - !*** ./src/util/get-id.js ***! - \****************************/ - -/*!*****************************!*\ - !*** ./src/mediaelement.js ***! - \*****************************/ - -/*!******************************!*\ - !*** ./src/util/observer.js ***! - \******************************/ - -/*!***********************************!*\ - !*** ./src/drawer.canvasentry.js ***! - \***********************************/ - -/*!***********************************!*\ - !*** ./src/drawer.multicanvas.js ***! - \***********************************/ - -/*!***********************************!*\ - !*** ./src/util/prevent-click.js ***! - \***********************************/ - -/*!**************************************!*\ - !*** ./src/mediaelement-webaudio.js ***! - \**************************************/ - -/*!****************************************!*\ - !*** ./node_modules/debounce/index.js ***! - \****************************************/ - -/*!*********************************************!*\ - !*** ./src/util/request-animation-frame.js ***! - \*********************************************/ - -/** @license React v0.19.0 - * scheduler.production.min.js - * - * Copyright (c) Facebook, Inc. and its affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */ - -/** @license React v16.12.0 - * react-is.production.min.js - * - * Copyright (c) Facebook, Inc. and its affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */ - -/** @license React v16.13.0 - * react-dom.production.min.js - * - * Copyright (c) Facebook, Inc. and its affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */ - -/** @license React v16.13.1 - * react.production.min.js - * - * Copyright (c) Facebook, Inc. and its affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */ diff --git a/priv/static/packs/flavours/glitch/share.js.map b/priv/static/packs/flavours/glitch/share.js.map deleted file mode 100644 index 92384b100..000000000 Binary files a/priv/static/packs/flavours/glitch/share.js.map and /dev/null differ diff --git a/priv/static/packs/flavours/vanilla/about.css b/priv/static/packs/flavours/vanilla/about.css deleted file mode 100644 index c2aef8a33..000000000 Binary files a/priv/static/packs/flavours/vanilla/about.css and /dev/null differ diff --git a/priv/static/packs/flavours/vanilla/about.css.map b/priv/static/packs/flavours/vanilla/about.css.map deleted file mode 100644 index 37c5a11cc..000000000 --- a/priv/static/packs/flavours/vanilla/about.css.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["webpack:///font-awesome.css","webpack:///./node_modules/font-awesome/css/font-awesome.css"],"names":[],"mappings":"AAAA;;;ECAA,CAMA,WACE,wBACA,4CACA,wSACA,gBACA,kBAEF,IACE,qBACA,6CACA,kBACA,oBACA,mCACA,kCAGF,OACE,uBACA,kBACA,oBAEF,OACE,cAEF,OACE,cAEF,OACE,cAEF,OACE,cAEF,OACE,mBACA,kBAEF,OACE,eACA,yBACA,qBAEF,UACE,kBAEF,OACE,kBACA,mBACA,mBACA,gBACA,kBAEF,aACE,mBAEF,WACE,yBACA,wBACA,mBAEF,cACE,WAEF,eACE,YAEF,iBACE,kBAEF,kBACE,iBAGF,YACE,YAEF,WACE,WAEF,cACE,kBAEF,eACE,iBAEF,SACE,6CACA,qCAEF,UACE,+CACA,uCAEF,2BACE,GAEE,uBAEF,GAEE,0BAGJ,mBACE,GAEE,uBAEF,GAEE,0BAGJ,cACE,sEAGA,wBAEF,eACE,sEAGA,yBAEF,eACE,sEAGA,yBAEF,oBACE,gFAGA,qBAEF,kBACE,gFAGA,qBAEF,gHAKE,gCAEF,UACE,kBACA,qBACA,UACA,WACA,gBACA,sBAEF,0BAEE,kBACA,OACA,WACA,kBAEF,aACE,oBAEF,aACE,cAEF,YACE,WAIF,iBACE,YAEF,iBACE,YAEF,kBACE,YAEF,sBACE,YAEF,iBACE,YAEF,gBACE,YAEF,kBACE,YAEF,gBACE,YAEF,gBACE,YAEF,oBACE,YAEF,cACE,YAEF,mBACE,YAEF,iBACE,YAEF,oDAGE,YAEF,uBACE,YAEF,wBACE,YAEF,qBACE,YAEF,kBACE,YAEF,+BAEE,YAEF,mBACE,YAEF,gBACE,YAEF,kBACE,YAEF,mBACE,YAEF,gBACE,YAEF,oBACE,YAEF,+BACE,YAEF,6BACE,YAEF,iBACE,YAEF,yBACE,YAEF,0CAEE,YAEF,mBACE,YAEF,oBACE,YAEF,gBACE,YAEF,gBACE,YAEF,sBACE,YAEF,sBACE,YAEF,uBACE,YAEF,qBACE,YAEF,kBACE,YAEF,mBACE,YAEF,eACE,YAEF,gBACE,YAEF,gBACE,YAEF,oBACE,YAEF,iBACE,YAEF,kBACE,YAEF,gBACE,YAEF,gBACE,YAEF,kBACE,YAEF,uBACE,YAEF,sBACE,YAEF,sBACE,YAEF,wBACE,YAEF,uBACE,YAEF,yBACE,YAEF,gBACE,YAEF,qCAEE,YAEF,kBACE,YAEF,wBACE,YAEF,uDAGE,YAEF,kBACE,YAEF,sBACE,YAEF,kBACE,YAEF,gBACE,YAEF,2CAEE,YAEF,0BACE,YAEF,0BACE,YAEF,kBACE,YAEF,yBACE,YAEF,yBACE,YAEF,oBACE,YAEF,gBACE,YAEF,iBACE,YAEF,gBACE,YAEF,mBACE,YAEF,wBACE,YAEF,wBACE,YAEF,iBACE,YAEF,wBACE,YAEF,yBACE,YAEF,uBACE,YAEF,wBACE,YAEF,wBACE,YAEF,wBACE,YAEF,2BACE,YAEF,uBACE,YAEF,sBACE,YAEF,0BACE,YAEF,0BACE,YAEF,eACE,YAEF,sBACE,YAEF,uBACE,YAEF,oBACE,YAEF,sBACE,YAEF,yCAEE,YAEF,kBACE,YAEF,oBACE,YAEF,gBACE,YAEF,iBACE,YAEF,oBACE,YAEF,8BACE,YAEF,gBACE,YAEF,gBACE,YAEF,gBACE,YAEF,eACE,YAEF,qBACE,YAEF,mDAEE,YAEF,iBACE,YAEF,oBACE,YAEF,kBACE,YAEF,mBACE,YAEF,kBACE,YAEF,sBACE,YAEF,wBACE,YAEF,mBACE,YAEF,yBACE,YAEF,kBACE,YAEF,uBACE,YAEF,oBACE,YAEF,oBACE,YAEF,4CAEE,YAEF,0BACE,YAEF,2BACE,YAEF,wBACE,YAEF,eACE,YAEF,iCAEE,YAEF,oBACE,YAEF,uBACE,YAEF,yBACE,YAEF,qBACE,YAEF,mBACE,YAEF,oBACE,YAEF,2BACE,YAEF,sBACE,YAEF,yBACE,YAEF,mBACE,YAEF,kBACE,YAEF,yBACE,YAEF,kBACE,YAEF,mBACE,YAEF,iBACE,YAEF,oBACE,YAEF,sBACE,YAEF,wBACE,YAEF,mBACE,YAEF,0CAEE,YAEF,kBACE,YAEF,kBACE,YAEF,uBACE,YAEF,+BAEE,YAEF,iBACE,YAEF,oBACE,YAEF,gBACE,YAEF,uBACE,YAEF,wBACE,YAEF,uBACE,YAEF,qBACE,YAEF,uBACE,YAEF,6BACE,YAEF,8BACE,YAEF,2BACE,YAEF,6BACE,YAEF,iBACE,YAEF,kBACE,YAEF,iBACE,YAEF,kBACE,YAEF,qBACE,YAEF,sBACE,YAEF,kCAEE,YAEF,iCAEE,YAEF,iBACE,YAEF,iBACE,YAEF,mCAEE,YAEF,mCAEE,YAEF,qBACE,YAEF,oCAEE,YAEF,kBACE,YAEF,sDAGE,YAEF,mBACE,YAEF,mBACE,YAEF,yBACE,YAEF,qBACE,YAEF,iBACE,YAEF,iBACE,YAEF,iBACE,YAEF,qBACE,YAEF,4BACE,YAEF,8BACE,YAEF,uBACE,YAEF,iBACE,YAEF,sBACE,YAEF,oBACE,YAEF,sBACE,YAEF,uBACE,YAEF,mBACE,YAEF,oCAEE,YAEF,0CAEE,YAEF,uCAEE,YAEF,oBACE,YAEF,oBACE,YAEF,uCAEE,YAEF,kCAEE,YAEF,2CAEE,YAEF,qBACE,YAEF,sBACE,YAEF,iCAEE,YAEF,mBACE,YAEF,oBACE,YAEF,sCAEE,YAEF,uBACE,YAEF,oBACE,YAEF,0BACE,YAEF,wBACE,YAEF,mBACE,YAEF,uBACE,YAEF,oBACE,YAEF,kBACE,YAEF,kBACE,YAEF,mBACE,YAEF,uBACE,YAEF,sBACE,YAEF,sBACE,YAEF,qBACE,YAEF,kBACE,YAEF,uBACE,YAEF,gBACE,YAEF,oBACE,YAEF,uBACE,YAEF,6BACE,YAEF,8BACE,YAEF,2BACE,YAEF,6BACE,YAEF,sBACE,YAEF,uBACE,YAEF,oBACE,YAEF,sBACE,YAEF,mBACE,YAEF,kBACE,YAEF,kBACE,YAEF,0CAEE,YAEF,oBACE,YAEF,sBACE,YAEF,uBACE,YAEF,mBACE,YAEF,kBACE,YAEF,uCAEE,YAEF,sBACE,YAEF,oBACE,YAEF,yBACE,YAEF,mBACE,YAEF,mBACE,YAEF,iBACE,YAEF,mBACE,YAEF,sBACE,YAEF,kBACE,YAEF,0BACE,YAEF,oBACE,YAEF,gBACE,YAEF,+CAEE,YAEF,4EAGE,YAEF,0BACE,YAEF,gBACE,YAEF,qBACE,YAEF,0CAEE,YAEF,oBACE,YAEF,gBACE,YAEF,uBACE,YAEF,uBACE,YAEF,qBACE,YAEF,kBACE,YAEF,wBACE,YAEF,sBACE,YAEF,4BACE,YAEF,kBACE,YAEF,sBACE,YAEF,6BACE,YAEF,kBACE,YAEF,kBACE,YAEF,+BACE,YAEF,gCACE,YAEF,6BACE,YAEF,+BACE,YAEF,iBACE,YAEF,gBACE,YAEF,kBACE,YAEF,sBACE,YAEF,oBACE,YAEF,sBACE,YAEF,sBACE,YAEF,sBACE,YAEF,uBACE,YAEF,kBACE,YAEF,wBACE,YAEF,0BACE,YAEF,oBACE,YAEF,sBACE,YAEF,wBACE,YAEF,yBACE,YAEF,gCACE,YAEF,wBACE,YAEF,mBACE,YAEF,sDAEE,YAEF,kDAEE,YAEF,wDAEE,YAEF,+BAEE,YAEF,eACE,YAEF,iCAEE,YAEF,gCAEE,YAEF,4DAIE,YAEF,kDAGE,YAEF,8BAEE,YAEF,kCAEE,YAEF,gBACE,YAEF,qBACE,YAEF,0BACE,YAEF,2BACE,YAEF,2BACE,YAEF,4BACE,YAEF,4BACE,YAEF,6BACE,YAEF,qBACE,YAEF,uBACE,YAEF,0BACE,YAEF,mBACE,YAEF,gBACE,YAEF,uBACE,YAEF,wBACE,YAEF,mBACE,YAEF,0BACE,YAEF,qBACE,YAEF,kBACE,YAEF,eACE,YAEF,qBACE,YAEF,4BACE,YAEF,kBACE,YAEF,yBACE,YAEF,2BACE,YAEF,yBACE,YAEF,2BACE,YAEF,4BACE,YAEF,iBACE,YAEF,mBACE,YAEF,mBACE,YAEF,iBACE,YAEF,oBACE,YAEF,iBACE,YAEF,sBACE,YAEF,kBACE,YAEF,kBACE,YAEF,gBACE,YAEF,sCAEE,YAEF,iBACE,YAEF,kBACE,YAEF,mBACE,YAEF,eACE,YAEF,cACE,YAEF,iBACE,YAEF,kBACE,YAEF,qBACE,YAEF,0BACE,YAEF,gCACE,YAEF,+BACE,YAEF,sDAEE,YAEF,wBACE,YAEF,sBACE,YAEF,wBACE,YAEF,uCAEE,YAEF,yBACE,YAEF,yBACE,YAEF,iBACE,YAEF,2BACE,YAEF,qBACE,YAEF,kBACE,YAEF,6DAGE,YAEF,kDAEE,YAEF,iBACE,YAEF,kBACE,YAEF,kBACE,YAEF,yBACE,YAEF,8BACE,YAEF,uBACE,YAEF,qBACE,YAEF,gBACE,YAEF,yBACE,YAEF,0BACE,YAEF,kBACE,YAEF,kBACE,YAEF,oBACE,YAEF,eACE,YAEF,oBACE,YAEF,iBACE,YAEF,eACE,YAEF,iBACE,YAEF,gBACE,YAEF,iBACE,YAEF,mBACE,YAEF,0BACE,YAEF,iBACE,YAEF,wBACE,YAEF,mBACE,YAEF,qCAEE,YAEF,+BAEE,YAEF,gBACE,YAEF,mBACE,YAEF,sBACE,YAEF,sBACE,YAEF,oBACE,YAEF,sBACE,YAEF,uBACE,YAEF,wBACE,YAEF,6BACE,YAEF,0EAGE,YAEF,gDAEE,YAEF,gDAEE,YAEF,gDAEE,YAEF,uBACE,YAEF,gBACE,YAEF,mBACE,YAEF,oBACE,YAEF,wGAKE,YAEF,0BACE,YAEF,qDAGE,YAEF,gCAEE,YAEF,sBACE,YAEF,eACE,YAEF,2EAGE,YAEF,yBACE,YAEF,cACE,YAEF,oCAEE,YAEF,uCAEE,YAEF,2CAEE,YAEF,mBACE,YAEF,uBACE,YAEF,kBACE,YAEF,qBACE,YAEF,mBACE,YAEF,qBACE,YAEF,4BACE,YAEF,gBACE,YAEF,6CAEE,YAEF,eACE,YAEF,sBACE,YAEF,gBACE,YAEF,sBACE,YAEF,kBACE,YAEF,gBACE,YAEF,uBACE,YAEF,gBACE,YAEF,sBACE,YAEF,kBACE,YAEF,yBACE,YAEF,mBACE,YAEF,yBACE,YAEF,uBACE,YAEF,mBACE,YAEF,qBACE,YAEF,qBACE,YAEF,sBACE,YAEF,wBACE,YAEF,iBACE,YAEF,qBACE,YAEF,cACE,YAEF,sBACE,YAEF,uBACE,YAEF,yBACE,YAEF,sBACE,YAEF,qBACE,YAEF,sBACE,YAEF,kBACE,YAEF,yBACE,YAEF,sBACE,YAEF,qBACE,YAEF,mBACE,YAEF,eACE,YAEF,mBACE,YAEF,qBACE,YAEF,cACE,YAEF,mDAGE,YAEF,oBACE,YAEF,sBACE,YAEF,0BACE,YAEF,oBACE,YAEF,oBACE,YAEF,mBACE,YAEF,kBACE,YAEF,wBACE,YAEF,uBACE,YAEF,oBACE,YAEF,qBACE,YAEF,2BACE,YAEF,mBACE,YAEF,gBACE,YAEF,uBACE,YAEF,sBACE,YAEF,uBACE,YAEF,qBACE,YAEF,iBACE,YAEF,gBACE,YAEF,mBACE,YAEF,2CAEE,YAEF,2BACE,YAEF,wBACE,YAEF,uBACE,YAEF,sBACE,YAEF,uBACE,YAEF,yBACE,YAEF,yBACE,YAEF,kBACE,YAEF,sBACE,YAEF,6BACE,YAEF,uBACE,YAEF,oBACE,YAEF,kBACE,YAEF,qBACE,YAEF,sBACE,YAEF,gCAEE,YAEF,mBACE,YAEF,iBACE,YAEF,kBACE,YAEF,kBACE,YAEF,sCAEE,YAEF,yBACE,YAEF,oBACE,YAEF,wBACE,YAEF,gEAGE,YAEF,uDAEE,YAEF,6CAEE,YAEF,gDAEE,YAEF,8CAEE,YAEF,yBACE,YAEF,oBACE,YAEF,wBACE,YAEF,0BACE,YAEF,uBACE,YAEF,yBACE,YAEF,kBACE,YAEF,0BACE,YAEF,iBACE,YAEF,yBACE,YAEF,uBACE,YAEF,kDAEE,YAEF,iDAEE,YAEF,gDAEE,YAEF,qBACE,YAEF,8CAEE,YAEF,+CAEE,YAEF,2BACE,YAEF,yBACE,YAEF,wBACE,YAEF,0BACE,YAEF,wBACE,YAEF,qBACE,YAEF,sBACE,YAEF,4BACE,YAEF,cACE,YAEF,qBACE,YAEF,uBACE,YAEF,yBACE,YAEF,gCACE,YAEF,sBACE,YAEF,uBACE,YAEF,kBACE,YAEF,kBACE,YAEF,mBACE,YAEF,iBACE,YAEF,6BACE,YAEF,oCAEE,YAEF,kBACE,YAEF,iBACE,YAEF,kBACE,YAEF,2BACE,YAEF,4BACE,YAEF,4BACE,YAEF,4BACE,YAEF,oBACE,YAEF,mBACE,YAEF,qBACE,YAEF,iBACE,YAEF,eACE,YAEF,sBACE,YAEF,wBACE,YAEF,iBACE,YAEF,iBACE,YAEF,qBACE,YAEF,qBACE,YAEF,wBACE,YAEF,gBACE,YAEF,2BACE,YAEF,oBACE,YAEF,gBACE,YAEF,wBACE,YAEF,eACE,YAEF,wBACE,YAEF,oBACE,YAEF,kBACE,YAEF,wBACE,YAEF,0BACE,YAEF,uBACE,YAEF,yBACE,YAEF,wBACE,YAEF,2BACE,YAEF,mBACE,YAEF,qBACE,YAEF,uBACE,YAEF,mBACE,YAEF,kBACE,YAEF,sBACE,YAEF,mBACE,YAEF,kBACE,YAEF,4BACE,YAEF,0BACE,YAEF,6BACE,YAEF,iBACE,YAEF,6BACE,YAEF,gCACE,YAEF,mBACE,YAEF,uCACE,YAEF,2EAEE,YAEF,+DAGE,YAEF,iBACE,YAEF,mBACE,YAEF,4CAEE,YAEF,sBACE,YAEF,kBACE,YAEF,yBACE,YAEF,oBACE,YAEF,0BACE,YAEF,2BACE,YAEF,sBACE,YAEF,uBACE,YAEF,iBACE,YAEF,qBACE,YAEF,8DAEE,YAEF,sCAEE,YAEF,uBACE,YAEF,yBACE,YAEF,2BACE,YAEF,kBACE,YAEF,wBACE,YAEF,0BACE,YAEF,yCAEE,YAEF,6CAEE,YAEF,uBACE,YAEF,yBACE,YAEF,kBACE,YAEF,oBACE,YAEF,8CAEE,YAEF,kDAEE,YAEF,iBACE,YAEF,0BACE,YAEF,oBACE,YAEF,4EAGE,YAEF,+DAEE,YAEF,qDAEE,YAEF,wDAEE,YAEF,sDAEE,YAEF,kBACE,YAEF,kDAGE,YAEF,mBACE,YAEF,2BACE,YAEF,2BACE,YAEF,0BACE,YAEF,mDAEE,YAEF,uDAEE,YAEF,oBACE,YAEF,gBACE,YAEF,gBACE,YAEF,gBACE,YAEF,mBACE,YAEF,mBACE,YAEF,qBACE,YAEF,uBACE,YAEF,uBACE,YAEF,sBACE,YAEF,kBACE,YAEF,SACE,kBACA,UACA,WACA,UACA,YACA,gBACA,mBACA,SAEF,mDAEE,gBACA,WACA,YACA,SACA,iBACA,qJ","file":"flavours/vanilla/about.css","sourcesContent":["/*!\n * Font Awesome 4.7.0 by @davegandy - http://fontawesome.io - @fontawesome\n * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License)\n */@font-face{font-family:\"FontAwesome\";src:url(\"../fonts/fontawesome-webfont.eot?v=4.7.0\");src:url(\"../fonts/fontawesome-webfont.eot?#iefix&v=4.7.0\") format(\"embedded-opentype\"),url(\"../fonts/fontawesome-webfont.woff2?v=4.7.0\") format(\"woff2\"),url(\"../fonts/fontawesome-webfont.woff?v=4.7.0\") format(\"woff\"),url(\"../fonts/fontawesome-webfont.ttf?v=4.7.0\") format(\"truetype\"),url(\"../fonts/fontawesome-webfont.svg?v=4.7.0#fontawesomeregular\") format(\"svg\");font-weight:normal;font-style:normal}.fa{display:inline-block;font:normal normal normal 14px/1 FontAwesome;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.fa-lg{font-size:1.33333333em;line-height:.75em;vertical-align:-15%}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-fw{width:1.28571429em;text-align:center}.fa-ul{padding-left:0;margin-left:2.14285714em;list-style-type:none}.fa-ul>li{position:relative}.fa-li{position:absolute;left:-2.14285714em;width:2.14285714em;top:.14285714em;text-align:center}.fa-li.fa-lg{left:-1.85714286em}.fa-border{padding:.2em .25em .15em;border:solid .08em #eee;border-radius:.1em}.fa-pull-left{float:left}.fa-pull-right{float:right}.fa.fa-pull-left{margin-right:.3em}.fa.fa-pull-right{margin-left:.3em}.pull-right{float:right}.pull-left{float:left}.fa.pull-left{margin-right:.3em}.fa.pull-right{margin-left:.3em}.fa-spin{-webkit-animation:fa-spin 2s infinite linear;animation:fa-spin 2s infinite linear}.fa-pulse{-webkit-animation:fa-spin 1s infinite steps(8);animation:fa-spin 1s infinite steps(8)}@-webkit-keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}.fa-rotate-90{-ms-filter:\"progid:DXImageTransform.Microsoft.BasicImage(rotation=1)\";-webkit-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg)}.fa-rotate-180{-ms-filter:\"progid:DXImageTransform.Microsoft.BasicImage(rotation=2)\";-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg)}.fa-rotate-270{-ms-filter:\"progid:DXImageTransform.Microsoft.BasicImage(rotation=3)\";-webkit-transform:rotate(270deg);-ms-transform:rotate(270deg);transform:rotate(270deg)}.fa-flip-horizontal{-ms-filter:\"progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)\";-webkit-transform:scale(-1, 1);-ms-transform:scale(-1, 1);transform:scale(-1, 1)}.fa-flip-vertical{-ms-filter:\"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)\";-webkit-transform:scale(1, -1);-ms-transform:scale(1, -1);transform:scale(1, -1)}:root .fa-rotate-90,:root .fa-rotate-180,:root .fa-rotate-270,:root .fa-flip-horizontal,:root .fa-flip-vertical{filter:none}.fa-stack{position:relative;display:inline-block;width:2em;height:2em;line-height:2em;vertical-align:middle}.fa-stack-1x,.fa-stack-2x{position:absolute;left:0;width:100%;text-align:center}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:#fff}.fa-glass:before{content:\"\"}.fa-music:before{content:\"\"}.fa-search:before{content:\"\"}.fa-envelope-o:before{content:\"\"}.fa-heart:before{content:\"\"}.fa-star:before{content:\"\"}.fa-star-o:before{content:\"\"}.fa-user:before{content:\"\"}.fa-film:before{content:\"\"}.fa-th-large:before{content:\"\"}.fa-th:before{content:\"\"}.fa-th-list:before{content:\"\"}.fa-check:before{content:\"\"}.fa-remove:before,.fa-close:before,.fa-times:before{content:\"\"}.fa-search-plus:before{content:\"\"}.fa-search-minus:before{content:\"\"}.fa-power-off:before{content:\"\"}.fa-signal:before{content:\"\"}.fa-gear:before,.fa-cog:before{content:\"\"}.fa-trash-o:before{content:\"\"}.fa-home:before{content:\"\"}.fa-file-o:before{content:\"\"}.fa-clock-o:before{content:\"\"}.fa-road:before{content:\"\"}.fa-download:before{content:\"\"}.fa-arrow-circle-o-down:before{content:\"\"}.fa-arrow-circle-o-up:before{content:\"\"}.fa-inbox:before{content:\"\"}.fa-play-circle-o:before{content:\"\"}.fa-rotate-right:before,.fa-repeat:before{content:\"\"}.fa-refresh:before{content:\"\"}.fa-list-alt:before{content:\"\"}.fa-lock:before{content:\"\"}.fa-flag:before{content:\"\"}.fa-headphones:before{content:\"\"}.fa-volume-off:before{content:\"\"}.fa-volume-down:before{content:\"\"}.fa-volume-up:before{content:\"\"}.fa-qrcode:before{content:\"\"}.fa-barcode:before{content:\"\"}.fa-tag:before{content:\"\"}.fa-tags:before{content:\"\"}.fa-book:before{content:\"\"}.fa-bookmark:before{content:\"\"}.fa-print:before{content:\"\"}.fa-camera:before{content:\"\"}.fa-font:before{content:\"\"}.fa-bold:before{content:\"\"}.fa-italic:before{content:\"\"}.fa-text-height:before{content:\"\"}.fa-text-width:before{content:\"\"}.fa-align-left:before{content:\"\"}.fa-align-center:before{content:\"\"}.fa-align-right:before{content:\"\"}.fa-align-justify:before{content:\"\"}.fa-list:before{content:\"\"}.fa-dedent:before,.fa-outdent:before{content:\"\"}.fa-indent:before{content:\"\"}.fa-video-camera:before{content:\"\"}.fa-photo:before,.fa-image:before,.fa-picture-o:before{content:\"\"}.fa-pencil:before{content:\"\"}.fa-map-marker:before{content:\"\"}.fa-adjust:before{content:\"\"}.fa-tint:before{content:\"\"}.fa-edit:before,.fa-pencil-square-o:before{content:\"\"}.fa-share-square-o:before{content:\"\"}.fa-check-square-o:before{content:\"\"}.fa-arrows:before{content:\"\"}.fa-step-backward:before{content:\"\"}.fa-fast-backward:before{content:\"\"}.fa-backward:before{content:\"\"}.fa-play:before{content:\"\"}.fa-pause:before{content:\"\"}.fa-stop:before{content:\"\"}.fa-forward:before{content:\"\"}.fa-fast-forward:before{content:\"\"}.fa-step-forward:before{content:\"\"}.fa-eject:before{content:\"\"}.fa-chevron-left:before{content:\"\"}.fa-chevron-right:before{content:\"\"}.fa-plus-circle:before{content:\"\"}.fa-minus-circle:before{content:\"\"}.fa-times-circle:before{content:\"\"}.fa-check-circle:before{content:\"\"}.fa-question-circle:before{content:\"\"}.fa-info-circle:before{content:\"\"}.fa-crosshairs:before{content:\"\"}.fa-times-circle-o:before{content:\"\"}.fa-check-circle-o:before{content:\"\"}.fa-ban:before{content:\"\"}.fa-arrow-left:before{content:\"\"}.fa-arrow-right:before{content:\"\"}.fa-arrow-up:before{content:\"\"}.fa-arrow-down:before{content:\"\"}.fa-mail-forward:before,.fa-share:before{content:\"\"}.fa-expand:before{content:\"\"}.fa-compress:before{content:\"\"}.fa-plus:before{content:\"\"}.fa-minus:before{content:\"\"}.fa-asterisk:before{content:\"\"}.fa-exclamation-circle:before{content:\"\"}.fa-gift:before{content:\"\"}.fa-leaf:before{content:\"\"}.fa-fire:before{content:\"\"}.fa-eye:before{content:\"\"}.fa-eye-slash:before{content:\"\"}.fa-warning:before,.fa-exclamation-triangle:before{content:\"\"}.fa-plane:before{content:\"\"}.fa-calendar:before{content:\"\"}.fa-random:before{content:\"\"}.fa-comment:before{content:\"\"}.fa-magnet:before{content:\"\"}.fa-chevron-up:before{content:\"\"}.fa-chevron-down:before{content:\"\"}.fa-retweet:before{content:\"\"}.fa-shopping-cart:before{content:\"\"}.fa-folder:before{content:\"\"}.fa-folder-open:before{content:\"\"}.fa-arrows-v:before{content:\"\"}.fa-arrows-h:before{content:\"\"}.fa-bar-chart-o:before,.fa-bar-chart:before{content:\"\"}.fa-twitter-square:before{content:\"\"}.fa-facebook-square:before{content:\"\"}.fa-camera-retro:before{content:\"\"}.fa-key:before{content:\"\"}.fa-gears:before,.fa-cogs:before{content:\"\"}.fa-comments:before{content:\"\"}.fa-thumbs-o-up:before{content:\"\"}.fa-thumbs-o-down:before{content:\"\"}.fa-star-half:before{content:\"\"}.fa-heart-o:before{content:\"\"}.fa-sign-out:before{content:\"\"}.fa-linkedin-square:before{content:\"\"}.fa-thumb-tack:before{content:\"\"}.fa-external-link:before{content:\"\"}.fa-sign-in:before{content:\"\"}.fa-trophy:before{content:\"\"}.fa-github-square:before{content:\"\"}.fa-upload:before{content:\"\"}.fa-lemon-o:before{content:\"\"}.fa-phone:before{content:\"\"}.fa-square-o:before{content:\"\"}.fa-bookmark-o:before{content:\"\"}.fa-phone-square:before{content:\"\"}.fa-twitter:before{content:\"\"}.fa-facebook-f:before,.fa-facebook:before{content:\"\"}.fa-github:before{content:\"\"}.fa-unlock:before{content:\"\"}.fa-credit-card:before{content:\"\"}.fa-feed:before,.fa-rss:before{content:\"\"}.fa-hdd-o:before{content:\"\"}.fa-bullhorn:before{content:\"\"}.fa-bell:before{content:\"\"}.fa-certificate:before{content:\"\"}.fa-hand-o-right:before{content:\"\"}.fa-hand-o-left:before{content:\"\"}.fa-hand-o-up:before{content:\"\"}.fa-hand-o-down:before{content:\"\"}.fa-arrow-circle-left:before{content:\"\"}.fa-arrow-circle-right:before{content:\"\"}.fa-arrow-circle-up:before{content:\"\"}.fa-arrow-circle-down:before{content:\"\"}.fa-globe:before{content:\"\"}.fa-wrench:before{content:\"\"}.fa-tasks:before{content:\"\"}.fa-filter:before{content:\"\"}.fa-briefcase:before{content:\"\"}.fa-arrows-alt:before{content:\"\"}.fa-group:before,.fa-users:before{content:\"\"}.fa-chain:before,.fa-link:before{content:\"\"}.fa-cloud:before{content:\"\"}.fa-flask:before{content:\"\"}.fa-cut:before,.fa-scissors:before{content:\"\"}.fa-copy:before,.fa-files-o:before{content:\"\"}.fa-paperclip:before{content:\"\"}.fa-save:before,.fa-floppy-o:before{content:\"\"}.fa-square:before{content:\"\"}.fa-navicon:before,.fa-reorder:before,.fa-bars:before{content:\"\"}.fa-list-ul:before{content:\"\"}.fa-list-ol:before{content:\"\"}.fa-strikethrough:before{content:\"\"}.fa-underline:before{content:\"\"}.fa-table:before{content:\"\"}.fa-magic:before{content:\"\"}.fa-truck:before{content:\"\"}.fa-pinterest:before{content:\"\"}.fa-pinterest-square:before{content:\"\"}.fa-google-plus-square:before{content:\"\"}.fa-google-plus:before{content:\"\"}.fa-money:before{content:\"\"}.fa-caret-down:before{content:\"\"}.fa-caret-up:before{content:\"\"}.fa-caret-left:before{content:\"\"}.fa-caret-right:before{content:\"\"}.fa-columns:before{content:\"\"}.fa-unsorted:before,.fa-sort:before{content:\"\"}.fa-sort-down:before,.fa-sort-desc:before{content:\"\"}.fa-sort-up:before,.fa-sort-asc:before{content:\"\"}.fa-envelope:before{content:\"\"}.fa-linkedin:before{content:\"\"}.fa-rotate-left:before,.fa-undo:before{content:\"\"}.fa-legal:before,.fa-gavel:before{content:\"\"}.fa-dashboard:before,.fa-tachometer:before{content:\"\"}.fa-comment-o:before{content:\"\"}.fa-comments-o:before{content:\"\"}.fa-flash:before,.fa-bolt:before{content:\"\"}.fa-sitemap:before{content:\"\"}.fa-umbrella:before{content:\"\"}.fa-paste:before,.fa-clipboard:before{content:\"\"}.fa-lightbulb-o:before{content:\"\"}.fa-exchange:before{content:\"\"}.fa-cloud-download:before{content:\"\"}.fa-cloud-upload:before{content:\"\"}.fa-user-md:before{content:\"\"}.fa-stethoscope:before{content:\"\"}.fa-suitcase:before{content:\"\"}.fa-bell-o:before{content:\"\"}.fa-coffee:before{content:\"\"}.fa-cutlery:before{content:\"\"}.fa-file-text-o:before{content:\"\"}.fa-building-o:before{content:\"\"}.fa-hospital-o:before{content:\"\"}.fa-ambulance:before{content:\"\"}.fa-medkit:before{content:\"\"}.fa-fighter-jet:before{content:\"\"}.fa-beer:before{content:\"\"}.fa-h-square:before{content:\"\"}.fa-plus-square:before{content:\"\"}.fa-angle-double-left:before{content:\"\"}.fa-angle-double-right:before{content:\"\"}.fa-angle-double-up:before{content:\"\"}.fa-angle-double-down:before{content:\"\"}.fa-angle-left:before{content:\"\"}.fa-angle-right:before{content:\"\"}.fa-angle-up:before{content:\"\"}.fa-angle-down:before{content:\"\"}.fa-desktop:before{content:\"\"}.fa-laptop:before{content:\"\"}.fa-tablet:before{content:\"\"}.fa-mobile-phone:before,.fa-mobile:before{content:\"\"}.fa-circle-o:before{content:\"\"}.fa-quote-left:before{content:\"\"}.fa-quote-right:before{content:\"\"}.fa-spinner:before{content:\"\"}.fa-circle:before{content:\"\"}.fa-mail-reply:before,.fa-reply:before{content:\"\"}.fa-github-alt:before{content:\"\"}.fa-folder-o:before{content:\"\"}.fa-folder-open-o:before{content:\"\"}.fa-smile-o:before{content:\"\"}.fa-frown-o:before{content:\"\"}.fa-meh-o:before{content:\"\"}.fa-gamepad:before{content:\"\"}.fa-keyboard-o:before{content:\"\"}.fa-flag-o:before{content:\"\"}.fa-flag-checkered:before{content:\"\"}.fa-terminal:before{content:\"\"}.fa-code:before{content:\"\"}.fa-mail-reply-all:before,.fa-reply-all:before{content:\"\"}.fa-star-half-empty:before,.fa-star-half-full:before,.fa-star-half-o:before{content:\"\"}.fa-location-arrow:before{content:\"\"}.fa-crop:before{content:\"\"}.fa-code-fork:before{content:\"\"}.fa-unlink:before,.fa-chain-broken:before{content:\"\"}.fa-question:before{content:\"\"}.fa-info:before{content:\"\"}.fa-exclamation:before{content:\"\"}.fa-superscript:before{content:\"\"}.fa-subscript:before{content:\"\"}.fa-eraser:before{content:\"\"}.fa-puzzle-piece:before{content:\"\"}.fa-microphone:before{content:\"\"}.fa-microphone-slash:before{content:\"\"}.fa-shield:before{content:\"\"}.fa-calendar-o:before{content:\"\"}.fa-fire-extinguisher:before{content:\"\"}.fa-rocket:before{content:\"\"}.fa-maxcdn:before{content:\"\"}.fa-chevron-circle-left:before{content:\"\"}.fa-chevron-circle-right:before{content:\"\"}.fa-chevron-circle-up:before{content:\"\"}.fa-chevron-circle-down:before{content:\"\"}.fa-html5:before{content:\"\"}.fa-css3:before{content:\"\"}.fa-anchor:before{content:\"\"}.fa-unlock-alt:before{content:\"\"}.fa-bullseye:before{content:\"\"}.fa-ellipsis-h:before{content:\"\"}.fa-ellipsis-v:before{content:\"\"}.fa-rss-square:before{content:\"\"}.fa-play-circle:before{content:\"\"}.fa-ticket:before{content:\"\"}.fa-minus-square:before{content:\"\"}.fa-minus-square-o:before{content:\"\"}.fa-level-up:before{content:\"\"}.fa-level-down:before{content:\"\"}.fa-check-square:before{content:\"\"}.fa-pencil-square:before{content:\"\"}.fa-external-link-square:before{content:\"\"}.fa-share-square:before{content:\"\"}.fa-compass:before{content:\"\"}.fa-toggle-down:before,.fa-caret-square-o-down:before{content:\"\"}.fa-toggle-up:before,.fa-caret-square-o-up:before{content:\"\"}.fa-toggle-right:before,.fa-caret-square-o-right:before{content:\"\"}.fa-euro:before,.fa-eur:before{content:\"\"}.fa-gbp:before{content:\"\"}.fa-dollar:before,.fa-usd:before{content:\"\"}.fa-rupee:before,.fa-inr:before{content:\"\"}.fa-cny:before,.fa-rmb:before,.fa-yen:before,.fa-jpy:before{content:\"\"}.fa-ruble:before,.fa-rouble:before,.fa-rub:before{content:\"\"}.fa-won:before,.fa-krw:before{content:\"\"}.fa-bitcoin:before,.fa-btc:before{content:\"\"}.fa-file:before{content:\"\"}.fa-file-text:before{content:\"\"}.fa-sort-alpha-asc:before{content:\"\"}.fa-sort-alpha-desc:before{content:\"\"}.fa-sort-amount-asc:before{content:\"\"}.fa-sort-amount-desc:before{content:\"\"}.fa-sort-numeric-asc:before{content:\"\"}.fa-sort-numeric-desc:before{content:\"\"}.fa-thumbs-up:before{content:\"\"}.fa-thumbs-down:before{content:\"\"}.fa-youtube-square:before{content:\"\"}.fa-youtube:before{content:\"\"}.fa-xing:before{content:\"\"}.fa-xing-square:before{content:\"\"}.fa-youtube-play:before{content:\"\"}.fa-dropbox:before{content:\"\"}.fa-stack-overflow:before{content:\"\"}.fa-instagram:before{content:\"\"}.fa-flickr:before{content:\"\"}.fa-adn:before{content:\"\"}.fa-bitbucket:before{content:\"\"}.fa-bitbucket-square:before{content:\"\"}.fa-tumblr:before{content:\"\"}.fa-tumblr-square:before{content:\"\"}.fa-long-arrow-down:before{content:\"\"}.fa-long-arrow-up:before{content:\"\"}.fa-long-arrow-left:before{content:\"\"}.fa-long-arrow-right:before{content:\"\"}.fa-apple:before{content:\"\"}.fa-windows:before{content:\"\"}.fa-android:before{content:\"\"}.fa-linux:before{content:\"\"}.fa-dribbble:before{content:\"\"}.fa-skype:before{content:\"\"}.fa-foursquare:before{content:\"\"}.fa-trello:before{content:\"\"}.fa-female:before{content:\"\"}.fa-male:before{content:\"\"}.fa-gittip:before,.fa-gratipay:before{content:\"\"}.fa-sun-o:before{content:\"\"}.fa-moon-o:before{content:\"\"}.fa-archive:before{content:\"\"}.fa-bug:before{content:\"\"}.fa-vk:before{content:\"\"}.fa-weibo:before{content:\"\"}.fa-renren:before{content:\"\"}.fa-pagelines:before{content:\"\"}.fa-stack-exchange:before{content:\"\"}.fa-arrow-circle-o-right:before{content:\"\"}.fa-arrow-circle-o-left:before{content:\"\"}.fa-toggle-left:before,.fa-caret-square-o-left:before{content:\"\"}.fa-dot-circle-o:before{content:\"\"}.fa-wheelchair:before{content:\"\"}.fa-vimeo-square:before{content:\"\"}.fa-turkish-lira:before,.fa-try:before{content:\"\"}.fa-plus-square-o:before{content:\"\"}.fa-space-shuttle:before{content:\"\"}.fa-slack:before{content:\"\"}.fa-envelope-square:before{content:\"\"}.fa-wordpress:before{content:\"\"}.fa-openid:before{content:\"\"}.fa-institution:before,.fa-bank:before,.fa-university:before{content:\"\"}.fa-mortar-board:before,.fa-graduation-cap:before{content:\"\"}.fa-yahoo:before{content:\"\"}.fa-google:before{content:\"\"}.fa-reddit:before{content:\"\"}.fa-reddit-square:before{content:\"\"}.fa-stumbleupon-circle:before{content:\"\"}.fa-stumbleupon:before{content:\"\"}.fa-delicious:before{content:\"\"}.fa-digg:before{content:\"\"}.fa-pied-piper-pp:before{content:\"\"}.fa-pied-piper-alt:before{content:\"\"}.fa-drupal:before{content:\"\"}.fa-joomla:before{content:\"\"}.fa-language:before{content:\"\"}.fa-fax:before{content:\"\"}.fa-building:before{content:\"\"}.fa-child:before{content:\"\"}.fa-paw:before{content:\"\"}.fa-spoon:before{content:\"\"}.fa-cube:before{content:\"\"}.fa-cubes:before{content:\"\"}.fa-behance:before{content:\"\"}.fa-behance-square:before{content:\"\"}.fa-steam:before{content:\"\"}.fa-steam-square:before{content:\"\"}.fa-recycle:before{content:\"\"}.fa-automobile:before,.fa-car:before{content:\"\"}.fa-cab:before,.fa-taxi:before{content:\"\"}.fa-tree:before{content:\"\"}.fa-spotify:before{content:\"\"}.fa-deviantart:before{content:\"\"}.fa-soundcloud:before{content:\"\"}.fa-database:before{content:\"\"}.fa-file-pdf-o:before{content:\"\"}.fa-file-word-o:before{content:\"\"}.fa-file-excel-o:before{content:\"\"}.fa-file-powerpoint-o:before{content:\"\"}.fa-file-photo-o:before,.fa-file-picture-o:before,.fa-file-image-o:before{content:\"\"}.fa-file-zip-o:before,.fa-file-archive-o:before{content:\"\"}.fa-file-sound-o:before,.fa-file-audio-o:before{content:\"\"}.fa-file-movie-o:before,.fa-file-video-o:before{content:\"\"}.fa-file-code-o:before{content:\"\"}.fa-vine:before{content:\"\"}.fa-codepen:before{content:\"\"}.fa-jsfiddle:before{content:\"\"}.fa-life-bouy:before,.fa-life-buoy:before,.fa-life-saver:before,.fa-support:before,.fa-life-ring:before{content:\"\"}.fa-circle-o-notch:before{content:\"\"}.fa-ra:before,.fa-resistance:before,.fa-rebel:before{content:\"\"}.fa-ge:before,.fa-empire:before{content:\"\"}.fa-git-square:before{content:\"\"}.fa-git:before{content:\"\"}.fa-y-combinator-square:before,.fa-yc-square:before,.fa-hacker-news:before{content:\"\"}.fa-tencent-weibo:before{content:\"\"}.fa-qq:before{content:\"\"}.fa-wechat:before,.fa-weixin:before{content:\"\"}.fa-send:before,.fa-paper-plane:before{content:\"\"}.fa-send-o:before,.fa-paper-plane-o:before{content:\"\"}.fa-history:before{content:\"\"}.fa-circle-thin:before{content:\"\"}.fa-header:before{content:\"\"}.fa-paragraph:before{content:\"\"}.fa-sliders:before{content:\"\"}.fa-share-alt:before{content:\"\"}.fa-share-alt-square:before{content:\"\"}.fa-bomb:before{content:\"\"}.fa-soccer-ball-o:before,.fa-futbol-o:before{content:\"\"}.fa-tty:before{content:\"\"}.fa-binoculars:before{content:\"\"}.fa-plug:before{content:\"\"}.fa-slideshare:before{content:\"\"}.fa-twitch:before{content:\"\"}.fa-yelp:before{content:\"\"}.fa-newspaper-o:before{content:\"\"}.fa-wifi:before{content:\"\"}.fa-calculator:before{content:\"\"}.fa-paypal:before{content:\"\"}.fa-google-wallet:before{content:\"\"}.fa-cc-visa:before{content:\"\"}.fa-cc-mastercard:before{content:\"\"}.fa-cc-discover:before{content:\"\"}.fa-cc-amex:before{content:\"\"}.fa-cc-paypal:before{content:\"\"}.fa-cc-stripe:before{content:\"\"}.fa-bell-slash:before{content:\"\"}.fa-bell-slash-o:before{content:\"\"}.fa-trash:before{content:\"\"}.fa-copyright:before{content:\"\"}.fa-at:before{content:\"\"}.fa-eyedropper:before{content:\"\"}.fa-paint-brush:before{content:\"\"}.fa-birthday-cake:before{content:\"\"}.fa-area-chart:before{content:\"\"}.fa-pie-chart:before{content:\"\"}.fa-line-chart:before{content:\"\"}.fa-lastfm:before{content:\"\"}.fa-lastfm-square:before{content:\"\"}.fa-toggle-off:before{content:\"\"}.fa-toggle-on:before{content:\"\"}.fa-bicycle:before{content:\"\"}.fa-bus:before{content:\"\"}.fa-ioxhost:before{content:\"\"}.fa-angellist:before{content:\"\"}.fa-cc:before{content:\"\"}.fa-shekel:before,.fa-sheqel:before,.fa-ils:before{content:\"\"}.fa-meanpath:before{content:\"\"}.fa-buysellads:before{content:\"\"}.fa-connectdevelop:before{content:\"\"}.fa-dashcube:before{content:\"\"}.fa-forumbee:before{content:\"\"}.fa-leanpub:before{content:\"\"}.fa-sellsy:before{content:\"\"}.fa-shirtsinbulk:before{content:\"\"}.fa-simplybuilt:before{content:\"\"}.fa-skyatlas:before{content:\"\"}.fa-cart-plus:before{content:\"\"}.fa-cart-arrow-down:before{content:\"\"}.fa-diamond:before{content:\"\"}.fa-ship:before{content:\"\"}.fa-user-secret:before{content:\"\"}.fa-motorcycle:before{content:\"\"}.fa-street-view:before{content:\"\"}.fa-heartbeat:before{content:\"\"}.fa-venus:before{content:\"\"}.fa-mars:before{content:\"\"}.fa-mercury:before{content:\"\"}.fa-intersex:before,.fa-transgender:before{content:\"\"}.fa-transgender-alt:before{content:\"\"}.fa-venus-double:before{content:\"\"}.fa-mars-double:before{content:\"\"}.fa-venus-mars:before{content:\"\"}.fa-mars-stroke:before{content:\"\"}.fa-mars-stroke-v:before{content:\"\"}.fa-mars-stroke-h:before{content:\"\"}.fa-neuter:before{content:\"\"}.fa-genderless:before{content:\"\"}.fa-facebook-official:before{content:\"\"}.fa-pinterest-p:before{content:\"\"}.fa-whatsapp:before{content:\"\"}.fa-server:before{content:\"\"}.fa-user-plus:before{content:\"\"}.fa-user-times:before{content:\"\"}.fa-hotel:before,.fa-bed:before{content:\"\"}.fa-viacoin:before{content:\"\"}.fa-train:before{content:\"\"}.fa-subway:before{content:\"\"}.fa-medium:before{content:\"\"}.fa-yc:before,.fa-y-combinator:before{content:\"\"}.fa-optin-monster:before{content:\"\"}.fa-opencart:before{content:\"\"}.fa-expeditedssl:before{content:\"\"}.fa-battery-4:before,.fa-battery:before,.fa-battery-full:before{content:\"\"}.fa-battery-3:before,.fa-battery-three-quarters:before{content:\"\"}.fa-battery-2:before,.fa-battery-half:before{content:\"\"}.fa-battery-1:before,.fa-battery-quarter:before{content:\"\"}.fa-battery-0:before,.fa-battery-empty:before{content:\"\"}.fa-mouse-pointer:before{content:\"\"}.fa-i-cursor:before{content:\"\"}.fa-object-group:before{content:\"\"}.fa-object-ungroup:before{content:\"\"}.fa-sticky-note:before{content:\"\"}.fa-sticky-note-o:before{content:\"\"}.fa-cc-jcb:before{content:\"\"}.fa-cc-diners-club:before{content:\"\"}.fa-clone:before{content:\"\"}.fa-balance-scale:before{content:\"\"}.fa-hourglass-o:before{content:\"\"}.fa-hourglass-1:before,.fa-hourglass-start:before{content:\"\"}.fa-hourglass-2:before,.fa-hourglass-half:before{content:\"\"}.fa-hourglass-3:before,.fa-hourglass-end:before{content:\"\"}.fa-hourglass:before{content:\"\"}.fa-hand-grab-o:before,.fa-hand-rock-o:before{content:\"\"}.fa-hand-stop-o:before,.fa-hand-paper-o:before{content:\"\"}.fa-hand-scissors-o:before{content:\"\"}.fa-hand-lizard-o:before{content:\"\"}.fa-hand-spock-o:before{content:\"\"}.fa-hand-pointer-o:before{content:\"\"}.fa-hand-peace-o:before{content:\"\"}.fa-trademark:before{content:\"\"}.fa-registered:before{content:\"\"}.fa-creative-commons:before{content:\"\"}.fa-gg:before{content:\"\"}.fa-gg-circle:before{content:\"\"}.fa-tripadvisor:before{content:\"\"}.fa-odnoklassniki:before{content:\"\"}.fa-odnoklassniki-square:before{content:\"\"}.fa-get-pocket:before{content:\"\"}.fa-wikipedia-w:before{content:\"\"}.fa-safari:before{content:\"\"}.fa-chrome:before{content:\"\"}.fa-firefox:before{content:\"\"}.fa-opera:before{content:\"\"}.fa-internet-explorer:before{content:\"\"}.fa-tv:before,.fa-television:before{content:\"\"}.fa-contao:before{content:\"\"}.fa-500px:before{content:\"\"}.fa-amazon:before{content:\"\"}.fa-calendar-plus-o:before{content:\"\"}.fa-calendar-minus-o:before{content:\"\"}.fa-calendar-times-o:before{content:\"\"}.fa-calendar-check-o:before{content:\"\"}.fa-industry:before{content:\"\"}.fa-map-pin:before{content:\"\"}.fa-map-signs:before{content:\"\"}.fa-map-o:before{content:\"\"}.fa-map:before{content:\"\"}.fa-commenting:before{content:\"\"}.fa-commenting-o:before{content:\"\"}.fa-houzz:before{content:\"\"}.fa-vimeo:before{content:\"\"}.fa-black-tie:before{content:\"\"}.fa-fonticons:before{content:\"\"}.fa-reddit-alien:before{content:\"\"}.fa-edge:before{content:\"\"}.fa-credit-card-alt:before{content:\"\"}.fa-codiepie:before{content:\"\"}.fa-modx:before{content:\"\"}.fa-fort-awesome:before{content:\"\"}.fa-usb:before{content:\"\"}.fa-product-hunt:before{content:\"\"}.fa-mixcloud:before{content:\"\"}.fa-scribd:before{content:\"\"}.fa-pause-circle:before{content:\"\"}.fa-pause-circle-o:before{content:\"\"}.fa-stop-circle:before{content:\"\"}.fa-stop-circle-o:before{content:\"\"}.fa-shopping-bag:before{content:\"\"}.fa-shopping-basket:before{content:\"\"}.fa-hashtag:before{content:\"\"}.fa-bluetooth:before{content:\"\"}.fa-bluetooth-b:before{content:\"\"}.fa-percent:before{content:\"\"}.fa-gitlab:before{content:\"\"}.fa-wpbeginner:before{content:\"\"}.fa-wpforms:before{content:\"\"}.fa-envira:before{content:\"\"}.fa-universal-access:before{content:\"\"}.fa-wheelchair-alt:before{content:\"\"}.fa-question-circle-o:before{content:\"\"}.fa-blind:before{content:\"\"}.fa-audio-description:before{content:\"\"}.fa-volume-control-phone:before{content:\"\"}.fa-braille:before{content:\"\"}.fa-assistive-listening-systems:before{content:\"\"}.fa-asl-interpreting:before,.fa-american-sign-language-interpreting:before{content:\"\"}.fa-deafness:before,.fa-hard-of-hearing:before,.fa-deaf:before{content:\"\"}.fa-glide:before{content:\"\"}.fa-glide-g:before{content:\"\"}.fa-signing:before,.fa-sign-language:before{content:\"\"}.fa-low-vision:before{content:\"\"}.fa-viadeo:before{content:\"\"}.fa-viadeo-square:before{content:\"\"}.fa-snapchat:before{content:\"\"}.fa-snapchat-ghost:before{content:\"\"}.fa-snapchat-square:before{content:\"\"}.fa-pied-piper:before{content:\"\"}.fa-first-order:before{content:\"\"}.fa-yoast:before{content:\"\"}.fa-themeisle:before{content:\"\"}.fa-google-plus-circle:before,.fa-google-plus-official:before{content:\"\"}.fa-fa:before,.fa-font-awesome:before{content:\"\"}.fa-handshake-o:before{content:\"\"}.fa-envelope-open:before{content:\"\"}.fa-envelope-open-o:before{content:\"\"}.fa-linode:before{content:\"\"}.fa-address-book:before{content:\"\"}.fa-address-book-o:before{content:\"\"}.fa-vcard:before,.fa-address-card:before{content:\"\"}.fa-vcard-o:before,.fa-address-card-o:before{content:\"\"}.fa-user-circle:before{content:\"\"}.fa-user-circle-o:before{content:\"\"}.fa-user-o:before{content:\"\"}.fa-id-badge:before{content:\"\"}.fa-drivers-license:before,.fa-id-card:before{content:\"\"}.fa-drivers-license-o:before,.fa-id-card-o:before{content:\"\"}.fa-quora:before{content:\"\"}.fa-free-code-camp:before{content:\"\"}.fa-telegram:before{content:\"\"}.fa-thermometer-4:before,.fa-thermometer:before,.fa-thermometer-full:before{content:\"\"}.fa-thermometer-3:before,.fa-thermometer-three-quarters:before{content:\"\"}.fa-thermometer-2:before,.fa-thermometer-half:before{content:\"\"}.fa-thermometer-1:before,.fa-thermometer-quarter:before{content:\"\"}.fa-thermometer-0:before,.fa-thermometer-empty:before{content:\"\"}.fa-shower:before{content:\"\"}.fa-bathtub:before,.fa-s15:before,.fa-bath:before{content:\"\"}.fa-podcast:before{content:\"\"}.fa-window-maximize:before{content:\"\"}.fa-window-minimize:before{content:\"\"}.fa-window-restore:before{content:\"\"}.fa-times-rectangle:before,.fa-window-close:before{content:\"\"}.fa-times-rectangle-o:before,.fa-window-close-o:before{content:\"\"}.fa-bandcamp:before{content:\"\"}.fa-grav:before{content:\"\"}.fa-etsy:before{content:\"\"}.fa-imdb:before{content:\"\"}.fa-ravelry:before{content:\"\"}.fa-eercast:before{content:\"\"}.fa-microchip:before{content:\"\"}.fa-snowflake-o:before{content:\"\"}.fa-superpowers:before{content:\"\"}.fa-wpexplorer:before{content:\"\"}.fa-meetup:before{content:\"\"}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto}","/*!\n * Font Awesome 4.7.0 by @davegandy - http://fontawesome.io - @fontawesome\n * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License)\n */\n/* FONT PATH\n * -------------------------- */\n@font-face {\n font-family: 'FontAwesome';\n src: url('../fonts/fontawesome-webfont.eot?v=4.7.0');\n src: url('../fonts/fontawesome-webfont.eot?#iefix&v=4.7.0') format('embedded-opentype'), url('../fonts/fontawesome-webfont.woff2?v=4.7.0') format('woff2'), url('../fonts/fontawesome-webfont.woff?v=4.7.0') format('woff'), url('../fonts/fontawesome-webfont.ttf?v=4.7.0') format('truetype'), url('../fonts/fontawesome-webfont.svg?v=4.7.0#fontawesomeregular') format('svg');\n font-weight: normal;\n font-style: normal;\n}\n.fa {\n display: inline-block;\n font: normal normal normal 14px/1 FontAwesome;\n font-size: inherit;\n text-rendering: auto;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n}\n/* makes the font 33% larger relative to the icon container */\n.fa-lg {\n font-size: 1.33333333em;\n line-height: 0.75em;\n vertical-align: -15%;\n}\n.fa-2x {\n font-size: 2em;\n}\n.fa-3x {\n font-size: 3em;\n}\n.fa-4x {\n font-size: 4em;\n}\n.fa-5x {\n font-size: 5em;\n}\n.fa-fw {\n width: 1.28571429em;\n text-align: center;\n}\n.fa-ul {\n padding-left: 0;\n margin-left: 2.14285714em;\n list-style-type: none;\n}\n.fa-ul > li {\n position: relative;\n}\n.fa-li {\n position: absolute;\n left: -2.14285714em;\n width: 2.14285714em;\n top: 0.14285714em;\n text-align: center;\n}\n.fa-li.fa-lg {\n left: -1.85714286em;\n}\n.fa-border {\n padding: .2em .25em .15em;\n border: solid 0.08em #eeeeee;\n border-radius: .1em;\n}\n.fa-pull-left {\n float: left;\n}\n.fa-pull-right {\n float: right;\n}\n.fa.fa-pull-left {\n margin-right: .3em;\n}\n.fa.fa-pull-right {\n margin-left: .3em;\n}\n/* Deprecated as of 4.4.0 */\n.pull-right {\n float: right;\n}\n.pull-left {\n float: left;\n}\n.fa.pull-left {\n margin-right: .3em;\n}\n.fa.pull-right {\n margin-left: .3em;\n}\n.fa-spin {\n -webkit-animation: fa-spin 2s infinite linear;\n animation: fa-spin 2s infinite linear;\n}\n.fa-pulse {\n -webkit-animation: fa-spin 1s infinite steps(8);\n animation: fa-spin 1s infinite steps(8);\n}\n@-webkit-keyframes fa-spin {\n 0% {\n -webkit-transform: rotate(0deg);\n transform: rotate(0deg);\n }\n 100% {\n -webkit-transform: rotate(359deg);\n transform: rotate(359deg);\n }\n}\n@keyframes fa-spin {\n 0% {\n -webkit-transform: rotate(0deg);\n transform: rotate(0deg);\n }\n 100% {\n -webkit-transform: rotate(359deg);\n transform: rotate(359deg);\n }\n}\n.fa-rotate-90 {\n -ms-filter: \"progid:DXImageTransform.Microsoft.BasicImage(rotation=1)\";\n -webkit-transform: rotate(90deg);\n -ms-transform: rotate(90deg);\n transform: rotate(90deg);\n}\n.fa-rotate-180 {\n -ms-filter: \"progid:DXImageTransform.Microsoft.BasicImage(rotation=2)\";\n -webkit-transform: rotate(180deg);\n -ms-transform: rotate(180deg);\n transform: rotate(180deg);\n}\n.fa-rotate-270 {\n -ms-filter: \"progid:DXImageTransform.Microsoft.BasicImage(rotation=3)\";\n -webkit-transform: rotate(270deg);\n -ms-transform: rotate(270deg);\n transform: rotate(270deg);\n}\n.fa-flip-horizontal {\n -ms-filter: \"progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)\";\n -webkit-transform: scale(-1, 1);\n -ms-transform: scale(-1, 1);\n transform: scale(-1, 1);\n}\n.fa-flip-vertical {\n -ms-filter: \"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)\";\n -webkit-transform: scale(1, -1);\n -ms-transform: scale(1, -1);\n transform: scale(1, -1);\n}\n:root .fa-rotate-90,\n:root .fa-rotate-180,\n:root .fa-rotate-270,\n:root .fa-flip-horizontal,\n:root .fa-flip-vertical {\n filter: none;\n}\n.fa-stack {\n position: relative;\n display: inline-block;\n width: 2em;\n height: 2em;\n line-height: 2em;\n vertical-align: middle;\n}\n.fa-stack-1x,\n.fa-stack-2x {\n position: absolute;\n left: 0;\n width: 100%;\n text-align: center;\n}\n.fa-stack-1x {\n line-height: inherit;\n}\n.fa-stack-2x {\n font-size: 2em;\n}\n.fa-inverse {\n color: #ffffff;\n}\n/* Font Awesome uses the Unicode Private Use Area (PUA) to ensure screen\n readers do not read off random characters that represent icons */\n.fa-glass:before {\n content: \"\\f000\";\n}\n.fa-music:before {\n content: \"\\f001\";\n}\n.fa-search:before {\n content: \"\\f002\";\n}\n.fa-envelope-o:before {\n content: \"\\f003\";\n}\n.fa-heart:before {\n content: \"\\f004\";\n}\n.fa-star:before {\n content: \"\\f005\";\n}\n.fa-star-o:before {\n content: \"\\f006\";\n}\n.fa-user:before {\n content: \"\\f007\";\n}\n.fa-film:before {\n content: \"\\f008\";\n}\n.fa-th-large:before {\n content: \"\\f009\";\n}\n.fa-th:before {\n content: \"\\f00a\";\n}\n.fa-th-list:before {\n content: \"\\f00b\";\n}\n.fa-check:before {\n content: \"\\f00c\";\n}\n.fa-remove:before,\n.fa-close:before,\n.fa-times:before {\n content: \"\\f00d\";\n}\n.fa-search-plus:before {\n content: \"\\f00e\";\n}\n.fa-search-minus:before {\n content: \"\\f010\";\n}\n.fa-power-off:before {\n content: \"\\f011\";\n}\n.fa-signal:before {\n content: \"\\f012\";\n}\n.fa-gear:before,\n.fa-cog:before {\n content: \"\\f013\";\n}\n.fa-trash-o:before {\n content: \"\\f014\";\n}\n.fa-home:before {\n content: \"\\f015\";\n}\n.fa-file-o:before {\n content: \"\\f016\";\n}\n.fa-clock-o:before {\n content: \"\\f017\";\n}\n.fa-road:before {\n content: \"\\f018\";\n}\n.fa-download:before {\n content: \"\\f019\";\n}\n.fa-arrow-circle-o-down:before {\n content: \"\\f01a\";\n}\n.fa-arrow-circle-o-up:before {\n content: \"\\f01b\";\n}\n.fa-inbox:before {\n content: \"\\f01c\";\n}\n.fa-play-circle-o:before {\n content: \"\\f01d\";\n}\n.fa-rotate-right:before,\n.fa-repeat:before {\n content: \"\\f01e\";\n}\n.fa-refresh:before {\n content: \"\\f021\";\n}\n.fa-list-alt:before {\n content: \"\\f022\";\n}\n.fa-lock:before {\n content: \"\\f023\";\n}\n.fa-flag:before {\n content: \"\\f024\";\n}\n.fa-headphones:before {\n content: \"\\f025\";\n}\n.fa-volume-off:before {\n content: \"\\f026\";\n}\n.fa-volume-down:before {\n content: \"\\f027\";\n}\n.fa-volume-up:before {\n content: \"\\f028\";\n}\n.fa-qrcode:before {\n content: \"\\f029\";\n}\n.fa-barcode:before {\n content: \"\\f02a\";\n}\n.fa-tag:before {\n content: \"\\f02b\";\n}\n.fa-tags:before {\n content: \"\\f02c\";\n}\n.fa-book:before {\n content: \"\\f02d\";\n}\n.fa-bookmark:before {\n content: \"\\f02e\";\n}\n.fa-print:before {\n content: \"\\f02f\";\n}\n.fa-camera:before {\n content: \"\\f030\";\n}\n.fa-font:before {\n content: \"\\f031\";\n}\n.fa-bold:before {\n content: \"\\f032\";\n}\n.fa-italic:before {\n content: \"\\f033\";\n}\n.fa-text-height:before {\n content: \"\\f034\";\n}\n.fa-text-width:before {\n content: \"\\f035\";\n}\n.fa-align-left:before {\n content: \"\\f036\";\n}\n.fa-align-center:before {\n content: \"\\f037\";\n}\n.fa-align-right:before {\n content: \"\\f038\";\n}\n.fa-align-justify:before {\n content: \"\\f039\";\n}\n.fa-list:before {\n content: \"\\f03a\";\n}\n.fa-dedent:before,\n.fa-outdent:before {\n content: \"\\f03b\";\n}\n.fa-indent:before {\n content: \"\\f03c\";\n}\n.fa-video-camera:before {\n content: \"\\f03d\";\n}\n.fa-photo:before,\n.fa-image:before,\n.fa-picture-o:before {\n content: \"\\f03e\";\n}\n.fa-pencil:before {\n content: \"\\f040\";\n}\n.fa-map-marker:before {\n content: \"\\f041\";\n}\n.fa-adjust:before {\n content: \"\\f042\";\n}\n.fa-tint:before {\n content: \"\\f043\";\n}\n.fa-edit:before,\n.fa-pencil-square-o:before {\n content: \"\\f044\";\n}\n.fa-share-square-o:before {\n content: \"\\f045\";\n}\n.fa-check-square-o:before {\n content: \"\\f046\";\n}\n.fa-arrows:before {\n content: \"\\f047\";\n}\n.fa-step-backward:before {\n content: \"\\f048\";\n}\n.fa-fast-backward:before {\n content: \"\\f049\";\n}\n.fa-backward:before {\n content: \"\\f04a\";\n}\n.fa-play:before {\n content: \"\\f04b\";\n}\n.fa-pause:before {\n content: \"\\f04c\";\n}\n.fa-stop:before {\n content: \"\\f04d\";\n}\n.fa-forward:before {\n content: \"\\f04e\";\n}\n.fa-fast-forward:before {\n content: \"\\f050\";\n}\n.fa-step-forward:before {\n content: \"\\f051\";\n}\n.fa-eject:before {\n content: \"\\f052\";\n}\n.fa-chevron-left:before {\n content: \"\\f053\";\n}\n.fa-chevron-right:before {\n content: \"\\f054\";\n}\n.fa-plus-circle:before {\n content: \"\\f055\";\n}\n.fa-minus-circle:before {\n content: \"\\f056\";\n}\n.fa-times-circle:before {\n content: \"\\f057\";\n}\n.fa-check-circle:before {\n content: \"\\f058\";\n}\n.fa-question-circle:before {\n content: \"\\f059\";\n}\n.fa-info-circle:before {\n content: \"\\f05a\";\n}\n.fa-crosshairs:before {\n content: \"\\f05b\";\n}\n.fa-times-circle-o:before {\n content: \"\\f05c\";\n}\n.fa-check-circle-o:before {\n content: \"\\f05d\";\n}\n.fa-ban:before {\n content: \"\\f05e\";\n}\n.fa-arrow-left:before {\n content: \"\\f060\";\n}\n.fa-arrow-right:before {\n content: \"\\f061\";\n}\n.fa-arrow-up:before {\n content: \"\\f062\";\n}\n.fa-arrow-down:before {\n content: \"\\f063\";\n}\n.fa-mail-forward:before,\n.fa-share:before {\n content: \"\\f064\";\n}\n.fa-expand:before {\n content: \"\\f065\";\n}\n.fa-compress:before {\n content: \"\\f066\";\n}\n.fa-plus:before {\n content: \"\\f067\";\n}\n.fa-minus:before {\n content: \"\\f068\";\n}\n.fa-asterisk:before {\n content: \"\\f069\";\n}\n.fa-exclamation-circle:before {\n content: \"\\f06a\";\n}\n.fa-gift:before {\n content: \"\\f06b\";\n}\n.fa-leaf:before {\n content: \"\\f06c\";\n}\n.fa-fire:before {\n content: \"\\f06d\";\n}\n.fa-eye:before {\n content: \"\\f06e\";\n}\n.fa-eye-slash:before {\n content: \"\\f070\";\n}\n.fa-warning:before,\n.fa-exclamation-triangle:before {\n content: \"\\f071\";\n}\n.fa-plane:before {\n content: \"\\f072\";\n}\n.fa-calendar:before {\n content: \"\\f073\";\n}\n.fa-random:before {\n content: \"\\f074\";\n}\n.fa-comment:before {\n content: \"\\f075\";\n}\n.fa-magnet:before {\n content: \"\\f076\";\n}\n.fa-chevron-up:before {\n content: \"\\f077\";\n}\n.fa-chevron-down:before {\n content: \"\\f078\";\n}\n.fa-retweet:before {\n content: \"\\f079\";\n}\n.fa-shopping-cart:before {\n content: \"\\f07a\";\n}\n.fa-folder:before {\n content: \"\\f07b\";\n}\n.fa-folder-open:before {\n content: \"\\f07c\";\n}\n.fa-arrows-v:before {\n content: \"\\f07d\";\n}\n.fa-arrows-h:before {\n content: \"\\f07e\";\n}\n.fa-bar-chart-o:before,\n.fa-bar-chart:before {\n content: \"\\f080\";\n}\n.fa-twitter-square:before {\n content: \"\\f081\";\n}\n.fa-facebook-square:before {\n content: \"\\f082\";\n}\n.fa-camera-retro:before {\n content: \"\\f083\";\n}\n.fa-key:before {\n content: \"\\f084\";\n}\n.fa-gears:before,\n.fa-cogs:before {\n content: \"\\f085\";\n}\n.fa-comments:before {\n content: \"\\f086\";\n}\n.fa-thumbs-o-up:before {\n content: \"\\f087\";\n}\n.fa-thumbs-o-down:before {\n content: \"\\f088\";\n}\n.fa-star-half:before {\n content: \"\\f089\";\n}\n.fa-heart-o:before {\n content: \"\\f08a\";\n}\n.fa-sign-out:before {\n content: \"\\f08b\";\n}\n.fa-linkedin-square:before {\n content: \"\\f08c\";\n}\n.fa-thumb-tack:before {\n content: \"\\f08d\";\n}\n.fa-external-link:before {\n content: \"\\f08e\";\n}\n.fa-sign-in:before {\n content: \"\\f090\";\n}\n.fa-trophy:before {\n content: \"\\f091\";\n}\n.fa-github-square:before {\n content: \"\\f092\";\n}\n.fa-upload:before {\n content: \"\\f093\";\n}\n.fa-lemon-o:before {\n content: \"\\f094\";\n}\n.fa-phone:before {\n content: \"\\f095\";\n}\n.fa-square-o:before {\n content: \"\\f096\";\n}\n.fa-bookmark-o:before {\n content: \"\\f097\";\n}\n.fa-phone-square:before {\n content: \"\\f098\";\n}\n.fa-twitter:before {\n content: \"\\f099\";\n}\n.fa-facebook-f:before,\n.fa-facebook:before {\n content: \"\\f09a\";\n}\n.fa-github:before {\n content: \"\\f09b\";\n}\n.fa-unlock:before {\n content: \"\\f09c\";\n}\n.fa-credit-card:before {\n content: \"\\f09d\";\n}\n.fa-feed:before,\n.fa-rss:before {\n content: \"\\f09e\";\n}\n.fa-hdd-o:before {\n content: \"\\f0a0\";\n}\n.fa-bullhorn:before {\n content: \"\\f0a1\";\n}\n.fa-bell:before {\n content: \"\\f0f3\";\n}\n.fa-certificate:before {\n content: \"\\f0a3\";\n}\n.fa-hand-o-right:before {\n content: \"\\f0a4\";\n}\n.fa-hand-o-left:before {\n content: \"\\f0a5\";\n}\n.fa-hand-o-up:before {\n content: \"\\f0a6\";\n}\n.fa-hand-o-down:before {\n content: \"\\f0a7\";\n}\n.fa-arrow-circle-left:before {\n content: \"\\f0a8\";\n}\n.fa-arrow-circle-right:before {\n content: \"\\f0a9\";\n}\n.fa-arrow-circle-up:before {\n content: \"\\f0aa\";\n}\n.fa-arrow-circle-down:before {\n content: \"\\f0ab\";\n}\n.fa-globe:before {\n content: \"\\f0ac\";\n}\n.fa-wrench:before {\n content: \"\\f0ad\";\n}\n.fa-tasks:before {\n content: \"\\f0ae\";\n}\n.fa-filter:before {\n content: \"\\f0b0\";\n}\n.fa-briefcase:before {\n content: \"\\f0b1\";\n}\n.fa-arrows-alt:before {\n content: \"\\f0b2\";\n}\n.fa-group:before,\n.fa-users:before {\n content: \"\\f0c0\";\n}\n.fa-chain:before,\n.fa-link:before {\n content: \"\\f0c1\";\n}\n.fa-cloud:before {\n content: \"\\f0c2\";\n}\n.fa-flask:before {\n content: \"\\f0c3\";\n}\n.fa-cut:before,\n.fa-scissors:before {\n content: \"\\f0c4\";\n}\n.fa-copy:before,\n.fa-files-o:before {\n content: \"\\f0c5\";\n}\n.fa-paperclip:before {\n content: \"\\f0c6\";\n}\n.fa-save:before,\n.fa-floppy-o:before {\n content: \"\\f0c7\";\n}\n.fa-square:before {\n content: \"\\f0c8\";\n}\n.fa-navicon:before,\n.fa-reorder:before,\n.fa-bars:before {\n content: \"\\f0c9\";\n}\n.fa-list-ul:before {\n content: \"\\f0ca\";\n}\n.fa-list-ol:before {\n content: \"\\f0cb\";\n}\n.fa-strikethrough:before {\n content: \"\\f0cc\";\n}\n.fa-underline:before {\n content: \"\\f0cd\";\n}\n.fa-table:before {\n content: \"\\f0ce\";\n}\n.fa-magic:before {\n content: \"\\f0d0\";\n}\n.fa-truck:before {\n content: \"\\f0d1\";\n}\n.fa-pinterest:before {\n content: \"\\f0d2\";\n}\n.fa-pinterest-square:before {\n content: \"\\f0d3\";\n}\n.fa-google-plus-square:before {\n content: \"\\f0d4\";\n}\n.fa-google-plus:before {\n content: \"\\f0d5\";\n}\n.fa-money:before {\n content: \"\\f0d6\";\n}\n.fa-caret-down:before {\n content: \"\\f0d7\";\n}\n.fa-caret-up:before {\n content: \"\\f0d8\";\n}\n.fa-caret-left:before {\n content: \"\\f0d9\";\n}\n.fa-caret-right:before {\n content: \"\\f0da\";\n}\n.fa-columns:before {\n content: \"\\f0db\";\n}\n.fa-unsorted:before,\n.fa-sort:before {\n content: \"\\f0dc\";\n}\n.fa-sort-down:before,\n.fa-sort-desc:before {\n content: \"\\f0dd\";\n}\n.fa-sort-up:before,\n.fa-sort-asc:before {\n content: \"\\f0de\";\n}\n.fa-envelope:before {\n content: \"\\f0e0\";\n}\n.fa-linkedin:before {\n content: \"\\f0e1\";\n}\n.fa-rotate-left:before,\n.fa-undo:before {\n content: \"\\f0e2\";\n}\n.fa-legal:before,\n.fa-gavel:before {\n content: \"\\f0e3\";\n}\n.fa-dashboard:before,\n.fa-tachometer:before {\n content: \"\\f0e4\";\n}\n.fa-comment-o:before {\n content: \"\\f0e5\";\n}\n.fa-comments-o:before {\n content: \"\\f0e6\";\n}\n.fa-flash:before,\n.fa-bolt:before {\n content: \"\\f0e7\";\n}\n.fa-sitemap:before {\n content: \"\\f0e8\";\n}\n.fa-umbrella:before {\n content: \"\\f0e9\";\n}\n.fa-paste:before,\n.fa-clipboard:before {\n content: \"\\f0ea\";\n}\n.fa-lightbulb-o:before {\n content: \"\\f0eb\";\n}\n.fa-exchange:before {\n content: \"\\f0ec\";\n}\n.fa-cloud-download:before {\n content: \"\\f0ed\";\n}\n.fa-cloud-upload:before {\n content: \"\\f0ee\";\n}\n.fa-user-md:before {\n content: \"\\f0f0\";\n}\n.fa-stethoscope:before {\n content: \"\\f0f1\";\n}\n.fa-suitcase:before {\n content: \"\\f0f2\";\n}\n.fa-bell-o:before {\n content: \"\\f0a2\";\n}\n.fa-coffee:before {\n content: \"\\f0f4\";\n}\n.fa-cutlery:before {\n content: \"\\f0f5\";\n}\n.fa-file-text-o:before {\n content: \"\\f0f6\";\n}\n.fa-building-o:before {\n content: \"\\f0f7\";\n}\n.fa-hospital-o:before {\n content: \"\\f0f8\";\n}\n.fa-ambulance:before {\n content: \"\\f0f9\";\n}\n.fa-medkit:before {\n content: \"\\f0fa\";\n}\n.fa-fighter-jet:before {\n content: \"\\f0fb\";\n}\n.fa-beer:before {\n content: \"\\f0fc\";\n}\n.fa-h-square:before {\n content: \"\\f0fd\";\n}\n.fa-plus-square:before {\n content: \"\\f0fe\";\n}\n.fa-angle-double-left:before {\n content: \"\\f100\";\n}\n.fa-angle-double-right:before {\n content: \"\\f101\";\n}\n.fa-angle-double-up:before {\n content: \"\\f102\";\n}\n.fa-angle-double-down:before {\n content: \"\\f103\";\n}\n.fa-angle-left:before {\n content: \"\\f104\";\n}\n.fa-angle-right:before {\n content: \"\\f105\";\n}\n.fa-angle-up:before {\n content: \"\\f106\";\n}\n.fa-angle-down:before {\n content: \"\\f107\";\n}\n.fa-desktop:before {\n content: \"\\f108\";\n}\n.fa-laptop:before {\n content: \"\\f109\";\n}\n.fa-tablet:before {\n content: \"\\f10a\";\n}\n.fa-mobile-phone:before,\n.fa-mobile:before {\n content: \"\\f10b\";\n}\n.fa-circle-o:before {\n content: \"\\f10c\";\n}\n.fa-quote-left:before {\n content: \"\\f10d\";\n}\n.fa-quote-right:before {\n content: \"\\f10e\";\n}\n.fa-spinner:before {\n content: \"\\f110\";\n}\n.fa-circle:before {\n content: \"\\f111\";\n}\n.fa-mail-reply:before,\n.fa-reply:before {\n content: \"\\f112\";\n}\n.fa-github-alt:before {\n content: \"\\f113\";\n}\n.fa-folder-o:before {\n content: \"\\f114\";\n}\n.fa-folder-open-o:before {\n content: \"\\f115\";\n}\n.fa-smile-o:before {\n content: \"\\f118\";\n}\n.fa-frown-o:before {\n content: \"\\f119\";\n}\n.fa-meh-o:before {\n content: \"\\f11a\";\n}\n.fa-gamepad:before {\n content: \"\\f11b\";\n}\n.fa-keyboard-o:before {\n content: \"\\f11c\";\n}\n.fa-flag-o:before {\n content: \"\\f11d\";\n}\n.fa-flag-checkered:before {\n content: \"\\f11e\";\n}\n.fa-terminal:before {\n content: \"\\f120\";\n}\n.fa-code:before {\n content: \"\\f121\";\n}\n.fa-mail-reply-all:before,\n.fa-reply-all:before {\n content: \"\\f122\";\n}\n.fa-star-half-empty:before,\n.fa-star-half-full:before,\n.fa-star-half-o:before {\n content: \"\\f123\";\n}\n.fa-location-arrow:before {\n content: \"\\f124\";\n}\n.fa-crop:before {\n content: \"\\f125\";\n}\n.fa-code-fork:before {\n content: \"\\f126\";\n}\n.fa-unlink:before,\n.fa-chain-broken:before {\n content: \"\\f127\";\n}\n.fa-question:before {\n content: \"\\f128\";\n}\n.fa-info:before {\n content: \"\\f129\";\n}\n.fa-exclamation:before {\n content: \"\\f12a\";\n}\n.fa-superscript:before {\n content: \"\\f12b\";\n}\n.fa-subscript:before {\n content: \"\\f12c\";\n}\n.fa-eraser:before {\n content: \"\\f12d\";\n}\n.fa-puzzle-piece:before {\n content: \"\\f12e\";\n}\n.fa-microphone:before {\n content: \"\\f130\";\n}\n.fa-microphone-slash:before {\n content: \"\\f131\";\n}\n.fa-shield:before {\n content: \"\\f132\";\n}\n.fa-calendar-o:before {\n content: \"\\f133\";\n}\n.fa-fire-extinguisher:before {\n content: \"\\f134\";\n}\n.fa-rocket:before {\n content: \"\\f135\";\n}\n.fa-maxcdn:before {\n content: \"\\f136\";\n}\n.fa-chevron-circle-left:before {\n content: \"\\f137\";\n}\n.fa-chevron-circle-right:before {\n content: \"\\f138\";\n}\n.fa-chevron-circle-up:before {\n content: \"\\f139\";\n}\n.fa-chevron-circle-down:before {\n content: \"\\f13a\";\n}\n.fa-html5:before {\n content: \"\\f13b\";\n}\n.fa-css3:before {\n content: \"\\f13c\";\n}\n.fa-anchor:before {\n content: \"\\f13d\";\n}\n.fa-unlock-alt:before {\n content: \"\\f13e\";\n}\n.fa-bullseye:before {\n content: \"\\f140\";\n}\n.fa-ellipsis-h:before {\n content: \"\\f141\";\n}\n.fa-ellipsis-v:before {\n content: \"\\f142\";\n}\n.fa-rss-square:before {\n content: \"\\f143\";\n}\n.fa-play-circle:before {\n content: \"\\f144\";\n}\n.fa-ticket:before {\n content: \"\\f145\";\n}\n.fa-minus-square:before {\n content: \"\\f146\";\n}\n.fa-minus-square-o:before {\n content: \"\\f147\";\n}\n.fa-level-up:before {\n content: \"\\f148\";\n}\n.fa-level-down:before {\n content: \"\\f149\";\n}\n.fa-check-square:before {\n content: \"\\f14a\";\n}\n.fa-pencil-square:before {\n content: \"\\f14b\";\n}\n.fa-external-link-square:before {\n content: \"\\f14c\";\n}\n.fa-share-square:before {\n content: \"\\f14d\";\n}\n.fa-compass:before {\n content: \"\\f14e\";\n}\n.fa-toggle-down:before,\n.fa-caret-square-o-down:before {\n content: \"\\f150\";\n}\n.fa-toggle-up:before,\n.fa-caret-square-o-up:before {\n content: \"\\f151\";\n}\n.fa-toggle-right:before,\n.fa-caret-square-o-right:before {\n content: \"\\f152\";\n}\n.fa-euro:before,\n.fa-eur:before {\n content: \"\\f153\";\n}\n.fa-gbp:before {\n content: \"\\f154\";\n}\n.fa-dollar:before,\n.fa-usd:before {\n content: \"\\f155\";\n}\n.fa-rupee:before,\n.fa-inr:before {\n content: \"\\f156\";\n}\n.fa-cny:before,\n.fa-rmb:before,\n.fa-yen:before,\n.fa-jpy:before {\n content: \"\\f157\";\n}\n.fa-ruble:before,\n.fa-rouble:before,\n.fa-rub:before {\n content: \"\\f158\";\n}\n.fa-won:before,\n.fa-krw:before {\n content: \"\\f159\";\n}\n.fa-bitcoin:before,\n.fa-btc:before {\n content: \"\\f15a\";\n}\n.fa-file:before {\n content: \"\\f15b\";\n}\n.fa-file-text:before {\n content: \"\\f15c\";\n}\n.fa-sort-alpha-asc:before {\n content: \"\\f15d\";\n}\n.fa-sort-alpha-desc:before {\n content: \"\\f15e\";\n}\n.fa-sort-amount-asc:before {\n content: \"\\f160\";\n}\n.fa-sort-amount-desc:before {\n content: \"\\f161\";\n}\n.fa-sort-numeric-asc:before {\n content: \"\\f162\";\n}\n.fa-sort-numeric-desc:before {\n content: \"\\f163\";\n}\n.fa-thumbs-up:before {\n content: \"\\f164\";\n}\n.fa-thumbs-down:before {\n content: \"\\f165\";\n}\n.fa-youtube-square:before {\n content: \"\\f166\";\n}\n.fa-youtube:before {\n content: \"\\f167\";\n}\n.fa-xing:before {\n content: \"\\f168\";\n}\n.fa-xing-square:before {\n content: \"\\f169\";\n}\n.fa-youtube-play:before {\n content: \"\\f16a\";\n}\n.fa-dropbox:before {\n content: \"\\f16b\";\n}\n.fa-stack-overflow:before {\n content: \"\\f16c\";\n}\n.fa-instagram:before {\n content: \"\\f16d\";\n}\n.fa-flickr:before {\n content: \"\\f16e\";\n}\n.fa-adn:before {\n content: \"\\f170\";\n}\n.fa-bitbucket:before {\n content: \"\\f171\";\n}\n.fa-bitbucket-square:before {\n content: \"\\f172\";\n}\n.fa-tumblr:before {\n content: \"\\f173\";\n}\n.fa-tumblr-square:before {\n content: \"\\f174\";\n}\n.fa-long-arrow-down:before {\n content: \"\\f175\";\n}\n.fa-long-arrow-up:before {\n content: \"\\f176\";\n}\n.fa-long-arrow-left:before {\n content: \"\\f177\";\n}\n.fa-long-arrow-right:before {\n content: \"\\f178\";\n}\n.fa-apple:before {\n content: \"\\f179\";\n}\n.fa-windows:before {\n content: \"\\f17a\";\n}\n.fa-android:before {\n content: \"\\f17b\";\n}\n.fa-linux:before {\n content: \"\\f17c\";\n}\n.fa-dribbble:before {\n content: \"\\f17d\";\n}\n.fa-skype:before {\n content: \"\\f17e\";\n}\n.fa-foursquare:before {\n content: \"\\f180\";\n}\n.fa-trello:before {\n content: \"\\f181\";\n}\n.fa-female:before {\n content: \"\\f182\";\n}\n.fa-male:before {\n content: \"\\f183\";\n}\n.fa-gittip:before,\n.fa-gratipay:before {\n content: \"\\f184\";\n}\n.fa-sun-o:before {\n content: \"\\f185\";\n}\n.fa-moon-o:before {\n content: \"\\f186\";\n}\n.fa-archive:before {\n content: \"\\f187\";\n}\n.fa-bug:before {\n content: \"\\f188\";\n}\n.fa-vk:before {\n content: \"\\f189\";\n}\n.fa-weibo:before {\n content: \"\\f18a\";\n}\n.fa-renren:before {\n content: \"\\f18b\";\n}\n.fa-pagelines:before {\n content: \"\\f18c\";\n}\n.fa-stack-exchange:before {\n content: \"\\f18d\";\n}\n.fa-arrow-circle-o-right:before {\n content: \"\\f18e\";\n}\n.fa-arrow-circle-o-left:before {\n content: \"\\f190\";\n}\n.fa-toggle-left:before,\n.fa-caret-square-o-left:before {\n content: \"\\f191\";\n}\n.fa-dot-circle-o:before {\n content: \"\\f192\";\n}\n.fa-wheelchair:before {\n content: \"\\f193\";\n}\n.fa-vimeo-square:before {\n content: \"\\f194\";\n}\n.fa-turkish-lira:before,\n.fa-try:before {\n content: \"\\f195\";\n}\n.fa-plus-square-o:before {\n content: \"\\f196\";\n}\n.fa-space-shuttle:before {\n content: \"\\f197\";\n}\n.fa-slack:before {\n content: \"\\f198\";\n}\n.fa-envelope-square:before {\n content: \"\\f199\";\n}\n.fa-wordpress:before {\n content: \"\\f19a\";\n}\n.fa-openid:before {\n content: \"\\f19b\";\n}\n.fa-institution:before,\n.fa-bank:before,\n.fa-university:before {\n content: \"\\f19c\";\n}\n.fa-mortar-board:before,\n.fa-graduation-cap:before {\n content: \"\\f19d\";\n}\n.fa-yahoo:before {\n content: \"\\f19e\";\n}\n.fa-google:before {\n content: \"\\f1a0\";\n}\n.fa-reddit:before {\n content: \"\\f1a1\";\n}\n.fa-reddit-square:before {\n content: \"\\f1a2\";\n}\n.fa-stumbleupon-circle:before {\n content: \"\\f1a3\";\n}\n.fa-stumbleupon:before {\n content: \"\\f1a4\";\n}\n.fa-delicious:before {\n content: \"\\f1a5\";\n}\n.fa-digg:before {\n content: \"\\f1a6\";\n}\n.fa-pied-piper-pp:before {\n content: \"\\f1a7\";\n}\n.fa-pied-piper-alt:before {\n content: \"\\f1a8\";\n}\n.fa-drupal:before {\n content: \"\\f1a9\";\n}\n.fa-joomla:before {\n content: \"\\f1aa\";\n}\n.fa-language:before {\n content: \"\\f1ab\";\n}\n.fa-fax:before {\n content: \"\\f1ac\";\n}\n.fa-building:before {\n content: \"\\f1ad\";\n}\n.fa-child:before {\n content: \"\\f1ae\";\n}\n.fa-paw:before {\n content: \"\\f1b0\";\n}\n.fa-spoon:before {\n content: \"\\f1b1\";\n}\n.fa-cube:before {\n content: \"\\f1b2\";\n}\n.fa-cubes:before {\n content: \"\\f1b3\";\n}\n.fa-behance:before {\n content: \"\\f1b4\";\n}\n.fa-behance-square:before {\n content: \"\\f1b5\";\n}\n.fa-steam:before {\n content: \"\\f1b6\";\n}\n.fa-steam-square:before {\n content: \"\\f1b7\";\n}\n.fa-recycle:before {\n content: \"\\f1b8\";\n}\n.fa-automobile:before,\n.fa-car:before {\n content: \"\\f1b9\";\n}\n.fa-cab:before,\n.fa-taxi:before {\n content: \"\\f1ba\";\n}\n.fa-tree:before {\n content: \"\\f1bb\";\n}\n.fa-spotify:before {\n content: \"\\f1bc\";\n}\n.fa-deviantart:before {\n content: \"\\f1bd\";\n}\n.fa-soundcloud:before {\n content: \"\\f1be\";\n}\n.fa-database:before {\n content: \"\\f1c0\";\n}\n.fa-file-pdf-o:before {\n content: \"\\f1c1\";\n}\n.fa-file-word-o:before {\n content: \"\\f1c2\";\n}\n.fa-file-excel-o:before {\n content: \"\\f1c3\";\n}\n.fa-file-powerpoint-o:before {\n content: \"\\f1c4\";\n}\n.fa-file-photo-o:before,\n.fa-file-picture-o:before,\n.fa-file-image-o:before {\n content: \"\\f1c5\";\n}\n.fa-file-zip-o:before,\n.fa-file-archive-o:before {\n content: \"\\f1c6\";\n}\n.fa-file-sound-o:before,\n.fa-file-audio-o:before {\n content: \"\\f1c7\";\n}\n.fa-file-movie-o:before,\n.fa-file-video-o:before {\n content: \"\\f1c8\";\n}\n.fa-file-code-o:before {\n content: \"\\f1c9\";\n}\n.fa-vine:before {\n content: \"\\f1ca\";\n}\n.fa-codepen:before {\n content: \"\\f1cb\";\n}\n.fa-jsfiddle:before {\n content: \"\\f1cc\";\n}\n.fa-life-bouy:before,\n.fa-life-buoy:before,\n.fa-life-saver:before,\n.fa-support:before,\n.fa-life-ring:before {\n content: \"\\f1cd\";\n}\n.fa-circle-o-notch:before {\n content: \"\\f1ce\";\n}\n.fa-ra:before,\n.fa-resistance:before,\n.fa-rebel:before {\n content: \"\\f1d0\";\n}\n.fa-ge:before,\n.fa-empire:before {\n content: \"\\f1d1\";\n}\n.fa-git-square:before {\n content: \"\\f1d2\";\n}\n.fa-git:before {\n content: \"\\f1d3\";\n}\n.fa-y-combinator-square:before,\n.fa-yc-square:before,\n.fa-hacker-news:before {\n content: \"\\f1d4\";\n}\n.fa-tencent-weibo:before {\n content: \"\\f1d5\";\n}\n.fa-qq:before {\n content: \"\\f1d6\";\n}\n.fa-wechat:before,\n.fa-weixin:before {\n content: \"\\f1d7\";\n}\n.fa-send:before,\n.fa-paper-plane:before {\n content: \"\\f1d8\";\n}\n.fa-send-o:before,\n.fa-paper-plane-o:before {\n content: \"\\f1d9\";\n}\n.fa-history:before {\n content: \"\\f1da\";\n}\n.fa-circle-thin:before {\n content: \"\\f1db\";\n}\n.fa-header:before {\n content: \"\\f1dc\";\n}\n.fa-paragraph:before {\n content: \"\\f1dd\";\n}\n.fa-sliders:before {\n content: \"\\f1de\";\n}\n.fa-share-alt:before {\n content: \"\\f1e0\";\n}\n.fa-share-alt-square:before {\n content: \"\\f1e1\";\n}\n.fa-bomb:before {\n content: \"\\f1e2\";\n}\n.fa-soccer-ball-o:before,\n.fa-futbol-o:before {\n content: \"\\f1e3\";\n}\n.fa-tty:before {\n content: \"\\f1e4\";\n}\n.fa-binoculars:before {\n content: \"\\f1e5\";\n}\n.fa-plug:before {\n content: \"\\f1e6\";\n}\n.fa-slideshare:before {\n content: \"\\f1e7\";\n}\n.fa-twitch:before {\n content: \"\\f1e8\";\n}\n.fa-yelp:before {\n content: \"\\f1e9\";\n}\n.fa-newspaper-o:before {\n content: \"\\f1ea\";\n}\n.fa-wifi:before {\n content: \"\\f1eb\";\n}\n.fa-calculator:before {\n content: \"\\f1ec\";\n}\n.fa-paypal:before {\n content: \"\\f1ed\";\n}\n.fa-google-wallet:before {\n content: \"\\f1ee\";\n}\n.fa-cc-visa:before {\n content: \"\\f1f0\";\n}\n.fa-cc-mastercard:before {\n content: \"\\f1f1\";\n}\n.fa-cc-discover:before {\n content: \"\\f1f2\";\n}\n.fa-cc-amex:before {\n content: \"\\f1f3\";\n}\n.fa-cc-paypal:before {\n content: \"\\f1f4\";\n}\n.fa-cc-stripe:before {\n content: \"\\f1f5\";\n}\n.fa-bell-slash:before {\n content: \"\\f1f6\";\n}\n.fa-bell-slash-o:before {\n content: \"\\f1f7\";\n}\n.fa-trash:before {\n content: \"\\f1f8\";\n}\n.fa-copyright:before {\n content: \"\\f1f9\";\n}\n.fa-at:before {\n content: \"\\f1fa\";\n}\n.fa-eyedropper:before {\n content: \"\\f1fb\";\n}\n.fa-paint-brush:before {\n content: \"\\f1fc\";\n}\n.fa-birthday-cake:before {\n content: \"\\f1fd\";\n}\n.fa-area-chart:before {\n content: \"\\f1fe\";\n}\n.fa-pie-chart:before {\n content: \"\\f200\";\n}\n.fa-line-chart:before {\n content: \"\\f201\";\n}\n.fa-lastfm:before {\n content: \"\\f202\";\n}\n.fa-lastfm-square:before {\n content: \"\\f203\";\n}\n.fa-toggle-off:before {\n content: \"\\f204\";\n}\n.fa-toggle-on:before {\n content: \"\\f205\";\n}\n.fa-bicycle:before {\n content: \"\\f206\";\n}\n.fa-bus:before {\n content: \"\\f207\";\n}\n.fa-ioxhost:before {\n content: \"\\f208\";\n}\n.fa-angellist:before {\n content: \"\\f209\";\n}\n.fa-cc:before {\n content: \"\\f20a\";\n}\n.fa-shekel:before,\n.fa-sheqel:before,\n.fa-ils:before {\n content: \"\\f20b\";\n}\n.fa-meanpath:before {\n content: \"\\f20c\";\n}\n.fa-buysellads:before {\n content: \"\\f20d\";\n}\n.fa-connectdevelop:before {\n content: \"\\f20e\";\n}\n.fa-dashcube:before {\n content: \"\\f210\";\n}\n.fa-forumbee:before {\n content: \"\\f211\";\n}\n.fa-leanpub:before {\n content: \"\\f212\";\n}\n.fa-sellsy:before {\n content: \"\\f213\";\n}\n.fa-shirtsinbulk:before {\n content: \"\\f214\";\n}\n.fa-simplybuilt:before {\n content: \"\\f215\";\n}\n.fa-skyatlas:before {\n content: \"\\f216\";\n}\n.fa-cart-plus:before {\n content: \"\\f217\";\n}\n.fa-cart-arrow-down:before {\n content: \"\\f218\";\n}\n.fa-diamond:before {\n content: \"\\f219\";\n}\n.fa-ship:before {\n content: \"\\f21a\";\n}\n.fa-user-secret:before {\n content: \"\\f21b\";\n}\n.fa-motorcycle:before {\n content: \"\\f21c\";\n}\n.fa-street-view:before {\n content: \"\\f21d\";\n}\n.fa-heartbeat:before {\n content: \"\\f21e\";\n}\n.fa-venus:before {\n content: \"\\f221\";\n}\n.fa-mars:before {\n content: \"\\f222\";\n}\n.fa-mercury:before {\n content: \"\\f223\";\n}\n.fa-intersex:before,\n.fa-transgender:before {\n content: \"\\f224\";\n}\n.fa-transgender-alt:before {\n content: \"\\f225\";\n}\n.fa-venus-double:before {\n content: \"\\f226\";\n}\n.fa-mars-double:before {\n content: \"\\f227\";\n}\n.fa-venus-mars:before {\n content: \"\\f228\";\n}\n.fa-mars-stroke:before {\n content: \"\\f229\";\n}\n.fa-mars-stroke-v:before {\n content: \"\\f22a\";\n}\n.fa-mars-stroke-h:before {\n content: \"\\f22b\";\n}\n.fa-neuter:before {\n content: \"\\f22c\";\n}\n.fa-genderless:before {\n content: \"\\f22d\";\n}\n.fa-facebook-official:before {\n content: \"\\f230\";\n}\n.fa-pinterest-p:before {\n content: \"\\f231\";\n}\n.fa-whatsapp:before {\n content: \"\\f232\";\n}\n.fa-server:before {\n content: \"\\f233\";\n}\n.fa-user-plus:before {\n content: \"\\f234\";\n}\n.fa-user-times:before {\n content: \"\\f235\";\n}\n.fa-hotel:before,\n.fa-bed:before {\n content: \"\\f236\";\n}\n.fa-viacoin:before {\n content: \"\\f237\";\n}\n.fa-train:before {\n content: \"\\f238\";\n}\n.fa-subway:before {\n content: \"\\f239\";\n}\n.fa-medium:before {\n content: \"\\f23a\";\n}\n.fa-yc:before,\n.fa-y-combinator:before {\n content: \"\\f23b\";\n}\n.fa-optin-monster:before {\n content: \"\\f23c\";\n}\n.fa-opencart:before {\n content: \"\\f23d\";\n}\n.fa-expeditedssl:before {\n content: \"\\f23e\";\n}\n.fa-battery-4:before,\n.fa-battery:before,\n.fa-battery-full:before {\n content: \"\\f240\";\n}\n.fa-battery-3:before,\n.fa-battery-three-quarters:before {\n content: \"\\f241\";\n}\n.fa-battery-2:before,\n.fa-battery-half:before {\n content: \"\\f242\";\n}\n.fa-battery-1:before,\n.fa-battery-quarter:before {\n content: \"\\f243\";\n}\n.fa-battery-0:before,\n.fa-battery-empty:before {\n content: \"\\f244\";\n}\n.fa-mouse-pointer:before {\n content: \"\\f245\";\n}\n.fa-i-cursor:before {\n content: \"\\f246\";\n}\n.fa-object-group:before {\n content: \"\\f247\";\n}\n.fa-object-ungroup:before {\n content: \"\\f248\";\n}\n.fa-sticky-note:before {\n content: \"\\f249\";\n}\n.fa-sticky-note-o:before {\n content: \"\\f24a\";\n}\n.fa-cc-jcb:before {\n content: \"\\f24b\";\n}\n.fa-cc-diners-club:before {\n content: \"\\f24c\";\n}\n.fa-clone:before {\n content: \"\\f24d\";\n}\n.fa-balance-scale:before {\n content: \"\\f24e\";\n}\n.fa-hourglass-o:before {\n content: \"\\f250\";\n}\n.fa-hourglass-1:before,\n.fa-hourglass-start:before {\n content: \"\\f251\";\n}\n.fa-hourglass-2:before,\n.fa-hourglass-half:before {\n content: \"\\f252\";\n}\n.fa-hourglass-3:before,\n.fa-hourglass-end:before {\n content: \"\\f253\";\n}\n.fa-hourglass:before {\n content: \"\\f254\";\n}\n.fa-hand-grab-o:before,\n.fa-hand-rock-o:before {\n content: \"\\f255\";\n}\n.fa-hand-stop-o:before,\n.fa-hand-paper-o:before {\n content: \"\\f256\";\n}\n.fa-hand-scissors-o:before {\n content: \"\\f257\";\n}\n.fa-hand-lizard-o:before {\n content: \"\\f258\";\n}\n.fa-hand-spock-o:before {\n content: \"\\f259\";\n}\n.fa-hand-pointer-o:before {\n content: \"\\f25a\";\n}\n.fa-hand-peace-o:before {\n content: \"\\f25b\";\n}\n.fa-trademark:before {\n content: \"\\f25c\";\n}\n.fa-registered:before {\n content: \"\\f25d\";\n}\n.fa-creative-commons:before {\n content: \"\\f25e\";\n}\n.fa-gg:before {\n content: \"\\f260\";\n}\n.fa-gg-circle:before {\n content: \"\\f261\";\n}\n.fa-tripadvisor:before {\n content: \"\\f262\";\n}\n.fa-odnoklassniki:before {\n content: \"\\f263\";\n}\n.fa-odnoklassniki-square:before {\n content: \"\\f264\";\n}\n.fa-get-pocket:before {\n content: \"\\f265\";\n}\n.fa-wikipedia-w:before {\n content: \"\\f266\";\n}\n.fa-safari:before {\n content: \"\\f267\";\n}\n.fa-chrome:before {\n content: \"\\f268\";\n}\n.fa-firefox:before {\n content: \"\\f269\";\n}\n.fa-opera:before {\n content: \"\\f26a\";\n}\n.fa-internet-explorer:before {\n content: \"\\f26b\";\n}\n.fa-tv:before,\n.fa-television:before {\n content: \"\\f26c\";\n}\n.fa-contao:before {\n content: \"\\f26d\";\n}\n.fa-500px:before {\n content: \"\\f26e\";\n}\n.fa-amazon:before {\n content: \"\\f270\";\n}\n.fa-calendar-plus-o:before {\n content: \"\\f271\";\n}\n.fa-calendar-minus-o:before {\n content: \"\\f272\";\n}\n.fa-calendar-times-o:before {\n content: \"\\f273\";\n}\n.fa-calendar-check-o:before {\n content: \"\\f274\";\n}\n.fa-industry:before {\n content: \"\\f275\";\n}\n.fa-map-pin:before {\n content: \"\\f276\";\n}\n.fa-map-signs:before {\n content: \"\\f277\";\n}\n.fa-map-o:before {\n content: \"\\f278\";\n}\n.fa-map:before {\n content: \"\\f279\";\n}\n.fa-commenting:before {\n content: \"\\f27a\";\n}\n.fa-commenting-o:before {\n content: \"\\f27b\";\n}\n.fa-houzz:before {\n content: \"\\f27c\";\n}\n.fa-vimeo:before {\n content: \"\\f27d\";\n}\n.fa-black-tie:before {\n content: \"\\f27e\";\n}\n.fa-fonticons:before {\n content: \"\\f280\";\n}\n.fa-reddit-alien:before {\n content: \"\\f281\";\n}\n.fa-edge:before {\n content: \"\\f282\";\n}\n.fa-credit-card-alt:before {\n content: \"\\f283\";\n}\n.fa-codiepie:before {\n content: \"\\f284\";\n}\n.fa-modx:before {\n content: \"\\f285\";\n}\n.fa-fort-awesome:before {\n content: \"\\f286\";\n}\n.fa-usb:before {\n content: \"\\f287\";\n}\n.fa-product-hunt:before {\n content: \"\\f288\";\n}\n.fa-mixcloud:before {\n content: \"\\f289\";\n}\n.fa-scribd:before {\n content: \"\\f28a\";\n}\n.fa-pause-circle:before {\n content: \"\\f28b\";\n}\n.fa-pause-circle-o:before {\n content: \"\\f28c\";\n}\n.fa-stop-circle:before {\n content: \"\\f28d\";\n}\n.fa-stop-circle-o:before {\n content: \"\\f28e\";\n}\n.fa-shopping-bag:before {\n content: \"\\f290\";\n}\n.fa-shopping-basket:before {\n content: \"\\f291\";\n}\n.fa-hashtag:before {\n content: \"\\f292\";\n}\n.fa-bluetooth:before {\n content: \"\\f293\";\n}\n.fa-bluetooth-b:before {\n content: \"\\f294\";\n}\n.fa-percent:before {\n content: \"\\f295\";\n}\n.fa-gitlab:before {\n content: \"\\f296\";\n}\n.fa-wpbeginner:before {\n content: \"\\f297\";\n}\n.fa-wpforms:before {\n content: \"\\f298\";\n}\n.fa-envira:before {\n content: \"\\f299\";\n}\n.fa-universal-access:before {\n content: \"\\f29a\";\n}\n.fa-wheelchair-alt:before {\n content: \"\\f29b\";\n}\n.fa-question-circle-o:before {\n content: \"\\f29c\";\n}\n.fa-blind:before {\n content: \"\\f29d\";\n}\n.fa-audio-description:before {\n content: \"\\f29e\";\n}\n.fa-volume-control-phone:before {\n content: \"\\f2a0\";\n}\n.fa-braille:before {\n content: \"\\f2a1\";\n}\n.fa-assistive-listening-systems:before {\n content: \"\\f2a2\";\n}\n.fa-asl-interpreting:before,\n.fa-american-sign-language-interpreting:before {\n content: \"\\f2a3\";\n}\n.fa-deafness:before,\n.fa-hard-of-hearing:before,\n.fa-deaf:before {\n content: \"\\f2a4\";\n}\n.fa-glide:before {\n content: \"\\f2a5\";\n}\n.fa-glide-g:before {\n content: \"\\f2a6\";\n}\n.fa-signing:before,\n.fa-sign-language:before {\n content: \"\\f2a7\";\n}\n.fa-low-vision:before {\n content: \"\\f2a8\";\n}\n.fa-viadeo:before {\n content: \"\\f2a9\";\n}\n.fa-viadeo-square:before {\n content: \"\\f2aa\";\n}\n.fa-snapchat:before {\n content: \"\\f2ab\";\n}\n.fa-snapchat-ghost:before {\n content: \"\\f2ac\";\n}\n.fa-snapchat-square:before {\n content: \"\\f2ad\";\n}\n.fa-pied-piper:before {\n content: \"\\f2ae\";\n}\n.fa-first-order:before {\n content: \"\\f2b0\";\n}\n.fa-yoast:before {\n content: \"\\f2b1\";\n}\n.fa-themeisle:before {\n content: \"\\f2b2\";\n}\n.fa-google-plus-circle:before,\n.fa-google-plus-official:before {\n content: \"\\f2b3\";\n}\n.fa-fa:before,\n.fa-font-awesome:before {\n content: \"\\f2b4\";\n}\n.fa-handshake-o:before {\n content: \"\\f2b5\";\n}\n.fa-envelope-open:before {\n content: \"\\f2b6\";\n}\n.fa-envelope-open-o:before {\n content: \"\\f2b7\";\n}\n.fa-linode:before {\n content: \"\\f2b8\";\n}\n.fa-address-book:before {\n content: \"\\f2b9\";\n}\n.fa-address-book-o:before {\n content: \"\\f2ba\";\n}\n.fa-vcard:before,\n.fa-address-card:before {\n content: \"\\f2bb\";\n}\n.fa-vcard-o:before,\n.fa-address-card-o:before {\n content: \"\\f2bc\";\n}\n.fa-user-circle:before {\n content: \"\\f2bd\";\n}\n.fa-user-circle-o:before {\n content: \"\\f2be\";\n}\n.fa-user-o:before {\n content: \"\\f2c0\";\n}\n.fa-id-badge:before {\n content: \"\\f2c1\";\n}\n.fa-drivers-license:before,\n.fa-id-card:before {\n content: \"\\f2c2\";\n}\n.fa-drivers-license-o:before,\n.fa-id-card-o:before {\n content: \"\\f2c3\";\n}\n.fa-quora:before {\n content: \"\\f2c4\";\n}\n.fa-free-code-camp:before {\n content: \"\\f2c5\";\n}\n.fa-telegram:before {\n content: \"\\f2c6\";\n}\n.fa-thermometer-4:before,\n.fa-thermometer:before,\n.fa-thermometer-full:before {\n content: \"\\f2c7\";\n}\n.fa-thermometer-3:before,\n.fa-thermometer-three-quarters:before {\n content: \"\\f2c8\";\n}\n.fa-thermometer-2:before,\n.fa-thermometer-half:before {\n content: \"\\f2c9\";\n}\n.fa-thermometer-1:before,\n.fa-thermometer-quarter:before {\n content: \"\\f2ca\";\n}\n.fa-thermometer-0:before,\n.fa-thermometer-empty:before {\n content: \"\\f2cb\";\n}\n.fa-shower:before {\n content: \"\\f2cc\";\n}\n.fa-bathtub:before,\n.fa-s15:before,\n.fa-bath:before {\n content: \"\\f2cd\";\n}\n.fa-podcast:before {\n content: \"\\f2ce\";\n}\n.fa-window-maximize:before {\n content: \"\\f2d0\";\n}\n.fa-window-minimize:before {\n content: \"\\f2d1\";\n}\n.fa-window-restore:before {\n content: \"\\f2d2\";\n}\n.fa-times-rectangle:before,\n.fa-window-close:before {\n content: \"\\f2d3\";\n}\n.fa-times-rectangle-o:before,\n.fa-window-close-o:before {\n content: \"\\f2d4\";\n}\n.fa-bandcamp:before {\n content: \"\\f2d5\";\n}\n.fa-grav:before {\n content: \"\\f2d6\";\n}\n.fa-etsy:before {\n content: \"\\f2d7\";\n}\n.fa-imdb:before {\n content: \"\\f2d8\";\n}\n.fa-ravelry:before {\n content: \"\\f2d9\";\n}\n.fa-eercast:before {\n content: \"\\f2da\";\n}\n.fa-microchip:before {\n content: \"\\f2db\";\n}\n.fa-snowflake-o:before {\n content: \"\\f2dc\";\n}\n.fa-superpowers:before {\n content: \"\\f2dd\";\n}\n.fa-wpexplorer:before {\n content: \"\\f2de\";\n}\n.fa-meetup:before {\n content: \"\\f2e0\";\n}\n.sr-only {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n border: 0;\n}\n.sr-only-focusable:active,\n.sr-only-focusable:focus {\n position: static;\n width: auto;\n height: auto;\n margin: 0;\n overflow: visible;\n clip: auto;\n}\n"],"sourceRoot":""} \ No newline at end of file diff --git a/priv/static/packs/flavours/vanilla/about.js b/priv/static/packs/flavours/vanilla/about.js deleted file mode 100644 index 715247a5e..000000000 Binary files a/priv/static/packs/flavours/vanilla/about.js and /dev/null differ diff --git a/priv/static/packs/flavours/vanilla/about.js.LICENSE.txt b/priv/static/packs/flavours/vanilla/about.js.LICENSE.txt deleted file mode 100644 index 90a9a7678..000000000 --- a/priv/static/packs/flavours/vanilla/about.js.LICENSE.txt +++ /dev/null @@ -1,193 +0,0 @@ -/* -object-assign -(c) Sindre Sorhus -@license MIT -*/ - -/*! - Copyright (c) 2017 Jed Watson. - Licensed under the MIT License (MIT), see - http://jedwatson.github.io/classnames -*/ - -/*! - * escape-html - * Copyright(c) 2012-2013 TJ Holowaychuk - * Copyright(c) 2015 Andreas Lubbe - * Copyright(c) 2015 Tiancheng "Timothy" Gu - * MIT Licensed - */ - -/*! - * wavesurfer.js 3.3.1 (2020-01-14) - * https://github.com/katspaugh/wavesurfer.js - * @license BSD-3-Clause - */ - -/*! ./ajax */ - -/*! ./drawer */ - -/*! ./drawer.canvasentry */ - -/*! ./drawer.multicanvas */ - -/*! ./extend */ - -/*! ./fetch */ - -/*! ./frame */ - -/*! ./get-id */ - -/*! ./max */ - -/*! ./mediaelement */ - -/*! ./mediaelement-webaudio */ - -/*! ./min */ - -/*! ./observer */ - -/*! ./peakcache */ - -/*! ./prevent-click */ - -/*! ./request-animation-frame */ - -/*! ./style */ - -/*! ./util */ - -/*! ./util/get-id */ - -/*! ./util/style */ - -/*! ./webaudio */ - -/*! debounce */ - -/*! https://mths.be/punycode v1.4.1 by @mathias */ - -/*! no static exports found */ - -/*!***********************!*\ - !*** ./src/drawer.js ***! - \***********************/ - -/*!*************************!*\ - !*** ./src/util/max.js ***! - \*************************/ - -/*!*************************!*\ - !*** ./src/util/min.js ***! - \*************************/ - -/*!*************************!*\ - !*** ./src/webaudio.js ***! - \*************************/ - -/*!**************************!*\ - !*** ./src/peakcache.js ***! - \**************************/ - -/*!**************************!*\ - !*** ./src/util/ajax.js ***! - \**************************/ - -/*!***************************!*\ - !*** ./src/util/fetch.js ***! - \***************************/ - -/*!***************************!*\ - !*** ./src/util/frame.js ***! - \***************************/ - -/*!***************************!*\ - !*** ./src/util/index.js ***! - \***************************/ - -/*!***************************!*\ - !*** ./src/util/style.js ***! - \***************************/ - -/*!***************************!*\ - !*** ./src/wavesurfer.js ***! - \***************************/ - -/*!****************************!*\ - !*** ./src/util/extend.js ***! - \****************************/ - -/*!****************************!*\ - !*** ./src/util/get-id.js ***! - \****************************/ - -/*!*****************************!*\ - !*** ./src/mediaelement.js ***! - \*****************************/ - -/*!******************************!*\ - !*** ./src/util/observer.js ***! - \******************************/ - -/*!***********************************!*\ - !*** ./src/drawer.canvasentry.js ***! - \***********************************/ - -/*!***********************************!*\ - !*** ./src/drawer.multicanvas.js ***! - \***********************************/ - -/*!***********************************!*\ - !*** ./src/util/prevent-click.js ***! - \***********************************/ - -/*!**************************************!*\ - !*** ./src/mediaelement-webaudio.js ***! - \**************************************/ - -/*!****************************************!*\ - !*** ./node_modules/debounce/index.js ***! - \****************************************/ - -/*!*********************************************!*\ - !*** ./src/util/request-animation-frame.js ***! - \*********************************************/ - -/** @license React v0.19.0 - * scheduler.production.min.js - * - * Copyright (c) Facebook, Inc. and its affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */ - -/** @license React v16.12.0 - * react-is.production.min.js - * - * Copyright (c) Facebook, Inc. and its affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */ - -/** @license React v16.13.0 - * react-dom.production.min.js - * - * Copyright (c) Facebook, Inc. and its affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */ - -/** @license React v16.13.1 - * react.production.min.js - * - * Copyright (c) Facebook, Inc. and its affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */ diff --git a/priv/static/packs/flavours/vanilla/about.js.map b/priv/static/packs/flavours/vanilla/about.js.map deleted file mode 100644 index 42e76990e..000000000 Binary files a/priv/static/packs/flavours/vanilla/about.js.map and /dev/null differ diff --git a/priv/static/packs/flavours/vanilla/admin.css b/priv/static/packs/flavours/vanilla/admin.css deleted file mode 100644 index 04dec9023..000000000 Binary files a/priv/static/packs/flavours/vanilla/admin.css and /dev/null differ diff --git a/priv/static/packs/flavours/vanilla/admin.css.map b/priv/static/packs/flavours/vanilla/admin.css.map deleted file mode 100644 index b993e120f..000000000 --- a/priv/static/packs/flavours/vanilla/admin.css.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["webpack:///font-awesome.css","webpack:///./node_modules/font-awesome/css/font-awesome.css"],"names":[],"mappings":"AAAA;;;ECAA,CAMA,WACE,wBACA,4CACA,wSACA,gBACA,kBAEF,IACE,qBACA,6CACA,kBACA,oBACA,mCACA,kCAGF,OACE,uBACA,kBACA,oBAEF,OACE,cAEF,OACE,cAEF,OACE,cAEF,OACE,cAEF,OACE,mBACA,kBAEF,OACE,eACA,yBACA,qBAEF,UACE,kBAEF,OACE,kBACA,mBACA,mBACA,gBACA,kBAEF,aACE,mBAEF,WACE,yBACA,wBACA,mBAEF,cACE,WAEF,eACE,YAEF,iBACE,kBAEF,kBACE,iBAGF,YACE,YAEF,WACE,WAEF,cACE,kBAEF,eACE,iBAEF,SACE,6CACA,qCAEF,UACE,+CACA,uCAEF,2BACE,GAEE,uBAEF,GAEE,0BAGJ,mBACE,GAEE,uBAEF,GAEE,0BAGJ,cACE,sEAGA,wBAEF,eACE,sEAGA,yBAEF,eACE,sEAGA,yBAEF,oBACE,gFAGA,qBAEF,kBACE,gFAGA,qBAEF,gHAKE,gCAEF,UACE,kBACA,qBACA,UACA,WACA,gBACA,sBAEF,0BAEE,kBACA,OACA,WACA,kBAEF,aACE,oBAEF,aACE,cAEF,YACE,WAIF,iBACE,YAEF,iBACE,YAEF,kBACE,YAEF,sBACE,YAEF,iBACE,YAEF,gBACE,YAEF,kBACE,YAEF,gBACE,YAEF,gBACE,YAEF,oBACE,YAEF,cACE,YAEF,mBACE,YAEF,iBACE,YAEF,oDAGE,YAEF,uBACE,YAEF,wBACE,YAEF,qBACE,YAEF,kBACE,YAEF,+BAEE,YAEF,mBACE,YAEF,gBACE,YAEF,kBACE,YAEF,mBACE,YAEF,gBACE,YAEF,oBACE,YAEF,+BACE,YAEF,6BACE,YAEF,iBACE,YAEF,yBACE,YAEF,0CAEE,YAEF,mBACE,YAEF,oBACE,YAEF,gBACE,YAEF,gBACE,YAEF,sBACE,YAEF,sBACE,YAEF,uBACE,YAEF,qBACE,YAEF,kBACE,YAEF,mBACE,YAEF,eACE,YAEF,gBACE,YAEF,gBACE,YAEF,oBACE,YAEF,iBACE,YAEF,kBACE,YAEF,gBACE,YAEF,gBACE,YAEF,kBACE,YAEF,uBACE,YAEF,sBACE,YAEF,sBACE,YAEF,wBACE,YAEF,uBACE,YAEF,yBACE,YAEF,gBACE,YAEF,qCAEE,YAEF,kBACE,YAEF,wBACE,YAEF,uDAGE,YAEF,kBACE,YAEF,sBACE,YAEF,kBACE,YAEF,gBACE,YAEF,2CAEE,YAEF,0BACE,YAEF,0BACE,YAEF,kBACE,YAEF,yBACE,YAEF,yBACE,YAEF,oBACE,YAEF,gBACE,YAEF,iBACE,YAEF,gBACE,YAEF,mBACE,YAEF,wBACE,YAEF,wBACE,YAEF,iBACE,YAEF,wBACE,YAEF,yBACE,YAEF,uBACE,YAEF,wBACE,YAEF,wBACE,YAEF,wBACE,YAEF,2BACE,YAEF,uBACE,YAEF,sBACE,YAEF,0BACE,YAEF,0BACE,YAEF,eACE,YAEF,sBACE,YAEF,uBACE,YAEF,oBACE,YAEF,sBACE,YAEF,yCAEE,YAEF,kBACE,YAEF,oBACE,YAEF,gBACE,YAEF,iBACE,YAEF,oBACE,YAEF,8BACE,YAEF,gBACE,YAEF,gBACE,YAEF,gBACE,YAEF,eACE,YAEF,qBACE,YAEF,mDAEE,YAEF,iBACE,YAEF,oBACE,YAEF,kBACE,YAEF,mBACE,YAEF,kBACE,YAEF,sBACE,YAEF,wBACE,YAEF,mBACE,YAEF,yBACE,YAEF,kBACE,YAEF,uBACE,YAEF,oBACE,YAEF,oBACE,YAEF,4CAEE,YAEF,0BACE,YAEF,2BACE,YAEF,wBACE,YAEF,eACE,YAEF,iCAEE,YAEF,oBACE,YAEF,uBACE,YAEF,yBACE,YAEF,qBACE,YAEF,mBACE,YAEF,oBACE,YAEF,2BACE,YAEF,sBACE,YAEF,yBACE,YAEF,mBACE,YAEF,kBACE,YAEF,yBACE,YAEF,kBACE,YAEF,mBACE,YAEF,iBACE,YAEF,oBACE,YAEF,sBACE,YAEF,wBACE,YAEF,mBACE,YAEF,0CAEE,YAEF,kBACE,YAEF,kBACE,YAEF,uBACE,YAEF,+BAEE,YAEF,iBACE,YAEF,oBACE,YAEF,gBACE,YAEF,uBACE,YAEF,wBACE,YAEF,uBACE,YAEF,qBACE,YAEF,uBACE,YAEF,6BACE,YAEF,8BACE,YAEF,2BACE,YAEF,6BACE,YAEF,iBACE,YAEF,kBACE,YAEF,iBACE,YAEF,kBACE,YAEF,qBACE,YAEF,sBACE,YAEF,kCAEE,YAEF,iCAEE,YAEF,iBACE,YAEF,iBACE,YAEF,mCAEE,YAEF,mCAEE,YAEF,qBACE,YAEF,oCAEE,YAEF,kBACE,YAEF,sDAGE,YAEF,mBACE,YAEF,mBACE,YAEF,yBACE,YAEF,qBACE,YAEF,iBACE,YAEF,iBACE,YAEF,iBACE,YAEF,qBACE,YAEF,4BACE,YAEF,8BACE,YAEF,uBACE,YAEF,iBACE,YAEF,sBACE,YAEF,oBACE,YAEF,sBACE,YAEF,uBACE,YAEF,mBACE,YAEF,oCAEE,YAEF,0CAEE,YAEF,uCAEE,YAEF,oBACE,YAEF,oBACE,YAEF,uCAEE,YAEF,kCAEE,YAEF,2CAEE,YAEF,qBACE,YAEF,sBACE,YAEF,iCAEE,YAEF,mBACE,YAEF,oBACE,YAEF,sCAEE,YAEF,uBACE,YAEF,oBACE,YAEF,0BACE,YAEF,wBACE,YAEF,mBACE,YAEF,uBACE,YAEF,oBACE,YAEF,kBACE,YAEF,kBACE,YAEF,mBACE,YAEF,uBACE,YAEF,sBACE,YAEF,sBACE,YAEF,qBACE,YAEF,kBACE,YAEF,uBACE,YAEF,gBACE,YAEF,oBACE,YAEF,uBACE,YAEF,6BACE,YAEF,8BACE,YAEF,2BACE,YAEF,6BACE,YAEF,sBACE,YAEF,uBACE,YAEF,oBACE,YAEF,sBACE,YAEF,mBACE,YAEF,kBACE,YAEF,kBACE,YAEF,0CAEE,YAEF,oBACE,YAEF,sBACE,YAEF,uBACE,YAEF,mBACE,YAEF,kBACE,YAEF,uCAEE,YAEF,sBACE,YAEF,oBACE,YAEF,yBACE,YAEF,mBACE,YAEF,mBACE,YAEF,iBACE,YAEF,mBACE,YAEF,sBACE,YAEF,kBACE,YAEF,0BACE,YAEF,oBACE,YAEF,gBACE,YAEF,+CAEE,YAEF,4EAGE,YAEF,0BACE,YAEF,gBACE,YAEF,qBACE,YAEF,0CAEE,YAEF,oBACE,YAEF,gBACE,YAEF,uBACE,YAEF,uBACE,YAEF,qBACE,YAEF,kBACE,YAEF,wBACE,YAEF,sBACE,YAEF,4BACE,YAEF,kBACE,YAEF,sBACE,YAEF,6BACE,YAEF,kBACE,YAEF,kBACE,YAEF,+BACE,YAEF,gCACE,YAEF,6BACE,YAEF,+BACE,YAEF,iBACE,YAEF,gBACE,YAEF,kBACE,YAEF,sBACE,YAEF,oBACE,YAEF,sBACE,YAEF,sBACE,YAEF,sBACE,YAEF,uBACE,YAEF,kBACE,YAEF,wBACE,YAEF,0BACE,YAEF,oBACE,YAEF,sBACE,YAEF,wBACE,YAEF,yBACE,YAEF,gCACE,YAEF,wBACE,YAEF,mBACE,YAEF,sDAEE,YAEF,kDAEE,YAEF,wDAEE,YAEF,+BAEE,YAEF,eACE,YAEF,iCAEE,YAEF,gCAEE,YAEF,4DAIE,YAEF,kDAGE,YAEF,8BAEE,YAEF,kCAEE,YAEF,gBACE,YAEF,qBACE,YAEF,0BACE,YAEF,2BACE,YAEF,2BACE,YAEF,4BACE,YAEF,4BACE,YAEF,6BACE,YAEF,qBACE,YAEF,uBACE,YAEF,0BACE,YAEF,mBACE,YAEF,gBACE,YAEF,uBACE,YAEF,wBACE,YAEF,mBACE,YAEF,0BACE,YAEF,qBACE,YAEF,kBACE,YAEF,eACE,YAEF,qBACE,YAEF,4BACE,YAEF,kBACE,YAEF,yBACE,YAEF,2BACE,YAEF,yBACE,YAEF,2BACE,YAEF,4BACE,YAEF,iBACE,YAEF,mBACE,YAEF,mBACE,YAEF,iBACE,YAEF,oBACE,YAEF,iBACE,YAEF,sBACE,YAEF,kBACE,YAEF,kBACE,YAEF,gBACE,YAEF,sCAEE,YAEF,iBACE,YAEF,kBACE,YAEF,mBACE,YAEF,eACE,YAEF,cACE,YAEF,iBACE,YAEF,kBACE,YAEF,qBACE,YAEF,0BACE,YAEF,gCACE,YAEF,+BACE,YAEF,sDAEE,YAEF,wBACE,YAEF,sBACE,YAEF,wBACE,YAEF,uCAEE,YAEF,yBACE,YAEF,yBACE,YAEF,iBACE,YAEF,2BACE,YAEF,qBACE,YAEF,kBACE,YAEF,6DAGE,YAEF,kDAEE,YAEF,iBACE,YAEF,kBACE,YAEF,kBACE,YAEF,yBACE,YAEF,8BACE,YAEF,uBACE,YAEF,qBACE,YAEF,gBACE,YAEF,yBACE,YAEF,0BACE,YAEF,kBACE,YAEF,kBACE,YAEF,oBACE,YAEF,eACE,YAEF,oBACE,YAEF,iBACE,YAEF,eACE,YAEF,iBACE,YAEF,gBACE,YAEF,iBACE,YAEF,mBACE,YAEF,0BACE,YAEF,iBACE,YAEF,wBACE,YAEF,mBACE,YAEF,qCAEE,YAEF,+BAEE,YAEF,gBACE,YAEF,mBACE,YAEF,sBACE,YAEF,sBACE,YAEF,oBACE,YAEF,sBACE,YAEF,uBACE,YAEF,wBACE,YAEF,6BACE,YAEF,0EAGE,YAEF,gDAEE,YAEF,gDAEE,YAEF,gDAEE,YAEF,uBACE,YAEF,gBACE,YAEF,mBACE,YAEF,oBACE,YAEF,wGAKE,YAEF,0BACE,YAEF,qDAGE,YAEF,gCAEE,YAEF,sBACE,YAEF,eACE,YAEF,2EAGE,YAEF,yBACE,YAEF,cACE,YAEF,oCAEE,YAEF,uCAEE,YAEF,2CAEE,YAEF,mBACE,YAEF,uBACE,YAEF,kBACE,YAEF,qBACE,YAEF,mBACE,YAEF,qBACE,YAEF,4BACE,YAEF,gBACE,YAEF,6CAEE,YAEF,eACE,YAEF,sBACE,YAEF,gBACE,YAEF,sBACE,YAEF,kBACE,YAEF,gBACE,YAEF,uBACE,YAEF,gBACE,YAEF,sBACE,YAEF,kBACE,YAEF,yBACE,YAEF,mBACE,YAEF,yBACE,YAEF,uBACE,YAEF,mBACE,YAEF,qBACE,YAEF,qBACE,YAEF,sBACE,YAEF,wBACE,YAEF,iBACE,YAEF,qBACE,YAEF,cACE,YAEF,sBACE,YAEF,uBACE,YAEF,yBACE,YAEF,sBACE,YAEF,qBACE,YAEF,sBACE,YAEF,kBACE,YAEF,yBACE,YAEF,sBACE,YAEF,qBACE,YAEF,mBACE,YAEF,eACE,YAEF,mBACE,YAEF,qBACE,YAEF,cACE,YAEF,mDAGE,YAEF,oBACE,YAEF,sBACE,YAEF,0BACE,YAEF,oBACE,YAEF,oBACE,YAEF,mBACE,YAEF,kBACE,YAEF,wBACE,YAEF,uBACE,YAEF,oBACE,YAEF,qBACE,YAEF,2BACE,YAEF,mBACE,YAEF,gBACE,YAEF,uBACE,YAEF,sBACE,YAEF,uBACE,YAEF,qBACE,YAEF,iBACE,YAEF,gBACE,YAEF,mBACE,YAEF,2CAEE,YAEF,2BACE,YAEF,wBACE,YAEF,uBACE,YAEF,sBACE,YAEF,uBACE,YAEF,yBACE,YAEF,yBACE,YAEF,kBACE,YAEF,sBACE,YAEF,6BACE,YAEF,uBACE,YAEF,oBACE,YAEF,kBACE,YAEF,qBACE,YAEF,sBACE,YAEF,gCAEE,YAEF,mBACE,YAEF,iBACE,YAEF,kBACE,YAEF,kBACE,YAEF,sCAEE,YAEF,yBACE,YAEF,oBACE,YAEF,wBACE,YAEF,gEAGE,YAEF,uDAEE,YAEF,6CAEE,YAEF,gDAEE,YAEF,8CAEE,YAEF,yBACE,YAEF,oBACE,YAEF,wBACE,YAEF,0BACE,YAEF,uBACE,YAEF,yBACE,YAEF,kBACE,YAEF,0BACE,YAEF,iBACE,YAEF,yBACE,YAEF,uBACE,YAEF,kDAEE,YAEF,iDAEE,YAEF,gDAEE,YAEF,qBACE,YAEF,8CAEE,YAEF,+CAEE,YAEF,2BACE,YAEF,yBACE,YAEF,wBACE,YAEF,0BACE,YAEF,wBACE,YAEF,qBACE,YAEF,sBACE,YAEF,4BACE,YAEF,cACE,YAEF,qBACE,YAEF,uBACE,YAEF,yBACE,YAEF,gCACE,YAEF,sBACE,YAEF,uBACE,YAEF,kBACE,YAEF,kBACE,YAEF,mBACE,YAEF,iBACE,YAEF,6BACE,YAEF,oCAEE,YAEF,kBACE,YAEF,iBACE,YAEF,kBACE,YAEF,2BACE,YAEF,4BACE,YAEF,4BACE,YAEF,4BACE,YAEF,oBACE,YAEF,mBACE,YAEF,qBACE,YAEF,iBACE,YAEF,eACE,YAEF,sBACE,YAEF,wBACE,YAEF,iBACE,YAEF,iBACE,YAEF,qBACE,YAEF,qBACE,YAEF,wBACE,YAEF,gBACE,YAEF,2BACE,YAEF,oBACE,YAEF,gBACE,YAEF,wBACE,YAEF,eACE,YAEF,wBACE,YAEF,oBACE,YAEF,kBACE,YAEF,wBACE,YAEF,0BACE,YAEF,uBACE,YAEF,yBACE,YAEF,wBACE,YAEF,2BACE,YAEF,mBACE,YAEF,qBACE,YAEF,uBACE,YAEF,mBACE,YAEF,kBACE,YAEF,sBACE,YAEF,mBACE,YAEF,kBACE,YAEF,4BACE,YAEF,0BACE,YAEF,6BACE,YAEF,iBACE,YAEF,6BACE,YAEF,gCACE,YAEF,mBACE,YAEF,uCACE,YAEF,2EAEE,YAEF,+DAGE,YAEF,iBACE,YAEF,mBACE,YAEF,4CAEE,YAEF,sBACE,YAEF,kBACE,YAEF,yBACE,YAEF,oBACE,YAEF,0BACE,YAEF,2BACE,YAEF,sBACE,YAEF,uBACE,YAEF,iBACE,YAEF,qBACE,YAEF,8DAEE,YAEF,sCAEE,YAEF,uBACE,YAEF,yBACE,YAEF,2BACE,YAEF,kBACE,YAEF,wBACE,YAEF,0BACE,YAEF,yCAEE,YAEF,6CAEE,YAEF,uBACE,YAEF,yBACE,YAEF,kBACE,YAEF,oBACE,YAEF,8CAEE,YAEF,kDAEE,YAEF,iBACE,YAEF,0BACE,YAEF,oBACE,YAEF,4EAGE,YAEF,+DAEE,YAEF,qDAEE,YAEF,wDAEE,YAEF,sDAEE,YAEF,kBACE,YAEF,kDAGE,YAEF,mBACE,YAEF,2BACE,YAEF,2BACE,YAEF,0BACE,YAEF,mDAEE,YAEF,uDAEE,YAEF,oBACE,YAEF,gBACE,YAEF,gBACE,YAEF,gBACE,YAEF,mBACE,YAEF,mBACE,YAEF,qBACE,YAEF,uBACE,YAEF,uBACE,YAEF,sBACE,YAEF,kBACE,YAEF,SACE,kBACA,UACA,WACA,UACA,YACA,gBACA,mBACA,SAEF,mDAEE,gBACA,WACA,YACA,SACA,iBACA,qJ","file":"flavours/vanilla/admin.css","sourcesContent":["/*!\n * Font Awesome 4.7.0 by @davegandy - http://fontawesome.io - @fontawesome\n * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License)\n */@font-face{font-family:\"FontAwesome\";src:url(\"../fonts/fontawesome-webfont.eot?v=4.7.0\");src:url(\"../fonts/fontawesome-webfont.eot?#iefix&v=4.7.0\") format(\"embedded-opentype\"),url(\"../fonts/fontawesome-webfont.woff2?v=4.7.0\") format(\"woff2\"),url(\"../fonts/fontawesome-webfont.woff?v=4.7.0\") format(\"woff\"),url(\"../fonts/fontawesome-webfont.ttf?v=4.7.0\") format(\"truetype\"),url(\"../fonts/fontawesome-webfont.svg?v=4.7.0#fontawesomeregular\") format(\"svg\");font-weight:normal;font-style:normal}.fa{display:inline-block;font:normal normal normal 14px/1 FontAwesome;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.fa-lg{font-size:1.33333333em;line-height:.75em;vertical-align:-15%}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-fw{width:1.28571429em;text-align:center}.fa-ul{padding-left:0;margin-left:2.14285714em;list-style-type:none}.fa-ul>li{position:relative}.fa-li{position:absolute;left:-2.14285714em;width:2.14285714em;top:.14285714em;text-align:center}.fa-li.fa-lg{left:-1.85714286em}.fa-border{padding:.2em .25em .15em;border:solid .08em #eee;border-radius:.1em}.fa-pull-left{float:left}.fa-pull-right{float:right}.fa.fa-pull-left{margin-right:.3em}.fa.fa-pull-right{margin-left:.3em}.pull-right{float:right}.pull-left{float:left}.fa.pull-left{margin-right:.3em}.fa.pull-right{margin-left:.3em}.fa-spin{-webkit-animation:fa-spin 2s infinite linear;animation:fa-spin 2s infinite linear}.fa-pulse{-webkit-animation:fa-spin 1s infinite steps(8);animation:fa-spin 1s infinite steps(8)}@-webkit-keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}.fa-rotate-90{-ms-filter:\"progid:DXImageTransform.Microsoft.BasicImage(rotation=1)\";-webkit-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg)}.fa-rotate-180{-ms-filter:\"progid:DXImageTransform.Microsoft.BasicImage(rotation=2)\";-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg)}.fa-rotate-270{-ms-filter:\"progid:DXImageTransform.Microsoft.BasicImage(rotation=3)\";-webkit-transform:rotate(270deg);-ms-transform:rotate(270deg);transform:rotate(270deg)}.fa-flip-horizontal{-ms-filter:\"progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)\";-webkit-transform:scale(-1, 1);-ms-transform:scale(-1, 1);transform:scale(-1, 1)}.fa-flip-vertical{-ms-filter:\"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)\";-webkit-transform:scale(1, -1);-ms-transform:scale(1, -1);transform:scale(1, -1)}:root .fa-rotate-90,:root .fa-rotate-180,:root .fa-rotate-270,:root .fa-flip-horizontal,:root .fa-flip-vertical{filter:none}.fa-stack{position:relative;display:inline-block;width:2em;height:2em;line-height:2em;vertical-align:middle}.fa-stack-1x,.fa-stack-2x{position:absolute;left:0;width:100%;text-align:center}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:#fff}.fa-glass:before{content:\"\"}.fa-music:before{content:\"\"}.fa-search:before{content:\"\"}.fa-envelope-o:before{content:\"\"}.fa-heart:before{content:\"\"}.fa-star:before{content:\"\"}.fa-star-o:before{content:\"\"}.fa-user:before{content:\"\"}.fa-film:before{content:\"\"}.fa-th-large:before{content:\"\"}.fa-th:before{content:\"\"}.fa-th-list:before{content:\"\"}.fa-check:before{content:\"\"}.fa-remove:before,.fa-close:before,.fa-times:before{content:\"\"}.fa-search-plus:before{content:\"\"}.fa-search-minus:before{content:\"\"}.fa-power-off:before{content:\"\"}.fa-signal:before{content:\"\"}.fa-gear:before,.fa-cog:before{content:\"\"}.fa-trash-o:before{content:\"\"}.fa-home:before{content:\"\"}.fa-file-o:before{content:\"\"}.fa-clock-o:before{content:\"\"}.fa-road:before{content:\"\"}.fa-download:before{content:\"\"}.fa-arrow-circle-o-down:before{content:\"\"}.fa-arrow-circle-o-up:before{content:\"\"}.fa-inbox:before{content:\"\"}.fa-play-circle-o:before{content:\"\"}.fa-rotate-right:before,.fa-repeat:before{content:\"\"}.fa-refresh:before{content:\"\"}.fa-list-alt:before{content:\"\"}.fa-lock:before{content:\"\"}.fa-flag:before{content:\"\"}.fa-headphones:before{content:\"\"}.fa-volume-off:before{content:\"\"}.fa-volume-down:before{content:\"\"}.fa-volume-up:before{content:\"\"}.fa-qrcode:before{content:\"\"}.fa-barcode:before{content:\"\"}.fa-tag:before{content:\"\"}.fa-tags:before{content:\"\"}.fa-book:before{content:\"\"}.fa-bookmark:before{content:\"\"}.fa-print:before{content:\"\"}.fa-camera:before{content:\"\"}.fa-font:before{content:\"\"}.fa-bold:before{content:\"\"}.fa-italic:before{content:\"\"}.fa-text-height:before{content:\"\"}.fa-text-width:before{content:\"\"}.fa-align-left:before{content:\"\"}.fa-align-center:before{content:\"\"}.fa-align-right:before{content:\"\"}.fa-align-justify:before{content:\"\"}.fa-list:before{content:\"\"}.fa-dedent:before,.fa-outdent:before{content:\"\"}.fa-indent:before{content:\"\"}.fa-video-camera:before{content:\"\"}.fa-photo:before,.fa-image:before,.fa-picture-o:before{content:\"\"}.fa-pencil:before{content:\"\"}.fa-map-marker:before{content:\"\"}.fa-adjust:before{content:\"\"}.fa-tint:before{content:\"\"}.fa-edit:before,.fa-pencil-square-o:before{content:\"\"}.fa-share-square-o:before{content:\"\"}.fa-check-square-o:before{content:\"\"}.fa-arrows:before{content:\"\"}.fa-step-backward:before{content:\"\"}.fa-fast-backward:before{content:\"\"}.fa-backward:before{content:\"\"}.fa-play:before{content:\"\"}.fa-pause:before{content:\"\"}.fa-stop:before{content:\"\"}.fa-forward:before{content:\"\"}.fa-fast-forward:before{content:\"\"}.fa-step-forward:before{content:\"\"}.fa-eject:before{content:\"\"}.fa-chevron-left:before{content:\"\"}.fa-chevron-right:before{content:\"\"}.fa-plus-circle:before{content:\"\"}.fa-minus-circle:before{content:\"\"}.fa-times-circle:before{content:\"\"}.fa-check-circle:before{content:\"\"}.fa-question-circle:before{content:\"\"}.fa-info-circle:before{content:\"\"}.fa-crosshairs:before{content:\"\"}.fa-times-circle-o:before{content:\"\"}.fa-check-circle-o:before{content:\"\"}.fa-ban:before{content:\"\"}.fa-arrow-left:before{content:\"\"}.fa-arrow-right:before{content:\"\"}.fa-arrow-up:before{content:\"\"}.fa-arrow-down:before{content:\"\"}.fa-mail-forward:before,.fa-share:before{content:\"\"}.fa-expand:before{content:\"\"}.fa-compress:before{content:\"\"}.fa-plus:before{content:\"\"}.fa-minus:before{content:\"\"}.fa-asterisk:before{content:\"\"}.fa-exclamation-circle:before{content:\"\"}.fa-gift:before{content:\"\"}.fa-leaf:before{content:\"\"}.fa-fire:before{content:\"\"}.fa-eye:before{content:\"\"}.fa-eye-slash:before{content:\"\"}.fa-warning:before,.fa-exclamation-triangle:before{content:\"\"}.fa-plane:before{content:\"\"}.fa-calendar:before{content:\"\"}.fa-random:before{content:\"\"}.fa-comment:before{content:\"\"}.fa-magnet:before{content:\"\"}.fa-chevron-up:before{content:\"\"}.fa-chevron-down:before{content:\"\"}.fa-retweet:before{content:\"\"}.fa-shopping-cart:before{content:\"\"}.fa-folder:before{content:\"\"}.fa-folder-open:before{content:\"\"}.fa-arrows-v:before{content:\"\"}.fa-arrows-h:before{content:\"\"}.fa-bar-chart-o:before,.fa-bar-chart:before{content:\"\"}.fa-twitter-square:before{content:\"\"}.fa-facebook-square:before{content:\"\"}.fa-camera-retro:before{content:\"\"}.fa-key:before{content:\"\"}.fa-gears:before,.fa-cogs:before{content:\"\"}.fa-comments:before{content:\"\"}.fa-thumbs-o-up:before{content:\"\"}.fa-thumbs-o-down:before{content:\"\"}.fa-star-half:before{content:\"\"}.fa-heart-o:before{content:\"\"}.fa-sign-out:before{content:\"\"}.fa-linkedin-square:before{content:\"\"}.fa-thumb-tack:before{content:\"\"}.fa-external-link:before{content:\"\"}.fa-sign-in:before{content:\"\"}.fa-trophy:before{content:\"\"}.fa-github-square:before{content:\"\"}.fa-upload:before{content:\"\"}.fa-lemon-o:before{content:\"\"}.fa-phone:before{content:\"\"}.fa-square-o:before{content:\"\"}.fa-bookmark-o:before{content:\"\"}.fa-phone-square:before{content:\"\"}.fa-twitter:before{content:\"\"}.fa-facebook-f:before,.fa-facebook:before{content:\"\"}.fa-github:before{content:\"\"}.fa-unlock:before{content:\"\"}.fa-credit-card:before{content:\"\"}.fa-feed:before,.fa-rss:before{content:\"\"}.fa-hdd-o:before{content:\"\"}.fa-bullhorn:before{content:\"\"}.fa-bell:before{content:\"\"}.fa-certificate:before{content:\"\"}.fa-hand-o-right:before{content:\"\"}.fa-hand-o-left:before{content:\"\"}.fa-hand-o-up:before{content:\"\"}.fa-hand-o-down:before{content:\"\"}.fa-arrow-circle-left:before{content:\"\"}.fa-arrow-circle-right:before{content:\"\"}.fa-arrow-circle-up:before{content:\"\"}.fa-arrow-circle-down:before{content:\"\"}.fa-globe:before{content:\"\"}.fa-wrench:before{content:\"\"}.fa-tasks:before{content:\"\"}.fa-filter:before{content:\"\"}.fa-briefcase:before{content:\"\"}.fa-arrows-alt:before{content:\"\"}.fa-group:before,.fa-users:before{content:\"\"}.fa-chain:before,.fa-link:before{content:\"\"}.fa-cloud:before{content:\"\"}.fa-flask:before{content:\"\"}.fa-cut:before,.fa-scissors:before{content:\"\"}.fa-copy:before,.fa-files-o:before{content:\"\"}.fa-paperclip:before{content:\"\"}.fa-save:before,.fa-floppy-o:before{content:\"\"}.fa-square:before{content:\"\"}.fa-navicon:before,.fa-reorder:before,.fa-bars:before{content:\"\"}.fa-list-ul:before{content:\"\"}.fa-list-ol:before{content:\"\"}.fa-strikethrough:before{content:\"\"}.fa-underline:before{content:\"\"}.fa-table:before{content:\"\"}.fa-magic:before{content:\"\"}.fa-truck:before{content:\"\"}.fa-pinterest:before{content:\"\"}.fa-pinterest-square:before{content:\"\"}.fa-google-plus-square:before{content:\"\"}.fa-google-plus:before{content:\"\"}.fa-money:before{content:\"\"}.fa-caret-down:before{content:\"\"}.fa-caret-up:before{content:\"\"}.fa-caret-left:before{content:\"\"}.fa-caret-right:before{content:\"\"}.fa-columns:before{content:\"\"}.fa-unsorted:before,.fa-sort:before{content:\"\"}.fa-sort-down:before,.fa-sort-desc:before{content:\"\"}.fa-sort-up:before,.fa-sort-asc:before{content:\"\"}.fa-envelope:before{content:\"\"}.fa-linkedin:before{content:\"\"}.fa-rotate-left:before,.fa-undo:before{content:\"\"}.fa-legal:before,.fa-gavel:before{content:\"\"}.fa-dashboard:before,.fa-tachometer:before{content:\"\"}.fa-comment-o:before{content:\"\"}.fa-comments-o:before{content:\"\"}.fa-flash:before,.fa-bolt:before{content:\"\"}.fa-sitemap:before{content:\"\"}.fa-umbrella:before{content:\"\"}.fa-paste:before,.fa-clipboard:before{content:\"\"}.fa-lightbulb-o:before{content:\"\"}.fa-exchange:before{content:\"\"}.fa-cloud-download:before{content:\"\"}.fa-cloud-upload:before{content:\"\"}.fa-user-md:before{content:\"\"}.fa-stethoscope:before{content:\"\"}.fa-suitcase:before{content:\"\"}.fa-bell-o:before{content:\"\"}.fa-coffee:before{content:\"\"}.fa-cutlery:before{content:\"\"}.fa-file-text-o:before{content:\"\"}.fa-building-o:before{content:\"\"}.fa-hospital-o:before{content:\"\"}.fa-ambulance:before{content:\"\"}.fa-medkit:before{content:\"\"}.fa-fighter-jet:before{content:\"\"}.fa-beer:before{content:\"\"}.fa-h-square:before{content:\"\"}.fa-plus-square:before{content:\"\"}.fa-angle-double-left:before{content:\"\"}.fa-angle-double-right:before{content:\"\"}.fa-angle-double-up:before{content:\"\"}.fa-angle-double-down:before{content:\"\"}.fa-angle-left:before{content:\"\"}.fa-angle-right:before{content:\"\"}.fa-angle-up:before{content:\"\"}.fa-angle-down:before{content:\"\"}.fa-desktop:before{content:\"\"}.fa-laptop:before{content:\"\"}.fa-tablet:before{content:\"\"}.fa-mobile-phone:before,.fa-mobile:before{content:\"\"}.fa-circle-o:before{content:\"\"}.fa-quote-left:before{content:\"\"}.fa-quote-right:before{content:\"\"}.fa-spinner:before{content:\"\"}.fa-circle:before{content:\"\"}.fa-mail-reply:before,.fa-reply:before{content:\"\"}.fa-github-alt:before{content:\"\"}.fa-folder-o:before{content:\"\"}.fa-folder-open-o:before{content:\"\"}.fa-smile-o:before{content:\"\"}.fa-frown-o:before{content:\"\"}.fa-meh-o:before{content:\"\"}.fa-gamepad:before{content:\"\"}.fa-keyboard-o:before{content:\"\"}.fa-flag-o:before{content:\"\"}.fa-flag-checkered:before{content:\"\"}.fa-terminal:before{content:\"\"}.fa-code:before{content:\"\"}.fa-mail-reply-all:before,.fa-reply-all:before{content:\"\"}.fa-star-half-empty:before,.fa-star-half-full:before,.fa-star-half-o:before{content:\"\"}.fa-location-arrow:before{content:\"\"}.fa-crop:before{content:\"\"}.fa-code-fork:before{content:\"\"}.fa-unlink:before,.fa-chain-broken:before{content:\"\"}.fa-question:before{content:\"\"}.fa-info:before{content:\"\"}.fa-exclamation:before{content:\"\"}.fa-superscript:before{content:\"\"}.fa-subscript:before{content:\"\"}.fa-eraser:before{content:\"\"}.fa-puzzle-piece:before{content:\"\"}.fa-microphone:before{content:\"\"}.fa-microphone-slash:before{content:\"\"}.fa-shield:before{content:\"\"}.fa-calendar-o:before{content:\"\"}.fa-fire-extinguisher:before{content:\"\"}.fa-rocket:before{content:\"\"}.fa-maxcdn:before{content:\"\"}.fa-chevron-circle-left:before{content:\"\"}.fa-chevron-circle-right:before{content:\"\"}.fa-chevron-circle-up:before{content:\"\"}.fa-chevron-circle-down:before{content:\"\"}.fa-html5:before{content:\"\"}.fa-css3:before{content:\"\"}.fa-anchor:before{content:\"\"}.fa-unlock-alt:before{content:\"\"}.fa-bullseye:before{content:\"\"}.fa-ellipsis-h:before{content:\"\"}.fa-ellipsis-v:before{content:\"\"}.fa-rss-square:before{content:\"\"}.fa-play-circle:before{content:\"\"}.fa-ticket:before{content:\"\"}.fa-minus-square:before{content:\"\"}.fa-minus-square-o:before{content:\"\"}.fa-level-up:before{content:\"\"}.fa-level-down:before{content:\"\"}.fa-check-square:before{content:\"\"}.fa-pencil-square:before{content:\"\"}.fa-external-link-square:before{content:\"\"}.fa-share-square:before{content:\"\"}.fa-compass:before{content:\"\"}.fa-toggle-down:before,.fa-caret-square-o-down:before{content:\"\"}.fa-toggle-up:before,.fa-caret-square-o-up:before{content:\"\"}.fa-toggle-right:before,.fa-caret-square-o-right:before{content:\"\"}.fa-euro:before,.fa-eur:before{content:\"\"}.fa-gbp:before{content:\"\"}.fa-dollar:before,.fa-usd:before{content:\"\"}.fa-rupee:before,.fa-inr:before{content:\"\"}.fa-cny:before,.fa-rmb:before,.fa-yen:before,.fa-jpy:before{content:\"\"}.fa-ruble:before,.fa-rouble:before,.fa-rub:before{content:\"\"}.fa-won:before,.fa-krw:before{content:\"\"}.fa-bitcoin:before,.fa-btc:before{content:\"\"}.fa-file:before{content:\"\"}.fa-file-text:before{content:\"\"}.fa-sort-alpha-asc:before{content:\"\"}.fa-sort-alpha-desc:before{content:\"\"}.fa-sort-amount-asc:before{content:\"\"}.fa-sort-amount-desc:before{content:\"\"}.fa-sort-numeric-asc:before{content:\"\"}.fa-sort-numeric-desc:before{content:\"\"}.fa-thumbs-up:before{content:\"\"}.fa-thumbs-down:before{content:\"\"}.fa-youtube-square:before{content:\"\"}.fa-youtube:before{content:\"\"}.fa-xing:before{content:\"\"}.fa-xing-square:before{content:\"\"}.fa-youtube-play:before{content:\"\"}.fa-dropbox:before{content:\"\"}.fa-stack-overflow:before{content:\"\"}.fa-instagram:before{content:\"\"}.fa-flickr:before{content:\"\"}.fa-adn:before{content:\"\"}.fa-bitbucket:before{content:\"\"}.fa-bitbucket-square:before{content:\"\"}.fa-tumblr:before{content:\"\"}.fa-tumblr-square:before{content:\"\"}.fa-long-arrow-down:before{content:\"\"}.fa-long-arrow-up:before{content:\"\"}.fa-long-arrow-left:before{content:\"\"}.fa-long-arrow-right:before{content:\"\"}.fa-apple:before{content:\"\"}.fa-windows:before{content:\"\"}.fa-android:before{content:\"\"}.fa-linux:before{content:\"\"}.fa-dribbble:before{content:\"\"}.fa-skype:before{content:\"\"}.fa-foursquare:before{content:\"\"}.fa-trello:before{content:\"\"}.fa-female:before{content:\"\"}.fa-male:before{content:\"\"}.fa-gittip:before,.fa-gratipay:before{content:\"\"}.fa-sun-o:before{content:\"\"}.fa-moon-o:before{content:\"\"}.fa-archive:before{content:\"\"}.fa-bug:before{content:\"\"}.fa-vk:before{content:\"\"}.fa-weibo:before{content:\"\"}.fa-renren:before{content:\"\"}.fa-pagelines:before{content:\"\"}.fa-stack-exchange:before{content:\"\"}.fa-arrow-circle-o-right:before{content:\"\"}.fa-arrow-circle-o-left:before{content:\"\"}.fa-toggle-left:before,.fa-caret-square-o-left:before{content:\"\"}.fa-dot-circle-o:before{content:\"\"}.fa-wheelchair:before{content:\"\"}.fa-vimeo-square:before{content:\"\"}.fa-turkish-lira:before,.fa-try:before{content:\"\"}.fa-plus-square-o:before{content:\"\"}.fa-space-shuttle:before{content:\"\"}.fa-slack:before{content:\"\"}.fa-envelope-square:before{content:\"\"}.fa-wordpress:before{content:\"\"}.fa-openid:before{content:\"\"}.fa-institution:before,.fa-bank:before,.fa-university:before{content:\"\"}.fa-mortar-board:before,.fa-graduation-cap:before{content:\"\"}.fa-yahoo:before{content:\"\"}.fa-google:before{content:\"\"}.fa-reddit:before{content:\"\"}.fa-reddit-square:before{content:\"\"}.fa-stumbleupon-circle:before{content:\"\"}.fa-stumbleupon:before{content:\"\"}.fa-delicious:before{content:\"\"}.fa-digg:before{content:\"\"}.fa-pied-piper-pp:before{content:\"\"}.fa-pied-piper-alt:before{content:\"\"}.fa-drupal:before{content:\"\"}.fa-joomla:before{content:\"\"}.fa-language:before{content:\"\"}.fa-fax:before{content:\"\"}.fa-building:before{content:\"\"}.fa-child:before{content:\"\"}.fa-paw:before{content:\"\"}.fa-spoon:before{content:\"\"}.fa-cube:before{content:\"\"}.fa-cubes:before{content:\"\"}.fa-behance:before{content:\"\"}.fa-behance-square:before{content:\"\"}.fa-steam:before{content:\"\"}.fa-steam-square:before{content:\"\"}.fa-recycle:before{content:\"\"}.fa-automobile:before,.fa-car:before{content:\"\"}.fa-cab:before,.fa-taxi:before{content:\"\"}.fa-tree:before{content:\"\"}.fa-spotify:before{content:\"\"}.fa-deviantart:before{content:\"\"}.fa-soundcloud:before{content:\"\"}.fa-database:before{content:\"\"}.fa-file-pdf-o:before{content:\"\"}.fa-file-word-o:before{content:\"\"}.fa-file-excel-o:before{content:\"\"}.fa-file-powerpoint-o:before{content:\"\"}.fa-file-photo-o:before,.fa-file-picture-o:before,.fa-file-image-o:before{content:\"\"}.fa-file-zip-o:before,.fa-file-archive-o:before{content:\"\"}.fa-file-sound-o:before,.fa-file-audio-o:before{content:\"\"}.fa-file-movie-o:before,.fa-file-video-o:before{content:\"\"}.fa-file-code-o:before{content:\"\"}.fa-vine:before{content:\"\"}.fa-codepen:before{content:\"\"}.fa-jsfiddle:before{content:\"\"}.fa-life-bouy:before,.fa-life-buoy:before,.fa-life-saver:before,.fa-support:before,.fa-life-ring:before{content:\"\"}.fa-circle-o-notch:before{content:\"\"}.fa-ra:before,.fa-resistance:before,.fa-rebel:before{content:\"\"}.fa-ge:before,.fa-empire:before{content:\"\"}.fa-git-square:before{content:\"\"}.fa-git:before{content:\"\"}.fa-y-combinator-square:before,.fa-yc-square:before,.fa-hacker-news:before{content:\"\"}.fa-tencent-weibo:before{content:\"\"}.fa-qq:before{content:\"\"}.fa-wechat:before,.fa-weixin:before{content:\"\"}.fa-send:before,.fa-paper-plane:before{content:\"\"}.fa-send-o:before,.fa-paper-plane-o:before{content:\"\"}.fa-history:before{content:\"\"}.fa-circle-thin:before{content:\"\"}.fa-header:before{content:\"\"}.fa-paragraph:before{content:\"\"}.fa-sliders:before{content:\"\"}.fa-share-alt:before{content:\"\"}.fa-share-alt-square:before{content:\"\"}.fa-bomb:before{content:\"\"}.fa-soccer-ball-o:before,.fa-futbol-o:before{content:\"\"}.fa-tty:before{content:\"\"}.fa-binoculars:before{content:\"\"}.fa-plug:before{content:\"\"}.fa-slideshare:before{content:\"\"}.fa-twitch:before{content:\"\"}.fa-yelp:before{content:\"\"}.fa-newspaper-o:before{content:\"\"}.fa-wifi:before{content:\"\"}.fa-calculator:before{content:\"\"}.fa-paypal:before{content:\"\"}.fa-google-wallet:before{content:\"\"}.fa-cc-visa:before{content:\"\"}.fa-cc-mastercard:before{content:\"\"}.fa-cc-discover:before{content:\"\"}.fa-cc-amex:before{content:\"\"}.fa-cc-paypal:before{content:\"\"}.fa-cc-stripe:before{content:\"\"}.fa-bell-slash:before{content:\"\"}.fa-bell-slash-o:before{content:\"\"}.fa-trash:before{content:\"\"}.fa-copyright:before{content:\"\"}.fa-at:before{content:\"\"}.fa-eyedropper:before{content:\"\"}.fa-paint-brush:before{content:\"\"}.fa-birthday-cake:before{content:\"\"}.fa-area-chart:before{content:\"\"}.fa-pie-chart:before{content:\"\"}.fa-line-chart:before{content:\"\"}.fa-lastfm:before{content:\"\"}.fa-lastfm-square:before{content:\"\"}.fa-toggle-off:before{content:\"\"}.fa-toggle-on:before{content:\"\"}.fa-bicycle:before{content:\"\"}.fa-bus:before{content:\"\"}.fa-ioxhost:before{content:\"\"}.fa-angellist:before{content:\"\"}.fa-cc:before{content:\"\"}.fa-shekel:before,.fa-sheqel:before,.fa-ils:before{content:\"\"}.fa-meanpath:before{content:\"\"}.fa-buysellads:before{content:\"\"}.fa-connectdevelop:before{content:\"\"}.fa-dashcube:before{content:\"\"}.fa-forumbee:before{content:\"\"}.fa-leanpub:before{content:\"\"}.fa-sellsy:before{content:\"\"}.fa-shirtsinbulk:before{content:\"\"}.fa-simplybuilt:before{content:\"\"}.fa-skyatlas:before{content:\"\"}.fa-cart-plus:before{content:\"\"}.fa-cart-arrow-down:before{content:\"\"}.fa-diamond:before{content:\"\"}.fa-ship:before{content:\"\"}.fa-user-secret:before{content:\"\"}.fa-motorcycle:before{content:\"\"}.fa-street-view:before{content:\"\"}.fa-heartbeat:before{content:\"\"}.fa-venus:before{content:\"\"}.fa-mars:before{content:\"\"}.fa-mercury:before{content:\"\"}.fa-intersex:before,.fa-transgender:before{content:\"\"}.fa-transgender-alt:before{content:\"\"}.fa-venus-double:before{content:\"\"}.fa-mars-double:before{content:\"\"}.fa-venus-mars:before{content:\"\"}.fa-mars-stroke:before{content:\"\"}.fa-mars-stroke-v:before{content:\"\"}.fa-mars-stroke-h:before{content:\"\"}.fa-neuter:before{content:\"\"}.fa-genderless:before{content:\"\"}.fa-facebook-official:before{content:\"\"}.fa-pinterest-p:before{content:\"\"}.fa-whatsapp:before{content:\"\"}.fa-server:before{content:\"\"}.fa-user-plus:before{content:\"\"}.fa-user-times:before{content:\"\"}.fa-hotel:before,.fa-bed:before{content:\"\"}.fa-viacoin:before{content:\"\"}.fa-train:before{content:\"\"}.fa-subway:before{content:\"\"}.fa-medium:before{content:\"\"}.fa-yc:before,.fa-y-combinator:before{content:\"\"}.fa-optin-monster:before{content:\"\"}.fa-opencart:before{content:\"\"}.fa-expeditedssl:before{content:\"\"}.fa-battery-4:before,.fa-battery:before,.fa-battery-full:before{content:\"\"}.fa-battery-3:before,.fa-battery-three-quarters:before{content:\"\"}.fa-battery-2:before,.fa-battery-half:before{content:\"\"}.fa-battery-1:before,.fa-battery-quarter:before{content:\"\"}.fa-battery-0:before,.fa-battery-empty:before{content:\"\"}.fa-mouse-pointer:before{content:\"\"}.fa-i-cursor:before{content:\"\"}.fa-object-group:before{content:\"\"}.fa-object-ungroup:before{content:\"\"}.fa-sticky-note:before{content:\"\"}.fa-sticky-note-o:before{content:\"\"}.fa-cc-jcb:before{content:\"\"}.fa-cc-diners-club:before{content:\"\"}.fa-clone:before{content:\"\"}.fa-balance-scale:before{content:\"\"}.fa-hourglass-o:before{content:\"\"}.fa-hourglass-1:before,.fa-hourglass-start:before{content:\"\"}.fa-hourglass-2:before,.fa-hourglass-half:before{content:\"\"}.fa-hourglass-3:before,.fa-hourglass-end:before{content:\"\"}.fa-hourglass:before{content:\"\"}.fa-hand-grab-o:before,.fa-hand-rock-o:before{content:\"\"}.fa-hand-stop-o:before,.fa-hand-paper-o:before{content:\"\"}.fa-hand-scissors-o:before{content:\"\"}.fa-hand-lizard-o:before{content:\"\"}.fa-hand-spock-o:before{content:\"\"}.fa-hand-pointer-o:before{content:\"\"}.fa-hand-peace-o:before{content:\"\"}.fa-trademark:before{content:\"\"}.fa-registered:before{content:\"\"}.fa-creative-commons:before{content:\"\"}.fa-gg:before{content:\"\"}.fa-gg-circle:before{content:\"\"}.fa-tripadvisor:before{content:\"\"}.fa-odnoklassniki:before{content:\"\"}.fa-odnoklassniki-square:before{content:\"\"}.fa-get-pocket:before{content:\"\"}.fa-wikipedia-w:before{content:\"\"}.fa-safari:before{content:\"\"}.fa-chrome:before{content:\"\"}.fa-firefox:before{content:\"\"}.fa-opera:before{content:\"\"}.fa-internet-explorer:before{content:\"\"}.fa-tv:before,.fa-television:before{content:\"\"}.fa-contao:before{content:\"\"}.fa-500px:before{content:\"\"}.fa-amazon:before{content:\"\"}.fa-calendar-plus-o:before{content:\"\"}.fa-calendar-minus-o:before{content:\"\"}.fa-calendar-times-o:before{content:\"\"}.fa-calendar-check-o:before{content:\"\"}.fa-industry:before{content:\"\"}.fa-map-pin:before{content:\"\"}.fa-map-signs:before{content:\"\"}.fa-map-o:before{content:\"\"}.fa-map:before{content:\"\"}.fa-commenting:before{content:\"\"}.fa-commenting-o:before{content:\"\"}.fa-houzz:before{content:\"\"}.fa-vimeo:before{content:\"\"}.fa-black-tie:before{content:\"\"}.fa-fonticons:before{content:\"\"}.fa-reddit-alien:before{content:\"\"}.fa-edge:before{content:\"\"}.fa-credit-card-alt:before{content:\"\"}.fa-codiepie:before{content:\"\"}.fa-modx:before{content:\"\"}.fa-fort-awesome:before{content:\"\"}.fa-usb:before{content:\"\"}.fa-product-hunt:before{content:\"\"}.fa-mixcloud:before{content:\"\"}.fa-scribd:before{content:\"\"}.fa-pause-circle:before{content:\"\"}.fa-pause-circle-o:before{content:\"\"}.fa-stop-circle:before{content:\"\"}.fa-stop-circle-o:before{content:\"\"}.fa-shopping-bag:before{content:\"\"}.fa-shopping-basket:before{content:\"\"}.fa-hashtag:before{content:\"\"}.fa-bluetooth:before{content:\"\"}.fa-bluetooth-b:before{content:\"\"}.fa-percent:before{content:\"\"}.fa-gitlab:before{content:\"\"}.fa-wpbeginner:before{content:\"\"}.fa-wpforms:before{content:\"\"}.fa-envira:before{content:\"\"}.fa-universal-access:before{content:\"\"}.fa-wheelchair-alt:before{content:\"\"}.fa-question-circle-o:before{content:\"\"}.fa-blind:before{content:\"\"}.fa-audio-description:before{content:\"\"}.fa-volume-control-phone:before{content:\"\"}.fa-braille:before{content:\"\"}.fa-assistive-listening-systems:before{content:\"\"}.fa-asl-interpreting:before,.fa-american-sign-language-interpreting:before{content:\"\"}.fa-deafness:before,.fa-hard-of-hearing:before,.fa-deaf:before{content:\"\"}.fa-glide:before{content:\"\"}.fa-glide-g:before{content:\"\"}.fa-signing:before,.fa-sign-language:before{content:\"\"}.fa-low-vision:before{content:\"\"}.fa-viadeo:before{content:\"\"}.fa-viadeo-square:before{content:\"\"}.fa-snapchat:before{content:\"\"}.fa-snapchat-ghost:before{content:\"\"}.fa-snapchat-square:before{content:\"\"}.fa-pied-piper:before{content:\"\"}.fa-first-order:before{content:\"\"}.fa-yoast:before{content:\"\"}.fa-themeisle:before{content:\"\"}.fa-google-plus-circle:before,.fa-google-plus-official:before{content:\"\"}.fa-fa:before,.fa-font-awesome:before{content:\"\"}.fa-handshake-o:before{content:\"\"}.fa-envelope-open:before{content:\"\"}.fa-envelope-open-o:before{content:\"\"}.fa-linode:before{content:\"\"}.fa-address-book:before{content:\"\"}.fa-address-book-o:before{content:\"\"}.fa-vcard:before,.fa-address-card:before{content:\"\"}.fa-vcard-o:before,.fa-address-card-o:before{content:\"\"}.fa-user-circle:before{content:\"\"}.fa-user-circle-o:before{content:\"\"}.fa-user-o:before{content:\"\"}.fa-id-badge:before{content:\"\"}.fa-drivers-license:before,.fa-id-card:before{content:\"\"}.fa-drivers-license-o:before,.fa-id-card-o:before{content:\"\"}.fa-quora:before{content:\"\"}.fa-free-code-camp:before{content:\"\"}.fa-telegram:before{content:\"\"}.fa-thermometer-4:before,.fa-thermometer:before,.fa-thermometer-full:before{content:\"\"}.fa-thermometer-3:before,.fa-thermometer-three-quarters:before{content:\"\"}.fa-thermometer-2:before,.fa-thermometer-half:before{content:\"\"}.fa-thermometer-1:before,.fa-thermometer-quarter:before{content:\"\"}.fa-thermometer-0:before,.fa-thermometer-empty:before{content:\"\"}.fa-shower:before{content:\"\"}.fa-bathtub:before,.fa-s15:before,.fa-bath:before{content:\"\"}.fa-podcast:before{content:\"\"}.fa-window-maximize:before{content:\"\"}.fa-window-minimize:before{content:\"\"}.fa-window-restore:before{content:\"\"}.fa-times-rectangle:before,.fa-window-close:before{content:\"\"}.fa-times-rectangle-o:before,.fa-window-close-o:before{content:\"\"}.fa-bandcamp:before{content:\"\"}.fa-grav:before{content:\"\"}.fa-etsy:before{content:\"\"}.fa-imdb:before{content:\"\"}.fa-ravelry:before{content:\"\"}.fa-eercast:before{content:\"\"}.fa-microchip:before{content:\"\"}.fa-snowflake-o:before{content:\"\"}.fa-superpowers:before{content:\"\"}.fa-wpexplorer:before{content:\"\"}.fa-meetup:before{content:\"\"}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto}","/*!\n * Font Awesome 4.7.0 by @davegandy - http://fontawesome.io - @fontawesome\n * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License)\n */\n/* FONT PATH\n * -------------------------- */\n@font-face {\n font-family: 'FontAwesome';\n src: url('../fonts/fontawesome-webfont.eot?v=4.7.0');\n src: url('../fonts/fontawesome-webfont.eot?#iefix&v=4.7.0') format('embedded-opentype'), url('../fonts/fontawesome-webfont.woff2?v=4.7.0') format('woff2'), url('../fonts/fontawesome-webfont.woff?v=4.7.0') format('woff'), url('../fonts/fontawesome-webfont.ttf?v=4.7.0') format('truetype'), url('../fonts/fontawesome-webfont.svg?v=4.7.0#fontawesomeregular') format('svg');\n font-weight: normal;\n font-style: normal;\n}\n.fa {\n display: inline-block;\n font: normal normal normal 14px/1 FontAwesome;\n font-size: inherit;\n text-rendering: auto;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n}\n/* makes the font 33% larger relative to the icon container */\n.fa-lg {\n font-size: 1.33333333em;\n line-height: 0.75em;\n vertical-align: -15%;\n}\n.fa-2x {\n font-size: 2em;\n}\n.fa-3x {\n font-size: 3em;\n}\n.fa-4x {\n font-size: 4em;\n}\n.fa-5x {\n font-size: 5em;\n}\n.fa-fw {\n width: 1.28571429em;\n text-align: center;\n}\n.fa-ul {\n padding-left: 0;\n margin-left: 2.14285714em;\n list-style-type: none;\n}\n.fa-ul > li {\n position: relative;\n}\n.fa-li {\n position: absolute;\n left: -2.14285714em;\n width: 2.14285714em;\n top: 0.14285714em;\n text-align: center;\n}\n.fa-li.fa-lg {\n left: -1.85714286em;\n}\n.fa-border {\n padding: .2em .25em .15em;\n border: solid 0.08em #eeeeee;\n border-radius: .1em;\n}\n.fa-pull-left {\n float: left;\n}\n.fa-pull-right {\n float: right;\n}\n.fa.fa-pull-left {\n margin-right: .3em;\n}\n.fa.fa-pull-right {\n margin-left: .3em;\n}\n/* Deprecated as of 4.4.0 */\n.pull-right {\n float: right;\n}\n.pull-left {\n float: left;\n}\n.fa.pull-left {\n margin-right: .3em;\n}\n.fa.pull-right {\n margin-left: .3em;\n}\n.fa-spin {\n -webkit-animation: fa-spin 2s infinite linear;\n animation: fa-spin 2s infinite linear;\n}\n.fa-pulse {\n -webkit-animation: fa-spin 1s infinite steps(8);\n animation: fa-spin 1s infinite steps(8);\n}\n@-webkit-keyframes fa-spin {\n 0% {\n -webkit-transform: rotate(0deg);\n transform: rotate(0deg);\n }\n 100% {\n -webkit-transform: rotate(359deg);\n transform: rotate(359deg);\n }\n}\n@keyframes fa-spin {\n 0% {\n -webkit-transform: rotate(0deg);\n transform: rotate(0deg);\n }\n 100% {\n -webkit-transform: rotate(359deg);\n transform: rotate(359deg);\n }\n}\n.fa-rotate-90 {\n -ms-filter: \"progid:DXImageTransform.Microsoft.BasicImage(rotation=1)\";\n -webkit-transform: rotate(90deg);\n -ms-transform: rotate(90deg);\n transform: rotate(90deg);\n}\n.fa-rotate-180 {\n -ms-filter: \"progid:DXImageTransform.Microsoft.BasicImage(rotation=2)\";\n -webkit-transform: rotate(180deg);\n -ms-transform: rotate(180deg);\n transform: rotate(180deg);\n}\n.fa-rotate-270 {\n -ms-filter: \"progid:DXImageTransform.Microsoft.BasicImage(rotation=3)\";\n -webkit-transform: rotate(270deg);\n -ms-transform: rotate(270deg);\n transform: rotate(270deg);\n}\n.fa-flip-horizontal {\n -ms-filter: \"progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)\";\n -webkit-transform: scale(-1, 1);\n -ms-transform: scale(-1, 1);\n transform: scale(-1, 1);\n}\n.fa-flip-vertical {\n -ms-filter: \"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)\";\n -webkit-transform: scale(1, -1);\n -ms-transform: scale(1, -1);\n transform: scale(1, -1);\n}\n:root .fa-rotate-90,\n:root .fa-rotate-180,\n:root .fa-rotate-270,\n:root .fa-flip-horizontal,\n:root .fa-flip-vertical {\n filter: none;\n}\n.fa-stack {\n position: relative;\n display: inline-block;\n width: 2em;\n height: 2em;\n line-height: 2em;\n vertical-align: middle;\n}\n.fa-stack-1x,\n.fa-stack-2x {\n position: absolute;\n left: 0;\n width: 100%;\n text-align: center;\n}\n.fa-stack-1x {\n line-height: inherit;\n}\n.fa-stack-2x {\n font-size: 2em;\n}\n.fa-inverse {\n color: #ffffff;\n}\n/* Font Awesome uses the Unicode Private Use Area (PUA) to ensure screen\n readers do not read off random characters that represent icons */\n.fa-glass:before {\n content: \"\\f000\";\n}\n.fa-music:before {\n content: \"\\f001\";\n}\n.fa-search:before {\n content: \"\\f002\";\n}\n.fa-envelope-o:before {\n content: \"\\f003\";\n}\n.fa-heart:before {\n content: \"\\f004\";\n}\n.fa-star:before {\n content: \"\\f005\";\n}\n.fa-star-o:before {\n content: \"\\f006\";\n}\n.fa-user:before {\n content: \"\\f007\";\n}\n.fa-film:before {\n content: \"\\f008\";\n}\n.fa-th-large:before {\n content: \"\\f009\";\n}\n.fa-th:before {\n content: \"\\f00a\";\n}\n.fa-th-list:before {\n content: \"\\f00b\";\n}\n.fa-check:before {\n content: \"\\f00c\";\n}\n.fa-remove:before,\n.fa-close:before,\n.fa-times:before {\n content: \"\\f00d\";\n}\n.fa-search-plus:before {\n content: \"\\f00e\";\n}\n.fa-search-minus:before {\n content: \"\\f010\";\n}\n.fa-power-off:before {\n content: \"\\f011\";\n}\n.fa-signal:before {\n content: \"\\f012\";\n}\n.fa-gear:before,\n.fa-cog:before {\n content: \"\\f013\";\n}\n.fa-trash-o:before {\n content: \"\\f014\";\n}\n.fa-home:before {\n content: \"\\f015\";\n}\n.fa-file-o:before {\n content: \"\\f016\";\n}\n.fa-clock-o:before {\n content: \"\\f017\";\n}\n.fa-road:before {\n content: \"\\f018\";\n}\n.fa-download:before {\n content: \"\\f019\";\n}\n.fa-arrow-circle-o-down:before {\n content: \"\\f01a\";\n}\n.fa-arrow-circle-o-up:before {\n content: \"\\f01b\";\n}\n.fa-inbox:before {\n content: \"\\f01c\";\n}\n.fa-play-circle-o:before {\n content: \"\\f01d\";\n}\n.fa-rotate-right:before,\n.fa-repeat:before {\n content: \"\\f01e\";\n}\n.fa-refresh:before {\n content: \"\\f021\";\n}\n.fa-list-alt:before {\n content: \"\\f022\";\n}\n.fa-lock:before {\n content: \"\\f023\";\n}\n.fa-flag:before {\n content: \"\\f024\";\n}\n.fa-headphones:before {\n content: \"\\f025\";\n}\n.fa-volume-off:before {\n content: \"\\f026\";\n}\n.fa-volume-down:before {\n content: \"\\f027\";\n}\n.fa-volume-up:before {\n content: \"\\f028\";\n}\n.fa-qrcode:before {\n content: \"\\f029\";\n}\n.fa-barcode:before {\n content: \"\\f02a\";\n}\n.fa-tag:before {\n content: \"\\f02b\";\n}\n.fa-tags:before {\n content: \"\\f02c\";\n}\n.fa-book:before {\n content: \"\\f02d\";\n}\n.fa-bookmark:before {\n content: \"\\f02e\";\n}\n.fa-print:before {\n content: \"\\f02f\";\n}\n.fa-camera:before {\n content: \"\\f030\";\n}\n.fa-font:before {\n content: \"\\f031\";\n}\n.fa-bold:before {\n content: \"\\f032\";\n}\n.fa-italic:before {\n content: \"\\f033\";\n}\n.fa-text-height:before {\n content: \"\\f034\";\n}\n.fa-text-width:before {\n content: \"\\f035\";\n}\n.fa-align-left:before {\n content: \"\\f036\";\n}\n.fa-align-center:before {\n content: \"\\f037\";\n}\n.fa-align-right:before {\n content: \"\\f038\";\n}\n.fa-align-justify:before {\n content: \"\\f039\";\n}\n.fa-list:before {\n content: \"\\f03a\";\n}\n.fa-dedent:before,\n.fa-outdent:before {\n content: \"\\f03b\";\n}\n.fa-indent:before {\n content: \"\\f03c\";\n}\n.fa-video-camera:before {\n content: \"\\f03d\";\n}\n.fa-photo:before,\n.fa-image:before,\n.fa-picture-o:before {\n content: \"\\f03e\";\n}\n.fa-pencil:before {\n content: \"\\f040\";\n}\n.fa-map-marker:before {\n content: \"\\f041\";\n}\n.fa-adjust:before {\n content: \"\\f042\";\n}\n.fa-tint:before {\n content: \"\\f043\";\n}\n.fa-edit:before,\n.fa-pencil-square-o:before {\n content: \"\\f044\";\n}\n.fa-share-square-o:before {\n content: \"\\f045\";\n}\n.fa-check-square-o:before {\n content: \"\\f046\";\n}\n.fa-arrows:before {\n content: \"\\f047\";\n}\n.fa-step-backward:before {\n content: \"\\f048\";\n}\n.fa-fast-backward:before {\n content: \"\\f049\";\n}\n.fa-backward:before {\n content: \"\\f04a\";\n}\n.fa-play:before {\n content: \"\\f04b\";\n}\n.fa-pause:before {\n content: \"\\f04c\";\n}\n.fa-stop:before {\n content: \"\\f04d\";\n}\n.fa-forward:before {\n content: \"\\f04e\";\n}\n.fa-fast-forward:before {\n content: \"\\f050\";\n}\n.fa-step-forward:before {\n content: \"\\f051\";\n}\n.fa-eject:before {\n content: \"\\f052\";\n}\n.fa-chevron-left:before {\n content: \"\\f053\";\n}\n.fa-chevron-right:before {\n content: \"\\f054\";\n}\n.fa-plus-circle:before {\n content: \"\\f055\";\n}\n.fa-minus-circle:before {\n content: \"\\f056\";\n}\n.fa-times-circle:before {\n content: \"\\f057\";\n}\n.fa-check-circle:before {\n content: \"\\f058\";\n}\n.fa-question-circle:before {\n content: \"\\f059\";\n}\n.fa-info-circle:before {\n content: \"\\f05a\";\n}\n.fa-crosshairs:before {\n content: \"\\f05b\";\n}\n.fa-times-circle-o:before {\n content: \"\\f05c\";\n}\n.fa-check-circle-o:before {\n content: \"\\f05d\";\n}\n.fa-ban:before {\n content: \"\\f05e\";\n}\n.fa-arrow-left:before {\n content: \"\\f060\";\n}\n.fa-arrow-right:before {\n content: \"\\f061\";\n}\n.fa-arrow-up:before {\n content: \"\\f062\";\n}\n.fa-arrow-down:before {\n content: \"\\f063\";\n}\n.fa-mail-forward:before,\n.fa-share:before {\n content: \"\\f064\";\n}\n.fa-expand:before {\n content: \"\\f065\";\n}\n.fa-compress:before {\n content: \"\\f066\";\n}\n.fa-plus:before {\n content: \"\\f067\";\n}\n.fa-minus:before {\n content: \"\\f068\";\n}\n.fa-asterisk:before {\n content: \"\\f069\";\n}\n.fa-exclamation-circle:before {\n content: \"\\f06a\";\n}\n.fa-gift:before {\n content: \"\\f06b\";\n}\n.fa-leaf:before {\n content: \"\\f06c\";\n}\n.fa-fire:before {\n content: \"\\f06d\";\n}\n.fa-eye:before {\n content: \"\\f06e\";\n}\n.fa-eye-slash:before {\n content: \"\\f070\";\n}\n.fa-warning:before,\n.fa-exclamation-triangle:before {\n content: \"\\f071\";\n}\n.fa-plane:before {\n content: \"\\f072\";\n}\n.fa-calendar:before {\n content: \"\\f073\";\n}\n.fa-random:before {\n content: \"\\f074\";\n}\n.fa-comment:before {\n content: \"\\f075\";\n}\n.fa-magnet:before {\n content: \"\\f076\";\n}\n.fa-chevron-up:before {\n content: \"\\f077\";\n}\n.fa-chevron-down:before {\n content: \"\\f078\";\n}\n.fa-retweet:before {\n content: \"\\f079\";\n}\n.fa-shopping-cart:before {\n content: \"\\f07a\";\n}\n.fa-folder:before {\n content: \"\\f07b\";\n}\n.fa-folder-open:before {\n content: \"\\f07c\";\n}\n.fa-arrows-v:before {\n content: \"\\f07d\";\n}\n.fa-arrows-h:before {\n content: \"\\f07e\";\n}\n.fa-bar-chart-o:before,\n.fa-bar-chart:before {\n content: \"\\f080\";\n}\n.fa-twitter-square:before {\n content: \"\\f081\";\n}\n.fa-facebook-square:before {\n content: \"\\f082\";\n}\n.fa-camera-retro:before {\n content: \"\\f083\";\n}\n.fa-key:before {\n content: \"\\f084\";\n}\n.fa-gears:before,\n.fa-cogs:before {\n content: \"\\f085\";\n}\n.fa-comments:before {\n content: \"\\f086\";\n}\n.fa-thumbs-o-up:before {\n content: \"\\f087\";\n}\n.fa-thumbs-o-down:before {\n content: \"\\f088\";\n}\n.fa-star-half:before {\n content: \"\\f089\";\n}\n.fa-heart-o:before {\n content: \"\\f08a\";\n}\n.fa-sign-out:before {\n content: \"\\f08b\";\n}\n.fa-linkedin-square:before {\n content: \"\\f08c\";\n}\n.fa-thumb-tack:before {\n content: \"\\f08d\";\n}\n.fa-external-link:before {\n content: \"\\f08e\";\n}\n.fa-sign-in:before {\n content: \"\\f090\";\n}\n.fa-trophy:before {\n content: \"\\f091\";\n}\n.fa-github-square:before {\n content: \"\\f092\";\n}\n.fa-upload:before {\n content: \"\\f093\";\n}\n.fa-lemon-o:before {\n content: \"\\f094\";\n}\n.fa-phone:before {\n content: \"\\f095\";\n}\n.fa-square-o:before {\n content: \"\\f096\";\n}\n.fa-bookmark-o:before {\n content: \"\\f097\";\n}\n.fa-phone-square:before {\n content: \"\\f098\";\n}\n.fa-twitter:before {\n content: \"\\f099\";\n}\n.fa-facebook-f:before,\n.fa-facebook:before {\n content: \"\\f09a\";\n}\n.fa-github:before {\n content: \"\\f09b\";\n}\n.fa-unlock:before {\n content: \"\\f09c\";\n}\n.fa-credit-card:before {\n content: \"\\f09d\";\n}\n.fa-feed:before,\n.fa-rss:before {\n content: \"\\f09e\";\n}\n.fa-hdd-o:before {\n content: \"\\f0a0\";\n}\n.fa-bullhorn:before {\n content: \"\\f0a1\";\n}\n.fa-bell:before {\n content: \"\\f0f3\";\n}\n.fa-certificate:before {\n content: \"\\f0a3\";\n}\n.fa-hand-o-right:before {\n content: \"\\f0a4\";\n}\n.fa-hand-o-left:before {\n content: \"\\f0a5\";\n}\n.fa-hand-o-up:before {\n content: \"\\f0a6\";\n}\n.fa-hand-o-down:before {\n content: \"\\f0a7\";\n}\n.fa-arrow-circle-left:before {\n content: \"\\f0a8\";\n}\n.fa-arrow-circle-right:before {\n content: \"\\f0a9\";\n}\n.fa-arrow-circle-up:before {\n content: \"\\f0aa\";\n}\n.fa-arrow-circle-down:before {\n content: \"\\f0ab\";\n}\n.fa-globe:before {\n content: \"\\f0ac\";\n}\n.fa-wrench:before {\n content: \"\\f0ad\";\n}\n.fa-tasks:before {\n content: \"\\f0ae\";\n}\n.fa-filter:before {\n content: \"\\f0b0\";\n}\n.fa-briefcase:before {\n content: \"\\f0b1\";\n}\n.fa-arrows-alt:before {\n content: \"\\f0b2\";\n}\n.fa-group:before,\n.fa-users:before {\n content: \"\\f0c0\";\n}\n.fa-chain:before,\n.fa-link:before {\n content: \"\\f0c1\";\n}\n.fa-cloud:before {\n content: \"\\f0c2\";\n}\n.fa-flask:before {\n content: \"\\f0c3\";\n}\n.fa-cut:before,\n.fa-scissors:before {\n content: \"\\f0c4\";\n}\n.fa-copy:before,\n.fa-files-o:before {\n content: \"\\f0c5\";\n}\n.fa-paperclip:before {\n content: \"\\f0c6\";\n}\n.fa-save:before,\n.fa-floppy-o:before {\n content: \"\\f0c7\";\n}\n.fa-square:before {\n content: \"\\f0c8\";\n}\n.fa-navicon:before,\n.fa-reorder:before,\n.fa-bars:before {\n content: \"\\f0c9\";\n}\n.fa-list-ul:before {\n content: \"\\f0ca\";\n}\n.fa-list-ol:before {\n content: \"\\f0cb\";\n}\n.fa-strikethrough:before {\n content: \"\\f0cc\";\n}\n.fa-underline:before {\n content: \"\\f0cd\";\n}\n.fa-table:before {\n content: \"\\f0ce\";\n}\n.fa-magic:before {\n content: \"\\f0d0\";\n}\n.fa-truck:before {\n content: \"\\f0d1\";\n}\n.fa-pinterest:before {\n content: \"\\f0d2\";\n}\n.fa-pinterest-square:before {\n content: \"\\f0d3\";\n}\n.fa-google-plus-square:before {\n content: \"\\f0d4\";\n}\n.fa-google-plus:before {\n content: \"\\f0d5\";\n}\n.fa-money:before {\n content: \"\\f0d6\";\n}\n.fa-caret-down:before {\n content: \"\\f0d7\";\n}\n.fa-caret-up:before {\n content: \"\\f0d8\";\n}\n.fa-caret-left:before {\n content: \"\\f0d9\";\n}\n.fa-caret-right:before {\n content: \"\\f0da\";\n}\n.fa-columns:before {\n content: \"\\f0db\";\n}\n.fa-unsorted:before,\n.fa-sort:before {\n content: \"\\f0dc\";\n}\n.fa-sort-down:before,\n.fa-sort-desc:before {\n content: \"\\f0dd\";\n}\n.fa-sort-up:before,\n.fa-sort-asc:before {\n content: \"\\f0de\";\n}\n.fa-envelope:before {\n content: \"\\f0e0\";\n}\n.fa-linkedin:before {\n content: \"\\f0e1\";\n}\n.fa-rotate-left:before,\n.fa-undo:before {\n content: \"\\f0e2\";\n}\n.fa-legal:before,\n.fa-gavel:before {\n content: \"\\f0e3\";\n}\n.fa-dashboard:before,\n.fa-tachometer:before {\n content: \"\\f0e4\";\n}\n.fa-comment-o:before {\n content: \"\\f0e5\";\n}\n.fa-comments-o:before {\n content: \"\\f0e6\";\n}\n.fa-flash:before,\n.fa-bolt:before {\n content: \"\\f0e7\";\n}\n.fa-sitemap:before {\n content: \"\\f0e8\";\n}\n.fa-umbrella:before {\n content: \"\\f0e9\";\n}\n.fa-paste:before,\n.fa-clipboard:before {\n content: \"\\f0ea\";\n}\n.fa-lightbulb-o:before {\n content: \"\\f0eb\";\n}\n.fa-exchange:before {\n content: \"\\f0ec\";\n}\n.fa-cloud-download:before {\n content: \"\\f0ed\";\n}\n.fa-cloud-upload:before {\n content: \"\\f0ee\";\n}\n.fa-user-md:before {\n content: \"\\f0f0\";\n}\n.fa-stethoscope:before {\n content: \"\\f0f1\";\n}\n.fa-suitcase:before {\n content: \"\\f0f2\";\n}\n.fa-bell-o:before {\n content: \"\\f0a2\";\n}\n.fa-coffee:before {\n content: \"\\f0f4\";\n}\n.fa-cutlery:before {\n content: \"\\f0f5\";\n}\n.fa-file-text-o:before {\n content: \"\\f0f6\";\n}\n.fa-building-o:before {\n content: \"\\f0f7\";\n}\n.fa-hospital-o:before {\n content: \"\\f0f8\";\n}\n.fa-ambulance:before {\n content: \"\\f0f9\";\n}\n.fa-medkit:before {\n content: \"\\f0fa\";\n}\n.fa-fighter-jet:before {\n content: \"\\f0fb\";\n}\n.fa-beer:before {\n content: \"\\f0fc\";\n}\n.fa-h-square:before {\n content: \"\\f0fd\";\n}\n.fa-plus-square:before {\n content: \"\\f0fe\";\n}\n.fa-angle-double-left:before {\n content: \"\\f100\";\n}\n.fa-angle-double-right:before {\n content: \"\\f101\";\n}\n.fa-angle-double-up:before {\n content: \"\\f102\";\n}\n.fa-angle-double-down:before {\n content: \"\\f103\";\n}\n.fa-angle-left:before {\n content: \"\\f104\";\n}\n.fa-angle-right:before {\n content: \"\\f105\";\n}\n.fa-angle-up:before {\n content: \"\\f106\";\n}\n.fa-angle-down:before {\n content: \"\\f107\";\n}\n.fa-desktop:before {\n content: \"\\f108\";\n}\n.fa-laptop:before {\n content: \"\\f109\";\n}\n.fa-tablet:before {\n content: \"\\f10a\";\n}\n.fa-mobile-phone:before,\n.fa-mobile:before {\n content: \"\\f10b\";\n}\n.fa-circle-o:before {\n content: \"\\f10c\";\n}\n.fa-quote-left:before {\n content: \"\\f10d\";\n}\n.fa-quote-right:before {\n content: \"\\f10e\";\n}\n.fa-spinner:before {\n content: \"\\f110\";\n}\n.fa-circle:before {\n content: \"\\f111\";\n}\n.fa-mail-reply:before,\n.fa-reply:before {\n content: \"\\f112\";\n}\n.fa-github-alt:before {\n content: \"\\f113\";\n}\n.fa-folder-o:before {\n content: \"\\f114\";\n}\n.fa-folder-open-o:before {\n content: \"\\f115\";\n}\n.fa-smile-o:before {\n content: \"\\f118\";\n}\n.fa-frown-o:before {\n content: \"\\f119\";\n}\n.fa-meh-o:before {\n content: \"\\f11a\";\n}\n.fa-gamepad:before {\n content: \"\\f11b\";\n}\n.fa-keyboard-o:before {\n content: \"\\f11c\";\n}\n.fa-flag-o:before {\n content: \"\\f11d\";\n}\n.fa-flag-checkered:before {\n content: \"\\f11e\";\n}\n.fa-terminal:before {\n content: \"\\f120\";\n}\n.fa-code:before {\n content: \"\\f121\";\n}\n.fa-mail-reply-all:before,\n.fa-reply-all:before {\n content: \"\\f122\";\n}\n.fa-star-half-empty:before,\n.fa-star-half-full:before,\n.fa-star-half-o:before {\n content: \"\\f123\";\n}\n.fa-location-arrow:before {\n content: \"\\f124\";\n}\n.fa-crop:before {\n content: \"\\f125\";\n}\n.fa-code-fork:before {\n content: \"\\f126\";\n}\n.fa-unlink:before,\n.fa-chain-broken:before {\n content: \"\\f127\";\n}\n.fa-question:before {\n content: \"\\f128\";\n}\n.fa-info:before {\n content: \"\\f129\";\n}\n.fa-exclamation:before {\n content: \"\\f12a\";\n}\n.fa-superscript:before {\n content: \"\\f12b\";\n}\n.fa-subscript:before {\n content: \"\\f12c\";\n}\n.fa-eraser:before {\n content: \"\\f12d\";\n}\n.fa-puzzle-piece:before {\n content: \"\\f12e\";\n}\n.fa-microphone:before {\n content: \"\\f130\";\n}\n.fa-microphone-slash:before {\n content: \"\\f131\";\n}\n.fa-shield:before {\n content: \"\\f132\";\n}\n.fa-calendar-o:before {\n content: \"\\f133\";\n}\n.fa-fire-extinguisher:before {\n content: \"\\f134\";\n}\n.fa-rocket:before {\n content: \"\\f135\";\n}\n.fa-maxcdn:before {\n content: \"\\f136\";\n}\n.fa-chevron-circle-left:before {\n content: \"\\f137\";\n}\n.fa-chevron-circle-right:before {\n content: \"\\f138\";\n}\n.fa-chevron-circle-up:before {\n content: \"\\f139\";\n}\n.fa-chevron-circle-down:before {\n content: \"\\f13a\";\n}\n.fa-html5:before {\n content: \"\\f13b\";\n}\n.fa-css3:before {\n content: \"\\f13c\";\n}\n.fa-anchor:before {\n content: \"\\f13d\";\n}\n.fa-unlock-alt:before {\n content: \"\\f13e\";\n}\n.fa-bullseye:before {\n content: \"\\f140\";\n}\n.fa-ellipsis-h:before {\n content: \"\\f141\";\n}\n.fa-ellipsis-v:before {\n content: \"\\f142\";\n}\n.fa-rss-square:before {\n content: \"\\f143\";\n}\n.fa-play-circle:before {\n content: \"\\f144\";\n}\n.fa-ticket:before {\n content: \"\\f145\";\n}\n.fa-minus-square:before {\n content: \"\\f146\";\n}\n.fa-minus-square-o:before {\n content: \"\\f147\";\n}\n.fa-level-up:before {\n content: \"\\f148\";\n}\n.fa-level-down:before {\n content: \"\\f149\";\n}\n.fa-check-square:before {\n content: \"\\f14a\";\n}\n.fa-pencil-square:before {\n content: \"\\f14b\";\n}\n.fa-external-link-square:before {\n content: \"\\f14c\";\n}\n.fa-share-square:before {\n content: \"\\f14d\";\n}\n.fa-compass:before {\n content: \"\\f14e\";\n}\n.fa-toggle-down:before,\n.fa-caret-square-o-down:before {\n content: \"\\f150\";\n}\n.fa-toggle-up:before,\n.fa-caret-square-o-up:before {\n content: \"\\f151\";\n}\n.fa-toggle-right:before,\n.fa-caret-square-o-right:before {\n content: \"\\f152\";\n}\n.fa-euro:before,\n.fa-eur:before {\n content: \"\\f153\";\n}\n.fa-gbp:before {\n content: \"\\f154\";\n}\n.fa-dollar:before,\n.fa-usd:before {\n content: \"\\f155\";\n}\n.fa-rupee:before,\n.fa-inr:before {\n content: \"\\f156\";\n}\n.fa-cny:before,\n.fa-rmb:before,\n.fa-yen:before,\n.fa-jpy:before {\n content: \"\\f157\";\n}\n.fa-ruble:before,\n.fa-rouble:before,\n.fa-rub:before {\n content: \"\\f158\";\n}\n.fa-won:before,\n.fa-krw:before {\n content: \"\\f159\";\n}\n.fa-bitcoin:before,\n.fa-btc:before {\n content: \"\\f15a\";\n}\n.fa-file:before {\n content: \"\\f15b\";\n}\n.fa-file-text:before {\n content: \"\\f15c\";\n}\n.fa-sort-alpha-asc:before {\n content: \"\\f15d\";\n}\n.fa-sort-alpha-desc:before {\n content: \"\\f15e\";\n}\n.fa-sort-amount-asc:before {\n content: \"\\f160\";\n}\n.fa-sort-amount-desc:before {\n content: \"\\f161\";\n}\n.fa-sort-numeric-asc:before {\n content: \"\\f162\";\n}\n.fa-sort-numeric-desc:before {\n content: \"\\f163\";\n}\n.fa-thumbs-up:before {\n content: \"\\f164\";\n}\n.fa-thumbs-down:before {\n content: \"\\f165\";\n}\n.fa-youtube-square:before {\n content: \"\\f166\";\n}\n.fa-youtube:before {\n content: \"\\f167\";\n}\n.fa-xing:before {\n content: \"\\f168\";\n}\n.fa-xing-square:before {\n content: \"\\f169\";\n}\n.fa-youtube-play:before {\n content: \"\\f16a\";\n}\n.fa-dropbox:before {\n content: \"\\f16b\";\n}\n.fa-stack-overflow:before {\n content: \"\\f16c\";\n}\n.fa-instagram:before {\n content: \"\\f16d\";\n}\n.fa-flickr:before {\n content: \"\\f16e\";\n}\n.fa-adn:before {\n content: \"\\f170\";\n}\n.fa-bitbucket:before {\n content: \"\\f171\";\n}\n.fa-bitbucket-square:before {\n content: \"\\f172\";\n}\n.fa-tumblr:before {\n content: \"\\f173\";\n}\n.fa-tumblr-square:before {\n content: \"\\f174\";\n}\n.fa-long-arrow-down:before {\n content: \"\\f175\";\n}\n.fa-long-arrow-up:before {\n content: \"\\f176\";\n}\n.fa-long-arrow-left:before {\n content: \"\\f177\";\n}\n.fa-long-arrow-right:before {\n content: \"\\f178\";\n}\n.fa-apple:before {\n content: \"\\f179\";\n}\n.fa-windows:before {\n content: \"\\f17a\";\n}\n.fa-android:before {\n content: \"\\f17b\";\n}\n.fa-linux:before {\n content: \"\\f17c\";\n}\n.fa-dribbble:before {\n content: \"\\f17d\";\n}\n.fa-skype:before {\n content: \"\\f17e\";\n}\n.fa-foursquare:before {\n content: \"\\f180\";\n}\n.fa-trello:before {\n content: \"\\f181\";\n}\n.fa-female:before {\n content: \"\\f182\";\n}\n.fa-male:before {\n content: \"\\f183\";\n}\n.fa-gittip:before,\n.fa-gratipay:before {\n content: \"\\f184\";\n}\n.fa-sun-o:before {\n content: \"\\f185\";\n}\n.fa-moon-o:before {\n content: \"\\f186\";\n}\n.fa-archive:before {\n content: \"\\f187\";\n}\n.fa-bug:before {\n content: \"\\f188\";\n}\n.fa-vk:before {\n content: \"\\f189\";\n}\n.fa-weibo:before {\n content: \"\\f18a\";\n}\n.fa-renren:before {\n content: \"\\f18b\";\n}\n.fa-pagelines:before {\n content: \"\\f18c\";\n}\n.fa-stack-exchange:before {\n content: \"\\f18d\";\n}\n.fa-arrow-circle-o-right:before {\n content: \"\\f18e\";\n}\n.fa-arrow-circle-o-left:before {\n content: \"\\f190\";\n}\n.fa-toggle-left:before,\n.fa-caret-square-o-left:before {\n content: \"\\f191\";\n}\n.fa-dot-circle-o:before {\n content: \"\\f192\";\n}\n.fa-wheelchair:before {\n content: \"\\f193\";\n}\n.fa-vimeo-square:before {\n content: \"\\f194\";\n}\n.fa-turkish-lira:before,\n.fa-try:before {\n content: \"\\f195\";\n}\n.fa-plus-square-o:before {\n content: \"\\f196\";\n}\n.fa-space-shuttle:before {\n content: \"\\f197\";\n}\n.fa-slack:before {\n content: \"\\f198\";\n}\n.fa-envelope-square:before {\n content: \"\\f199\";\n}\n.fa-wordpress:before {\n content: \"\\f19a\";\n}\n.fa-openid:before {\n content: \"\\f19b\";\n}\n.fa-institution:before,\n.fa-bank:before,\n.fa-university:before {\n content: \"\\f19c\";\n}\n.fa-mortar-board:before,\n.fa-graduation-cap:before {\n content: \"\\f19d\";\n}\n.fa-yahoo:before {\n content: \"\\f19e\";\n}\n.fa-google:before {\n content: \"\\f1a0\";\n}\n.fa-reddit:before {\n content: \"\\f1a1\";\n}\n.fa-reddit-square:before {\n content: \"\\f1a2\";\n}\n.fa-stumbleupon-circle:before {\n content: \"\\f1a3\";\n}\n.fa-stumbleupon:before {\n content: \"\\f1a4\";\n}\n.fa-delicious:before {\n content: \"\\f1a5\";\n}\n.fa-digg:before {\n content: \"\\f1a6\";\n}\n.fa-pied-piper-pp:before {\n content: \"\\f1a7\";\n}\n.fa-pied-piper-alt:before {\n content: \"\\f1a8\";\n}\n.fa-drupal:before {\n content: \"\\f1a9\";\n}\n.fa-joomla:before {\n content: \"\\f1aa\";\n}\n.fa-language:before {\n content: \"\\f1ab\";\n}\n.fa-fax:before {\n content: \"\\f1ac\";\n}\n.fa-building:before {\n content: \"\\f1ad\";\n}\n.fa-child:before {\n content: \"\\f1ae\";\n}\n.fa-paw:before {\n content: \"\\f1b0\";\n}\n.fa-spoon:before {\n content: \"\\f1b1\";\n}\n.fa-cube:before {\n content: \"\\f1b2\";\n}\n.fa-cubes:before {\n content: \"\\f1b3\";\n}\n.fa-behance:before {\n content: \"\\f1b4\";\n}\n.fa-behance-square:before {\n content: \"\\f1b5\";\n}\n.fa-steam:before {\n content: \"\\f1b6\";\n}\n.fa-steam-square:before {\n content: \"\\f1b7\";\n}\n.fa-recycle:before {\n content: \"\\f1b8\";\n}\n.fa-automobile:before,\n.fa-car:before {\n content: \"\\f1b9\";\n}\n.fa-cab:before,\n.fa-taxi:before {\n content: \"\\f1ba\";\n}\n.fa-tree:before {\n content: \"\\f1bb\";\n}\n.fa-spotify:before {\n content: \"\\f1bc\";\n}\n.fa-deviantart:before {\n content: \"\\f1bd\";\n}\n.fa-soundcloud:before {\n content: \"\\f1be\";\n}\n.fa-database:before {\n content: \"\\f1c0\";\n}\n.fa-file-pdf-o:before {\n content: \"\\f1c1\";\n}\n.fa-file-word-o:before {\n content: \"\\f1c2\";\n}\n.fa-file-excel-o:before {\n content: \"\\f1c3\";\n}\n.fa-file-powerpoint-o:before {\n content: \"\\f1c4\";\n}\n.fa-file-photo-o:before,\n.fa-file-picture-o:before,\n.fa-file-image-o:before {\n content: \"\\f1c5\";\n}\n.fa-file-zip-o:before,\n.fa-file-archive-o:before {\n content: \"\\f1c6\";\n}\n.fa-file-sound-o:before,\n.fa-file-audio-o:before {\n content: \"\\f1c7\";\n}\n.fa-file-movie-o:before,\n.fa-file-video-o:before {\n content: \"\\f1c8\";\n}\n.fa-file-code-o:before {\n content: \"\\f1c9\";\n}\n.fa-vine:before {\n content: \"\\f1ca\";\n}\n.fa-codepen:before {\n content: \"\\f1cb\";\n}\n.fa-jsfiddle:before {\n content: \"\\f1cc\";\n}\n.fa-life-bouy:before,\n.fa-life-buoy:before,\n.fa-life-saver:before,\n.fa-support:before,\n.fa-life-ring:before {\n content: \"\\f1cd\";\n}\n.fa-circle-o-notch:before {\n content: \"\\f1ce\";\n}\n.fa-ra:before,\n.fa-resistance:before,\n.fa-rebel:before {\n content: \"\\f1d0\";\n}\n.fa-ge:before,\n.fa-empire:before {\n content: \"\\f1d1\";\n}\n.fa-git-square:before {\n content: \"\\f1d2\";\n}\n.fa-git:before {\n content: \"\\f1d3\";\n}\n.fa-y-combinator-square:before,\n.fa-yc-square:before,\n.fa-hacker-news:before {\n content: \"\\f1d4\";\n}\n.fa-tencent-weibo:before {\n content: \"\\f1d5\";\n}\n.fa-qq:before {\n content: \"\\f1d6\";\n}\n.fa-wechat:before,\n.fa-weixin:before {\n content: \"\\f1d7\";\n}\n.fa-send:before,\n.fa-paper-plane:before {\n content: \"\\f1d8\";\n}\n.fa-send-o:before,\n.fa-paper-plane-o:before {\n content: \"\\f1d9\";\n}\n.fa-history:before {\n content: \"\\f1da\";\n}\n.fa-circle-thin:before {\n content: \"\\f1db\";\n}\n.fa-header:before {\n content: \"\\f1dc\";\n}\n.fa-paragraph:before {\n content: \"\\f1dd\";\n}\n.fa-sliders:before {\n content: \"\\f1de\";\n}\n.fa-share-alt:before {\n content: \"\\f1e0\";\n}\n.fa-share-alt-square:before {\n content: \"\\f1e1\";\n}\n.fa-bomb:before {\n content: \"\\f1e2\";\n}\n.fa-soccer-ball-o:before,\n.fa-futbol-o:before {\n content: \"\\f1e3\";\n}\n.fa-tty:before {\n content: \"\\f1e4\";\n}\n.fa-binoculars:before {\n content: \"\\f1e5\";\n}\n.fa-plug:before {\n content: \"\\f1e6\";\n}\n.fa-slideshare:before {\n content: \"\\f1e7\";\n}\n.fa-twitch:before {\n content: \"\\f1e8\";\n}\n.fa-yelp:before {\n content: \"\\f1e9\";\n}\n.fa-newspaper-o:before {\n content: \"\\f1ea\";\n}\n.fa-wifi:before {\n content: \"\\f1eb\";\n}\n.fa-calculator:before {\n content: \"\\f1ec\";\n}\n.fa-paypal:before {\n content: \"\\f1ed\";\n}\n.fa-google-wallet:before {\n content: \"\\f1ee\";\n}\n.fa-cc-visa:before {\n content: \"\\f1f0\";\n}\n.fa-cc-mastercard:before {\n content: \"\\f1f1\";\n}\n.fa-cc-discover:before {\n content: \"\\f1f2\";\n}\n.fa-cc-amex:before {\n content: \"\\f1f3\";\n}\n.fa-cc-paypal:before {\n content: \"\\f1f4\";\n}\n.fa-cc-stripe:before {\n content: \"\\f1f5\";\n}\n.fa-bell-slash:before {\n content: \"\\f1f6\";\n}\n.fa-bell-slash-o:before {\n content: \"\\f1f7\";\n}\n.fa-trash:before {\n content: \"\\f1f8\";\n}\n.fa-copyright:before {\n content: \"\\f1f9\";\n}\n.fa-at:before {\n content: \"\\f1fa\";\n}\n.fa-eyedropper:before {\n content: \"\\f1fb\";\n}\n.fa-paint-brush:before {\n content: \"\\f1fc\";\n}\n.fa-birthday-cake:before {\n content: \"\\f1fd\";\n}\n.fa-area-chart:before {\n content: \"\\f1fe\";\n}\n.fa-pie-chart:before {\n content: \"\\f200\";\n}\n.fa-line-chart:before {\n content: \"\\f201\";\n}\n.fa-lastfm:before {\n content: \"\\f202\";\n}\n.fa-lastfm-square:before {\n content: \"\\f203\";\n}\n.fa-toggle-off:before {\n content: \"\\f204\";\n}\n.fa-toggle-on:before {\n content: \"\\f205\";\n}\n.fa-bicycle:before {\n content: \"\\f206\";\n}\n.fa-bus:before {\n content: \"\\f207\";\n}\n.fa-ioxhost:before {\n content: \"\\f208\";\n}\n.fa-angellist:before {\n content: \"\\f209\";\n}\n.fa-cc:before {\n content: \"\\f20a\";\n}\n.fa-shekel:before,\n.fa-sheqel:before,\n.fa-ils:before {\n content: \"\\f20b\";\n}\n.fa-meanpath:before {\n content: \"\\f20c\";\n}\n.fa-buysellads:before {\n content: \"\\f20d\";\n}\n.fa-connectdevelop:before {\n content: \"\\f20e\";\n}\n.fa-dashcube:before {\n content: \"\\f210\";\n}\n.fa-forumbee:before {\n content: \"\\f211\";\n}\n.fa-leanpub:before {\n content: \"\\f212\";\n}\n.fa-sellsy:before {\n content: \"\\f213\";\n}\n.fa-shirtsinbulk:before {\n content: \"\\f214\";\n}\n.fa-simplybuilt:before {\n content: \"\\f215\";\n}\n.fa-skyatlas:before {\n content: \"\\f216\";\n}\n.fa-cart-plus:before {\n content: \"\\f217\";\n}\n.fa-cart-arrow-down:before {\n content: \"\\f218\";\n}\n.fa-diamond:before {\n content: \"\\f219\";\n}\n.fa-ship:before {\n content: \"\\f21a\";\n}\n.fa-user-secret:before {\n content: \"\\f21b\";\n}\n.fa-motorcycle:before {\n content: \"\\f21c\";\n}\n.fa-street-view:before {\n content: \"\\f21d\";\n}\n.fa-heartbeat:before {\n content: \"\\f21e\";\n}\n.fa-venus:before {\n content: \"\\f221\";\n}\n.fa-mars:before {\n content: \"\\f222\";\n}\n.fa-mercury:before {\n content: \"\\f223\";\n}\n.fa-intersex:before,\n.fa-transgender:before {\n content: \"\\f224\";\n}\n.fa-transgender-alt:before {\n content: \"\\f225\";\n}\n.fa-venus-double:before {\n content: \"\\f226\";\n}\n.fa-mars-double:before {\n content: \"\\f227\";\n}\n.fa-venus-mars:before {\n content: \"\\f228\";\n}\n.fa-mars-stroke:before {\n content: \"\\f229\";\n}\n.fa-mars-stroke-v:before {\n content: \"\\f22a\";\n}\n.fa-mars-stroke-h:before {\n content: \"\\f22b\";\n}\n.fa-neuter:before {\n content: \"\\f22c\";\n}\n.fa-genderless:before {\n content: \"\\f22d\";\n}\n.fa-facebook-official:before {\n content: \"\\f230\";\n}\n.fa-pinterest-p:before {\n content: \"\\f231\";\n}\n.fa-whatsapp:before {\n content: \"\\f232\";\n}\n.fa-server:before {\n content: \"\\f233\";\n}\n.fa-user-plus:before {\n content: \"\\f234\";\n}\n.fa-user-times:before {\n content: \"\\f235\";\n}\n.fa-hotel:before,\n.fa-bed:before {\n content: \"\\f236\";\n}\n.fa-viacoin:before {\n content: \"\\f237\";\n}\n.fa-train:before {\n content: \"\\f238\";\n}\n.fa-subway:before {\n content: \"\\f239\";\n}\n.fa-medium:before {\n content: \"\\f23a\";\n}\n.fa-yc:before,\n.fa-y-combinator:before {\n content: \"\\f23b\";\n}\n.fa-optin-monster:before {\n content: \"\\f23c\";\n}\n.fa-opencart:before {\n content: \"\\f23d\";\n}\n.fa-expeditedssl:before {\n content: \"\\f23e\";\n}\n.fa-battery-4:before,\n.fa-battery:before,\n.fa-battery-full:before {\n content: \"\\f240\";\n}\n.fa-battery-3:before,\n.fa-battery-three-quarters:before {\n content: \"\\f241\";\n}\n.fa-battery-2:before,\n.fa-battery-half:before {\n content: \"\\f242\";\n}\n.fa-battery-1:before,\n.fa-battery-quarter:before {\n content: \"\\f243\";\n}\n.fa-battery-0:before,\n.fa-battery-empty:before {\n content: \"\\f244\";\n}\n.fa-mouse-pointer:before {\n content: \"\\f245\";\n}\n.fa-i-cursor:before {\n content: \"\\f246\";\n}\n.fa-object-group:before {\n content: \"\\f247\";\n}\n.fa-object-ungroup:before {\n content: \"\\f248\";\n}\n.fa-sticky-note:before {\n content: \"\\f249\";\n}\n.fa-sticky-note-o:before {\n content: \"\\f24a\";\n}\n.fa-cc-jcb:before {\n content: \"\\f24b\";\n}\n.fa-cc-diners-club:before {\n content: \"\\f24c\";\n}\n.fa-clone:before {\n content: \"\\f24d\";\n}\n.fa-balance-scale:before {\n content: \"\\f24e\";\n}\n.fa-hourglass-o:before {\n content: \"\\f250\";\n}\n.fa-hourglass-1:before,\n.fa-hourglass-start:before {\n content: \"\\f251\";\n}\n.fa-hourglass-2:before,\n.fa-hourglass-half:before {\n content: \"\\f252\";\n}\n.fa-hourglass-3:before,\n.fa-hourglass-end:before {\n content: \"\\f253\";\n}\n.fa-hourglass:before {\n content: \"\\f254\";\n}\n.fa-hand-grab-o:before,\n.fa-hand-rock-o:before {\n content: \"\\f255\";\n}\n.fa-hand-stop-o:before,\n.fa-hand-paper-o:before {\n content: \"\\f256\";\n}\n.fa-hand-scissors-o:before {\n content: \"\\f257\";\n}\n.fa-hand-lizard-o:before {\n content: \"\\f258\";\n}\n.fa-hand-spock-o:before {\n content: \"\\f259\";\n}\n.fa-hand-pointer-o:before {\n content: \"\\f25a\";\n}\n.fa-hand-peace-o:before {\n content: \"\\f25b\";\n}\n.fa-trademark:before {\n content: \"\\f25c\";\n}\n.fa-registered:before {\n content: \"\\f25d\";\n}\n.fa-creative-commons:before {\n content: \"\\f25e\";\n}\n.fa-gg:before {\n content: \"\\f260\";\n}\n.fa-gg-circle:before {\n content: \"\\f261\";\n}\n.fa-tripadvisor:before {\n content: \"\\f262\";\n}\n.fa-odnoklassniki:before {\n content: \"\\f263\";\n}\n.fa-odnoklassniki-square:before {\n content: \"\\f264\";\n}\n.fa-get-pocket:before {\n content: \"\\f265\";\n}\n.fa-wikipedia-w:before {\n content: \"\\f266\";\n}\n.fa-safari:before {\n content: \"\\f267\";\n}\n.fa-chrome:before {\n content: \"\\f268\";\n}\n.fa-firefox:before {\n content: \"\\f269\";\n}\n.fa-opera:before {\n content: \"\\f26a\";\n}\n.fa-internet-explorer:before {\n content: \"\\f26b\";\n}\n.fa-tv:before,\n.fa-television:before {\n content: \"\\f26c\";\n}\n.fa-contao:before {\n content: \"\\f26d\";\n}\n.fa-500px:before {\n content: \"\\f26e\";\n}\n.fa-amazon:before {\n content: \"\\f270\";\n}\n.fa-calendar-plus-o:before {\n content: \"\\f271\";\n}\n.fa-calendar-minus-o:before {\n content: \"\\f272\";\n}\n.fa-calendar-times-o:before {\n content: \"\\f273\";\n}\n.fa-calendar-check-o:before {\n content: \"\\f274\";\n}\n.fa-industry:before {\n content: \"\\f275\";\n}\n.fa-map-pin:before {\n content: \"\\f276\";\n}\n.fa-map-signs:before {\n content: \"\\f277\";\n}\n.fa-map-o:before {\n content: \"\\f278\";\n}\n.fa-map:before {\n content: \"\\f279\";\n}\n.fa-commenting:before {\n content: \"\\f27a\";\n}\n.fa-commenting-o:before {\n content: \"\\f27b\";\n}\n.fa-houzz:before {\n content: \"\\f27c\";\n}\n.fa-vimeo:before {\n content: \"\\f27d\";\n}\n.fa-black-tie:before {\n content: \"\\f27e\";\n}\n.fa-fonticons:before {\n content: \"\\f280\";\n}\n.fa-reddit-alien:before {\n content: \"\\f281\";\n}\n.fa-edge:before {\n content: \"\\f282\";\n}\n.fa-credit-card-alt:before {\n content: \"\\f283\";\n}\n.fa-codiepie:before {\n content: \"\\f284\";\n}\n.fa-modx:before {\n content: \"\\f285\";\n}\n.fa-fort-awesome:before {\n content: \"\\f286\";\n}\n.fa-usb:before {\n content: \"\\f287\";\n}\n.fa-product-hunt:before {\n content: \"\\f288\";\n}\n.fa-mixcloud:before {\n content: \"\\f289\";\n}\n.fa-scribd:before {\n content: \"\\f28a\";\n}\n.fa-pause-circle:before {\n content: \"\\f28b\";\n}\n.fa-pause-circle-o:before {\n content: \"\\f28c\";\n}\n.fa-stop-circle:before {\n content: \"\\f28d\";\n}\n.fa-stop-circle-o:before {\n content: \"\\f28e\";\n}\n.fa-shopping-bag:before {\n content: \"\\f290\";\n}\n.fa-shopping-basket:before {\n content: \"\\f291\";\n}\n.fa-hashtag:before {\n content: \"\\f292\";\n}\n.fa-bluetooth:before {\n content: \"\\f293\";\n}\n.fa-bluetooth-b:before {\n content: \"\\f294\";\n}\n.fa-percent:before {\n content: \"\\f295\";\n}\n.fa-gitlab:before {\n content: \"\\f296\";\n}\n.fa-wpbeginner:before {\n content: \"\\f297\";\n}\n.fa-wpforms:before {\n content: \"\\f298\";\n}\n.fa-envira:before {\n content: \"\\f299\";\n}\n.fa-universal-access:before {\n content: \"\\f29a\";\n}\n.fa-wheelchair-alt:before {\n content: \"\\f29b\";\n}\n.fa-question-circle-o:before {\n content: \"\\f29c\";\n}\n.fa-blind:before {\n content: \"\\f29d\";\n}\n.fa-audio-description:before {\n content: \"\\f29e\";\n}\n.fa-volume-control-phone:before {\n content: \"\\f2a0\";\n}\n.fa-braille:before {\n content: \"\\f2a1\";\n}\n.fa-assistive-listening-systems:before {\n content: \"\\f2a2\";\n}\n.fa-asl-interpreting:before,\n.fa-american-sign-language-interpreting:before {\n content: \"\\f2a3\";\n}\n.fa-deafness:before,\n.fa-hard-of-hearing:before,\n.fa-deaf:before {\n content: \"\\f2a4\";\n}\n.fa-glide:before {\n content: \"\\f2a5\";\n}\n.fa-glide-g:before {\n content: \"\\f2a6\";\n}\n.fa-signing:before,\n.fa-sign-language:before {\n content: \"\\f2a7\";\n}\n.fa-low-vision:before {\n content: \"\\f2a8\";\n}\n.fa-viadeo:before {\n content: \"\\f2a9\";\n}\n.fa-viadeo-square:before {\n content: \"\\f2aa\";\n}\n.fa-snapchat:before {\n content: \"\\f2ab\";\n}\n.fa-snapchat-ghost:before {\n content: \"\\f2ac\";\n}\n.fa-snapchat-square:before {\n content: \"\\f2ad\";\n}\n.fa-pied-piper:before {\n content: \"\\f2ae\";\n}\n.fa-first-order:before {\n content: \"\\f2b0\";\n}\n.fa-yoast:before {\n content: \"\\f2b1\";\n}\n.fa-themeisle:before {\n content: \"\\f2b2\";\n}\n.fa-google-plus-circle:before,\n.fa-google-plus-official:before {\n content: \"\\f2b3\";\n}\n.fa-fa:before,\n.fa-font-awesome:before {\n content: \"\\f2b4\";\n}\n.fa-handshake-o:before {\n content: \"\\f2b5\";\n}\n.fa-envelope-open:before {\n content: \"\\f2b6\";\n}\n.fa-envelope-open-o:before {\n content: \"\\f2b7\";\n}\n.fa-linode:before {\n content: \"\\f2b8\";\n}\n.fa-address-book:before {\n content: \"\\f2b9\";\n}\n.fa-address-book-o:before {\n content: \"\\f2ba\";\n}\n.fa-vcard:before,\n.fa-address-card:before {\n content: \"\\f2bb\";\n}\n.fa-vcard-o:before,\n.fa-address-card-o:before {\n content: \"\\f2bc\";\n}\n.fa-user-circle:before {\n content: \"\\f2bd\";\n}\n.fa-user-circle-o:before {\n content: \"\\f2be\";\n}\n.fa-user-o:before {\n content: \"\\f2c0\";\n}\n.fa-id-badge:before {\n content: \"\\f2c1\";\n}\n.fa-drivers-license:before,\n.fa-id-card:before {\n content: \"\\f2c2\";\n}\n.fa-drivers-license-o:before,\n.fa-id-card-o:before {\n content: \"\\f2c3\";\n}\n.fa-quora:before {\n content: \"\\f2c4\";\n}\n.fa-free-code-camp:before {\n content: \"\\f2c5\";\n}\n.fa-telegram:before {\n content: \"\\f2c6\";\n}\n.fa-thermometer-4:before,\n.fa-thermometer:before,\n.fa-thermometer-full:before {\n content: \"\\f2c7\";\n}\n.fa-thermometer-3:before,\n.fa-thermometer-three-quarters:before {\n content: \"\\f2c8\";\n}\n.fa-thermometer-2:before,\n.fa-thermometer-half:before {\n content: \"\\f2c9\";\n}\n.fa-thermometer-1:before,\n.fa-thermometer-quarter:before {\n content: \"\\f2ca\";\n}\n.fa-thermometer-0:before,\n.fa-thermometer-empty:before {\n content: \"\\f2cb\";\n}\n.fa-shower:before {\n content: \"\\f2cc\";\n}\n.fa-bathtub:before,\n.fa-s15:before,\n.fa-bath:before {\n content: \"\\f2cd\";\n}\n.fa-podcast:before {\n content: \"\\f2ce\";\n}\n.fa-window-maximize:before {\n content: \"\\f2d0\";\n}\n.fa-window-minimize:before {\n content: \"\\f2d1\";\n}\n.fa-window-restore:before {\n content: \"\\f2d2\";\n}\n.fa-times-rectangle:before,\n.fa-window-close:before {\n content: \"\\f2d3\";\n}\n.fa-times-rectangle-o:before,\n.fa-window-close-o:before {\n content: \"\\f2d4\";\n}\n.fa-bandcamp:before {\n content: \"\\f2d5\";\n}\n.fa-grav:before {\n content: \"\\f2d6\";\n}\n.fa-etsy:before {\n content: \"\\f2d7\";\n}\n.fa-imdb:before {\n content: \"\\f2d8\";\n}\n.fa-ravelry:before {\n content: \"\\f2d9\";\n}\n.fa-eercast:before {\n content: \"\\f2da\";\n}\n.fa-microchip:before {\n content: \"\\f2db\";\n}\n.fa-snowflake-o:before {\n content: \"\\f2dc\";\n}\n.fa-superpowers:before {\n content: \"\\f2dd\";\n}\n.fa-wpexplorer:before {\n content: \"\\f2de\";\n}\n.fa-meetup:before {\n content: \"\\f2e0\";\n}\n.sr-only {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n border: 0;\n}\n.sr-only-focusable:active,\n.sr-only-focusable:focus {\n position: static;\n width: auto;\n height: auto;\n margin: 0;\n overflow: visible;\n clip: auto;\n}\n"],"sourceRoot":""} \ No newline at end of file diff --git a/priv/static/packs/flavours/vanilla/admin.js b/priv/static/packs/flavours/vanilla/admin.js deleted file mode 100644 index 5fbc17639..000000000 Binary files a/priv/static/packs/flavours/vanilla/admin.js and /dev/null differ diff --git a/priv/static/packs/flavours/vanilla/admin.js.LICENSE.txt b/priv/static/packs/flavours/vanilla/admin.js.LICENSE.txt deleted file mode 100644 index 2196b2def..000000000 --- a/priv/static/packs/flavours/vanilla/admin.js.LICENSE.txt +++ /dev/null @@ -1,41 +0,0 @@ -/* -object-assign -(c) Sindre Sorhus -@license MIT -*/ - -/** @license React v0.19.0 - * scheduler.production.min.js - * - * Copyright (c) Facebook, Inc. and its affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */ - -/** @license React v16.12.0 - * react-is.production.min.js - * - * Copyright (c) Facebook, Inc. and its affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */ - -/** @license React v16.13.0 - * react-dom.production.min.js - * - * Copyright (c) Facebook, Inc. and its affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */ - -/** @license React v16.13.1 - * react.production.min.js - * - * Copyright (c) Facebook, Inc. and its affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */ diff --git a/priv/static/packs/flavours/vanilla/admin.js.map b/priv/static/packs/flavours/vanilla/admin.js.map deleted file mode 100644 index 781e07de0..000000000 Binary files a/priv/static/packs/flavours/vanilla/admin.js.map and /dev/null differ diff --git a/priv/static/packs/flavours/vanilla/common.css b/priv/static/packs/flavours/vanilla/common.css deleted file mode 100644 index 5f844cca6..000000000 Binary files a/priv/static/packs/flavours/vanilla/common.css and /dev/null differ diff --git a/priv/static/packs/flavours/vanilla/common.css.map b/priv/static/packs/flavours/vanilla/common.css.map deleted file mode 100644 index 9f54b0023..000000000 --- a/priv/static/packs/flavours/vanilla/common.css.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["webpack:///application.scss","webpack:///./app/javascript/styles/mastodon/reset.scss","webpack:///./app/javascript/styles/mastodon/variables.scss","webpack:///./app/javascript/styles/mastodon/basics.scss","webpack:///./app/javascript/styles/mastodon/containers.scss","webpack:///./app/javascript/styles/mastodon/lists.scss","webpack:///./app/javascript/styles/mastodon/footer.scss","webpack:///./app/javascript/styles/mastodon/compact_header.scss","webpack:///./app/javascript/styles/mastodon/widgets.scss","webpack:///./app/javascript/styles/mastodon/forms.scss","webpack:///./app/javascript/styles/mastodon/accounts.scss","webpack:///./app/javascript/styles/mastodon/statuses.scss","webpack:///./app/javascript/styles/mastodon/boost.scss","webpack:///./app/javascript/styles/mastodon/components.scss","webpack:///","webpack:///./app/javascript/styles/mastodon/_mixins.scss","webpack:///./app/javascript/styles/mastodon/polls.scss","webpack:///./app/javascript/styles/mastodon/modal.scss","webpack:///./app/javascript/styles/mastodon/emoji_picker.scss","webpack:///./app/javascript/styles/mastodon/about.scss","webpack:///./app/javascript/styles/mastodon/tables.scss","webpack:///./app/javascript/styles/mastodon/admin.scss","webpack:///./app/javascript/styles/mastodon/dashboard.scss","webpack:///./app/javascript/styles/mastodon/rtl.scss","webpack:///./app/javascript/styles/mastodon/accessibility.scss"],"names":[],"mappings":"AAAA,2ZCKA,QAaE,UACA,SACA,eACA,aACA,wBACA,+EAIF,aAEE,MAGF,aACE,OAGF,eACE,cAGF,WACE,qDAGF,UAEE,aACA,OAGF,wBACE,iBACA,MAGF,sCACE,qBAGF,UACE,YACA,2BAGF,kBACE,cACA,mBACA,iCAGF,kBACE,kCAGF,kBACE,2BAGF,aACE,gBACA,0BACA,CCtEW,iED6Eb,kBC7Ea,4BDiFb,sBACE,MErFF,iDACE,mBACA,eACA,iBACA,gBACA,WDXM,kCCaN,6BACA,8BACA,CADA,0BACA,CADA,qBACA,0CACA,wCACA,kBAEA,iKAYE,eAGF,SACE,oCAEA,WACE,iBACA,kBACA,uCAGF,iBACE,WACA,YACA,mCAGF,iBACE,cAIJ,kBD7CW,kBCiDX,iBACE,kBACA,0BAEA,iBACE,aAIJ,iBACE,YAGF,kBACE,SACA,iBACA,uBAEA,iBACE,WACA,YACA,gBACA,YAIJ,kBACE,UACA,YAGF,iBACE,kBACA,cD3EoB,mBAPX,WCqFT,YACA,UACA,aACA,uBACA,mBACA,oBAEA,qBACE,YACA,sCAGE,aACE,gBACA,WACA,YACA,kBACA,uBAIJ,cACE,iBACA,gBACA,QAMR,mBACE,eACA,cAEA,YACE,kDAKF,YAGE,WACA,mBACA,uBACA,oBACA,sBAGF,YACE,yEAKF,gBAEE,+EAKF,WAEE,sCAIJ,qBAEE,eACA,gBACA,gBACA,cACA,kBACA,8CAEA,eACE,0CAGF,mBACE,gEAEA,eACE,0CAIJ,aDtKwB,kKCyKtB,oBAGE,sDAIJ,aDpKsB,eCsKpB,0DAEA,aDxKoB,oDC6KtB,cACE,SACA,uBACA,cDhLoB,aCkLpB,UACA,SACA,oBACA,eACA,UACA,4BACA,0BACA,gMAEA,oBAGE,kEAGF,aD9NY,gBCgOV,gBCnON,WACE,CACA,kBACA,qCAEA,eALF,UAMI,SACA,kBAIJ,sBACE,qCAEA,gBAHF,kBAII,qBAGF,YACE,uBACA,mBACA,wBAEA,SFrBI,YEuBF,kBACA,sBAGF,YACE,uBACA,mBACA,WF9BE,qBEgCF,UACA,kBACA,iBACA,6CACA,gBACA,eACA,mCAMJ,WACE,CACA,cACA,mBACA,sBACA,qCAEA,kCAPF,UAQI,aACA,aACA,kBAKN,WACE,CACA,YACA,eACA,iBACA,sBACA,CACA,gBACA,CACA,sBACA,qCAEA,gBAZF,UAaI,CACA,eACA,CACA,mBACA,0BAGF,UACE,YACA,iBACA,6BAEA,UACE,YACA,cACA,SACA,kBACA,uBAIJ,aACE,cF7EsB,wBE+EtB,iCAEA,aACE,gBACA,uBACA,gBACA,8BAIJ,aACE,eACA,iBACA,gBACA,SAIJ,YACE,cACA,8BACA,sBACA,mCACA,CADA,0BACA,mBAEA,eACE,WACA,mBAGF,aACE,WACA,mBAGF,aACE,WACA,mBAGF,eACE,WACA,qCAGF,QA3BF,UA4BI,qCACA,mBAEA,aACE,mBAGF,aACE,WACA,mBAGF,aACE,WACA,mBAGF,aACE,WACA,UAKN,YACE,cACA,8CACA,sBACA,mCACA,CADA,0BACA,mBAEA,eACE,WACA,mBAGF,eACE,WACA,mBAGF,aACE,WACA,mBAGF,eACE,WACA,mBAGF,aACE,WACA,uCAGF,eACE,wBAGF,kBACE,qCAGF,QAxCF,iDAyCI,uCAEA,YACE,aACA,mBACA,uBACA,iCAGF,UACE,uBACA,mBACA,sBAGF,YACE,sCAIJ,QA7DF,UA8DI,qCACA,mBAEA,aACE,mBAGF,aACE,WACA,mBAGF,aACE,WACA,mBAGF,aACE,WACA,mBAGF,aACE,WACA,sCAMJ,eADF,gBAEI,4BAGF,eACE,qCAEA,0BAHF,SAII,yBAIJ,kBACE,mCACA,kBACA,YACA,cACA,aACA,oBACA,uBACA,iBACA,gBACA,qCAEA,uBAZF,cAaI,WACA,MACA,OACA,SACA,gBACA,gBACA,YACA,6BAGF,cACE,eACA,kCAGF,YACE,oBACA,2BACA,iBACA,oCAGF,YACE,oBACA,uBACA,iBACA,mCAGF,YACE,oBACA,yBACA,iBACA,+BAGF,aACE,aACA,mCAEA,aACE,YACA,WACA,kBACA,YACA,UFxUA,qCE2UA,kCARF,WASI,+GAIJ,kBAGE,kCAIJ,YACE,mBACA,eACA,eACA,gBACA,qBACA,cF7UkB,mBE+UlB,kBACA,uHAEA,yBAGE,WFrWA,qCEyWF,0CACE,YACE,qCAKN,kBACE,CACA,oBACA,kBACA,6HAEA,oBAGE,mBACA,sBAON,YACE,cACA,0DACA,sBACA,mCACA,CADA,0BACA,gCAEA,UACE,cACA,gCAGF,UACE,cACA,qCAGF,qBAjBF,0BAkBI,WACA,gCAEA,YACE,kCAKN,iBACE,qCAEA,gCAHF,eAII,sCAKF,4BADF,eAEI,wCAIJ,eACE,mBACA,mCACA,gDAEA,UACE,qIAEA,8BAEE,CAFF,sBAEE,6DAGF,wBFtaoB,8CE2atB,yBACE,gBACA,aACA,kBACA,gBACA,oDAEA,UACE,cACA,kBACA,WACA,YACA,gDACA,MACA,OACA,kDAGF,mBACE,CADF,8BACE,CADF,gBACE,cACA,WACA,YACA,SACA,0BACA,qCAGF,6CA3BF,YA4BI,gDAIJ,eACE,6JAEA,iBAEE,qCAEA,4JAJF,eAKI,sCAKN,sCA/DF,eAgEI,gBACA,oDAEA,YACE,+FAGF,eAEE,6CAIJ,iBACE,iBACA,aACA,2BACA,mDAEA,UACE,cACA,mBACA,kBACA,SACA,OACA,QACA,YACA,0BACA,WACA,oDAGF,aACE,YACA,aACA,kBACA,cACA,wDAEA,aACE,WACA,YACA,SACA,kBACA,yBACA,mBACA,qCAIJ,2CArCF,YAsCI,mBACA,0BACA,YACA,mDAEA,YACE,oDAGF,UACE,YACA,CACA,sBACA,wDAEA,QACE,kBACA,2DAGF,mDAXF,YAYI,sCAKN,2CAhEF,eAiEI,sCAGF,2CApEF,cAqEI,8CAIJ,aACE,iBACA,mDAEA,gBACE,mBACA,sDAEA,cACE,iBACA,WF1kBF,gBE4kBE,gBACA,mBACA,uBACA,6BACA,4DAEA,aACE,eACA,WFplBJ,gBEslBI,gBACA,uBACA,qCAKN,4CA7BF,gBA8BI,aACA,8BACA,mBACA,mDAEA,aACE,iBACA,sDAEA,cACE,iBACA,iBACA,4DAEA,aF5lBY,oDEmmBlB,YACE,2BACA,oBACA,YACA,qEAEA,YACE,mBACA,gBACA,qCAGF,oEACE,YACE,6DAIJ,eACE,sBACA,cACA,cFxnBc,aE0nBd,+BACA,eACA,kBACA,kBACA,8DAEA,aACE,uEAGF,cACE,kEAGF,aACE,WACA,kBACA,SACA,OACA,WACA,gCACA,WACA,wBACA,yEAIA,+BACE,UACA,kFAGF,2BFzpBc,wEE+pBd,SACE,wBACA,8DAIJ,oBACE,cACA,2EAGF,cACE,cACA,4EAGF,eACE,eACA,kBACA,WFnsBJ,6CEqsBI,2DAIJ,aACE,WACA,4DAGF,eACE,8CAKN,YACE,eACA,kEAEA,eACE,gBACA,uBACA,cACA,2FAEA,4BACE,yEAGF,YACE,qDAIJ,gBACE,eACA,cFztBgB,uDE4tBhB,oBACE,cF7tBc,qBE+tBd,aACA,gBACA,8DAEA,eACE,WFpvBJ,qCE0vBF,6CAtCF,aAuCI,UACA,4CAKN,yBACE,qCAEA,0CAHF,eAII,wCAIJ,eACE,oCAGF,kBACE,mCACA,kBACA,gBACA,mBACA,qCAEA,mCAPF,eAQI,gBACA,gBACA,8DAGF,QACE,aACA,+DAEA,aACE,sFAGF,uBACE,yEAGF,aFryBU,8DE2yBV,mBACA,WF7yBE,qFEizBJ,YAEE,eACA,cFpyBkB,2CEwyBpB,gBACE,iCAIJ,YACE,cACA,kDACA,qCAEA,gCALF,aAMI,+CAGF,cACE,iCAIJ,eACE,2BAGF,YACE,eACA,eACA,cACA,+BAEA,qBACE,cACA,YACA,cACA,mBACA,kBACA,qCAEA,8BARF,aASI,sCAGF,8BAZF,cAaI,sCAIJ,0BAvBF,QAwBI,6BACA,+BAEA,UACE,UACA,gBACA,gCACA,0CAEA,eACE,0CAGF,kBF32BK,+IE82BH,kBAGE,WC53BZ,eACE,aAEA,oBACE,aACA,iBAIJ,eACE,cACA,oBAEA,cACE,gBACA,mBACA,wBCfF,eACE,iBACA,oBACA,eACA,cACA,qCAEA,uBAPF,iBAQI,mBACA,+BAGF,YACE,cACA,0CACA,wCAEA,aACE,WACA,YACA,wCAGF,aACE,WACA,YACA,wCAGF,aACE,WACA,YACA,kBACA,6CAEA,aACE,wCAIJ,aACE,WACA,YACA,wCAGF,aACE,WACA,YACA,qCAGF,6BAxCF,iCAyCI,+EAEA,aAEE,wCAGF,UACE,wCAGF,aACE,+EAGF,aAEE,wCAGF,UACE,sCAIJ,uCACE,aACE,sCAIJ,4JACE,YAIE,4BAKN,wBACE,gBACA,kBACA,cJhFkB,6BImFlB,aACE,qBACA,6BAIJ,oBACE,cACA,wGAEA,yBAGE,mCAKF,aACE,YACA,WACA,cACA,aACA,0HAMA,YACE,oBClIR,cACE,iBACA,cLeoB,gBKbpB,mBACA,eACA,qBACA,qCAEA,mBATF,iBAUI,oBACA,uBAGF,aACE,qBACA,0BAGF,eACE,cLFoB,wBKMtB,oBACE,mBACA,kBACA,WACA,YACA,cC9BN,kBACE,mCACA,mBAEA,UACE,kBACA,gBACA,0BACA,gBNPI,uBMUJ,mBACE,CADF,8BACE,CADF,gBACE,cACA,WACA,YACA,SACA,0BACA,oBAIJ,kBNVW,aMYT,0BACA,eACA,cNPoB,iBMSpB,qBACA,gBACA,8BAEA,UACE,YACA,gBACA,sBAGF,kBACE,iCAEA,eACE,uBAIJ,cACE,SACA,UACA,gBACA,uBACA,oBACA,kBACA,oBACA,cACA,sBAGF,aNtCsB,qBMwCpB,4BAEA,yBACE,qCAKN,aAnEF,YAoEI,uBAIJ,kBACE,oBACA,yBAEA,YACE,yBACA,gBACA,eACA,cN9DoB,+BMkEtB,cACE,0CAEA,eACE,sDAGF,YACE,mBACA,gDAGF,UACE,YACA,0BACA,oCAIJ,YACE,mBAKF,aN3FsB,aMgGxB,YACE,kBACA,mBNzGW,mCM2GX,qBAGF,YACE,kBACA,0BACA,kBACA,cN3GsB,mBM6GtB,iBAGF,eACE,eACA,cNlHsB,iBMoHtB,qBACA,gBACA,UACA,oBAEA,YACE,yBACA,gBACA,eACA,cN7HoB,0BMiItB,eACE,CACA,kBACA,mBAGF,oBACE,CACA,mBACA,cN1IoB,qBM4IpB,mBACA,gBACA,uBACA,0EAEA,yBAGE,uBAMJ,sBACA,kBACA,mBNnKW,mCMqKX,cN7JwB,gBM+JxB,mBACA,sDAEA,eAEE,CAII,qXADF,eACE,yBAKN,aACE,0BACA,CAMI,wLAGF,oBAGE,mIAEA,yBACE,gCAMR,kBACE,oCAEA,gBACE,cNzMkB,8DM+MpB,iBACE,eACA,4DAGF,eACE,qBACA,iEAEA,eACE,kBAMR,YACE,CACA,eNlPM,CMoPN,cACA,cNpOsB,mBMsOtB,+BANA,iBACA,CNlPM,kCMgQN,CATA,aAGF,kBACE,CAEA,iBACA,kBACA,cACA,iBAEA,UNjQM,eMmQJ,gBACA,gBACA,mBACA,gBAGF,cACE,cN1PoB,qCM8PtB,aArBF,YAsBI,mBACA,iBAEA,cACE,aAKN,kBN/Qa,kBMiRX,mCACA,iBAEA,qBACE,mBACA,uCAEA,YAEE,mBACA,8BACA,mBN5RO,kBM8RP,aACA,qBACA,cACA,mCACA,0EAIA,kBAGE,0BAIJ,kBNpSsB,eMsSpB,8BAGF,UACE,eACA,oBAGF,aACE,eACA,gBACA,WNnUE,mBMqUF,gBACA,uBACA,wBAEA,aNzTkB,0BM6TlB,aACE,gBACA,eACA,eACA,cNjUgB,0IMuUlB,UNvVE,+BM+VJ,aACE,YACA,uDAGF,oBNlVsB,wCMsVtB,eACE,eAKN,YACE,yBACA,gCAEA,aACE,WACA,YACA,kBACA,kBACA,kBACA,mBACA,yBACA,4CAEA,SACE,6CAGF,SACE,6CAGF,SACE,iBAKN,UACE,0BAEA,SACE,SACA,wBAGF,eACE,0BAGF,iBACE,yBACA,cNxYoB,gBM0YpB,aACA,sCAEA,eACE,0BAIJ,cACE,sBACA,gCACA,wCAGF,eACE,wBAGF,WACE,kBACA,eACA,gBACA,WNhbI,8BMmbJ,aACE,cNpakB,gBMsalB,eACA,0BAIJ,SACE,iCACA,qCAGF,kCACE,YACE,sCAYJ,qIAPF,eAQI,gBACA,gBACA,iBAOJ,gBACE,qCAEA,eAHF,oBAII,uBAGF,sBACE,sCAEA,qBAHF,sBAII,sCAGF,qBAPF,UAQI,sCAGF,qBAXF,WAYI,kCAIJ,iBACE,qCAEA,gCAHF,4BAII,iEAIA,eACE,0DAGF,cACE,iBACA,oEAEA,UACE,YACA,gBACA,yFAGF,gBACE,SACA,mKAIJ,eAGE,gBAON,aNrgBsB,iCMogBxB,kBAKI,6BAEA,eACE,kBAIJ,cACE,iBACA,wCAMF,oBACE,gBACA,cNxhBsB,4JM2hBtB,yBAGE,oBAKN,kBACE,gBACA,eACA,kBACA,yBAEA,aACE,gBACA,aACA,CACA,kBACA,gBACA,uBACA,qBACA,WNnkBI,gCMqkBJ,4FAEA,yBAGE,oCAIJ,eACE,0BAGF,iBACE,gCACA,MCplBJ,+CACE,gBACA,iBAGF,eACE,aACA,cACA,qBAIA,kBACE,gBACA,4BAEA,QACE,0CAIA,kBACE,qDAEA,eACE,gDAIJ,iBACE,kBACA,sDAEA,iBACE,SACA,OACA,6BAKN,iBACE,gBACA,gDAEA,mBACE,eACA,gBACA,WPhDA,cOkDA,WACA,4EAGF,iBAEE,mDAGF,eACE,4CAGF,iBACE,QACA,OACA,qCAGF,aPnDoB,0BOqDlB,gIAEA,oBAGE,0CAIJ,iBACE,CACA,iBACA,mBAKN,YACE,cACA,0BAEA,qBACE,cACA,UACA,cACA,oBAIJ,aPpFsB,sBOuFpB,aPrFsB,yBOyFtB,iBACE,kBACA,gBACA,uBAGF,eACE,iBACA,sBAIJ,kBACE,wBAGF,aACE,eACA,eACA,qBAGF,kBACE,cPlHoB,iCOqHpB,iBACE,eACA,iBACA,gBACA,gBACA,oBAIJ,kBACE,qBAGF,eACE,CAII,0JADF,eACE,sDAMJ,YACE,4DAEA,mBACE,eACA,WPlKA,gBOoKA,gBACA,cACA,wHAGF,aAEE,sDAIJ,cACE,kBACA,mDAKF,mBACE,eACA,WPxLE,cO0LF,kBACA,qBACA,gBACA,sCAGF,cACE,mCAGF,UACE,sCAIJ,cACE,4CAEA,mBACE,eACA,WP9ME,cOgNF,gBACA,gBACA,4CAGF,kBACE,yCAGF,cACE,CADF,cACE,kDAIJ,oBACE,WACA,OACA,6BAGF,oBACE,cACA,4BAGF,kBACE,8CAEA,eACE,0BAIJ,YACE,CACA,eACA,oBACA,iCAEA,cACE,kCAGF,qBACE,eACA,cACA,eACA,oCAEA,aACE,2CAGF,eACE,6GAIJ,eAEE,qCAGF,yBA9BF,aA+BI,gBACA,kCAEA,cACE,0JAGF,kBAGE,iDAKN,iBACE,oBACA,eACA,WPlSI,cOoSJ,WACA,2CAKE,mBACE,eACA,WP5SA,qBO8SA,WACA,kBACA,gBACA,kBACA,cACA,0DAGF,iBACE,OACA,QACA,SACA,kDAKN,cACE,aACA,yBACA,kBACA,sJAGF,qBAKE,eACA,WP5UI,cO8UJ,WACA,UACA,oBACA,gBACA,mBACA,sBACA,kBACA,aACA,6RAEA,aACE,CAHF,+OAEA,aACE,CAHF,mQAEA,aACE,CAHF,sNAEA,aACE,8LAGF,eACE,oVAGF,oBACE,iOAGF,oBPnWY,oLOuWZ,iBACE,4WAGF,oBP1VsB,mBO6VpB,6CAKF,aACE,gUAGF,oBAME,8CAGF,aACE,gBACA,cACA,eACA,8BAIJ,UACE,uBAGF,eACE,aACA,oCAEA,YACE,mBACA,qEAIJ,aAGE,WACA,SACA,kBACA,mBP3YsB,WAlBlB,eOgaJ,oBACA,YACA,aACA,yBACA,qBACA,kBACA,sBACA,eACA,gBACA,UACA,mBACA,kBACA,sGAEA,cACE,uFAGF,wBACE,gLAGF,wBAEE,kHAGF,wBP3aoB,gGO+apB,kBP7bQ,kHOgcN,wBACE,sOAGF,wBAEE,qBAKN,uBACE,CADF,oBACE,CADF,eACE,sBACA,eACA,WPhdI,cOkdJ,WACA,UACA,oBACA,gBACA,wXACA,sBACA,kBACA,kBACA,mBACA,YACA,iBAGF,4BACE,oCAIA,iBACE,mCAGF,iBACE,UACA,QACA,CACA,qBACA,eACA,cPhdkB,oBOkdlB,oBACA,eACA,gBACA,mBACA,gBACA,yCAEA,UACE,cACA,kBACA,MACA,QACA,WACA,UACA,8DACA,4BAKN,iBACE,0CAEA,wBACE,CADF,gBACE,qCAGF,iBACE,MACA,OACA,WACA,YACA,aACA,uBACA,mBACA,8BACA,kBACA,iBACA,gBACA,YACA,8CAEA,iBACE,6HAGE,UP9hBF,aOwiBR,aACE,CACA,kBACA,eACA,gBAGF,kBACE,cPhiBsB,kBOkiBtB,kBACA,mBACA,kBACA,uBAEA,qCACE,iCACA,cPxjBY,sBO4jBd,mCACE,+BACA,cP7jBQ,kBOikBV,oBACE,cPpjBoB,qBOsjBpB,wBAEA,UPxkBI,0BO0kBF,kBAIJ,kBACE,4BAGF,SACE,sBACA,cACA,WACA,SACA,aACA,gDACA,mBPhlBS,WATL,eO4lBJ,SACA,8CAEA,QACE,iHAGF,mBAGE,kCAGF,kBACE,uBAIJ,eACE,CAII,oKADF,eACE,0DAKN,eAzEF,eA0EI,eAIJ,eACE,kBACA,gBAEA,aPjnBsB,qBOmnBpB,sBAEA,yBACE,YAKN,eACE,mBACA,eACA,eAEA,oBACE,kBACA,cAGF,aPnoBwB,yBOqoBtB,qBACA,gBACA,2DAEA,aAGE,8BAKN,kBAEE,cPrpBsB,oCOwpBtB,cACE,mBACA,kBACA,4CAGF,aP7pBwB,gBO+pBtB,CAII,mUADF,eACE,0DAKN,6BAtBF,eAuBI,cAIJ,YACE,eACA,uBACA,UAGF,aACE,gBPrsBM,YOusBN,qBACA,mCACA,qBACA,cAEA,aACE,SACA,iBAIJ,kBACE,cPlsBwB,WOosBxB,sBAEA,aACE,eACA,eAKF,kBACE,sBAEA,eACE,CAII,+JADF,eACE,4CASR,qBACE,8BACA,WPjvBI,qCOmvBJ,oCACA,kBACA,aACA,mBACA,gDAEA,UPzvBI,0BO2vBF,oLAEA,oBAGE,0DAIJ,eACE,cACA,kBACA,CAII,yYADF,eACE,kEAIJ,eACE,oBAMR,YACE,eACA,mBACA,4DAEA,aAEE,6BAIA,wBACA,cACA,sBAIJ,iBACE,cPxxBsB,0BO2xBtB,iBACE,oBAIJ,eACE,mBACA,uBAEA,cACE,WPrzBI,kBOuzBJ,mBACA,SACA,UACA,4BAGF,aACE,eAIJ,aP/zBc,0SOy0BZ,+CACE,aAIJ,kBACE,sBACA,kBACA,aACA,mBACA,kBACA,kBACA,QACA,mCACA,sBAEA,aACE,8BAGF,sBACE,SACA,aACA,eACA,gDACA,oBAGF,aACE,WACA,oBACA,gBACA,eACA,CACA,oBACA,WACA,iCACA,oBAGF,oBPn3Bc,gBOq3BZ,2BAEA,kBPv3BY,gBOy3BV,oBAKN,kBACE,6BAEA,wBACE,mBACA,eACA,aACA,4BAGF,kBACE,aACA,OACA,sBACA,cACA,cACA,gCAEA,iBACE,YACA,iBACA,kBACA,UACA,8BAGF,qBACE,qCAIJ,kBACE,gCAGF,wBACE,mCACA,kBACA,kBACA,kBACA,kBACA,sCAEA,wBACE,WACA,cACA,YACA,SACA,kBACA,MACA,UACA,yBAIJ,sBACE,aACA,mBACA,SC17BF,aACE,qBACA,cACA,mCACA,qCAEA,QANF,eAOI,8EAMA,kBACE,YAKN,YACE,kBACA,gBACA,0BACA,gBAEA,aACE,WACA,YACA,SACA,oBACA,CADA,8BACA,CADA,gBACA,0BACA,qCAGF,WAfF,YAgBI,sCAGF,WAnBF,YAoBI,aAIJ,iBACE,aACA,aACA,2BACA,mBACA,mBACA,0BACA,qCAEA,WATF,eAUI,qBAGF,aACE,WACA,YACA,gBACA,wBAEA,UACE,YACA,cACA,SACA,kBACA,mBACA,oBACA,CADA,8BACA,CADA,gBACA,0BAIJ,gBACE,gBACA,iCAEA,cACE,WR7EA,gBQ+EA,gBACA,uBACA,+BAGF,aACE,eACA,cRtEgB,gBQwEhB,gBACA,uBACA,aAMR,cACE,kBACA,gBACA,6GAEA,cAME,WR3GI,gBQ6GJ,qBACA,iBACA,qBACA,sBAGF,eRnHM,oBQqHJ,cR5GS,eQ8GT,cACA,kBAGF,cACE,uCAGF,wBAEE,cRhHsB,oBQoHxB,UACE,eACA,wBAEA,oBACE,iBACA,oBAIJ,WACE,gBACA,wBAEA,oBACE,gBACA,uBAIJ,cACE,cACA,qCAGF,YA9DF,iBA+DI,mBAEA,YACE,uCAGF,oBAEE,gBAKN,kBRnKa,mCQqKX,cR9JsB,eQgKtB,gBACA,kBACA,aACA,uBACA,mBACA,eACA,kBACA,aACA,gBACA,2BAEA,yBACE,yBAGF,qBACE,gBACA,yCAIJ,oBAEE,gBACA,eACA,kBACA,eACA,iBACA,gBACA,cR5LwB,sCQ8LxB,sCACA,6DAEA,aRjNc,sCQmNZ,kCACA,qDAGF,aACE,sCACA,kCACA,0BAIJ,eACE,UACA,wBACA,gBACA,CADA,YACA,CACA,iCACA,CADA,uBACA,CADA,kBACA,eACA,iBACA,6BAEA,YACE,gCACA,yDAGF,qBAEE,aACA,kBACA,gBACA,gBACA,mBACA,uBACA,6BAGF,eACE,YACA,cACA,cR3OsB,0BQ6OtB,6BAGF,aACE,cRlPoB,4BQsPtB,aRpPwB,qBQsPtB,qGAEA,yBAGE,oCAIJ,qCACE,iCACA,sCAEA,aRpRY,gBQsRV,0CAGF,aRzRY,wCQ8Rd,eACE,wCAIJ,UACE,0BAIA,aRzRsB,4BQ4RpB,aR3RsB,qBQ6RpB,qGAEA,yBAGE,iCAIJ,URvTI,gBQyTF,wBAIJ,eACE,kBChUJ,kCACE,kBACA,gBACA,mBACA,8BAEA,yBACE,qCAGF,iBAVF,eAWI,gBACA,gBACA,6BAGF,eACE,SACA,gBACA,gFAEA,yBAEE,sCAIJ,UACE,yBAGF,kBTpBW,6GSuBT,sBAGE,CAHF,cAGE,8IAIA,eAGE,0BACA,iJAKF,yBAGE,kLAIA,iBAGE,qCAKN,4GACE,yBAGE,uCAKN,kBACE,qBAIJ,WACE,eACA,mBT7DwB,WAlBlB,oBSkFN,iBACA,YACA,iBACA,SACA,yBAEA,UACE,YACA,sBACA,iBACA,UT5FI,gFSgGN,kBAGE,qNAKA,kBTxFoB,4ISgGpB,kBT9GQ,qCSqHV,wBACE,YACE,0DAOJ,YACE,uCAGF,2BACE,gBACA,uDAEA,SACE,SACA,yDAGF,eACE,yDAGF,gBACE,iBACA,mFAGF,UACE,qMAGF,eAGE,iCC/JN,u+KACE,uCAEA,u+KACE,0CAIJ,u+KACE,WCTF,gCACE,4CACA,kBAGF,mBACE,sBACA,oBACA,gBACA,kBACA,cAGF,aACE,eACA,iBACA,cXIwB,SWFxB,uBACA,UACA,eACA,wCAEA,yBAEE,uBAGF,aXVsB,eWYpB,SAIJ,wBXd0B,YWgBxB,kBACA,sBACA,WXpCM,eWsCN,qBACA,oBACA,eACA,gBACA,YACA,iBACA,iBACA,gBACA,eACA,kBACA,kBACA,yBACA,qBACA,uBACA,2BACA,mBACA,WACA,4CAEA,wBAGE,4BACA,sBAGF,eACE,mFAEA,wBXjEQ,gBWqEN,mCAIJ,wBX3DsB,eW8DpB,2BAGF,QACE,wDAGF,mBAGE,yGAGF,cAIE,iBACA,YACA,oBACA,iBACA,4BAGF,aX7FW,mBAOW,qGW0FpB,wBAGE,8BAIJ,kBXnFsB,2GWsFpB,wBAGE,0BAIJ,aX3GsB,uBW6GpB,iBACA,yBACA,+FAEA,oBAGE,cACA,mCAGF,UACE,uBAIJ,aACE,WACA,kBAIJ,YACE,cACA,kBACA,cAGF,oBACE,UACA,cX7HsB,SW+HtB,kBACA,uBACA,eACA,2BACA,2CACA,2DAEA,aAGE,qCACA,4BACA,2CACA,oBAGF,mCACE,uBAGF,aACE,6BACA,eACA,qBAGF,aXrKwB,gCWyKxB,QACE,uEAGF,mBAGE,uBAGF,aXvKsB,sFW0KpB,aAGE,qCACA,6BAGF,mCACE,gCAGF,aACE,6BACA,8BAGF,aXtMsB,uCWyMpB,aACE,wBAKN,sBACE,0BACA,yBACA,kBACA,YACA,8BAEA,yBACE,mBAKN,aXhNwB,SWkNtB,kBACA,uBACA,eACA,gBACA,eACA,cACA,iBACA,UACA,2BACA,2CACA,0EAEA,aAGE,qCACA,4BACA,2CACA,yBAGF,mCACE,4BAGF,aACE,6BACA,eACA,0BAGF,aX7PwB,qCWiQxB,QACE,sFAGF,mBAGE,CAKF,0BADF,iBAUE,CATA,WAGF,WACE,cACA,qBACA,QACA,SAEA,+BAEA,kBAEE,mBACA,oBACA,kBACA,mBACA,iBAKF,WACE,eAIJ,YACE,iCAGE,mBACA,eAEA,gBACA,wCAEA,aXlTsB,sDWsTtB,YACE,2CAGF,oBACE,kBACA,yBACA,sBACA,WACA,YACA,cACA,kBACA,SACA,kBACA,sBACA,kDAEA,oBXvUoB,yDW8UxB,aXvVW,mBWyVT,mBXlVoB,oCWoVpB,iBACA,kBACA,eACA,gBACA,6CAEA,aXjWS,gBWmWP,CAII,kRADF,eACE,wCAKN,aXvVoB,gBWyVlB,0BACA,yIAEA,oBAGE,sCAKN,iBACE,MACA,QACA,kDAGF,iBACE,mGAGF,iBAGE,WACA,8BAGF,QACE,wBACA,UACA,qDAEA,WACE,mBACA,UACA,mFAIJ,aAEE,sBACA,WACA,SACA,cX3ZS,gBATL,aWuaJ,oBACA,eACA,gBACA,SACA,UACA,yIAEA,aXhZoB,CW8YpB,sHAEA,aXhZoB,CW8YpB,8HAEA,aXhZoB,CW8YpB,4GAEA,aXhZoB,+FWoZpB,SACE,qCAGF,kFAvBF,cAwBI,sCAIJ,iBACE,+CAGF,gBACE,0BACA,iBACA,mBACA,YACA,qBACA,kEAEA,SACE,qCAGF,8CAZF,sBAaI,gBACA,2DAIJ,iBACE,SACA,kDAGF,qBACE,aACA,kBACA,SACA,WACA,WACA,sCACA,mBX5csB,0BW8ctB,cXtdS,eWwdT,YACA,6FAEA,aACE,wDAIJ,YACE,eACA,kBACA,yPAEA,kBAIE,wGAIJ,YAGE,mBACA,mBACA,2BACA,iBACA,eACA,oCAGF,6BACE,0CAEA,aACE,gBACA,uBACA,mBACA,2CAGF,eACE,0CAGF,aACE,iBACA,gBACA,uBACA,mBACA,8EAIJ,aAEE,iBACA,WACA,YACA,2DAGF,aXlgBsB,wCWsgBtB,aX3hBW,oBW6hBT,eACA,gBXviBI,sEW0iBJ,eACE,uEAGF,YACE,mBACA,YACA,eACA,8DAGF,UACE,cACA,WACA,uEAEA,iFACE,aACA,uBACA,8BACA,UACA,4BACA,oFAEA,aACE,cXljBgB,eWojBhB,gBACA,aACA,oBACA,6QAEA,aAGE,8EAIJ,SACE,0EAIJ,iBACE,UACA,SACA,OACA,QACA,sBACA,gFACA,aACA,UACA,4BACA,mFAEA,sBACE,cXllBgB,SWolBhB,UACA,SACA,WACA,oBACA,eACA,gBACA,yFAEA,UX7mBF,8GWinBE,WACE,cXjmBc,CAjBlB,oGWinBE,WACE,cXjmBc,CAjBlB,wGWinBE,WACE,cXjmBc,CAjBlB,+FWinBE,WACE,cXjmBc,iFWsmBlB,SACE,wEAKN,iBACE,sBX/nBE,wBWioBF,sBACA,4BACA,aACA,WACA,gBACA,8CAIJ,YACE,mBACA,0BACA,aACA,8BACA,cACA,qEAEA,YACE,uGAEA,gBACE,qGAGF,YACE,6IAEA,aACE,2IAGF,gBACE,0HAKN,sBAEE,cACA,0EAGF,iBACE,iBACA,sCAIJ,YACE,yBACA,YACA,cACA,4EAEA,eACE,iBACA,oBAKN,cACE,kDACA,eACA,gBACA,cXpqBsB,4CWuqBtB,aXlsBY,kCWusBd,2CACE,WC7sBF,8DDktBE,sBACA,CADA,kBACA,wBACA,WACA,YACA,eAEA,UACE,kBAIJ,iBACE,mBACA,mBX7sBsB,aW+sBtB,gBACA,gBACA,cACA,0BAGF,iBACE,gBACA,0BAGF,WACE,iBACA,gCAGF,aXtuBa,cWwuBX,eACA,iBACA,gBACA,mBACA,qBACA,kCAGF,UACE,iBACA,+BAGF,cACE,4CAGF,iBAEE,eACA,iBACA,qBACA,gBACA,gBACA,uBACA,gBACA,WX3wBM,wDW8wBN,SACE,wGAGF,kBACE,sJAEA,oBACE,gEAIJ,UACE,YACA,gBACA,oDAGF,cACE,iBACA,sBACA,CADA,gCACA,CADA,kBACA,gDAGF,kBACE,qBACA,sEAEA,eACE,gDAIJ,aXnyBc,qBWqyBZ,4DAEA,yBACE,oEAEA,aACE,4EAKF,oBACE,sFAEA,yBACE,wDAKN,aXvyBoB,8EW4yBtB,aACE,0GAGF,kBXhzBsB,sHWmzBpB,kBACE,qBACA,8IAGF,QACE,0XAGF,mBAGE,0FAIJ,YACE,wJAEA,aACE,+BAKN,oBACE,gBACA,yCAEA,UACE,YACA,gBACA,iCAGF,kBACE,qBACA,4CAEA,eACE,iCAIJ,aX52BwB,qBW82BtB,uCAEA,yBACE,+CAIA,oBACE,oDAEA,yBACE,gDAKN,aACE,6CAKN,gBACE,oCAGF,aACE,eACA,iBACA,cACA,SACA,uBACA,CACA,eACA,qBACA,oFAEA,yBAEE,gCAIJ,oBACE,kBACA,uBACA,SACA,cXr6BW,gBWu6BX,eACA,cACA,yBACA,iBACA,eACA,sBACA,4BAGF,aX35BwB,SW65BtB,kBACA,kBACA,oBACA,SACA,aACA,sBACA,WACA,WACA,gCACA,+BAGF,UACE,kBACA,kBAIA,SACE,mBACA,wCAEA,kBACE,8CAEA,sBACE,iFAIJ,kBAEE,SAMJ,yBACA,kBACA,gBACA,gCACA,eACA,UAaA,mCACA,CADA,0BACA,wDAZA,QARF,kBAWI,0BAGF,GACE,aACA,WALA,gBAGF,GACE,aACA,uDAMF,cAEE,kCAGF,kBACE,4BACA,sCAIA,aXj/BoB,qCWq/BpB,aX5/BS,6BWggCT,aXz/BoB,CAPX,kEWwgCT,aXxgCS,kCW2gCP,aXlgCoB,gEWsgCpB,UXxhCE,mBAgBgB,sEW4gChB,kBACE,+CAQR,sBACE,qEAEA,aACE,qDAKN,aXhhCwB,YWmhCtB,eACA,uBAGF,aXvhCwB,qCW2hCxB,aACE,eACA,mBACA,eAGF,cACE,mBAGF,+BACE,aACA,6CAEA,uBACE,OACA,gBACA,4DAEA,eACE,8DAGF,SACE,mBACA,qHAGF,cAEE,gBACA,4EAGF,cACE,0BAKN,kBACE,aACA,cACA,uBACA,aACA,kBAGF,gBACE,cX5kCsB,CW8kCtB,iBACA,eACA,kBACA,+CAEA,aXnlCsB,uBWulCtB,aACE,gBACA,uBACA,qBAIJ,kBACE,aACA,eACA,8BAEA,mBACE,kBACA,mBACA,yDAEA,gBACE,qCAGF,oBACE,WACA,eACA,gBACA,cXhnCkB,4BWsnCxB,iBACE,8BAGF,cACE,cACA,uCAGF,aACE,aACA,mBACA,uBACA,kBACA,kBAGF,kBACE,kBACA,wBAEA,YACE,eACA,8BACA,uBACA,uFAEA,SAEE,mCAIJ,cACE,iBACA,6CAEA,UACE,YACA,gBACA,kEAGF,gBACE,gBACA,+DAIJ,cAEE,wBAIJ,eACE,cX9qCsB,eWgrCtB,iBACA,8BAGF,kBACE,6BACA,gCACA,aACA,mBACA,eACA,wBAGF,aACE,qBACA,uDAGF,oBAEE,gBACA,eACA,gBACA,2BAGF,aX/tCa,eWiuCX,6BAEA,aX9sCsB,SWmtCxB,YACE,gCACA,8BAEA,aACE,cACA,WXvvCI,qBWyvCJ,eACA,gBACA,kBAIJ,YACE,iBAGF,WACE,aACA,mBACA,UAGF,YACE,gCACA,kBAEA,SACE,gBACA,2CAEA,aACE,iCAIJ,aACE,cACA,cXxwCoB,gBW0wCpB,qBACA,eACA,mBAIJ,YACE,0BAGF,UACE,iBACA,kBACA,kBAGF,iBE3yCE,iCACA,wBACA,4BACA,kBF0yCA,yBAEA,oBACE,sBACA,iBACA,4BAGF,iBErzCA,iCACA,wBACA,4BACA,kBFozCE,gBACA,kBACA,gCAEA,UACE,kBACA,sBACA,mCAGF,aACE,kBACA,QACA,SACA,+BACA,WXr0CE,6BWu0CF,gBACA,eACA,oBAKN,cACE,0BAGF,UACuB,sCE30CrB,+BF60CA,iBEt1CA,iCACA,wBACA,4BACA,WFq1CuB,sCE/0CvB,kCFk1CA,iBE31CA,iCACA,wBACA,4BACA,WF01CuB,sCEp1CvB,kBFs1CE,SACA,QACA,UACA,wBAIJ,WACE,aACA,mBACA,sBAGF,YACE,6BACA,cX/0CsB,6BWk1CtB,eACE,CAII,kMADF,eACE,wBAKN,eACE,cACA,0BACA,yFAEA,oBAGE,sBAKN,4BACE,gCACA,iBACA,gBACA,cACA,aACA,+BAGF,YACE,4CAEA,qBACE,oFAIA,QACE,WACA,uDAGF,WACE,iBACA,gBACA,WACA,4BAKN,YACE,cACA,iBACA,kBACA,2BAGF,oBACE,gBACA,cACA,+BACA,eACA,oCACA,kCAEA,+BACE,gCAGF,aACE,yBACA,eACA,cX56CoB,kCWg7CtB,aACE,eACA,gBACA,WXn8CI,CWw8CA,2NADF,eACE,oBAMR,iBACE,mDAEA,aACE,mBACA,gBACA,4BAIJ,UACE,kBACA,6JAGF,oBAME,4DAKA,UXx+CM,kBW8+CN,UACE,iKAQF,yBACE,+BAIJ,aACE,gBACA,uBACA,0DAGF,aAEE,sCAGF,kBACE,gCAGF,aX1/C0B,cW4/CxB,iBACA,mBACA,gBACA,2EAEA,aAEE,uBACA,gBACA,uCAGF,cACE,WX1hDI,kCW+hDR,UACE,kBACA,iBAGF,WACE,UACA,kBACA,SACA,WACA,iBAGF,UACE,kBACA,OACA,MACA,YACA,eACA,CXphDsB,gHW8hDtB,aX9hDsB,wBWkiDtB,UACE,wCAGF,kBXtiDsB,cArBX,8CW+jDT,kBACE,qBACA,wBAKN,oBACE,gBACA,eACA,cXlkDsB,eWokDtB,iBACA,kBACA,4BAEA,aXtkDwB,6BW0kDxB,cACE,gBACA,uBACA,uCAIJ,UACE,kBACA,CXjmDU,mEWwmDZ,aXxmDY,uBW4mDZ,aX7mDc,4DWmnDV,4CACE,CADF,oCACE,8DAKF,6CACE,CADF,qCACE,6BAKN,aACE,gBACA,qBACA,mCAEA,UXvoDM,0BWyoDJ,8BAIJ,WACE,eAGF,aACE,eACA,gBACA,uBACA,mBACA,qBAGF,eACE,wBAGF,cACE,+DAKA,yBACE,eAIJ,iBACE,WACA,YACA,aACA,mBACA,uBACA,sBACA,6CAEA,cX9nD4B,eAEC,0DW+nD3B,sBACA,CADA,gCACA,CADA,kBACA,4BAGF,iBACE,qEAGF,YACE,iBAIJ,iBACE,WACA,YACA,aACA,mBACA,uBACA,qBAEA,cXtpD4B,eAEC,WWupD3B,YACA,sBACA,CADA,gCACA,CADA,kBACA,iBAIJ,YACE,aACA,mBACA,cACA,eACA,cXvsDsB,wBW0sDtB,aXzsDwB,mBW6sDxB,aACE,4BAGF,oBACE,0CAGF,iBACE,6DAEA,iBACE,oBACA,qCACA,UACA,4EAGF,mBACE,gCACA,UACA,0BAKN,aACE,gBACA,iBACA,gBACA,gBACA,kCAGF,aACE,gBACA,gBACA,uBACA,+BAGF,aACE,qBACA,WAGF,oBACE,oBAGF,YACE,kBACA,2BAGF,+BACE,mBACA,SACA,gBAGF,kBX1wD0B,cW4wDxB,kBACA,uCACA,aACA,mBAEA,eACE,qBAGF,yBACE,oBAGF,yBACE,uBAGF,sBACE,sBAGF,sBACE,uBAIJ,iBACE,QACA,SACA,2BACA,4BAEA,UACE,gBACA,2BACA,0BX/yDsB,2BWmzDxB,WACE,iBACA,uBACA,yBXtzDsB,8BW0zDxB,QACE,iBACA,uBACA,4BX7zDsB,6BWi0DxB,SACE,gBACA,2BACA,2BXp0DsB,wBW00DxB,cACE,iBACA,cACA,iBACA,sBACA,qBACA,mBXh1DsB,cARb,gBW21DT,uBACA,mBACA,yFAEA,kBXt1DsB,cADA,UW41DpB,sCAKN,aACE,iBACA,gBACA,QACA,gBACA,aACA,yCAEA,eACE,mBX12DsB,cW42DtB,kBACA,mCACA,gBACA,kBACA,sDAGF,OACE,wDAIA,UACE,8CAIJ,cACE,iBACA,cACA,iBACA,sBACA,qBACA,mBXn4DsB,cARb,gBW84DT,uBACA,mBACA,oDAEA,SACE,oDAGF,kBX74DsB,cADA,iBWq5D1B,qBACE,eAGF,YACE,cACA,mBACA,2BACA,gBACA,kBACA,4BAEA,iBACE,uBAGF,YACE,uBACA,WACA,YACA,iBACA,6BAEA,WACE,gBACA,oBACA,aACA,yBACA,gBACA,oCAEA,0BACE,oCAGF,cACE,YACA,oBACA,YACA,6BAIJ,qBACE,WACA,gBACA,cACA,aACA,sBACA,qCAEA,4BARF,cASI,qBAMR,kBACE,wBACA,CADA,eACA,MACA,UACA,cACA,qCAEA,mBAPF,gBAQI,+BAGF,eACE,qCAEA,6BAHF,kBAII,gKAMJ,WAIE,mCAIJ,YACE,mBACA,uBACA,YACA,SAGF,WACE,kBACA,sBACA,aACA,sBACA,qBAEA,kBXlgEW,8BWogET,+BACA,KAIJ,aACE,CACA,qBACA,WACA,YACA,aAJA,YAYA,CARA,QAGF,WACE,sBACA,CACA,qBACA,kBACA,cAGF,aACE,cACA,sBACA,cXrhEsB,qBWuhEtB,kBACA,eACA,oCACA,iBAGF,aAEE,gBACA,qCAGF,cACE,SACE,iBAGF,aAEE,CAEA,gBACA,yCAEA,iBACE,uCAGF,kBACE,qDAKF,gBAEE,kBACA,YAKN,qBACE,aACA,mBACA,cACA,gBACA,iBAGF,aACE,cACA,CACA,sBACA,WX7lEM,qBW+lEN,kBACA,eACA,gBACA,gCACA,2BACA,mDACA,qBAEA,eACE,eACA,qCAMA,mEAHF,kBAII,4BACA,yBAIJ,+BACE,cXpmEsB,sBWwmExB,eACE,aACA,qCAIJ,qBAEI,cACE,wBAKN,qBACE,WACA,YACA,cACA,6DAEA,UAEE,YACA,UACA,wCAGF,YACE,cACA,kDACA,qCAEA,uCALF,aAMI,yCAIJ,eACE,oCAGF,YACE,uDAGF,cACE,sCAGF,gBACE,eACA,CACA,2BACA,yCAGF,QACE,mCAGF,gBACE,yBAEA,kCAHF,eAII,sCAIJ,sBACE,gBACA,sCAGF,uCACE,YACE,iKAEA,eAGE,6CAIJ,gBACE,2EAGF,YAEE,kGAGF,gBACE,+BAGF,2BACE,gBACA,uCAEA,SACE,SACA,wCAGF,eACE,wCAGF,gBACE,iBACA,qDAGF,UACE,gLAGF,eAIE,gCAIJ,iBACE,6CAEA,cACE,8CAKF,gBACE,iBACA,6DAGF,UACE,CAIA,yFAGF,eACE,8DAGF,gBACE,kBACA,0BAMR,cACE,aACA,uBACA,mBACA,gBACA,iBACA,iBACA,gBACA,mBACA,WXpyEM,kBWsyEN,eACA,iBACA,qBACA,sCACA,4FAEA,kBAGE,qCAIJ,UACE,UACE,uDAGF,kCACE,4DAGF,kBAGE,yBAGF,aACE,iBAGF,eAEE,sCAIJ,2CACE,YACE,sCAOA,sEAGF,YACE,uCAIJ,0CACE,YACE,uCAIJ,UACE,YACE,mBAIJ,iBACE,yBAEA,iBACE,SACA,UACA,mBX71EsB,yBW+1EtB,gBACA,kBACA,eACA,gBACA,iBACA,WXt3EI,mDW23ER,oBACE,gBAGF,WACE,gBACA,aACA,sBACA,yBACA,kBACA,gCAEA,gBACE,oBACA,cACA,gBACA,6BAGF,sBACE,8BAGF,MACE,kBACA,aACA,sBACA,iBACA,oBACA,oBACA,mDAGF,eACE,sBX75EI,0BW+5EJ,cACA,gDAGF,iBACE,gDAGF,WACE,mBAIJ,eACE,mBACA,yBACA,gBACA,aACA,sBACA,qBAEA,aACE,sBAGF,aACE,SACA,CACA,4BACA,cACA,qDAHA,sBAOA,gBAMF,WACA,kBAGA,+BANF,qBACE,UACA,CAEA,eACA,aAiBA,CAhBA,eAGF,iBACE,MACA,OACA,mBACA,CAGA,qBACA,CACA,eACA,WACA,YACA,kBACA,uBAEA,kBXp9EW,0BWy9Eb,u1BACE,OACA,gBACA,aACA,8BAEA,aACE,sBACA,CADA,4DACA,CADA,kBACA,+BACA,CADA,2BACA,UACA,YACA,oBACA,eACA,yBACA,CADA,qBACA,CADA,oBACA,CADA,gBACA,sCAGF,yBAjBF,aAkBI,iBAIJ,kBACE,eACA,gBACA,iBAGF,aACE,eACA,mBACA,mBACA,aACA,mBACA,kBACA,mBAEA,iCACE,yBAEA,kBACE,mCACA,aAKN,iBACE,kBACA,cACA,iCACA,mCAEA,eACE,yBAGF,YAVF,cAWI,oBAGF,YACE,sBACA,qBAGF,aACE,kBACA,iBACA,yBAKF,uBADF,YAEI,sBAIJ,qBACE,WACA,mBACA,cXliFwB,eWoiFxB,cACA,eACA,oBACA,SACA,iBACA,aACA,SACA,UACA,UACA,2BAEA,yBACE,6BAIJ,kBACE,SACA,oBACA,cXvjFwB,eWyjFxB,mBACA,eACA,kBACA,UACA,mCAEA,yBACE,wCAGF,kBACE,2BAIJ,oBACE,iBACA,2BAGF,iBACE,kCAGF,cACE,cACA,eACA,aACA,kBACA,QACA,UACA,eAGF,oBACE,kBACA,eACA,6BACA,SACA,UACA,yBACA,CADA,qBACA,CADA,oBACA,CADA,gBACA,0CACA,wCACA,iCAGF,QACE,mBACA,WACA,YACA,gBACA,UACA,kBACA,UACA,yBAGF,kBACE,WACA,wBACA,qBAGF,UACE,YACA,UACA,mBACA,yBXroFW,qCWuoFX,sEAGF,wBACE,4CAGF,wBXroF0B,+EWyoF1B,wBACE,2BAGF,iBACE,WACA,YACA,MACA,SACA,gBACA,mBACA,cACA,SACA,UACA,6BACA,CAKA,uEAFF,SACE,6BAeA,CAdA,sBAGF,iBACE,WACA,YACA,MACA,SACA,gBACA,mBACA,cACA,WAGA,8CAGF,SACE,qBAGF,iBACE,QACA,SACA,WACA,YACA,yBACA,kBACA,yBACA,sBACA,yBACA,sCACA,4CAGF,SACE,qBXjsFwB,cWqsF1B,kBACE,WXxtFM,cW0tFN,eACA,aACA,qBACA,2DAEA,kBAGE,oBAGF,SACE,2BAGF,sBACE,cXztFsB,kGW4tFtB,sBAGE,WXhvFE,kCWovFJ,aXluFsB,oBWwuF1B,oBACE,iBACA,qBAGF,oBACE,kBACA,CACA,gBACA,CX1vFW,eW6vFX,iBACA,wCANA,cACA,CACA,eACA,mBAaA,CAVA,mBX9vFW,aAqBW,iBW+uFtB,CAEA,wBACA,eACA,yDAGF,kBX3wFa,cWixFb,aACE,kBAGF,aXhwFwB,cWkwFtB,8BACA,+BACA,4EAEA,0BAGE,CAHF,uBAGE,CAHF,kBAGE,kDAMA,sBACA,YACA,wDAEA,kBACE,8DAGF,cACE,sDAGF,cACE,0DAEA,aX9xFkB,0BWgyFhB,sDAIJ,oBACE,cXnzFkB,sMWszFlB,yBAGE,oDAKN,aXhzFsB,0BWszFtB,aACE,UACA,mCACA,CADA,0BACA,gBACA,6BAEA,cACE,yBACA,cX50FkB,aW80FlB,gBACA,gCACA,sCAGF,oDACE,YACE,uCAIJ,oDACE,YACE,uCAIJ,yBA3BF,YA4BI,yCAGF,eACE,aACA,iDAEA,aXv2FkB,qBW82FxB,eACE,gBACA,2BAEA,iBACE,aACA,wBAGF,kBACE,yBAGF,oBACE,gBACA,yBACA,yBACA,eAIJ,aACE,sBACA,WACA,SACA,cX94FW,gBATL,aW05FN,oBACA,eACA,gBACA,SACA,UACA,kBACA,qBAEA,SACE,qCAGF,cAnBF,cAoBI,oDAIJ,uBACE,YACA,6CACA,uBACA,sBACA,WACA,0DAEA,sBACE,0DAKJ,uBACE,2BACA,gDAGF,aXh6FwB,6BWk6FtB,uDAGF,aXj7F0B,cWq7F1B,YACE,eACA,yBACA,kBACA,cX76FsB,gBW+6FtB,qBACA,gBACA,uBAEA,QACE,OACA,kBACA,QACA,MAIA,iDAHA,YACA,uBACA,mBAUE,CATF,0BAEA,yBACE,kBACA,iBACA,cAIA,sDAGF,cAEE,cXt9FoB,uBWw9FpB,SACA,cACA,qBACA,eACA,iBACA,sMAEA,UXh/FE,yBWu/FJ,cACE,kBACA,YACA,eAKN,cACE,qBAEA,kBACE,oBAIJ,cACE,cACA,qBACA,WACA,YACA,SACA,2BAIA,UACE,YACA,qBAIJ,aACE,gBACA,kBACA,cX1gGsB,gBW4gGtB,uBACA,mBACA,qBACA,uBAGF,aACE,gBACA,2BACA,2BAGF,aXxhGwB,oBW4hGxB,aACE,eACA,eACA,gBACA,uBACA,mBACA,qBAGF,cACE,mBACA,kBACA,yBAEA,cACE,kBACA,yBACA,QACA,SACA,+BACA,yBAIJ,aACE,6CAEA,UACE,mDAGF,yBACE,6CAGF,mBACE,sBAIJ,oBACE,kCAEA,QACE,4CAIA,oBACA,0CAGF,kBACE,0CAGF,aACE,6BAIJ,wBACE,2BAGF,yBACE,cACA,SACA,WACA,YACA,oBACA,CADA,8BACA,CADA,gBACA,sBACA,wBACA,YAGF,aACE,cX3lGsB,6BW6lGtB,SACA,kBACA,kBACA,oBACA,SACA,aACA,sBACA,WACA,WACA,qBACA,kBAEA,kBACE,WAIJ,+BACE,yBAGF,iBACE,eACA,gBACA,cXrnGsB,mBArBX,eW6oGX,aACA,cACA,sBACA,mBACA,uBACA,aACA,qEAGE,aAEE,WACA,aACA,SACA,yCAIJ,gBACE,gCAGF,eACE,uCAEA,aACE,mBACA,cXnpGkB,qCWupGpB,cACE,gBACA,yBAKN,iBACE,cACA,UACA,gCAEA,uCACE,uCAEA,aACE,WACA,kBACA,aACA,OACA,QACA,cACA,UACA,oBACA,YACA,UACA,oFACA,wCAIJ,SACE,kBACA,gBAIJ,YACE,eACA,mBACA,cACA,eACA,kBACA,UACA,UACA,gBACA,2BACA,4BACA,uBAEA,QACE,SACA,yBACA,cACA,uBACA,aACA,gBACA,uBACA,gBACA,mBACA,OACA,4CAGF,aXnuGwB,4CWwuGtB,aXxuGsB,0CW0uGpB,4CAIJ,SAEE,yBAIJ,WACE,aACA,uBAGF,kBACE,iCAGF,iBACE,wBAGF,kBACE,SACA,cXrwGsB,eWuwGtB,eACA,eACA,8BAEA,aACE,CAKA,kEAEA,UXnyGI,mBWqyGF,6BAKN,eACE,gBACA,gBACA,cX7xGsB,0DW+xGtB,UACA,UACA,kBACA,uCAEA,YACE,WACA,uCAGF,iBACE,gCAGF,QACE,uBACA,SACA,6BACA,cACA,mCAIJ,kBACE,aACA,mCAIA,aX5zGsB,0BW8zGpB,gCAIJ,WACE,4DAEA,cACE,uEAEA,eACE,WAKN,oBACE,UACA,oBACA,kBACA,cACA,SACA,uBACA,eACA,sBAGF,oBACE,iBACA,oBAGF,aXh1GwB,eWk1GtB,gBACA,yBACA,iBACA,kBACA,QACA,SACA,+BACA,yBAEA,aACE,WACA,CACA,0BACA,oBACA,mBACA,4BAIJ,iBACE,QACA,SACA,+BACA,WACA,YACA,sBACA,6BACA,CACA,wBACA,kBACA,2CAGF,2EACE,CADF,mEACE,8CAGF,4EACE,CADF,oEACE,qCAGF,GACE,sBACE,KAGF,2BACE,KAGF,2BACE,KAGF,yBACE,IAGF,wBACE,EArBF,4BAGF,GACE,sBACE,KAGF,2BACE,KAGF,2BACE,KAGF,yBACE,IAGF,wBACE,uCAIJ,GACE,wBACE,KAGF,0BACE,KAGF,2BACE,KAGF,uBACE,IAGF,sBACE,EAtBA,6BAIJ,GACE,wBACE,KAGF,0BACE,KAGF,2BACE,KAGF,uBACE,IAGF,sBACE,mCAIJ,GACE,OACE,SACA,yBACA,KAGF,wBACE,KAGF,UACE,YACA,6BACA,kBACA,UACA,IAGF,UACE,YACA,eACA,UACA,6BACA,EA5BA,yBAIJ,GACE,OACE,SACA,yBACA,KAGF,wBACE,KAGF,UACE,YACA,6BACA,kBACA,UACA,IAGF,UACE,YACA,eACA,UACA,6BACA,kCAIJ,GACE,gBACA,aACA,aAPE,wBAIJ,GACE,gBACA,aACA,gCAGF,kBACE,gBXz+GM,WACA,eW2+GN,aACA,sBACA,YACA,uBACA,eACA,kBACA,kBACA,YACA,gBAGF,eXv/GQ,cAiBgB,SWy+GtB,UACA,WACA,YACA,kBACA,wBACA,CADA,oBACA,CADA,eACA,iEAEA,SAGE,cACA,yBAIJ,aACE,eACA,yBAGF,aACE,eACA,gBACA,iBAGF,KACE,OACA,WACA,YACA,kBACA,YACA,2BAEA,aACE,SACA,QACA,WACA,YACA,6BAGF,mBACE,yBAGF,YACE,0BAGF,aACE,uBACA,WACA,YACA,SACA,iCAEA,oBACE,0BACA,kBACA,iBACA,WXtjHE,gBWwjHF,eACA,+LAMA,yBACE,mEAKF,yBACE,6BAMR,kBACE,iBAGF,kBACE,6BACA,gCACA,aACA,mBACA,eACA,kDAGF,aAEE,kBACA,yBAGF,kBACE,aACA,2BAGF,aXplHwB,eWslHtB,cACA,gBACA,mBACA,kDAIA,kBACE,oDAIA,SEtmHF,sBACA,WACA,SACA,gBACA,oBACA,mBbRW,cAOW,eaItB,SACA,+EFgmHI,aACE,CEjmHN,qEFgmHI,aACE,CEjmHN,yEFgmHI,aACE,CEjmHN,gEFgmHI,aACE,sEAGF,QACE,yLAGF,mBAGE,0DAGF,kBACE,qCAGF,mDArBF,cAsBI,yDAIJ,aX9mHoB,iBWgnHlB,eACA,4DAGF,gBACE,wDAGF,kBACE,gEAEA,cACE,iNAEA,kBAGE,cACA,gHAKN,aXrpHoB,0HW0pHpB,cAEE,gBACA,cX/oHkB,kZWkpHlB,aAGE,gEAIJ,wBACE,iDAGF,eX3rHI,kBa0BN,CAEA,eACA,cbbsB,uCaetB,UF8pHI,mBX5qHoB,oDagBxB,wBACE,cblBoB,eaoBpB,gBACA,mBACA,oDAGF,aACE,oDAGF,kBACE,oDAGF,eACE,cbzCS,sDWwrHT,WACE,mDAGF,aX5rHS,kBW8rHP,eACA,8HAEA,kBAEE,iCAON,kBACE,mBAIJ,UXxtHQ,kBW0tHN,cACA,mBACA,sBX7tHM,yBW+tHN,eACA,gBACA,YACA,kBACA,WACA,yBAEA,SACE,iBAIJ,aACE,iBACA,wBAGF,aX/tHwB,qBWiuHtB,mBACA,gBACA,sBACA,6EAGF,aXztHwB,mBArBX,kBWmvHX,aACA,eACA,gBACA,eACA,aACA,cACA,mBACA,uBACA,yBAEA,4EAfF,cAgBI,6FAGF,eACE,mFAGF,aX5vHwB,qBW8vHtB,qGAEA,yBACE,uCAKN,kBACE,aACA,eAGF,qBACE,8BAGF,GACE,kBACE,2CACA,CADA,kCACA,KAGF,oBACE,0CACA,CADA,iCACA,KAGF,oBACE,2CACA,CADA,kCACA,KAGF,oBACE,0CACA,CADA,iCACA,KAGF,kBACE,2CACA,CADA,kCACA,EA1BF,qBAGF,GACE,kBACE,2CACA,CADA,kCACA,KAGF,oBACE,0CACA,CADA,iCACA,KAGF,oBACE,2CACA,CADA,kCACA,KAGF,oBACE,0CACA,CADA,iCACA,KAGF,kBACE,2CACA,CADA,kCACA,mCAIJ,8BACE,2DACA,CADA,kDACA,iCAGF,MACE,sBAEE,0BACA,KAGF,sBACE,aAGF,uBAGE,aAGF,sBAGE,KAGF,uBACE,KAGF,sBACE,EA/BF,wBAGF,MACE,sBAEE,0BACA,KAGF,sBACE,aAGF,uBAGE,aAGF,sBAGE,KAGF,uBACE,KAGF,sBACE,kCAIJ,yBACE,8EACA,CADA,qEACA,8BAGF,eXt2HQ,kBWw2HN,sCACA,kBACA,eACA,UACA,iDAEA,2BACE,2DAGF,UACE,mCAIJ,iBACE,SACA,WACA,eACA,yCAGF,iBACE,UACA,SACA,UACA,gBXl4HM,kBWo4HN,sCACA,gBACA,gDAEA,aACE,eACA,SACA,gBACA,uBACA,iKAEA,+BAGE,2DAIJ,WACE,wBAKF,2BACE,cAIJ,kBACE,0BACA,aACA,YACA,uBACA,OACA,UACA,kBACA,MACA,kBACA,WACA,aACA,gBAEA,mBACE,oBAIJ,WACE,aACA,aACA,sBACA,kBACA,YACA,0BAGF,iBACE,MACA,QACA,SACA,OACA,WACA,kBACA,mBX37HW,kCW67HX,uBAGF,MACE,aACA,mBACA,uBACA,cX57HwB,eW87HxB,gBACA,0BACA,kBACA,kBAGF,YACE,cXx7HsB,gBW07HtB,aACA,sBAEA,cACE,kBACA,uBAGF,cACE,yBACA,gBACA,cACA,0BAIJ,aACE,4BAGF,UACE,WACA,kBACA,mBXj9HsB,kBWm9HtB,eACA,2BAGF,iBACE,OACA,MACA,WACA,mBXv+HwB,kBWy+HxB,eAGF,aACE,wBACA,UACA,eACA,0CAEA,mBAEE,mBAGF,8BACE,CADF,sBACE,WACA,cACA,SACA,WACA,YACA,CAQE,6GAKN,SACE,oBACA,CADA,WACA,6BAGF,iBACE,gBXliIM,uCWoiIN,kBACA,iBACA,gBACA,iCAEA,yBACE,oCAGF,sBACE,2BAIJ,aXziIa,aW2iIX,eACA,aACA,kEAEA,kBXtiIwB,WAlBlB,UW4jIJ,CX5jII,4RWikIF,UXjkIE,wCWukIN,kBACE,iCAIJ,YACE,mBACA,uBACA,kBACA,oCAGF,aACE,cXtjIsB,2CWyjItB,eACE,cACA,cXhlIS,CWqlIL,wQADF,eACE,mDAON,eXrmIM,0BWumIJ,qCACA,gEAEA,eACE,0DAGF,kBX5lIsB,uEW+lIpB,UXjnIE,uDWunIN,yBACE,sDAGF,aACE,sCACA,SAIJ,iBACE,gBAGF,SEznIE,sBACA,WACA,SACA,gBACA,oBACA,mBbRW,cAOW,eaItB,SACA,cFmnIA,CACA,2BACA,iBACA,eACA,2CAEA,aACE,CAHF,iCAEA,aACE,CAHF,qCAEA,aACE,CAHF,4BAEA,aACE,kCAGF,QACE,6EAGF,mBAGE,sBAGF,kBACE,qCAGF,eA3BF,cA4BI,kCAKF,QACE,qDAGF,mBAEE,mBAGF,iBACE,SACA,WACA,UACA,qBACA,UACA,0BACA,sCACA,eACA,WACA,YACA,cXzqIsB,eW2qItB,oBACA,0BAEA,mBACE,WACA,0BAIJ,uBACE,iCAEA,mBACE,uBACA,gCAIJ,QACE,uBACA,cXlrIoB,eWorIpB,uCAEA,uBACE,sCAGF,aACE,yBAKN,aXhsIwB,mBWksItB,aACA,gBACA,eACA,eACA,6BAEA,oBACE,iBACA,0BAIJ,iBACE,6BAEA,kBACE,gCACA,eACA,aACA,aACA,gBACA,eACA,cXxtIoB,iCW2tIpB,oBACE,iBACA,8FAIJ,eAEE,0BAIJ,aACE,aACA,cXtvIwB,qBWwvIxB,+FAEA,aAGE,0BACA,uBAIJ,YACE,cXpwIsB,kBWswItB,aAGF,iBACE,8BACA,oBACA,aACA,sBAGF,cACE,MACA,OACA,QACA,SACA,0BACA,wBAGF,cACE,MACA,OACA,WACA,YACA,aACA,sBACA,mBACA,uBACA,2BACA,aACA,oBACA,yBACA,CADA,qBACA,CADA,oBACA,CADA,gBACA,oBAGF,mBACE,aACA,aACA,yBAGF,eACE,iBACA,yBAGF,UACE,cAGF,UACE,YACA,kBACA,qCAEA,UACE,YACA,aACA,mBACA,uBACA,2CAEA,cXjyI0B,eAEC,CW2yI7B,8CALF,iBACE,MACA,OACA,QACA,SAYA,CAXA,yBAQA,mBACA,8BACA,oBACA,4BAEA,mBACE,0DAGF,SACE,4DAEA,mBACE,mBAKN,yBACE,sBACA,SACA,WX73IM,eW+3IN,aACA,mBACA,eACA,cACA,cACA,kBACA,kBACA,MACA,SACA,yBAGF,MACE,0BAGF,OACE,CASA,4CANF,UACE,kBACA,kBACA,OACA,YACA,oBAUA,6BAEA,WACE,sBAGF,mBACE,qBACA,gBACA,cX15IsB,mFW65ItB,yBAGE,wBAKN,oBACE,sBAGF,qBX17IQ,YW47IN,WACA,kBACA,YACA,UACA,SACA,YACA,8BAGF,wBXn7I0B,qBWu7I1B,iBACE,UACA,QACA,YACA,6CAGF,kBX/7I0B,cARb,kBW48IX,gBACA,aACA,sBACA,oBAGF,WACE,WACA,gBACA,iBACA,kBACA,wBAEA,iBACE,MACA,OACA,WACA,YACA,sBACA,aACA,aACA,CAGA,YACA,UACA,yBACA,CADA,qBACA,CADA,oBACA,CADA,gBACA,2CANA,qBACA,mBACA,uBAaF,CATE,mBAIJ,YACE,CAGA,iBACA,mDAGF,aAEE,mBACA,aACA,aACA,2DAEA,cACE,uLAGF,aXz+IsB,SW4+IpB,eACA,gBACA,kBACA,oBACA,YACA,aACA,kBACA,6BACA,+mBAEA,aAGE,yBACA,qiBAGF,aXlhJS,qwDWshJP,aAGE,sBAMR,sBACE,eAGF,iBACE,eACA,mBACA,sBAEA,eACE,cXziJS,kBW2iJT,yBACA,eACA,qBAGF,kBXhjJW,cAQa,gBW2iJtB,aACA,kBACA,kBAIJ,oBACE,eACA,gBACA,iBACA,wFAGF,kBAME,cXtkJW,kBWwkJX,gBACA,eACA,YACA,kBACA,sBACA,4NAEA,aACE,eACA,mBACA,wLAGF,WACE,UACA,kBACA,SACA,WACA,kRAGF,aACE,wBAKF,eX5mJM,CAiBkB,gBW8lJtB,oBACA,iEXhnJI,2BAiBkB,yBWumJ1B,iBACE,aACA,iCAEA,wBACE,CADF,qBACE,CADF,oBACE,CADF,gBACE,gBACA,2GAIJ,YAIE,8BACA,mBXtnJwB,aWwnJxB,iBACA,2HAEA,aACE,iBACA,cXhnJoB,mBWknJpB,2IAGF,aACE,6BAIJ,cACE,2BAGF,WACE,eACA,0BAGF,gBAEE,sDAGF,qBAEE,eAGF,UACE,gBACA,0BAGF,YACE,6BACA,qCAEA,yBAJF,cAKI,gBACA,iDAIJ,qBAEE,UACA,qCAEA,+CALF,UAMI,sDAIJ,aAEE,gBACA,gBACA,gBACA,kBACA,2FAEA,aX1rJwB,iLW8rJxB,aXvsJW,qCW4sJX,oDAjBF,eAkBI,sCAKF,4BADF,eAEI,yBAIJ,YACE,+BACA,gBACA,0BAEA,cACE,iBACA,mBACA,sCAGF,aACE,sBACA,WACA,CACA,aXtuJS,gBATL,aWkvJJ,oBACA,eACA,YACA,CACA,SACA,kBACA,yBACA,iBACA,gBACA,gBACA,4CAEA,wBACE,+CAGF,eXlwJI,yBWowJF,mBACA,kBACA,6DAEA,QACE,gBACA,gBACA,mEAEA,QACE,0DAIJ,aXzwJO,oBW2wJL,eACA,gBXrxJA,+CW0xJJ,YACE,8BACA,mBACA,4CAIJ,aACE,cXzxJS,eW2xJT,gBACA,mBACA,wCAGF,eACE,mBACA,+CAEA,aXpyJS,eWsyJP,qCAIJ,uBAnFF,YAoFI,eACA,QACA,wCAEA,iBACE,iBAKN,eACE,eACA,wBAEA,eACE,iBACA,2CAGF,eACE,mBAGF,eACE,cACA,gBACA,+BAEA,4BACE,4BAGF,QACE,oCAIA,aXh1JO,aWk1JL,kBACA,eACA,mBACA,qBACA,8EAEA,eAEE,yWAOA,kBXx1JgB,WAlBlB,uDWi3JA,iBACE,oMAUR,aACE,iIAIJ,4BAIE,cXv2JsB,eWy2JtB,gBACA,6cAEA,aAGE,6BACA,qGAIJ,YAIE,eACA,iIAEA,eACE,CAII,w1BADF,eACE,sDAMR,iBAEE,oDAKA,eACE,0DAGF,eACE,mBACA,aACA,mBACA,wEAEA,aX56JS,CW86JP,gBACA,uBAKN,YACE,2CAEA,QACE,WACA,cAIJ,wBXp7J0B,WWs7JxB,kBACA,MACA,OACA,aACA,6BAGF,aACE,kBACA,WXj9JM,0BWm9JN,WACA,SACA,gBACA,kBACA,eACA,gBACA,UACA,oBACA,WACA,4BACA,iBACA,wDAKE,SACE,uBAKN,eACE,6BAEA,UACE,kBAIJ,YACE,eACA,yBACA,kBACA,gBACA,gBACA,wBAEA,aACE,cX59JoB,iBW89JpB,eACA,+BACA,aACA,sBACA,mBACA,uBACA,eACA,4BAEA,aACE,wBAIJ,eACE,CACA,qBACA,aACA,sBACA,uBACA,2BAEA,aACE,cACA,0BAGF,oBACE,cX1/JkB,gBW4/JlB,gCAEA,yBACE,0BAKN,QACE,eACA,iDAEA,SACE,cACA,8BAGF,aX7gKoB,gBWqhKtB,cACA,CACA,iBACA,CACA,UACA,qCANF,qBACE,CACA,eACA,CACA,iBAYA,CAVA,qBAGF,QACE,CACA,aACA,WACA,CACA,iBAEA,qEAGE,cACE,MACA,gCAKN,cACE,cACA,qBACA,cX9jKwB,kBWgkKxB,UACA,mEAEA,WAEE,WACA,CAIA,2DADF,mBACE,CADF,8BACE,CADF,gBX3lKM,CW4lKJ,wBAIJ,UACE,YACA,CACA,iBACA,MACA,OACA,UACA,gBXvmKM,iCW0mKN,YACE,sBAIJ,WACE,gBACA,kBACA,WACA,qCAGF,cACE,YACA,oBACA,CADA,8BACA,CADA,gBACA,kBACA,QACA,2BACA,WACA,UACA,sCAGF,0BACE,2BACA,gBACA,kBACA,qKAMA,WAEE,mFAGF,WACE,eAKJ,qBACE,kBACA,mBACA,kBACA,oBACA,cACA,wBAEA,eACE,YACA,yBAGF,cACE,kBACA,gBACA,gCAEA,UACE,cACA,kBACA,6BACA,WACA,SACA,OACA,oBACA,qCAIJ,qCACE,iCAGF,wBACE,uCAIA,mBACA,mBACA,6BACA,0BACA,eAIJ,eACE,kBACA,gBXvsKM,eWysKN,kBACA,sBACA,cACA,wBAEA,eACE,sBACA,qBAGF,SACE,qBAGF,eACE,gBACA,UACA,0BAGF,oBACE,sBACA,SACA,gCAEA,wBACE,0BACA,qBACA,sBACA,UACA,4BAKF,qBACE,CADF,gCACE,CADF,kBACE,kBACA,QACA,2BACA,yBAIJ,iBACE,UACA,SACA,OACA,QACA,sBACA,iFACA,eACA,UACA,4BACA,gCAEA,SACE,6EAKF,iBAEE,wBAIJ,YACE,kBACA,MACA,OACA,WACA,YACA,UACA,SACA,gBXpxKI,cAiBgB,gBWswKpB,oBACA,+BAEA,aACE,oBACA,8GAEA,aAGE,+BAIJ,aACE,eACA,kCAGF,aACE,eACA,gBACA,4BAIJ,YACE,8BACA,oBACA,0DAEA,aACE,wBAIJ,cACE,mBACA,gBACA,uBACA,oCAGE,cACE,qCAKF,eACE,+BAIJ,sBACE,iBACA,eACA,SACA,0BACA,8GAEA,UXn1KE,+EW21KN,cAGE,gBACA,6BAGF,UXl2KM,iBWo2KJ,yBAGF,oBACE,aACA,mDAGF,UX52KM,uBWi3KN,cACE,YACA,eACA,8BAEA,UACE,WACA,+BAOA,6DANA,iBACA,cACA,kBACA,WACA,UACA,YAWA,CAVA,+BASA,kBACA,+BAGF,iBACE,UACA,kBACA,WACA,YACA,YACA,UACA,4BACA,mBACA,sCACA,oBACA,qBAIJ,gBACE,uBAEA,oBACE,eACA,gBACA,WXj6KE,sFWo6KF,yBAGE,qBAKN,cACE,YACA,kBACA,4BAEA,UACE,WACA,+BACA,kBACA,cACA,kBACA,WACA,SACA,2DAGF,aAEE,kBACA,WACA,kBACA,SACA,mBACA,6BAGF,6BACE,6BAGF,iBACE,UACA,UACA,kBACA,WACA,YACA,QACA,iBACA,4BACA,mBACA,sCACA,oBACA,CAGE,yFAKF,SACE,6GAQF,gBACE,oBACA,kBAON,UACE,cACA,+BACA,0BAEA,UACE,qCAGF,iBATF,QAUI,mBAIJ,qBACE,mBACA,uBAEA,YACE,kBACA,gBACA,gBACA,2BAEA,aACE,WACA,YACA,SACA,oBACA,CADA,8BACA,CADA,gBACA,uBAIJ,YACE,mBACA,mBACA,aACA,6BAEA,aACE,aACA,mBACA,qBACA,gBACA,qCAGF,UACE,eACA,cACA,+BAGF,aACE,WACA,YACA,gBACA,mCAEA,UACE,YACA,cACA,SACA,kBACA,mBACA,oBACA,CADA,8BACA,CADA,gBACA,qCAIJ,gBACE,gBACA,4CAEA,cACE,WX3jLF,gBW6jLE,gBACA,uBACA,0CAGF,aACE,eACA,cXpjLc,gBWsjLd,gBACA,uBACA,yBAKN,kBXpkLS,aWskLP,mBACA,uBACA,gDAEA,YACE,cACA,eACA,mDAGF,qBACE,kBACA,gCACA,WACA,gBACA,mBACA,gBACA,uBACA,qDAEA,YACE,iEAEA,cACE,sDAIJ,YACE,6BAOV,YACE,eACA,gBACA,wBAGF,QACE,sBACA,cACA,kBACA,kBACA,gBACA,WACA,+BAEA,iBACE,QACA,SACA,+BACA,eACA,sDAIJ,kBAEE,gCACA,eACA,aACA,cACA,oEAEA,kBACE,SACA,SACA,6HAGF,aAEE,cACA,cX5oLoB,eW8oLpB,eACA,gBACA,kBACA,qBACA,kBACA,WACA,mBACA,yJAEA,aXtpLsB,qWWypLpB,aAEE,WACA,kBACA,SACA,SACA,QACA,SACA,2BACA,CAEA,4CACA,CADA,kBACA,CADA,wBACA,iLAGF,WACE,6CACA,8GAKN,kBACE,gCACA,qSAKI,YACE,iSAGF,4CACE,cAOV,kBX1sLa,sBW6sLX,iBACE,4BAGF,aACE,eAIJ,cACE,kBACA,qBACA,cACA,iBACA,eACA,mBACA,gBACA,uBACA,eACA,oEAEA,YAEE,sBAGF,oBACE,kBACA,yBACA,sBACA,WACA,YACA,cACA,kBACA,SACA,kBACA,sBACA,8BAEA,oBACE,mBACA,2BAKN,eACE,gBAGF,eXxwLQ,kBa0BN,CACA,sBACA,gBACA,cbbsB,uCaetB,mBAEA,wBACE,cblBoB,eaoBpB,gBACA,mBACA,mBAGF,aACE,mBAGF,kBACE,mBAGF,eACE,cbzCS,UWmwLb,iBACE,cAEA,WACE,WACA,sCACA,CADA,6BACA,cAGF,cACE,iBACA,cXtwLsB,gBWwwLtB,gBAEA,aXzwLsB,0BW2wLpB,sBAEA,oBACE,4BAMR,GACE,cACA,eACA,WATM,mBAMR,GACE,cACA,eACA,qEAGF,kBAIE,sBAEE,8BACA,iBAGF,0BACE,kCACA,+BAIA,qDACE,uEACA,+CAGF,sBACE,8BACA,6DAIA,6BACE,6CACA,4EAIF,6BACE,6CACA,+CAOJ,gBAEE,+BAGF,gBACE,6CAEA,0BACE,wDAGF,eACE,6DAGF,iBACE,iBACA,2EAIA,mBACE,UACA,gCACA,WACA,0FAGF,mBACE,UACA,oCACA,eAOV,UACE,eACA,gBACA,iBAEA,YACE,gBACA,eACA,kBACA,sCAGF,YACE,4CAEA,kBACE,yDAGF,SACE,sBACA,cACA,WACA,SACA,aACA,gDACA,mBX94LO,WATL,eW05LF,CACA,eACA,kBACA,2EAEA,QACE,wMAGF,mBAGE,+DAGF,kBACE,qCAGF,wDA7BF,cA8BI,4DAIJ,WACE,eACA,gBACA,SACA,kBACA,sBAMJ,sBACA,mBACA,6BACA,gCACA,+BAEA,iBACE,iBACA,cXv6LoB,CW06LpB,eACA,eACA,oCAEA,aACE,gBACA,uBACA,oCAIJ,UACE,kBACA,uDAGF,iBACE,qDAGF,eACE,qBAKF,wBACA,aACA,2BACA,mBACA,mBACA,2BAEA,aACE,iCAEA,UACE,uCAEA,SACE,kCAKN,aACE,cACA,mBAIJ,cACE,kBACA,MACA,OACA,WACA,YACA,0BACA,cAGF,kBX5/La,sBW8/LX,kBACA,uCACA,YACA,gBACA,qCAEA,aARF,SASI,kBAGF,cACE,mBACA,gBACA,eACA,kBACA,0BACA,6BAGF,WACE,6BAGF,yBACE,sCAEA,uBACE,uCACA,wBACA,wBAIJ,eACE,kDAIA,oBACE,+BAIJ,cACE,sBAGF,eACE,aAIJ,kBXljMa,sBWojMX,kBACA,uCACA,YACA,gBACA,qCAEA,YARF,SASI,uBAGF,kBACE,oBAGF,kBACE,YACA,0BACA,gBACA,mBAGF,YACE,gCACA,4BAGF,YACE,iCAGF,aACE,gBACA,qBACA,eACA,aACA,cAIJ,iBACE,YACA,gBACA,YACA,aACA,uBACA,mBACA,gBX5mMM,yDW+mMN,aAGE,gBACA,WACA,YACA,SACA,sBACA,CADA,gCACA,CADA,kBACA,gBXvnMI,uBW2nMN,iBACE,YACA,aACA,+BACA,iEACA,kBACA,wCACA,uBAGF,iBACE,WACA,YACA,MACA,OACA,uBAGF,iBACE,YACA,WACA,UACA,YACA,4BACA,6BAEA,UACE,8BAGF,UXxpMI,eW0pMF,gBACA,cACA,kBACA,2BAGF,iBACE,mCACA,qCAIJ,oCACE,eAEE,uBAGF,YACE,4BAKN,aXlqMwB,eWoqMtB,gBACA,gBACA,kBACA,qBACA,6BAEA,kBACE,wCAEA,eACE,6BAIJ,aACE,0BACA,mCAEA,oBACE,kBAKN,eACE,2BAEA,UACE,8FAEA,8BAEE,CAFF,sBAEE,wBAIJ,iBACE,SACA,UACA,yBAGF,eACE,aACA,kBACA,mBACA,6BAEA,mBACE,CADF,8BACE,CADF,gBACE,cACA,WACA,YACA,SACA,uBAIJ,iBACE,mBACA,YACA,gCACA,+BAEA,aACE,cACA,WACA,iBACA,gDAEA,kBACE,yBACA,wBAKN,YACE,uBACA,gBACA,iBACA,iCAEA,YACE,mBACA,iBACA,gBACA,8CAEA,wBACE,kBACA,uBACA,YACA,yCAGF,YACE,8BAIJ,WACE,4CAEA,kBACE,wCAGF,UACE,YACA,iCAGF,cACE,iBACA,WXtyMA,gBWwyMA,gBACA,mBACA,uBACA,uCAEA,aACE,eACA,cX/xMc,gBWiyMd,gBACA,uBACA,gCAKN,aACE,uBAIJ,eACE,cACA,iDAGE,qBACA,WXn0ME,gDWu0MJ,QACE,6BACA,kDAEA,aACE,yEAGF,uBACE,4DAGF,aXl1MU,yBWw1Md,cACE,gCAEA,cACE,cX70MkB,eW+0MlB,kCAEA,oBACE,cXl1MgB,qBWo1MhB,iBACA,gBACA,yCAEA,eACE,WXz2MF,iBWk3MN,aXp1MsB,mBWs1MpB,gCACA,gBACA,aACA,eACA,eACA,qBAEA,oBACE,iBACA,eAIJ,YACE,mBACA,aACA,gCACA,0BAEA,eACE,qBAGF,aACE,cX92MkB,gBWg3MlB,uBACA,mBACA,4BAEA,eACE,uBAGF,aXt4MkB,qBWw4MhB,eACA,gBACA,cACA,gBACA,uBACA,mBACA,qGAKE,yBACE,wBAMR,aACE,eACA,iBACA,gBACA,iBACA,mBACA,gBACA,cXh6MoB,0BWo6MtB,aACE,WACA,2CAEA,oCACE,yBACA,0CAGF,wBACE,eAMR,YACE,gCACA,CACA,iBACA,qBAEA,kBACE,UACA,uBAGF,aACE,CACA,sBACA,kBACA,eACA,uBAGF,oBACE,mBXv8MsB,kBWy8MtB,cACA,eACA,wBACA,wBAGF,aACE,CACA,0BACA,gBACA,8BAEA,eACE,aACA,2BACA,8BACA,uCAGF,cACE,cX/9MkB,kBWi+MlB,+BAGF,aXp+MoB,eWs+MlB,mBACA,gBACA,uBACA,kBACA,gBACA,YACA,iCAEA,UX9/ME,qBWggNA,oHAEA,yBAGE,0BAKN,qBACE,uBAIJ,kBACE,6BAEA,kBACE,oDAGF,eACE,6DAGF,UX1hNI,gBWgiNR,kBACE,eACA,aACA,qBACA,0BAEA,WACE,cACA,qCAEA,yBAJF,YAKI,4BAIJ,wBACE,cACA,kBACA,qCAEA,0BALF,UAMI,uBAIJ,qBACE,WACA,aACA,kBACA,eACA,iBACA,qBACA,gBACA,gBACA,gBACA,aACA,sBACA,6BAEA,aACE,gBACA,mBACA,mBACA,8BAGF,iBACE,SACA,WACA,cACA,mBXhkNoB,kBWkkNpB,cACA,eACA,4BAIJ,YACE,cX3kNoB,kBW6kNpB,WACA,QACA,mDAIJ,YACE,oDAGF,UACE,gBAGF,YACE,eACA,mBACA,gBACA,iBACA,wBACA,sBAEA,aACE,mBACA,SACA,kBACA,WACA,eACA,yBACA,CADA,qBACA,CADA,oBACA,CADA,gBACA,cACA,aACA,mBACA,2BACA,2CACA,6BAEA,aACE,aACA,WACA,YACA,iCAEA,aACE,SACA,WACA,YACA,eACA,gBACA,sBACA,sBACA,CADA,gCACA,CADA,kBACA,6BAIJ,aACE,cACA,eACA,gBACA,kBACA,gBACA,cXzoNkB,mFW6oNpB,kBAGE,4BACA,2CACA,wGAEA,aACE,6BAIJ,0BACE,2CACA,yBACA,yDAEA,aACE,uCAKN,UACE,oCAGF,WACE,8BAGF,aX5qNsB,SW8qNpB,eACA,WACA,cACA,cACA,YACA,aACA,mBACA,WACA,2BACA,2CACA,2GAEA,SAGE,cACA,4BACA,2CACA,qCAKF,SACE,OGxtNN,eACE,eACA,UAEA,kBACE,kBACA,cAGF,iBACE,cACA,mBACA,WACA,aACA,sBAEA,kBdIsB,ecCxB,iBACE,aACA,cACA,iBACA,eACA,gBACA,qBAEA,oBACE,qBACA,yBACA,4BACA,oEAGF,YAEE,kCAGF,aACE,gCAGF,aACE,sBACA,WACA,eACA,cdtCO,UcwCP,oBACA,gBdlDE,yBcoDF,kBACA,iBACA,sCAEA,oBdtCoB,0Bc2CtB,cACE,wBAGF,YACE,mBACA,iBACA,cAIJ,oBACE,kBACA,yBACA,sBACA,WACA,YACA,cACA,kBACA,SACA,kBACA,sBACA,gBACA,mBACA,cACA,uBAEA,iBACE,qBAGF,oBd3FY,8EcgGZ,oBAGE,iBACA,gCAGF,mBACE,SACA,wCAGF,mBAEE,eAIJ,oBACE,WACA,gBACA,cACA,cAGF,aACE,qBACA,oBAEA,cACE,eAIJ,eACE,mBACA,cdvGoB,ac2GtB,cACE,uBACA,UACA,SACA,SACA,cdhHoB,0BckHpB,kBACA,mBAEA,oBACE,sCAGF,mCAEE,eAIJ,WACE,eACA,kBACA,eACA,6BAIJ,4BACE,gCAEA,YACE,2CAGF,4BACE,aACA,aACA,mBACA,mGAEA,YAEE,+GAEA,oBdpKoB,sDc0KxB,cACE,gBACA,iBACA,YACA,oBACA,cdnKoB,sCcsKpB,gCAGF,YACE,mBACA,8CAEA,aACE,wBACA,iBACA,oCAIJ,uBACE,CADF,oBACE,CADF,eACE,sBACA,eACA,cd5MS,qBc8MT,WACA,UACA,oBACA,qXACA,yBACA,kBACA,CACA,yBACA,mDAGF,aACE,cAIJ,adzMwB,qBc4MtB,+BACE,6BAEA,+BACE,eChPN,k1BACE,aACA,sBACA,aACA,UACA,yBAGF,YACE,OACA,sBACA,yBACA,2BAEA,MACE,iBACA,qCAIJ,gBACE,YACE,cCtBJ,cACE,qBACA,chBSW,2BgBNX,qBAEE,iBACA,+BAGF,WACE,iBAIJ,sBACE,6BAEA,uBACE,2BACA,4BACA,mBhBHsB,4BgBOxB,oBACE,8BACA,+BACA,aACA,qBAIJ,YACE,8BACA,cACA,chBLsB,cgBOtB,oBAGF,iBACE,OACA,kBACA,iBACA,gBACA,8BACA,eACA,0BAEA,aACE,6BAIJ,ahBpC0B,mCgBuCxB,aACE,oDAGF,WACE,wBAIJ,iBACE,YACA,OACA,WACA,WACA,yBhBrDwB,uBgB0DxB,oBACE,WACA,eACA,yBAGF,iBACE,gBACA,oBAIJ,iBACE,aACA,gBACA,kBACA,gBhB5FM,sBgB8FN,sGAEA,+BAEE,oBAKF,2BACA,gBhBxGM,0BgB2GN,cACE,gBACA,gBACA,oBACA,cACA,WACA,gCACA,chBzGS,yBgB2GT,kBACA,4CAEA,QACE,2GAGF,mBAGE,wCAKN,cACE,6CAEA,SACE,kBACA,kBACA,qDAGF,SACE,WACA,kBACA,MACA,OACA,WACA,YACA,sCACA,mBACA,4BAIJ,SACE,kBACA,wBACA,gBACA,MACA,iCAEA,aACE,WACA,gBACA,gBACA,gBhBpKI,mBgByKR,iBACE,qBACA,YACA,wBAEA,UACE,YACA,wBAIJ,cACE,kBACA,iBACA,chBvKsB,mDgB0KtB,YACE,qDAGF,eACE,uDAGF,YACE,qBAIJ,YACE,YCrMF,qBACE,iBANc,cAQd,kBACA,sCAEA,WANF,UAOI,eACA,mBAIJ,iDACE,eACA,gBACA,gBACA,qBACA,cjBJsB,oBiBOtB,ajBLwB,0BiBOtB,6EAEA,oBAGE,wCAIJ,ajBlBsB,oBiBuBtB,YACE,oBACA,+BAEA,eACE,yBAIJ,eACE,cjBhCsB,qBiBoCxB,iBACE,cjBrCsB,uBiByCxB,eACE,mBACA,kBACA,kBACA,yHAGF,4CAME,mBACA,oBACA,gBACA,cjBzDsB,qBiB6DxB,aACE,qBAGF,gBACE,qBAGF,eACE,qBAGF,gBACE,yCAGF,aAEE,qBAGF,eACE,qBAGF,kBACE,yCAMA,iBACA,iBACA,yDAEA,2BACE,yDAGF,2BACE,qBAIJ,UACE,SACA,SACA,gCACA,eACA,4BAEA,UACE,SACA,wBAIJ,UACE,yBACA,8BACA,CADA,iBACA,gBACA,mBACA,iEAEA,+BAEE,cACA,kBACA,gBACA,gBACA,cjBrIkB,iCiByIpB,uBACE,gBACA,gBACA,cjB9HkB,qDiBkIpB,WAEE,iBACA,kBACA,qBACA,mEAEA,SACE,kBACA,iFAEA,gBACE,kBACA,6EAGF,iBACE,SACA,UACA,mBACA,gBACA,uBACA,+BAMR,YACE,oBAIJ,kBACE,eACA,mCAEA,iBACE,oBACA,8BAGF,YACE,8BACA,eACA,6BAGF,UACE,kDACA,eACA,iBACA,WjBpNI,iBiBsNJ,kBACA,qEAEA,aAEE,6CAIA,ajB9MoB,oCiBmNtB,4CACE,gBACA,eACA,iBACA,qCAGF,4BA3BF,iBA4BI,4BAIJ,iBACE,YACA,sBACA,mBACA,CACA,sBACA,0BACA,QACA,aACA,yCAEA,4CACE,eACA,iBACA,gBACA,cjB/OkB,mBiBiPlB,mBACA,gCACA,uBACA,mBACA,gBACA,wFAEA,eAEE,cACA,2CAGF,oBACE,2BAKN,iBACE,mCAEA,UACE,YACA,CACA,kBACA,uCAEA,aACE,WACA,YACA,mBACA,iCAIJ,cACE,mCAEA,aACE,WjBzSA,qBiB2SA,uDAGE,yBACE,2CAKN,aACE,cjBrSgB,kCiB6StB,iDAEE,CACA,eACA,eACA,iBACA,mBACA,cjBpToB,sCiBuTpB,ajBrTsB,0BiBuTpB,kBAIJ,cACE,SACA,UACA,gBACA,uBACA,oBACA,kBACA,oBACA,cACA,kBAGF,4CACE,eACA,iBACA,gBACA,mBACA,cjB7UsB,wBiBgVtB,iDACE,cACA,eACA,gBACA,cACA,kBAIJ,4CACE,eACA,iBACA,gBACA,mBACA,cjB9VsB,kBiBmWtB,cjBnWsB,mCiBkWxB,4CACE,CACA,gBACA,gBACA,mBACA,cjBvWsB,kBiB4WtB,cjB5WsB,kBiBqXtB,cjBrXsB,mCiBoXxB,4CACE,CACA,gBACA,gBACA,mBACA,cjBzXsB,kBiB8XtB,cjB9XsB,mCiBsYxB,gBAEE,mDAEA,2BACE,mDAGF,2BACE,kBAIJ,eACE,kBAGF,kBACE,yCAGF,cAEE,kBAGF,UACE,SACA,SACA,2CACA,cACA,yBAEA,UACE,SACA,iDAIJ,YAEE,+BAGF,kBjB1bW,kBiB4bT,kBACA,gBACA,sBACA,oCAEA,UACE,aACA,2BACA,iBACA,8BACA,mBACA,uDAGF,YACE,yBACA,qBACA,mFAEA,aACE,eACA,qCAGF,sDAVF,UAWI,8BACA,6CAIJ,MACE,sBACA,qCAEA,2CAJF,YAKI,sBAKN,iBACE,yBAEA,WACE,WACA,uBACA,4BAIJ,iBACE,mBACA,uCAEA,eACE,mCAGF,eACE,cACA,qCAGF,eACE,UACA,mDAEA,kBACE,aACA,iBACA,0FAKE,oBACE,gFAIJ,cACE,qDAIJ,aACE,cACA,6CAGF,UACE,YACA,0BACA,mDAGF,cACE,4DAEA,cACE,qCAKN,oCACE,eACE,sCAIJ,2BA7DF,iBA8DI,mFAIJ,qBAGE,mBjBnjBS,kBiBqjBT,kCACA,uBAGF,YACE,kBACA,WACA,YACA,2BAEA,YACE,WACA,uCAKF,YACE,eACA,mBACA,mBACA,qCAGF,sCACE,kBACE,uCAIJ,ajB3kBsB,qCiB+kBtB,eACE,WjBjmBE,gBiBmmBF,2CAEA,ajBrlBkB,gDiBwlBhB,ajBvlBkB,+CiB6lBtB,eACE,qBAIJ,kBACE,yBAEA,aACE,SACA,eACA,YACA,kBACA,qCAIJ,gDAEI,kBACE,yCAGF,eACE,gBACA,WACA,kBACA,uDAEA,iBACE,sCAMR,8BACE,aACE,uCAEA,gBACE,sDAGF,kBACE,6EAIJ,aAEE,qBAIJ,WACE,UAIJ,mBACE,qCAEA,SAHF,eAII,kBAGF,YACE,uBACA,mBACA,aACA,qBAEA,SjBvrBI,YiByrBF,qCAGF,gBAXF,SAYI,mBACA,sBAIJ,eACE,uBACA,gBACA,gBACA,uBAGF,eACE,gBACA,0BAEA,YACE,yBACA,gBACA,eACA,cjBjsBkB,6BiBqsBpB,eACE,iBACA,+BAGF,kBjBjtBS,aiBmtBP,0BACA,aACA,uCAEA,YACE,gCAIJ,cACE,gBACA,uDAEA,YACE,mBACA,iDAGF,UACE,YACA,0BACA,gCAIJ,YACE,uCAEA,4CACE,eACA,gBACA,cACA,qCAGF,cACE,cjBhvBgB,uFiBsvBtB,eACE,cASA,CjBhwBoB,2CiB6vBpB,iBACA,CACA,kBACA,gBAGF,eACE,cACA,aACA,kDACA,cACA,qCAEA,eAPF,oCAQI,cACA,8BAEA,UACE,aACA,sBACA,0CAEA,OACE,cACA,2CAGF,YACE,mBACA,QACA,cACA,qCAIJ,UACE,2BAGF,eACE,sCAIJ,eAtCF,UAuCI,6BAEA,aACE,gBACA,gBACA,2GAEA,eAGE,uFAIJ,+BAGE,2BAGF,YACE,gCAEA,eACE,qEAEA,eAEE,gBACA,2CAGF,eACE,SAQZ,iBACE,qBACA,iBAGF,aACE,kBACA,aACA,UACA,YACA,cjB71BsB,qBiB+1BtB,eACA,qCAEA,gBAVF,eAWI,WACA,gBACA,cjBv1BoB,SkBhCxB,UACE,eACA,iBACA,yBACA,qBAEA,WAEE,iBACA,mBACA,6BACA,gBACA,mBACA,oBAGF,qBACE,gCACA,aACA,gBACA,oBAGF,eACE,qEAGF,kBlBhBW,UkBqBX,alBZwB,0BkBctB,gBAEA,oBACE,eAIJ,eACE,CAII,4HADF,eACE,+FAOF,sBAEE,yFAKF,YAEE,gCAMJ,kBlBzDS,6BkB2DP,gCACA,4CAEA,qBACE,8BACA,2CAGF,uBACE,+BACA,0BAKN,qBACE,gBAIJ,aACE,mBACA,MAGF,+CACE,0BAGF,sBACE,SACA,aACA,8CAGF,oBAEE,qBACA,iBACA,eACA,clB5FsB,gBkB8FtB,0DAEA,UlBhHM,wDkBoHN,eACE,iBACA,sEAGF,cACE,yCAKF,YAEE,yDAEA,qBACE,iBACA,eACA,gBACA,qEAEA,cACE,2EAGF,YACE,mBACA,uFAEA,YACE,qHAOJ,sBACA,cACA,uBAIJ,wBACE,mBlBvJS,sBkByJT,YACA,mBACA,gCAEA,gBACE,mBACA,oBAIJ,YACE,yBACA,aACA,mBlBtKS,gCkByKT,aACE,gBACA,mBAIJ,wBACE,aACA,mBACA,qCAEA,wCACE,4BACE,0BAIJ,kBACE,iCAGF,kBlB9LS,uCkBiMP,kBACE,4BAIJ,gBACE,oBACA,sCAEA,SACE,wCAGF,YACE,mBACA,mCAGF,aACE,aACA,uBACA,mBACA,kBACA,6CAEA,UACE,YACA,kCAIJ,aACE,mCAGF,aACE,iBACA,clB/NgB,gBkBiOhB,mCAIJ,QACE,WACA,qCAEA,sBACE,gBACA,qCAOJ,4FAFF,YAGI,gCAIJ,aACE,uCAEA,iBACE,sCAGF,eACE,4BAIJ,wBACE,aACA,gBACA,qCAEA,2BALF,4BAMI,sCAIJ,+CACE,YACE,iBC7RN,YACE,uBACA,WACA,iBACA,iCAEA,gBACE,gBACA,oBACA,cACA,wCAEA,YACE,yBACA,mBnBPO,YmBSP,yBAIJ,WAvBc,UAyBZ,oBACA,iCAEA,YACE,mBACA,YACA,uCAEA,aACE,yCAEA,oBACE,aACA,2CAGF,SnBxCA,YmB0CE,kBACA,YACA,uCAIJ,aACE,cnBjCgB,qBmBmChB,cACA,eACA,aACA,0HAIA,kBAGE,+BAKN,aACE,iBACA,YACA,aACA,qCAGF,sCACE,YACE,6BAIJ,eACE,0BACA,gBACA,mBACA,qCAEA,2BANF,eAOI,+BAGF,aACE,aACA,cnB3EgB,qBmB6EhB,0BACA,2CACA,0BACA,mBACA,gBACA,uBACA,mCAEA,gBACE,oCAGF,UnBzGA,yBmB2GE,0BACA,2CACA,uCAGF,kBACE,sBACA,+BAIJ,kBACE,wBACA,SACA,iCAEA,QACE,kBACA,6DAIJ,UnBjIE,yBAkBkB,gBmBkHlB,gBACA,mEAEA,wBACE,6DAKN,yBACE,iCAIJ,qBACE,WACA,gBApJY,cAsJZ,sCAGF,uCACE,YACE,iCAGF,WA/JY,cAiKV,sCAIJ,gCACE,UACE,0BAMF,2BACA,qCAEA,wBALF,cAMI,CACA,sBACA,kCAGF,YACE,oBAEA,gCACA,0BAEA,eAEA,mBACA,8BACA,mCAEA,eACE,kBACA,yCAGF,mBACE,4DAEA,eACE,qCAIJ,gCAzBF,eA0BI,iBACA,6BAIJ,anBnMsB,emBqMpB,iBACA,gBACA,qCAEA,2BANF,eAOI,6BAIJ,anB9MsB,emBgNpB,iBACA,gBACA,mBACA,4BAGF,wBACE,eACA,gBACA,cnB1NkB,mBmB4NlB,kBACA,gCACA,4BAGF,cACE,cnBjOoB,iBmBmOpB,gBACA,0CAGF,UnBxPI,gBmB0PF,uFAGF,eAEE,gEAGF,aACE,4CAGF,cACE,gBACA,WnBxQE,oBmB0QF,iBACA,gBACA,gBACA,2BAGF,cACE,iBACA,cnBjQoB,mBmBmQpB,kCAEA,UnBtRE,gBmBwRA,CAII,2NADF,eACE,4BAMR,UACE,SACA,SACA,2CACA,cACA,mCAEA,UACE,SACA,qCAKN,eA9SF,aA+SI,iCAEA,YACE,yBAGF,UACE,UACA,YACA,iCAEA,YACE,4BAGF,YACE,8DAGF,eAEE,gCACA,gBACA,0EAEA,eACE,+BAIJ,eACE,6DAGF,2BnBjUoB,YmBwU1B,UACE,SACA,cACA,WACA,sDAKA,anBnVsB,0DmBsVpB,anBpVsB,4DmByVxB,anB1Wc,gBmB4WZ,4DAGF,anB9WU,gBmBgXR,0DAGF,anBvVsB,gBmByVpB,0DAGF,anBtXU,gBmBwXR,UAIJ,YACE,eACA,yBAEA,aACE,qBACA,oCAEA,kBACE,4BAGF,cACE,gBACA,+BAEA,oBACE,iBACA,gCAIJ,eACE,yBACA,eACA,CAII,iNADF,eACE,6CAKN,aACE,mBACA,2BAGF,oBACE,cnBxZkB,qBmB0ZlB,yBACA,eACA,gBACA,gCACA,iCAEA,UnBhbE,gCmBkbA,oCAGF,anBnaoB,gCmBqalB,CAkBJ,gBAIJ,aACE,iBACA,eACA,sBAGF,aACE,eACA,cACA,wBAEA,aACE,kBAIJ,YACE,eACA,mBACA,wBAGF,YACE,WACA,sBACA,aACA,+BAEA,aACE,qBACA,gBACA,eACA,iBACA,cnB7dsB,CmBkelB,4MADF,eACE,sCAKN,aACE,gCAIJ,YAEE,mBACA,kEAEA,UACE,kBACA,4BACA,gFAEA,iBACE,kDAKN,aAEE,aACA,sBACA,4EAEA,cACE,WACA,kBACA,mBACA,uEAIJ,cAEE,iBAGF,YACE,eACA,kBACA,2CAEA,kBACE,eACA,8BAGF,kBACE,+CAGF,gBACE,uDAEA,gBACE,mBACA,YACA,YAKN,kBACE,eACA,cAEA,anB3iBwB,qBmB6iBtB,oBAEA,yBACE,SAKN,aACE,YAGF,gBACE,eACA,mBnBpkBW,gCmBskBX,uBAEA,eACE,oBAGF,YACE,2BACA,mBACA,cnBxkBoB,emB0kBpB,eACA,oBAGF,iBACE,4BAEA,aACE,SACA,kBACA,WACA,YACA,qBAIJ,2BACE,mBAGF,oBACE,uBAGF,anBplBsB,sDmBwlBtB,anBrmBwB,qBmBymBtB,gBACA,yDAIJ,oBAIE,cnBlnBwB,iGmBqnBxB,eACE,yIAIA,4BACE,cACA,iIAGF,8BACE,CADF,sBACE,WACA,sBAKN,YAEE,mBACA,sCAEA,aACE,CACA,gBACA,kBACA,0DAIA,8BACE,CADF,sBACE,WACA,gBAKN,kBACE,8BACA,yBAEA,yBnB9qBc,yBmBkrBd,yBACE,wBAGF,yBnBnrBU,wBmBwrBR,2BACA,eACA,iBACA,4BACA,kBACA,gBACA,0BAEA,anBprBoB,uBmB0rBpB,wBACA,qBAGF,anBhrBsB,cmBqrBxB,kBnB1sBa,kBmB4sBX,mBACA,uBAEA,YACE,8BACA,mBACA,aACA,gCAEA,SACE,SACA,gDAEA,aACE,8BAIJ,aACE,gBACA,cnBztBkB,yBmB2tBlB,iBACA,gCAEA,aACE,qBACA,iHAEA,aAGE,mCAIJ,anBvvBM,6BmB8vBR,YACE,2BACA,6BACA,mCAEA,kBACE,gFAGF,YAEE,cACA,sBACA,YACA,cnB9vBgB,mLmBiwBhB,kBAEE,gBACA,uBACA,sCAIJ,aACE,6BACA,4CAEA,anB/vBgB,iBmBiwBd,gBACA,wCAIJ,aACE,sBACA,WACA,aACA,qBACA,cnBzxBgB,WmBgyBxB,kBAGE,0BAFA,eACA,uBASA,CARA,eAGF,oBACE,gBACA,CAEA,qBACA,oBAGF,YACE,eACA,CACA,kBACA,wBAEA,qBACE,cACA,mBACA,aACA,0FAGF,kBAEE,kBACA,YACA,6CAGF,QACE,SACA,+CAEA,aACE,sEAGF,uBACE,yDAGF,anB71BY,8CmBk2Bd,qBACE,aACA,WnBr2BI,cmB02BR,iBACE,qBAGF,wBACE,kBACA,2BAEA,cACE,mBnB12BS,gCmB42BT,kCAEA,cACE,cACA,gBACA,eACA,gBACA,cnB32BoB,qBmB62BpB,mBACA,uHAEA,UnBj4BE,iCmBw4BJ,cACE,cnB32BkB,uCmB+2BpB,YACE,8BACA,mBACA,sCAGF,eACE,sBCt5BN,YACE,eACA,CACA,kBACA,0BAEA,qBACE,iBACA,cACA,mBACA,yDAEA,YAEE,mBACA,kBACA,sBACA,YACA,4BAGF,oBACE,cACA,cACA,qGAEA,kBAGE,sDAKN,iBAEE,gBACA,eACA,iBACA,WpBrCI,6CoBuCJ,mBACA,iBACA,4BAGF,cACE,6BAGF,cACE,cpBjCoB,kBoBmCpB,gBACA,qBAIJ,YACE,eACA,cACA,yBAEA,gBACE,mBACA,6BAEA,aACE,sCAIJ,apBrDwB,gBoBuDtB,qBACA,UC3EJ,aACE,gCAEA,gBACE,eACA,mBACA,+BAGF,cACE,iBACA,8CAGF,aACE,kBACA,wBAGF,gBACE,iCAGF,aACE,kBACA,uCAGF,oBACE,gDAGF,SACE,YACA,8BAGF,cACE,iBACA,mEAGF,aACE,kBACA,2DAGF,cAEE,gBACA,mFAGF,cACE,gBACA,mCAGF,aACE,iBACA,yBAGF,kBACE,kBACA,4BAGF,UACE,UACA,wBAGF,aACE,kCAGF,MACE,WACA,cACA,mBACA,2CAGF,aACE,iBACA,0CAGF,gBACE,eACA,mCAGF,WACE,sCAGF,gBACE,gBACA,yCAGF,UACE,iCAGF,aACE,iBACA,0BAGF,SACE,WACA,0DAGF,iBAEE,mBACA,4GAGF,iBAEE,gBACA,uCAGF,kBACE,eACA,2BAGF,aACE,kBACA,wCAGF,SACE,YACA,yDAGF,SACE,WACA,CAKA,oFAGF,UACE,OACA,uGAGF,UAEE,uCAIA,cACE,iBACA,kEAEA,cACE,gBACA,qCAKN,WACE,eACA,iBACA,uCAGF,WACE,sCAGF,aACE,kBACA,0CAGF,gBACE,eACA,uDAGF,gBACE,2CAGF,cACE,iBACA,YACA,yEAGF,aAEE,iBACA,iBAGF,wBACE,iBAGF,SACE,oBACA,yBAGF,aACE,8EAGF,cAEE,gBACA,oDAGF,cACE,mBACA,gEAGF,iBACE,gBACA,CAMA,8KAGF,SACE,QACA,yDAGF,kBACE,eACA,uDAGF,kBACE,gBACA,qDAGF,SACE,QACA,8FAGF,cAEE,mBACA,4CAGF,UACE,SACA,kDAEA,UACE,OACA,+DACA,8BAIJ,sXACE,uCAGF,gBAEE,kCAGF,cACE,iBACA,gDAGF,UACE,UACA,gEAGF,aACE,uDAGF,WACE,WACA,uDAGF,UACE,WACA,uDAGF,UACE,WACA,kDAGF,MACE,0CAGF,iBACE,yBACA,qDAGF,cACE,iBACA,qCAGF,kCACE,gBAEE,kBACA,2DAEA,gBACE,mBACA,uEAKF,gBAEE,kBACA,gFAKN,cAEE,gBACA,6CAKE,eACE,eACA,sDAIJ,aACE,kBACA,4DAKF,cACE,gBACA,8DAGF,gBACE,eACA,mCAIJ,aACE,kBACA,iBACA,kCAGF,WACE,mCAGF,WACE,oCAGF,cACE,gBACA,gFAGF,cACE,mBACA,+DAGF,SACE,QACA,kkEC7ZJ,kIACE,CADF,sIACE,qBACA,0D","file":"flavours/vanilla/common.css","sourcesContent":["html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,em,img,ins,kbd,q,s,samp,small,strike,strong,sub,sup,tt,var,b,u,i,center,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td,article,aside,canvas,details,embed,figure,figcaption,footer,header,hgroup,menu,nav,output,ruby,section,summary,time,mark,audio,video{margin:0;padding:0;border:0;font-size:100%;font:inherit;vertical-align:baseline}article,aside,details,figcaption,figure,footer,header,hgroup,menu,nav,section{display:block}body{line-height:1}ol,ul{list-style:none}blockquote,q{quotes:none}blockquote:before,blockquote:after,q:before,q:after{content:\"\";content:none}table{border-collapse:collapse;border-spacing:0}html{scrollbar-color:#192432 rgba(0,0,0,.1)}::-webkit-scrollbar{width:12px;height:12px}::-webkit-scrollbar-thumb{background:#192432;border:0px none #fff;border-radius:50px}::-webkit-scrollbar-thumb:hover{background:#1c2938}::-webkit-scrollbar-thumb:active{background:#192432}::-webkit-scrollbar-track{border:0px none #fff;border-radius:0;background:rgba(0,0,0,.1)}::-webkit-scrollbar-track:hover{background:#121a24}::-webkit-scrollbar-track:active{background:#121a24}::-webkit-scrollbar-corner{background:transparent}body{font-family:\"mastodon-font-sans-serif\",sans-serif;background:#06090c;font-size:13px;line-height:18px;font-weight:400;color:#fff;text-rendering:optimizelegibility;font-feature-settings:\"kern\";text-size-adjust:none;-webkit-tap-highlight-color:rgba(0,0,0,0);-webkit-tap-highlight-color:transparent}body.system-font{font-family:system-ui,-apple-system,BlinkMacSystemFont,\"Segoe UI\",\"Oxygen\",\"Ubuntu\",\"Cantarell\",\"Fira Sans\",\"Droid Sans\",\"Helvetica Neue\",\"mastodon-font-sans-serif\",sans-serif}body.app-body{padding:0}body.app-body.layout-single-column{height:auto;min-height:100vh;overflow-y:scroll}body.app-body.layout-multiple-columns{position:absolute;width:100%;height:100%}body.app-body.with-modals--active{overflow-y:hidden}body.lighter{background:#121a24}body.with-modals{overflow-x:hidden;overflow-y:scroll}body.with-modals--active{overflow-y:hidden}body.player{text-align:center}body.embed{background:#192432;margin:0;padding-bottom:0}body.embed .container{position:absolute;width:100%;height:100%;overflow:hidden}body.admin{background:#0b1016;padding:0}body.error{position:absolute;text-align:center;color:#9baec8;background:#121a24;width:100%;height:100%;padding:0;display:flex;justify-content:center;align-items:center}body.error .dialog{vertical-align:middle;margin:20px}body.error .dialog__illustration img{display:block;max-width:470px;width:100%;height:auto;margin-top:-120px}body.error .dialog h1{font-size:20px;line-height:28px;font-weight:400}button{font-family:inherit;cursor:pointer}button:focus{outline:none}.app-holder,.app-holder>div,.app-holder>noscript{display:flex;width:100%;align-items:center;justify-content:center;outline:0 !important}.app-holder>noscript{height:100vh}.layout-single-column .app-holder,.layout-single-column .app-holder>div{min-height:100vh}.layout-multiple-columns .app-holder,.layout-multiple-columns .app-holder>div{height:100%}.error-boundary,.app-holder noscript{flex-direction:column;font-size:16px;font-weight:400;line-height:1.7;color:#e25169;text-align:center}.error-boundary>div,.app-holder noscript>div{max-width:500px}.error-boundary p,.app-holder noscript p{margin-bottom:.85em}.error-boundary p:last-child,.app-holder noscript p:last-child{margin-bottom:0}.error-boundary a,.app-holder noscript a{color:#d8a070}.error-boundary a:hover,.error-boundary a:focus,.error-boundary a:active,.app-holder noscript a:hover,.app-holder noscript a:focus,.app-holder noscript a:active{text-decoration:none}.error-boundary__footer,.app-holder noscript__footer{color:#3e5a7c;font-size:13px}.error-boundary__footer a,.app-holder noscript__footer a{color:#3e5a7c}.error-boundary button,.app-holder noscript button{display:inline;border:0;background:transparent;color:#3e5a7c;font:inherit;padding:0;margin:0;line-height:inherit;cursor:pointer;outline:0;transition:color 300ms linear;text-decoration:underline}.error-boundary button:hover,.error-boundary button:focus,.error-boundary button:active,.app-holder noscript button:hover,.app-holder noscript button:focus,.app-holder noscript button:active{text-decoration:none}.error-boundary button.copied,.app-holder noscript button.copied{color:#79bd9a;transition:none}.container-alt{width:700px;margin:0 auto;margin-top:40px}@media screen and (max-width: 740px){.container-alt{width:100%;margin:0}}.logo-container{margin:100px auto 50px}@media screen and (max-width: 500px){.logo-container{margin:40px auto 0}}.logo-container h1{display:flex;justify-content:center;align-items:center}.logo-container h1 svg{fill:#fff;height:42px;margin-right:10px}.logo-container h1 a{display:flex;justify-content:center;align-items:center;color:#fff;text-decoration:none;outline:0;padding:12px 16px;line-height:32px;font-family:\"mastodon-font-display\",sans-serif;font-weight:500;font-size:14px}.compose-standalone .compose-form{width:400px;margin:0 auto;padding:20px 0;margin-top:40px;box-sizing:border-box}@media screen and (max-width: 400px){.compose-standalone .compose-form{width:100%;margin-top:0;padding:20px}}.account-header{width:400px;margin:0 auto;display:flex;font-size:13px;line-height:18px;box-sizing:border-box;padding:20px 0;padding-bottom:0;margin-bottom:-30px;margin-top:40px}@media screen and (max-width: 440px){.account-header{width:100%;margin:0;margin-bottom:10px;padding:20px;padding-bottom:0}}.account-header .avatar{width:40px;height:40px;margin-right:8px}.account-header .avatar img{width:100%;height:100%;display:block;margin:0;border-radius:4px}.account-header .name{flex:1 1 auto;color:#d9e1e8;width:calc(100% - 88px)}.account-header .name .username{display:block;font-weight:500;text-overflow:ellipsis;overflow:hidden}.account-header .logout-link{display:block;font-size:32px;line-height:40px;margin-left:8px}.grid-3{display:grid;grid-gap:10px;grid-template-columns:3fr 1fr;grid-auto-columns:25%;grid-auto-rows:max-content}.grid-3 .column-0{grid-column:1/3;grid-row:1}.grid-3 .column-1{grid-column:1;grid-row:2}.grid-3 .column-2{grid-column:2;grid-row:2}.grid-3 .column-3{grid-column:1/3;grid-row:3}@media screen and (max-width: 415px){.grid-3{grid-gap:0;grid-template-columns:minmax(0, 100%)}.grid-3 .column-0{grid-column:1}.grid-3 .column-1{grid-column:1;grid-row:3}.grid-3 .column-2{grid-column:1;grid-row:2}.grid-3 .column-3{grid-column:1;grid-row:4}}.grid-4{display:grid;grid-gap:10px;grid-template-columns:repeat(4, minmax(0, 1fr));grid-auto-columns:25%;grid-auto-rows:max-content}.grid-4 .column-0{grid-column:1/5;grid-row:1}.grid-4 .column-1{grid-column:1/4;grid-row:2}.grid-4 .column-2{grid-column:4;grid-row:2}.grid-4 .column-3{grid-column:2/5;grid-row:3}.grid-4 .column-4{grid-column:1;grid-row:3}.grid-4 .landing-page__call-to-action{min-height:100%}.grid-4 .flash-message{margin-bottom:10px}@media screen and (max-width: 738px){.grid-4{grid-template-columns:minmax(0, 50%) minmax(0, 50%)}.grid-4 .landing-page__call-to-action{padding:20px;display:flex;align-items:center;justify-content:center}.grid-4 .row__information-board{width:100%;justify-content:center;align-items:center}.grid-4 .row__mascot{display:none}}@media screen and (max-width: 415px){.grid-4{grid-gap:0;grid-template-columns:minmax(0, 100%)}.grid-4 .column-0{grid-column:1}.grid-4 .column-1{grid-column:1;grid-row:3}.grid-4 .column-2{grid-column:1;grid-row:2}.grid-4 .column-3{grid-column:1;grid-row:5}.grid-4 .column-4{grid-column:1;grid-row:4}}@media screen and (max-width: 415px){.public-layout{padding-top:48px}}.public-layout .container{max-width:960px}@media screen and (max-width: 415px){.public-layout .container{padding:0}}.public-layout .header{background:#202e3f;box-shadow:0 0 15px rgba(0,0,0,.2);border-radius:4px;height:48px;margin:10px 0;display:flex;align-items:stretch;justify-content:center;flex-wrap:nowrap;overflow:hidden}@media screen and (max-width: 415px){.public-layout .header{position:fixed;width:100%;top:0;left:0;margin:0;border-radius:0;box-shadow:none;z-index:110}}.public-layout .header>div{flex:1 1 33.3%;min-height:1px}.public-layout .header .nav-left{display:flex;align-items:stretch;justify-content:flex-start;flex-wrap:nowrap}.public-layout .header .nav-center{display:flex;align-items:stretch;justify-content:center;flex-wrap:nowrap}.public-layout .header .nav-right{display:flex;align-items:stretch;justify-content:flex-end;flex-wrap:nowrap}.public-layout .header .brand{display:block;padding:15px}.public-layout .header .brand svg{display:block;height:18px;width:auto;position:relative;bottom:-2px;fill:#fff}@media screen and (max-width: 415px){.public-layout .header .brand svg{height:20px}}.public-layout .header .brand:hover,.public-layout .header .brand:focus,.public-layout .header .brand:active{background:#26374d}.public-layout .header .nav-link{display:flex;align-items:center;padding:0 1rem;font-size:12px;font-weight:500;text-decoration:none;color:#9baec8;white-space:nowrap;text-align:center}.public-layout .header .nav-link:hover,.public-layout .header .nav-link:focus,.public-layout .header .nav-link:active{text-decoration:underline;color:#fff}@media screen and (max-width: 550px){.public-layout .header .nav-link.optional{display:none}}.public-layout .header .nav-button{background:#2d415a;margin:8px;margin-left:0;border-radius:4px}.public-layout .header .nav-button:hover,.public-layout .header .nav-button:focus,.public-layout .header .nav-button:active{text-decoration:none;background:#344b68}.public-layout .grid{display:grid;grid-gap:10px;grid-template-columns:minmax(300px, 3fr) minmax(298px, 1fr);grid-auto-columns:25%;grid-auto-rows:max-content}.public-layout .grid .column-0{grid-row:1;grid-column:1}.public-layout .grid .column-1{grid-row:1;grid-column:2}@media screen and (max-width: 600px){.public-layout .grid{grid-template-columns:100%;grid-gap:0}.public-layout .grid .column-1{display:none}}.public-layout .directory__card{border-radius:4px}@media screen and (max-width: 415px){.public-layout .directory__card{border-radius:0}}@media screen and (max-width: 415px){.public-layout .page-header{border-bottom:0}}.public-layout .public-account-header{overflow:hidden;margin-bottom:10px;box-shadow:0 0 15px rgba(0,0,0,.2)}.public-layout .public-account-header.inactive{opacity:.5}.public-layout .public-account-header.inactive .public-account-header__image,.public-layout .public-account-header.inactive .avatar{filter:grayscale(100%)}.public-layout .public-account-header.inactive .logo-button{background-color:#d9e1e8}.public-layout .public-account-header__image{border-radius:4px 4px 0 0;overflow:hidden;height:300px;position:relative;background:#000}.public-layout .public-account-header__image::after{content:\"\";display:block;position:absolute;width:100%;height:100%;box-shadow:inset 0 -1px 1px 1px rgba(0,0,0,.15);top:0;left:0}.public-layout .public-account-header__image img{object-fit:cover;display:block;width:100%;height:100%;margin:0;border-radius:4px 4px 0 0}@media screen and (max-width: 600px){.public-layout .public-account-header__image{height:200px}}.public-layout .public-account-header--no-bar{margin-bottom:0}.public-layout .public-account-header--no-bar .public-account-header__image,.public-layout .public-account-header--no-bar .public-account-header__image img{border-radius:4px}@media screen and (max-width: 415px){.public-layout .public-account-header--no-bar .public-account-header__image,.public-layout .public-account-header--no-bar .public-account-header__image img{border-radius:0}}@media screen and (max-width: 415px){.public-layout .public-account-header{margin-bottom:0;box-shadow:none}.public-layout .public-account-header__image::after{display:none}.public-layout .public-account-header__image,.public-layout .public-account-header__image img{border-radius:0}}.public-layout .public-account-header__bar{position:relative;margin-top:-80px;display:flex;justify-content:flex-start}.public-layout .public-account-header__bar::before{content:\"\";display:block;background:#192432;position:absolute;bottom:0;left:0;right:0;height:60px;border-radius:0 0 4px 4px;z-index:-1}.public-layout .public-account-header__bar .avatar{display:block;width:120px;height:120px;padding-left:16px;flex:0 0 auto}.public-layout .public-account-header__bar .avatar img{display:block;width:100%;height:100%;margin:0;border-radius:50%;border:4px solid #192432;background:#040609}@media screen and (max-width: 600px){.public-layout .public-account-header__bar{margin-top:0;background:#192432;border-radius:0 0 4px 4px;padding:5px}.public-layout .public-account-header__bar::before{display:none}.public-layout .public-account-header__bar .avatar{width:48px;height:48px;padding:7px 0;padding-left:10px}.public-layout .public-account-header__bar .avatar img{border:0;border-radius:4px}}@media screen and (max-width: 600px)and (max-width: 360px){.public-layout .public-account-header__bar .avatar{display:none}}@media screen and (max-width: 415px){.public-layout .public-account-header__bar{border-radius:0}}@media screen and (max-width: 600px){.public-layout .public-account-header__bar{flex-wrap:wrap}}.public-layout .public-account-header__tabs{flex:1 1 auto;margin-left:20px}.public-layout .public-account-header__tabs__name{padding-top:20px;padding-bottom:8px}.public-layout .public-account-header__tabs__name h1{font-size:20px;line-height:27px;color:#fff;font-weight:500;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;text-shadow:1px 1px 1px #000}.public-layout .public-account-header__tabs__name h1 small{display:block;font-size:14px;color:#fff;font-weight:400;overflow:hidden;text-overflow:ellipsis}@media screen and (max-width: 600px){.public-layout .public-account-header__tabs{margin-left:15px;display:flex;justify-content:space-between;align-items:center}.public-layout .public-account-header__tabs__name{padding-top:0;padding-bottom:0}.public-layout .public-account-header__tabs__name h1{font-size:16px;line-height:24px;text-shadow:none}.public-layout .public-account-header__tabs__name h1 small{color:#9baec8}}.public-layout .public-account-header__tabs__tabs{display:flex;justify-content:flex-start;align-items:stretch;height:58px}.public-layout .public-account-header__tabs__tabs .details-counters{display:flex;flex-direction:row;min-width:300px}@media screen and (max-width: 600px){.public-layout .public-account-header__tabs__tabs .details-counters{display:none}}.public-layout .public-account-header__tabs__tabs .counter{min-width:33.3%;box-sizing:border-box;flex:0 0 auto;color:#9baec8;padding:10px;border-right:1px solid #192432;cursor:default;text-align:center;position:relative}.public-layout .public-account-header__tabs__tabs .counter a{display:block}.public-layout .public-account-header__tabs__tabs .counter:last-child{border-right:0}.public-layout .public-account-header__tabs__tabs .counter::after{display:block;content:\"\";position:absolute;bottom:0;left:0;width:100%;border-bottom:4px solid #9baec8;opacity:.5;transition:all 400ms ease}.public-layout .public-account-header__tabs__tabs .counter.active::after{border-bottom:4px solid #d8a070;opacity:1}.public-layout .public-account-header__tabs__tabs .counter.active.inactive::after{border-bottom-color:#d9e1e8}.public-layout .public-account-header__tabs__tabs .counter:hover::after{opacity:1;transition-duration:100ms}.public-layout .public-account-header__tabs__tabs .counter a{text-decoration:none;color:inherit}.public-layout .public-account-header__tabs__tabs .counter .counter-label{font-size:12px;display:block}.public-layout .public-account-header__tabs__tabs .counter .counter-number{font-weight:500;font-size:18px;margin-bottom:5px;color:#fff;font-family:\"mastodon-font-display\",sans-serif}.public-layout .public-account-header__tabs__tabs .spacer{flex:1 1 auto;height:1px}.public-layout .public-account-header__tabs__tabs__buttons{padding:7px 8px}.public-layout .public-account-header__extra{display:none;margin-top:4px}.public-layout .public-account-header__extra .public-account-bio{border-radius:0;box-shadow:none;background:transparent;margin:0 -5px}.public-layout .public-account-header__extra .public-account-bio .account__header__fields{border-top:1px solid #26374d}.public-layout .public-account-header__extra .public-account-bio .roles{display:none}.public-layout .public-account-header__extra__links{margin-top:-15px;font-size:14px;color:#9baec8}.public-layout .public-account-header__extra__links a{display:inline-block;color:#9baec8;text-decoration:none;padding:15px;font-weight:500}.public-layout .public-account-header__extra__links a strong{font-weight:700;color:#fff}@media screen and (max-width: 600px){.public-layout .public-account-header__extra{display:block;flex:100%}}.public-layout .account__section-headline{border-radius:4px 4px 0 0}@media screen and (max-width: 415px){.public-layout .account__section-headline{border-radius:0}}.public-layout .detailed-status__meta{margin-top:25px}.public-layout .public-account-bio{background:#202e3f;box-shadow:0 0 15px rgba(0,0,0,.2);border-radius:4px;overflow:hidden;margin-bottom:10px}@media screen and (max-width: 415px){.public-layout .public-account-bio{box-shadow:none;margin-bottom:0;border-radius:0}}.public-layout .public-account-bio .account__header__fields{margin:0;border-top:0}.public-layout .public-account-bio .account__header__fields a{color:#e1b590}.public-layout .public-account-bio .account__header__fields dl:first-child .verified{border-radius:0 4px 0 0}.public-layout .public-account-bio .account__header__fields .verified a{color:#79bd9a}.public-layout .public-account-bio .account__header__content{padding:20px;padding-bottom:0;color:#fff}.public-layout .public-account-bio__extra,.public-layout .public-account-bio .roles{padding:20px;font-size:14px;color:#9baec8}.public-layout .public-account-bio .roles{padding-bottom:0}.public-layout .directory__list{display:grid;grid-gap:10px;grid-template-columns:minmax(0, 50%) minmax(0, 50%)}@media screen and (max-width: 415px){.public-layout .directory__list{display:block}}.public-layout .directory__list .icon-button{font-size:18px}.public-layout .directory__card{margin-bottom:0}.public-layout .card-grid{display:flex;flex-wrap:wrap;min-width:100%;margin:0 -5px}.public-layout .card-grid>div{box-sizing:border-box;flex:1 0 auto;width:300px;padding:0 5px;margin-bottom:10px;max-width:33.333%}@media screen and (max-width: 900px){.public-layout .card-grid>div{max-width:50%}}@media screen and (max-width: 600px){.public-layout .card-grid>div{max-width:100%}}@media screen and (max-width: 415px){.public-layout .card-grid{margin:0;border-top:1px solid #202e3f}.public-layout .card-grid>div{width:100%;padding:0;margin-bottom:0;border-bottom:1px solid #202e3f}.public-layout .card-grid>div:last-child{border-bottom:0}.public-layout .card-grid>div .card__bar{background:#121a24}.public-layout .card-grid>div .card__bar:hover,.public-layout .card-grid>div .card__bar:active,.public-layout .card-grid>div .card__bar:focus{background:#192432}}.no-list{list-style:none}.no-list li{display:inline-block;margin:0 5px}.recovery-codes{list-style:none;margin:0 auto}.recovery-codes li{font-size:125%;line-height:1.5;letter-spacing:1px}.public-layout .footer{text-align:left;padding-top:20px;padding-bottom:60px;font-size:12px;color:#4c6d98}@media screen and (max-width: 415px){.public-layout .footer{padding-left:20px;padding-right:20px}}.public-layout .footer .grid{display:grid;grid-gap:10px;grid-template-columns:1fr 1fr 2fr 1fr 1fr}.public-layout .footer .grid .column-0{grid-column:1;grid-row:1;min-width:0}.public-layout .footer .grid .column-1{grid-column:2;grid-row:1;min-width:0}.public-layout .footer .grid .column-2{grid-column:3;grid-row:1;min-width:0;text-align:center}.public-layout .footer .grid .column-2 h4 a{color:#4c6d98}.public-layout .footer .grid .column-3{grid-column:4;grid-row:1;min-width:0}.public-layout .footer .grid .column-4{grid-column:5;grid-row:1;min-width:0}@media screen and (max-width: 690px){.public-layout .footer .grid{grid-template-columns:1fr 2fr 1fr}.public-layout .footer .grid .column-0,.public-layout .footer .grid .column-1{grid-column:1}.public-layout .footer .grid .column-1{grid-row:2}.public-layout .footer .grid .column-2{grid-column:2}.public-layout .footer .grid .column-3,.public-layout .footer .grid .column-4{grid-column:3}.public-layout .footer .grid .column-4{grid-row:2}}@media screen and (max-width: 600px){.public-layout .footer .grid .column-1{display:block}}@media screen and (max-width: 415px){.public-layout .footer .grid .column-0,.public-layout .footer .grid .column-1,.public-layout .footer .grid .column-3,.public-layout .footer .grid .column-4{display:none}}.public-layout .footer h4{text-transform:uppercase;font-weight:700;margin-bottom:8px;color:#9baec8}.public-layout .footer h4 a{color:inherit;text-decoration:none}.public-layout .footer ul a{text-decoration:none;color:#4c6d98}.public-layout .footer ul a:hover,.public-layout .footer ul a:active,.public-layout .footer ul a:focus{text-decoration:underline}.public-layout .footer .brand svg{display:block;height:36px;width:auto;margin:0 auto;fill:#4c6d98}.public-layout .footer .brand:hover svg,.public-layout .footer .brand:focus svg,.public-layout .footer .brand:active svg{fill:#5377a5}.compact-header h1{font-size:24px;line-height:28px;color:#9baec8;font-weight:500;margin-bottom:20px;padding:0 10px;word-wrap:break-word}@media screen and (max-width: 740px){.compact-header h1{text-align:center;padding:20px 10px 0}}.compact-header h1 a{color:inherit;text-decoration:none}.compact-header h1 small{font-weight:400;color:#d9e1e8}.compact-header h1 img{display:inline-block;margin-bottom:-5px;margin-right:15px;width:36px;height:36px}.hero-widget{margin-bottom:10px;box-shadow:0 0 15px rgba(0,0,0,.2)}.hero-widget__img{width:100%;position:relative;overflow:hidden;border-radius:4px 4px 0 0;background:#000}.hero-widget__img img{object-fit:cover;display:block;width:100%;height:100%;margin:0;border-radius:4px 4px 0 0}.hero-widget__text{background:#121a24;padding:20px;border-radius:0 0 4px 4px;font-size:15px;color:#9baec8;line-height:20px;word-wrap:break-word;font-weight:400}.hero-widget__text .emojione{width:20px;height:20px;margin:-3px 0 0}.hero-widget__text p{margin-bottom:20px}.hero-widget__text p:last-child{margin-bottom:0}.hero-widget__text em{display:inline;margin:0;padding:0;font-weight:700;background:transparent;font-family:inherit;font-size:inherit;line-height:inherit;color:#bcc9da}.hero-widget__text a{color:#d9e1e8;text-decoration:none}.hero-widget__text a:hover{text-decoration:underline}@media screen and (max-width: 415px){.hero-widget{display:none}}.endorsements-widget{margin-bottom:10px;padding-bottom:10px}.endorsements-widget h4{padding:10px;text-transform:uppercase;font-weight:700;font-size:13px;color:#9baec8}.endorsements-widget .account{padding:10px 0}.endorsements-widget .account:last-child{border-bottom:0}.endorsements-widget .account .account__display-name{display:flex;align-items:center}.endorsements-widget .account .account__avatar{width:44px;height:44px;background-size:44px 44px}.endorsements-widget .trends__item{padding:10px}.trends-widget h4{color:#9baec8}.box-widget{padding:20px;border-radius:4px;background:#121a24;box-shadow:0 0 15px rgba(0,0,0,.2)}.placeholder-widget{padding:16px;border-radius:4px;border:2px dashed #3e5a7c;text-align:center;color:#9baec8;margin-bottom:10px}.contact-widget{min-height:100%;font-size:15px;color:#9baec8;line-height:20px;word-wrap:break-word;font-weight:400;padding:0}.contact-widget h4{padding:10px;text-transform:uppercase;font-weight:700;font-size:13px;color:#9baec8}.contact-widget .account{border-bottom:0;padding:10px 0;padding-top:5px}.contact-widget>a{display:inline-block;padding:10px;padding-top:0;color:#9baec8;text-decoration:none;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.contact-widget>a:hover,.contact-widget>a:focus,.contact-widget>a:active{text-decoration:underline}.moved-account-widget{padding:15px;padding-bottom:20px;border-radius:4px;background:#121a24;box-shadow:0 0 15px rgba(0,0,0,.2);color:#d9e1e8;font-weight:400;margin-bottom:10px}.moved-account-widget strong,.moved-account-widget a{font-weight:500}.moved-account-widget strong:lang(ja),.moved-account-widget a:lang(ja){font-weight:700}.moved-account-widget strong:lang(ko),.moved-account-widget a:lang(ko){font-weight:700}.moved-account-widget strong:lang(zh-CN),.moved-account-widget a:lang(zh-CN){font-weight:700}.moved-account-widget strong:lang(zh-HK),.moved-account-widget a:lang(zh-HK){font-weight:700}.moved-account-widget strong:lang(zh-TW),.moved-account-widget a:lang(zh-TW){font-weight:700}.moved-account-widget a{color:inherit;text-decoration:underline}.moved-account-widget a.mention{text-decoration:none}.moved-account-widget a.mention span{text-decoration:none}.moved-account-widget a.mention:focus,.moved-account-widget a.mention:hover,.moved-account-widget a.mention:active{text-decoration:none}.moved-account-widget a.mention:focus span,.moved-account-widget a.mention:hover span,.moved-account-widget a.mention:active span{text-decoration:underline}.moved-account-widget__message{margin-bottom:15px}.moved-account-widget__message .fa{margin-right:5px;color:#9baec8}.moved-account-widget__card .detailed-status__display-avatar{position:relative;cursor:pointer}.moved-account-widget__card .detailed-status__display-name{margin-bottom:0;text-decoration:none}.moved-account-widget__card .detailed-status__display-name span{font-weight:400}.memoriam-widget{padding:20px;border-radius:4px;background:#000;box-shadow:0 0 15px rgba(0,0,0,.2);font-size:14px;color:#9baec8;margin-bottom:10px}.page-header{background:#202e3f;box-shadow:0 0 15px rgba(0,0,0,.2);border-radius:4px;padding:60px 15px;text-align:center;margin:10px 0}.page-header h1{color:#fff;font-size:36px;line-height:1.1;font-weight:700;margin-bottom:10px}.page-header p{font-size:15px;color:#9baec8}@media screen and (max-width: 415px){.page-header{margin-top:0;background:#192432}.page-header h1{font-size:24px}}.directory{background:#121a24;border-radius:4px;box-shadow:0 0 15px rgba(0,0,0,.2)}.directory__tag{box-sizing:border-box;margin-bottom:10px}.directory__tag>a,.directory__tag>div{display:flex;align-items:center;justify-content:space-between;background:#121a24;border-radius:4px;padding:15px;text-decoration:none;color:inherit;box-shadow:0 0 15px rgba(0,0,0,.2)}.directory__tag>a:hover,.directory__tag>a:active,.directory__tag>a:focus{background:#202e3f}.directory__tag.active>a{background:#d8a070;cursor:default}.directory__tag.disabled>div{opacity:.5;cursor:default}.directory__tag h4{flex:1 1 auto;font-size:18px;font-weight:700;color:#fff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.directory__tag h4 .fa{color:#9baec8}.directory__tag h4 small{display:block;font-weight:400;font-size:15px;margin-top:8px;color:#9baec8}.directory__tag.active h4,.directory__tag.active h4 .fa,.directory__tag.active h4 small,.directory__tag.active h4 .trends__item__current{color:#fff}.directory__tag .avatar-stack{flex:0 0 auto;width:120px}.directory__tag.active .avatar-stack .account__avatar{border-color:#d8a070}.directory__tag .trends__item__current{padding-right:0}.avatar-stack{display:flex;justify-content:flex-end}.avatar-stack .account__avatar{flex:0 0 auto;width:36px;height:36px;border-radius:50%;position:relative;margin-left:-10px;background:#040609;border:2px solid #121a24}.avatar-stack .account__avatar:nth-child(1){z-index:1}.avatar-stack .account__avatar:nth-child(2){z-index:2}.avatar-stack .account__avatar:nth-child(3){z-index:3}.accounts-table{width:100%}.accounts-table .account{padding:0;border:0}.accounts-table strong{font-weight:700}.accounts-table thead th{text-align:center;text-transform:uppercase;color:#9baec8;font-weight:700;padding:10px}.accounts-table thead th:first-child{text-align:left}.accounts-table tbody td{padding:15px 0;vertical-align:middle;border-bottom:1px solid #202e3f}.accounts-table tbody tr:last-child td{border-bottom:0}.accounts-table__count{width:120px;text-align:center;font-size:15px;font-weight:500;color:#fff}.accounts-table__count small{display:block;color:#9baec8;font-weight:400;font-size:14px}.accounts-table__comment{width:50%;vertical-align:initial !important}@media screen and (max-width: 415px){.accounts-table tbody td.optional{display:none}}@media screen and (max-width: 415px){.moved-account-widget,.memoriam-widget,.box-widget,.contact-widget,.landing-page__information.contact-widget,.directory,.page-header{margin-bottom:0;box-shadow:none;border-radius:0}}.statuses-grid{min-height:600px}@media screen and (max-width: 640px){.statuses-grid{width:100% !important}}.statuses-grid__item{width:313.3333333333px}@media screen and (max-width: 1255px){.statuses-grid__item{width:306.6666666667px}}@media screen and (max-width: 640px){.statuses-grid__item{width:100%}}@media screen and (max-width: 415px){.statuses-grid__item{width:100vw}}.statuses-grid .detailed-status{border-radius:4px}@media screen and (max-width: 415px){.statuses-grid .detailed-status{border-top:1px solid #2d415a}}.statuses-grid .detailed-status.compact .detailed-status__meta{margin-top:15px}.statuses-grid .detailed-status.compact .status__content{font-size:15px;line-height:20px}.statuses-grid .detailed-status.compact .status__content .emojione{width:20px;height:20px;margin:-3px 0 0}.statuses-grid .detailed-status.compact .status__content .status__content__spoiler-link{line-height:20px;margin:0}.statuses-grid .detailed-status.compact .media-gallery,.statuses-grid .detailed-status.compact .status-card,.statuses-grid .detailed-status.compact .video-player{margin-top:15px}.notice-widget{margin-bottom:10px;color:#9baec8}.notice-widget p{margin-bottom:10px}.notice-widget p:last-child{margin-bottom:0}.notice-widget a{font-size:14px;line-height:20px}.notice-widget a,.placeholder-widget a{text-decoration:none;font-weight:500;color:#d8a070}.notice-widget a:hover,.notice-widget a:focus,.notice-widget a:active,.placeholder-widget a:hover,.placeholder-widget a:focus,.placeholder-widget a:active{text-decoration:underline}.table-of-contents{background:#0b1016;min-height:100%;font-size:14px;border-radius:4px}.table-of-contents li a{display:block;font-weight:500;padding:15px;overflow:hidden;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-decoration:none;color:#fff;border-bottom:1px solid #192432}.table-of-contents li a:hover,.table-of-contents li a:focus,.table-of-contents li a:active{text-decoration:underline}.table-of-contents li:last-child a{border-bottom:0}.table-of-contents li ul{padding-left:20px;border-bottom:1px solid #192432}code{font-family:\"mastodon-font-monospace\",monospace;font-weight:400}.form-container{max-width:400px;padding:20px;margin:0 auto}.simple_form .input{margin-bottom:15px;overflow:hidden}.simple_form .input.hidden{margin:0}.simple_form .input.radio_buttons .radio{margin-bottom:15px}.simple_form .input.radio_buttons .radio:last-child{margin-bottom:0}.simple_form .input.radio_buttons .radio>label{position:relative;padding-left:28px}.simple_form .input.radio_buttons .radio>label input{position:absolute;top:-2px;left:0}.simple_form .input.boolean{position:relative;margin-bottom:0}.simple_form .input.boolean .label_input>label{font-family:inherit;font-size:14px;padding-top:5px;color:#fff;display:block;width:auto}.simple_form .input.boolean .label_input,.simple_form .input.boolean .hint{padding-left:28px}.simple_form .input.boolean .label_input__wrapper{position:static}.simple_form .input.boolean label.checkbox{position:absolute;top:2px;left:0}.simple_form .input.boolean label a{color:#d8a070;text-decoration:underline}.simple_form .input.boolean label a:hover,.simple_form .input.boolean label a:active,.simple_form .input.boolean label a:focus{text-decoration:none}.simple_form .input.boolean .recommended{position:absolute;margin:0 4px;margin-top:-2px}.simple_form .row{display:flex;margin:0 -5px}.simple_form .row .input{box-sizing:border-box;flex:1 1 auto;width:50%;padding:0 5px}.simple_form .hint{color:#9baec8}.simple_form .hint a{color:#d8a070}.simple_form .hint code{border-radius:3px;padding:.2em .4em;background:#000}.simple_form .hint li{list-style:disc;margin-left:18px}.simple_form ul.hint{margin-bottom:15px}.simple_form span.hint{display:block;font-size:12px;margin-top:4px}.simple_form p.hint{margin-bottom:15px;color:#9baec8}.simple_form p.hint.subtle-hint{text-align:center;font-size:12px;line-height:18px;margin-top:15px;margin-bottom:0}.simple_form .card{margin-bottom:15px}.simple_form strong{font-weight:500}.simple_form strong:lang(ja){font-weight:700}.simple_form strong:lang(ko){font-weight:700}.simple_form strong:lang(zh-CN){font-weight:700}.simple_form strong:lang(zh-HK){font-weight:700}.simple_form strong:lang(zh-TW){font-weight:700}.simple_form .input.with_floating_label .label_input{display:flex}.simple_form .input.with_floating_label .label_input>label{font-family:inherit;font-size:14px;color:#fff;font-weight:500;min-width:150px;flex:0 0 auto}.simple_form .input.with_floating_label .label_input input,.simple_form .input.with_floating_label .label_input select{flex:1 1 auto}.simple_form .input.with_floating_label.select .hint{margin-top:6px;margin-left:150px}.simple_form .input.with_label .label_input>label{font-family:inherit;font-size:14px;color:#fff;display:block;margin-bottom:8px;word-wrap:break-word;font-weight:500}.simple_form .input.with_label .hint{margin-top:6px}.simple_form .input.with_label ul{flex:390px}.simple_form .input.with_block_label{max-width:none}.simple_form .input.with_block_label>label{font-family:inherit;font-size:16px;color:#fff;display:block;font-weight:500;padding-top:5px}.simple_form .input.with_block_label .hint{margin-bottom:15px}.simple_form .input.with_block_label ul{columns:2}.simple_form .input.datetime .label_input select{display:inline-block;width:auto;flex:0}.simple_form .required abbr{text-decoration:none;color:#e87487}.simple_form .fields-group{margin-bottom:25px}.simple_form .fields-group .input:last-child{margin-bottom:0}.simple_form .fields-row{display:flex;margin:0 -10px;padding-top:5px;margin-bottom:25px}.simple_form .fields-row .input{max-width:none}.simple_form .fields-row__column{box-sizing:border-box;padding:0 10px;flex:1 1 auto;min-height:1px}.simple_form .fields-row__column-6{max-width:50%}.simple_form .fields-row__column .actions{margin-top:27px}.simple_form .fields-row .fields-group:last-child,.simple_form .fields-row .fields-row__column.fields-group{margin-bottom:0}@media screen and (max-width: 600px){.simple_form .fields-row{display:block;margin-bottom:0}.simple_form .fields-row__column{max-width:none}.simple_form .fields-row .fields-group:last-child,.simple_form .fields-row .fields-row__column.fields-group,.simple_form .fields-row .fields-row__column{margin-bottom:25px}}.simple_form .input.radio_buttons .radio label{margin-bottom:5px;font-family:inherit;font-size:14px;color:#fff;display:block;width:auto}.simple_form .check_boxes .checkbox label{font-family:inherit;font-size:14px;color:#fff;display:inline-block;width:auto;position:relative;padding-top:5px;padding-left:25px;flex:1 1 auto}.simple_form .check_boxes .checkbox input[type=checkbox]{position:absolute;left:0;top:5px;margin:0}.simple_form .input.static .label_input__wrapper{font-size:16px;padding:10px;border:1px solid #3e5a7c;border-radius:4px}.simple_form input[type=text],.simple_form input[type=number],.simple_form input[type=email],.simple_form input[type=password],.simple_form textarea{box-sizing:border-box;font-size:16px;color:#fff;display:block;width:100%;outline:0;font-family:inherit;resize:vertical;background:#010102;border:1px solid #000;border-radius:4px;padding:10px}.simple_form input[type=text]::placeholder,.simple_form input[type=number]::placeholder,.simple_form input[type=email]::placeholder,.simple_form input[type=password]::placeholder,.simple_form textarea::placeholder{color:#a8b9cf}.simple_form input[type=text]:invalid,.simple_form input[type=number]:invalid,.simple_form input[type=email]:invalid,.simple_form input[type=password]:invalid,.simple_form textarea:invalid{box-shadow:none}.simple_form input[type=text]:focus:invalid:not(:placeholder-shown),.simple_form input[type=number]:focus:invalid:not(:placeholder-shown),.simple_form input[type=email]:focus:invalid:not(:placeholder-shown),.simple_form input[type=password]:focus:invalid:not(:placeholder-shown),.simple_form textarea:focus:invalid:not(:placeholder-shown){border-color:#e87487}.simple_form input[type=text]:required:valid,.simple_form input[type=number]:required:valid,.simple_form input[type=email]:required:valid,.simple_form input[type=password]:required:valid,.simple_form textarea:required:valid{border-color:#79bd9a}.simple_form input[type=text]:hover,.simple_form input[type=number]:hover,.simple_form input[type=email]:hover,.simple_form input[type=password]:hover,.simple_form textarea:hover{border-color:#000}.simple_form input[type=text]:active,.simple_form input[type=text]:focus,.simple_form input[type=number]:active,.simple_form input[type=number]:focus,.simple_form input[type=email]:active,.simple_form input[type=email]:focus,.simple_form input[type=password]:active,.simple_form input[type=password]:focus,.simple_form textarea:active,.simple_form textarea:focus{border-color:#d8a070;background:#040609}.simple_form .input.field_with_errors label{color:#e87487}.simple_form .input.field_with_errors input[type=text],.simple_form .input.field_with_errors input[type=number],.simple_form .input.field_with_errors input[type=email],.simple_form .input.field_with_errors input[type=password],.simple_form .input.field_with_errors textarea,.simple_form .input.field_with_errors select{border-color:#e87487}.simple_form .input.field_with_errors .error{display:block;font-weight:500;color:#e87487;margin-top:4px}.simple_form .input.disabled{opacity:.5}.simple_form .actions{margin-top:30px;display:flex}.simple_form .actions.actions--top{margin-top:0;margin-bottom:30px}.simple_form button,.simple_form .button,.simple_form .block-button{display:block;width:100%;border:0;border-radius:4px;background:#d8a070;color:#fff;font-size:18px;line-height:inherit;height:auto;padding:10px;text-transform:uppercase;text-decoration:none;text-align:center;box-sizing:border-box;cursor:pointer;font-weight:500;outline:0;margin-bottom:10px;margin-right:10px}.simple_form button:last-child,.simple_form .button:last-child,.simple_form .block-button:last-child{margin-right:0}.simple_form button:hover,.simple_form .button:hover,.simple_form .block-button:hover{background-color:#ddad84}.simple_form button:active,.simple_form button:focus,.simple_form .button:active,.simple_form .button:focus,.simple_form .block-button:active,.simple_form .block-button:focus{background-color:#d3935c}.simple_form button:disabled:hover,.simple_form .button:disabled:hover,.simple_form .block-button:disabled:hover{background-color:#9baec8}.simple_form button.negative,.simple_form .button.negative,.simple_form .block-button.negative{background:#df405a}.simple_form button.negative:hover,.simple_form .button.negative:hover,.simple_form .block-button.negative:hover{background-color:#e3566d}.simple_form button.negative:active,.simple_form button.negative:focus,.simple_form .button.negative:active,.simple_form .button.negative:focus,.simple_form .block-button.negative:active,.simple_form .block-button.negative:focus{background-color:#db2a47}.simple_form select{appearance:none;box-sizing:border-box;font-size:16px;color:#fff;display:block;width:100%;outline:0;font-family:inherit;resize:vertical;background:#010102 url(\"data:image/svg+xml;utf8,\") no-repeat right 8px center/auto 16px;border:1px solid #000;border-radius:4px;padding-left:10px;padding-right:30px;height:41px}.simple_form h4{margin-bottom:15px !important}.simple_form .label_input__wrapper{position:relative}.simple_form .label_input__append{position:absolute;right:3px;top:1px;padding:10px;padding-bottom:9px;font-size:16px;color:#3e5a7c;font-family:inherit;pointer-events:none;cursor:default;max-width:140px;white-space:nowrap;overflow:hidden}.simple_form .label_input__append::after{content:\"\";display:block;position:absolute;top:0;right:0;bottom:1px;width:5px;background-image:linear-gradient(to right, rgba(1, 1, 2, 0), #010102)}.simple_form__overlay-area{position:relative}.simple_form__overlay-area__blurred form{filter:blur(2px)}.simple_form__overlay-area__overlay{position:absolute;top:0;left:0;width:100%;height:100%;display:flex;justify-content:center;align-items:center;background:rgba(18,26,36,.65);border-radius:4px;margin-left:-4px;margin-top:-4px;padding:4px}.simple_form__overlay-area__overlay__content{text-align:center}.simple_form__overlay-area__overlay__content.rich-formatting,.simple_form__overlay-area__overlay__content.rich-formatting p{color:#fff}.block-icon{display:block;margin:0 auto;margin-bottom:10px;font-size:24px}.flash-message{background:#202e3f;color:#9baec8;border-radius:4px;padding:15px 10px;margin-bottom:30px;text-align:center}.flash-message.notice{border:1px solid rgba(121,189,154,.5);background:rgba(121,189,154,.25);color:#79bd9a}.flash-message.alert{border:1px solid rgba(223,64,90,.5);background:rgba(223,64,90,.25);color:#df405a}.flash-message a{display:inline-block;color:#9baec8;text-decoration:none}.flash-message a:hover{color:#fff;text-decoration:underline}.flash-message p{margin-bottom:15px}.flash-message .oauth-code{outline:0;box-sizing:border-box;display:block;width:100%;border:0;padding:10px;font-family:\"mastodon-font-monospace\",monospace;background:#121a24;color:#fff;font-size:14px;margin:0}.flash-message .oauth-code::-moz-focus-inner{border:0}.flash-message .oauth-code::-moz-focus-inner,.flash-message .oauth-code:focus,.flash-message .oauth-code:active{outline:0 !important}.flash-message .oauth-code:focus{background:#192432}.flash-message strong{font-weight:500}.flash-message strong:lang(ja){font-weight:700}.flash-message strong:lang(ko){font-weight:700}.flash-message strong:lang(zh-CN){font-weight:700}.flash-message strong:lang(zh-HK){font-weight:700}.flash-message strong:lang(zh-TW){font-weight:700}@media screen and (max-width: 740px)and (min-width: 441px){.flash-message{margin-top:40px}}.form-footer{margin-top:30px;text-align:center}.form-footer a{color:#9baec8;text-decoration:none}.form-footer a:hover{text-decoration:underline}.quick-nav{list-style:none;margin-bottom:25px;font-size:14px}.quick-nav li{display:inline-block;margin-right:10px}.quick-nav a{color:#d8a070;text-transform:uppercase;text-decoration:none;font-weight:700}.quick-nav a:hover,.quick-nav a:focus,.quick-nav a:active{color:#e1b590}.oauth-prompt,.follow-prompt{margin-bottom:30px;color:#9baec8}.oauth-prompt h2,.follow-prompt h2{font-size:16px;margin-bottom:30px;text-align:center}.oauth-prompt strong,.follow-prompt strong{color:#d9e1e8;font-weight:500}.oauth-prompt strong:lang(ja),.follow-prompt strong:lang(ja){font-weight:700}.oauth-prompt strong:lang(ko),.follow-prompt strong:lang(ko){font-weight:700}.oauth-prompt strong:lang(zh-CN),.follow-prompt strong:lang(zh-CN){font-weight:700}.oauth-prompt strong:lang(zh-HK),.follow-prompt strong:lang(zh-HK){font-weight:700}.oauth-prompt strong:lang(zh-TW),.follow-prompt strong:lang(zh-TW){font-weight:700}@media screen and (max-width: 740px)and (min-width: 441px){.oauth-prompt,.follow-prompt{margin-top:40px}}.qr-wrapper{display:flex;flex-wrap:wrap;align-items:flex-start}.qr-code{flex:0 0 auto;background:#fff;padding:4px;margin:0 10px 20px 0;box-shadow:0 0 15px rgba(0,0,0,.2);display:inline-block}.qr-code svg{display:block;margin:0}.qr-alternative{margin-bottom:20px;color:#d9e1e8;flex:150px}.qr-alternative samp{display:block;font-size:14px}.table-form p{margin-bottom:15px}.table-form p strong{font-weight:500}.table-form p strong:lang(ja){font-weight:700}.table-form p strong:lang(ko){font-weight:700}.table-form p strong:lang(zh-CN){font-weight:700}.table-form p strong:lang(zh-HK){font-weight:700}.table-form p strong:lang(zh-TW){font-weight:700}.simple_form .warning,.table-form .warning{box-sizing:border-box;background:rgba(223,64,90,.5);color:#fff;text-shadow:1px 1px 0 rgba(0,0,0,.3);box-shadow:0 2px 6px rgba(0,0,0,.4);border-radius:4px;padding:10px;margin-bottom:15px}.simple_form .warning a,.table-form .warning a{color:#fff;text-decoration:underline}.simple_form .warning a:hover,.simple_form .warning a:focus,.simple_form .warning a:active,.table-form .warning a:hover,.table-form .warning a:focus,.table-form .warning a:active{text-decoration:none}.simple_form .warning strong,.table-form .warning strong{font-weight:600;display:block;margin-bottom:5px}.simple_form .warning strong:lang(ja),.table-form .warning strong:lang(ja){font-weight:700}.simple_form .warning strong:lang(ko),.table-form .warning strong:lang(ko){font-weight:700}.simple_form .warning strong:lang(zh-CN),.table-form .warning strong:lang(zh-CN){font-weight:700}.simple_form .warning strong:lang(zh-HK),.table-form .warning strong:lang(zh-HK){font-weight:700}.simple_form .warning strong:lang(zh-TW),.table-form .warning strong:lang(zh-TW){font-weight:700}.simple_form .warning strong .fa,.table-form .warning strong .fa{font-weight:400}.action-pagination{display:flex;flex-wrap:wrap;align-items:center}.action-pagination .actions,.action-pagination .pagination{flex:1 1 auto}.action-pagination .actions{padding:30px 0;padding-right:20px;flex:0 0 auto}.post-follow-actions{text-align:center;color:#9baec8}.post-follow-actions div{margin-bottom:4px}.alternative-login{margin-top:20px;margin-bottom:20px}.alternative-login h4{font-size:16px;color:#fff;text-align:center;margin-bottom:20px;border:0;padding:0}.alternative-login .button{display:block}.scope-danger{color:#ff5050}.form_admin_settings_site_short_description textarea,.form_admin_settings_site_description textarea,.form_admin_settings_site_extended_description textarea,.form_admin_settings_site_terms textarea,.form_admin_settings_custom_css textarea,.form_admin_settings_closed_registrations_message textarea{font-family:\"mastodon-font-monospace\",monospace}.input-copy{background:#010102;border:1px solid #000;border-radius:4px;display:flex;align-items:center;padding-right:4px;position:relative;top:1px;transition:border-color 300ms linear}.input-copy__wrapper{flex:1 1 auto}.input-copy input[type=text]{background:transparent;border:0;padding:10px;font-size:14px;font-family:\"mastodon-font-monospace\",monospace}.input-copy button{flex:0 0 auto;margin:4px;text-transform:none;font-weight:400;font-size:14px;padding:7px 18px;padding-bottom:6px;width:auto;transition:background 300ms linear}.input-copy.copied{border-color:#79bd9a;transition:none}.input-copy.copied button{background:#79bd9a;transition:none}.connection-prompt{margin-bottom:25px}.connection-prompt .fa-link{background-color:#0b1016;border-radius:100%;font-size:24px;padding:10px}.connection-prompt__column{align-items:center;display:flex;flex:1;flex-direction:column;flex-shrink:1;max-width:50%}.connection-prompt__column-sep{align-self:center;flex-grow:0;overflow:visible;position:relative;z-index:1}.connection-prompt__column p{word-break:break-word}.connection-prompt .account__avatar{margin-bottom:20px}.connection-prompt__connection{background-color:#202e3f;box-shadow:0 0 15px rgba(0,0,0,.2);border-radius:4px;padding:25px 10px;position:relative;text-align:center}.connection-prompt__connection::after{background-color:#0b1016;content:\"\";display:block;height:100%;left:50%;position:absolute;top:0;width:1px}.connection-prompt__row{align-items:flex-start;display:flex;flex-direction:row}.card>a{display:block;text-decoration:none;color:inherit;box-shadow:0 0 15px rgba(0,0,0,.2)}@media screen and (max-width: 415px){.card>a{box-shadow:none}}.card>a:hover .card__bar,.card>a:active .card__bar,.card>a:focus .card__bar{background:#202e3f}.card__img{height:130px;position:relative;background:#000;border-radius:4px 4px 0 0}.card__img img{display:block;width:100%;height:100%;margin:0;object-fit:cover;border-radius:4px 4px 0 0}@media screen and (max-width: 600px){.card__img{height:200px}}@media screen and (max-width: 415px){.card__img{display:none}}.card__bar{position:relative;padding:15px;display:flex;justify-content:flex-start;align-items:center;background:#192432;border-radius:0 0 4px 4px}@media screen and (max-width: 415px){.card__bar{border-radius:0}}.card__bar .avatar{flex:0 0 auto;width:48px;height:48px;padding-top:2px}.card__bar .avatar img{width:100%;height:100%;display:block;margin:0;border-radius:4px;background:#040609;object-fit:cover}.card__bar .display-name{margin-left:15px;text-align:left}.card__bar .display-name strong{font-size:15px;color:#fff;font-weight:500;overflow:hidden;text-overflow:ellipsis}.card__bar .display-name span{display:block;font-size:14px;color:#9baec8;font-weight:400;overflow:hidden;text-overflow:ellipsis}.pagination{padding:30px 0;text-align:center;overflow:hidden}.pagination a,.pagination .current,.pagination .newer,.pagination .older,.pagination .page,.pagination .gap{font-size:14px;color:#fff;font-weight:500;display:inline-block;padding:6px 10px;text-decoration:none}.pagination .current{background:#fff;border-radius:100px;color:#121a24;cursor:default;margin:0 10px}.pagination .gap{cursor:default}.pagination .older,.pagination .newer{text-transform:uppercase;color:#d9e1e8}.pagination .older{float:left;padding-left:0}.pagination .older .fa{display:inline-block;margin-right:5px}.pagination .newer{float:right;padding-right:0}.pagination .newer .fa{display:inline-block;margin-left:5px}.pagination .disabled{cursor:default;color:#233346}@media screen and (max-width: 700px){.pagination{padding:30px 20px}.pagination .page{display:none}.pagination .newer,.pagination .older{display:inline-block}}.nothing-here{background:#121a24;box-shadow:0 0 15px rgba(0,0,0,.2);color:#9baec8;font-size:14px;font-weight:500;text-align:center;display:flex;justify-content:center;align-items:center;cursor:default;border-radius:4px;padding:20px;min-height:30vh}.nothing-here--under-tabs{border-radius:0 0 4px 4px}.nothing-here--flexible{box-sizing:border-box;min-height:100%}.account-role,.simple_form .recommended{display:inline-block;padding:4px 6px;cursor:default;border-radius:3px;font-size:12px;line-height:12px;font-weight:500;color:#d9e1e8;background-color:rgba(217,225,232,.1);border:1px solid rgba(217,225,232,.5)}.account-role.moderator,.simple_form .recommended.moderator{color:#79bd9a;background-color:rgba(121,189,154,.1);border-color:rgba(121,189,154,.5)}.account-role.admin,.simple_form .recommended.admin{color:#e87487;background-color:rgba(232,116,135,.1);border-color:rgba(232,116,135,.5)}.account__header__fields{max-width:100vw;padding:0;margin:15px -15px -15px;border:0 none;border-top:1px solid #26374d;border-bottom:1px solid #26374d;font-size:14px;line-height:20px}.account__header__fields dl{display:flex;border-bottom:1px solid #26374d}.account__header__fields dt,.account__header__fields dd{box-sizing:border-box;padding:14px;text-align:center;max-height:48px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.account__header__fields dt{font-weight:500;width:120px;flex:0 0 auto;color:#d9e1e8;background:rgba(4,6,9,.5)}.account__header__fields dd{flex:1 1 auto;color:#9baec8}.account__header__fields a{color:#d8a070;text-decoration:none}.account__header__fields a:hover,.account__header__fields a:focus,.account__header__fields a:active{text-decoration:underline}.account__header__fields .verified{border:1px solid rgba(121,189,154,.5);background:rgba(121,189,154,.25)}.account__header__fields .verified a{color:#79bd9a;font-weight:500}.account__header__fields .verified__mark{color:#79bd9a}.account__header__fields dl:last-child{border-bottom:0}.directory__tag .trends__item__current{width:auto}.pending-account__header{color:#9baec8}.pending-account__header a{color:#d9e1e8;text-decoration:none}.pending-account__header a:hover,.pending-account__header a:active,.pending-account__header a:focus{text-decoration:underline}.pending-account__header strong{color:#fff;font-weight:700}.pending-account__body{margin-top:10px}.activity-stream{box-shadow:0 0 15px rgba(0,0,0,.2);border-radius:4px;overflow:hidden;margin-bottom:10px}.activity-stream--under-tabs{border-radius:0 0 4px 4px}@media screen and (max-width: 415px){.activity-stream{margin-bottom:0;border-radius:0;box-shadow:none}}.activity-stream--headless{border-radius:0;margin:0;box-shadow:none}.activity-stream--headless .detailed-status,.activity-stream--headless .status{border-radius:0 !important}.activity-stream div[data-component]{width:100%}.activity-stream .entry{background:#121a24}.activity-stream .entry .detailed-status,.activity-stream .entry .status,.activity-stream .entry .load-more{animation:none}.activity-stream .entry:last-child .detailed-status,.activity-stream .entry:last-child .status,.activity-stream .entry:last-child .load-more{border-bottom:0;border-radius:0 0 4px 4px}.activity-stream .entry:first-child .detailed-status,.activity-stream .entry:first-child .status,.activity-stream .entry:first-child .load-more{border-radius:4px 4px 0 0}.activity-stream .entry:first-child:last-child .detailed-status,.activity-stream .entry:first-child:last-child .status,.activity-stream .entry:first-child:last-child .load-more{border-radius:4px}@media screen and (max-width: 740px){.activity-stream .entry .detailed-status,.activity-stream .entry .status,.activity-stream .entry .load-more{border-radius:0 !important}}.activity-stream--highlighted .entry{background:#202e3f}.button.logo-button{flex:0 auto;font-size:14px;background:#d8a070;color:#fff;text-transform:none;line-height:36px;height:auto;padding:3px 15px;border:0}.button.logo-button svg{width:20px;height:auto;vertical-align:middle;margin-right:5px;fill:#fff}.button.logo-button:active,.button.logo-button:focus,.button.logo-button:hover{background:#e3bb98}.button.logo-button:disabled:active,.button.logo-button:disabled:focus,.button.logo-button:disabled:hover,.button.logo-button.disabled:active,.button.logo-button.disabled:focus,.button.logo-button.disabled:hover{background:#9baec8}.button.logo-button.button--destructive:active,.button.logo-button.button--destructive:focus,.button.logo-button.button--destructive:hover{background:#df405a}@media screen and (max-width: 415px){.button.logo-button svg{display:none}}.embed .detailed-status,.public-layout .detailed-status{padding:15px}.embed .status,.public-layout .status{padding:15px 15px 15px 78px;min-height:50px}.embed .status__avatar,.public-layout .status__avatar{left:15px;top:17px}.embed .status__content,.public-layout .status__content{padding-top:5px}.embed .status__prepend,.public-layout .status__prepend{margin-left:78px;padding-top:15px}.embed .status__prepend-icon-wrapper,.public-layout .status__prepend-icon-wrapper{left:-32px}.embed .status .media-gallery,.embed .status__action-bar,.embed .status .video-player,.public-layout .status .media-gallery,.public-layout .status__action-bar,.public-layout .status .video-player{margin-top:10px}button.icon-button i.fa-retweet{background-image:url(\"data:image/svg+xml;utf8,\")}button.icon-button i.fa-retweet:hover{background-image:url(\"data:image/svg+xml;utf8,\")}button.icon-button.disabled i.fa-retweet{background-image:url(\"data:image/svg+xml;utf8,\")}.app-body{-webkit-overflow-scrolling:touch;-ms-overflow-style:-ms-autohiding-scrollbar}.animated-number{display:inline-flex;flex-direction:column;align-items:stretch;overflow:hidden;position:relative}.link-button{display:block;font-size:15px;line-height:20px;color:#d8a070;border:0;background:transparent;padding:0;cursor:pointer}.link-button:hover,.link-button:active{text-decoration:underline}.link-button:disabled{color:#9baec8;cursor:default}.button{background-color:#d8a070;border:10px none;border-radius:4px;box-sizing:border-box;color:#fff;cursor:pointer;display:inline-block;font-family:inherit;font-size:14px;font-weight:500;height:36px;letter-spacing:0;line-height:36px;overflow:hidden;padding:0 16px;position:relative;text-align:center;text-transform:uppercase;text-decoration:none;text-overflow:ellipsis;transition:all 100ms ease-in;white-space:nowrap;width:auto}.button:active,.button:focus,.button:hover{background-color:#e3bb98;transition:all 200ms ease-out}.button--destructive{transition:none}.button--destructive:active,.button--destructive:focus,.button--destructive:hover{background-color:#df405a;transition:none}.button:disabled,.button.disabled{background-color:#9baec8;cursor:default}.button::-moz-focus-inner{border:0}.button::-moz-focus-inner,.button:focus,.button:active{outline:0 !important}.button.button-primary,.button.button-alternative,.button.button-secondary,.button.button-alternative-2{font-size:16px;line-height:36px;height:auto;text-transform:none;padding:4px 16px}.button.button-alternative{color:#121a24;background:#9baec8}.button.button-alternative:active,.button.button-alternative:focus,.button.button-alternative:hover{background-color:#a8b9cf}.button.button-alternative-2{background:#3e5a7c}.button.button-alternative-2:active,.button.button-alternative-2:focus,.button.button-alternative-2:hover{background-color:#45648a}.button.button-secondary{color:#9baec8;background:transparent;padding:3px 15px;border:1px solid #9baec8}.button.button-secondary:active,.button.button-secondary:focus,.button.button-secondary:hover{border-color:#a8b9cf;color:#a8b9cf}.button.button-secondary:disabled{opacity:.5}.button.button--block{display:block;width:100%}.column__wrapper{display:flex;flex:1 1 auto;position:relative}.icon-button{display:inline-block;padding:0;color:#3e5a7c;border:0;border-radius:4px;background:transparent;cursor:pointer;transition:all 100ms ease-in;transition-property:background-color,color}.icon-button:hover,.icon-button:active,.icon-button:focus{color:#4a6b94;background-color:rgba(62,90,124,.15);transition:all 200ms ease-out;transition-property:background-color,color}.icon-button:focus{background-color:rgba(62,90,124,.3)}.icon-button.disabled{color:#283a50;background-color:transparent;cursor:default}.icon-button.active{color:#d8a070}.icon-button::-moz-focus-inner{border:0}.icon-button::-moz-focus-inner,.icon-button:focus,.icon-button:active{outline:0 !important}.icon-button.inverted{color:#3e5a7c}.icon-button.inverted:hover,.icon-button.inverted:active,.icon-button.inverted:focus{color:#324965;background-color:rgba(62,90,124,.15)}.icon-button.inverted:focus{background-color:rgba(62,90,124,.3)}.icon-button.inverted.disabled{color:#4a6b94;background-color:transparent}.icon-button.inverted.active{color:#d8a070}.icon-button.inverted.active.disabled{color:#e6c3a4}.icon-button.overlayed{box-sizing:content-box;background:rgba(0,0,0,.6);color:rgba(255,255,255,.7);border-radius:4px;padding:2px}.icon-button.overlayed:hover{background:rgba(0,0,0,.9)}.text-icon-button{color:#3e5a7c;border:0;border-radius:4px;background:transparent;cursor:pointer;font-weight:600;font-size:11px;padding:0 3px;line-height:27px;outline:0;transition:all 100ms ease-in;transition-property:background-color,color}.text-icon-button:hover,.text-icon-button:active,.text-icon-button:focus{color:#324965;background-color:rgba(62,90,124,.15);transition:all 200ms ease-out;transition-property:background-color,color}.text-icon-button:focus{background-color:rgba(62,90,124,.3)}.text-icon-button.disabled{color:#6b8cb5;background-color:transparent;cursor:default}.text-icon-button.active{color:#d8a070}.text-icon-button::-moz-focus-inner{border:0}.text-icon-button::-moz-focus-inner,.text-icon-button:focus,.text-icon-button:active{outline:0 !important}.dropdown-menu{position:absolute}.invisible{font-size:0;line-height:0;display:inline-block;width:0;height:0;position:absolute}.invisible img,.invisible svg{margin:0 !important;border:0 !important;padding:0 !important;width:0 !important;height:0 !important}.ellipsis::after{content:\"…\"}.compose-form{padding:10px}.compose-form__sensitive-button{padding:10px;padding-top:0;font-size:14px;font-weight:500}.compose-form__sensitive-button.active{color:#d8a070}.compose-form__sensitive-button input[type=checkbox]{display:none}.compose-form__sensitive-button .checkbox{display:inline-block;position:relative;border:1px solid #9baec8;box-sizing:border-box;width:18px;height:18px;flex:0 0 auto;margin-right:10px;top:-1px;border-radius:4px;vertical-align:middle}.compose-form__sensitive-button .checkbox.active{border-color:#d8a070;background:#d8a070}.compose-form .compose-form__warning{color:#121a24;margin-bottom:10px;background:#9baec8;box-shadow:0 2px 6px rgba(0,0,0,.3);padding:8px 10px;border-radius:4px;font-size:13px;font-weight:400}.compose-form .compose-form__warning strong{color:#121a24;font-weight:500}.compose-form .compose-form__warning strong:lang(ja){font-weight:700}.compose-form .compose-form__warning strong:lang(ko){font-weight:700}.compose-form .compose-form__warning strong:lang(zh-CN){font-weight:700}.compose-form .compose-form__warning strong:lang(zh-HK){font-weight:700}.compose-form .compose-form__warning strong:lang(zh-TW){font-weight:700}.compose-form .compose-form__warning a{color:#3e5a7c;font-weight:500;text-decoration:underline}.compose-form .compose-form__warning a:hover,.compose-form .compose-form__warning a:active,.compose-form .compose-form__warning a:focus{text-decoration:none}.compose-form .emoji-picker-dropdown{position:absolute;top:0;right:0}.compose-form .compose-form__autosuggest-wrapper{position:relative}.compose-form .autosuggest-textarea,.compose-form .autosuggest-input,.compose-form .spoiler-input{position:relative;width:100%}.compose-form .spoiler-input{height:0;transform-origin:bottom;opacity:0}.compose-form .spoiler-input.spoiler-input--visible{height:36px;margin-bottom:11px;opacity:1}.compose-form .autosuggest-textarea__textarea,.compose-form .spoiler-input__input{display:block;box-sizing:border-box;width:100%;margin:0;color:#121a24;background:#fff;padding:10px;font-family:inherit;font-size:14px;resize:vertical;border:0;outline:0}.compose-form .autosuggest-textarea__textarea::placeholder,.compose-form .spoiler-input__input::placeholder{color:#3e5a7c}.compose-form .autosuggest-textarea__textarea:focus,.compose-form .spoiler-input__input:focus{outline:0}@media screen and (max-width: 600px){.compose-form .autosuggest-textarea__textarea,.compose-form .spoiler-input__input{font-size:16px}}.compose-form .spoiler-input__input{border-radius:4px}.compose-form .autosuggest-textarea__textarea{min-height:100px;border-radius:4px 4px 0 0;padding-bottom:0;padding-right:32px;resize:none;scrollbar-color:initial}.compose-form .autosuggest-textarea__textarea::-webkit-scrollbar{all:unset}@media screen and (max-width: 600px){.compose-form .autosuggest-textarea__textarea{height:100px !important;resize:vertical}}.compose-form .autosuggest-textarea__suggestions-wrapper{position:relative;height:0}.compose-form .autosuggest-textarea__suggestions{box-sizing:border-box;display:none;position:absolute;top:100%;width:100%;z-index:99;box-shadow:4px 4px 6px rgba(0,0,0,.4);background:#d9e1e8;border-radius:0 0 4px 4px;color:#121a24;font-size:14px;padding:6px}.compose-form .autosuggest-textarea__suggestions.autosuggest-textarea__suggestions--visible{display:block}.compose-form .autosuggest-textarea__suggestions__item{padding:10px;cursor:pointer;border-radius:4px}.compose-form .autosuggest-textarea__suggestions__item:hover,.compose-form .autosuggest-textarea__suggestions__item:focus,.compose-form .autosuggest-textarea__suggestions__item:active,.compose-form .autosuggest-textarea__suggestions__item.selected{background:#b9c8d5}.compose-form .autosuggest-account,.compose-form .autosuggest-emoji,.compose-form .autosuggest-hashtag{display:flex;flex-direction:row;align-items:center;justify-content:flex-start;line-height:18px;font-size:14px}.compose-form .autosuggest-hashtag{justify-content:space-between}.compose-form .autosuggest-hashtag__name{flex:1 1 auto;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.compose-form .autosuggest-hashtag strong{font-weight:500}.compose-form .autosuggest-hashtag__uses{flex:0 0 auto;text-align:right;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.compose-form .autosuggest-account-icon,.compose-form .autosuggest-emoji img{display:block;margin-right:8px;width:16px;height:16px}.compose-form .autosuggest-account .display-name__account{color:#3e5a7c}.compose-form .compose-form__modifiers{color:#121a24;font-family:inherit;font-size:14px;background:#fff}.compose-form .compose-form__modifiers .compose-form__upload-wrapper{overflow:hidden}.compose-form .compose-form__modifiers .compose-form__uploads-wrapper{display:flex;flex-direction:row;padding:5px;flex-wrap:wrap}.compose-form .compose-form__modifiers .compose-form__upload{flex:1 1 0;min-width:40%;margin:5px}.compose-form .compose-form__modifiers .compose-form__upload__actions{background:linear-gradient(180deg, rgba(0, 0, 0, 0.8) 0, rgba(0, 0, 0, 0.35) 80%, transparent);display:flex;align-items:flex-start;justify-content:space-between;opacity:0;transition:opacity .1s ease}.compose-form .compose-form__modifiers .compose-form__upload__actions .icon-button{flex:0 1 auto;color:#d9e1e8;font-size:14px;font-weight:500;padding:10px;font-family:inherit}.compose-form .compose-form__modifiers .compose-form__upload__actions .icon-button:hover,.compose-form .compose-form__modifiers .compose-form__upload__actions .icon-button:focus,.compose-form .compose-form__modifiers .compose-form__upload__actions .icon-button:active{color:#eff3f5}.compose-form .compose-form__modifiers .compose-form__upload__actions.active{opacity:1}.compose-form .compose-form__modifiers .compose-form__upload-description{position:absolute;z-index:2;bottom:0;left:0;right:0;box-sizing:border-box;background:linear-gradient(0deg, rgba(0, 0, 0, 0.8) 0, rgba(0, 0, 0, 0.35) 80%, transparent);padding:10px;opacity:0;transition:opacity .1s ease}.compose-form .compose-form__modifiers .compose-form__upload-description textarea{background:transparent;color:#d9e1e8;border:0;padding:0;margin:0;width:100%;font-family:inherit;font-size:14px;font-weight:500}.compose-form .compose-form__modifiers .compose-form__upload-description textarea:focus{color:#fff}.compose-form .compose-form__modifiers .compose-form__upload-description textarea::placeholder{opacity:.75;color:#d9e1e8}.compose-form .compose-form__modifiers .compose-form__upload-description.active{opacity:1}.compose-form .compose-form__modifiers .compose-form__upload-thumbnail{border-radius:4px;background-color:#000;background-position:center;background-size:cover;background-repeat:no-repeat;height:140px;width:100%;overflow:hidden}.compose-form .compose-form__buttons-wrapper{padding:10px;background:#ebebeb;border-radius:0 0 4px 4px;display:flex;justify-content:space-between;flex:0 0 auto}.compose-form .compose-form__buttons-wrapper .compose-form__buttons{display:flex}.compose-form .compose-form__buttons-wrapper .compose-form__buttons .compose-form__upload-button-icon{line-height:27px}.compose-form .compose-form__buttons-wrapper .compose-form__buttons .compose-form__sensitive-button{display:none}.compose-form .compose-form__buttons-wrapper .compose-form__buttons .compose-form__sensitive-button.compose-form__sensitive-button--visible{display:block}.compose-form .compose-form__buttons-wrapper .compose-form__buttons .compose-form__sensitive-button .compose-form__sensitive-button__icon{line-height:27px}.compose-form .compose-form__buttons-wrapper .icon-button,.compose-form .compose-form__buttons-wrapper .text-icon-button{box-sizing:content-box;padding:0 3px}.compose-form .compose-form__buttons-wrapper .character-counter__wrapper{align-self:center;margin-right:4px}.compose-form .compose-form__publish{display:flex;justify-content:flex-end;min-width:0;flex:0 0 auto}.compose-form .compose-form__publish .compose-form__publish-button-wrapper{overflow:hidden;padding-top:10px}.character-counter{cursor:default;font-family:\"mastodon-font-sans-serif\",sans-serif;font-size:14px;font-weight:600;color:#3e5a7c}.character-counter.character-counter--over{color:#ff5050}.no-reduce-motion .spoiler-input{transition:height .4s ease,opacity .4s ease}.emojione{font-size:inherit;vertical-align:middle;object-fit:contain;margin:-0.2ex .15em .2ex;width:16px;height:16px}.emojione img{width:auto}.reply-indicator{border-radius:4px;margin-bottom:10px;background:#9baec8;padding:10px;min-height:23px;overflow-y:auto;flex:0 2 auto}.reply-indicator__header{margin-bottom:5px;overflow:hidden}.reply-indicator__cancel{float:right;line-height:24px}.reply-indicator__display-name{color:#121a24;display:block;max-width:100%;line-height:24px;overflow:hidden;padding-right:25px;text-decoration:none}.reply-indicator__display-avatar{float:left;margin-right:5px}.status__content--with-action{cursor:pointer}.status__content,.reply-indicator__content{position:relative;font-size:15px;line-height:20px;word-wrap:break-word;font-weight:400;overflow:hidden;text-overflow:ellipsis;padding-top:2px;color:#fff}.status__content:focus,.reply-indicator__content:focus{outline:0}.status__content.status__content--with-spoiler,.reply-indicator__content.status__content--with-spoiler{white-space:normal}.status__content.status__content--with-spoiler .status__content__text,.reply-indicator__content.status__content--with-spoiler .status__content__text{white-space:pre-wrap}.status__content .emojione,.reply-indicator__content .emojione{width:20px;height:20px;margin:-3px 0 0}.status__content img,.reply-indicator__content img{max-width:100%;max-height:400px;object-fit:contain}.status__content p,.reply-indicator__content p{margin-bottom:20px;white-space:pre-wrap}.status__content p:last-child,.reply-indicator__content p:last-child{margin-bottom:0}.status__content a,.reply-indicator__content a{color:#d8a070;text-decoration:none}.status__content a:hover,.reply-indicator__content a:hover{text-decoration:underline}.status__content a:hover .fa,.reply-indicator__content a:hover .fa{color:#4a6b94}.status__content a.mention:hover,.reply-indicator__content a.mention:hover{text-decoration:none}.status__content a.mention:hover span,.reply-indicator__content a.mention:hover span{text-decoration:underline}.status__content a .fa,.reply-indicator__content a .fa{color:#3e5a7c}.status__content a.unhandled-link,.reply-indicator__content a.unhandled-link{color:#e1b590}.status__content .status__content__spoiler-link,.reply-indicator__content .status__content__spoiler-link{background:#3e5a7c}.status__content .status__content__spoiler-link:hover,.reply-indicator__content .status__content__spoiler-link:hover{background:#4a6b94;text-decoration:none}.status__content .status__content__spoiler-link::-moz-focus-inner,.reply-indicator__content .status__content__spoiler-link::-moz-focus-inner{border:0}.status__content .status__content__spoiler-link::-moz-focus-inner,.status__content .status__content__spoiler-link:focus,.status__content .status__content__spoiler-link:active,.reply-indicator__content .status__content__spoiler-link::-moz-focus-inner,.reply-indicator__content .status__content__spoiler-link:focus,.reply-indicator__content .status__content__spoiler-link:active{outline:0 !important}.status__content .status__content__text,.reply-indicator__content .status__content__text{display:none}.status__content .status__content__text.status__content__text--visible,.reply-indicator__content .status__content__text.status__content__text--visible{display:block}.announcements__item__content{word-wrap:break-word;overflow-y:auto}.announcements__item__content .emojione{width:20px;height:20px;margin:-3px 0 0}.announcements__item__content p{margin-bottom:10px;white-space:pre-wrap}.announcements__item__content p:last-child{margin-bottom:0}.announcements__item__content a{color:#d9e1e8;text-decoration:none}.announcements__item__content a:hover{text-decoration:underline}.announcements__item__content a.mention:hover{text-decoration:none}.announcements__item__content a.mention:hover span{text-decoration:underline}.announcements__item__content a.unhandled-link{color:#e1b590}.status__content.status__content--collapsed{max-height:300px}.status__content__read-more-button{display:block;font-size:15px;line-height:20px;color:#e1b590;border:0;background:transparent;padding:0;padding-top:8px;text-decoration:none}.status__content__read-more-button:hover,.status__content__read-more-button:active{text-decoration:underline}.status__content__spoiler-link{display:inline-block;border-radius:2px;background:transparent;border:0;color:#121a24;font-weight:700;font-size:11px;padding:0 6px;text-transform:uppercase;line-height:20px;cursor:pointer;vertical-align:middle}.status__wrapper--filtered{color:#3e5a7c;border:0;font-size:inherit;text-align:center;line-height:inherit;margin:0;padding:15px;box-sizing:border-box;width:100%;clear:both;border-bottom:1px solid #202e3f}.status__prepend-icon-wrapper{left:-26px;position:absolute}.focusable:focus{outline:0;background:#192432}.focusable:focus .status.status-direct{background:#26374d}.focusable:focus .status.status-direct.muted{background:transparent}.focusable:focus .detailed-status,.focusable:focus .detailed-status__action-bar{background:#202e3f}.status{padding:8px 10px;padding-left:68px;position:relative;min-height:54px;border-bottom:1px solid #202e3f;cursor:default;opacity:1;animation:fade 150ms linear}@supports(-ms-overflow-style: -ms-autohiding-scrollbar){.status{padding-right:26px}}@keyframes fade{0%{opacity:0}100%{opacity:1}}.status .video-player,.status .audio-player{margin-top:8px}.status.status-direct:not(.read){background:#202e3f;border-bottom-color:#26374d}.status.light .status__relative-time{color:#9baec8}.status.light .status__display-name{color:#121a24}.status.light .display-name{color:#9baec8}.status.light .display-name strong{color:#121a24}.status.light .status__content{color:#121a24}.status.light .status__content a{color:#d8a070}.status.light .status__content a.status__content__spoiler-link{color:#fff;background:#9baec8}.status.light .status__content a.status__content__spoiler-link:hover{background:#b5c3d6}.notification-favourite .status.status-direct{background:transparent}.notification-favourite .status.status-direct .icon-button.disabled{color:#547aa9}.status__relative-time,.notification__relative_time{color:#3e5a7c;float:right;font-size:14px}.status__display-name{color:#3e5a7c}.status__info .status__display-name{display:block;max-width:100%;padding-right:25px}.status__info{font-size:15px}.status-check-box{border-bottom:1px solid #d9e1e8;display:flex}.status-check-box .status-check-box__status{margin:10px 0 10px 10px;flex:1;overflow:hidden}.status-check-box .status-check-box__status .media-gallery{max-width:250px}.status-check-box .status-check-box__status .status__content{padding:0;white-space:normal}.status-check-box .status-check-box__status .video-player,.status-check-box .status-check-box__status .audio-player{margin-top:8px;max-width:250px}.status-check-box .status-check-box__status .media-gallery__item-thumbnail{cursor:default}.status-check-box-toggle{align-items:center;display:flex;flex:0 0 auto;justify-content:center;padding:10px}.status__prepend{margin-left:68px;color:#3e5a7c;padding:8px 0;padding-bottom:2px;font-size:14px;position:relative}.status__prepend .status__display-name strong{color:#3e5a7c}.status__prepend>span{display:block;overflow:hidden;text-overflow:ellipsis}.status__action-bar{align-items:center;display:flex;margin-top:8px}.status__action-bar__counter{display:inline-flex;margin-right:11px;align-items:center}.status__action-bar__counter .status__action-bar-button{margin-right:4px}.status__action-bar__counter__label{display:inline-block;width:14px;font-size:12px;font-weight:500;color:#3e5a7c}.status__action-bar-button{margin-right:18px}.status__action-bar-dropdown{height:23.15px;width:23.15px}.detailed-status__action-bar-dropdown{flex:1 1 auto;display:flex;align-items:center;justify-content:center;position:relative}.detailed-status{background:#192432;padding:14px 10px}.detailed-status--flex{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-start}.detailed-status--flex .status__content,.detailed-status--flex .detailed-status__meta{flex:100%}.detailed-status .status__content{font-size:19px;line-height:24px}.detailed-status .status__content .emojione{width:24px;height:24px;margin:-1px 0 0}.detailed-status .status__content .status__content__spoiler-link{line-height:24px;margin:-1px 0 0}.detailed-status .video-player,.detailed-status .audio-player{margin-top:8px}.detailed-status__meta{margin-top:15px;color:#3e5a7c;font-size:14px;line-height:18px}.detailed-status__action-bar{background:#192432;border-top:1px solid #202e3f;border-bottom:1px solid #202e3f;display:flex;flex-direction:row;padding:10px 0}.detailed-status__link{color:inherit;text-decoration:none}.detailed-status__favorites,.detailed-status__reblogs{display:inline-block;font-weight:500;font-size:12px;margin-left:6px}.reply-indicator__content{color:#121a24;font-size:14px}.reply-indicator__content a{color:#3e5a7c}.domain{padding:10px;border-bottom:1px solid #202e3f}.domain .domain__domain-name{flex:1 1 auto;display:block;color:#fff;text-decoration:none;font-size:14px;font-weight:500}.domain__wrapper{display:flex}.domain_buttons{height:18px;padding:10px;white-space:nowrap}.account{padding:10px;border-bottom:1px solid #202e3f}.account.compact{padding:0;border-bottom:0}.account.compact .account__avatar-wrapper{margin-left:0}.account .account__display-name{flex:1 1 auto;display:block;color:#9baec8;overflow:hidden;text-decoration:none;font-size:14px}.account__wrapper{display:flex}.account__avatar-wrapper{float:left;margin-left:12px;margin-right:12px}.account__avatar{border-radius:4px;background:transparent no-repeat;background-position:50%;background-clip:padding-box;position:relative}.account__avatar-inline{display:inline-block;vertical-align:middle;margin-right:5px}.account__avatar-composite{border-radius:4px;background:transparent no-repeat;background-position:50%;background-clip:padding-box;border-radius:50%;overflow:hidden;position:relative}.account__avatar-composite>div{float:left;position:relative;box-sizing:border-box}.account__avatar-composite__label{display:block;position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);color:#fff;text-shadow:1px 1px 2px #000;font-weight:700;font-size:15px}a .account__avatar{cursor:pointer}.account__avatar-overlay{width:48px;height:48px;background-size:48px 48px}.account__avatar-overlay-base{border-radius:4px;background:transparent no-repeat;background-position:50%;background-clip:padding-box;width:36px;height:36px;background-size:36px 36px}.account__avatar-overlay-overlay{border-radius:4px;background:transparent no-repeat;background-position:50%;background-clip:padding-box;width:24px;height:24px;background-size:24px 24px;position:absolute;bottom:0;right:0;z-index:1}.account__relationship{height:18px;padding:10px;white-space:nowrap}.account__disclaimer{padding:10px;border-top:1px solid #202e3f;color:#3e5a7c}.account__disclaimer strong{font-weight:500}.account__disclaimer strong:lang(ja){font-weight:700}.account__disclaimer strong:lang(ko){font-weight:700}.account__disclaimer strong:lang(zh-CN){font-weight:700}.account__disclaimer strong:lang(zh-HK){font-weight:700}.account__disclaimer strong:lang(zh-TW){font-weight:700}.account__disclaimer a{font-weight:500;color:inherit;text-decoration:underline}.account__disclaimer a:hover,.account__disclaimer a:focus,.account__disclaimer a:active{text-decoration:none}.account__action-bar{border-top:1px solid #202e3f;border-bottom:1px solid #202e3f;line-height:36px;overflow:hidden;flex:0 0 auto;display:flex}.account__action-bar-dropdown{padding:10px}.account__action-bar-dropdown .icon-button{vertical-align:middle}.account__action-bar-dropdown .dropdown--active .dropdown__content.dropdown__right{left:6px;right:initial}.account__action-bar-dropdown .dropdown--active::after{bottom:initial;margin-left:11px;margin-top:-7px;right:initial}.account__action-bar-links{display:flex;flex:1 1 auto;line-height:18px;text-align:center}.account__action-bar__tab{text-decoration:none;overflow:hidden;flex:0 1 100%;border-right:1px solid #202e3f;padding:10px 0;border-bottom:4px solid transparent}.account__action-bar__tab.active{border-bottom:4px solid #d8a070}.account__action-bar__tab>span{display:block;text-transform:uppercase;font-size:11px;color:#9baec8}.account__action-bar__tab strong{display:block;font-size:15px;font-weight:500;color:#fff}.account__action-bar__tab strong:lang(ja){font-weight:700}.account__action-bar__tab strong:lang(ko){font-weight:700}.account__action-bar__tab strong:lang(zh-CN){font-weight:700}.account__action-bar__tab strong:lang(zh-HK){font-weight:700}.account__action-bar__tab strong:lang(zh-TW){font-weight:700}.account-authorize{padding:14px 10px}.account-authorize .detailed-status__display-name{display:block;margin-bottom:15px;overflow:hidden}.account-authorize__avatar{float:left;margin-right:10px}.status__display-name,.status__relative-time,.detailed-status__display-name,.detailed-status__datetime,.detailed-status__application,.account__display-name{text-decoration:none}.status__display-name strong,.account__display-name strong{color:#fff}.muted .emojione{opacity:.5}.status__display-name:hover strong,.reply-indicator__display-name:hover strong,.detailed-status__display-name:hover strong,a.account__display-name:hover strong{text-decoration:underline}.account__display-name strong{display:block;overflow:hidden;text-overflow:ellipsis}.detailed-status__application,.detailed-status__datetime{color:inherit}.detailed-status .button.logo-button{margin-bottom:15px}.detailed-status__display-name{color:#d9e1e8;display:block;line-height:24px;margin-bottom:15px;overflow:hidden}.detailed-status__display-name strong,.detailed-status__display-name span{display:block;text-overflow:ellipsis;overflow:hidden}.detailed-status__display-name strong{font-size:16px;color:#fff}.detailed-status__display-avatar{float:left;margin-right:10px}.status__avatar{height:48px;left:10px;position:absolute;top:10px;width:48px}.status__expand{width:68px;position:absolute;left:0;top:0;height:100%;cursor:pointer}.muted .status__content,.muted .status__content p,.muted .status__content a{color:#3e5a7c}.muted .status__display-name strong{color:#3e5a7c}.muted .status__avatar{opacity:.5}.muted a.status__content__spoiler-link{background:#3e5a7c;color:#121a24}.muted a.status__content__spoiler-link:hover{background:#4a6b94;text-decoration:none}.notification__message{margin:0 10px 0 68px;padding:8px 0 0;cursor:default;color:#9baec8;font-size:15px;line-height:22px;position:relative}.notification__message .fa{color:#d8a070}.notification__message>span{display:inline;overflow:hidden;text-overflow:ellipsis}.notification__favourite-icon-wrapper{left:-26px;position:absolute}.notification__favourite-icon-wrapper .star-icon{color:#ca8f04}.star-icon.active{color:#ca8f04}.bookmark-icon.active{color:#ff5050}.no-reduce-motion .icon-button.star-icon.activate>.fa-star{animation:spring-rotate-in 1s linear}.no-reduce-motion .icon-button.star-icon.deactivate>.fa-star{animation:spring-rotate-out 1s linear}.notification__display-name{color:inherit;font-weight:500;text-decoration:none}.notification__display-name:hover{color:#fff;text-decoration:underline}.notification__relative_time{float:right}.display-name{display:block;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.display-name__html{font-weight:500}.display-name__account{font-size:14px}.status__relative-time:hover,.detailed-status__datetime:hover{text-decoration:underline}.image-loader{position:relative;width:100%;height:100%;display:flex;align-items:center;justify-content:center;flex-direction:column}.image-loader .image-loader__preview-canvas{max-width:100%;max-height:80%;background:url(\"~images/void.png\") repeat;object-fit:contain}.image-loader .loading-bar{position:relative}.image-loader.image-loader--amorphous .image-loader__preview-canvas{display:none}.zoomable-image{position:relative;width:100%;height:100%;display:flex;align-items:center;justify-content:center}.zoomable-image img{max-width:100%;max-height:80%;width:auto;height:auto;object-fit:contain}.navigation-bar{padding:10px;display:flex;align-items:center;flex-shrink:0;cursor:default;color:#9baec8}.navigation-bar strong{color:#d9e1e8}.navigation-bar a{color:inherit}.navigation-bar .permalink{text-decoration:none}.navigation-bar .navigation-bar__actions{position:relative}.navigation-bar .navigation-bar__actions .icon-button.close{position:absolute;pointer-events:none;transform:scale(0, 1) translate(-100%, 0);opacity:0}.navigation-bar .navigation-bar__actions .compose__action-bar .icon-button{pointer-events:auto;transform:scale(1, 1) translate(0, 0);opacity:1}.navigation-bar__profile{flex:1 1 auto;margin-left:8px;line-height:20px;margin-top:-1px;overflow:hidden}.navigation-bar__profile-account{display:block;font-weight:500;overflow:hidden;text-overflow:ellipsis}.navigation-bar__profile-edit{color:inherit;text-decoration:none}.dropdown{display:inline-block}.dropdown__content{display:none;position:absolute}.dropdown-menu__separator{border-bottom:1px solid #c0cdd9;margin:5px 7px 6px;height:0}.dropdown-menu{background:#d9e1e8;padding:4px 0;border-radius:4px;box-shadow:2px 4px 15px rgba(0,0,0,.4);z-index:9999}.dropdown-menu ul{list-style:none}.dropdown-menu.left{transform-origin:100% 50%}.dropdown-menu.top{transform-origin:50% 100%}.dropdown-menu.bottom{transform-origin:50% 0}.dropdown-menu.right{transform-origin:0 50%}.dropdown-menu__arrow{position:absolute;width:0;height:0;border:0 solid transparent}.dropdown-menu__arrow.left{right:-5px;margin-top:-5px;border-width:5px 0 5px 5px;border-left-color:#d9e1e8}.dropdown-menu__arrow.top{bottom:-5px;margin-left:-7px;border-width:5px 7px 0;border-top-color:#d9e1e8}.dropdown-menu__arrow.bottom{top:-5px;margin-left:-7px;border-width:0 7px 5px;border-bottom-color:#d9e1e8}.dropdown-menu__arrow.right{left:-5px;margin-top:-5px;border-width:5px 5px 5px 0;border-right-color:#d9e1e8}.dropdown-menu__item a{font-size:13px;line-height:18px;display:block;padding:4px 14px;box-sizing:border-box;text-decoration:none;background:#d9e1e8;color:#121a24;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dropdown-menu__item a:focus,.dropdown-menu__item a:hover,.dropdown-menu__item a:active{background:#d8a070;color:#d9e1e8;outline:0}.dropdown--active .dropdown__content{display:block;line-height:18px;max-width:311px;right:0;text-align:left;z-index:9999}.dropdown--active .dropdown__content>ul{list-style:none;background:#d9e1e8;padding:4px 0;border-radius:4px;box-shadow:0 0 15px rgba(0,0,0,.4);min-width:140px;position:relative}.dropdown--active .dropdown__content.dropdown__right{right:0}.dropdown--active .dropdown__content.dropdown__left>ul{left:-98px}.dropdown--active .dropdown__content>ul>li>a{font-size:13px;line-height:18px;display:block;padding:4px 14px;box-sizing:border-box;text-decoration:none;background:#d9e1e8;color:#121a24;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dropdown--active .dropdown__content>ul>li>a:focus{outline:0}.dropdown--active .dropdown__content>ul>li>a:hover{background:#d8a070;color:#d9e1e8}.dropdown__icon{vertical-align:middle}.columns-area{display:flex;flex:1 1 auto;flex-direction:row;justify-content:flex-start;overflow-x:auto;position:relative}.columns-area.unscrollable{overflow-x:hidden}.columns-area__panels{display:flex;justify-content:center;width:100%;height:100%;min-height:100vh}.columns-area__panels__pane{height:100%;overflow:hidden;pointer-events:none;display:flex;justify-content:flex-end;min-width:285px}.columns-area__panels__pane--start{justify-content:flex-start}.columns-area__panels__pane__inner{position:fixed;width:285px;pointer-events:auto;height:100%}.columns-area__panels__main{box-sizing:border-box;width:100%;max-width:600px;flex:0 0 auto;display:flex;flex-direction:column}@media screen and (min-width: 415px){.columns-area__panels__main{padding:0 10px}}.tabs-bar__wrapper{background:#040609;position:sticky;top:0;z-index:2;padding-top:0}@media screen and (min-width: 415px){.tabs-bar__wrapper{padding-top:10px}}.tabs-bar__wrapper .tabs-bar{margin-bottom:0}@media screen and (min-width: 415px){.tabs-bar__wrapper .tabs-bar{margin-bottom:10px}}.react-swipeable-view-container,.react-swipeable-view-container .columns-area,.react-swipeable-view-container .drawer,.react-swipeable-view-container .column{height:100%}.react-swipeable-view-container>*{display:flex;align-items:center;justify-content:center;height:100%}.column{width:350px;position:relative;box-sizing:border-box;display:flex;flex-direction:column}.column>.scrollable{background:#121a24;border-bottom-left-radius:2px;border-bottom-right-radius:2px}.ui{flex:0 0 auto;display:flex;flex-direction:column;width:100%;height:100%}.drawer{width:330px;box-sizing:border-box;display:flex;flex-direction:column;overflow-y:hidden}.drawer__tab{display:block;flex:1 1 auto;padding:15px 5px 13px;color:#9baec8;text-decoration:none;text-align:center;font-size:16px;border-bottom:2px solid transparent}.column,.drawer{flex:1 1 auto;overflow:hidden}@media screen and (min-width: 631px){.columns-area{padding:0}.column,.drawer{flex:0 0 auto;padding:10px;padding-left:5px;padding-right:5px}.column:first-child,.drawer:first-child{padding-left:10px}.column:last-child,.drawer:last-child{padding-right:10px}.columns-area>div .column,.columns-area>div .drawer{padding-left:5px;padding-right:5px}}.tabs-bar{box-sizing:border-box;display:flex;background:#202e3f;flex:0 0 auto;overflow-y:auto}.tabs-bar__link{display:block;flex:1 1 auto;padding:15px 10px;padding-bottom:13px;color:#fff;text-decoration:none;text-align:center;font-size:14px;font-weight:500;border-bottom:2px solid #202e3f;transition:all 50ms linear;transition-property:border-bottom,background,color}.tabs-bar__link .fa{font-weight:400;font-size:16px}@media screen and (min-width: 631px){.tabs-bar__link:hover,.tabs-bar__link:focus,.tabs-bar__link:active{background:#2a3c54;border-bottom-color:#2a3c54}}.tabs-bar__link.active{border-bottom:2px solid #d8a070;color:#d8a070}.tabs-bar__link span{margin-left:5px;display:none}@media screen and (min-width: 600px){.tabs-bar__link span{display:inline}}.columns-area--mobile{flex-direction:column;width:100%;height:100%;margin:0 auto}.columns-area--mobile .column,.columns-area--mobile .drawer{width:100%;height:100%;padding:0}.columns-area--mobile .directory__list{display:grid;grid-gap:10px;grid-template-columns:minmax(0, 50%) minmax(0, 50%)}@media screen and (max-width: 415px){.columns-area--mobile .directory__list{display:block}}.columns-area--mobile .directory__card{margin-bottom:0}.columns-area--mobile .filter-form{display:flex}.columns-area--mobile .autosuggest-textarea__textarea{font-size:16px}.columns-area--mobile .search__input{line-height:18px;font-size:16px;padding:15px;padding-right:30px}.columns-area--mobile .search__icon .fa{top:15px}.columns-area--mobile .scrollable{overflow:visible}@supports(display: grid){.columns-area--mobile .scrollable{contain:content}}@media screen and (min-width: 415px){.columns-area--mobile{padding:10px 0;padding-top:0}}@media screen and (min-width: 630px){.columns-area--mobile .detailed-status{padding:15px}.columns-area--mobile .detailed-status .media-gallery,.columns-area--mobile .detailed-status .video-player,.columns-area--mobile .detailed-status .audio-player{margin-top:15px}.columns-area--mobile .account__header__bar{padding:5px 10px}.columns-area--mobile .navigation-bar,.columns-area--mobile .compose-form{padding:15px}.columns-area--mobile .compose-form .compose-form__publish .compose-form__publish-button-wrapper{padding-top:15px}.columns-area--mobile .status{padding:15px 15px 15px 78px;min-height:50px}.columns-area--mobile .status__avatar{left:15px;top:17px}.columns-area--mobile .status__content{padding-top:5px}.columns-area--mobile .status__prepend{margin-left:78px;padding-top:15px}.columns-area--mobile .status__prepend-icon-wrapper{left:-32px}.columns-area--mobile .status .media-gallery,.columns-area--mobile .status__action-bar,.columns-area--mobile .status .video-player,.columns-area--mobile .status .audio-player{margin-top:10px}.columns-area--mobile .account{padding:15px 10px}.columns-area--mobile .account__header__bio{margin:0 -10px}.columns-area--mobile .notification__message{margin-left:78px;padding-top:15px}.columns-area--mobile .notification__favourite-icon-wrapper{left:-32px}.columns-area--mobile .notification .status{padding-top:8px}.columns-area--mobile .notification .account{padding-top:8px}.columns-area--mobile .notification .account__avatar-wrapper{margin-left:17px;margin-right:15px}}.floating-action-button{position:fixed;display:flex;justify-content:center;align-items:center;width:3.9375rem;height:3.9375rem;bottom:1.3125rem;right:1.3125rem;background:#d59864;color:#fff;border-radius:50%;font-size:21px;line-height:21px;text-decoration:none;box-shadow:2px 3px 9px rgba(0,0,0,.4)}.floating-action-button:hover,.floating-action-button:focus,.floating-action-button:active{background:#e0b38c}@media screen and (min-width: 415px){.tabs-bar{width:100%}.react-swipeable-view-container .columns-area--mobile{height:calc(100% - 10px) !important}.getting-started__wrapper,.getting-started__trends,.search{margin-bottom:10px}.getting-started__panel{margin:10px 0}.column,.drawer{min-width:330px}}@media screen and (max-width: 895px){.columns-area__panels__pane--compositional{display:none}}@media screen and (min-width: 895px){.floating-action-button,.tabs-bar__link.optional{display:none}.search-page .search{display:none}}@media screen and (max-width: 1190px){.columns-area__panels__pane--navigational{display:none}}@media screen and (min-width: 1190px){.tabs-bar{display:none}}.icon-with-badge{position:relative}.icon-with-badge__badge{position:absolute;left:9px;top:-13px;background:#d8a070;border:2px solid #202e3f;padding:1px 6px;border-radius:6px;font-size:10px;font-weight:500;line-height:14px;color:#fff}.column-link--transparent .icon-with-badge__badge{border-color:#040609}.compose-panel{width:285px;margin-top:10px;display:flex;flex-direction:column;height:calc(100% - 10px);overflow-y:hidden}.compose-panel .navigation-bar{padding-top:20px;padding-bottom:20px;flex:0 1 48px;min-height:20px}.compose-panel .flex-spacer{background:transparent}.compose-panel .compose-form{flex:1;overflow-y:hidden;display:flex;flex-direction:column;min-height:310px;padding-bottom:71px;margin-bottom:-71px}.compose-panel .compose-form__autosuggest-wrapper{overflow-y:auto;background-color:#fff;border-radius:4px 4px 0 0;flex:0 1 auto}.compose-panel .autosuggest-textarea__textarea{overflow-y:hidden}.compose-panel .compose-form__upload-thumbnail{height:80px}.navigation-panel{margin-top:10px;margin-bottom:10px;height:calc(100% - 20px);overflow-y:auto;display:flex;flex-direction:column}.navigation-panel>a{flex:0 0 auto}.navigation-panel hr{flex:0 0 auto;border:0;background:transparent;border-top:1px solid #192432;margin:10px 0}.navigation-panel .flex-spacer{background:transparent}.drawer__pager{box-sizing:border-box;padding:0;flex-grow:1;position:relative;overflow:hidden;display:flex}.drawer__inner{position:absolute;top:0;left:0;background:#283a50;box-sizing:border-box;padding:0;display:flex;flex-direction:column;overflow:hidden;overflow-y:auto;width:100%;height:100%;border-radius:2px}.drawer__inner.darker{background:#121a24}.drawer__inner__mastodon{background:#283a50 url('data:image/svg+xml;utf8,') no-repeat bottom/100% auto;flex:1;min-height:47px;display:none}.drawer__inner__mastodon>img{display:block;object-fit:contain;object-position:bottom left;width:85%;height:100%;pointer-events:none;user-drag:none;user-select:none}@media screen and (min-height: 640px){.drawer__inner__mastodon{display:block}}.pseudo-drawer{background:#283a50;font-size:13px;text-align:left}.drawer__header{flex:0 0 auto;font-size:16px;background:#202e3f;margin-bottom:10px;display:flex;flex-direction:row;border-radius:2px}.drawer__header a{transition:background 100ms ease-in}.drawer__header a:hover{background:#17212e;transition:background 200ms ease-out}.scrollable{overflow-y:scroll;overflow-x:hidden;flex:1 1 auto;-webkit-overflow-scrolling:touch}.scrollable.optionally-scrollable{overflow-y:auto}@supports(display: grid){.scrollable{contain:strict}}.scrollable--flex{display:flex;flex-direction:column}.scrollable__append{flex:1 1 auto;position:relative;min-height:120px}@supports(display: grid){.scrollable.fullscreen{contain:none}}.column-back-button{box-sizing:border-box;width:100%;background:#192432;color:#d8a070;cursor:pointer;flex:0 0 auto;font-size:16px;line-height:inherit;border:0;text-align:unset;padding:15px;margin:0;z-index:3;outline:0}.column-back-button:hover{text-decoration:underline}.column-header__back-button{background:#192432;border:0;font-family:inherit;color:#d8a070;cursor:pointer;white-space:nowrap;font-size:16px;padding:0 5px 0 0;z-index:3}.column-header__back-button:hover{text-decoration:underline}.column-header__back-button:last-child{padding:0 15px 0 0}.column-back-button__icon{display:inline-block;margin-right:5px}.column-back-button--slim{position:relative}.column-back-button--slim-button{cursor:pointer;flex:0 0 auto;font-size:16px;padding:15px;position:absolute;right:0;top:-48px}.react-toggle{display:inline-block;position:relative;cursor:pointer;background-color:transparent;border:0;padding:0;user-select:none;-webkit-tap-highlight-color:rgba(0,0,0,0);-webkit-tap-highlight-color:transparent}.react-toggle-screenreader-only{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.react-toggle--disabled{cursor:not-allowed;opacity:.5;transition:opacity .25s}.react-toggle-track{width:50px;height:24px;padding:0;border-radius:30px;background-color:#121a24;transition:background-color .2s ease}.react-toggle:hover:not(.react-toggle--disabled) .react-toggle-track{background-color:#010102}.react-toggle--checked .react-toggle-track{background-color:#d8a070}.react-toggle--checked:hover:not(.react-toggle--disabled) .react-toggle-track{background-color:#e3bb98}.react-toggle-track-check{position:absolute;width:14px;height:10px;top:0;bottom:0;margin-top:auto;margin-bottom:auto;line-height:0;left:8px;opacity:0;transition:opacity .25s ease}.react-toggle--checked .react-toggle-track-check{opacity:1;transition:opacity .25s ease}.react-toggle-track-x{position:absolute;width:10px;height:10px;top:0;bottom:0;margin-top:auto;margin-bottom:auto;line-height:0;right:10px;opacity:1;transition:opacity .25s ease}.react-toggle--checked .react-toggle-track-x{opacity:0}.react-toggle-thumb{position:absolute;top:1px;left:1px;width:22px;height:22px;border:1px solid #121a24;border-radius:50%;background-color:#fafafa;box-sizing:border-box;transition:all .25s ease;transition-property:border-color,left}.react-toggle--checked .react-toggle-thumb{left:27px;border-color:#d8a070}.column-link{background:#202e3f;color:#fff;display:block;font-size:16px;padding:15px;text-decoration:none}.column-link:hover,.column-link:focus,.column-link:active{background:#253549}.column-link:focus{outline:0}.column-link--transparent{background:transparent;color:#d9e1e8}.column-link--transparent:hover,.column-link--transparent:focus,.column-link--transparent:active{background:transparent;color:#fff}.column-link--transparent.active{color:#d8a070}.column-link__icon{display:inline-block;margin-right:5px}.column-link__badge{display:inline-block;border-radius:4px;font-size:12px;line-height:19px;font-weight:500;background:#121a24;padding:4px 8px;margin:-6px 10px}.column-subheading{background:#121a24;color:#3e5a7c;padding:8px 20px;font-size:12px;font-weight:500;text-transform:uppercase;cursor:default}.getting-started__wrapper,.getting-started,.flex-spacer{background:#121a24}.flex-spacer{flex:1 1 auto}.getting-started{color:#3e5a7c;overflow:auto;border-bottom-left-radius:2px;border-bottom-right-radius:2px}.getting-started__wrapper,.getting-started__panel,.getting-started__footer{height:min-content}.getting-started__panel,.getting-started__footer{padding:10px;padding-top:20px;flex-grow:0}.getting-started__panel ul,.getting-started__footer ul{margin-bottom:10px}.getting-started__panel ul li,.getting-started__footer ul li{display:inline}.getting-started__panel p,.getting-started__footer p{font-size:13px}.getting-started__panel p a,.getting-started__footer p a{color:#3e5a7c;text-decoration:underline}.getting-started__panel a,.getting-started__footer a{text-decoration:none;color:#9baec8}.getting-started__panel a:hover,.getting-started__panel a:focus,.getting-started__panel a:active,.getting-started__footer a:hover,.getting-started__footer a:focus,.getting-started__footer a:active{text-decoration:underline}.getting-started__wrapper,.getting-started__footer{color:#3e5a7c}.getting-started__trends{flex:0 1 auto;opacity:1;animation:fade 150ms linear;margin-top:10px}.getting-started__trends h4{font-size:12px;text-transform:uppercase;color:#9baec8;padding:10px;font-weight:500;border-bottom:1px solid #202e3f}@media screen and (max-height: 810px){.getting-started__trends .trends__item:nth-child(3){display:none}}@media screen and (max-height: 720px){.getting-started__trends .trends__item:nth-child(2){display:none}}@media screen and (max-height: 670px){.getting-started__trends{display:none}}.getting-started__trends .trends__item{border-bottom:0;padding:10px}.getting-started__trends .trends__item__current{color:#9baec8}.keyboard-shortcuts{padding:8px 0 0;overflow:hidden}.keyboard-shortcuts thead{position:absolute;left:-9999px}.keyboard-shortcuts td{padding:0 10px 8px}.keyboard-shortcuts kbd{display:inline-block;padding:3px 5px;background-color:#202e3f;border:1px solid #0b1016}.setting-text{display:block;box-sizing:border-box;width:100%;margin:0;color:#121a24;background:#fff;padding:10px;font-family:inherit;font-size:14px;resize:vertical;border:0;outline:0;border-radius:4px}.setting-text:focus{outline:0}@media screen and (max-width: 600px){.setting-text{font-size:16px}}.no-reduce-motion button.icon-button i.fa-retweet{background-position:0 0;height:19px;transition:background-position .9s steps(10);transition-duration:0s;vertical-align:middle;width:22px}.no-reduce-motion button.icon-button i.fa-retweet::before{display:none !important}.no-reduce-motion button.icon-button.active i.fa-retweet{transition-duration:.9s;background-position:0 100%}.reduce-motion button.icon-button i.fa-retweet{color:#3e5a7c;transition:color 100ms ease-in}.reduce-motion button.icon-button.active i.fa-retweet{color:#d8a070}.status-card{display:flex;font-size:14px;border:1px solid #202e3f;border-radius:4px;color:#3e5a7c;margin-top:14px;text-decoration:none;overflow:hidden}.status-card__actions{bottom:0;left:0;position:absolute;right:0;top:0;display:flex;justify-content:center;align-items:center}.status-card__actions>div{background:rgba(0,0,0,.6);border-radius:8px;padding:12px 9px;flex:0 0 auto;display:flex;justify-content:center;align-items:center}.status-card__actions button,.status-card__actions a{display:inline;color:#d9e1e8;background:transparent;border:0;padding:0 8px;text-decoration:none;font-size:18px;line-height:18px}.status-card__actions button:hover,.status-card__actions button:active,.status-card__actions button:focus,.status-card__actions a:hover,.status-card__actions a:active,.status-card__actions a:focus{color:#fff}.status-card__actions a{font-size:19px;position:relative;bottom:-1px}a.status-card{cursor:pointer}a.status-card:hover{background:#202e3f}.status-card-photo{cursor:zoom-in;display:block;text-decoration:none;width:100%;height:auto;margin:0}.status-card-video iframe{width:100%;height:100%}.status-card__title{display:block;font-weight:500;margin-bottom:5px;color:#9baec8;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-decoration:none}.status-card__content{flex:1 1 auto;overflow:hidden;padding:14px 14px 14px 8px}.status-card__description{color:#9baec8}.status-card__host{display:block;margin-top:5px;font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.status-card__image{flex:0 0 100px;background:#202e3f;position:relative}.status-card__image>.fa{font-size:21px;position:absolute;transform-origin:50% 50%;top:50%;left:50%;transform:translate(-50%, -50%)}.status-card.horizontal{display:block}.status-card.horizontal .status-card__image{width:100%}.status-card.horizontal .status-card__image-image{border-radius:4px 4px 0 0}.status-card.horizontal .status-card__title{white-space:inherit}.status-card.compact{border-color:#192432}.status-card.compact.interactive{border:0}.status-card.compact .status-card__content{padding:8px;padding-top:10px}.status-card.compact .status-card__title{white-space:nowrap}.status-card.compact .status-card__image{flex:0 0 60px}a.status-card.compact:hover{background-color:#192432}.status-card__image-image{border-radius:4px 0 0 4px;display:block;margin:0;width:100%;height:100%;object-fit:cover;background-size:cover;background-position:center center}.load-more{display:block;color:#3e5a7c;background-color:transparent;border:0;font-size:inherit;text-align:center;line-height:inherit;margin:0;padding:15px;box-sizing:border-box;width:100%;clear:both;text-decoration:none}.load-more:hover{background:#151f2b}.load-gap{border-bottom:1px solid #202e3f}.regeneration-indicator{text-align:center;font-size:16px;font-weight:500;color:#3e5a7c;background:#121a24;cursor:default;display:flex;flex:1 1 auto;flex-direction:column;align-items:center;justify-content:center;padding:20px}.regeneration-indicator__figure,.regeneration-indicator__figure img{display:block;width:auto;height:160px;margin:0}.regeneration-indicator--without-header{padding-top:68px}.regeneration-indicator__label{margin-top:30px}.regeneration-indicator__label strong{display:block;margin-bottom:10px;color:#3e5a7c}.regeneration-indicator__label span{font-size:15px;font-weight:400}.column-header__wrapper{position:relative;flex:0 0 auto;z-index:1}.column-header__wrapper.active{box-shadow:0 1px 0 rgba(216,160,112,.3)}.column-header__wrapper.active::before{display:block;content:\"\";position:absolute;bottom:-13px;left:0;right:0;margin:0 auto;width:60%;pointer-events:none;height:28px;z-index:1;background:radial-gradient(ellipse, rgba(216, 160, 112, 0.23) 0%, rgba(216, 160, 112, 0) 60%)}.column-header__wrapper .announcements{z-index:1;position:relative}.column-header{display:flex;font-size:16px;background:#192432;flex:0 0 auto;cursor:pointer;position:relative;z-index:2;outline:0;overflow:hidden;border-top-left-radius:2px;border-top-right-radius:2px}.column-header>button{margin:0;border:0;padding:15px 0 15px 15px;color:inherit;background:transparent;font:inherit;text-align:left;text-overflow:ellipsis;overflow:hidden;white-space:nowrap;flex:1}.column-header>.column-header__back-button{color:#d8a070}.column-header.active .column-header__icon{color:#d8a070;text-shadow:0 0 10px rgba(216,160,112,.4)}.column-header:focus,.column-header:active{outline:0}.column-header__buttons{height:48px;display:flex}.column-header__links{margin-bottom:14px}.column-header__links .text-btn{margin-right:10px}.column-header__button{background:#192432;border:0;color:#9baec8;cursor:pointer;font-size:16px;padding:0 15px}.column-header__button:hover{color:#b2c1d5}.column-header__button.active{color:#fff;background:#202e3f}.column-header__button.active:hover{color:#fff;background:#202e3f}.column-header__collapsible{max-height:70vh;overflow:hidden;overflow-y:auto;color:#9baec8;transition:max-height 150ms ease-in-out,opacity 300ms linear;opacity:1;z-index:1;position:relative}.column-header__collapsible.collapsed{max-height:0;opacity:.5}.column-header__collapsible.animating{overflow-y:hidden}.column-header__collapsible hr{height:0;background:transparent;border:0;border-top:1px solid #26374d;margin:10px 0}.column-header__collapsible-inner{background:#202e3f;padding:15px}.column-header__setting-btn:hover{color:#9baec8;text-decoration:underline}.column-header__setting-arrows{float:right}.column-header__setting-arrows .column-header__setting-btn{padding:0 10px}.column-header__setting-arrows .column-header__setting-btn:last-child{padding-right:0}.text-btn{display:inline-block;padding:0;font-family:inherit;font-size:inherit;color:inherit;border:0;background:transparent;cursor:pointer}.column-header__icon{display:inline-block;margin-right:5px}.loading-indicator{color:#3e5a7c;font-size:12px;font-weight:400;text-transform:uppercase;overflow:visible;position:absolute;top:50%;left:50%;transform:translate(-50%, -50%)}.loading-indicator span{display:block;float:left;margin-left:50%;transform:translateX(-50%);margin:82px 0 0 50%;white-space:nowrap}.loading-indicator__figure{position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);width:42px;height:42px;box-sizing:border-box;background-color:transparent;border:0 solid #3e5a7c;border-width:6px;border-radius:50%}.no-reduce-motion .loading-indicator span{animation:loader-label 1.15s infinite cubic-bezier(0.215, 0.61, 0.355, 1)}.no-reduce-motion .loading-indicator__figure{animation:loader-figure 1.15s infinite cubic-bezier(0.215, 0.61, 0.355, 1)}@keyframes spring-rotate-in{0%{transform:rotate(0deg)}30%{transform:rotate(-484.8deg)}60%{transform:rotate(-316.7deg)}90%{transform:rotate(-375deg)}100%{transform:rotate(-360deg)}}@keyframes spring-rotate-out{0%{transform:rotate(-360deg)}30%{transform:rotate(124.8deg)}60%{transform:rotate(-43.27deg)}90%{transform:rotate(15deg)}100%{transform:rotate(0deg)}}@keyframes loader-figure{0%{width:0;height:0;background-color:#3e5a7c}29%{background-color:#3e5a7c}30%{width:42px;height:42px;background-color:transparent;border-width:21px;opacity:1}100%{width:42px;height:42px;border-width:0;opacity:0;background-color:transparent}}@keyframes loader-label{0%{opacity:.25}30%{opacity:1}100%{opacity:.25}}.video-error-cover{align-items:center;background:#000;color:#fff;cursor:pointer;display:flex;flex-direction:column;height:100%;justify-content:center;margin-top:8px;position:relative;text-align:center;z-index:100}.media-spoiler{background:#000;color:#9baec8;border:0;padding:0;width:100%;height:100%;border-radius:4px;appearance:none}.media-spoiler:hover,.media-spoiler:active,.media-spoiler:focus{padding:0;color:#b5c3d6}.media-spoiler__warning{display:block;font-size:14px}.media-spoiler__trigger{display:block;font-size:11px;font-weight:700}.spoiler-button{top:0;left:0;width:100%;height:100%;position:absolute;z-index:100}.spoiler-button--minified{display:block;left:4px;top:4px;width:auto;height:auto}.spoiler-button--click-thru{pointer-events:none}.spoiler-button--hidden{display:none}.spoiler-button__overlay{display:block;background:transparent;width:100%;height:100%;border:0}.spoiler-button__overlay__label{display:inline-block;background:rgba(0,0,0,.5);border-radius:8px;padding:8px 12px;color:#fff;font-weight:500;font-size:14px}.spoiler-button__overlay:hover .spoiler-button__overlay__label,.spoiler-button__overlay:focus .spoiler-button__overlay__label,.spoiler-button__overlay:active .spoiler-button__overlay__label{background:rgba(0,0,0,.8)}.spoiler-button__overlay:disabled .spoiler-button__overlay__label{background:rgba(0,0,0,.5)}.modal-container--preloader{background:#202e3f}.account--panel{background:#192432;border-top:1px solid #202e3f;border-bottom:1px solid #202e3f;display:flex;flex-direction:row;padding:10px 0}.account--panel__button,.detailed-status__button{flex:1 1 auto;text-align:center}.column-settings__outer{background:#202e3f;padding:15px}.column-settings__section{color:#9baec8;cursor:default;display:block;font-weight:500;margin-bottom:10px}.column-settings__hashtags .column-settings__row{margin-bottom:15px}.column-settings__hashtags .column-select__control{outline:0;box-sizing:border-box;width:100%;border:0;box-shadow:none;font-family:inherit;background:#121a24;color:#9baec8;font-size:14px;margin:0}.column-settings__hashtags .column-select__control::placeholder{color:#a8b9cf}.column-settings__hashtags .column-select__control::-moz-focus-inner{border:0}.column-settings__hashtags .column-select__control::-moz-focus-inner,.column-settings__hashtags .column-select__control:focus,.column-settings__hashtags .column-select__control:active{outline:0 !important}.column-settings__hashtags .column-select__control:focus{background:#192432}@media screen and (max-width: 600px){.column-settings__hashtags .column-select__control{font-size:16px}}.column-settings__hashtags .column-select__placeholder{color:#3e5a7c;padding-left:2px;font-size:12px}.column-settings__hashtags .column-select__value-container{padding-left:6px}.column-settings__hashtags .column-select__multi-value{background:#202e3f}.column-settings__hashtags .column-select__multi-value__remove{cursor:pointer}.column-settings__hashtags .column-select__multi-value__remove:hover,.column-settings__hashtags .column-select__multi-value__remove:active,.column-settings__hashtags .column-select__multi-value__remove:focus{background:#26374d;color:#a8b9cf}.column-settings__hashtags .column-select__multi-value__label,.column-settings__hashtags .column-select__input{color:#9baec8}.column-settings__hashtags .column-select__clear-indicator,.column-settings__hashtags .column-select__dropdown-indicator{cursor:pointer;transition:none;color:#3e5a7c}.column-settings__hashtags .column-select__clear-indicator:hover,.column-settings__hashtags .column-select__clear-indicator:active,.column-settings__hashtags .column-select__clear-indicator:focus,.column-settings__hashtags .column-select__dropdown-indicator:hover,.column-settings__hashtags .column-select__dropdown-indicator:active,.column-settings__hashtags .column-select__dropdown-indicator:focus{color:#45648a}.column-settings__hashtags .column-select__indicator-separator{background-color:#202e3f}.column-settings__hashtags .column-select__menu{background:#fff;border-radius:4px;padding:10px 14px;padding-bottom:14px;margin-top:10px;color:#9baec8;box-shadow:2px 4px 15px rgba(0,0,0,.4);padding:0;background:#d9e1e8}.column-settings__hashtags .column-select__menu h4{text-transform:uppercase;color:#9baec8;font-size:13px;font-weight:500;margin-bottom:10px}.column-settings__hashtags .column-select__menu li{padding:4px 0}.column-settings__hashtags .column-select__menu ul{margin-bottom:10px}.column-settings__hashtags .column-select__menu em{font-weight:500;color:#121a24}.column-settings__hashtags .column-select__menu-list{padding:6px}.column-settings__hashtags .column-select__option{color:#121a24;border-radius:4px;font-size:14px}.column-settings__hashtags .column-select__option--is-focused,.column-settings__hashtags .column-select__option--is-selected{background:#b9c8d5}.column-settings__row .text-btn{margin-bottom:15px}.relationship-tag{color:#fff;margin-bottom:4px;display:block;vertical-align:top;background-color:#000;text-transform:uppercase;font-size:11px;font-weight:500;padding:4px;border-radius:4px;opacity:.7}.relationship-tag:hover{opacity:1}.setting-toggle{display:block;line-height:24px}.setting-toggle__label{color:#9baec8;display:inline-block;margin-bottom:14px;margin-left:8px;vertical-align:middle}.empty-column-indicator,.error-column,.follow_requests-unlocked_explanation{color:#3e5a7c;background:#121a24;text-align:center;padding:20px;font-size:15px;font-weight:400;cursor:default;display:flex;flex:1 1 auto;align-items:center;justify-content:center}@supports(display: grid){.empty-column-indicator,.error-column,.follow_requests-unlocked_explanation{contain:strict}}.empty-column-indicator>span,.error-column>span,.follow_requests-unlocked_explanation>span{max-width:400px}.empty-column-indicator a,.error-column a,.follow_requests-unlocked_explanation a{color:#d8a070;text-decoration:none}.empty-column-indicator a:hover,.error-column a:hover,.follow_requests-unlocked_explanation a:hover{text-decoration:underline}.follow_requests-unlocked_explanation{background:#0b1016;contain:initial}.error-column{flex-direction:column}@keyframes heartbeat{from{transform:scale(1);animation-timing-function:ease-out}10%{transform:scale(0.91);animation-timing-function:ease-in}17%{transform:scale(0.98);animation-timing-function:ease-out}33%{transform:scale(0.87);animation-timing-function:ease-in}45%{transform:scale(1);animation-timing-function:ease-out}}.no-reduce-motion .pulse-loading{transform-origin:center center;animation:heartbeat 1.5s ease-in-out infinite both}@keyframes shake-bottom{0%,100%{transform:rotate(0deg);transform-origin:50% 100%}10%{transform:rotate(2deg)}20%,40%,60%{transform:rotate(-4deg)}30%,50%,70%{transform:rotate(4deg)}80%{transform:rotate(-2deg)}90%{transform:rotate(2deg)}}.no-reduce-motion .shake-bottom{transform-origin:50% 100%;animation:shake-bottom .8s cubic-bezier(0.455, 0.03, 0.515, 0.955) 2s 2 both}.emoji-picker-dropdown__menu{background:#fff;position:absolute;box-shadow:4px 4px 6px rgba(0,0,0,.4);border-radius:4px;margin-top:5px;z-index:2}.emoji-picker-dropdown__menu .emoji-mart-scroll{transition:opacity 200ms ease}.emoji-picker-dropdown__menu.selecting .emoji-mart-scroll{opacity:.5}.emoji-picker-dropdown__modifiers{position:absolute;top:60px;right:11px;cursor:pointer}.emoji-picker-dropdown__modifiers__menu{position:absolute;z-index:4;top:-4px;left:-8px;background:#fff;border-radius:4px;box-shadow:1px 2px 6px rgba(0,0,0,.2);overflow:hidden}.emoji-picker-dropdown__modifiers__menu button{display:block;cursor:pointer;border:0;padding:4px 8px;background:transparent}.emoji-picker-dropdown__modifiers__menu button:hover,.emoji-picker-dropdown__modifiers__menu button:focus,.emoji-picker-dropdown__modifiers__menu button:active{background:rgba(217,225,232,.4)}.emoji-picker-dropdown__modifiers__menu .emoji-mart-emoji{height:22px}.emoji-mart-emoji span{background-repeat:no-repeat}.upload-area{align-items:center;background:rgba(0,0,0,.8);display:flex;height:100%;justify-content:center;left:0;opacity:0;position:absolute;top:0;visibility:hidden;width:100%;z-index:2000}.upload-area *{pointer-events:none}.upload-area__drop{width:320px;height:160px;display:flex;box-sizing:border-box;position:relative;padding:8px}.upload-area__background{position:absolute;top:0;right:0;bottom:0;left:0;z-index:-1;border-radius:4px;background:#121a24;box-shadow:0 0 5px rgba(0,0,0,.2)}.upload-area__content{flex:1;display:flex;align-items:center;justify-content:center;color:#d9e1e8;font-size:18px;font-weight:500;border:2px dashed #3e5a7c;border-radius:4px}.upload-progress{padding:10px;color:#3e5a7c;overflow:hidden;display:flex}.upload-progress .fa{font-size:34px;margin-right:10px}.upload-progress span{font-size:12px;text-transform:uppercase;font-weight:500;display:block}.upload-progess__message{flex:1 1 auto}.upload-progress__backdrop{width:100%;height:6px;border-radius:6px;background:#3e5a7c;position:relative;margin-top:5px}.upload-progress__tracker{position:absolute;left:0;top:0;height:6px;background:#d8a070;border-radius:6px}.emoji-button{display:block;padding:5px 5px 2px 2px;outline:0;cursor:pointer}.emoji-button:active,.emoji-button:focus{outline:0 !important}.emoji-button img{filter:grayscale(100%);opacity:.8;display:block;margin:0;width:22px;height:22px}.emoji-button:hover img,.emoji-button:active img,.emoji-button:focus img{opacity:1;filter:none}.dropdown--active .emoji-button img{opacity:1;filter:none}.privacy-dropdown__dropdown{position:absolute;background:#fff;box-shadow:2px 4px 15px rgba(0,0,0,.4);border-radius:4px;margin-left:40px;overflow:hidden}.privacy-dropdown__dropdown.top{transform-origin:50% 100%}.privacy-dropdown__dropdown.bottom{transform-origin:50% 0}.privacy-dropdown__option{color:#121a24;padding:10px;cursor:pointer;display:flex}.privacy-dropdown__option:hover,.privacy-dropdown__option.active{background:#d8a070;color:#fff;outline:0}.privacy-dropdown__option:hover .privacy-dropdown__option__content,.privacy-dropdown__option.active .privacy-dropdown__option__content{color:#fff}.privacy-dropdown__option:hover .privacy-dropdown__option__content strong,.privacy-dropdown__option.active .privacy-dropdown__option__content strong{color:#fff}.privacy-dropdown__option.active:hover{background:#dcab80}.privacy-dropdown__option__icon{display:flex;align-items:center;justify-content:center;margin-right:10px}.privacy-dropdown__option__content{flex:1 1 auto;color:#3e5a7c}.privacy-dropdown__option__content strong{font-weight:500;display:block;color:#121a24}.privacy-dropdown__option__content strong:lang(ja){font-weight:700}.privacy-dropdown__option__content strong:lang(ko){font-weight:700}.privacy-dropdown__option__content strong:lang(zh-CN){font-weight:700}.privacy-dropdown__option__content strong:lang(zh-HK){font-weight:700}.privacy-dropdown__option__content strong:lang(zh-TW){font-weight:700}.privacy-dropdown.active .privacy-dropdown__value{background:#fff;border-radius:4px 4px 0 0;box-shadow:0 -4px 4px rgba(0,0,0,.1)}.privacy-dropdown.active .privacy-dropdown__value .icon-button{transition:none}.privacy-dropdown.active .privacy-dropdown__value.active{background:#d8a070}.privacy-dropdown.active .privacy-dropdown__value.active .icon-button{color:#fff}.privacy-dropdown.active.top .privacy-dropdown__value{border-radius:0 0 4px 4px}.privacy-dropdown.active .privacy-dropdown__dropdown{display:block;box-shadow:2px 4px 6px rgba(0,0,0,.1)}.search{position:relative}.search__input{outline:0;box-sizing:border-box;width:100%;border:0;box-shadow:none;font-family:inherit;background:#121a24;color:#9baec8;font-size:14px;margin:0;display:block;padding:15px;padding-right:30px;line-height:18px;font-size:16px}.search__input::placeholder{color:#a8b9cf}.search__input::-moz-focus-inner{border:0}.search__input::-moz-focus-inner,.search__input:focus,.search__input:active{outline:0 !important}.search__input:focus{background:#192432}@media screen and (max-width: 600px){.search__input{font-size:16px}}.search__icon::-moz-focus-inner{border:0}.search__icon::-moz-focus-inner,.search__icon:focus{outline:0 !important}.search__icon .fa{position:absolute;top:16px;right:10px;z-index:2;display:inline-block;opacity:0;transition:all 100ms linear;transition-property:transform,opacity;font-size:18px;width:18px;height:18px;color:#d9e1e8;cursor:default;pointer-events:none}.search__icon .fa.active{pointer-events:auto;opacity:.3}.search__icon .fa-search{transform:rotate(90deg)}.search__icon .fa-search.active{pointer-events:none;transform:rotate(0deg)}.search__icon .fa-times-circle{top:17px;transform:rotate(0deg);color:#3e5a7c;cursor:pointer}.search__icon .fa-times-circle.active{transform:rotate(90deg)}.search__icon .fa-times-circle:hover{color:#4a6b94}.search-results__header{color:#3e5a7c;background:#151f2b;padding:15px;font-weight:500;font-size:16px;cursor:default}.search-results__header .fa{display:inline-block;margin-right:5px}.search-results__section{margin-bottom:5px}.search-results__section h5{background:#0b1016;border-bottom:1px solid #202e3f;cursor:default;display:flex;padding:15px;font-weight:500;font-size:16px;color:#3e5a7c}.search-results__section h5 .fa{display:inline-block;margin-right:5px}.search-results__section .account:last-child,.search-results__section>div:last-child .status{border-bottom:0}.search-results__hashtag{display:block;padding:10px;color:#d9e1e8;text-decoration:none}.search-results__hashtag:hover,.search-results__hashtag:active,.search-results__hashtag:focus{color:#e6ebf0;text-decoration:underline}.search-results__info{padding:20px;color:#9baec8;text-align:center}.modal-root{position:relative;transition:opacity .3s linear;will-change:opacity;z-index:9999}.modal-root__overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.7)}.modal-root__container{position:fixed;top:0;left:0;width:100%;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;align-content:space-around;z-index:9999;pointer-events:none;user-select:none}.modal-root__modal{pointer-events:auto;display:flex;z-index:9999}.video-modal__container{max-width:100vw;max-height:100vh}.audio-modal__container{width:50vw}.media-modal{width:100%;height:100%;position:relative}.media-modal .extended-video-player{width:100%;height:100%;display:flex;align-items:center;justify-content:center}.media-modal .extended-video-player video{max-width:100%;max-height:80%}.media-modal__closer{position:absolute;top:0;left:0;right:0;bottom:0}.media-modal__navigation{position:absolute;top:0;left:0;right:0;bottom:0;pointer-events:none;transition:opacity .3s linear;will-change:opacity}.media-modal__navigation *{pointer-events:auto}.media-modal__navigation.media-modal__navigation--hidden{opacity:0}.media-modal__navigation.media-modal__navigation--hidden *{pointer-events:none}.media-modal__nav{background:rgba(0,0,0,.5);box-sizing:border-box;border:0;color:#fff;cursor:pointer;display:flex;align-items:center;font-size:24px;height:20vmax;margin:auto 0;padding:30px 15px;position:absolute;top:0;bottom:0}.media-modal__nav--left{left:0}.media-modal__nav--right{right:0}.media-modal__pagination{width:100%;text-align:center;position:absolute;left:0;bottom:20px;pointer-events:none}.media-modal__meta{text-align:center;position:absolute;left:0;bottom:20px;width:100%;pointer-events:none}.media-modal__meta--shifted{bottom:62px}.media-modal__meta a{pointer-events:auto;text-decoration:none;font-weight:500;color:#d9e1e8}.media-modal__meta a:hover,.media-modal__meta a:focus,.media-modal__meta a:active{text-decoration:underline}.media-modal__page-dot{display:inline-block}.media-modal__button{background-color:#fff;height:12px;width:12px;border-radius:6px;margin:10px;padding:0;border:0;font-size:0}.media-modal__button--active{background-color:#d8a070}.media-modal__close{position:absolute;right:8px;top:8px;z-index:100}.onboarding-modal,.error-modal,.embed-modal{background:#d9e1e8;color:#121a24;border-radius:8px;overflow:hidden;display:flex;flex-direction:column}.error-modal__body{height:80vh;width:80vw;max-width:520px;max-height:420px;position:relative}.error-modal__body>div{position:absolute;top:0;left:0;width:100%;height:100%;box-sizing:border-box;padding:25px;display:none;flex-direction:column;align-items:center;justify-content:center;display:flex;opacity:0;user-select:text}.error-modal__body{display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center}.onboarding-modal__paginator,.error-modal__footer{flex:0 0 auto;background:#c0cdd9;display:flex;padding:25px}.onboarding-modal__paginator>div,.error-modal__footer>div{min-width:33px}.onboarding-modal__paginator .onboarding-modal__nav,.onboarding-modal__paginator .error-modal__nav,.error-modal__footer .onboarding-modal__nav,.error-modal__footer .error-modal__nav{color:#3e5a7c;border:0;font-size:14px;font-weight:500;padding:10px 25px;line-height:inherit;height:auto;margin:-10px;border-radius:4px;background-color:transparent}.onboarding-modal__paginator .onboarding-modal__nav:hover,.onboarding-modal__paginator .onboarding-modal__nav:focus,.onboarding-modal__paginator .onboarding-modal__nav:active,.onboarding-modal__paginator .error-modal__nav:hover,.onboarding-modal__paginator .error-modal__nav:focus,.onboarding-modal__paginator .error-modal__nav:active,.error-modal__footer .onboarding-modal__nav:hover,.error-modal__footer .onboarding-modal__nav:focus,.error-modal__footer .onboarding-modal__nav:active,.error-modal__footer .error-modal__nav:hover,.error-modal__footer .error-modal__nav:focus,.error-modal__footer .error-modal__nav:active{color:#37506f;background-color:#a6b9c9}.onboarding-modal__paginator .onboarding-modal__nav.onboarding-modal__done,.onboarding-modal__paginator .onboarding-modal__nav.onboarding-modal__next,.onboarding-modal__paginator .error-modal__nav.onboarding-modal__done,.onboarding-modal__paginator .error-modal__nav.onboarding-modal__next,.error-modal__footer .onboarding-modal__nav.onboarding-modal__done,.error-modal__footer .onboarding-modal__nav.onboarding-modal__next,.error-modal__footer .error-modal__nav.onboarding-modal__done,.error-modal__footer .error-modal__nav.onboarding-modal__next{color:#121a24}.onboarding-modal__paginator .onboarding-modal__nav.onboarding-modal__done:hover,.onboarding-modal__paginator .onboarding-modal__nav.onboarding-modal__done:focus,.onboarding-modal__paginator .onboarding-modal__nav.onboarding-modal__done:active,.onboarding-modal__paginator .onboarding-modal__nav.onboarding-modal__next:hover,.onboarding-modal__paginator .onboarding-modal__nav.onboarding-modal__next:focus,.onboarding-modal__paginator .onboarding-modal__nav.onboarding-modal__next:active,.onboarding-modal__paginator .error-modal__nav.onboarding-modal__done:hover,.onboarding-modal__paginator .error-modal__nav.onboarding-modal__done:focus,.onboarding-modal__paginator .error-modal__nav.onboarding-modal__done:active,.onboarding-modal__paginator .error-modal__nav.onboarding-modal__next:hover,.onboarding-modal__paginator .error-modal__nav.onboarding-modal__next:focus,.onboarding-modal__paginator .error-modal__nav.onboarding-modal__next:active,.error-modal__footer .onboarding-modal__nav.onboarding-modal__done:hover,.error-modal__footer .onboarding-modal__nav.onboarding-modal__done:focus,.error-modal__footer .onboarding-modal__nav.onboarding-modal__done:active,.error-modal__footer .onboarding-modal__nav.onboarding-modal__next:hover,.error-modal__footer .onboarding-modal__nav.onboarding-modal__next:focus,.error-modal__footer .onboarding-modal__nav.onboarding-modal__next:active,.error-modal__footer .error-modal__nav.onboarding-modal__done:hover,.error-modal__footer .error-modal__nav.onboarding-modal__done:focus,.error-modal__footer .error-modal__nav.onboarding-modal__done:active,.error-modal__footer .error-modal__nav.onboarding-modal__next:hover,.error-modal__footer .error-modal__nav.onboarding-modal__next:focus,.error-modal__footer .error-modal__nav.onboarding-modal__next:active{color:#192432}.error-modal__footer{justify-content:center}.display-case{text-align:center;font-size:15px;margin-bottom:15px}.display-case__label{font-weight:500;color:#121a24;margin-bottom:5px;text-transform:uppercase;font-size:12px}.display-case__case{background:#121a24;color:#d9e1e8;font-weight:500;padding:10px;border-radius:4px}.onboard-sliders{display:inline-block;max-width:30px;max-height:auto;margin-left:10px}.boost-modal,.confirmation-modal,.report-modal,.actions-modal,.mute-modal,.block-modal{background:#f2f5f7;color:#121a24;border-radius:8px;overflow:hidden;max-width:90vw;width:480px;position:relative;flex-direction:column}.boost-modal .status__display-name,.confirmation-modal .status__display-name,.report-modal .status__display-name,.actions-modal .status__display-name,.mute-modal .status__display-name,.block-modal .status__display-name{display:block;max-width:100%;padding-right:25px}.boost-modal .status__avatar,.confirmation-modal .status__avatar,.report-modal .status__avatar,.actions-modal .status__avatar,.mute-modal .status__avatar,.block-modal .status__avatar{height:28px;left:10px;position:absolute;top:10px;width:48px}.boost-modal .status__content__spoiler-link,.confirmation-modal .status__content__spoiler-link,.report-modal .status__content__spoiler-link,.actions-modal .status__content__spoiler-link,.mute-modal .status__content__spoiler-link,.block-modal .status__content__spoiler-link{color:#f2f5f7}.actions-modal .status{background:#fff;border-bottom-color:#d9e1e8;padding-top:10px;padding-bottom:10px}.actions-modal .dropdown-menu__separator{border-bottom-color:#d9e1e8}.boost-modal__container{overflow-x:scroll;padding:10px}.boost-modal__container .status{user-select:text;border-bottom:0}.boost-modal__action-bar,.confirmation-modal__action-bar,.mute-modal__action-bar,.block-modal__action-bar{display:flex;justify-content:space-between;background:#d9e1e8;padding:10px;line-height:36px}.boost-modal__action-bar>div,.confirmation-modal__action-bar>div,.mute-modal__action-bar>div,.block-modal__action-bar>div{flex:1 1 auto;text-align:right;color:#3e5a7c;padding-right:10px}.boost-modal__action-bar .button,.confirmation-modal__action-bar .button,.mute-modal__action-bar .button,.block-modal__action-bar .button{flex:0 0 auto}.boost-modal__status-header{font-size:15px}.boost-modal__status-time{float:right;font-size:14px}.mute-modal,.block-modal{line-height:24px}.mute-modal .react-toggle,.block-modal .react-toggle{vertical-align:middle}.report-modal{width:90vw;max-width:700px}.report-modal__container{display:flex;border-top:1px solid #d9e1e8}@media screen and (max-width: 480px){.report-modal__container{flex-wrap:wrap;overflow-y:auto}}.report-modal__statuses,.report-modal__comment{box-sizing:border-box;width:50%}@media screen and (max-width: 480px){.report-modal__statuses,.report-modal__comment{width:100%}}.report-modal__statuses,.focal-point-modal__content{flex:1 1 auto;min-height:20vh;max-height:80vh;overflow-y:auto;overflow-x:hidden}.report-modal__statuses .status__content a,.focal-point-modal__content .status__content a{color:#d8a070}.report-modal__statuses .status__content,.report-modal__statuses .status__content p,.focal-point-modal__content .status__content,.focal-point-modal__content .status__content p{color:#121a24}@media screen and (max-width: 480px){.report-modal__statuses,.focal-point-modal__content{max-height:10vh}}@media screen and (max-width: 480px){.focal-point-modal__content{max-height:40vh}}.report-modal__comment{padding:20px;border-right:1px solid #d9e1e8;max-width:320px}.report-modal__comment p{font-size:14px;line-height:20px;margin-bottom:20px}.report-modal__comment .setting-text{display:block;box-sizing:border-box;width:100%;margin:0;color:#121a24;background:#fff;padding:10px;font-family:inherit;font-size:14px;resize:none;border:0;outline:0;border-radius:4px;border:1px solid #d9e1e8;min-height:100px;max-height:50vh;margin-bottom:10px}.report-modal__comment .setting-text:focus{border:1px solid #c0cdd9}.report-modal__comment .setting-text__wrapper{background:#fff;border:1px solid #d9e1e8;margin-bottom:10px;border-radius:4px}.report-modal__comment .setting-text__wrapper .setting-text{border:0;margin-bottom:0;border-radius:0}.report-modal__comment .setting-text__wrapper .setting-text:focus{border:0}.report-modal__comment .setting-text__wrapper__modifiers{color:#121a24;font-family:inherit;font-size:14px;background:#fff}.report-modal__comment .setting-text__toolbar{display:flex;justify-content:space-between;margin-bottom:20px}.report-modal__comment .setting-text-label{display:block;color:#121a24;font-size:14px;font-weight:500;margin-bottom:10px}.report-modal__comment .setting-toggle{margin-top:20px;margin-bottom:24px}.report-modal__comment .setting-toggle__label{color:#121a24;font-size:14px}@media screen and (max-width: 480px){.report-modal__comment{padding:10px;max-width:100%;order:2}.report-modal__comment .setting-toggle{margin-bottom:4px}}.actions-modal{max-height:80vh;max-width:80vw}.actions-modal .status{overflow-y:auto;max-height:300px}.actions-modal .actions-modal__item-label{font-weight:500}.actions-modal ul{overflow-y:auto;flex-shrink:0;max-height:80vh}.actions-modal ul.with-status{max-height:calc(80vh - 75px)}.actions-modal ul li:empty{margin:0}.actions-modal ul li:not(:empty) a{color:#121a24;display:flex;padding:12px 16px;font-size:15px;align-items:center;text-decoration:none}.actions-modal ul li:not(:empty) a,.actions-modal ul li:not(:empty) a button{transition:none}.actions-modal ul li:not(:empty) a.active,.actions-modal ul li:not(:empty) a.active button,.actions-modal ul li:not(:empty) a:hover,.actions-modal ul li:not(:empty) a:hover button,.actions-modal ul li:not(:empty) a:active,.actions-modal ul li:not(:empty) a:active button,.actions-modal ul li:not(:empty) a:focus,.actions-modal ul li:not(:empty) a:focus button{background:#d8a070;color:#fff}.actions-modal ul li:not(:empty) a button:first-child{margin-right:10px}.confirmation-modal__action-bar .confirmation-modal__secondary-button,.mute-modal__action-bar .confirmation-modal__secondary-button,.block-modal__action-bar .confirmation-modal__secondary-button{flex-shrink:1}.confirmation-modal__secondary-button,.confirmation-modal__cancel-button,.mute-modal__cancel-button,.block-modal__cancel-button{background-color:transparent;color:#3e5a7c;font-size:14px;font-weight:500}.confirmation-modal__secondary-button:hover,.confirmation-modal__secondary-button:focus,.confirmation-modal__secondary-button:active,.confirmation-modal__cancel-button:hover,.confirmation-modal__cancel-button:focus,.confirmation-modal__cancel-button:active,.mute-modal__cancel-button:hover,.mute-modal__cancel-button:focus,.mute-modal__cancel-button:active,.block-modal__cancel-button:hover,.block-modal__cancel-button:focus,.block-modal__cancel-button:active{color:#37506f;background-color:transparent}.confirmation-modal__container,.mute-modal__container,.block-modal__container,.report-modal__target{padding:30px;font-size:16px}.confirmation-modal__container strong,.mute-modal__container strong,.block-modal__container strong,.report-modal__target strong{font-weight:500}.confirmation-modal__container strong:lang(ja),.mute-modal__container strong:lang(ja),.block-modal__container strong:lang(ja),.report-modal__target strong:lang(ja){font-weight:700}.confirmation-modal__container strong:lang(ko),.mute-modal__container strong:lang(ko),.block-modal__container strong:lang(ko),.report-modal__target strong:lang(ko){font-weight:700}.confirmation-modal__container strong:lang(zh-CN),.mute-modal__container strong:lang(zh-CN),.block-modal__container strong:lang(zh-CN),.report-modal__target strong:lang(zh-CN){font-weight:700}.confirmation-modal__container strong:lang(zh-HK),.mute-modal__container strong:lang(zh-HK),.block-modal__container strong:lang(zh-HK),.report-modal__target strong:lang(zh-HK){font-weight:700}.confirmation-modal__container strong:lang(zh-TW),.mute-modal__container strong:lang(zh-TW),.block-modal__container strong:lang(zh-TW),.report-modal__target strong:lang(zh-TW){font-weight:700}.confirmation-modal__container,.report-modal__target{text-align:center}.block-modal__explanation,.mute-modal__explanation{margin-top:20px}.block-modal .setting-toggle,.mute-modal .setting-toggle{margin-top:20px;margin-bottom:24px;display:flex;align-items:center}.block-modal .setting-toggle__label,.mute-modal .setting-toggle__label{color:#121a24;margin:0;margin-left:8px}.report-modal__target{padding:15px}.report-modal__target .media-modal__close{top:14px;right:15px}.loading-bar{background-color:#d8a070;height:3px;position:absolute;top:0;left:0;z-index:9999}.media-gallery__gifv__label{display:block;position:absolute;color:#fff;background:rgba(0,0,0,.5);bottom:6px;left:6px;padding:2px 6px;border-radius:2px;font-size:11px;font-weight:600;z-index:1;pointer-events:none;opacity:.9;transition:opacity .1s ease;line-height:18px}.media-gallery__gifv:hover .media-gallery__gifv__label{opacity:1}.media-gallery__audio{margin-top:32px}.media-gallery__audio audio{width:100%}.attachment-list{display:flex;font-size:14px;border:1px solid #202e3f;border-radius:4px;margin-top:14px;overflow:hidden}.attachment-list__icon{flex:0 0 auto;color:#3e5a7c;padding:8px 18px;cursor:default;border-right:1px solid #202e3f;display:flex;flex-direction:column;align-items:center;justify-content:center;font-size:26px}.attachment-list__icon .fa{display:block}.attachment-list__list{list-style:none;padding:4px 0;padding-left:8px;display:flex;flex-direction:column;justify-content:center}.attachment-list__list li{display:block;padding:4px 0}.attachment-list__list a{text-decoration:none;color:#3e5a7c;font-weight:500}.attachment-list__list a:hover{text-decoration:underline}.attachment-list.compact{border:0;margin-top:4px}.attachment-list.compact .attachment-list__list{padding:0;display:block}.attachment-list.compact .fa{color:#3e5a7c}.media-gallery{box-sizing:border-box;margin-top:8px;overflow:hidden;border-radius:4px;position:relative;width:100%}.media-gallery__item{border:0;box-sizing:border-box;display:block;float:left;position:relative;border-radius:4px;overflow:hidden}.media-gallery__item.standalone .media-gallery__item-gifv-thumbnail{transform:none;top:0}.media-gallery__item-thumbnail{cursor:zoom-in;display:block;text-decoration:none;color:#d9e1e8;position:relative;z-index:1}.media-gallery__item-thumbnail,.media-gallery__item-thumbnail img{height:100%;width:100%}.media-gallery__item-thumbnail img{object-fit:cover}.media-gallery__preview{width:100%;height:100%;object-fit:cover;position:absolute;top:0;left:0;z-index:0;background:#000}.media-gallery__preview--hidden{display:none}.media-gallery__gifv{height:100%;overflow:hidden;position:relative;width:100%}.media-gallery__item-gifv-thumbnail{cursor:zoom-in;height:100%;object-fit:cover;position:relative;top:50%;transform:translateY(-50%);width:100%;z-index:1}.media-gallery__item-thumbnail-label{clip:rect(1px 1px 1px 1px);clip:rect(1px, 1px, 1px, 1px);overflow:hidden;position:absolute}.detailed .video-player__volume__current,.detailed .video-player__volume::before,.fullscreen .video-player__volume__current,.fullscreen .video-player__volume::before{bottom:27px}.detailed .video-player__volume__handle,.fullscreen .video-player__volume__handle{bottom:23px}.audio-player{box-sizing:border-box;position:relative;background:#040609;border-radius:4px;padding-bottom:44px;direction:ltr}.audio-player.editable{border-radius:0;height:100%}.audio-player__waveform{padding:15px 0;position:relative;overflow:hidden}.audio-player__waveform::before{content:\"\";display:block;position:absolute;border-top:1px solid #192432;width:100%;height:0;left:0;top:calc(50% + 1px)}.audio-player__progress-placeholder{background-color:rgba(225,181,144,.5)}.audio-player__wave-placeholder{background-color:#2d415a}.audio-player .video-player__controls{padding:0 15px;padding-top:10px;background:#040609;border-top:1px solid #192432;border-radius:0 0 4px 4px}.video-player{overflow:hidden;position:relative;background:#000;max-width:100%;border-radius:4px;box-sizing:border-box;direction:ltr}.video-player.editable{border-radius:0;height:100% !important}.video-player:focus{outline:0}.video-player video{max-width:100vw;max-height:80vh;z-index:1}.video-player.fullscreen{width:100% !important;height:100% !important;margin:0}.video-player.fullscreen video{max-width:100% !important;max-height:100% !important;width:100% !important;height:100% !important;outline:0}.video-player.inline video{object-fit:contain;position:relative;top:50%;transform:translateY(-50%)}.video-player__controls{position:absolute;z-index:2;bottom:0;left:0;right:0;box-sizing:border-box;background:linear-gradient(0deg, rgba(0, 0, 0, 0.85) 0, rgba(0, 0, 0, 0.45) 60%, transparent);padding:0 15px;opacity:0;transition:opacity .1s ease}.video-player__controls.active{opacity:1}.video-player.inactive video,.video-player.inactive .video-player__controls{visibility:hidden}.video-player__spoiler{display:none;position:absolute;top:0;left:0;width:100%;height:100%;z-index:4;border:0;background:#000;color:#9baec8;transition:none;pointer-events:none}.video-player__spoiler.active{display:block;pointer-events:auto}.video-player__spoiler.active:hover,.video-player__spoiler.active:active,.video-player__spoiler.active:focus{color:#b2c1d5}.video-player__spoiler__title{display:block;font-size:14px}.video-player__spoiler__subtitle{display:block;font-size:11px;font-weight:500}.video-player__buttons-bar{display:flex;justify-content:space-between;padding-bottom:10px}.video-player__buttons-bar .video-player__download__icon{color:inherit}.video-player__buttons{font-size:16px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.video-player__buttons.left button{padding-left:0}.video-player__buttons.right button{padding-right:0}.video-player__buttons button{background:transparent;padding:2px 10px;font-size:16px;border:0;color:rgba(255,255,255,.75)}.video-player__buttons button:active,.video-player__buttons button:hover,.video-player__buttons button:focus{color:#fff}.video-player__time-sep,.video-player__time-total,.video-player__time-current{font-size:14px;font-weight:500}.video-player__time-current{color:#fff;margin-left:60px}.video-player__time-sep{display:inline-block;margin:0 6px}.video-player__time-sep,.video-player__time-total{color:#fff}.video-player__volume{cursor:pointer;height:24px;display:inline}.video-player__volume::before{content:\"\";width:50px;background:rgba(255,255,255,.35);border-radius:4px;display:block;position:absolute;height:4px;left:70px;bottom:20px}.video-player__volume__current{display:block;position:absolute;height:4px;border-radius:4px;left:70px;bottom:20px;background:#e1b590}.video-player__volume__handle{position:absolute;z-index:3;border-radius:50%;width:12px;height:12px;bottom:16px;left:70px;transition:opacity .1s ease;background:#e1b590;box-shadow:1px 2px 6px rgba(0,0,0,.2);pointer-events:none}.video-player__link{padding:2px 10px}.video-player__link a{text-decoration:none;font-size:14px;font-weight:500;color:#fff}.video-player__link a:hover,.video-player__link a:active,.video-player__link a:focus{text-decoration:underline}.video-player__seek{cursor:pointer;height:24px;position:relative}.video-player__seek::before{content:\"\";width:100%;background:rgba(255,255,255,.35);border-radius:4px;display:block;position:absolute;height:4px;top:10px}.video-player__seek__progress,.video-player__seek__buffer{display:block;position:absolute;height:4px;border-radius:4px;top:10px;background:#e1b590}.video-player__seek__buffer{background:rgba(255,255,255,.2)}.video-player__seek__handle{position:absolute;z-index:3;opacity:0;border-radius:50%;width:12px;height:12px;top:6px;margin-left:-6px;transition:opacity .1s ease;background:#e1b590;box-shadow:1px 2px 6px rgba(0,0,0,.2);pointer-events:none}.video-player__seek__handle.active{opacity:1}.video-player__seek:hover .video-player__seek__handle{opacity:1}.video-player.detailed .video-player__buttons button,.video-player.fullscreen .video-player__buttons button{padding-top:10px;padding-bottom:10px}.directory__list{width:100%;margin:10px 0;transition:opacity 100ms ease-in}.directory__list.loading{opacity:.7}@media screen and (max-width: 415px){.directory__list{margin:0}}.directory__card{box-sizing:border-box;margin-bottom:10px}.directory__card__img{height:125px;position:relative;background:#000;overflow:hidden}.directory__card__img img{display:block;width:100%;height:100%;margin:0;object-fit:cover}.directory__card__bar{display:flex;align-items:center;background:#192432;padding:10px}.directory__card__bar__name{flex:1 1 auto;display:flex;align-items:center;text-decoration:none;overflow:hidden}.directory__card__bar__relationship{width:23px;min-height:1px;flex:0 0 auto}.directory__card__bar .avatar{flex:0 0 auto;width:48px;height:48px;padding-top:2px}.directory__card__bar .avatar img{width:100%;height:100%;display:block;margin:0;border-radius:4px;background:#040609;object-fit:cover}.directory__card__bar .display-name{margin-left:15px;text-align:left}.directory__card__bar .display-name strong{font-size:15px;color:#fff;font-weight:500;overflow:hidden;text-overflow:ellipsis}.directory__card__bar .display-name span{display:block;font-size:14px;color:#9baec8;font-weight:400;overflow:hidden;text-overflow:ellipsis}.directory__card__extra{background:#121a24;display:flex;align-items:center;justify-content:center}.directory__card__extra .accounts-table__count{width:33.33%;flex:0 0 auto;padding:15px 0}.directory__card__extra .account__header__content{box-sizing:border-box;padding:15px 10px;border-bottom:1px solid #202e3f;width:100%;min-height:48px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.directory__card__extra .account__header__content p{display:none}.directory__card__extra .account__header__content p:first-child{display:inline}.directory__card__extra .account__header__content br{display:none}.account-gallery__container{display:flex;flex-wrap:wrap;padding:4px 2px}.account-gallery__item{border:0;box-sizing:border-box;display:block;position:relative;border-radius:4px;overflow:hidden;margin:2px}.account-gallery__item__icons{position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);font-size:24px}.notification__filter-bar,.account__section-headline{background:#0b1016;border-bottom:1px solid #202e3f;cursor:default;display:flex;flex-shrink:0}.notification__filter-bar button,.account__section-headline button{background:#0b1016;border:0;margin:0}.notification__filter-bar button,.notification__filter-bar a,.account__section-headline button,.account__section-headline a{display:block;flex:1 1 auto;color:#9baec8;padding:15px 0;font-size:14px;font-weight:500;text-align:center;text-decoration:none;position:relative;width:100%;white-space:nowrap}.notification__filter-bar button.active,.notification__filter-bar a.active,.account__section-headline button.active,.account__section-headline a.active{color:#d9e1e8}.notification__filter-bar button.active::before,.notification__filter-bar button.active::after,.notification__filter-bar a.active::before,.notification__filter-bar a.active::after,.account__section-headline button.active::before,.account__section-headline button.active::after,.account__section-headline a.active::before,.account__section-headline a.active::after{display:block;content:\"\";position:absolute;bottom:0;left:50%;width:0;height:0;transform:translateX(-50%);border-style:solid;border-width:0 10px 10px;border-color:transparent transparent #202e3f}.notification__filter-bar button.active::after,.notification__filter-bar a.active::after,.account__section-headline button.active::after,.account__section-headline a.active::after{bottom:-1px;border-color:transparent transparent #121a24}.notification__filter-bar.directory__section-headline,.account__section-headline.directory__section-headline{background:#0f151d;border-bottom-color:transparent}.notification__filter-bar.directory__section-headline a.active::before,.notification__filter-bar.directory__section-headline button.active::before,.account__section-headline.directory__section-headline a.active::before,.account__section-headline.directory__section-headline button.active::before{display:none}.notification__filter-bar.directory__section-headline a.active::after,.notification__filter-bar.directory__section-headline button.active::after,.account__section-headline.directory__section-headline a.active::after,.account__section-headline.directory__section-headline button.active::after{border-color:transparent transparent #06090c}.filter-form{background:#121a24}.filter-form__column{padding:10px 15px}.filter-form .radio-button{display:block}.radio-button{font-size:14px;position:relative;display:inline-block;padding:6px 0;line-height:18px;cursor:default;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:pointer}.radio-button input[type=radio],.radio-button input[type=checkbox]{display:none}.radio-button__input{display:inline-block;position:relative;border:1px solid #9baec8;box-sizing:border-box;width:18px;height:18px;flex:0 0 auto;margin-right:10px;top:-1px;border-radius:50%;vertical-align:middle}.radio-button__input.checked{border-color:#e1b590;background:#e1b590}::-webkit-scrollbar-thumb{border-radius:0}.search-popout{background:#fff;border-radius:4px;padding:10px 14px;padding-bottom:14px;margin-top:10px;color:#9baec8;box-shadow:2px 4px 15px rgba(0,0,0,.4)}.search-popout h4{text-transform:uppercase;color:#9baec8;font-size:13px;font-weight:500;margin-bottom:10px}.search-popout li{padding:4px 0}.search-popout ul{margin-bottom:10px}.search-popout em{font-weight:500;color:#121a24}noscript{text-align:center}noscript img{width:200px;opacity:.5;animation:flicker 4s infinite}noscript div{font-size:14px;margin:30px auto;color:#d9e1e8;max-width:400px}noscript div a{color:#d8a070;text-decoration:underline}noscript div a:hover{text-decoration:none}@keyframes flicker{0%{opacity:1}30%{opacity:.75}100%{opacity:1}}@media screen and (max-width: 630px)and (max-height: 400px){.tabs-bar,.search{will-change:margin-top;transition:margin-top 400ms 100ms}.navigation-bar{will-change:padding-bottom;transition:padding-bottom 400ms 100ms}.navigation-bar>a:first-child{will-change:margin-top,margin-left,margin-right,width;transition:margin-top 400ms 100ms,margin-left 400ms 500ms,margin-right 400ms 500ms}.navigation-bar>.navigation-bar__profile-edit{will-change:margin-top;transition:margin-top 400ms 100ms}.navigation-bar .navigation-bar__actions>.icon-button.close{will-change:opacity transform;transition:opacity 200ms 100ms,transform 400ms 100ms}.navigation-bar .navigation-bar__actions>.compose__action-bar .icon-button{will-change:opacity transform;transition:opacity 200ms 300ms,transform 400ms 100ms}.is-composing .tabs-bar,.is-composing .search{margin-top:-50px}.is-composing .navigation-bar{padding-bottom:0}.is-composing .navigation-bar>a:first-child{margin:-100px 10px 0 -50px}.is-composing .navigation-bar .navigation-bar__profile{padding-top:2px}.is-composing .navigation-bar .navigation-bar__profile-edit{position:absolute;margin-top:-60px}.is-composing .navigation-bar .navigation-bar__actions .icon-button.close{pointer-events:auto;opacity:1;transform:scale(1, 1) translate(0, 0);bottom:5px}.is-composing .navigation-bar .navigation-bar__actions .compose__action-bar .icon-button{pointer-events:none;opacity:0;transform:scale(0, 1) translate(100%, 0)}}.embed-modal{width:auto;max-width:80vw;max-height:80vh}.embed-modal h4{padding:30px;font-weight:500;font-size:16px;text-align:center}.embed-modal .embed-modal__container{padding:10px}.embed-modal .embed-modal__container .hint{margin-bottom:15px}.embed-modal .embed-modal__container .embed-modal__html{outline:0;box-sizing:border-box;display:block;width:100%;border:0;padding:10px;font-family:\"mastodon-font-monospace\",monospace;background:#121a24;color:#fff;font-size:14px;margin:0;margin-bottom:15px;border-radius:4px}.embed-modal .embed-modal__container .embed-modal__html::-moz-focus-inner{border:0}.embed-modal .embed-modal__container .embed-modal__html::-moz-focus-inner,.embed-modal .embed-modal__container .embed-modal__html:focus,.embed-modal .embed-modal__container .embed-modal__html:active{outline:0 !important}.embed-modal .embed-modal__container .embed-modal__html:focus{background:#192432}@media screen and (max-width: 600px){.embed-modal .embed-modal__container .embed-modal__html{font-size:16px}}.embed-modal .embed-modal__container .embed-modal__iframe{width:400px;max-width:100%;overflow:hidden;border:0;border-radius:4px}.account__moved-note{padding:14px 10px;padding-bottom:16px;background:#192432;border-top:1px solid #202e3f;border-bottom:1px solid #202e3f}.account__moved-note__message{position:relative;margin-left:58px;color:#3e5a7c;padding:8px 0;padding-top:0;padding-bottom:4px;font-size:14px}.account__moved-note__message>span{display:block;overflow:hidden;text-overflow:ellipsis}.account__moved-note__icon-wrapper{left:-26px;position:absolute}.account__moved-note .detailed-status__display-avatar{position:relative}.account__moved-note .detailed-status__display-name{margin-bottom:0}.column-inline-form{padding:15px;padding-right:0;display:flex;justify-content:flex-start;align-items:center;background:#192432}.column-inline-form label{flex:1 1 auto}.column-inline-form label input{width:100%}.column-inline-form label input:focus{outline:0}.column-inline-form .icon-button{flex:0 0 auto;margin:0 10px}.drawer__backdrop{cursor:pointer;position:absolute;top:0;left:0;width:100%;height:100%;background:rgba(0,0,0,.5)}.list-editor{background:#121a24;flex-direction:column;border-radius:8px;box-shadow:2px 4px 15px rgba(0,0,0,.4);width:380px;overflow:hidden}@media screen and (max-width: 420px){.list-editor{width:90%}}.list-editor h4{padding:15px 0;background:#283a50;font-weight:500;font-size:16px;text-align:center;border-radius:8px 8px 0 0}.list-editor .drawer__pager{height:50vh}.list-editor .drawer__inner{border-radius:0 0 8px 8px}.list-editor .drawer__inner.backdrop{width:calc(100% - 60px);box-shadow:2px 4px 15px rgba(0,0,0,.4);border-radius:0 0 0 8px}.list-editor__accounts{overflow-y:auto}.list-editor .account__display-name:hover strong{text-decoration:none}.list-editor .account__avatar{cursor:default}.list-editor .search{margin-bottom:0}.list-adder{background:#121a24;flex-direction:column;border-radius:8px;box-shadow:2px 4px 15px rgba(0,0,0,.4);width:380px;overflow:hidden}@media screen and (max-width: 420px){.list-adder{width:90%}}.list-adder__account{background:#283a50}.list-adder__lists{background:#283a50;height:50vh;border-radius:0 0 8px 8px;overflow-y:auto}.list-adder .list{padding:10px;border-bottom:1px solid #202e3f}.list-adder .list__wrapper{display:flex}.list-adder .list__display-name{flex:1 1 auto;overflow:hidden;text-decoration:none;font-size:16px;padding:10px}.focal-point{position:relative;cursor:move;overflow:hidden;height:100%;display:flex;justify-content:center;align-items:center;background:#000}.focal-point img,.focal-point video,.focal-point canvas{display:block;max-height:80vh;width:100%;height:auto;margin:0;object-fit:contain;background:#000}.focal-point__reticle{position:absolute;width:100px;height:100px;transform:translate(-50%, -50%);background:url(\"~images/reticle.png\") no-repeat 0 0;border-radius:50%;box-shadow:0 0 0 9999em rgba(0,0,0,.35)}.focal-point__overlay{position:absolute;width:100%;height:100%;top:0;left:0}.focal-point__preview{position:absolute;bottom:10px;right:10px;z-index:2;cursor:move;transition:opacity .1s ease}.focal-point__preview:hover{opacity:.5}.focal-point__preview strong{color:#fff;font-size:14px;font-weight:500;display:block;margin-bottom:5px}.focal-point__preview div{border-radius:4px;box-shadow:0 0 14px rgba(0,0,0,.2)}@media screen and (max-width: 480px){.focal-point img,.focal-point video{max-height:100%}.focal-point__preview{display:none}}.account__header__content{color:#9baec8;font-size:14px;font-weight:400;overflow:hidden;word-break:normal;word-wrap:break-word}.account__header__content p{margin-bottom:20px}.account__header__content p:last-child{margin-bottom:0}.account__header__content a{color:inherit;text-decoration:underline}.account__header__content a:hover{text-decoration:none}.account__header{overflow:hidden}.account__header.inactive{opacity:.5}.account__header.inactive .account__header__image,.account__header.inactive .account__avatar{filter:grayscale(100%)}.account__header__info{position:absolute;top:10px;left:10px}.account__header__image{overflow:hidden;height:145px;position:relative;background:#0b1016}.account__header__image img{object-fit:cover;display:block;width:100%;height:100%;margin:0}.account__header__bar{position:relative;background:#192432;padding:5px;border-bottom:1px solid #26374d}.account__header__bar .avatar{display:block;flex:0 0 auto;width:94px;margin-left:-2px}.account__header__bar .avatar .account__avatar{background:#040609;border:2px solid #192432}.account__header__tabs{display:flex;align-items:flex-start;padding:7px 5px;margin-top:-55px}.account__header__tabs__buttons{display:flex;align-items:center;padding-top:55px;overflow:hidden}.account__header__tabs__buttons .icon-button{border:1px solid #26374d;border-radius:4px;box-sizing:content-box;padding:2px}.account__header__tabs__buttons .button{margin:0 8px}.account__header__tabs__name{padding:5px}.account__header__tabs__name .account-role{vertical-align:top}.account__header__tabs__name .emojione{width:22px;height:22px}.account__header__tabs__name h1{font-size:16px;line-height:24px;color:#fff;font-weight:500;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.account__header__tabs__name h1 small{display:block;font-size:14px;color:#9baec8;font-weight:400;overflow:hidden;text-overflow:ellipsis}.account__header__tabs .spacer{flex:1 1 auto}.account__header__bio{overflow:hidden;margin:0 -5px}.account__header__bio .account__header__content{padding:20px 15px;padding-bottom:5px;color:#fff}.account__header__bio .account__header__fields{margin:0;border-top:1px solid #26374d}.account__header__bio .account__header__fields a{color:#e1b590}.account__header__bio .account__header__fields dl:first-child .verified{border-radius:0 4px 0 0}.account__header__bio .account__header__fields .verified a{color:#79bd9a}.account__header__extra{margin-top:4px}.account__header__extra__links{font-size:14px;color:#9baec8;padding:10px 0}.account__header__extra__links a{display:inline-block;color:#9baec8;text-decoration:none;padding:5px 10px;font-weight:500}.account__header__extra__links a strong{font-weight:700;color:#fff}.trends__header{color:#3e5a7c;background:#151f2b;border-bottom:1px solid #0b1016;font-weight:500;padding:15px;font-size:16px;cursor:default}.trends__header .fa{display:inline-block;margin-right:5px}.trends__item{display:flex;align-items:center;padding:15px;border-bottom:1px solid #202e3f}.trends__item:last-child{border-bottom:0}.trends__item__name{flex:1 1 auto;color:#3e5a7c;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.trends__item__name strong{font-weight:500}.trends__item__name a{color:#9baec8;text-decoration:none;font-size:14px;font-weight:500;display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.trends__item__name a:hover span,.trends__item__name a:focus span,.trends__item__name a:active span{text-decoration:underline}.trends__item__current{flex:0 0 auto;font-size:24px;line-height:36px;font-weight:500;text-align:right;padding-right:15px;margin-left:5px;color:#d9e1e8}.trends__item__sparkline{flex:0 0 auto;width:50px}.trends__item__sparkline path:first-child{fill:rgba(216,160,112,.25) !important;fill-opacity:1 !important}.trends__item__sparkline path:last-child{stroke:#dfb088 !important}.conversation{display:flex;border-bottom:1px solid #202e3f;padding:5px;padding-bottom:0}.conversation:focus{background:#151f2b;outline:0}.conversation__avatar{flex:0 0 auto;padding:10px;padding-top:12px;position:relative;cursor:pointer}.conversation__unread{display:inline-block;background:#d8a070;border-radius:50%;width:.625rem;height:.625rem;margin:-0.1ex .15em .1ex}.conversation__content{flex:1 1 auto;padding:10px 5px;padding-right:15px;overflow:hidden}.conversation__content__info{overflow:hidden;display:flex;flex-direction:row-reverse;justify-content:space-between}.conversation__content__relative-time{font-size:15px;color:#9baec8;padding-left:15px}.conversation__content__names{color:#9baec8;font-size:15px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-bottom:4px;flex-basis:90px;flex-grow:1}.conversation__content__names a{color:#fff;text-decoration:none}.conversation__content__names a:hover,.conversation__content__names a:focus,.conversation__content__names a:active{text-decoration:underline}.conversation__content a{word-break:break-word}.conversation--unread{background:#151f2b}.conversation--unread:focus{background:#192432}.conversation--unread .conversation__content__info{font-weight:700}.conversation--unread .conversation__content__relative-time{color:#fff}.announcements{background:#202e3f;font-size:13px;display:flex;align-items:flex-end}.announcements__mastodon{width:124px;flex:0 0 auto}@media screen and (max-width: 424px){.announcements__mastodon{display:none}}.announcements__container{width:calc(100% - 124px);flex:0 0 auto;position:relative}@media screen and (max-width: 424px){.announcements__container{width:100%}}.announcements__item{box-sizing:border-box;width:100%;padding:15px;position:relative;font-size:15px;line-height:20px;word-wrap:break-word;font-weight:400;max-height:50vh;overflow:hidden;display:flex;flex-direction:column}.announcements__item__range{display:block;font-weight:500;margin-bottom:10px;padding-right:18px}.announcements__item__unread{position:absolute;top:19px;right:19px;display:block;background:#d8a070;border-radius:50%;width:.625rem;height:.625rem}.announcements__pagination{padding:15px;color:#9baec8;position:absolute;bottom:3px;right:0}.layout-multiple-columns .announcements__mastodon{display:none}.layout-multiple-columns .announcements__container{width:100%}.reactions-bar{display:flex;flex-wrap:wrap;align-items:center;margin-top:15px;margin-left:-2px;width:calc(100% - (90px - 33px))}.reactions-bar__item{flex-shrink:0;background:#26374d;border:0;border-radius:3px;margin:2px;cursor:pointer;user-select:none;padding:0 6px;display:flex;align-items:center;transition:all 100ms ease-in;transition-property:background-color,color}.reactions-bar__item__emoji{display:block;margin:3px 0;width:16px;height:16px}.reactions-bar__item__emoji img{display:block;margin:0;width:100%;height:100%;min-width:auto;min-height:auto;vertical-align:bottom;object-fit:contain}.reactions-bar__item__count{display:block;min-width:9px;font-size:13px;font-weight:500;text-align:center;margin-left:6px;color:#9baec8}.reactions-bar__item:hover,.reactions-bar__item:focus,.reactions-bar__item:active{background:#2d415a;transition:all 200ms ease-out;transition-property:background-color,color}.reactions-bar__item:hover__count,.reactions-bar__item:focus__count,.reactions-bar__item:active__count{color:#a8b9cf}.reactions-bar__item.active{transition:all 100ms ease-in;transition-property:background-color,color;background-color:#4a4c54}.reactions-bar__item.active .reactions-bar__item__count{color:#e1b590}.reactions-bar .emoji-picker-dropdown{margin:2px}.reactions-bar:hover .emoji-button{opacity:.85}.reactions-bar .emoji-button{color:#9baec8;margin:0;font-size:16px;width:auto;flex-shrink:0;padding:0 6px;height:22px;display:flex;align-items:center;opacity:.5;transition:all 100ms ease-in;transition-property:background-color,color}.reactions-bar .emoji-button:hover,.reactions-bar .emoji-button:active,.reactions-bar .emoji-button:focus{opacity:1;color:#a8b9cf;transition:all 200ms ease-out;transition-property:background-color,color}.reactions-bar--empty .emoji-button{padding:0}.poll{margin-top:16px;font-size:14px}.poll li{margin-bottom:10px;position:relative}.poll__chart{border-radius:4px;display:block;background:#8ba1bf;height:5px;min-width:1%}.poll__chart.leading{background:#d8a070}.poll__option{position:relative;display:flex;padding:6px 0;line-height:18px;cursor:default;overflow:hidden}.poll__option__text{display:inline-block;word-wrap:break-word;overflow-wrap:break-word;max-width:calc(100% - 45px - 25px)}.poll__option input[type=radio],.poll__option input[type=checkbox]{display:none}.poll__option .autossugest-input{flex:1 1 auto}.poll__option input[type=text]{display:block;box-sizing:border-box;width:100%;font-size:14px;color:#121a24;outline:0;font-family:inherit;background:#fff;border:1px solid #dbdbdb;border-radius:4px;padding:6px 10px}.poll__option input[type=text]:focus{border-color:#d8a070}.poll__option.selectable{cursor:pointer}.poll__option.editable{display:flex;align-items:center;overflow:visible}.poll__input{display:inline-block;position:relative;border:1px solid #9baec8;box-sizing:border-box;width:18px;height:18px;flex:0 0 auto;margin-right:10px;top:-1px;border-radius:50%;vertical-align:middle;margin-top:auto;margin-bottom:auto;flex:0 0 18px}.poll__input.checkbox{border-radius:4px}.poll__input.active{border-color:#79bd9a;background:#79bd9a}.poll__input:active,.poll__input:focus,.poll__input:hover{border-color:#acd6c1;border-width:4px}.poll__input::-moz-focus-inner{outline:0 !important;border:0}.poll__input:focus,.poll__input:active{outline:0 !important}.poll__number{display:inline-block;width:45px;font-weight:700;flex:0 0 45px}.poll__voted{padding:0 5px;display:inline-block}.poll__voted__mark{font-size:18px}.poll__footer{padding-top:6px;padding-bottom:5px;color:#3e5a7c}.poll__link{display:inline;background:transparent;padding:0;margin:0;border:0;color:#3e5a7c;text-decoration:underline;font-size:inherit}.poll__link:hover{text-decoration:none}.poll__link:active,.poll__link:focus{background-color:rgba(62,90,124,.1)}.poll .button{height:36px;padding:0 16px;margin-right:10px;font-size:14px}.compose-form__poll-wrapper{border-top:1px solid #ebebeb}.compose-form__poll-wrapper ul{padding:10px}.compose-form__poll-wrapper .poll__footer{border-top:1px solid #ebebeb;padding:10px;display:flex;align-items:center}.compose-form__poll-wrapper .poll__footer button,.compose-form__poll-wrapper .poll__footer select{flex:1 1 50%}.compose-form__poll-wrapper .poll__footer button:focus,.compose-form__poll-wrapper .poll__footer select:focus{border-color:#d8a070}.compose-form__poll-wrapper .button.button-secondary{font-size:14px;font-weight:400;padding:6px 10px;height:auto;line-height:inherit;color:#3e5a7c;border-color:#3e5a7c;margin-right:5px}.compose-form__poll-wrapper li{display:flex;align-items:center}.compose-form__poll-wrapper li .poll__option{flex:0 0 auto;width:calc(100% - (23px + 6px));margin-right:6px}.compose-form__poll-wrapper select{appearance:none;box-sizing:border-box;font-size:14px;color:#121a24;display:inline-block;width:auto;outline:0;font-family:inherit;background:#fff url(\"data:image/svg+xml;utf8,\") no-repeat right 8px center/auto 16px;border:1px solid #dbdbdb;border-radius:4px;padding:6px 10px;padding-right:30px}.compose-form__poll-wrapper .icon-button.disabled{color:#dbdbdb}.muted .poll{color:#3e5a7c}.muted .poll__chart{background:rgba(109,137,175,.2)}.muted .poll__chart.leading{background:rgba(216,160,112,.2)}.modal-layout{background:#121a24 url('data:image/svg+xml;utf8,') repeat-x bottom fixed;display:flex;flex-direction:column;height:100vh;padding:0}.modal-layout__mastodon{display:flex;flex:1;flex-direction:column;justify-content:flex-end}.modal-layout__mastodon>*{flex:1;max-height:235px}@media screen and (max-width: 600px){.account-header{margin-top:0}}.emoji-mart{font-size:13px;display:inline-block;color:#121a24}.emoji-mart,.emoji-mart *{box-sizing:border-box;line-height:1.15}.emoji-mart .emoji-mart-emoji{padding:6px}.emoji-mart-bar{border:0 solid #c0cdd9}.emoji-mart-bar:first-child{border-bottom-width:1px;border-top-left-radius:5px;border-top-right-radius:5px;background:#d9e1e8}.emoji-mart-bar:last-child{border-top-width:1px;border-bottom-left-radius:5px;border-bottom-right-radius:5px;display:none}.emoji-mart-anchors{display:flex;justify-content:space-between;padding:0 6px;color:#3e5a7c;line-height:0}.emoji-mart-anchor{position:relative;flex:1;text-align:center;padding:12px 4px;overflow:hidden;transition:color .1s ease-out;cursor:pointer}.emoji-mart-anchor:hover{color:#37506f}.emoji-mart-anchor-selected{color:#d8a070}.emoji-mart-anchor-selected:hover{color:#d49560}.emoji-mart-anchor-selected .emoji-mart-anchor-bar{bottom:-1px}.emoji-mart-anchor-bar{position:absolute;bottom:-5px;left:0;width:100%;height:4px;background-color:#d8a070}.emoji-mart-anchors i{display:inline-block;width:100%;max-width:22px}.emoji-mart-anchors svg{fill:currentColor;max-height:18px}.emoji-mart-scroll{overflow-y:scroll;height:270px;max-height:35vh;padding:0 6px 6px;background:#fff;will-change:transform}.emoji-mart-scroll::-webkit-scrollbar-track:hover,.emoji-mart-scroll::-webkit-scrollbar-track:active{background-color:rgba(0,0,0,.3)}.emoji-mart-search{padding:10px;padding-right:45px;background:#fff}.emoji-mart-search input{font-size:14px;font-weight:400;padding:7px 9px;font-family:inherit;display:block;width:100%;background:rgba(217,225,232,.3);color:#121a24;border:1px solid #d9e1e8;border-radius:4px}.emoji-mart-search input::-moz-focus-inner{border:0}.emoji-mart-search input::-moz-focus-inner,.emoji-mart-search input:focus,.emoji-mart-search input:active{outline:0 !important}.emoji-mart-category .emoji-mart-emoji{cursor:pointer}.emoji-mart-category .emoji-mart-emoji span{z-index:1;position:relative;text-align:center}.emoji-mart-category .emoji-mart-emoji:hover::before{z-index:0;content:\"\";position:absolute;top:0;left:0;width:100%;height:100%;background-color:rgba(217,225,232,.7);border-radius:100%}.emoji-mart-category-label{z-index:2;position:relative;position:-webkit-sticky;position:sticky;top:0}.emoji-mart-category-label span{display:block;width:100%;font-weight:500;padding:5px 6px;background:#fff}.emoji-mart-emoji{position:relative;display:inline-block;font-size:0}.emoji-mart-emoji span{width:22px;height:22px}.emoji-mart-no-results{font-size:14px;text-align:center;padding-top:70px;color:#9baec8}.emoji-mart-no-results .emoji-mart-category-label{display:none}.emoji-mart-no-results .emoji-mart-no-results-label{margin-top:.2em}.emoji-mart-no-results .emoji-mart-emoji:hover::before{content:none}.emoji-mart-preview{display:none}.container{box-sizing:border-box;max-width:1235px;margin:0 auto;position:relative}@media screen and (max-width: 1255px){.container{width:100%;padding:0 10px}}.rich-formatting{font-family:\"mastodon-font-sans-serif\",sans-serif;font-size:14px;font-weight:400;line-height:1.7;word-wrap:break-word;color:#9baec8}.rich-formatting a{color:#d8a070;text-decoration:underline}.rich-formatting a:hover,.rich-formatting a:focus,.rich-formatting a:active{text-decoration:none}.rich-formatting p,.rich-formatting li{color:#9baec8}.rich-formatting p{margin-top:0;margin-bottom:.85em}.rich-formatting p:last-child{margin-bottom:0}.rich-formatting strong{font-weight:700;color:#d9e1e8}.rich-formatting em{font-style:italic;color:#d9e1e8}.rich-formatting code{font-size:.85em;background:#040609;border-radius:4px;padding:.2em .3em}.rich-formatting h1,.rich-formatting h2,.rich-formatting h3,.rich-formatting h4,.rich-formatting h5,.rich-formatting h6{font-family:\"mastodon-font-display\",sans-serif;margin-top:1.275em;margin-bottom:.85em;font-weight:500;color:#d9e1e8}.rich-formatting h1{font-size:2em}.rich-formatting h2{font-size:1.75em}.rich-formatting h3{font-size:1.5em}.rich-formatting h4{font-size:1.25em}.rich-formatting h5,.rich-formatting h6{font-size:1em}.rich-formatting ul{list-style:disc}.rich-formatting ol{list-style:decimal}.rich-formatting ul,.rich-formatting ol{margin:0;padding:0;padding-left:2em;margin-bottom:.85em}.rich-formatting ul[type=a],.rich-formatting ol[type=a]{list-style-type:lower-alpha}.rich-formatting ul[type=i],.rich-formatting ol[type=i]{list-style-type:lower-roman}.rich-formatting hr{width:100%;height:0;border:0;border-bottom:1px solid #192432;margin:1.7em 0}.rich-formatting hr.spacer{height:1px;border:0}.rich-formatting table{width:100%;border-collapse:collapse;break-inside:auto;margin-top:24px;margin-bottom:32px}.rich-formatting table thead tr,.rich-formatting table tbody tr{border-bottom:1px solid #192432;font-size:1em;line-height:1.625;font-weight:400;text-align:left;color:#9baec8}.rich-formatting table thead tr{border-bottom-width:2px;line-height:1.5;font-weight:500;color:#3e5a7c}.rich-formatting table th,.rich-formatting table td{padding:8px;align-self:start;align-items:start;word-break:break-all}.rich-formatting table th.nowrap,.rich-formatting table td.nowrap{width:25%;position:relative}.rich-formatting table th.nowrap::before,.rich-formatting table td.nowrap::before{content:\" \";visibility:hidden}.rich-formatting table th.nowrap span,.rich-formatting table td.nowrap span{position:absolute;left:8px;right:8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.rich-formatting>:first-child{margin-top:0}.information-board{background:#0b1016;padding:20px 0}.information-board .container-alt{position:relative;padding-right:295px}.information-board__sections{display:flex;justify-content:space-between;flex-wrap:wrap}.information-board__section{flex:1 0 0;font-family:\"mastodon-font-sans-serif\",sans-serif;font-size:16px;line-height:28px;color:#fff;text-align:right;padding:10px 15px}.information-board__section span,.information-board__section strong{display:block}.information-board__section span:last-child{color:#d9e1e8}.information-board__section strong{font-family:\"mastodon-font-display\",sans-serif;font-weight:500;font-size:32px;line-height:48px}@media screen and (max-width: 700px){.information-board__section{text-align:center}}.information-board .panel{position:absolute;width:280px;box-sizing:border-box;background:#040609;padding:20px;padding-top:10px;border-radius:4px 4px 0 0;right:0;bottom:-40px}.information-board .panel .panel-header{font-family:\"mastodon-font-display\",sans-serif;font-size:14px;line-height:24px;font-weight:500;color:#9baec8;padding-bottom:5px;margin-bottom:15px;border-bottom:1px solid #192432;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.information-board .panel .panel-header a,.information-board .panel .panel-header span{font-weight:400;color:#7a93b6}.information-board .panel .panel-header a{text-decoration:none}.information-board .owner{text-align:center}.information-board .owner .avatar{width:80px;height:80px;margin:0 auto;margin-bottom:15px}.information-board .owner .avatar img{display:block;width:80px;height:80px;border-radius:48px}.information-board .owner .name{font-size:14px}.information-board .owner .name a{display:block;color:#fff;text-decoration:none}.information-board .owner .name a:hover .display_name{text-decoration:underline}.information-board .owner .name .username{display:block;color:#9baec8}.landing-page p,.landing-page li{font-family:\"mastodon-font-sans-serif\",sans-serif;font-size:16px;font-weight:400;font-size:16px;line-height:30px;margin-bottom:12px;color:#9baec8}.landing-page p a,.landing-page li a{color:#d8a070;text-decoration:underline}.landing-page em{display:inline;margin:0;padding:0;font-weight:700;background:transparent;font-family:inherit;font-size:inherit;line-height:inherit;color:#bcc9da}.landing-page h1{font-family:\"mastodon-font-display\",sans-serif;font-size:26px;line-height:30px;font-weight:500;margin-bottom:20px;color:#d9e1e8}.landing-page h1 small{font-family:\"mastodon-font-sans-serif\",sans-serif;display:block;font-size:18px;font-weight:400;color:#bcc9da}.landing-page h2{font-family:\"mastodon-font-display\",sans-serif;font-size:22px;line-height:26px;font-weight:500;margin-bottom:20px;color:#d9e1e8}.landing-page h3{font-family:\"mastodon-font-display\",sans-serif;font-size:18px;line-height:24px;font-weight:500;margin-bottom:20px;color:#d9e1e8}.landing-page h4{font-family:\"mastodon-font-display\",sans-serif;font-size:16px;line-height:24px;font-weight:500;margin-bottom:20px;color:#d9e1e8}.landing-page h5{font-family:\"mastodon-font-display\",sans-serif;font-size:14px;line-height:24px;font-weight:500;margin-bottom:20px;color:#d9e1e8}.landing-page h6{font-family:\"mastodon-font-display\",sans-serif;font-size:12px;line-height:24px;font-weight:500;margin-bottom:20px;color:#d9e1e8}.landing-page ul,.landing-page ol{margin-left:20px}.landing-page ul[type=a],.landing-page ol[type=a]{list-style-type:lower-alpha}.landing-page ul[type=i],.landing-page ol[type=i]{list-style-type:lower-roman}.landing-page ul{list-style:disc}.landing-page ol{list-style:decimal}.landing-page li>ol,.landing-page li>ul{margin-top:6px}.landing-page hr{width:100%;height:0;border:0;border-bottom:1px solid rgba(62,90,124,.6);margin:20px 0}.landing-page hr.spacer{height:1px;border:0}.landing-page__information,.landing-page__forms{padding:20px}.landing-page__call-to-action{background:#121a24;border-radius:4px;padding:25px 40px;overflow:hidden;box-sizing:border-box}.landing-page__call-to-action .row{width:100%;display:flex;flex-direction:row-reverse;flex-wrap:nowrap;justify-content:space-between;align-items:center}.landing-page__call-to-action .row__information-board{display:flex;justify-content:flex-end;align-items:flex-end}.landing-page__call-to-action .row__information-board .information-board__section{flex:1 0 auto;padding:0 10px}@media screen and (max-width: 415px){.landing-page__call-to-action .row__information-board{width:100%;justify-content:space-between}}.landing-page__call-to-action .row__mascot{flex:1;margin:10px -50px 0 0}@media screen and (max-width: 415px){.landing-page__call-to-action .row__mascot{display:none}}.landing-page__logo{margin-right:20px}.landing-page__logo img{height:50px;width:auto;mix-blend-mode:lighten}.landing-page__information{padding:45px 40px;margin-bottom:10px}.landing-page__information:last-child{margin-bottom:0}.landing-page__information strong{font-weight:500;color:#bcc9da}.landing-page__information .account{border-bottom:0;padding:0}.landing-page__information .account__display-name{align-items:center;display:flex;margin-right:5px}.landing-page__information .account div.account__display-name:hover .display-name strong{text-decoration:none}.landing-page__information .account div.account__display-name .account__avatar{cursor:default}.landing-page__information .account__avatar-wrapper{margin-left:0;flex:0 0 auto}.landing-page__information .account__avatar{width:44px;height:44px;background-size:44px 44px}.landing-page__information .account .display-name{font-size:15px}.landing-page__information .account .display-name__account{font-size:14px}@media screen and (max-width: 960px){.landing-page__information .contact{margin-top:30px}}@media screen and (max-width: 700px){.landing-page__information{padding:25px 20px}}.landing-page__information,.landing-page__forms,.landing-page #mastodon-timeline{box-sizing:border-box;background:#121a24;border-radius:4px;box-shadow:0 0 6px rgba(0,0,0,.1)}.landing-page__mascot{height:104px;position:relative;left:-40px;bottom:25px}.landing-page__mascot img{height:190px;width:auto}.landing-page__short-description .row{display:flex;flex-wrap:wrap;align-items:center;margin-bottom:40px}@media screen and (max-width: 700px){.landing-page__short-description .row{margin-bottom:20px}}.landing-page__short-description p a{color:#d9e1e8}.landing-page__short-description h1{font-weight:500;color:#fff;margin-bottom:0}.landing-page__short-description h1 small{color:#9baec8}.landing-page__short-description h1 small span{color:#d9e1e8}.landing-page__short-description p:last-child{margin-bottom:0}.landing-page__hero{margin-bottom:10px}.landing-page__hero img{display:block;margin:0;max-width:100%;height:auto;border-radius:4px}@media screen and (max-width: 840px){.landing-page .information-board .container-alt{padding-right:20px}.landing-page .information-board .panel{position:static;margin-top:20px;width:100%;border-radius:4px}.landing-page .information-board .panel .panel-header{text-align:center}}@media screen and (max-width: 675px){.landing-page .header-wrapper{padding-top:0}.landing-page .header-wrapper.compact{padding-bottom:0}.landing-page .header-wrapper.compact .hero .heading{text-align:initial}.landing-page .header .container-alt,.landing-page .features .container-alt{display:block}}.landing-page .cta{margin:20px}.landing{margin-bottom:100px}@media screen and (max-width: 738px){.landing{margin-bottom:0}}.landing__brand{display:flex;justify-content:center;align-items:center;padding:50px}.landing__brand svg{fill:#fff;height:52px}@media screen and (max-width: 415px){.landing__brand{padding:0;margin-bottom:30px}}.landing .directory{margin-top:30px;background:transparent;box-shadow:none;border-radius:0}.landing .hero-widget{margin-top:30px;margin-bottom:0}.landing .hero-widget h4{padding:10px;text-transform:uppercase;font-weight:700;font-size:13px;color:#9baec8}.landing .hero-widget__text{border-radius:0;padding-bottom:0}.landing .hero-widget__footer{background:#121a24;padding:10px;border-radius:0 0 4px 4px;display:flex}.landing .hero-widget__footer__column{flex:1 1 50%}.landing .hero-widget .account{padding:10px 0;border-bottom:0}.landing .hero-widget .account .account__display-name{display:flex;align-items:center}.landing .hero-widget .account .account__avatar{width:44px;height:44px;background-size:44px 44px}.landing .hero-widget__counter{padding:10px}.landing .hero-widget__counter strong{font-family:\"mastodon-font-display\",sans-serif;font-size:15px;font-weight:700;display:block}.landing .hero-widget__counter span{font-size:14px;color:#9baec8}.landing .simple_form .user_agreement .label_input>label{font-weight:400;color:#9baec8}.landing .simple_form p.lead{color:#9baec8;font-size:15px;line-height:20px;font-weight:400;margin-bottom:25px}.landing__grid{max-width:960px;margin:0 auto;display:grid;grid-template-columns:minmax(0, 50%) minmax(0, 50%);grid-gap:30px}@media screen and (max-width: 738px){.landing__grid{grid-template-columns:minmax(0, 100%);grid-gap:10px}.landing__grid__column-login{grid-row:1;display:flex;flex-direction:column}.landing__grid__column-login .box-widget{order:2;flex:0 0 auto}.landing__grid__column-login .hero-widget{margin-top:0;margin-bottom:10px;order:1;flex:0 0 auto}.landing__grid__column-registration{grid-row:2}.landing__grid .directory{margin-top:10px}}@media screen and (max-width: 415px){.landing__grid{grid-gap:0}.landing__grid .hero-widget{display:block;margin-bottom:0;box-shadow:none}.landing__grid .hero-widget__img,.landing__grid .hero-widget__img img,.landing__grid .hero-widget__footer{border-radius:0}.landing__grid .hero-widget,.landing__grid .box-widget,.landing__grid .directory__tag{border-bottom:1px solid #202e3f}.landing__grid .directory{margin-top:0}.landing__grid .directory__tag{margin-bottom:0}.landing__grid .directory__tag>a,.landing__grid .directory__tag>div{border-radius:0;box-shadow:none}.landing__grid .directory__tag:last-child{border-bottom:0}}.brand{position:relative;text-decoration:none}.brand__tagline{display:block;position:absolute;bottom:-10px;left:50px;width:300px;color:#9baec8;text-decoration:none;font-size:14px}@media screen and (max-width: 415px){.brand__tagline{position:static;width:auto;margin-top:20px;color:#3e5a7c}}.table{width:100%;max-width:100%;border-spacing:0;border-collapse:collapse}.table th,.table td{padding:8px;line-height:18px;vertical-align:top;border-top:1px solid #121a24;text-align:left;background:#0b1016}.table>thead>tr>th{vertical-align:bottom;border-bottom:2px solid #121a24;border-top:0;font-weight:500}.table>tbody>tr>th{font-weight:500}.table>tbody>tr:nth-child(odd)>td,.table>tbody>tr:nth-child(odd)>th{background:#121a24}.table a{color:#d8a070;text-decoration:underline}.table a:hover{text-decoration:none}.table strong{font-weight:500}.table strong:lang(ja){font-weight:700}.table strong:lang(ko){font-weight:700}.table strong:lang(zh-CN){font-weight:700}.table strong:lang(zh-HK){font-weight:700}.table strong:lang(zh-TW){font-weight:700}.table.inline-table>tbody>tr:nth-child(odd)>td,.table.inline-table>tbody>tr:nth-child(odd)>th{background:transparent}.table.inline-table>tbody>tr:first-child>td,.table.inline-table>tbody>tr:first-child>th{border-top:0}.table.batch-table>thead>tr>th{background:#121a24;border-top:1px solid #040609;border-bottom:1px solid #040609}.table.batch-table>thead>tr>th:first-child{border-radius:4px 0 0;border-left:1px solid #040609}.table.batch-table>thead>tr>th:last-child{border-radius:0 4px 0 0;border-right:1px solid #040609}.table--invites tbody td{vertical-align:middle}.table-wrapper{overflow:auto;margin-bottom:20px}samp{font-family:\"mastodon-font-monospace\",monospace}button.table-action-link{background:transparent;border:0;font:inherit}button.table-action-link,a.table-action-link{text-decoration:none;display:inline-block;margin-right:5px;padding:0 10px;color:#9baec8;font-weight:500}button.table-action-link:hover,a.table-action-link:hover{color:#fff}button.table-action-link i.fa,a.table-action-link i.fa{font-weight:400;margin-right:5px}button.table-action-link:first-child,a.table-action-link:first-child{padding-left:0}.batch-table__toolbar,.batch-table__row{display:flex}.batch-table__toolbar__select,.batch-table__row__select{box-sizing:border-box;padding:8px 16px;cursor:pointer;min-height:100%}.batch-table__toolbar__select input,.batch-table__row__select input{margin-top:8px}.batch-table__toolbar__select--aligned,.batch-table__row__select--aligned{display:flex;align-items:center}.batch-table__toolbar__select--aligned input,.batch-table__row__select--aligned input{margin-top:0}.batch-table__toolbar__actions,.batch-table__toolbar__content,.batch-table__row__actions,.batch-table__row__content{padding:8px 0;padding-right:16px;flex:1 1 auto}.batch-table__toolbar{border:1px solid #040609;background:#121a24;border-radius:4px 0 0;height:47px;align-items:center}.batch-table__toolbar__actions{text-align:right;padding-right:11px}.batch-table__form{padding:16px;border:1px solid #040609;border-top:0;background:#121a24}.batch-table__form .fields-row{padding-top:0;margin-bottom:0}.batch-table__row{border:1px solid #040609;border-top:0;background:#0b1016}@media screen and (max-width: 415px){.optional .batch-table__row:first-child{border-top:1px solid #040609}}.batch-table__row:hover{background:#0f151d}.batch-table__row:nth-child(even){background:#121a24}.batch-table__row:nth-child(even):hover{background:#151f2b}.batch-table__row__content{padding-top:12px;padding-bottom:16px}.batch-table__row__content--unpadded{padding:0}.batch-table__row__content--with-image{display:flex;align-items:center}.batch-table__row__content__image{flex:0 0 auto;display:flex;justify-content:center;align-items:center;margin-right:10px}.batch-table__row__content__image .emojione{width:32px;height:32px}.batch-table__row__content__text{flex:1 1 auto}.batch-table__row__content__extra{flex:0 0 auto;text-align:right;color:#9baec8;font-weight:500}.batch-table__row .directory__tag{margin:0;width:100%}.batch-table__row .directory__tag a{background:transparent;border-radius:0}@media screen and (max-width: 415px){.batch-table.optional .batch-table__toolbar,.batch-table.optional .batch-table__row__select{display:none}}.batch-table .status__content{padding-top:0}.batch-table .status__content summary{display:list-item}.batch-table .status__content strong{font-weight:700}.batch-table .nothing-here{border:1px solid #040609;border-top:0;box-shadow:none}@media screen and (max-width: 415px){.batch-table .nothing-here{border-top:1px solid #040609}}@media screen and (max-width: 870px){.batch-table .accounts-table tbody td.optional{display:none}}.admin-wrapper{display:flex;justify-content:center;width:100%;min-height:100vh}.admin-wrapper .sidebar-wrapper{min-height:100vh;overflow:hidden;pointer-events:none;flex:1 1 auto}.admin-wrapper .sidebar-wrapper__inner{display:flex;justify-content:flex-end;background:#121a24;height:100%}.admin-wrapper .sidebar{width:240px;padding:0;pointer-events:auto}.admin-wrapper .sidebar__toggle{display:none;background:#202e3f;height:48px}.admin-wrapper .sidebar__toggle__logo{flex:1 1 auto}.admin-wrapper .sidebar__toggle__logo a{display:inline-block;padding:15px}.admin-wrapper .sidebar__toggle__logo svg{fill:#fff;height:20px;position:relative;bottom:-2px}.admin-wrapper .sidebar__toggle__icon{display:block;color:#9baec8;text-decoration:none;flex:0 0 auto;font-size:20px;padding:15px}.admin-wrapper .sidebar__toggle a:hover,.admin-wrapper .sidebar__toggle a:focus,.admin-wrapper .sidebar__toggle a:active{background:#26374d}.admin-wrapper .sidebar .logo{display:block;margin:40px auto;width:100px;height:100px}@media screen and (max-width: 600px){.admin-wrapper .sidebar>a:first-child{display:none}}.admin-wrapper .sidebar ul{list-style:none;border-radius:4px 0 0 4px;overflow:hidden;margin-bottom:20px}@media screen and (max-width: 600px){.admin-wrapper .sidebar ul{margin-bottom:0}}.admin-wrapper .sidebar ul a{display:block;padding:15px;color:#9baec8;text-decoration:none;transition:all 200ms linear;transition-property:color,background-color;border-radius:4px 0 0 4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.admin-wrapper .sidebar ul a i.fa{margin-right:5px}.admin-wrapper .sidebar ul a:hover{color:#fff;background-color:#0a0e13;transition:all 100ms linear;transition-property:color,background-color}.admin-wrapper .sidebar ul a.selected{background:#0f151d;border-radius:4px 0 0}.admin-wrapper .sidebar ul ul{background:#0b1016;border-radius:0 0 0 4px;margin:0}.admin-wrapper .sidebar ul ul a{border:0;padding:15px 35px}.admin-wrapper .sidebar ul .simple-navigation-active-leaf a{color:#fff;background-color:#d8a070;border-bottom:0;border-radius:0}.admin-wrapper .sidebar ul .simple-navigation-active-leaf a:hover{background-color:#ddad84}.admin-wrapper .sidebar>ul>.simple-navigation-active-leaf a{border-radius:4px 0 0 4px}.admin-wrapper .content-wrapper{box-sizing:border-box;width:100%;max-width:840px;flex:1 1 auto}@media screen and (max-width: 1080px){.admin-wrapper .sidebar-wrapper--empty{display:none}.admin-wrapper .sidebar-wrapper{width:240px;flex:0 0 auto}}@media screen and (max-width: 600px){.admin-wrapper .sidebar-wrapper{width:100%}}.admin-wrapper .content{padding:20px 15px;padding-top:60px;padding-left:25px}@media screen and (max-width: 600px){.admin-wrapper .content{max-width:none;padding:15px;padding-top:30px}}.admin-wrapper .content-heading{display:flex;padding-bottom:40px;border-bottom:1px solid #202e3f;margin:-15px -15px 40px 0;flex-wrap:wrap;align-items:center;justify-content:space-between}.admin-wrapper .content-heading>*{margin-top:15px;margin-right:15px}.admin-wrapper .content-heading-actions{display:inline-flex}.admin-wrapper .content-heading-actions>:not(:first-child){margin-left:5px}@media screen and (max-width: 600px){.admin-wrapper .content-heading{border-bottom:0;padding-bottom:0}}.admin-wrapper .content h2{color:#d9e1e8;font-size:24px;line-height:28px;font-weight:400}@media screen and (max-width: 600px){.admin-wrapper .content h2{font-weight:700}}.admin-wrapper .content h3{color:#d9e1e8;font-size:20px;line-height:28px;font-weight:400;margin-bottom:30px}.admin-wrapper .content h4{text-transform:uppercase;font-size:13px;font-weight:700;color:#9baec8;padding-bottom:8px;margin-bottom:8px;border-bottom:1px solid #202e3f}.admin-wrapper .content h6{font-size:16px;color:#d9e1e8;line-height:28px;font-weight:500}.admin-wrapper .content .fields-group h6{color:#fff;font-weight:500}.admin-wrapper .content .directory__tag>a,.admin-wrapper .content .directory__tag>div{box-shadow:none}.admin-wrapper .content .directory__tag .table-action-link .fa{color:inherit}.admin-wrapper .content .directory__tag h4{font-size:18px;font-weight:700;color:#fff;text-transform:none;padding-bottom:0;margin-bottom:0;border-bottom:0}.admin-wrapper .content>p{font-size:14px;line-height:21px;color:#d9e1e8;margin-bottom:20px}.admin-wrapper .content>p strong{color:#fff;font-weight:500}.admin-wrapper .content>p strong:lang(ja){font-weight:700}.admin-wrapper .content>p strong:lang(ko){font-weight:700}.admin-wrapper .content>p strong:lang(zh-CN){font-weight:700}.admin-wrapper .content>p strong:lang(zh-HK){font-weight:700}.admin-wrapper .content>p strong:lang(zh-TW){font-weight:700}.admin-wrapper .content hr{width:100%;height:0;border:0;border-bottom:1px solid rgba(62,90,124,.6);margin:20px 0}.admin-wrapper .content hr.spacer{height:1px;border:0}@media screen and (max-width: 600px){.admin-wrapper{display:block}.admin-wrapper .sidebar-wrapper{min-height:0}.admin-wrapper .sidebar{width:100%;padding:0;height:auto}.admin-wrapper .sidebar__toggle{display:flex}.admin-wrapper .sidebar>ul{display:none}.admin-wrapper .sidebar ul a,.admin-wrapper .sidebar ul ul a{border-radius:0;border-bottom:1px solid #192432;transition:none}.admin-wrapper .sidebar ul a:hover,.admin-wrapper .sidebar ul ul a:hover{transition:none}.admin-wrapper .sidebar ul ul{border-radius:0}.admin-wrapper .sidebar ul .simple-navigation-active-leaf a{border-bottom-color:#d8a070}}hr.spacer{width:100%;border:0;margin:20px 0;height:1px}body .muted-hint,.admin-wrapper .content .muted-hint{color:#9baec8}body .muted-hint a,.admin-wrapper .content .muted-hint a{color:#d8a070}body .positive-hint,.admin-wrapper .content .positive-hint{color:#79bd9a;font-weight:500}body .negative-hint,.admin-wrapper .content .negative-hint{color:#df405a;font-weight:500}body .neutral-hint,.admin-wrapper .content .neutral-hint{color:#3e5a7c;font-weight:500}body .warning-hint,.admin-wrapper .content .warning-hint{color:#ca8f04;font-weight:500}.filters{display:flex;flex-wrap:wrap}.filters .filter-subset{flex:0 0 auto;margin:0 40px 20px 0}.filters .filter-subset:last-child{margin-bottom:30px}.filters .filter-subset ul{margin-top:5px;list-style:none}.filters .filter-subset ul li{display:inline-block;margin-right:5px}.filters .filter-subset strong{font-weight:500;text-transform:uppercase;font-size:12px}.filters .filter-subset strong:lang(ja){font-weight:700}.filters .filter-subset strong:lang(ko){font-weight:700}.filters .filter-subset strong:lang(zh-CN){font-weight:700}.filters .filter-subset strong:lang(zh-HK){font-weight:700}.filters .filter-subset strong:lang(zh-TW){font-weight:700}.filters .filter-subset--with-select strong{display:block;margin-bottom:10px}.filters .filter-subset a{display:inline-block;color:#9baec8;text-decoration:none;text-transform:uppercase;font-size:12px;font-weight:500;border-bottom:2px solid #121a24}.filters .filter-subset a:hover{color:#fff;border-bottom:2px solid #1b2635}.filters .filter-subset a.selected{color:#d8a070;border-bottom:2px solid #d8a070}.flavour-screen{display:block;margin:10px auto;max-width:100%}.flavour-description{display:block;font-size:16px;margin:10px 0}.flavour-description>p{margin:10px 0}.flavour-screen{display:block;margin:10px auto;max-width:100%}.flavour-description{display:block;font-size:16px;margin:10px 0}.flavour-description>p{margin:10px 0}.report-accounts{display:flex;flex-wrap:wrap;margin-bottom:20px}.report-accounts__item{display:flex;flex:250px;flex-direction:column;margin:0 5px}.report-accounts__item>strong{display:block;margin:0 0 10px -5px;font-weight:500;font-size:14px;line-height:18px;color:#d9e1e8}.report-accounts__item>strong:lang(ja){font-weight:700}.report-accounts__item>strong:lang(ko){font-weight:700}.report-accounts__item>strong:lang(zh-CN){font-weight:700}.report-accounts__item>strong:lang(zh-HK){font-weight:700}.report-accounts__item>strong:lang(zh-TW){font-weight:700}.report-accounts__item .account-card{flex:1 1 auto}.report-status,.account-status{display:flex;margin-bottom:10px}.report-status .activity-stream,.account-status .activity-stream{flex:2 0 0;margin-right:20px;max-width:calc(100% - 60px)}.report-status .activity-stream .entry,.account-status .activity-stream .entry{border-radius:4px}.report-status__actions,.account-status__actions{flex:0 0 auto;display:flex;flex-direction:column}.report-status__actions .icon-button,.account-status__actions .icon-button{font-size:24px;width:24px;text-align:center;margin-bottom:10px}.simple_form.new_report_note,.simple_form.new_account_moderation_note{max-width:100%}.batch-form-box{display:flex;flex-wrap:wrap;margin-bottom:5px}.batch-form-box #form_status_batch_action{margin:0 5px 5px 0;font-size:14px}.batch-form-box input.button{margin:0 5px 5px 0}.batch-form-box .media-spoiler-toggle-buttons{margin-left:auto}.batch-form-box .media-spoiler-toggle-buttons .button{overflow:visible;margin:0 0 5px 5px;float:right}.back-link{margin-bottom:10px;font-size:14px}.back-link a{color:#d8a070;text-decoration:none}.back-link a:hover{text-decoration:underline}.spacer{flex:1 1 auto}.log-entry{line-height:20px;padding:15px 0;background:#121a24;border-bottom:1px solid #192432}.log-entry:last-child{border-bottom:0}.log-entry__header{display:flex;justify-content:flex-start;align-items:center;color:#9baec8;font-size:14px;padding:0 10px}.log-entry__avatar{margin-right:10px}.log-entry__avatar .avatar{display:block;margin:0;border-radius:50%;width:40px;height:40px}.log-entry__content{max-width:calc(100% - 90px)}.log-entry__title{word-wrap:break-word}.log-entry__timestamp{color:#3e5a7c}.log-entry a,.log-entry .username,.log-entry .target{color:#d9e1e8;text-decoration:none;font-weight:500}a.name-tag,.name-tag,a.inline-name-tag,.inline-name-tag{text-decoration:none;color:#d9e1e8}a.name-tag .username,.name-tag .username,a.inline-name-tag .username,.inline-name-tag .username{font-weight:500}a.name-tag.suspended .username,.name-tag.suspended .username,a.inline-name-tag.suspended .username,.inline-name-tag.suspended .username{text-decoration:line-through;color:#e87487}a.name-tag.suspended .avatar,.name-tag.suspended .avatar,a.inline-name-tag.suspended .avatar,.inline-name-tag.suspended .avatar{filter:grayscale(100%);opacity:.8}a.name-tag,.name-tag{display:flex;align-items:center}a.name-tag .avatar,.name-tag .avatar{display:block;margin:0;margin-right:5px;border-radius:50%}a.name-tag.suspended .avatar,.name-tag.suspended .avatar{filter:grayscale(100%);opacity:.8}.speech-bubble{margin-bottom:20px;border-left:4px solid #d8a070}.speech-bubble.positive{border-left-color:#79bd9a}.speech-bubble.negative{border-left-color:#e87487}.speech-bubble.warning{border-left-color:#ca8f04}.speech-bubble__bubble{padding:16px;padding-left:14px;font-size:15px;line-height:20px;border-radius:4px 4px 4px 0;position:relative;font-weight:500}.speech-bubble__bubble a{color:#9baec8}.speech-bubble__owner{padding:8px;padding-left:12px}.speech-bubble time{color:#3e5a7c}.report-card{background:#121a24;border-radius:4px;margin-bottom:20px}.report-card__profile{display:flex;justify-content:space-between;align-items:center;padding:15px}.report-card__profile .account{padding:0;border:0}.report-card__profile .account__avatar-wrapper{margin-left:0}.report-card__profile__stats{flex:0 0 auto;font-weight:500;color:#9baec8;text-transform:uppercase;text-align:right}.report-card__profile__stats a{color:inherit;text-decoration:none}.report-card__profile__stats a:focus,.report-card__profile__stats a:hover,.report-card__profile__stats a:active{color:#b5c3d6}.report-card__profile__stats .red{color:#df405a}.report-card__summary__item{display:flex;justify-content:flex-start;border-top:1px solid #0b1016}.report-card__summary__item:hover{background:#151f2b}.report-card__summary__item__reported-by,.report-card__summary__item__assigned{padding:15px;flex:0 0 auto;box-sizing:border-box;width:150px;color:#9baec8}.report-card__summary__item__reported-by,.report-card__summary__item__reported-by .username,.report-card__summary__item__assigned,.report-card__summary__item__assigned .username{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.report-card__summary__item__content{flex:1 1 auto;max-width:calc(100% - 300px)}.report-card__summary__item__content__icon{color:#3e5a7c;margin-right:4px;font-weight:500}.report-card__summary__item__content a{display:block;box-sizing:border-box;width:100%;padding:15px;text-decoration:none;color:#9baec8}.one-line{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ellipsized-ip{display:inline-block;max-width:120px;overflow:hidden;text-overflow:ellipsis;vertical-align:middle}.admin-account-bio{display:flex;flex-wrap:wrap;margin:0 -5px;margin-top:20px}.admin-account-bio>div{box-sizing:border-box;padding:0 5px;margin-bottom:10px;flex:1 0 50%}.admin-account-bio .account__header__fields,.admin-account-bio .account__header__content{background:#202e3f;border-radius:4px;height:100%}.admin-account-bio .account__header__fields{margin:0;border:0}.admin-account-bio .account__header__fields a{color:#e1b590}.admin-account-bio .account__header__fields dl:first-child .verified{border-radius:0 4px 0 0}.admin-account-bio .account__header__fields .verified a{color:#79bd9a}.admin-account-bio .account__header__content{box-sizing:border-box;padding:20px;color:#fff}.center-text{text-align:center}.announcements-list{border:1px solid #192432;border-radius:4px}.announcements-list__item{padding:15px 0;background:#121a24;border-bottom:1px solid #192432}.announcements-list__item__title{padding:0 15px;display:block;font-weight:500;font-size:18px;line-height:1.5;color:#d9e1e8;text-decoration:none;margin-bottom:10px}.announcements-list__item__title:hover,.announcements-list__item__title:focus,.announcements-list__item__title:active{color:#fff}.announcements-list__item__meta{padding:0 15px;color:#3e5a7c}.announcements-list__item__action-bar{display:flex;justify-content:space-between;align-items:center}.announcements-list__item:last-child{border-bottom:0}.dashboard__counters{display:flex;flex-wrap:wrap;margin:0 -5px;margin-bottom:20px}.dashboard__counters>div{box-sizing:border-box;flex:0 0 33.333%;padding:0 5px;margin-bottom:10px}.dashboard__counters>div>div,.dashboard__counters>div>a{padding:20px;background:#192432;border-radius:4px;box-sizing:border-box;height:100%}.dashboard__counters>div>a{text-decoration:none;color:inherit;display:block}.dashboard__counters>div>a:hover,.dashboard__counters>div>a:focus,.dashboard__counters>div>a:active{background:#202e3f}.dashboard__counters__num,.dashboard__counters__text{text-align:center;font-weight:500;font-size:24px;line-height:21px;color:#fff;font-family:\"mastodon-font-display\",sans-serif;margin-bottom:20px;line-height:30px}.dashboard__counters__text{font-size:18px}.dashboard__counters__label{font-size:14px;color:#9baec8;text-align:center;font-weight:500}.dashboard__widgets{display:flex;flex-wrap:wrap;margin:0 -5px}.dashboard__widgets>div{flex:0 0 33.333%;margin-bottom:20px}.dashboard__widgets>div>div{padding:0 5px}.dashboard__widgets a:not(.name-tag){color:#d9e1e8;font-weight:500;text-decoration:none}body.rtl{direction:rtl}body.rtl .column-header>button{text-align:right;padding-left:0;padding-right:15px}body.rtl .radio-button__input{margin-right:0;margin-left:10px}body.rtl .directory__card__bar .display-name{margin-left:0;margin-right:15px}body.rtl .display-name{text-align:right}body.rtl .notification__message{margin-left:0;margin-right:68px}body.rtl .drawer__inner__mastodon>img{transform:scaleX(-1)}body.rtl .notification__favourite-icon-wrapper{left:auto;right:-26px}body.rtl .landing-page__logo{margin-right:0;margin-left:20px}body.rtl .landing-page .features-list .features-list__row .visual{margin-left:0;margin-right:15px}body.rtl .column-link__icon,body.rtl .column-header__icon{margin-right:0;margin-left:5px}body.rtl .compose-form .compose-form__buttons-wrapper .character-counter__wrapper{margin-right:0;margin-left:4px}body.rtl .navigation-bar__profile{margin-left:0;margin-right:8px}body.rtl .search__input{padding-right:10px;padding-left:30px}body.rtl .search__icon .fa{right:auto;left:10px}body.rtl .columns-area{direction:rtl}body.rtl .column-header__buttons{left:0;right:auto;margin-left:0;margin-right:-15px}body.rtl .column-inline-form .icon-button{margin-left:0;margin-right:5px}body.rtl .column-header__links .text-btn{margin-left:10px;margin-right:0}body.rtl .account__avatar-wrapper{float:right}body.rtl .column-header__back-button{padding-left:5px;padding-right:0}body.rtl .column-header__setting-arrows{float:left}body.rtl .setting-toggle__label{margin-left:0;margin-right:8px}body.rtl .status__avatar{left:auto;right:10px}body.rtl .status,body.rtl .activity-stream .status.light{padding-left:10px;padding-right:68px}body.rtl .status__info .status__display-name,body.rtl .activity-stream .status.light .status__display-name{padding-left:25px;padding-right:0}body.rtl .activity-stream .pre-header{padding-right:68px;padding-left:0}body.rtl .status__prepend{margin-left:0;margin-right:68px}body.rtl .status__prepend-icon-wrapper{left:auto;right:-26px}body.rtl .activity-stream .pre-header .pre-header__icon{left:auto;right:42px}body.rtl .account__avatar-overlay-overlay{right:auto;left:0}body.rtl .column-back-button--slim-button{right:auto;left:0}body.rtl .status__relative-time,body.rtl .activity-stream .status.light .status__header .status__meta{float:left}body.rtl .status__action-bar__counter{margin-right:0;margin-left:11px}body.rtl .status__action-bar__counter .status__action-bar-button{margin-right:0;margin-left:4px}body.rtl .status__action-bar-button{float:right;margin-right:0;margin-left:18px}body.rtl .status__action-bar-dropdown{float:right}body.rtl .privacy-dropdown__dropdown{margin-left:0;margin-right:40px}body.rtl .privacy-dropdown__option__icon{margin-left:10px;margin-right:0}body.rtl .detailed-status__display-name .display-name{text-align:right}body.rtl .detailed-status__display-avatar{margin-right:0;margin-left:10px;float:right}body.rtl .detailed-status__favorites,body.rtl .detailed-status__reblogs{margin-left:0;margin-right:6px}body.rtl .fa-ul{margin-left:2.14285714em}body.rtl .fa-li{left:auto;right:-2.14285714em}body.rtl .admin-wrapper{direction:rtl}body.rtl .admin-wrapper .sidebar ul a i.fa,body.rtl a.table-action-link i.fa{margin-right:0;margin-left:5px}body.rtl .simple_form .check_boxes .checkbox label{padding-left:0;padding-right:25px}body.rtl .simple_form .input.with_label.boolean label.checkbox{padding-left:25px;padding-right:0}body.rtl .simple_form .check_boxes .checkbox input[type=checkbox],body.rtl .simple_form .input.boolean input[type=checkbox]{left:auto;right:0}body.rtl .simple_form .input.radio_buttons .radio{left:auto;right:0}body.rtl .simple_form .input.radio_buttons .radio>label{padding-right:28px;padding-left:0}body.rtl .simple_form .input-with-append .input input{padding-left:142px;padding-right:0}body.rtl .simple_form .input.boolean label.checkbox{left:auto;right:0}body.rtl .simple_form .input.boolean .label_input,body.rtl .simple_form .input.boolean .hint{padding-left:0;padding-right:28px}body.rtl .simple_form .label_input__append{right:auto;left:3px}body.rtl .simple_form .label_input__append::after{right:auto;left:0;background-image:linear-gradient(to left, rgba(1, 1, 2, 0), #010102)}body.rtl .simple_form select{background:#010102 url(\"data:image/svg+xml;utf8,\") no-repeat left 8px center/auto 16px}body.rtl .table th,body.rtl .table td{text-align:right}body.rtl .filters .filter-subset{margin-right:0;margin-left:45px}body.rtl .landing-page .header-wrapper .mascot{right:60px;left:auto}body.rtl .landing-page__call-to-action .row__information-board{direction:rtl}body.rtl .landing-page .header .hero .floats .float-1{left:-120px;right:auto}body.rtl .landing-page .header .hero .floats .float-2{left:210px;right:auto}body.rtl .landing-page .header .hero .floats .float-3{left:110px;right:auto}body.rtl .landing-page .header .links .brand img{left:0}body.rtl .landing-page .fa-external-link{padding-right:5px;padding-left:0 !important}body.rtl .landing-page .features #mastodon-timeline{margin-right:0;margin-left:30px}@media screen and (min-width: 631px){body.rtl .column,body.rtl .drawer{padding-left:5px;padding-right:5px}body.rtl .column:first-child,body.rtl .drawer:first-child{padding-left:5px;padding-right:10px}body.rtl .columns-area>div .column,body.rtl .columns-area>div .drawer{padding-left:5px;padding-right:5px}}body.rtl .columns-area--mobile .column,body.rtl .columns-area--mobile .drawer{padding-left:0;padding-right:0}body.rtl .public-layout .header .nav-button{margin-left:8px;margin-right:0}body.rtl .public-layout .public-account-header__tabs{margin-left:0;margin-right:20px}body.rtl .landing-page__information .account__display-name{margin-right:0;margin-left:5px}body.rtl .landing-page__information .account__avatar-wrapper{margin-left:12px;margin-right:0}body.rtl .card__bar .display-name{margin-left:0;margin-right:15px;text-align:right}body.rtl .fa-chevron-left::before{content:\"\"}body.rtl .fa-chevron-right::before{content:\"\"}body.rtl .column-back-button__icon{margin-right:0;margin-left:5px}body.rtl .column-header__setting-arrows .column-header__setting-btn:last-child{padding-left:0;padding-right:10px}body.rtl .simple_form .input.radio_buttons .radio>label input{left:auto;right:0}.emojione[title=\":wavy_dash:\"],.emojione[title=\":waving_black_flag:\"],.emojione[title=\":water_buffalo:\"],.emojione[title=\":video_game:\"],.emojione[title=\":video_camera:\"],.emojione[title=\":vhs:\"],.emojione[title=\":turkey:\"],.emojione[title=\":tophat:\"],.emojione[title=\":top:\"],.emojione[title=\":tm:\"],.emojione[title=\":telephone_receiver:\"],.emojione[title=\":spider:\"],.emojione[title=\":speaking_head_in_silhouette:\"],.emojione[title=\":spades:\"],.emojione[title=\":soon:\"],.emojione[title=\":registered:\"],.emojione[title=\":on:\"],.emojione[title=\":musical_score:\"],.emojione[title=\":movie_camera:\"],.emojione[title=\":mortar_board:\"],.emojione[title=\":microphone:\"],.emojione[title=\":male-guard:\"],.emojione[title=\":lower_left_fountain_pen:\"],.emojione[title=\":lower_left_ballpoint_pen:\"],.emojione[title=\":kaaba:\"],.emojione[title=\":joystick:\"],.emojione[title=\":hole:\"],.emojione[title=\":hocho:\"],.emojione[title=\":heavy_plus_sign:\"],.emojione[title=\":heavy_multiplication_x:\"],.emojione[title=\":heavy_minus_sign:\"],.emojione[title=\":heavy_dollar_sign:\"],.emojione[title=\":heavy_division_sign:\"],.emojione[title=\":heavy_check_mark:\"],.emojione[title=\":guardsman:\"],.emojione[title=\":gorilla:\"],.emojione[title=\":fried_egg:\"],.emojione[title=\":film_projector:\"],.emojione[title=\":female-guard:\"],.emojione[title=\":end:\"],.emojione[title=\":electric_plug:\"],.emojione[title=\":eight_pointed_black_star:\"],.emojione[title=\":dark_sunglasses:\"],.emojione[title=\":currency_exchange:\"],.emojione[title=\":curly_loop:\"],.emojione[title=\":copyright:\"],.emojione[title=\":clubs:\"],.emojione[title=\":camera_with_flash:\"],.emojione[title=\":camera:\"],.emojione[title=\":busts_in_silhouette:\"],.emojione[title=\":bust_in_silhouette:\"],.emojione[title=\":bowling:\"],.emojione[title=\":bomb:\"],.emojione[title=\":black_small_square:\"],.emojione[title=\":black_nib:\"],.emojione[title=\":black_medium_square:\"],.emojione[title=\":black_medium_small_square:\"],.emojione[title=\":black_large_square:\"],.emojione[title=\":black_heart:\"],.emojione[title=\":black_circle:\"],.emojione[title=\":back:\"],.emojione[title=\":ant:\"],.emojione[title=\":8ball:\"]{filter:drop-shadow(1px 1px 0 #ffffff) drop-shadow(-1px 1px 0 #ffffff) drop-shadow(1px -1px 0 #ffffff) drop-shadow(-1px -1px 0 #ffffff);transform:scale(0.71)}","/* http://meyerweb.com/eric/tools/css/reset/\n v2.0 | 20110126\n License: none (public domain)\n*/\n\nhtml, body, div, span, applet, object, iframe,\nh1, h2, h3, h4, h5, h6, p, blockquote, pre,\na, abbr, acronym, address, big, cite, code,\ndel, dfn, em, img, ins, kbd, q, s, samp,\nsmall, strike, strong, sub, sup, tt, var,\nb, u, i, center,\ndl, dt, dd, ol, ul, li,\nfieldset, form, label, legend,\ntable, caption, tbody, tfoot, thead, tr, th, td,\narticle, aside, canvas, details, embed,\nfigure, figcaption, footer, header, hgroup,\nmenu, nav, output, ruby, section, summary,\ntime, mark, audio, video {\n margin: 0;\n padding: 0;\n border: 0;\n font-size: 100%;\n font: inherit;\n vertical-align: baseline;\n}\n\n/* HTML5 display-role reset for older browsers */\narticle, aside, details, figcaption, figure,\nfooter, header, hgroup, menu, nav, section {\n display: block;\n}\n\nbody {\n line-height: 1;\n}\n\nol, ul {\n list-style: none;\n}\n\nblockquote, q {\n quotes: none;\n}\n\nblockquote:before, blockquote:after,\nq:before, q:after {\n content: '';\n content: none;\n}\n\ntable {\n border-collapse: collapse;\n border-spacing: 0;\n}\n\nhtml {\n scrollbar-color: lighten($ui-base-color, 4%) rgba($base-overlay-background, 0.1);\n}\n\n::-webkit-scrollbar {\n width: 12px;\n height: 12px;\n}\n\n::-webkit-scrollbar-thumb {\n background: lighten($ui-base-color, 4%);\n border: 0px none $base-border-color;\n border-radius: 50px;\n}\n\n::-webkit-scrollbar-thumb:hover {\n background: lighten($ui-base-color, 6%);\n}\n\n::-webkit-scrollbar-thumb:active {\n background: lighten($ui-base-color, 4%);\n}\n\n::-webkit-scrollbar-track {\n border: 0px none $base-border-color;\n border-radius: 0;\n background: rgba($base-overlay-background, 0.1);\n}\n\n::-webkit-scrollbar-track:hover {\n background: $ui-base-color;\n}\n\n::-webkit-scrollbar-track:active {\n background: $ui-base-color;\n}\n\n::-webkit-scrollbar-corner {\n background: transparent;\n}\n","// Commonly used web colors\n$black: #000000; // Black\n$white: #ffffff; // White\n$success-green: #79bd9a !default; // Padua\n$error-red: #df405a !default; // Cerise\n$warning-red: #ff5050 !default; // Sunset Orange\n$gold-star: #ca8f04 !default; // Dark Goldenrod\n\n$red-bookmark: $warning-red;\n\n// Pleroma-Dark colors\n$pleroma-bg: #121a24;\n$pleroma-fg: #182230;\n$pleroma-text: #b9b9ba;\n$pleroma-links: #d8a070;\n\n// Values from the classic Mastodon UI\n$classic-base-color: $pleroma-bg;\n$classic-primary-color: #9baec8;\n$classic-secondary-color: #d9e1e8;\n$classic-highlight-color: #d8a070;\n\n// Variables for defaults in UI\n$base-shadow-color: $black !default;\n$base-overlay-background: $black !default;\n$base-border-color: $white !default;\n$simple-background-color: $white !default;\n$valid-value-color: $success-green !default;\n$error-value-color: $error-red !default;\n\n// Tell UI to use selected colors\n$ui-base-color: $classic-base-color !default; // Darkest\n$ui-base-lighter-color: lighten($ui-base-color, 26%) !default; // Lighter darkest\n$ui-primary-color: $classic-primary-color !default; // Lighter\n$ui-secondary-color: $classic-secondary-color !default; // Lightest\n$ui-highlight-color: $classic-highlight-color !default;\n\n// Variables for texts\n$primary-text-color: $white !default;\n$darker-text-color: $ui-primary-color !default;\n$dark-text-color: $ui-base-lighter-color !default;\n$secondary-text-color: $ui-secondary-color !default;\n$highlight-text-color: $ui-highlight-color !default;\n$action-button-color: $ui-base-lighter-color !default;\n// For texts on inverted backgrounds\n$inverted-text-color: $ui-base-color !default;\n$lighter-text-color: $ui-base-lighter-color !default;\n$light-text-color: $ui-primary-color !default;\n\n// Language codes that uses CJK fonts\n$cjk-langs: ja, ko, zh-CN, zh-HK, zh-TW;\n\n// Variables for components\n$media-modal-media-max-width: 100%;\n// put margins on top and bottom of image to avoid the screen covered by image.\n$media-modal-media-max-height: 80%;\n\n$no-gap-breakpoint: 415px;\n\n$font-sans-serif: 'mastodon-font-sans-serif' !default;\n$font-display: 'mastodon-font-display' !default;\n$font-monospace: 'mastodon-font-monospace' !default;\n","@function hex-color($color) {\n @if type-of($color) == 'color' {\n $color: str-slice(ie-hex-str($color), 4);\n }\n\n @return '%23' + unquote($color);\n}\n\nbody {\n font-family: $font-sans-serif, sans-serif;\n background: darken($ui-base-color, 7%);\n font-size: 13px;\n line-height: 18px;\n font-weight: 400;\n color: $primary-text-color;\n text-rendering: optimizelegibility;\n font-feature-settings: \"kern\";\n text-size-adjust: none;\n -webkit-tap-highlight-color: rgba(0, 0, 0, 0);\n -webkit-tap-highlight-color: transparent;\n\n &.system-font {\n // system-ui => standard property (Chrome/Android WebView 56+, Opera 43+, Safari 11+)\n // -apple-system => Safari <11 specific\n // BlinkMacSystemFont => Chrome <56 on macOS specific\n // Segoe UI => Windows 7/8/10\n // Oxygen => KDE\n // Ubuntu => Unity/Ubuntu\n // Cantarell => GNOME\n // Fira Sans => Firefox OS\n // Droid Sans => Older Androids (<4.0)\n // Helvetica Neue => Older macOS <10.11\n // $font-sans-serif => web-font (Roboto) fallback and newer Androids (>=4.0)\n font-family: system-ui, -apple-system, BlinkMacSystemFont, \"Segoe UI\", \"Oxygen\", \"Ubuntu\", \"Cantarell\", \"Fira Sans\", \"Droid Sans\", \"Helvetica Neue\", $font-sans-serif, sans-serif;\n }\n\n &.app-body {\n padding: 0;\n\n &.layout-single-column {\n height: auto;\n min-height: 100vh;\n overflow-y: scroll;\n }\n\n &.layout-multiple-columns {\n position: absolute;\n width: 100%;\n height: 100%;\n }\n\n &.with-modals--active {\n overflow-y: hidden;\n }\n }\n\n &.lighter {\n background: $ui-base-color;\n }\n\n &.with-modals {\n overflow-x: hidden;\n overflow-y: scroll;\n\n &--active {\n overflow-y: hidden;\n }\n }\n\n &.player {\n text-align: center;\n }\n\n &.embed {\n background: lighten($ui-base-color, 4%);\n margin: 0;\n padding-bottom: 0;\n\n .container {\n position: absolute;\n width: 100%;\n height: 100%;\n overflow: hidden;\n }\n }\n\n &.admin {\n background: darken($ui-base-color, 4%);\n padding: 0;\n }\n\n &.error {\n position: absolute;\n text-align: center;\n color: $darker-text-color;\n background: $ui-base-color;\n width: 100%;\n height: 100%;\n padding: 0;\n display: flex;\n justify-content: center;\n align-items: center;\n\n .dialog {\n vertical-align: middle;\n margin: 20px;\n\n &__illustration {\n img {\n display: block;\n max-width: 470px;\n width: 100%;\n height: auto;\n margin-top: -120px;\n }\n }\n\n h1 {\n font-size: 20px;\n line-height: 28px;\n font-weight: 400;\n }\n }\n }\n}\n\nbutton {\n font-family: inherit;\n cursor: pointer;\n\n &:focus {\n outline: none;\n }\n}\n\n.app-holder {\n &,\n & > div,\n & > noscript {\n display: flex;\n width: 100%;\n align-items: center;\n justify-content: center;\n outline: 0 !important;\n }\n\n & > noscript {\n height: 100vh;\n }\n}\n\n.layout-single-column .app-holder {\n &,\n & > div {\n min-height: 100vh;\n }\n}\n\n.layout-multiple-columns .app-holder {\n &,\n & > div {\n height: 100%;\n }\n}\n\n.error-boundary,\n.app-holder noscript {\n flex-direction: column;\n font-size: 16px;\n font-weight: 400;\n line-height: 1.7;\n color: lighten($error-red, 4%);\n text-align: center;\n\n & > div {\n max-width: 500px;\n }\n\n p {\n margin-bottom: .85em;\n\n &:last-child {\n margin-bottom: 0;\n }\n }\n\n a {\n color: $highlight-text-color;\n\n &:hover,\n &:focus,\n &:active {\n text-decoration: none;\n }\n }\n\n &__footer {\n color: $dark-text-color;\n font-size: 13px;\n\n a {\n color: $dark-text-color;\n }\n }\n\n button {\n display: inline;\n border: 0;\n background: transparent;\n color: $dark-text-color;\n font: inherit;\n padding: 0;\n margin: 0;\n line-height: inherit;\n cursor: pointer;\n outline: 0;\n transition: color 300ms linear;\n text-decoration: underline;\n\n &:hover,\n &:focus,\n &:active {\n text-decoration: none;\n }\n\n &.copied {\n color: $valid-value-color;\n transition: none;\n }\n }\n}\n",".container-alt {\n width: 700px;\n margin: 0 auto;\n margin-top: 40px;\n\n @media screen and (max-width: 740px) {\n width: 100%;\n margin: 0;\n }\n}\n\n.logo-container {\n margin: 100px auto 50px;\n\n @media screen and (max-width: 500px) {\n margin: 40px auto 0;\n }\n\n h1 {\n display: flex;\n justify-content: center;\n align-items: center;\n\n svg {\n fill: $primary-text-color;\n height: 42px;\n margin-right: 10px;\n }\n\n a {\n display: flex;\n justify-content: center;\n align-items: center;\n color: $primary-text-color;\n text-decoration: none;\n outline: 0;\n padding: 12px 16px;\n line-height: 32px;\n font-family: $font-display, sans-serif;\n font-weight: 500;\n font-size: 14px;\n }\n }\n}\n\n.compose-standalone {\n .compose-form {\n width: 400px;\n margin: 0 auto;\n padding: 20px 0;\n margin-top: 40px;\n box-sizing: border-box;\n\n @media screen and (max-width: 400px) {\n width: 100%;\n margin-top: 0;\n padding: 20px;\n }\n }\n}\n\n.account-header {\n width: 400px;\n margin: 0 auto;\n display: flex;\n font-size: 13px;\n line-height: 18px;\n box-sizing: border-box;\n padding: 20px 0;\n padding-bottom: 0;\n margin-bottom: -30px;\n margin-top: 40px;\n\n @media screen and (max-width: 440px) {\n width: 100%;\n margin: 0;\n margin-bottom: 10px;\n padding: 20px;\n padding-bottom: 0;\n }\n\n .avatar {\n width: 40px;\n height: 40px;\n margin-right: 8px;\n\n img {\n width: 100%;\n height: 100%;\n display: block;\n margin: 0;\n border-radius: 4px;\n }\n }\n\n .name {\n flex: 1 1 auto;\n color: $secondary-text-color;\n width: calc(100% - 88px);\n\n .username {\n display: block;\n font-weight: 500;\n text-overflow: ellipsis;\n overflow: hidden;\n }\n }\n\n .logout-link {\n display: block;\n font-size: 32px;\n line-height: 40px;\n margin-left: 8px;\n }\n}\n\n.grid-3 {\n display: grid;\n grid-gap: 10px;\n grid-template-columns: 3fr 1fr;\n grid-auto-columns: 25%;\n grid-auto-rows: max-content;\n\n .column-0 {\n grid-column: 1 / 3;\n grid-row: 1;\n }\n\n .column-1 {\n grid-column: 1;\n grid-row: 2;\n }\n\n .column-2 {\n grid-column: 2;\n grid-row: 2;\n }\n\n .column-3 {\n grid-column: 1 / 3;\n grid-row: 3;\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n grid-gap: 0;\n grid-template-columns: minmax(0, 100%);\n\n .column-0 {\n grid-column: 1;\n }\n\n .column-1 {\n grid-column: 1;\n grid-row: 3;\n }\n\n .column-2 {\n grid-column: 1;\n grid-row: 2;\n }\n\n .column-3 {\n grid-column: 1;\n grid-row: 4;\n }\n }\n}\n\n.grid-4 {\n display: grid;\n grid-gap: 10px;\n grid-template-columns: repeat(4, minmax(0, 1fr));\n grid-auto-columns: 25%;\n grid-auto-rows: max-content;\n\n .column-0 {\n grid-column: 1 / 5;\n grid-row: 1;\n }\n\n .column-1 {\n grid-column: 1 / 4;\n grid-row: 2;\n }\n\n .column-2 {\n grid-column: 4;\n grid-row: 2;\n }\n\n .column-3 {\n grid-column: 2 / 5;\n grid-row: 3;\n }\n\n .column-4 {\n grid-column: 1;\n grid-row: 3;\n }\n\n .landing-page__call-to-action {\n min-height: 100%;\n }\n\n .flash-message {\n margin-bottom: 10px;\n }\n\n @media screen and (max-width: 738px) {\n grid-template-columns: minmax(0, 50%) minmax(0, 50%);\n\n .landing-page__call-to-action {\n padding: 20px;\n display: flex;\n align-items: center;\n justify-content: center;\n }\n\n .row__information-board {\n width: 100%;\n justify-content: center;\n align-items: center;\n }\n\n .row__mascot {\n display: none;\n }\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n grid-gap: 0;\n grid-template-columns: minmax(0, 100%);\n\n .column-0 {\n grid-column: 1;\n }\n\n .column-1 {\n grid-column: 1;\n grid-row: 3;\n }\n\n .column-2 {\n grid-column: 1;\n grid-row: 2;\n }\n\n .column-3 {\n grid-column: 1;\n grid-row: 5;\n }\n\n .column-4 {\n grid-column: 1;\n grid-row: 4;\n }\n }\n}\n\n.public-layout {\n @media screen and (max-width: $no-gap-breakpoint) {\n padding-top: 48px;\n }\n\n .container {\n max-width: 960px;\n\n @media screen and (max-width: $no-gap-breakpoint) {\n padding: 0;\n }\n }\n\n .header {\n background: lighten($ui-base-color, 8%);\n box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);\n border-radius: 4px;\n height: 48px;\n margin: 10px 0;\n display: flex;\n align-items: stretch;\n justify-content: center;\n flex-wrap: nowrap;\n overflow: hidden;\n\n @media screen and (max-width: $no-gap-breakpoint) {\n position: fixed;\n width: 100%;\n top: 0;\n left: 0;\n margin: 0;\n border-radius: 0;\n box-shadow: none;\n z-index: 110;\n }\n\n & > div {\n flex: 1 1 33.3%;\n min-height: 1px;\n }\n\n .nav-left {\n display: flex;\n align-items: stretch;\n justify-content: flex-start;\n flex-wrap: nowrap;\n }\n\n .nav-center {\n display: flex;\n align-items: stretch;\n justify-content: center;\n flex-wrap: nowrap;\n }\n\n .nav-right {\n display: flex;\n align-items: stretch;\n justify-content: flex-end;\n flex-wrap: nowrap;\n }\n\n .brand {\n display: block;\n padding: 15px;\n\n svg {\n display: block;\n height: 18px;\n width: auto;\n position: relative;\n bottom: -2px;\n fill: $primary-text-color;\n\n @media screen and (max-width: $no-gap-breakpoint) {\n height: 20px;\n }\n }\n\n &:hover,\n &:focus,\n &:active {\n background: lighten($ui-base-color, 12%);\n }\n }\n\n .nav-link {\n display: flex;\n align-items: center;\n padding: 0 1rem;\n font-size: 12px;\n font-weight: 500;\n text-decoration: none;\n color: $darker-text-color;\n white-space: nowrap;\n text-align: center;\n\n &:hover,\n &:focus,\n &:active {\n text-decoration: underline;\n color: $primary-text-color;\n }\n\n @media screen and (max-width: 550px) {\n &.optional {\n display: none;\n }\n }\n }\n\n .nav-button {\n background: lighten($ui-base-color, 16%);\n margin: 8px;\n margin-left: 0;\n border-radius: 4px;\n\n &:hover,\n &:focus,\n &:active {\n text-decoration: none;\n background: lighten($ui-base-color, 20%);\n }\n }\n }\n\n $no-columns-breakpoint: 600px;\n\n .grid {\n display: grid;\n grid-gap: 10px;\n grid-template-columns: minmax(300px, 3fr) minmax(298px, 1fr);\n grid-auto-columns: 25%;\n grid-auto-rows: max-content;\n\n .column-0 {\n grid-row: 1;\n grid-column: 1;\n }\n\n .column-1 {\n grid-row: 1;\n grid-column: 2;\n }\n\n @media screen and (max-width: $no-columns-breakpoint) {\n grid-template-columns: 100%;\n grid-gap: 0;\n\n .column-1 {\n display: none;\n }\n }\n }\n\n .directory__card {\n border-radius: 4px;\n\n @media screen and (max-width: $no-gap-breakpoint) {\n border-radius: 0;\n }\n }\n\n .page-header {\n @media screen and (max-width: $no-gap-breakpoint) {\n border-bottom: 0;\n }\n }\n\n .public-account-header {\n overflow: hidden;\n margin-bottom: 10px;\n box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);\n\n &.inactive {\n opacity: 0.5;\n\n .public-account-header__image,\n .avatar {\n filter: grayscale(100%);\n }\n\n .logo-button {\n background-color: $secondary-text-color;\n }\n }\n\n &__image {\n border-radius: 4px 4px 0 0;\n overflow: hidden;\n height: 300px;\n position: relative;\n background: darken($ui-base-color, 12%);\n\n &::after {\n content: \"\";\n display: block;\n position: absolute;\n width: 100%;\n height: 100%;\n box-shadow: inset 0 -1px 1px 1px rgba($base-shadow-color, 0.15);\n top: 0;\n left: 0;\n }\n\n img {\n object-fit: cover;\n display: block;\n width: 100%;\n height: 100%;\n margin: 0;\n border-radius: 4px 4px 0 0;\n }\n\n @media screen and (max-width: 600px) {\n height: 200px;\n }\n }\n\n &--no-bar {\n margin-bottom: 0;\n\n .public-account-header__image,\n .public-account-header__image img {\n border-radius: 4px;\n\n @media screen and (max-width: $no-gap-breakpoint) {\n border-radius: 0;\n }\n }\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n margin-bottom: 0;\n box-shadow: none;\n\n &__image::after {\n display: none;\n }\n\n &__image,\n &__image img {\n border-radius: 0;\n }\n }\n\n &__bar {\n position: relative;\n margin-top: -80px;\n display: flex;\n justify-content: flex-start;\n\n &::before {\n content: \"\";\n display: block;\n background: lighten($ui-base-color, 4%);\n position: absolute;\n bottom: 0;\n left: 0;\n right: 0;\n height: 60px;\n border-radius: 0 0 4px 4px;\n z-index: -1;\n }\n\n .avatar {\n display: block;\n width: 120px;\n height: 120px;\n padding-left: 20px - 4px;\n flex: 0 0 auto;\n\n img {\n display: block;\n width: 100%;\n height: 100%;\n margin: 0;\n border-radius: 50%;\n border: 4px solid lighten($ui-base-color, 4%);\n background: darken($ui-base-color, 8%);\n }\n }\n\n @media screen and (max-width: 600px) {\n margin-top: 0;\n background: lighten($ui-base-color, 4%);\n border-radius: 0 0 4px 4px;\n padding: 5px;\n\n &::before {\n display: none;\n }\n\n .avatar {\n width: 48px;\n height: 48px;\n padding: 7px 0;\n padding-left: 10px;\n\n img {\n border: 0;\n border-radius: 4px;\n }\n\n @media screen and (max-width: 360px) {\n display: none;\n }\n }\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n border-radius: 0;\n }\n\n @media screen and (max-width: $no-columns-breakpoint) {\n flex-wrap: wrap;\n }\n }\n\n &__tabs {\n flex: 1 1 auto;\n margin-left: 20px;\n\n &__name {\n padding-top: 20px;\n padding-bottom: 8px;\n\n h1 {\n font-size: 20px;\n line-height: 18px * 1.5;\n color: $primary-text-color;\n font-weight: 500;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n text-shadow: 1px 1px 1px $base-shadow-color;\n\n small {\n display: block;\n font-size: 14px;\n color: $primary-text-color;\n font-weight: 400;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n }\n }\n\n @media screen and (max-width: 600px) {\n margin-left: 15px;\n display: flex;\n justify-content: space-between;\n align-items: center;\n\n &__name {\n padding-top: 0;\n padding-bottom: 0;\n\n h1 {\n font-size: 16px;\n line-height: 24px;\n text-shadow: none;\n\n small {\n color: $darker-text-color;\n }\n }\n }\n }\n\n &__tabs {\n display: flex;\n justify-content: flex-start;\n align-items: stretch;\n height: 58px;\n\n .details-counters {\n display: flex;\n flex-direction: row;\n min-width: 300px;\n }\n\n @media screen and (max-width: $no-columns-breakpoint) {\n .details-counters {\n display: none;\n }\n }\n\n .counter {\n min-width: 33.3%;\n box-sizing: border-box;\n flex: 0 0 auto;\n color: $darker-text-color;\n padding: 10px;\n border-right: 1px solid lighten($ui-base-color, 4%);\n cursor: default;\n text-align: center;\n position: relative;\n\n a {\n display: block;\n }\n\n &:last-child {\n border-right: 0;\n }\n\n &::after {\n display: block;\n content: \"\";\n position: absolute;\n bottom: 0;\n left: 0;\n width: 100%;\n border-bottom: 4px solid $ui-primary-color;\n opacity: 0.5;\n transition: all 400ms ease;\n }\n\n &.active {\n &::after {\n border-bottom: 4px solid $highlight-text-color;\n opacity: 1;\n }\n\n &.inactive::after {\n border-bottom-color: $secondary-text-color;\n }\n }\n\n &:hover {\n &::after {\n opacity: 1;\n transition-duration: 100ms;\n }\n }\n\n a {\n text-decoration: none;\n color: inherit;\n }\n\n .counter-label {\n font-size: 12px;\n display: block;\n }\n\n .counter-number {\n font-weight: 500;\n font-size: 18px;\n margin-bottom: 5px;\n color: $primary-text-color;\n font-family: $font-display, sans-serif;\n }\n }\n\n .spacer {\n flex: 1 1 auto;\n height: 1px;\n }\n\n &__buttons {\n padding: 7px 8px;\n }\n }\n }\n\n &__extra {\n display: none;\n margin-top: 4px;\n\n .public-account-bio {\n border-radius: 0;\n box-shadow: none;\n background: transparent;\n margin: 0 -5px;\n\n .account__header__fields {\n border-top: 1px solid lighten($ui-base-color, 12%);\n }\n\n .roles {\n display: none;\n }\n }\n\n &__links {\n margin-top: -15px;\n font-size: 14px;\n color: $darker-text-color;\n\n a {\n display: inline-block;\n color: $darker-text-color;\n text-decoration: none;\n padding: 15px;\n font-weight: 500;\n\n strong {\n font-weight: 700;\n color: $primary-text-color;\n }\n }\n }\n\n @media screen and (max-width: $no-columns-breakpoint) {\n display: block;\n flex: 100%;\n }\n }\n }\n\n .account__section-headline {\n border-radius: 4px 4px 0 0;\n\n @media screen and (max-width: $no-gap-breakpoint) {\n border-radius: 0;\n }\n }\n\n .detailed-status__meta {\n margin-top: 25px;\n }\n\n .public-account-bio {\n background: lighten($ui-base-color, 8%);\n box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);\n border-radius: 4px;\n overflow: hidden;\n margin-bottom: 10px;\n\n @media screen and (max-width: $no-gap-breakpoint) {\n box-shadow: none;\n margin-bottom: 0;\n border-radius: 0;\n }\n\n .account__header__fields {\n margin: 0;\n border-top: 0;\n\n a {\n color: lighten($ui-highlight-color, 8%);\n }\n\n dl:first-child .verified {\n border-radius: 0 4px 0 0;\n }\n\n .verified a {\n color: $valid-value-color;\n }\n }\n\n .account__header__content {\n padding: 20px;\n padding-bottom: 0;\n color: $primary-text-color;\n }\n\n &__extra,\n .roles {\n padding: 20px;\n font-size: 14px;\n color: $darker-text-color;\n }\n\n .roles {\n padding-bottom: 0;\n }\n }\n\n .directory__list {\n display: grid;\n grid-gap: 10px;\n grid-template-columns: minmax(0, 50%) minmax(0, 50%);\n\n @media screen and (max-width: $no-gap-breakpoint) {\n display: block;\n }\n\n .icon-button {\n font-size: 18px;\n }\n }\n\n .directory__card {\n margin-bottom: 0;\n }\n\n .card-grid {\n display: flex;\n flex-wrap: wrap;\n min-width: 100%;\n margin: 0 -5px;\n\n & > div {\n box-sizing: border-box;\n flex: 1 0 auto;\n width: 300px;\n padding: 0 5px;\n margin-bottom: 10px;\n max-width: 33.333%;\n\n @media screen and (max-width: 900px) {\n max-width: 50%;\n }\n\n @media screen and (max-width: 600px) {\n max-width: 100%;\n }\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n margin: 0;\n border-top: 1px solid lighten($ui-base-color, 8%);\n\n & > div {\n width: 100%;\n padding: 0;\n margin-bottom: 0;\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n\n &:last-child {\n border-bottom: 0;\n }\n\n .card__bar {\n background: $ui-base-color;\n\n &:hover,\n &:active,\n &:focus {\n background: lighten($ui-base-color, 4%);\n }\n }\n }\n }\n }\n}\n",".no-list {\n list-style: none;\n\n li {\n display: inline-block;\n margin: 0 5px;\n }\n}\n\n.recovery-codes {\n list-style: none;\n margin: 0 auto;\n\n li {\n font-size: 125%;\n line-height: 1.5;\n letter-spacing: 1px;\n }\n}\n",".public-layout {\n .footer {\n text-align: left;\n padding-top: 20px;\n padding-bottom: 60px;\n font-size: 12px;\n color: lighten($ui-base-color, 34%);\n\n @media screen and (max-width: $no-gap-breakpoint) {\n padding-left: 20px;\n padding-right: 20px;\n }\n\n .grid {\n display: grid;\n grid-gap: 10px;\n grid-template-columns: 1fr 1fr 2fr 1fr 1fr;\n\n .column-0 {\n grid-column: 1;\n grid-row: 1;\n min-width: 0;\n }\n\n .column-1 {\n grid-column: 2;\n grid-row: 1;\n min-width: 0;\n }\n\n .column-2 {\n grid-column: 3;\n grid-row: 1;\n min-width: 0;\n text-align: center;\n\n h4 a {\n color: lighten($ui-base-color, 34%);\n }\n }\n\n .column-3 {\n grid-column: 4;\n grid-row: 1;\n min-width: 0;\n }\n\n .column-4 {\n grid-column: 5;\n grid-row: 1;\n min-width: 0;\n }\n\n @media screen and (max-width: 690px) {\n grid-template-columns: 1fr 2fr 1fr;\n\n .column-0,\n .column-1 {\n grid-column: 1;\n }\n\n .column-1 {\n grid-row: 2;\n }\n\n .column-2 {\n grid-column: 2;\n }\n\n .column-3,\n .column-4 {\n grid-column: 3;\n }\n\n .column-4 {\n grid-row: 2;\n }\n }\n\n @media screen and (max-width: 600px) {\n .column-1 {\n display: block;\n }\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n .column-0,\n .column-1,\n .column-3,\n .column-4 {\n display: none;\n }\n }\n }\n\n h4 {\n text-transform: uppercase;\n font-weight: 700;\n margin-bottom: 8px;\n color: $darker-text-color;\n\n a {\n color: inherit;\n text-decoration: none;\n }\n }\n\n ul a {\n text-decoration: none;\n color: lighten($ui-base-color, 34%);\n\n &:hover,\n &:active,\n &:focus {\n text-decoration: underline;\n }\n }\n\n .brand {\n svg {\n display: block;\n height: 36px;\n width: auto;\n margin: 0 auto;\n fill: lighten($ui-base-color, 34%);\n }\n\n &:hover,\n &:focus,\n &:active {\n svg {\n fill: lighten($ui-base-color, 38%);\n }\n }\n }\n }\n}\n",".compact-header {\n h1 {\n font-size: 24px;\n line-height: 28px;\n color: $darker-text-color;\n font-weight: 500;\n margin-bottom: 20px;\n padding: 0 10px;\n word-wrap: break-word;\n\n @media screen and (max-width: 740px) {\n text-align: center;\n padding: 20px 10px 0;\n }\n\n a {\n color: inherit;\n text-decoration: none;\n }\n\n small {\n font-weight: 400;\n color: $secondary-text-color;\n }\n\n img {\n display: inline-block;\n margin-bottom: -5px;\n margin-right: 15px;\n width: 36px;\n height: 36px;\n }\n }\n}\n",".hero-widget {\n margin-bottom: 10px;\n box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);\n\n &__img {\n width: 100%;\n position: relative;\n overflow: hidden;\n border-radius: 4px 4px 0 0;\n background: $base-shadow-color;\n\n img {\n object-fit: cover;\n display: block;\n width: 100%;\n height: 100%;\n margin: 0;\n border-radius: 4px 4px 0 0;\n }\n }\n\n &__text {\n background: $ui-base-color;\n padding: 20px;\n border-radius: 0 0 4px 4px;\n font-size: 15px;\n color: $darker-text-color;\n line-height: 20px;\n word-wrap: break-word;\n font-weight: 400;\n\n .emojione {\n width: 20px;\n height: 20px;\n margin: -3px 0 0;\n }\n\n p {\n margin-bottom: 20px;\n\n &:last-child {\n margin-bottom: 0;\n }\n }\n\n em {\n display: inline;\n margin: 0;\n padding: 0;\n font-weight: 700;\n background: transparent;\n font-family: inherit;\n font-size: inherit;\n line-height: inherit;\n color: lighten($darker-text-color, 10%);\n }\n\n a {\n color: $secondary-text-color;\n text-decoration: none;\n\n &:hover {\n text-decoration: underline;\n }\n }\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n display: none;\n }\n}\n\n.endorsements-widget {\n margin-bottom: 10px;\n padding-bottom: 10px;\n\n h4 {\n padding: 10px;\n text-transform: uppercase;\n font-weight: 700;\n font-size: 13px;\n color: $darker-text-color;\n }\n\n .account {\n padding: 10px 0;\n\n &:last-child {\n border-bottom: 0;\n }\n\n .account__display-name {\n display: flex;\n align-items: center;\n }\n\n .account__avatar {\n width: 44px;\n height: 44px;\n background-size: 44px 44px;\n }\n }\n\n .trends__item {\n padding: 10px;\n }\n}\n\n.trends-widget {\n h4 {\n color: $darker-text-color;\n }\n}\n\n.box-widget {\n padding: 20px;\n border-radius: 4px;\n background: $ui-base-color;\n box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);\n}\n\n.placeholder-widget {\n padding: 16px;\n border-radius: 4px;\n border: 2px dashed $dark-text-color;\n text-align: center;\n color: $darker-text-color;\n margin-bottom: 10px;\n}\n\n.contact-widget {\n min-height: 100%;\n font-size: 15px;\n color: $darker-text-color;\n line-height: 20px;\n word-wrap: break-word;\n font-weight: 400;\n padding: 0;\n\n h4 {\n padding: 10px;\n text-transform: uppercase;\n font-weight: 700;\n font-size: 13px;\n color: $darker-text-color;\n }\n\n .account {\n border-bottom: 0;\n padding: 10px 0;\n padding-top: 5px;\n }\n\n & > a {\n display: inline-block;\n padding: 10px;\n padding-top: 0;\n color: $darker-text-color;\n text-decoration: none;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n\n &:hover,\n &:focus,\n &:active {\n text-decoration: underline;\n }\n }\n}\n\n.moved-account-widget {\n padding: 15px;\n padding-bottom: 20px;\n border-radius: 4px;\n background: $ui-base-color;\n box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);\n color: $secondary-text-color;\n font-weight: 400;\n margin-bottom: 10px;\n\n strong,\n a {\n font-weight: 500;\n\n @each $lang in $cjk-langs {\n &:lang(#{$lang}) {\n font-weight: 700;\n }\n }\n }\n\n a {\n color: inherit;\n text-decoration: underline;\n\n &.mention {\n text-decoration: none;\n\n span {\n text-decoration: none;\n }\n\n &:focus,\n &:hover,\n &:active {\n text-decoration: none;\n\n span {\n text-decoration: underline;\n }\n }\n }\n }\n\n &__message {\n margin-bottom: 15px;\n\n .fa {\n margin-right: 5px;\n color: $darker-text-color;\n }\n }\n\n &__card {\n .detailed-status__display-avatar {\n position: relative;\n cursor: pointer;\n }\n\n .detailed-status__display-name {\n margin-bottom: 0;\n text-decoration: none;\n\n span {\n font-weight: 400;\n }\n }\n }\n}\n\n.memoriam-widget {\n padding: 20px;\n border-radius: 4px;\n background: $base-shadow-color;\n box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);\n font-size: 14px;\n color: $darker-text-color;\n margin-bottom: 10px;\n}\n\n.page-header {\n background: lighten($ui-base-color, 8%);\n box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);\n border-radius: 4px;\n padding: 60px 15px;\n text-align: center;\n margin: 10px 0;\n\n h1 {\n color: $primary-text-color;\n font-size: 36px;\n line-height: 1.1;\n font-weight: 700;\n margin-bottom: 10px;\n }\n\n p {\n font-size: 15px;\n color: $darker-text-color;\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n margin-top: 0;\n background: lighten($ui-base-color, 4%);\n\n h1 {\n font-size: 24px;\n }\n }\n}\n\n.directory {\n background: $ui-base-color;\n border-radius: 4px;\n box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);\n\n &__tag {\n box-sizing: border-box;\n margin-bottom: 10px;\n\n & > a,\n & > div {\n display: flex;\n align-items: center;\n justify-content: space-between;\n background: $ui-base-color;\n border-radius: 4px;\n padding: 15px;\n text-decoration: none;\n color: inherit;\n box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);\n }\n\n & > a {\n &:hover,\n &:active,\n &:focus {\n background: lighten($ui-base-color, 8%);\n }\n }\n\n &.active > a {\n background: $ui-highlight-color;\n cursor: default;\n }\n\n &.disabled > div {\n opacity: 0.5;\n cursor: default;\n }\n\n h4 {\n flex: 1 1 auto;\n font-size: 18px;\n font-weight: 700;\n color: $primary-text-color;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n\n .fa {\n color: $darker-text-color;\n }\n\n small {\n display: block;\n font-weight: 400;\n font-size: 15px;\n margin-top: 8px;\n color: $darker-text-color;\n }\n }\n\n &.active h4 {\n &,\n .fa,\n small,\n .trends__item__current {\n color: $primary-text-color;\n }\n }\n\n .avatar-stack {\n flex: 0 0 auto;\n width: (36px + 4px) * 3;\n }\n\n &.active .avatar-stack .account__avatar {\n border-color: $ui-highlight-color;\n }\n\n .trends__item__current {\n padding-right: 0;\n }\n }\n}\n\n.avatar-stack {\n display: flex;\n justify-content: flex-end;\n\n .account__avatar {\n flex: 0 0 auto;\n width: 36px;\n height: 36px;\n border-radius: 50%;\n position: relative;\n margin-left: -10px;\n background: darken($ui-base-color, 8%);\n border: 2px solid $ui-base-color;\n\n &:nth-child(1) {\n z-index: 1;\n }\n\n &:nth-child(2) {\n z-index: 2;\n }\n\n &:nth-child(3) {\n z-index: 3;\n }\n }\n}\n\n.accounts-table {\n width: 100%;\n\n .account {\n padding: 0;\n border: 0;\n }\n\n strong {\n font-weight: 700;\n }\n\n thead th {\n text-align: center;\n text-transform: uppercase;\n color: $darker-text-color;\n font-weight: 700;\n padding: 10px;\n\n &:first-child {\n text-align: left;\n }\n }\n\n tbody td {\n padding: 15px 0;\n vertical-align: middle;\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n }\n\n tbody tr:last-child td {\n border-bottom: 0;\n }\n\n &__count {\n width: 120px;\n text-align: center;\n font-size: 15px;\n font-weight: 500;\n color: $primary-text-color;\n\n small {\n display: block;\n color: $darker-text-color;\n font-weight: 400;\n font-size: 14px;\n }\n }\n\n &__comment {\n width: 50%;\n vertical-align: initial !important;\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n tbody td.optional {\n display: none;\n }\n }\n}\n\n.moved-account-widget,\n.memoriam-widget,\n.box-widget,\n.contact-widget,\n.landing-page__information.contact-widget,\n.directory,\n.page-header {\n @media screen and (max-width: $no-gap-breakpoint) {\n margin-bottom: 0;\n box-shadow: none;\n border-radius: 0;\n }\n}\n\n$maximum-width: 1235px;\n$fluid-breakpoint: $maximum-width + 20px;\n\n.statuses-grid {\n min-height: 600px;\n\n @media screen and (max-width: 640px) {\n width: 100% !important; // Masonry layout is unnecessary at this width\n }\n\n &__item {\n width: (960px - 20px) / 3;\n\n @media screen and (max-width: $fluid-breakpoint) {\n width: (940px - 20px) / 3;\n }\n\n @media screen and (max-width: 640px) {\n width: 100%;\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n width: 100vw;\n }\n }\n\n .detailed-status {\n border-radius: 4px;\n\n @media screen and (max-width: $no-gap-breakpoint) {\n border-top: 1px solid lighten($ui-base-color, 16%);\n }\n\n &.compact {\n .detailed-status__meta {\n margin-top: 15px;\n }\n\n .status__content {\n font-size: 15px;\n line-height: 20px;\n\n .emojione {\n width: 20px;\n height: 20px;\n margin: -3px 0 0;\n }\n\n .status__content__spoiler-link {\n line-height: 20px;\n margin: 0;\n }\n }\n\n .media-gallery,\n .status-card,\n .video-player {\n margin-top: 15px;\n }\n }\n }\n}\n\n.notice-widget {\n margin-bottom: 10px;\n color: $darker-text-color;\n\n p {\n margin-bottom: 10px;\n\n &:last-child {\n margin-bottom: 0;\n }\n }\n\n a {\n font-size: 14px;\n line-height: 20px;\n }\n}\n\n.notice-widget,\n.placeholder-widget {\n a {\n text-decoration: none;\n font-weight: 500;\n color: $ui-highlight-color;\n\n &:hover,\n &:focus,\n &:active {\n text-decoration: underline;\n }\n }\n}\n\n.table-of-contents {\n background: darken($ui-base-color, 4%);\n min-height: 100%;\n font-size: 14px;\n border-radius: 4px;\n\n li a {\n display: block;\n font-weight: 500;\n padding: 15px;\n overflow: hidden;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n text-decoration: none;\n color: $primary-text-color;\n border-bottom: 1px solid lighten($ui-base-color, 4%);\n\n &:hover,\n &:focus,\n &:active {\n text-decoration: underline;\n }\n }\n\n li:last-child a {\n border-bottom: 0;\n }\n\n li ul {\n padding-left: 20px;\n border-bottom: 1px solid lighten($ui-base-color, 4%);\n }\n}\n","$no-columns-breakpoint: 600px;\n\ncode {\n font-family: $font-monospace, monospace;\n font-weight: 400;\n}\n\n.form-container {\n max-width: 400px;\n padding: 20px;\n margin: 0 auto;\n}\n\n.simple_form {\n .input {\n margin-bottom: 15px;\n overflow: hidden;\n\n &.hidden {\n margin: 0;\n }\n\n &.radio_buttons {\n .radio {\n margin-bottom: 15px;\n\n &:last-child {\n margin-bottom: 0;\n }\n }\n\n .radio > label {\n position: relative;\n padding-left: 28px;\n\n input {\n position: absolute;\n top: -2px;\n left: 0;\n }\n }\n }\n\n &.boolean {\n position: relative;\n margin-bottom: 0;\n\n .label_input > label {\n font-family: inherit;\n font-size: 14px;\n padding-top: 5px;\n color: $primary-text-color;\n display: block;\n width: auto;\n }\n\n .label_input,\n .hint {\n padding-left: 28px;\n }\n\n .label_input__wrapper {\n position: static;\n }\n\n label.checkbox {\n position: absolute;\n top: 2px;\n left: 0;\n }\n\n label a {\n color: $highlight-text-color;\n text-decoration: underline;\n\n &:hover,\n &:active,\n &:focus {\n text-decoration: none;\n }\n }\n\n .recommended {\n position: absolute;\n margin: 0 4px;\n margin-top: -2px;\n }\n }\n }\n\n .row {\n display: flex;\n margin: 0 -5px;\n\n .input {\n box-sizing: border-box;\n flex: 1 1 auto;\n width: 50%;\n padding: 0 5px;\n }\n }\n\n .hint {\n color: $darker-text-color;\n\n a {\n color: $highlight-text-color;\n }\n\n code {\n border-radius: 3px;\n padding: 0.2em 0.4em;\n background: darken($ui-base-color, 12%);\n }\n\n li {\n list-style: disc;\n margin-left: 18px;\n }\n }\n\n ul.hint {\n margin-bottom: 15px;\n }\n\n span.hint {\n display: block;\n font-size: 12px;\n margin-top: 4px;\n }\n\n p.hint {\n margin-bottom: 15px;\n color: $darker-text-color;\n\n &.subtle-hint {\n text-align: center;\n font-size: 12px;\n line-height: 18px;\n margin-top: 15px;\n margin-bottom: 0;\n }\n }\n\n .card {\n margin-bottom: 15px;\n }\n\n strong {\n font-weight: 500;\n\n @each $lang in $cjk-langs {\n &:lang(#{$lang}) {\n font-weight: 700;\n }\n }\n }\n\n .input.with_floating_label {\n .label_input {\n display: flex;\n\n & > label {\n font-family: inherit;\n font-size: 14px;\n color: $primary-text-color;\n font-weight: 500;\n min-width: 150px;\n flex: 0 0 auto;\n }\n\n input,\n select {\n flex: 1 1 auto;\n }\n }\n\n &.select .hint {\n margin-top: 6px;\n margin-left: 150px;\n }\n }\n\n .input.with_label {\n .label_input > label {\n font-family: inherit;\n font-size: 14px;\n color: $primary-text-color;\n display: block;\n margin-bottom: 8px;\n word-wrap: break-word;\n font-weight: 500;\n }\n\n .hint {\n margin-top: 6px;\n }\n\n ul {\n flex: 390px;\n }\n }\n\n .input.with_block_label {\n max-width: none;\n\n & > label {\n font-family: inherit;\n font-size: 16px;\n color: $primary-text-color;\n display: block;\n font-weight: 500;\n padding-top: 5px;\n }\n\n .hint {\n margin-bottom: 15px;\n }\n\n ul {\n columns: 2;\n }\n }\n\n .input.datetime .label_input select {\n display: inline-block;\n width: auto;\n flex: 0;\n }\n\n .required abbr {\n text-decoration: none;\n color: lighten($error-value-color, 12%);\n }\n\n .fields-group {\n margin-bottom: 25px;\n\n .input:last-child {\n margin-bottom: 0;\n }\n }\n\n .fields-row {\n display: flex;\n margin: 0 -10px;\n padding-top: 5px;\n margin-bottom: 25px;\n\n .input {\n max-width: none;\n }\n\n &__column {\n box-sizing: border-box;\n padding: 0 10px;\n flex: 1 1 auto;\n min-height: 1px;\n\n &-6 {\n max-width: 50%;\n }\n\n .actions {\n margin-top: 27px;\n }\n }\n\n .fields-group:last-child,\n .fields-row__column.fields-group {\n margin-bottom: 0;\n }\n\n @media screen and (max-width: $no-columns-breakpoint) {\n display: block;\n margin-bottom: 0;\n\n &__column {\n max-width: none;\n }\n\n .fields-group:last-child,\n .fields-row__column.fields-group,\n .fields-row__column {\n margin-bottom: 25px;\n }\n }\n }\n\n .input.radio_buttons .radio label {\n margin-bottom: 5px;\n font-family: inherit;\n font-size: 14px;\n color: $primary-text-color;\n display: block;\n width: auto;\n }\n\n .check_boxes {\n .checkbox {\n label {\n font-family: inherit;\n font-size: 14px;\n color: $primary-text-color;\n display: inline-block;\n width: auto;\n position: relative;\n padding-top: 5px;\n padding-left: 25px;\n flex: 1 1 auto;\n }\n\n input[type=checkbox] {\n position: absolute;\n left: 0;\n top: 5px;\n margin: 0;\n }\n }\n }\n\n .input.static .label_input__wrapper {\n font-size: 16px;\n padding: 10px;\n border: 1px solid $dark-text-color;\n border-radius: 4px;\n }\n\n input[type=text],\n input[type=number],\n input[type=email],\n input[type=password],\n textarea {\n box-sizing: border-box;\n font-size: 16px;\n color: $primary-text-color;\n display: block;\n width: 100%;\n outline: 0;\n font-family: inherit;\n resize: vertical;\n background: darken($ui-base-color, 10%);\n border: 1px solid darken($ui-base-color, 14%);\n border-radius: 4px;\n padding: 10px;\n\n &::placeholder {\n color: lighten($darker-text-color, 4%);\n }\n\n &:invalid {\n box-shadow: none;\n }\n\n &:focus:invalid:not(:placeholder-shown) {\n border-color: lighten($error-red, 12%);\n }\n\n &:required:valid {\n border-color: $valid-value-color;\n }\n\n &:hover {\n border-color: darken($ui-base-color, 20%);\n }\n\n &:active,\n &:focus {\n border-color: $highlight-text-color;\n background: darken($ui-base-color, 8%);\n }\n }\n\n .input.field_with_errors {\n label {\n color: lighten($error-red, 12%);\n }\n\n input[type=text],\n input[type=number],\n input[type=email],\n input[type=password],\n textarea,\n select {\n border-color: lighten($error-red, 12%);\n }\n\n .error {\n display: block;\n font-weight: 500;\n color: lighten($error-red, 12%);\n margin-top: 4px;\n }\n }\n\n .input.disabled {\n opacity: 0.5;\n }\n\n .actions {\n margin-top: 30px;\n display: flex;\n\n &.actions--top {\n margin-top: 0;\n margin-bottom: 30px;\n }\n }\n\n button,\n .button,\n .block-button {\n display: block;\n width: 100%;\n border: 0;\n border-radius: 4px;\n background: $ui-highlight-color;\n color: $primary-text-color;\n font-size: 18px;\n line-height: inherit;\n height: auto;\n padding: 10px;\n text-transform: uppercase;\n text-decoration: none;\n text-align: center;\n box-sizing: border-box;\n cursor: pointer;\n font-weight: 500;\n outline: 0;\n margin-bottom: 10px;\n margin-right: 10px;\n\n &:last-child {\n margin-right: 0;\n }\n\n &:hover {\n background-color: lighten($ui-highlight-color, 5%);\n }\n\n &:active,\n &:focus {\n background-color: darken($ui-highlight-color, 5%);\n }\n\n &:disabled:hover {\n background-color: $ui-primary-color;\n }\n\n &.negative {\n background: $error-value-color;\n\n &:hover {\n background-color: lighten($error-value-color, 5%);\n }\n\n &:active,\n &:focus {\n background-color: darken($error-value-color, 5%);\n }\n }\n }\n\n select {\n appearance: none;\n box-sizing: border-box;\n font-size: 16px;\n color: $primary-text-color;\n display: block;\n width: 100%;\n outline: 0;\n font-family: inherit;\n resize: vertical;\n background: darken($ui-base-color, 10%) url(\"data:image/svg+xml;utf8,\") no-repeat right 8px center / auto 16px;\n border: 1px solid darken($ui-base-color, 14%);\n border-radius: 4px;\n padding-left: 10px;\n padding-right: 30px;\n height: 41px;\n }\n\n h4 {\n margin-bottom: 15px !important;\n }\n\n .label_input {\n &__wrapper {\n position: relative;\n }\n\n &__append {\n position: absolute;\n right: 3px;\n top: 1px;\n padding: 10px;\n padding-bottom: 9px;\n font-size: 16px;\n color: $dark-text-color;\n font-family: inherit;\n pointer-events: none;\n cursor: default;\n max-width: 140px;\n white-space: nowrap;\n overflow: hidden;\n\n &::after {\n content: '';\n display: block;\n position: absolute;\n top: 0;\n right: 0;\n bottom: 1px;\n width: 5px;\n background-image: linear-gradient(to right, rgba(darken($ui-base-color, 10%), 0), darken($ui-base-color, 10%));\n }\n }\n }\n\n &__overlay-area {\n position: relative;\n\n &__blurred form {\n filter: blur(2px);\n }\n\n &__overlay {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n display: flex;\n justify-content: center;\n align-items: center;\n background: rgba($ui-base-color, 0.65);\n border-radius: 4px;\n margin-left: -4px;\n margin-top: -4px;\n padding: 4px;\n\n &__content {\n text-align: center;\n\n &.rich-formatting {\n &,\n p {\n color: $primary-text-color;\n }\n }\n }\n }\n }\n}\n\n.block-icon {\n display: block;\n margin: 0 auto;\n margin-bottom: 10px;\n font-size: 24px;\n}\n\n.flash-message {\n background: lighten($ui-base-color, 8%);\n color: $darker-text-color;\n border-radius: 4px;\n padding: 15px 10px;\n margin-bottom: 30px;\n text-align: center;\n\n &.notice {\n border: 1px solid rgba($valid-value-color, 0.5);\n background: rgba($valid-value-color, 0.25);\n color: $valid-value-color;\n }\n\n &.alert {\n border: 1px solid rgba($error-value-color, 0.5);\n background: rgba($error-value-color, 0.25);\n color: $error-value-color;\n }\n\n a {\n display: inline-block;\n color: $darker-text-color;\n text-decoration: none;\n\n &:hover {\n color: $primary-text-color;\n text-decoration: underline;\n }\n }\n\n p {\n margin-bottom: 15px;\n }\n\n .oauth-code {\n outline: 0;\n box-sizing: border-box;\n display: block;\n width: 100%;\n border: 0;\n padding: 10px;\n font-family: $font-monospace, monospace;\n background: $ui-base-color;\n color: $primary-text-color;\n font-size: 14px;\n margin: 0;\n\n &::-moz-focus-inner {\n border: 0;\n }\n\n &::-moz-focus-inner,\n &:focus,\n &:active {\n outline: 0 !important;\n }\n\n &:focus {\n background: lighten($ui-base-color, 4%);\n }\n }\n\n strong {\n font-weight: 500;\n\n @each $lang in $cjk-langs {\n &:lang(#{$lang}) {\n font-weight: 700;\n }\n }\n }\n\n @media screen and (max-width: 740px) and (min-width: 441px) {\n margin-top: 40px;\n }\n}\n\n.form-footer {\n margin-top: 30px;\n text-align: center;\n\n a {\n color: $darker-text-color;\n text-decoration: none;\n\n &:hover {\n text-decoration: underline;\n }\n }\n}\n\n.quick-nav {\n list-style: none;\n margin-bottom: 25px;\n font-size: 14px;\n\n li {\n display: inline-block;\n margin-right: 10px;\n }\n\n a {\n color: $highlight-text-color;\n text-transform: uppercase;\n text-decoration: none;\n font-weight: 700;\n\n &:hover,\n &:focus,\n &:active {\n color: lighten($highlight-text-color, 8%);\n }\n }\n}\n\n.oauth-prompt,\n.follow-prompt {\n margin-bottom: 30px;\n color: $darker-text-color;\n\n h2 {\n font-size: 16px;\n margin-bottom: 30px;\n text-align: center;\n }\n\n strong {\n color: $secondary-text-color;\n font-weight: 500;\n\n @each $lang in $cjk-langs {\n &:lang(#{$lang}) {\n font-weight: 700;\n }\n }\n }\n\n @media screen and (max-width: 740px) and (min-width: 441px) {\n margin-top: 40px;\n }\n}\n\n.qr-wrapper {\n display: flex;\n flex-wrap: wrap;\n align-items: flex-start;\n}\n\n.qr-code {\n flex: 0 0 auto;\n background: $simple-background-color;\n padding: 4px;\n margin: 0 10px 20px 0;\n box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);\n display: inline-block;\n\n svg {\n display: block;\n margin: 0;\n }\n}\n\n.qr-alternative {\n margin-bottom: 20px;\n color: $secondary-text-color;\n flex: 150px;\n\n samp {\n display: block;\n font-size: 14px;\n }\n}\n\n.table-form {\n p {\n margin-bottom: 15px;\n\n strong {\n font-weight: 500;\n\n @each $lang in $cjk-langs {\n &:lang(#{$lang}) {\n font-weight: 700;\n }\n }\n }\n }\n}\n\n.simple_form,\n.table-form {\n .warning {\n box-sizing: border-box;\n background: rgba($error-value-color, 0.5);\n color: $primary-text-color;\n text-shadow: 1px 1px 0 rgba($base-shadow-color, 0.3);\n box-shadow: 0 2px 6px rgba($base-shadow-color, 0.4);\n border-radius: 4px;\n padding: 10px;\n margin-bottom: 15px;\n\n a {\n color: $primary-text-color;\n text-decoration: underline;\n\n &:hover,\n &:focus,\n &:active {\n text-decoration: none;\n }\n }\n\n strong {\n font-weight: 600;\n display: block;\n margin-bottom: 5px;\n\n @each $lang in $cjk-langs {\n &:lang(#{$lang}) {\n font-weight: 700;\n }\n }\n\n .fa {\n font-weight: 400;\n }\n }\n }\n}\n\n.action-pagination {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n\n .actions,\n .pagination {\n flex: 1 1 auto;\n }\n\n .actions {\n padding: 30px 0;\n padding-right: 20px;\n flex: 0 0 auto;\n }\n}\n\n.post-follow-actions {\n text-align: center;\n color: $darker-text-color;\n\n div {\n margin-bottom: 4px;\n }\n}\n\n.alternative-login {\n margin-top: 20px;\n margin-bottom: 20px;\n\n h4 {\n font-size: 16px;\n color: $primary-text-color;\n text-align: center;\n margin-bottom: 20px;\n border: 0;\n padding: 0;\n }\n\n .button {\n display: block;\n }\n}\n\n.scope-danger {\n color: $warning-red;\n}\n\n.form_admin_settings_site_short_description,\n.form_admin_settings_site_description,\n.form_admin_settings_site_extended_description,\n.form_admin_settings_site_terms,\n.form_admin_settings_custom_css,\n.form_admin_settings_closed_registrations_message {\n textarea {\n font-family: $font-monospace, monospace;\n }\n}\n\n.input-copy {\n background: darken($ui-base-color, 10%);\n border: 1px solid darken($ui-base-color, 14%);\n border-radius: 4px;\n display: flex;\n align-items: center;\n padding-right: 4px;\n position: relative;\n top: 1px;\n transition: border-color 300ms linear;\n\n &__wrapper {\n flex: 1 1 auto;\n }\n\n input[type=text] {\n background: transparent;\n border: 0;\n padding: 10px;\n font-size: 14px;\n font-family: $font-monospace, monospace;\n }\n\n button {\n flex: 0 0 auto;\n margin: 4px;\n text-transform: none;\n font-weight: 400;\n font-size: 14px;\n padding: 7px 18px;\n padding-bottom: 6px;\n width: auto;\n transition: background 300ms linear;\n }\n\n &.copied {\n border-color: $valid-value-color;\n transition: none;\n\n button {\n background: $valid-value-color;\n transition: none;\n }\n }\n}\n\n.connection-prompt {\n margin-bottom: 25px;\n\n .fa-link {\n background-color: darken($ui-base-color, 4%);\n border-radius: 100%;\n font-size: 24px;\n padding: 10px;\n }\n\n &__column {\n align-items: center;\n display: flex;\n flex: 1;\n flex-direction: column;\n flex-shrink: 1;\n max-width: 50%;\n\n &-sep {\n align-self: center;\n flex-grow: 0;\n overflow: visible;\n position: relative;\n z-index: 1;\n }\n\n p {\n word-break: break-word;\n }\n }\n\n .account__avatar {\n margin-bottom: 20px;\n }\n\n &__connection {\n background-color: lighten($ui-base-color, 8%);\n box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);\n border-radius: 4px;\n padding: 25px 10px;\n position: relative;\n text-align: center;\n\n &::after {\n background-color: darken($ui-base-color, 4%);\n content: '';\n display: block;\n height: 100%;\n left: 50%;\n position: absolute;\n top: 0;\n width: 1px;\n }\n }\n\n &__row {\n align-items: flex-start;\n display: flex;\n flex-direction: row;\n }\n}\n",".card {\n & > a {\n display: block;\n text-decoration: none;\n color: inherit;\n box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);\n\n @media screen and (max-width: $no-gap-breakpoint) {\n box-shadow: none;\n }\n\n &:hover,\n &:active,\n &:focus {\n .card__bar {\n background: lighten($ui-base-color, 8%);\n }\n }\n }\n\n &__img {\n height: 130px;\n position: relative;\n background: darken($ui-base-color, 12%);\n border-radius: 4px 4px 0 0;\n\n img {\n display: block;\n width: 100%;\n height: 100%;\n margin: 0;\n object-fit: cover;\n border-radius: 4px 4px 0 0;\n }\n\n @media screen and (max-width: 600px) {\n height: 200px;\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n display: none;\n }\n }\n\n &__bar {\n position: relative;\n padding: 15px;\n display: flex;\n justify-content: flex-start;\n align-items: center;\n background: lighten($ui-base-color, 4%);\n border-radius: 0 0 4px 4px;\n\n @media screen and (max-width: $no-gap-breakpoint) {\n border-radius: 0;\n }\n\n .avatar {\n flex: 0 0 auto;\n width: 48px;\n height: 48px;\n padding-top: 2px;\n\n img {\n width: 100%;\n height: 100%;\n display: block;\n margin: 0;\n border-radius: 4px;\n background: darken($ui-base-color, 8%);\n object-fit: cover;\n }\n }\n\n .display-name {\n margin-left: 15px;\n text-align: left;\n\n strong {\n font-size: 15px;\n color: $primary-text-color;\n font-weight: 500;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n span {\n display: block;\n font-size: 14px;\n color: $darker-text-color;\n font-weight: 400;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n }\n }\n}\n\n.pagination {\n padding: 30px 0;\n text-align: center;\n overflow: hidden;\n\n a,\n .current,\n .newer,\n .older,\n .page,\n .gap {\n font-size: 14px;\n color: $primary-text-color;\n font-weight: 500;\n display: inline-block;\n padding: 6px 10px;\n text-decoration: none;\n }\n\n .current {\n background: $simple-background-color;\n border-radius: 100px;\n color: $inverted-text-color;\n cursor: default;\n margin: 0 10px;\n }\n\n .gap {\n cursor: default;\n }\n\n .older,\n .newer {\n text-transform: uppercase;\n color: $secondary-text-color;\n }\n\n .older {\n float: left;\n padding-left: 0;\n\n .fa {\n display: inline-block;\n margin-right: 5px;\n }\n }\n\n .newer {\n float: right;\n padding-right: 0;\n\n .fa {\n display: inline-block;\n margin-left: 5px;\n }\n }\n\n .disabled {\n cursor: default;\n color: lighten($inverted-text-color, 10%);\n }\n\n @media screen and (max-width: 700px) {\n padding: 30px 20px;\n\n .page {\n display: none;\n }\n\n .newer,\n .older {\n display: inline-block;\n }\n }\n}\n\n.nothing-here {\n background: $ui-base-color;\n box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);\n color: $light-text-color;\n font-size: 14px;\n font-weight: 500;\n text-align: center;\n display: flex;\n justify-content: center;\n align-items: center;\n cursor: default;\n border-radius: 4px;\n padding: 20px;\n min-height: 30vh;\n\n &--under-tabs {\n border-radius: 0 0 4px 4px;\n }\n\n &--flexible {\n box-sizing: border-box;\n min-height: 100%;\n }\n}\n\n.account-role,\n.simple_form .recommended {\n display: inline-block;\n padding: 4px 6px;\n cursor: default;\n border-radius: 3px;\n font-size: 12px;\n line-height: 12px;\n font-weight: 500;\n color: $ui-secondary-color;\n background-color: rgba($ui-secondary-color, 0.1);\n border: 1px solid rgba($ui-secondary-color, 0.5);\n\n &.moderator {\n color: $success-green;\n background-color: rgba($success-green, 0.1);\n border-color: rgba($success-green, 0.5);\n }\n\n &.admin {\n color: lighten($error-red, 12%);\n background-color: rgba(lighten($error-red, 12%), 0.1);\n border-color: rgba(lighten($error-red, 12%), 0.5);\n }\n}\n\n.account__header__fields {\n max-width: 100vw;\n padding: 0;\n margin: 15px -15px -15px;\n border: 0 none;\n border-top: 1px solid lighten($ui-base-color, 12%);\n border-bottom: 1px solid lighten($ui-base-color, 12%);\n font-size: 14px;\n line-height: 20px;\n\n dl {\n display: flex;\n border-bottom: 1px solid lighten($ui-base-color, 12%);\n }\n\n dt,\n dd {\n box-sizing: border-box;\n padding: 14px;\n text-align: center;\n max-height: 48px;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n }\n\n dt {\n font-weight: 500;\n width: 120px;\n flex: 0 0 auto;\n color: $secondary-text-color;\n background: rgba(darken($ui-base-color, 8%), 0.5);\n }\n\n dd {\n flex: 1 1 auto;\n color: $darker-text-color;\n }\n\n a {\n color: $highlight-text-color;\n text-decoration: none;\n\n &:hover,\n &:focus,\n &:active {\n text-decoration: underline;\n }\n }\n\n .verified {\n border: 1px solid rgba($valid-value-color, 0.5);\n background: rgba($valid-value-color, 0.25);\n\n a {\n color: $valid-value-color;\n font-weight: 500;\n }\n\n &__mark {\n color: $valid-value-color;\n }\n }\n\n dl:last-child {\n border-bottom: 0;\n }\n}\n\n.directory__tag .trends__item__current {\n width: auto;\n}\n\n.pending-account {\n &__header {\n color: $darker-text-color;\n\n a {\n color: $ui-secondary-color;\n text-decoration: none;\n\n &:hover,\n &:active,\n &:focus {\n text-decoration: underline;\n }\n }\n\n strong {\n color: $primary-text-color;\n font-weight: 700;\n }\n }\n\n &__body {\n margin-top: 10px;\n }\n}\n",".activity-stream {\n box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);\n border-radius: 4px;\n overflow: hidden;\n margin-bottom: 10px;\n\n &--under-tabs {\n border-radius: 0 0 4px 4px;\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n margin-bottom: 0;\n border-radius: 0;\n box-shadow: none;\n }\n\n &--headless {\n border-radius: 0;\n margin: 0;\n box-shadow: none;\n\n .detailed-status,\n .status {\n border-radius: 0 !important;\n }\n }\n\n div[data-component] {\n width: 100%;\n }\n\n .entry {\n background: $ui-base-color;\n\n .detailed-status,\n .status,\n .load-more {\n animation: none;\n }\n\n &:last-child {\n .detailed-status,\n .status,\n .load-more {\n border-bottom: 0;\n border-radius: 0 0 4px 4px;\n }\n }\n\n &:first-child {\n .detailed-status,\n .status,\n .load-more {\n border-radius: 4px 4px 0 0;\n }\n\n &:last-child {\n .detailed-status,\n .status,\n .load-more {\n border-radius: 4px;\n }\n }\n }\n\n @media screen and (max-width: 740px) {\n .detailed-status,\n .status,\n .load-more {\n border-radius: 0 !important;\n }\n }\n }\n\n &--highlighted .entry {\n background: lighten($ui-base-color, 8%);\n }\n}\n\n.button.logo-button {\n flex: 0 auto;\n font-size: 14px;\n background: $ui-highlight-color;\n color: $primary-text-color;\n text-transform: none;\n line-height: 36px;\n height: auto;\n padding: 3px 15px;\n border: 0;\n\n svg {\n width: 20px;\n height: auto;\n vertical-align: middle;\n margin-right: 5px;\n fill: $primary-text-color;\n }\n\n &:active,\n &:focus,\n &:hover {\n background: lighten($ui-highlight-color, 10%);\n }\n\n &:disabled,\n &.disabled {\n &:active,\n &:focus,\n &:hover {\n background: $ui-primary-color;\n }\n }\n\n &.button--destructive {\n &:active,\n &:focus,\n &:hover {\n background: $error-red;\n }\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n svg {\n display: none;\n }\n }\n}\n\n.embed,\n.public-layout {\n .detailed-status {\n padding: 15px;\n }\n\n .status {\n padding: 15px 15px 15px (48px + 15px * 2);\n min-height: 48px + 2px;\n\n &__avatar {\n left: 15px;\n top: 17px;\n }\n\n &__content {\n padding-top: 5px;\n }\n\n &__prepend {\n margin-left: 48px + 15px * 2;\n padding-top: 15px;\n }\n\n &__prepend-icon-wrapper {\n left: -32px;\n }\n\n .media-gallery,\n &__action-bar,\n .video-player {\n margin-top: 10px;\n }\n }\n}\n","button.icon-button i.fa-retweet {\n background-image: url(\"data:image/svg+xml;utf8,\");\n\n &:hover {\n background-image: url(\"data:image/svg+xml;utf8,\");\n }\n}\n\nbutton.icon-button.disabled i.fa-retweet {\n background-image: url(\"data:image/svg+xml;utf8,\");\n}\n",".app-body {\n -webkit-overflow-scrolling: touch;\n -ms-overflow-style: -ms-autohiding-scrollbar;\n}\n\n.animated-number {\n display: inline-flex;\n flex-direction: column;\n align-items: stretch;\n overflow: hidden;\n position: relative;\n}\n\n.link-button {\n display: block;\n font-size: 15px;\n line-height: 20px;\n color: $ui-highlight-color;\n border: 0;\n background: transparent;\n padding: 0;\n cursor: pointer;\n\n &:hover,\n &:active {\n text-decoration: underline;\n }\n\n &:disabled {\n color: $ui-primary-color;\n cursor: default;\n }\n}\n\n.button {\n background-color: $ui-highlight-color;\n border: 10px none;\n border-radius: 4px;\n box-sizing: border-box;\n color: $primary-text-color;\n cursor: pointer;\n display: inline-block;\n font-family: inherit;\n font-size: 14px;\n font-weight: 500;\n height: 36px;\n letter-spacing: 0;\n line-height: 36px;\n overflow: hidden;\n padding: 0 16px;\n position: relative;\n text-align: center;\n text-transform: uppercase;\n text-decoration: none;\n text-overflow: ellipsis;\n transition: all 100ms ease-in;\n white-space: nowrap;\n width: auto;\n\n &:active,\n &:focus,\n &:hover {\n background-color: lighten($ui-highlight-color, 10%);\n transition: all 200ms ease-out;\n }\n\n &--destructive {\n transition: none;\n\n &:active,\n &:focus,\n &:hover {\n background-color: $error-red;\n transition: none;\n }\n }\n\n &:disabled,\n &.disabled {\n background-color: $ui-primary-color;\n cursor: default;\n }\n\n &::-moz-focus-inner {\n border: 0;\n }\n\n &::-moz-focus-inner,\n &:focus,\n &:active {\n outline: 0 !important;\n }\n\n &.button-primary,\n &.button-alternative,\n &.button-secondary,\n &.button-alternative-2 {\n font-size: 16px;\n line-height: 36px;\n height: auto;\n text-transform: none;\n padding: 4px 16px;\n }\n\n &.button-alternative {\n color: $inverted-text-color;\n background: $ui-primary-color;\n\n &:active,\n &:focus,\n &:hover {\n background-color: lighten($ui-primary-color, 4%);\n }\n }\n\n &.button-alternative-2 {\n background: $ui-base-lighter-color;\n\n &:active,\n &:focus,\n &:hover {\n background-color: lighten($ui-base-lighter-color, 4%);\n }\n }\n\n &.button-secondary {\n color: $darker-text-color;\n background: transparent;\n padding: 3px 15px;\n border: 1px solid $ui-primary-color;\n\n &:active,\n &:focus,\n &:hover {\n border-color: lighten($ui-primary-color, 4%);\n color: lighten($darker-text-color, 4%);\n }\n\n &:disabled {\n opacity: 0.5;\n }\n }\n\n &.button--block {\n display: block;\n width: 100%;\n }\n}\n\n.column__wrapper {\n display: flex;\n flex: 1 1 auto;\n position: relative;\n}\n\n.icon-button {\n display: inline-block;\n padding: 0;\n color: $action-button-color;\n border: 0;\n border-radius: 4px;\n background: transparent;\n cursor: pointer;\n transition: all 100ms ease-in;\n transition-property: background-color, color;\n\n &:hover,\n &:active,\n &:focus {\n color: lighten($action-button-color, 7%);\n background-color: rgba($action-button-color, 0.15);\n transition: all 200ms ease-out;\n transition-property: background-color, color;\n }\n\n &:focus {\n background-color: rgba($action-button-color, 0.3);\n }\n\n &.disabled {\n color: darken($action-button-color, 13%);\n background-color: transparent;\n cursor: default;\n }\n\n &.active {\n color: $highlight-text-color;\n }\n\n &::-moz-focus-inner {\n border: 0;\n }\n\n &::-moz-focus-inner,\n &:focus,\n &:active {\n outline: 0 !important;\n }\n\n &.inverted {\n color: $lighter-text-color;\n\n &:hover,\n &:active,\n &:focus {\n color: darken($lighter-text-color, 7%);\n background-color: rgba($lighter-text-color, 0.15);\n }\n\n &:focus {\n background-color: rgba($lighter-text-color, 0.3);\n }\n\n &.disabled {\n color: lighten($lighter-text-color, 7%);\n background-color: transparent;\n }\n\n &.active {\n color: $highlight-text-color;\n\n &.disabled {\n color: lighten($highlight-text-color, 13%);\n }\n }\n }\n\n &.overlayed {\n box-sizing: content-box;\n background: rgba($base-overlay-background, 0.6);\n color: rgba($primary-text-color, 0.7);\n border-radius: 4px;\n padding: 2px;\n\n &:hover {\n background: rgba($base-overlay-background, 0.9);\n }\n }\n}\n\n.text-icon-button {\n color: $lighter-text-color;\n border: 0;\n border-radius: 4px;\n background: transparent;\n cursor: pointer;\n font-weight: 600;\n font-size: 11px;\n padding: 0 3px;\n line-height: 27px;\n outline: 0;\n transition: all 100ms ease-in;\n transition-property: background-color, color;\n\n &:hover,\n &:active,\n &:focus {\n color: darken($lighter-text-color, 7%);\n background-color: rgba($lighter-text-color, 0.15);\n transition: all 200ms ease-out;\n transition-property: background-color, color;\n }\n\n &:focus {\n background-color: rgba($lighter-text-color, 0.3);\n }\n\n &.disabled {\n color: lighten($lighter-text-color, 20%);\n background-color: transparent;\n cursor: default;\n }\n\n &.active {\n color: $highlight-text-color;\n }\n\n &::-moz-focus-inner {\n border: 0;\n }\n\n &::-moz-focus-inner,\n &:focus,\n &:active {\n outline: 0 !important;\n }\n}\n\n.dropdown-menu {\n position: absolute;\n}\n\n.invisible {\n font-size: 0;\n line-height: 0;\n display: inline-block;\n width: 0;\n height: 0;\n position: absolute;\n\n img,\n svg {\n margin: 0 !important;\n border: 0 !important;\n padding: 0 !important;\n width: 0 !important;\n height: 0 !important;\n }\n}\n\n.ellipsis {\n &::after {\n content: \"…\";\n }\n}\n\n.compose-form {\n padding: 10px;\n\n &__sensitive-button {\n padding: 10px;\n padding-top: 0;\n\n font-size: 14px;\n font-weight: 500;\n\n &.active {\n color: $highlight-text-color;\n }\n\n input[type=checkbox] {\n display: none;\n }\n\n .checkbox {\n display: inline-block;\n position: relative;\n border: 1px solid $ui-primary-color;\n box-sizing: border-box;\n width: 18px;\n height: 18px;\n flex: 0 0 auto;\n margin-right: 10px;\n top: -1px;\n border-radius: 4px;\n vertical-align: middle;\n\n &.active {\n border-color: $highlight-text-color;\n background: $highlight-text-color;\n }\n }\n }\n\n .compose-form__warning {\n color: $inverted-text-color;\n margin-bottom: 10px;\n background: $ui-primary-color;\n box-shadow: 0 2px 6px rgba($base-shadow-color, 0.3);\n padding: 8px 10px;\n border-radius: 4px;\n font-size: 13px;\n font-weight: 400;\n\n strong {\n color: $inverted-text-color;\n font-weight: 500;\n\n @each $lang in $cjk-langs {\n &:lang(#{$lang}) {\n font-weight: 700;\n }\n }\n }\n\n a {\n color: $lighter-text-color;\n font-weight: 500;\n text-decoration: underline;\n\n &:hover,\n &:active,\n &:focus {\n text-decoration: none;\n }\n }\n }\n\n .emoji-picker-dropdown {\n position: absolute;\n top: 0;\n right: 0;\n }\n\n .compose-form__autosuggest-wrapper {\n position: relative;\n }\n\n .autosuggest-textarea,\n .autosuggest-input,\n .spoiler-input {\n position: relative;\n width: 100%;\n }\n\n .spoiler-input {\n height: 0;\n transform-origin: bottom;\n opacity: 0;\n\n &.spoiler-input--visible {\n height: 36px;\n margin-bottom: 11px;\n opacity: 1;\n }\n }\n\n .autosuggest-textarea__textarea,\n .spoiler-input__input {\n display: block;\n box-sizing: border-box;\n width: 100%;\n margin: 0;\n color: $inverted-text-color;\n background: $simple-background-color;\n padding: 10px;\n font-family: inherit;\n font-size: 14px;\n resize: vertical;\n border: 0;\n outline: 0;\n\n &::placeholder {\n color: $dark-text-color;\n }\n\n &:focus {\n outline: 0;\n }\n\n @media screen and (max-width: 600px) {\n font-size: 16px;\n }\n }\n\n .spoiler-input__input {\n border-radius: 4px;\n }\n\n .autosuggest-textarea__textarea {\n min-height: 100px;\n border-radius: 4px 4px 0 0;\n padding-bottom: 0;\n padding-right: 10px + 22px;\n resize: none;\n scrollbar-color: initial;\n\n &::-webkit-scrollbar {\n all: unset;\n }\n\n @media screen and (max-width: 600px) {\n height: 100px !important; // prevent auto-resize textarea\n resize: vertical;\n }\n }\n\n .autosuggest-textarea__suggestions-wrapper {\n position: relative;\n height: 0;\n }\n\n .autosuggest-textarea__suggestions {\n box-sizing: border-box;\n display: none;\n position: absolute;\n top: 100%;\n width: 100%;\n z-index: 99;\n box-shadow: 4px 4px 6px rgba($base-shadow-color, 0.4);\n background: $ui-secondary-color;\n border-radius: 0 0 4px 4px;\n color: $inverted-text-color;\n font-size: 14px;\n padding: 6px;\n\n &.autosuggest-textarea__suggestions--visible {\n display: block;\n }\n }\n\n .autosuggest-textarea__suggestions__item {\n padding: 10px;\n cursor: pointer;\n border-radius: 4px;\n\n &:hover,\n &:focus,\n &:active,\n &.selected {\n background: darken($ui-secondary-color, 10%);\n }\n }\n\n .autosuggest-account,\n .autosuggest-emoji,\n .autosuggest-hashtag {\n display: flex;\n flex-direction: row;\n align-items: center;\n justify-content: flex-start;\n line-height: 18px;\n font-size: 14px;\n }\n\n .autosuggest-hashtag {\n justify-content: space-between;\n\n &__name {\n flex: 1 1 auto;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n\n strong {\n font-weight: 500;\n }\n\n &__uses {\n flex: 0 0 auto;\n text-align: right;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n }\n\n .autosuggest-account-icon,\n .autosuggest-emoji img {\n display: block;\n margin-right: 8px;\n width: 16px;\n height: 16px;\n }\n\n .autosuggest-account .display-name__account {\n color: $lighter-text-color;\n }\n\n .compose-form__modifiers {\n color: $inverted-text-color;\n font-family: inherit;\n font-size: 14px;\n background: $simple-background-color;\n\n .compose-form__upload-wrapper {\n overflow: hidden;\n }\n\n .compose-form__uploads-wrapper {\n display: flex;\n flex-direction: row;\n padding: 5px;\n flex-wrap: wrap;\n }\n\n .compose-form__upload {\n flex: 1 1 0;\n min-width: 40%;\n margin: 5px;\n\n &__actions {\n background: linear-gradient(180deg, rgba($base-shadow-color, 0.8) 0, rgba($base-shadow-color, 0.35) 80%, transparent);\n display: flex;\n align-items: flex-start;\n justify-content: space-between;\n opacity: 0;\n transition: opacity .1s ease;\n\n .icon-button {\n flex: 0 1 auto;\n color: $secondary-text-color;\n font-size: 14px;\n font-weight: 500;\n padding: 10px;\n font-family: inherit;\n\n &:hover,\n &:focus,\n &:active {\n color: lighten($secondary-text-color, 7%);\n }\n }\n\n &.active {\n opacity: 1;\n }\n }\n\n &-description {\n position: absolute;\n z-index: 2;\n bottom: 0;\n left: 0;\n right: 0;\n box-sizing: border-box;\n background: linear-gradient(0deg, rgba($base-shadow-color, 0.8) 0, rgba($base-shadow-color, 0.35) 80%, transparent);\n padding: 10px;\n opacity: 0;\n transition: opacity .1s ease;\n\n textarea {\n background: transparent;\n color: $secondary-text-color;\n border: 0;\n padding: 0;\n margin: 0;\n width: 100%;\n font-family: inherit;\n font-size: 14px;\n font-weight: 500;\n\n &:focus {\n color: $white;\n }\n\n &::placeholder {\n opacity: 0.75;\n color: $secondary-text-color;\n }\n }\n\n &.active {\n opacity: 1;\n }\n }\n }\n\n .compose-form__upload-thumbnail {\n border-radius: 4px;\n background-color: $base-shadow-color;\n background-position: center;\n background-size: cover;\n background-repeat: no-repeat;\n height: 140px;\n width: 100%;\n overflow: hidden;\n }\n }\n\n .compose-form__buttons-wrapper {\n padding: 10px;\n background: darken($simple-background-color, 8%);\n border-radius: 0 0 4px 4px;\n display: flex;\n justify-content: space-between;\n flex: 0 0 auto;\n\n .compose-form__buttons {\n display: flex;\n\n .compose-form__upload-button-icon {\n line-height: 27px;\n }\n\n .compose-form__sensitive-button {\n display: none;\n\n &.compose-form__sensitive-button--visible {\n display: block;\n }\n\n .compose-form__sensitive-button__icon {\n line-height: 27px;\n }\n }\n }\n\n .icon-button,\n .text-icon-button {\n box-sizing: content-box;\n padding: 0 3px;\n }\n\n .character-counter__wrapper {\n align-self: center;\n margin-right: 4px;\n }\n }\n\n .compose-form__publish {\n display: flex;\n justify-content: flex-end;\n min-width: 0;\n flex: 0 0 auto;\n\n .compose-form__publish-button-wrapper {\n overflow: hidden;\n padding-top: 10px;\n }\n }\n}\n\n.character-counter {\n cursor: default;\n font-family: $font-sans-serif, sans-serif;\n font-size: 14px;\n font-weight: 600;\n color: $lighter-text-color;\n\n &.character-counter--over {\n color: $warning-red;\n }\n}\n\n.no-reduce-motion .spoiler-input {\n transition: height 0.4s ease, opacity 0.4s ease;\n}\n\n.emojione {\n font-size: inherit;\n vertical-align: middle;\n object-fit: contain;\n margin: -.2ex .15em .2ex;\n width: 16px;\n height: 16px;\n\n img {\n width: auto;\n }\n}\n\n.reply-indicator {\n border-radius: 4px;\n margin-bottom: 10px;\n background: $ui-primary-color;\n padding: 10px;\n min-height: 23px;\n overflow-y: auto;\n flex: 0 2 auto;\n}\n\n.reply-indicator__header {\n margin-bottom: 5px;\n overflow: hidden;\n}\n\n.reply-indicator__cancel {\n float: right;\n line-height: 24px;\n}\n\n.reply-indicator__display-name {\n color: $inverted-text-color;\n display: block;\n max-width: 100%;\n line-height: 24px;\n overflow: hidden;\n padding-right: 25px;\n text-decoration: none;\n}\n\n.reply-indicator__display-avatar {\n float: left;\n margin-right: 5px;\n}\n\n.status__content--with-action {\n cursor: pointer;\n}\n\n.status__content,\n.reply-indicator__content {\n position: relative;\n font-size: 15px;\n line-height: 20px;\n word-wrap: break-word;\n font-weight: 400;\n overflow: hidden;\n text-overflow: ellipsis;\n padding-top: 2px;\n color: $primary-text-color;\n\n &:focus {\n outline: 0;\n }\n\n &.status__content--with-spoiler {\n white-space: normal;\n\n .status__content__text {\n white-space: pre-wrap;\n }\n }\n\n .emojione {\n width: 20px;\n height: 20px;\n margin: -3px 0 0;\n }\n\n img {\n max-width: 100%;\n max-height: 400px;\n object-fit: contain;\n }\n\n p {\n margin-bottom: 20px;\n white-space: pre-wrap;\n\n &:last-child {\n margin-bottom: 0;\n }\n }\n\n a {\n color: $pleroma-links;\n text-decoration: none;\n\n &:hover {\n text-decoration: underline;\n\n .fa {\n color: lighten($dark-text-color, 7%);\n }\n }\n\n &.mention {\n &:hover {\n text-decoration: none;\n\n span {\n text-decoration: underline;\n }\n }\n }\n\n .fa {\n color: $dark-text-color;\n }\n }\n\n a.unhandled-link {\n color: lighten($ui-highlight-color, 8%);\n }\n\n .status__content__spoiler-link {\n background: $action-button-color;\n\n &:hover {\n background: lighten($action-button-color, 7%);\n text-decoration: none;\n }\n\n &::-moz-focus-inner {\n border: 0;\n }\n\n &::-moz-focus-inner,\n &:focus,\n &:active {\n outline: 0 !important;\n }\n }\n\n .status__content__text {\n display: none;\n\n &.status__content__text--visible {\n display: block;\n }\n }\n}\n\n.announcements__item__content {\n word-wrap: break-word;\n overflow-y: auto;\n\n .emojione {\n width: 20px;\n height: 20px;\n margin: -3px 0 0;\n }\n\n p {\n margin-bottom: 10px;\n white-space: pre-wrap;\n\n &:last-child {\n margin-bottom: 0;\n }\n }\n\n a {\n color: $secondary-text-color;\n text-decoration: none;\n\n &:hover {\n text-decoration: underline;\n }\n\n &.mention {\n &:hover {\n text-decoration: none;\n\n span {\n text-decoration: underline;\n }\n }\n }\n\n &.unhandled-link {\n color: lighten($ui-highlight-color, 8%);\n }\n }\n}\n\n.status__content.status__content--collapsed {\n max-height: 20px * 15; // 15 lines is roughly above 500 characters\n}\n\n.status__content__read-more-button {\n display: block;\n font-size: 15px;\n line-height: 20px;\n color: lighten($ui-highlight-color, 8%);\n border: 0;\n background: transparent;\n padding: 0;\n padding-top: 8px;\n text-decoration: none;\n\n &:hover,\n &:active {\n text-decoration: underline;\n }\n}\n\n.status__content__spoiler-link {\n display: inline-block;\n border-radius: 2px;\n background: transparent;\n border: 0;\n color: $inverted-text-color;\n font-weight: 700;\n font-size: 11px;\n padding: 0 6px;\n text-transform: uppercase;\n line-height: 20px;\n cursor: pointer;\n vertical-align: middle;\n}\n\n.status__wrapper--filtered {\n color: $dark-text-color;\n border: 0;\n font-size: inherit;\n text-align: center;\n line-height: inherit;\n margin: 0;\n padding: 15px;\n box-sizing: border-box;\n width: 100%;\n clear: both;\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n}\n\n.status__prepend-icon-wrapper {\n left: -26px;\n position: absolute;\n}\n\n.focusable {\n &:focus {\n outline: 0;\n background: lighten($ui-base-color, 4%);\n\n .status.status-direct {\n background: lighten($ui-base-color, 12%);\n\n &.muted {\n background: transparent;\n }\n }\n\n .detailed-status,\n .detailed-status__action-bar {\n background: lighten($ui-base-color, 8%);\n }\n }\n}\n\n.status {\n padding: 8px 10px;\n padding-left: 68px;\n position: relative;\n min-height: 54px;\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n cursor: default;\n\n @supports (-ms-overflow-style: -ms-autohiding-scrollbar) {\n // Add margin to avoid Edge auto-hiding scrollbar appearing over content.\n // On Edge 16 this is 16px and Edge <=15 it's 12px, so aim for 16px.\n padding-right: 26px; // 10px + 16px\n }\n\n @keyframes fade {\n 0% { opacity: 0; }\n 100% { opacity: 1; }\n }\n\n opacity: 1;\n animation: fade 150ms linear;\n\n .video-player,\n .audio-player {\n margin-top: 8px;\n }\n\n &.status-direct:not(.read) {\n background: lighten($ui-base-color, 8%);\n border-bottom-color: lighten($ui-base-color, 12%);\n }\n\n &.light {\n .status__relative-time {\n color: $light-text-color;\n }\n\n .status__display-name {\n color: $inverted-text-color;\n }\n\n .display-name {\n color: $light-text-color;\n\n strong {\n color: $inverted-text-color;\n }\n }\n\n .status__content {\n color: $inverted-text-color;\n\n a {\n color: $highlight-text-color;\n }\n\n a.status__content__spoiler-link {\n color: $primary-text-color;\n background: $ui-primary-color;\n\n &:hover {\n background: lighten($ui-primary-color, 8%);\n }\n }\n }\n }\n}\n\n.notification-favourite {\n .status.status-direct {\n background: transparent;\n\n .icon-button.disabled {\n color: lighten($action-button-color, 13%);\n }\n }\n}\n\n.status__relative-time,\n.notification__relative_time {\n color: $dark-text-color;\n float: right;\n font-size: 14px;\n}\n\n.status__display-name {\n color: $dark-text-color;\n}\n\n.status__info .status__display-name {\n display: block;\n max-width: 100%;\n padding-right: 25px;\n}\n\n.status__info {\n font-size: 15px;\n}\n\n.status-check-box {\n border-bottom: 1px solid $ui-secondary-color;\n display: flex;\n\n .status-check-box__status {\n margin: 10px 0 10px 10px;\n flex: 1;\n overflow: hidden;\n\n .media-gallery {\n max-width: 250px;\n }\n\n .status__content {\n padding: 0;\n white-space: normal;\n }\n\n .video-player,\n .audio-player {\n margin-top: 8px;\n max-width: 250px;\n }\n\n .media-gallery__item-thumbnail {\n cursor: default;\n }\n }\n}\n\n.status-check-box-toggle {\n align-items: center;\n display: flex;\n flex: 0 0 auto;\n justify-content: center;\n padding: 10px;\n}\n\n.status__prepend {\n margin-left: 68px;\n color: $dark-text-color;\n padding: 8px 0;\n padding-bottom: 2px;\n font-size: 14px;\n position: relative;\n\n .status__display-name strong {\n color: $dark-text-color;\n }\n\n > span {\n display: block;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n}\n\n.status__action-bar {\n align-items: center;\n display: flex;\n margin-top: 8px;\n\n &__counter {\n display: inline-flex;\n margin-right: 11px;\n align-items: center;\n\n .status__action-bar-button {\n margin-right: 4px;\n }\n\n &__label {\n display: inline-block;\n width: 14px;\n font-size: 12px;\n font-weight: 500;\n color: $action-button-color;\n }\n }\n}\n\n.status__action-bar-button {\n margin-right: 18px;\n}\n\n.status__action-bar-dropdown {\n height: 23.15px;\n width: 23.15px;\n}\n\n.detailed-status__action-bar-dropdown {\n flex: 1 1 auto;\n display: flex;\n align-items: center;\n justify-content: center;\n position: relative;\n}\n\n.detailed-status {\n background: lighten($ui-base-color, 4%);\n padding: 14px 10px;\n\n &--flex {\n display: flex;\n flex-wrap: wrap;\n justify-content: space-between;\n align-items: flex-start;\n\n .status__content,\n .detailed-status__meta {\n flex: 100%;\n }\n }\n\n .status__content {\n font-size: 19px;\n line-height: 24px;\n\n .emojione {\n width: 24px;\n height: 24px;\n margin: -1px 0 0;\n }\n\n .status__content__spoiler-link {\n line-height: 24px;\n margin: -1px 0 0;\n }\n }\n\n .video-player,\n .audio-player {\n margin-top: 8px;\n }\n}\n\n.detailed-status__meta {\n margin-top: 15px;\n color: $dark-text-color;\n font-size: 14px;\n line-height: 18px;\n}\n\n.detailed-status__action-bar {\n background: lighten($ui-base-color, 4%);\n border-top: 1px solid lighten($ui-base-color, 8%);\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n display: flex;\n flex-direction: row;\n padding: 10px 0;\n}\n\n.detailed-status__link {\n color: inherit;\n text-decoration: none;\n}\n\n.detailed-status__favorites,\n.detailed-status__reblogs {\n display: inline-block;\n font-weight: 500;\n font-size: 12px;\n margin-left: 6px;\n}\n\n.reply-indicator__content {\n color: $inverted-text-color;\n font-size: 14px;\n\n a {\n color: $lighter-text-color;\n }\n}\n\n.domain {\n padding: 10px;\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n\n .domain__domain-name {\n flex: 1 1 auto;\n display: block;\n color: $primary-text-color;\n text-decoration: none;\n font-size: 14px;\n font-weight: 500;\n }\n}\n\n.domain__wrapper {\n display: flex;\n}\n\n.domain_buttons {\n height: 18px;\n padding: 10px;\n white-space: nowrap;\n}\n\n.account {\n padding: 10px;\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n\n &.compact {\n padding: 0;\n border-bottom: 0;\n\n .account__avatar-wrapper {\n margin-left: 0;\n }\n }\n\n .account__display-name {\n flex: 1 1 auto;\n display: block;\n color: $darker-text-color;\n overflow: hidden;\n text-decoration: none;\n font-size: 14px;\n }\n}\n\n.account__wrapper {\n display: flex;\n}\n\n.account__avatar-wrapper {\n float: left;\n margin-left: 12px;\n margin-right: 12px;\n}\n\n.account__avatar {\n @include avatar-radius;\n position: relative;\n\n &-inline {\n display: inline-block;\n vertical-align: middle;\n margin-right: 5px;\n }\n\n &-composite {\n @include avatar-radius;\n border-radius: 50%;\n overflow: hidden;\n position: relative;\n\n & > div {\n float: left;\n position: relative;\n box-sizing: border-box;\n }\n\n &__label {\n display: block;\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n color: $primary-text-color;\n text-shadow: 1px 1px 2px $base-shadow-color;\n font-weight: 700;\n font-size: 15px;\n }\n }\n}\n\na .account__avatar {\n cursor: pointer;\n}\n\n.account__avatar-overlay {\n @include avatar-size(48px);\n\n &-base {\n @include avatar-radius;\n @include avatar-size(36px);\n }\n\n &-overlay {\n @include avatar-radius;\n @include avatar-size(24px);\n\n position: absolute;\n bottom: 0;\n right: 0;\n z-index: 1;\n }\n}\n\n.account__relationship {\n height: 18px;\n padding: 10px;\n white-space: nowrap;\n}\n\n.account__disclaimer {\n padding: 10px;\n border-top: 1px solid lighten($ui-base-color, 8%);\n color: $dark-text-color;\n\n strong {\n font-weight: 500;\n\n @each $lang in $cjk-langs {\n &:lang(#{$lang}) {\n font-weight: 700;\n }\n }\n }\n\n a {\n font-weight: 500;\n color: inherit;\n text-decoration: underline;\n\n &:hover,\n &:focus,\n &:active {\n text-decoration: none;\n }\n }\n}\n\n.account__action-bar {\n border-top: 1px solid lighten($ui-base-color, 8%);\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n line-height: 36px;\n overflow: hidden;\n flex: 0 0 auto;\n display: flex;\n}\n\n.account__action-bar-dropdown {\n padding: 10px;\n\n .icon-button {\n vertical-align: middle;\n }\n\n .dropdown--active {\n .dropdown__content.dropdown__right {\n left: 6px;\n right: initial;\n }\n\n &::after {\n bottom: initial;\n margin-left: 11px;\n margin-top: -7px;\n right: initial;\n }\n }\n}\n\n.account__action-bar-links {\n display: flex;\n flex: 1 1 auto;\n line-height: 18px;\n text-align: center;\n}\n\n.account__action-bar__tab {\n text-decoration: none;\n overflow: hidden;\n flex: 0 1 100%;\n border-right: 1px solid lighten($ui-base-color, 8%);\n padding: 10px 0;\n border-bottom: 4px solid transparent;\n\n &.active {\n border-bottom: 4px solid $ui-highlight-color;\n }\n\n & > span {\n display: block;\n text-transform: uppercase;\n font-size: 11px;\n color: $darker-text-color;\n }\n\n strong {\n display: block;\n font-size: 15px;\n font-weight: 500;\n color: $primary-text-color;\n\n @each $lang in $cjk-langs {\n &:lang(#{$lang}) {\n font-weight: 700;\n }\n }\n }\n}\n\n.account-authorize {\n padding: 14px 10px;\n\n .detailed-status__display-name {\n display: block;\n margin-bottom: 15px;\n overflow: hidden;\n }\n}\n\n.account-authorize__avatar {\n float: left;\n margin-right: 10px;\n}\n\n.status__display-name,\n.status__relative-time,\n.detailed-status__display-name,\n.detailed-status__datetime,\n.detailed-status__application,\n.account__display-name {\n text-decoration: none;\n}\n\n.status__display-name,\n.account__display-name {\n strong {\n color: $primary-text-color;\n }\n}\n\n.muted {\n .emojione {\n opacity: 0.5;\n }\n}\n\n.status__display-name,\n.reply-indicator__display-name,\n.detailed-status__display-name,\na.account__display-name {\n &:hover strong {\n text-decoration: underline;\n }\n}\n\n.account__display-name strong {\n display: block;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n.detailed-status__application,\n.detailed-status__datetime {\n color: inherit;\n}\n\n.detailed-status .button.logo-button {\n margin-bottom: 15px;\n}\n\n.detailed-status__display-name {\n color: $secondary-text-color;\n display: block;\n line-height: 24px;\n margin-bottom: 15px;\n overflow: hidden;\n\n strong,\n span {\n display: block;\n text-overflow: ellipsis;\n overflow: hidden;\n }\n\n strong {\n font-size: 16px;\n color: $primary-text-color;\n }\n}\n\n.detailed-status__display-avatar {\n float: left;\n margin-right: 10px;\n}\n\n.status__avatar {\n height: 48px;\n left: 10px;\n position: absolute;\n top: 10px;\n width: 48px;\n}\n\n.status__expand {\n width: 68px;\n position: absolute;\n left: 0;\n top: 0;\n height: 100%;\n cursor: pointer;\n}\n\n.muted {\n .status__content,\n .status__content p,\n .status__content a {\n color: $dark-text-color;\n }\n\n .status__display-name strong {\n color: $dark-text-color;\n }\n\n .status__avatar {\n opacity: 0.5;\n }\n\n a.status__content__spoiler-link {\n background: $ui-base-lighter-color;\n color: $inverted-text-color;\n\n &:hover {\n background: lighten($ui-base-lighter-color, 7%);\n text-decoration: none;\n }\n }\n}\n\n.notification__message {\n margin: 0 10px 0 68px;\n padding: 8px 0 0;\n cursor: default;\n color: $darker-text-color;\n font-size: 15px;\n line-height: 22px;\n position: relative;\n\n .fa {\n color: $highlight-text-color;\n }\n\n > span {\n display: inline;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n}\n\n.notification__favourite-icon-wrapper {\n left: -26px;\n position: absolute;\n\n .star-icon {\n color: $gold-star;\n }\n}\n\n.star-icon.active {\n color: $gold-star;\n}\n\n.bookmark-icon.active {\n color: $red-bookmark;\n}\n\n.no-reduce-motion .icon-button.star-icon {\n &.activate {\n & > .fa-star {\n animation: spring-rotate-in 1s linear;\n }\n }\n\n &.deactivate {\n & > .fa-star {\n animation: spring-rotate-out 1s linear;\n }\n }\n}\n\n.notification__display-name {\n color: inherit;\n font-weight: 500;\n text-decoration: none;\n\n &:hover {\n color: $primary-text-color;\n text-decoration: underline;\n }\n}\n\n.notification__relative_time {\n float: right;\n}\n\n.display-name {\n display: block;\n max-width: 100%;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.display-name__html {\n font-weight: 500;\n}\n\n.display-name__account {\n font-size: 14px;\n}\n\n.status__relative-time,\n.detailed-status__datetime {\n &:hover {\n text-decoration: underline;\n }\n}\n\n.image-loader {\n position: relative;\n width: 100%;\n height: 100%;\n display: flex;\n align-items: center;\n justify-content: center;\n flex-direction: column;\n\n .image-loader__preview-canvas {\n max-width: $media-modal-media-max-width;\n max-height: $media-modal-media-max-height;\n background: url('~images/void.png') repeat;\n object-fit: contain;\n }\n\n .loading-bar {\n position: relative;\n }\n\n &.image-loader--amorphous .image-loader__preview-canvas {\n display: none;\n }\n}\n\n.zoomable-image {\n position: relative;\n width: 100%;\n height: 100%;\n display: flex;\n align-items: center;\n justify-content: center;\n\n img {\n max-width: $media-modal-media-max-width;\n max-height: $media-modal-media-max-height;\n width: auto;\n height: auto;\n object-fit: contain;\n }\n}\n\n.navigation-bar {\n padding: 10px;\n display: flex;\n align-items: center;\n flex-shrink: 0;\n cursor: default;\n color: $darker-text-color;\n\n strong {\n color: $secondary-text-color;\n }\n\n a {\n color: inherit;\n }\n\n .permalink {\n text-decoration: none;\n }\n\n .navigation-bar__actions {\n position: relative;\n\n .icon-button.close {\n position: absolute;\n pointer-events: none;\n transform: scale(0, 1) translate(-100%, 0);\n opacity: 0;\n }\n\n .compose__action-bar .icon-button {\n pointer-events: auto;\n transform: scale(1, 1) translate(0, 0);\n opacity: 1;\n }\n }\n}\n\n.navigation-bar__profile {\n flex: 1 1 auto;\n margin-left: 8px;\n line-height: 20px;\n margin-top: -1px;\n overflow: hidden;\n}\n\n.navigation-bar__profile-account {\n display: block;\n font-weight: 500;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n.navigation-bar__profile-edit {\n color: inherit;\n text-decoration: none;\n}\n\n.dropdown {\n display: inline-block;\n}\n\n.dropdown__content {\n display: none;\n position: absolute;\n}\n\n.dropdown-menu__separator {\n border-bottom: 1px solid darken($ui-secondary-color, 8%);\n margin: 5px 7px 6px;\n height: 0;\n}\n\n.dropdown-menu {\n background: $ui-secondary-color;\n padding: 4px 0;\n border-radius: 4px;\n box-shadow: 2px 4px 15px rgba($base-shadow-color, 0.4);\n z-index: 9999;\n\n ul {\n list-style: none;\n }\n\n &.left {\n transform-origin: 100% 50%;\n }\n\n &.top {\n transform-origin: 50% 100%;\n }\n\n &.bottom {\n transform-origin: 50% 0;\n }\n\n &.right {\n transform-origin: 0 50%;\n }\n}\n\n.dropdown-menu__arrow {\n position: absolute;\n width: 0;\n height: 0;\n border: 0 solid transparent;\n\n &.left {\n right: -5px;\n margin-top: -5px;\n border-width: 5px 0 5px 5px;\n border-left-color: $ui-secondary-color;\n }\n\n &.top {\n bottom: -5px;\n margin-left: -7px;\n border-width: 5px 7px 0;\n border-top-color: $ui-secondary-color;\n }\n\n &.bottom {\n top: -5px;\n margin-left: -7px;\n border-width: 0 7px 5px;\n border-bottom-color: $ui-secondary-color;\n }\n\n &.right {\n left: -5px;\n margin-top: -5px;\n border-width: 5px 5px 5px 0;\n border-right-color: $ui-secondary-color;\n }\n}\n\n.dropdown-menu__item {\n a {\n font-size: 13px;\n line-height: 18px;\n display: block;\n padding: 4px 14px;\n box-sizing: border-box;\n text-decoration: none;\n background: $ui-secondary-color;\n color: $inverted-text-color;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n\n &:focus,\n &:hover,\n &:active {\n background: $ui-highlight-color;\n color: $secondary-text-color;\n outline: 0;\n }\n }\n}\n\n.dropdown--active .dropdown__content {\n display: block;\n line-height: 18px;\n max-width: 311px;\n right: 0;\n text-align: left;\n z-index: 9999;\n\n & > ul {\n list-style: none;\n background: $ui-secondary-color;\n padding: 4px 0;\n border-radius: 4px;\n box-shadow: 0 0 15px rgba($base-shadow-color, 0.4);\n min-width: 140px;\n position: relative;\n }\n\n &.dropdown__right {\n right: 0;\n }\n\n &.dropdown__left {\n & > ul {\n left: -98px;\n }\n }\n\n & > ul > li > a {\n font-size: 13px;\n line-height: 18px;\n display: block;\n padding: 4px 14px;\n box-sizing: border-box;\n text-decoration: none;\n background: $ui-secondary-color;\n color: $inverted-text-color;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n\n &:focus {\n outline: 0;\n }\n\n &:hover {\n background: $ui-highlight-color;\n color: $secondary-text-color;\n }\n }\n}\n\n.dropdown__icon {\n vertical-align: middle;\n}\n\n.columns-area {\n display: flex;\n flex: 1 1 auto;\n flex-direction: row;\n justify-content: flex-start;\n overflow-x: auto;\n position: relative;\n\n &.unscrollable {\n overflow-x: hidden;\n }\n\n &__panels {\n display: flex;\n justify-content: center;\n width: 100%;\n height: 100%;\n min-height: 100vh;\n\n &__pane {\n height: 100%;\n overflow: hidden;\n pointer-events: none;\n display: flex;\n justify-content: flex-end;\n min-width: 285px;\n\n &--start {\n justify-content: flex-start;\n }\n\n &__inner {\n position: fixed;\n width: 285px;\n pointer-events: auto;\n height: 100%;\n }\n }\n\n &__main {\n box-sizing: border-box;\n width: 100%;\n max-width: 600px;\n flex: 0 0 auto;\n display: flex;\n flex-direction: column;\n\n @media screen and (min-width: $no-gap-breakpoint) {\n padding: 0 10px;\n }\n }\n }\n}\n\n.tabs-bar__wrapper {\n background: darken($ui-base-color, 8%);\n position: sticky;\n top: 0;\n z-index: 2;\n padding-top: 0;\n\n @media screen and (min-width: $no-gap-breakpoint) {\n padding-top: 10px;\n }\n\n .tabs-bar {\n margin-bottom: 0;\n\n @media screen and (min-width: $no-gap-breakpoint) {\n margin-bottom: 10px;\n }\n }\n}\n\n.react-swipeable-view-container {\n &,\n .columns-area,\n .drawer,\n .column {\n height: 100%;\n }\n}\n\n.react-swipeable-view-container > * {\n display: flex;\n align-items: center;\n justify-content: center;\n height: 100%;\n}\n\n.column {\n width: 350px;\n position: relative;\n box-sizing: border-box;\n display: flex;\n flex-direction: column;\n\n > .scrollable {\n background: $ui-base-color;\n border-bottom-left-radius: 2px;\n border-bottom-right-radius: 2px;\n }\n}\n\n.ui {\n flex: 0 0 auto;\n display: flex;\n flex-direction: column;\n width: 100%;\n height: 100%;\n}\n\n.drawer {\n width: 330px;\n box-sizing: border-box;\n display: flex;\n flex-direction: column;\n overflow-y: hidden;\n}\n\n.drawer__tab {\n display: block;\n flex: 1 1 auto;\n padding: 15px 5px 13px;\n color: $darker-text-color;\n text-decoration: none;\n text-align: center;\n font-size: 16px;\n border-bottom: 2px solid transparent;\n}\n\n.column,\n.drawer {\n flex: 1 1 auto;\n overflow: hidden;\n}\n\n@media screen and (min-width: 631px) {\n .columns-area {\n padding: 0;\n }\n\n .column,\n .drawer {\n flex: 0 0 auto;\n padding: 10px;\n padding-left: 5px;\n padding-right: 5px;\n\n &:first-child {\n padding-left: 10px;\n }\n\n &:last-child {\n padding-right: 10px;\n }\n }\n\n .columns-area > div {\n .column,\n .drawer {\n padding-left: 5px;\n padding-right: 5px;\n }\n }\n}\n\n.tabs-bar {\n box-sizing: border-box;\n display: flex;\n background: lighten($ui-base-color, 8%);\n flex: 0 0 auto;\n overflow-y: auto;\n}\n\n.tabs-bar__link {\n display: block;\n flex: 1 1 auto;\n padding: 15px 10px;\n padding-bottom: 13px;\n color: $primary-text-color;\n text-decoration: none;\n text-align: center;\n font-size: 14px;\n font-weight: 500;\n border-bottom: 2px solid lighten($ui-base-color, 8%);\n transition: all 50ms linear;\n transition-property: border-bottom, background, color;\n\n .fa {\n font-weight: 400;\n font-size: 16px;\n }\n\n &:hover,\n &:focus,\n &:active {\n @media screen and (min-width: 631px) {\n background: lighten($ui-base-color, 14%);\n border-bottom-color: lighten($ui-base-color, 14%);\n }\n }\n\n &.active {\n border-bottom: 2px solid $highlight-text-color;\n color: $highlight-text-color;\n }\n\n span {\n margin-left: 5px;\n display: none;\n }\n}\n\n@media screen and (min-width: 600px) {\n .tabs-bar__link {\n span {\n display: inline;\n }\n }\n}\n\n.columns-area--mobile {\n flex-direction: column;\n width: 100%;\n height: 100%;\n margin: 0 auto;\n\n .column,\n .drawer {\n width: 100%;\n height: 100%;\n padding: 0;\n }\n\n .directory__list {\n display: grid;\n grid-gap: 10px;\n grid-template-columns: minmax(0, 50%) minmax(0, 50%);\n\n @media screen and (max-width: $no-gap-breakpoint) {\n display: block;\n }\n }\n\n .directory__card {\n margin-bottom: 0;\n }\n\n .filter-form {\n display: flex;\n }\n\n .autosuggest-textarea__textarea {\n font-size: 16px;\n }\n\n .search__input {\n line-height: 18px;\n font-size: 16px;\n padding: 15px;\n padding-right: 30px;\n }\n\n .search__icon .fa {\n top: 15px;\n }\n\n .scrollable {\n overflow: visible;\n\n @supports(display: grid) {\n contain: content;\n }\n }\n\n @media screen and (min-width: $no-gap-breakpoint) {\n padding: 10px 0;\n padding-top: 0;\n }\n\n @media screen and (min-width: 630px) {\n .detailed-status {\n padding: 15px;\n\n .media-gallery,\n .video-player,\n .audio-player {\n margin-top: 15px;\n }\n }\n\n .account__header__bar {\n padding: 5px 10px;\n }\n\n .navigation-bar,\n .compose-form {\n padding: 15px;\n }\n\n .compose-form .compose-form__publish .compose-form__publish-button-wrapper {\n padding-top: 15px;\n }\n\n .status {\n padding: 15px 15px 15px (48px + 15px * 2);\n min-height: 48px + 2px;\n\n &__avatar {\n left: 15px;\n top: 17px;\n }\n\n &__content {\n padding-top: 5px;\n }\n\n &__prepend {\n margin-left: 48px + 15px * 2;\n padding-top: 15px;\n }\n\n &__prepend-icon-wrapper {\n left: -32px;\n }\n\n .media-gallery,\n &__action-bar,\n .video-player,\n .audio-player {\n margin-top: 10px;\n }\n }\n\n .account {\n padding: 15px 10px;\n\n &__header__bio {\n margin: 0 -10px;\n }\n }\n\n .notification {\n &__message {\n margin-left: 48px + 15px * 2;\n padding-top: 15px;\n }\n\n &__favourite-icon-wrapper {\n left: -32px;\n }\n\n .status {\n padding-top: 8px;\n }\n\n .account {\n padding-top: 8px;\n }\n\n .account__avatar-wrapper {\n margin-left: 17px;\n margin-right: 15px;\n }\n }\n }\n}\n\n.floating-action-button {\n position: fixed;\n display: flex;\n justify-content: center;\n align-items: center;\n width: 3.9375rem;\n height: 3.9375rem;\n bottom: 1.3125rem;\n right: 1.3125rem;\n background: darken($ui-highlight-color, 3%);\n color: $white;\n border-radius: 50%;\n font-size: 21px;\n line-height: 21px;\n text-decoration: none;\n box-shadow: 2px 3px 9px rgba($base-shadow-color, 0.4);\n\n &:hover,\n &:focus,\n &:active {\n background: lighten($ui-highlight-color, 7%);\n }\n}\n\n@media screen and (min-width: $no-gap-breakpoint) {\n .tabs-bar {\n width: 100%;\n }\n\n .react-swipeable-view-container .columns-area--mobile {\n height: calc(100% - 10px) !important;\n }\n\n .getting-started__wrapper,\n .getting-started__trends,\n .search {\n margin-bottom: 10px;\n }\n\n .getting-started__panel {\n margin: 10px 0;\n }\n\n .column,\n .drawer {\n min-width: 330px;\n }\n}\n\n@media screen and (max-width: 600px + (285px * 1) + (10px * 1)) {\n .columns-area__panels__pane--compositional {\n display: none;\n }\n}\n\n@media screen and (min-width: 600px + (285px * 1) + (10px * 1)) {\n .floating-action-button,\n .tabs-bar__link.optional {\n display: none;\n }\n\n .search-page .search {\n display: none;\n }\n}\n\n@media screen and (max-width: 600px + (285px * 2) + (10px * 2)) {\n .columns-area__panels__pane--navigational {\n display: none;\n }\n}\n\n@media screen and (min-width: 600px + (285px * 2) + (10px * 2)) {\n .tabs-bar {\n display: none;\n }\n}\n\n.icon-with-badge {\n position: relative;\n\n &__badge {\n position: absolute;\n left: 9px;\n top: -13px;\n background: $ui-highlight-color;\n border: 2px solid lighten($ui-base-color, 8%);\n padding: 1px 6px;\n border-radius: 6px;\n font-size: 10px;\n font-weight: 500;\n line-height: 14px;\n color: $primary-text-color;\n }\n}\n\n.column-link--transparent .icon-with-badge__badge {\n border-color: darken($ui-base-color, 8%);\n}\n\n.compose-panel {\n width: 285px;\n margin-top: 10px;\n display: flex;\n flex-direction: column;\n height: calc(100% - 10px);\n overflow-y: hidden;\n\n .navigation-bar {\n padding-top: 20px;\n padding-bottom: 20px;\n flex: 0 1 48px;\n min-height: 20px;\n }\n\n .flex-spacer {\n background: transparent;\n }\n\n .compose-form {\n flex: 1;\n overflow-y: hidden;\n display: flex;\n flex-direction: column;\n min-height: 310px;\n padding-bottom: 71px;\n margin-bottom: -71px;\n }\n\n .compose-form__autosuggest-wrapper {\n overflow-y: auto;\n background-color: $white;\n border-radius: 4px 4px 0 0;\n flex: 0 1 auto;\n }\n\n .autosuggest-textarea__textarea {\n overflow-y: hidden;\n }\n\n .compose-form__upload-thumbnail {\n height: 80px;\n }\n}\n\n.navigation-panel {\n margin-top: 10px;\n margin-bottom: 10px;\n height: calc(100% - 20px);\n overflow-y: auto;\n display: flex;\n flex-direction: column;\n\n & > a {\n flex: 0 0 auto;\n }\n\n hr {\n flex: 0 0 auto;\n border: 0;\n background: transparent;\n border-top: 1px solid lighten($ui-base-color, 4%);\n margin: 10px 0;\n }\n\n .flex-spacer {\n background: transparent;\n }\n}\n\n.drawer__pager {\n box-sizing: border-box;\n padding: 0;\n flex-grow: 1;\n position: relative;\n overflow: hidden;\n display: flex;\n}\n\n.drawer__inner {\n position: absolute;\n top: 0;\n left: 0;\n background: lighten($ui-base-color, 13%);\n box-sizing: border-box;\n padding: 0;\n display: flex;\n flex-direction: column;\n overflow: hidden;\n overflow-y: auto;\n width: 100%;\n height: 100%;\n border-radius: 2px;\n\n &.darker {\n background: $ui-base-color;\n }\n}\n\n.drawer__inner__mastodon {\n background: lighten($ui-base-color, 13%) url('data:image/svg+xml;utf8,') no-repeat bottom / 100% auto;\n flex: 1;\n min-height: 47px;\n display: none;\n\n > img {\n display: block;\n object-fit: contain;\n object-position: bottom left;\n width: 85%;\n height: 100%;\n pointer-events: none;\n user-drag: none;\n user-select: none;\n }\n\n @media screen and (min-height: 640px) {\n display: block;\n }\n}\n\n.pseudo-drawer {\n background: lighten($ui-base-color, 13%);\n font-size: 13px;\n text-align: left;\n}\n\n.drawer__header {\n flex: 0 0 auto;\n font-size: 16px;\n background: lighten($ui-base-color, 8%);\n margin-bottom: 10px;\n display: flex;\n flex-direction: row;\n border-radius: 2px;\n\n a {\n transition: background 100ms ease-in;\n\n &:hover {\n background: lighten($ui-base-color, 3%);\n transition: background 200ms ease-out;\n }\n }\n}\n\n.scrollable {\n overflow-y: scroll;\n overflow-x: hidden;\n flex: 1 1 auto;\n -webkit-overflow-scrolling: touch;\n\n &.optionally-scrollable {\n overflow-y: auto;\n }\n\n @supports(display: grid) { // hack to fix Chrome <57\n contain: strict;\n }\n\n &--flex {\n display: flex;\n flex-direction: column;\n }\n\n &__append {\n flex: 1 1 auto;\n position: relative;\n min-height: 120px;\n }\n}\n\n.scrollable.fullscreen {\n @supports(display: grid) { // hack to fix Chrome <57\n contain: none;\n }\n}\n\n.column-back-button {\n box-sizing: border-box;\n width: 100%;\n background: lighten($ui-base-color, 4%);\n color: $highlight-text-color;\n cursor: pointer;\n flex: 0 0 auto;\n font-size: 16px;\n line-height: inherit;\n border: 0;\n text-align: unset;\n padding: 15px;\n margin: 0;\n z-index: 3;\n outline: 0;\n\n &:hover {\n text-decoration: underline;\n }\n}\n\n.column-header__back-button {\n background: lighten($ui-base-color, 4%);\n border: 0;\n font-family: inherit;\n color: $highlight-text-color;\n cursor: pointer;\n white-space: nowrap;\n font-size: 16px;\n padding: 0 5px 0 0;\n z-index: 3;\n\n &:hover {\n text-decoration: underline;\n }\n\n &:last-child {\n padding: 0 15px 0 0;\n }\n}\n\n.column-back-button__icon {\n display: inline-block;\n margin-right: 5px;\n}\n\n.column-back-button--slim {\n position: relative;\n}\n\n.column-back-button--slim-button {\n cursor: pointer;\n flex: 0 0 auto;\n font-size: 16px;\n padding: 15px;\n position: absolute;\n right: 0;\n top: -48px;\n}\n\n.react-toggle {\n display: inline-block;\n position: relative;\n cursor: pointer;\n background-color: transparent;\n border: 0;\n padding: 0;\n user-select: none;\n -webkit-tap-highlight-color: rgba($base-overlay-background, 0);\n -webkit-tap-highlight-color: transparent;\n}\n\n.react-toggle-screenreader-only {\n border: 0;\n clip: rect(0 0 0 0);\n height: 1px;\n margin: -1px;\n overflow: hidden;\n padding: 0;\n position: absolute;\n width: 1px;\n}\n\n.react-toggle--disabled {\n cursor: not-allowed;\n opacity: 0.5;\n transition: opacity 0.25s;\n}\n\n.react-toggle-track {\n width: 50px;\n height: 24px;\n padding: 0;\n border-radius: 30px;\n background-color: $ui-base-color;\n transition: background-color 0.2s ease;\n}\n\n.react-toggle:hover:not(.react-toggle--disabled) .react-toggle-track {\n background-color: darken($ui-base-color, 10%);\n}\n\n.react-toggle--checked .react-toggle-track {\n background-color: $ui-highlight-color;\n}\n\n.react-toggle--checked:hover:not(.react-toggle--disabled) .react-toggle-track {\n background-color: lighten($ui-highlight-color, 10%);\n}\n\n.react-toggle-track-check {\n position: absolute;\n width: 14px;\n height: 10px;\n top: 0;\n bottom: 0;\n margin-top: auto;\n margin-bottom: auto;\n line-height: 0;\n left: 8px;\n opacity: 0;\n transition: opacity 0.25s ease;\n}\n\n.react-toggle--checked .react-toggle-track-check {\n opacity: 1;\n transition: opacity 0.25s ease;\n}\n\n.react-toggle-track-x {\n position: absolute;\n width: 10px;\n height: 10px;\n top: 0;\n bottom: 0;\n margin-top: auto;\n margin-bottom: auto;\n line-height: 0;\n right: 10px;\n opacity: 1;\n transition: opacity 0.25s ease;\n}\n\n.react-toggle--checked .react-toggle-track-x {\n opacity: 0;\n}\n\n.react-toggle-thumb {\n position: absolute;\n top: 1px;\n left: 1px;\n width: 22px;\n height: 22px;\n border: 1px solid $ui-base-color;\n border-radius: 50%;\n background-color: darken($simple-background-color, 2%);\n box-sizing: border-box;\n transition: all 0.25s ease;\n transition-property: border-color, left;\n}\n\n.react-toggle--checked .react-toggle-thumb {\n left: 27px;\n border-color: $ui-highlight-color;\n}\n\n.column-link {\n background: lighten($ui-base-color, 8%);\n color: $primary-text-color;\n display: block;\n font-size: 16px;\n padding: 15px;\n text-decoration: none;\n\n &:hover,\n &:focus,\n &:active {\n background: lighten($ui-base-color, 11%);\n }\n\n &:focus {\n outline: 0;\n }\n\n &--transparent {\n background: transparent;\n color: $ui-secondary-color;\n\n &:hover,\n &:focus,\n &:active {\n background: transparent;\n color: $primary-text-color;\n }\n\n &.active {\n color: $ui-highlight-color;\n }\n }\n}\n\n.column-link__icon {\n display: inline-block;\n margin-right: 5px;\n}\n\n.column-link__badge {\n display: inline-block;\n border-radius: 4px;\n font-size: 12px;\n line-height: 19px;\n font-weight: 500;\n background: $ui-base-color;\n padding: 4px 8px;\n margin: -6px 10px;\n}\n\n.column-subheading {\n background: $ui-base-color;\n color: $dark-text-color;\n padding: 8px 20px;\n font-size: 12px;\n font-weight: 500;\n text-transform: uppercase;\n cursor: default;\n}\n\n.getting-started__wrapper,\n.getting-started,\n.flex-spacer {\n background: $ui-base-color;\n}\n\n.flex-spacer {\n flex: 1 1 auto;\n}\n\n.getting-started {\n color: $dark-text-color;\n overflow: auto;\n border-bottom-left-radius: 2px;\n border-bottom-right-radius: 2px;\n\n &__wrapper,\n &__panel,\n &__footer {\n height: min-content;\n }\n\n &__panel,\n &__footer\n {\n padding: 10px;\n padding-top: 20px;\n flex-grow: 0;\n\n ul {\n margin-bottom: 10px;\n }\n\n ul li {\n display: inline;\n }\n\n p {\n font-size: 13px;\n\n a {\n color: $dark-text-color;\n text-decoration: underline;\n }\n }\n\n a {\n text-decoration: none;\n color: $darker-text-color;\n\n &:hover,\n &:focus,\n &:active {\n text-decoration: underline;\n }\n }\n }\n\n &__wrapper,\n &__footer\n {\n color: $dark-text-color;\n }\n\n &__trends {\n flex: 0 1 auto;\n opacity: 1;\n animation: fade 150ms linear;\n margin-top: 10px;\n\n h4 {\n font-size: 12px;\n text-transform: uppercase;\n color: $darker-text-color;\n padding: 10px;\n font-weight: 500;\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n }\n\n @media screen and (max-height: 810px) {\n .trends__item:nth-child(3) {\n display: none;\n }\n }\n\n @media screen and (max-height: 720px) {\n .trends__item:nth-child(2) {\n display: none;\n }\n }\n\n @media screen and (max-height: 670px) {\n display: none;\n }\n\n .trends__item {\n border-bottom: 0;\n padding: 10px;\n\n &__current {\n color: $darker-text-color;\n }\n }\n }\n}\n\n.keyboard-shortcuts {\n padding: 8px 0 0;\n overflow: hidden;\n\n thead {\n position: absolute;\n left: -9999px;\n }\n\n td {\n padding: 0 10px 8px;\n }\n\n kbd {\n display: inline-block;\n padding: 3px 5px;\n background-color: lighten($ui-base-color, 8%);\n border: 1px solid darken($ui-base-color, 4%);\n }\n}\n\n.setting-text {\n display: block;\n box-sizing: border-box;\n width: 100%;\n margin: 0;\n color: $inverted-text-color;\n background: $simple-background-color;\n padding: 10px;\n font-family: inherit;\n font-size: 14px;\n resize: vertical;\n border: 0;\n outline: 0;\n border-radius: 4px;\n\n &:focus {\n outline: 0;\n }\n\n @media screen and (max-width: 600px) {\n font-size: 16px;\n }\n}\n\n.no-reduce-motion button.icon-button i.fa-retweet {\n background-position: 0 0;\n height: 19px;\n transition: background-position 0.9s steps(10);\n transition-duration: 0s;\n vertical-align: middle;\n width: 22px;\n\n &::before {\n display: none !important;\n }\n\n}\n\n.no-reduce-motion button.icon-button.active i.fa-retweet {\n transition-duration: 0.9s;\n background-position: 0 100%;\n}\n\n.reduce-motion button.icon-button i.fa-retweet {\n color: $action-button-color;\n transition: color 100ms ease-in;\n}\n\n.reduce-motion button.icon-button.active i.fa-retweet {\n color: $highlight-text-color;\n}\n\n.status-card {\n display: flex;\n font-size: 14px;\n border: 1px solid lighten($ui-base-color, 8%);\n border-radius: 4px;\n color: $dark-text-color;\n margin-top: 14px;\n text-decoration: none;\n overflow: hidden;\n\n &__actions {\n bottom: 0;\n left: 0;\n position: absolute;\n right: 0;\n top: 0;\n display: flex;\n justify-content: center;\n align-items: center;\n\n & > div {\n background: rgba($base-shadow-color, 0.6);\n border-radius: 8px;\n padding: 12px 9px;\n flex: 0 0 auto;\n display: flex;\n justify-content: center;\n align-items: center;\n }\n\n button,\n a {\n display: inline;\n color: $secondary-text-color;\n background: transparent;\n border: 0;\n padding: 0 8px;\n text-decoration: none;\n font-size: 18px;\n line-height: 18px;\n\n &:hover,\n &:active,\n &:focus {\n color: $primary-text-color;\n }\n }\n\n a {\n font-size: 19px;\n position: relative;\n bottom: -1px;\n }\n }\n}\n\na.status-card {\n cursor: pointer;\n\n &:hover {\n background: lighten($ui-base-color, 8%);\n }\n}\n\n.status-card-photo {\n cursor: zoom-in;\n display: block;\n text-decoration: none;\n width: 100%;\n height: auto;\n margin: 0;\n}\n\n.status-card-video {\n iframe {\n width: 100%;\n height: 100%;\n }\n}\n\n.status-card__title {\n display: block;\n font-weight: 500;\n margin-bottom: 5px;\n color: $darker-text-color;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n text-decoration: none;\n}\n\n.status-card__content {\n flex: 1 1 auto;\n overflow: hidden;\n padding: 14px 14px 14px 8px;\n}\n\n.status-card__description {\n color: $darker-text-color;\n}\n\n.status-card__host {\n display: block;\n margin-top: 5px;\n font-size: 13px;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.status-card__image {\n flex: 0 0 100px;\n background: lighten($ui-base-color, 8%);\n position: relative;\n\n & > .fa {\n font-size: 21px;\n position: absolute;\n transform-origin: 50% 50%;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n }\n}\n\n.status-card.horizontal {\n display: block;\n\n .status-card__image {\n width: 100%;\n }\n\n .status-card__image-image {\n border-radius: 4px 4px 0 0;\n }\n\n .status-card__title {\n white-space: inherit;\n }\n}\n\n.status-card.compact {\n border-color: lighten($ui-base-color, 4%);\n\n &.interactive {\n border: 0;\n }\n\n .status-card__content {\n padding: 8px;\n padding-top: 10px;\n }\n\n .status-card__title {\n white-space: nowrap;\n }\n\n .status-card__image {\n flex: 0 0 60px;\n }\n}\n\na.status-card.compact:hover {\n background-color: lighten($ui-base-color, 4%);\n}\n\n.status-card__image-image {\n border-radius: 4px 0 0 4px;\n display: block;\n margin: 0;\n width: 100%;\n height: 100%;\n object-fit: cover;\n background-size: cover;\n background-position: center center;\n}\n\n.load-more {\n display: block;\n color: $dark-text-color;\n background-color: transparent;\n border: 0;\n font-size: inherit;\n text-align: center;\n line-height: inherit;\n margin: 0;\n padding: 15px;\n box-sizing: border-box;\n width: 100%;\n clear: both;\n text-decoration: none;\n\n &:hover {\n background: lighten($ui-base-color, 2%);\n }\n}\n\n.load-gap {\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n}\n\n.regeneration-indicator {\n text-align: center;\n font-size: 16px;\n font-weight: 500;\n color: $dark-text-color;\n background: $ui-base-color;\n cursor: default;\n display: flex;\n flex: 1 1 auto;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n padding: 20px;\n\n &__figure {\n &,\n img {\n display: block;\n width: auto;\n height: 160px;\n margin: 0;\n }\n }\n\n &--without-header {\n padding-top: 20px + 48px;\n }\n\n &__label {\n margin-top: 30px;\n\n strong {\n display: block;\n margin-bottom: 10px;\n color: $dark-text-color;\n }\n\n span {\n font-size: 15px;\n font-weight: 400;\n }\n }\n}\n\n.column-header__wrapper {\n position: relative;\n flex: 0 0 auto;\n z-index: 1;\n\n &.active {\n box-shadow: 0 1px 0 rgba($highlight-text-color, 0.3);\n\n &::before {\n display: block;\n content: \"\";\n position: absolute;\n bottom: -13px;\n left: 0;\n right: 0;\n margin: 0 auto;\n width: 60%;\n pointer-events: none;\n height: 28px;\n z-index: 1;\n background: radial-gradient(ellipse, rgba($ui-highlight-color, 0.23) 0%, rgba($ui-highlight-color, 0) 60%);\n }\n }\n\n .announcements {\n z-index: 1;\n position: relative;\n }\n}\n\n.column-header {\n display: flex;\n font-size: 16px;\n background: lighten($ui-base-color, 4%);\n flex: 0 0 auto;\n cursor: pointer;\n position: relative;\n z-index: 2;\n outline: 0;\n overflow: hidden;\n border-top-left-radius: 2px;\n border-top-right-radius: 2px;\n\n & > button {\n margin: 0;\n border: 0;\n padding: 15px 0 15px 15px;\n color: inherit;\n background: transparent;\n font: inherit;\n text-align: left;\n text-overflow: ellipsis;\n overflow: hidden;\n white-space: nowrap;\n flex: 1;\n }\n\n & > .column-header__back-button {\n color: $highlight-text-color;\n }\n\n &.active {\n .column-header__icon {\n color: $highlight-text-color;\n text-shadow: 0 0 10px rgba($highlight-text-color, 0.4);\n }\n }\n\n &:focus,\n &:active {\n outline: 0;\n }\n}\n\n.column-header__buttons {\n height: 48px;\n display: flex;\n}\n\n.column-header__links {\n margin-bottom: 14px;\n}\n\n.column-header__links .text-btn {\n margin-right: 10px;\n}\n\n.column-header__button {\n background: lighten($ui-base-color, 4%);\n border: 0;\n color: $darker-text-color;\n cursor: pointer;\n font-size: 16px;\n padding: 0 15px;\n\n &:hover {\n color: lighten($darker-text-color, 7%);\n }\n\n &.active {\n color: $primary-text-color;\n background: lighten($ui-base-color, 8%);\n\n &:hover {\n color: $primary-text-color;\n background: lighten($ui-base-color, 8%);\n }\n }\n}\n\n.column-header__collapsible {\n max-height: 70vh;\n overflow: hidden;\n overflow-y: auto;\n color: $darker-text-color;\n transition: max-height 150ms ease-in-out, opacity 300ms linear;\n opacity: 1;\n z-index: 1;\n position: relative;\n\n &.collapsed {\n max-height: 0;\n opacity: 0.5;\n }\n\n &.animating {\n overflow-y: hidden;\n }\n\n hr {\n height: 0;\n background: transparent;\n border: 0;\n border-top: 1px solid lighten($ui-base-color, 12%);\n margin: 10px 0;\n }\n}\n\n.column-header__collapsible-inner {\n background: lighten($ui-base-color, 8%);\n padding: 15px;\n}\n\n.column-header__setting-btn {\n &:hover {\n color: $darker-text-color;\n text-decoration: underline;\n }\n}\n\n.column-header__setting-arrows {\n float: right;\n\n .column-header__setting-btn {\n padding: 0 10px;\n\n &:last-child {\n padding-right: 0;\n }\n }\n}\n\n.text-btn {\n display: inline-block;\n padding: 0;\n font-family: inherit;\n font-size: inherit;\n color: inherit;\n border: 0;\n background: transparent;\n cursor: pointer;\n}\n\n.column-header__icon {\n display: inline-block;\n margin-right: 5px;\n}\n\n.loading-indicator {\n color: $dark-text-color;\n font-size: 12px;\n font-weight: 400;\n text-transform: uppercase;\n overflow: visible;\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n\n span {\n display: block;\n float: left;\n margin-left: 50%;\n transform: translateX(-50%);\n margin: 82px 0 0 50%;\n white-space: nowrap;\n }\n}\n\n.loading-indicator__figure {\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n width: 42px;\n height: 42px;\n box-sizing: border-box;\n background-color: transparent;\n border: 0 solid lighten($ui-base-color, 26%);\n border-width: 6px;\n border-radius: 50%;\n}\n\n.no-reduce-motion .loading-indicator span {\n animation: loader-label 1.15s infinite cubic-bezier(0.215, 0.61, 0.355, 1);\n}\n\n.no-reduce-motion .loading-indicator__figure {\n animation: loader-figure 1.15s infinite cubic-bezier(0.215, 0.61, 0.355, 1);\n}\n\n@keyframes spring-rotate-in {\n 0% {\n transform: rotate(0deg);\n }\n\n 30% {\n transform: rotate(-484.8deg);\n }\n\n 60% {\n transform: rotate(-316.7deg);\n }\n\n 90% {\n transform: rotate(-375deg);\n }\n\n 100% {\n transform: rotate(-360deg);\n }\n}\n\n@keyframes spring-rotate-out {\n 0% {\n transform: rotate(-360deg);\n }\n\n 30% {\n transform: rotate(124.8deg);\n }\n\n 60% {\n transform: rotate(-43.27deg);\n }\n\n 90% {\n transform: rotate(15deg);\n }\n\n 100% {\n transform: rotate(0deg);\n }\n}\n\n@keyframes loader-figure {\n 0% {\n width: 0;\n height: 0;\n background-color: lighten($ui-base-color, 26%);\n }\n\n 29% {\n background-color: lighten($ui-base-color, 26%);\n }\n\n 30% {\n width: 42px;\n height: 42px;\n background-color: transparent;\n border-width: 21px;\n opacity: 1;\n }\n\n 100% {\n width: 42px;\n height: 42px;\n border-width: 0;\n opacity: 0;\n background-color: transparent;\n }\n}\n\n@keyframes loader-label {\n 0% { opacity: 0.25; }\n 30% { opacity: 1; }\n 100% { opacity: 0.25; }\n}\n\n.video-error-cover {\n align-items: center;\n background: $base-overlay-background;\n color: $primary-text-color;\n cursor: pointer;\n display: flex;\n flex-direction: column;\n height: 100%;\n justify-content: center;\n margin-top: 8px;\n position: relative;\n text-align: center;\n z-index: 100;\n}\n\n.media-spoiler {\n background: $base-overlay-background;\n color: $darker-text-color;\n border: 0;\n padding: 0;\n width: 100%;\n height: 100%;\n border-radius: 4px;\n appearance: none;\n\n &:hover,\n &:active,\n &:focus {\n padding: 0;\n color: lighten($darker-text-color, 8%);\n }\n}\n\n.media-spoiler__warning {\n display: block;\n font-size: 14px;\n}\n\n.media-spoiler__trigger {\n display: block;\n font-size: 11px;\n font-weight: 700;\n}\n\n.spoiler-button {\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n position: absolute;\n z-index: 100;\n\n &--minified {\n display: block;\n left: 4px;\n top: 4px;\n width: auto;\n height: auto;\n }\n\n &--click-thru {\n pointer-events: none;\n }\n\n &--hidden {\n display: none;\n }\n\n &__overlay {\n display: block;\n background: transparent;\n width: 100%;\n height: 100%;\n border: 0;\n\n &__label {\n display: inline-block;\n background: rgba($base-overlay-background, 0.5);\n border-radius: 8px;\n padding: 8px 12px;\n color: $primary-text-color;\n font-weight: 500;\n font-size: 14px;\n }\n\n &:hover,\n &:focus,\n &:active {\n .spoiler-button__overlay__label {\n background: rgba($base-overlay-background, 0.8);\n }\n }\n\n &:disabled {\n .spoiler-button__overlay__label {\n background: rgba($base-overlay-background, 0.5);\n }\n }\n }\n}\n\n.modal-container--preloader {\n background: lighten($ui-base-color, 8%);\n}\n\n.account--panel {\n background: lighten($ui-base-color, 4%);\n border-top: 1px solid lighten($ui-base-color, 8%);\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n display: flex;\n flex-direction: row;\n padding: 10px 0;\n}\n\n.account--panel__button,\n.detailed-status__button {\n flex: 1 1 auto;\n text-align: center;\n}\n\n.column-settings__outer {\n background: lighten($ui-base-color, 8%);\n padding: 15px;\n}\n\n.column-settings__section {\n color: $darker-text-color;\n cursor: default;\n display: block;\n font-weight: 500;\n margin-bottom: 10px;\n}\n\n.column-settings__hashtags {\n .column-settings__row {\n margin-bottom: 15px;\n }\n\n .column-select {\n &__control {\n @include search-input;\n\n &::placeholder {\n color: lighten($darker-text-color, 4%);\n }\n\n &::-moz-focus-inner {\n border: 0;\n }\n\n &::-moz-focus-inner,\n &:focus,\n &:active {\n outline: 0 !important;\n }\n\n &:focus {\n background: lighten($ui-base-color, 4%);\n }\n\n @media screen and (max-width: 600px) {\n font-size: 16px;\n }\n }\n\n &__placeholder {\n color: $dark-text-color;\n padding-left: 2px;\n font-size: 12px;\n }\n\n &__value-container {\n padding-left: 6px;\n }\n\n &__multi-value {\n background: lighten($ui-base-color, 8%);\n\n &__remove {\n cursor: pointer;\n\n &:hover,\n &:active,\n &:focus {\n background: lighten($ui-base-color, 12%);\n color: lighten($darker-text-color, 4%);\n }\n }\n }\n\n &__multi-value__label,\n &__input {\n color: $darker-text-color;\n }\n\n &__clear-indicator,\n &__dropdown-indicator {\n cursor: pointer;\n transition: none;\n color: $dark-text-color;\n\n &:hover,\n &:active,\n &:focus {\n color: lighten($dark-text-color, 4%);\n }\n }\n\n &__indicator-separator {\n background-color: lighten($ui-base-color, 8%);\n }\n\n &__menu {\n @include search-popout;\n padding: 0;\n background: $ui-secondary-color;\n }\n\n &__menu-list {\n padding: 6px;\n }\n\n &__option {\n color: $inverted-text-color;\n border-radius: 4px;\n font-size: 14px;\n\n &--is-focused,\n &--is-selected {\n background: darken($ui-secondary-color, 10%);\n }\n }\n }\n}\n\n.column-settings__row {\n .text-btn {\n margin-bottom: 15px;\n }\n}\n\n.relationship-tag {\n color: $primary-text-color;\n margin-bottom: 4px;\n display: block;\n vertical-align: top;\n background-color: $base-overlay-background;\n text-transform: uppercase;\n font-size: 11px;\n font-weight: 500;\n padding: 4px;\n border-radius: 4px;\n opacity: 0.7;\n\n &:hover {\n opacity: 1;\n }\n}\n\n.setting-toggle {\n display: block;\n line-height: 24px;\n}\n\n.setting-toggle__label {\n color: $darker-text-color;\n display: inline-block;\n margin-bottom: 14px;\n margin-left: 8px;\n vertical-align: middle;\n}\n\n.empty-column-indicator,\n.error-column,\n.follow_requests-unlocked_explanation {\n color: $dark-text-color;\n background: $ui-base-color;\n text-align: center;\n padding: 20px;\n font-size: 15px;\n font-weight: 400;\n cursor: default;\n display: flex;\n flex: 1 1 auto;\n align-items: center;\n justify-content: center;\n\n @supports(display: grid) { // hack to fix Chrome <57\n contain: strict;\n }\n\n & > span {\n max-width: 400px;\n }\n\n a {\n color: $highlight-text-color;\n text-decoration: none;\n\n &:hover {\n text-decoration: underline;\n }\n }\n}\n\n.follow_requests-unlocked_explanation {\n background: darken($ui-base-color, 4%);\n contain: initial;\n}\n\n.error-column {\n flex-direction: column;\n}\n\n@keyframes heartbeat {\n from {\n transform: scale(1);\n animation-timing-function: ease-out;\n }\n\n 10% {\n transform: scale(0.91);\n animation-timing-function: ease-in;\n }\n\n 17% {\n transform: scale(0.98);\n animation-timing-function: ease-out;\n }\n\n 33% {\n transform: scale(0.87);\n animation-timing-function: ease-in;\n }\n\n 45% {\n transform: scale(1);\n animation-timing-function: ease-out;\n }\n}\n\n.no-reduce-motion .pulse-loading {\n transform-origin: center center;\n animation: heartbeat 1.5s ease-in-out infinite both;\n}\n\n@keyframes shake-bottom {\n 0%,\n 100% {\n transform: rotate(0deg);\n transform-origin: 50% 100%;\n }\n\n 10% {\n transform: rotate(2deg);\n }\n\n 20%,\n 40%,\n 60% {\n transform: rotate(-4deg);\n }\n\n 30%,\n 50%,\n 70% {\n transform: rotate(4deg);\n }\n\n 80% {\n transform: rotate(-2deg);\n }\n\n 90% {\n transform: rotate(2deg);\n }\n}\n\n.no-reduce-motion .shake-bottom {\n transform-origin: 50% 100%;\n animation: shake-bottom 0.8s cubic-bezier(0.455, 0.03, 0.515, 0.955) 2s 2 both;\n}\n\n.emoji-picker-dropdown__menu {\n background: $simple-background-color;\n position: absolute;\n box-shadow: 4px 4px 6px rgba($base-shadow-color, 0.4);\n border-radius: 4px;\n margin-top: 5px;\n z-index: 2;\n\n .emoji-mart-scroll {\n transition: opacity 200ms ease;\n }\n\n &.selecting .emoji-mart-scroll {\n opacity: 0.5;\n }\n}\n\n.emoji-picker-dropdown__modifiers {\n position: absolute;\n top: 60px;\n right: 11px;\n cursor: pointer;\n}\n\n.emoji-picker-dropdown__modifiers__menu {\n position: absolute;\n z-index: 4;\n top: -4px;\n left: -8px;\n background: $simple-background-color;\n border-radius: 4px;\n box-shadow: 1px 2px 6px rgba($base-shadow-color, 0.2);\n overflow: hidden;\n\n button {\n display: block;\n cursor: pointer;\n border: 0;\n padding: 4px 8px;\n background: transparent;\n\n &:hover,\n &:focus,\n &:active {\n background: rgba($ui-secondary-color, 0.4);\n }\n }\n\n .emoji-mart-emoji {\n height: 22px;\n }\n}\n\n.emoji-mart-emoji {\n span {\n background-repeat: no-repeat;\n }\n}\n\n.upload-area {\n align-items: center;\n background: rgba($base-overlay-background, 0.8);\n display: flex;\n height: 100%;\n justify-content: center;\n left: 0;\n opacity: 0;\n position: absolute;\n top: 0;\n visibility: hidden;\n width: 100%;\n z-index: 2000;\n\n * {\n pointer-events: none;\n }\n}\n\n.upload-area__drop {\n width: 320px;\n height: 160px;\n display: flex;\n box-sizing: border-box;\n position: relative;\n padding: 8px;\n}\n\n.upload-area__background {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: -1;\n border-radius: 4px;\n background: $ui-base-color;\n box-shadow: 0 0 5px rgba($base-shadow-color, 0.2);\n}\n\n.upload-area__content {\n flex: 1;\n display: flex;\n align-items: center;\n justify-content: center;\n color: $secondary-text-color;\n font-size: 18px;\n font-weight: 500;\n border: 2px dashed $ui-base-lighter-color;\n border-radius: 4px;\n}\n\n.upload-progress {\n padding: 10px;\n color: $lighter-text-color;\n overflow: hidden;\n display: flex;\n\n .fa {\n font-size: 34px;\n margin-right: 10px;\n }\n\n span {\n font-size: 12px;\n text-transform: uppercase;\n font-weight: 500;\n display: block;\n }\n}\n\n.upload-progess__message {\n flex: 1 1 auto;\n}\n\n.upload-progress__backdrop {\n width: 100%;\n height: 6px;\n border-radius: 6px;\n background: $ui-base-lighter-color;\n position: relative;\n margin-top: 5px;\n}\n\n.upload-progress__tracker {\n position: absolute;\n left: 0;\n top: 0;\n height: 6px;\n background: $ui-highlight-color;\n border-radius: 6px;\n}\n\n.emoji-button {\n display: block;\n padding: 5px 5px 2px 2px;\n outline: 0;\n cursor: pointer;\n\n &:active,\n &:focus {\n outline: 0 !important;\n }\n\n img {\n filter: grayscale(100%);\n opacity: 0.8;\n display: block;\n margin: 0;\n width: 22px;\n height: 22px;\n }\n\n &:hover,\n &:active,\n &:focus {\n img {\n opacity: 1;\n filter: none;\n }\n }\n}\n\n.dropdown--active .emoji-button img {\n opacity: 1;\n filter: none;\n}\n\n.privacy-dropdown__dropdown {\n position: absolute;\n background: $simple-background-color;\n box-shadow: 2px 4px 15px rgba($base-shadow-color, 0.4);\n border-radius: 4px;\n margin-left: 40px;\n overflow: hidden;\n\n &.top {\n transform-origin: 50% 100%;\n }\n\n &.bottom {\n transform-origin: 50% 0;\n }\n}\n\n.privacy-dropdown__option {\n color: $inverted-text-color;\n padding: 10px;\n cursor: pointer;\n display: flex;\n\n &:hover,\n &.active {\n background: $ui-highlight-color;\n color: $primary-text-color;\n outline: 0;\n\n .privacy-dropdown__option__content {\n color: $primary-text-color;\n\n strong {\n color: $primary-text-color;\n }\n }\n }\n\n &.active:hover {\n background: lighten($ui-highlight-color, 4%);\n }\n}\n\n.privacy-dropdown__option__icon {\n display: flex;\n align-items: center;\n justify-content: center;\n margin-right: 10px;\n}\n\n.privacy-dropdown__option__content {\n flex: 1 1 auto;\n color: $lighter-text-color;\n\n strong {\n font-weight: 500;\n display: block;\n color: $inverted-text-color;\n\n @each $lang in $cjk-langs {\n &:lang(#{$lang}) {\n font-weight: 700;\n }\n }\n }\n}\n\n.privacy-dropdown.active {\n .privacy-dropdown__value {\n background: $simple-background-color;\n border-radius: 4px 4px 0 0;\n box-shadow: 0 -4px 4px rgba($base-shadow-color, 0.1);\n\n .icon-button {\n transition: none;\n }\n\n &.active {\n background: $ui-highlight-color;\n\n .icon-button {\n color: $primary-text-color;\n }\n }\n }\n\n &.top .privacy-dropdown__value {\n border-radius: 0 0 4px 4px;\n }\n\n .privacy-dropdown__dropdown {\n display: block;\n box-shadow: 2px 4px 6px rgba($base-shadow-color, 0.1);\n }\n}\n\n.search {\n position: relative;\n}\n\n.search__input {\n @include search-input;\n\n display: block;\n padding: 15px;\n padding-right: 30px;\n line-height: 18px;\n font-size: 16px;\n\n &::placeholder {\n color: lighten($darker-text-color, 4%);\n }\n\n &::-moz-focus-inner {\n border: 0;\n }\n\n &::-moz-focus-inner,\n &:focus,\n &:active {\n outline: 0 !important;\n }\n\n &:focus {\n background: lighten($ui-base-color, 4%);\n }\n\n @media screen and (max-width: 600px) {\n font-size: 16px;\n }\n}\n\n.search__icon {\n &::-moz-focus-inner {\n border: 0;\n }\n\n &::-moz-focus-inner,\n &:focus {\n outline: 0 !important;\n }\n\n .fa {\n position: absolute;\n top: 16px;\n right: 10px;\n z-index: 2;\n display: inline-block;\n opacity: 0;\n transition: all 100ms linear;\n transition-property: transform, opacity;\n font-size: 18px;\n width: 18px;\n height: 18px;\n color: $secondary-text-color;\n cursor: default;\n pointer-events: none;\n\n &.active {\n pointer-events: auto;\n opacity: 0.3;\n }\n }\n\n .fa-search {\n transform: rotate(90deg);\n\n &.active {\n pointer-events: none;\n transform: rotate(0deg);\n }\n }\n\n .fa-times-circle {\n top: 17px;\n transform: rotate(0deg);\n color: $action-button-color;\n cursor: pointer;\n\n &.active {\n transform: rotate(90deg);\n }\n\n &:hover {\n color: lighten($action-button-color, 7%);\n }\n }\n}\n\n.search-results__header {\n color: $dark-text-color;\n background: lighten($ui-base-color, 2%);\n padding: 15px;\n font-weight: 500;\n font-size: 16px;\n cursor: default;\n\n .fa {\n display: inline-block;\n margin-right: 5px;\n }\n}\n\n.search-results__section {\n margin-bottom: 5px;\n\n h5 {\n background: darken($ui-base-color, 4%);\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n cursor: default;\n display: flex;\n padding: 15px;\n font-weight: 500;\n font-size: 16px;\n color: $dark-text-color;\n\n .fa {\n display: inline-block;\n margin-right: 5px;\n }\n }\n\n .account:last-child,\n & > div:last-child .status {\n border-bottom: 0;\n }\n}\n\n.search-results__hashtag {\n display: block;\n padding: 10px;\n color: $secondary-text-color;\n text-decoration: none;\n\n &:hover,\n &:active,\n &:focus {\n color: lighten($secondary-text-color, 4%);\n text-decoration: underline;\n }\n}\n\n.search-results__info {\n padding: 20px;\n color: $darker-text-color;\n text-align: center;\n}\n\n.modal-root {\n position: relative;\n transition: opacity 0.3s linear;\n will-change: opacity;\n z-index: 9999;\n}\n\n.modal-root__overlay {\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background: rgba($base-overlay-background, 0.7);\n}\n\n.modal-root__container {\n position: fixed;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n align-content: space-around;\n z-index: 9999;\n pointer-events: none;\n user-select: none;\n}\n\n.modal-root__modal {\n pointer-events: auto;\n display: flex;\n z-index: 9999;\n}\n\n.video-modal__container {\n max-width: 100vw;\n max-height: 100vh;\n}\n\n.audio-modal__container {\n width: 50vw;\n}\n\n.media-modal {\n width: 100%;\n height: 100%;\n position: relative;\n\n .extended-video-player {\n width: 100%;\n height: 100%;\n display: flex;\n align-items: center;\n justify-content: center;\n\n video {\n max-width: $media-modal-media-max-width;\n max-height: $media-modal-media-max-height;\n }\n }\n}\n\n.media-modal__closer {\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n}\n\n.media-modal__navigation {\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n pointer-events: none;\n transition: opacity 0.3s linear;\n will-change: opacity;\n\n * {\n pointer-events: auto;\n }\n\n &.media-modal__navigation--hidden {\n opacity: 0;\n\n * {\n pointer-events: none;\n }\n }\n}\n\n.media-modal__nav {\n background: rgba($base-overlay-background, 0.5);\n box-sizing: border-box;\n border: 0;\n color: $primary-text-color;\n cursor: pointer;\n display: flex;\n align-items: center;\n font-size: 24px;\n height: 20vmax;\n margin: auto 0;\n padding: 30px 15px;\n position: absolute;\n top: 0;\n bottom: 0;\n}\n\n.media-modal__nav--left {\n left: 0;\n}\n\n.media-modal__nav--right {\n right: 0;\n}\n\n.media-modal__pagination {\n width: 100%;\n text-align: center;\n position: absolute;\n left: 0;\n bottom: 20px;\n pointer-events: none;\n}\n\n.media-modal__meta {\n text-align: center;\n position: absolute;\n left: 0;\n bottom: 20px;\n width: 100%;\n pointer-events: none;\n\n &--shifted {\n bottom: 62px;\n }\n\n a {\n pointer-events: auto;\n text-decoration: none;\n font-weight: 500;\n color: $ui-secondary-color;\n\n &:hover,\n &:focus,\n &:active {\n text-decoration: underline;\n }\n }\n}\n\n.media-modal__page-dot {\n display: inline-block;\n}\n\n.media-modal__button {\n background-color: $primary-text-color;\n height: 12px;\n width: 12px;\n border-radius: 6px;\n margin: 10px;\n padding: 0;\n border: 0;\n font-size: 0;\n}\n\n.media-modal__button--active {\n background-color: $highlight-text-color;\n}\n\n.media-modal__close {\n position: absolute;\n right: 8px;\n top: 8px;\n z-index: 100;\n}\n\n.onboarding-modal,\n.error-modal,\n.embed-modal {\n background: $ui-secondary-color;\n color: $inverted-text-color;\n border-radius: 8px;\n overflow: hidden;\n display: flex;\n flex-direction: column;\n}\n\n.error-modal__body {\n height: 80vh;\n width: 80vw;\n max-width: 520px;\n max-height: 420px;\n position: relative;\n\n & > div {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n box-sizing: border-box;\n padding: 25px;\n display: none;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n display: flex;\n opacity: 0;\n user-select: text;\n }\n}\n\n.error-modal__body {\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n text-align: center;\n}\n\n.onboarding-modal__paginator,\n.error-modal__footer {\n flex: 0 0 auto;\n background: darken($ui-secondary-color, 8%);\n display: flex;\n padding: 25px;\n\n & > div {\n min-width: 33px;\n }\n\n .onboarding-modal__nav,\n .error-modal__nav {\n color: $lighter-text-color;\n border: 0;\n font-size: 14px;\n font-weight: 500;\n padding: 10px 25px;\n line-height: inherit;\n height: auto;\n margin: -10px;\n border-radius: 4px;\n background-color: transparent;\n\n &:hover,\n &:focus,\n &:active {\n color: darken($lighter-text-color, 4%);\n background-color: darken($ui-secondary-color, 16%);\n }\n\n &.onboarding-modal__done,\n &.onboarding-modal__next {\n color: $inverted-text-color;\n\n &:hover,\n &:focus,\n &:active {\n color: lighten($inverted-text-color, 4%);\n }\n }\n }\n}\n\n.error-modal__footer {\n justify-content: center;\n}\n\n.display-case {\n text-align: center;\n font-size: 15px;\n margin-bottom: 15px;\n\n &__label {\n font-weight: 500;\n color: $inverted-text-color;\n margin-bottom: 5px;\n text-transform: uppercase;\n font-size: 12px;\n }\n\n &__case {\n background: $ui-base-color;\n color: $secondary-text-color;\n font-weight: 500;\n padding: 10px;\n border-radius: 4px;\n }\n}\n\n.onboard-sliders {\n display: inline-block;\n max-width: 30px;\n max-height: auto;\n margin-left: 10px;\n}\n\n.boost-modal,\n.confirmation-modal,\n.report-modal,\n.actions-modal,\n.mute-modal,\n.block-modal {\n background: lighten($ui-secondary-color, 8%);\n color: $inverted-text-color;\n border-radius: 8px;\n overflow: hidden;\n max-width: 90vw;\n width: 480px;\n position: relative;\n flex-direction: column;\n\n .status__display-name {\n display: block;\n max-width: 100%;\n padding-right: 25px;\n }\n\n .status__avatar {\n height: 28px;\n left: 10px;\n position: absolute;\n top: 10px;\n width: 48px;\n }\n\n .status__content__spoiler-link {\n color: lighten($secondary-text-color, 8%);\n }\n}\n\n.actions-modal {\n .status {\n background: $white;\n border-bottom-color: $ui-secondary-color;\n padding-top: 10px;\n padding-bottom: 10px;\n }\n\n .dropdown-menu__separator {\n border-bottom-color: $ui-secondary-color;\n }\n}\n\n.boost-modal__container {\n overflow-x: scroll;\n padding: 10px;\n\n .status {\n user-select: text;\n border-bottom: 0;\n }\n}\n\n.boost-modal__action-bar,\n.confirmation-modal__action-bar,\n.mute-modal__action-bar,\n.block-modal__action-bar {\n display: flex;\n justify-content: space-between;\n background: $ui-secondary-color;\n padding: 10px;\n line-height: 36px;\n\n & > div {\n flex: 1 1 auto;\n text-align: right;\n color: $lighter-text-color;\n padding-right: 10px;\n }\n\n .button {\n flex: 0 0 auto;\n }\n}\n\n.boost-modal__status-header {\n font-size: 15px;\n}\n\n.boost-modal__status-time {\n float: right;\n font-size: 14px;\n}\n\n.mute-modal,\n.block-modal {\n line-height: 24px;\n}\n\n.mute-modal .react-toggle,\n.block-modal .react-toggle {\n vertical-align: middle;\n}\n\n.report-modal {\n width: 90vw;\n max-width: 700px;\n}\n\n.report-modal__container {\n display: flex;\n border-top: 1px solid $ui-secondary-color;\n\n @media screen and (max-width: 480px) {\n flex-wrap: wrap;\n overflow-y: auto;\n }\n}\n\n.report-modal__statuses,\n.report-modal__comment {\n box-sizing: border-box;\n width: 50%;\n\n @media screen and (max-width: 480px) {\n width: 100%;\n }\n}\n\n.report-modal__statuses,\n.focal-point-modal__content {\n flex: 1 1 auto;\n min-height: 20vh;\n max-height: 80vh;\n overflow-y: auto;\n overflow-x: hidden;\n\n .status__content a {\n color: $highlight-text-color;\n }\n\n .status__content,\n .status__content p {\n color: $inverted-text-color;\n }\n\n @media screen and (max-width: 480px) {\n max-height: 10vh;\n }\n}\n\n.focal-point-modal__content {\n @media screen and (max-width: 480px) {\n max-height: 40vh;\n }\n}\n\n.report-modal__comment {\n padding: 20px;\n border-right: 1px solid $ui-secondary-color;\n max-width: 320px;\n\n p {\n font-size: 14px;\n line-height: 20px;\n margin-bottom: 20px;\n }\n\n .setting-text {\n display: block;\n box-sizing: border-box;\n width: 100%;\n margin: 0;\n color: $inverted-text-color;\n background: $white;\n padding: 10px;\n font-family: inherit;\n font-size: 14px;\n resize: none;\n border: 0;\n outline: 0;\n border-radius: 4px;\n border: 1px solid $ui-secondary-color;\n min-height: 100px;\n max-height: 50vh;\n margin-bottom: 10px;\n\n &:focus {\n border: 1px solid darken($ui-secondary-color, 8%);\n }\n\n &__wrapper {\n background: $white;\n border: 1px solid $ui-secondary-color;\n margin-bottom: 10px;\n border-radius: 4px;\n\n .setting-text {\n border: 0;\n margin-bottom: 0;\n border-radius: 0;\n\n &:focus {\n border: 0;\n }\n }\n\n &__modifiers {\n color: $inverted-text-color;\n font-family: inherit;\n font-size: 14px;\n background: $white;\n }\n }\n\n &__toolbar {\n display: flex;\n justify-content: space-between;\n margin-bottom: 20px;\n }\n }\n\n .setting-text-label {\n display: block;\n color: $inverted-text-color;\n font-size: 14px;\n font-weight: 500;\n margin-bottom: 10px;\n }\n\n .setting-toggle {\n margin-top: 20px;\n margin-bottom: 24px;\n\n &__label {\n color: $inverted-text-color;\n font-size: 14px;\n }\n }\n\n @media screen and (max-width: 480px) {\n padding: 10px;\n max-width: 100%;\n order: 2;\n\n .setting-toggle {\n margin-bottom: 4px;\n }\n }\n}\n\n.actions-modal {\n max-height: 80vh;\n max-width: 80vw;\n\n .status {\n overflow-y: auto;\n max-height: 300px;\n }\n\n .actions-modal__item-label {\n font-weight: 500;\n }\n\n ul {\n overflow-y: auto;\n flex-shrink: 0;\n max-height: 80vh;\n\n &.with-status {\n max-height: calc(80vh - 75px);\n }\n\n li:empty {\n margin: 0;\n }\n\n li:not(:empty) {\n a {\n color: $inverted-text-color;\n display: flex;\n padding: 12px 16px;\n font-size: 15px;\n align-items: center;\n text-decoration: none;\n\n &,\n button {\n transition: none;\n }\n\n &.active,\n &:hover,\n &:active,\n &:focus {\n &,\n button {\n background: $ui-highlight-color;\n color: $primary-text-color;\n }\n }\n\n button:first-child {\n margin-right: 10px;\n }\n }\n }\n }\n}\n\n.confirmation-modal__action-bar,\n.mute-modal__action-bar,\n.block-modal__action-bar {\n .confirmation-modal__secondary-button {\n flex-shrink: 1;\n }\n}\n\n.confirmation-modal__secondary-button,\n.confirmation-modal__cancel-button,\n.mute-modal__cancel-button,\n.block-modal__cancel-button {\n background-color: transparent;\n color: $lighter-text-color;\n font-size: 14px;\n font-weight: 500;\n\n &:hover,\n &:focus,\n &:active {\n color: darken($lighter-text-color, 4%);\n background-color: transparent;\n }\n}\n\n.confirmation-modal__container,\n.mute-modal__container,\n.block-modal__container,\n.report-modal__target {\n padding: 30px;\n font-size: 16px;\n\n strong {\n font-weight: 500;\n\n @each $lang in $cjk-langs {\n &:lang(#{$lang}) {\n font-weight: 700;\n }\n }\n }\n}\n\n.confirmation-modal__container,\n.report-modal__target {\n text-align: center;\n}\n\n.block-modal,\n.mute-modal {\n &__explanation {\n margin-top: 20px;\n }\n\n .setting-toggle {\n margin-top: 20px;\n margin-bottom: 24px;\n display: flex;\n align-items: center;\n\n &__label {\n color: $inverted-text-color;\n margin: 0;\n margin-left: 8px;\n }\n }\n}\n\n.report-modal__target {\n padding: 15px;\n\n .media-modal__close {\n top: 14px;\n right: 15px;\n }\n}\n\n.loading-bar {\n background-color: $highlight-text-color;\n height: 3px;\n position: absolute;\n top: 0;\n left: 0;\n z-index: 9999;\n}\n\n.media-gallery__gifv__label {\n display: block;\n position: absolute;\n color: $primary-text-color;\n background: rgba($base-overlay-background, 0.5);\n bottom: 6px;\n left: 6px;\n padding: 2px 6px;\n border-radius: 2px;\n font-size: 11px;\n font-weight: 600;\n z-index: 1;\n pointer-events: none;\n opacity: 0.9;\n transition: opacity 0.1s ease;\n line-height: 18px;\n}\n\n.media-gallery__gifv {\n &:hover {\n .media-gallery__gifv__label {\n opacity: 1;\n }\n }\n}\n\n.media-gallery__audio {\n margin-top: 32px;\n\n audio {\n width: 100%;\n }\n}\n\n.attachment-list {\n display: flex;\n font-size: 14px;\n border: 1px solid lighten($ui-base-color, 8%);\n border-radius: 4px;\n margin-top: 14px;\n overflow: hidden;\n\n &__icon {\n flex: 0 0 auto;\n color: $dark-text-color;\n padding: 8px 18px;\n cursor: default;\n border-right: 1px solid lighten($ui-base-color, 8%);\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n font-size: 26px;\n\n .fa {\n display: block;\n }\n }\n\n &__list {\n list-style: none;\n padding: 4px 0;\n padding-left: 8px;\n display: flex;\n flex-direction: column;\n justify-content: center;\n\n li {\n display: block;\n padding: 4px 0;\n }\n\n a {\n text-decoration: none;\n color: $dark-text-color;\n font-weight: 500;\n\n &:hover {\n text-decoration: underline;\n }\n }\n }\n\n &.compact {\n border: 0;\n margin-top: 4px;\n\n .attachment-list__list {\n padding: 0;\n display: block;\n }\n\n .fa {\n color: $dark-text-color;\n }\n }\n}\n\n/* Media Gallery */\n.media-gallery {\n box-sizing: border-box;\n margin-top: 8px;\n overflow: hidden;\n border-radius: 4px;\n position: relative;\n width: 100%;\n}\n\n.media-gallery__item {\n border: 0;\n box-sizing: border-box;\n display: block;\n float: left;\n position: relative;\n border-radius: 4px;\n overflow: hidden;\n\n &.standalone {\n .media-gallery__item-gifv-thumbnail {\n transform: none;\n top: 0;\n }\n }\n}\n\n.media-gallery__item-thumbnail {\n cursor: zoom-in;\n display: block;\n text-decoration: none;\n color: $secondary-text-color;\n position: relative;\n z-index: 1;\n\n &,\n img {\n height: 100%;\n width: 100%;\n }\n\n img {\n object-fit: cover;\n }\n}\n\n.media-gallery__preview {\n width: 100%;\n height: 100%;\n object-fit: cover;\n position: absolute;\n top: 0;\n left: 0;\n z-index: 0;\n background: $base-overlay-background;\n\n &--hidden {\n display: none;\n }\n}\n\n.media-gallery__gifv {\n height: 100%;\n overflow: hidden;\n position: relative;\n width: 100%;\n}\n\n.media-gallery__item-gifv-thumbnail {\n cursor: zoom-in;\n height: 100%;\n object-fit: cover;\n position: relative;\n top: 50%;\n transform: translateY(-50%);\n width: 100%;\n z-index: 1;\n}\n\n.media-gallery__item-thumbnail-label {\n clip: rect(1px 1px 1px 1px); /* IE6, IE7 */\n clip: rect(1px, 1px, 1px, 1px);\n overflow: hidden;\n position: absolute;\n}\n/* End Media Gallery */\n\n.detailed,\n.fullscreen {\n .video-player__volume__current,\n .video-player__volume::before {\n bottom: 27px;\n }\n\n .video-player__volume__handle {\n bottom: 23px;\n }\n\n}\n\n.audio-player {\n box-sizing: border-box;\n position: relative;\n background: darken($ui-base-color, 8%);\n border-radius: 4px;\n padding-bottom: 44px;\n direction: ltr;\n\n &.editable {\n border-radius: 0;\n height: 100%;\n }\n\n &__waveform {\n padding: 15px 0;\n position: relative;\n overflow: hidden;\n\n &::before {\n content: \"\";\n display: block;\n position: absolute;\n border-top: 1px solid lighten($ui-base-color, 4%);\n width: 100%;\n height: 0;\n left: 0;\n top: calc(50% + 1px);\n }\n }\n\n &__progress-placeholder {\n background-color: rgba(lighten($ui-highlight-color, 8%), 0.5);\n }\n\n &__wave-placeholder {\n background-color: lighten($ui-base-color, 16%);\n }\n\n .video-player__controls {\n padding: 0 15px;\n padding-top: 10px;\n background: darken($ui-base-color, 8%);\n border-top: 1px solid lighten($ui-base-color, 4%);\n border-radius: 0 0 4px 4px;\n }\n}\n\n.video-player {\n overflow: hidden;\n position: relative;\n background: $base-shadow-color;\n max-width: 100%;\n border-radius: 4px;\n box-sizing: border-box;\n direction: ltr;\n\n &.editable {\n border-radius: 0;\n height: 100% !important;\n }\n\n &:focus {\n outline: 0;\n }\n\n video {\n max-width: 100vw;\n max-height: 80vh;\n z-index: 1;\n }\n\n &.fullscreen {\n width: 100% !important;\n height: 100% !important;\n margin: 0;\n\n video {\n max-width: 100% !important;\n max-height: 100% !important;\n width: 100% !important;\n height: 100% !important;\n outline: 0;\n }\n }\n\n &.inline {\n video {\n object-fit: contain;\n position: relative;\n top: 50%;\n transform: translateY(-50%);\n }\n }\n\n &__controls {\n position: absolute;\n z-index: 2;\n bottom: 0;\n left: 0;\n right: 0;\n box-sizing: border-box;\n background: linear-gradient(0deg, rgba($base-shadow-color, 0.85) 0, rgba($base-shadow-color, 0.45) 60%, transparent);\n padding: 0 15px;\n opacity: 0;\n transition: opacity .1s ease;\n\n &.active {\n opacity: 1;\n }\n }\n\n &.inactive {\n video,\n .video-player__controls {\n visibility: hidden;\n }\n }\n\n &__spoiler {\n display: none;\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n z-index: 4;\n border: 0;\n background: $base-overlay-background;\n color: $darker-text-color;\n transition: none;\n pointer-events: none;\n\n &.active {\n display: block;\n pointer-events: auto;\n\n &:hover,\n &:active,\n &:focus {\n color: lighten($darker-text-color, 7%);\n }\n }\n\n &__title {\n display: block;\n font-size: 14px;\n }\n\n &__subtitle {\n display: block;\n font-size: 11px;\n font-weight: 500;\n }\n }\n\n &__buttons-bar {\n display: flex;\n justify-content: space-between;\n padding-bottom: 10px;\n\n .video-player__download__icon {\n color: inherit;\n }\n }\n\n &__buttons {\n font-size: 16px;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n\n &.left {\n button {\n padding-left: 0;\n }\n }\n\n &.right {\n button {\n padding-right: 0;\n }\n }\n\n button {\n background: transparent;\n padding: 2px 10px;\n font-size: 16px;\n border: 0;\n color: rgba($white, 0.75);\n\n &:active,\n &:hover,\n &:focus {\n color: $white;\n }\n }\n }\n\n &__time-sep,\n &__time-total,\n &__time-current {\n font-size: 14px;\n font-weight: 500;\n }\n\n &__time-current {\n color: $white;\n margin-left: 60px;\n }\n\n &__time-sep {\n display: inline-block;\n margin: 0 6px;\n }\n\n &__time-sep,\n &__time-total {\n color: $white;\n }\n\n &__volume {\n cursor: pointer;\n height: 24px;\n display: inline;\n\n &::before {\n content: \"\";\n width: 50px;\n background: rgba($white, 0.35);\n border-radius: 4px;\n display: block;\n position: absolute;\n height: 4px;\n left: 70px;\n bottom: 20px;\n }\n\n &__current {\n display: block;\n position: absolute;\n height: 4px;\n border-radius: 4px;\n left: 70px;\n bottom: 20px;\n background: lighten($ui-highlight-color, 8%);\n }\n\n &__handle {\n position: absolute;\n z-index: 3;\n border-radius: 50%;\n width: 12px;\n height: 12px;\n bottom: 16px;\n left: 70px;\n transition: opacity .1s ease;\n background: lighten($ui-highlight-color, 8%);\n box-shadow: 1px 2px 6px rgba($base-shadow-color, 0.2);\n pointer-events: none;\n }\n }\n\n &__link {\n padding: 2px 10px;\n\n a {\n text-decoration: none;\n font-size: 14px;\n font-weight: 500;\n color: $white;\n\n &:hover,\n &:active,\n &:focus {\n text-decoration: underline;\n }\n }\n }\n\n &__seek {\n cursor: pointer;\n height: 24px;\n position: relative;\n\n &::before {\n content: \"\";\n width: 100%;\n background: rgba($white, 0.35);\n border-radius: 4px;\n display: block;\n position: absolute;\n height: 4px;\n top: 10px;\n }\n\n &__progress,\n &__buffer {\n display: block;\n position: absolute;\n height: 4px;\n border-radius: 4px;\n top: 10px;\n background: lighten($ui-highlight-color, 8%);\n }\n\n &__buffer {\n background: rgba($white, 0.2);\n }\n\n &__handle {\n position: absolute;\n z-index: 3;\n opacity: 0;\n border-radius: 50%;\n width: 12px;\n height: 12px;\n top: 6px;\n margin-left: -6px;\n transition: opacity .1s ease;\n background: lighten($ui-highlight-color, 8%);\n box-shadow: 1px 2px 6px rgba($base-shadow-color, 0.2);\n pointer-events: none;\n\n &.active {\n opacity: 1;\n }\n }\n\n &:hover {\n .video-player__seek__handle {\n opacity: 1;\n }\n }\n }\n\n &.detailed,\n &.fullscreen {\n .video-player__buttons {\n button {\n padding-top: 10px;\n padding-bottom: 10px;\n }\n }\n }\n}\n\n.directory {\n &__list {\n width: 100%;\n margin: 10px 0;\n transition: opacity 100ms ease-in;\n\n &.loading {\n opacity: 0.7;\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n margin: 0;\n }\n }\n\n &__card {\n box-sizing: border-box;\n margin-bottom: 10px;\n\n &__img {\n height: 125px;\n position: relative;\n background: darken($ui-base-color, 12%);\n overflow: hidden;\n\n img {\n display: block;\n width: 100%;\n height: 100%;\n margin: 0;\n object-fit: cover;\n }\n }\n\n &__bar {\n display: flex;\n align-items: center;\n background: lighten($ui-base-color, 4%);\n padding: 10px;\n\n &__name {\n flex: 1 1 auto;\n display: flex;\n align-items: center;\n text-decoration: none;\n overflow: hidden;\n }\n\n &__relationship {\n width: 23px;\n min-height: 1px;\n flex: 0 0 auto;\n }\n\n .avatar {\n flex: 0 0 auto;\n width: 48px;\n height: 48px;\n padding-top: 2px;\n\n img {\n width: 100%;\n height: 100%;\n display: block;\n margin: 0;\n border-radius: 4px;\n background: darken($ui-base-color, 8%);\n object-fit: cover;\n }\n }\n\n .display-name {\n margin-left: 15px;\n text-align: left;\n\n strong {\n font-size: 15px;\n color: $primary-text-color;\n font-weight: 500;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n span {\n display: block;\n font-size: 14px;\n color: $darker-text-color;\n font-weight: 400;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n }\n }\n\n &__extra {\n background: $ui-base-color;\n display: flex;\n align-items: center;\n justify-content: center;\n\n .accounts-table__count {\n width: 33.33%;\n flex: 0 0 auto;\n padding: 15px 0;\n }\n\n .account__header__content {\n box-sizing: border-box;\n padding: 15px 10px;\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n width: 100%;\n min-height: 18px + 30px;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n\n p {\n display: none;\n\n &:first-child {\n display: inline;\n }\n }\n\n br {\n display: none;\n }\n }\n }\n }\n}\n\n.account-gallery__container {\n display: flex;\n flex-wrap: wrap;\n padding: 4px 2px;\n}\n\n.account-gallery__item {\n border: 0;\n box-sizing: border-box;\n display: block;\n position: relative;\n border-radius: 4px;\n overflow: hidden;\n margin: 2px;\n\n &__icons {\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n font-size: 24px;\n }\n}\n\n.notification__filter-bar,\n.account__section-headline {\n background: darken($ui-base-color, 4%);\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n cursor: default;\n display: flex;\n flex-shrink: 0;\n\n button {\n background: darken($ui-base-color, 4%);\n border: 0;\n margin: 0;\n }\n\n button,\n a {\n display: block;\n flex: 1 1 auto;\n color: $darker-text-color;\n padding: 15px 0;\n font-size: 14px;\n font-weight: 500;\n text-align: center;\n text-decoration: none;\n position: relative;\n width: 100%;\n white-space: nowrap;\n\n &.active {\n color: $secondary-text-color;\n\n &::before,\n &::after {\n display: block;\n content: \"\";\n position: absolute;\n bottom: 0;\n left: 50%;\n width: 0;\n height: 0;\n transform: translateX(-50%);\n border-style: solid;\n border-width: 0 10px 10px;\n border-color: transparent transparent lighten($ui-base-color, 8%);\n }\n\n &::after {\n bottom: -1px;\n border-color: transparent transparent $ui-base-color;\n }\n }\n }\n\n &.directory__section-headline {\n background: darken($ui-base-color, 2%);\n border-bottom-color: transparent;\n\n a,\n button {\n &.active {\n &::before {\n display: none;\n }\n\n &::after {\n border-color: transparent transparent darken($ui-base-color, 7%);\n }\n }\n }\n }\n}\n\n.filter-form {\n background: $ui-base-color;\n\n &__column {\n padding: 10px 15px;\n }\n\n .radio-button {\n display: block;\n }\n}\n\n.radio-button {\n font-size: 14px;\n position: relative;\n display: inline-block;\n padding: 6px 0;\n line-height: 18px;\n cursor: default;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n cursor: pointer;\n\n input[type=radio],\n input[type=checkbox] {\n display: none;\n }\n\n &__input {\n display: inline-block;\n position: relative;\n border: 1px solid $ui-primary-color;\n box-sizing: border-box;\n width: 18px;\n height: 18px;\n flex: 0 0 auto;\n margin-right: 10px;\n top: -1px;\n border-radius: 50%;\n vertical-align: middle;\n\n &.checked {\n border-color: lighten($ui-highlight-color, 8%);\n background: lighten($ui-highlight-color, 8%);\n }\n }\n}\n\n::-webkit-scrollbar-thumb {\n border-radius: 0;\n}\n\n.search-popout {\n @include search-popout;\n}\n\nnoscript {\n text-align: center;\n\n img {\n width: 200px;\n opacity: 0.5;\n animation: flicker 4s infinite;\n }\n\n div {\n font-size: 14px;\n margin: 30px auto;\n color: $secondary-text-color;\n max-width: 400px;\n\n a {\n color: $highlight-text-color;\n text-decoration: underline;\n\n &:hover {\n text-decoration: none;\n }\n }\n }\n}\n\n@keyframes flicker {\n 0% { opacity: 1; }\n 30% { opacity: 0.75; }\n 100% { opacity: 1; }\n}\n\n@media screen and (max-width: 630px) and (max-height: 400px) {\n $duration: 400ms;\n $delay: 100ms;\n\n .tabs-bar,\n .search {\n will-change: margin-top;\n transition: margin-top $duration $delay;\n }\n\n .navigation-bar {\n will-change: padding-bottom;\n transition: padding-bottom $duration $delay;\n }\n\n .navigation-bar {\n & > a:first-child {\n will-change: margin-top, margin-left, margin-right, width;\n transition: margin-top $duration $delay, margin-left $duration ($duration + $delay), margin-right $duration ($duration + $delay);\n }\n\n & > .navigation-bar__profile-edit {\n will-change: margin-top;\n transition: margin-top $duration $delay;\n }\n\n .navigation-bar__actions {\n & > .icon-button.close {\n will-change: opacity transform;\n transition: opacity $duration * 0.5 $delay,\n transform $duration $delay;\n }\n\n & > .compose__action-bar .icon-button {\n will-change: opacity transform;\n transition: opacity $duration * 0.5 $delay + $duration * 0.5,\n transform $duration $delay;\n }\n }\n }\n\n .is-composing {\n .tabs-bar,\n .search {\n margin-top: -50px;\n }\n\n .navigation-bar {\n padding-bottom: 0;\n\n & > a:first-child {\n margin: -100px 10px 0 -50px;\n }\n\n .navigation-bar__profile {\n padding-top: 2px;\n }\n\n .navigation-bar__profile-edit {\n position: absolute;\n margin-top: -60px;\n }\n\n .navigation-bar__actions {\n .icon-button.close {\n pointer-events: auto;\n opacity: 1;\n transform: scale(1, 1) translate(0, 0);\n bottom: 5px;\n }\n\n .compose__action-bar .icon-button {\n pointer-events: none;\n opacity: 0;\n transform: scale(0, 1) translate(100%, 0);\n }\n }\n }\n }\n}\n\n.embed-modal {\n width: auto;\n max-width: 80vw;\n max-height: 80vh;\n\n h4 {\n padding: 30px;\n font-weight: 500;\n font-size: 16px;\n text-align: center;\n }\n\n .embed-modal__container {\n padding: 10px;\n\n .hint {\n margin-bottom: 15px;\n }\n\n .embed-modal__html {\n outline: 0;\n box-sizing: border-box;\n display: block;\n width: 100%;\n border: 0;\n padding: 10px;\n font-family: $font-monospace, monospace;\n background: $ui-base-color;\n color: $primary-text-color;\n font-size: 14px;\n margin: 0;\n margin-bottom: 15px;\n border-radius: 4px;\n\n &::-moz-focus-inner {\n border: 0;\n }\n\n &::-moz-focus-inner,\n &:focus,\n &:active {\n outline: 0 !important;\n }\n\n &:focus {\n background: lighten($ui-base-color, 4%);\n }\n\n @media screen and (max-width: 600px) {\n font-size: 16px;\n }\n }\n\n .embed-modal__iframe {\n width: 400px;\n max-width: 100%;\n overflow: hidden;\n border: 0;\n border-radius: 4px;\n }\n }\n}\n\n.account__moved-note {\n padding: 14px 10px;\n padding-bottom: 16px;\n background: lighten($ui-base-color, 4%);\n border-top: 1px solid lighten($ui-base-color, 8%);\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n\n &__message {\n position: relative;\n margin-left: 58px;\n color: $dark-text-color;\n padding: 8px 0;\n padding-top: 0;\n padding-bottom: 4px;\n font-size: 14px;\n\n > span {\n display: block;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n }\n\n &__icon-wrapper {\n left: -26px;\n position: absolute;\n }\n\n .detailed-status__display-avatar {\n position: relative;\n }\n\n .detailed-status__display-name {\n margin-bottom: 0;\n }\n}\n\n.column-inline-form {\n padding: 15px;\n padding-right: 0;\n display: flex;\n justify-content: flex-start;\n align-items: center;\n background: lighten($ui-base-color, 4%);\n\n label {\n flex: 1 1 auto;\n\n input {\n width: 100%;\n\n &:focus {\n outline: 0;\n }\n }\n }\n\n .icon-button {\n flex: 0 0 auto;\n margin: 0 10px;\n }\n}\n\n.drawer__backdrop {\n cursor: pointer;\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n background: rgba($base-overlay-background, 0.5);\n}\n\n.list-editor {\n background: $ui-base-color;\n flex-direction: column;\n border-radius: 8px;\n box-shadow: 2px 4px 15px rgba($base-shadow-color, 0.4);\n width: 380px;\n overflow: hidden;\n\n @media screen and (max-width: 420px) {\n width: 90%;\n }\n\n h4 {\n padding: 15px 0;\n background: lighten($ui-base-color, 13%);\n font-weight: 500;\n font-size: 16px;\n text-align: center;\n border-radius: 8px 8px 0 0;\n }\n\n .drawer__pager {\n height: 50vh;\n }\n\n .drawer__inner {\n border-radius: 0 0 8px 8px;\n\n &.backdrop {\n width: calc(100% - 60px);\n box-shadow: 2px 4px 15px rgba($base-shadow-color, 0.4);\n border-radius: 0 0 0 8px;\n }\n }\n\n &__accounts {\n overflow-y: auto;\n }\n\n .account__display-name {\n &:hover strong {\n text-decoration: none;\n }\n }\n\n .account__avatar {\n cursor: default;\n }\n\n .search {\n margin-bottom: 0;\n }\n}\n\n.list-adder {\n background: $ui-base-color;\n flex-direction: column;\n border-radius: 8px;\n box-shadow: 2px 4px 15px rgba($base-shadow-color, 0.4);\n width: 380px;\n overflow: hidden;\n\n @media screen and (max-width: 420px) {\n width: 90%;\n }\n\n &__account {\n background: lighten($ui-base-color, 13%);\n }\n\n &__lists {\n background: lighten($ui-base-color, 13%);\n height: 50vh;\n border-radius: 0 0 8px 8px;\n overflow-y: auto;\n }\n\n .list {\n padding: 10px;\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n }\n\n .list__wrapper {\n display: flex;\n }\n\n .list__display-name {\n flex: 1 1 auto;\n overflow: hidden;\n text-decoration: none;\n font-size: 16px;\n padding: 10px;\n }\n}\n\n.focal-point {\n position: relative;\n cursor: move;\n overflow: hidden;\n height: 100%;\n display: flex;\n justify-content: center;\n align-items: center;\n background: $base-shadow-color;\n\n img,\n video,\n canvas {\n display: block;\n max-height: 80vh;\n width: 100%;\n height: auto;\n margin: 0;\n object-fit: contain;\n background: $base-shadow-color;\n }\n\n &__reticle {\n position: absolute;\n width: 100px;\n height: 100px;\n transform: translate(-50%, -50%);\n background: url('~images/reticle.png') no-repeat 0 0;\n border-radius: 50%;\n box-shadow: 0 0 0 9999em rgba($base-shadow-color, 0.35);\n }\n\n &__overlay {\n position: absolute;\n width: 100%;\n height: 100%;\n top: 0;\n left: 0;\n }\n\n &__preview {\n position: absolute;\n bottom: 10px;\n right: 10px;\n z-index: 2;\n cursor: move;\n transition: opacity 0.1s ease;\n\n &:hover {\n opacity: 0.5;\n }\n\n strong {\n color: $primary-text-color;\n font-size: 14px;\n font-weight: 500;\n display: block;\n margin-bottom: 5px;\n }\n\n div {\n border-radius: 4px;\n box-shadow: 0 0 14px rgba($base-shadow-color, 0.2);\n }\n }\n\n @media screen and (max-width: 480px) {\n img,\n video {\n max-height: 100%;\n }\n\n &__preview {\n display: none;\n }\n }\n}\n\n.account__header__content {\n color: $darker-text-color;\n font-size: 14px;\n font-weight: 400;\n overflow: hidden;\n word-break: normal;\n word-wrap: break-word;\n\n p {\n margin-bottom: 20px;\n\n &:last-child {\n margin-bottom: 0;\n }\n }\n\n a {\n color: inherit;\n text-decoration: underline;\n\n &:hover {\n text-decoration: none;\n }\n }\n}\n\n.account__header {\n overflow: hidden;\n\n &.inactive {\n opacity: 0.5;\n\n .account__header__image,\n .account__avatar {\n filter: grayscale(100%);\n }\n }\n\n &__info {\n position: absolute;\n top: 10px;\n left: 10px;\n }\n\n &__image {\n overflow: hidden;\n height: 145px;\n position: relative;\n background: darken($ui-base-color, 4%);\n\n img {\n object-fit: cover;\n display: block;\n width: 100%;\n height: 100%;\n margin: 0;\n }\n }\n\n &__bar {\n position: relative;\n background: lighten($ui-base-color, 4%);\n padding: 5px;\n border-bottom: 1px solid lighten($ui-base-color, 12%);\n\n .avatar {\n display: block;\n flex: 0 0 auto;\n width: 94px;\n margin-left: -2px;\n\n .account__avatar {\n background: darken($ui-base-color, 8%);\n border: 2px solid lighten($ui-base-color, 4%);\n }\n }\n }\n\n &__tabs {\n display: flex;\n align-items: flex-start;\n padding: 7px 5px;\n margin-top: -55px;\n\n &__buttons {\n display: flex;\n align-items: center;\n padding-top: 55px;\n overflow: hidden;\n\n .icon-button {\n border: 1px solid lighten($ui-base-color, 12%);\n border-radius: 4px;\n box-sizing: content-box;\n padding: 2px;\n }\n\n .button {\n margin: 0 8px;\n }\n }\n\n &__name {\n padding: 5px;\n\n .account-role {\n vertical-align: top;\n }\n\n .emojione {\n width: 22px;\n height: 22px;\n }\n\n h1 {\n font-size: 16px;\n line-height: 24px;\n color: $primary-text-color;\n font-weight: 500;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n\n small {\n display: block;\n font-size: 14px;\n color: $darker-text-color;\n font-weight: 400;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n }\n }\n\n .spacer {\n flex: 1 1 auto;\n }\n }\n\n &__bio {\n overflow: hidden;\n margin: 0 -5px;\n\n .account__header__content {\n padding: 20px 15px;\n padding-bottom: 5px;\n color: $primary-text-color;\n }\n\n .account__header__fields {\n margin: 0;\n border-top: 1px solid lighten($ui-base-color, 12%);\n\n a {\n color: lighten($ui-highlight-color, 8%);\n }\n\n dl:first-child .verified {\n border-radius: 0 4px 0 0;\n }\n\n .verified a {\n color: $valid-value-color;\n }\n }\n }\n\n &__extra {\n margin-top: 4px;\n\n &__links {\n font-size: 14px;\n color: $darker-text-color;\n padding: 10px 0;\n\n a {\n display: inline-block;\n color: $darker-text-color;\n text-decoration: none;\n padding: 5px 10px;\n font-weight: 500;\n\n strong {\n font-weight: 700;\n color: $primary-text-color;\n }\n }\n }\n }\n}\n\n.trends {\n &__header {\n color: $dark-text-color;\n background: lighten($ui-base-color, 2%);\n border-bottom: 1px solid darken($ui-base-color, 4%);\n font-weight: 500;\n padding: 15px;\n font-size: 16px;\n cursor: default;\n\n .fa {\n display: inline-block;\n margin-right: 5px;\n }\n }\n\n &__item {\n display: flex;\n align-items: center;\n padding: 15px;\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n\n &:last-child {\n border-bottom: 0;\n }\n\n &__name {\n flex: 1 1 auto;\n color: $dark-text-color;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n\n strong {\n font-weight: 500;\n }\n\n a {\n color: $darker-text-color;\n text-decoration: none;\n font-size: 14px;\n font-weight: 500;\n display: block;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n\n &:hover,\n &:focus,\n &:active {\n span {\n text-decoration: underline;\n }\n }\n }\n }\n\n &__current {\n flex: 0 0 auto;\n font-size: 24px;\n line-height: 36px;\n font-weight: 500;\n text-align: right;\n padding-right: 15px;\n margin-left: 5px;\n color: $secondary-text-color;\n }\n\n &__sparkline {\n flex: 0 0 auto;\n width: 50px;\n\n path:first-child {\n fill: rgba($highlight-text-color, 0.25) !important;\n fill-opacity: 1 !important;\n }\n\n path:last-child {\n stroke: lighten($highlight-text-color, 6%) !important;\n }\n }\n }\n}\n\n.conversation {\n display: flex;\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n padding: 5px;\n padding-bottom: 0;\n\n &:focus {\n background: lighten($ui-base-color, 2%);\n outline: 0;\n }\n\n &__avatar {\n flex: 0 0 auto;\n padding: 10px;\n padding-top: 12px;\n position: relative;\n cursor: pointer;\n }\n\n &__unread {\n display: inline-block;\n background: $highlight-text-color;\n border-radius: 50%;\n width: 0.625rem;\n height: 0.625rem;\n margin: -.1ex .15em .1ex;\n }\n\n &__content {\n flex: 1 1 auto;\n padding: 10px 5px;\n padding-right: 15px;\n overflow: hidden;\n\n &__info {\n overflow: hidden;\n display: flex;\n flex-direction: row-reverse;\n justify-content: space-between;\n }\n\n &__relative-time {\n font-size: 15px;\n color: $darker-text-color;\n padding-left: 15px;\n }\n\n &__names {\n color: $darker-text-color;\n font-size: 15px;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n margin-bottom: 4px;\n flex-basis: 90px;\n flex-grow: 1;\n\n a {\n color: $primary-text-color;\n text-decoration: none;\n\n &:hover,\n &:focus,\n &:active {\n text-decoration: underline;\n }\n }\n }\n\n a {\n word-break: break-word;\n }\n }\n\n &--unread {\n background: lighten($ui-base-color, 2%);\n\n &:focus {\n background: lighten($ui-base-color, 4%);\n }\n\n .conversation__content__info {\n font-weight: 700;\n }\n\n .conversation__content__relative-time {\n color: $primary-text-color;\n }\n }\n}\n\n.announcements {\n background: lighten($ui-base-color, 8%);\n font-size: 13px;\n display: flex;\n align-items: flex-end;\n\n &__mastodon {\n width: 124px;\n flex: 0 0 auto;\n\n @media screen and (max-width: 124px + 300px) {\n display: none;\n }\n }\n\n &__container {\n width: calc(100% - 124px);\n flex: 0 0 auto;\n position: relative;\n\n @media screen and (max-width: 124px + 300px) {\n width: 100%;\n }\n }\n\n &__item {\n box-sizing: border-box;\n width: 100%;\n padding: 15px;\n position: relative;\n font-size: 15px;\n line-height: 20px;\n word-wrap: break-word;\n font-weight: 400;\n max-height: 50vh;\n overflow: hidden;\n display: flex;\n flex-direction: column;\n\n &__range {\n display: block;\n font-weight: 500;\n margin-bottom: 10px;\n padding-right: 18px;\n }\n\n &__unread {\n position: absolute;\n top: 19px;\n right: 19px;\n display: block;\n background: $highlight-text-color;\n border-radius: 50%;\n width: 0.625rem;\n height: 0.625rem;\n }\n }\n\n &__pagination {\n padding: 15px;\n color: $darker-text-color;\n position: absolute;\n bottom: 3px;\n right: 0;\n }\n}\n\n.layout-multiple-columns .announcements__mastodon {\n display: none;\n}\n\n.layout-multiple-columns .announcements__container {\n width: 100%;\n}\n\n.reactions-bar {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n margin-top: 15px;\n margin-left: -2px;\n width: calc(100% - (90px - 33px));\n\n &__item {\n flex-shrink: 0;\n background: lighten($ui-base-color, 12%);\n border: 0;\n border-radius: 3px;\n margin: 2px;\n cursor: pointer;\n user-select: none;\n padding: 0 6px;\n display: flex;\n align-items: center;\n transition: all 100ms ease-in;\n transition-property: background-color, color;\n\n &__emoji {\n display: block;\n margin: 3px 0;\n width: 16px;\n height: 16px;\n\n img {\n display: block;\n margin: 0;\n width: 100%;\n height: 100%;\n min-width: auto;\n min-height: auto;\n vertical-align: bottom;\n object-fit: contain;\n }\n }\n\n &__count {\n display: block;\n min-width: 9px;\n font-size: 13px;\n font-weight: 500;\n text-align: center;\n margin-left: 6px;\n color: $darker-text-color;\n }\n\n &:hover,\n &:focus,\n &:active {\n background: lighten($ui-base-color, 16%);\n transition: all 200ms ease-out;\n transition-property: background-color, color;\n\n &__count {\n color: lighten($darker-text-color, 4%);\n }\n }\n\n &.active {\n transition: all 100ms ease-in;\n transition-property: background-color, color;\n background-color: mix(lighten($ui-base-color, 12%), $ui-highlight-color, 80%);\n\n .reactions-bar__item__count {\n color: lighten($highlight-text-color, 8%);\n }\n }\n }\n\n .emoji-picker-dropdown {\n margin: 2px;\n }\n\n &:hover .emoji-button {\n opacity: 0.85;\n }\n\n .emoji-button {\n color: $darker-text-color;\n margin: 0;\n font-size: 16px;\n width: auto;\n flex-shrink: 0;\n padding: 0 6px;\n height: 22px;\n display: flex;\n align-items: center;\n opacity: 0.5;\n transition: all 100ms ease-in;\n transition-property: background-color, color;\n\n &:hover,\n &:active,\n &:focus {\n opacity: 1;\n color: lighten($darker-text-color, 4%);\n transition: all 200ms ease-out;\n transition-property: background-color, color;\n }\n }\n\n &--empty {\n .emoji-button {\n padding: 0;\n }\n }\n}\n",null,"@mixin avatar-radius {\n border-radius: 4px;\n background: transparent no-repeat;\n background-position: 50%;\n background-clip: padding-box;\n}\n\n@mixin avatar-size($size: 48px) {\n width: $size;\n height: $size;\n background-size: $size $size;\n}\n\n@mixin search-input {\n outline: 0;\n box-sizing: border-box;\n width: 100%;\n border: 0;\n box-shadow: none;\n font-family: inherit;\n background: $ui-base-color;\n color: $darker-text-color;\n font-size: 14px;\n margin: 0;\n}\n\n@mixin search-popout {\n background: $simple-background-color;\n border-radius: 4px;\n padding: 10px 14px;\n padding-bottom: 14px;\n margin-top: 10px;\n color: $light-text-color;\n box-shadow: 2px 4px 15px rgba($base-shadow-color, 0.4);\n\n h4 {\n text-transform: uppercase;\n color: $light-text-color;\n font-size: 13px;\n font-weight: 500;\n margin-bottom: 10px;\n }\n\n li {\n padding: 4px 0;\n }\n\n ul {\n margin-bottom: 10px;\n }\n\n em {\n font-weight: 500;\n color: $inverted-text-color;\n }\n}\n",".poll {\n margin-top: 16px;\n font-size: 14px;\n\n li {\n margin-bottom: 10px;\n position: relative;\n }\n\n &__chart {\n border-radius: 4px;\n display: block;\n background: darken($ui-primary-color, 5%);\n height: 5px;\n min-width: 1%;\n\n &.leading {\n background: $ui-highlight-color;\n }\n }\n\n &__option {\n position: relative;\n display: flex;\n padding: 6px 0;\n line-height: 18px;\n cursor: default;\n overflow: hidden;\n\n &__text {\n display: inline-block;\n word-wrap: break-word;\n overflow-wrap: break-word;\n max-width: calc(100% - 45px - 25px);\n }\n\n input[type=radio],\n input[type=checkbox] {\n display: none;\n }\n\n .autossugest-input {\n flex: 1 1 auto;\n }\n\n input[type=text] {\n display: block;\n box-sizing: border-box;\n width: 100%;\n font-size: 14px;\n color: $inverted-text-color;\n outline: 0;\n font-family: inherit;\n background: $simple-background-color;\n border: 1px solid darken($simple-background-color, 14%);\n border-radius: 4px;\n padding: 6px 10px;\n\n &:focus {\n border-color: $highlight-text-color;\n }\n }\n\n &.selectable {\n cursor: pointer;\n }\n\n &.editable {\n display: flex;\n align-items: center;\n overflow: visible;\n }\n }\n\n &__input {\n display: inline-block;\n position: relative;\n border: 1px solid $ui-primary-color;\n box-sizing: border-box;\n width: 18px;\n height: 18px;\n flex: 0 0 auto;\n margin-right: 10px;\n top: -1px;\n border-radius: 50%;\n vertical-align: middle;\n margin-top: auto;\n margin-bottom: auto;\n flex: 0 0 18px;\n\n &.checkbox {\n border-radius: 4px;\n }\n\n &.active {\n border-color: $valid-value-color;\n background: $valid-value-color;\n }\n\n &:active,\n &:focus,\n &:hover {\n border-color: lighten($valid-value-color, 15%);\n border-width: 4px;\n }\n\n &::-moz-focus-inner {\n outline: 0 !important;\n border: 0;\n }\n\n &:focus,\n &:active {\n outline: 0 !important;\n }\n }\n\n &__number {\n display: inline-block;\n width: 45px;\n font-weight: 700;\n flex: 0 0 45px;\n }\n\n &__voted {\n padding: 0 5px;\n display: inline-block;\n\n &__mark {\n font-size: 18px;\n }\n }\n\n &__footer {\n padding-top: 6px;\n padding-bottom: 5px;\n color: $dark-text-color;\n }\n\n &__link {\n display: inline;\n background: transparent;\n padding: 0;\n margin: 0;\n border: 0;\n color: $dark-text-color;\n text-decoration: underline;\n font-size: inherit;\n\n &:hover {\n text-decoration: none;\n }\n\n &:active,\n &:focus {\n background-color: rgba($dark-text-color, .1);\n }\n }\n\n .button {\n height: 36px;\n padding: 0 16px;\n margin-right: 10px;\n font-size: 14px;\n }\n}\n\n.compose-form__poll-wrapper {\n border-top: 1px solid darken($simple-background-color, 8%);\n\n ul {\n padding: 10px;\n }\n\n .poll__footer {\n border-top: 1px solid darken($simple-background-color, 8%);\n padding: 10px;\n display: flex;\n align-items: center;\n\n button,\n select {\n flex: 1 1 50%;\n\n &:focus {\n border-color: $highlight-text-color;\n }\n }\n }\n\n .button.button-secondary {\n font-size: 14px;\n font-weight: 400;\n padding: 6px 10px;\n height: auto;\n line-height: inherit;\n color: $action-button-color;\n border-color: $action-button-color;\n margin-right: 5px;\n }\n\n li {\n display: flex;\n align-items: center;\n\n .poll__option {\n flex: 0 0 auto;\n width: calc(100% - (23px + 6px));\n margin-right: 6px;\n }\n }\n\n select {\n appearance: none;\n box-sizing: border-box;\n font-size: 14px;\n color: $inverted-text-color;\n display: inline-block;\n width: auto;\n outline: 0;\n font-family: inherit;\n background: $simple-background-color url(\"data:image/svg+xml;utf8,\") no-repeat right 8px center / auto 16px;\n border: 1px solid darken($simple-background-color, 14%);\n border-radius: 4px;\n padding: 6px 10px;\n padding-right: 30px;\n }\n\n .icon-button.disabled {\n color: darken($simple-background-color, 14%);\n }\n}\n\n.muted .poll {\n color: $dark-text-color;\n\n &__chart {\n background: rgba(darken($ui-primary-color, 14%), 0.2);\n\n &.leading {\n background: rgba($ui-highlight-color, 0.2);\n }\n }\n}\n",".modal-layout {\n background: $ui-base-color url('data:image/svg+xml;utf8,') repeat-x bottom fixed;\n display: flex;\n flex-direction: column;\n height: 100vh;\n padding: 0;\n}\n\n.modal-layout__mastodon {\n display: flex;\n flex: 1;\n flex-direction: column;\n justify-content: flex-end;\n\n > * {\n flex: 1;\n max-height: 235px;\n }\n}\n\n@media screen and (max-width: 600px) {\n .account-header {\n margin-top: 0;\n }\n}\n",".emoji-mart {\n font-size: 13px;\n display: inline-block;\n color: $inverted-text-color;\n\n &,\n * {\n box-sizing: border-box;\n line-height: 1.15;\n }\n\n .emoji-mart-emoji {\n padding: 6px;\n }\n}\n\n.emoji-mart-bar {\n border: 0 solid darken($ui-secondary-color, 8%);\n\n &:first-child {\n border-bottom-width: 1px;\n border-top-left-radius: 5px;\n border-top-right-radius: 5px;\n background: $ui-secondary-color;\n }\n\n &:last-child {\n border-top-width: 1px;\n border-bottom-left-radius: 5px;\n border-bottom-right-radius: 5px;\n display: none;\n }\n}\n\n.emoji-mart-anchors {\n display: flex;\n justify-content: space-between;\n padding: 0 6px;\n color: $lighter-text-color;\n line-height: 0;\n}\n\n.emoji-mart-anchor {\n position: relative;\n flex: 1;\n text-align: center;\n padding: 12px 4px;\n overflow: hidden;\n transition: color .1s ease-out;\n cursor: pointer;\n\n &:hover {\n color: darken($lighter-text-color, 4%);\n }\n}\n\n.emoji-mart-anchor-selected {\n color: $highlight-text-color;\n\n &:hover {\n color: darken($highlight-text-color, 4%);\n }\n\n .emoji-mart-anchor-bar {\n bottom: -1px;\n }\n}\n\n.emoji-mart-anchor-bar {\n position: absolute;\n bottom: -5px;\n left: 0;\n width: 100%;\n height: 4px;\n background-color: $highlight-text-color;\n}\n\n.emoji-mart-anchors {\n i {\n display: inline-block;\n width: 100%;\n max-width: 22px;\n }\n\n svg {\n fill: currentColor;\n max-height: 18px;\n }\n}\n\n.emoji-mart-scroll {\n overflow-y: scroll;\n height: 270px;\n max-height: 35vh;\n padding: 0 6px 6px;\n background: $simple-background-color;\n will-change: transform;\n\n &::-webkit-scrollbar-track:hover,\n &::-webkit-scrollbar-track:active {\n background-color: rgba($base-overlay-background, 0.3);\n }\n}\n\n.emoji-mart-search {\n padding: 10px;\n padding-right: 45px;\n background: $simple-background-color;\n\n input {\n font-size: 14px;\n font-weight: 400;\n padding: 7px 9px;\n font-family: inherit;\n display: block;\n width: 100%;\n background: rgba($ui-secondary-color, 0.3);\n color: $inverted-text-color;\n border: 1px solid $ui-secondary-color;\n border-radius: 4px;\n\n &::-moz-focus-inner {\n border: 0;\n }\n\n &::-moz-focus-inner,\n &:focus,\n &:active {\n outline: 0 !important;\n }\n }\n}\n\n.emoji-mart-category .emoji-mart-emoji {\n cursor: pointer;\n\n span {\n z-index: 1;\n position: relative;\n text-align: center;\n }\n\n &:hover::before {\n z-index: 0;\n content: \"\";\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n background-color: rgba($ui-secondary-color, 0.7);\n border-radius: 100%;\n }\n}\n\n.emoji-mart-category-label {\n z-index: 2;\n position: relative;\n position: -webkit-sticky;\n position: sticky;\n top: 0;\n\n span {\n display: block;\n width: 100%;\n font-weight: 500;\n padding: 5px 6px;\n background: $simple-background-color;\n }\n}\n\n.emoji-mart-emoji {\n position: relative;\n display: inline-block;\n font-size: 0;\n\n span {\n width: 22px;\n height: 22px;\n }\n}\n\n.emoji-mart-no-results {\n font-size: 14px;\n text-align: center;\n padding-top: 70px;\n color: $light-text-color;\n\n .emoji-mart-category-label {\n display: none;\n }\n\n .emoji-mart-no-results-label {\n margin-top: .2em;\n }\n\n .emoji-mart-emoji:hover::before {\n content: none;\n }\n}\n\n.emoji-mart-preview {\n display: none;\n}\n","$maximum-width: 1235px;\n$fluid-breakpoint: $maximum-width + 20px;\n$column-breakpoint: 700px;\n$small-breakpoint: 960px;\n\n.container {\n box-sizing: border-box;\n max-width: $maximum-width;\n margin: 0 auto;\n position: relative;\n\n @media screen and (max-width: $fluid-breakpoint) {\n width: 100%;\n padding: 0 10px;\n }\n}\n\n.rich-formatting {\n font-family: $font-sans-serif, sans-serif;\n font-size: 14px;\n font-weight: 400;\n line-height: 1.7;\n word-wrap: break-word;\n color: $darker-text-color;\n\n a {\n color: $highlight-text-color;\n text-decoration: underline;\n\n &:hover,\n &:focus,\n &:active {\n text-decoration: none;\n }\n }\n\n p,\n li {\n color: $darker-text-color;\n }\n\n p {\n margin-top: 0;\n margin-bottom: .85em;\n\n &:last-child {\n margin-bottom: 0;\n }\n }\n\n strong {\n font-weight: 700;\n color: $secondary-text-color;\n }\n\n em {\n font-style: italic;\n color: $secondary-text-color;\n }\n\n code {\n font-size: 0.85em;\n background: darken($ui-base-color, 8%);\n border-radius: 4px;\n padding: 0.2em 0.3em;\n }\n\n h1,\n h2,\n h3,\n h4,\n h5,\n h6 {\n font-family: $font-display, sans-serif;\n margin-top: 1.275em;\n margin-bottom: .85em;\n font-weight: 500;\n color: $secondary-text-color;\n }\n\n h1 {\n font-size: 2em;\n }\n\n h2 {\n font-size: 1.75em;\n }\n\n h3 {\n font-size: 1.5em;\n }\n\n h4 {\n font-size: 1.25em;\n }\n\n h5,\n h6 {\n font-size: 1em;\n }\n\n ul {\n list-style: disc;\n }\n\n ol {\n list-style: decimal;\n }\n\n ul,\n ol {\n margin: 0;\n padding: 0;\n padding-left: 2em;\n margin-bottom: 0.85em;\n\n &[type='a'] {\n list-style-type: lower-alpha;\n }\n\n &[type='i'] {\n list-style-type: lower-roman;\n }\n }\n\n hr {\n width: 100%;\n height: 0;\n border: 0;\n border-bottom: 1px solid lighten($ui-base-color, 4%);\n margin: 1.7em 0;\n\n &.spacer {\n height: 1px;\n border: 0;\n }\n }\n\n table {\n width: 100%;\n border-collapse: collapse;\n break-inside: auto;\n margin-top: 24px;\n margin-bottom: 32px;\n\n thead tr,\n tbody tr {\n border-bottom: 1px solid lighten($ui-base-color, 4%);\n font-size: 1em;\n line-height: 1.625;\n font-weight: 400;\n text-align: left;\n color: $darker-text-color;\n }\n\n thead tr {\n border-bottom-width: 2px;\n line-height: 1.5;\n font-weight: 500;\n color: $dark-text-color;\n }\n\n th,\n td {\n padding: 8px;\n align-self: start;\n align-items: start;\n word-break: break-all;\n\n &.nowrap {\n width: 25%;\n position: relative;\n\n &::before {\n content: ' ';\n visibility: hidden;\n }\n\n span {\n position: absolute;\n left: 8px;\n right: 8px;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n }\n }\n }\n\n & > :first-child {\n margin-top: 0;\n }\n}\n\n.information-board {\n background: darken($ui-base-color, 4%);\n padding: 20px 0;\n\n .container-alt {\n position: relative;\n padding-right: 280px + 15px;\n }\n\n &__sections {\n display: flex;\n justify-content: space-between;\n flex-wrap: wrap;\n }\n\n &__section {\n flex: 1 0 0;\n font-family: $font-sans-serif, sans-serif;\n font-size: 16px;\n line-height: 28px;\n color: $primary-text-color;\n text-align: right;\n padding: 10px 15px;\n\n span,\n strong {\n display: block;\n }\n\n span {\n &:last-child {\n color: $secondary-text-color;\n }\n }\n\n strong {\n font-family: $font-display, sans-serif;\n font-weight: 500;\n font-size: 32px;\n line-height: 48px;\n }\n\n @media screen and (max-width: $column-breakpoint) {\n text-align: center;\n }\n }\n\n .panel {\n position: absolute;\n width: 280px;\n box-sizing: border-box;\n background: darken($ui-base-color, 8%);\n padding: 20px;\n padding-top: 10px;\n border-radius: 4px 4px 0 0;\n right: 0;\n bottom: -40px;\n\n .panel-header {\n font-family: $font-display, sans-serif;\n font-size: 14px;\n line-height: 24px;\n font-weight: 500;\n color: $darker-text-color;\n padding-bottom: 5px;\n margin-bottom: 15px;\n border-bottom: 1px solid lighten($ui-base-color, 4%);\n text-overflow: ellipsis;\n white-space: nowrap;\n overflow: hidden;\n\n a,\n span {\n font-weight: 400;\n color: darken($darker-text-color, 10%);\n }\n\n a {\n text-decoration: none;\n }\n }\n }\n\n .owner {\n text-align: center;\n\n .avatar {\n width: 80px;\n height: 80px;\n margin: 0 auto;\n margin-bottom: 15px;\n\n img {\n display: block;\n width: 80px;\n height: 80px;\n border-radius: 48px;\n }\n }\n\n .name {\n font-size: 14px;\n\n a {\n display: block;\n color: $primary-text-color;\n text-decoration: none;\n\n &:hover {\n .display_name {\n text-decoration: underline;\n }\n }\n }\n\n .username {\n display: block;\n color: $darker-text-color;\n }\n }\n }\n}\n\n.landing-page {\n p,\n li {\n font-family: $font-sans-serif, sans-serif;\n font-size: 16px;\n font-weight: 400;\n font-size: 16px;\n line-height: 30px;\n margin-bottom: 12px;\n color: $darker-text-color;\n\n a {\n color: $highlight-text-color;\n text-decoration: underline;\n }\n }\n\n em {\n display: inline;\n margin: 0;\n padding: 0;\n font-weight: 700;\n background: transparent;\n font-family: inherit;\n font-size: inherit;\n line-height: inherit;\n color: lighten($darker-text-color, 10%);\n }\n\n h1 {\n font-family: $font-display, sans-serif;\n font-size: 26px;\n line-height: 30px;\n font-weight: 500;\n margin-bottom: 20px;\n color: $secondary-text-color;\n\n small {\n font-family: $font-sans-serif, sans-serif;\n display: block;\n font-size: 18px;\n font-weight: 400;\n color: lighten($darker-text-color, 10%);\n }\n }\n\n h2 {\n font-family: $font-display, sans-serif;\n font-size: 22px;\n line-height: 26px;\n font-weight: 500;\n margin-bottom: 20px;\n color: $secondary-text-color;\n }\n\n h3 {\n font-family: $font-display, sans-serif;\n font-size: 18px;\n line-height: 24px;\n font-weight: 500;\n margin-bottom: 20px;\n color: $secondary-text-color;\n }\n\n h4 {\n font-family: $font-display, sans-serif;\n font-size: 16px;\n line-height: 24px;\n font-weight: 500;\n margin-bottom: 20px;\n color: $secondary-text-color;\n }\n\n h5 {\n font-family: $font-display, sans-serif;\n font-size: 14px;\n line-height: 24px;\n font-weight: 500;\n margin-bottom: 20px;\n color: $secondary-text-color;\n }\n\n h6 {\n font-family: $font-display, sans-serif;\n font-size: 12px;\n line-height: 24px;\n font-weight: 500;\n margin-bottom: 20px;\n color: $secondary-text-color;\n }\n\n ul,\n ol {\n margin-left: 20px;\n\n &[type='a'] {\n list-style-type: lower-alpha;\n }\n\n &[type='i'] {\n list-style-type: lower-roman;\n }\n }\n\n ul {\n list-style: disc;\n }\n\n ol {\n list-style: decimal;\n }\n\n li > ol,\n li > ul {\n margin-top: 6px;\n }\n\n hr {\n width: 100%;\n height: 0;\n border: 0;\n border-bottom: 1px solid rgba($ui-base-lighter-color, .6);\n margin: 20px 0;\n\n &.spacer {\n height: 1px;\n border: 0;\n }\n }\n\n &__information,\n &__forms {\n padding: 20px;\n }\n\n &__call-to-action {\n background: $ui-base-color;\n border-radius: 4px;\n padding: 25px 40px;\n overflow: hidden;\n box-sizing: border-box;\n\n .row {\n width: 100%;\n display: flex;\n flex-direction: row-reverse;\n flex-wrap: nowrap;\n justify-content: space-between;\n align-items: center;\n }\n\n .row__information-board {\n display: flex;\n justify-content: flex-end;\n align-items: flex-end;\n\n .information-board__section {\n flex: 1 0 auto;\n padding: 0 10px;\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n width: 100%;\n justify-content: space-between;\n }\n }\n\n .row__mascot {\n flex: 1;\n margin: 10px -50px 0 0;\n\n @media screen and (max-width: $no-gap-breakpoint) {\n display: none;\n }\n }\n }\n\n &__logo {\n margin-right: 20px;\n\n img {\n height: 50px;\n width: auto;\n mix-blend-mode: lighten;\n }\n }\n\n &__information {\n padding: 45px 40px;\n margin-bottom: 10px;\n\n &:last-child {\n margin-bottom: 0;\n }\n\n strong {\n font-weight: 500;\n color: lighten($darker-text-color, 10%);\n }\n\n .account {\n border-bottom: 0;\n padding: 0;\n\n &__display-name {\n align-items: center;\n display: flex;\n margin-right: 5px;\n }\n\n div.account__display-name {\n &:hover {\n .display-name strong {\n text-decoration: none;\n }\n }\n\n .account__avatar {\n cursor: default;\n }\n }\n\n &__avatar-wrapper {\n margin-left: 0;\n flex: 0 0 auto;\n }\n\n &__avatar {\n width: 44px;\n height: 44px;\n background-size: 44px 44px;\n }\n\n .display-name {\n font-size: 15px;\n\n &__account {\n font-size: 14px;\n }\n }\n }\n\n @media screen and (max-width: $small-breakpoint) {\n .contact {\n margin-top: 30px;\n }\n }\n\n @media screen and (max-width: $column-breakpoint) {\n padding: 25px 20px;\n }\n }\n\n &__information,\n &__forms,\n #mastodon-timeline {\n box-sizing: border-box;\n background: $ui-base-color;\n border-radius: 4px;\n box-shadow: 0 0 6px rgba($black, 0.1);\n }\n\n &__mascot {\n height: 104px;\n position: relative;\n left: -40px;\n bottom: 25px;\n\n img {\n height: 190px;\n width: auto;\n }\n }\n\n &__short-description {\n .row {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n margin-bottom: 40px;\n }\n\n @media screen and (max-width: $column-breakpoint) {\n .row {\n margin-bottom: 20px;\n }\n }\n\n p a {\n color: $secondary-text-color;\n }\n\n h1 {\n font-weight: 500;\n color: $primary-text-color;\n margin-bottom: 0;\n\n small {\n color: $darker-text-color;\n\n span {\n color: $secondary-text-color;\n }\n }\n }\n\n p:last-child {\n margin-bottom: 0;\n }\n }\n\n &__hero {\n margin-bottom: 10px;\n\n img {\n display: block;\n margin: 0;\n max-width: 100%;\n height: auto;\n border-radius: 4px;\n }\n }\n\n @media screen and (max-width: 840px) {\n .information-board {\n .container-alt {\n padding-right: 20px;\n }\n\n .panel {\n position: static;\n margin-top: 20px;\n width: 100%;\n border-radius: 4px;\n\n .panel-header {\n text-align: center;\n }\n }\n }\n }\n\n @media screen and (max-width: 675px) {\n .header-wrapper {\n padding-top: 0;\n\n &.compact {\n padding-bottom: 0;\n }\n\n &.compact .hero .heading {\n text-align: initial;\n }\n }\n\n .header .container-alt,\n .features .container-alt {\n display: block;\n }\n }\n\n .cta {\n margin: 20px;\n }\n}\n\n.landing {\n margin-bottom: 100px;\n\n @media screen and (max-width: 738px) {\n margin-bottom: 0;\n }\n\n &__brand {\n display: flex;\n justify-content: center;\n align-items: center;\n padding: 50px;\n\n svg {\n fill: $primary-text-color;\n height: 52px;\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n padding: 0;\n margin-bottom: 30px;\n }\n }\n\n .directory {\n margin-top: 30px;\n background: transparent;\n box-shadow: none;\n border-radius: 0;\n }\n\n .hero-widget {\n margin-top: 30px;\n margin-bottom: 0;\n\n h4 {\n padding: 10px;\n text-transform: uppercase;\n font-weight: 700;\n font-size: 13px;\n color: $darker-text-color;\n }\n\n &__text {\n border-radius: 0;\n padding-bottom: 0;\n }\n\n &__footer {\n background: $ui-base-color;\n padding: 10px;\n border-radius: 0 0 4px 4px;\n display: flex;\n\n &__column {\n flex: 1 1 50%;\n }\n }\n\n .account {\n padding: 10px 0;\n border-bottom: 0;\n\n .account__display-name {\n display: flex;\n align-items: center;\n }\n\n .account__avatar {\n width: 44px;\n height: 44px;\n background-size: 44px 44px;\n }\n }\n\n &__counter {\n padding: 10px;\n\n strong {\n font-family: $font-display, sans-serif;\n font-size: 15px;\n font-weight: 700;\n display: block;\n }\n\n span {\n font-size: 14px;\n color: $darker-text-color;\n }\n }\n }\n\n .simple_form .user_agreement .label_input > label {\n font-weight: 400;\n color: $darker-text-color;\n }\n\n .simple_form p.lead {\n color: $darker-text-color;\n font-size: 15px;\n line-height: 20px;\n font-weight: 400;\n margin-bottom: 25px;\n }\n\n &__grid {\n max-width: 960px;\n margin: 0 auto;\n display: grid;\n grid-template-columns: minmax(0, 50%) minmax(0, 50%);\n grid-gap: 30px;\n\n @media screen and (max-width: 738px) {\n grid-template-columns: minmax(0, 100%);\n grid-gap: 10px;\n\n &__column-login {\n grid-row: 1;\n display: flex;\n flex-direction: column;\n\n .box-widget {\n order: 2;\n flex: 0 0 auto;\n }\n\n .hero-widget {\n margin-top: 0;\n margin-bottom: 10px;\n order: 1;\n flex: 0 0 auto;\n }\n }\n\n &__column-registration {\n grid-row: 2;\n }\n\n .directory {\n margin-top: 10px;\n }\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n grid-gap: 0;\n\n .hero-widget {\n display: block;\n margin-bottom: 0;\n box-shadow: none;\n\n &__img,\n &__img img,\n &__footer {\n border-radius: 0;\n }\n }\n\n .hero-widget,\n .box-widget,\n .directory__tag {\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n }\n\n .directory {\n margin-top: 0;\n\n &__tag {\n margin-bottom: 0;\n\n & > a,\n & > div {\n border-radius: 0;\n box-shadow: none;\n }\n\n &:last-child {\n border-bottom: 0;\n }\n }\n }\n }\n }\n}\n\n.brand {\n position: relative;\n text-decoration: none;\n}\n\n.brand__tagline {\n display: block;\n position: absolute;\n bottom: -10px;\n left: 50px;\n width: 300px;\n color: $ui-primary-color;\n text-decoration: none;\n font-size: 14px;\n\n @media screen and (max-width: $no-gap-breakpoint) {\n position: static;\n width: auto;\n margin-top: 20px;\n color: $dark-text-color;\n }\n}\n\n",".table {\n width: 100%;\n max-width: 100%;\n border-spacing: 0;\n border-collapse: collapse;\n\n th,\n td {\n padding: 8px;\n line-height: 18px;\n vertical-align: top;\n border-top: 1px solid $ui-base-color;\n text-align: left;\n background: darken($ui-base-color, 4%);\n }\n\n & > thead > tr > th {\n vertical-align: bottom;\n border-bottom: 2px solid $ui-base-color;\n border-top: 0;\n font-weight: 500;\n }\n\n & > tbody > tr > th {\n font-weight: 500;\n }\n\n & > tbody > tr:nth-child(odd) > td,\n & > tbody > tr:nth-child(odd) > th {\n background: $ui-base-color;\n }\n\n a {\n color: $highlight-text-color;\n text-decoration: underline;\n\n &:hover {\n text-decoration: none;\n }\n }\n\n strong {\n font-weight: 500;\n\n @each $lang in $cjk-langs {\n &:lang(#{$lang}) {\n font-weight: 700;\n }\n }\n }\n\n &.inline-table {\n & > tbody > tr:nth-child(odd) {\n & > td,\n & > th {\n background: transparent;\n }\n }\n\n & > tbody > tr:first-child {\n & > td,\n & > th {\n border-top: 0;\n }\n }\n }\n\n &.batch-table {\n & > thead > tr > th {\n background: $ui-base-color;\n border-top: 1px solid darken($ui-base-color, 8%);\n border-bottom: 1px solid darken($ui-base-color, 8%);\n\n &:first-child {\n border-radius: 4px 0 0;\n border-left: 1px solid darken($ui-base-color, 8%);\n }\n\n &:last-child {\n border-radius: 0 4px 0 0;\n border-right: 1px solid darken($ui-base-color, 8%);\n }\n }\n }\n\n &--invites tbody td {\n vertical-align: middle;\n }\n}\n\n.table-wrapper {\n overflow: auto;\n margin-bottom: 20px;\n}\n\nsamp {\n font-family: $font-monospace, monospace;\n}\n\nbutton.table-action-link {\n background: transparent;\n border: 0;\n font: inherit;\n}\n\nbutton.table-action-link,\na.table-action-link {\n text-decoration: none;\n display: inline-block;\n margin-right: 5px;\n padding: 0 10px;\n color: $darker-text-color;\n font-weight: 500;\n\n &:hover {\n color: $primary-text-color;\n }\n\n i.fa {\n font-weight: 400;\n margin-right: 5px;\n }\n\n &:first-child {\n padding-left: 0;\n }\n}\n\n.batch-table {\n &__toolbar,\n &__row {\n display: flex;\n\n &__select {\n box-sizing: border-box;\n padding: 8px 16px;\n cursor: pointer;\n min-height: 100%;\n\n input {\n margin-top: 8px;\n }\n\n &--aligned {\n display: flex;\n align-items: center;\n\n input {\n margin-top: 0;\n }\n }\n }\n\n &__actions,\n &__content {\n padding: 8px 0;\n padding-right: 16px;\n flex: 1 1 auto;\n }\n }\n\n &__toolbar {\n border: 1px solid darken($ui-base-color, 8%);\n background: $ui-base-color;\n border-radius: 4px 0 0;\n height: 47px;\n align-items: center;\n\n &__actions {\n text-align: right;\n padding-right: 16px - 5px;\n }\n }\n\n &__form {\n padding: 16px;\n border: 1px solid darken($ui-base-color, 8%);\n border-top: 0;\n background: $ui-base-color;\n\n .fields-row {\n padding-top: 0;\n margin-bottom: 0;\n }\n }\n\n &__row {\n border: 1px solid darken($ui-base-color, 8%);\n border-top: 0;\n background: darken($ui-base-color, 4%);\n\n @media screen and (max-width: $no-gap-breakpoint) {\n .optional &:first-child {\n border-top: 1px solid darken($ui-base-color, 8%);\n }\n }\n\n &:hover {\n background: darken($ui-base-color, 2%);\n }\n\n &:nth-child(even) {\n background: $ui-base-color;\n\n &:hover {\n background: lighten($ui-base-color, 2%);\n }\n }\n\n &__content {\n padding-top: 12px;\n padding-bottom: 16px;\n\n &--unpadded {\n padding: 0;\n }\n\n &--with-image {\n display: flex;\n align-items: center;\n }\n\n &__image {\n flex: 0 0 auto;\n display: flex;\n justify-content: center;\n align-items: center;\n margin-right: 10px;\n\n .emojione {\n width: 32px;\n height: 32px;\n }\n }\n\n &__text {\n flex: 1 1 auto;\n }\n\n &__extra {\n flex: 0 0 auto;\n text-align: right;\n color: $darker-text-color;\n font-weight: 500;\n }\n }\n\n .directory__tag {\n margin: 0;\n width: 100%;\n\n a {\n background: transparent;\n border-radius: 0;\n }\n }\n }\n\n &.optional .batch-table__toolbar,\n &.optional .batch-table__row__select {\n @media screen and (max-width: $no-gap-breakpoint) {\n display: none;\n }\n }\n\n .status__content {\n padding-top: 0;\n\n summary {\n display: list-item;\n }\n\n strong {\n font-weight: 700;\n }\n }\n\n .nothing-here {\n border: 1px solid darken($ui-base-color, 8%);\n border-top: 0;\n box-shadow: none;\n\n @media screen and (max-width: $no-gap-breakpoint) {\n border-top: 1px solid darken($ui-base-color, 8%);\n }\n }\n\n @media screen and (max-width: 870px) {\n .accounts-table tbody td.optional {\n display: none;\n }\n }\n}\n","$no-columns-breakpoint: 600px;\n$sidebar-width: 240px;\n$content-width: 840px;\n\n.admin-wrapper {\n display: flex;\n justify-content: center;\n width: 100%;\n min-height: 100vh;\n\n .sidebar-wrapper {\n min-height: 100vh;\n overflow: hidden;\n pointer-events: none;\n flex: 1 1 auto;\n\n &__inner {\n display: flex;\n justify-content: flex-end;\n background: $ui-base-color;\n height: 100%;\n }\n }\n\n .sidebar {\n width: $sidebar-width;\n padding: 0;\n pointer-events: auto;\n\n &__toggle {\n display: none;\n background: lighten($ui-base-color, 8%);\n height: 48px;\n\n &__logo {\n flex: 1 1 auto;\n\n a {\n display: inline-block;\n padding: 15px;\n }\n\n svg {\n fill: $primary-text-color;\n height: 20px;\n position: relative;\n bottom: -2px;\n }\n }\n\n &__icon {\n display: block;\n color: $darker-text-color;\n text-decoration: none;\n flex: 0 0 auto;\n font-size: 20px;\n padding: 15px;\n }\n\n a {\n &:hover,\n &:focus,\n &:active {\n background: lighten($ui-base-color, 12%);\n }\n }\n }\n\n .logo {\n display: block;\n margin: 40px auto;\n width: 100px;\n height: 100px;\n }\n\n @media screen and (max-width: $no-columns-breakpoint) {\n & > a:first-child {\n display: none;\n }\n }\n\n ul {\n list-style: none;\n border-radius: 4px 0 0 4px;\n overflow: hidden;\n margin-bottom: 20px;\n\n @media screen and (max-width: $no-columns-breakpoint) {\n margin-bottom: 0;\n }\n\n a {\n display: block;\n padding: 15px;\n color: $darker-text-color;\n text-decoration: none;\n transition: all 200ms linear;\n transition-property: color, background-color;\n border-radius: 4px 0 0 4px;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n\n i.fa {\n margin-right: 5px;\n }\n\n &:hover {\n color: $primary-text-color;\n background-color: darken($ui-base-color, 5%);\n transition: all 100ms linear;\n transition-property: color, background-color;\n }\n\n &.selected {\n background: darken($ui-base-color, 2%);\n border-radius: 4px 0 0;\n }\n }\n\n ul {\n background: darken($ui-base-color, 4%);\n border-radius: 0 0 0 4px;\n margin: 0;\n\n a {\n border: 0;\n padding: 15px 35px;\n }\n }\n\n .simple-navigation-active-leaf a {\n color: $primary-text-color;\n background-color: $ui-highlight-color;\n border-bottom: 0;\n border-radius: 0;\n\n &:hover {\n background-color: lighten($ui-highlight-color, 5%);\n }\n }\n }\n\n & > ul > .simple-navigation-active-leaf a {\n border-radius: 4px 0 0 4px;\n }\n }\n\n .content-wrapper {\n box-sizing: border-box;\n width: 100%;\n max-width: $content-width;\n flex: 1 1 auto;\n }\n\n @media screen and (max-width: $content-width + $sidebar-width) {\n .sidebar-wrapper--empty {\n display: none;\n }\n\n .sidebar-wrapper {\n width: $sidebar-width;\n flex: 0 0 auto;\n }\n }\n\n @media screen and (max-width: $no-columns-breakpoint) {\n .sidebar-wrapper {\n width: 100%;\n }\n }\n\n .content {\n padding: 20px 15px;\n padding-top: 60px;\n padding-left: 25px;\n\n @media screen and (max-width: $no-columns-breakpoint) {\n max-width: none;\n padding: 15px;\n padding-top: 30px;\n }\n\n &-heading {\n display: flex;\n\n padding-bottom: 40px;\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n\n margin: -15px -15px 40px 0;\n\n flex-wrap: wrap;\n align-items: center;\n justify-content: space-between;\n\n & > * {\n margin-top: 15px;\n margin-right: 15px;\n }\n\n &-actions {\n display: inline-flex;\n\n & > :not(:first-child) {\n margin-left: 5px;\n }\n }\n\n @media screen and (max-width: $no-columns-breakpoint) {\n border-bottom: 0;\n padding-bottom: 0;\n }\n }\n\n h2 {\n color: $secondary-text-color;\n font-size: 24px;\n line-height: 28px;\n font-weight: 400;\n\n @media screen and (max-width: $no-columns-breakpoint) {\n font-weight: 700;\n }\n }\n\n h3 {\n color: $secondary-text-color;\n font-size: 20px;\n line-height: 28px;\n font-weight: 400;\n margin-bottom: 30px;\n }\n\n h4 {\n text-transform: uppercase;\n font-size: 13px;\n font-weight: 700;\n color: $darker-text-color;\n padding-bottom: 8px;\n margin-bottom: 8px;\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n }\n\n h6 {\n font-size: 16px;\n color: $secondary-text-color;\n line-height: 28px;\n font-weight: 500;\n }\n\n .fields-group h6 {\n color: $primary-text-color;\n font-weight: 500;\n }\n\n .directory__tag > a,\n .directory__tag > div {\n box-shadow: none;\n }\n\n .directory__tag .table-action-link .fa {\n color: inherit;\n }\n\n .directory__tag h4 {\n font-size: 18px;\n font-weight: 700;\n color: $primary-text-color;\n text-transform: none;\n padding-bottom: 0;\n margin-bottom: 0;\n border-bottom: 0;\n }\n\n & > p {\n font-size: 14px;\n line-height: 21px;\n color: $secondary-text-color;\n margin-bottom: 20px;\n\n strong {\n color: $primary-text-color;\n font-weight: 500;\n\n @each $lang in $cjk-langs {\n &:lang(#{$lang}) {\n font-weight: 700;\n }\n }\n }\n }\n\n hr {\n width: 100%;\n height: 0;\n border: 0;\n border-bottom: 1px solid rgba($ui-base-lighter-color, .6);\n margin: 20px 0;\n\n &.spacer {\n height: 1px;\n border: 0;\n }\n }\n }\n\n @media screen and (max-width: $no-columns-breakpoint) {\n display: block;\n\n .sidebar-wrapper {\n min-height: 0;\n }\n\n .sidebar {\n width: 100%;\n padding: 0;\n height: auto;\n\n &__toggle {\n display: flex;\n }\n\n & > ul {\n display: none;\n }\n\n ul a,\n ul ul a {\n border-radius: 0;\n border-bottom: 1px solid lighten($ui-base-color, 4%);\n transition: none;\n\n &:hover {\n transition: none;\n }\n }\n\n ul ul {\n border-radius: 0;\n }\n\n ul .simple-navigation-active-leaf a {\n border-bottom-color: $ui-highlight-color;\n }\n }\n }\n}\n\nhr.spacer {\n width: 100%;\n border: 0;\n margin: 20px 0;\n height: 1px;\n}\n\nbody,\n.admin-wrapper .content {\n .muted-hint {\n color: $darker-text-color;\n\n a {\n color: $highlight-text-color;\n }\n }\n\n .positive-hint {\n color: $valid-value-color;\n font-weight: 500;\n }\n\n .negative-hint {\n color: $error-value-color;\n font-weight: 500;\n }\n\n .neutral-hint {\n color: $dark-text-color;\n font-weight: 500;\n }\n\n .warning-hint {\n color: $gold-star;\n font-weight: 500;\n }\n}\n\n.filters {\n display: flex;\n flex-wrap: wrap;\n\n .filter-subset {\n flex: 0 0 auto;\n margin: 0 40px 20px 0;\n\n &:last-child {\n margin-bottom: 30px;\n }\n\n ul {\n margin-top: 5px;\n list-style: none;\n\n li {\n display: inline-block;\n margin-right: 5px;\n }\n }\n\n strong {\n font-weight: 500;\n text-transform: uppercase;\n font-size: 12px;\n\n @each $lang in $cjk-langs {\n &:lang(#{$lang}) {\n font-weight: 700;\n }\n }\n }\n\n &--with-select strong {\n display: block;\n margin-bottom: 10px;\n }\n\n a {\n display: inline-block;\n color: $darker-text-color;\n text-decoration: none;\n text-transform: uppercase;\n font-size: 12px;\n font-weight: 500;\n border-bottom: 2px solid $ui-base-color;\n\n &:hover {\n color: $primary-text-color;\n border-bottom: 2px solid lighten($ui-base-color, 5%);\n }\n\n &.selected {\n color: $highlight-text-color;\n border-bottom: 2px solid $ui-highlight-color;\n }\n }\n }\n}\n\n.flavour-screen {\n display: block;\n margin: 10px auto;\n max-width: 100%;\n}\n\n.flavour-description {\n display: block;\n font-size: 16px;\n margin: 10px 0;\n\n & > p {\n margin: 10px 0;\n }\n}\n\n.flavour-screen {\n display: block;\n margin: 10px auto;\n max-width: 100%;\n}\n\n.flavour-description {\n display: block;\n font-size: 16px;\n margin: 10px 0;\n\n & > p {\n margin: 10px 0;\n }\n}\n\n.report-accounts {\n display: flex;\n flex-wrap: wrap;\n margin-bottom: 20px;\n}\n\n.report-accounts__item {\n display: flex;\n flex: 250px;\n flex-direction: column;\n margin: 0 5px;\n\n & > strong {\n display: block;\n margin: 0 0 10px -5px;\n font-weight: 500;\n font-size: 14px;\n line-height: 18px;\n color: $secondary-text-color;\n\n @each $lang in $cjk-langs {\n &:lang(#{$lang}) {\n font-weight: 700;\n }\n }\n }\n\n .account-card {\n flex: 1 1 auto;\n }\n}\n\n.report-status,\n.account-status {\n display: flex;\n margin-bottom: 10px;\n\n .activity-stream {\n flex: 2 0 0;\n margin-right: 20px;\n max-width: calc(100% - 60px);\n\n .entry {\n border-radius: 4px;\n }\n }\n}\n\n.report-status__actions,\n.account-status__actions {\n flex: 0 0 auto;\n display: flex;\n flex-direction: column;\n\n .icon-button {\n font-size: 24px;\n width: 24px;\n text-align: center;\n margin-bottom: 10px;\n }\n}\n\n.simple_form.new_report_note,\n.simple_form.new_account_moderation_note {\n max-width: 100%;\n}\n\n.batch-form-box {\n display: flex;\n flex-wrap: wrap;\n margin-bottom: 5px;\n\n #form_status_batch_action {\n margin: 0 5px 5px 0;\n font-size: 14px;\n }\n\n input.button {\n margin: 0 5px 5px 0;\n }\n\n .media-spoiler-toggle-buttons {\n margin-left: auto;\n\n .button {\n overflow: visible;\n margin: 0 0 5px 5px;\n float: right;\n }\n }\n}\n\n.back-link {\n margin-bottom: 10px;\n font-size: 14px;\n\n a {\n color: $highlight-text-color;\n text-decoration: none;\n\n &:hover {\n text-decoration: underline;\n }\n }\n}\n\n.spacer {\n flex: 1 1 auto;\n}\n\n.log-entry {\n line-height: 20px;\n padding: 15px 0;\n background: $ui-base-color;\n border-bottom: 1px solid lighten($ui-base-color, 4%);\n\n &:last-child {\n border-bottom: 0;\n }\n\n &__header {\n display: flex;\n justify-content: flex-start;\n align-items: center;\n color: $darker-text-color;\n font-size: 14px;\n padding: 0 10px;\n }\n\n &__avatar {\n margin-right: 10px;\n\n .avatar {\n display: block;\n margin: 0;\n border-radius: 50%;\n width: 40px;\n height: 40px;\n }\n }\n\n &__content {\n max-width: calc(100% - 90px);\n }\n\n &__title {\n word-wrap: break-word;\n }\n\n &__timestamp {\n color: $dark-text-color;\n }\n\n a,\n .username,\n .target {\n color: $secondary-text-color;\n text-decoration: none;\n font-weight: 500;\n }\n}\n\na.name-tag,\n.name-tag,\na.inline-name-tag,\n.inline-name-tag {\n text-decoration: none;\n color: $secondary-text-color;\n\n .username {\n font-weight: 500;\n }\n\n &.suspended {\n .username {\n text-decoration: line-through;\n color: lighten($error-red, 12%);\n }\n\n .avatar {\n filter: grayscale(100%);\n opacity: 0.8;\n }\n }\n}\n\na.name-tag,\n.name-tag {\n display: flex;\n align-items: center;\n\n .avatar {\n display: block;\n margin: 0;\n margin-right: 5px;\n border-radius: 50%;\n }\n\n &.suspended {\n .avatar {\n filter: grayscale(100%);\n opacity: 0.8;\n }\n }\n}\n\n.speech-bubble {\n margin-bottom: 20px;\n border-left: 4px solid $ui-highlight-color;\n\n &.positive {\n border-left-color: $success-green;\n }\n\n &.negative {\n border-left-color: lighten($error-red, 12%);\n }\n\n &.warning {\n border-left-color: $gold-star;\n }\n\n &__bubble {\n padding: 16px;\n padding-left: 14px;\n font-size: 15px;\n line-height: 20px;\n border-radius: 4px 4px 4px 0;\n position: relative;\n font-weight: 500;\n\n a {\n color: $darker-text-color;\n }\n }\n\n &__owner {\n padding: 8px;\n padding-left: 12px;\n }\n\n time {\n color: $dark-text-color;\n }\n}\n\n.report-card {\n background: $ui-base-color;\n border-radius: 4px;\n margin-bottom: 20px;\n\n &__profile {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 15px;\n\n .account {\n padding: 0;\n border: 0;\n\n &__avatar-wrapper {\n margin-left: 0;\n }\n }\n\n &__stats {\n flex: 0 0 auto;\n font-weight: 500;\n color: $darker-text-color;\n text-transform: uppercase;\n text-align: right;\n\n a {\n color: inherit;\n text-decoration: none;\n\n &:focus,\n &:hover,\n &:active {\n color: lighten($darker-text-color, 8%);\n }\n }\n\n .red {\n color: $error-value-color;\n }\n }\n }\n\n &__summary {\n &__item {\n display: flex;\n justify-content: flex-start;\n border-top: 1px solid darken($ui-base-color, 4%);\n\n &:hover {\n background: lighten($ui-base-color, 2%);\n }\n\n &__reported-by,\n &__assigned {\n padding: 15px;\n flex: 0 0 auto;\n box-sizing: border-box;\n width: 150px;\n color: $darker-text-color;\n\n &,\n .username {\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n }\n\n &__content {\n flex: 1 1 auto;\n max-width: calc(100% - 300px);\n\n &__icon {\n color: $dark-text-color;\n margin-right: 4px;\n font-weight: 500;\n }\n }\n\n &__content a {\n display: block;\n box-sizing: border-box;\n width: 100%;\n padding: 15px;\n text-decoration: none;\n color: $darker-text-color;\n }\n }\n }\n}\n\n.one-line {\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n.ellipsized-ip {\n display: inline-block;\n max-width: 120px;\n overflow: hidden;\n text-overflow: ellipsis;\n vertical-align: middle;\n}\n\n.admin-account-bio {\n display: flex;\n flex-wrap: wrap;\n margin: 0 -5px;\n margin-top: 20px;\n\n > div {\n box-sizing: border-box;\n padding: 0 5px;\n margin-bottom: 10px;\n flex: 1 0 50%;\n }\n\n .account__header__fields,\n .account__header__content {\n background: lighten($ui-base-color, 8%);\n border-radius: 4px;\n height: 100%;\n }\n\n .account__header__fields {\n margin: 0;\n border: 0;\n\n a {\n color: lighten($ui-highlight-color, 8%);\n }\n\n dl:first-child .verified {\n border-radius: 0 4px 0 0;\n }\n\n .verified a {\n color: $valid-value-color;\n }\n }\n\n .account__header__content {\n box-sizing: border-box;\n padding: 20px;\n color: $primary-text-color;\n }\n}\n\n.center-text {\n text-align: center;\n}\n\n.announcements-list {\n border: 1px solid lighten($ui-base-color, 4%);\n border-radius: 4px;\n\n &__item {\n padding: 15px 0;\n background: $ui-base-color;\n border-bottom: 1px solid lighten($ui-base-color, 4%);\n\n &__title {\n padding: 0 15px;\n display: block;\n font-weight: 500;\n font-size: 18px;\n line-height: 1.5;\n color: $secondary-text-color;\n text-decoration: none;\n margin-bottom: 10px;\n\n &:hover,\n &:focus,\n &:active {\n color: $primary-text-color;\n }\n }\n\n &__meta {\n padding: 0 15px;\n color: $dark-text-color;\n }\n\n &__action-bar {\n display: flex;\n justify-content: space-between;\n align-items: center;\n }\n\n &:last-child {\n border-bottom: 0;\n }\n }\n}\n",".dashboard__counters {\n display: flex;\n flex-wrap: wrap;\n margin: 0 -5px;\n margin-bottom: 20px;\n\n & > div {\n box-sizing: border-box;\n flex: 0 0 33.333%;\n padding: 0 5px;\n margin-bottom: 10px;\n\n & > div,\n & > a {\n padding: 20px;\n background: lighten($ui-base-color, 4%);\n border-radius: 4px;\n box-sizing: border-box;\n height: 100%;\n }\n\n & > a {\n text-decoration: none;\n color: inherit;\n display: block;\n\n &:hover,\n &:focus,\n &:active {\n background: lighten($ui-base-color, 8%);\n }\n }\n }\n\n &__num,\n &__text {\n text-align: center;\n font-weight: 500;\n font-size: 24px;\n line-height: 21px;\n color: $primary-text-color;\n font-family: $font-display, sans-serif;\n margin-bottom: 20px;\n line-height: 30px;\n }\n\n &__text {\n font-size: 18px;\n }\n\n &__label {\n font-size: 14px;\n color: $darker-text-color;\n text-align: center;\n font-weight: 500;\n }\n}\n\n.dashboard__widgets {\n display: flex;\n flex-wrap: wrap;\n margin: 0 -5px;\n\n & > div {\n flex: 0 0 33.333%;\n margin-bottom: 20px;\n\n & > div {\n padding: 0 5px;\n }\n }\n\n a:not(.name-tag) {\n color: $ui-secondary-color;\n font-weight: 500;\n text-decoration: none;\n }\n}\n","body.rtl {\n direction: rtl;\n\n .column-header > button {\n text-align: right;\n padding-left: 0;\n padding-right: 15px;\n }\n\n .radio-button__input {\n margin-right: 0;\n margin-left: 10px;\n }\n\n .directory__card__bar .display-name {\n margin-left: 0;\n margin-right: 15px;\n }\n\n .display-name {\n text-align: right;\n }\n\n .notification__message {\n margin-left: 0;\n margin-right: 68px;\n }\n\n .drawer__inner__mastodon > img {\n transform: scaleX(-1);\n }\n\n .notification__favourite-icon-wrapper {\n left: auto;\n right: -26px;\n }\n\n .landing-page__logo {\n margin-right: 0;\n margin-left: 20px;\n }\n\n .landing-page .features-list .features-list__row .visual {\n margin-left: 0;\n margin-right: 15px;\n }\n\n .column-link__icon,\n .column-header__icon {\n margin-right: 0;\n margin-left: 5px;\n }\n\n .compose-form .compose-form__buttons-wrapper .character-counter__wrapper {\n margin-right: 0;\n margin-left: 4px;\n }\n\n .navigation-bar__profile {\n margin-left: 0;\n margin-right: 8px;\n }\n\n .search__input {\n padding-right: 10px;\n padding-left: 30px;\n }\n\n .search__icon .fa {\n right: auto;\n left: 10px;\n }\n\n .columns-area {\n direction: rtl;\n }\n\n .column-header__buttons {\n left: 0;\n right: auto;\n margin-left: 0;\n margin-right: -15px;\n }\n\n .column-inline-form .icon-button {\n margin-left: 0;\n margin-right: 5px;\n }\n\n .column-header__links .text-btn {\n margin-left: 10px;\n margin-right: 0;\n }\n\n .account__avatar-wrapper {\n float: right;\n }\n\n .column-header__back-button {\n padding-left: 5px;\n padding-right: 0;\n }\n\n .column-header__setting-arrows {\n float: left;\n }\n\n .setting-toggle__label {\n margin-left: 0;\n margin-right: 8px;\n }\n\n .status__avatar {\n left: auto;\n right: 10px;\n }\n\n .status,\n .activity-stream .status.light {\n padding-left: 10px;\n padding-right: 68px;\n }\n\n .status__info .status__display-name,\n .activity-stream .status.light .status__display-name {\n padding-left: 25px;\n padding-right: 0;\n }\n\n .activity-stream .pre-header {\n padding-right: 68px;\n padding-left: 0;\n }\n\n .status__prepend {\n margin-left: 0;\n margin-right: 68px;\n }\n\n .status__prepend-icon-wrapper {\n left: auto;\n right: -26px;\n }\n\n .activity-stream .pre-header .pre-header__icon {\n left: auto;\n right: 42px;\n }\n\n .account__avatar-overlay-overlay {\n right: auto;\n left: 0;\n }\n\n .column-back-button--slim-button {\n right: auto;\n left: 0;\n }\n\n .status__relative-time,\n .activity-stream .status.light .status__header .status__meta {\n float: left;\n }\n\n .status__action-bar {\n &__counter {\n margin-right: 0;\n margin-left: 11px;\n\n .status__action-bar-button {\n margin-right: 0;\n margin-left: 4px;\n }\n }\n }\n\n .status__action-bar-button {\n float: right;\n margin-right: 0;\n margin-left: 18px;\n }\n\n .status__action-bar-dropdown {\n float: right;\n }\n\n .privacy-dropdown__dropdown {\n margin-left: 0;\n margin-right: 40px;\n }\n\n .privacy-dropdown__option__icon {\n margin-left: 10px;\n margin-right: 0;\n }\n\n .detailed-status__display-name .display-name {\n text-align: right;\n }\n\n .detailed-status__display-avatar {\n margin-right: 0;\n margin-left: 10px;\n float: right;\n }\n\n .detailed-status__favorites,\n .detailed-status__reblogs {\n margin-left: 0;\n margin-right: 6px;\n }\n\n .fa-ul {\n margin-left: 2.14285714em;\n }\n\n .fa-li {\n left: auto;\n right: -2.14285714em;\n }\n\n .admin-wrapper {\n direction: rtl;\n }\n\n .admin-wrapper .sidebar ul a i.fa,\n a.table-action-link i.fa {\n margin-right: 0;\n margin-left: 5px;\n }\n\n .simple_form .check_boxes .checkbox label {\n padding-left: 0;\n padding-right: 25px;\n }\n\n .simple_form .input.with_label.boolean label.checkbox {\n padding-left: 25px;\n padding-right: 0;\n }\n\n .simple_form .check_boxes .checkbox input[type=\"checkbox\"],\n .simple_form .input.boolean input[type=\"checkbox\"] {\n left: auto;\n right: 0;\n }\n\n .simple_form .input.radio_buttons .radio {\n left: auto;\n right: 0;\n }\n\n .simple_form .input.radio_buttons .radio > label {\n padding-right: 28px;\n padding-left: 0;\n }\n\n .simple_form .input-with-append .input input {\n padding-left: 142px;\n padding-right: 0;\n }\n\n .simple_form .input.boolean label.checkbox {\n left: auto;\n right: 0;\n }\n\n .simple_form .input.boolean .label_input,\n .simple_form .input.boolean .hint {\n padding-left: 0;\n padding-right: 28px;\n }\n\n .simple_form .label_input__append {\n right: auto;\n left: 3px;\n\n &::after {\n right: auto;\n left: 0;\n background-image: linear-gradient(to left, rgba(darken($ui-base-color, 10%), 0), darken($ui-base-color, 10%));\n }\n }\n\n .simple_form select {\n background: darken($ui-base-color, 10%) url(\"data:image/svg+xml;utf8,\") no-repeat left 8px center / auto 16px;\n }\n\n .table th,\n .table td {\n text-align: right;\n }\n\n .filters .filter-subset {\n margin-right: 0;\n margin-left: 45px;\n }\n\n .landing-page .header-wrapper .mascot {\n right: 60px;\n left: auto;\n }\n\n .landing-page__call-to-action .row__information-board {\n direction: rtl;\n }\n\n .landing-page .header .hero .floats .float-1 {\n left: -120px;\n right: auto;\n }\n\n .landing-page .header .hero .floats .float-2 {\n left: 210px;\n right: auto;\n }\n\n .landing-page .header .hero .floats .float-3 {\n left: 110px;\n right: auto;\n }\n\n .landing-page .header .links .brand img {\n left: 0;\n }\n\n .landing-page .fa-external-link {\n padding-right: 5px;\n padding-left: 0 !important;\n }\n\n .landing-page .features #mastodon-timeline {\n margin-right: 0;\n margin-left: 30px;\n }\n\n @media screen and (min-width: 631px) {\n .column,\n .drawer {\n padding-left: 5px;\n padding-right: 5px;\n\n &:first-child {\n padding-left: 5px;\n padding-right: 10px;\n }\n }\n\n .columns-area > div {\n .column,\n .drawer {\n padding-left: 5px;\n padding-right: 5px;\n }\n }\n }\n\n .columns-area--mobile .column,\n .columns-area--mobile .drawer {\n padding-left: 0;\n padding-right: 0;\n }\n\n .public-layout {\n .header {\n .nav-button {\n margin-left: 8px;\n margin-right: 0;\n }\n }\n\n .public-account-header__tabs {\n margin-left: 0;\n margin-right: 20px;\n }\n }\n\n .landing-page__information {\n .account__display-name {\n margin-right: 0;\n margin-left: 5px;\n }\n\n .account__avatar-wrapper {\n margin-left: 12px;\n margin-right: 0;\n }\n }\n\n .card__bar .display-name {\n margin-left: 0;\n margin-right: 15px;\n text-align: right;\n }\n\n .fa-chevron-left::before {\n content: \"\\F054\";\n }\n\n .fa-chevron-right::before {\n content: \"\\F053\";\n }\n\n .column-back-button__icon {\n margin-right: 0;\n margin-left: 5px;\n }\n\n .column-header__setting-arrows .column-header__setting-btn:last-child {\n padding-left: 0;\n padding-right: 10px;\n }\n\n .simple_form .input.radio_buttons .radio > label input {\n left: auto;\n right: 0;\n }\n}\n","$black-emojis: '8ball' 'ant' 'back' 'black_circle' 'black_heart' 'black_large_square' 'black_medium_small_square' 'black_medium_square' 'black_nib' 'black_small_square' 'bomb' 'bowling' 'bust_in_silhouette' 'busts_in_silhouette' 'camera' 'camera_with_flash' 'clubs' 'copyright' 'curly_loop' 'currency_exchange' 'dark_sunglasses' 'eight_pointed_black_star' 'electric_plug' 'end' 'female-guard' 'film_projector' 'fried_egg' 'gorilla' 'guardsman' 'heavy_check_mark' 'heavy_division_sign' 'heavy_dollar_sign' 'heavy_minus_sign' 'heavy_multiplication_x' 'heavy_plus_sign' 'hocho' 'hole' 'joystick' 'kaaba' 'lower_left_ballpoint_pen' 'lower_left_fountain_pen' 'male-guard' 'microphone' 'mortar_board' 'movie_camera' 'musical_score' 'on' 'registered' 'soon' 'spades' 'speaking_head_in_silhouette' 'spider' 'telephone_receiver' 'tm' 'top' 'tophat' 'turkey' 'vhs' 'video_camera' 'video_game' 'water_buffalo' 'waving_black_flag' 'wavy_dash';\n\n%white-emoji-outline {\n filter: drop-shadow(1px 1px 0 $white) drop-shadow(-1px 1px 0 $white) drop-shadow(1px -1px 0 $white) drop-shadow(-1px -1px 0 $white);\n transform: scale(.71);\n}\n\n.emojione {\n @each $emoji in $black-emojis {\n &[title=':#{$emoji}:'] {\n @extend %white-emoji-outline;\n }\n }\n}\n"],"sourceRoot":""} \ No newline at end of file diff --git a/priv/static/packs/flavours/vanilla/common.js b/priv/static/packs/flavours/vanilla/common.js deleted file mode 100644 index a69c77f8c..000000000 Binary files a/priv/static/packs/flavours/vanilla/common.js and /dev/null differ diff --git a/priv/static/packs/flavours/vanilla/common.js.map b/priv/static/packs/flavours/vanilla/common.js.map deleted file mode 100644 index 50d9946e4..000000000 Binary files a/priv/static/packs/flavours/vanilla/common.js.map and /dev/null differ diff --git a/priv/static/packs/flavours/vanilla/embed.css b/priv/static/packs/flavours/vanilla/embed.css deleted file mode 100644 index 8e96c9143..000000000 Binary files a/priv/static/packs/flavours/vanilla/embed.css and /dev/null differ diff --git a/priv/static/packs/flavours/vanilla/embed.css.map b/priv/static/packs/flavours/vanilla/embed.css.map deleted file mode 100644 index c1b892318..000000000 --- a/priv/static/packs/flavours/vanilla/embed.css.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["webpack:///font-awesome.css","webpack:///./node_modules/font-awesome/css/font-awesome.css"],"names":[],"mappings":"AAAA;;;ECAA,CAMA,WACE,wBACA,4CACA,wSACA,gBACA,kBAEF,IACE,qBACA,6CACA,kBACA,oBACA,mCACA,kCAGF,OACE,uBACA,kBACA,oBAEF,OACE,cAEF,OACE,cAEF,OACE,cAEF,OACE,cAEF,OACE,mBACA,kBAEF,OACE,eACA,yBACA,qBAEF,UACE,kBAEF,OACE,kBACA,mBACA,mBACA,gBACA,kBAEF,aACE,mBAEF,WACE,yBACA,wBACA,mBAEF,cACE,WAEF,eACE,YAEF,iBACE,kBAEF,kBACE,iBAGF,YACE,YAEF,WACE,WAEF,cACE,kBAEF,eACE,iBAEF,SACE,6CACA,qCAEF,UACE,+CACA,uCAEF,2BACE,GAEE,uBAEF,GAEE,0BAGJ,mBACE,GAEE,uBAEF,GAEE,0BAGJ,cACE,sEAGA,wBAEF,eACE,sEAGA,yBAEF,eACE,sEAGA,yBAEF,oBACE,gFAGA,qBAEF,kBACE,gFAGA,qBAEF,gHAKE,gCAEF,UACE,kBACA,qBACA,UACA,WACA,gBACA,sBAEF,0BAEE,kBACA,OACA,WACA,kBAEF,aACE,oBAEF,aACE,cAEF,YACE,WAIF,iBACE,YAEF,iBACE,YAEF,kBACE,YAEF,sBACE,YAEF,iBACE,YAEF,gBACE,YAEF,kBACE,YAEF,gBACE,YAEF,gBACE,YAEF,oBACE,YAEF,cACE,YAEF,mBACE,YAEF,iBACE,YAEF,oDAGE,YAEF,uBACE,YAEF,wBACE,YAEF,qBACE,YAEF,kBACE,YAEF,+BAEE,YAEF,mBACE,YAEF,gBACE,YAEF,kBACE,YAEF,mBACE,YAEF,gBACE,YAEF,oBACE,YAEF,+BACE,YAEF,6BACE,YAEF,iBACE,YAEF,yBACE,YAEF,0CAEE,YAEF,mBACE,YAEF,oBACE,YAEF,gBACE,YAEF,gBACE,YAEF,sBACE,YAEF,sBACE,YAEF,uBACE,YAEF,qBACE,YAEF,kBACE,YAEF,mBACE,YAEF,eACE,YAEF,gBACE,YAEF,gBACE,YAEF,oBACE,YAEF,iBACE,YAEF,kBACE,YAEF,gBACE,YAEF,gBACE,YAEF,kBACE,YAEF,uBACE,YAEF,sBACE,YAEF,sBACE,YAEF,wBACE,YAEF,uBACE,YAEF,yBACE,YAEF,gBACE,YAEF,qCAEE,YAEF,kBACE,YAEF,wBACE,YAEF,uDAGE,YAEF,kBACE,YAEF,sBACE,YAEF,kBACE,YAEF,gBACE,YAEF,2CAEE,YAEF,0BACE,YAEF,0BACE,YAEF,kBACE,YAEF,yBACE,YAEF,yBACE,YAEF,oBACE,YAEF,gBACE,YAEF,iBACE,YAEF,gBACE,YAEF,mBACE,YAEF,wBACE,YAEF,wBACE,YAEF,iBACE,YAEF,wBACE,YAEF,yBACE,YAEF,uBACE,YAEF,wBACE,YAEF,wBACE,YAEF,wBACE,YAEF,2BACE,YAEF,uBACE,YAEF,sBACE,YAEF,0BACE,YAEF,0BACE,YAEF,eACE,YAEF,sBACE,YAEF,uBACE,YAEF,oBACE,YAEF,sBACE,YAEF,yCAEE,YAEF,kBACE,YAEF,oBACE,YAEF,gBACE,YAEF,iBACE,YAEF,oBACE,YAEF,8BACE,YAEF,gBACE,YAEF,gBACE,YAEF,gBACE,YAEF,eACE,YAEF,qBACE,YAEF,mDAEE,YAEF,iBACE,YAEF,oBACE,YAEF,kBACE,YAEF,mBACE,YAEF,kBACE,YAEF,sBACE,YAEF,wBACE,YAEF,mBACE,YAEF,yBACE,YAEF,kBACE,YAEF,uBACE,YAEF,oBACE,YAEF,oBACE,YAEF,4CAEE,YAEF,0BACE,YAEF,2BACE,YAEF,wBACE,YAEF,eACE,YAEF,iCAEE,YAEF,oBACE,YAEF,uBACE,YAEF,yBACE,YAEF,qBACE,YAEF,mBACE,YAEF,oBACE,YAEF,2BACE,YAEF,sBACE,YAEF,yBACE,YAEF,mBACE,YAEF,kBACE,YAEF,yBACE,YAEF,kBACE,YAEF,mBACE,YAEF,iBACE,YAEF,oBACE,YAEF,sBACE,YAEF,wBACE,YAEF,mBACE,YAEF,0CAEE,YAEF,kBACE,YAEF,kBACE,YAEF,uBACE,YAEF,+BAEE,YAEF,iBACE,YAEF,oBACE,YAEF,gBACE,YAEF,uBACE,YAEF,wBACE,YAEF,uBACE,YAEF,qBACE,YAEF,uBACE,YAEF,6BACE,YAEF,8BACE,YAEF,2BACE,YAEF,6BACE,YAEF,iBACE,YAEF,kBACE,YAEF,iBACE,YAEF,kBACE,YAEF,qBACE,YAEF,sBACE,YAEF,kCAEE,YAEF,iCAEE,YAEF,iBACE,YAEF,iBACE,YAEF,mCAEE,YAEF,mCAEE,YAEF,qBACE,YAEF,oCAEE,YAEF,kBACE,YAEF,sDAGE,YAEF,mBACE,YAEF,mBACE,YAEF,yBACE,YAEF,qBACE,YAEF,iBACE,YAEF,iBACE,YAEF,iBACE,YAEF,qBACE,YAEF,4BACE,YAEF,8BACE,YAEF,uBACE,YAEF,iBACE,YAEF,sBACE,YAEF,oBACE,YAEF,sBACE,YAEF,uBACE,YAEF,mBACE,YAEF,oCAEE,YAEF,0CAEE,YAEF,uCAEE,YAEF,oBACE,YAEF,oBACE,YAEF,uCAEE,YAEF,kCAEE,YAEF,2CAEE,YAEF,qBACE,YAEF,sBACE,YAEF,iCAEE,YAEF,mBACE,YAEF,oBACE,YAEF,sCAEE,YAEF,uBACE,YAEF,oBACE,YAEF,0BACE,YAEF,wBACE,YAEF,mBACE,YAEF,uBACE,YAEF,oBACE,YAEF,kBACE,YAEF,kBACE,YAEF,mBACE,YAEF,uBACE,YAEF,sBACE,YAEF,sBACE,YAEF,qBACE,YAEF,kBACE,YAEF,uBACE,YAEF,gBACE,YAEF,oBACE,YAEF,uBACE,YAEF,6BACE,YAEF,8BACE,YAEF,2BACE,YAEF,6BACE,YAEF,sBACE,YAEF,uBACE,YAEF,oBACE,YAEF,sBACE,YAEF,mBACE,YAEF,kBACE,YAEF,kBACE,YAEF,0CAEE,YAEF,oBACE,YAEF,sBACE,YAEF,uBACE,YAEF,mBACE,YAEF,kBACE,YAEF,uCAEE,YAEF,sBACE,YAEF,oBACE,YAEF,yBACE,YAEF,mBACE,YAEF,mBACE,YAEF,iBACE,YAEF,mBACE,YAEF,sBACE,YAEF,kBACE,YAEF,0BACE,YAEF,oBACE,YAEF,gBACE,YAEF,+CAEE,YAEF,4EAGE,YAEF,0BACE,YAEF,gBACE,YAEF,qBACE,YAEF,0CAEE,YAEF,oBACE,YAEF,gBACE,YAEF,uBACE,YAEF,uBACE,YAEF,qBACE,YAEF,kBACE,YAEF,wBACE,YAEF,sBACE,YAEF,4BACE,YAEF,kBACE,YAEF,sBACE,YAEF,6BACE,YAEF,kBACE,YAEF,kBACE,YAEF,+BACE,YAEF,gCACE,YAEF,6BACE,YAEF,+BACE,YAEF,iBACE,YAEF,gBACE,YAEF,kBACE,YAEF,sBACE,YAEF,oBACE,YAEF,sBACE,YAEF,sBACE,YAEF,sBACE,YAEF,uBACE,YAEF,kBACE,YAEF,wBACE,YAEF,0BACE,YAEF,oBACE,YAEF,sBACE,YAEF,wBACE,YAEF,yBACE,YAEF,gCACE,YAEF,wBACE,YAEF,mBACE,YAEF,sDAEE,YAEF,kDAEE,YAEF,wDAEE,YAEF,+BAEE,YAEF,eACE,YAEF,iCAEE,YAEF,gCAEE,YAEF,4DAIE,YAEF,kDAGE,YAEF,8BAEE,YAEF,kCAEE,YAEF,gBACE,YAEF,qBACE,YAEF,0BACE,YAEF,2BACE,YAEF,2BACE,YAEF,4BACE,YAEF,4BACE,YAEF,6BACE,YAEF,qBACE,YAEF,uBACE,YAEF,0BACE,YAEF,mBACE,YAEF,gBACE,YAEF,uBACE,YAEF,wBACE,YAEF,mBACE,YAEF,0BACE,YAEF,qBACE,YAEF,kBACE,YAEF,eACE,YAEF,qBACE,YAEF,4BACE,YAEF,kBACE,YAEF,yBACE,YAEF,2BACE,YAEF,yBACE,YAEF,2BACE,YAEF,4BACE,YAEF,iBACE,YAEF,mBACE,YAEF,mBACE,YAEF,iBACE,YAEF,oBACE,YAEF,iBACE,YAEF,sBACE,YAEF,kBACE,YAEF,kBACE,YAEF,gBACE,YAEF,sCAEE,YAEF,iBACE,YAEF,kBACE,YAEF,mBACE,YAEF,eACE,YAEF,cACE,YAEF,iBACE,YAEF,kBACE,YAEF,qBACE,YAEF,0BACE,YAEF,gCACE,YAEF,+BACE,YAEF,sDAEE,YAEF,wBACE,YAEF,sBACE,YAEF,wBACE,YAEF,uCAEE,YAEF,yBACE,YAEF,yBACE,YAEF,iBACE,YAEF,2BACE,YAEF,qBACE,YAEF,kBACE,YAEF,6DAGE,YAEF,kDAEE,YAEF,iBACE,YAEF,kBACE,YAEF,kBACE,YAEF,yBACE,YAEF,8BACE,YAEF,uBACE,YAEF,qBACE,YAEF,gBACE,YAEF,yBACE,YAEF,0BACE,YAEF,kBACE,YAEF,kBACE,YAEF,oBACE,YAEF,eACE,YAEF,oBACE,YAEF,iBACE,YAEF,eACE,YAEF,iBACE,YAEF,gBACE,YAEF,iBACE,YAEF,mBACE,YAEF,0BACE,YAEF,iBACE,YAEF,wBACE,YAEF,mBACE,YAEF,qCAEE,YAEF,+BAEE,YAEF,gBACE,YAEF,mBACE,YAEF,sBACE,YAEF,sBACE,YAEF,oBACE,YAEF,sBACE,YAEF,uBACE,YAEF,wBACE,YAEF,6BACE,YAEF,0EAGE,YAEF,gDAEE,YAEF,gDAEE,YAEF,gDAEE,YAEF,uBACE,YAEF,gBACE,YAEF,mBACE,YAEF,oBACE,YAEF,wGAKE,YAEF,0BACE,YAEF,qDAGE,YAEF,gCAEE,YAEF,sBACE,YAEF,eACE,YAEF,2EAGE,YAEF,yBACE,YAEF,cACE,YAEF,oCAEE,YAEF,uCAEE,YAEF,2CAEE,YAEF,mBACE,YAEF,uBACE,YAEF,kBACE,YAEF,qBACE,YAEF,mBACE,YAEF,qBACE,YAEF,4BACE,YAEF,gBACE,YAEF,6CAEE,YAEF,eACE,YAEF,sBACE,YAEF,gBACE,YAEF,sBACE,YAEF,kBACE,YAEF,gBACE,YAEF,uBACE,YAEF,gBACE,YAEF,sBACE,YAEF,kBACE,YAEF,yBACE,YAEF,mBACE,YAEF,yBACE,YAEF,uBACE,YAEF,mBACE,YAEF,qBACE,YAEF,qBACE,YAEF,sBACE,YAEF,wBACE,YAEF,iBACE,YAEF,qBACE,YAEF,cACE,YAEF,sBACE,YAEF,uBACE,YAEF,yBACE,YAEF,sBACE,YAEF,qBACE,YAEF,sBACE,YAEF,kBACE,YAEF,yBACE,YAEF,sBACE,YAEF,qBACE,YAEF,mBACE,YAEF,eACE,YAEF,mBACE,YAEF,qBACE,YAEF,cACE,YAEF,mDAGE,YAEF,oBACE,YAEF,sBACE,YAEF,0BACE,YAEF,oBACE,YAEF,oBACE,YAEF,mBACE,YAEF,kBACE,YAEF,wBACE,YAEF,uBACE,YAEF,oBACE,YAEF,qBACE,YAEF,2BACE,YAEF,mBACE,YAEF,gBACE,YAEF,uBACE,YAEF,sBACE,YAEF,uBACE,YAEF,qBACE,YAEF,iBACE,YAEF,gBACE,YAEF,mBACE,YAEF,2CAEE,YAEF,2BACE,YAEF,wBACE,YAEF,uBACE,YAEF,sBACE,YAEF,uBACE,YAEF,yBACE,YAEF,yBACE,YAEF,kBACE,YAEF,sBACE,YAEF,6BACE,YAEF,uBACE,YAEF,oBACE,YAEF,kBACE,YAEF,qBACE,YAEF,sBACE,YAEF,gCAEE,YAEF,mBACE,YAEF,iBACE,YAEF,kBACE,YAEF,kBACE,YAEF,sCAEE,YAEF,yBACE,YAEF,oBACE,YAEF,wBACE,YAEF,gEAGE,YAEF,uDAEE,YAEF,6CAEE,YAEF,gDAEE,YAEF,8CAEE,YAEF,yBACE,YAEF,oBACE,YAEF,wBACE,YAEF,0BACE,YAEF,uBACE,YAEF,yBACE,YAEF,kBACE,YAEF,0BACE,YAEF,iBACE,YAEF,yBACE,YAEF,uBACE,YAEF,kDAEE,YAEF,iDAEE,YAEF,gDAEE,YAEF,qBACE,YAEF,8CAEE,YAEF,+CAEE,YAEF,2BACE,YAEF,yBACE,YAEF,wBACE,YAEF,0BACE,YAEF,wBACE,YAEF,qBACE,YAEF,sBACE,YAEF,4BACE,YAEF,cACE,YAEF,qBACE,YAEF,uBACE,YAEF,yBACE,YAEF,gCACE,YAEF,sBACE,YAEF,uBACE,YAEF,kBACE,YAEF,kBACE,YAEF,mBACE,YAEF,iBACE,YAEF,6BACE,YAEF,oCAEE,YAEF,kBACE,YAEF,iBACE,YAEF,kBACE,YAEF,2BACE,YAEF,4BACE,YAEF,4BACE,YAEF,4BACE,YAEF,oBACE,YAEF,mBACE,YAEF,qBACE,YAEF,iBACE,YAEF,eACE,YAEF,sBACE,YAEF,wBACE,YAEF,iBACE,YAEF,iBACE,YAEF,qBACE,YAEF,qBACE,YAEF,wBACE,YAEF,gBACE,YAEF,2BACE,YAEF,oBACE,YAEF,gBACE,YAEF,wBACE,YAEF,eACE,YAEF,wBACE,YAEF,oBACE,YAEF,kBACE,YAEF,wBACE,YAEF,0BACE,YAEF,uBACE,YAEF,yBACE,YAEF,wBACE,YAEF,2BACE,YAEF,mBACE,YAEF,qBACE,YAEF,uBACE,YAEF,mBACE,YAEF,kBACE,YAEF,sBACE,YAEF,mBACE,YAEF,kBACE,YAEF,4BACE,YAEF,0BACE,YAEF,6BACE,YAEF,iBACE,YAEF,6BACE,YAEF,gCACE,YAEF,mBACE,YAEF,uCACE,YAEF,2EAEE,YAEF,+DAGE,YAEF,iBACE,YAEF,mBACE,YAEF,4CAEE,YAEF,sBACE,YAEF,kBACE,YAEF,yBACE,YAEF,oBACE,YAEF,0BACE,YAEF,2BACE,YAEF,sBACE,YAEF,uBACE,YAEF,iBACE,YAEF,qBACE,YAEF,8DAEE,YAEF,sCAEE,YAEF,uBACE,YAEF,yBACE,YAEF,2BACE,YAEF,kBACE,YAEF,wBACE,YAEF,0BACE,YAEF,yCAEE,YAEF,6CAEE,YAEF,uBACE,YAEF,yBACE,YAEF,kBACE,YAEF,oBACE,YAEF,8CAEE,YAEF,kDAEE,YAEF,iBACE,YAEF,0BACE,YAEF,oBACE,YAEF,4EAGE,YAEF,+DAEE,YAEF,qDAEE,YAEF,wDAEE,YAEF,sDAEE,YAEF,kBACE,YAEF,kDAGE,YAEF,mBACE,YAEF,2BACE,YAEF,2BACE,YAEF,0BACE,YAEF,mDAEE,YAEF,uDAEE,YAEF,oBACE,YAEF,gBACE,YAEF,gBACE,YAEF,gBACE,YAEF,mBACE,YAEF,mBACE,YAEF,qBACE,YAEF,uBACE,YAEF,uBACE,YAEF,sBACE,YAEF,kBACE,YAEF,SACE,kBACA,UACA,WACA,UACA,YACA,gBACA,mBACA,SAEF,mDAEE,gBACA,WACA,YACA,SACA,iBACA,qJ","file":"flavours/vanilla/embed.css","sourcesContent":["/*!\n * Font Awesome 4.7.0 by @davegandy - http://fontawesome.io - @fontawesome\n * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License)\n */@font-face{font-family:\"FontAwesome\";src:url(\"../fonts/fontawesome-webfont.eot?v=4.7.0\");src:url(\"../fonts/fontawesome-webfont.eot?#iefix&v=4.7.0\") format(\"embedded-opentype\"),url(\"../fonts/fontawesome-webfont.woff2?v=4.7.0\") format(\"woff2\"),url(\"../fonts/fontawesome-webfont.woff?v=4.7.0\") format(\"woff\"),url(\"../fonts/fontawesome-webfont.ttf?v=4.7.0\") format(\"truetype\"),url(\"../fonts/fontawesome-webfont.svg?v=4.7.0#fontawesomeregular\") format(\"svg\");font-weight:normal;font-style:normal}.fa{display:inline-block;font:normal normal normal 14px/1 FontAwesome;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.fa-lg{font-size:1.33333333em;line-height:.75em;vertical-align:-15%}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-fw{width:1.28571429em;text-align:center}.fa-ul{padding-left:0;margin-left:2.14285714em;list-style-type:none}.fa-ul>li{position:relative}.fa-li{position:absolute;left:-2.14285714em;width:2.14285714em;top:.14285714em;text-align:center}.fa-li.fa-lg{left:-1.85714286em}.fa-border{padding:.2em .25em .15em;border:solid .08em #eee;border-radius:.1em}.fa-pull-left{float:left}.fa-pull-right{float:right}.fa.fa-pull-left{margin-right:.3em}.fa.fa-pull-right{margin-left:.3em}.pull-right{float:right}.pull-left{float:left}.fa.pull-left{margin-right:.3em}.fa.pull-right{margin-left:.3em}.fa-spin{-webkit-animation:fa-spin 2s infinite linear;animation:fa-spin 2s infinite linear}.fa-pulse{-webkit-animation:fa-spin 1s infinite steps(8);animation:fa-spin 1s infinite steps(8)}@-webkit-keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}.fa-rotate-90{-ms-filter:\"progid:DXImageTransform.Microsoft.BasicImage(rotation=1)\";-webkit-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg)}.fa-rotate-180{-ms-filter:\"progid:DXImageTransform.Microsoft.BasicImage(rotation=2)\";-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg)}.fa-rotate-270{-ms-filter:\"progid:DXImageTransform.Microsoft.BasicImage(rotation=3)\";-webkit-transform:rotate(270deg);-ms-transform:rotate(270deg);transform:rotate(270deg)}.fa-flip-horizontal{-ms-filter:\"progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)\";-webkit-transform:scale(-1, 1);-ms-transform:scale(-1, 1);transform:scale(-1, 1)}.fa-flip-vertical{-ms-filter:\"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)\";-webkit-transform:scale(1, -1);-ms-transform:scale(1, -1);transform:scale(1, -1)}:root .fa-rotate-90,:root .fa-rotate-180,:root .fa-rotate-270,:root .fa-flip-horizontal,:root .fa-flip-vertical{filter:none}.fa-stack{position:relative;display:inline-block;width:2em;height:2em;line-height:2em;vertical-align:middle}.fa-stack-1x,.fa-stack-2x{position:absolute;left:0;width:100%;text-align:center}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:#fff}.fa-glass:before{content:\"\"}.fa-music:before{content:\"\"}.fa-search:before{content:\"\"}.fa-envelope-o:before{content:\"\"}.fa-heart:before{content:\"\"}.fa-star:before{content:\"\"}.fa-star-o:before{content:\"\"}.fa-user:before{content:\"\"}.fa-film:before{content:\"\"}.fa-th-large:before{content:\"\"}.fa-th:before{content:\"\"}.fa-th-list:before{content:\"\"}.fa-check:before{content:\"\"}.fa-remove:before,.fa-close:before,.fa-times:before{content:\"\"}.fa-search-plus:before{content:\"\"}.fa-search-minus:before{content:\"\"}.fa-power-off:before{content:\"\"}.fa-signal:before{content:\"\"}.fa-gear:before,.fa-cog:before{content:\"\"}.fa-trash-o:before{content:\"\"}.fa-home:before{content:\"\"}.fa-file-o:before{content:\"\"}.fa-clock-o:before{content:\"\"}.fa-road:before{content:\"\"}.fa-download:before{content:\"\"}.fa-arrow-circle-o-down:before{content:\"\"}.fa-arrow-circle-o-up:before{content:\"\"}.fa-inbox:before{content:\"\"}.fa-play-circle-o:before{content:\"\"}.fa-rotate-right:before,.fa-repeat:before{content:\"\"}.fa-refresh:before{content:\"\"}.fa-list-alt:before{content:\"\"}.fa-lock:before{content:\"\"}.fa-flag:before{content:\"\"}.fa-headphones:before{content:\"\"}.fa-volume-off:before{content:\"\"}.fa-volume-down:before{content:\"\"}.fa-volume-up:before{content:\"\"}.fa-qrcode:before{content:\"\"}.fa-barcode:before{content:\"\"}.fa-tag:before{content:\"\"}.fa-tags:before{content:\"\"}.fa-book:before{content:\"\"}.fa-bookmark:before{content:\"\"}.fa-print:before{content:\"\"}.fa-camera:before{content:\"\"}.fa-font:before{content:\"\"}.fa-bold:before{content:\"\"}.fa-italic:before{content:\"\"}.fa-text-height:before{content:\"\"}.fa-text-width:before{content:\"\"}.fa-align-left:before{content:\"\"}.fa-align-center:before{content:\"\"}.fa-align-right:before{content:\"\"}.fa-align-justify:before{content:\"\"}.fa-list:before{content:\"\"}.fa-dedent:before,.fa-outdent:before{content:\"\"}.fa-indent:before{content:\"\"}.fa-video-camera:before{content:\"\"}.fa-photo:before,.fa-image:before,.fa-picture-o:before{content:\"\"}.fa-pencil:before{content:\"\"}.fa-map-marker:before{content:\"\"}.fa-adjust:before{content:\"\"}.fa-tint:before{content:\"\"}.fa-edit:before,.fa-pencil-square-o:before{content:\"\"}.fa-share-square-o:before{content:\"\"}.fa-check-square-o:before{content:\"\"}.fa-arrows:before{content:\"\"}.fa-step-backward:before{content:\"\"}.fa-fast-backward:before{content:\"\"}.fa-backward:before{content:\"\"}.fa-play:before{content:\"\"}.fa-pause:before{content:\"\"}.fa-stop:before{content:\"\"}.fa-forward:before{content:\"\"}.fa-fast-forward:before{content:\"\"}.fa-step-forward:before{content:\"\"}.fa-eject:before{content:\"\"}.fa-chevron-left:before{content:\"\"}.fa-chevron-right:before{content:\"\"}.fa-plus-circle:before{content:\"\"}.fa-minus-circle:before{content:\"\"}.fa-times-circle:before{content:\"\"}.fa-check-circle:before{content:\"\"}.fa-question-circle:before{content:\"\"}.fa-info-circle:before{content:\"\"}.fa-crosshairs:before{content:\"\"}.fa-times-circle-o:before{content:\"\"}.fa-check-circle-o:before{content:\"\"}.fa-ban:before{content:\"\"}.fa-arrow-left:before{content:\"\"}.fa-arrow-right:before{content:\"\"}.fa-arrow-up:before{content:\"\"}.fa-arrow-down:before{content:\"\"}.fa-mail-forward:before,.fa-share:before{content:\"\"}.fa-expand:before{content:\"\"}.fa-compress:before{content:\"\"}.fa-plus:before{content:\"\"}.fa-minus:before{content:\"\"}.fa-asterisk:before{content:\"\"}.fa-exclamation-circle:before{content:\"\"}.fa-gift:before{content:\"\"}.fa-leaf:before{content:\"\"}.fa-fire:before{content:\"\"}.fa-eye:before{content:\"\"}.fa-eye-slash:before{content:\"\"}.fa-warning:before,.fa-exclamation-triangle:before{content:\"\"}.fa-plane:before{content:\"\"}.fa-calendar:before{content:\"\"}.fa-random:before{content:\"\"}.fa-comment:before{content:\"\"}.fa-magnet:before{content:\"\"}.fa-chevron-up:before{content:\"\"}.fa-chevron-down:before{content:\"\"}.fa-retweet:before{content:\"\"}.fa-shopping-cart:before{content:\"\"}.fa-folder:before{content:\"\"}.fa-folder-open:before{content:\"\"}.fa-arrows-v:before{content:\"\"}.fa-arrows-h:before{content:\"\"}.fa-bar-chart-o:before,.fa-bar-chart:before{content:\"\"}.fa-twitter-square:before{content:\"\"}.fa-facebook-square:before{content:\"\"}.fa-camera-retro:before{content:\"\"}.fa-key:before{content:\"\"}.fa-gears:before,.fa-cogs:before{content:\"\"}.fa-comments:before{content:\"\"}.fa-thumbs-o-up:before{content:\"\"}.fa-thumbs-o-down:before{content:\"\"}.fa-star-half:before{content:\"\"}.fa-heart-o:before{content:\"\"}.fa-sign-out:before{content:\"\"}.fa-linkedin-square:before{content:\"\"}.fa-thumb-tack:before{content:\"\"}.fa-external-link:before{content:\"\"}.fa-sign-in:before{content:\"\"}.fa-trophy:before{content:\"\"}.fa-github-square:before{content:\"\"}.fa-upload:before{content:\"\"}.fa-lemon-o:before{content:\"\"}.fa-phone:before{content:\"\"}.fa-square-o:before{content:\"\"}.fa-bookmark-o:before{content:\"\"}.fa-phone-square:before{content:\"\"}.fa-twitter:before{content:\"\"}.fa-facebook-f:before,.fa-facebook:before{content:\"\"}.fa-github:before{content:\"\"}.fa-unlock:before{content:\"\"}.fa-credit-card:before{content:\"\"}.fa-feed:before,.fa-rss:before{content:\"\"}.fa-hdd-o:before{content:\"\"}.fa-bullhorn:before{content:\"\"}.fa-bell:before{content:\"\"}.fa-certificate:before{content:\"\"}.fa-hand-o-right:before{content:\"\"}.fa-hand-o-left:before{content:\"\"}.fa-hand-o-up:before{content:\"\"}.fa-hand-o-down:before{content:\"\"}.fa-arrow-circle-left:before{content:\"\"}.fa-arrow-circle-right:before{content:\"\"}.fa-arrow-circle-up:before{content:\"\"}.fa-arrow-circle-down:before{content:\"\"}.fa-globe:before{content:\"\"}.fa-wrench:before{content:\"\"}.fa-tasks:before{content:\"\"}.fa-filter:before{content:\"\"}.fa-briefcase:before{content:\"\"}.fa-arrows-alt:before{content:\"\"}.fa-group:before,.fa-users:before{content:\"\"}.fa-chain:before,.fa-link:before{content:\"\"}.fa-cloud:before{content:\"\"}.fa-flask:before{content:\"\"}.fa-cut:before,.fa-scissors:before{content:\"\"}.fa-copy:before,.fa-files-o:before{content:\"\"}.fa-paperclip:before{content:\"\"}.fa-save:before,.fa-floppy-o:before{content:\"\"}.fa-square:before{content:\"\"}.fa-navicon:before,.fa-reorder:before,.fa-bars:before{content:\"\"}.fa-list-ul:before{content:\"\"}.fa-list-ol:before{content:\"\"}.fa-strikethrough:before{content:\"\"}.fa-underline:before{content:\"\"}.fa-table:before{content:\"\"}.fa-magic:before{content:\"\"}.fa-truck:before{content:\"\"}.fa-pinterest:before{content:\"\"}.fa-pinterest-square:before{content:\"\"}.fa-google-plus-square:before{content:\"\"}.fa-google-plus:before{content:\"\"}.fa-money:before{content:\"\"}.fa-caret-down:before{content:\"\"}.fa-caret-up:before{content:\"\"}.fa-caret-left:before{content:\"\"}.fa-caret-right:before{content:\"\"}.fa-columns:before{content:\"\"}.fa-unsorted:before,.fa-sort:before{content:\"\"}.fa-sort-down:before,.fa-sort-desc:before{content:\"\"}.fa-sort-up:before,.fa-sort-asc:before{content:\"\"}.fa-envelope:before{content:\"\"}.fa-linkedin:before{content:\"\"}.fa-rotate-left:before,.fa-undo:before{content:\"\"}.fa-legal:before,.fa-gavel:before{content:\"\"}.fa-dashboard:before,.fa-tachometer:before{content:\"\"}.fa-comment-o:before{content:\"\"}.fa-comments-o:before{content:\"\"}.fa-flash:before,.fa-bolt:before{content:\"\"}.fa-sitemap:before{content:\"\"}.fa-umbrella:before{content:\"\"}.fa-paste:before,.fa-clipboard:before{content:\"\"}.fa-lightbulb-o:before{content:\"\"}.fa-exchange:before{content:\"\"}.fa-cloud-download:before{content:\"\"}.fa-cloud-upload:before{content:\"\"}.fa-user-md:before{content:\"\"}.fa-stethoscope:before{content:\"\"}.fa-suitcase:before{content:\"\"}.fa-bell-o:before{content:\"\"}.fa-coffee:before{content:\"\"}.fa-cutlery:before{content:\"\"}.fa-file-text-o:before{content:\"\"}.fa-building-o:before{content:\"\"}.fa-hospital-o:before{content:\"\"}.fa-ambulance:before{content:\"\"}.fa-medkit:before{content:\"\"}.fa-fighter-jet:before{content:\"\"}.fa-beer:before{content:\"\"}.fa-h-square:before{content:\"\"}.fa-plus-square:before{content:\"\"}.fa-angle-double-left:before{content:\"\"}.fa-angle-double-right:before{content:\"\"}.fa-angle-double-up:before{content:\"\"}.fa-angle-double-down:before{content:\"\"}.fa-angle-left:before{content:\"\"}.fa-angle-right:before{content:\"\"}.fa-angle-up:before{content:\"\"}.fa-angle-down:before{content:\"\"}.fa-desktop:before{content:\"\"}.fa-laptop:before{content:\"\"}.fa-tablet:before{content:\"\"}.fa-mobile-phone:before,.fa-mobile:before{content:\"\"}.fa-circle-o:before{content:\"\"}.fa-quote-left:before{content:\"\"}.fa-quote-right:before{content:\"\"}.fa-spinner:before{content:\"\"}.fa-circle:before{content:\"\"}.fa-mail-reply:before,.fa-reply:before{content:\"\"}.fa-github-alt:before{content:\"\"}.fa-folder-o:before{content:\"\"}.fa-folder-open-o:before{content:\"\"}.fa-smile-o:before{content:\"\"}.fa-frown-o:before{content:\"\"}.fa-meh-o:before{content:\"\"}.fa-gamepad:before{content:\"\"}.fa-keyboard-o:before{content:\"\"}.fa-flag-o:before{content:\"\"}.fa-flag-checkered:before{content:\"\"}.fa-terminal:before{content:\"\"}.fa-code:before{content:\"\"}.fa-mail-reply-all:before,.fa-reply-all:before{content:\"\"}.fa-star-half-empty:before,.fa-star-half-full:before,.fa-star-half-o:before{content:\"\"}.fa-location-arrow:before{content:\"\"}.fa-crop:before{content:\"\"}.fa-code-fork:before{content:\"\"}.fa-unlink:before,.fa-chain-broken:before{content:\"\"}.fa-question:before{content:\"\"}.fa-info:before{content:\"\"}.fa-exclamation:before{content:\"\"}.fa-superscript:before{content:\"\"}.fa-subscript:before{content:\"\"}.fa-eraser:before{content:\"\"}.fa-puzzle-piece:before{content:\"\"}.fa-microphone:before{content:\"\"}.fa-microphone-slash:before{content:\"\"}.fa-shield:before{content:\"\"}.fa-calendar-o:before{content:\"\"}.fa-fire-extinguisher:before{content:\"\"}.fa-rocket:before{content:\"\"}.fa-maxcdn:before{content:\"\"}.fa-chevron-circle-left:before{content:\"\"}.fa-chevron-circle-right:before{content:\"\"}.fa-chevron-circle-up:before{content:\"\"}.fa-chevron-circle-down:before{content:\"\"}.fa-html5:before{content:\"\"}.fa-css3:before{content:\"\"}.fa-anchor:before{content:\"\"}.fa-unlock-alt:before{content:\"\"}.fa-bullseye:before{content:\"\"}.fa-ellipsis-h:before{content:\"\"}.fa-ellipsis-v:before{content:\"\"}.fa-rss-square:before{content:\"\"}.fa-play-circle:before{content:\"\"}.fa-ticket:before{content:\"\"}.fa-minus-square:before{content:\"\"}.fa-minus-square-o:before{content:\"\"}.fa-level-up:before{content:\"\"}.fa-level-down:before{content:\"\"}.fa-check-square:before{content:\"\"}.fa-pencil-square:before{content:\"\"}.fa-external-link-square:before{content:\"\"}.fa-share-square:before{content:\"\"}.fa-compass:before{content:\"\"}.fa-toggle-down:before,.fa-caret-square-o-down:before{content:\"\"}.fa-toggle-up:before,.fa-caret-square-o-up:before{content:\"\"}.fa-toggle-right:before,.fa-caret-square-o-right:before{content:\"\"}.fa-euro:before,.fa-eur:before{content:\"\"}.fa-gbp:before{content:\"\"}.fa-dollar:before,.fa-usd:before{content:\"\"}.fa-rupee:before,.fa-inr:before{content:\"\"}.fa-cny:before,.fa-rmb:before,.fa-yen:before,.fa-jpy:before{content:\"\"}.fa-ruble:before,.fa-rouble:before,.fa-rub:before{content:\"\"}.fa-won:before,.fa-krw:before{content:\"\"}.fa-bitcoin:before,.fa-btc:before{content:\"\"}.fa-file:before{content:\"\"}.fa-file-text:before{content:\"\"}.fa-sort-alpha-asc:before{content:\"\"}.fa-sort-alpha-desc:before{content:\"\"}.fa-sort-amount-asc:before{content:\"\"}.fa-sort-amount-desc:before{content:\"\"}.fa-sort-numeric-asc:before{content:\"\"}.fa-sort-numeric-desc:before{content:\"\"}.fa-thumbs-up:before{content:\"\"}.fa-thumbs-down:before{content:\"\"}.fa-youtube-square:before{content:\"\"}.fa-youtube:before{content:\"\"}.fa-xing:before{content:\"\"}.fa-xing-square:before{content:\"\"}.fa-youtube-play:before{content:\"\"}.fa-dropbox:before{content:\"\"}.fa-stack-overflow:before{content:\"\"}.fa-instagram:before{content:\"\"}.fa-flickr:before{content:\"\"}.fa-adn:before{content:\"\"}.fa-bitbucket:before{content:\"\"}.fa-bitbucket-square:before{content:\"\"}.fa-tumblr:before{content:\"\"}.fa-tumblr-square:before{content:\"\"}.fa-long-arrow-down:before{content:\"\"}.fa-long-arrow-up:before{content:\"\"}.fa-long-arrow-left:before{content:\"\"}.fa-long-arrow-right:before{content:\"\"}.fa-apple:before{content:\"\"}.fa-windows:before{content:\"\"}.fa-android:before{content:\"\"}.fa-linux:before{content:\"\"}.fa-dribbble:before{content:\"\"}.fa-skype:before{content:\"\"}.fa-foursquare:before{content:\"\"}.fa-trello:before{content:\"\"}.fa-female:before{content:\"\"}.fa-male:before{content:\"\"}.fa-gittip:before,.fa-gratipay:before{content:\"\"}.fa-sun-o:before{content:\"\"}.fa-moon-o:before{content:\"\"}.fa-archive:before{content:\"\"}.fa-bug:before{content:\"\"}.fa-vk:before{content:\"\"}.fa-weibo:before{content:\"\"}.fa-renren:before{content:\"\"}.fa-pagelines:before{content:\"\"}.fa-stack-exchange:before{content:\"\"}.fa-arrow-circle-o-right:before{content:\"\"}.fa-arrow-circle-o-left:before{content:\"\"}.fa-toggle-left:before,.fa-caret-square-o-left:before{content:\"\"}.fa-dot-circle-o:before{content:\"\"}.fa-wheelchair:before{content:\"\"}.fa-vimeo-square:before{content:\"\"}.fa-turkish-lira:before,.fa-try:before{content:\"\"}.fa-plus-square-o:before{content:\"\"}.fa-space-shuttle:before{content:\"\"}.fa-slack:before{content:\"\"}.fa-envelope-square:before{content:\"\"}.fa-wordpress:before{content:\"\"}.fa-openid:before{content:\"\"}.fa-institution:before,.fa-bank:before,.fa-university:before{content:\"\"}.fa-mortar-board:before,.fa-graduation-cap:before{content:\"\"}.fa-yahoo:before{content:\"\"}.fa-google:before{content:\"\"}.fa-reddit:before{content:\"\"}.fa-reddit-square:before{content:\"\"}.fa-stumbleupon-circle:before{content:\"\"}.fa-stumbleupon:before{content:\"\"}.fa-delicious:before{content:\"\"}.fa-digg:before{content:\"\"}.fa-pied-piper-pp:before{content:\"\"}.fa-pied-piper-alt:before{content:\"\"}.fa-drupal:before{content:\"\"}.fa-joomla:before{content:\"\"}.fa-language:before{content:\"\"}.fa-fax:before{content:\"\"}.fa-building:before{content:\"\"}.fa-child:before{content:\"\"}.fa-paw:before{content:\"\"}.fa-spoon:before{content:\"\"}.fa-cube:before{content:\"\"}.fa-cubes:before{content:\"\"}.fa-behance:before{content:\"\"}.fa-behance-square:before{content:\"\"}.fa-steam:before{content:\"\"}.fa-steam-square:before{content:\"\"}.fa-recycle:before{content:\"\"}.fa-automobile:before,.fa-car:before{content:\"\"}.fa-cab:before,.fa-taxi:before{content:\"\"}.fa-tree:before{content:\"\"}.fa-spotify:before{content:\"\"}.fa-deviantart:before{content:\"\"}.fa-soundcloud:before{content:\"\"}.fa-database:before{content:\"\"}.fa-file-pdf-o:before{content:\"\"}.fa-file-word-o:before{content:\"\"}.fa-file-excel-o:before{content:\"\"}.fa-file-powerpoint-o:before{content:\"\"}.fa-file-photo-o:before,.fa-file-picture-o:before,.fa-file-image-o:before{content:\"\"}.fa-file-zip-o:before,.fa-file-archive-o:before{content:\"\"}.fa-file-sound-o:before,.fa-file-audio-o:before{content:\"\"}.fa-file-movie-o:before,.fa-file-video-o:before{content:\"\"}.fa-file-code-o:before{content:\"\"}.fa-vine:before{content:\"\"}.fa-codepen:before{content:\"\"}.fa-jsfiddle:before{content:\"\"}.fa-life-bouy:before,.fa-life-buoy:before,.fa-life-saver:before,.fa-support:before,.fa-life-ring:before{content:\"\"}.fa-circle-o-notch:before{content:\"\"}.fa-ra:before,.fa-resistance:before,.fa-rebel:before{content:\"\"}.fa-ge:before,.fa-empire:before{content:\"\"}.fa-git-square:before{content:\"\"}.fa-git:before{content:\"\"}.fa-y-combinator-square:before,.fa-yc-square:before,.fa-hacker-news:before{content:\"\"}.fa-tencent-weibo:before{content:\"\"}.fa-qq:before{content:\"\"}.fa-wechat:before,.fa-weixin:before{content:\"\"}.fa-send:before,.fa-paper-plane:before{content:\"\"}.fa-send-o:before,.fa-paper-plane-o:before{content:\"\"}.fa-history:before{content:\"\"}.fa-circle-thin:before{content:\"\"}.fa-header:before{content:\"\"}.fa-paragraph:before{content:\"\"}.fa-sliders:before{content:\"\"}.fa-share-alt:before{content:\"\"}.fa-share-alt-square:before{content:\"\"}.fa-bomb:before{content:\"\"}.fa-soccer-ball-o:before,.fa-futbol-o:before{content:\"\"}.fa-tty:before{content:\"\"}.fa-binoculars:before{content:\"\"}.fa-plug:before{content:\"\"}.fa-slideshare:before{content:\"\"}.fa-twitch:before{content:\"\"}.fa-yelp:before{content:\"\"}.fa-newspaper-o:before{content:\"\"}.fa-wifi:before{content:\"\"}.fa-calculator:before{content:\"\"}.fa-paypal:before{content:\"\"}.fa-google-wallet:before{content:\"\"}.fa-cc-visa:before{content:\"\"}.fa-cc-mastercard:before{content:\"\"}.fa-cc-discover:before{content:\"\"}.fa-cc-amex:before{content:\"\"}.fa-cc-paypal:before{content:\"\"}.fa-cc-stripe:before{content:\"\"}.fa-bell-slash:before{content:\"\"}.fa-bell-slash-o:before{content:\"\"}.fa-trash:before{content:\"\"}.fa-copyright:before{content:\"\"}.fa-at:before{content:\"\"}.fa-eyedropper:before{content:\"\"}.fa-paint-brush:before{content:\"\"}.fa-birthday-cake:before{content:\"\"}.fa-area-chart:before{content:\"\"}.fa-pie-chart:before{content:\"\"}.fa-line-chart:before{content:\"\"}.fa-lastfm:before{content:\"\"}.fa-lastfm-square:before{content:\"\"}.fa-toggle-off:before{content:\"\"}.fa-toggle-on:before{content:\"\"}.fa-bicycle:before{content:\"\"}.fa-bus:before{content:\"\"}.fa-ioxhost:before{content:\"\"}.fa-angellist:before{content:\"\"}.fa-cc:before{content:\"\"}.fa-shekel:before,.fa-sheqel:before,.fa-ils:before{content:\"\"}.fa-meanpath:before{content:\"\"}.fa-buysellads:before{content:\"\"}.fa-connectdevelop:before{content:\"\"}.fa-dashcube:before{content:\"\"}.fa-forumbee:before{content:\"\"}.fa-leanpub:before{content:\"\"}.fa-sellsy:before{content:\"\"}.fa-shirtsinbulk:before{content:\"\"}.fa-simplybuilt:before{content:\"\"}.fa-skyatlas:before{content:\"\"}.fa-cart-plus:before{content:\"\"}.fa-cart-arrow-down:before{content:\"\"}.fa-diamond:before{content:\"\"}.fa-ship:before{content:\"\"}.fa-user-secret:before{content:\"\"}.fa-motorcycle:before{content:\"\"}.fa-street-view:before{content:\"\"}.fa-heartbeat:before{content:\"\"}.fa-venus:before{content:\"\"}.fa-mars:before{content:\"\"}.fa-mercury:before{content:\"\"}.fa-intersex:before,.fa-transgender:before{content:\"\"}.fa-transgender-alt:before{content:\"\"}.fa-venus-double:before{content:\"\"}.fa-mars-double:before{content:\"\"}.fa-venus-mars:before{content:\"\"}.fa-mars-stroke:before{content:\"\"}.fa-mars-stroke-v:before{content:\"\"}.fa-mars-stroke-h:before{content:\"\"}.fa-neuter:before{content:\"\"}.fa-genderless:before{content:\"\"}.fa-facebook-official:before{content:\"\"}.fa-pinterest-p:before{content:\"\"}.fa-whatsapp:before{content:\"\"}.fa-server:before{content:\"\"}.fa-user-plus:before{content:\"\"}.fa-user-times:before{content:\"\"}.fa-hotel:before,.fa-bed:before{content:\"\"}.fa-viacoin:before{content:\"\"}.fa-train:before{content:\"\"}.fa-subway:before{content:\"\"}.fa-medium:before{content:\"\"}.fa-yc:before,.fa-y-combinator:before{content:\"\"}.fa-optin-monster:before{content:\"\"}.fa-opencart:before{content:\"\"}.fa-expeditedssl:before{content:\"\"}.fa-battery-4:before,.fa-battery:before,.fa-battery-full:before{content:\"\"}.fa-battery-3:before,.fa-battery-three-quarters:before{content:\"\"}.fa-battery-2:before,.fa-battery-half:before{content:\"\"}.fa-battery-1:before,.fa-battery-quarter:before{content:\"\"}.fa-battery-0:before,.fa-battery-empty:before{content:\"\"}.fa-mouse-pointer:before{content:\"\"}.fa-i-cursor:before{content:\"\"}.fa-object-group:before{content:\"\"}.fa-object-ungroup:before{content:\"\"}.fa-sticky-note:before{content:\"\"}.fa-sticky-note-o:before{content:\"\"}.fa-cc-jcb:before{content:\"\"}.fa-cc-diners-club:before{content:\"\"}.fa-clone:before{content:\"\"}.fa-balance-scale:before{content:\"\"}.fa-hourglass-o:before{content:\"\"}.fa-hourglass-1:before,.fa-hourglass-start:before{content:\"\"}.fa-hourglass-2:before,.fa-hourglass-half:before{content:\"\"}.fa-hourglass-3:before,.fa-hourglass-end:before{content:\"\"}.fa-hourglass:before{content:\"\"}.fa-hand-grab-o:before,.fa-hand-rock-o:before{content:\"\"}.fa-hand-stop-o:before,.fa-hand-paper-o:before{content:\"\"}.fa-hand-scissors-o:before{content:\"\"}.fa-hand-lizard-o:before{content:\"\"}.fa-hand-spock-o:before{content:\"\"}.fa-hand-pointer-o:before{content:\"\"}.fa-hand-peace-o:before{content:\"\"}.fa-trademark:before{content:\"\"}.fa-registered:before{content:\"\"}.fa-creative-commons:before{content:\"\"}.fa-gg:before{content:\"\"}.fa-gg-circle:before{content:\"\"}.fa-tripadvisor:before{content:\"\"}.fa-odnoklassniki:before{content:\"\"}.fa-odnoklassniki-square:before{content:\"\"}.fa-get-pocket:before{content:\"\"}.fa-wikipedia-w:before{content:\"\"}.fa-safari:before{content:\"\"}.fa-chrome:before{content:\"\"}.fa-firefox:before{content:\"\"}.fa-opera:before{content:\"\"}.fa-internet-explorer:before{content:\"\"}.fa-tv:before,.fa-television:before{content:\"\"}.fa-contao:before{content:\"\"}.fa-500px:before{content:\"\"}.fa-amazon:before{content:\"\"}.fa-calendar-plus-o:before{content:\"\"}.fa-calendar-minus-o:before{content:\"\"}.fa-calendar-times-o:before{content:\"\"}.fa-calendar-check-o:before{content:\"\"}.fa-industry:before{content:\"\"}.fa-map-pin:before{content:\"\"}.fa-map-signs:before{content:\"\"}.fa-map-o:before{content:\"\"}.fa-map:before{content:\"\"}.fa-commenting:before{content:\"\"}.fa-commenting-o:before{content:\"\"}.fa-houzz:before{content:\"\"}.fa-vimeo:before{content:\"\"}.fa-black-tie:before{content:\"\"}.fa-fonticons:before{content:\"\"}.fa-reddit-alien:before{content:\"\"}.fa-edge:before{content:\"\"}.fa-credit-card-alt:before{content:\"\"}.fa-codiepie:before{content:\"\"}.fa-modx:before{content:\"\"}.fa-fort-awesome:before{content:\"\"}.fa-usb:before{content:\"\"}.fa-product-hunt:before{content:\"\"}.fa-mixcloud:before{content:\"\"}.fa-scribd:before{content:\"\"}.fa-pause-circle:before{content:\"\"}.fa-pause-circle-o:before{content:\"\"}.fa-stop-circle:before{content:\"\"}.fa-stop-circle-o:before{content:\"\"}.fa-shopping-bag:before{content:\"\"}.fa-shopping-basket:before{content:\"\"}.fa-hashtag:before{content:\"\"}.fa-bluetooth:before{content:\"\"}.fa-bluetooth-b:before{content:\"\"}.fa-percent:before{content:\"\"}.fa-gitlab:before{content:\"\"}.fa-wpbeginner:before{content:\"\"}.fa-wpforms:before{content:\"\"}.fa-envira:before{content:\"\"}.fa-universal-access:before{content:\"\"}.fa-wheelchair-alt:before{content:\"\"}.fa-question-circle-o:before{content:\"\"}.fa-blind:before{content:\"\"}.fa-audio-description:before{content:\"\"}.fa-volume-control-phone:before{content:\"\"}.fa-braille:before{content:\"\"}.fa-assistive-listening-systems:before{content:\"\"}.fa-asl-interpreting:before,.fa-american-sign-language-interpreting:before{content:\"\"}.fa-deafness:before,.fa-hard-of-hearing:before,.fa-deaf:before{content:\"\"}.fa-glide:before{content:\"\"}.fa-glide-g:before{content:\"\"}.fa-signing:before,.fa-sign-language:before{content:\"\"}.fa-low-vision:before{content:\"\"}.fa-viadeo:before{content:\"\"}.fa-viadeo-square:before{content:\"\"}.fa-snapchat:before{content:\"\"}.fa-snapchat-ghost:before{content:\"\"}.fa-snapchat-square:before{content:\"\"}.fa-pied-piper:before{content:\"\"}.fa-first-order:before{content:\"\"}.fa-yoast:before{content:\"\"}.fa-themeisle:before{content:\"\"}.fa-google-plus-circle:before,.fa-google-plus-official:before{content:\"\"}.fa-fa:before,.fa-font-awesome:before{content:\"\"}.fa-handshake-o:before{content:\"\"}.fa-envelope-open:before{content:\"\"}.fa-envelope-open-o:before{content:\"\"}.fa-linode:before{content:\"\"}.fa-address-book:before{content:\"\"}.fa-address-book-o:before{content:\"\"}.fa-vcard:before,.fa-address-card:before{content:\"\"}.fa-vcard-o:before,.fa-address-card-o:before{content:\"\"}.fa-user-circle:before{content:\"\"}.fa-user-circle-o:before{content:\"\"}.fa-user-o:before{content:\"\"}.fa-id-badge:before{content:\"\"}.fa-drivers-license:before,.fa-id-card:before{content:\"\"}.fa-drivers-license-o:before,.fa-id-card-o:before{content:\"\"}.fa-quora:before{content:\"\"}.fa-free-code-camp:before{content:\"\"}.fa-telegram:before{content:\"\"}.fa-thermometer-4:before,.fa-thermometer:before,.fa-thermometer-full:before{content:\"\"}.fa-thermometer-3:before,.fa-thermometer-three-quarters:before{content:\"\"}.fa-thermometer-2:before,.fa-thermometer-half:before{content:\"\"}.fa-thermometer-1:before,.fa-thermometer-quarter:before{content:\"\"}.fa-thermometer-0:before,.fa-thermometer-empty:before{content:\"\"}.fa-shower:before{content:\"\"}.fa-bathtub:before,.fa-s15:before,.fa-bath:before{content:\"\"}.fa-podcast:before{content:\"\"}.fa-window-maximize:before{content:\"\"}.fa-window-minimize:before{content:\"\"}.fa-window-restore:before{content:\"\"}.fa-times-rectangle:before,.fa-window-close:before{content:\"\"}.fa-times-rectangle-o:before,.fa-window-close-o:before{content:\"\"}.fa-bandcamp:before{content:\"\"}.fa-grav:before{content:\"\"}.fa-etsy:before{content:\"\"}.fa-imdb:before{content:\"\"}.fa-ravelry:before{content:\"\"}.fa-eercast:before{content:\"\"}.fa-microchip:before{content:\"\"}.fa-snowflake-o:before{content:\"\"}.fa-superpowers:before{content:\"\"}.fa-wpexplorer:before{content:\"\"}.fa-meetup:before{content:\"\"}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto}","/*!\n * Font Awesome 4.7.0 by @davegandy - http://fontawesome.io - @fontawesome\n * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License)\n */\n/* FONT PATH\n * -------------------------- */\n@font-face {\n font-family: 'FontAwesome';\n src: url('../fonts/fontawesome-webfont.eot?v=4.7.0');\n src: url('../fonts/fontawesome-webfont.eot?#iefix&v=4.7.0') format('embedded-opentype'), url('../fonts/fontawesome-webfont.woff2?v=4.7.0') format('woff2'), url('../fonts/fontawesome-webfont.woff?v=4.7.0') format('woff'), url('../fonts/fontawesome-webfont.ttf?v=4.7.0') format('truetype'), url('../fonts/fontawesome-webfont.svg?v=4.7.0#fontawesomeregular') format('svg');\n font-weight: normal;\n font-style: normal;\n}\n.fa {\n display: inline-block;\n font: normal normal normal 14px/1 FontAwesome;\n font-size: inherit;\n text-rendering: auto;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n}\n/* makes the font 33% larger relative to the icon container */\n.fa-lg {\n font-size: 1.33333333em;\n line-height: 0.75em;\n vertical-align: -15%;\n}\n.fa-2x {\n font-size: 2em;\n}\n.fa-3x {\n font-size: 3em;\n}\n.fa-4x {\n font-size: 4em;\n}\n.fa-5x {\n font-size: 5em;\n}\n.fa-fw {\n width: 1.28571429em;\n text-align: center;\n}\n.fa-ul {\n padding-left: 0;\n margin-left: 2.14285714em;\n list-style-type: none;\n}\n.fa-ul > li {\n position: relative;\n}\n.fa-li {\n position: absolute;\n left: -2.14285714em;\n width: 2.14285714em;\n top: 0.14285714em;\n text-align: center;\n}\n.fa-li.fa-lg {\n left: -1.85714286em;\n}\n.fa-border {\n padding: .2em .25em .15em;\n border: solid 0.08em #eeeeee;\n border-radius: .1em;\n}\n.fa-pull-left {\n float: left;\n}\n.fa-pull-right {\n float: right;\n}\n.fa.fa-pull-left {\n margin-right: .3em;\n}\n.fa.fa-pull-right {\n margin-left: .3em;\n}\n/* Deprecated as of 4.4.0 */\n.pull-right {\n float: right;\n}\n.pull-left {\n float: left;\n}\n.fa.pull-left {\n margin-right: .3em;\n}\n.fa.pull-right {\n margin-left: .3em;\n}\n.fa-spin {\n -webkit-animation: fa-spin 2s infinite linear;\n animation: fa-spin 2s infinite linear;\n}\n.fa-pulse {\n -webkit-animation: fa-spin 1s infinite steps(8);\n animation: fa-spin 1s infinite steps(8);\n}\n@-webkit-keyframes fa-spin {\n 0% {\n -webkit-transform: rotate(0deg);\n transform: rotate(0deg);\n }\n 100% {\n -webkit-transform: rotate(359deg);\n transform: rotate(359deg);\n }\n}\n@keyframes fa-spin {\n 0% {\n -webkit-transform: rotate(0deg);\n transform: rotate(0deg);\n }\n 100% {\n -webkit-transform: rotate(359deg);\n transform: rotate(359deg);\n }\n}\n.fa-rotate-90 {\n -ms-filter: \"progid:DXImageTransform.Microsoft.BasicImage(rotation=1)\";\n -webkit-transform: rotate(90deg);\n -ms-transform: rotate(90deg);\n transform: rotate(90deg);\n}\n.fa-rotate-180 {\n -ms-filter: \"progid:DXImageTransform.Microsoft.BasicImage(rotation=2)\";\n -webkit-transform: rotate(180deg);\n -ms-transform: rotate(180deg);\n transform: rotate(180deg);\n}\n.fa-rotate-270 {\n -ms-filter: \"progid:DXImageTransform.Microsoft.BasicImage(rotation=3)\";\n -webkit-transform: rotate(270deg);\n -ms-transform: rotate(270deg);\n transform: rotate(270deg);\n}\n.fa-flip-horizontal {\n -ms-filter: \"progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)\";\n -webkit-transform: scale(-1, 1);\n -ms-transform: scale(-1, 1);\n transform: scale(-1, 1);\n}\n.fa-flip-vertical {\n -ms-filter: \"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)\";\n -webkit-transform: scale(1, -1);\n -ms-transform: scale(1, -1);\n transform: scale(1, -1);\n}\n:root .fa-rotate-90,\n:root .fa-rotate-180,\n:root .fa-rotate-270,\n:root .fa-flip-horizontal,\n:root .fa-flip-vertical {\n filter: none;\n}\n.fa-stack {\n position: relative;\n display: inline-block;\n width: 2em;\n height: 2em;\n line-height: 2em;\n vertical-align: middle;\n}\n.fa-stack-1x,\n.fa-stack-2x {\n position: absolute;\n left: 0;\n width: 100%;\n text-align: center;\n}\n.fa-stack-1x {\n line-height: inherit;\n}\n.fa-stack-2x {\n font-size: 2em;\n}\n.fa-inverse {\n color: #ffffff;\n}\n/* Font Awesome uses the Unicode Private Use Area (PUA) to ensure screen\n readers do not read off random characters that represent icons */\n.fa-glass:before {\n content: \"\\f000\";\n}\n.fa-music:before {\n content: \"\\f001\";\n}\n.fa-search:before {\n content: \"\\f002\";\n}\n.fa-envelope-o:before {\n content: \"\\f003\";\n}\n.fa-heart:before {\n content: \"\\f004\";\n}\n.fa-star:before {\n content: \"\\f005\";\n}\n.fa-star-o:before {\n content: \"\\f006\";\n}\n.fa-user:before {\n content: \"\\f007\";\n}\n.fa-film:before {\n content: \"\\f008\";\n}\n.fa-th-large:before {\n content: \"\\f009\";\n}\n.fa-th:before {\n content: \"\\f00a\";\n}\n.fa-th-list:before {\n content: \"\\f00b\";\n}\n.fa-check:before {\n content: \"\\f00c\";\n}\n.fa-remove:before,\n.fa-close:before,\n.fa-times:before {\n content: \"\\f00d\";\n}\n.fa-search-plus:before {\n content: \"\\f00e\";\n}\n.fa-search-minus:before {\n content: \"\\f010\";\n}\n.fa-power-off:before {\n content: \"\\f011\";\n}\n.fa-signal:before {\n content: \"\\f012\";\n}\n.fa-gear:before,\n.fa-cog:before {\n content: \"\\f013\";\n}\n.fa-trash-o:before {\n content: \"\\f014\";\n}\n.fa-home:before {\n content: \"\\f015\";\n}\n.fa-file-o:before {\n content: \"\\f016\";\n}\n.fa-clock-o:before {\n content: \"\\f017\";\n}\n.fa-road:before {\n content: \"\\f018\";\n}\n.fa-download:before {\n content: \"\\f019\";\n}\n.fa-arrow-circle-o-down:before {\n content: \"\\f01a\";\n}\n.fa-arrow-circle-o-up:before {\n content: \"\\f01b\";\n}\n.fa-inbox:before {\n content: \"\\f01c\";\n}\n.fa-play-circle-o:before {\n content: \"\\f01d\";\n}\n.fa-rotate-right:before,\n.fa-repeat:before {\n content: \"\\f01e\";\n}\n.fa-refresh:before {\n content: \"\\f021\";\n}\n.fa-list-alt:before {\n content: \"\\f022\";\n}\n.fa-lock:before {\n content: \"\\f023\";\n}\n.fa-flag:before {\n content: \"\\f024\";\n}\n.fa-headphones:before {\n content: \"\\f025\";\n}\n.fa-volume-off:before {\n content: \"\\f026\";\n}\n.fa-volume-down:before {\n content: \"\\f027\";\n}\n.fa-volume-up:before {\n content: \"\\f028\";\n}\n.fa-qrcode:before {\n content: \"\\f029\";\n}\n.fa-barcode:before {\n content: \"\\f02a\";\n}\n.fa-tag:before {\n content: \"\\f02b\";\n}\n.fa-tags:before {\n content: \"\\f02c\";\n}\n.fa-book:before {\n content: \"\\f02d\";\n}\n.fa-bookmark:before {\n content: \"\\f02e\";\n}\n.fa-print:before {\n content: \"\\f02f\";\n}\n.fa-camera:before {\n content: \"\\f030\";\n}\n.fa-font:before {\n content: \"\\f031\";\n}\n.fa-bold:before {\n content: \"\\f032\";\n}\n.fa-italic:before {\n content: \"\\f033\";\n}\n.fa-text-height:before {\n content: \"\\f034\";\n}\n.fa-text-width:before {\n content: \"\\f035\";\n}\n.fa-align-left:before {\n content: \"\\f036\";\n}\n.fa-align-center:before {\n content: \"\\f037\";\n}\n.fa-align-right:before {\n content: \"\\f038\";\n}\n.fa-align-justify:before {\n content: \"\\f039\";\n}\n.fa-list:before {\n content: \"\\f03a\";\n}\n.fa-dedent:before,\n.fa-outdent:before {\n content: \"\\f03b\";\n}\n.fa-indent:before {\n content: \"\\f03c\";\n}\n.fa-video-camera:before {\n content: \"\\f03d\";\n}\n.fa-photo:before,\n.fa-image:before,\n.fa-picture-o:before {\n content: \"\\f03e\";\n}\n.fa-pencil:before {\n content: \"\\f040\";\n}\n.fa-map-marker:before {\n content: \"\\f041\";\n}\n.fa-adjust:before {\n content: \"\\f042\";\n}\n.fa-tint:before {\n content: \"\\f043\";\n}\n.fa-edit:before,\n.fa-pencil-square-o:before {\n content: \"\\f044\";\n}\n.fa-share-square-o:before {\n content: \"\\f045\";\n}\n.fa-check-square-o:before {\n content: \"\\f046\";\n}\n.fa-arrows:before {\n content: \"\\f047\";\n}\n.fa-step-backward:before {\n content: \"\\f048\";\n}\n.fa-fast-backward:before {\n content: \"\\f049\";\n}\n.fa-backward:before {\n content: \"\\f04a\";\n}\n.fa-play:before {\n content: \"\\f04b\";\n}\n.fa-pause:before {\n content: \"\\f04c\";\n}\n.fa-stop:before {\n content: \"\\f04d\";\n}\n.fa-forward:before {\n content: \"\\f04e\";\n}\n.fa-fast-forward:before {\n content: \"\\f050\";\n}\n.fa-step-forward:before {\n content: \"\\f051\";\n}\n.fa-eject:before {\n content: \"\\f052\";\n}\n.fa-chevron-left:before {\n content: \"\\f053\";\n}\n.fa-chevron-right:before {\n content: \"\\f054\";\n}\n.fa-plus-circle:before {\n content: \"\\f055\";\n}\n.fa-minus-circle:before {\n content: \"\\f056\";\n}\n.fa-times-circle:before {\n content: \"\\f057\";\n}\n.fa-check-circle:before {\n content: \"\\f058\";\n}\n.fa-question-circle:before {\n content: \"\\f059\";\n}\n.fa-info-circle:before {\n content: \"\\f05a\";\n}\n.fa-crosshairs:before {\n content: \"\\f05b\";\n}\n.fa-times-circle-o:before {\n content: \"\\f05c\";\n}\n.fa-check-circle-o:before {\n content: \"\\f05d\";\n}\n.fa-ban:before {\n content: \"\\f05e\";\n}\n.fa-arrow-left:before {\n content: \"\\f060\";\n}\n.fa-arrow-right:before {\n content: \"\\f061\";\n}\n.fa-arrow-up:before {\n content: \"\\f062\";\n}\n.fa-arrow-down:before {\n content: \"\\f063\";\n}\n.fa-mail-forward:before,\n.fa-share:before {\n content: \"\\f064\";\n}\n.fa-expand:before {\n content: \"\\f065\";\n}\n.fa-compress:before {\n content: \"\\f066\";\n}\n.fa-plus:before {\n content: \"\\f067\";\n}\n.fa-minus:before {\n content: \"\\f068\";\n}\n.fa-asterisk:before {\n content: \"\\f069\";\n}\n.fa-exclamation-circle:before {\n content: \"\\f06a\";\n}\n.fa-gift:before {\n content: \"\\f06b\";\n}\n.fa-leaf:before {\n content: \"\\f06c\";\n}\n.fa-fire:before {\n content: \"\\f06d\";\n}\n.fa-eye:before {\n content: \"\\f06e\";\n}\n.fa-eye-slash:before {\n content: \"\\f070\";\n}\n.fa-warning:before,\n.fa-exclamation-triangle:before {\n content: \"\\f071\";\n}\n.fa-plane:before {\n content: \"\\f072\";\n}\n.fa-calendar:before {\n content: \"\\f073\";\n}\n.fa-random:before {\n content: \"\\f074\";\n}\n.fa-comment:before {\n content: \"\\f075\";\n}\n.fa-magnet:before {\n content: \"\\f076\";\n}\n.fa-chevron-up:before {\n content: \"\\f077\";\n}\n.fa-chevron-down:before {\n content: \"\\f078\";\n}\n.fa-retweet:before {\n content: \"\\f079\";\n}\n.fa-shopping-cart:before {\n content: \"\\f07a\";\n}\n.fa-folder:before {\n content: \"\\f07b\";\n}\n.fa-folder-open:before {\n content: \"\\f07c\";\n}\n.fa-arrows-v:before {\n content: \"\\f07d\";\n}\n.fa-arrows-h:before {\n content: \"\\f07e\";\n}\n.fa-bar-chart-o:before,\n.fa-bar-chart:before {\n content: \"\\f080\";\n}\n.fa-twitter-square:before {\n content: \"\\f081\";\n}\n.fa-facebook-square:before {\n content: \"\\f082\";\n}\n.fa-camera-retro:before {\n content: \"\\f083\";\n}\n.fa-key:before {\n content: \"\\f084\";\n}\n.fa-gears:before,\n.fa-cogs:before {\n content: \"\\f085\";\n}\n.fa-comments:before {\n content: \"\\f086\";\n}\n.fa-thumbs-o-up:before {\n content: \"\\f087\";\n}\n.fa-thumbs-o-down:before {\n content: \"\\f088\";\n}\n.fa-star-half:before {\n content: \"\\f089\";\n}\n.fa-heart-o:before {\n content: \"\\f08a\";\n}\n.fa-sign-out:before {\n content: \"\\f08b\";\n}\n.fa-linkedin-square:before {\n content: \"\\f08c\";\n}\n.fa-thumb-tack:before {\n content: \"\\f08d\";\n}\n.fa-external-link:before {\n content: \"\\f08e\";\n}\n.fa-sign-in:before {\n content: \"\\f090\";\n}\n.fa-trophy:before {\n content: \"\\f091\";\n}\n.fa-github-square:before {\n content: \"\\f092\";\n}\n.fa-upload:before {\n content: \"\\f093\";\n}\n.fa-lemon-o:before {\n content: \"\\f094\";\n}\n.fa-phone:before {\n content: \"\\f095\";\n}\n.fa-square-o:before {\n content: \"\\f096\";\n}\n.fa-bookmark-o:before {\n content: \"\\f097\";\n}\n.fa-phone-square:before {\n content: \"\\f098\";\n}\n.fa-twitter:before {\n content: \"\\f099\";\n}\n.fa-facebook-f:before,\n.fa-facebook:before {\n content: \"\\f09a\";\n}\n.fa-github:before {\n content: \"\\f09b\";\n}\n.fa-unlock:before {\n content: \"\\f09c\";\n}\n.fa-credit-card:before {\n content: \"\\f09d\";\n}\n.fa-feed:before,\n.fa-rss:before {\n content: \"\\f09e\";\n}\n.fa-hdd-o:before {\n content: \"\\f0a0\";\n}\n.fa-bullhorn:before {\n content: \"\\f0a1\";\n}\n.fa-bell:before {\n content: \"\\f0f3\";\n}\n.fa-certificate:before {\n content: \"\\f0a3\";\n}\n.fa-hand-o-right:before {\n content: \"\\f0a4\";\n}\n.fa-hand-o-left:before {\n content: \"\\f0a5\";\n}\n.fa-hand-o-up:before {\n content: \"\\f0a6\";\n}\n.fa-hand-o-down:before {\n content: \"\\f0a7\";\n}\n.fa-arrow-circle-left:before {\n content: \"\\f0a8\";\n}\n.fa-arrow-circle-right:before {\n content: \"\\f0a9\";\n}\n.fa-arrow-circle-up:before {\n content: \"\\f0aa\";\n}\n.fa-arrow-circle-down:before {\n content: \"\\f0ab\";\n}\n.fa-globe:before {\n content: \"\\f0ac\";\n}\n.fa-wrench:before {\n content: \"\\f0ad\";\n}\n.fa-tasks:before {\n content: \"\\f0ae\";\n}\n.fa-filter:before {\n content: \"\\f0b0\";\n}\n.fa-briefcase:before {\n content: \"\\f0b1\";\n}\n.fa-arrows-alt:before {\n content: \"\\f0b2\";\n}\n.fa-group:before,\n.fa-users:before {\n content: \"\\f0c0\";\n}\n.fa-chain:before,\n.fa-link:before {\n content: \"\\f0c1\";\n}\n.fa-cloud:before {\n content: \"\\f0c2\";\n}\n.fa-flask:before {\n content: \"\\f0c3\";\n}\n.fa-cut:before,\n.fa-scissors:before {\n content: \"\\f0c4\";\n}\n.fa-copy:before,\n.fa-files-o:before {\n content: \"\\f0c5\";\n}\n.fa-paperclip:before {\n content: \"\\f0c6\";\n}\n.fa-save:before,\n.fa-floppy-o:before {\n content: \"\\f0c7\";\n}\n.fa-square:before {\n content: \"\\f0c8\";\n}\n.fa-navicon:before,\n.fa-reorder:before,\n.fa-bars:before {\n content: \"\\f0c9\";\n}\n.fa-list-ul:before {\n content: \"\\f0ca\";\n}\n.fa-list-ol:before {\n content: \"\\f0cb\";\n}\n.fa-strikethrough:before {\n content: \"\\f0cc\";\n}\n.fa-underline:before {\n content: \"\\f0cd\";\n}\n.fa-table:before {\n content: \"\\f0ce\";\n}\n.fa-magic:before {\n content: \"\\f0d0\";\n}\n.fa-truck:before {\n content: \"\\f0d1\";\n}\n.fa-pinterest:before {\n content: \"\\f0d2\";\n}\n.fa-pinterest-square:before {\n content: \"\\f0d3\";\n}\n.fa-google-plus-square:before {\n content: \"\\f0d4\";\n}\n.fa-google-plus:before {\n content: \"\\f0d5\";\n}\n.fa-money:before {\n content: \"\\f0d6\";\n}\n.fa-caret-down:before {\n content: \"\\f0d7\";\n}\n.fa-caret-up:before {\n content: \"\\f0d8\";\n}\n.fa-caret-left:before {\n content: \"\\f0d9\";\n}\n.fa-caret-right:before {\n content: \"\\f0da\";\n}\n.fa-columns:before {\n content: \"\\f0db\";\n}\n.fa-unsorted:before,\n.fa-sort:before {\n content: \"\\f0dc\";\n}\n.fa-sort-down:before,\n.fa-sort-desc:before {\n content: \"\\f0dd\";\n}\n.fa-sort-up:before,\n.fa-sort-asc:before {\n content: \"\\f0de\";\n}\n.fa-envelope:before {\n content: \"\\f0e0\";\n}\n.fa-linkedin:before {\n content: \"\\f0e1\";\n}\n.fa-rotate-left:before,\n.fa-undo:before {\n content: \"\\f0e2\";\n}\n.fa-legal:before,\n.fa-gavel:before {\n content: \"\\f0e3\";\n}\n.fa-dashboard:before,\n.fa-tachometer:before {\n content: \"\\f0e4\";\n}\n.fa-comment-o:before {\n content: \"\\f0e5\";\n}\n.fa-comments-o:before {\n content: \"\\f0e6\";\n}\n.fa-flash:before,\n.fa-bolt:before {\n content: \"\\f0e7\";\n}\n.fa-sitemap:before {\n content: \"\\f0e8\";\n}\n.fa-umbrella:before {\n content: \"\\f0e9\";\n}\n.fa-paste:before,\n.fa-clipboard:before {\n content: \"\\f0ea\";\n}\n.fa-lightbulb-o:before {\n content: \"\\f0eb\";\n}\n.fa-exchange:before {\n content: \"\\f0ec\";\n}\n.fa-cloud-download:before {\n content: \"\\f0ed\";\n}\n.fa-cloud-upload:before {\n content: \"\\f0ee\";\n}\n.fa-user-md:before {\n content: \"\\f0f0\";\n}\n.fa-stethoscope:before {\n content: \"\\f0f1\";\n}\n.fa-suitcase:before {\n content: \"\\f0f2\";\n}\n.fa-bell-o:before {\n content: \"\\f0a2\";\n}\n.fa-coffee:before {\n content: \"\\f0f4\";\n}\n.fa-cutlery:before {\n content: \"\\f0f5\";\n}\n.fa-file-text-o:before {\n content: \"\\f0f6\";\n}\n.fa-building-o:before {\n content: \"\\f0f7\";\n}\n.fa-hospital-o:before {\n content: \"\\f0f8\";\n}\n.fa-ambulance:before {\n content: \"\\f0f9\";\n}\n.fa-medkit:before {\n content: \"\\f0fa\";\n}\n.fa-fighter-jet:before {\n content: \"\\f0fb\";\n}\n.fa-beer:before {\n content: \"\\f0fc\";\n}\n.fa-h-square:before {\n content: \"\\f0fd\";\n}\n.fa-plus-square:before {\n content: \"\\f0fe\";\n}\n.fa-angle-double-left:before {\n content: \"\\f100\";\n}\n.fa-angle-double-right:before {\n content: \"\\f101\";\n}\n.fa-angle-double-up:before {\n content: \"\\f102\";\n}\n.fa-angle-double-down:before {\n content: \"\\f103\";\n}\n.fa-angle-left:before {\n content: \"\\f104\";\n}\n.fa-angle-right:before {\n content: \"\\f105\";\n}\n.fa-angle-up:before {\n content: \"\\f106\";\n}\n.fa-angle-down:before {\n content: \"\\f107\";\n}\n.fa-desktop:before {\n content: \"\\f108\";\n}\n.fa-laptop:before {\n content: \"\\f109\";\n}\n.fa-tablet:before {\n content: \"\\f10a\";\n}\n.fa-mobile-phone:before,\n.fa-mobile:before {\n content: \"\\f10b\";\n}\n.fa-circle-o:before {\n content: \"\\f10c\";\n}\n.fa-quote-left:before {\n content: \"\\f10d\";\n}\n.fa-quote-right:before {\n content: \"\\f10e\";\n}\n.fa-spinner:before {\n content: \"\\f110\";\n}\n.fa-circle:before {\n content: \"\\f111\";\n}\n.fa-mail-reply:before,\n.fa-reply:before {\n content: \"\\f112\";\n}\n.fa-github-alt:before {\n content: \"\\f113\";\n}\n.fa-folder-o:before {\n content: \"\\f114\";\n}\n.fa-folder-open-o:before {\n content: \"\\f115\";\n}\n.fa-smile-o:before {\n content: \"\\f118\";\n}\n.fa-frown-o:before {\n content: \"\\f119\";\n}\n.fa-meh-o:before {\n content: \"\\f11a\";\n}\n.fa-gamepad:before {\n content: \"\\f11b\";\n}\n.fa-keyboard-o:before {\n content: \"\\f11c\";\n}\n.fa-flag-o:before {\n content: \"\\f11d\";\n}\n.fa-flag-checkered:before {\n content: \"\\f11e\";\n}\n.fa-terminal:before {\n content: \"\\f120\";\n}\n.fa-code:before {\n content: \"\\f121\";\n}\n.fa-mail-reply-all:before,\n.fa-reply-all:before {\n content: \"\\f122\";\n}\n.fa-star-half-empty:before,\n.fa-star-half-full:before,\n.fa-star-half-o:before {\n content: \"\\f123\";\n}\n.fa-location-arrow:before {\n content: \"\\f124\";\n}\n.fa-crop:before {\n content: \"\\f125\";\n}\n.fa-code-fork:before {\n content: \"\\f126\";\n}\n.fa-unlink:before,\n.fa-chain-broken:before {\n content: \"\\f127\";\n}\n.fa-question:before {\n content: \"\\f128\";\n}\n.fa-info:before {\n content: \"\\f129\";\n}\n.fa-exclamation:before {\n content: \"\\f12a\";\n}\n.fa-superscript:before {\n content: \"\\f12b\";\n}\n.fa-subscript:before {\n content: \"\\f12c\";\n}\n.fa-eraser:before {\n content: \"\\f12d\";\n}\n.fa-puzzle-piece:before {\n content: \"\\f12e\";\n}\n.fa-microphone:before {\n content: \"\\f130\";\n}\n.fa-microphone-slash:before {\n content: \"\\f131\";\n}\n.fa-shield:before {\n content: \"\\f132\";\n}\n.fa-calendar-o:before {\n content: \"\\f133\";\n}\n.fa-fire-extinguisher:before {\n content: \"\\f134\";\n}\n.fa-rocket:before {\n content: \"\\f135\";\n}\n.fa-maxcdn:before {\n content: \"\\f136\";\n}\n.fa-chevron-circle-left:before {\n content: \"\\f137\";\n}\n.fa-chevron-circle-right:before {\n content: \"\\f138\";\n}\n.fa-chevron-circle-up:before {\n content: \"\\f139\";\n}\n.fa-chevron-circle-down:before {\n content: \"\\f13a\";\n}\n.fa-html5:before {\n content: \"\\f13b\";\n}\n.fa-css3:before {\n content: \"\\f13c\";\n}\n.fa-anchor:before {\n content: \"\\f13d\";\n}\n.fa-unlock-alt:before {\n content: \"\\f13e\";\n}\n.fa-bullseye:before {\n content: \"\\f140\";\n}\n.fa-ellipsis-h:before {\n content: \"\\f141\";\n}\n.fa-ellipsis-v:before {\n content: \"\\f142\";\n}\n.fa-rss-square:before {\n content: \"\\f143\";\n}\n.fa-play-circle:before {\n content: \"\\f144\";\n}\n.fa-ticket:before {\n content: \"\\f145\";\n}\n.fa-minus-square:before {\n content: \"\\f146\";\n}\n.fa-minus-square-o:before {\n content: \"\\f147\";\n}\n.fa-level-up:before {\n content: \"\\f148\";\n}\n.fa-level-down:before {\n content: \"\\f149\";\n}\n.fa-check-square:before {\n content: \"\\f14a\";\n}\n.fa-pencil-square:before {\n content: \"\\f14b\";\n}\n.fa-external-link-square:before {\n content: \"\\f14c\";\n}\n.fa-share-square:before {\n content: \"\\f14d\";\n}\n.fa-compass:before {\n content: \"\\f14e\";\n}\n.fa-toggle-down:before,\n.fa-caret-square-o-down:before {\n content: \"\\f150\";\n}\n.fa-toggle-up:before,\n.fa-caret-square-o-up:before {\n content: \"\\f151\";\n}\n.fa-toggle-right:before,\n.fa-caret-square-o-right:before {\n content: \"\\f152\";\n}\n.fa-euro:before,\n.fa-eur:before {\n content: \"\\f153\";\n}\n.fa-gbp:before {\n content: \"\\f154\";\n}\n.fa-dollar:before,\n.fa-usd:before {\n content: \"\\f155\";\n}\n.fa-rupee:before,\n.fa-inr:before {\n content: \"\\f156\";\n}\n.fa-cny:before,\n.fa-rmb:before,\n.fa-yen:before,\n.fa-jpy:before {\n content: \"\\f157\";\n}\n.fa-ruble:before,\n.fa-rouble:before,\n.fa-rub:before {\n content: \"\\f158\";\n}\n.fa-won:before,\n.fa-krw:before {\n content: \"\\f159\";\n}\n.fa-bitcoin:before,\n.fa-btc:before {\n content: \"\\f15a\";\n}\n.fa-file:before {\n content: \"\\f15b\";\n}\n.fa-file-text:before {\n content: \"\\f15c\";\n}\n.fa-sort-alpha-asc:before {\n content: \"\\f15d\";\n}\n.fa-sort-alpha-desc:before {\n content: \"\\f15e\";\n}\n.fa-sort-amount-asc:before {\n content: \"\\f160\";\n}\n.fa-sort-amount-desc:before {\n content: \"\\f161\";\n}\n.fa-sort-numeric-asc:before {\n content: \"\\f162\";\n}\n.fa-sort-numeric-desc:before {\n content: \"\\f163\";\n}\n.fa-thumbs-up:before {\n content: \"\\f164\";\n}\n.fa-thumbs-down:before {\n content: \"\\f165\";\n}\n.fa-youtube-square:before {\n content: \"\\f166\";\n}\n.fa-youtube:before {\n content: \"\\f167\";\n}\n.fa-xing:before {\n content: \"\\f168\";\n}\n.fa-xing-square:before {\n content: \"\\f169\";\n}\n.fa-youtube-play:before {\n content: \"\\f16a\";\n}\n.fa-dropbox:before {\n content: \"\\f16b\";\n}\n.fa-stack-overflow:before {\n content: \"\\f16c\";\n}\n.fa-instagram:before {\n content: \"\\f16d\";\n}\n.fa-flickr:before {\n content: \"\\f16e\";\n}\n.fa-adn:before {\n content: \"\\f170\";\n}\n.fa-bitbucket:before {\n content: \"\\f171\";\n}\n.fa-bitbucket-square:before {\n content: \"\\f172\";\n}\n.fa-tumblr:before {\n content: \"\\f173\";\n}\n.fa-tumblr-square:before {\n content: \"\\f174\";\n}\n.fa-long-arrow-down:before {\n content: \"\\f175\";\n}\n.fa-long-arrow-up:before {\n content: \"\\f176\";\n}\n.fa-long-arrow-left:before {\n content: \"\\f177\";\n}\n.fa-long-arrow-right:before {\n content: \"\\f178\";\n}\n.fa-apple:before {\n content: \"\\f179\";\n}\n.fa-windows:before {\n content: \"\\f17a\";\n}\n.fa-android:before {\n content: \"\\f17b\";\n}\n.fa-linux:before {\n content: \"\\f17c\";\n}\n.fa-dribbble:before {\n content: \"\\f17d\";\n}\n.fa-skype:before {\n content: \"\\f17e\";\n}\n.fa-foursquare:before {\n content: \"\\f180\";\n}\n.fa-trello:before {\n content: \"\\f181\";\n}\n.fa-female:before {\n content: \"\\f182\";\n}\n.fa-male:before {\n content: \"\\f183\";\n}\n.fa-gittip:before,\n.fa-gratipay:before {\n content: \"\\f184\";\n}\n.fa-sun-o:before {\n content: \"\\f185\";\n}\n.fa-moon-o:before {\n content: \"\\f186\";\n}\n.fa-archive:before {\n content: \"\\f187\";\n}\n.fa-bug:before {\n content: \"\\f188\";\n}\n.fa-vk:before {\n content: \"\\f189\";\n}\n.fa-weibo:before {\n content: \"\\f18a\";\n}\n.fa-renren:before {\n content: \"\\f18b\";\n}\n.fa-pagelines:before {\n content: \"\\f18c\";\n}\n.fa-stack-exchange:before {\n content: \"\\f18d\";\n}\n.fa-arrow-circle-o-right:before {\n content: \"\\f18e\";\n}\n.fa-arrow-circle-o-left:before {\n content: \"\\f190\";\n}\n.fa-toggle-left:before,\n.fa-caret-square-o-left:before {\n content: \"\\f191\";\n}\n.fa-dot-circle-o:before {\n content: \"\\f192\";\n}\n.fa-wheelchair:before {\n content: \"\\f193\";\n}\n.fa-vimeo-square:before {\n content: \"\\f194\";\n}\n.fa-turkish-lira:before,\n.fa-try:before {\n content: \"\\f195\";\n}\n.fa-plus-square-o:before {\n content: \"\\f196\";\n}\n.fa-space-shuttle:before {\n content: \"\\f197\";\n}\n.fa-slack:before {\n content: \"\\f198\";\n}\n.fa-envelope-square:before {\n content: \"\\f199\";\n}\n.fa-wordpress:before {\n content: \"\\f19a\";\n}\n.fa-openid:before {\n content: \"\\f19b\";\n}\n.fa-institution:before,\n.fa-bank:before,\n.fa-university:before {\n content: \"\\f19c\";\n}\n.fa-mortar-board:before,\n.fa-graduation-cap:before {\n content: \"\\f19d\";\n}\n.fa-yahoo:before {\n content: \"\\f19e\";\n}\n.fa-google:before {\n content: \"\\f1a0\";\n}\n.fa-reddit:before {\n content: \"\\f1a1\";\n}\n.fa-reddit-square:before {\n content: \"\\f1a2\";\n}\n.fa-stumbleupon-circle:before {\n content: \"\\f1a3\";\n}\n.fa-stumbleupon:before {\n content: \"\\f1a4\";\n}\n.fa-delicious:before {\n content: \"\\f1a5\";\n}\n.fa-digg:before {\n content: \"\\f1a6\";\n}\n.fa-pied-piper-pp:before {\n content: \"\\f1a7\";\n}\n.fa-pied-piper-alt:before {\n content: \"\\f1a8\";\n}\n.fa-drupal:before {\n content: \"\\f1a9\";\n}\n.fa-joomla:before {\n content: \"\\f1aa\";\n}\n.fa-language:before {\n content: \"\\f1ab\";\n}\n.fa-fax:before {\n content: \"\\f1ac\";\n}\n.fa-building:before {\n content: \"\\f1ad\";\n}\n.fa-child:before {\n content: \"\\f1ae\";\n}\n.fa-paw:before {\n content: \"\\f1b0\";\n}\n.fa-spoon:before {\n content: \"\\f1b1\";\n}\n.fa-cube:before {\n content: \"\\f1b2\";\n}\n.fa-cubes:before {\n content: \"\\f1b3\";\n}\n.fa-behance:before {\n content: \"\\f1b4\";\n}\n.fa-behance-square:before {\n content: \"\\f1b5\";\n}\n.fa-steam:before {\n content: \"\\f1b6\";\n}\n.fa-steam-square:before {\n content: \"\\f1b7\";\n}\n.fa-recycle:before {\n content: \"\\f1b8\";\n}\n.fa-automobile:before,\n.fa-car:before {\n content: \"\\f1b9\";\n}\n.fa-cab:before,\n.fa-taxi:before {\n content: \"\\f1ba\";\n}\n.fa-tree:before {\n content: \"\\f1bb\";\n}\n.fa-spotify:before {\n content: \"\\f1bc\";\n}\n.fa-deviantart:before {\n content: \"\\f1bd\";\n}\n.fa-soundcloud:before {\n content: \"\\f1be\";\n}\n.fa-database:before {\n content: \"\\f1c0\";\n}\n.fa-file-pdf-o:before {\n content: \"\\f1c1\";\n}\n.fa-file-word-o:before {\n content: \"\\f1c2\";\n}\n.fa-file-excel-o:before {\n content: \"\\f1c3\";\n}\n.fa-file-powerpoint-o:before {\n content: \"\\f1c4\";\n}\n.fa-file-photo-o:before,\n.fa-file-picture-o:before,\n.fa-file-image-o:before {\n content: \"\\f1c5\";\n}\n.fa-file-zip-o:before,\n.fa-file-archive-o:before {\n content: \"\\f1c6\";\n}\n.fa-file-sound-o:before,\n.fa-file-audio-o:before {\n content: \"\\f1c7\";\n}\n.fa-file-movie-o:before,\n.fa-file-video-o:before {\n content: \"\\f1c8\";\n}\n.fa-file-code-o:before {\n content: \"\\f1c9\";\n}\n.fa-vine:before {\n content: \"\\f1ca\";\n}\n.fa-codepen:before {\n content: \"\\f1cb\";\n}\n.fa-jsfiddle:before {\n content: \"\\f1cc\";\n}\n.fa-life-bouy:before,\n.fa-life-buoy:before,\n.fa-life-saver:before,\n.fa-support:before,\n.fa-life-ring:before {\n content: \"\\f1cd\";\n}\n.fa-circle-o-notch:before {\n content: \"\\f1ce\";\n}\n.fa-ra:before,\n.fa-resistance:before,\n.fa-rebel:before {\n content: \"\\f1d0\";\n}\n.fa-ge:before,\n.fa-empire:before {\n content: \"\\f1d1\";\n}\n.fa-git-square:before {\n content: \"\\f1d2\";\n}\n.fa-git:before {\n content: \"\\f1d3\";\n}\n.fa-y-combinator-square:before,\n.fa-yc-square:before,\n.fa-hacker-news:before {\n content: \"\\f1d4\";\n}\n.fa-tencent-weibo:before {\n content: \"\\f1d5\";\n}\n.fa-qq:before {\n content: \"\\f1d6\";\n}\n.fa-wechat:before,\n.fa-weixin:before {\n content: \"\\f1d7\";\n}\n.fa-send:before,\n.fa-paper-plane:before {\n content: \"\\f1d8\";\n}\n.fa-send-o:before,\n.fa-paper-plane-o:before {\n content: \"\\f1d9\";\n}\n.fa-history:before {\n content: \"\\f1da\";\n}\n.fa-circle-thin:before {\n content: \"\\f1db\";\n}\n.fa-header:before {\n content: \"\\f1dc\";\n}\n.fa-paragraph:before {\n content: \"\\f1dd\";\n}\n.fa-sliders:before {\n content: \"\\f1de\";\n}\n.fa-share-alt:before {\n content: \"\\f1e0\";\n}\n.fa-share-alt-square:before {\n content: \"\\f1e1\";\n}\n.fa-bomb:before {\n content: \"\\f1e2\";\n}\n.fa-soccer-ball-o:before,\n.fa-futbol-o:before {\n content: \"\\f1e3\";\n}\n.fa-tty:before {\n content: \"\\f1e4\";\n}\n.fa-binoculars:before {\n content: \"\\f1e5\";\n}\n.fa-plug:before {\n content: \"\\f1e6\";\n}\n.fa-slideshare:before {\n content: \"\\f1e7\";\n}\n.fa-twitch:before {\n content: \"\\f1e8\";\n}\n.fa-yelp:before {\n content: \"\\f1e9\";\n}\n.fa-newspaper-o:before {\n content: \"\\f1ea\";\n}\n.fa-wifi:before {\n content: \"\\f1eb\";\n}\n.fa-calculator:before {\n content: \"\\f1ec\";\n}\n.fa-paypal:before {\n content: \"\\f1ed\";\n}\n.fa-google-wallet:before {\n content: \"\\f1ee\";\n}\n.fa-cc-visa:before {\n content: \"\\f1f0\";\n}\n.fa-cc-mastercard:before {\n content: \"\\f1f1\";\n}\n.fa-cc-discover:before {\n content: \"\\f1f2\";\n}\n.fa-cc-amex:before {\n content: \"\\f1f3\";\n}\n.fa-cc-paypal:before {\n content: \"\\f1f4\";\n}\n.fa-cc-stripe:before {\n content: \"\\f1f5\";\n}\n.fa-bell-slash:before {\n content: \"\\f1f6\";\n}\n.fa-bell-slash-o:before {\n content: \"\\f1f7\";\n}\n.fa-trash:before {\n content: \"\\f1f8\";\n}\n.fa-copyright:before {\n content: \"\\f1f9\";\n}\n.fa-at:before {\n content: \"\\f1fa\";\n}\n.fa-eyedropper:before {\n content: \"\\f1fb\";\n}\n.fa-paint-brush:before {\n content: \"\\f1fc\";\n}\n.fa-birthday-cake:before {\n content: \"\\f1fd\";\n}\n.fa-area-chart:before {\n content: \"\\f1fe\";\n}\n.fa-pie-chart:before {\n content: \"\\f200\";\n}\n.fa-line-chart:before {\n content: \"\\f201\";\n}\n.fa-lastfm:before {\n content: \"\\f202\";\n}\n.fa-lastfm-square:before {\n content: \"\\f203\";\n}\n.fa-toggle-off:before {\n content: \"\\f204\";\n}\n.fa-toggle-on:before {\n content: \"\\f205\";\n}\n.fa-bicycle:before {\n content: \"\\f206\";\n}\n.fa-bus:before {\n content: \"\\f207\";\n}\n.fa-ioxhost:before {\n content: \"\\f208\";\n}\n.fa-angellist:before {\n content: \"\\f209\";\n}\n.fa-cc:before {\n content: \"\\f20a\";\n}\n.fa-shekel:before,\n.fa-sheqel:before,\n.fa-ils:before {\n content: \"\\f20b\";\n}\n.fa-meanpath:before {\n content: \"\\f20c\";\n}\n.fa-buysellads:before {\n content: \"\\f20d\";\n}\n.fa-connectdevelop:before {\n content: \"\\f20e\";\n}\n.fa-dashcube:before {\n content: \"\\f210\";\n}\n.fa-forumbee:before {\n content: \"\\f211\";\n}\n.fa-leanpub:before {\n content: \"\\f212\";\n}\n.fa-sellsy:before {\n content: \"\\f213\";\n}\n.fa-shirtsinbulk:before {\n content: \"\\f214\";\n}\n.fa-simplybuilt:before {\n content: \"\\f215\";\n}\n.fa-skyatlas:before {\n content: \"\\f216\";\n}\n.fa-cart-plus:before {\n content: \"\\f217\";\n}\n.fa-cart-arrow-down:before {\n content: \"\\f218\";\n}\n.fa-diamond:before {\n content: \"\\f219\";\n}\n.fa-ship:before {\n content: \"\\f21a\";\n}\n.fa-user-secret:before {\n content: \"\\f21b\";\n}\n.fa-motorcycle:before {\n content: \"\\f21c\";\n}\n.fa-street-view:before {\n content: \"\\f21d\";\n}\n.fa-heartbeat:before {\n content: \"\\f21e\";\n}\n.fa-venus:before {\n content: \"\\f221\";\n}\n.fa-mars:before {\n content: \"\\f222\";\n}\n.fa-mercury:before {\n content: \"\\f223\";\n}\n.fa-intersex:before,\n.fa-transgender:before {\n content: \"\\f224\";\n}\n.fa-transgender-alt:before {\n content: \"\\f225\";\n}\n.fa-venus-double:before {\n content: \"\\f226\";\n}\n.fa-mars-double:before {\n content: \"\\f227\";\n}\n.fa-venus-mars:before {\n content: \"\\f228\";\n}\n.fa-mars-stroke:before {\n content: \"\\f229\";\n}\n.fa-mars-stroke-v:before {\n content: \"\\f22a\";\n}\n.fa-mars-stroke-h:before {\n content: \"\\f22b\";\n}\n.fa-neuter:before {\n content: \"\\f22c\";\n}\n.fa-genderless:before {\n content: \"\\f22d\";\n}\n.fa-facebook-official:before {\n content: \"\\f230\";\n}\n.fa-pinterest-p:before {\n content: \"\\f231\";\n}\n.fa-whatsapp:before {\n content: \"\\f232\";\n}\n.fa-server:before {\n content: \"\\f233\";\n}\n.fa-user-plus:before {\n content: \"\\f234\";\n}\n.fa-user-times:before {\n content: \"\\f235\";\n}\n.fa-hotel:before,\n.fa-bed:before {\n content: \"\\f236\";\n}\n.fa-viacoin:before {\n content: \"\\f237\";\n}\n.fa-train:before {\n content: \"\\f238\";\n}\n.fa-subway:before {\n content: \"\\f239\";\n}\n.fa-medium:before {\n content: \"\\f23a\";\n}\n.fa-yc:before,\n.fa-y-combinator:before {\n content: \"\\f23b\";\n}\n.fa-optin-monster:before {\n content: \"\\f23c\";\n}\n.fa-opencart:before {\n content: \"\\f23d\";\n}\n.fa-expeditedssl:before {\n content: \"\\f23e\";\n}\n.fa-battery-4:before,\n.fa-battery:before,\n.fa-battery-full:before {\n content: \"\\f240\";\n}\n.fa-battery-3:before,\n.fa-battery-three-quarters:before {\n content: \"\\f241\";\n}\n.fa-battery-2:before,\n.fa-battery-half:before {\n content: \"\\f242\";\n}\n.fa-battery-1:before,\n.fa-battery-quarter:before {\n content: \"\\f243\";\n}\n.fa-battery-0:before,\n.fa-battery-empty:before {\n content: \"\\f244\";\n}\n.fa-mouse-pointer:before {\n content: \"\\f245\";\n}\n.fa-i-cursor:before {\n content: \"\\f246\";\n}\n.fa-object-group:before {\n content: \"\\f247\";\n}\n.fa-object-ungroup:before {\n content: \"\\f248\";\n}\n.fa-sticky-note:before {\n content: \"\\f249\";\n}\n.fa-sticky-note-o:before {\n content: \"\\f24a\";\n}\n.fa-cc-jcb:before {\n content: \"\\f24b\";\n}\n.fa-cc-diners-club:before {\n content: \"\\f24c\";\n}\n.fa-clone:before {\n content: \"\\f24d\";\n}\n.fa-balance-scale:before {\n content: \"\\f24e\";\n}\n.fa-hourglass-o:before {\n content: \"\\f250\";\n}\n.fa-hourglass-1:before,\n.fa-hourglass-start:before {\n content: \"\\f251\";\n}\n.fa-hourglass-2:before,\n.fa-hourglass-half:before {\n content: \"\\f252\";\n}\n.fa-hourglass-3:before,\n.fa-hourglass-end:before {\n content: \"\\f253\";\n}\n.fa-hourglass:before {\n content: \"\\f254\";\n}\n.fa-hand-grab-o:before,\n.fa-hand-rock-o:before {\n content: \"\\f255\";\n}\n.fa-hand-stop-o:before,\n.fa-hand-paper-o:before {\n content: \"\\f256\";\n}\n.fa-hand-scissors-o:before {\n content: \"\\f257\";\n}\n.fa-hand-lizard-o:before {\n content: \"\\f258\";\n}\n.fa-hand-spock-o:before {\n content: \"\\f259\";\n}\n.fa-hand-pointer-o:before {\n content: \"\\f25a\";\n}\n.fa-hand-peace-o:before {\n content: \"\\f25b\";\n}\n.fa-trademark:before {\n content: \"\\f25c\";\n}\n.fa-registered:before {\n content: \"\\f25d\";\n}\n.fa-creative-commons:before {\n content: \"\\f25e\";\n}\n.fa-gg:before {\n content: \"\\f260\";\n}\n.fa-gg-circle:before {\n content: \"\\f261\";\n}\n.fa-tripadvisor:before {\n content: \"\\f262\";\n}\n.fa-odnoklassniki:before {\n content: \"\\f263\";\n}\n.fa-odnoklassniki-square:before {\n content: \"\\f264\";\n}\n.fa-get-pocket:before {\n content: \"\\f265\";\n}\n.fa-wikipedia-w:before {\n content: \"\\f266\";\n}\n.fa-safari:before {\n content: \"\\f267\";\n}\n.fa-chrome:before {\n content: \"\\f268\";\n}\n.fa-firefox:before {\n content: \"\\f269\";\n}\n.fa-opera:before {\n content: \"\\f26a\";\n}\n.fa-internet-explorer:before {\n content: \"\\f26b\";\n}\n.fa-tv:before,\n.fa-television:before {\n content: \"\\f26c\";\n}\n.fa-contao:before {\n content: \"\\f26d\";\n}\n.fa-500px:before {\n content: \"\\f26e\";\n}\n.fa-amazon:before {\n content: \"\\f270\";\n}\n.fa-calendar-plus-o:before {\n content: \"\\f271\";\n}\n.fa-calendar-minus-o:before {\n content: \"\\f272\";\n}\n.fa-calendar-times-o:before {\n content: \"\\f273\";\n}\n.fa-calendar-check-o:before {\n content: \"\\f274\";\n}\n.fa-industry:before {\n content: \"\\f275\";\n}\n.fa-map-pin:before {\n content: \"\\f276\";\n}\n.fa-map-signs:before {\n content: \"\\f277\";\n}\n.fa-map-o:before {\n content: \"\\f278\";\n}\n.fa-map:before {\n content: \"\\f279\";\n}\n.fa-commenting:before {\n content: \"\\f27a\";\n}\n.fa-commenting-o:before {\n content: \"\\f27b\";\n}\n.fa-houzz:before {\n content: \"\\f27c\";\n}\n.fa-vimeo:before {\n content: \"\\f27d\";\n}\n.fa-black-tie:before {\n content: \"\\f27e\";\n}\n.fa-fonticons:before {\n content: \"\\f280\";\n}\n.fa-reddit-alien:before {\n content: \"\\f281\";\n}\n.fa-edge:before {\n content: \"\\f282\";\n}\n.fa-credit-card-alt:before {\n content: \"\\f283\";\n}\n.fa-codiepie:before {\n content: \"\\f284\";\n}\n.fa-modx:before {\n content: \"\\f285\";\n}\n.fa-fort-awesome:before {\n content: \"\\f286\";\n}\n.fa-usb:before {\n content: \"\\f287\";\n}\n.fa-product-hunt:before {\n content: \"\\f288\";\n}\n.fa-mixcloud:before {\n content: \"\\f289\";\n}\n.fa-scribd:before {\n content: \"\\f28a\";\n}\n.fa-pause-circle:before {\n content: \"\\f28b\";\n}\n.fa-pause-circle-o:before {\n content: \"\\f28c\";\n}\n.fa-stop-circle:before {\n content: \"\\f28d\";\n}\n.fa-stop-circle-o:before {\n content: \"\\f28e\";\n}\n.fa-shopping-bag:before {\n content: \"\\f290\";\n}\n.fa-shopping-basket:before {\n content: \"\\f291\";\n}\n.fa-hashtag:before {\n content: \"\\f292\";\n}\n.fa-bluetooth:before {\n content: \"\\f293\";\n}\n.fa-bluetooth-b:before {\n content: \"\\f294\";\n}\n.fa-percent:before {\n content: \"\\f295\";\n}\n.fa-gitlab:before {\n content: \"\\f296\";\n}\n.fa-wpbeginner:before {\n content: \"\\f297\";\n}\n.fa-wpforms:before {\n content: \"\\f298\";\n}\n.fa-envira:before {\n content: \"\\f299\";\n}\n.fa-universal-access:before {\n content: \"\\f29a\";\n}\n.fa-wheelchair-alt:before {\n content: \"\\f29b\";\n}\n.fa-question-circle-o:before {\n content: \"\\f29c\";\n}\n.fa-blind:before {\n content: \"\\f29d\";\n}\n.fa-audio-description:before {\n content: \"\\f29e\";\n}\n.fa-volume-control-phone:before {\n content: \"\\f2a0\";\n}\n.fa-braille:before {\n content: \"\\f2a1\";\n}\n.fa-assistive-listening-systems:before {\n content: \"\\f2a2\";\n}\n.fa-asl-interpreting:before,\n.fa-american-sign-language-interpreting:before {\n content: \"\\f2a3\";\n}\n.fa-deafness:before,\n.fa-hard-of-hearing:before,\n.fa-deaf:before {\n content: \"\\f2a4\";\n}\n.fa-glide:before {\n content: \"\\f2a5\";\n}\n.fa-glide-g:before {\n content: \"\\f2a6\";\n}\n.fa-signing:before,\n.fa-sign-language:before {\n content: \"\\f2a7\";\n}\n.fa-low-vision:before {\n content: \"\\f2a8\";\n}\n.fa-viadeo:before {\n content: \"\\f2a9\";\n}\n.fa-viadeo-square:before {\n content: \"\\f2aa\";\n}\n.fa-snapchat:before {\n content: \"\\f2ab\";\n}\n.fa-snapchat-ghost:before {\n content: \"\\f2ac\";\n}\n.fa-snapchat-square:before {\n content: \"\\f2ad\";\n}\n.fa-pied-piper:before {\n content: \"\\f2ae\";\n}\n.fa-first-order:before {\n content: \"\\f2b0\";\n}\n.fa-yoast:before {\n content: \"\\f2b1\";\n}\n.fa-themeisle:before {\n content: \"\\f2b2\";\n}\n.fa-google-plus-circle:before,\n.fa-google-plus-official:before {\n content: \"\\f2b3\";\n}\n.fa-fa:before,\n.fa-font-awesome:before {\n content: \"\\f2b4\";\n}\n.fa-handshake-o:before {\n content: \"\\f2b5\";\n}\n.fa-envelope-open:before {\n content: \"\\f2b6\";\n}\n.fa-envelope-open-o:before {\n content: \"\\f2b7\";\n}\n.fa-linode:before {\n content: \"\\f2b8\";\n}\n.fa-address-book:before {\n content: \"\\f2b9\";\n}\n.fa-address-book-o:before {\n content: \"\\f2ba\";\n}\n.fa-vcard:before,\n.fa-address-card:before {\n content: \"\\f2bb\";\n}\n.fa-vcard-o:before,\n.fa-address-card-o:before {\n content: \"\\f2bc\";\n}\n.fa-user-circle:before {\n content: \"\\f2bd\";\n}\n.fa-user-circle-o:before {\n content: \"\\f2be\";\n}\n.fa-user-o:before {\n content: \"\\f2c0\";\n}\n.fa-id-badge:before {\n content: \"\\f2c1\";\n}\n.fa-drivers-license:before,\n.fa-id-card:before {\n content: \"\\f2c2\";\n}\n.fa-drivers-license-o:before,\n.fa-id-card-o:before {\n content: \"\\f2c3\";\n}\n.fa-quora:before {\n content: \"\\f2c4\";\n}\n.fa-free-code-camp:before {\n content: \"\\f2c5\";\n}\n.fa-telegram:before {\n content: \"\\f2c6\";\n}\n.fa-thermometer-4:before,\n.fa-thermometer:before,\n.fa-thermometer-full:before {\n content: \"\\f2c7\";\n}\n.fa-thermometer-3:before,\n.fa-thermometer-three-quarters:before {\n content: \"\\f2c8\";\n}\n.fa-thermometer-2:before,\n.fa-thermometer-half:before {\n content: \"\\f2c9\";\n}\n.fa-thermometer-1:before,\n.fa-thermometer-quarter:before {\n content: \"\\f2ca\";\n}\n.fa-thermometer-0:before,\n.fa-thermometer-empty:before {\n content: \"\\f2cb\";\n}\n.fa-shower:before {\n content: \"\\f2cc\";\n}\n.fa-bathtub:before,\n.fa-s15:before,\n.fa-bath:before {\n content: \"\\f2cd\";\n}\n.fa-podcast:before {\n content: \"\\f2ce\";\n}\n.fa-window-maximize:before {\n content: \"\\f2d0\";\n}\n.fa-window-minimize:before {\n content: \"\\f2d1\";\n}\n.fa-window-restore:before {\n content: \"\\f2d2\";\n}\n.fa-times-rectangle:before,\n.fa-window-close:before {\n content: \"\\f2d3\";\n}\n.fa-times-rectangle-o:before,\n.fa-window-close-o:before {\n content: \"\\f2d4\";\n}\n.fa-bandcamp:before {\n content: \"\\f2d5\";\n}\n.fa-grav:before {\n content: \"\\f2d6\";\n}\n.fa-etsy:before {\n content: \"\\f2d7\";\n}\n.fa-imdb:before {\n content: \"\\f2d8\";\n}\n.fa-ravelry:before {\n content: \"\\f2d9\";\n}\n.fa-eercast:before {\n content: \"\\f2da\";\n}\n.fa-microchip:before {\n content: \"\\f2db\";\n}\n.fa-snowflake-o:before {\n content: \"\\f2dc\";\n}\n.fa-superpowers:before {\n content: \"\\f2dd\";\n}\n.fa-wpexplorer:before {\n content: \"\\f2de\";\n}\n.fa-meetup:before {\n content: \"\\f2e0\";\n}\n.sr-only {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n border: 0;\n}\n.sr-only-focusable:active,\n.sr-only-focusable:focus {\n position: static;\n width: auto;\n height: auto;\n margin: 0;\n overflow: visible;\n clip: auto;\n}\n"],"sourceRoot":""} \ No newline at end of file diff --git a/priv/static/packs/flavours/vanilla/embed.js b/priv/static/packs/flavours/vanilla/embed.js deleted file mode 100644 index 428bde4a8..000000000 Binary files a/priv/static/packs/flavours/vanilla/embed.js and /dev/null differ diff --git a/priv/static/packs/flavours/vanilla/embed.js.LICENSE.txt b/priv/static/packs/flavours/vanilla/embed.js.LICENSE.txt deleted file mode 100644 index 2196b2def..000000000 --- a/priv/static/packs/flavours/vanilla/embed.js.LICENSE.txt +++ /dev/null @@ -1,41 +0,0 @@ -/* -object-assign -(c) Sindre Sorhus -@license MIT -*/ - -/** @license React v0.19.0 - * scheduler.production.min.js - * - * Copyright (c) Facebook, Inc. and its affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */ - -/** @license React v16.12.0 - * react-is.production.min.js - * - * Copyright (c) Facebook, Inc. and its affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */ - -/** @license React v16.13.0 - * react-dom.production.min.js - * - * Copyright (c) Facebook, Inc. and its affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */ - -/** @license React v16.13.1 - * react.production.min.js - * - * Copyright (c) Facebook, Inc. and its affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */ diff --git a/priv/static/packs/flavours/vanilla/embed.js.map b/priv/static/packs/flavours/vanilla/embed.js.map deleted file mode 100644 index 11aaa64bb..000000000 Binary files a/priv/static/packs/flavours/vanilla/embed.js.map and /dev/null differ diff --git a/priv/static/packs/flavours/vanilla/error.js b/priv/static/packs/flavours/vanilla/error.js deleted file mode 100644 index 7a5535676..000000000 Binary files a/priv/static/packs/flavours/vanilla/error.js and /dev/null differ diff --git a/priv/static/packs/flavours/vanilla/error.js.map b/priv/static/packs/flavours/vanilla/error.js.map deleted file mode 100644 index 834ab3e81..000000000 Binary files a/priv/static/packs/flavours/vanilla/error.js.map and /dev/null differ diff --git a/priv/static/packs/flavours/vanilla/home.css b/priv/static/packs/flavours/vanilla/home.css deleted file mode 100644 index a2808e6b3..000000000 Binary files a/priv/static/packs/flavours/vanilla/home.css and /dev/null differ diff --git a/priv/static/packs/flavours/vanilla/home.css.map b/priv/static/packs/flavours/vanilla/home.css.map deleted file mode 100644 index 2b5099449..000000000 --- a/priv/static/packs/flavours/vanilla/home.css.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["webpack:///font-awesome.css","webpack:///./node_modules/font-awesome/css/font-awesome.css"],"names":[],"mappings":"AAAA;;;ECAA,CAMA,WACE,wBACA,4CACA,wSACA,gBACA,kBAEF,IACE,qBACA,6CACA,kBACA,oBACA,mCACA,kCAGF,OACE,uBACA,kBACA,oBAEF,OACE,cAEF,OACE,cAEF,OACE,cAEF,OACE,cAEF,OACE,mBACA,kBAEF,OACE,eACA,yBACA,qBAEF,UACE,kBAEF,OACE,kBACA,mBACA,mBACA,gBACA,kBAEF,aACE,mBAEF,WACE,yBACA,wBACA,mBAEF,cACE,WAEF,eACE,YAEF,iBACE,kBAEF,kBACE,iBAGF,YACE,YAEF,WACE,WAEF,cACE,kBAEF,eACE,iBAEF,SACE,6CACA,qCAEF,UACE,+CACA,uCAEF,2BACE,GAEE,uBAEF,GAEE,0BAGJ,mBACE,GAEE,uBAEF,GAEE,0BAGJ,cACE,sEAGA,wBAEF,eACE,sEAGA,yBAEF,eACE,sEAGA,yBAEF,oBACE,gFAGA,qBAEF,kBACE,gFAGA,qBAEF,gHAKE,gCAEF,UACE,kBACA,qBACA,UACA,WACA,gBACA,sBAEF,0BAEE,kBACA,OACA,WACA,kBAEF,aACE,oBAEF,aACE,cAEF,YACE,WAIF,iBACE,YAEF,iBACE,YAEF,kBACE,YAEF,sBACE,YAEF,iBACE,YAEF,gBACE,YAEF,kBACE,YAEF,gBACE,YAEF,gBACE,YAEF,oBACE,YAEF,cACE,YAEF,mBACE,YAEF,iBACE,YAEF,oDAGE,YAEF,uBACE,YAEF,wBACE,YAEF,qBACE,YAEF,kBACE,YAEF,+BAEE,YAEF,mBACE,YAEF,gBACE,YAEF,kBACE,YAEF,mBACE,YAEF,gBACE,YAEF,oBACE,YAEF,+BACE,YAEF,6BACE,YAEF,iBACE,YAEF,yBACE,YAEF,0CAEE,YAEF,mBACE,YAEF,oBACE,YAEF,gBACE,YAEF,gBACE,YAEF,sBACE,YAEF,sBACE,YAEF,uBACE,YAEF,qBACE,YAEF,kBACE,YAEF,mBACE,YAEF,eACE,YAEF,gBACE,YAEF,gBACE,YAEF,oBACE,YAEF,iBACE,YAEF,kBACE,YAEF,gBACE,YAEF,gBACE,YAEF,kBACE,YAEF,uBACE,YAEF,sBACE,YAEF,sBACE,YAEF,wBACE,YAEF,uBACE,YAEF,yBACE,YAEF,gBACE,YAEF,qCAEE,YAEF,kBACE,YAEF,wBACE,YAEF,uDAGE,YAEF,kBACE,YAEF,sBACE,YAEF,kBACE,YAEF,gBACE,YAEF,2CAEE,YAEF,0BACE,YAEF,0BACE,YAEF,kBACE,YAEF,yBACE,YAEF,yBACE,YAEF,oBACE,YAEF,gBACE,YAEF,iBACE,YAEF,gBACE,YAEF,mBACE,YAEF,wBACE,YAEF,wBACE,YAEF,iBACE,YAEF,wBACE,YAEF,yBACE,YAEF,uBACE,YAEF,wBACE,YAEF,wBACE,YAEF,wBACE,YAEF,2BACE,YAEF,uBACE,YAEF,sBACE,YAEF,0BACE,YAEF,0BACE,YAEF,eACE,YAEF,sBACE,YAEF,uBACE,YAEF,oBACE,YAEF,sBACE,YAEF,yCAEE,YAEF,kBACE,YAEF,oBACE,YAEF,gBACE,YAEF,iBACE,YAEF,oBACE,YAEF,8BACE,YAEF,gBACE,YAEF,gBACE,YAEF,gBACE,YAEF,eACE,YAEF,qBACE,YAEF,mDAEE,YAEF,iBACE,YAEF,oBACE,YAEF,kBACE,YAEF,mBACE,YAEF,kBACE,YAEF,sBACE,YAEF,wBACE,YAEF,mBACE,YAEF,yBACE,YAEF,kBACE,YAEF,uBACE,YAEF,oBACE,YAEF,oBACE,YAEF,4CAEE,YAEF,0BACE,YAEF,2BACE,YAEF,wBACE,YAEF,eACE,YAEF,iCAEE,YAEF,oBACE,YAEF,uBACE,YAEF,yBACE,YAEF,qBACE,YAEF,mBACE,YAEF,oBACE,YAEF,2BACE,YAEF,sBACE,YAEF,yBACE,YAEF,mBACE,YAEF,kBACE,YAEF,yBACE,YAEF,kBACE,YAEF,mBACE,YAEF,iBACE,YAEF,oBACE,YAEF,sBACE,YAEF,wBACE,YAEF,mBACE,YAEF,0CAEE,YAEF,kBACE,YAEF,kBACE,YAEF,uBACE,YAEF,+BAEE,YAEF,iBACE,YAEF,oBACE,YAEF,gBACE,YAEF,uBACE,YAEF,wBACE,YAEF,uBACE,YAEF,qBACE,YAEF,uBACE,YAEF,6BACE,YAEF,8BACE,YAEF,2BACE,YAEF,6BACE,YAEF,iBACE,YAEF,kBACE,YAEF,iBACE,YAEF,kBACE,YAEF,qBACE,YAEF,sBACE,YAEF,kCAEE,YAEF,iCAEE,YAEF,iBACE,YAEF,iBACE,YAEF,mCAEE,YAEF,mCAEE,YAEF,qBACE,YAEF,oCAEE,YAEF,kBACE,YAEF,sDAGE,YAEF,mBACE,YAEF,mBACE,YAEF,yBACE,YAEF,qBACE,YAEF,iBACE,YAEF,iBACE,YAEF,iBACE,YAEF,qBACE,YAEF,4BACE,YAEF,8BACE,YAEF,uBACE,YAEF,iBACE,YAEF,sBACE,YAEF,oBACE,YAEF,sBACE,YAEF,uBACE,YAEF,mBACE,YAEF,oCAEE,YAEF,0CAEE,YAEF,uCAEE,YAEF,oBACE,YAEF,oBACE,YAEF,uCAEE,YAEF,kCAEE,YAEF,2CAEE,YAEF,qBACE,YAEF,sBACE,YAEF,iCAEE,YAEF,mBACE,YAEF,oBACE,YAEF,sCAEE,YAEF,uBACE,YAEF,oBACE,YAEF,0BACE,YAEF,wBACE,YAEF,mBACE,YAEF,uBACE,YAEF,oBACE,YAEF,kBACE,YAEF,kBACE,YAEF,mBACE,YAEF,uBACE,YAEF,sBACE,YAEF,sBACE,YAEF,qBACE,YAEF,kBACE,YAEF,uBACE,YAEF,gBACE,YAEF,oBACE,YAEF,uBACE,YAEF,6BACE,YAEF,8BACE,YAEF,2BACE,YAEF,6BACE,YAEF,sBACE,YAEF,uBACE,YAEF,oBACE,YAEF,sBACE,YAEF,mBACE,YAEF,kBACE,YAEF,kBACE,YAEF,0CAEE,YAEF,oBACE,YAEF,sBACE,YAEF,uBACE,YAEF,mBACE,YAEF,kBACE,YAEF,uCAEE,YAEF,sBACE,YAEF,oBACE,YAEF,yBACE,YAEF,mBACE,YAEF,mBACE,YAEF,iBACE,YAEF,mBACE,YAEF,sBACE,YAEF,kBACE,YAEF,0BACE,YAEF,oBACE,YAEF,gBACE,YAEF,+CAEE,YAEF,4EAGE,YAEF,0BACE,YAEF,gBACE,YAEF,qBACE,YAEF,0CAEE,YAEF,oBACE,YAEF,gBACE,YAEF,uBACE,YAEF,uBACE,YAEF,qBACE,YAEF,kBACE,YAEF,wBACE,YAEF,sBACE,YAEF,4BACE,YAEF,kBACE,YAEF,sBACE,YAEF,6BACE,YAEF,kBACE,YAEF,kBACE,YAEF,+BACE,YAEF,gCACE,YAEF,6BACE,YAEF,+BACE,YAEF,iBACE,YAEF,gBACE,YAEF,kBACE,YAEF,sBACE,YAEF,oBACE,YAEF,sBACE,YAEF,sBACE,YAEF,sBACE,YAEF,uBACE,YAEF,kBACE,YAEF,wBACE,YAEF,0BACE,YAEF,oBACE,YAEF,sBACE,YAEF,wBACE,YAEF,yBACE,YAEF,gCACE,YAEF,wBACE,YAEF,mBACE,YAEF,sDAEE,YAEF,kDAEE,YAEF,wDAEE,YAEF,+BAEE,YAEF,eACE,YAEF,iCAEE,YAEF,gCAEE,YAEF,4DAIE,YAEF,kDAGE,YAEF,8BAEE,YAEF,kCAEE,YAEF,gBACE,YAEF,qBACE,YAEF,0BACE,YAEF,2BACE,YAEF,2BACE,YAEF,4BACE,YAEF,4BACE,YAEF,6BACE,YAEF,qBACE,YAEF,uBACE,YAEF,0BACE,YAEF,mBACE,YAEF,gBACE,YAEF,uBACE,YAEF,wBACE,YAEF,mBACE,YAEF,0BACE,YAEF,qBACE,YAEF,kBACE,YAEF,eACE,YAEF,qBACE,YAEF,4BACE,YAEF,kBACE,YAEF,yBACE,YAEF,2BACE,YAEF,yBACE,YAEF,2BACE,YAEF,4BACE,YAEF,iBACE,YAEF,mBACE,YAEF,mBACE,YAEF,iBACE,YAEF,oBACE,YAEF,iBACE,YAEF,sBACE,YAEF,kBACE,YAEF,kBACE,YAEF,gBACE,YAEF,sCAEE,YAEF,iBACE,YAEF,kBACE,YAEF,mBACE,YAEF,eACE,YAEF,cACE,YAEF,iBACE,YAEF,kBACE,YAEF,qBACE,YAEF,0BACE,YAEF,gCACE,YAEF,+BACE,YAEF,sDAEE,YAEF,wBACE,YAEF,sBACE,YAEF,wBACE,YAEF,uCAEE,YAEF,yBACE,YAEF,yBACE,YAEF,iBACE,YAEF,2BACE,YAEF,qBACE,YAEF,kBACE,YAEF,6DAGE,YAEF,kDAEE,YAEF,iBACE,YAEF,kBACE,YAEF,kBACE,YAEF,yBACE,YAEF,8BACE,YAEF,uBACE,YAEF,qBACE,YAEF,gBACE,YAEF,yBACE,YAEF,0BACE,YAEF,kBACE,YAEF,kBACE,YAEF,oBACE,YAEF,eACE,YAEF,oBACE,YAEF,iBACE,YAEF,eACE,YAEF,iBACE,YAEF,gBACE,YAEF,iBACE,YAEF,mBACE,YAEF,0BACE,YAEF,iBACE,YAEF,wBACE,YAEF,mBACE,YAEF,qCAEE,YAEF,+BAEE,YAEF,gBACE,YAEF,mBACE,YAEF,sBACE,YAEF,sBACE,YAEF,oBACE,YAEF,sBACE,YAEF,uBACE,YAEF,wBACE,YAEF,6BACE,YAEF,0EAGE,YAEF,gDAEE,YAEF,gDAEE,YAEF,gDAEE,YAEF,uBACE,YAEF,gBACE,YAEF,mBACE,YAEF,oBACE,YAEF,wGAKE,YAEF,0BACE,YAEF,qDAGE,YAEF,gCAEE,YAEF,sBACE,YAEF,eACE,YAEF,2EAGE,YAEF,yBACE,YAEF,cACE,YAEF,oCAEE,YAEF,uCAEE,YAEF,2CAEE,YAEF,mBACE,YAEF,uBACE,YAEF,kBACE,YAEF,qBACE,YAEF,mBACE,YAEF,qBACE,YAEF,4BACE,YAEF,gBACE,YAEF,6CAEE,YAEF,eACE,YAEF,sBACE,YAEF,gBACE,YAEF,sBACE,YAEF,kBACE,YAEF,gBACE,YAEF,uBACE,YAEF,gBACE,YAEF,sBACE,YAEF,kBACE,YAEF,yBACE,YAEF,mBACE,YAEF,yBACE,YAEF,uBACE,YAEF,mBACE,YAEF,qBACE,YAEF,qBACE,YAEF,sBACE,YAEF,wBACE,YAEF,iBACE,YAEF,qBACE,YAEF,cACE,YAEF,sBACE,YAEF,uBACE,YAEF,yBACE,YAEF,sBACE,YAEF,qBACE,YAEF,sBACE,YAEF,kBACE,YAEF,yBACE,YAEF,sBACE,YAEF,qBACE,YAEF,mBACE,YAEF,eACE,YAEF,mBACE,YAEF,qBACE,YAEF,cACE,YAEF,mDAGE,YAEF,oBACE,YAEF,sBACE,YAEF,0BACE,YAEF,oBACE,YAEF,oBACE,YAEF,mBACE,YAEF,kBACE,YAEF,wBACE,YAEF,uBACE,YAEF,oBACE,YAEF,qBACE,YAEF,2BACE,YAEF,mBACE,YAEF,gBACE,YAEF,uBACE,YAEF,sBACE,YAEF,uBACE,YAEF,qBACE,YAEF,iBACE,YAEF,gBACE,YAEF,mBACE,YAEF,2CAEE,YAEF,2BACE,YAEF,wBACE,YAEF,uBACE,YAEF,sBACE,YAEF,uBACE,YAEF,yBACE,YAEF,yBACE,YAEF,kBACE,YAEF,sBACE,YAEF,6BACE,YAEF,uBACE,YAEF,oBACE,YAEF,kBACE,YAEF,qBACE,YAEF,sBACE,YAEF,gCAEE,YAEF,mBACE,YAEF,iBACE,YAEF,kBACE,YAEF,kBACE,YAEF,sCAEE,YAEF,yBACE,YAEF,oBACE,YAEF,wBACE,YAEF,gEAGE,YAEF,uDAEE,YAEF,6CAEE,YAEF,gDAEE,YAEF,8CAEE,YAEF,yBACE,YAEF,oBACE,YAEF,wBACE,YAEF,0BACE,YAEF,uBACE,YAEF,yBACE,YAEF,kBACE,YAEF,0BACE,YAEF,iBACE,YAEF,yBACE,YAEF,uBACE,YAEF,kDAEE,YAEF,iDAEE,YAEF,gDAEE,YAEF,qBACE,YAEF,8CAEE,YAEF,+CAEE,YAEF,2BACE,YAEF,yBACE,YAEF,wBACE,YAEF,0BACE,YAEF,wBACE,YAEF,qBACE,YAEF,sBACE,YAEF,4BACE,YAEF,cACE,YAEF,qBACE,YAEF,uBACE,YAEF,yBACE,YAEF,gCACE,YAEF,sBACE,YAEF,uBACE,YAEF,kBACE,YAEF,kBACE,YAEF,mBACE,YAEF,iBACE,YAEF,6BACE,YAEF,oCAEE,YAEF,kBACE,YAEF,iBACE,YAEF,kBACE,YAEF,2BACE,YAEF,4BACE,YAEF,4BACE,YAEF,4BACE,YAEF,oBACE,YAEF,mBACE,YAEF,qBACE,YAEF,iBACE,YAEF,eACE,YAEF,sBACE,YAEF,wBACE,YAEF,iBACE,YAEF,iBACE,YAEF,qBACE,YAEF,qBACE,YAEF,wBACE,YAEF,gBACE,YAEF,2BACE,YAEF,oBACE,YAEF,gBACE,YAEF,wBACE,YAEF,eACE,YAEF,wBACE,YAEF,oBACE,YAEF,kBACE,YAEF,wBACE,YAEF,0BACE,YAEF,uBACE,YAEF,yBACE,YAEF,wBACE,YAEF,2BACE,YAEF,mBACE,YAEF,qBACE,YAEF,uBACE,YAEF,mBACE,YAEF,kBACE,YAEF,sBACE,YAEF,mBACE,YAEF,kBACE,YAEF,4BACE,YAEF,0BACE,YAEF,6BACE,YAEF,iBACE,YAEF,6BACE,YAEF,gCACE,YAEF,mBACE,YAEF,uCACE,YAEF,2EAEE,YAEF,+DAGE,YAEF,iBACE,YAEF,mBACE,YAEF,4CAEE,YAEF,sBACE,YAEF,kBACE,YAEF,yBACE,YAEF,oBACE,YAEF,0BACE,YAEF,2BACE,YAEF,sBACE,YAEF,uBACE,YAEF,iBACE,YAEF,qBACE,YAEF,8DAEE,YAEF,sCAEE,YAEF,uBACE,YAEF,yBACE,YAEF,2BACE,YAEF,kBACE,YAEF,wBACE,YAEF,0BACE,YAEF,yCAEE,YAEF,6CAEE,YAEF,uBACE,YAEF,yBACE,YAEF,kBACE,YAEF,oBACE,YAEF,8CAEE,YAEF,kDAEE,YAEF,iBACE,YAEF,0BACE,YAEF,oBACE,YAEF,4EAGE,YAEF,+DAEE,YAEF,qDAEE,YAEF,wDAEE,YAEF,sDAEE,YAEF,kBACE,YAEF,kDAGE,YAEF,mBACE,YAEF,2BACE,YAEF,2BACE,YAEF,0BACE,YAEF,mDAEE,YAEF,uDAEE,YAEF,oBACE,YAEF,gBACE,YAEF,gBACE,YAEF,gBACE,YAEF,mBACE,YAEF,mBACE,YAEF,qBACE,YAEF,uBACE,YAEF,uBACE,YAEF,sBACE,YAEF,kBACE,YAEF,SACE,kBACA,UACA,WACA,UACA,YACA,gBACA,mBACA,SAEF,mDAEE,gBACA,WACA,YACA,SACA,iBACA,qJ","file":"flavours/vanilla/home.css","sourcesContent":["/*!\n * Font Awesome 4.7.0 by @davegandy - http://fontawesome.io - @fontawesome\n * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License)\n */@font-face{font-family:\"FontAwesome\";src:url(\"../fonts/fontawesome-webfont.eot?v=4.7.0\");src:url(\"../fonts/fontawesome-webfont.eot?#iefix&v=4.7.0\") format(\"embedded-opentype\"),url(\"../fonts/fontawesome-webfont.woff2?v=4.7.0\") format(\"woff2\"),url(\"../fonts/fontawesome-webfont.woff?v=4.7.0\") format(\"woff\"),url(\"../fonts/fontawesome-webfont.ttf?v=4.7.0\") format(\"truetype\"),url(\"../fonts/fontawesome-webfont.svg?v=4.7.0#fontawesomeregular\") format(\"svg\");font-weight:normal;font-style:normal}.fa{display:inline-block;font:normal normal normal 14px/1 FontAwesome;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.fa-lg{font-size:1.33333333em;line-height:.75em;vertical-align:-15%}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-fw{width:1.28571429em;text-align:center}.fa-ul{padding-left:0;margin-left:2.14285714em;list-style-type:none}.fa-ul>li{position:relative}.fa-li{position:absolute;left:-2.14285714em;width:2.14285714em;top:.14285714em;text-align:center}.fa-li.fa-lg{left:-1.85714286em}.fa-border{padding:.2em .25em .15em;border:solid .08em #eee;border-radius:.1em}.fa-pull-left{float:left}.fa-pull-right{float:right}.fa.fa-pull-left{margin-right:.3em}.fa.fa-pull-right{margin-left:.3em}.pull-right{float:right}.pull-left{float:left}.fa.pull-left{margin-right:.3em}.fa.pull-right{margin-left:.3em}.fa-spin{-webkit-animation:fa-spin 2s infinite linear;animation:fa-spin 2s infinite linear}.fa-pulse{-webkit-animation:fa-spin 1s infinite steps(8);animation:fa-spin 1s infinite steps(8)}@-webkit-keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}.fa-rotate-90{-ms-filter:\"progid:DXImageTransform.Microsoft.BasicImage(rotation=1)\";-webkit-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg)}.fa-rotate-180{-ms-filter:\"progid:DXImageTransform.Microsoft.BasicImage(rotation=2)\";-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg)}.fa-rotate-270{-ms-filter:\"progid:DXImageTransform.Microsoft.BasicImage(rotation=3)\";-webkit-transform:rotate(270deg);-ms-transform:rotate(270deg);transform:rotate(270deg)}.fa-flip-horizontal{-ms-filter:\"progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)\";-webkit-transform:scale(-1, 1);-ms-transform:scale(-1, 1);transform:scale(-1, 1)}.fa-flip-vertical{-ms-filter:\"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)\";-webkit-transform:scale(1, -1);-ms-transform:scale(1, -1);transform:scale(1, -1)}:root .fa-rotate-90,:root .fa-rotate-180,:root .fa-rotate-270,:root .fa-flip-horizontal,:root .fa-flip-vertical{filter:none}.fa-stack{position:relative;display:inline-block;width:2em;height:2em;line-height:2em;vertical-align:middle}.fa-stack-1x,.fa-stack-2x{position:absolute;left:0;width:100%;text-align:center}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:#fff}.fa-glass:before{content:\"\"}.fa-music:before{content:\"\"}.fa-search:before{content:\"\"}.fa-envelope-o:before{content:\"\"}.fa-heart:before{content:\"\"}.fa-star:before{content:\"\"}.fa-star-o:before{content:\"\"}.fa-user:before{content:\"\"}.fa-film:before{content:\"\"}.fa-th-large:before{content:\"\"}.fa-th:before{content:\"\"}.fa-th-list:before{content:\"\"}.fa-check:before{content:\"\"}.fa-remove:before,.fa-close:before,.fa-times:before{content:\"\"}.fa-search-plus:before{content:\"\"}.fa-search-minus:before{content:\"\"}.fa-power-off:before{content:\"\"}.fa-signal:before{content:\"\"}.fa-gear:before,.fa-cog:before{content:\"\"}.fa-trash-o:before{content:\"\"}.fa-home:before{content:\"\"}.fa-file-o:before{content:\"\"}.fa-clock-o:before{content:\"\"}.fa-road:before{content:\"\"}.fa-download:before{content:\"\"}.fa-arrow-circle-o-down:before{content:\"\"}.fa-arrow-circle-o-up:before{content:\"\"}.fa-inbox:before{content:\"\"}.fa-play-circle-o:before{content:\"\"}.fa-rotate-right:before,.fa-repeat:before{content:\"\"}.fa-refresh:before{content:\"\"}.fa-list-alt:before{content:\"\"}.fa-lock:before{content:\"\"}.fa-flag:before{content:\"\"}.fa-headphones:before{content:\"\"}.fa-volume-off:before{content:\"\"}.fa-volume-down:before{content:\"\"}.fa-volume-up:before{content:\"\"}.fa-qrcode:before{content:\"\"}.fa-barcode:before{content:\"\"}.fa-tag:before{content:\"\"}.fa-tags:before{content:\"\"}.fa-book:before{content:\"\"}.fa-bookmark:before{content:\"\"}.fa-print:before{content:\"\"}.fa-camera:before{content:\"\"}.fa-font:before{content:\"\"}.fa-bold:before{content:\"\"}.fa-italic:before{content:\"\"}.fa-text-height:before{content:\"\"}.fa-text-width:before{content:\"\"}.fa-align-left:before{content:\"\"}.fa-align-center:before{content:\"\"}.fa-align-right:before{content:\"\"}.fa-align-justify:before{content:\"\"}.fa-list:before{content:\"\"}.fa-dedent:before,.fa-outdent:before{content:\"\"}.fa-indent:before{content:\"\"}.fa-video-camera:before{content:\"\"}.fa-photo:before,.fa-image:before,.fa-picture-o:before{content:\"\"}.fa-pencil:before{content:\"\"}.fa-map-marker:before{content:\"\"}.fa-adjust:before{content:\"\"}.fa-tint:before{content:\"\"}.fa-edit:before,.fa-pencil-square-o:before{content:\"\"}.fa-share-square-o:before{content:\"\"}.fa-check-square-o:before{content:\"\"}.fa-arrows:before{content:\"\"}.fa-step-backward:before{content:\"\"}.fa-fast-backward:before{content:\"\"}.fa-backward:before{content:\"\"}.fa-play:before{content:\"\"}.fa-pause:before{content:\"\"}.fa-stop:before{content:\"\"}.fa-forward:before{content:\"\"}.fa-fast-forward:before{content:\"\"}.fa-step-forward:before{content:\"\"}.fa-eject:before{content:\"\"}.fa-chevron-left:before{content:\"\"}.fa-chevron-right:before{content:\"\"}.fa-plus-circle:before{content:\"\"}.fa-minus-circle:before{content:\"\"}.fa-times-circle:before{content:\"\"}.fa-check-circle:before{content:\"\"}.fa-question-circle:before{content:\"\"}.fa-info-circle:before{content:\"\"}.fa-crosshairs:before{content:\"\"}.fa-times-circle-o:before{content:\"\"}.fa-check-circle-o:before{content:\"\"}.fa-ban:before{content:\"\"}.fa-arrow-left:before{content:\"\"}.fa-arrow-right:before{content:\"\"}.fa-arrow-up:before{content:\"\"}.fa-arrow-down:before{content:\"\"}.fa-mail-forward:before,.fa-share:before{content:\"\"}.fa-expand:before{content:\"\"}.fa-compress:before{content:\"\"}.fa-plus:before{content:\"\"}.fa-minus:before{content:\"\"}.fa-asterisk:before{content:\"\"}.fa-exclamation-circle:before{content:\"\"}.fa-gift:before{content:\"\"}.fa-leaf:before{content:\"\"}.fa-fire:before{content:\"\"}.fa-eye:before{content:\"\"}.fa-eye-slash:before{content:\"\"}.fa-warning:before,.fa-exclamation-triangle:before{content:\"\"}.fa-plane:before{content:\"\"}.fa-calendar:before{content:\"\"}.fa-random:before{content:\"\"}.fa-comment:before{content:\"\"}.fa-magnet:before{content:\"\"}.fa-chevron-up:before{content:\"\"}.fa-chevron-down:before{content:\"\"}.fa-retweet:before{content:\"\"}.fa-shopping-cart:before{content:\"\"}.fa-folder:before{content:\"\"}.fa-folder-open:before{content:\"\"}.fa-arrows-v:before{content:\"\"}.fa-arrows-h:before{content:\"\"}.fa-bar-chart-o:before,.fa-bar-chart:before{content:\"\"}.fa-twitter-square:before{content:\"\"}.fa-facebook-square:before{content:\"\"}.fa-camera-retro:before{content:\"\"}.fa-key:before{content:\"\"}.fa-gears:before,.fa-cogs:before{content:\"\"}.fa-comments:before{content:\"\"}.fa-thumbs-o-up:before{content:\"\"}.fa-thumbs-o-down:before{content:\"\"}.fa-star-half:before{content:\"\"}.fa-heart-o:before{content:\"\"}.fa-sign-out:before{content:\"\"}.fa-linkedin-square:before{content:\"\"}.fa-thumb-tack:before{content:\"\"}.fa-external-link:before{content:\"\"}.fa-sign-in:before{content:\"\"}.fa-trophy:before{content:\"\"}.fa-github-square:before{content:\"\"}.fa-upload:before{content:\"\"}.fa-lemon-o:before{content:\"\"}.fa-phone:before{content:\"\"}.fa-square-o:before{content:\"\"}.fa-bookmark-o:before{content:\"\"}.fa-phone-square:before{content:\"\"}.fa-twitter:before{content:\"\"}.fa-facebook-f:before,.fa-facebook:before{content:\"\"}.fa-github:before{content:\"\"}.fa-unlock:before{content:\"\"}.fa-credit-card:before{content:\"\"}.fa-feed:before,.fa-rss:before{content:\"\"}.fa-hdd-o:before{content:\"\"}.fa-bullhorn:before{content:\"\"}.fa-bell:before{content:\"\"}.fa-certificate:before{content:\"\"}.fa-hand-o-right:before{content:\"\"}.fa-hand-o-left:before{content:\"\"}.fa-hand-o-up:before{content:\"\"}.fa-hand-o-down:before{content:\"\"}.fa-arrow-circle-left:before{content:\"\"}.fa-arrow-circle-right:before{content:\"\"}.fa-arrow-circle-up:before{content:\"\"}.fa-arrow-circle-down:before{content:\"\"}.fa-globe:before{content:\"\"}.fa-wrench:before{content:\"\"}.fa-tasks:before{content:\"\"}.fa-filter:before{content:\"\"}.fa-briefcase:before{content:\"\"}.fa-arrows-alt:before{content:\"\"}.fa-group:before,.fa-users:before{content:\"\"}.fa-chain:before,.fa-link:before{content:\"\"}.fa-cloud:before{content:\"\"}.fa-flask:before{content:\"\"}.fa-cut:before,.fa-scissors:before{content:\"\"}.fa-copy:before,.fa-files-o:before{content:\"\"}.fa-paperclip:before{content:\"\"}.fa-save:before,.fa-floppy-o:before{content:\"\"}.fa-square:before{content:\"\"}.fa-navicon:before,.fa-reorder:before,.fa-bars:before{content:\"\"}.fa-list-ul:before{content:\"\"}.fa-list-ol:before{content:\"\"}.fa-strikethrough:before{content:\"\"}.fa-underline:before{content:\"\"}.fa-table:before{content:\"\"}.fa-magic:before{content:\"\"}.fa-truck:before{content:\"\"}.fa-pinterest:before{content:\"\"}.fa-pinterest-square:before{content:\"\"}.fa-google-plus-square:before{content:\"\"}.fa-google-plus:before{content:\"\"}.fa-money:before{content:\"\"}.fa-caret-down:before{content:\"\"}.fa-caret-up:before{content:\"\"}.fa-caret-left:before{content:\"\"}.fa-caret-right:before{content:\"\"}.fa-columns:before{content:\"\"}.fa-unsorted:before,.fa-sort:before{content:\"\"}.fa-sort-down:before,.fa-sort-desc:before{content:\"\"}.fa-sort-up:before,.fa-sort-asc:before{content:\"\"}.fa-envelope:before{content:\"\"}.fa-linkedin:before{content:\"\"}.fa-rotate-left:before,.fa-undo:before{content:\"\"}.fa-legal:before,.fa-gavel:before{content:\"\"}.fa-dashboard:before,.fa-tachometer:before{content:\"\"}.fa-comment-o:before{content:\"\"}.fa-comments-o:before{content:\"\"}.fa-flash:before,.fa-bolt:before{content:\"\"}.fa-sitemap:before{content:\"\"}.fa-umbrella:before{content:\"\"}.fa-paste:before,.fa-clipboard:before{content:\"\"}.fa-lightbulb-o:before{content:\"\"}.fa-exchange:before{content:\"\"}.fa-cloud-download:before{content:\"\"}.fa-cloud-upload:before{content:\"\"}.fa-user-md:before{content:\"\"}.fa-stethoscope:before{content:\"\"}.fa-suitcase:before{content:\"\"}.fa-bell-o:before{content:\"\"}.fa-coffee:before{content:\"\"}.fa-cutlery:before{content:\"\"}.fa-file-text-o:before{content:\"\"}.fa-building-o:before{content:\"\"}.fa-hospital-o:before{content:\"\"}.fa-ambulance:before{content:\"\"}.fa-medkit:before{content:\"\"}.fa-fighter-jet:before{content:\"\"}.fa-beer:before{content:\"\"}.fa-h-square:before{content:\"\"}.fa-plus-square:before{content:\"\"}.fa-angle-double-left:before{content:\"\"}.fa-angle-double-right:before{content:\"\"}.fa-angle-double-up:before{content:\"\"}.fa-angle-double-down:before{content:\"\"}.fa-angle-left:before{content:\"\"}.fa-angle-right:before{content:\"\"}.fa-angle-up:before{content:\"\"}.fa-angle-down:before{content:\"\"}.fa-desktop:before{content:\"\"}.fa-laptop:before{content:\"\"}.fa-tablet:before{content:\"\"}.fa-mobile-phone:before,.fa-mobile:before{content:\"\"}.fa-circle-o:before{content:\"\"}.fa-quote-left:before{content:\"\"}.fa-quote-right:before{content:\"\"}.fa-spinner:before{content:\"\"}.fa-circle:before{content:\"\"}.fa-mail-reply:before,.fa-reply:before{content:\"\"}.fa-github-alt:before{content:\"\"}.fa-folder-o:before{content:\"\"}.fa-folder-open-o:before{content:\"\"}.fa-smile-o:before{content:\"\"}.fa-frown-o:before{content:\"\"}.fa-meh-o:before{content:\"\"}.fa-gamepad:before{content:\"\"}.fa-keyboard-o:before{content:\"\"}.fa-flag-o:before{content:\"\"}.fa-flag-checkered:before{content:\"\"}.fa-terminal:before{content:\"\"}.fa-code:before{content:\"\"}.fa-mail-reply-all:before,.fa-reply-all:before{content:\"\"}.fa-star-half-empty:before,.fa-star-half-full:before,.fa-star-half-o:before{content:\"\"}.fa-location-arrow:before{content:\"\"}.fa-crop:before{content:\"\"}.fa-code-fork:before{content:\"\"}.fa-unlink:before,.fa-chain-broken:before{content:\"\"}.fa-question:before{content:\"\"}.fa-info:before{content:\"\"}.fa-exclamation:before{content:\"\"}.fa-superscript:before{content:\"\"}.fa-subscript:before{content:\"\"}.fa-eraser:before{content:\"\"}.fa-puzzle-piece:before{content:\"\"}.fa-microphone:before{content:\"\"}.fa-microphone-slash:before{content:\"\"}.fa-shield:before{content:\"\"}.fa-calendar-o:before{content:\"\"}.fa-fire-extinguisher:before{content:\"\"}.fa-rocket:before{content:\"\"}.fa-maxcdn:before{content:\"\"}.fa-chevron-circle-left:before{content:\"\"}.fa-chevron-circle-right:before{content:\"\"}.fa-chevron-circle-up:before{content:\"\"}.fa-chevron-circle-down:before{content:\"\"}.fa-html5:before{content:\"\"}.fa-css3:before{content:\"\"}.fa-anchor:before{content:\"\"}.fa-unlock-alt:before{content:\"\"}.fa-bullseye:before{content:\"\"}.fa-ellipsis-h:before{content:\"\"}.fa-ellipsis-v:before{content:\"\"}.fa-rss-square:before{content:\"\"}.fa-play-circle:before{content:\"\"}.fa-ticket:before{content:\"\"}.fa-minus-square:before{content:\"\"}.fa-minus-square-o:before{content:\"\"}.fa-level-up:before{content:\"\"}.fa-level-down:before{content:\"\"}.fa-check-square:before{content:\"\"}.fa-pencil-square:before{content:\"\"}.fa-external-link-square:before{content:\"\"}.fa-share-square:before{content:\"\"}.fa-compass:before{content:\"\"}.fa-toggle-down:before,.fa-caret-square-o-down:before{content:\"\"}.fa-toggle-up:before,.fa-caret-square-o-up:before{content:\"\"}.fa-toggle-right:before,.fa-caret-square-o-right:before{content:\"\"}.fa-euro:before,.fa-eur:before{content:\"\"}.fa-gbp:before{content:\"\"}.fa-dollar:before,.fa-usd:before{content:\"\"}.fa-rupee:before,.fa-inr:before{content:\"\"}.fa-cny:before,.fa-rmb:before,.fa-yen:before,.fa-jpy:before{content:\"\"}.fa-ruble:before,.fa-rouble:before,.fa-rub:before{content:\"\"}.fa-won:before,.fa-krw:before{content:\"\"}.fa-bitcoin:before,.fa-btc:before{content:\"\"}.fa-file:before{content:\"\"}.fa-file-text:before{content:\"\"}.fa-sort-alpha-asc:before{content:\"\"}.fa-sort-alpha-desc:before{content:\"\"}.fa-sort-amount-asc:before{content:\"\"}.fa-sort-amount-desc:before{content:\"\"}.fa-sort-numeric-asc:before{content:\"\"}.fa-sort-numeric-desc:before{content:\"\"}.fa-thumbs-up:before{content:\"\"}.fa-thumbs-down:before{content:\"\"}.fa-youtube-square:before{content:\"\"}.fa-youtube:before{content:\"\"}.fa-xing:before{content:\"\"}.fa-xing-square:before{content:\"\"}.fa-youtube-play:before{content:\"\"}.fa-dropbox:before{content:\"\"}.fa-stack-overflow:before{content:\"\"}.fa-instagram:before{content:\"\"}.fa-flickr:before{content:\"\"}.fa-adn:before{content:\"\"}.fa-bitbucket:before{content:\"\"}.fa-bitbucket-square:before{content:\"\"}.fa-tumblr:before{content:\"\"}.fa-tumblr-square:before{content:\"\"}.fa-long-arrow-down:before{content:\"\"}.fa-long-arrow-up:before{content:\"\"}.fa-long-arrow-left:before{content:\"\"}.fa-long-arrow-right:before{content:\"\"}.fa-apple:before{content:\"\"}.fa-windows:before{content:\"\"}.fa-android:before{content:\"\"}.fa-linux:before{content:\"\"}.fa-dribbble:before{content:\"\"}.fa-skype:before{content:\"\"}.fa-foursquare:before{content:\"\"}.fa-trello:before{content:\"\"}.fa-female:before{content:\"\"}.fa-male:before{content:\"\"}.fa-gittip:before,.fa-gratipay:before{content:\"\"}.fa-sun-o:before{content:\"\"}.fa-moon-o:before{content:\"\"}.fa-archive:before{content:\"\"}.fa-bug:before{content:\"\"}.fa-vk:before{content:\"\"}.fa-weibo:before{content:\"\"}.fa-renren:before{content:\"\"}.fa-pagelines:before{content:\"\"}.fa-stack-exchange:before{content:\"\"}.fa-arrow-circle-o-right:before{content:\"\"}.fa-arrow-circle-o-left:before{content:\"\"}.fa-toggle-left:before,.fa-caret-square-o-left:before{content:\"\"}.fa-dot-circle-o:before{content:\"\"}.fa-wheelchair:before{content:\"\"}.fa-vimeo-square:before{content:\"\"}.fa-turkish-lira:before,.fa-try:before{content:\"\"}.fa-plus-square-o:before{content:\"\"}.fa-space-shuttle:before{content:\"\"}.fa-slack:before{content:\"\"}.fa-envelope-square:before{content:\"\"}.fa-wordpress:before{content:\"\"}.fa-openid:before{content:\"\"}.fa-institution:before,.fa-bank:before,.fa-university:before{content:\"\"}.fa-mortar-board:before,.fa-graduation-cap:before{content:\"\"}.fa-yahoo:before{content:\"\"}.fa-google:before{content:\"\"}.fa-reddit:before{content:\"\"}.fa-reddit-square:before{content:\"\"}.fa-stumbleupon-circle:before{content:\"\"}.fa-stumbleupon:before{content:\"\"}.fa-delicious:before{content:\"\"}.fa-digg:before{content:\"\"}.fa-pied-piper-pp:before{content:\"\"}.fa-pied-piper-alt:before{content:\"\"}.fa-drupal:before{content:\"\"}.fa-joomla:before{content:\"\"}.fa-language:before{content:\"\"}.fa-fax:before{content:\"\"}.fa-building:before{content:\"\"}.fa-child:before{content:\"\"}.fa-paw:before{content:\"\"}.fa-spoon:before{content:\"\"}.fa-cube:before{content:\"\"}.fa-cubes:before{content:\"\"}.fa-behance:before{content:\"\"}.fa-behance-square:before{content:\"\"}.fa-steam:before{content:\"\"}.fa-steam-square:before{content:\"\"}.fa-recycle:before{content:\"\"}.fa-automobile:before,.fa-car:before{content:\"\"}.fa-cab:before,.fa-taxi:before{content:\"\"}.fa-tree:before{content:\"\"}.fa-spotify:before{content:\"\"}.fa-deviantart:before{content:\"\"}.fa-soundcloud:before{content:\"\"}.fa-database:before{content:\"\"}.fa-file-pdf-o:before{content:\"\"}.fa-file-word-o:before{content:\"\"}.fa-file-excel-o:before{content:\"\"}.fa-file-powerpoint-o:before{content:\"\"}.fa-file-photo-o:before,.fa-file-picture-o:before,.fa-file-image-o:before{content:\"\"}.fa-file-zip-o:before,.fa-file-archive-o:before{content:\"\"}.fa-file-sound-o:before,.fa-file-audio-o:before{content:\"\"}.fa-file-movie-o:before,.fa-file-video-o:before{content:\"\"}.fa-file-code-o:before{content:\"\"}.fa-vine:before{content:\"\"}.fa-codepen:before{content:\"\"}.fa-jsfiddle:before{content:\"\"}.fa-life-bouy:before,.fa-life-buoy:before,.fa-life-saver:before,.fa-support:before,.fa-life-ring:before{content:\"\"}.fa-circle-o-notch:before{content:\"\"}.fa-ra:before,.fa-resistance:before,.fa-rebel:before{content:\"\"}.fa-ge:before,.fa-empire:before{content:\"\"}.fa-git-square:before{content:\"\"}.fa-git:before{content:\"\"}.fa-y-combinator-square:before,.fa-yc-square:before,.fa-hacker-news:before{content:\"\"}.fa-tencent-weibo:before{content:\"\"}.fa-qq:before{content:\"\"}.fa-wechat:before,.fa-weixin:before{content:\"\"}.fa-send:before,.fa-paper-plane:before{content:\"\"}.fa-send-o:before,.fa-paper-plane-o:before{content:\"\"}.fa-history:before{content:\"\"}.fa-circle-thin:before{content:\"\"}.fa-header:before{content:\"\"}.fa-paragraph:before{content:\"\"}.fa-sliders:before{content:\"\"}.fa-share-alt:before{content:\"\"}.fa-share-alt-square:before{content:\"\"}.fa-bomb:before{content:\"\"}.fa-soccer-ball-o:before,.fa-futbol-o:before{content:\"\"}.fa-tty:before{content:\"\"}.fa-binoculars:before{content:\"\"}.fa-plug:before{content:\"\"}.fa-slideshare:before{content:\"\"}.fa-twitch:before{content:\"\"}.fa-yelp:before{content:\"\"}.fa-newspaper-o:before{content:\"\"}.fa-wifi:before{content:\"\"}.fa-calculator:before{content:\"\"}.fa-paypal:before{content:\"\"}.fa-google-wallet:before{content:\"\"}.fa-cc-visa:before{content:\"\"}.fa-cc-mastercard:before{content:\"\"}.fa-cc-discover:before{content:\"\"}.fa-cc-amex:before{content:\"\"}.fa-cc-paypal:before{content:\"\"}.fa-cc-stripe:before{content:\"\"}.fa-bell-slash:before{content:\"\"}.fa-bell-slash-o:before{content:\"\"}.fa-trash:before{content:\"\"}.fa-copyright:before{content:\"\"}.fa-at:before{content:\"\"}.fa-eyedropper:before{content:\"\"}.fa-paint-brush:before{content:\"\"}.fa-birthday-cake:before{content:\"\"}.fa-area-chart:before{content:\"\"}.fa-pie-chart:before{content:\"\"}.fa-line-chart:before{content:\"\"}.fa-lastfm:before{content:\"\"}.fa-lastfm-square:before{content:\"\"}.fa-toggle-off:before{content:\"\"}.fa-toggle-on:before{content:\"\"}.fa-bicycle:before{content:\"\"}.fa-bus:before{content:\"\"}.fa-ioxhost:before{content:\"\"}.fa-angellist:before{content:\"\"}.fa-cc:before{content:\"\"}.fa-shekel:before,.fa-sheqel:before,.fa-ils:before{content:\"\"}.fa-meanpath:before{content:\"\"}.fa-buysellads:before{content:\"\"}.fa-connectdevelop:before{content:\"\"}.fa-dashcube:before{content:\"\"}.fa-forumbee:before{content:\"\"}.fa-leanpub:before{content:\"\"}.fa-sellsy:before{content:\"\"}.fa-shirtsinbulk:before{content:\"\"}.fa-simplybuilt:before{content:\"\"}.fa-skyatlas:before{content:\"\"}.fa-cart-plus:before{content:\"\"}.fa-cart-arrow-down:before{content:\"\"}.fa-diamond:before{content:\"\"}.fa-ship:before{content:\"\"}.fa-user-secret:before{content:\"\"}.fa-motorcycle:before{content:\"\"}.fa-street-view:before{content:\"\"}.fa-heartbeat:before{content:\"\"}.fa-venus:before{content:\"\"}.fa-mars:before{content:\"\"}.fa-mercury:before{content:\"\"}.fa-intersex:before,.fa-transgender:before{content:\"\"}.fa-transgender-alt:before{content:\"\"}.fa-venus-double:before{content:\"\"}.fa-mars-double:before{content:\"\"}.fa-venus-mars:before{content:\"\"}.fa-mars-stroke:before{content:\"\"}.fa-mars-stroke-v:before{content:\"\"}.fa-mars-stroke-h:before{content:\"\"}.fa-neuter:before{content:\"\"}.fa-genderless:before{content:\"\"}.fa-facebook-official:before{content:\"\"}.fa-pinterest-p:before{content:\"\"}.fa-whatsapp:before{content:\"\"}.fa-server:before{content:\"\"}.fa-user-plus:before{content:\"\"}.fa-user-times:before{content:\"\"}.fa-hotel:before,.fa-bed:before{content:\"\"}.fa-viacoin:before{content:\"\"}.fa-train:before{content:\"\"}.fa-subway:before{content:\"\"}.fa-medium:before{content:\"\"}.fa-yc:before,.fa-y-combinator:before{content:\"\"}.fa-optin-monster:before{content:\"\"}.fa-opencart:before{content:\"\"}.fa-expeditedssl:before{content:\"\"}.fa-battery-4:before,.fa-battery:before,.fa-battery-full:before{content:\"\"}.fa-battery-3:before,.fa-battery-three-quarters:before{content:\"\"}.fa-battery-2:before,.fa-battery-half:before{content:\"\"}.fa-battery-1:before,.fa-battery-quarter:before{content:\"\"}.fa-battery-0:before,.fa-battery-empty:before{content:\"\"}.fa-mouse-pointer:before{content:\"\"}.fa-i-cursor:before{content:\"\"}.fa-object-group:before{content:\"\"}.fa-object-ungroup:before{content:\"\"}.fa-sticky-note:before{content:\"\"}.fa-sticky-note-o:before{content:\"\"}.fa-cc-jcb:before{content:\"\"}.fa-cc-diners-club:before{content:\"\"}.fa-clone:before{content:\"\"}.fa-balance-scale:before{content:\"\"}.fa-hourglass-o:before{content:\"\"}.fa-hourglass-1:before,.fa-hourglass-start:before{content:\"\"}.fa-hourglass-2:before,.fa-hourglass-half:before{content:\"\"}.fa-hourglass-3:before,.fa-hourglass-end:before{content:\"\"}.fa-hourglass:before{content:\"\"}.fa-hand-grab-o:before,.fa-hand-rock-o:before{content:\"\"}.fa-hand-stop-o:before,.fa-hand-paper-o:before{content:\"\"}.fa-hand-scissors-o:before{content:\"\"}.fa-hand-lizard-o:before{content:\"\"}.fa-hand-spock-o:before{content:\"\"}.fa-hand-pointer-o:before{content:\"\"}.fa-hand-peace-o:before{content:\"\"}.fa-trademark:before{content:\"\"}.fa-registered:before{content:\"\"}.fa-creative-commons:before{content:\"\"}.fa-gg:before{content:\"\"}.fa-gg-circle:before{content:\"\"}.fa-tripadvisor:before{content:\"\"}.fa-odnoklassniki:before{content:\"\"}.fa-odnoklassniki-square:before{content:\"\"}.fa-get-pocket:before{content:\"\"}.fa-wikipedia-w:before{content:\"\"}.fa-safari:before{content:\"\"}.fa-chrome:before{content:\"\"}.fa-firefox:before{content:\"\"}.fa-opera:before{content:\"\"}.fa-internet-explorer:before{content:\"\"}.fa-tv:before,.fa-television:before{content:\"\"}.fa-contao:before{content:\"\"}.fa-500px:before{content:\"\"}.fa-amazon:before{content:\"\"}.fa-calendar-plus-o:before{content:\"\"}.fa-calendar-minus-o:before{content:\"\"}.fa-calendar-times-o:before{content:\"\"}.fa-calendar-check-o:before{content:\"\"}.fa-industry:before{content:\"\"}.fa-map-pin:before{content:\"\"}.fa-map-signs:before{content:\"\"}.fa-map-o:before{content:\"\"}.fa-map:before{content:\"\"}.fa-commenting:before{content:\"\"}.fa-commenting-o:before{content:\"\"}.fa-houzz:before{content:\"\"}.fa-vimeo:before{content:\"\"}.fa-black-tie:before{content:\"\"}.fa-fonticons:before{content:\"\"}.fa-reddit-alien:before{content:\"\"}.fa-edge:before{content:\"\"}.fa-credit-card-alt:before{content:\"\"}.fa-codiepie:before{content:\"\"}.fa-modx:before{content:\"\"}.fa-fort-awesome:before{content:\"\"}.fa-usb:before{content:\"\"}.fa-product-hunt:before{content:\"\"}.fa-mixcloud:before{content:\"\"}.fa-scribd:before{content:\"\"}.fa-pause-circle:before{content:\"\"}.fa-pause-circle-o:before{content:\"\"}.fa-stop-circle:before{content:\"\"}.fa-stop-circle-o:before{content:\"\"}.fa-shopping-bag:before{content:\"\"}.fa-shopping-basket:before{content:\"\"}.fa-hashtag:before{content:\"\"}.fa-bluetooth:before{content:\"\"}.fa-bluetooth-b:before{content:\"\"}.fa-percent:before{content:\"\"}.fa-gitlab:before{content:\"\"}.fa-wpbeginner:before{content:\"\"}.fa-wpforms:before{content:\"\"}.fa-envira:before{content:\"\"}.fa-universal-access:before{content:\"\"}.fa-wheelchair-alt:before{content:\"\"}.fa-question-circle-o:before{content:\"\"}.fa-blind:before{content:\"\"}.fa-audio-description:before{content:\"\"}.fa-volume-control-phone:before{content:\"\"}.fa-braille:before{content:\"\"}.fa-assistive-listening-systems:before{content:\"\"}.fa-asl-interpreting:before,.fa-american-sign-language-interpreting:before{content:\"\"}.fa-deafness:before,.fa-hard-of-hearing:before,.fa-deaf:before{content:\"\"}.fa-glide:before{content:\"\"}.fa-glide-g:before{content:\"\"}.fa-signing:before,.fa-sign-language:before{content:\"\"}.fa-low-vision:before{content:\"\"}.fa-viadeo:before{content:\"\"}.fa-viadeo-square:before{content:\"\"}.fa-snapchat:before{content:\"\"}.fa-snapchat-ghost:before{content:\"\"}.fa-snapchat-square:before{content:\"\"}.fa-pied-piper:before{content:\"\"}.fa-first-order:before{content:\"\"}.fa-yoast:before{content:\"\"}.fa-themeisle:before{content:\"\"}.fa-google-plus-circle:before,.fa-google-plus-official:before{content:\"\"}.fa-fa:before,.fa-font-awesome:before{content:\"\"}.fa-handshake-o:before{content:\"\"}.fa-envelope-open:before{content:\"\"}.fa-envelope-open-o:before{content:\"\"}.fa-linode:before{content:\"\"}.fa-address-book:before{content:\"\"}.fa-address-book-o:before{content:\"\"}.fa-vcard:before,.fa-address-card:before{content:\"\"}.fa-vcard-o:before,.fa-address-card-o:before{content:\"\"}.fa-user-circle:before{content:\"\"}.fa-user-circle-o:before{content:\"\"}.fa-user-o:before{content:\"\"}.fa-id-badge:before{content:\"\"}.fa-drivers-license:before,.fa-id-card:before{content:\"\"}.fa-drivers-license-o:before,.fa-id-card-o:before{content:\"\"}.fa-quora:before{content:\"\"}.fa-free-code-camp:before{content:\"\"}.fa-telegram:before{content:\"\"}.fa-thermometer-4:before,.fa-thermometer:before,.fa-thermometer-full:before{content:\"\"}.fa-thermometer-3:before,.fa-thermometer-three-quarters:before{content:\"\"}.fa-thermometer-2:before,.fa-thermometer-half:before{content:\"\"}.fa-thermometer-1:before,.fa-thermometer-quarter:before{content:\"\"}.fa-thermometer-0:before,.fa-thermometer-empty:before{content:\"\"}.fa-shower:before{content:\"\"}.fa-bathtub:before,.fa-s15:before,.fa-bath:before{content:\"\"}.fa-podcast:before{content:\"\"}.fa-window-maximize:before{content:\"\"}.fa-window-minimize:before{content:\"\"}.fa-window-restore:before{content:\"\"}.fa-times-rectangle:before,.fa-window-close:before{content:\"\"}.fa-times-rectangle-o:before,.fa-window-close-o:before{content:\"\"}.fa-bandcamp:before{content:\"\"}.fa-grav:before{content:\"\"}.fa-etsy:before{content:\"\"}.fa-imdb:before{content:\"\"}.fa-ravelry:before{content:\"\"}.fa-eercast:before{content:\"\"}.fa-microchip:before{content:\"\"}.fa-snowflake-o:before{content:\"\"}.fa-superpowers:before{content:\"\"}.fa-wpexplorer:before{content:\"\"}.fa-meetup:before{content:\"\"}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto}","/*!\n * Font Awesome 4.7.0 by @davegandy - http://fontawesome.io - @fontawesome\n * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License)\n */\n/* FONT PATH\n * -------------------------- */\n@font-face {\n font-family: 'FontAwesome';\n src: url('../fonts/fontawesome-webfont.eot?v=4.7.0');\n src: url('../fonts/fontawesome-webfont.eot?#iefix&v=4.7.0') format('embedded-opentype'), url('../fonts/fontawesome-webfont.woff2?v=4.7.0') format('woff2'), url('../fonts/fontawesome-webfont.woff?v=4.7.0') format('woff'), url('../fonts/fontawesome-webfont.ttf?v=4.7.0') format('truetype'), url('../fonts/fontawesome-webfont.svg?v=4.7.0#fontawesomeregular') format('svg');\n font-weight: normal;\n font-style: normal;\n}\n.fa {\n display: inline-block;\n font: normal normal normal 14px/1 FontAwesome;\n font-size: inherit;\n text-rendering: auto;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n}\n/* makes the font 33% larger relative to the icon container */\n.fa-lg {\n font-size: 1.33333333em;\n line-height: 0.75em;\n vertical-align: -15%;\n}\n.fa-2x {\n font-size: 2em;\n}\n.fa-3x {\n font-size: 3em;\n}\n.fa-4x {\n font-size: 4em;\n}\n.fa-5x {\n font-size: 5em;\n}\n.fa-fw {\n width: 1.28571429em;\n text-align: center;\n}\n.fa-ul {\n padding-left: 0;\n margin-left: 2.14285714em;\n list-style-type: none;\n}\n.fa-ul > li {\n position: relative;\n}\n.fa-li {\n position: absolute;\n left: -2.14285714em;\n width: 2.14285714em;\n top: 0.14285714em;\n text-align: center;\n}\n.fa-li.fa-lg {\n left: -1.85714286em;\n}\n.fa-border {\n padding: .2em .25em .15em;\n border: solid 0.08em #eeeeee;\n border-radius: .1em;\n}\n.fa-pull-left {\n float: left;\n}\n.fa-pull-right {\n float: right;\n}\n.fa.fa-pull-left {\n margin-right: .3em;\n}\n.fa.fa-pull-right {\n margin-left: .3em;\n}\n/* Deprecated as of 4.4.0 */\n.pull-right {\n float: right;\n}\n.pull-left {\n float: left;\n}\n.fa.pull-left {\n margin-right: .3em;\n}\n.fa.pull-right {\n margin-left: .3em;\n}\n.fa-spin {\n -webkit-animation: fa-spin 2s infinite linear;\n animation: fa-spin 2s infinite linear;\n}\n.fa-pulse {\n -webkit-animation: fa-spin 1s infinite steps(8);\n animation: fa-spin 1s infinite steps(8);\n}\n@-webkit-keyframes fa-spin {\n 0% {\n -webkit-transform: rotate(0deg);\n transform: rotate(0deg);\n }\n 100% {\n -webkit-transform: rotate(359deg);\n transform: rotate(359deg);\n }\n}\n@keyframes fa-spin {\n 0% {\n -webkit-transform: rotate(0deg);\n transform: rotate(0deg);\n }\n 100% {\n -webkit-transform: rotate(359deg);\n transform: rotate(359deg);\n }\n}\n.fa-rotate-90 {\n -ms-filter: \"progid:DXImageTransform.Microsoft.BasicImage(rotation=1)\";\n -webkit-transform: rotate(90deg);\n -ms-transform: rotate(90deg);\n transform: rotate(90deg);\n}\n.fa-rotate-180 {\n -ms-filter: \"progid:DXImageTransform.Microsoft.BasicImage(rotation=2)\";\n -webkit-transform: rotate(180deg);\n -ms-transform: rotate(180deg);\n transform: rotate(180deg);\n}\n.fa-rotate-270 {\n -ms-filter: \"progid:DXImageTransform.Microsoft.BasicImage(rotation=3)\";\n -webkit-transform: rotate(270deg);\n -ms-transform: rotate(270deg);\n transform: rotate(270deg);\n}\n.fa-flip-horizontal {\n -ms-filter: \"progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)\";\n -webkit-transform: scale(-1, 1);\n -ms-transform: scale(-1, 1);\n transform: scale(-1, 1);\n}\n.fa-flip-vertical {\n -ms-filter: \"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)\";\n -webkit-transform: scale(1, -1);\n -ms-transform: scale(1, -1);\n transform: scale(1, -1);\n}\n:root .fa-rotate-90,\n:root .fa-rotate-180,\n:root .fa-rotate-270,\n:root .fa-flip-horizontal,\n:root .fa-flip-vertical {\n filter: none;\n}\n.fa-stack {\n position: relative;\n display: inline-block;\n width: 2em;\n height: 2em;\n line-height: 2em;\n vertical-align: middle;\n}\n.fa-stack-1x,\n.fa-stack-2x {\n position: absolute;\n left: 0;\n width: 100%;\n text-align: center;\n}\n.fa-stack-1x {\n line-height: inherit;\n}\n.fa-stack-2x {\n font-size: 2em;\n}\n.fa-inverse {\n color: #ffffff;\n}\n/* Font Awesome uses the Unicode Private Use Area (PUA) to ensure screen\n readers do not read off random characters that represent icons */\n.fa-glass:before {\n content: \"\\f000\";\n}\n.fa-music:before {\n content: \"\\f001\";\n}\n.fa-search:before {\n content: \"\\f002\";\n}\n.fa-envelope-o:before {\n content: \"\\f003\";\n}\n.fa-heart:before {\n content: \"\\f004\";\n}\n.fa-star:before {\n content: \"\\f005\";\n}\n.fa-star-o:before {\n content: \"\\f006\";\n}\n.fa-user:before {\n content: \"\\f007\";\n}\n.fa-film:before {\n content: \"\\f008\";\n}\n.fa-th-large:before {\n content: \"\\f009\";\n}\n.fa-th:before {\n content: \"\\f00a\";\n}\n.fa-th-list:before {\n content: \"\\f00b\";\n}\n.fa-check:before {\n content: \"\\f00c\";\n}\n.fa-remove:before,\n.fa-close:before,\n.fa-times:before {\n content: \"\\f00d\";\n}\n.fa-search-plus:before {\n content: \"\\f00e\";\n}\n.fa-search-minus:before {\n content: \"\\f010\";\n}\n.fa-power-off:before {\n content: \"\\f011\";\n}\n.fa-signal:before {\n content: \"\\f012\";\n}\n.fa-gear:before,\n.fa-cog:before {\n content: \"\\f013\";\n}\n.fa-trash-o:before {\n content: \"\\f014\";\n}\n.fa-home:before {\n content: \"\\f015\";\n}\n.fa-file-o:before {\n content: \"\\f016\";\n}\n.fa-clock-o:before {\n content: \"\\f017\";\n}\n.fa-road:before {\n content: \"\\f018\";\n}\n.fa-download:before {\n content: \"\\f019\";\n}\n.fa-arrow-circle-o-down:before {\n content: \"\\f01a\";\n}\n.fa-arrow-circle-o-up:before {\n content: \"\\f01b\";\n}\n.fa-inbox:before {\n content: \"\\f01c\";\n}\n.fa-play-circle-o:before {\n content: \"\\f01d\";\n}\n.fa-rotate-right:before,\n.fa-repeat:before {\n content: \"\\f01e\";\n}\n.fa-refresh:before {\n content: \"\\f021\";\n}\n.fa-list-alt:before {\n content: \"\\f022\";\n}\n.fa-lock:before {\n content: \"\\f023\";\n}\n.fa-flag:before {\n content: \"\\f024\";\n}\n.fa-headphones:before {\n content: \"\\f025\";\n}\n.fa-volume-off:before {\n content: \"\\f026\";\n}\n.fa-volume-down:before {\n content: \"\\f027\";\n}\n.fa-volume-up:before {\n content: \"\\f028\";\n}\n.fa-qrcode:before {\n content: \"\\f029\";\n}\n.fa-barcode:before {\n content: \"\\f02a\";\n}\n.fa-tag:before {\n content: \"\\f02b\";\n}\n.fa-tags:before {\n content: \"\\f02c\";\n}\n.fa-book:before {\n content: \"\\f02d\";\n}\n.fa-bookmark:before {\n content: \"\\f02e\";\n}\n.fa-print:before {\n content: \"\\f02f\";\n}\n.fa-camera:before {\n content: \"\\f030\";\n}\n.fa-font:before {\n content: \"\\f031\";\n}\n.fa-bold:before {\n content: \"\\f032\";\n}\n.fa-italic:before {\n content: \"\\f033\";\n}\n.fa-text-height:before {\n content: \"\\f034\";\n}\n.fa-text-width:before {\n content: \"\\f035\";\n}\n.fa-align-left:before {\n content: \"\\f036\";\n}\n.fa-align-center:before {\n content: \"\\f037\";\n}\n.fa-align-right:before {\n content: \"\\f038\";\n}\n.fa-align-justify:before {\n content: \"\\f039\";\n}\n.fa-list:before {\n content: \"\\f03a\";\n}\n.fa-dedent:before,\n.fa-outdent:before {\n content: \"\\f03b\";\n}\n.fa-indent:before {\n content: \"\\f03c\";\n}\n.fa-video-camera:before {\n content: \"\\f03d\";\n}\n.fa-photo:before,\n.fa-image:before,\n.fa-picture-o:before {\n content: \"\\f03e\";\n}\n.fa-pencil:before {\n content: \"\\f040\";\n}\n.fa-map-marker:before {\n content: \"\\f041\";\n}\n.fa-adjust:before {\n content: \"\\f042\";\n}\n.fa-tint:before {\n content: \"\\f043\";\n}\n.fa-edit:before,\n.fa-pencil-square-o:before {\n content: \"\\f044\";\n}\n.fa-share-square-o:before {\n content: \"\\f045\";\n}\n.fa-check-square-o:before {\n content: \"\\f046\";\n}\n.fa-arrows:before {\n content: \"\\f047\";\n}\n.fa-step-backward:before {\n content: \"\\f048\";\n}\n.fa-fast-backward:before {\n content: \"\\f049\";\n}\n.fa-backward:before {\n content: \"\\f04a\";\n}\n.fa-play:before {\n content: \"\\f04b\";\n}\n.fa-pause:before {\n content: \"\\f04c\";\n}\n.fa-stop:before {\n content: \"\\f04d\";\n}\n.fa-forward:before {\n content: \"\\f04e\";\n}\n.fa-fast-forward:before {\n content: \"\\f050\";\n}\n.fa-step-forward:before {\n content: \"\\f051\";\n}\n.fa-eject:before {\n content: \"\\f052\";\n}\n.fa-chevron-left:before {\n content: \"\\f053\";\n}\n.fa-chevron-right:before {\n content: \"\\f054\";\n}\n.fa-plus-circle:before {\n content: \"\\f055\";\n}\n.fa-minus-circle:before {\n content: \"\\f056\";\n}\n.fa-times-circle:before {\n content: \"\\f057\";\n}\n.fa-check-circle:before {\n content: \"\\f058\";\n}\n.fa-question-circle:before {\n content: \"\\f059\";\n}\n.fa-info-circle:before {\n content: \"\\f05a\";\n}\n.fa-crosshairs:before {\n content: \"\\f05b\";\n}\n.fa-times-circle-o:before {\n content: \"\\f05c\";\n}\n.fa-check-circle-o:before {\n content: \"\\f05d\";\n}\n.fa-ban:before {\n content: \"\\f05e\";\n}\n.fa-arrow-left:before {\n content: \"\\f060\";\n}\n.fa-arrow-right:before {\n content: \"\\f061\";\n}\n.fa-arrow-up:before {\n content: \"\\f062\";\n}\n.fa-arrow-down:before {\n content: \"\\f063\";\n}\n.fa-mail-forward:before,\n.fa-share:before {\n content: \"\\f064\";\n}\n.fa-expand:before {\n content: \"\\f065\";\n}\n.fa-compress:before {\n content: \"\\f066\";\n}\n.fa-plus:before {\n content: \"\\f067\";\n}\n.fa-minus:before {\n content: \"\\f068\";\n}\n.fa-asterisk:before {\n content: \"\\f069\";\n}\n.fa-exclamation-circle:before {\n content: \"\\f06a\";\n}\n.fa-gift:before {\n content: \"\\f06b\";\n}\n.fa-leaf:before {\n content: \"\\f06c\";\n}\n.fa-fire:before {\n content: \"\\f06d\";\n}\n.fa-eye:before {\n content: \"\\f06e\";\n}\n.fa-eye-slash:before {\n content: \"\\f070\";\n}\n.fa-warning:before,\n.fa-exclamation-triangle:before {\n content: \"\\f071\";\n}\n.fa-plane:before {\n content: \"\\f072\";\n}\n.fa-calendar:before {\n content: \"\\f073\";\n}\n.fa-random:before {\n content: \"\\f074\";\n}\n.fa-comment:before {\n content: \"\\f075\";\n}\n.fa-magnet:before {\n content: \"\\f076\";\n}\n.fa-chevron-up:before {\n content: \"\\f077\";\n}\n.fa-chevron-down:before {\n content: \"\\f078\";\n}\n.fa-retweet:before {\n content: \"\\f079\";\n}\n.fa-shopping-cart:before {\n content: \"\\f07a\";\n}\n.fa-folder:before {\n content: \"\\f07b\";\n}\n.fa-folder-open:before {\n content: \"\\f07c\";\n}\n.fa-arrows-v:before {\n content: \"\\f07d\";\n}\n.fa-arrows-h:before {\n content: \"\\f07e\";\n}\n.fa-bar-chart-o:before,\n.fa-bar-chart:before {\n content: \"\\f080\";\n}\n.fa-twitter-square:before {\n content: \"\\f081\";\n}\n.fa-facebook-square:before {\n content: \"\\f082\";\n}\n.fa-camera-retro:before {\n content: \"\\f083\";\n}\n.fa-key:before {\n content: \"\\f084\";\n}\n.fa-gears:before,\n.fa-cogs:before {\n content: \"\\f085\";\n}\n.fa-comments:before {\n content: \"\\f086\";\n}\n.fa-thumbs-o-up:before {\n content: \"\\f087\";\n}\n.fa-thumbs-o-down:before {\n content: \"\\f088\";\n}\n.fa-star-half:before {\n content: \"\\f089\";\n}\n.fa-heart-o:before {\n content: \"\\f08a\";\n}\n.fa-sign-out:before {\n content: \"\\f08b\";\n}\n.fa-linkedin-square:before {\n content: \"\\f08c\";\n}\n.fa-thumb-tack:before {\n content: \"\\f08d\";\n}\n.fa-external-link:before {\n content: \"\\f08e\";\n}\n.fa-sign-in:before {\n content: \"\\f090\";\n}\n.fa-trophy:before {\n content: \"\\f091\";\n}\n.fa-github-square:before {\n content: \"\\f092\";\n}\n.fa-upload:before {\n content: \"\\f093\";\n}\n.fa-lemon-o:before {\n content: \"\\f094\";\n}\n.fa-phone:before {\n content: \"\\f095\";\n}\n.fa-square-o:before {\n content: \"\\f096\";\n}\n.fa-bookmark-o:before {\n content: \"\\f097\";\n}\n.fa-phone-square:before {\n content: \"\\f098\";\n}\n.fa-twitter:before {\n content: \"\\f099\";\n}\n.fa-facebook-f:before,\n.fa-facebook:before {\n content: \"\\f09a\";\n}\n.fa-github:before {\n content: \"\\f09b\";\n}\n.fa-unlock:before {\n content: \"\\f09c\";\n}\n.fa-credit-card:before {\n content: \"\\f09d\";\n}\n.fa-feed:before,\n.fa-rss:before {\n content: \"\\f09e\";\n}\n.fa-hdd-o:before {\n content: \"\\f0a0\";\n}\n.fa-bullhorn:before {\n content: \"\\f0a1\";\n}\n.fa-bell:before {\n content: \"\\f0f3\";\n}\n.fa-certificate:before {\n content: \"\\f0a3\";\n}\n.fa-hand-o-right:before {\n content: \"\\f0a4\";\n}\n.fa-hand-o-left:before {\n content: \"\\f0a5\";\n}\n.fa-hand-o-up:before {\n content: \"\\f0a6\";\n}\n.fa-hand-o-down:before {\n content: \"\\f0a7\";\n}\n.fa-arrow-circle-left:before {\n content: \"\\f0a8\";\n}\n.fa-arrow-circle-right:before {\n content: \"\\f0a9\";\n}\n.fa-arrow-circle-up:before {\n content: \"\\f0aa\";\n}\n.fa-arrow-circle-down:before {\n content: \"\\f0ab\";\n}\n.fa-globe:before {\n content: \"\\f0ac\";\n}\n.fa-wrench:before {\n content: \"\\f0ad\";\n}\n.fa-tasks:before {\n content: \"\\f0ae\";\n}\n.fa-filter:before {\n content: \"\\f0b0\";\n}\n.fa-briefcase:before {\n content: \"\\f0b1\";\n}\n.fa-arrows-alt:before {\n content: \"\\f0b2\";\n}\n.fa-group:before,\n.fa-users:before {\n content: \"\\f0c0\";\n}\n.fa-chain:before,\n.fa-link:before {\n content: \"\\f0c1\";\n}\n.fa-cloud:before {\n content: \"\\f0c2\";\n}\n.fa-flask:before {\n content: \"\\f0c3\";\n}\n.fa-cut:before,\n.fa-scissors:before {\n content: \"\\f0c4\";\n}\n.fa-copy:before,\n.fa-files-o:before {\n content: \"\\f0c5\";\n}\n.fa-paperclip:before {\n content: \"\\f0c6\";\n}\n.fa-save:before,\n.fa-floppy-o:before {\n content: \"\\f0c7\";\n}\n.fa-square:before {\n content: \"\\f0c8\";\n}\n.fa-navicon:before,\n.fa-reorder:before,\n.fa-bars:before {\n content: \"\\f0c9\";\n}\n.fa-list-ul:before {\n content: \"\\f0ca\";\n}\n.fa-list-ol:before {\n content: \"\\f0cb\";\n}\n.fa-strikethrough:before {\n content: \"\\f0cc\";\n}\n.fa-underline:before {\n content: \"\\f0cd\";\n}\n.fa-table:before {\n content: \"\\f0ce\";\n}\n.fa-magic:before {\n content: \"\\f0d0\";\n}\n.fa-truck:before {\n content: \"\\f0d1\";\n}\n.fa-pinterest:before {\n content: \"\\f0d2\";\n}\n.fa-pinterest-square:before {\n content: \"\\f0d3\";\n}\n.fa-google-plus-square:before {\n content: \"\\f0d4\";\n}\n.fa-google-plus:before {\n content: \"\\f0d5\";\n}\n.fa-money:before {\n content: \"\\f0d6\";\n}\n.fa-caret-down:before {\n content: \"\\f0d7\";\n}\n.fa-caret-up:before {\n content: \"\\f0d8\";\n}\n.fa-caret-left:before {\n content: \"\\f0d9\";\n}\n.fa-caret-right:before {\n content: \"\\f0da\";\n}\n.fa-columns:before {\n content: \"\\f0db\";\n}\n.fa-unsorted:before,\n.fa-sort:before {\n content: \"\\f0dc\";\n}\n.fa-sort-down:before,\n.fa-sort-desc:before {\n content: \"\\f0dd\";\n}\n.fa-sort-up:before,\n.fa-sort-asc:before {\n content: \"\\f0de\";\n}\n.fa-envelope:before {\n content: \"\\f0e0\";\n}\n.fa-linkedin:before {\n content: \"\\f0e1\";\n}\n.fa-rotate-left:before,\n.fa-undo:before {\n content: \"\\f0e2\";\n}\n.fa-legal:before,\n.fa-gavel:before {\n content: \"\\f0e3\";\n}\n.fa-dashboard:before,\n.fa-tachometer:before {\n content: \"\\f0e4\";\n}\n.fa-comment-o:before {\n content: \"\\f0e5\";\n}\n.fa-comments-o:before {\n content: \"\\f0e6\";\n}\n.fa-flash:before,\n.fa-bolt:before {\n content: \"\\f0e7\";\n}\n.fa-sitemap:before {\n content: \"\\f0e8\";\n}\n.fa-umbrella:before {\n content: \"\\f0e9\";\n}\n.fa-paste:before,\n.fa-clipboard:before {\n content: \"\\f0ea\";\n}\n.fa-lightbulb-o:before {\n content: \"\\f0eb\";\n}\n.fa-exchange:before {\n content: \"\\f0ec\";\n}\n.fa-cloud-download:before {\n content: \"\\f0ed\";\n}\n.fa-cloud-upload:before {\n content: \"\\f0ee\";\n}\n.fa-user-md:before {\n content: \"\\f0f0\";\n}\n.fa-stethoscope:before {\n content: \"\\f0f1\";\n}\n.fa-suitcase:before {\n content: \"\\f0f2\";\n}\n.fa-bell-o:before {\n content: \"\\f0a2\";\n}\n.fa-coffee:before {\n content: \"\\f0f4\";\n}\n.fa-cutlery:before {\n content: \"\\f0f5\";\n}\n.fa-file-text-o:before {\n content: \"\\f0f6\";\n}\n.fa-building-o:before {\n content: \"\\f0f7\";\n}\n.fa-hospital-o:before {\n content: \"\\f0f8\";\n}\n.fa-ambulance:before {\n content: \"\\f0f9\";\n}\n.fa-medkit:before {\n content: \"\\f0fa\";\n}\n.fa-fighter-jet:before {\n content: \"\\f0fb\";\n}\n.fa-beer:before {\n content: \"\\f0fc\";\n}\n.fa-h-square:before {\n content: \"\\f0fd\";\n}\n.fa-plus-square:before {\n content: \"\\f0fe\";\n}\n.fa-angle-double-left:before {\n content: \"\\f100\";\n}\n.fa-angle-double-right:before {\n content: \"\\f101\";\n}\n.fa-angle-double-up:before {\n content: \"\\f102\";\n}\n.fa-angle-double-down:before {\n content: \"\\f103\";\n}\n.fa-angle-left:before {\n content: \"\\f104\";\n}\n.fa-angle-right:before {\n content: \"\\f105\";\n}\n.fa-angle-up:before {\n content: \"\\f106\";\n}\n.fa-angle-down:before {\n content: \"\\f107\";\n}\n.fa-desktop:before {\n content: \"\\f108\";\n}\n.fa-laptop:before {\n content: \"\\f109\";\n}\n.fa-tablet:before {\n content: \"\\f10a\";\n}\n.fa-mobile-phone:before,\n.fa-mobile:before {\n content: \"\\f10b\";\n}\n.fa-circle-o:before {\n content: \"\\f10c\";\n}\n.fa-quote-left:before {\n content: \"\\f10d\";\n}\n.fa-quote-right:before {\n content: \"\\f10e\";\n}\n.fa-spinner:before {\n content: \"\\f110\";\n}\n.fa-circle:before {\n content: \"\\f111\";\n}\n.fa-mail-reply:before,\n.fa-reply:before {\n content: \"\\f112\";\n}\n.fa-github-alt:before {\n content: \"\\f113\";\n}\n.fa-folder-o:before {\n content: \"\\f114\";\n}\n.fa-folder-open-o:before {\n content: \"\\f115\";\n}\n.fa-smile-o:before {\n content: \"\\f118\";\n}\n.fa-frown-o:before {\n content: \"\\f119\";\n}\n.fa-meh-o:before {\n content: \"\\f11a\";\n}\n.fa-gamepad:before {\n content: \"\\f11b\";\n}\n.fa-keyboard-o:before {\n content: \"\\f11c\";\n}\n.fa-flag-o:before {\n content: \"\\f11d\";\n}\n.fa-flag-checkered:before {\n content: \"\\f11e\";\n}\n.fa-terminal:before {\n content: \"\\f120\";\n}\n.fa-code:before {\n content: \"\\f121\";\n}\n.fa-mail-reply-all:before,\n.fa-reply-all:before {\n content: \"\\f122\";\n}\n.fa-star-half-empty:before,\n.fa-star-half-full:before,\n.fa-star-half-o:before {\n content: \"\\f123\";\n}\n.fa-location-arrow:before {\n content: \"\\f124\";\n}\n.fa-crop:before {\n content: \"\\f125\";\n}\n.fa-code-fork:before {\n content: \"\\f126\";\n}\n.fa-unlink:before,\n.fa-chain-broken:before {\n content: \"\\f127\";\n}\n.fa-question:before {\n content: \"\\f128\";\n}\n.fa-info:before {\n content: \"\\f129\";\n}\n.fa-exclamation:before {\n content: \"\\f12a\";\n}\n.fa-superscript:before {\n content: \"\\f12b\";\n}\n.fa-subscript:before {\n content: \"\\f12c\";\n}\n.fa-eraser:before {\n content: \"\\f12d\";\n}\n.fa-puzzle-piece:before {\n content: \"\\f12e\";\n}\n.fa-microphone:before {\n content: \"\\f130\";\n}\n.fa-microphone-slash:before {\n content: \"\\f131\";\n}\n.fa-shield:before {\n content: \"\\f132\";\n}\n.fa-calendar-o:before {\n content: \"\\f133\";\n}\n.fa-fire-extinguisher:before {\n content: \"\\f134\";\n}\n.fa-rocket:before {\n content: \"\\f135\";\n}\n.fa-maxcdn:before {\n content: \"\\f136\";\n}\n.fa-chevron-circle-left:before {\n content: \"\\f137\";\n}\n.fa-chevron-circle-right:before {\n content: \"\\f138\";\n}\n.fa-chevron-circle-up:before {\n content: \"\\f139\";\n}\n.fa-chevron-circle-down:before {\n content: \"\\f13a\";\n}\n.fa-html5:before {\n content: \"\\f13b\";\n}\n.fa-css3:before {\n content: \"\\f13c\";\n}\n.fa-anchor:before {\n content: \"\\f13d\";\n}\n.fa-unlock-alt:before {\n content: \"\\f13e\";\n}\n.fa-bullseye:before {\n content: \"\\f140\";\n}\n.fa-ellipsis-h:before {\n content: \"\\f141\";\n}\n.fa-ellipsis-v:before {\n content: \"\\f142\";\n}\n.fa-rss-square:before {\n content: \"\\f143\";\n}\n.fa-play-circle:before {\n content: \"\\f144\";\n}\n.fa-ticket:before {\n content: \"\\f145\";\n}\n.fa-minus-square:before {\n content: \"\\f146\";\n}\n.fa-minus-square-o:before {\n content: \"\\f147\";\n}\n.fa-level-up:before {\n content: \"\\f148\";\n}\n.fa-level-down:before {\n content: \"\\f149\";\n}\n.fa-check-square:before {\n content: \"\\f14a\";\n}\n.fa-pencil-square:before {\n content: \"\\f14b\";\n}\n.fa-external-link-square:before {\n content: \"\\f14c\";\n}\n.fa-share-square:before {\n content: \"\\f14d\";\n}\n.fa-compass:before {\n content: \"\\f14e\";\n}\n.fa-toggle-down:before,\n.fa-caret-square-o-down:before {\n content: \"\\f150\";\n}\n.fa-toggle-up:before,\n.fa-caret-square-o-up:before {\n content: \"\\f151\";\n}\n.fa-toggle-right:before,\n.fa-caret-square-o-right:before {\n content: \"\\f152\";\n}\n.fa-euro:before,\n.fa-eur:before {\n content: \"\\f153\";\n}\n.fa-gbp:before {\n content: \"\\f154\";\n}\n.fa-dollar:before,\n.fa-usd:before {\n content: \"\\f155\";\n}\n.fa-rupee:before,\n.fa-inr:before {\n content: \"\\f156\";\n}\n.fa-cny:before,\n.fa-rmb:before,\n.fa-yen:before,\n.fa-jpy:before {\n content: \"\\f157\";\n}\n.fa-ruble:before,\n.fa-rouble:before,\n.fa-rub:before {\n content: \"\\f158\";\n}\n.fa-won:before,\n.fa-krw:before {\n content: \"\\f159\";\n}\n.fa-bitcoin:before,\n.fa-btc:before {\n content: \"\\f15a\";\n}\n.fa-file:before {\n content: \"\\f15b\";\n}\n.fa-file-text:before {\n content: \"\\f15c\";\n}\n.fa-sort-alpha-asc:before {\n content: \"\\f15d\";\n}\n.fa-sort-alpha-desc:before {\n content: \"\\f15e\";\n}\n.fa-sort-amount-asc:before {\n content: \"\\f160\";\n}\n.fa-sort-amount-desc:before {\n content: \"\\f161\";\n}\n.fa-sort-numeric-asc:before {\n content: \"\\f162\";\n}\n.fa-sort-numeric-desc:before {\n content: \"\\f163\";\n}\n.fa-thumbs-up:before {\n content: \"\\f164\";\n}\n.fa-thumbs-down:before {\n content: \"\\f165\";\n}\n.fa-youtube-square:before {\n content: \"\\f166\";\n}\n.fa-youtube:before {\n content: \"\\f167\";\n}\n.fa-xing:before {\n content: \"\\f168\";\n}\n.fa-xing-square:before {\n content: \"\\f169\";\n}\n.fa-youtube-play:before {\n content: \"\\f16a\";\n}\n.fa-dropbox:before {\n content: \"\\f16b\";\n}\n.fa-stack-overflow:before {\n content: \"\\f16c\";\n}\n.fa-instagram:before {\n content: \"\\f16d\";\n}\n.fa-flickr:before {\n content: \"\\f16e\";\n}\n.fa-adn:before {\n content: \"\\f170\";\n}\n.fa-bitbucket:before {\n content: \"\\f171\";\n}\n.fa-bitbucket-square:before {\n content: \"\\f172\";\n}\n.fa-tumblr:before {\n content: \"\\f173\";\n}\n.fa-tumblr-square:before {\n content: \"\\f174\";\n}\n.fa-long-arrow-down:before {\n content: \"\\f175\";\n}\n.fa-long-arrow-up:before {\n content: \"\\f176\";\n}\n.fa-long-arrow-left:before {\n content: \"\\f177\";\n}\n.fa-long-arrow-right:before {\n content: \"\\f178\";\n}\n.fa-apple:before {\n content: \"\\f179\";\n}\n.fa-windows:before {\n content: \"\\f17a\";\n}\n.fa-android:before {\n content: \"\\f17b\";\n}\n.fa-linux:before {\n content: \"\\f17c\";\n}\n.fa-dribbble:before {\n content: \"\\f17d\";\n}\n.fa-skype:before {\n content: \"\\f17e\";\n}\n.fa-foursquare:before {\n content: \"\\f180\";\n}\n.fa-trello:before {\n content: \"\\f181\";\n}\n.fa-female:before {\n content: \"\\f182\";\n}\n.fa-male:before {\n content: \"\\f183\";\n}\n.fa-gittip:before,\n.fa-gratipay:before {\n content: \"\\f184\";\n}\n.fa-sun-o:before {\n content: \"\\f185\";\n}\n.fa-moon-o:before {\n content: \"\\f186\";\n}\n.fa-archive:before {\n content: \"\\f187\";\n}\n.fa-bug:before {\n content: \"\\f188\";\n}\n.fa-vk:before {\n content: \"\\f189\";\n}\n.fa-weibo:before {\n content: \"\\f18a\";\n}\n.fa-renren:before {\n content: \"\\f18b\";\n}\n.fa-pagelines:before {\n content: \"\\f18c\";\n}\n.fa-stack-exchange:before {\n content: \"\\f18d\";\n}\n.fa-arrow-circle-o-right:before {\n content: \"\\f18e\";\n}\n.fa-arrow-circle-o-left:before {\n content: \"\\f190\";\n}\n.fa-toggle-left:before,\n.fa-caret-square-o-left:before {\n content: \"\\f191\";\n}\n.fa-dot-circle-o:before {\n content: \"\\f192\";\n}\n.fa-wheelchair:before {\n content: \"\\f193\";\n}\n.fa-vimeo-square:before {\n content: \"\\f194\";\n}\n.fa-turkish-lira:before,\n.fa-try:before {\n content: \"\\f195\";\n}\n.fa-plus-square-o:before {\n content: \"\\f196\";\n}\n.fa-space-shuttle:before {\n content: \"\\f197\";\n}\n.fa-slack:before {\n content: \"\\f198\";\n}\n.fa-envelope-square:before {\n content: \"\\f199\";\n}\n.fa-wordpress:before {\n content: \"\\f19a\";\n}\n.fa-openid:before {\n content: \"\\f19b\";\n}\n.fa-institution:before,\n.fa-bank:before,\n.fa-university:before {\n content: \"\\f19c\";\n}\n.fa-mortar-board:before,\n.fa-graduation-cap:before {\n content: \"\\f19d\";\n}\n.fa-yahoo:before {\n content: \"\\f19e\";\n}\n.fa-google:before {\n content: \"\\f1a0\";\n}\n.fa-reddit:before {\n content: \"\\f1a1\";\n}\n.fa-reddit-square:before {\n content: \"\\f1a2\";\n}\n.fa-stumbleupon-circle:before {\n content: \"\\f1a3\";\n}\n.fa-stumbleupon:before {\n content: \"\\f1a4\";\n}\n.fa-delicious:before {\n content: \"\\f1a5\";\n}\n.fa-digg:before {\n content: \"\\f1a6\";\n}\n.fa-pied-piper-pp:before {\n content: \"\\f1a7\";\n}\n.fa-pied-piper-alt:before {\n content: \"\\f1a8\";\n}\n.fa-drupal:before {\n content: \"\\f1a9\";\n}\n.fa-joomla:before {\n content: \"\\f1aa\";\n}\n.fa-language:before {\n content: \"\\f1ab\";\n}\n.fa-fax:before {\n content: \"\\f1ac\";\n}\n.fa-building:before {\n content: \"\\f1ad\";\n}\n.fa-child:before {\n content: \"\\f1ae\";\n}\n.fa-paw:before {\n content: \"\\f1b0\";\n}\n.fa-spoon:before {\n content: \"\\f1b1\";\n}\n.fa-cube:before {\n content: \"\\f1b2\";\n}\n.fa-cubes:before {\n content: \"\\f1b3\";\n}\n.fa-behance:before {\n content: \"\\f1b4\";\n}\n.fa-behance-square:before {\n content: \"\\f1b5\";\n}\n.fa-steam:before {\n content: \"\\f1b6\";\n}\n.fa-steam-square:before {\n content: \"\\f1b7\";\n}\n.fa-recycle:before {\n content: \"\\f1b8\";\n}\n.fa-automobile:before,\n.fa-car:before {\n content: \"\\f1b9\";\n}\n.fa-cab:before,\n.fa-taxi:before {\n content: \"\\f1ba\";\n}\n.fa-tree:before {\n content: \"\\f1bb\";\n}\n.fa-spotify:before {\n content: \"\\f1bc\";\n}\n.fa-deviantart:before {\n content: \"\\f1bd\";\n}\n.fa-soundcloud:before {\n content: \"\\f1be\";\n}\n.fa-database:before {\n content: \"\\f1c0\";\n}\n.fa-file-pdf-o:before {\n content: \"\\f1c1\";\n}\n.fa-file-word-o:before {\n content: \"\\f1c2\";\n}\n.fa-file-excel-o:before {\n content: \"\\f1c3\";\n}\n.fa-file-powerpoint-o:before {\n content: \"\\f1c4\";\n}\n.fa-file-photo-o:before,\n.fa-file-picture-o:before,\n.fa-file-image-o:before {\n content: \"\\f1c5\";\n}\n.fa-file-zip-o:before,\n.fa-file-archive-o:before {\n content: \"\\f1c6\";\n}\n.fa-file-sound-o:before,\n.fa-file-audio-o:before {\n content: \"\\f1c7\";\n}\n.fa-file-movie-o:before,\n.fa-file-video-o:before {\n content: \"\\f1c8\";\n}\n.fa-file-code-o:before {\n content: \"\\f1c9\";\n}\n.fa-vine:before {\n content: \"\\f1ca\";\n}\n.fa-codepen:before {\n content: \"\\f1cb\";\n}\n.fa-jsfiddle:before {\n content: \"\\f1cc\";\n}\n.fa-life-bouy:before,\n.fa-life-buoy:before,\n.fa-life-saver:before,\n.fa-support:before,\n.fa-life-ring:before {\n content: \"\\f1cd\";\n}\n.fa-circle-o-notch:before {\n content: \"\\f1ce\";\n}\n.fa-ra:before,\n.fa-resistance:before,\n.fa-rebel:before {\n content: \"\\f1d0\";\n}\n.fa-ge:before,\n.fa-empire:before {\n content: \"\\f1d1\";\n}\n.fa-git-square:before {\n content: \"\\f1d2\";\n}\n.fa-git:before {\n content: \"\\f1d3\";\n}\n.fa-y-combinator-square:before,\n.fa-yc-square:before,\n.fa-hacker-news:before {\n content: \"\\f1d4\";\n}\n.fa-tencent-weibo:before {\n content: \"\\f1d5\";\n}\n.fa-qq:before {\n content: \"\\f1d6\";\n}\n.fa-wechat:before,\n.fa-weixin:before {\n content: \"\\f1d7\";\n}\n.fa-send:before,\n.fa-paper-plane:before {\n content: \"\\f1d8\";\n}\n.fa-send-o:before,\n.fa-paper-plane-o:before {\n content: \"\\f1d9\";\n}\n.fa-history:before {\n content: \"\\f1da\";\n}\n.fa-circle-thin:before {\n content: \"\\f1db\";\n}\n.fa-header:before {\n content: \"\\f1dc\";\n}\n.fa-paragraph:before {\n content: \"\\f1dd\";\n}\n.fa-sliders:before {\n content: \"\\f1de\";\n}\n.fa-share-alt:before {\n content: \"\\f1e0\";\n}\n.fa-share-alt-square:before {\n content: \"\\f1e1\";\n}\n.fa-bomb:before {\n content: \"\\f1e2\";\n}\n.fa-soccer-ball-o:before,\n.fa-futbol-o:before {\n content: \"\\f1e3\";\n}\n.fa-tty:before {\n content: \"\\f1e4\";\n}\n.fa-binoculars:before {\n content: \"\\f1e5\";\n}\n.fa-plug:before {\n content: \"\\f1e6\";\n}\n.fa-slideshare:before {\n content: \"\\f1e7\";\n}\n.fa-twitch:before {\n content: \"\\f1e8\";\n}\n.fa-yelp:before {\n content: \"\\f1e9\";\n}\n.fa-newspaper-o:before {\n content: \"\\f1ea\";\n}\n.fa-wifi:before {\n content: \"\\f1eb\";\n}\n.fa-calculator:before {\n content: \"\\f1ec\";\n}\n.fa-paypal:before {\n content: \"\\f1ed\";\n}\n.fa-google-wallet:before {\n content: \"\\f1ee\";\n}\n.fa-cc-visa:before {\n content: \"\\f1f0\";\n}\n.fa-cc-mastercard:before {\n content: \"\\f1f1\";\n}\n.fa-cc-discover:before {\n content: \"\\f1f2\";\n}\n.fa-cc-amex:before {\n content: \"\\f1f3\";\n}\n.fa-cc-paypal:before {\n content: \"\\f1f4\";\n}\n.fa-cc-stripe:before {\n content: \"\\f1f5\";\n}\n.fa-bell-slash:before {\n content: \"\\f1f6\";\n}\n.fa-bell-slash-o:before {\n content: \"\\f1f7\";\n}\n.fa-trash:before {\n content: \"\\f1f8\";\n}\n.fa-copyright:before {\n content: \"\\f1f9\";\n}\n.fa-at:before {\n content: \"\\f1fa\";\n}\n.fa-eyedropper:before {\n content: \"\\f1fb\";\n}\n.fa-paint-brush:before {\n content: \"\\f1fc\";\n}\n.fa-birthday-cake:before {\n content: \"\\f1fd\";\n}\n.fa-area-chart:before {\n content: \"\\f1fe\";\n}\n.fa-pie-chart:before {\n content: \"\\f200\";\n}\n.fa-line-chart:before {\n content: \"\\f201\";\n}\n.fa-lastfm:before {\n content: \"\\f202\";\n}\n.fa-lastfm-square:before {\n content: \"\\f203\";\n}\n.fa-toggle-off:before {\n content: \"\\f204\";\n}\n.fa-toggle-on:before {\n content: \"\\f205\";\n}\n.fa-bicycle:before {\n content: \"\\f206\";\n}\n.fa-bus:before {\n content: \"\\f207\";\n}\n.fa-ioxhost:before {\n content: \"\\f208\";\n}\n.fa-angellist:before {\n content: \"\\f209\";\n}\n.fa-cc:before {\n content: \"\\f20a\";\n}\n.fa-shekel:before,\n.fa-sheqel:before,\n.fa-ils:before {\n content: \"\\f20b\";\n}\n.fa-meanpath:before {\n content: \"\\f20c\";\n}\n.fa-buysellads:before {\n content: \"\\f20d\";\n}\n.fa-connectdevelop:before {\n content: \"\\f20e\";\n}\n.fa-dashcube:before {\n content: \"\\f210\";\n}\n.fa-forumbee:before {\n content: \"\\f211\";\n}\n.fa-leanpub:before {\n content: \"\\f212\";\n}\n.fa-sellsy:before {\n content: \"\\f213\";\n}\n.fa-shirtsinbulk:before {\n content: \"\\f214\";\n}\n.fa-simplybuilt:before {\n content: \"\\f215\";\n}\n.fa-skyatlas:before {\n content: \"\\f216\";\n}\n.fa-cart-plus:before {\n content: \"\\f217\";\n}\n.fa-cart-arrow-down:before {\n content: \"\\f218\";\n}\n.fa-diamond:before {\n content: \"\\f219\";\n}\n.fa-ship:before {\n content: \"\\f21a\";\n}\n.fa-user-secret:before {\n content: \"\\f21b\";\n}\n.fa-motorcycle:before {\n content: \"\\f21c\";\n}\n.fa-street-view:before {\n content: \"\\f21d\";\n}\n.fa-heartbeat:before {\n content: \"\\f21e\";\n}\n.fa-venus:before {\n content: \"\\f221\";\n}\n.fa-mars:before {\n content: \"\\f222\";\n}\n.fa-mercury:before {\n content: \"\\f223\";\n}\n.fa-intersex:before,\n.fa-transgender:before {\n content: \"\\f224\";\n}\n.fa-transgender-alt:before {\n content: \"\\f225\";\n}\n.fa-venus-double:before {\n content: \"\\f226\";\n}\n.fa-mars-double:before {\n content: \"\\f227\";\n}\n.fa-venus-mars:before {\n content: \"\\f228\";\n}\n.fa-mars-stroke:before {\n content: \"\\f229\";\n}\n.fa-mars-stroke-v:before {\n content: \"\\f22a\";\n}\n.fa-mars-stroke-h:before {\n content: \"\\f22b\";\n}\n.fa-neuter:before {\n content: \"\\f22c\";\n}\n.fa-genderless:before {\n content: \"\\f22d\";\n}\n.fa-facebook-official:before {\n content: \"\\f230\";\n}\n.fa-pinterest-p:before {\n content: \"\\f231\";\n}\n.fa-whatsapp:before {\n content: \"\\f232\";\n}\n.fa-server:before {\n content: \"\\f233\";\n}\n.fa-user-plus:before {\n content: \"\\f234\";\n}\n.fa-user-times:before {\n content: \"\\f235\";\n}\n.fa-hotel:before,\n.fa-bed:before {\n content: \"\\f236\";\n}\n.fa-viacoin:before {\n content: \"\\f237\";\n}\n.fa-train:before {\n content: \"\\f238\";\n}\n.fa-subway:before {\n content: \"\\f239\";\n}\n.fa-medium:before {\n content: \"\\f23a\";\n}\n.fa-yc:before,\n.fa-y-combinator:before {\n content: \"\\f23b\";\n}\n.fa-optin-monster:before {\n content: \"\\f23c\";\n}\n.fa-opencart:before {\n content: \"\\f23d\";\n}\n.fa-expeditedssl:before {\n content: \"\\f23e\";\n}\n.fa-battery-4:before,\n.fa-battery:before,\n.fa-battery-full:before {\n content: \"\\f240\";\n}\n.fa-battery-3:before,\n.fa-battery-three-quarters:before {\n content: \"\\f241\";\n}\n.fa-battery-2:before,\n.fa-battery-half:before {\n content: \"\\f242\";\n}\n.fa-battery-1:before,\n.fa-battery-quarter:before {\n content: \"\\f243\";\n}\n.fa-battery-0:before,\n.fa-battery-empty:before {\n content: \"\\f244\";\n}\n.fa-mouse-pointer:before {\n content: \"\\f245\";\n}\n.fa-i-cursor:before {\n content: \"\\f246\";\n}\n.fa-object-group:before {\n content: \"\\f247\";\n}\n.fa-object-ungroup:before {\n content: \"\\f248\";\n}\n.fa-sticky-note:before {\n content: \"\\f249\";\n}\n.fa-sticky-note-o:before {\n content: \"\\f24a\";\n}\n.fa-cc-jcb:before {\n content: \"\\f24b\";\n}\n.fa-cc-diners-club:before {\n content: \"\\f24c\";\n}\n.fa-clone:before {\n content: \"\\f24d\";\n}\n.fa-balance-scale:before {\n content: \"\\f24e\";\n}\n.fa-hourglass-o:before {\n content: \"\\f250\";\n}\n.fa-hourglass-1:before,\n.fa-hourglass-start:before {\n content: \"\\f251\";\n}\n.fa-hourglass-2:before,\n.fa-hourglass-half:before {\n content: \"\\f252\";\n}\n.fa-hourglass-3:before,\n.fa-hourglass-end:before {\n content: \"\\f253\";\n}\n.fa-hourglass:before {\n content: \"\\f254\";\n}\n.fa-hand-grab-o:before,\n.fa-hand-rock-o:before {\n content: \"\\f255\";\n}\n.fa-hand-stop-o:before,\n.fa-hand-paper-o:before {\n content: \"\\f256\";\n}\n.fa-hand-scissors-o:before {\n content: \"\\f257\";\n}\n.fa-hand-lizard-o:before {\n content: \"\\f258\";\n}\n.fa-hand-spock-o:before {\n content: \"\\f259\";\n}\n.fa-hand-pointer-o:before {\n content: \"\\f25a\";\n}\n.fa-hand-peace-o:before {\n content: \"\\f25b\";\n}\n.fa-trademark:before {\n content: \"\\f25c\";\n}\n.fa-registered:before {\n content: \"\\f25d\";\n}\n.fa-creative-commons:before {\n content: \"\\f25e\";\n}\n.fa-gg:before {\n content: \"\\f260\";\n}\n.fa-gg-circle:before {\n content: \"\\f261\";\n}\n.fa-tripadvisor:before {\n content: \"\\f262\";\n}\n.fa-odnoklassniki:before {\n content: \"\\f263\";\n}\n.fa-odnoklassniki-square:before {\n content: \"\\f264\";\n}\n.fa-get-pocket:before {\n content: \"\\f265\";\n}\n.fa-wikipedia-w:before {\n content: \"\\f266\";\n}\n.fa-safari:before {\n content: \"\\f267\";\n}\n.fa-chrome:before {\n content: \"\\f268\";\n}\n.fa-firefox:before {\n content: \"\\f269\";\n}\n.fa-opera:before {\n content: \"\\f26a\";\n}\n.fa-internet-explorer:before {\n content: \"\\f26b\";\n}\n.fa-tv:before,\n.fa-television:before {\n content: \"\\f26c\";\n}\n.fa-contao:before {\n content: \"\\f26d\";\n}\n.fa-500px:before {\n content: \"\\f26e\";\n}\n.fa-amazon:before {\n content: \"\\f270\";\n}\n.fa-calendar-plus-o:before {\n content: \"\\f271\";\n}\n.fa-calendar-minus-o:before {\n content: \"\\f272\";\n}\n.fa-calendar-times-o:before {\n content: \"\\f273\";\n}\n.fa-calendar-check-o:before {\n content: \"\\f274\";\n}\n.fa-industry:before {\n content: \"\\f275\";\n}\n.fa-map-pin:before {\n content: \"\\f276\";\n}\n.fa-map-signs:before {\n content: \"\\f277\";\n}\n.fa-map-o:before {\n content: \"\\f278\";\n}\n.fa-map:before {\n content: \"\\f279\";\n}\n.fa-commenting:before {\n content: \"\\f27a\";\n}\n.fa-commenting-o:before {\n content: \"\\f27b\";\n}\n.fa-houzz:before {\n content: \"\\f27c\";\n}\n.fa-vimeo:before {\n content: \"\\f27d\";\n}\n.fa-black-tie:before {\n content: \"\\f27e\";\n}\n.fa-fonticons:before {\n content: \"\\f280\";\n}\n.fa-reddit-alien:before {\n content: \"\\f281\";\n}\n.fa-edge:before {\n content: \"\\f282\";\n}\n.fa-credit-card-alt:before {\n content: \"\\f283\";\n}\n.fa-codiepie:before {\n content: \"\\f284\";\n}\n.fa-modx:before {\n content: \"\\f285\";\n}\n.fa-fort-awesome:before {\n content: \"\\f286\";\n}\n.fa-usb:before {\n content: \"\\f287\";\n}\n.fa-product-hunt:before {\n content: \"\\f288\";\n}\n.fa-mixcloud:before {\n content: \"\\f289\";\n}\n.fa-scribd:before {\n content: \"\\f28a\";\n}\n.fa-pause-circle:before {\n content: \"\\f28b\";\n}\n.fa-pause-circle-o:before {\n content: \"\\f28c\";\n}\n.fa-stop-circle:before {\n content: \"\\f28d\";\n}\n.fa-stop-circle-o:before {\n content: \"\\f28e\";\n}\n.fa-shopping-bag:before {\n content: \"\\f290\";\n}\n.fa-shopping-basket:before {\n content: \"\\f291\";\n}\n.fa-hashtag:before {\n content: \"\\f292\";\n}\n.fa-bluetooth:before {\n content: \"\\f293\";\n}\n.fa-bluetooth-b:before {\n content: \"\\f294\";\n}\n.fa-percent:before {\n content: \"\\f295\";\n}\n.fa-gitlab:before {\n content: \"\\f296\";\n}\n.fa-wpbeginner:before {\n content: \"\\f297\";\n}\n.fa-wpforms:before {\n content: \"\\f298\";\n}\n.fa-envira:before {\n content: \"\\f299\";\n}\n.fa-universal-access:before {\n content: \"\\f29a\";\n}\n.fa-wheelchair-alt:before {\n content: \"\\f29b\";\n}\n.fa-question-circle-o:before {\n content: \"\\f29c\";\n}\n.fa-blind:before {\n content: \"\\f29d\";\n}\n.fa-audio-description:before {\n content: \"\\f29e\";\n}\n.fa-volume-control-phone:before {\n content: \"\\f2a0\";\n}\n.fa-braille:before {\n content: \"\\f2a1\";\n}\n.fa-assistive-listening-systems:before {\n content: \"\\f2a2\";\n}\n.fa-asl-interpreting:before,\n.fa-american-sign-language-interpreting:before {\n content: \"\\f2a3\";\n}\n.fa-deafness:before,\n.fa-hard-of-hearing:before,\n.fa-deaf:before {\n content: \"\\f2a4\";\n}\n.fa-glide:before {\n content: \"\\f2a5\";\n}\n.fa-glide-g:before {\n content: \"\\f2a6\";\n}\n.fa-signing:before,\n.fa-sign-language:before {\n content: \"\\f2a7\";\n}\n.fa-low-vision:before {\n content: \"\\f2a8\";\n}\n.fa-viadeo:before {\n content: \"\\f2a9\";\n}\n.fa-viadeo-square:before {\n content: \"\\f2aa\";\n}\n.fa-snapchat:before {\n content: \"\\f2ab\";\n}\n.fa-snapchat-ghost:before {\n content: \"\\f2ac\";\n}\n.fa-snapchat-square:before {\n content: \"\\f2ad\";\n}\n.fa-pied-piper:before {\n content: \"\\f2ae\";\n}\n.fa-first-order:before {\n content: \"\\f2b0\";\n}\n.fa-yoast:before {\n content: \"\\f2b1\";\n}\n.fa-themeisle:before {\n content: \"\\f2b2\";\n}\n.fa-google-plus-circle:before,\n.fa-google-plus-official:before {\n content: \"\\f2b3\";\n}\n.fa-fa:before,\n.fa-font-awesome:before {\n content: \"\\f2b4\";\n}\n.fa-handshake-o:before {\n content: \"\\f2b5\";\n}\n.fa-envelope-open:before {\n content: \"\\f2b6\";\n}\n.fa-envelope-open-o:before {\n content: \"\\f2b7\";\n}\n.fa-linode:before {\n content: \"\\f2b8\";\n}\n.fa-address-book:before {\n content: \"\\f2b9\";\n}\n.fa-address-book-o:before {\n content: \"\\f2ba\";\n}\n.fa-vcard:before,\n.fa-address-card:before {\n content: \"\\f2bb\";\n}\n.fa-vcard-o:before,\n.fa-address-card-o:before {\n content: \"\\f2bc\";\n}\n.fa-user-circle:before {\n content: \"\\f2bd\";\n}\n.fa-user-circle-o:before {\n content: \"\\f2be\";\n}\n.fa-user-o:before {\n content: \"\\f2c0\";\n}\n.fa-id-badge:before {\n content: \"\\f2c1\";\n}\n.fa-drivers-license:before,\n.fa-id-card:before {\n content: \"\\f2c2\";\n}\n.fa-drivers-license-o:before,\n.fa-id-card-o:before {\n content: \"\\f2c3\";\n}\n.fa-quora:before {\n content: \"\\f2c4\";\n}\n.fa-free-code-camp:before {\n content: \"\\f2c5\";\n}\n.fa-telegram:before {\n content: \"\\f2c6\";\n}\n.fa-thermometer-4:before,\n.fa-thermometer:before,\n.fa-thermometer-full:before {\n content: \"\\f2c7\";\n}\n.fa-thermometer-3:before,\n.fa-thermometer-three-quarters:before {\n content: \"\\f2c8\";\n}\n.fa-thermometer-2:before,\n.fa-thermometer-half:before {\n content: \"\\f2c9\";\n}\n.fa-thermometer-1:before,\n.fa-thermometer-quarter:before {\n content: \"\\f2ca\";\n}\n.fa-thermometer-0:before,\n.fa-thermometer-empty:before {\n content: \"\\f2cb\";\n}\n.fa-shower:before {\n content: \"\\f2cc\";\n}\n.fa-bathtub:before,\n.fa-s15:before,\n.fa-bath:before {\n content: \"\\f2cd\";\n}\n.fa-podcast:before {\n content: \"\\f2ce\";\n}\n.fa-window-maximize:before {\n content: \"\\f2d0\";\n}\n.fa-window-minimize:before {\n content: \"\\f2d1\";\n}\n.fa-window-restore:before {\n content: \"\\f2d2\";\n}\n.fa-times-rectangle:before,\n.fa-window-close:before {\n content: \"\\f2d3\";\n}\n.fa-times-rectangle-o:before,\n.fa-window-close-o:before {\n content: \"\\f2d4\";\n}\n.fa-bandcamp:before {\n content: \"\\f2d5\";\n}\n.fa-grav:before {\n content: \"\\f2d6\";\n}\n.fa-etsy:before {\n content: \"\\f2d7\";\n}\n.fa-imdb:before {\n content: \"\\f2d8\";\n}\n.fa-ravelry:before {\n content: \"\\f2d9\";\n}\n.fa-eercast:before {\n content: \"\\f2da\";\n}\n.fa-microchip:before {\n content: \"\\f2db\";\n}\n.fa-snowflake-o:before {\n content: \"\\f2dc\";\n}\n.fa-superpowers:before {\n content: \"\\f2dd\";\n}\n.fa-wpexplorer:before {\n content: \"\\f2de\";\n}\n.fa-meetup:before {\n content: \"\\f2e0\";\n}\n.sr-only {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n border: 0;\n}\n.sr-only-focusable:active,\n.sr-only-focusable:focus {\n position: static;\n width: auto;\n height: auto;\n margin: 0;\n overflow: visible;\n clip: auto;\n}\n"],"sourceRoot":""} \ No newline at end of file diff --git a/priv/static/packs/flavours/vanilla/home.js b/priv/static/packs/flavours/vanilla/home.js deleted file mode 100644 index 2412557a6..000000000 Binary files a/priv/static/packs/flavours/vanilla/home.js and /dev/null differ diff --git a/priv/static/packs/flavours/vanilla/home.js.LICENSE.txt b/priv/static/packs/flavours/vanilla/home.js.LICENSE.txt deleted file mode 100644 index 90a9a7678..000000000 --- a/priv/static/packs/flavours/vanilla/home.js.LICENSE.txt +++ /dev/null @@ -1,193 +0,0 @@ -/* -object-assign -(c) Sindre Sorhus -@license MIT -*/ - -/*! - Copyright (c) 2017 Jed Watson. - Licensed under the MIT License (MIT), see - http://jedwatson.github.io/classnames -*/ - -/*! - * escape-html - * Copyright(c) 2012-2013 TJ Holowaychuk - * Copyright(c) 2015 Andreas Lubbe - * Copyright(c) 2015 Tiancheng "Timothy" Gu - * MIT Licensed - */ - -/*! - * wavesurfer.js 3.3.1 (2020-01-14) - * https://github.com/katspaugh/wavesurfer.js - * @license BSD-3-Clause - */ - -/*! ./ajax */ - -/*! ./drawer */ - -/*! ./drawer.canvasentry */ - -/*! ./drawer.multicanvas */ - -/*! ./extend */ - -/*! ./fetch */ - -/*! ./frame */ - -/*! ./get-id */ - -/*! ./max */ - -/*! ./mediaelement */ - -/*! ./mediaelement-webaudio */ - -/*! ./min */ - -/*! ./observer */ - -/*! ./peakcache */ - -/*! ./prevent-click */ - -/*! ./request-animation-frame */ - -/*! ./style */ - -/*! ./util */ - -/*! ./util/get-id */ - -/*! ./util/style */ - -/*! ./webaudio */ - -/*! debounce */ - -/*! https://mths.be/punycode v1.4.1 by @mathias */ - -/*! no static exports found */ - -/*!***********************!*\ - !*** ./src/drawer.js ***! - \***********************/ - -/*!*************************!*\ - !*** ./src/util/max.js ***! - \*************************/ - -/*!*************************!*\ - !*** ./src/util/min.js ***! - \*************************/ - -/*!*************************!*\ - !*** ./src/webaudio.js ***! - \*************************/ - -/*!**************************!*\ - !*** ./src/peakcache.js ***! - \**************************/ - -/*!**************************!*\ - !*** ./src/util/ajax.js ***! - \**************************/ - -/*!***************************!*\ - !*** ./src/util/fetch.js ***! - \***************************/ - -/*!***************************!*\ - !*** ./src/util/frame.js ***! - \***************************/ - -/*!***************************!*\ - !*** ./src/util/index.js ***! - \***************************/ - -/*!***************************!*\ - !*** ./src/util/style.js ***! - \***************************/ - -/*!***************************!*\ - !*** ./src/wavesurfer.js ***! - \***************************/ - -/*!****************************!*\ - !*** ./src/util/extend.js ***! - \****************************/ - -/*!****************************!*\ - !*** ./src/util/get-id.js ***! - \****************************/ - -/*!*****************************!*\ - !*** ./src/mediaelement.js ***! - \*****************************/ - -/*!******************************!*\ - !*** ./src/util/observer.js ***! - \******************************/ - -/*!***********************************!*\ - !*** ./src/drawer.canvasentry.js ***! - \***********************************/ - -/*!***********************************!*\ - !*** ./src/drawer.multicanvas.js ***! - \***********************************/ - -/*!***********************************!*\ - !*** ./src/util/prevent-click.js ***! - \***********************************/ - -/*!**************************************!*\ - !*** ./src/mediaelement-webaudio.js ***! - \**************************************/ - -/*!****************************************!*\ - !*** ./node_modules/debounce/index.js ***! - \****************************************/ - -/*!*********************************************!*\ - !*** ./src/util/request-animation-frame.js ***! - \*********************************************/ - -/** @license React v0.19.0 - * scheduler.production.min.js - * - * Copyright (c) Facebook, Inc. and its affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */ - -/** @license React v16.12.0 - * react-is.production.min.js - * - * Copyright (c) Facebook, Inc. and its affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */ - -/** @license React v16.13.0 - * react-dom.production.min.js - * - * Copyright (c) Facebook, Inc. and its affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */ - -/** @license React v16.13.1 - * react.production.min.js - * - * Copyright (c) Facebook, Inc. and its affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */ diff --git a/priv/static/packs/flavours/vanilla/home.js.map b/priv/static/packs/flavours/vanilla/home.js.map deleted file mode 100644 index 28aab11ac..000000000 Binary files a/priv/static/packs/flavours/vanilla/home.js.map and /dev/null differ diff --git a/priv/static/packs/flavours/vanilla/public.css b/priv/static/packs/flavours/vanilla/public.css deleted file mode 100644 index 114f49435..000000000 Binary files a/priv/static/packs/flavours/vanilla/public.css and /dev/null differ diff --git a/priv/static/packs/flavours/vanilla/public.css.map b/priv/static/packs/flavours/vanilla/public.css.map deleted file mode 100644 index 8d7cca717..000000000 --- a/priv/static/packs/flavours/vanilla/public.css.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["webpack:///font-awesome.css","webpack:///./node_modules/font-awesome/css/font-awesome.css"],"names":[],"mappings":"AAAA;;;ECAA,CAMA,WACE,wBACA,4CACA,wSACA,gBACA,kBAEF,IACE,qBACA,6CACA,kBACA,oBACA,mCACA,kCAGF,OACE,uBACA,kBACA,oBAEF,OACE,cAEF,OACE,cAEF,OACE,cAEF,OACE,cAEF,OACE,mBACA,kBAEF,OACE,eACA,yBACA,qBAEF,UACE,kBAEF,OACE,kBACA,mBACA,mBACA,gBACA,kBAEF,aACE,mBAEF,WACE,yBACA,wBACA,mBAEF,cACE,WAEF,eACE,YAEF,iBACE,kBAEF,kBACE,iBAGF,YACE,YAEF,WACE,WAEF,cACE,kBAEF,eACE,iBAEF,SACE,6CACA,qCAEF,UACE,+CACA,uCAEF,2BACE,GAEE,uBAEF,GAEE,0BAGJ,mBACE,GAEE,uBAEF,GAEE,0BAGJ,cACE,sEAGA,wBAEF,eACE,sEAGA,yBAEF,eACE,sEAGA,yBAEF,oBACE,gFAGA,qBAEF,kBACE,gFAGA,qBAEF,gHAKE,gCAEF,UACE,kBACA,qBACA,UACA,WACA,gBACA,sBAEF,0BAEE,kBACA,OACA,WACA,kBAEF,aACE,oBAEF,aACE,cAEF,YACE,WAIF,iBACE,YAEF,iBACE,YAEF,kBACE,YAEF,sBACE,YAEF,iBACE,YAEF,gBACE,YAEF,kBACE,YAEF,gBACE,YAEF,gBACE,YAEF,oBACE,YAEF,cACE,YAEF,mBACE,YAEF,iBACE,YAEF,oDAGE,YAEF,uBACE,YAEF,wBACE,YAEF,qBACE,YAEF,kBACE,YAEF,+BAEE,YAEF,mBACE,YAEF,gBACE,YAEF,kBACE,YAEF,mBACE,YAEF,gBACE,YAEF,oBACE,YAEF,+BACE,YAEF,6BACE,YAEF,iBACE,YAEF,yBACE,YAEF,0CAEE,YAEF,mBACE,YAEF,oBACE,YAEF,gBACE,YAEF,gBACE,YAEF,sBACE,YAEF,sBACE,YAEF,uBACE,YAEF,qBACE,YAEF,kBACE,YAEF,mBACE,YAEF,eACE,YAEF,gBACE,YAEF,gBACE,YAEF,oBACE,YAEF,iBACE,YAEF,kBACE,YAEF,gBACE,YAEF,gBACE,YAEF,kBACE,YAEF,uBACE,YAEF,sBACE,YAEF,sBACE,YAEF,wBACE,YAEF,uBACE,YAEF,yBACE,YAEF,gBACE,YAEF,qCAEE,YAEF,kBACE,YAEF,wBACE,YAEF,uDAGE,YAEF,kBACE,YAEF,sBACE,YAEF,kBACE,YAEF,gBACE,YAEF,2CAEE,YAEF,0BACE,YAEF,0BACE,YAEF,kBACE,YAEF,yBACE,YAEF,yBACE,YAEF,oBACE,YAEF,gBACE,YAEF,iBACE,YAEF,gBACE,YAEF,mBACE,YAEF,wBACE,YAEF,wBACE,YAEF,iBACE,YAEF,wBACE,YAEF,yBACE,YAEF,uBACE,YAEF,wBACE,YAEF,wBACE,YAEF,wBACE,YAEF,2BACE,YAEF,uBACE,YAEF,sBACE,YAEF,0BACE,YAEF,0BACE,YAEF,eACE,YAEF,sBACE,YAEF,uBACE,YAEF,oBACE,YAEF,sBACE,YAEF,yCAEE,YAEF,kBACE,YAEF,oBACE,YAEF,gBACE,YAEF,iBACE,YAEF,oBACE,YAEF,8BACE,YAEF,gBACE,YAEF,gBACE,YAEF,gBACE,YAEF,eACE,YAEF,qBACE,YAEF,mDAEE,YAEF,iBACE,YAEF,oBACE,YAEF,kBACE,YAEF,mBACE,YAEF,kBACE,YAEF,sBACE,YAEF,wBACE,YAEF,mBACE,YAEF,yBACE,YAEF,kBACE,YAEF,uBACE,YAEF,oBACE,YAEF,oBACE,YAEF,4CAEE,YAEF,0BACE,YAEF,2BACE,YAEF,wBACE,YAEF,eACE,YAEF,iCAEE,YAEF,oBACE,YAEF,uBACE,YAEF,yBACE,YAEF,qBACE,YAEF,mBACE,YAEF,oBACE,YAEF,2BACE,YAEF,sBACE,YAEF,yBACE,YAEF,mBACE,YAEF,kBACE,YAEF,yBACE,YAEF,kBACE,YAEF,mBACE,YAEF,iBACE,YAEF,oBACE,YAEF,sBACE,YAEF,wBACE,YAEF,mBACE,YAEF,0CAEE,YAEF,kBACE,YAEF,kBACE,YAEF,uBACE,YAEF,+BAEE,YAEF,iBACE,YAEF,oBACE,YAEF,gBACE,YAEF,uBACE,YAEF,wBACE,YAEF,uBACE,YAEF,qBACE,YAEF,uBACE,YAEF,6BACE,YAEF,8BACE,YAEF,2BACE,YAEF,6BACE,YAEF,iBACE,YAEF,kBACE,YAEF,iBACE,YAEF,kBACE,YAEF,qBACE,YAEF,sBACE,YAEF,kCAEE,YAEF,iCAEE,YAEF,iBACE,YAEF,iBACE,YAEF,mCAEE,YAEF,mCAEE,YAEF,qBACE,YAEF,oCAEE,YAEF,kBACE,YAEF,sDAGE,YAEF,mBACE,YAEF,mBACE,YAEF,yBACE,YAEF,qBACE,YAEF,iBACE,YAEF,iBACE,YAEF,iBACE,YAEF,qBACE,YAEF,4BACE,YAEF,8BACE,YAEF,uBACE,YAEF,iBACE,YAEF,sBACE,YAEF,oBACE,YAEF,sBACE,YAEF,uBACE,YAEF,mBACE,YAEF,oCAEE,YAEF,0CAEE,YAEF,uCAEE,YAEF,oBACE,YAEF,oBACE,YAEF,uCAEE,YAEF,kCAEE,YAEF,2CAEE,YAEF,qBACE,YAEF,sBACE,YAEF,iCAEE,YAEF,mBACE,YAEF,oBACE,YAEF,sCAEE,YAEF,uBACE,YAEF,oBACE,YAEF,0BACE,YAEF,wBACE,YAEF,mBACE,YAEF,uBACE,YAEF,oBACE,YAEF,kBACE,YAEF,kBACE,YAEF,mBACE,YAEF,uBACE,YAEF,sBACE,YAEF,sBACE,YAEF,qBACE,YAEF,kBACE,YAEF,uBACE,YAEF,gBACE,YAEF,oBACE,YAEF,uBACE,YAEF,6BACE,YAEF,8BACE,YAEF,2BACE,YAEF,6BACE,YAEF,sBACE,YAEF,uBACE,YAEF,oBACE,YAEF,sBACE,YAEF,mBACE,YAEF,kBACE,YAEF,kBACE,YAEF,0CAEE,YAEF,oBACE,YAEF,sBACE,YAEF,uBACE,YAEF,mBACE,YAEF,kBACE,YAEF,uCAEE,YAEF,sBACE,YAEF,oBACE,YAEF,yBACE,YAEF,mBACE,YAEF,mBACE,YAEF,iBACE,YAEF,mBACE,YAEF,sBACE,YAEF,kBACE,YAEF,0BACE,YAEF,oBACE,YAEF,gBACE,YAEF,+CAEE,YAEF,4EAGE,YAEF,0BACE,YAEF,gBACE,YAEF,qBACE,YAEF,0CAEE,YAEF,oBACE,YAEF,gBACE,YAEF,uBACE,YAEF,uBACE,YAEF,qBACE,YAEF,kBACE,YAEF,wBACE,YAEF,sBACE,YAEF,4BACE,YAEF,kBACE,YAEF,sBACE,YAEF,6BACE,YAEF,kBACE,YAEF,kBACE,YAEF,+BACE,YAEF,gCACE,YAEF,6BACE,YAEF,+BACE,YAEF,iBACE,YAEF,gBACE,YAEF,kBACE,YAEF,sBACE,YAEF,oBACE,YAEF,sBACE,YAEF,sBACE,YAEF,sBACE,YAEF,uBACE,YAEF,kBACE,YAEF,wBACE,YAEF,0BACE,YAEF,oBACE,YAEF,sBACE,YAEF,wBACE,YAEF,yBACE,YAEF,gCACE,YAEF,wBACE,YAEF,mBACE,YAEF,sDAEE,YAEF,kDAEE,YAEF,wDAEE,YAEF,+BAEE,YAEF,eACE,YAEF,iCAEE,YAEF,gCAEE,YAEF,4DAIE,YAEF,kDAGE,YAEF,8BAEE,YAEF,kCAEE,YAEF,gBACE,YAEF,qBACE,YAEF,0BACE,YAEF,2BACE,YAEF,2BACE,YAEF,4BACE,YAEF,4BACE,YAEF,6BACE,YAEF,qBACE,YAEF,uBACE,YAEF,0BACE,YAEF,mBACE,YAEF,gBACE,YAEF,uBACE,YAEF,wBACE,YAEF,mBACE,YAEF,0BACE,YAEF,qBACE,YAEF,kBACE,YAEF,eACE,YAEF,qBACE,YAEF,4BACE,YAEF,kBACE,YAEF,yBACE,YAEF,2BACE,YAEF,yBACE,YAEF,2BACE,YAEF,4BACE,YAEF,iBACE,YAEF,mBACE,YAEF,mBACE,YAEF,iBACE,YAEF,oBACE,YAEF,iBACE,YAEF,sBACE,YAEF,kBACE,YAEF,kBACE,YAEF,gBACE,YAEF,sCAEE,YAEF,iBACE,YAEF,kBACE,YAEF,mBACE,YAEF,eACE,YAEF,cACE,YAEF,iBACE,YAEF,kBACE,YAEF,qBACE,YAEF,0BACE,YAEF,gCACE,YAEF,+BACE,YAEF,sDAEE,YAEF,wBACE,YAEF,sBACE,YAEF,wBACE,YAEF,uCAEE,YAEF,yBACE,YAEF,yBACE,YAEF,iBACE,YAEF,2BACE,YAEF,qBACE,YAEF,kBACE,YAEF,6DAGE,YAEF,kDAEE,YAEF,iBACE,YAEF,kBACE,YAEF,kBACE,YAEF,yBACE,YAEF,8BACE,YAEF,uBACE,YAEF,qBACE,YAEF,gBACE,YAEF,yBACE,YAEF,0BACE,YAEF,kBACE,YAEF,kBACE,YAEF,oBACE,YAEF,eACE,YAEF,oBACE,YAEF,iBACE,YAEF,eACE,YAEF,iBACE,YAEF,gBACE,YAEF,iBACE,YAEF,mBACE,YAEF,0BACE,YAEF,iBACE,YAEF,wBACE,YAEF,mBACE,YAEF,qCAEE,YAEF,+BAEE,YAEF,gBACE,YAEF,mBACE,YAEF,sBACE,YAEF,sBACE,YAEF,oBACE,YAEF,sBACE,YAEF,uBACE,YAEF,wBACE,YAEF,6BACE,YAEF,0EAGE,YAEF,gDAEE,YAEF,gDAEE,YAEF,gDAEE,YAEF,uBACE,YAEF,gBACE,YAEF,mBACE,YAEF,oBACE,YAEF,wGAKE,YAEF,0BACE,YAEF,qDAGE,YAEF,gCAEE,YAEF,sBACE,YAEF,eACE,YAEF,2EAGE,YAEF,yBACE,YAEF,cACE,YAEF,oCAEE,YAEF,uCAEE,YAEF,2CAEE,YAEF,mBACE,YAEF,uBACE,YAEF,kBACE,YAEF,qBACE,YAEF,mBACE,YAEF,qBACE,YAEF,4BACE,YAEF,gBACE,YAEF,6CAEE,YAEF,eACE,YAEF,sBACE,YAEF,gBACE,YAEF,sBACE,YAEF,kBACE,YAEF,gBACE,YAEF,uBACE,YAEF,gBACE,YAEF,sBACE,YAEF,kBACE,YAEF,yBACE,YAEF,mBACE,YAEF,yBACE,YAEF,uBACE,YAEF,mBACE,YAEF,qBACE,YAEF,qBACE,YAEF,sBACE,YAEF,wBACE,YAEF,iBACE,YAEF,qBACE,YAEF,cACE,YAEF,sBACE,YAEF,uBACE,YAEF,yBACE,YAEF,sBACE,YAEF,qBACE,YAEF,sBACE,YAEF,kBACE,YAEF,yBACE,YAEF,sBACE,YAEF,qBACE,YAEF,mBACE,YAEF,eACE,YAEF,mBACE,YAEF,qBACE,YAEF,cACE,YAEF,mDAGE,YAEF,oBACE,YAEF,sBACE,YAEF,0BACE,YAEF,oBACE,YAEF,oBACE,YAEF,mBACE,YAEF,kBACE,YAEF,wBACE,YAEF,uBACE,YAEF,oBACE,YAEF,qBACE,YAEF,2BACE,YAEF,mBACE,YAEF,gBACE,YAEF,uBACE,YAEF,sBACE,YAEF,uBACE,YAEF,qBACE,YAEF,iBACE,YAEF,gBACE,YAEF,mBACE,YAEF,2CAEE,YAEF,2BACE,YAEF,wBACE,YAEF,uBACE,YAEF,sBACE,YAEF,uBACE,YAEF,yBACE,YAEF,yBACE,YAEF,kBACE,YAEF,sBACE,YAEF,6BACE,YAEF,uBACE,YAEF,oBACE,YAEF,kBACE,YAEF,qBACE,YAEF,sBACE,YAEF,gCAEE,YAEF,mBACE,YAEF,iBACE,YAEF,kBACE,YAEF,kBACE,YAEF,sCAEE,YAEF,yBACE,YAEF,oBACE,YAEF,wBACE,YAEF,gEAGE,YAEF,uDAEE,YAEF,6CAEE,YAEF,gDAEE,YAEF,8CAEE,YAEF,yBACE,YAEF,oBACE,YAEF,wBACE,YAEF,0BACE,YAEF,uBACE,YAEF,yBACE,YAEF,kBACE,YAEF,0BACE,YAEF,iBACE,YAEF,yBACE,YAEF,uBACE,YAEF,kDAEE,YAEF,iDAEE,YAEF,gDAEE,YAEF,qBACE,YAEF,8CAEE,YAEF,+CAEE,YAEF,2BACE,YAEF,yBACE,YAEF,wBACE,YAEF,0BACE,YAEF,wBACE,YAEF,qBACE,YAEF,sBACE,YAEF,4BACE,YAEF,cACE,YAEF,qBACE,YAEF,uBACE,YAEF,yBACE,YAEF,gCACE,YAEF,sBACE,YAEF,uBACE,YAEF,kBACE,YAEF,kBACE,YAEF,mBACE,YAEF,iBACE,YAEF,6BACE,YAEF,oCAEE,YAEF,kBACE,YAEF,iBACE,YAEF,kBACE,YAEF,2BACE,YAEF,4BACE,YAEF,4BACE,YAEF,4BACE,YAEF,oBACE,YAEF,mBACE,YAEF,qBACE,YAEF,iBACE,YAEF,eACE,YAEF,sBACE,YAEF,wBACE,YAEF,iBACE,YAEF,iBACE,YAEF,qBACE,YAEF,qBACE,YAEF,wBACE,YAEF,gBACE,YAEF,2BACE,YAEF,oBACE,YAEF,gBACE,YAEF,wBACE,YAEF,eACE,YAEF,wBACE,YAEF,oBACE,YAEF,kBACE,YAEF,wBACE,YAEF,0BACE,YAEF,uBACE,YAEF,yBACE,YAEF,wBACE,YAEF,2BACE,YAEF,mBACE,YAEF,qBACE,YAEF,uBACE,YAEF,mBACE,YAEF,kBACE,YAEF,sBACE,YAEF,mBACE,YAEF,kBACE,YAEF,4BACE,YAEF,0BACE,YAEF,6BACE,YAEF,iBACE,YAEF,6BACE,YAEF,gCACE,YAEF,mBACE,YAEF,uCACE,YAEF,2EAEE,YAEF,+DAGE,YAEF,iBACE,YAEF,mBACE,YAEF,4CAEE,YAEF,sBACE,YAEF,kBACE,YAEF,yBACE,YAEF,oBACE,YAEF,0BACE,YAEF,2BACE,YAEF,sBACE,YAEF,uBACE,YAEF,iBACE,YAEF,qBACE,YAEF,8DAEE,YAEF,sCAEE,YAEF,uBACE,YAEF,yBACE,YAEF,2BACE,YAEF,kBACE,YAEF,wBACE,YAEF,0BACE,YAEF,yCAEE,YAEF,6CAEE,YAEF,uBACE,YAEF,yBACE,YAEF,kBACE,YAEF,oBACE,YAEF,8CAEE,YAEF,kDAEE,YAEF,iBACE,YAEF,0BACE,YAEF,oBACE,YAEF,4EAGE,YAEF,+DAEE,YAEF,qDAEE,YAEF,wDAEE,YAEF,sDAEE,YAEF,kBACE,YAEF,kDAGE,YAEF,mBACE,YAEF,2BACE,YAEF,2BACE,YAEF,0BACE,YAEF,mDAEE,YAEF,uDAEE,YAEF,oBACE,YAEF,gBACE,YAEF,gBACE,YAEF,gBACE,YAEF,mBACE,YAEF,mBACE,YAEF,qBACE,YAEF,uBACE,YAEF,uBACE,YAEF,sBACE,YAEF,kBACE,YAEF,SACE,kBACA,UACA,WACA,UACA,YACA,gBACA,mBACA,SAEF,mDAEE,gBACA,WACA,YACA,SACA,iBACA,qJ","file":"flavours/vanilla/public.css","sourcesContent":["/*!\n * Font Awesome 4.7.0 by @davegandy - http://fontawesome.io - @fontawesome\n * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License)\n */@font-face{font-family:\"FontAwesome\";src:url(\"../fonts/fontawesome-webfont.eot?v=4.7.0\");src:url(\"../fonts/fontawesome-webfont.eot?#iefix&v=4.7.0\") format(\"embedded-opentype\"),url(\"../fonts/fontawesome-webfont.woff2?v=4.7.0\") format(\"woff2\"),url(\"../fonts/fontawesome-webfont.woff?v=4.7.0\") format(\"woff\"),url(\"../fonts/fontawesome-webfont.ttf?v=4.7.0\") format(\"truetype\"),url(\"../fonts/fontawesome-webfont.svg?v=4.7.0#fontawesomeregular\") format(\"svg\");font-weight:normal;font-style:normal}.fa{display:inline-block;font:normal normal normal 14px/1 FontAwesome;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.fa-lg{font-size:1.33333333em;line-height:.75em;vertical-align:-15%}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-fw{width:1.28571429em;text-align:center}.fa-ul{padding-left:0;margin-left:2.14285714em;list-style-type:none}.fa-ul>li{position:relative}.fa-li{position:absolute;left:-2.14285714em;width:2.14285714em;top:.14285714em;text-align:center}.fa-li.fa-lg{left:-1.85714286em}.fa-border{padding:.2em .25em .15em;border:solid .08em #eee;border-radius:.1em}.fa-pull-left{float:left}.fa-pull-right{float:right}.fa.fa-pull-left{margin-right:.3em}.fa.fa-pull-right{margin-left:.3em}.pull-right{float:right}.pull-left{float:left}.fa.pull-left{margin-right:.3em}.fa.pull-right{margin-left:.3em}.fa-spin{-webkit-animation:fa-spin 2s infinite linear;animation:fa-spin 2s infinite linear}.fa-pulse{-webkit-animation:fa-spin 1s infinite steps(8);animation:fa-spin 1s infinite steps(8)}@-webkit-keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}.fa-rotate-90{-ms-filter:\"progid:DXImageTransform.Microsoft.BasicImage(rotation=1)\";-webkit-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg)}.fa-rotate-180{-ms-filter:\"progid:DXImageTransform.Microsoft.BasicImage(rotation=2)\";-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg)}.fa-rotate-270{-ms-filter:\"progid:DXImageTransform.Microsoft.BasicImage(rotation=3)\";-webkit-transform:rotate(270deg);-ms-transform:rotate(270deg);transform:rotate(270deg)}.fa-flip-horizontal{-ms-filter:\"progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)\";-webkit-transform:scale(-1, 1);-ms-transform:scale(-1, 1);transform:scale(-1, 1)}.fa-flip-vertical{-ms-filter:\"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)\";-webkit-transform:scale(1, -1);-ms-transform:scale(1, -1);transform:scale(1, -1)}:root .fa-rotate-90,:root .fa-rotate-180,:root .fa-rotate-270,:root .fa-flip-horizontal,:root .fa-flip-vertical{filter:none}.fa-stack{position:relative;display:inline-block;width:2em;height:2em;line-height:2em;vertical-align:middle}.fa-stack-1x,.fa-stack-2x{position:absolute;left:0;width:100%;text-align:center}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:#fff}.fa-glass:before{content:\"\"}.fa-music:before{content:\"\"}.fa-search:before{content:\"\"}.fa-envelope-o:before{content:\"\"}.fa-heart:before{content:\"\"}.fa-star:before{content:\"\"}.fa-star-o:before{content:\"\"}.fa-user:before{content:\"\"}.fa-film:before{content:\"\"}.fa-th-large:before{content:\"\"}.fa-th:before{content:\"\"}.fa-th-list:before{content:\"\"}.fa-check:before{content:\"\"}.fa-remove:before,.fa-close:before,.fa-times:before{content:\"\"}.fa-search-plus:before{content:\"\"}.fa-search-minus:before{content:\"\"}.fa-power-off:before{content:\"\"}.fa-signal:before{content:\"\"}.fa-gear:before,.fa-cog:before{content:\"\"}.fa-trash-o:before{content:\"\"}.fa-home:before{content:\"\"}.fa-file-o:before{content:\"\"}.fa-clock-o:before{content:\"\"}.fa-road:before{content:\"\"}.fa-download:before{content:\"\"}.fa-arrow-circle-o-down:before{content:\"\"}.fa-arrow-circle-o-up:before{content:\"\"}.fa-inbox:before{content:\"\"}.fa-play-circle-o:before{content:\"\"}.fa-rotate-right:before,.fa-repeat:before{content:\"\"}.fa-refresh:before{content:\"\"}.fa-list-alt:before{content:\"\"}.fa-lock:before{content:\"\"}.fa-flag:before{content:\"\"}.fa-headphones:before{content:\"\"}.fa-volume-off:before{content:\"\"}.fa-volume-down:before{content:\"\"}.fa-volume-up:before{content:\"\"}.fa-qrcode:before{content:\"\"}.fa-barcode:before{content:\"\"}.fa-tag:before{content:\"\"}.fa-tags:before{content:\"\"}.fa-book:before{content:\"\"}.fa-bookmark:before{content:\"\"}.fa-print:before{content:\"\"}.fa-camera:before{content:\"\"}.fa-font:before{content:\"\"}.fa-bold:before{content:\"\"}.fa-italic:before{content:\"\"}.fa-text-height:before{content:\"\"}.fa-text-width:before{content:\"\"}.fa-align-left:before{content:\"\"}.fa-align-center:before{content:\"\"}.fa-align-right:before{content:\"\"}.fa-align-justify:before{content:\"\"}.fa-list:before{content:\"\"}.fa-dedent:before,.fa-outdent:before{content:\"\"}.fa-indent:before{content:\"\"}.fa-video-camera:before{content:\"\"}.fa-photo:before,.fa-image:before,.fa-picture-o:before{content:\"\"}.fa-pencil:before{content:\"\"}.fa-map-marker:before{content:\"\"}.fa-adjust:before{content:\"\"}.fa-tint:before{content:\"\"}.fa-edit:before,.fa-pencil-square-o:before{content:\"\"}.fa-share-square-o:before{content:\"\"}.fa-check-square-o:before{content:\"\"}.fa-arrows:before{content:\"\"}.fa-step-backward:before{content:\"\"}.fa-fast-backward:before{content:\"\"}.fa-backward:before{content:\"\"}.fa-play:before{content:\"\"}.fa-pause:before{content:\"\"}.fa-stop:before{content:\"\"}.fa-forward:before{content:\"\"}.fa-fast-forward:before{content:\"\"}.fa-step-forward:before{content:\"\"}.fa-eject:before{content:\"\"}.fa-chevron-left:before{content:\"\"}.fa-chevron-right:before{content:\"\"}.fa-plus-circle:before{content:\"\"}.fa-minus-circle:before{content:\"\"}.fa-times-circle:before{content:\"\"}.fa-check-circle:before{content:\"\"}.fa-question-circle:before{content:\"\"}.fa-info-circle:before{content:\"\"}.fa-crosshairs:before{content:\"\"}.fa-times-circle-o:before{content:\"\"}.fa-check-circle-o:before{content:\"\"}.fa-ban:before{content:\"\"}.fa-arrow-left:before{content:\"\"}.fa-arrow-right:before{content:\"\"}.fa-arrow-up:before{content:\"\"}.fa-arrow-down:before{content:\"\"}.fa-mail-forward:before,.fa-share:before{content:\"\"}.fa-expand:before{content:\"\"}.fa-compress:before{content:\"\"}.fa-plus:before{content:\"\"}.fa-minus:before{content:\"\"}.fa-asterisk:before{content:\"\"}.fa-exclamation-circle:before{content:\"\"}.fa-gift:before{content:\"\"}.fa-leaf:before{content:\"\"}.fa-fire:before{content:\"\"}.fa-eye:before{content:\"\"}.fa-eye-slash:before{content:\"\"}.fa-warning:before,.fa-exclamation-triangle:before{content:\"\"}.fa-plane:before{content:\"\"}.fa-calendar:before{content:\"\"}.fa-random:before{content:\"\"}.fa-comment:before{content:\"\"}.fa-magnet:before{content:\"\"}.fa-chevron-up:before{content:\"\"}.fa-chevron-down:before{content:\"\"}.fa-retweet:before{content:\"\"}.fa-shopping-cart:before{content:\"\"}.fa-folder:before{content:\"\"}.fa-folder-open:before{content:\"\"}.fa-arrows-v:before{content:\"\"}.fa-arrows-h:before{content:\"\"}.fa-bar-chart-o:before,.fa-bar-chart:before{content:\"\"}.fa-twitter-square:before{content:\"\"}.fa-facebook-square:before{content:\"\"}.fa-camera-retro:before{content:\"\"}.fa-key:before{content:\"\"}.fa-gears:before,.fa-cogs:before{content:\"\"}.fa-comments:before{content:\"\"}.fa-thumbs-o-up:before{content:\"\"}.fa-thumbs-o-down:before{content:\"\"}.fa-star-half:before{content:\"\"}.fa-heart-o:before{content:\"\"}.fa-sign-out:before{content:\"\"}.fa-linkedin-square:before{content:\"\"}.fa-thumb-tack:before{content:\"\"}.fa-external-link:before{content:\"\"}.fa-sign-in:before{content:\"\"}.fa-trophy:before{content:\"\"}.fa-github-square:before{content:\"\"}.fa-upload:before{content:\"\"}.fa-lemon-o:before{content:\"\"}.fa-phone:before{content:\"\"}.fa-square-o:before{content:\"\"}.fa-bookmark-o:before{content:\"\"}.fa-phone-square:before{content:\"\"}.fa-twitter:before{content:\"\"}.fa-facebook-f:before,.fa-facebook:before{content:\"\"}.fa-github:before{content:\"\"}.fa-unlock:before{content:\"\"}.fa-credit-card:before{content:\"\"}.fa-feed:before,.fa-rss:before{content:\"\"}.fa-hdd-o:before{content:\"\"}.fa-bullhorn:before{content:\"\"}.fa-bell:before{content:\"\"}.fa-certificate:before{content:\"\"}.fa-hand-o-right:before{content:\"\"}.fa-hand-o-left:before{content:\"\"}.fa-hand-o-up:before{content:\"\"}.fa-hand-o-down:before{content:\"\"}.fa-arrow-circle-left:before{content:\"\"}.fa-arrow-circle-right:before{content:\"\"}.fa-arrow-circle-up:before{content:\"\"}.fa-arrow-circle-down:before{content:\"\"}.fa-globe:before{content:\"\"}.fa-wrench:before{content:\"\"}.fa-tasks:before{content:\"\"}.fa-filter:before{content:\"\"}.fa-briefcase:before{content:\"\"}.fa-arrows-alt:before{content:\"\"}.fa-group:before,.fa-users:before{content:\"\"}.fa-chain:before,.fa-link:before{content:\"\"}.fa-cloud:before{content:\"\"}.fa-flask:before{content:\"\"}.fa-cut:before,.fa-scissors:before{content:\"\"}.fa-copy:before,.fa-files-o:before{content:\"\"}.fa-paperclip:before{content:\"\"}.fa-save:before,.fa-floppy-o:before{content:\"\"}.fa-square:before{content:\"\"}.fa-navicon:before,.fa-reorder:before,.fa-bars:before{content:\"\"}.fa-list-ul:before{content:\"\"}.fa-list-ol:before{content:\"\"}.fa-strikethrough:before{content:\"\"}.fa-underline:before{content:\"\"}.fa-table:before{content:\"\"}.fa-magic:before{content:\"\"}.fa-truck:before{content:\"\"}.fa-pinterest:before{content:\"\"}.fa-pinterest-square:before{content:\"\"}.fa-google-plus-square:before{content:\"\"}.fa-google-plus:before{content:\"\"}.fa-money:before{content:\"\"}.fa-caret-down:before{content:\"\"}.fa-caret-up:before{content:\"\"}.fa-caret-left:before{content:\"\"}.fa-caret-right:before{content:\"\"}.fa-columns:before{content:\"\"}.fa-unsorted:before,.fa-sort:before{content:\"\"}.fa-sort-down:before,.fa-sort-desc:before{content:\"\"}.fa-sort-up:before,.fa-sort-asc:before{content:\"\"}.fa-envelope:before{content:\"\"}.fa-linkedin:before{content:\"\"}.fa-rotate-left:before,.fa-undo:before{content:\"\"}.fa-legal:before,.fa-gavel:before{content:\"\"}.fa-dashboard:before,.fa-tachometer:before{content:\"\"}.fa-comment-o:before{content:\"\"}.fa-comments-o:before{content:\"\"}.fa-flash:before,.fa-bolt:before{content:\"\"}.fa-sitemap:before{content:\"\"}.fa-umbrella:before{content:\"\"}.fa-paste:before,.fa-clipboard:before{content:\"\"}.fa-lightbulb-o:before{content:\"\"}.fa-exchange:before{content:\"\"}.fa-cloud-download:before{content:\"\"}.fa-cloud-upload:before{content:\"\"}.fa-user-md:before{content:\"\"}.fa-stethoscope:before{content:\"\"}.fa-suitcase:before{content:\"\"}.fa-bell-o:before{content:\"\"}.fa-coffee:before{content:\"\"}.fa-cutlery:before{content:\"\"}.fa-file-text-o:before{content:\"\"}.fa-building-o:before{content:\"\"}.fa-hospital-o:before{content:\"\"}.fa-ambulance:before{content:\"\"}.fa-medkit:before{content:\"\"}.fa-fighter-jet:before{content:\"\"}.fa-beer:before{content:\"\"}.fa-h-square:before{content:\"\"}.fa-plus-square:before{content:\"\"}.fa-angle-double-left:before{content:\"\"}.fa-angle-double-right:before{content:\"\"}.fa-angle-double-up:before{content:\"\"}.fa-angle-double-down:before{content:\"\"}.fa-angle-left:before{content:\"\"}.fa-angle-right:before{content:\"\"}.fa-angle-up:before{content:\"\"}.fa-angle-down:before{content:\"\"}.fa-desktop:before{content:\"\"}.fa-laptop:before{content:\"\"}.fa-tablet:before{content:\"\"}.fa-mobile-phone:before,.fa-mobile:before{content:\"\"}.fa-circle-o:before{content:\"\"}.fa-quote-left:before{content:\"\"}.fa-quote-right:before{content:\"\"}.fa-spinner:before{content:\"\"}.fa-circle:before{content:\"\"}.fa-mail-reply:before,.fa-reply:before{content:\"\"}.fa-github-alt:before{content:\"\"}.fa-folder-o:before{content:\"\"}.fa-folder-open-o:before{content:\"\"}.fa-smile-o:before{content:\"\"}.fa-frown-o:before{content:\"\"}.fa-meh-o:before{content:\"\"}.fa-gamepad:before{content:\"\"}.fa-keyboard-o:before{content:\"\"}.fa-flag-o:before{content:\"\"}.fa-flag-checkered:before{content:\"\"}.fa-terminal:before{content:\"\"}.fa-code:before{content:\"\"}.fa-mail-reply-all:before,.fa-reply-all:before{content:\"\"}.fa-star-half-empty:before,.fa-star-half-full:before,.fa-star-half-o:before{content:\"\"}.fa-location-arrow:before{content:\"\"}.fa-crop:before{content:\"\"}.fa-code-fork:before{content:\"\"}.fa-unlink:before,.fa-chain-broken:before{content:\"\"}.fa-question:before{content:\"\"}.fa-info:before{content:\"\"}.fa-exclamation:before{content:\"\"}.fa-superscript:before{content:\"\"}.fa-subscript:before{content:\"\"}.fa-eraser:before{content:\"\"}.fa-puzzle-piece:before{content:\"\"}.fa-microphone:before{content:\"\"}.fa-microphone-slash:before{content:\"\"}.fa-shield:before{content:\"\"}.fa-calendar-o:before{content:\"\"}.fa-fire-extinguisher:before{content:\"\"}.fa-rocket:before{content:\"\"}.fa-maxcdn:before{content:\"\"}.fa-chevron-circle-left:before{content:\"\"}.fa-chevron-circle-right:before{content:\"\"}.fa-chevron-circle-up:before{content:\"\"}.fa-chevron-circle-down:before{content:\"\"}.fa-html5:before{content:\"\"}.fa-css3:before{content:\"\"}.fa-anchor:before{content:\"\"}.fa-unlock-alt:before{content:\"\"}.fa-bullseye:before{content:\"\"}.fa-ellipsis-h:before{content:\"\"}.fa-ellipsis-v:before{content:\"\"}.fa-rss-square:before{content:\"\"}.fa-play-circle:before{content:\"\"}.fa-ticket:before{content:\"\"}.fa-minus-square:before{content:\"\"}.fa-minus-square-o:before{content:\"\"}.fa-level-up:before{content:\"\"}.fa-level-down:before{content:\"\"}.fa-check-square:before{content:\"\"}.fa-pencil-square:before{content:\"\"}.fa-external-link-square:before{content:\"\"}.fa-share-square:before{content:\"\"}.fa-compass:before{content:\"\"}.fa-toggle-down:before,.fa-caret-square-o-down:before{content:\"\"}.fa-toggle-up:before,.fa-caret-square-o-up:before{content:\"\"}.fa-toggle-right:before,.fa-caret-square-o-right:before{content:\"\"}.fa-euro:before,.fa-eur:before{content:\"\"}.fa-gbp:before{content:\"\"}.fa-dollar:before,.fa-usd:before{content:\"\"}.fa-rupee:before,.fa-inr:before{content:\"\"}.fa-cny:before,.fa-rmb:before,.fa-yen:before,.fa-jpy:before{content:\"\"}.fa-ruble:before,.fa-rouble:before,.fa-rub:before{content:\"\"}.fa-won:before,.fa-krw:before{content:\"\"}.fa-bitcoin:before,.fa-btc:before{content:\"\"}.fa-file:before{content:\"\"}.fa-file-text:before{content:\"\"}.fa-sort-alpha-asc:before{content:\"\"}.fa-sort-alpha-desc:before{content:\"\"}.fa-sort-amount-asc:before{content:\"\"}.fa-sort-amount-desc:before{content:\"\"}.fa-sort-numeric-asc:before{content:\"\"}.fa-sort-numeric-desc:before{content:\"\"}.fa-thumbs-up:before{content:\"\"}.fa-thumbs-down:before{content:\"\"}.fa-youtube-square:before{content:\"\"}.fa-youtube:before{content:\"\"}.fa-xing:before{content:\"\"}.fa-xing-square:before{content:\"\"}.fa-youtube-play:before{content:\"\"}.fa-dropbox:before{content:\"\"}.fa-stack-overflow:before{content:\"\"}.fa-instagram:before{content:\"\"}.fa-flickr:before{content:\"\"}.fa-adn:before{content:\"\"}.fa-bitbucket:before{content:\"\"}.fa-bitbucket-square:before{content:\"\"}.fa-tumblr:before{content:\"\"}.fa-tumblr-square:before{content:\"\"}.fa-long-arrow-down:before{content:\"\"}.fa-long-arrow-up:before{content:\"\"}.fa-long-arrow-left:before{content:\"\"}.fa-long-arrow-right:before{content:\"\"}.fa-apple:before{content:\"\"}.fa-windows:before{content:\"\"}.fa-android:before{content:\"\"}.fa-linux:before{content:\"\"}.fa-dribbble:before{content:\"\"}.fa-skype:before{content:\"\"}.fa-foursquare:before{content:\"\"}.fa-trello:before{content:\"\"}.fa-female:before{content:\"\"}.fa-male:before{content:\"\"}.fa-gittip:before,.fa-gratipay:before{content:\"\"}.fa-sun-o:before{content:\"\"}.fa-moon-o:before{content:\"\"}.fa-archive:before{content:\"\"}.fa-bug:before{content:\"\"}.fa-vk:before{content:\"\"}.fa-weibo:before{content:\"\"}.fa-renren:before{content:\"\"}.fa-pagelines:before{content:\"\"}.fa-stack-exchange:before{content:\"\"}.fa-arrow-circle-o-right:before{content:\"\"}.fa-arrow-circle-o-left:before{content:\"\"}.fa-toggle-left:before,.fa-caret-square-o-left:before{content:\"\"}.fa-dot-circle-o:before{content:\"\"}.fa-wheelchair:before{content:\"\"}.fa-vimeo-square:before{content:\"\"}.fa-turkish-lira:before,.fa-try:before{content:\"\"}.fa-plus-square-o:before{content:\"\"}.fa-space-shuttle:before{content:\"\"}.fa-slack:before{content:\"\"}.fa-envelope-square:before{content:\"\"}.fa-wordpress:before{content:\"\"}.fa-openid:before{content:\"\"}.fa-institution:before,.fa-bank:before,.fa-university:before{content:\"\"}.fa-mortar-board:before,.fa-graduation-cap:before{content:\"\"}.fa-yahoo:before{content:\"\"}.fa-google:before{content:\"\"}.fa-reddit:before{content:\"\"}.fa-reddit-square:before{content:\"\"}.fa-stumbleupon-circle:before{content:\"\"}.fa-stumbleupon:before{content:\"\"}.fa-delicious:before{content:\"\"}.fa-digg:before{content:\"\"}.fa-pied-piper-pp:before{content:\"\"}.fa-pied-piper-alt:before{content:\"\"}.fa-drupal:before{content:\"\"}.fa-joomla:before{content:\"\"}.fa-language:before{content:\"\"}.fa-fax:before{content:\"\"}.fa-building:before{content:\"\"}.fa-child:before{content:\"\"}.fa-paw:before{content:\"\"}.fa-spoon:before{content:\"\"}.fa-cube:before{content:\"\"}.fa-cubes:before{content:\"\"}.fa-behance:before{content:\"\"}.fa-behance-square:before{content:\"\"}.fa-steam:before{content:\"\"}.fa-steam-square:before{content:\"\"}.fa-recycle:before{content:\"\"}.fa-automobile:before,.fa-car:before{content:\"\"}.fa-cab:before,.fa-taxi:before{content:\"\"}.fa-tree:before{content:\"\"}.fa-spotify:before{content:\"\"}.fa-deviantart:before{content:\"\"}.fa-soundcloud:before{content:\"\"}.fa-database:before{content:\"\"}.fa-file-pdf-o:before{content:\"\"}.fa-file-word-o:before{content:\"\"}.fa-file-excel-o:before{content:\"\"}.fa-file-powerpoint-o:before{content:\"\"}.fa-file-photo-o:before,.fa-file-picture-o:before,.fa-file-image-o:before{content:\"\"}.fa-file-zip-o:before,.fa-file-archive-o:before{content:\"\"}.fa-file-sound-o:before,.fa-file-audio-o:before{content:\"\"}.fa-file-movie-o:before,.fa-file-video-o:before{content:\"\"}.fa-file-code-o:before{content:\"\"}.fa-vine:before{content:\"\"}.fa-codepen:before{content:\"\"}.fa-jsfiddle:before{content:\"\"}.fa-life-bouy:before,.fa-life-buoy:before,.fa-life-saver:before,.fa-support:before,.fa-life-ring:before{content:\"\"}.fa-circle-o-notch:before{content:\"\"}.fa-ra:before,.fa-resistance:before,.fa-rebel:before{content:\"\"}.fa-ge:before,.fa-empire:before{content:\"\"}.fa-git-square:before{content:\"\"}.fa-git:before{content:\"\"}.fa-y-combinator-square:before,.fa-yc-square:before,.fa-hacker-news:before{content:\"\"}.fa-tencent-weibo:before{content:\"\"}.fa-qq:before{content:\"\"}.fa-wechat:before,.fa-weixin:before{content:\"\"}.fa-send:before,.fa-paper-plane:before{content:\"\"}.fa-send-o:before,.fa-paper-plane-o:before{content:\"\"}.fa-history:before{content:\"\"}.fa-circle-thin:before{content:\"\"}.fa-header:before{content:\"\"}.fa-paragraph:before{content:\"\"}.fa-sliders:before{content:\"\"}.fa-share-alt:before{content:\"\"}.fa-share-alt-square:before{content:\"\"}.fa-bomb:before{content:\"\"}.fa-soccer-ball-o:before,.fa-futbol-o:before{content:\"\"}.fa-tty:before{content:\"\"}.fa-binoculars:before{content:\"\"}.fa-plug:before{content:\"\"}.fa-slideshare:before{content:\"\"}.fa-twitch:before{content:\"\"}.fa-yelp:before{content:\"\"}.fa-newspaper-o:before{content:\"\"}.fa-wifi:before{content:\"\"}.fa-calculator:before{content:\"\"}.fa-paypal:before{content:\"\"}.fa-google-wallet:before{content:\"\"}.fa-cc-visa:before{content:\"\"}.fa-cc-mastercard:before{content:\"\"}.fa-cc-discover:before{content:\"\"}.fa-cc-amex:before{content:\"\"}.fa-cc-paypal:before{content:\"\"}.fa-cc-stripe:before{content:\"\"}.fa-bell-slash:before{content:\"\"}.fa-bell-slash-o:before{content:\"\"}.fa-trash:before{content:\"\"}.fa-copyright:before{content:\"\"}.fa-at:before{content:\"\"}.fa-eyedropper:before{content:\"\"}.fa-paint-brush:before{content:\"\"}.fa-birthday-cake:before{content:\"\"}.fa-area-chart:before{content:\"\"}.fa-pie-chart:before{content:\"\"}.fa-line-chart:before{content:\"\"}.fa-lastfm:before{content:\"\"}.fa-lastfm-square:before{content:\"\"}.fa-toggle-off:before{content:\"\"}.fa-toggle-on:before{content:\"\"}.fa-bicycle:before{content:\"\"}.fa-bus:before{content:\"\"}.fa-ioxhost:before{content:\"\"}.fa-angellist:before{content:\"\"}.fa-cc:before{content:\"\"}.fa-shekel:before,.fa-sheqel:before,.fa-ils:before{content:\"\"}.fa-meanpath:before{content:\"\"}.fa-buysellads:before{content:\"\"}.fa-connectdevelop:before{content:\"\"}.fa-dashcube:before{content:\"\"}.fa-forumbee:before{content:\"\"}.fa-leanpub:before{content:\"\"}.fa-sellsy:before{content:\"\"}.fa-shirtsinbulk:before{content:\"\"}.fa-simplybuilt:before{content:\"\"}.fa-skyatlas:before{content:\"\"}.fa-cart-plus:before{content:\"\"}.fa-cart-arrow-down:before{content:\"\"}.fa-diamond:before{content:\"\"}.fa-ship:before{content:\"\"}.fa-user-secret:before{content:\"\"}.fa-motorcycle:before{content:\"\"}.fa-street-view:before{content:\"\"}.fa-heartbeat:before{content:\"\"}.fa-venus:before{content:\"\"}.fa-mars:before{content:\"\"}.fa-mercury:before{content:\"\"}.fa-intersex:before,.fa-transgender:before{content:\"\"}.fa-transgender-alt:before{content:\"\"}.fa-venus-double:before{content:\"\"}.fa-mars-double:before{content:\"\"}.fa-venus-mars:before{content:\"\"}.fa-mars-stroke:before{content:\"\"}.fa-mars-stroke-v:before{content:\"\"}.fa-mars-stroke-h:before{content:\"\"}.fa-neuter:before{content:\"\"}.fa-genderless:before{content:\"\"}.fa-facebook-official:before{content:\"\"}.fa-pinterest-p:before{content:\"\"}.fa-whatsapp:before{content:\"\"}.fa-server:before{content:\"\"}.fa-user-plus:before{content:\"\"}.fa-user-times:before{content:\"\"}.fa-hotel:before,.fa-bed:before{content:\"\"}.fa-viacoin:before{content:\"\"}.fa-train:before{content:\"\"}.fa-subway:before{content:\"\"}.fa-medium:before{content:\"\"}.fa-yc:before,.fa-y-combinator:before{content:\"\"}.fa-optin-monster:before{content:\"\"}.fa-opencart:before{content:\"\"}.fa-expeditedssl:before{content:\"\"}.fa-battery-4:before,.fa-battery:before,.fa-battery-full:before{content:\"\"}.fa-battery-3:before,.fa-battery-three-quarters:before{content:\"\"}.fa-battery-2:before,.fa-battery-half:before{content:\"\"}.fa-battery-1:before,.fa-battery-quarter:before{content:\"\"}.fa-battery-0:before,.fa-battery-empty:before{content:\"\"}.fa-mouse-pointer:before{content:\"\"}.fa-i-cursor:before{content:\"\"}.fa-object-group:before{content:\"\"}.fa-object-ungroup:before{content:\"\"}.fa-sticky-note:before{content:\"\"}.fa-sticky-note-o:before{content:\"\"}.fa-cc-jcb:before{content:\"\"}.fa-cc-diners-club:before{content:\"\"}.fa-clone:before{content:\"\"}.fa-balance-scale:before{content:\"\"}.fa-hourglass-o:before{content:\"\"}.fa-hourglass-1:before,.fa-hourglass-start:before{content:\"\"}.fa-hourglass-2:before,.fa-hourglass-half:before{content:\"\"}.fa-hourglass-3:before,.fa-hourglass-end:before{content:\"\"}.fa-hourglass:before{content:\"\"}.fa-hand-grab-o:before,.fa-hand-rock-o:before{content:\"\"}.fa-hand-stop-o:before,.fa-hand-paper-o:before{content:\"\"}.fa-hand-scissors-o:before{content:\"\"}.fa-hand-lizard-o:before{content:\"\"}.fa-hand-spock-o:before{content:\"\"}.fa-hand-pointer-o:before{content:\"\"}.fa-hand-peace-o:before{content:\"\"}.fa-trademark:before{content:\"\"}.fa-registered:before{content:\"\"}.fa-creative-commons:before{content:\"\"}.fa-gg:before{content:\"\"}.fa-gg-circle:before{content:\"\"}.fa-tripadvisor:before{content:\"\"}.fa-odnoklassniki:before{content:\"\"}.fa-odnoklassniki-square:before{content:\"\"}.fa-get-pocket:before{content:\"\"}.fa-wikipedia-w:before{content:\"\"}.fa-safari:before{content:\"\"}.fa-chrome:before{content:\"\"}.fa-firefox:before{content:\"\"}.fa-opera:before{content:\"\"}.fa-internet-explorer:before{content:\"\"}.fa-tv:before,.fa-television:before{content:\"\"}.fa-contao:before{content:\"\"}.fa-500px:before{content:\"\"}.fa-amazon:before{content:\"\"}.fa-calendar-plus-o:before{content:\"\"}.fa-calendar-minus-o:before{content:\"\"}.fa-calendar-times-o:before{content:\"\"}.fa-calendar-check-o:before{content:\"\"}.fa-industry:before{content:\"\"}.fa-map-pin:before{content:\"\"}.fa-map-signs:before{content:\"\"}.fa-map-o:before{content:\"\"}.fa-map:before{content:\"\"}.fa-commenting:before{content:\"\"}.fa-commenting-o:before{content:\"\"}.fa-houzz:before{content:\"\"}.fa-vimeo:before{content:\"\"}.fa-black-tie:before{content:\"\"}.fa-fonticons:before{content:\"\"}.fa-reddit-alien:before{content:\"\"}.fa-edge:before{content:\"\"}.fa-credit-card-alt:before{content:\"\"}.fa-codiepie:before{content:\"\"}.fa-modx:before{content:\"\"}.fa-fort-awesome:before{content:\"\"}.fa-usb:before{content:\"\"}.fa-product-hunt:before{content:\"\"}.fa-mixcloud:before{content:\"\"}.fa-scribd:before{content:\"\"}.fa-pause-circle:before{content:\"\"}.fa-pause-circle-o:before{content:\"\"}.fa-stop-circle:before{content:\"\"}.fa-stop-circle-o:before{content:\"\"}.fa-shopping-bag:before{content:\"\"}.fa-shopping-basket:before{content:\"\"}.fa-hashtag:before{content:\"\"}.fa-bluetooth:before{content:\"\"}.fa-bluetooth-b:before{content:\"\"}.fa-percent:before{content:\"\"}.fa-gitlab:before{content:\"\"}.fa-wpbeginner:before{content:\"\"}.fa-wpforms:before{content:\"\"}.fa-envira:before{content:\"\"}.fa-universal-access:before{content:\"\"}.fa-wheelchair-alt:before{content:\"\"}.fa-question-circle-o:before{content:\"\"}.fa-blind:before{content:\"\"}.fa-audio-description:before{content:\"\"}.fa-volume-control-phone:before{content:\"\"}.fa-braille:before{content:\"\"}.fa-assistive-listening-systems:before{content:\"\"}.fa-asl-interpreting:before,.fa-american-sign-language-interpreting:before{content:\"\"}.fa-deafness:before,.fa-hard-of-hearing:before,.fa-deaf:before{content:\"\"}.fa-glide:before{content:\"\"}.fa-glide-g:before{content:\"\"}.fa-signing:before,.fa-sign-language:before{content:\"\"}.fa-low-vision:before{content:\"\"}.fa-viadeo:before{content:\"\"}.fa-viadeo-square:before{content:\"\"}.fa-snapchat:before{content:\"\"}.fa-snapchat-ghost:before{content:\"\"}.fa-snapchat-square:before{content:\"\"}.fa-pied-piper:before{content:\"\"}.fa-first-order:before{content:\"\"}.fa-yoast:before{content:\"\"}.fa-themeisle:before{content:\"\"}.fa-google-plus-circle:before,.fa-google-plus-official:before{content:\"\"}.fa-fa:before,.fa-font-awesome:before{content:\"\"}.fa-handshake-o:before{content:\"\"}.fa-envelope-open:before{content:\"\"}.fa-envelope-open-o:before{content:\"\"}.fa-linode:before{content:\"\"}.fa-address-book:before{content:\"\"}.fa-address-book-o:before{content:\"\"}.fa-vcard:before,.fa-address-card:before{content:\"\"}.fa-vcard-o:before,.fa-address-card-o:before{content:\"\"}.fa-user-circle:before{content:\"\"}.fa-user-circle-o:before{content:\"\"}.fa-user-o:before{content:\"\"}.fa-id-badge:before{content:\"\"}.fa-drivers-license:before,.fa-id-card:before{content:\"\"}.fa-drivers-license-o:before,.fa-id-card-o:before{content:\"\"}.fa-quora:before{content:\"\"}.fa-free-code-camp:before{content:\"\"}.fa-telegram:before{content:\"\"}.fa-thermometer-4:before,.fa-thermometer:before,.fa-thermometer-full:before{content:\"\"}.fa-thermometer-3:before,.fa-thermometer-three-quarters:before{content:\"\"}.fa-thermometer-2:before,.fa-thermometer-half:before{content:\"\"}.fa-thermometer-1:before,.fa-thermometer-quarter:before{content:\"\"}.fa-thermometer-0:before,.fa-thermometer-empty:before{content:\"\"}.fa-shower:before{content:\"\"}.fa-bathtub:before,.fa-s15:before,.fa-bath:before{content:\"\"}.fa-podcast:before{content:\"\"}.fa-window-maximize:before{content:\"\"}.fa-window-minimize:before{content:\"\"}.fa-window-restore:before{content:\"\"}.fa-times-rectangle:before,.fa-window-close:before{content:\"\"}.fa-times-rectangle-o:before,.fa-window-close-o:before{content:\"\"}.fa-bandcamp:before{content:\"\"}.fa-grav:before{content:\"\"}.fa-etsy:before{content:\"\"}.fa-imdb:before{content:\"\"}.fa-ravelry:before{content:\"\"}.fa-eercast:before{content:\"\"}.fa-microchip:before{content:\"\"}.fa-snowflake-o:before{content:\"\"}.fa-superpowers:before{content:\"\"}.fa-wpexplorer:before{content:\"\"}.fa-meetup:before{content:\"\"}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto}","/*!\n * Font Awesome 4.7.0 by @davegandy - http://fontawesome.io - @fontawesome\n * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License)\n */\n/* FONT PATH\n * -------------------------- */\n@font-face {\n font-family: 'FontAwesome';\n src: url('../fonts/fontawesome-webfont.eot?v=4.7.0');\n src: url('../fonts/fontawesome-webfont.eot?#iefix&v=4.7.0') format('embedded-opentype'), url('../fonts/fontawesome-webfont.woff2?v=4.7.0') format('woff2'), url('../fonts/fontawesome-webfont.woff?v=4.7.0') format('woff'), url('../fonts/fontawesome-webfont.ttf?v=4.7.0') format('truetype'), url('../fonts/fontawesome-webfont.svg?v=4.7.0#fontawesomeregular') format('svg');\n font-weight: normal;\n font-style: normal;\n}\n.fa {\n display: inline-block;\n font: normal normal normal 14px/1 FontAwesome;\n font-size: inherit;\n text-rendering: auto;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n}\n/* makes the font 33% larger relative to the icon container */\n.fa-lg {\n font-size: 1.33333333em;\n line-height: 0.75em;\n vertical-align: -15%;\n}\n.fa-2x {\n font-size: 2em;\n}\n.fa-3x {\n font-size: 3em;\n}\n.fa-4x {\n font-size: 4em;\n}\n.fa-5x {\n font-size: 5em;\n}\n.fa-fw {\n width: 1.28571429em;\n text-align: center;\n}\n.fa-ul {\n padding-left: 0;\n margin-left: 2.14285714em;\n list-style-type: none;\n}\n.fa-ul > li {\n position: relative;\n}\n.fa-li {\n position: absolute;\n left: -2.14285714em;\n width: 2.14285714em;\n top: 0.14285714em;\n text-align: center;\n}\n.fa-li.fa-lg {\n left: -1.85714286em;\n}\n.fa-border {\n padding: .2em .25em .15em;\n border: solid 0.08em #eeeeee;\n border-radius: .1em;\n}\n.fa-pull-left {\n float: left;\n}\n.fa-pull-right {\n float: right;\n}\n.fa.fa-pull-left {\n margin-right: .3em;\n}\n.fa.fa-pull-right {\n margin-left: .3em;\n}\n/* Deprecated as of 4.4.0 */\n.pull-right {\n float: right;\n}\n.pull-left {\n float: left;\n}\n.fa.pull-left {\n margin-right: .3em;\n}\n.fa.pull-right {\n margin-left: .3em;\n}\n.fa-spin {\n -webkit-animation: fa-spin 2s infinite linear;\n animation: fa-spin 2s infinite linear;\n}\n.fa-pulse {\n -webkit-animation: fa-spin 1s infinite steps(8);\n animation: fa-spin 1s infinite steps(8);\n}\n@-webkit-keyframes fa-spin {\n 0% {\n -webkit-transform: rotate(0deg);\n transform: rotate(0deg);\n }\n 100% {\n -webkit-transform: rotate(359deg);\n transform: rotate(359deg);\n }\n}\n@keyframes fa-spin {\n 0% {\n -webkit-transform: rotate(0deg);\n transform: rotate(0deg);\n }\n 100% {\n -webkit-transform: rotate(359deg);\n transform: rotate(359deg);\n }\n}\n.fa-rotate-90 {\n -ms-filter: \"progid:DXImageTransform.Microsoft.BasicImage(rotation=1)\";\n -webkit-transform: rotate(90deg);\n -ms-transform: rotate(90deg);\n transform: rotate(90deg);\n}\n.fa-rotate-180 {\n -ms-filter: \"progid:DXImageTransform.Microsoft.BasicImage(rotation=2)\";\n -webkit-transform: rotate(180deg);\n -ms-transform: rotate(180deg);\n transform: rotate(180deg);\n}\n.fa-rotate-270 {\n -ms-filter: \"progid:DXImageTransform.Microsoft.BasicImage(rotation=3)\";\n -webkit-transform: rotate(270deg);\n -ms-transform: rotate(270deg);\n transform: rotate(270deg);\n}\n.fa-flip-horizontal {\n -ms-filter: \"progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)\";\n -webkit-transform: scale(-1, 1);\n -ms-transform: scale(-1, 1);\n transform: scale(-1, 1);\n}\n.fa-flip-vertical {\n -ms-filter: \"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)\";\n -webkit-transform: scale(1, -1);\n -ms-transform: scale(1, -1);\n transform: scale(1, -1);\n}\n:root .fa-rotate-90,\n:root .fa-rotate-180,\n:root .fa-rotate-270,\n:root .fa-flip-horizontal,\n:root .fa-flip-vertical {\n filter: none;\n}\n.fa-stack {\n position: relative;\n display: inline-block;\n width: 2em;\n height: 2em;\n line-height: 2em;\n vertical-align: middle;\n}\n.fa-stack-1x,\n.fa-stack-2x {\n position: absolute;\n left: 0;\n width: 100%;\n text-align: center;\n}\n.fa-stack-1x {\n line-height: inherit;\n}\n.fa-stack-2x {\n font-size: 2em;\n}\n.fa-inverse {\n color: #ffffff;\n}\n/* Font Awesome uses the Unicode Private Use Area (PUA) to ensure screen\n readers do not read off random characters that represent icons */\n.fa-glass:before {\n content: \"\\f000\";\n}\n.fa-music:before {\n content: \"\\f001\";\n}\n.fa-search:before {\n content: \"\\f002\";\n}\n.fa-envelope-o:before {\n content: \"\\f003\";\n}\n.fa-heart:before {\n content: \"\\f004\";\n}\n.fa-star:before {\n content: \"\\f005\";\n}\n.fa-star-o:before {\n content: \"\\f006\";\n}\n.fa-user:before {\n content: \"\\f007\";\n}\n.fa-film:before {\n content: \"\\f008\";\n}\n.fa-th-large:before {\n content: \"\\f009\";\n}\n.fa-th:before {\n content: \"\\f00a\";\n}\n.fa-th-list:before {\n content: \"\\f00b\";\n}\n.fa-check:before {\n content: \"\\f00c\";\n}\n.fa-remove:before,\n.fa-close:before,\n.fa-times:before {\n content: \"\\f00d\";\n}\n.fa-search-plus:before {\n content: \"\\f00e\";\n}\n.fa-search-minus:before {\n content: \"\\f010\";\n}\n.fa-power-off:before {\n content: \"\\f011\";\n}\n.fa-signal:before {\n content: \"\\f012\";\n}\n.fa-gear:before,\n.fa-cog:before {\n content: \"\\f013\";\n}\n.fa-trash-o:before {\n content: \"\\f014\";\n}\n.fa-home:before {\n content: \"\\f015\";\n}\n.fa-file-o:before {\n content: \"\\f016\";\n}\n.fa-clock-o:before {\n content: \"\\f017\";\n}\n.fa-road:before {\n content: \"\\f018\";\n}\n.fa-download:before {\n content: \"\\f019\";\n}\n.fa-arrow-circle-o-down:before {\n content: \"\\f01a\";\n}\n.fa-arrow-circle-o-up:before {\n content: \"\\f01b\";\n}\n.fa-inbox:before {\n content: \"\\f01c\";\n}\n.fa-play-circle-o:before {\n content: \"\\f01d\";\n}\n.fa-rotate-right:before,\n.fa-repeat:before {\n content: \"\\f01e\";\n}\n.fa-refresh:before {\n content: \"\\f021\";\n}\n.fa-list-alt:before {\n content: \"\\f022\";\n}\n.fa-lock:before {\n content: \"\\f023\";\n}\n.fa-flag:before {\n content: \"\\f024\";\n}\n.fa-headphones:before {\n content: \"\\f025\";\n}\n.fa-volume-off:before {\n content: \"\\f026\";\n}\n.fa-volume-down:before {\n content: \"\\f027\";\n}\n.fa-volume-up:before {\n content: \"\\f028\";\n}\n.fa-qrcode:before {\n content: \"\\f029\";\n}\n.fa-barcode:before {\n content: \"\\f02a\";\n}\n.fa-tag:before {\n content: \"\\f02b\";\n}\n.fa-tags:before {\n content: \"\\f02c\";\n}\n.fa-book:before {\n content: \"\\f02d\";\n}\n.fa-bookmark:before {\n content: \"\\f02e\";\n}\n.fa-print:before {\n content: \"\\f02f\";\n}\n.fa-camera:before {\n content: \"\\f030\";\n}\n.fa-font:before {\n content: \"\\f031\";\n}\n.fa-bold:before {\n content: \"\\f032\";\n}\n.fa-italic:before {\n content: \"\\f033\";\n}\n.fa-text-height:before {\n content: \"\\f034\";\n}\n.fa-text-width:before {\n content: \"\\f035\";\n}\n.fa-align-left:before {\n content: \"\\f036\";\n}\n.fa-align-center:before {\n content: \"\\f037\";\n}\n.fa-align-right:before {\n content: \"\\f038\";\n}\n.fa-align-justify:before {\n content: \"\\f039\";\n}\n.fa-list:before {\n content: \"\\f03a\";\n}\n.fa-dedent:before,\n.fa-outdent:before {\n content: \"\\f03b\";\n}\n.fa-indent:before {\n content: \"\\f03c\";\n}\n.fa-video-camera:before {\n content: \"\\f03d\";\n}\n.fa-photo:before,\n.fa-image:before,\n.fa-picture-o:before {\n content: \"\\f03e\";\n}\n.fa-pencil:before {\n content: \"\\f040\";\n}\n.fa-map-marker:before {\n content: \"\\f041\";\n}\n.fa-adjust:before {\n content: \"\\f042\";\n}\n.fa-tint:before {\n content: \"\\f043\";\n}\n.fa-edit:before,\n.fa-pencil-square-o:before {\n content: \"\\f044\";\n}\n.fa-share-square-o:before {\n content: \"\\f045\";\n}\n.fa-check-square-o:before {\n content: \"\\f046\";\n}\n.fa-arrows:before {\n content: \"\\f047\";\n}\n.fa-step-backward:before {\n content: \"\\f048\";\n}\n.fa-fast-backward:before {\n content: \"\\f049\";\n}\n.fa-backward:before {\n content: \"\\f04a\";\n}\n.fa-play:before {\n content: \"\\f04b\";\n}\n.fa-pause:before {\n content: \"\\f04c\";\n}\n.fa-stop:before {\n content: \"\\f04d\";\n}\n.fa-forward:before {\n content: \"\\f04e\";\n}\n.fa-fast-forward:before {\n content: \"\\f050\";\n}\n.fa-step-forward:before {\n content: \"\\f051\";\n}\n.fa-eject:before {\n content: \"\\f052\";\n}\n.fa-chevron-left:before {\n content: \"\\f053\";\n}\n.fa-chevron-right:before {\n content: \"\\f054\";\n}\n.fa-plus-circle:before {\n content: \"\\f055\";\n}\n.fa-minus-circle:before {\n content: \"\\f056\";\n}\n.fa-times-circle:before {\n content: \"\\f057\";\n}\n.fa-check-circle:before {\n content: \"\\f058\";\n}\n.fa-question-circle:before {\n content: \"\\f059\";\n}\n.fa-info-circle:before {\n content: \"\\f05a\";\n}\n.fa-crosshairs:before {\n content: \"\\f05b\";\n}\n.fa-times-circle-o:before {\n content: \"\\f05c\";\n}\n.fa-check-circle-o:before {\n content: \"\\f05d\";\n}\n.fa-ban:before {\n content: \"\\f05e\";\n}\n.fa-arrow-left:before {\n content: \"\\f060\";\n}\n.fa-arrow-right:before {\n content: \"\\f061\";\n}\n.fa-arrow-up:before {\n content: \"\\f062\";\n}\n.fa-arrow-down:before {\n content: \"\\f063\";\n}\n.fa-mail-forward:before,\n.fa-share:before {\n content: \"\\f064\";\n}\n.fa-expand:before {\n content: \"\\f065\";\n}\n.fa-compress:before {\n content: \"\\f066\";\n}\n.fa-plus:before {\n content: \"\\f067\";\n}\n.fa-minus:before {\n content: \"\\f068\";\n}\n.fa-asterisk:before {\n content: \"\\f069\";\n}\n.fa-exclamation-circle:before {\n content: \"\\f06a\";\n}\n.fa-gift:before {\n content: \"\\f06b\";\n}\n.fa-leaf:before {\n content: \"\\f06c\";\n}\n.fa-fire:before {\n content: \"\\f06d\";\n}\n.fa-eye:before {\n content: \"\\f06e\";\n}\n.fa-eye-slash:before {\n content: \"\\f070\";\n}\n.fa-warning:before,\n.fa-exclamation-triangle:before {\n content: \"\\f071\";\n}\n.fa-plane:before {\n content: \"\\f072\";\n}\n.fa-calendar:before {\n content: \"\\f073\";\n}\n.fa-random:before {\n content: \"\\f074\";\n}\n.fa-comment:before {\n content: \"\\f075\";\n}\n.fa-magnet:before {\n content: \"\\f076\";\n}\n.fa-chevron-up:before {\n content: \"\\f077\";\n}\n.fa-chevron-down:before {\n content: \"\\f078\";\n}\n.fa-retweet:before {\n content: \"\\f079\";\n}\n.fa-shopping-cart:before {\n content: \"\\f07a\";\n}\n.fa-folder:before {\n content: \"\\f07b\";\n}\n.fa-folder-open:before {\n content: \"\\f07c\";\n}\n.fa-arrows-v:before {\n content: \"\\f07d\";\n}\n.fa-arrows-h:before {\n content: \"\\f07e\";\n}\n.fa-bar-chart-o:before,\n.fa-bar-chart:before {\n content: \"\\f080\";\n}\n.fa-twitter-square:before {\n content: \"\\f081\";\n}\n.fa-facebook-square:before {\n content: \"\\f082\";\n}\n.fa-camera-retro:before {\n content: \"\\f083\";\n}\n.fa-key:before {\n content: \"\\f084\";\n}\n.fa-gears:before,\n.fa-cogs:before {\n content: \"\\f085\";\n}\n.fa-comments:before {\n content: \"\\f086\";\n}\n.fa-thumbs-o-up:before {\n content: \"\\f087\";\n}\n.fa-thumbs-o-down:before {\n content: \"\\f088\";\n}\n.fa-star-half:before {\n content: \"\\f089\";\n}\n.fa-heart-o:before {\n content: \"\\f08a\";\n}\n.fa-sign-out:before {\n content: \"\\f08b\";\n}\n.fa-linkedin-square:before {\n content: \"\\f08c\";\n}\n.fa-thumb-tack:before {\n content: \"\\f08d\";\n}\n.fa-external-link:before {\n content: \"\\f08e\";\n}\n.fa-sign-in:before {\n content: \"\\f090\";\n}\n.fa-trophy:before {\n content: \"\\f091\";\n}\n.fa-github-square:before {\n content: \"\\f092\";\n}\n.fa-upload:before {\n content: \"\\f093\";\n}\n.fa-lemon-o:before {\n content: \"\\f094\";\n}\n.fa-phone:before {\n content: \"\\f095\";\n}\n.fa-square-o:before {\n content: \"\\f096\";\n}\n.fa-bookmark-o:before {\n content: \"\\f097\";\n}\n.fa-phone-square:before {\n content: \"\\f098\";\n}\n.fa-twitter:before {\n content: \"\\f099\";\n}\n.fa-facebook-f:before,\n.fa-facebook:before {\n content: \"\\f09a\";\n}\n.fa-github:before {\n content: \"\\f09b\";\n}\n.fa-unlock:before {\n content: \"\\f09c\";\n}\n.fa-credit-card:before {\n content: \"\\f09d\";\n}\n.fa-feed:before,\n.fa-rss:before {\n content: \"\\f09e\";\n}\n.fa-hdd-o:before {\n content: \"\\f0a0\";\n}\n.fa-bullhorn:before {\n content: \"\\f0a1\";\n}\n.fa-bell:before {\n content: \"\\f0f3\";\n}\n.fa-certificate:before {\n content: \"\\f0a3\";\n}\n.fa-hand-o-right:before {\n content: \"\\f0a4\";\n}\n.fa-hand-o-left:before {\n content: \"\\f0a5\";\n}\n.fa-hand-o-up:before {\n content: \"\\f0a6\";\n}\n.fa-hand-o-down:before {\n content: \"\\f0a7\";\n}\n.fa-arrow-circle-left:before {\n content: \"\\f0a8\";\n}\n.fa-arrow-circle-right:before {\n content: \"\\f0a9\";\n}\n.fa-arrow-circle-up:before {\n content: \"\\f0aa\";\n}\n.fa-arrow-circle-down:before {\n content: \"\\f0ab\";\n}\n.fa-globe:before {\n content: \"\\f0ac\";\n}\n.fa-wrench:before {\n content: \"\\f0ad\";\n}\n.fa-tasks:before {\n content: \"\\f0ae\";\n}\n.fa-filter:before {\n content: \"\\f0b0\";\n}\n.fa-briefcase:before {\n content: \"\\f0b1\";\n}\n.fa-arrows-alt:before {\n content: \"\\f0b2\";\n}\n.fa-group:before,\n.fa-users:before {\n content: \"\\f0c0\";\n}\n.fa-chain:before,\n.fa-link:before {\n content: \"\\f0c1\";\n}\n.fa-cloud:before {\n content: \"\\f0c2\";\n}\n.fa-flask:before {\n content: \"\\f0c3\";\n}\n.fa-cut:before,\n.fa-scissors:before {\n content: \"\\f0c4\";\n}\n.fa-copy:before,\n.fa-files-o:before {\n content: \"\\f0c5\";\n}\n.fa-paperclip:before {\n content: \"\\f0c6\";\n}\n.fa-save:before,\n.fa-floppy-o:before {\n content: \"\\f0c7\";\n}\n.fa-square:before {\n content: \"\\f0c8\";\n}\n.fa-navicon:before,\n.fa-reorder:before,\n.fa-bars:before {\n content: \"\\f0c9\";\n}\n.fa-list-ul:before {\n content: \"\\f0ca\";\n}\n.fa-list-ol:before {\n content: \"\\f0cb\";\n}\n.fa-strikethrough:before {\n content: \"\\f0cc\";\n}\n.fa-underline:before {\n content: \"\\f0cd\";\n}\n.fa-table:before {\n content: \"\\f0ce\";\n}\n.fa-magic:before {\n content: \"\\f0d0\";\n}\n.fa-truck:before {\n content: \"\\f0d1\";\n}\n.fa-pinterest:before {\n content: \"\\f0d2\";\n}\n.fa-pinterest-square:before {\n content: \"\\f0d3\";\n}\n.fa-google-plus-square:before {\n content: \"\\f0d4\";\n}\n.fa-google-plus:before {\n content: \"\\f0d5\";\n}\n.fa-money:before {\n content: \"\\f0d6\";\n}\n.fa-caret-down:before {\n content: \"\\f0d7\";\n}\n.fa-caret-up:before {\n content: \"\\f0d8\";\n}\n.fa-caret-left:before {\n content: \"\\f0d9\";\n}\n.fa-caret-right:before {\n content: \"\\f0da\";\n}\n.fa-columns:before {\n content: \"\\f0db\";\n}\n.fa-unsorted:before,\n.fa-sort:before {\n content: \"\\f0dc\";\n}\n.fa-sort-down:before,\n.fa-sort-desc:before {\n content: \"\\f0dd\";\n}\n.fa-sort-up:before,\n.fa-sort-asc:before {\n content: \"\\f0de\";\n}\n.fa-envelope:before {\n content: \"\\f0e0\";\n}\n.fa-linkedin:before {\n content: \"\\f0e1\";\n}\n.fa-rotate-left:before,\n.fa-undo:before {\n content: \"\\f0e2\";\n}\n.fa-legal:before,\n.fa-gavel:before {\n content: \"\\f0e3\";\n}\n.fa-dashboard:before,\n.fa-tachometer:before {\n content: \"\\f0e4\";\n}\n.fa-comment-o:before {\n content: \"\\f0e5\";\n}\n.fa-comments-o:before {\n content: \"\\f0e6\";\n}\n.fa-flash:before,\n.fa-bolt:before {\n content: \"\\f0e7\";\n}\n.fa-sitemap:before {\n content: \"\\f0e8\";\n}\n.fa-umbrella:before {\n content: \"\\f0e9\";\n}\n.fa-paste:before,\n.fa-clipboard:before {\n content: \"\\f0ea\";\n}\n.fa-lightbulb-o:before {\n content: \"\\f0eb\";\n}\n.fa-exchange:before {\n content: \"\\f0ec\";\n}\n.fa-cloud-download:before {\n content: \"\\f0ed\";\n}\n.fa-cloud-upload:before {\n content: \"\\f0ee\";\n}\n.fa-user-md:before {\n content: \"\\f0f0\";\n}\n.fa-stethoscope:before {\n content: \"\\f0f1\";\n}\n.fa-suitcase:before {\n content: \"\\f0f2\";\n}\n.fa-bell-o:before {\n content: \"\\f0a2\";\n}\n.fa-coffee:before {\n content: \"\\f0f4\";\n}\n.fa-cutlery:before {\n content: \"\\f0f5\";\n}\n.fa-file-text-o:before {\n content: \"\\f0f6\";\n}\n.fa-building-o:before {\n content: \"\\f0f7\";\n}\n.fa-hospital-o:before {\n content: \"\\f0f8\";\n}\n.fa-ambulance:before {\n content: \"\\f0f9\";\n}\n.fa-medkit:before {\n content: \"\\f0fa\";\n}\n.fa-fighter-jet:before {\n content: \"\\f0fb\";\n}\n.fa-beer:before {\n content: \"\\f0fc\";\n}\n.fa-h-square:before {\n content: \"\\f0fd\";\n}\n.fa-plus-square:before {\n content: \"\\f0fe\";\n}\n.fa-angle-double-left:before {\n content: \"\\f100\";\n}\n.fa-angle-double-right:before {\n content: \"\\f101\";\n}\n.fa-angle-double-up:before {\n content: \"\\f102\";\n}\n.fa-angle-double-down:before {\n content: \"\\f103\";\n}\n.fa-angle-left:before {\n content: \"\\f104\";\n}\n.fa-angle-right:before {\n content: \"\\f105\";\n}\n.fa-angle-up:before {\n content: \"\\f106\";\n}\n.fa-angle-down:before {\n content: \"\\f107\";\n}\n.fa-desktop:before {\n content: \"\\f108\";\n}\n.fa-laptop:before {\n content: \"\\f109\";\n}\n.fa-tablet:before {\n content: \"\\f10a\";\n}\n.fa-mobile-phone:before,\n.fa-mobile:before {\n content: \"\\f10b\";\n}\n.fa-circle-o:before {\n content: \"\\f10c\";\n}\n.fa-quote-left:before {\n content: \"\\f10d\";\n}\n.fa-quote-right:before {\n content: \"\\f10e\";\n}\n.fa-spinner:before {\n content: \"\\f110\";\n}\n.fa-circle:before {\n content: \"\\f111\";\n}\n.fa-mail-reply:before,\n.fa-reply:before {\n content: \"\\f112\";\n}\n.fa-github-alt:before {\n content: \"\\f113\";\n}\n.fa-folder-o:before {\n content: \"\\f114\";\n}\n.fa-folder-open-o:before {\n content: \"\\f115\";\n}\n.fa-smile-o:before {\n content: \"\\f118\";\n}\n.fa-frown-o:before {\n content: \"\\f119\";\n}\n.fa-meh-o:before {\n content: \"\\f11a\";\n}\n.fa-gamepad:before {\n content: \"\\f11b\";\n}\n.fa-keyboard-o:before {\n content: \"\\f11c\";\n}\n.fa-flag-o:before {\n content: \"\\f11d\";\n}\n.fa-flag-checkered:before {\n content: \"\\f11e\";\n}\n.fa-terminal:before {\n content: \"\\f120\";\n}\n.fa-code:before {\n content: \"\\f121\";\n}\n.fa-mail-reply-all:before,\n.fa-reply-all:before {\n content: \"\\f122\";\n}\n.fa-star-half-empty:before,\n.fa-star-half-full:before,\n.fa-star-half-o:before {\n content: \"\\f123\";\n}\n.fa-location-arrow:before {\n content: \"\\f124\";\n}\n.fa-crop:before {\n content: \"\\f125\";\n}\n.fa-code-fork:before {\n content: \"\\f126\";\n}\n.fa-unlink:before,\n.fa-chain-broken:before {\n content: \"\\f127\";\n}\n.fa-question:before {\n content: \"\\f128\";\n}\n.fa-info:before {\n content: \"\\f129\";\n}\n.fa-exclamation:before {\n content: \"\\f12a\";\n}\n.fa-superscript:before {\n content: \"\\f12b\";\n}\n.fa-subscript:before {\n content: \"\\f12c\";\n}\n.fa-eraser:before {\n content: \"\\f12d\";\n}\n.fa-puzzle-piece:before {\n content: \"\\f12e\";\n}\n.fa-microphone:before {\n content: \"\\f130\";\n}\n.fa-microphone-slash:before {\n content: \"\\f131\";\n}\n.fa-shield:before {\n content: \"\\f132\";\n}\n.fa-calendar-o:before {\n content: \"\\f133\";\n}\n.fa-fire-extinguisher:before {\n content: \"\\f134\";\n}\n.fa-rocket:before {\n content: \"\\f135\";\n}\n.fa-maxcdn:before {\n content: \"\\f136\";\n}\n.fa-chevron-circle-left:before {\n content: \"\\f137\";\n}\n.fa-chevron-circle-right:before {\n content: \"\\f138\";\n}\n.fa-chevron-circle-up:before {\n content: \"\\f139\";\n}\n.fa-chevron-circle-down:before {\n content: \"\\f13a\";\n}\n.fa-html5:before {\n content: \"\\f13b\";\n}\n.fa-css3:before {\n content: \"\\f13c\";\n}\n.fa-anchor:before {\n content: \"\\f13d\";\n}\n.fa-unlock-alt:before {\n content: \"\\f13e\";\n}\n.fa-bullseye:before {\n content: \"\\f140\";\n}\n.fa-ellipsis-h:before {\n content: \"\\f141\";\n}\n.fa-ellipsis-v:before {\n content: \"\\f142\";\n}\n.fa-rss-square:before {\n content: \"\\f143\";\n}\n.fa-play-circle:before {\n content: \"\\f144\";\n}\n.fa-ticket:before {\n content: \"\\f145\";\n}\n.fa-minus-square:before {\n content: \"\\f146\";\n}\n.fa-minus-square-o:before {\n content: \"\\f147\";\n}\n.fa-level-up:before {\n content: \"\\f148\";\n}\n.fa-level-down:before {\n content: \"\\f149\";\n}\n.fa-check-square:before {\n content: \"\\f14a\";\n}\n.fa-pencil-square:before {\n content: \"\\f14b\";\n}\n.fa-external-link-square:before {\n content: \"\\f14c\";\n}\n.fa-share-square:before {\n content: \"\\f14d\";\n}\n.fa-compass:before {\n content: \"\\f14e\";\n}\n.fa-toggle-down:before,\n.fa-caret-square-o-down:before {\n content: \"\\f150\";\n}\n.fa-toggle-up:before,\n.fa-caret-square-o-up:before {\n content: \"\\f151\";\n}\n.fa-toggle-right:before,\n.fa-caret-square-o-right:before {\n content: \"\\f152\";\n}\n.fa-euro:before,\n.fa-eur:before {\n content: \"\\f153\";\n}\n.fa-gbp:before {\n content: \"\\f154\";\n}\n.fa-dollar:before,\n.fa-usd:before {\n content: \"\\f155\";\n}\n.fa-rupee:before,\n.fa-inr:before {\n content: \"\\f156\";\n}\n.fa-cny:before,\n.fa-rmb:before,\n.fa-yen:before,\n.fa-jpy:before {\n content: \"\\f157\";\n}\n.fa-ruble:before,\n.fa-rouble:before,\n.fa-rub:before {\n content: \"\\f158\";\n}\n.fa-won:before,\n.fa-krw:before {\n content: \"\\f159\";\n}\n.fa-bitcoin:before,\n.fa-btc:before {\n content: \"\\f15a\";\n}\n.fa-file:before {\n content: \"\\f15b\";\n}\n.fa-file-text:before {\n content: \"\\f15c\";\n}\n.fa-sort-alpha-asc:before {\n content: \"\\f15d\";\n}\n.fa-sort-alpha-desc:before {\n content: \"\\f15e\";\n}\n.fa-sort-amount-asc:before {\n content: \"\\f160\";\n}\n.fa-sort-amount-desc:before {\n content: \"\\f161\";\n}\n.fa-sort-numeric-asc:before {\n content: \"\\f162\";\n}\n.fa-sort-numeric-desc:before {\n content: \"\\f163\";\n}\n.fa-thumbs-up:before {\n content: \"\\f164\";\n}\n.fa-thumbs-down:before {\n content: \"\\f165\";\n}\n.fa-youtube-square:before {\n content: \"\\f166\";\n}\n.fa-youtube:before {\n content: \"\\f167\";\n}\n.fa-xing:before {\n content: \"\\f168\";\n}\n.fa-xing-square:before {\n content: \"\\f169\";\n}\n.fa-youtube-play:before {\n content: \"\\f16a\";\n}\n.fa-dropbox:before {\n content: \"\\f16b\";\n}\n.fa-stack-overflow:before {\n content: \"\\f16c\";\n}\n.fa-instagram:before {\n content: \"\\f16d\";\n}\n.fa-flickr:before {\n content: \"\\f16e\";\n}\n.fa-adn:before {\n content: \"\\f170\";\n}\n.fa-bitbucket:before {\n content: \"\\f171\";\n}\n.fa-bitbucket-square:before {\n content: \"\\f172\";\n}\n.fa-tumblr:before {\n content: \"\\f173\";\n}\n.fa-tumblr-square:before {\n content: \"\\f174\";\n}\n.fa-long-arrow-down:before {\n content: \"\\f175\";\n}\n.fa-long-arrow-up:before {\n content: \"\\f176\";\n}\n.fa-long-arrow-left:before {\n content: \"\\f177\";\n}\n.fa-long-arrow-right:before {\n content: \"\\f178\";\n}\n.fa-apple:before {\n content: \"\\f179\";\n}\n.fa-windows:before {\n content: \"\\f17a\";\n}\n.fa-android:before {\n content: \"\\f17b\";\n}\n.fa-linux:before {\n content: \"\\f17c\";\n}\n.fa-dribbble:before {\n content: \"\\f17d\";\n}\n.fa-skype:before {\n content: \"\\f17e\";\n}\n.fa-foursquare:before {\n content: \"\\f180\";\n}\n.fa-trello:before {\n content: \"\\f181\";\n}\n.fa-female:before {\n content: \"\\f182\";\n}\n.fa-male:before {\n content: \"\\f183\";\n}\n.fa-gittip:before,\n.fa-gratipay:before {\n content: \"\\f184\";\n}\n.fa-sun-o:before {\n content: \"\\f185\";\n}\n.fa-moon-o:before {\n content: \"\\f186\";\n}\n.fa-archive:before {\n content: \"\\f187\";\n}\n.fa-bug:before {\n content: \"\\f188\";\n}\n.fa-vk:before {\n content: \"\\f189\";\n}\n.fa-weibo:before {\n content: \"\\f18a\";\n}\n.fa-renren:before {\n content: \"\\f18b\";\n}\n.fa-pagelines:before {\n content: \"\\f18c\";\n}\n.fa-stack-exchange:before {\n content: \"\\f18d\";\n}\n.fa-arrow-circle-o-right:before {\n content: \"\\f18e\";\n}\n.fa-arrow-circle-o-left:before {\n content: \"\\f190\";\n}\n.fa-toggle-left:before,\n.fa-caret-square-o-left:before {\n content: \"\\f191\";\n}\n.fa-dot-circle-o:before {\n content: \"\\f192\";\n}\n.fa-wheelchair:before {\n content: \"\\f193\";\n}\n.fa-vimeo-square:before {\n content: \"\\f194\";\n}\n.fa-turkish-lira:before,\n.fa-try:before {\n content: \"\\f195\";\n}\n.fa-plus-square-o:before {\n content: \"\\f196\";\n}\n.fa-space-shuttle:before {\n content: \"\\f197\";\n}\n.fa-slack:before {\n content: \"\\f198\";\n}\n.fa-envelope-square:before {\n content: \"\\f199\";\n}\n.fa-wordpress:before {\n content: \"\\f19a\";\n}\n.fa-openid:before {\n content: \"\\f19b\";\n}\n.fa-institution:before,\n.fa-bank:before,\n.fa-university:before {\n content: \"\\f19c\";\n}\n.fa-mortar-board:before,\n.fa-graduation-cap:before {\n content: \"\\f19d\";\n}\n.fa-yahoo:before {\n content: \"\\f19e\";\n}\n.fa-google:before {\n content: \"\\f1a0\";\n}\n.fa-reddit:before {\n content: \"\\f1a1\";\n}\n.fa-reddit-square:before {\n content: \"\\f1a2\";\n}\n.fa-stumbleupon-circle:before {\n content: \"\\f1a3\";\n}\n.fa-stumbleupon:before {\n content: \"\\f1a4\";\n}\n.fa-delicious:before {\n content: \"\\f1a5\";\n}\n.fa-digg:before {\n content: \"\\f1a6\";\n}\n.fa-pied-piper-pp:before {\n content: \"\\f1a7\";\n}\n.fa-pied-piper-alt:before {\n content: \"\\f1a8\";\n}\n.fa-drupal:before {\n content: \"\\f1a9\";\n}\n.fa-joomla:before {\n content: \"\\f1aa\";\n}\n.fa-language:before {\n content: \"\\f1ab\";\n}\n.fa-fax:before {\n content: \"\\f1ac\";\n}\n.fa-building:before {\n content: \"\\f1ad\";\n}\n.fa-child:before {\n content: \"\\f1ae\";\n}\n.fa-paw:before {\n content: \"\\f1b0\";\n}\n.fa-spoon:before {\n content: \"\\f1b1\";\n}\n.fa-cube:before {\n content: \"\\f1b2\";\n}\n.fa-cubes:before {\n content: \"\\f1b3\";\n}\n.fa-behance:before {\n content: \"\\f1b4\";\n}\n.fa-behance-square:before {\n content: \"\\f1b5\";\n}\n.fa-steam:before {\n content: \"\\f1b6\";\n}\n.fa-steam-square:before {\n content: \"\\f1b7\";\n}\n.fa-recycle:before {\n content: \"\\f1b8\";\n}\n.fa-automobile:before,\n.fa-car:before {\n content: \"\\f1b9\";\n}\n.fa-cab:before,\n.fa-taxi:before {\n content: \"\\f1ba\";\n}\n.fa-tree:before {\n content: \"\\f1bb\";\n}\n.fa-spotify:before {\n content: \"\\f1bc\";\n}\n.fa-deviantart:before {\n content: \"\\f1bd\";\n}\n.fa-soundcloud:before {\n content: \"\\f1be\";\n}\n.fa-database:before {\n content: \"\\f1c0\";\n}\n.fa-file-pdf-o:before {\n content: \"\\f1c1\";\n}\n.fa-file-word-o:before {\n content: \"\\f1c2\";\n}\n.fa-file-excel-o:before {\n content: \"\\f1c3\";\n}\n.fa-file-powerpoint-o:before {\n content: \"\\f1c4\";\n}\n.fa-file-photo-o:before,\n.fa-file-picture-o:before,\n.fa-file-image-o:before {\n content: \"\\f1c5\";\n}\n.fa-file-zip-o:before,\n.fa-file-archive-o:before {\n content: \"\\f1c6\";\n}\n.fa-file-sound-o:before,\n.fa-file-audio-o:before {\n content: \"\\f1c7\";\n}\n.fa-file-movie-o:before,\n.fa-file-video-o:before {\n content: \"\\f1c8\";\n}\n.fa-file-code-o:before {\n content: \"\\f1c9\";\n}\n.fa-vine:before {\n content: \"\\f1ca\";\n}\n.fa-codepen:before {\n content: \"\\f1cb\";\n}\n.fa-jsfiddle:before {\n content: \"\\f1cc\";\n}\n.fa-life-bouy:before,\n.fa-life-buoy:before,\n.fa-life-saver:before,\n.fa-support:before,\n.fa-life-ring:before {\n content: \"\\f1cd\";\n}\n.fa-circle-o-notch:before {\n content: \"\\f1ce\";\n}\n.fa-ra:before,\n.fa-resistance:before,\n.fa-rebel:before {\n content: \"\\f1d0\";\n}\n.fa-ge:before,\n.fa-empire:before {\n content: \"\\f1d1\";\n}\n.fa-git-square:before {\n content: \"\\f1d2\";\n}\n.fa-git:before {\n content: \"\\f1d3\";\n}\n.fa-y-combinator-square:before,\n.fa-yc-square:before,\n.fa-hacker-news:before {\n content: \"\\f1d4\";\n}\n.fa-tencent-weibo:before {\n content: \"\\f1d5\";\n}\n.fa-qq:before {\n content: \"\\f1d6\";\n}\n.fa-wechat:before,\n.fa-weixin:before {\n content: \"\\f1d7\";\n}\n.fa-send:before,\n.fa-paper-plane:before {\n content: \"\\f1d8\";\n}\n.fa-send-o:before,\n.fa-paper-plane-o:before {\n content: \"\\f1d9\";\n}\n.fa-history:before {\n content: \"\\f1da\";\n}\n.fa-circle-thin:before {\n content: \"\\f1db\";\n}\n.fa-header:before {\n content: \"\\f1dc\";\n}\n.fa-paragraph:before {\n content: \"\\f1dd\";\n}\n.fa-sliders:before {\n content: \"\\f1de\";\n}\n.fa-share-alt:before {\n content: \"\\f1e0\";\n}\n.fa-share-alt-square:before {\n content: \"\\f1e1\";\n}\n.fa-bomb:before {\n content: \"\\f1e2\";\n}\n.fa-soccer-ball-o:before,\n.fa-futbol-o:before {\n content: \"\\f1e3\";\n}\n.fa-tty:before {\n content: \"\\f1e4\";\n}\n.fa-binoculars:before {\n content: \"\\f1e5\";\n}\n.fa-plug:before {\n content: \"\\f1e6\";\n}\n.fa-slideshare:before {\n content: \"\\f1e7\";\n}\n.fa-twitch:before {\n content: \"\\f1e8\";\n}\n.fa-yelp:before {\n content: \"\\f1e9\";\n}\n.fa-newspaper-o:before {\n content: \"\\f1ea\";\n}\n.fa-wifi:before {\n content: \"\\f1eb\";\n}\n.fa-calculator:before {\n content: \"\\f1ec\";\n}\n.fa-paypal:before {\n content: \"\\f1ed\";\n}\n.fa-google-wallet:before {\n content: \"\\f1ee\";\n}\n.fa-cc-visa:before {\n content: \"\\f1f0\";\n}\n.fa-cc-mastercard:before {\n content: \"\\f1f1\";\n}\n.fa-cc-discover:before {\n content: \"\\f1f2\";\n}\n.fa-cc-amex:before {\n content: \"\\f1f3\";\n}\n.fa-cc-paypal:before {\n content: \"\\f1f4\";\n}\n.fa-cc-stripe:before {\n content: \"\\f1f5\";\n}\n.fa-bell-slash:before {\n content: \"\\f1f6\";\n}\n.fa-bell-slash-o:before {\n content: \"\\f1f7\";\n}\n.fa-trash:before {\n content: \"\\f1f8\";\n}\n.fa-copyright:before {\n content: \"\\f1f9\";\n}\n.fa-at:before {\n content: \"\\f1fa\";\n}\n.fa-eyedropper:before {\n content: \"\\f1fb\";\n}\n.fa-paint-brush:before {\n content: \"\\f1fc\";\n}\n.fa-birthday-cake:before {\n content: \"\\f1fd\";\n}\n.fa-area-chart:before {\n content: \"\\f1fe\";\n}\n.fa-pie-chart:before {\n content: \"\\f200\";\n}\n.fa-line-chart:before {\n content: \"\\f201\";\n}\n.fa-lastfm:before {\n content: \"\\f202\";\n}\n.fa-lastfm-square:before {\n content: \"\\f203\";\n}\n.fa-toggle-off:before {\n content: \"\\f204\";\n}\n.fa-toggle-on:before {\n content: \"\\f205\";\n}\n.fa-bicycle:before {\n content: \"\\f206\";\n}\n.fa-bus:before {\n content: \"\\f207\";\n}\n.fa-ioxhost:before {\n content: \"\\f208\";\n}\n.fa-angellist:before {\n content: \"\\f209\";\n}\n.fa-cc:before {\n content: \"\\f20a\";\n}\n.fa-shekel:before,\n.fa-sheqel:before,\n.fa-ils:before {\n content: \"\\f20b\";\n}\n.fa-meanpath:before {\n content: \"\\f20c\";\n}\n.fa-buysellads:before {\n content: \"\\f20d\";\n}\n.fa-connectdevelop:before {\n content: \"\\f20e\";\n}\n.fa-dashcube:before {\n content: \"\\f210\";\n}\n.fa-forumbee:before {\n content: \"\\f211\";\n}\n.fa-leanpub:before {\n content: \"\\f212\";\n}\n.fa-sellsy:before {\n content: \"\\f213\";\n}\n.fa-shirtsinbulk:before {\n content: \"\\f214\";\n}\n.fa-simplybuilt:before {\n content: \"\\f215\";\n}\n.fa-skyatlas:before {\n content: \"\\f216\";\n}\n.fa-cart-plus:before {\n content: \"\\f217\";\n}\n.fa-cart-arrow-down:before {\n content: \"\\f218\";\n}\n.fa-diamond:before {\n content: \"\\f219\";\n}\n.fa-ship:before {\n content: \"\\f21a\";\n}\n.fa-user-secret:before {\n content: \"\\f21b\";\n}\n.fa-motorcycle:before {\n content: \"\\f21c\";\n}\n.fa-street-view:before {\n content: \"\\f21d\";\n}\n.fa-heartbeat:before {\n content: \"\\f21e\";\n}\n.fa-venus:before {\n content: \"\\f221\";\n}\n.fa-mars:before {\n content: \"\\f222\";\n}\n.fa-mercury:before {\n content: \"\\f223\";\n}\n.fa-intersex:before,\n.fa-transgender:before {\n content: \"\\f224\";\n}\n.fa-transgender-alt:before {\n content: \"\\f225\";\n}\n.fa-venus-double:before {\n content: \"\\f226\";\n}\n.fa-mars-double:before {\n content: \"\\f227\";\n}\n.fa-venus-mars:before {\n content: \"\\f228\";\n}\n.fa-mars-stroke:before {\n content: \"\\f229\";\n}\n.fa-mars-stroke-v:before {\n content: \"\\f22a\";\n}\n.fa-mars-stroke-h:before {\n content: \"\\f22b\";\n}\n.fa-neuter:before {\n content: \"\\f22c\";\n}\n.fa-genderless:before {\n content: \"\\f22d\";\n}\n.fa-facebook-official:before {\n content: \"\\f230\";\n}\n.fa-pinterest-p:before {\n content: \"\\f231\";\n}\n.fa-whatsapp:before {\n content: \"\\f232\";\n}\n.fa-server:before {\n content: \"\\f233\";\n}\n.fa-user-plus:before {\n content: \"\\f234\";\n}\n.fa-user-times:before {\n content: \"\\f235\";\n}\n.fa-hotel:before,\n.fa-bed:before {\n content: \"\\f236\";\n}\n.fa-viacoin:before {\n content: \"\\f237\";\n}\n.fa-train:before {\n content: \"\\f238\";\n}\n.fa-subway:before {\n content: \"\\f239\";\n}\n.fa-medium:before {\n content: \"\\f23a\";\n}\n.fa-yc:before,\n.fa-y-combinator:before {\n content: \"\\f23b\";\n}\n.fa-optin-monster:before {\n content: \"\\f23c\";\n}\n.fa-opencart:before {\n content: \"\\f23d\";\n}\n.fa-expeditedssl:before {\n content: \"\\f23e\";\n}\n.fa-battery-4:before,\n.fa-battery:before,\n.fa-battery-full:before {\n content: \"\\f240\";\n}\n.fa-battery-3:before,\n.fa-battery-three-quarters:before {\n content: \"\\f241\";\n}\n.fa-battery-2:before,\n.fa-battery-half:before {\n content: \"\\f242\";\n}\n.fa-battery-1:before,\n.fa-battery-quarter:before {\n content: \"\\f243\";\n}\n.fa-battery-0:before,\n.fa-battery-empty:before {\n content: \"\\f244\";\n}\n.fa-mouse-pointer:before {\n content: \"\\f245\";\n}\n.fa-i-cursor:before {\n content: \"\\f246\";\n}\n.fa-object-group:before {\n content: \"\\f247\";\n}\n.fa-object-ungroup:before {\n content: \"\\f248\";\n}\n.fa-sticky-note:before {\n content: \"\\f249\";\n}\n.fa-sticky-note-o:before {\n content: \"\\f24a\";\n}\n.fa-cc-jcb:before {\n content: \"\\f24b\";\n}\n.fa-cc-diners-club:before {\n content: \"\\f24c\";\n}\n.fa-clone:before {\n content: \"\\f24d\";\n}\n.fa-balance-scale:before {\n content: \"\\f24e\";\n}\n.fa-hourglass-o:before {\n content: \"\\f250\";\n}\n.fa-hourglass-1:before,\n.fa-hourglass-start:before {\n content: \"\\f251\";\n}\n.fa-hourglass-2:before,\n.fa-hourglass-half:before {\n content: \"\\f252\";\n}\n.fa-hourglass-3:before,\n.fa-hourglass-end:before {\n content: \"\\f253\";\n}\n.fa-hourglass:before {\n content: \"\\f254\";\n}\n.fa-hand-grab-o:before,\n.fa-hand-rock-o:before {\n content: \"\\f255\";\n}\n.fa-hand-stop-o:before,\n.fa-hand-paper-o:before {\n content: \"\\f256\";\n}\n.fa-hand-scissors-o:before {\n content: \"\\f257\";\n}\n.fa-hand-lizard-o:before {\n content: \"\\f258\";\n}\n.fa-hand-spock-o:before {\n content: \"\\f259\";\n}\n.fa-hand-pointer-o:before {\n content: \"\\f25a\";\n}\n.fa-hand-peace-o:before {\n content: \"\\f25b\";\n}\n.fa-trademark:before {\n content: \"\\f25c\";\n}\n.fa-registered:before {\n content: \"\\f25d\";\n}\n.fa-creative-commons:before {\n content: \"\\f25e\";\n}\n.fa-gg:before {\n content: \"\\f260\";\n}\n.fa-gg-circle:before {\n content: \"\\f261\";\n}\n.fa-tripadvisor:before {\n content: \"\\f262\";\n}\n.fa-odnoklassniki:before {\n content: \"\\f263\";\n}\n.fa-odnoklassniki-square:before {\n content: \"\\f264\";\n}\n.fa-get-pocket:before {\n content: \"\\f265\";\n}\n.fa-wikipedia-w:before {\n content: \"\\f266\";\n}\n.fa-safari:before {\n content: \"\\f267\";\n}\n.fa-chrome:before {\n content: \"\\f268\";\n}\n.fa-firefox:before {\n content: \"\\f269\";\n}\n.fa-opera:before {\n content: \"\\f26a\";\n}\n.fa-internet-explorer:before {\n content: \"\\f26b\";\n}\n.fa-tv:before,\n.fa-television:before {\n content: \"\\f26c\";\n}\n.fa-contao:before {\n content: \"\\f26d\";\n}\n.fa-500px:before {\n content: \"\\f26e\";\n}\n.fa-amazon:before {\n content: \"\\f270\";\n}\n.fa-calendar-plus-o:before {\n content: \"\\f271\";\n}\n.fa-calendar-minus-o:before {\n content: \"\\f272\";\n}\n.fa-calendar-times-o:before {\n content: \"\\f273\";\n}\n.fa-calendar-check-o:before {\n content: \"\\f274\";\n}\n.fa-industry:before {\n content: \"\\f275\";\n}\n.fa-map-pin:before {\n content: \"\\f276\";\n}\n.fa-map-signs:before {\n content: \"\\f277\";\n}\n.fa-map-o:before {\n content: \"\\f278\";\n}\n.fa-map:before {\n content: \"\\f279\";\n}\n.fa-commenting:before {\n content: \"\\f27a\";\n}\n.fa-commenting-o:before {\n content: \"\\f27b\";\n}\n.fa-houzz:before {\n content: \"\\f27c\";\n}\n.fa-vimeo:before {\n content: \"\\f27d\";\n}\n.fa-black-tie:before {\n content: \"\\f27e\";\n}\n.fa-fonticons:before {\n content: \"\\f280\";\n}\n.fa-reddit-alien:before {\n content: \"\\f281\";\n}\n.fa-edge:before {\n content: \"\\f282\";\n}\n.fa-credit-card-alt:before {\n content: \"\\f283\";\n}\n.fa-codiepie:before {\n content: \"\\f284\";\n}\n.fa-modx:before {\n content: \"\\f285\";\n}\n.fa-fort-awesome:before {\n content: \"\\f286\";\n}\n.fa-usb:before {\n content: \"\\f287\";\n}\n.fa-product-hunt:before {\n content: \"\\f288\";\n}\n.fa-mixcloud:before {\n content: \"\\f289\";\n}\n.fa-scribd:before {\n content: \"\\f28a\";\n}\n.fa-pause-circle:before {\n content: \"\\f28b\";\n}\n.fa-pause-circle-o:before {\n content: \"\\f28c\";\n}\n.fa-stop-circle:before {\n content: \"\\f28d\";\n}\n.fa-stop-circle-o:before {\n content: \"\\f28e\";\n}\n.fa-shopping-bag:before {\n content: \"\\f290\";\n}\n.fa-shopping-basket:before {\n content: \"\\f291\";\n}\n.fa-hashtag:before {\n content: \"\\f292\";\n}\n.fa-bluetooth:before {\n content: \"\\f293\";\n}\n.fa-bluetooth-b:before {\n content: \"\\f294\";\n}\n.fa-percent:before {\n content: \"\\f295\";\n}\n.fa-gitlab:before {\n content: \"\\f296\";\n}\n.fa-wpbeginner:before {\n content: \"\\f297\";\n}\n.fa-wpforms:before {\n content: \"\\f298\";\n}\n.fa-envira:before {\n content: \"\\f299\";\n}\n.fa-universal-access:before {\n content: \"\\f29a\";\n}\n.fa-wheelchair-alt:before {\n content: \"\\f29b\";\n}\n.fa-question-circle-o:before {\n content: \"\\f29c\";\n}\n.fa-blind:before {\n content: \"\\f29d\";\n}\n.fa-audio-description:before {\n content: \"\\f29e\";\n}\n.fa-volume-control-phone:before {\n content: \"\\f2a0\";\n}\n.fa-braille:before {\n content: \"\\f2a1\";\n}\n.fa-assistive-listening-systems:before {\n content: \"\\f2a2\";\n}\n.fa-asl-interpreting:before,\n.fa-american-sign-language-interpreting:before {\n content: \"\\f2a3\";\n}\n.fa-deafness:before,\n.fa-hard-of-hearing:before,\n.fa-deaf:before {\n content: \"\\f2a4\";\n}\n.fa-glide:before {\n content: \"\\f2a5\";\n}\n.fa-glide-g:before {\n content: \"\\f2a6\";\n}\n.fa-signing:before,\n.fa-sign-language:before {\n content: \"\\f2a7\";\n}\n.fa-low-vision:before {\n content: \"\\f2a8\";\n}\n.fa-viadeo:before {\n content: \"\\f2a9\";\n}\n.fa-viadeo-square:before {\n content: \"\\f2aa\";\n}\n.fa-snapchat:before {\n content: \"\\f2ab\";\n}\n.fa-snapchat-ghost:before {\n content: \"\\f2ac\";\n}\n.fa-snapchat-square:before {\n content: \"\\f2ad\";\n}\n.fa-pied-piper:before {\n content: \"\\f2ae\";\n}\n.fa-first-order:before {\n content: \"\\f2b0\";\n}\n.fa-yoast:before {\n content: \"\\f2b1\";\n}\n.fa-themeisle:before {\n content: \"\\f2b2\";\n}\n.fa-google-plus-circle:before,\n.fa-google-plus-official:before {\n content: \"\\f2b3\";\n}\n.fa-fa:before,\n.fa-font-awesome:before {\n content: \"\\f2b4\";\n}\n.fa-handshake-o:before {\n content: \"\\f2b5\";\n}\n.fa-envelope-open:before {\n content: \"\\f2b6\";\n}\n.fa-envelope-open-o:before {\n content: \"\\f2b7\";\n}\n.fa-linode:before {\n content: \"\\f2b8\";\n}\n.fa-address-book:before {\n content: \"\\f2b9\";\n}\n.fa-address-book-o:before {\n content: \"\\f2ba\";\n}\n.fa-vcard:before,\n.fa-address-card:before {\n content: \"\\f2bb\";\n}\n.fa-vcard-o:before,\n.fa-address-card-o:before {\n content: \"\\f2bc\";\n}\n.fa-user-circle:before {\n content: \"\\f2bd\";\n}\n.fa-user-circle-o:before {\n content: \"\\f2be\";\n}\n.fa-user-o:before {\n content: \"\\f2c0\";\n}\n.fa-id-badge:before {\n content: \"\\f2c1\";\n}\n.fa-drivers-license:before,\n.fa-id-card:before {\n content: \"\\f2c2\";\n}\n.fa-drivers-license-o:before,\n.fa-id-card-o:before {\n content: \"\\f2c3\";\n}\n.fa-quora:before {\n content: \"\\f2c4\";\n}\n.fa-free-code-camp:before {\n content: \"\\f2c5\";\n}\n.fa-telegram:before {\n content: \"\\f2c6\";\n}\n.fa-thermometer-4:before,\n.fa-thermometer:before,\n.fa-thermometer-full:before {\n content: \"\\f2c7\";\n}\n.fa-thermometer-3:before,\n.fa-thermometer-three-quarters:before {\n content: \"\\f2c8\";\n}\n.fa-thermometer-2:before,\n.fa-thermometer-half:before {\n content: \"\\f2c9\";\n}\n.fa-thermometer-1:before,\n.fa-thermometer-quarter:before {\n content: \"\\f2ca\";\n}\n.fa-thermometer-0:before,\n.fa-thermometer-empty:before {\n content: \"\\f2cb\";\n}\n.fa-shower:before {\n content: \"\\f2cc\";\n}\n.fa-bathtub:before,\n.fa-s15:before,\n.fa-bath:before {\n content: \"\\f2cd\";\n}\n.fa-podcast:before {\n content: \"\\f2ce\";\n}\n.fa-window-maximize:before {\n content: \"\\f2d0\";\n}\n.fa-window-minimize:before {\n content: \"\\f2d1\";\n}\n.fa-window-restore:before {\n content: \"\\f2d2\";\n}\n.fa-times-rectangle:before,\n.fa-window-close:before {\n content: \"\\f2d3\";\n}\n.fa-times-rectangle-o:before,\n.fa-window-close-o:before {\n content: \"\\f2d4\";\n}\n.fa-bandcamp:before {\n content: \"\\f2d5\";\n}\n.fa-grav:before {\n content: \"\\f2d6\";\n}\n.fa-etsy:before {\n content: \"\\f2d7\";\n}\n.fa-imdb:before {\n content: \"\\f2d8\";\n}\n.fa-ravelry:before {\n content: \"\\f2d9\";\n}\n.fa-eercast:before {\n content: \"\\f2da\";\n}\n.fa-microchip:before {\n content: \"\\f2db\";\n}\n.fa-snowflake-o:before {\n content: \"\\f2dc\";\n}\n.fa-superpowers:before {\n content: \"\\f2dd\";\n}\n.fa-wpexplorer:before {\n content: \"\\f2de\";\n}\n.fa-meetup:before {\n content: \"\\f2e0\";\n}\n.sr-only {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n border: 0;\n}\n.sr-only-focusable:active,\n.sr-only-focusable:focus {\n position: static;\n width: auto;\n height: auto;\n margin: 0;\n overflow: visible;\n clip: auto;\n}\n"],"sourceRoot":""} \ No newline at end of file diff --git a/priv/static/packs/flavours/vanilla/public.js b/priv/static/packs/flavours/vanilla/public.js deleted file mode 100644 index 7f1a585ee..000000000 Binary files a/priv/static/packs/flavours/vanilla/public.js and /dev/null differ diff --git a/priv/static/packs/flavours/vanilla/public.js.LICENSE.txt b/priv/static/packs/flavours/vanilla/public.js.LICENSE.txt deleted file mode 100644 index 2196b2def..000000000 --- a/priv/static/packs/flavours/vanilla/public.js.LICENSE.txt +++ /dev/null @@ -1,41 +0,0 @@ -/* -object-assign -(c) Sindre Sorhus -@license MIT -*/ - -/** @license React v0.19.0 - * scheduler.production.min.js - * - * Copyright (c) Facebook, Inc. and its affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */ - -/** @license React v16.12.0 - * react-is.production.min.js - * - * Copyright (c) Facebook, Inc. and its affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */ - -/** @license React v16.13.0 - * react-dom.production.min.js - * - * Copyright (c) Facebook, Inc. and its affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */ - -/** @license React v16.13.1 - * react.production.min.js - * - * Copyright (c) Facebook, Inc. and its affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */ diff --git a/priv/static/packs/flavours/vanilla/public.js.map b/priv/static/packs/flavours/vanilla/public.js.map deleted file mode 100644 index df384658a..000000000 Binary files a/priv/static/packs/flavours/vanilla/public.js.map and /dev/null differ diff --git a/priv/static/packs/flavours/vanilla/settings.css b/priv/static/packs/flavours/vanilla/settings.css deleted file mode 100644 index 8242c95f1..000000000 Binary files a/priv/static/packs/flavours/vanilla/settings.css and /dev/null differ diff --git a/priv/static/packs/flavours/vanilla/settings.css.map b/priv/static/packs/flavours/vanilla/settings.css.map deleted file mode 100644 index 19b796988..000000000 --- a/priv/static/packs/flavours/vanilla/settings.css.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["webpack:///font-awesome.css","webpack:///./node_modules/font-awesome/css/font-awesome.css"],"names":[],"mappings":"AAAA;;;ECAA,CAMA,WACE,wBACA,4CACA,wSACA,gBACA,kBAEF,IACE,qBACA,6CACA,kBACA,oBACA,mCACA,kCAGF,OACE,uBACA,kBACA,oBAEF,OACE,cAEF,OACE,cAEF,OACE,cAEF,OACE,cAEF,OACE,mBACA,kBAEF,OACE,eACA,yBACA,qBAEF,UACE,kBAEF,OACE,kBACA,mBACA,mBACA,gBACA,kBAEF,aACE,mBAEF,WACE,yBACA,wBACA,mBAEF,cACE,WAEF,eACE,YAEF,iBACE,kBAEF,kBACE,iBAGF,YACE,YAEF,WACE,WAEF,cACE,kBAEF,eACE,iBAEF,SACE,6CACA,qCAEF,UACE,+CACA,uCAEF,2BACE,GAEE,uBAEF,GAEE,0BAGJ,mBACE,GAEE,uBAEF,GAEE,0BAGJ,cACE,sEAGA,wBAEF,eACE,sEAGA,yBAEF,eACE,sEAGA,yBAEF,oBACE,gFAGA,qBAEF,kBACE,gFAGA,qBAEF,gHAKE,gCAEF,UACE,kBACA,qBACA,UACA,WACA,gBACA,sBAEF,0BAEE,kBACA,OACA,WACA,kBAEF,aACE,oBAEF,aACE,cAEF,YACE,WAIF,iBACE,YAEF,iBACE,YAEF,kBACE,YAEF,sBACE,YAEF,iBACE,YAEF,gBACE,YAEF,kBACE,YAEF,gBACE,YAEF,gBACE,YAEF,oBACE,YAEF,cACE,YAEF,mBACE,YAEF,iBACE,YAEF,oDAGE,YAEF,uBACE,YAEF,wBACE,YAEF,qBACE,YAEF,kBACE,YAEF,+BAEE,YAEF,mBACE,YAEF,gBACE,YAEF,kBACE,YAEF,mBACE,YAEF,gBACE,YAEF,oBACE,YAEF,+BACE,YAEF,6BACE,YAEF,iBACE,YAEF,yBACE,YAEF,0CAEE,YAEF,mBACE,YAEF,oBACE,YAEF,gBACE,YAEF,gBACE,YAEF,sBACE,YAEF,sBACE,YAEF,uBACE,YAEF,qBACE,YAEF,kBACE,YAEF,mBACE,YAEF,eACE,YAEF,gBACE,YAEF,gBACE,YAEF,oBACE,YAEF,iBACE,YAEF,kBACE,YAEF,gBACE,YAEF,gBACE,YAEF,kBACE,YAEF,uBACE,YAEF,sBACE,YAEF,sBACE,YAEF,wBACE,YAEF,uBACE,YAEF,yBACE,YAEF,gBACE,YAEF,qCAEE,YAEF,kBACE,YAEF,wBACE,YAEF,uDAGE,YAEF,kBACE,YAEF,sBACE,YAEF,kBACE,YAEF,gBACE,YAEF,2CAEE,YAEF,0BACE,YAEF,0BACE,YAEF,kBACE,YAEF,yBACE,YAEF,yBACE,YAEF,oBACE,YAEF,gBACE,YAEF,iBACE,YAEF,gBACE,YAEF,mBACE,YAEF,wBACE,YAEF,wBACE,YAEF,iBACE,YAEF,wBACE,YAEF,yBACE,YAEF,uBACE,YAEF,wBACE,YAEF,wBACE,YAEF,wBACE,YAEF,2BACE,YAEF,uBACE,YAEF,sBACE,YAEF,0BACE,YAEF,0BACE,YAEF,eACE,YAEF,sBACE,YAEF,uBACE,YAEF,oBACE,YAEF,sBACE,YAEF,yCAEE,YAEF,kBACE,YAEF,oBACE,YAEF,gBACE,YAEF,iBACE,YAEF,oBACE,YAEF,8BACE,YAEF,gBACE,YAEF,gBACE,YAEF,gBACE,YAEF,eACE,YAEF,qBACE,YAEF,mDAEE,YAEF,iBACE,YAEF,oBACE,YAEF,kBACE,YAEF,mBACE,YAEF,kBACE,YAEF,sBACE,YAEF,wBACE,YAEF,mBACE,YAEF,yBACE,YAEF,kBACE,YAEF,uBACE,YAEF,oBACE,YAEF,oBACE,YAEF,4CAEE,YAEF,0BACE,YAEF,2BACE,YAEF,wBACE,YAEF,eACE,YAEF,iCAEE,YAEF,oBACE,YAEF,uBACE,YAEF,yBACE,YAEF,qBACE,YAEF,mBACE,YAEF,oBACE,YAEF,2BACE,YAEF,sBACE,YAEF,yBACE,YAEF,mBACE,YAEF,kBACE,YAEF,yBACE,YAEF,kBACE,YAEF,mBACE,YAEF,iBACE,YAEF,oBACE,YAEF,sBACE,YAEF,wBACE,YAEF,mBACE,YAEF,0CAEE,YAEF,kBACE,YAEF,kBACE,YAEF,uBACE,YAEF,+BAEE,YAEF,iBACE,YAEF,oBACE,YAEF,gBACE,YAEF,uBACE,YAEF,wBACE,YAEF,uBACE,YAEF,qBACE,YAEF,uBACE,YAEF,6BACE,YAEF,8BACE,YAEF,2BACE,YAEF,6BACE,YAEF,iBACE,YAEF,kBACE,YAEF,iBACE,YAEF,kBACE,YAEF,qBACE,YAEF,sBACE,YAEF,kCAEE,YAEF,iCAEE,YAEF,iBACE,YAEF,iBACE,YAEF,mCAEE,YAEF,mCAEE,YAEF,qBACE,YAEF,oCAEE,YAEF,kBACE,YAEF,sDAGE,YAEF,mBACE,YAEF,mBACE,YAEF,yBACE,YAEF,qBACE,YAEF,iBACE,YAEF,iBACE,YAEF,iBACE,YAEF,qBACE,YAEF,4BACE,YAEF,8BACE,YAEF,uBACE,YAEF,iBACE,YAEF,sBACE,YAEF,oBACE,YAEF,sBACE,YAEF,uBACE,YAEF,mBACE,YAEF,oCAEE,YAEF,0CAEE,YAEF,uCAEE,YAEF,oBACE,YAEF,oBACE,YAEF,uCAEE,YAEF,kCAEE,YAEF,2CAEE,YAEF,qBACE,YAEF,sBACE,YAEF,iCAEE,YAEF,mBACE,YAEF,oBACE,YAEF,sCAEE,YAEF,uBACE,YAEF,oBACE,YAEF,0BACE,YAEF,wBACE,YAEF,mBACE,YAEF,uBACE,YAEF,oBACE,YAEF,kBACE,YAEF,kBACE,YAEF,mBACE,YAEF,uBACE,YAEF,sBACE,YAEF,sBACE,YAEF,qBACE,YAEF,kBACE,YAEF,uBACE,YAEF,gBACE,YAEF,oBACE,YAEF,uBACE,YAEF,6BACE,YAEF,8BACE,YAEF,2BACE,YAEF,6BACE,YAEF,sBACE,YAEF,uBACE,YAEF,oBACE,YAEF,sBACE,YAEF,mBACE,YAEF,kBACE,YAEF,kBACE,YAEF,0CAEE,YAEF,oBACE,YAEF,sBACE,YAEF,uBACE,YAEF,mBACE,YAEF,kBACE,YAEF,uCAEE,YAEF,sBACE,YAEF,oBACE,YAEF,yBACE,YAEF,mBACE,YAEF,mBACE,YAEF,iBACE,YAEF,mBACE,YAEF,sBACE,YAEF,kBACE,YAEF,0BACE,YAEF,oBACE,YAEF,gBACE,YAEF,+CAEE,YAEF,4EAGE,YAEF,0BACE,YAEF,gBACE,YAEF,qBACE,YAEF,0CAEE,YAEF,oBACE,YAEF,gBACE,YAEF,uBACE,YAEF,uBACE,YAEF,qBACE,YAEF,kBACE,YAEF,wBACE,YAEF,sBACE,YAEF,4BACE,YAEF,kBACE,YAEF,sBACE,YAEF,6BACE,YAEF,kBACE,YAEF,kBACE,YAEF,+BACE,YAEF,gCACE,YAEF,6BACE,YAEF,+BACE,YAEF,iBACE,YAEF,gBACE,YAEF,kBACE,YAEF,sBACE,YAEF,oBACE,YAEF,sBACE,YAEF,sBACE,YAEF,sBACE,YAEF,uBACE,YAEF,kBACE,YAEF,wBACE,YAEF,0BACE,YAEF,oBACE,YAEF,sBACE,YAEF,wBACE,YAEF,yBACE,YAEF,gCACE,YAEF,wBACE,YAEF,mBACE,YAEF,sDAEE,YAEF,kDAEE,YAEF,wDAEE,YAEF,+BAEE,YAEF,eACE,YAEF,iCAEE,YAEF,gCAEE,YAEF,4DAIE,YAEF,kDAGE,YAEF,8BAEE,YAEF,kCAEE,YAEF,gBACE,YAEF,qBACE,YAEF,0BACE,YAEF,2BACE,YAEF,2BACE,YAEF,4BACE,YAEF,4BACE,YAEF,6BACE,YAEF,qBACE,YAEF,uBACE,YAEF,0BACE,YAEF,mBACE,YAEF,gBACE,YAEF,uBACE,YAEF,wBACE,YAEF,mBACE,YAEF,0BACE,YAEF,qBACE,YAEF,kBACE,YAEF,eACE,YAEF,qBACE,YAEF,4BACE,YAEF,kBACE,YAEF,yBACE,YAEF,2BACE,YAEF,yBACE,YAEF,2BACE,YAEF,4BACE,YAEF,iBACE,YAEF,mBACE,YAEF,mBACE,YAEF,iBACE,YAEF,oBACE,YAEF,iBACE,YAEF,sBACE,YAEF,kBACE,YAEF,kBACE,YAEF,gBACE,YAEF,sCAEE,YAEF,iBACE,YAEF,kBACE,YAEF,mBACE,YAEF,eACE,YAEF,cACE,YAEF,iBACE,YAEF,kBACE,YAEF,qBACE,YAEF,0BACE,YAEF,gCACE,YAEF,+BACE,YAEF,sDAEE,YAEF,wBACE,YAEF,sBACE,YAEF,wBACE,YAEF,uCAEE,YAEF,yBACE,YAEF,yBACE,YAEF,iBACE,YAEF,2BACE,YAEF,qBACE,YAEF,kBACE,YAEF,6DAGE,YAEF,kDAEE,YAEF,iBACE,YAEF,kBACE,YAEF,kBACE,YAEF,yBACE,YAEF,8BACE,YAEF,uBACE,YAEF,qBACE,YAEF,gBACE,YAEF,yBACE,YAEF,0BACE,YAEF,kBACE,YAEF,kBACE,YAEF,oBACE,YAEF,eACE,YAEF,oBACE,YAEF,iBACE,YAEF,eACE,YAEF,iBACE,YAEF,gBACE,YAEF,iBACE,YAEF,mBACE,YAEF,0BACE,YAEF,iBACE,YAEF,wBACE,YAEF,mBACE,YAEF,qCAEE,YAEF,+BAEE,YAEF,gBACE,YAEF,mBACE,YAEF,sBACE,YAEF,sBACE,YAEF,oBACE,YAEF,sBACE,YAEF,uBACE,YAEF,wBACE,YAEF,6BACE,YAEF,0EAGE,YAEF,gDAEE,YAEF,gDAEE,YAEF,gDAEE,YAEF,uBACE,YAEF,gBACE,YAEF,mBACE,YAEF,oBACE,YAEF,wGAKE,YAEF,0BACE,YAEF,qDAGE,YAEF,gCAEE,YAEF,sBACE,YAEF,eACE,YAEF,2EAGE,YAEF,yBACE,YAEF,cACE,YAEF,oCAEE,YAEF,uCAEE,YAEF,2CAEE,YAEF,mBACE,YAEF,uBACE,YAEF,kBACE,YAEF,qBACE,YAEF,mBACE,YAEF,qBACE,YAEF,4BACE,YAEF,gBACE,YAEF,6CAEE,YAEF,eACE,YAEF,sBACE,YAEF,gBACE,YAEF,sBACE,YAEF,kBACE,YAEF,gBACE,YAEF,uBACE,YAEF,gBACE,YAEF,sBACE,YAEF,kBACE,YAEF,yBACE,YAEF,mBACE,YAEF,yBACE,YAEF,uBACE,YAEF,mBACE,YAEF,qBACE,YAEF,qBACE,YAEF,sBACE,YAEF,wBACE,YAEF,iBACE,YAEF,qBACE,YAEF,cACE,YAEF,sBACE,YAEF,uBACE,YAEF,yBACE,YAEF,sBACE,YAEF,qBACE,YAEF,sBACE,YAEF,kBACE,YAEF,yBACE,YAEF,sBACE,YAEF,qBACE,YAEF,mBACE,YAEF,eACE,YAEF,mBACE,YAEF,qBACE,YAEF,cACE,YAEF,mDAGE,YAEF,oBACE,YAEF,sBACE,YAEF,0BACE,YAEF,oBACE,YAEF,oBACE,YAEF,mBACE,YAEF,kBACE,YAEF,wBACE,YAEF,uBACE,YAEF,oBACE,YAEF,qBACE,YAEF,2BACE,YAEF,mBACE,YAEF,gBACE,YAEF,uBACE,YAEF,sBACE,YAEF,uBACE,YAEF,qBACE,YAEF,iBACE,YAEF,gBACE,YAEF,mBACE,YAEF,2CAEE,YAEF,2BACE,YAEF,wBACE,YAEF,uBACE,YAEF,sBACE,YAEF,uBACE,YAEF,yBACE,YAEF,yBACE,YAEF,kBACE,YAEF,sBACE,YAEF,6BACE,YAEF,uBACE,YAEF,oBACE,YAEF,kBACE,YAEF,qBACE,YAEF,sBACE,YAEF,gCAEE,YAEF,mBACE,YAEF,iBACE,YAEF,kBACE,YAEF,kBACE,YAEF,sCAEE,YAEF,yBACE,YAEF,oBACE,YAEF,wBACE,YAEF,gEAGE,YAEF,uDAEE,YAEF,6CAEE,YAEF,gDAEE,YAEF,8CAEE,YAEF,yBACE,YAEF,oBACE,YAEF,wBACE,YAEF,0BACE,YAEF,uBACE,YAEF,yBACE,YAEF,kBACE,YAEF,0BACE,YAEF,iBACE,YAEF,yBACE,YAEF,uBACE,YAEF,kDAEE,YAEF,iDAEE,YAEF,gDAEE,YAEF,qBACE,YAEF,8CAEE,YAEF,+CAEE,YAEF,2BACE,YAEF,yBACE,YAEF,wBACE,YAEF,0BACE,YAEF,wBACE,YAEF,qBACE,YAEF,sBACE,YAEF,4BACE,YAEF,cACE,YAEF,qBACE,YAEF,uBACE,YAEF,yBACE,YAEF,gCACE,YAEF,sBACE,YAEF,uBACE,YAEF,kBACE,YAEF,kBACE,YAEF,mBACE,YAEF,iBACE,YAEF,6BACE,YAEF,oCAEE,YAEF,kBACE,YAEF,iBACE,YAEF,kBACE,YAEF,2BACE,YAEF,4BACE,YAEF,4BACE,YAEF,4BACE,YAEF,oBACE,YAEF,mBACE,YAEF,qBACE,YAEF,iBACE,YAEF,eACE,YAEF,sBACE,YAEF,wBACE,YAEF,iBACE,YAEF,iBACE,YAEF,qBACE,YAEF,qBACE,YAEF,wBACE,YAEF,gBACE,YAEF,2BACE,YAEF,oBACE,YAEF,gBACE,YAEF,wBACE,YAEF,eACE,YAEF,wBACE,YAEF,oBACE,YAEF,kBACE,YAEF,wBACE,YAEF,0BACE,YAEF,uBACE,YAEF,yBACE,YAEF,wBACE,YAEF,2BACE,YAEF,mBACE,YAEF,qBACE,YAEF,uBACE,YAEF,mBACE,YAEF,kBACE,YAEF,sBACE,YAEF,mBACE,YAEF,kBACE,YAEF,4BACE,YAEF,0BACE,YAEF,6BACE,YAEF,iBACE,YAEF,6BACE,YAEF,gCACE,YAEF,mBACE,YAEF,uCACE,YAEF,2EAEE,YAEF,+DAGE,YAEF,iBACE,YAEF,mBACE,YAEF,4CAEE,YAEF,sBACE,YAEF,kBACE,YAEF,yBACE,YAEF,oBACE,YAEF,0BACE,YAEF,2BACE,YAEF,sBACE,YAEF,uBACE,YAEF,iBACE,YAEF,qBACE,YAEF,8DAEE,YAEF,sCAEE,YAEF,uBACE,YAEF,yBACE,YAEF,2BACE,YAEF,kBACE,YAEF,wBACE,YAEF,0BACE,YAEF,yCAEE,YAEF,6CAEE,YAEF,uBACE,YAEF,yBACE,YAEF,kBACE,YAEF,oBACE,YAEF,8CAEE,YAEF,kDAEE,YAEF,iBACE,YAEF,0BACE,YAEF,oBACE,YAEF,4EAGE,YAEF,+DAEE,YAEF,qDAEE,YAEF,wDAEE,YAEF,sDAEE,YAEF,kBACE,YAEF,kDAGE,YAEF,mBACE,YAEF,2BACE,YAEF,2BACE,YAEF,0BACE,YAEF,mDAEE,YAEF,uDAEE,YAEF,oBACE,YAEF,gBACE,YAEF,gBACE,YAEF,gBACE,YAEF,mBACE,YAEF,mBACE,YAEF,qBACE,YAEF,uBACE,YAEF,uBACE,YAEF,sBACE,YAEF,kBACE,YAEF,SACE,kBACA,UACA,WACA,UACA,YACA,gBACA,mBACA,SAEF,mDAEE,gBACA,WACA,YACA,SACA,iBACA,qJ","file":"flavours/vanilla/settings.css","sourcesContent":["/*!\n * Font Awesome 4.7.0 by @davegandy - http://fontawesome.io - @fontawesome\n * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License)\n */@font-face{font-family:\"FontAwesome\";src:url(\"../fonts/fontawesome-webfont.eot?v=4.7.0\");src:url(\"../fonts/fontawesome-webfont.eot?#iefix&v=4.7.0\") format(\"embedded-opentype\"),url(\"../fonts/fontawesome-webfont.woff2?v=4.7.0\") format(\"woff2\"),url(\"../fonts/fontawesome-webfont.woff?v=4.7.0\") format(\"woff\"),url(\"../fonts/fontawesome-webfont.ttf?v=4.7.0\") format(\"truetype\"),url(\"../fonts/fontawesome-webfont.svg?v=4.7.0#fontawesomeregular\") format(\"svg\");font-weight:normal;font-style:normal}.fa{display:inline-block;font:normal normal normal 14px/1 FontAwesome;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.fa-lg{font-size:1.33333333em;line-height:.75em;vertical-align:-15%}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-fw{width:1.28571429em;text-align:center}.fa-ul{padding-left:0;margin-left:2.14285714em;list-style-type:none}.fa-ul>li{position:relative}.fa-li{position:absolute;left:-2.14285714em;width:2.14285714em;top:.14285714em;text-align:center}.fa-li.fa-lg{left:-1.85714286em}.fa-border{padding:.2em .25em .15em;border:solid .08em #eee;border-radius:.1em}.fa-pull-left{float:left}.fa-pull-right{float:right}.fa.fa-pull-left{margin-right:.3em}.fa.fa-pull-right{margin-left:.3em}.pull-right{float:right}.pull-left{float:left}.fa.pull-left{margin-right:.3em}.fa.pull-right{margin-left:.3em}.fa-spin{-webkit-animation:fa-spin 2s infinite linear;animation:fa-spin 2s infinite linear}.fa-pulse{-webkit-animation:fa-spin 1s infinite steps(8);animation:fa-spin 1s infinite steps(8)}@-webkit-keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}.fa-rotate-90{-ms-filter:\"progid:DXImageTransform.Microsoft.BasicImage(rotation=1)\";-webkit-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg)}.fa-rotate-180{-ms-filter:\"progid:DXImageTransform.Microsoft.BasicImage(rotation=2)\";-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg)}.fa-rotate-270{-ms-filter:\"progid:DXImageTransform.Microsoft.BasicImage(rotation=3)\";-webkit-transform:rotate(270deg);-ms-transform:rotate(270deg);transform:rotate(270deg)}.fa-flip-horizontal{-ms-filter:\"progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)\";-webkit-transform:scale(-1, 1);-ms-transform:scale(-1, 1);transform:scale(-1, 1)}.fa-flip-vertical{-ms-filter:\"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)\";-webkit-transform:scale(1, -1);-ms-transform:scale(1, -1);transform:scale(1, -1)}:root .fa-rotate-90,:root .fa-rotate-180,:root .fa-rotate-270,:root .fa-flip-horizontal,:root .fa-flip-vertical{filter:none}.fa-stack{position:relative;display:inline-block;width:2em;height:2em;line-height:2em;vertical-align:middle}.fa-stack-1x,.fa-stack-2x{position:absolute;left:0;width:100%;text-align:center}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:#fff}.fa-glass:before{content:\"\"}.fa-music:before{content:\"\"}.fa-search:before{content:\"\"}.fa-envelope-o:before{content:\"\"}.fa-heart:before{content:\"\"}.fa-star:before{content:\"\"}.fa-star-o:before{content:\"\"}.fa-user:before{content:\"\"}.fa-film:before{content:\"\"}.fa-th-large:before{content:\"\"}.fa-th:before{content:\"\"}.fa-th-list:before{content:\"\"}.fa-check:before{content:\"\"}.fa-remove:before,.fa-close:before,.fa-times:before{content:\"\"}.fa-search-plus:before{content:\"\"}.fa-search-minus:before{content:\"\"}.fa-power-off:before{content:\"\"}.fa-signal:before{content:\"\"}.fa-gear:before,.fa-cog:before{content:\"\"}.fa-trash-o:before{content:\"\"}.fa-home:before{content:\"\"}.fa-file-o:before{content:\"\"}.fa-clock-o:before{content:\"\"}.fa-road:before{content:\"\"}.fa-download:before{content:\"\"}.fa-arrow-circle-o-down:before{content:\"\"}.fa-arrow-circle-o-up:before{content:\"\"}.fa-inbox:before{content:\"\"}.fa-play-circle-o:before{content:\"\"}.fa-rotate-right:before,.fa-repeat:before{content:\"\"}.fa-refresh:before{content:\"\"}.fa-list-alt:before{content:\"\"}.fa-lock:before{content:\"\"}.fa-flag:before{content:\"\"}.fa-headphones:before{content:\"\"}.fa-volume-off:before{content:\"\"}.fa-volume-down:before{content:\"\"}.fa-volume-up:before{content:\"\"}.fa-qrcode:before{content:\"\"}.fa-barcode:before{content:\"\"}.fa-tag:before{content:\"\"}.fa-tags:before{content:\"\"}.fa-book:before{content:\"\"}.fa-bookmark:before{content:\"\"}.fa-print:before{content:\"\"}.fa-camera:before{content:\"\"}.fa-font:before{content:\"\"}.fa-bold:before{content:\"\"}.fa-italic:before{content:\"\"}.fa-text-height:before{content:\"\"}.fa-text-width:before{content:\"\"}.fa-align-left:before{content:\"\"}.fa-align-center:before{content:\"\"}.fa-align-right:before{content:\"\"}.fa-align-justify:before{content:\"\"}.fa-list:before{content:\"\"}.fa-dedent:before,.fa-outdent:before{content:\"\"}.fa-indent:before{content:\"\"}.fa-video-camera:before{content:\"\"}.fa-photo:before,.fa-image:before,.fa-picture-o:before{content:\"\"}.fa-pencil:before{content:\"\"}.fa-map-marker:before{content:\"\"}.fa-adjust:before{content:\"\"}.fa-tint:before{content:\"\"}.fa-edit:before,.fa-pencil-square-o:before{content:\"\"}.fa-share-square-o:before{content:\"\"}.fa-check-square-o:before{content:\"\"}.fa-arrows:before{content:\"\"}.fa-step-backward:before{content:\"\"}.fa-fast-backward:before{content:\"\"}.fa-backward:before{content:\"\"}.fa-play:before{content:\"\"}.fa-pause:before{content:\"\"}.fa-stop:before{content:\"\"}.fa-forward:before{content:\"\"}.fa-fast-forward:before{content:\"\"}.fa-step-forward:before{content:\"\"}.fa-eject:before{content:\"\"}.fa-chevron-left:before{content:\"\"}.fa-chevron-right:before{content:\"\"}.fa-plus-circle:before{content:\"\"}.fa-minus-circle:before{content:\"\"}.fa-times-circle:before{content:\"\"}.fa-check-circle:before{content:\"\"}.fa-question-circle:before{content:\"\"}.fa-info-circle:before{content:\"\"}.fa-crosshairs:before{content:\"\"}.fa-times-circle-o:before{content:\"\"}.fa-check-circle-o:before{content:\"\"}.fa-ban:before{content:\"\"}.fa-arrow-left:before{content:\"\"}.fa-arrow-right:before{content:\"\"}.fa-arrow-up:before{content:\"\"}.fa-arrow-down:before{content:\"\"}.fa-mail-forward:before,.fa-share:before{content:\"\"}.fa-expand:before{content:\"\"}.fa-compress:before{content:\"\"}.fa-plus:before{content:\"\"}.fa-minus:before{content:\"\"}.fa-asterisk:before{content:\"\"}.fa-exclamation-circle:before{content:\"\"}.fa-gift:before{content:\"\"}.fa-leaf:before{content:\"\"}.fa-fire:before{content:\"\"}.fa-eye:before{content:\"\"}.fa-eye-slash:before{content:\"\"}.fa-warning:before,.fa-exclamation-triangle:before{content:\"\"}.fa-plane:before{content:\"\"}.fa-calendar:before{content:\"\"}.fa-random:before{content:\"\"}.fa-comment:before{content:\"\"}.fa-magnet:before{content:\"\"}.fa-chevron-up:before{content:\"\"}.fa-chevron-down:before{content:\"\"}.fa-retweet:before{content:\"\"}.fa-shopping-cart:before{content:\"\"}.fa-folder:before{content:\"\"}.fa-folder-open:before{content:\"\"}.fa-arrows-v:before{content:\"\"}.fa-arrows-h:before{content:\"\"}.fa-bar-chart-o:before,.fa-bar-chart:before{content:\"\"}.fa-twitter-square:before{content:\"\"}.fa-facebook-square:before{content:\"\"}.fa-camera-retro:before{content:\"\"}.fa-key:before{content:\"\"}.fa-gears:before,.fa-cogs:before{content:\"\"}.fa-comments:before{content:\"\"}.fa-thumbs-o-up:before{content:\"\"}.fa-thumbs-o-down:before{content:\"\"}.fa-star-half:before{content:\"\"}.fa-heart-o:before{content:\"\"}.fa-sign-out:before{content:\"\"}.fa-linkedin-square:before{content:\"\"}.fa-thumb-tack:before{content:\"\"}.fa-external-link:before{content:\"\"}.fa-sign-in:before{content:\"\"}.fa-trophy:before{content:\"\"}.fa-github-square:before{content:\"\"}.fa-upload:before{content:\"\"}.fa-lemon-o:before{content:\"\"}.fa-phone:before{content:\"\"}.fa-square-o:before{content:\"\"}.fa-bookmark-o:before{content:\"\"}.fa-phone-square:before{content:\"\"}.fa-twitter:before{content:\"\"}.fa-facebook-f:before,.fa-facebook:before{content:\"\"}.fa-github:before{content:\"\"}.fa-unlock:before{content:\"\"}.fa-credit-card:before{content:\"\"}.fa-feed:before,.fa-rss:before{content:\"\"}.fa-hdd-o:before{content:\"\"}.fa-bullhorn:before{content:\"\"}.fa-bell:before{content:\"\"}.fa-certificate:before{content:\"\"}.fa-hand-o-right:before{content:\"\"}.fa-hand-o-left:before{content:\"\"}.fa-hand-o-up:before{content:\"\"}.fa-hand-o-down:before{content:\"\"}.fa-arrow-circle-left:before{content:\"\"}.fa-arrow-circle-right:before{content:\"\"}.fa-arrow-circle-up:before{content:\"\"}.fa-arrow-circle-down:before{content:\"\"}.fa-globe:before{content:\"\"}.fa-wrench:before{content:\"\"}.fa-tasks:before{content:\"\"}.fa-filter:before{content:\"\"}.fa-briefcase:before{content:\"\"}.fa-arrows-alt:before{content:\"\"}.fa-group:before,.fa-users:before{content:\"\"}.fa-chain:before,.fa-link:before{content:\"\"}.fa-cloud:before{content:\"\"}.fa-flask:before{content:\"\"}.fa-cut:before,.fa-scissors:before{content:\"\"}.fa-copy:before,.fa-files-o:before{content:\"\"}.fa-paperclip:before{content:\"\"}.fa-save:before,.fa-floppy-o:before{content:\"\"}.fa-square:before{content:\"\"}.fa-navicon:before,.fa-reorder:before,.fa-bars:before{content:\"\"}.fa-list-ul:before{content:\"\"}.fa-list-ol:before{content:\"\"}.fa-strikethrough:before{content:\"\"}.fa-underline:before{content:\"\"}.fa-table:before{content:\"\"}.fa-magic:before{content:\"\"}.fa-truck:before{content:\"\"}.fa-pinterest:before{content:\"\"}.fa-pinterest-square:before{content:\"\"}.fa-google-plus-square:before{content:\"\"}.fa-google-plus:before{content:\"\"}.fa-money:before{content:\"\"}.fa-caret-down:before{content:\"\"}.fa-caret-up:before{content:\"\"}.fa-caret-left:before{content:\"\"}.fa-caret-right:before{content:\"\"}.fa-columns:before{content:\"\"}.fa-unsorted:before,.fa-sort:before{content:\"\"}.fa-sort-down:before,.fa-sort-desc:before{content:\"\"}.fa-sort-up:before,.fa-sort-asc:before{content:\"\"}.fa-envelope:before{content:\"\"}.fa-linkedin:before{content:\"\"}.fa-rotate-left:before,.fa-undo:before{content:\"\"}.fa-legal:before,.fa-gavel:before{content:\"\"}.fa-dashboard:before,.fa-tachometer:before{content:\"\"}.fa-comment-o:before{content:\"\"}.fa-comments-o:before{content:\"\"}.fa-flash:before,.fa-bolt:before{content:\"\"}.fa-sitemap:before{content:\"\"}.fa-umbrella:before{content:\"\"}.fa-paste:before,.fa-clipboard:before{content:\"\"}.fa-lightbulb-o:before{content:\"\"}.fa-exchange:before{content:\"\"}.fa-cloud-download:before{content:\"\"}.fa-cloud-upload:before{content:\"\"}.fa-user-md:before{content:\"\"}.fa-stethoscope:before{content:\"\"}.fa-suitcase:before{content:\"\"}.fa-bell-o:before{content:\"\"}.fa-coffee:before{content:\"\"}.fa-cutlery:before{content:\"\"}.fa-file-text-o:before{content:\"\"}.fa-building-o:before{content:\"\"}.fa-hospital-o:before{content:\"\"}.fa-ambulance:before{content:\"\"}.fa-medkit:before{content:\"\"}.fa-fighter-jet:before{content:\"\"}.fa-beer:before{content:\"\"}.fa-h-square:before{content:\"\"}.fa-plus-square:before{content:\"\"}.fa-angle-double-left:before{content:\"\"}.fa-angle-double-right:before{content:\"\"}.fa-angle-double-up:before{content:\"\"}.fa-angle-double-down:before{content:\"\"}.fa-angle-left:before{content:\"\"}.fa-angle-right:before{content:\"\"}.fa-angle-up:before{content:\"\"}.fa-angle-down:before{content:\"\"}.fa-desktop:before{content:\"\"}.fa-laptop:before{content:\"\"}.fa-tablet:before{content:\"\"}.fa-mobile-phone:before,.fa-mobile:before{content:\"\"}.fa-circle-o:before{content:\"\"}.fa-quote-left:before{content:\"\"}.fa-quote-right:before{content:\"\"}.fa-spinner:before{content:\"\"}.fa-circle:before{content:\"\"}.fa-mail-reply:before,.fa-reply:before{content:\"\"}.fa-github-alt:before{content:\"\"}.fa-folder-o:before{content:\"\"}.fa-folder-open-o:before{content:\"\"}.fa-smile-o:before{content:\"\"}.fa-frown-o:before{content:\"\"}.fa-meh-o:before{content:\"\"}.fa-gamepad:before{content:\"\"}.fa-keyboard-o:before{content:\"\"}.fa-flag-o:before{content:\"\"}.fa-flag-checkered:before{content:\"\"}.fa-terminal:before{content:\"\"}.fa-code:before{content:\"\"}.fa-mail-reply-all:before,.fa-reply-all:before{content:\"\"}.fa-star-half-empty:before,.fa-star-half-full:before,.fa-star-half-o:before{content:\"\"}.fa-location-arrow:before{content:\"\"}.fa-crop:before{content:\"\"}.fa-code-fork:before{content:\"\"}.fa-unlink:before,.fa-chain-broken:before{content:\"\"}.fa-question:before{content:\"\"}.fa-info:before{content:\"\"}.fa-exclamation:before{content:\"\"}.fa-superscript:before{content:\"\"}.fa-subscript:before{content:\"\"}.fa-eraser:before{content:\"\"}.fa-puzzle-piece:before{content:\"\"}.fa-microphone:before{content:\"\"}.fa-microphone-slash:before{content:\"\"}.fa-shield:before{content:\"\"}.fa-calendar-o:before{content:\"\"}.fa-fire-extinguisher:before{content:\"\"}.fa-rocket:before{content:\"\"}.fa-maxcdn:before{content:\"\"}.fa-chevron-circle-left:before{content:\"\"}.fa-chevron-circle-right:before{content:\"\"}.fa-chevron-circle-up:before{content:\"\"}.fa-chevron-circle-down:before{content:\"\"}.fa-html5:before{content:\"\"}.fa-css3:before{content:\"\"}.fa-anchor:before{content:\"\"}.fa-unlock-alt:before{content:\"\"}.fa-bullseye:before{content:\"\"}.fa-ellipsis-h:before{content:\"\"}.fa-ellipsis-v:before{content:\"\"}.fa-rss-square:before{content:\"\"}.fa-play-circle:before{content:\"\"}.fa-ticket:before{content:\"\"}.fa-minus-square:before{content:\"\"}.fa-minus-square-o:before{content:\"\"}.fa-level-up:before{content:\"\"}.fa-level-down:before{content:\"\"}.fa-check-square:before{content:\"\"}.fa-pencil-square:before{content:\"\"}.fa-external-link-square:before{content:\"\"}.fa-share-square:before{content:\"\"}.fa-compass:before{content:\"\"}.fa-toggle-down:before,.fa-caret-square-o-down:before{content:\"\"}.fa-toggle-up:before,.fa-caret-square-o-up:before{content:\"\"}.fa-toggle-right:before,.fa-caret-square-o-right:before{content:\"\"}.fa-euro:before,.fa-eur:before{content:\"\"}.fa-gbp:before{content:\"\"}.fa-dollar:before,.fa-usd:before{content:\"\"}.fa-rupee:before,.fa-inr:before{content:\"\"}.fa-cny:before,.fa-rmb:before,.fa-yen:before,.fa-jpy:before{content:\"\"}.fa-ruble:before,.fa-rouble:before,.fa-rub:before{content:\"\"}.fa-won:before,.fa-krw:before{content:\"\"}.fa-bitcoin:before,.fa-btc:before{content:\"\"}.fa-file:before{content:\"\"}.fa-file-text:before{content:\"\"}.fa-sort-alpha-asc:before{content:\"\"}.fa-sort-alpha-desc:before{content:\"\"}.fa-sort-amount-asc:before{content:\"\"}.fa-sort-amount-desc:before{content:\"\"}.fa-sort-numeric-asc:before{content:\"\"}.fa-sort-numeric-desc:before{content:\"\"}.fa-thumbs-up:before{content:\"\"}.fa-thumbs-down:before{content:\"\"}.fa-youtube-square:before{content:\"\"}.fa-youtube:before{content:\"\"}.fa-xing:before{content:\"\"}.fa-xing-square:before{content:\"\"}.fa-youtube-play:before{content:\"\"}.fa-dropbox:before{content:\"\"}.fa-stack-overflow:before{content:\"\"}.fa-instagram:before{content:\"\"}.fa-flickr:before{content:\"\"}.fa-adn:before{content:\"\"}.fa-bitbucket:before{content:\"\"}.fa-bitbucket-square:before{content:\"\"}.fa-tumblr:before{content:\"\"}.fa-tumblr-square:before{content:\"\"}.fa-long-arrow-down:before{content:\"\"}.fa-long-arrow-up:before{content:\"\"}.fa-long-arrow-left:before{content:\"\"}.fa-long-arrow-right:before{content:\"\"}.fa-apple:before{content:\"\"}.fa-windows:before{content:\"\"}.fa-android:before{content:\"\"}.fa-linux:before{content:\"\"}.fa-dribbble:before{content:\"\"}.fa-skype:before{content:\"\"}.fa-foursquare:before{content:\"\"}.fa-trello:before{content:\"\"}.fa-female:before{content:\"\"}.fa-male:before{content:\"\"}.fa-gittip:before,.fa-gratipay:before{content:\"\"}.fa-sun-o:before{content:\"\"}.fa-moon-o:before{content:\"\"}.fa-archive:before{content:\"\"}.fa-bug:before{content:\"\"}.fa-vk:before{content:\"\"}.fa-weibo:before{content:\"\"}.fa-renren:before{content:\"\"}.fa-pagelines:before{content:\"\"}.fa-stack-exchange:before{content:\"\"}.fa-arrow-circle-o-right:before{content:\"\"}.fa-arrow-circle-o-left:before{content:\"\"}.fa-toggle-left:before,.fa-caret-square-o-left:before{content:\"\"}.fa-dot-circle-o:before{content:\"\"}.fa-wheelchair:before{content:\"\"}.fa-vimeo-square:before{content:\"\"}.fa-turkish-lira:before,.fa-try:before{content:\"\"}.fa-plus-square-o:before{content:\"\"}.fa-space-shuttle:before{content:\"\"}.fa-slack:before{content:\"\"}.fa-envelope-square:before{content:\"\"}.fa-wordpress:before{content:\"\"}.fa-openid:before{content:\"\"}.fa-institution:before,.fa-bank:before,.fa-university:before{content:\"\"}.fa-mortar-board:before,.fa-graduation-cap:before{content:\"\"}.fa-yahoo:before{content:\"\"}.fa-google:before{content:\"\"}.fa-reddit:before{content:\"\"}.fa-reddit-square:before{content:\"\"}.fa-stumbleupon-circle:before{content:\"\"}.fa-stumbleupon:before{content:\"\"}.fa-delicious:before{content:\"\"}.fa-digg:before{content:\"\"}.fa-pied-piper-pp:before{content:\"\"}.fa-pied-piper-alt:before{content:\"\"}.fa-drupal:before{content:\"\"}.fa-joomla:before{content:\"\"}.fa-language:before{content:\"\"}.fa-fax:before{content:\"\"}.fa-building:before{content:\"\"}.fa-child:before{content:\"\"}.fa-paw:before{content:\"\"}.fa-spoon:before{content:\"\"}.fa-cube:before{content:\"\"}.fa-cubes:before{content:\"\"}.fa-behance:before{content:\"\"}.fa-behance-square:before{content:\"\"}.fa-steam:before{content:\"\"}.fa-steam-square:before{content:\"\"}.fa-recycle:before{content:\"\"}.fa-automobile:before,.fa-car:before{content:\"\"}.fa-cab:before,.fa-taxi:before{content:\"\"}.fa-tree:before{content:\"\"}.fa-spotify:before{content:\"\"}.fa-deviantart:before{content:\"\"}.fa-soundcloud:before{content:\"\"}.fa-database:before{content:\"\"}.fa-file-pdf-o:before{content:\"\"}.fa-file-word-o:before{content:\"\"}.fa-file-excel-o:before{content:\"\"}.fa-file-powerpoint-o:before{content:\"\"}.fa-file-photo-o:before,.fa-file-picture-o:before,.fa-file-image-o:before{content:\"\"}.fa-file-zip-o:before,.fa-file-archive-o:before{content:\"\"}.fa-file-sound-o:before,.fa-file-audio-o:before{content:\"\"}.fa-file-movie-o:before,.fa-file-video-o:before{content:\"\"}.fa-file-code-o:before{content:\"\"}.fa-vine:before{content:\"\"}.fa-codepen:before{content:\"\"}.fa-jsfiddle:before{content:\"\"}.fa-life-bouy:before,.fa-life-buoy:before,.fa-life-saver:before,.fa-support:before,.fa-life-ring:before{content:\"\"}.fa-circle-o-notch:before{content:\"\"}.fa-ra:before,.fa-resistance:before,.fa-rebel:before{content:\"\"}.fa-ge:before,.fa-empire:before{content:\"\"}.fa-git-square:before{content:\"\"}.fa-git:before{content:\"\"}.fa-y-combinator-square:before,.fa-yc-square:before,.fa-hacker-news:before{content:\"\"}.fa-tencent-weibo:before{content:\"\"}.fa-qq:before{content:\"\"}.fa-wechat:before,.fa-weixin:before{content:\"\"}.fa-send:before,.fa-paper-plane:before{content:\"\"}.fa-send-o:before,.fa-paper-plane-o:before{content:\"\"}.fa-history:before{content:\"\"}.fa-circle-thin:before{content:\"\"}.fa-header:before{content:\"\"}.fa-paragraph:before{content:\"\"}.fa-sliders:before{content:\"\"}.fa-share-alt:before{content:\"\"}.fa-share-alt-square:before{content:\"\"}.fa-bomb:before{content:\"\"}.fa-soccer-ball-o:before,.fa-futbol-o:before{content:\"\"}.fa-tty:before{content:\"\"}.fa-binoculars:before{content:\"\"}.fa-plug:before{content:\"\"}.fa-slideshare:before{content:\"\"}.fa-twitch:before{content:\"\"}.fa-yelp:before{content:\"\"}.fa-newspaper-o:before{content:\"\"}.fa-wifi:before{content:\"\"}.fa-calculator:before{content:\"\"}.fa-paypal:before{content:\"\"}.fa-google-wallet:before{content:\"\"}.fa-cc-visa:before{content:\"\"}.fa-cc-mastercard:before{content:\"\"}.fa-cc-discover:before{content:\"\"}.fa-cc-amex:before{content:\"\"}.fa-cc-paypal:before{content:\"\"}.fa-cc-stripe:before{content:\"\"}.fa-bell-slash:before{content:\"\"}.fa-bell-slash-o:before{content:\"\"}.fa-trash:before{content:\"\"}.fa-copyright:before{content:\"\"}.fa-at:before{content:\"\"}.fa-eyedropper:before{content:\"\"}.fa-paint-brush:before{content:\"\"}.fa-birthday-cake:before{content:\"\"}.fa-area-chart:before{content:\"\"}.fa-pie-chart:before{content:\"\"}.fa-line-chart:before{content:\"\"}.fa-lastfm:before{content:\"\"}.fa-lastfm-square:before{content:\"\"}.fa-toggle-off:before{content:\"\"}.fa-toggle-on:before{content:\"\"}.fa-bicycle:before{content:\"\"}.fa-bus:before{content:\"\"}.fa-ioxhost:before{content:\"\"}.fa-angellist:before{content:\"\"}.fa-cc:before{content:\"\"}.fa-shekel:before,.fa-sheqel:before,.fa-ils:before{content:\"\"}.fa-meanpath:before{content:\"\"}.fa-buysellads:before{content:\"\"}.fa-connectdevelop:before{content:\"\"}.fa-dashcube:before{content:\"\"}.fa-forumbee:before{content:\"\"}.fa-leanpub:before{content:\"\"}.fa-sellsy:before{content:\"\"}.fa-shirtsinbulk:before{content:\"\"}.fa-simplybuilt:before{content:\"\"}.fa-skyatlas:before{content:\"\"}.fa-cart-plus:before{content:\"\"}.fa-cart-arrow-down:before{content:\"\"}.fa-diamond:before{content:\"\"}.fa-ship:before{content:\"\"}.fa-user-secret:before{content:\"\"}.fa-motorcycle:before{content:\"\"}.fa-street-view:before{content:\"\"}.fa-heartbeat:before{content:\"\"}.fa-venus:before{content:\"\"}.fa-mars:before{content:\"\"}.fa-mercury:before{content:\"\"}.fa-intersex:before,.fa-transgender:before{content:\"\"}.fa-transgender-alt:before{content:\"\"}.fa-venus-double:before{content:\"\"}.fa-mars-double:before{content:\"\"}.fa-venus-mars:before{content:\"\"}.fa-mars-stroke:before{content:\"\"}.fa-mars-stroke-v:before{content:\"\"}.fa-mars-stroke-h:before{content:\"\"}.fa-neuter:before{content:\"\"}.fa-genderless:before{content:\"\"}.fa-facebook-official:before{content:\"\"}.fa-pinterest-p:before{content:\"\"}.fa-whatsapp:before{content:\"\"}.fa-server:before{content:\"\"}.fa-user-plus:before{content:\"\"}.fa-user-times:before{content:\"\"}.fa-hotel:before,.fa-bed:before{content:\"\"}.fa-viacoin:before{content:\"\"}.fa-train:before{content:\"\"}.fa-subway:before{content:\"\"}.fa-medium:before{content:\"\"}.fa-yc:before,.fa-y-combinator:before{content:\"\"}.fa-optin-monster:before{content:\"\"}.fa-opencart:before{content:\"\"}.fa-expeditedssl:before{content:\"\"}.fa-battery-4:before,.fa-battery:before,.fa-battery-full:before{content:\"\"}.fa-battery-3:before,.fa-battery-three-quarters:before{content:\"\"}.fa-battery-2:before,.fa-battery-half:before{content:\"\"}.fa-battery-1:before,.fa-battery-quarter:before{content:\"\"}.fa-battery-0:before,.fa-battery-empty:before{content:\"\"}.fa-mouse-pointer:before{content:\"\"}.fa-i-cursor:before{content:\"\"}.fa-object-group:before{content:\"\"}.fa-object-ungroup:before{content:\"\"}.fa-sticky-note:before{content:\"\"}.fa-sticky-note-o:before{content:\"\"}.fa-cc-jcb:before{content:\"\"}.fa-cc-diners-club:before{content:\"\"}.fa-clone:before{content:\"\"}.fa-balance-scale:before{content:\"\"}.fa-hourglass-o:before{content:\"\"}.fa-hourglass-1:before,.fa-hourglass-start:before{content:\"\"}.fa-hourglass-2:before,.fa-hourglass-half:before{content:\"\"}.fa-hourglass-3:before,.fa-hourglass-end:before{content:\"\"}.fa-hourglass:before{content:\"\"}.fa-hand-grab-o:before,.fa-hand-rock-o:before{content:\"\"}.fa-hand-stop-o:before,.fa-hand-paper-o:before{content:\"\"}.fa-hand-scissors-o:before{content:\"\"}.fa-hand-lizard-o:before{content:\"\"}.fa-hand-spock-o:before{content:\"\"}.fa-hand-pointer-o:before{content:\"\"}.fa-hand-peace-o:before{content:\"\"}.fa-trademark:before{content:\"\"}.fa-registered:before{content:\"\"}.fa-creative-commons:before{content:\"\"}.fa-gg:before{content:\"\"}.fa-gg-circle:before{content:\"\"}.fa-tripadvisor:before{content:\"\"}.fa-odnoklassniki:before{content:\"\"}.fa-odnoklassniki-square:before{content:\"\"}.fa-get-pocket:before{content:\"\"}.fa-wikipedia-w:before{content:\"\"}.fa-safari:before{content:\"\"}.fa-chrome:before{content:\"\"}.fa-firefox:before{content:\"\"}.fa-opera:before{content:\"\"}.fa-internet-explorer:before{content:\"\"}.fa-tv:before,.fa-television:before{content:\"\"}.fa-contao:before{content:\"\"}.fa-500px:before{content:\"\"}.fa-amazon:before{content:\"\"}.fa-calendar-plus-o:before{content:\"\"}.fa-calendar-minus-o:before{content:\"\"}.fa-calendar-times-o:before{content:\"\"}.fa-calendar-check-o:before{content:\"\"}.fa-industry:before{content:\"\"}.fa-map-pin:before{content:\"\"}.fa-map-signs:before{content:\"\"}.fa-map-o:before{content:\"\"}.fa-map:before{content:\"\"}.fa-commenting:before{content:\"\"}.fa-commenting-o:before{content:\"\"}.fa-houzz:before{content:\"\"}.fa-vimeo:before{content:\"\"}.fa-black-tie:before{content:\"\"}.fa-fonticons:before{content:\"\"}.fa-reddit-alien:before{content:\"\"}.fa-edge:before{content:\"\"}.fa-credit-card-alt:before{content:\"\"}.fa-codiepie:before{content:\"\"}.fa-modx:before{content:\"\"}.fa-fort-awesome:before{content:\"\"}.fa-usb:before{content:\"\"}.fa-product-hunt:before{content:\"\"}.fa-mixcloud:before{content:\"\"}.fa-scribd:before{content:\"\"}.fa-pause-circle:before{content:\"\"}.fa-pause-circle-o:before{content:\"\"}.fa-stop-circle:before{content:\"\"}.fa-stop-circle-o:before{content:\"\"}.fa-shopping-bag:before{content:\"\"}.fa-shopping-basket:before{content:\"\"}.fa-hashtag:before{content:\"\"}.fa-bluetooth:before{content:\"\"}.fa-bluetooth-b:before{content:\"\"}.fa-percent:before{content:\"\"}.fa-gitlab:before{content:\"\"}.fa-wpbeginner:before{content:\"\"}.fa-wpforms:before{content:\"\"}.fa-envira:before{content:\"\"}.fa-universal-access:before{content:\"\"}.fa-wheelchair-alt:before{content:\"\"}.fa-question-circle-o:before{content:\"\"}.fa-blind:before{content:\"\"}.fa-audio-description:before{content:\"\"}.fa-volume-control-phone:before{content:\"\"}.fa-braille:before{content:\"\"}.fa-assistive-listening-systems:before{content:\"\"}.fa-asl-interpreting:before,.fa-american-sign-language-interpreting:before{content:\"\"}.fa-deafness:before,.fa-hard-of-hearing:before,.fa-deaf:before{content:\"\"}.fa-glide:before{content:\"\"}.fa-glide-g:before{content:\"\"}.fa-signing:before,.fa-sign-language:before{content:\"\"}.fa-low-vision:before{content:\"\"}.fa-viadeo:before{content:\"\"}.fa-viadeo-square:before{content:\"\"}.fa-snapchat:before{content:\"\"}.fa-snapchat-ghost:before{content:\"\"}.fa-snapchat-square:before{content:\"\"}.fa-pied-piper:before{content:\"\"}.fa-first-order:before{content:\"\"}.fa-yoast:before{content:\"\"}.fa-themeisle:before{content:\"\"}.fa-google-plus-circle:before,.fa-google-plus-official:before{content:\"\"}.fa-fa:before,.fa-font-awesome:before{content:\"\"}.fa-handshake-o:before{content:\"\"}.fa-envelope-open:before{content:\"\"}.fa-envelope-open-o:before{content:\"\"}.fa-linode:before{content:\"\"}.fa-address-book:before{content:\"\"}.fa-address-book-o:before{content:\"\"}.fa-vcard:before,.fa-address-card:before{content:\"\"}.fa-vcard-o:before,.fa-address-card-o:before{content:\"\"}.fa-user-circle:before{content:\"\"}.fa-user-circle-o:before{content:\"\"}.fa-user-o:before{content:\"\"}.fa-id-badge:before{content:\"\"}.fa-drivers-license:before,.fa-id-card:before{content:\"\"}.fa-drivers-license-o:before,.fa-id-card-o:before{content:\"\"}.fa-quora:before{content:\"\"}.fa-free-code-camp:before{content:\"\"}.fa-telegram:before{content:\"\"}.fa-thermometer-4:before,.fa-thermometer:before,.fa-thermometer-full:before{content:\"\"}.fa-thermometer-3:before,.fa-thermometer-three-quarters:before{content:\"\"}.fa-thermometer-2:before,.fa-thermometer-half:before{content:\"\"}.fa-thermometer-1:before,.fa-thermometer-quarter:before{content:\"\"}.fa-thermometer-0:before,.fa-thermometer-empty:before{content:\"\"}.fa-shower:before{content:\"\"}.fa-bathtub:before,.fa-s15:before,.fa-bath:before{content:\"\"}.fa-podcast:before{content:\"\"}.fa-window-maximize:before{content:\"\"}.fa-window-minimize:before{content:\"\"}.fa-window-restore:before{content:\"\"}.fa-times-rectangle:before,.fa-window-close:before{content:\"\"}.fa-times-rectangle-o:before,.fa-window-close-o:before{content:\"\"}.fa-bandcamp:before{content:\"\"}.fa-grav:before{content:\"\"}.fa-etsy:before{content:\"\"}.fa-imdb:before{content:\"\"}.fa-ravelry:before{content:\"\"}.fa-eercast:before{content:\"\"}.fa-microchip:before{content:\"\"}.fa-snowflake-o:before{content:\"\"}.fa-superpowers:before{content:\"\"}.fa-wpexplorer:before{content:\"\"}.fa-meetup:before{content:\"\"}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto}","/*!\n * Font Awesome 4.7.0 by @davegandy - http://fontawesome.io - @fontawesome\n * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License)\n */\n/* FONT PATH\n * -------------------------- */\n@font-face {\n font-family: 'FontAwesome';\n src: url('../fonts/fontawesome-webfont.eot?v=4.7.0');\n src: url('../fonts/fontawesome-webfont.eot?#iefix&v=4.7.0') format('embedded-opentype'), url('../fonts/fontawesome-webfont.woff2?v=4.7.0') format('woff2'), url('../fonts/fontawesome-webfont.woff?v=4.7.0') format('woff'), url('../fonts/fontawesome-webfont.ttf?v=4.7.0') format('truetype'), url('../fonts/fontawesome-webfont.svg?v=4.7.0#fontawesomeregular') format('svg');\n font-weight: normal;\n font-style: normal;\n}\n.fa {\n display: inline-block;\n font: normal normal normal 14px/1 FontAwesome;\n font-size: inherit;\n text-rendering: auto;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n}\n/* makes the font 33% larger relative to the icon container */\n.fa-lg {\n font-size: 1.33333333em;\n line-height: 0.75em;\n vertical-align: -15%;\n}\n.fa-2x {\n font-size: 2em;\n}\n.fa-3x {\n font-size: 3em;\n}\n.fa-4x {\n font-size: 4em;\n}\n.fa-5x {\n font-size: 5em;\n}\n.fa-fw {\n width: 1.28571429em;\n text-align: center;\n}\n.fa-ul {\n padding-left: 0;\n margin-left: 2.14285714em;\n list-style-type: none;\n}\n.fa-ul > li {\n position: relative;\n}\n.fa-li {\n position: absolute;\n left: -2.14285714em;\n width: 2.14285714em;\n top: 0.14285714em;\n text-align: center;\n}\n.fa-li.fa-lg {\n left: -1.85714286em;\n}\n.fa-border {\n padding: .2em .25em .15em;\n border: solid 0.08em #eeeeee;\n border-radius: .1em;\n}\n.fa-pull-left {\n float: left;\n}\n.fa-pull-right {\n float: right;\n}\n.fa.fa-pull-left {\n margin-right: .3em;\n}\n.fa.fa-pull-right {\n margin-left: .3em;\n}\n/* Deprecated as of 4.4.0 */\n.pull-right {\n float: right;\n}\n.pull-left {\n float: left;\n}\n.fa.pull-left {\n margin-right: .3em;\n}\n.fa.pull-right {\n margin-left: .3em;\n}\n.fa-spin {\n -webkit-animation: fa-spin 2s infinite linear;\n animation: fa-spin 2s infinite linear;\n}\n.fa-pulse {\n -webkit-animation: fa-spin 1s infinite steps(8);\n animation: fa-spin 1s infinite steps(8);\n}\n@-webkit-keyframes fa-spin {\n 0% {\n -webkit-transform: rotate(0deg);\n transform: rotate(0deg);\n }\n 100% {\n -webkit-transform: rotate(359deg);\n transform: rotate(359deg);\n }\n}\n@keyframes fa-spin {\n 0% {\n -webkit-transform: rotate(0deg);\n transform: rotate(0deg);\n }\n 100% {\n -webkit-transform: rotate(359deg);\n transform: rotate(359deg);\n }\n}\n.fa-rotate-90 {\n -ms-filter: \"progid:DXImageTransform.Microsoft.BasicImage(rotation=1)\";\n -webkit-transform: rotate(90deg);\n -ms-transform: rotate(90deg);\n transform: rotate(90deg);\n}\n.fa-rotate-180 {\n -ms-filter: \"progid:DXImageTransform.Microsoft.BasicImage(rotation=2)\";\n -webkit-transform: rotate(180deg);\n -ms-transform: rotate(180deg);\n transform: rotate(180deg);\n}\n.fa-rotate-270 {\n -ms-filter: \"progid:DXImageTransform.Microsoft.BasicImage(rotation=3)\";\n -webkit-transform: rotate(270deg);\n -ms-transform: rotate(270deg);\n transform: rotate(270deg);\n}\n.fa-flip-horizontal {\n -ms-filter: \"progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)\";\n -webkit-transform: scale(-1, 1);\n -ms-transform: scale(-1, 1);\n transform: scale(-1, 1);\n}\n.fa-flip-vertical {\n -ms-filter: \"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)\";\n -webkit-transform: scale(1, -1);\n -ms-transform: scale(1, -1);\n transform: scale(1, -1);\n}\n:root .fa-rotate-90,\n:root .fa-rotate-180,\n:root .fa-rotate-270,\n:root .fa-flip-horizontal,\n:root .fa-flip-vertical {\n filter: none;\n}\n.fa-stack {\n position: relative;\n display: inline-block;\n width: 2em;\n height: 2em;\n line-height: 2em;\n vertical-align: middle;\n}\n.fa-stack-1x,\n.fa-stack-2x {\n position: absolute;\n left: 0;\n width: 100%;\n text-align: center;\n}\n.fa-stack-1x {\n line-height: inherit;\n}\n.fa-stack-2x {\n font-size: 2em;\n}\n.fa-inverse {\n color: #ffffff;\n}\n/* Font Awesome uses the Unicode Private Use Area (PUA) to ensure screen\n readers do not read off random characters that represent icons */\n.fa-glass:before {\n content: \"\\f000\";\n}\n.fa-music:before {\n content: \"\\f001\";\n}\n.fa-search:before {\n content: \"\\f002\";\n}\n.fa-envelope-o:before {\n content: \"\\f003\";\n}\n.fa-heart:before {\n content: \"\\f004\";\n}\n.fa-star:before {\n content: \"\\f005\";\n}\n.fa-star-o:before {\n content: \"\\f006\";\n}\n.fa-user:before {\n content: \"\\f007\";\n}\n.fa-film:before {\n content: \"\\f008\";\n}\n.fa-th-large:before {\n content: \"\\f009\";\n}\n.fa-th:before {\n content: \"\\f00a\";\n}\n.fa-th-list:before {\n content: \"\\f00b\";\n}\n.fa-check:before {\n content: \"\\f00c\";\n}\n.fa-remove:before,\n.fa-close:before,\n.fa-times:before {\n content: \"\\f00d\";\n}\n.fa-search-plus:before {\n content: \"\\f00e\";\n}\n.fa-search-minus:before {\n content: \"\\f010\";\n}\n.fa-power-off:before {\n content: \"\\f011\";\n}\n.fa-signal:before {\n content: \"\\f012\";\n}\n.fa-gear:before,\n.fa-cog:before {\n content: \"\\f013\";\n}\n.fa-trash-o:before {\n content: \"\\f014\";\n}\n.fa-home:before {\n content: \"\\f015\";\n}\n.fa-file-o:before {\n content: \"\\f016\";\n}\n.fa-clock-o:before {\n content: \"\\f017\";\n}\n.fa-road:before {\n content: \"\\f018\";\n}\n.fa-download:before {\n content: \"\\f019\";\n}\n.fa-arrow-circle-o-down:before {\n content: \"\\f01a\";\n}\n.fa-arrow-circle-o-up:before {\n content: \"\\f01b\";\n}\n.fa-inbox:before {\n content: \"\\f01c\";\n}\n.fa-play-circle-o:before {\n content: \"\\f01d\";\n}\n.fa-rotate-right:before,\n.fa-repeat:before {\n content: \"\\f01e\";\n}\n.fa-refresh:before {\n content: \"\\f021\";\n}\n.fa-list-alt:before {\n content: \"\\f022\";\n}\n.fa-lock:before {\n content: \"\\f023\";\n}\n.fa-flag:before {\n content: \"\\f024\";\n}\n.fa-headphones:before {\n content: \"\\f025\";\n}\n.fa-volume-off:before {\n content: \"\\f026\";\n}\n.fa-volume-down:before {\n content: \"\\f027\";\n}\n.fa-volume-up:before {\n content: \"\\f028\";\n}\n.fa-qrcode:before {\n content: \"\\f029\";\n}\n.fa-barcode:before {\n content: \"\\f02a\";\n}\n.fa-tag:before {\n content: \"\\f02b\";\n}\n.fa-tags:before {\n content: \"\\f02c\";\n}\n.fa-book:before {\n content: \"\\f02d\";\n}\n.fa-bookmark:before {\n content: \"\\f02e\";\n}\n.fa-print:before {\n content: \"\\f02f\";\n}\n.fa-camera:before {\n content: \"\\f030\";\n}\n.fa-font:before {\n content: \"\\f031\";\n}\n.fa-bold:before {\n content: \"\\f032\";\n}\n.fa-italic:before {\n content: \"\\f033\";\n}\n.fa-text-height:before {\n content: \"\\f034\";\n}\n.fa-text-width:before {\n content: \"\\f035\";\n}\n.fa-align-left:before {\n content: \"\\f036\";\n}\n.fa-align-center:before {\n content: \"\\f037\";\n}\n.fa-align-right:before {\n content: \"\\f038\";\n}\n.fa-align-justify:before {\n content: \"\\f039\";\n}\n.fa-list:before {\n content: \"\\f03a\";\n}\n.fa-dedent:before,\n.fa-outdent:before {\n content: \"\\f03b\";\n}\n.fa-indent:before {\n content: \"\\f03c\";\n}\n.fa-video-camera:before {\n content: \"\\f03d\";\n}\n.fa-photo:before,\n.fa-image:before,\n.fa-picture-o:before {\n content: \"\\f03e\";\n}\n.fa-pencil:before {\n content: \"\\f040\";\n}\n.fa-map-marker:before {\n content: \"\\f041\";\n}\n.fa-adjust:before {\n content: \"\\f042\";\n}\n.fa-tint:before {\n content: \"\\f043\";\n}\n.fa-edit:before,\n.fa-pencil-square-o:before {\n content: \"\\f044\";\n}\n.fa-share-square-o:before {\n content: \"\\f045\";\n}\n.fa-check-square-o:before {\n content: \"\\f046\";\n}\n.fa-arrows:before {\n content: \"\\f047\";\n}\n.fa-step-backward:before {\n content: \"\\f048\";\n}\n.fa-fast-backward:before {\n content: \"\\f049\";\n}\n.fa-backward:before {\n content: \"\\f04a\";\n}\n.fa-play:before {\n content: \"\\f04b\";\n}\n.fa-pause:before {\n content: \"\\f04c\";\n}\n.fa-stop:before {\n content: \"\\f04d\";\n}\n.fa-forward:before {\n content: \"\\f04e\";\n}\n.fa-fast-forward:before {\n content: \"\\f050\";\n}\n.fa-step-forward:before {\n content: \"\\f051\";\n}\n.fa-eject:before {\n content: \"\\f052\";\n}\n.fa-chevron-left:before {\n content: \"\\f053\";\n}\n.fa-chevron-right:before {\n content: \"\\f054\";\n}\n.fa-plus-circle:before {\n content: \"\\f055\";\n}\n.fa-minus-circle:before {\n content: \"\\f056\";\n}\n.fa-times-circle:before {\n content: \"\\f057\";\n}\n.fa-check-circle:before {\n content: \"\\f058\";\n}\n.fa-question-circle:before {\n content: \"\\f059\";\n}\n.fa-info-circle:before {\n content: \"\\f05a\";\n}\n.fa-crosshairs:before {\n content: \"\\f05b\";\n}\n.fa-times-circle-o:before {\n content: \"\\f05c\";\n}\n.fa-check-circle-o:before {\n content: \"\\f05d\";\n}\n.fa-ban:before {\n content: \"\\f05e\";\n}\n.fa-arrow-left:before {\n content: \"\\f060\";\n}\n.fa-arrow-right:before {\n content: \"\\f061\";\n}\n.fa-arrow-up:before {\n content: \"\\f062\";\n}\n.fa-arrow-down:before {\n content: \"\\f063\";\n}\n.fa-mail-forward:before,\n.fa-share:before {\n content: \"\\f064\";\n}\n.fa-expand:before {\n content: \"\\f065\";\n}\n.fa-compress:before {\n content: \"\\f066\";\n}\n.fa-plus:before {\n content: \"\\f067\";\n}\n.fa-minus:before {\n content: \"\\f068\";\n}\n.fa-asterisk:before {\n content: \"\\f069\";\n}\n.fa-exclamation-circle:before {\n content: \"\\f06a\";\n}\n.fa-gift:before {\n content: \"\\f06b\";\n}\n.fa-leaf:before {\n content: \"\\f06c\";\n}\n.fa-fire:before {\n content: \"\\f06d\";\n}\n.fa-eye:before {\n content: \"\\f06e\";\n}\n.fa-eye-slash:before {\n content: \"\\f070\";\n}\n.fa-warning:before,\n.fa-exclamation-triangle:before {\n content: \"\\f071\";\n}\n.fa-plane:before {\n content: \"\\f072\";\n}\n.fa-calendar:before {\n content: \"\\f073\";\n}\n.fa-random:before {\n content: \"\\f074\";\n}\n.fa-comment:before {\n content: \"\\f075\";\n}\n.fa-magnet:before {\n content: \"\\f076\";\n}\n.fa-chevron-up:before {\n content: \"\\f077\";\n}\n.fa-chevron-down:before {\n content: \"\\f078\";\n}\n.fa-retweet:before {\n content: \"\\f079\";\n}\n.fa-shopping-cart:before {\n content: \"\\f07a\";\n}\n.fa-folder:before {\n content: \"\\f07b\";\n}\n.fa-folder-open:before {\n content: \"\\f07c\";\n}\n.fa-arrows-v:before {\n content: \"\\f07d\";\n}\n.fa-arrows-h:before {\n content: \"\\f07e\";\n}\n.fa-bar-chart-o:before,\n.fa-bar-chart:before {\n content: \"\\f080\";\n}\n.fa-twitter-square:before {\n content: \"\\f081\";\n}\n.fa-facebook-square:before {\n content: \"\\f082\";\n}\n.fa-camera-retro:before {\n content: \"\\f083\";\n}\n.fa-key:before {\n content: \"\\f084\";\n}\n.fa-gears:before,\n.fa-cogs:before {\n content: \"\\f085\";\n}\n.fa-comments:before {\n content: \"\\f086\";\n}\n.fa-thumbs-o-up:before {\n content: \"\\f087\";\n}\n.fa-thumbs-o-down:before {\n content: \"\\f088\";\n}\n.fa-star-half:before {\n content: \"\\f089\";\n}\n.fa-heart-o:before {\n content: \"\\f08a\";\n}\n.fa-sign-out:before {\n content: \"\\f08b\";\n}\n.fa-linkedin-square:before {\n content: \"\\f08c\";\n}\n.fa-thumb-tack:before {\n content: \"\\f08d\";\n}\n.fa-external-link:before {\n content: \"\\f08e\";\n}\n.fa-sign-in:before {\n content: \"\\f090\";\n}\n.fa-trophy:before {\n content: \"\\f091\";\n}\n.fa-github-square:before {\n content: \"\\f092\";\n}\n.fa-upload:before {\n content: \"\\f093\";\n}\n.fa-lemon-o:before {\n content: \"\\f094\";\n}\n.fa-phone:before {\n content: \"\\f095\";\n}\n.fa-square-o:before {\n content: \"\\f096\";\n}\n.fa-bookmark-o:before {\n content: \"\\f097\";\n}\n.fa-phone-square:before {\n content: \"\\f098\";\n}\n.fa-twitter:before {\n content: \"\\f099\";\n}\n.fa-facebook-f:before,\n.fa-facebook:before {\n content: \"\\f09a\";\n}\n.fa-github:before {\n content: \"\\f09b\";\n}\n.fa-unlock:before {\n content: \"\\f09c\";\n}\n.fa-credit-card:before {\n content: \"\\f09d\";\n}\n.fa-feed:before,\n.fa-rss:before {\n content: \"\\f09e\";\n}\n.fa-hdd-o:before {\n content: \"\\f0a0\";\n}\n.fa-bullhorn:before {\n content: \"\\f0a1\";\n}\n.fa-bell:before {\n content: \"\\f0f3\";\n}\n.fa-certificate:before {\n content: \"\\f0a3\";\n}\n.fa-hand-o-right:before {\n content: \"\\f0a4\";\n}\n.fa-hand-o-left:before {\n content: \"\\f0a5\";\n}\n.fa-hand-o-up:before {\n content: \"\\f0a6\";\n}\n.fa-hand-o-down:before {\n content: \"\\f0a7\";\n}\n.fa-arrow-circle-left:before {\n content: \"\\f0a8\";\n}\n.fa-arrow-circle-right:before {\n content: \"\\f0a9\";\n}\n.fa-arrow-circle-up:before {\n content: \"\\f0aa\";\n}\n.fa-arrow-circle-down:before {\n content: \"\\f0ab\";\n}\n.fa-globe:before {\n content: \"\\f0ac\";\n}\n.fa-wrench:before {\n content: \"\\f0ad\";\n}\n.fa-tasks:before {\n content: \"\\f0ae\";\n}\n.fa-filter:before {\n content: \"\\f0b0\";\n}\n.fa-briefcase:before {\n content: \"\\f0b1\";\n}\n.fa-arrows-alt:before {\n content: \"\\f0b2\";\n}\n.fa-group:before,\n.fa-users:before {\n content: \"\\f0c0\";\n}\n.fa-chain:before,\n.fa-link:before {\n content: \"\\f0c1\";\n}\n.fa-cloud:before {\n content: \"\\f0c2\";\n}\n.fa-flask:before {\n content: \"\\f0c3\";\n}\n.fa-cut:before,\n.fa-scissors:before {\n content: \"\\f0c4\";\n}\n.fa-copy:before,\n.fa-files-o:before {\n content: \"\\f0c5\";\n}\n.fa-paperclip:before {\n content: \"\\f0c6\";\n}\n.fa-save:before,\n.fa-floppy-o:before {\n content: \"\\f0c7\";\n}\n.fa-square:before {\n content: \"\\f0c8\";\n}\n.fa-navicon:before,\n.fa-reorder:before,\n.fa-bars:before {\n content: \"\\f0c9\";\n}\n.fa-list-ul:before {\n content: \"\\f0ca\";\n}\n.fa-list-ol:before {\n content: \"\\f0cb\";\n}\n.fa-strikethrough:before {\n content: \"\\f0cc\";\n}\n.fa-underline:before {\n content: \"\\f0cd\";\n}\n.fa-table:before {\n content: \"\\f0ce\";\n}\n.fa-magic:before {\n content: \"\\f0d0\";\n}\n.fa-truck:before {\n content: \"\\f0d1\";\n}\n.fa-pinterest:before {\n content: \"\\f0d2\";\n}\n.fa-pinterest-square:before {\n content: \"\\f0d3\";\n}\n.fa-google-plus-square:before {\n content: \"\\f0d4\";\n}\n.fa-google-plus:before {\n content: \"\\f0d5\";\n}\n.fa-money:before {\n content: \"\\f0d6\";\n}\n.fa-caret-down:before {\n content: \"\\f0d7\";\n}\n.fa-caret-up:before {\n content: \"\\f0d8\";\n}\n.fa-caret-left:before {\n content: \"\\f0d9\";\n}\n.fa-caret-right:before {\n content: \"\\f0da\";\n}\n.fa-columns:before {\n content: \"\\f0db\";\n}\n.fa-unsorted:before,\n.fa-sort:before {\n content: \"\\f0dc\";\n}\n.fa-sort-down:before,\n.fa-sort-desc:before {\n content: \"\\f0dd\";\n}\n.fa-sort-up:before,\n.fa-sort-asc:before {\n content: \"\\f0de\";\n}\n.fa-envelope:before {\n content: \"\\f0e0\";\n}\n.fa-linkedin:before {\n content: \"\\f0e1\";\n}\n.fa-rotate-left:before,\n.fa-undo:before {\n content: \"\\f0e2\";\n}\n.fa-legal:before,\n.fa-gavel:before {\n content: \"\\f0e3\";\n}\n.fa-dashboard:before,\n.fa-tachometer:before {\n content: \"\\f0e4\";\n}\n.fa-comment-o:before {\n content: \"\\f0e5\";\n}\n.fa-comments-o:before {\n content: \"\\f0e6\";\n}\n.fa-flash:before,\n.fa-bolt:before {\n content: \"\\f0e7\";\n}\n.fa-sitemap:before {\n content: \"\\f0e8\";\n}\n.fa-umbrella:before {\n content: \"\\f0e9\";\n}\n.fa-paste:before,\n.fa-clipboard:before {\n content: \"\\f0ea\";\n}\n.fa-lightbulb-o:before {\n content: \"\\f0eb\";\n}\n.fa-exchange:before {\n content: \"\\f0ec\";\n}\n.fa-cloud-download:before {\n content: \"\\f0ed\";\n}\n.fa-cloud-upload:before {\n content: \"\\f0ee\";\n}\n.fa-user-md:before {\n content: \"\\f0f0\";\n}\n.fa-stethoscope:before {\n content: \"\\f0f1\";\n}\n.fa-suitcase:before {\n content: \"\\f0f2\";\n}\n.fa-bell-o:before {\n content: \"\\f0a2\";\n}\n.fa-coffee:before {\n content: \"\\f0f4\";\n}\n.fa-cutlery:before {\n content: \"\\f0f5\";\n}\n.fa-file-text-o:before {\n content: \"\\f0f6\";\n}\n.fa-building-o:before {\n content: \"\\f0f7\";\n}\n.fa-hospital-o:before {\n content: \"\\f0f8\";\n}\n.fa-ambulance:before {\n content: \"\\f0f9\";\n}\n.fa-medkit:before {\n content: \"\\f0fa\";\n}\n.fa-fighter-jet:before {\n content: \"\\f0fb\";\n}\n.fa-beer:before {\n content: \"\\f0fc\";\n}\n.fa-h-square:before {\n content: \"\\f0fd\";\n}\n.fa-plus-square:before {\n content: \"\\f0fe\";\n}\n.fa-angle-double-left:before {\n content: \"\\f100\";\n}\n.fa-angle-double-right:before {\n content: \"\\f101\";\n}\n.fa-angle-double-up:before {\n content: \"\\f102\";\n}\n.fa-angle-double-down:before {\n content: \"\\f103\";\n}\n.fa-angle-left:before {\n content: \"\\f104\";\n}\n.fa-angle-right:before {\n content: \"\\f105\";\n}\n.fa-angle-up:before {\n content: \"\\f106\";\n}\n.fa-angle-down:before {\n content: \"\\f107\";\n}\n.fa-desktop:before {\n content: \"\\f108\";\n}\n.fa-laptop:before {\n content: \"\\f109\";\n}\n.fa-tablet:before {\n content: \"\\f10a\";\n}\n.fa-mobile-phone:before,\n.fa-mobile:before {\n content: \"\\f10b\";\n}\n.fa-circle-o:before {\n content: \"\\f10c\";\n}\n.fa-quote-left:before {\n content: \"\\f10d\";\n}\n.fa-quote-right:before {\n content: \"\\f10e\";\n}\n.fa-spinner:before {\n content: \"\\f110\";\n}\n.fa-circle:before {\n content: \"\\f111\";\n}\n.fa-mail-reply:before,\n.fa-reply:before {\n content: \"\\f112\";\n}\n.fa-github-alt:before {\n content: \"\\f113\";\n}\n.fa-folder-o:before {\n content: \"\\f114\";\n}\n.fa-folder-open-o:before {\n content: \"\\f115\";\n}\n.fa-smile-o:before {\n content: \"\\f118\";\n}\n.fa-frown-o:before {\n content: \"\\f119\";\n}\n.fa-meh-o:before {\n content: \"\\f11a\";\n}\n.fa-gamepad:before {\n content: \"\\f11b\";\n}\n.fa-keyboard-o:before {\n content: \"\\f11c\";\n}\n.fa-flag-o:before {\n content: \"\\f11d\";\n}\n.fa-flag-checkered:before {\n content: \"\\f11e\";\n}\n.fa-terminal:before {\n content: \"\\f120\";\n}\n.fa-code:before {\n content: \"\\f121\";\n}\n.fa-mail-reply-all:before,\n.fa-reply-all:before {\n content: \"\\f122\";\n}\n.fa-star-half-empty:before,\n.fa-star-half-full:before,\n.fa-star-half-o:before {\n content: \"\\f123\";\n}\n.fa-location-arrow:before {\n content: \"\\f124\";\n}\n.fa-crop:before {\n content: \"\\f125\";\n}\n.fa-code-fork:before {\n content: \"\\f126\";\n}\n.fa-unlink:before,\n.fa-chain-broken:before {\n content: \"\\f127\";\n}\n.fa-question:before {\n content: \"\\f128\";\n}\n.fa-info:before {\n content: \"\\f129\";\n}\n.fa-exclamation:before {\n content: \"\\f12a\";\n}\n.fa-superscript:before {\n content: \"\\f12b\";\n}\n.fa-subscript:before {\n content: \"\\f12c\";\n}\n.fa-eraser:before {\n content: \"\\f12d\";\n}\n.fa-puzzle-piece:before {\n content: \"\\f12e\";\n}\n.fa-microphone:before {\n content: \"\\f130\";\n}\n.fa-microphone-slash:before {\n content: \"\\f131\";\n}\n.fa-shield:before {\n content: \"\\f132\";\n}\n.fa-calendar-o:before {\n content: \"\\f133\";\n}\n.fa-fire-extinguisher:before {\n content: \"\\f134\";\n}\n.fa-rocket:before {\n content: \"\\f135\";\n}\n.fa-maxcdn:before {\n content: \"\\f136\";\n}\n.fa-chevron-circle-left:before {\n content: \"\\f137\";\n}\n.fa-chevron-circle-right:before {\n content: \"\\f138\";\n}\n.fa-chevron-circle-up:before {\n content: \"\\f139\";\n}\n.fa-chevron-circle-down:before {\n content: \"\\f13a\";\n}\n.fa-html5:before {\n content: \"\\f13b\";\n}\n.fa-css3:before {\n content: \"\\f13c\";\n}\n.fa-anchor:before {\n content: \"\\f13d\";\n}\n.fa-unlock-alt:before {\n content: \"\\f13e\";\n}\n.fa-bullseye:before {\n content: \"\\f140\";\n}\n.fa-ellipsis-h:before {\n content: \"\\f141\";\n}\n.fa-ellipsis-v:before {\n content: \"\\f142\";\n}\n.fa-rss-square:before {\n content: \"\\f143\";\n}\n.fa-play-circle:before {\n content: \"\\f144\";\n}\n.fa-ticket:before {\n content: \"\\f145\";\n}\n.fa-minus-square:before {\n content: \"\\f146\";\n}\n.fa-minus-square-o:before {\n content: \"\\f147\";\n}\n.fa-level-up:before {\n content: \"\\f148\";\n}\n.fa-level-down:before {\n content: \"\\f149\";\n}\n.fa-check-square:before {\n content: \"\\f14a\";\n}\n.fa-pencil-square:before {\n content: \"\\f14b\";\n}\n.fa-external-link-square:before {\n content: \"\\f14c\";\n}\n.fa-share-square:before {\n content: \"\\f14d\";\n}\n.fa-compass:before {\n content: \"\\f14e\";\n}\n.fa-toggle-down:before,\n.fa-caret-square-o-down:before {\n content: \"\\f150\";\n}\n.fa-toggle-up:before,\n.fa-caret-square-o-up:before {\n content: \"\\f151\";\n}\n.fa-toggle-right:before,\n.fa-caret-square-o-right:before {\n content: \"\\f152\";\n}\n.fa-euro:before,\n.fa-eur:before {\n content: \"\\f153\";\n}\n.fa-gbp:before {\n content: \"\\f154\";\n}\n.fa-dollar:before,\n.fa-usd:before {\n content: \"\\f155\";\n}\n.fa-rupee:before,\n.fa-inr:before {\n content: \"\\f156\";\n}\n.fa-cny:before,\n.fa-rmb:before,\n.fa-yen:before,\n.fa-jpy:before {\n content: \"\\f157\";\n}\n.fa-ruble:before,\n.fa-rouble:before,\n.fa-rub:before {\n content: \"\\f158\";\n}\n.fa-won:before,\n.fa-krw:before {\n content: \"\\f159\";\n}\n.fa-bitcoin:before,\n.fa-btc:before {\n content: \"\\f15a\";\n}\n.fa-file:before {\n content: \"\\f15b\";\n}\n.fa-file-text:before {\n content: \"\\f15c\";\n}\n.fa-sort-alpha-asc:before {\n content: \"\\f15d\";\n}\n.fa-sort-alpha-desc:before {\n content: \"\\f15e\";\n}\n.fa-sort-amount-asc:before {\n content: \"\\f160\";\n}\n.fa-sort-amount-desc:before {\n content: \"\\f161\";\n}\n.fa-sort-numeric-asc:before {\n content: \"\\f162\";\n}\n.fa-sort-numeric-desc:before {\n content: \"\\f163\";\n}\n.fa-thumbs-up:before {\n content: \"\\f164\";\n}\n.fa-thumbs-down:before {\n content: \"\\f165\";\n}\n.fa-youtube-square:before {\n content: \"\\f166\";\n}\n.fa-youtube:before {\n content: \"\\f167\";\n}\n.fa-xing:before {\n content: \"\\f168\";\n}\n.fa-xing-square:before {\n content: \"\\f169\";\n}\n.fa-youtube-play:before {\n content: \"\\f16a\";\n}\n.fa-dropbox:before {\n content: \"\\f16b\";\n}\n.fa-stack-overflow:before {\n content: \"\\f16c\";\n}\n.fa-instagram:before {\n content: \"\\f16d\";\n}\n.fa-flickr:before {\n content: \"\\f16e\";\n}\n.fa-adn:before {\n content: \"\\f170\";\n}\n.fa-bitbucket:before {\n content: \"\\f171\";\n}\n.fa-bitbucket-square:before {\n content: \"\\f172\";\n}\n.fa-tumblr:before {\n content: \"\\f173\";\n}\n.fa-tumblr-square:before {\n content: \"\\f174\";\n}\n.fa-long-arrow-down:before {\n content: \"\\f175\";\n}\n.fa-long-arrow-up:before {\n content: \"\\f176\";\n}\n.fa-long-arrow-left:before {\n content: \"\\f177\";\n}\n.fa-long-arrow-right:before {\n content: \"\\f178\";\n}\n.fa-apple:before {\n content: \"\\f179\";\n}\n.fa-windows:before {\n content: \"\\f17a\";\n}\n.fa-android:before {\n content: \"\\f17b\";\n}\n.fa-linux:before {\n content: \"\\f17c\";\n}\n.fa-dribbble:before {\n content: \"\\f17d\";\n}\n.fa-skype:before {\n content: \"\\f17e\";\n}\n.fa-foursquare:before {\n content: \"\\f180\";\n}\n.fa-trello:before {\n content: \"\\f181\";\n}\n.fa-female:before {\n content: \"\\f182\";\n}\n.fa-male:before {\n content: \"\\f183\";\n}\n.fa-gittip:before,\n.fa-gratipay:before {\n content: \"\\f184\";\n}\n.fa-sun-o:before {\n content: \"\\f185\";\n}\n.fa-moon-o:before {\n content: \"\\f186\";\n}\n.fa-archive:before {\n content: \"\\f187\";\n}\n.fa-bug:before {\n content: \"\\f188\";\n}\n.fa-vk:before {\n content: \"\\f189\";\n}\n.fa-weibo:before {\n content: \"\\f18a\";\n}\n.fa-renren:before {\n content: \"\\f18b\";\n}\n.fa-pagelines:before {\n content: \"\\f18c\";\n}\n.fa-stack-exchange:before {\n content: \"\\f18d\";\n}\n.fa-arrow-circle-o-right:before {\n content: \"\\f18e\";\n}\n.fa-arrow-circle-o-left:before {\n content: \"\\f190\";\n}\n.fa-toggle-left:before,\n.fa-caret-square-o-left:before {\n content: \"\\f191\";\n}\n.fa-dot-circle-o:before {\n content: \"\\f192\";\n}\n.fa-wheelchair:before {\n content: \"\\f193\";\n}\n.fa-vimeo-square:before {\n content: \"\\f194\";\n}\n.fa-turkish-lira:before,\n.fa-try:before {\n content: \"\\f195\";\n}\n.fa-plus-square-o:before {\n content: \"\\f196\";\n}\n.fa-space-shuttle:before {\n content: \"\\f197\";\n}\n.fa-slack:before {\n content: \"\\f198\";\n}\n.fa-envelope-square:before {\n content: \"\\f199\";\n}\n.fa-wordpress:before {\n content: \"\\f19a\";\n}\n.fa-openid:before {\n content: \"\\f19b\";\n}\n.fa-institution:before,\n.fa-bank:before,\n.fa-university:before {\n content: \"\\f19c\";\n}\n.fa-mortar-board:before,\n.fa-graduation-cap:before {\n content: \"\\f19d\";\n}\n.fa-yahoo:before {\n content: \"\\f19e\";\n}\n.fa-google:before {\n content: \"\\f1a0\";\n}\n.fa-reddit:before {\n content: \"\\f1a1\";\n}\n.fa-reddit-square:before {\n content: \"\\f1a2\";\n}\n.fa-stumbleupon-circle:before {\n content: \"\\f1a3\";\n}\n.fa-stumbleupon:before {\n content: \"\\f1a4\";\n}\n.fa-delicious:before {\n content: \"\\f1a5\";\n}\n.fa-digg:before {\n content: \"\\f1a6\";\n}\n.fa-pied-piper-pp:before {\n content: \"\\f1a7\";\n}\n.fa-pied-piper-alt:before {\n content: \"\\f1a8\";\n}\n.fa-drupal:before {\n content: \"\\f1a9\";\n}\n.fa-joomla:before {\n content: \"\\f1aa\";\n}\n.fa-language:before {\n content: \"\\f1ab\";\n}\n.fa-fax:before {\n content: \"\\f1ac\";\n}\n.fa-building:before {\n content: \"\\f1ad\";\n}\n.fa-child:before {\n content: \"\\f1ae\";\n}\n.fa-paw:before {\n content: \"\\f1b0\";\n}\n.fa-spoon:before {\n content: \"\\f1b1\";\n}\n.fa-cube:before {\n content: \"\\f1b2\";\n}\n.fa-cubes:before {\n content: \"\\f1b3\";\n}\n.fa-behance:before {\n content: \"\\f1b4\";\n}\n.fa-behance-square:before {\n content: \"\\f1b5\";\n}\n.fa-steam:before {\n content: \"\\f1b6\";\n}\n.fa-steam-square:before {\n content: \"\\f1b7\";\n}\n.fa-recycle:before {\n content: \"\\f1b8\";\n}\n.fa-automobile:before,\n.fa-car:before {\n content: \"\\f1b9\";\n}\n.fa-cab:before,\n.fa-taxi:before {\n content: \"\\f1ba\";\n}\n.fa-tree:before {\n content: \"\\f1bb\";\n}\n.fa-spotify:before {\n content: \"\\f1bc\";\n}\n.fa-deviantart:before {\n content: \"\\f1bd\";\n}\n.fa-soundcloud:before {\n content: \"\\f1be\";\n}\n.fa-database:before {\n content: \"\\f1c0\";\n}\n.fa-file-pdf-o:before {\n content: \"\\f1c1\";\n}\n.fa-file-word-o:before {\n content: \"\\f1c2\";\n}\n.fa-file-excel-o:before {\n content: \"\\f1c3\";\n}\n.fa-file-powerpoint-o:before {\n content: \"\\f1c4\";\n}\n.fa-file-photo-o:before,\n.fa-file-picture-o:before,\n.fa-file-image-o:before {\n content: \"\\f1c5\";\n}\n.fa-file-zip-o:before,\n.fa-file-archive-o:before {\n content: \"\\f1c6\";\n}\n.fa-file-sound-o:before,\n.fa-file-audio-o:before {\n content: \"\\f1c7\";\n}\n.fa-file-movie-o:before,\n.fa-file-video-o:before {\n content: \"\\f1c8\";\n}\n.fa-file-code-o:before {\n content: \"\\f1c9\";\n}\n.fa-vine:before {\n content: \"\\f1ca\";\n}\n.fa-codepen:before {\n content: \"\\f1cb\";\n}\n.fa-jsfiddle:before {\n content: \"\\f1cc\";\n}\n.fa-life-bouy:before,\n.fa-life-buoy:before,\n.fa-life-saver:before,\n.fa-support:before,\n.fa-life-ring:before {\n content: \"\\f1cd\";\n}\n.fa-circle-o-notch:before {\n content: \"\\f1ce\";\n}\n.fa-ra:before,\n.fa-resistance:before,\n.fa-rebel:before {\n content: \"\\f1d0\";\n}\n.fa-ge:before,\n.fa-empire:before {\n content: \"\\f1d1\";\n}\n.fa-git-square:before {\n content: \"\\f1d2\";\n}\n.fa-git:before {\n content: \"\\f1d3\";\n}\n.fa-y-combinator-square:before,\n.fa-yc-square:before,\n.fa-hacker-news:before {\n content: \"\\f1d4\";\n}\n.fa-tencent-weibo:before {\n content: \"\\f1d5\";\n}\n.fa-qq:before {\n content: \"\\f1d6\";\n}\n.fa-wechat:before,\n.fa-weixin:before {\n content: \"\\f1d7\";\n}\n.fa-send:before,\n.fa-paper-plane:before {\n content: \"\\f1d8\";\n}\n.fa-send-o:before,\n.fa-paper-plane-o:before {\n content: \"\\f1d9\";\n}\n.fa-history:before {\n content: \"\\f1da\";\n}\n.fa-circle-thin:before {\n content: \"\\f1db\";\n}\n.fa-header:before {\n content: \"\\f1dc\";\n}\n.fa-paragraph:before {\n content: \"\\f1dd\";\n}\n.fa-sliders:before {\n content: \"\\f1de\";\n}\n.fa-share-alt:before {\n content: \"\\f1e0\";\n}\n.fa-share-alt-square:before {\n content: \"\\f1e1\";\n}\n.fa-bomb:before {\n content: \"\\f1e2\";\n}\n.fa-soccer-ball-o:before,\n.fa-futbol-o:before {\n content: \"\\f1e3\";\n}\n.fa-tty:before {\n content: \"\\f1e4\";\n}\n.fa-binoculars:before {\n content: \"\\f1e5\";\n}\n.fa-plug:before {\n content: \"\\f1e6\";\n}\n.fa-slideshare:before {\n content: \"\\f1e7\";\n}\n.fa-twitch:before {\n content: \"\\f1e8\";\n}\n.fa-yelp:before {\n content: \"\\f1e9\";\n}\n.fa-newspaper-o:before {\n content: \"\\f1ea\";\n}\n.fa-wifi:before {\n content: \"\\f1eb\";\n}\n.fa-calculator:before {\n content: \"\\f1ec\";\n}\n.fa-paypal:before {\n content: \"\\f1ed\";\n}\n.fa-google-wallet:before {\n content: \"\\f1ee\";\n}\n.fa-cc-visa:before {\n content: \"\\f1f0\";\n}\n.fa-cc-mastercard:before {\n content: \"\\f1f1\";\n}\n.fa-cc-discover:before {\n content: \"\\f1f2\";\n}\n.fa-cc-amex:before {\n content: \"\\f1f3\";\n}\n.fa-cc-paypal:before {\n content: \"\\f1f4\";\n}\n.fa-cc-stripe:before {\n content: \"\\f1f5\";\n}\n.fa-bell-slash:before {\n content: \"\\f1f6\";\n}\n.fa-bell-slash-o:before {\n content: \"\\f1f7\";\n}\n.fa-trash:before {\n content: \"\\f1f8\";\n}\n.fa-copyright:before {\n content: \"\\f1f9\";\n}\n.fa-at:before {\n content: \"\\f1fa\";\n}\n.fa-eyedropper:before {\n content: \"\\f1fb\";\n}\n.fa-paint-brush:before {\n content: \"\\f1fc\";\n}\n.fa-birthday-cake:before {\n content: \"\\f1fd\";\n}\n.fa-area-chart:before {\n content: \"\\f1fe\";\n}\n.fa-pie-chart:before {\n content: \"\\f200\";\n}\n.fa-line-chart:before {\n content: \"\\f201\";\n}\n.fa-lastfm:before {\n content: \"\\f202\";\n}\n.fa-lastfm-square:before {\n content: \"\\f203\";\n}\n.fa-toggle-off:before {\n content: \"\\f204\";\n}\n.fa-toggle-on:before {\n content: \"\\f205\";\n}\n.fa-bicycle:before {\n content: \"\\f206\";\n}\n.fa-bus:before {\n content: \"\\f207\";\n}\n.fa-ioxhost:before {\n content: \"\\f208\";\n}\n.fa-angellist:before {\n content: \"\\f209\";\n}\n.fa-cc:before {\n content: \"\\f20a\";\n}\n.fa-shekel:before,\n.fa-sheqel:before,\n.fa-ils:before {\n content: \"\\f20b\";\n}\n.fa-meanpath:before {\n content: \"\\f20c\";\n}\n.fa-buysellads:before {\n content: \"\\f20d\";\n}\n.fa-connectdevelop:before {\n content: \"\\f20e\";\n}\n.fa-dashcube:before {\n content: \"\\f210\";\n}\n.fa-forumbee:before {\n content: \"\\f211\";\n}\n.fa-leanpub:before {\n content: \"\\f212\";\n}\n.fa-sellsy:before {\n content: \"\\f213\";\n}\n.fa-shirtsinbulk:before {\n content: \"\\f214\";\n}\n.fa-simplybuilt:before {\n content: \"\\f215\";\n}\n.fa-skyatlas:before {\n content: \"\\f216\";\n}\n.fa-cart-plus:before {\n content: \"\\f217\";\n}\n.fa-cart-arrow-down:before {\n content: \"\\f218\";\n}\n.fa-diamond:before {\n content: \"\\f219\";\n}\n.fa-ship:before {\n content: \"\\f21a\";\n}\n.fa-user-secret:before {\n content: \"\\f21b\";\n}\n.fa-motorcycle:before {\n content: \"\\f21c\";\n}\n.fa-street-view:before {\n content: \"\\f21d\";\n}\n.fa-heartbeat:before {\n content: \"\\f21e\";\n}\n.fa-venus:before {\n content: \"\\f221\";\n}\n.fa-mars:before {\n content: \"\\f222\";\n}\n.fa-mercury:before {\n content: \"\\f223\";\n}\n.fa-intersex:before,\n.fa-transgender:before {\n content: \"\\f224\";\n}\n.fa-transgender-alt:before {\n content: \"\\f225\";\n}\n.fa-venus-double:before {\n content: \"\\f226\";\n}\n.fa-mars-double:before {\n content: \"\\f227\";\n}\n.fa-venus-mars:before {\n content: \"\\f228\";\n}\n.fa-mars-stroke:before {\n content: \"\\f229\";\n}\n.fa-mars-stroke-v:before {\n content: \"\\f22a\";\n}\n.fa-mars-stroke-h:before {\n content: \"\\f22b\";\n}\n.fa-neuter:before {\n content: \"\\f22c\";\n}\n.fa-genderless:before {\n content: \"\\f22d\";\n}\n.fa-facebook-official:before {\n content: \"\\f230\";\n}\n.fa-pinterest-p:before {\n content: \"\\f231\";\n}\n.fa-whatsapp:before {\n content: \"\\f232\";\n}\n.fa-server:before {\n content: \"\\f233\";\n}\n.fa-user-plus:before {\n content: \"\\f234\";\n}\n.fa-user-times:before {\n content: \"\\f235\";\n}\n.fa-hotel:before,\n.fa-bed:before {\n content: \"\\f236\";\n}\n.fa-viacoin:before {\n content: \"\\f237\";\n}\n.fa-train:before {\n content: \"\\f238\";\n}\n.fa-subway:before {\n content: \"\\f239\";\n}\n.fa-medium:before {\n content: \"\\f23a\";\n}\n.fa-yc:before,\n.fa-y-combinator:before {\n content: \"\\f23b\";\n}\n.fa-optin-monster:before {\n content: \"\\f23c\";\n}\n.fa-opencart:before {\n content: \"\\f23d\";\n}\n.fa-expeditedssl:before {\n content: \"\\f23e\";\n}\n.fa-battery-4:before,\n.fa-battery:before,\n.fa-battery-full:before {\n content: \"\\f240\";\n}\n.fa-battery-3:before,\n.fa-battery-three-quarters:before {\n content: \"\\f241\";\n}\n.fa-battery-2:before,\n.fa-battery-half:before {\n content: \"\\f242\";\n}\n.fa-battery-1:before,\n.fa-battery-quarter:before {\n content: \"\\f243\";\n}\n.fa-battery-0:before,\n.fa-battery-empty:before {\n content: \"\\f244\";\n}\n.fa-mouse-pointer:before {\n content: \"\\f245\";\n}\n.fa-i-cursor:before {\n content: \"\\f246\";\n}\n.fa-object-group:before {\n content: \"\\f247\";\n}\n.fa-object-ungroup:before {\n content: \"\\f248\";\n}\n.fa-sticky-note:before {\n content: \"\\f249\";\n}\n.fa-sticky-note-o:before {\n content: \"\\f24a\";\n}\n.fa-cc-jcb:before {\n content: \"\\f24b\";\n}\n.fa-cc-diners-club:before {\n content: \"\\f24c\";\n}\n.fa-clone:before {\n content: \"\\f24d\";\n}\n.fa-balance-scale:before {\n content: \"\\f24e\";\n}\n.fa-hourglass-o:before {\n content: \"\\f250\";\n}\n.fa-hourglass-1:before,\n.fa-hourglass-start:before {\n content: \"\\f251\";\n}\n.fa-hourglass-2:before,\n.fa-hourglass-half:before {\n content: \"\\f252\";\n}\n.fa-hourglass-3:before,\n.fa-hourglass-end:before {\n content: \"\\f253\";\n}\n.fa-hourglass:before {\n content: \"\\f254\";\n}\n.fa-hand-grab-o:before,\n.fa-hand-rock-o:before {\n content: \"\\f255\";\n}\n.fa-hand-stop-o:before,\n.fa-hand-paper-o:before {\n content: \"\\f256\";\n}\n.fa-hand-scissors-o:before {\n content: \"\\f257\";\n}\n.fa-hand-lizard-o:before {\n content: \"\\f258\";\n}\n.fa-hand-spock-o:before {\n content: \"\\f259\";\n}\n.fa-hand-pointer-o:before {\n content: \"\\f25a\";\n}\n.fa-hand-peace-o:before {\n content: \"\\f25b\";\n}\n.fa-trademark:before {\n content: \"\\f25c\";\n}\n.fa-registered:before {\n content: \"\\f25d\";\n}\n.fa-creative-commons:before {\n content: \"\\f25e\";\n}\n.fa-gg:before {\n content: \"\\f260\";\n}\n.fa-gg-circle:before {\n content: \"\\f261\";\n}\n.fa-tripadvisor:before {\n content: \"\\f262\";\n}\n.fa-odnoklassniki:before {\n content: \"\\f263\";\n}\n.fa-odnoklassniki-square:before {\n content: \"\\f264\";\n}\n.fa-get-pocket:before {\n content: \"\\f265\";\n}\n.fa-wikipedia-w:before {\n content: \"\\f266\";\n}\n.fa-safari:before {\n content: \"\\f267\";\n}\n.fa-chrome:before {\n content: \"\\f268\";\n}\n.fa-firefox:before {\n content: \"\\f269\";\n}\n.fa-opera:before {\n content: \"\\f26a\";\n}\n.fa-internet-explorer:before {\n content: \"\\f26b\";\n}\n.fa-tv:before,\n.fa-television:before {\n content: \"\\f26c\";\n}\n.fa-contao:before {\n content: \"\\f26d\";\n}\n.fa-500px:before {\n content: \"\\f26e\";\n}\n.fa-amazon:before {\n content: \"\\f270\";\n}\n.fa-calendar-plus-o:before {\n content: \"\\f271\";\n}\n.fa-calendar-minus-o:before {\n content: \"\\f272\";\n}\n.fa-calendar-times-o:before {\n content: \"\\f273\";\n}\n.fa-calendar-check-o:before {\n content: \"\\f274\";\n}\n.fa-industry:before {\n content: \"\\f275\";\n}\n.fa-map-pin:before {\n content: \"\\f276\";\n}\n.fa-map-signs:before {\n content: \"\\f277\";\n}\n.fa-map-o:before {\n content: \"\\f278\";\n}\n.fa-map:before {\n content: \"\\f279\";\n}\n.fa-commenting:before {\n content: \"\\f27a\";\n}\n.fa-commenting-o:before {\n content: \"\\f27b\";\n}\n.fa-houzz:before {\n content: \"\\f27c\";\n}\n.fa-vimeo:before {\n content: \"\\f27d\";\n}\n.fa-black-tie:before {\n content: \"\\f27e\";\n}\n.fa-fonticons:before {\n content: \"\\f280\";\n}\n.fa-reddit-alien:before {\n content: \"\\f281\";\n}\n.fa-edge:before {\n content: \"\\f282\";\n}\n.fa-credit-card-alt:before {\n content: \"\\f283\";\n}\n.fa-codiepie:before {\n content: \"\\f284\";\n}\n.fa-modx:before {\n content: \"\\f285\";\n}\n.fa-fort-awesome:before {\n content: \"\\f286\";\n}\n.fa-usb:before {\n content: \"\\f287\";\n}\n.fa-product-hunt:before {\n content: \"\\f288\";\n}\n.fa-mixcloud:before {\n content: \"\\f289\";\n}\n.fa-scribd:before {\n content: \"\\f28a\";\n}\n.fa-pause-circle:before {\n content: \"\\f28b\";\n}\n.fa-pause-circle-o:before {\n content: \"\\f28c\";\n}\n.fa-stop-circle:before {\n content: \"\\f28d\";\n}\n.fa-stop-circle-o:before {\n content: \"\\f28e\";\n}\n.fa-shopping-bag:before {\n content: \"\\f290\";\n}\n.fa-shopping-basket:before {\n content: \"\\f291\";\n}\n.fa-hashtag:before {\n content: \"\\f292\";\n}\n.fa-bluetooth:before {\n content: \"\\f293\";\n}\n.fa-bluetooth-b:before {\n content: \"\\f294\";\n}\n.fa-percent:before {\n content: \"\\f295\";\n}\n.fa-gitlab:before {\n content: \"\\f296\";\n}\n.fa-wpbeginner:before {\n content: \"\\f297\";\n}\n.fa-wpforms:before {\n content: \"\\f298\";\n}\n.fa-envira:before {\n content: \"\\f299\";\n}\n.fa-universal-access:before {\n content: \"\\f29a\";\n}\n.fa-wheelchair-alt:before {\n content: \"\\f29b\";\n}\n.fa-question-circle-o:before {\n content: \"\\f29c\";\n}\n.fa-blind:before {\n content: \"\\f29d\";\n}\n.fa-audio-description:before {\n content: \"\\f29e\";\n}\n.fa-volume-control-phone:before {\n content: \"\\f2a0\";\n}\n.fa-braille:before {\n content: \"\\f2a1\";\n}\n.fa-assistive-listening-systems:before {\n content: \"\\f2a2\";\n}\n.fa-asl-interpreting:before,\n.fa-american-sign-language-interpreting:before {\n content: \"\\f2a3\";\n}\n.fa-deafness:before,\n.fa-hard-of-hearing:before,\n.fa-deaf:before {\n content: \"\\f2a4\";\n}\n.fa-glide:before {\n content: \"\\f2a5\";\n}\n.fa-glide-g:before {\n content: \"\\f2a6\";\n}\n.fa-signing:before,\n.fa-sign-language:before {\n content: \"\\f2a7\";\n}\n.fa-low-vision:before {\n content: \"\\f2a8\";\n}\n.fa-viadeo:before {\n content: \"\\f2a9\";\n}\n.fa-viadeo-square:before {\n content: \"\\f2aa\";\n}\n.fa-snapchat:before {\n content: \"\\f2ab\";\n}\n.fa-snapchat-ghost:before {\n content: \"\\f2ac\";\n}\n.fa-snapchat-square:before {\n content: \"\\f2ad\";\n}\n.fa-pied-piper:before {\n content: \"\\f2ae\";\n}\n.fa-first-order:before {\n content: \"\\f2b0\";\n}\n.fa-yoast:before {\n content: \"\\f2b1\";\n}\n.fa-themeisle:before {\n content: \"\\f2b2\";\n}\n.fa-google-plus-circle:before,\n.fa-google-plus-official:before {\n content: \"\\f2b3\";\n}\n.fa-fa:before,\n.fa-font-awesome:before {\n content: \"\\f2b4\";\n}\n.fa-handshake-o:before {\n content: \"\\f2b5\";\n}\n.fa-envelope-open:before {\n content: \"\\f2b6\";\n}\n.fa-envelope-open-o:before {\n content: \"\\f2b7\";\n}\n.fa-linode:before {\n content: \"\\f2b8\";\n}\n.fa-address-book:before {\n content: \"\\f2b9\";\n}\n.fa-address-book-o:before {\n content: \"\\f2ba\";\n}\n.fa-vcard:before,\n.fa-address-card:before {\n content: \"\\f2bb\";\n}\n.fa-vcard-o:before,\n.fa-address-card-o:before {\n content: \"\\f2bc\";\n}\n.fa-user-circle:before {\n content: \"\\f2bd\";\n}\n.fa-user-circle-o:before {\n content: \"\\f2be\";\n}\n.fa-user-o:before {\n content: \"\\f2c0\";\n}\n.fa-id-badge:before {\n content: \"\\f2c1\";\n}\n.fa-drivers-license:before,\n.fa-id-card:before {\n content: \"\\f2c2\";\n}\n.fa-drivers-license-o:before,\n.fa-id-card-o:before {\n content: \"\\f2c3\";\n}\n.fa-quora:before {\n content: \"\\f2c4\";\n}\n.fa-free-code-camp:before {\n content: \"\\f2c5\";\n}\n.fa-telegram:before {\n content: \"\\f2c6\";\n}\n.fa-thermometer-4:before,\n.fa-thermometer:before,\n.fa-thermometer-full:before {\n content: \"\\f2c7\";\n}\n.fa-thermometer-3:before,\n.fa-thermometer-three-quarters:before {\n content: \"\\f2c8\";\n}\n.fa-thermometer-2:before,\n.fa-thermometer-half:before {\n content: \"\\f2c9\";\n}\n.fa-thermometer-1:before,\n.fa-thermometer-quarter:before {\n content: \"\\f2ca\";\n}\n.fa-thermometer-0:before,\n.fa-thermometer-empty:before {\n content: \"\\f2cb\";\n}\n.fa-shower:before {\n content: \"\\f2cc\";\n}\n.fa-bathtub:before,\n.fa-s15:before,\n.fa-bath:before {\n content: \"\\f2cd\";\n}\n.fa-podcast:before {\n content: \"\\f2ce\";\n}\n.fa-window-maximize:before {\n content: \"\\f2d0\";\n}\n.fa-window-minimize:before {\n content: \"\\f2d1\";\n}\n.fa-window-restore:before {\n content: \"\\f2d2\";\n}\n.fa-times-rectangle:before,\n.fa-window-close:before {\n content: \"\\f2d3\";\n}\n.fa-times-rectangle-o:before,\n.fa-window-close-o:before {\n content: \"\\f2d4\";\n}\n.fa-bandcamp:before {\n content: \"\\f2d5\";\n}\n.fa-grav:before {\n content: \"\\f2d6\";\n}\n.fa-etsy:before {\n content: \"\\f2d7\";\n}\n.fa-imdb:before {\n content: \"\\f2d8\";\n}\n.fa-ravelry:before {\n content: \"\\f2d9\";\n}\n.fa-eercast:before {\n content: \"\\f2da\";\n}\n.fa-microchip:before {\n content: \"\\f2db\";\n}\n.fa-snowflake-o:before {\n content: \"\\f2dc\";\n}\n.fa-superpowers:before {\n content: \"\\f2dd\";\n}\n.fa-wpexplorer:before {\n content: \"\\f2de\";\n}\n.fa-meetup:before {\n content: \"\\f2e0\";\n}\n.sr-only {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n border: 0;\n}\n.sr-only-focusable:active,\n.sr-only-focusable:focus {\n position: static;\n width: auto;\n height: auto;\n margin: 0;\n overflow: visible;\n clip: auto;\n}\n"],"sourceRoot":""} \ No newline at end of file diff --git a/priv/static/packs/flavours/vanilla/settings.js b/priv/static/packs/flavours/vanilla/settings.js deleted file mode 100644 index 21cfd13f4..000000000 Binary files a/priv/static/packs/flavours/vanilla/settings.js and /dev/null differ diff --git a/priv/static/packs/flavours/vanilla/settings.js.LICENSE.txt b/priv/static/packs/flavours/vanilla/settings.js.LICENSE.txt deleted file mode 100644 index 2196b2def..000000000 --- a/priv/static/packs/flavours/vanilla/settings.js.LICENSE.txt +++ /dev/null @@ -1,41 +0,0 @@ -/* -object-assign -(c) Sindre Sorhus -@license MIT -*/ - -/** @license React v0.19.0 - * scheduler.production.min.js - * - * Copyright (c) Facebook, Inc. and its affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */ - -/** @license React v16.12.0 - * react-is.production.min.js - * - * Copyright (c) Facebook, Inc. and its affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */ - -/** @license React v16.13.0 - * react-dom.production.min.js - * - * Copyright (c) Facebook, Inc. and its affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */ - -/** @license React v16.13.1 - * react.production.min.js - * - * Copyright (c) Facebook, Inc. and its affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */ diff --git a/priv/static/packs/flavours/vanilla/settings.js.map b/priv/static/packs/flavours/vanilla/settings.js.map deleted file mode 100644 index 92c015611..000000000 Binary files a/priv/static/packs/flavours/vanilla/settings.js.map and /dev/null differ diff --git a/priv/static/packs/flavours/vanilla/share.css b/priv/static/packs/flavours/vanilla/share.css deleted file mode 100644 index 0af4a0be1..000000000 Binary files a/priv/static/packs/flavours/vanilla/share.css and /dev/null differ diff --git a/priv/static/packs/flavours/vanilla/share.css.map b/priv/static/packs/flavours/vanilla/share.css.map deleted file mode 100644 index f6c52c2bd..000000000 --- a/priv/static/packs/flavours/vanilla/share.css.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["webpack:///font-awesome.css","webpack:///./node_modules/font-awesome/css/font-awesome.css"],"names":[],"mappings":"AAAA;;;ECAA,CAMA,WACE,wBACA,4CACA,wSACA,gBACA,kBAEF,IACE,qBACA,6CACA,kBACA,oBACA,mCACA,kCAGF,OACE,uBACA,kBACA,oBAEF,OACE,cAEF,OACE,cAEF,OACE,cAEF,OACE,cAEF,OACE,mBACA,kBAEF,OACE,eACA,yBACA,qBAEF,UACE,kBAEF,OACE,kBACA,mBACA,mBACA,gBACA,kBAEF,aACE,mBAEF,WACE,yBACA,wBACA,mBAEF,cACE,WAEF,eACE,YAEF,iBACE,kBAEF,kBACE,iBAGF,YACE,YAEF,WACE,WAEF,cACE,kBAEF,eACE,iBAEF,SACE,6CACA,qCAEF,UACE,+CACA,uCAEF,2BACE,GAEE,uBAEF,GAEE,0BAGJ,mBACE,GAEE,uBAEF,GAEE,0BAGJ,cACE,sEAGA,wBAEF,eACE,sEAGA,yBAEF,eACE,sEAGA,yBAEF,oBACE,gFAGA,qBAEF,kBACE,gFAGA,qBAEF,gHAKE,gCAEF,UACE,kBACA,qBACA,UACA,WACA,gBACA,sBAEF,0BAEE,kBACA,OACA,WACA,kBAEF,aACE,oBAEF,aACE,cAEF,YACE,WAIF,iBACE,YAEF,iBACE,YAEF,kBACE,YAEF,sBACE,YAEF,iBACE,YAEF,gBACE,YAEF,kBACE,YAEF,gBACE,YAEF,gBACE,YAEF,oBACE,YAEF,cACE,YAEF,mBACE,YAEF,iBACE,YAEF,oDAGE,YAEF,uBACE,YAEF,wBACE,YAEF,qBACE,YAEF,kBACE,YAEF,+BAEE,YAEF,mBACE,YAEF,gBACE,YAEF,kBACE,YAEF,mBACE,YAEF,gBACE,YAEF,oBACE,YAEF,+BACE,YAEF,6BACE,YAEF,iBACE,YAEF,yBACE,YAEF,0CAEE,YAEF,mBACE,YAEF,oBACE,YAEF,gBACE,YAEF,gBACE,YAEF,sBACE,YAEF,sBACE,YAEF,uBACE,YAEF,qBACE,YAEF,kBACE,YAEF,mBACE,YAEF,eACE,YAEF,gBACE,YAEF,gBACE,YAEF,oBACE,YAEF,iBACE,YAEF,kBACE,YAEF,gBACE,YAEF,gBACE,YAEF,kBACE,YAEF,uBACE,YAEF,sBACE,YAEF,sBACE,YAEF,wBACE,YAEF,uBACE,YAEF,yBACE,YAEF,gBACE,YAEF,qCAEE,YAEF,kBACE,YAEF,wBACE,YAEF,uDAGE,YAEF,kBACE,YAEF,sBACE,YAEF,kBACE,YAEF,gBACE,YAEF,2CAEE,YAEF,0BACE,YAEF,0BACE,YAEF,kBACE,YAEF,yBACE,YAEF,yBACE,YAEF,oBACE,YAEF,gBACE,YAEF,iBACE,YAEF,gBACE,YAEF,mBACE,YAEF,wBACE,YAEF,wBACE,YAEF,iBACE,YAEF,wBACE,YAEF,yBACE,YAEF,uBACE,YAEF,wBACE,YAEF,wBACE,YAEF,wBACE,YAEF,2BACE,YAEF,uBACE,YAEF,sBACE,YAEF,0BACE,YAEF,0BACE,YAEF,eACE,YAEF,sBACE,YAEF,uBACE,YAEF,oBACE,YAEF,sBACE,YAEF,yCAEE,YAEF,kBACE,YAEF,oBACE,YAEF,gBACE,YAEF,iBACE,YAEF,oBACE,YAEF,8BACE,YAEF,gBACE,YAEF,gBACE,YAEF,gBACE,YAEF,eACE,YAEF,qBACE,YAEF,mDAEE,YAEF,iBACE,YAEF,oBACE,YAEF,kBACE,YAEF,mBACE,YAEF,kBACE,YAEF,sBACE,YAEF,wBACE,YAEF,mBACE,YAEF,yBACE,YAEF,kBACE,YAEF,uBACE,YAEF,oBACE,YAEF,oBACE,YAEF,4CAEE,YAEF,0BACE,YAEF,2BACE,YAEF,wBACE,YAEF,eACE,YAEF,iCAEE,YAEF,oBACE,YAEF,uBACE,YAEF,yBACE,YAEF,qBACE,YAEF,mBACE,YAEF,oBACE,YAEF,2BACE,YAEF,sBACE,YAEF,yBACE,YAEF,mBACE,YAEF,kBACE,YAEF,yBACE,YAEF,kBACE,YAEF,mBACE,YAEF,iBACE,YAEF,oBACE,YAEF,sBACE,YAEF,wBACE,YAEF,mBACE,YAEF,0CAEE,YAEF,kBACE,YAEF,kBACE,YAEF,uBACE,YAEF,+BAEE,YAEF,iBACE,YAEF,oBACE,YAEF,gBACE,YAEF,uBACE,YAEF,wBACE,YAEF,uBACE,YAEF,qBACE,YAEF,uBACE,YAEF,6BACE,YAEF,8BACE,YAEF,2BACE,YAEF,6BACE,YAEF,iBACE,YAEF,kBACE,YAEF,iBACE,YAEF,kBACE,YAEF,qBACE,YAEF,sBACE,YAEF,kCAEE,YAEF,iCAEE,YAEF,iBACE,YAEF,iBACE,YAEF,mCAEE,YAEF,mCAEE,YAEF,qBACE,YAEF,oCAEE,YAEF,kBACE,YAEF,sDAGE,YAEF,mBACE,YAEF,mBACE,YAEF,yBACE,YAEF,qBACE,YAEF,iBACE,YAEF,iBACE,YAEF,iBACE,YAEF,qBACE,YAEF,4BACE,YAEF,8BACE,YAEF,uBACE,YAEF,iBACE,YAEF,sBACE,YAEF,oBACE,YAEF,sBACE,YAEF,uBACE,YAEF,mBACE,YAEF,oCAEE,YAEF,0CAEE,YAEF,uCAEE,YAEF,oBACE,YAEF,oBACE,YAEF,uCAEE,YAEF,kCAEE,YAEF,2CAEE,YAEF,qBACE,YAEF,sBACE,YAEF,iCAEE,YAEF,mBACE,YAEF,oBACE,YAEF,sCAEE,YAEF,uBACE,YAEF,oBACE,YAEF,0BACE,YAEF,wBACE,YAEF,mBACE,YAEF,uBACE,YAEF,oBACE,YAEF,kBACE,YAEF,kBACE,YAEF,mBACE,YAEF,uBACE,YAEF,sBACE,YAEF,sBACE,YAEF,qBACE,YAEF,kBACE,YAEF,uBACE,YAEF,gBACE,YAEF,oBACE,YAEF,uBACE,YAEF,6BACE,YAEF,8BACE,YAEF,2BACE,YAEF,6BACE,YAEF,sBACE,YAEF,uBACE,YAEF,oBACE,YAEF,sBACE,YAEF,mBACE,YAEF,kBACE,YAEF,kBACE,YAEF,0CAEE,YAEF,oBACE,YAEF,sBACE,YAEF,uBACE,YAEF,mBACE,YAEF,kBACE,YAEF,uCAEE,YAEF,sBACE,YAEF,oBACE,YAEF,yBACE,YAEF,mBACE,YAEF,mBACE,YAEF,iBACE,YAEF,mBACE,YAEF,sBACE,YAEF,kBACE,YAEF,0BACE,YAEF,oBACE,YAEF,gBACE,YAEF,+CAEE,YAEF,4EAGE,YAEF,0BACE,YAEF,gBACE,YAEF,qBACE,YAEF,0CAEE,YAEF,oBACE,YAEF,gBACE,YAEF,uBACE,YAEF,uBACE,YAEF,qBACE,YAEF,kBACE,YAEF,wBACE,YAEF,sBACE,YAEF,4BACE,YAEF,kBACE,YAEF,sBACE,YAEF,6BACE,YAEF,kBACE,YAEF,kBACE,YAEF,+BACE,YAEF,gCACE,YAEF,6BACE,YAEF,+BACE,YAEF,iBACE,YAEF,gBACE,YAEF,kBACE,YAEF,sBACE,YAEF,oBACE,YAEF,sBACE,YAEF,sBACE,YAEF,sBACE,YAEF,uBACE,YAEF,kBACE,YAEF,wBACE,YAEF,0BACE,YAEF,oBACE,YAEF,sBACE,YAEF,wBACE,YAEF,yBACE,YAEF,gCACE,YAEF,wBACE,YAEF,mBACE,YAEF,sDAEE,YAEF,kDAEE,YAEF,wDAEE,YAEF,+BAEE,YAEF,eACE,YAEF,iCAEE,YAEF,gCAEE,YAEF,4DAIE,YAEF,kDAGE,YAEF,8BAEE,YAEF,kCAEE,YAEF,gBACE,YAEF,qBACE,YAEF,0BACE,YAEF,2BACE,YAEF,2BACE,YAEF,4BACE,YAEF,4BACE,YAEF,6BACE,YAEF,qBACE,YAEF,uBACE,YAEF,0BACE,YAEF,mBACE,YAEF,gBACE,YAEF,uBACE,YAEF,wBACE,YAEF,mBACE,YAEF,0BACE,YAEF,qBACE,YAEF,kBACE,YAEF,eACE,YAEF,qBACE,YAEF,4BACE,YAEF,kBACE,YAEF,yBACE,YAEF,2BACE,YAEF,yBACE,YAEF,2BACE,YAEF,4BACE,YAEF,iBACE,YAEF,mBACE,YAEF,mBACE,YAEF,iBACE,YAEF,oBACE,YAEF,iBACE,YAEF,sBACE,YAEF,kBACE,YAEF,kBACE,YAEF,gBACE,YAEF,sCAEE,YAEF,iBACE,YAEF,kBACE,YAEF,mBACE,YAEF,eACE,YAEF,cACE,YAEF,iBACE,YAEF,kBACE,YAEF,qBACE,YAEF,0BACE,YAEF,gCACE,YAEF,+BACE,YAEF,sDAEE,YAEF,wBACE,YAEF,sBACE,YAEF,wBACE,YAEF,uCAEE,YAEF,yBACE,YAEF,yBACE,YAEF,iBACE,YAEF,2BACE,YAEF,qBACE,YAEF,kBACE,YAEF,6DAGE,YAEF,kDAEE,YAEF,iBACE,YAEF,kBACE,YAEF,kBACE,YAEF,yBACE,YAEF,8BACE,YAEF,uBACE,YAEF,qBACE,YAEF,gBACE,YAEF,yBACE,YAEF,0BACE,YAEF,kBACE,YAEF,kBACE,YAEF,oBACE,YAEF,eACE,YAEF,oBACE,YAEF,iBACE,YAEF,eACE,YAEF,iBACE,YAEF,gBACE,YAEF,iBACE,YAEF,mBACE,YAEF,0BACE,YAEF,iBACE,YAEF,wBACE,YAEF,mBACE,YAEF,qCAEE,YAEF,+BAEE,YAEF,gBACE,YAEF,mBACE,YAEF,sBACE,YAEF,sBACE,YAEF,oBACE,YAEF,sBACE,YAEF,uBACE,YAEF,wBACE,YAEF,6BACE,YAEF,0EAGE,YAEF,gDAEE,YAEF,gDAEE,YAEF,gDAEE,YAEF,uBACE,YAEF,gBACE,YAEF,mBACE,YAEF,oBACE,YAEF,wGAKE,YAEF,0BACE,YAEF,qDAGE,YAEF,gCAEE,YAEF,sBACE,YAEF,eACE,YAEF,2EAGE,YAEF,yBACE,YAEF,cACE,YAEF,oCAEE,YAEF,uCAEE,YAEF,2CAEE,YAEF,mBACE,YAEF,uBACE,YAEF,kBACE,YAEF,qBACE,YAEF,mBACE,YAEF,qBACE,YAEF,4BACE,YAEF,gBACE,YAEF,6CAEE,YAEF,eACE,YAEF,sBACE,YAEF,gBACE,YAEF,sBACE,YAEF,kBACE,YAEF,gBACE,YAEF,uBACE,YAEF,gBACE,YAEF,sBACE,YAEF,kBACE,YAEF,yBACE,YAEF,mBACE,YAEF,yBACE,YAEF,uBACE,YAEF,mBACE,YAEF,qBACE,YAEF,qBACE,YAEF,sBACE,YAEF,wBACE,YAEF,iBACE,YAEF,qBACE,YAEF,cACE,YAEF,sBACE,YAEF,uBACE,YAEF,yBACE,YAEF,sBACE,YAEF,qBACE,YAEF,sBACE,YAEF,kBACE,YAEF,yBACE,YAEF,sBACE,YAEF,qBACE,YAEF,mBACE,YAEF,eACE,YAEF,mBACE,YAEF,qBACE,YAEF,cACE,YAEF,mDAGE,YAEF,oBACE,YAEF,sBACE,YAEF,0BACE,YAEF,oBACE,YAEF,oBACE,YAEF,mBACE,YAEF,kBACE,YAEF,wBACE,YAEF,uBACE,YAEF,oBACE,YAEF,qBACE,YAEF,2BACE,YAEF,mBACE,YAEF,gBACE,YAEF,uBACE,YAEF,sBACE,YAEF,uBACE,YAEF,qBACE,YAEF,iBACE,YAEF,gBACE,YAEF,mBACE,YAEF,2CAEE,YAEF,2BACE,YAEF,wBACE,YAEF,uBACE,YAEF,sBACE,YAEF,uBACE,YAEF,yBACE,YAEF,yBACE,YAEF,kBACE,YAEF,sBACE,YAEF,6BACE,YAEF,uBACE,YAEF,oBACE,YAEF,kBACE,YAEF,qBACE,YAEF,sBACE,YAEF,gCAEE,YAEF,mBACE,YAEF,iBACE,YAEF,kBACE,YAEF,kBACE,YAEF,sCAEE,YAEF,yBACE,YAEF,oBACE,YAEF,wBACE,YAEF,gEAGE,YAEF,uDAEE,YAEF,6CAEE,YAEF,gDAEE,YAEF,8CAEE,YAEF,yBACE,YAEF,oBACE,YAEF,wBACE,YAEF,0BACE,YAEF,uBACE,YAEF,yBACE,YAEF,kBACE,YAEF,0BACE,YAEF,iBACE,YAEF,yBACE,YAEF,uBACE,YAEF,kDAEE,YAEF,iDAEE,YAEF,gDAEE,YAEF,qBACE,YAEF,8CAEE,YAEF,+CAEE,YAEF,2BACE,YAEF,yBACE,YAEF,wBACE,YAEF,0BACE,YAEF,wBACE,YAEF,qBACE,YAEF,sBACE,YAEF,4BACE,YAEF,cACE,YAEF,qBACE,YAEF,uBACE,YAEF,yBACE,YAEF,gCACE,YAEF,sBACE,YAEF,uBACE,YAEF,kBACE,YAEF,kBACE,YAEF,mBACE,YAEF,iBACE,YAEF,6BACE,YAEF,oCAEE,YAEF,kBACE,YAEF,iBACE,YAEF,kBACE,YAEF,2BACE,YAEF,4BACE,YAEF,4BACE,YAEF,4BACE,YAEF,oBACE,YAEF,mBACE,YAEF,qBACE,YAEF,iBACE,YAEF,eACE,YAEF,sBACE,YAEF,wBACE,YAEF,iBACE,YAEF,iBACE,YAEF,qBACE,YAEF,qBACE,YAEF,wBACE,YAEF,gBACE,YAEF,2BACE,YAEF,oBACE,YAEF,gBACE,YAEF,wBACE,YAEF,eACE,YAEF,wBACE,YAEF,oBACE,YAEF,kBACE,YAEF,wBACE,YAEF,0BACE,YAEF,uBACE,YAEF,yBACE,YAEF,wBACE,YAEF,2BACE,YAEF,mBACE,YAEF,qBACE,YAEF,uBACE,YAEF,mBACE,YAEF,kBACE,YAEF,sBACE,YAEF,mBACE,YAEF,kBACE,YAEF,4BACE,YAEF,0BACE,YAEF,6BACE,YAEF,iBACE,YAEF,6BACE,YAEF,gCACE,YAEF,mBACE,YAEF,uCACE,YAEF,2EAEE,YAEF,+DAGE,YAEF,iBACE,YAEF,mBACE,YAEF,4CAEE,YAEF,sBACE,YAEF,kBACE,YAEF,yBACE,YAEF,oBACE,YAEF,0BACE,YAEF,2BACE,YAEF,sBACE,YAEF,uBACE,YAEF,iBACE,YAEF,qBACE,YAEF,8DAEE,YAEF,sCAEE,YAEF,uBACE,YAEF,yBACE,YAEF,2BACE,YAEF,kBACE,YAEF,wBACE,YAEF,0BACE,YAEF,yCAEE,YAEF,6CAEE,YAEF,uBACE,YAEF,yBACE,YAEF,kBACE,YAEF,oBACE,YAEF,8CAEE,YAEF,kDAEE,YAEF,iBACE,YAEF,0BACE,YAEF,oBACE,YAEF,4EAGE,YAEF,+DAEE,YAEF,qDAEE,YAEF,wDAEE,YAEF,sDAEE,YAEF,kBACE,YAEF,kDAGE,YAEF,mBACE,YAEF,2BACE,YAEF,2BACE,YAEF,0BACE,YAEF,mDAEE,YAEF,uDAEE,YAEF,oBACE,YAEF,gBACE,YAEF,gBACE,YAEF,gBACE,YAEF,mBACE,YAEF,mBACE,YAEF,qBACE,YAEF,uBACE,YAEF,uBACE,YAEF,sBACE,YAEF,kBACE,YAEF,SACE,kBACA,UACA,WACA,UACA,YACA,gBACA,mBACA,SAEF,mDAEE,gBACA,WACA,YACA,SACA,iBACA,qJ","file":"flavours/vanilla/share.css","sourcesContent":["/*!\n * Font Awesome 4.7.0 by @davegandy - http://fontawesome.io - @fontawesome\n * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License)\n */@font-face{font-family:\"FontAwesome\";src:url(\"../fonts/fontawesome-webfont.eot?v=4.7.0\");src:url(\"../fonts/fontawesome-webfont.eot?#iefix&v=4.7.0\") format(\"embedded-opentype\"),url(\"../fonts/fontawesome-webfont.woff2?v=4.7.0\") format(\"woff2\"),url(\"../fonts/fontawesome-webfont.woff?v=4.7.0\") format(\"woff\"),url(\"../fonts/fontawesome-webfont.ttf?v=4.7.0\") format(\"truetype\"),url(\"../fonts/fontawesome-webfont.svg?v=4.7.0#fontawesomeregular\") format(\"svg\");font-weight:normal;font-style:normal}.fa{display:inline-block;font:normal normal normal 14px/1 FontAwesome;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.fa-lg{font-size:1.33333333em;line-height:.75em;vertical-align:-15%}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-fw{width:1.28571429em;text-align:center}.fa-ul{padding-left:0;margin-left:2.14285714em;list-style-type:none}.fa-ul>li{position:relative}.fa-li{position:absolute;left:-2.14285714em;width:2.14285714em;top:.14285714em;text-align:center}.fa-li.fa-lg{left:-1.85714286em}.fa-border{padding:.2em .25em .15em;border:solid .08em #eee;border-radius:.1em}.fa-pull-left{float:left}.fa-pull-right{float:right}.fa.fa-pull-left{margin-right:.3em}.fa.fa-pull-right{margin-left:.3em}.pull-right{float:right}.pull-left{float:left}.fa.pull-left{margin-right:.3em}.fa.pull-right{margin-left:.3em}.fa-spin{-webkit-animation:fa-spin 2s infinite linear;animation:fa-spin 2s infinite linear}.fa-pulse{-webkit-animation:fa-spin 1s infinite steps(8);animation:fa-spin 1s infinite steps(8)}@-webkit-keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}.fa-rotate-90{-ms-filter:\"progid:DXImageTransform.Microsoft.BasicImage(rotation=1)\";-webkit-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg)}.fa-rotate-180{-ms-filter:\"progid:DXImageTransform.Microsoft.BasicImage(rotation=2)\";-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg)}.fa-rotate-270{-ms-filter:\"progid:DXImageTransform.Microsoft.BasicImage(rotation=3)\";-webkit-transform:rotate(270deg);-ms-transform:rotate(270deg);transform:rotate(270deg)}.fa-flip-horizontal{-ms-filter:\"progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)\";-webkit-transform:scale(-1, 1);-ms-transform:scale(-1, 1);transform:scale(-1, 1)}.fa-flip-vertical{-ms-filter:\"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)\";-webkit-transform:scale(1, -1);-ms-transform:scale(1, -1);transform:scale(1, -1)}:root .fa-rotate-90,:root .fa-rotate-180,:root .fa-rotate-270,:root .fa-flip-horizontal,:root .fa-flip-vertical{filter:none}.fa-stack{position:relative;display:inline-block;width:2em;height:2em;line-height:2em;vertical-align:middle}.fa-stack-1x,.fa-stack-2x{position:absolute;left:0;width:100%;text-align:center}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:#fff}.fa-glass:before{content:\"\"}.fa-music:before{content:\"\"}.fa-search:before{content:\"\"}.fa-envelope-o:before{content:\"\"}.fa-heart:before{content:\"\"}.fa-star:before{content:\"\"}.fa-star-o:before{content:\"\"}.fa-user:before{content:\"\"}.fa-film:before{content:\"\"}.fa-th-large:before{content:\"\"}.fa-th:before{content:\"\"}.fa-th-list:before{content:\"\"}.fa-check:before{content:\"\"}.fa-remove:before,.fa-close:before,.fa-times:before{content:\"\"}.fa-search-plus:before{content:\"\"}.fa-search-minus:before{content:\"\"}.fa-power-off:before{content:\"\"}.fa-signal:before{content:\"\"}.fa-gear:before,.fa-cog:before{content:\"\"}.fa-trash-o:before{content:\"\"}.fa-home:before{content:\"\"}.fa-file-o:before{content:\"\"}.fa-clock-o:before{content:\"\"}.fa-road:before{content:\"\"}.fa-download:before{content:\"\"}.fa-arrow-circle-o-down:before{content:\"\"}.fa-arrow-circle-o-up:before{content:\"\"}.fa-inbox:before{content:\"\"}.fa-play-circle-o:before{content:\"\"}.fa-rotate-right:before,.fa-repeat:before{content:\"\"}.fa-refresh:before{content:\"\"}.fa-list-alt:before{content:\"\"}.fa-lock:before{content:\"\"}.fa-flag:before{content:\"\"}.fa-headphones:before{content:\"\"}.fa-volume-off:before{content:\"\"}.fa-volume-down:before{content:\"\"}.fa-volume-up:before{content:\"\"}.fa-qrcode:before{content:\"\"}.fa-barcode:before{content:\"\"}.fa-tag:before{content:\"\"}.fa-tags:before{content:\"\"}.fa-book:before{content:\"\"}.fa-bookmark:before{content:\"\"}.fa-print:before{content:\"\"}.fa-camera:before{content:\"\"}.fa-font:before{content:\"\"}.fa-bold:before{content:\"\"}.fa-italic:before{content:\"\"}.fa-text-height:before{content:\"\"}.fa-text-width:before{content:\"\"}.fa-align-left:before{content:\"\"}.fa-align-center:before{content:\"\"}.fa-align-right:before{content:\"\"}.fa-align-justify:before{content:\"\"}.fa-list:before{content:\"\"}.fa-dedent:before,.fa-outdent:before{content:\"\"}.fa-indent:before{content:\"\"}.fa-video-camera:before{content:\"\"}.fa-photo:before,.fa-image:before,.fa-picture-o:before{content:\"\"}.fa-pencil:before{content:\"\"}.fa-map-marker:before{content:\"\"}.fa-adjust:before{content:\"\"}.fa-tint:before{content:\"\"}.fa-edit:before,.fa-pencil-square-o:before{content:\"\"}.fa-share-square-o:before{content:\"\"}.fa-check-square-o:before{content:\"\"}.fa-arrows:before{content:\"\"}.fa-step-backward:before{content:\"\"}.fa-fast-backward:before{content:\"\"}.fa-backward:before{content:\"\"}.fa-play:before{content:\"\"}.fa-pause:before{content:\"\"}.fa-stop:before{content:\"\"}.fa-forward:before{content:\"\"}.fa-fast-forward:before{content:\"\"}.fa-step-forward:before{content:\"\"}.fa-eject:before{content:\"\"}.fa-chevron-left:before{content:\"\"}.fa-chevron-right:before{content:\"\"}.fa-plus-circle:before{content:\"\"}.fa-minus-circle:before{content:\"\"}.fa-times-circle:before{content:\"\"}.fa-check-circle:before{content:\"\"}.fa-question-circle:before{content:\"\"}.fa-info-circle:before{content:\"\"}.fa-crosshairs:before{content:\"\"}.fa-times-circle-o:before{content:\"\"}.fa-check-circle-o:before{content:\"\"}.fa-ban:before{content:\"\"}.fa-arrow-left:before{content:\"\"}.fa-arrow-right:before{content:\"\"}.fa-arrow-up:before{content:\"\"}.fa-arrow-down:before{content:\"\"}.fa-mail-forward:before,.fa-share:before{content:\"\"}.fa-expand:before{content:\"\"}.fa-compress:before{content:\"\"}.fa-plus:before{content:\"\"}.fa-minus:before{content:\"\"}.fa-asterisk:before{content:\"\"}.fa-exclamation-circle:before{content:\"\"}.fa-gift:before{content:\"\"}.fa-leaf:before{content:\"\"}.fa-fire:before{content:\"\"}.fa-eye:before{content:\"\"}.fa-eye-slash:before{content:\"\"}.fa-warning:before,.fa-exclamation-triangle:before{content:\"\"}.fa-plane:before{content:\"\"}.fa-calendar:before{content:\"\"}.fa-random:before{content:\"\"}.fa-comment:before{content:\"\"}.fa-magnet:before{content:\"\"}.fa-chevron-up:before{content:\"\"}.fa-chevron-down:before{content:\"\"}.fa-retweet:before{content:\"\"}.fa-shopping-cart:before{content:\"\"}.fa-folder:before{content:\"\"}.fa-folder-open:before{content:\"\"}.fa-arrows-v:before{content:\"\"}.fa-arrows-h:before{content:\"\"}.fa-bar-chart-o:before,.fa-bar-chart:before{content:\"\"}.fa-twitter-square:before{content:\"\"}.fa-facebook-square:before{content:\"\"}.fa-camera-retro:before{content:\"\"}.fa-key:before{content:\"\"}.fa-gears:before,.fa-cogs:before{content:\"\"}.fa-comments:before{content:\"\"}.fa-thumbs-o-up:before{content:\"\"}.fa-thumbs-o-down:before{content:\"\"}.fa-star-half:before{content:\"\"}.fa-heart-o:before{content:\"\"}.fa-sign-out:before{content:\"\"}.fa-linkedin-square:before{content:\"\"}.fa-thumb-tack:before{content:\"\"}.fa-external-link:before{content:\"\"}.fa-sign-in:before{content:\"\"}.fa-trophy:before{content:\"\"}.fa-github-square:before{content:\"\"}.fa-upload:before{content:\"\"}.fa-lemon-o:before{content:\"\"}.fa-phone:before{content:\"\"}.fa-square-o:before{content:\"\"}.fa-bookmark-o:before{content:\"\"}.fa-phone-square:before{content:\"\"}.fa-twitter:before{content:\"\"}.fa-facebook-f:before,.fa-facebook:before{content:\"\"}.fa-github:before{content:\"\"}.fa-unlock:before{content:\"\"}.fa-credit-card:before{content:\"\"}.fa-feed:before,.fa-rss:before{content:\"\"}.fa-hdd-o:before{content:\"\"}.fa-bullhorn:before{content:\"\"}.fa-bell:before{content:\"\"}.fa-certificate:before{content:\"\"}.fa-hand-o-right:before{content:\"\"}.fa-hand-o-left:before{content:\"\"}.fa-hand-o-up:before{content:\"\"}.fa-hand-o-down:before{content:\"\"}.fa-arrow-circle-left:before{content:\"\"}.fa-arrow-circle-right:before{content:\"\"}.fa-arrow-circle-up:before{content:\"\"}.fa-arrow-circle-down:before{content:\"\"}.fa-globe:before{content:\"\"}.fa-wrench:before{content:\"\"}.fa-tasks:before{content:\"\"}.fa-filter:before{content:\"\"}.fa-briefcase:before{content:\"\"}.fa-arrows-alt:before{content:\"\"}.fa-group:before,.fa-users:before{content:\"\"}.fa-chain:before,.fa-link:before{content:\"\"}.fa-cloud:before{content:\"\"}.fa-flask:before{content:\"\"}.fa-cut:before,.fa-scissors:before{content:\"\"}.fa-copy:before,.fa-files-o:before{content:\"\"}.fa-paperclip:before{content:\"\"}.fa-save:before,.fa-floppy-o:before{content:\"\"}.fa-square:before{content:\"\"}.fa-navicon:before,.fa-reorder:before,.fa-bars:before{content:\"\"}.fa-list-ul:before{content:\"\"}.fa-list-ol:before{content:\"\"}.fa-strikethrough:before{content:\"\"}.fa-underline:before{content:\"\"}.fa-table:before{content:\"\"}.fa-magic:before{content:\"\"}.fa-truck:before{content:\"\"}.fa-pinterest:before{content:\"\"}.fa-pinterest-square:before{content:\"\"}.fa-google-plus-square:before{content:\"\"}.fa-google-plus:before{content:\"\"}.fa-money:before{content:\"\"}.fa-caret-down:before{content:\"\"}.fa-caret-up:before{content:\"\"}.fa-caret-left:before{content:\"\"}.fa-caret-right:before{content:\"\"}.fa-columns:before{content:\"\"}.fa-unsorted:before,.fa-sort:before{content:\"\"}.fa-sort-down:before,.fa-sort-desc:before{content:\"\"}.fa-sort-up:before,.fa-sort-asc:before{content:\"\"}.fa-envelope:before{content:\"\"}.fa-linkedin:before{content:\"\"}.fa-rotate-left:before,.fa-undo:before{content:\"\"}.fa-legal:before,.fa-gavel:before{content:\"\"}.fa-dashboard:before,.fa-tachometer:before{content:\"\"}.fa-comment-o:before{content:\"\"}.fa-comments-o:before{content:\"\"}.fa-flash:before,.fa-bolt:before{content:\"\"}.fa-sitemap:before{content:\"\"}.fa-umbrella:before{content:\"\"}.fa-paste:before,.fa-clipboard:before{content:\"\"}.fa-lightbulb-o:before{content:\"\"}.fa-exchange:before{content:\"\"}.fa-cloud-download:before{content:\"\"}.fa-cloud-upload:before{content:\"\"}.fa-user-md:before{content:\"\"}.fa-stethoscope:before{content:\"\"}.fa-suitcase:before{content:\"\"}.fa-bell-o:before{content:\"\"}.fa-coffee:before{content:\"\"}.fa-cutlery:before{content:\"\"}.fa-file-text-o:before{content:\"\"}.fa-building-o:before{content:\"\"}.fa-hospital-o:before{content:\"\"}.fa-ambulance:before{content:\"\"}.fa-medkit:before{content:\"\"}.fa-fighter-jet:before{content:\"\"}.fa-beer:before{content:\"\"}.fa-h-square:before{content:\"\"}.fa-plus-square:before{content:\"\"}.fa-angle-double-left:before{content:\"\"}.fa-angle-double-right:before{content:\"\"}.fa-angle-double-up:before{content:\"\"}.fa-angle-double-down:before{content:\"\"}.fa-angle-left:before{content:\"\"}.fa-angle-right:before{content:\"\"}.fa-angle-up:before{content:\"\"}.fa-angle-down:before{content:\"\"}.fa-desktop:before{content:\"\"}.fa-laptop:before{content:\"\"}.fa-tablet:before{content:\"\"}.fa-mobile-phone:before,.fa-mobile:before{content:\"\"}.fa-circle-o:before{content:\"\"}.fa-quote-left:before{content:\"\"}.fa-quote-right:before{content:\"\"}.fa-spinner:before{content:\"\"}.fa-circle:before{content:\"\"}.fa-mail-reply:before,.fa-reply:before{content:\"\"}.fa-github-alt:before{content:\"\"}.fa-folder-o:before{content:\"\"}.fa-folder-open-o:before{content:\"\"}.fa-smile-o:before{content:\"\"}.fa-frown-o:before{content:\"\"}.fa-meh-o:before{content:\"\"}.fa-gamepad:before{content:\"\"}.fa-keyboard-o:before{content:\"\"}.fa-flag-o:before{content:\"\"}.fa-flag-checkered:before{content:\"\"}.fa-terminal:before{content:\"\"}.fa-code:before{content:\"\"}.fa-mail-reply-all:before,.fa-reply-all:before{content:\"\"}.fa-star-half-empty:before,.fa-star-half-full:before,.fa-star-half-o:before{content:\"\"}.fa-location-arrow:before{content:\"\"}.fa-crop:before{content:\"\"}.fa-code-fork:before{content:\"\"}.fa-unlink:before,.fa-chain-broken:before{content:\"\"}.fa-question:before{content:\"\"}.fa-info:before{content:\"\"}.fa-exclamation:before{content:\"\"}.fa-superscript:before{content:\"\"}.fa-subscript:before{content:\"\"}.fa-eraser:before{content:\"\"}.fa-puzzle-piece:before{content:\"\"}.fa-microphone:before{content:\"\"}.fa-microphone-slash:before{content:\"\"}.fa-shield:before{content:\"\"}.fa-calendar-o:before{content:\"\"}.fa-fire-extinguisher:before{content:\"\"}.fa-rocket:before{content:\"\"}.fa-maxcdn:before{content:\"\"}.fa-chevron-circle-left:before{content:\"\"}.fa-chevron-circle-right:before{content:\"\"}.fa-chevron-circle-up:before{content:\"\"}.fa-chevron-circle-down:before{content:\"\"}.fa-html5:before{content:\"\"}.fa-css3:before{content:\"\"}.fa-anchor:before{content:\"\"}.fa-unlock-alt:before{content:\"\"}.fa-bullseye:before{content:\"\"}.fa-ellipsis-h:before{content:\"\"}.fa-ellipsis-v:before{content:\"\"}.fa-rss-square:before{content:\"\"}.fa-play-circle:before{content:\"\"}.fa-ticket:before{content:\"\"}.fa-minus-square:before{content:\"\"}.fa-minus-square-o:before{content:\"\"}.fa-level-up:before{content:\"\"}.fa-level-down:before{content:\"\"}.fa-check-square:before{content:\"\"}.fa-pencil-square:before{content:\"\"}.fa-external-link-square:before{content:\"\"}.fa-share-square:before{content:\"\"}.fa-compass:before{content:\"\"}.fa-toggle-down:before,.fa-caret-square-o-down:before{content:\"\"}.fa-toggle-up:before,.fa-caret-square-o-up:before{content:\"\"}.fa-toggle-right:before,.fa-caret-square-o-right:before{content:\"\"}.fa-euro:before,.fa-eur:before{content:\"\"}.fa-gbp:before{content:\"\"}.fa-dollar:before,.fa-usd:before{content:\"\"}.fa-rupee:before,.fa-inr:before{content:\"\"}.fa-cny:before,.fa-rmb:before,.fa-yen:before,.fa-jpy:before{content:\"\"}.fa-ruble:before,.fa-rouble:before,.fa-rub:before{content:\"\"}.fa-won:before,.fa-krw:before{content:\"\"}.fa-bitcoin:before,.fa-btc:before{content:\"\"}.fa-file:before{content:\"\"}.fa-file-text:before{content:\"\"}.fa-sort-alpha-asc:before{content:\"\"}.fa-sort-alpha-desc:before{content:\"\"}.fa-sort-amount-asc:before{content:\"\"}.fa-sort-amount-desc:before{content:\"\"}.fa-sort-numeric-asc:before{content:\"\"}.fa-sort-numeric-desc:before{content:\"\"}.fa-thumbs-up:before{content:\"\"}.fa-thumbs-down:before{content:\"\"}.fa-youtube-square:before{content:\"\"}.fa-youtube:before{content:\"\"}.fa-xing:before{content:\"\"}.fa-xing-square:before{content:\"\"}.fa-youtube-play:before{content:\"\"}.fa-dropbox:before{content:\"\"}.fa-stack-overflow:before{content:\"\"}.fa-instagram:before{content:\"\"}.fa-flickr:before{content:\"\"}.fa-adn:before{content:\"\"}.fa-bitbucket:before{content:\"\"}.fa-bitbucket-square:before{content:\"\"}.fa-tumblr:before{content:\"\"}.fa-tumblr-square:before{content:\"\"}.fa-long-arrow-down:before{content:\"\"}.fa-long-arrow-up:before{content:\"\"}.fa-long-arrow-left:before{content:\"\"}.fa-long-arrow-right:before{content:\"\"}.fa-apple:before{content:\"\"}.fa-windows:before{content:\"\"}.fa-android:before{content:\"\"}.fa-linux:before{content:\"\"}.fa-dribbble:before{content:\"\"}.fa-skype:before{content:\"\"}.fa-foursquare:before{content:\"\"}.fa-trello:before{content:\"\"}.fa-female:before{content:\"\"}.fa-male:before{content:\"\"}.fa-gittip:before,.fa-gratipay:before{content:\"\"}.fa-sun-o:before{content:\"\"}.fa-moon-o:before{content:\"\"}.fa-archive:before{content:\"\"}.fa-bug:before{content:\"\"}.fa-vk:before{content:\"\"}.fa-weibo:before{content:\"\"}.fa-renren:before{content:\"\"}.fa-pagelines:before{content:\"\"}.fa-stack-exchange:before{content:\"\"}.fa-arrow-circle-o-right:before{content:\"\"}.fa-arrow-circle-o-left:before{content:\"\"}.fa-toggle-left:before,.fa-caret-square-o-left:before{content:\"\"}.fa-dot-circle-o:before{content:\"\"}.fa-wheelchair:before{content:\"\"}.fa-vimeo-square:before{content:\"\"}.fa-turkish-lira:before,.fa-try:before{content:\"\"}.fa-plus-square-o:before{content:\"\"}.fa-space-shuttle:before{content:\"\"}.fa-slack:before{content:\"\"}.fa-envelope-square:before{content:\"\"}.fa-wordpress:before{content:\"\"}.fa-openid:before{content:\"\"}.fa-institution:before,.fa-bank:before,.fa-university:before{content:\"\"}.fa-mortar-board:before,.fa-graduation-cap:before{content:\"\"}.fa-yahoo:before{content:\"\"}.fa-google:before{content:\"\"}.fa-reddit:before{content:\"\"}.fa-reddit-square:before{content:\"\"}.fa-stumbleupon-circle:before{content:\"\"}.fa-stumbleupon:before{content:\"\"}.fa-delicious:before{content:\"\"}.fa-digg:before{content:\"\"}.fa-pied-piper-pp:before{content:\"\"}.fa-pied-piper-alt:before{content:\"\"}.fa-drupal:before{content:\"\"}.fa-joomla:before{content:\"\"}.fa-language:before{content:\"\"}.fa-fax:before{content:\"\"}.fa-building:before{content:\"\"}.fa-child:before{content:\"\"}.fa-paw:before{content:\"\"}.fa-spoon:before{content:\"\"}.fa-cube:before{content:\"\"}.fa-cubes:before{content:\"\"}.fa-behance:before{content:\"\"}.fa-behance-square:before{content:\"\"}.fa-steam:before{content:\"\"}.fa-steam-square:before{content:\"\"}.fa-recycle:before{content:\"\"}.fa-automobile:before,.fa-car:before{content:\"\"}.fa-cab:before,.fa-taxi:before{content:\"\"}.fa-tree:before{content:\"\"}.fa-spotify:before{content:\"\"}.fa-deviantart:before{content:\"\"}.fa-soundcloud:before{content:\"\"}.fa-database:before{content:\"\"}.fa-file-pdf-o:before{content:\"\"}.fa-file-word-o:before{content:\"\"}.fa-file-excel-o:before{content:\"\"}.fa-file-powerpoint-o:before{content:\"\"}.fa-file-photo-o:before,.fa-file-picture-o:before,.fa-file-image-o:before{content:\"\"}.fa-file-zip-o:before,.fa-file-archive-o:before{content:\"\"}.fa-file-sound-o:before,.fa-file-audio-o:before{content:\"\"}.fa-file-movie-o:before,.fa-file-video-o:before{content:\"\"}.fa-file-code-o:before{content:\"\"}.fa-vine:before{content:\"\"}.fa-codepen:before{content:\"\"}.fa-jsfiddle:before{content:\"\"}.fa-life-bouy:before,.fa-life-buoy:before,.fa-life-saver:before,.fa-support:before,.fa-life-ring:before{content:\"\"}.fa-circle-o-notch:before{content:\"\"}.fa-ra:before,.fa-resistance:before,.fa-rebel:before{content:\"\"}.fa-ge:before,.fa-empire:before{content:\"\"}.fa-git-square:before{content:\"\"}.fa-git:before{content:\"\"}.fa-y-combinator-square:before,.fa-yc-square:before,.fa-hacker-news:before{content:\"\"}.fa-tencent-weibo:before{content:\"\"}.fa-qq:before{content:\"\"}.fa-wechat:before,.fa-weixin:before{content:\"\"}.fa-send:before,.fa-paper-plane:before{content:\"\"}.fa-send-o:before,.fa-paper-plane-o:before{content:\"\"}.fa-history:before{content:\"\"}.fa-circle-thin:before{content:\"\"}.fa-header:before{content:\"\"}.fa-paragraph:before{content:\"\"}.fa-sliders:before{content:\"\"}.fa-share-alt:before{content:\"\"}.fa-share-alt-square:before{content:\"\"}.fa-bomb:before{content:\"\"}.fa-soccer-ball-o:before,.fa-futbol-o:before{content:\"\"}.fa-tty:before{content:\"\"}.fa-binoculars:before{content:\"\"}.fa-plug:before{content:\"\"}.fa-slideshare:before{content:\"\"}.fa-twitch:before{content:\"\"}.fa-yelp:before{content:\"\"}.fa-newspaper-o:before{content:\"\"}.fa-wifi:before{content:\"\"}.fa-calculator:before{content:\"\"}.fa-paypal:before{content:\"\"}.fa-google-wallet:before{content:\"\"}.fa-cc-visa:before{content:\"\"}.fa-cc-mastercard:before{content:\"\"}.fa-cc-discover:before{content:\"\"}.fa-cc-amex:before{content:\"\"}.fa-cc-paypal:before{content:\"\"}.fa-cc-stripe:before{content:\"\"}.fa-bell-slash:before{content:\"\"}.fa-bell-slash-o:before{content:\"\"}.fa-trash:before{content:\"\"}.fa-copyright:before{content:\"\"}.fa-at:before{content:\"\"}.fa-eyedropper:before{content:\"\"}.fa-paint-brush:before{content:\"\"}.fa-birthday-cake:before{content:\"\"}.fa-area-chart:before{content:\"\"}.fa-pie-chart:before{content:\"\"}.fa-line-chart:before{content:\"\"}.fa-lastfm:before{content:\"\"}.fa-lastfm-square:before{content:\"\"}.fa-toggle-off:before{content:\"\"}.fa-toggle-on:before{content:\"\"}.fa-bicycle:before{content:\"\"}.fa-bus:before{content:\"\"}.fa-ioxhost:before{content:\"\"}.fa-angellist:before{content:\"\"}.fa-cc:before{content:\"\"}.fa-shekel:before,.fa-sheqel:before,.fa-ils:before{content:\"\"}.fa-meanpath:before{content:\"\"}.fa-buysellads:before{content:\"\"}.fa-connectdevelop:before{content:\"\"}.fa-dashcube:before{content:\"\"}.fa-forumbee:before{content:\"\"}.fa-leanpub:before{content:\"\"}.fa-sellsy:before{content:\"\"}.fa-shirtsinbulk:before{content:\"\"}.fa-simplybuilt:before{content:\"\"}.fa-skyatlas:before{content:\"\"}.fa-cart-plus:before{content:\"\"}.fa-cart-arrow-down:before{content:\"\"}.fa-diamond:before{content:\"\"}.fa-ship:before{content:\"\"}.fa-user-secret:before{content:\"\"}.fa-motorcycle:before{content:\"\"}.fa-street-view:before{content:\"\"}.fa-heartbeat:before{content:\"\"}.fa-venus:before{content:\"\"}.fa-mars:before{content:\"\"}.fa-mercury:before{content:\"\"}.fa-intersex:before,.fa-transgender:before{content:\"\"}.fa-transgender-alt:before{content:\"\"}.fa-venus-double:before{content:\"\"}.fa-mars-double:before{content:\"\"}.fa-venus-mars:before{content:\"\"}.fa-mars-stroke:before{content:\"\"}.fa-mars-stroke-v:before{content:\"\"}.fa-mars-stroke-h:before{content:\"\"}.fa-neuter:before{content:\"\"}.fa-genderless:before{content:\"\"}.fa-facebook-official:before{content:\"\"}.fa-pinterest-p:before{content:\"\"}.fa-whatsapp:before{content:\"\"}.fa-server:before{content:\"\"}.fa-user-plus:before{content:\"\"}.fa-user-times:before{content:\"\"}.fa-hotel:before,.fa-bed:before{content:\"\"}.fa-viacoin:before{content:\"\"}.fa-train:before{content:\"\"}.fa-subway:before{content:\"\"}.fa-medium:before{content:\"\"}.fa-yc:before,.fa-y-combinator:before{content:\"\"}.fa-optin-monster:before{content:\"\"}.fa-opencart:before{content:\"\"}.fa-expeditedssl:before{content:\"\"}.fa-battery-4:before,.fa-battery:before,.fa-battery-full:before{content:\"\"}.fa-battery-3:before,.fa-battery-three-quarters:before{content:\"\"}.fa-battery-2:before,.fa-battery-half:before{content:\"\"}.fa-battery-1:before,.fa-battery-quarter:before{content:\"\"}.fa-battery-0:before,.fa-battery-empty:before{content:\"\"}.fa-mouse-pointer:before{content:\"\"}.fa-i-cursor:before{content:\"\"}.fa-object-group:before{content:\"\"}.fa-object-ungroup:before{content:\"\"}.fa-sticky-note:before{content:\"\"}.fa-sticky-note-o:before{content:\"\"}.fa-cc-jcb:before{content:\"\"}.fa-cc-diners-club:before{content:\"\"}.fa-clone:before{content:\"\"}.fa-balance-scale:before{content:\"\"}.fa-hourglass-o:before{content:\"\"}.fa-hourglass-1:before,.fa-hourglass-start:before{content:\"\"}.fa-hourglass-2:before,.fa-hourglass-half:before{content:\"\"}.fa-hourglass-3:before,.fa-hourglass-end:before{content:\"\"}.fa-hourglass:before{content:\"\"}.fa-hand-grab-o:before,.fa-hand-rock-o:before{content:\"\"}.fa-hand-stop-o:before,.fa-hand-paper-o:before{content:\"\"}.fa-hand-scissors-o:before{content:\"\"}.fa-hand-lizard-o:before{content:\"\"}.fa-hand-spock-o:before{content:\"\"}.fa-hand-pointer-o:before{content:\"\"}.fa-hand-peace-o:before{content:\"\"}.fa-trademark:before{content:\"\"}.fa-registered:before{content:\"\"}.fa-creative-commons:before{content:\"\"}.fa-gg:before{content:\"\"}.fa-gg-circle:before{content:\"\"}.fa-tripadvisor:before{content:\"\"}.fa-odnoklassniki:before{content:\"\"}.fa-odnoklassniki-square:before{content:\"\"}.fa-get-pocket:before{content:\"\"}.fa-wikipedia-w:before{content:\"\"}.fa-safari:before{content:\"\"}.fa-chrome:before{content:\"\"}.fa-firefox:before{content:\"\"}.fa-opera:before{content:\"\"}.fa-internet-explorer:before{content:\"\"}.fa-tv:before,.fa-television:before{content:\"\"}.fa-contao:before{content:\"\"}.fa-500px:before{content:\"\"}.fa-amazon:before{content:\"\"}.fa-calendar-plus-o:before{content:\"\"}.fa-calendar-minus-o:before{content:\"\"}.fa-calendar-times-o:before{content:\"\"}.fa-calendar-check-o:before{content:\"\"}.fa-industry:before{content:\"\"}.fa-map-pin:before{content:\"\"}.fa-map-signs:before{content:\"\"}.fa-map-o:before{content:\"\"}.fa-map:before{content:\"\"}.fa-commenting:before{content:\"\"}.fa-commenting-o:before{content:\"\"}.fa-houzz:before{content:\"\"}.fa-vimeo:before{content:\"\"}.fa-black-tie:before{content:\"\"}.fa-fonticons:before{content:\"\"}.fa-reddit-alien:before{content:\"\"}.fa-edge:before{content:\"\"}.fa-credit-card-alt:before{content:\"\"}.fa-codiepie:before{content:\"\"}.fa-modx:before{content:\"\"}.fa-fort-awesome:before{content:\"\"}.fa-usb:before{content:\"\"}.fa-product-hunt:before{content:\"\"}.fa-mixcloud:before{content:\"\"}.fa-scribd:before{content:\"\"}.fa-pause-circle:before{content:\"\"}.fa-pause-circle-o:before{content:\"\"}.fa-stop-circle:before{content:\"\"}.fa-stop-circle-o:before{content:\"\"}.fa-shopping-bag:before{content:\"\"}.fa-shopping-basket:before{content:\"\"}.fa-hashtag:before{content:\"\"}.fa-bluetooth:before{content:\"\"}.fa-bluetooth-b:before{content:\"\"}.fa-percent:before{content:\"\"}.fa-gitlab:before{content:\"\"}.fa-wpbeginner:before{content:\"\"}.fa-wpforms:before{content:\"\"}.fa-envira:before{content:\"\"}.fa-universal-access:before{content:\"\"}.fa-wheelchair-alt:before{content:\"\"}.fa-question-circle-o:before{content:\"\"}.fa-blind:before{content:\"\"}.fa-audio-description:before{content:\"\"}.fa-volume-control-phone:before{content:\"\"}.fa-braille:before{content:\"\"}.fa-assistive-listening-systems:before{content:\"\"}.fa-asl-interpreting:before,.fa-american-sign-language-interpreting:before{content:\"\"}.fa-deafness:before,.fa-hard-of-hearing:before,.fa-deaf:before{content:\"\"}.fa-glide:before{content:\"\"}.fa-glide-g:before{content:\"\"}.fa-signing:before,.fa-sign-language:before{content:\"\"}.fa-low-vision:before{content:\"\"}.fa-viadeo:before{content:\"\"}.fa-viadeo-square:before{content:\"\"}.fa-snapchat:before{content:\"\"}.fa-snapchat-ghost:before{content:\"\"}.fa-snapchat-square:before{content:\"\"}.fa-pied-piper:before{content:\"\"}.fa-first-order:before{content:\"\"}.fa-yoast:before{content:\"\"}.fa-themeisle:before{content:\"\"}.fa-google-plus-circle:before,.fa-google-plus-official:before{content:\"\"}.fa-fa:before,.fa-font-awesome:before{content:\"\"}.fa-handshake-o:before{content:\"\"}.fa-envelope-open:before{content:\"\"}.fa-envelope-open-o:before{content:\"\"}.fa-linode:before{content:\"\"}.fa-address-book:before{content:\"\"}.fa-address-book-o:before{content:\"\"}.fa-vcard:before,.fa-address-card:before{content:\"\"}.fa-vcard-o:before,.fa-address-card-o:before{content:\"\"}.fa-user-circle:before{content:\"\"}.fa-user-circle-o:before{content:\"\"}.fa-user-o:before{content:\"\"}.fa-id-badge:before{content:\"\"}.fa-drivers-license:before,.fa-id-card:before{content:\"\"}.fa-drivers-license-o:before,.fa-id-card-o:before{content:\"\"}.fa-quora:before{content:\"\"}.fa-free-code-camp:before{content:\"\"}.fa-telegram:before{content:\"\"}.fa-thermometer-4:before,.fa-thermometer:before,.fa-thermometer-full:before{content:\"\"}.fa-thermometer-3:before,.fa-thermometer-three-quarters:before{content:\"\"}.fa-thermometer-2:before,.fa-thermometer-half:before{content:\"\"}.fa-thermometer-1:before,.fa-thermometer-quarter:before{content:\"\"}.fa-thermometer-0:before,.fa-thermometer-empty:before{content:\"\"}.fa-shower:before{content:\"\"}.fa-bathtub:before,.fa-s15:before,.fa-bath:before{content:\"\"}.fa-podcast:before{content:\"\"}.fa-window-maximize:before{content:\"\"}.fa-window-minimize:before{content:\"\"}.fa-window-restore:before{content:\"\"}.fa-times-rectangle:before,.fa-window-close:before{content:\"\"}.fa-times-rectangle-o:before,.fa-window-close-o:before{content:\"\"}.fa-bandcamp:before{content:\"\"}.fa-grav:before{content:\"\"}.fa-etsy:before{content:\"\"}.fa-imdb:before{content:\"\"}.fa-ravelry:before{content:\"\"}.fa-eercast:before{content:\"\"}.fa-microchip:before{content:\"\"}.fa-snowflake-o:before{content:\"\"}.fa-superpowers:before{content:\"\"}.fa-wpexplorer:before{content:\"\"}.fa-meetup:before{content:\"\"}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto}","/*!\n * Font Awesome 4.7.0 by @davegandy - http://fontawesome.io - @fontawesome\n * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License)\n */\n/* FONT PATH\n * -------------------------- */\n@font-face {\n font-family: 'FontAwesome';\n src: url('../fonts/fontawesome-webfont.eot?v=4.7.0');\n src: url('../fonts/fontawesome-webfont.eot?#iefix&v=4.7.0') format('embedded-opentype'), url('../fonts/fontawesome-webfont.woff2?v=4.7.0') format('woff2'), url('../fonts/fontawesome-webfont.woff?v=4.7.0') format('woff'), url('../fonts/fontawesome-webfont.ttf?v=4.7.0') format('truetype'), url('../fonts/fontawesome-webfont.svg?v=4.7.0#fontawesomeregular') format('svg');\n font-weight: normal;\n font-style: normal;\n}\n.fa {\n display: inline-block;\n font: normal normal normal 14px/1 FontAwesome;\n font-size: inherit;\n text-rendering: auto;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n}\n/* makes the font 33% larger relative to the icon container */\n.fa-lg {\n font-size: 1.33333333em;\n line-height: 0.75em;\n vertical-align: -15%;\n}\n.fa-2x {\n font-size: 2em;\n}\n.fa-3x {\n font-size: 3em;\n}\n.fa-4x {\n font-size: 4em;\n}\n.fa-5x {\n font-size: 5em;\n}\n.fa-fw {\n width: 1.28571429em;\n text-align: center;\n}\n.fa-ul {\n padding-left: 0;\n margin-left: 2.14285714em;\n list-style-type: none;\n}\n.fa-ul > li {\n position: relative;\n}\n.fa-li {\n position: absolute;\n left: -2.14285714em;\n width: 2.14285714em;\n top: 0.14285714em;\n text-align: center;\n}\n.fa-li.fa-lg {\n left: -1.85714286em;\n}\n.fa-border {\n padding: .2em .25em .15em;\n border: solid 0.08em #eeeeee;\n border-radius: .1em;\n}\n.fa-pull-left {\n float: left;\n}\n.fa-pull-right {\n float: right;\n}\n.fa.fa-pull-left {\n margin-right: .3em;\n}\n.fa.fa-pull-right {\n margin-left: .3em;\n}\n/* Deprecated as of 4.4.0 */\n.pull-right {\n float: right;\n}\n.pull-left {\n float: left;\n}\n.fa.pull-left {\n margin-right: .3em;\n}\n.fa.pull-right {\n margin-left: .3em;\n}\n.fa-spin {\n -webkit-animation: fa-spin 2s infinite linear;\n animation: fa-spin 2s infinite linear;\n}\n.fa-pulse {\n -webkit-animation: fa-spin 1s infinite steps(8);\n animation: fa-spin 1s infinite steps(8);\n}\n@-webkit-keyframes fa-spin {\n 0% {\n -webkit-transform: rotate(0deg);\n transform: rotate(0deg);\n }\n 100% {\n -webkit-transform: rotate(359deg);\n transform: rotate(359deg);\n }\n}\n@keyframes fa-spin {\n 0% {\n -webkit-transform: rotate(0deg);\n transform: rotate(0deg);\n }\n 100% {\n -webkit-transform: rotate(359deg);\n transform: rotate(359deg);\n }\n}\n.fa-rotate-90 {\n -ms-filter: \"progid:DXImageTransform.Microsoft.BasicImage(rotation=1)\";\n -webkit-transform: rotate(90deg);\n -ms-transform: rotate(90deg);\n transform: rotate(90deg);\n}\n.fa-rotate-180 {\n -ms-filter: \"progid:DXImageTransform.Microsoft.BasicImage(rotation=2)\";\n -webkit-transform: rotate(180deg);\n -ms-transform: rotate(180deg);\n transform: rotate(180deg);\n}\n.fa-rotate-270 {\n -ms-filter: \"progid:DXImageTransform.Microsoft.BasicImage(rotation=3)\";\n -webkit-transform: rotate(270deg);\n -ms-transform: rotate(270deg);\n transform: rotate(270deg);\n}\n.fa-flip-horizontal {\n -ms-filter: \"progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)\";\n -webkit-transform: scale(-1, 1);\n -ms-transform: scale(-1, 1);\n transform: scale(-1, 1);\n}\n.fa-flip-vertical {\n -ms-filter: \"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)\";\n -webkit-transform: scale(1, -1);\n -ms-transform: scale(1, -1);\n transform: scale(1, -1);\n}\n:root .fa-rotate-90,\n:root .fa-rotate-180,\n:root .fa-rotate-270,\n:root .fa-flip-horizontal,\n:root .fa-flip-vertical {\n filter: none;\n}\n.fa-stack {\n position: relative;\n display: inline-block;\n width: 2em;\n height: 2em;\n line-height: 2em;\n vertical-align: middle;\n}\n.fa-stack-1x,\n.fa-stack-2x {\n position: absolute;\n left: 0;\n width: 100%;\n text-align: center;\n}\n.fa-stack-1x {\n line-height: inherit;\n}\n.fa-stack-2x {\n font-size: 2em;\n}\n.fa-inverse {\n color: #ffffff;\n}\n/* Font Awesome uses the Unicode Private Use Area (PUA) to ensure screen\n readers do not read off random characters that represent icons */\n.fa-glass:before {\n content: \"\\f000\";\n}\n.fa-music:before {\n content: \"\\f001\";\n}\n.fa-search:before {\n content: \"\\f002\";\n}\n.fa-envelope-o:before {\n content: \"\\f003\";\n}\n.fa-heart:before {\n content: \"\\f004\";\n}\n.fa-star:before {\n content: \"\\f005\";\n}\n.fa-star-o:before {\n content: \"\\f006\";\n}\n.fa-user:before {\n content: \"\\f007\";\n}\n.fa-film:before {\n content: \"\\f008\";\n}\n.fa-th-large:before {\n content: \"\\f009\";\n}\n.fa-th:before {\n content: \"\\f00a\";\n}\n.fa-th-list:before {\n content: \"\\f00b\";\n}\n.fa-check:before {\n content: \"\\f00c\";\n}\n.fa-remove:before,\n.fa-close:before,\n.fa-times:before {\n content: \"\\f00d\";\n}\n.fa-search-plus:before {\n content: \"\\f00e\";\n}\n.fa-search-minus:before {\n content: \"\\f010\";\n}\n.fa-power-off:before {\n content: \"\\f011\";\n}\n.fa-signal:before {\n content: \"\\f012\";\n}\n.fa-gear:before,\n.fa-cog:before {\n content: \"\\f013\";\n}\n.fa-trash-o:before {\n content: \"\\f014\";\n}\n.fa-home:before {\n content: \"\\f015\";\n}\n.fa-file-o:before {\n content: \"\\f016\";\n}\n.fa-clock-o:before {\n content: \"\\f017\";\n}\n.fa-road:before {\n content: \"\\f018\";\n}\n.fa-download:before {\n content: \"\\f019\";\n}\n.fa-arrow-circle-o-down:before {\n content: \"\\f01a\";\n}\n.fa-arrow-circle-o-up:before {\n content: \"\\f01b\";\n}\n.fa-inbox:before {\n content: \"\\f01c\";\n}\n.fa-play-circle-o:before {\n content: \"\\f01d\";\n}\n.fa-rotate-right:before,\n.fa-repeat:before {\n content: \"\\f01e\";\n}\n.fa-refresh:before {\n content: \"\\f021\";\n}\n.fa-list-alt:before {\n content: \"\\f022\";\n}\n.fa-lock:before {\n content: \"\\f023\";\n}\n.fa-flag:before {\n content: \"\\f024\";\n}\n.fa-headphones:before {\n content: \"\\f025\";\n}\n.fa-volume-off:before {\n content: \"\\f026\";\n}\n.fa-volume-down:before {\n content: \"\\f027\";\n}\n.fa-volume-up:before {\n content: \"\\f028\";\n}\n.fa-qrcode:before {\n content: \"\\f029\";\n}\n.fa-barcode:before {\n content: \"\\f02a\";\n}\n.fa-tag:before {\n content: \"\\f02b\";\n}\n.fa-tags:before {\n content: \"\\f02c\";\n}\n.fa-book:before {\n content: \"\\f02d\";\n}\n.fa-bookmark:before {\n content: \"\\f02e\";\n}\n.fa-print:before {\n content: \"\\f02f\";\n}\n.fa-camera:before {\n content: \"\\f030\";\n}\n.fa-font:before {\n content: \"\\f031\";\n}\n.fa-bold:before {\n content: \"\\f032\";\n}\n.fa-italic:before {\n content: \"\\f033\";\n}\n.fa-text-height:before {\n content: \"\\f034\";\n}\n.fa-text-width:before {\n content: \"\\f035\";\n}\n.fa-align-left:before {\n content: \"\\f036\";\n}\n.fa-align-center:before {\n content: \"\\f037\";\n}\n.fa-align-right:before {\n content: \"\\f038\";\n}\n.fa-align-justify:before {\n content: \"\\f039\";\n}\n.fa-list:before {\n content: \"\\f03a\";\n}\n.fa-dedent:before,\n.fa-outdent:before {\n content: \"\\f03b\";\n}\n.fa-indent:before {\n content: \"\\f03c\";\n}\n.fa-video-camera:before {\n content: \"\\f03d\";\n}\n.fa-photo:before,\n.fa-image:before,\n.fa-picture-o:before {\n content: \"\\f03e\";\n}\n.fa-pencil:before {\n content: \"\\f040\";\n}\n.fa-map-marker:before {\n content: \"\\f041\";\n}\n.fa-adjust:before {\n content: \"\\f042\";\n}\n.fa-tint:before {\n content: \"\\f043\";\n}\n.fa-edit:before,\n.fa-pencil-square-o:before {\n content: \"\\f044\";\n}\n.fa-share-square-o:before {\n content: \"\\f045\";\n}\n.fa-check-square-o:before {\n content: \"\\f046\";\n}\n.fa-arrows:before {\n content: \"\\f047\";\n}\n.fa-step-backward:before {\n content: \"\\f048\";\n}\n.fa-fast-backward:before {\n content: \"\\f049\";\n}\n.fa-backward:before {\n content: \"\\f04a\";\n}\n.fa-play:before {\n content: \"\\f04b\";\n}\n.fa-pause:before {\n content: \"\\f04c\";\n}\n.fa-stop:before {\n content: \"\\f04d\";\n}\n.fa-forward:before {\n content: \"\\f04e\";\n}\n.fa-fast-forward:before {\n content: \"\\f050\";\n}\n.fa-step-forward:before {\n content: \"\\f051\";\n}\n.fa-eject:before {\n content: \"\\f052\";\n}\n.fa-chevron-left:before {\n content: \"\\f053\";\n}\n.fa-chevron-right:before {\n content: \"\\f054\";\n}\n.fa-plus-circle:before {\n content: \"\\f055\";\n}\n.fa-minus-circle:before {\n content: \"\\f056\";\n}\n.fa-times-circle:before {\n content: \"\\f057\";\n}\n.fa-check-circle:before {\n content: \"\\f058\";\n}\n.fa-question-circle:before {\n content: \"\\f059\";\n}\n.fa-info-circle:before {\n content: \"\\f05a\";\n}\n.fa-crosshairs:before {\n content: \"\\f05b\";\n}\n.fa-times-circle-o:before {\n content: \"\\f05c\";\n}\n.fa-check-circle-o:before {\n content: \"\\f05d\";\n}\n.fa-ban:before {\n content: \"\\f05e\";\n}\n.fa-arrow-left:before {\n content: \"\\f060\";\n}\n.fa-arrow-right:before {\n content: \"\\f061\";\n}\n.fa-arrow-up:before {\n content: \"\\f062\";\n}\n.fa-arrow-down:before {\n content: \"\\f063\";\n}\n.fa-mail-forward:before,\n.fa-share:before {\n content: \"\\f064\";\n}\n.fa-expand:before {\n content: \"\\f065\";\n}\n.fa-compress:before {\n content: \"\\f066\";\n}\n.fa-plus:before {\n content: \"\\f067\";\n}\n.fa-minus:before {\n content: \"\\f068\";\n}\n.fa-asterisk:before {\n content: \"\\f069\";\n}\n.fa-exclamation-circle:before {\n content: \"\\f06a\";\n}\n.fa-gift:before {\n content: \"\\f06b\";\n}\n.fa-leaf:before {\n content: \"\\f06c\";\n}\n.fa-fire:before {\n content: \"\\f06d\";\n}\n.fa-eye:before {\n content: \"\\f06e\";\n}\n.fa-eye-slash:before {\n content: \"\\f070\";\n}\n.fa-warning:before,\n.fa-exclamation-triangle:before {\n content: \"\\f071\";\n}\n.fa-plane:before {\n content: \"\\f072\";\n}\n.fa-calendar:before {\n content: \"\\f073\";\n}\n.fa-random:before {\n content: \"\\f074\";\n}\n.fa-comment:before {\n content: \"\\f075\";\n}\n.fa-magnet:before {\n content: \"\\f076\";\n}\n.fa-chevron-up:before {\n content: \"\\f077\";\n}\n.fa-chevron-down:before {\n content: \"\\f078\";\n}\n.fa-retweet:before {\n content: \"\\f079\";\n}\n.fa-shopping-cart:before {\n content: \"\\f07a\";\n}\n.fa-folder:before {\n content: \"\\f07b\";\n}\n.fa-folder-open:before {\n content: \"\\f07c\";\n}\n.fa-arrows-v:before {\n content: \"\\f07d\";\n}\n.fa-arrows-h:before {\n content: \"\\f07e\";\n}\n.fa-bar-chart-o:before,\n.fa-bar-chart:before {\n content: \"\\f080\";\n}\n.fa-twitter-square:before {\n content: \"\\f081\";\n}\n.fa-facebook-square:before {\n content: \"\\f082\";\n}\n.fa-camera-retro:before {\n content: \"\\f083\";\n}\n.fa-key:before {\n content: \"\\f084\";\n}\n.fa-gears:before,\n.fa-cogs:before {\n content: \"\\f085\";\n}\n.fa-comments:before {\n content: \"\\f086\";\n}\n.fa-thumbs-o-up:before {\n content: \"\\f087\";\n}\n.fa-thumbs-o-down:before {\n content: \"\\f088\";\n}\n.fa-star-half:before {\n content: \"\\f089\";\n}\n.fa-heart-o:before {\n content: \"\\f08a\";\n}\n.fa-sign-out:before {\n content: \"\\f08b\";\n}\n.fa-linkedin-square:before {\n content: \"\\f08c\";\n}\n.fa-thumb-tack:before {\n content: \"\\f08d\";\n}\n.fa-external-link:before {\n content: \"\\f08e\";\n}\n.fa-sign-in:before {\n content: \"\\f090\";\n}\n.fa-trophy:before {\n content: \"\\f091\";\n}\n.fa-github-square:before {\n content: \"\\f092\";\n}\n.fa-upload:before {\n content: \"\\f093\";\n}\n.fa-lemon-o:before {\n content: \"\\f094\";\n}\n.fa-phone:before {\n content: \"\\f095\";\n}\n.fa-square-o:before {\n content: \"\\f096\";\n}\n.fa-bookmark-o:before {\n content: \"\\f097\";\n}\n.fa-phone-square:before {\n content: \"\\f098\";\n}\n.fa-twitter:before {\n content: \"\\f099\";\n}\n.fa-facebook-f:before,\n.fa-facebook:before {\n content: \"\\f09a\";\n}\n.fa-github:before {\n content: \"\\f09b\";\n}\n.fa-unlock:before {\n content: \"\\f09c\";\n}\n.fa-credit-card:before {\n content: \"\\f09d\";\n}\n.fa-feed:before,\n.fa-rss:before {\n content: \"\\f09e\";\n}\n.fa-hdd-o:before {\n content: \"\\f0a0\";\n}\n.fa-bullhorn:before {\n content: \"\\f0a1\";\n}\n.fa-bell:before {\n content: \"\\f0f3\";\n}\n.fa-certificate:before {\n content: \"\\f0a3\";\n}\n.fa-hand-o-right:before {\n content: \"\\f0a4\";\n}\n.fa-hand-o-left:before {\n content: \"\\f0a5\";\n}\n.fa-hand-o-up:before {\n content: \"\\f0a6\";\n}\n.fa-hand-o-down:before {\n content: \"\\f0a7\";\n}\n.fa-arrow-circle-left:before {\n content: \"\\f0a8\";\n}\n.fa-arrow-circle-right:before {\n content: \"\\f0a9\";\n}\n.fa-arrow-circle-up:before {\n content: \"\\f0aa\";\n}\n.fa-arrow-circle-down:before {\n content: \"\\f0ab\";\n}\n.fa-globe:before {\n content: \"\\f0ac\";\n}\n.fa-wrench:before {\n content: \"\\f0ad\";\n}\n.fa-tasks:before {\n content: \"\\f0ae\";\n}\n.fa-filter:before {\n content: \"\\f0b0\";\n}\n.fa-briefcase:before {\n content: \"\\f0b1\";\n}\n.fa-arrows-alt:before {\n content: \"\\f0b2\";\n}\n.fa-group:before,\n.fa-users:before {\n content: \"\\f0c0\";\n}\n.fa-chain:before,\n.fa-link:before {\n content: \"\\f0c1\";\n}\n.fa-cloud:before {\n content: \"\\f0c2\";\n}\n.fa-flask:before {\n content: \"\\f0c3\";\n}\n.fa-cut:before,\n.fa-scissors:before {\n content: \"\\f0c4\";\n}\n.fa-copy:before,\n.fa-files-o:before {\n content: \"\\f0c5\";\n}\n.fa-paperclip:before {\n content: \"\\f0c6\";\n}\n.fa-save:before,\n.fa-floppy-o:before {\n content: \"\\f0c7\";\n}\n.fa-square:before {\n content: \"\\f0c8\";\n}\n.fa-navicon:before,\n.fa-reorder:before,\n.fa-bars:before {\n content: \"\\f0c9\";\n}\n.fa-list-ul:before {\n content: \"\\f0ca\";\n}\n.fa-list-ol:before {\n content: \"\\f0cb\";\n}\n.fa-strikethrough:before {\n content: \"\\f0cc\";\n}\n.fa-underline:before {\n content: \"\\f0cd\";\n}\n.fa-table:before {\n content: \"\\f0ce\";\n}\n.fa-magic:before {\n content: \"\\f0d0\";\n}\n.fa-truck:before {\n content: \"\\f0d1\";\n}\n.fa-pinterest:before {\n content: \"\\f0d2\";\n}\n.fa-pinterest-square:before {\n content: \"\\f0d3\";\n}\n.fa-google-plus-square:before {\n content: \"\\f0d4\";\n}\n.fa-google-plus:before {\n content: \"\\f0d5\";\n}\n.fa-money:before {\n content: \"\\f0d6\";\n}\n.fa-caret-down:before {\n content: \"\\f0d7\";\n}\n.fa-caret-up:before {\n content: \"\\f0d8\";\n}\n.fa-caret-left:before {\n content: \"\\f0d9\";\n}\n.fa-caret-right:before {\n content: \"\\f0da\";\n}\n.fa-columns:before {\n content: \"\\f0db\";\n}\n.fa-unsorted:before,\n.fa-sort:before {\n content: \"\\f0dc\";\n}\n.fa-sort-down:before,\n.fa-sort-desc:before {\n content: \"\\f0dd\";\n}\n.fa-sort-up:before,\n.fa-sort-asc:before {\n content: \"\\f0de\";\n}\n.fa-envelope:before {\n content: \"\\f0e0\";\n}\n.fa-linkedin:before {\n content: \"\\f0e1\";\n}\n.fa-rotate-left:before,\n.fa-undo:before {\n content: \"\\f0e2\";\n}\n.fa-legal:before,\n.fa-gavel:before {\n content: \"\\f0e3\";\n}\n.fa-dashboard:before,\n.fa-tachometer:before {\n content: \"\\f0e4\";\n}\n.fa-comment-o:before {\n content: \"\\f0e5\";\n}\n.fa-comments-o:before {\n content: \"\\f0e6\";\n}\n.fa-flash:before,\n.fa-bolt:before {\n content: \"\\f0e7\";\n}\n.fa-sitemap:before {\n content: \"\\f0e8\";\n}\n.fa-umbrella:before {\n content: \"\\f0e9\";\n}\n.fa-paste:before,\n.fa-clipboard:before {\n content: \"\\f0ea\";\n}\n.fa-lightbulb-o:before {\n content: \"\\f0eb\";\n}\n.fa-exchange:before {\n content: \"\\f0ec\";\n}\n.fa-cloud-download:before {\n content: \"\\f0ed\";\n}\n.fa-cloud-upload:before {\n content: \"\\f0ee\";\n}\n.fa-user-md:before {\n content: \"\\f0f0\";\n}\n.fa-stethoscope:before {\n content: \"\\f0f1\";\n}\n.fa-suitcase:before {\n content: \"\\f0f2\";\n}\n.fa-bell-o:before {\n content: \"\\f0a2\";\n}\n.fa-coffee:before {\n content: \"\\f0f4\";\n}\n.fa-cutlery:before {\n content: \"\\f0f5\";\n}\n.fa-file-text-o:before {\n content: \"\\f0f6\";\n}\n.fa-building-o:before {\n content: \"\\f0f7\";\n}\n.fa-hospital-o:before {\n content: \"\\f0f8\";\n}\n.fa-ambulance:before {\n content: \"\\f0f9\";\n}\n.fa-medkit:before {\n content: \"\\f0fa\";\n}\n.fa-fighter-jet:before {\n content: \"\\f0fb\";\n}\n.fa-beer:before {\n content: \"\\f0fc\";\n}\n.fa-h-square:before {\n content: \"\\f0fd\";\n}\n.fa-plus-square:before {\n content: \"\\f0fe\";\n}\n.fa-angle-double-left:before {\n content: \"\\f100\";\n}\n.fa-angle-double-right:before {\n content: \"\\f101\";\n}\n.fa-angle-double-up:before {\n content: \"\\f102\";\n}\n.fa-angle-double-down:before {\n content: \"\\f103\";\n}\n.fa-angle-left:before {\n content: \"\\f104\";\n}\n.fa-angle-right:before {\n content: \"\\f105\";\n}\n.fa-angle-up:before {\n content: \"\\f106\";\n}\n.fa-angle-down:before {\n content: \"\\f107\";\n}\n.fa-desktop:before {\n content: \"\\f108\";\n}\n.fa-laptop:before {\n content: \"\\f109\";\n}\n.fa-tablet:before {\n content: \"\\f10a\";\n}\n.fa-mobile-phone:before,\n.fa-mobile:before {\n content: \"\\f10b\";\n}\n.fa-circle-o:before {\n content: \"\\f10c\";\n}\n.fa-quote-left:before {\n content: \"\\f10d\";\n}\n.fa-quote-right:before {\n content: \"\\f10e\";\n}\n.fa-spinner:before {\n content: \"\\f110\";\n}\n.fa-circle:before {\n content: \"\\f111\";\n}\n.fa-mail-reply:before,\n.fa-reply:before {\n content: \"\\f112\";\n}\n.fa-github-alt:before {\n content: \"\\f113\";\n}\n.fa-folder-o:before {\n content: \"\\f114\";\n}\n.fa-folder-open-o:before {\n content: \"\\f115\";\n}\n.fa-smile-o:before {\n content: \"\\f118\";\n}\n.fa-frown-o:before {\n content: \"\\f119\";\n}\n.fa-meh-o:before {\n content: \"\\f11a\";\n}\n.fa-gamepad:before {\n content: \"\\f11b\";\n}\n.fa-keyboard-o:before {\n content: \"\\f11c\";\n}\n.fa-flag-o:before {\n content: \"\\f11d\";\n}\n.fa-flag-checkered:before {\n content: \"\\f11e\";\n}\n.fa-terminal:before {\n content: \"\\f120\";\n}\n.fa-code:before {\n content: \"\\f121\";\n}\n.fa-mail-reply-all:before,\n.fa-reply-all:before {\n content: \"\\f122\";\n}\n.fa-star-half-empty:before,\n.fa-star-half-full:before,\n.fa-star-half-o:before {\n content: \"\\f123\";\n}\n.fa-location-arrow:before {\n content: \"\\f124\";\n}\n.fa-crop:before {\n content: \"\\f125\";\n}\n.fa-code-fork:before {\n content: \"\\f126\";\n}\n.fa-unlink:before,\n.fa-chain-broken:before {\n content: \"\\f127\";\n}\n.fa-question:before {\n content: \"\\f128\";\n}\n.fa-info:before {\n content: \"\\f129\";\n}\n.fa-exclamation:before {\n content: \"\\f12a\";\n}\n.fa-superscript:before {\n content: \"\\f12b\";\n}\n.fa-subscript:before {\n content: \"\\f12c\";\n}\n.fa-eraser:before {\n content: \"\\f12d\";\n}\n.fa-puzzle-piece:before {\n content: \"\\f12e\";\n}\n.fa-microphone:before {\n content: \"\\f130\";\n}\n.fa-microphone-slash:before {\n content: \"\\f131\";\n}\n.fa-shield:before {\n content: \"\\f132\";\n}\n.fa-calendar-o:before {\n content: \"\\f133\";\n}\n.fa-fire-extinguisher:before {\n content: \"\\f134\";\n}\n.fa-rocket:before {\n content: \"\\f135\";\n}\n.fa-maxcdn:before {\n content: \"\\f136\";\n}\n.fa-chevron-circle-left:before {\n content: \"\\f137\";\n}\n.fa-chevron-circle-right:before {\n content: \"\\f138\";\n}\n.fa-chevron-circle-up:before {\n content: \"\\f139\";\n}\n.fa-chevron-circle-down:before {\n content: \"\\f13a\";\n}\n.fa-html5:before {\n content: \"\\f13b\";\n}\n.fa-css3:before {\n content: \"\\f13c\";\n}\n.fa-anchor:before {\n content: \"\\f13d\";\n}\n.fa-unlock-alt:before {\n content: \"\\f13e\";\n}\n.fa-bullseye:before {\n content: \"\\f140\";\n}\n.fa-ellipsis-h:before {\n content: \"\\f141\";\n}\n.fa-ellipsis-v:before {\n content: \"\\f142\";\n}\n.fa-rss-square:before {\n content: \"\\f143\";\n}\n.fa-play-circle:before {\n content: \"\\f144\";\n}\n.fa-ticket:before {\n content: \"\\f145\";\n}\n.fa-minus-square:before {\n content: \"\\f146\";\n}\n.fa-minus-square-o:before {\n content: \"\\f147\";\n}\n.fa-level-up:before {\n content: \"\\f148\";\n}\n.fa-level-down:before {\n content: \"\\f149\";\n}\n.fa-check-square:before {\n content: \"\\f14a\";\n}\n.fa-pencil-square:before {\n content: \"\\f14b\";\n}\n.fa-external-link-square:before {\n content: \"\\f14c\";\n}\n.fa-share-square:before {\n content: \"\\f14d\";\n}\n.fa-compass:before {\n content: \"\\f14e\";\n}\n.fa-toggle-down:before,\n.fa-caret-square-o-down:before {\n content: \"\\f150\";\n}\n.fa-toggle-up:before,\n.fa-caret-square-o-up:before {\n content: \"\\f151\";\n}\n.fa-toggle-right:before,\n.fa-caret-square-o-right:before {\n content: \"\\f152\";\n}\n.fa-euro:before,\n.fa-eur:before {\n content: \"\\f153\";\n}\n.fa-gbp:before {\n content: \"\\f154\";\n}\n.fa-dollar:before,\n.fa-usd:before {\n content: \"\\f155\";\n}\n.fa-rupee:before,\n.fa-inr:before {\n content: \"\\f156\";\n}\n.fa-cny:before,\n.fa-rmb:before,\n.fa-yen:before,\n.fa-jpy:before {\n content: \"\\f157\";\n}\n.fa-ruble:before,\n.fa-rouble:before,\n.fa-rub:before {\n content: \"\\f158\";\n}\n.fa-won:before,\n.fa-krw:before {\n content: \"\\f159\";\n}\n.fa-bitcoin:before,\n.fa-btc:before {\n content: \"\\f15a\";\n}\n.fa-file:before {\n content: \"\\f15b\";\n}\n.fa-file-text:before {\n content: \"\\f15c\";\n}\n.fa-sort-alpha-asc:before {\n content: \"\\f15d\";\n}\n.fa-sort-alpha-desc:before {\n content: \"\\f15e\";\n}\n.fa-sort-amount-asc:before {\n content: \"\\f160\";\n}\n.fa-sort-amount-desc:before {\n content: \"\\f161\";\n}\n.fa-sort-numeric-asc:before {\n content: \"\\f162\";\n}\n.fa-sort-numeric-desc:before {\n content: \"\\f163\";\n}\n.fa-thumbs-up:before {\n content: \"\\f164\";\n}\n.fa-thumbs-down:before {\n content: \"\\f165\";\n}\n.fa-youtube-square:before {\n content: \"\\f166\";\n}\n.fa-youtube:before {\n content: \"\\f167\";\n}\n.fa-xing:before {\n content: \"\\f168\";\n}\n.fa-xing-square:before {\n content: \"\\f169\";\n}\n.fa-youtube-play:before {\n content: \"\\f16a\";\n}\n.fa-dropbox:before {\n content: \"\\f16b\";\n}\n.fa-stack-overflow:before {\n content: \"\\f16c\";\n}\n.fa-instagram:before {\n content: \"\\f16d\";\n}\n.fa-flickr:before {\n content: \"\\f16e\";\n}\n.fa-adn:before {\n content: \"\\f170\";\n}\n.fa-bitbucket:before {\n content: \"\\f171\";\n}\n.fa-bitbucket-square:before {\n content: \"\\f172\";\n}\n.fa-tumblr:before {\n content: \"\\f173\";\n}\n.fa-tumblr-square:before {\n content: \"\\f174\";\n}\n.fa-long-arrow-down:before {\n content: \"\\f175\";\n}\n.fa-long-arrow-up:before {\n content: \"\\f176\";\n}\n.fa-long-arrow-left:before {\n content: \"\\f177\";\n}\n.fa-long-arrow-right:before {\n content: \"\\f178\";\n}\n.fa-apple:before {\n content: \"\\f179\";\n}\n.fa-windows:before {\n content: \"\\f17a\";\n}\n.fa-android:before {\n content: \"\\f17b\";\n}\n.fa-linux:before {\n content: \"\\f17c\";\n}\n.fa-dribbble:before {\n content: \"\\f17d\";\n}\n.fa-skype:before {\n content: \"\\f17e\";\n}\n.fa-foursquare:before {\n content: \"\\f180\";\n}\n.fa-trello:before {\n content: \"\\f181\";\n}\n.fa-female:before {\n content: \"\\f182\";\n}\n.fa-male:before {\n content: \"\\f183\";\n}\n.fa-gittip:before,\n.fa-gratipay:before {\n content: \"\\f184\";\n}\n.fa-sun-o:before {\n content: \"\\f185\";\n}\n.fa-moon-o:before {\n content: \"\\f186\";\n}\n.fa-archive:before {\n content: \"\\f187\";\n}\n.fa-bug:before {\n content: \"\\f188\";\n}\n.fa-vk:before {\n content: \"\\f189\";\n}\n.fa-weibo:before {\n content: \"\\f18a\";\n}\n.fa-renren:before {\n content: \"\\f18b\";\n}\n.fa-pagelines:before {\n content: \"\\f18c\";\n}\n.fa-stack-exchange:before {\n content: \"\\f18d\";\n}\n.fa-arrow-circle-o-right:before {\n content: \"\\f18e\";\n}\n.fa-arrow-circle-o-left:before {\n content: \"\\f190\";\n}\n.fa-toggle-left:before,\n.fa-caret-square-o-left:before {\n content: \"\\f191\";\n}\n.fa-dot-circle-o:before {\n content: \"\\f192\";\n}\n.fa-wheelchair:before {\n content: \"\\f193\";\n}\n.fa-vimeo-square:before {\n content: \"\\f194\";\n}\n.fa-turkish-lira:before,\n.fa-try:before {\n content: \"\\f195\";\n}\n.fa-plus-square-o:before {\n content: \"\\f196\";\n}\n.fa-space-shuttle:before {\n content: \"\\f197\";\n}\n.fa-slack:before {\n content: \"\\f198\";\n}\n.fa-envelope-square:before {\n content: \"\\f199\";\n}\n.fa-wordpress:before {\n content: \"\\f19a\";\n}\n.fa-openid:before {\n content: \"\\f19b\";\n}\n.fa-institution:before,\n.fa-bank:before,\n.fa-university:before {\n content: \"\\f19c\";\n}\n.fa-mortar-board:before,\n.fa-graduation-cap:before {\n content: \"\\f19d\";\n}\n.fa-yahoo:before {\n content: \"\\f19e\";\n}\n.fa-google:before {\n content: \"\\f1a0\";\n}\n.fa-reddit:before {\n content: \"\\f1a1\";\n}\n.fa-reddit-square:before {\n content: \"\\f1a2\";\n}\n.fa-stumbleupon-circle:before {\n content: \"\\f1a3\";\n}\n.fa-stumbleupon:before {\n content: \"\\f1a4\";\n}\n.fa-delicious:before {\n content: \"\\f1a5\";\n}\n.fa-digg:before {\n content: \"\\f1a6\";\n}\n.fa-pied-piper-pp:before {\n content: \"\\f1a7\";\n}\n.fa-pied-piper-alt:before {\n content: \"\\f1a8\";\n}\n.fa-drupal:before {\n content: \"\\f1a9\";\n}\n.fa-joomla:before {\n content: \"\\f1aa\";\n}\n.fa-language:before {\n content: \"\\f1ab\";\n}\n.fa-fax:before {\n content: \"\\f1ac\";\n}\n.fa-building:before {\n content: \"\\f1ad\";\n}\n.fa-child:before {\n content: \"\\f1ae\";\n}\n.fa-paw:before {\n content: \"\\f1b0\";\n}\n.fa-spoon:before {\n content: \"\\f1b1\";\n}\n.fa-cube:before {\n content: \"\\f1b2\";\n}\n.fa-cubes:before {\n content: \"\\f1b3\";\n}\n.fa-behance:before {\n content: \"\\f1b4\";\n}\n.fa-behance-square:before {\n content: \"\\f1b5\";\n}\n.fa-steam:before {\n content: \"\\f1b6\";\n}\n.fa-steam-square:before {\n content: \"\\f1b7\";\n}\n.fa-recycle:before {\n content: \"\\f1b8\";\n}\n.fa-automobile:before,\n.fa-car:before {\n content: \"\\f1b9\";\n}\n.fa-cab:before,\n.fa-taxi:before {\n content: \"\\f1ba\";\n}\n.fa-tree:before {\n content: \"\\f1bb\";\n}\n.fa-spotify:before {\n content: \"\\f1bc\";\n}\n.fa-deviantart:before {\n content: \"\\f1bd\";\n}\n.fa-soundcloud:before {\n content: \"\\f1be\";\n}\n.fa-database:before {\n content: \"\\f1c0\";\n}\n.fa-file-pdf-o:before {\n content: \"\\f1c1\";\n}\n.fa-file-word-o:before {\n content: \"\\f1c2\";\n}\n.fa-file-excel-o:before {\n content: \"\\f1c3\";\n}\n.fa-file-powerpoint-o:before {\n content: \"\\f1c4\";\n}\n.fa-file-photo-o:before,\n.fa-file-picture-o:before,\n.fa-file-image-o:before {\n content: \"\\f1c5\";\n}\n.fa-file-zip-o:before,\n.fa-file-archive-o:before {\n content: \"\\f1c6\";\n}\n.fa-file-sound-o:before,\n.fa-file-audio-o:before {\n content: \"\\f1c7\";\n}\n.fa-file-movie-o:before,\n.fa-file-video-o:before {\n content: \"\\f1c8\";\n}\n.fa-file-code-o:before {\n content: \"\\f1c9\";\n}\n.fa-vine:before {\n content: \"\\f1ca\";\n}\n.fa-codepen:before {\n content: \"\\f1cb\";\n}\n.fa-jsfiddle:before {\n content: \"\\f1cc\";\n}\n.fa-life-bouy:before,\n.fa-life-buoy:before,\n.fa-life-saver:before,\n.fa-support:before,\n.fa-life-ring:before {\n content: \"\\f1cd\";\n}\n.fa-circle-o-notch:before {\n content: \"\\f1ce\";\n}\n.fa-ra:before,\n.fa-resistance:before,\n.fa-rebel:before {\n content: \"\\f1d0\";\n}\n.fa-ge:before,\n.fa-empire:before {\n content: \"\\f1d1\";\n}\n.fa-git-square:before {\n content: \"\\f1d2\";\n}\n.fa-git:before {\n content: \"\\f1d3\";\n}\n.fa-y-combinator-square:before,\n.fa-yc-square:before,\n.fa-hacker-news:before {\n content: \"\\f1d4\";\n}\n.fa-tencent-weibo:before {\n content: \"\\f1d5\";\n}\n.fa-qq:before {\n content: \"\\f1d6\";\n}\n.fa-wechat:before,\n.fa-weixin:before {\n content: \"\\f1d7\";\n}\n.fa-send:before,\n.fa-paper-plane:before {\n content: \"\\f1d8\";\n}\n.fa-send-o:before,\n.fa-paper-plane-o:before {\n content: \"\\f1d9\";\n}\n.fa-history:before {\n content: \"\\f1da\";\n}\n.fa-circle-thin:before {\n content: \"\\f1db\";\n}\n.fa-header:before {\n content: \"\\f1dc\";\n}\n.fa-paragraph:before {\n content: \"\\f1dd\";\n}\n.fa-sliders:before {\n content: \"\\f1de\";\n}\n.fa-share-alt:before {\n content: \"\\f1e0\";\n}\n.fa-share-alt-square:before {\n content: \"\\f1e1\";\n}\n.fa-bomb:before {\n content: \"\\f1e2\";\n}\n.fa-soccer-ball-o:before,\n.fa-futbol-o:before {\n content: \"\\f1e3\";\n}\n.fa-tty:before {\n content: \"\\f1e4\";\n}\n.fa-binoculars:before {\n content: \"\\f1e5\";\n}\n.fa-plug:before {\n content: \"\\f1e6\";\n}\n.fa-slideshare:before {\n content: \"\\f1e7\";\n}\n.fa-twitch:before {\n content: \"\\f1e8\";\n}\n.fa-yelp:before {\n content: \"\\f1e9\";\n}\n.fa-newspaper-o:before {\n content: \"\\f1ea\";\n}\n.fa-wifi:before {\n content: \"\\f1eb\";\n}\n.fa-calculator:before {\n content: \"\\f1ec\";\n}\n.fa-paypal:before {\n content: \"\\f1ed\";\n}\n.fa-google-wallet:before {\n content: \"\\f1ee\";\n}\n.fa-cc-visa:before {\n content: \"\\f1f0\";\n}\n.fa-cc-mastercard:before {\n content: \"\\f1f1\";\n}\n.fa-cc-discover:before {\n content: \"\\f1f2\";\n}\n.fa-cc-amex:before {\n content: \"\\f1f3\";\n}\n.fa-cc-paypal:before {\n content: \"\\f1f4\";\n}\n.fa-cc-stripe:before {\n content: \"\\f1f5\";\n}\n.fa-bell-slash:before {\n content: \"\\f1f6\";\n}\n.fa-bell-slash-o:before {\n content: \"\\f1f7\";\n}\n.fa-trash:before {\n content: \"\\f1f8\";\n}\n.fa-copyright:before {\n content: \"\\f1f9\";\n}\n.fa-at:before {\n content: \"\\f1fa\";\n}\n.fa-eyedropper:before {\n content: \"\\f1fb\";\n}\n.fa-paint-brush:before {\n content: \"\\f1fc\";\n}\n.fa-birthday-cake:before {\n content: \"\\f1fd\";\n}\n.fa-area-chart:before {\n content: \"\\f1fe\";\n}\n.fa-pie-chart:before {\n content: \"\\f200\";\n}\n.fa-line-chart:before {\n content: \"\\f201\";\n}\n.fa-lastfm:before {\n content: \"\\f202\";\n}\n.fa-lastfm-square:before {\n content: \"\\f203\";\n}\n.fa-toggle-off:before {\n content: \"\\f204\";\n}\n.fa-toggle-on:before {\n content: \"\\f205\";\n}\n.fa-bicycle:before {\n content: \"\\f206\";\n}\n.fa-bus:before {\n content: \"\\f207\";\n}\n.fa-ioxhost:before {\n content: \"\\f208\";\n}\n.fa-angellist:before {\n content: \"\\f209\";\n}\n.fa-cc:before {\n content: \"\\f20a\";\n}\n.fa-shekel:before,\n.fa-sheqel:before,\n.fa-ils:before {\n content: \"\\f20b\";\n}\n.fa-meanpath:before {\n content: \"\\f20c\";\n}\n.fa-buysellads:before {\n content: \"\\f20d\";\n}\n.fa-connectdevelop:before {\n content: \"\\f20e\";\n}\n.fa-dashcube:before {\n content: \"\\f210\";\n}\n.fa-forumbee:before {\n content: \"\\f211\";\n}\n.fa-leanpub:before {\n content: \"\\f212\";\n}\n.fa-sellsy:before {\n content: \"\\f213\";\n}\n.fa-shirtsinbulk:before {\n content: \"\\f214\";\n}\n.fa-simplybuilt:before {\n content: \"\\f215\";\n}\n.fa-skyatlas:before {\n content: \"\\f216\";\n}\n.fa-cart-plus:before {\n content: \"\\f217\";\n}\n.fa-cart-arrow-down:before {\n content: \"\\f218\";\n}\n.fa-diamond:before {\n content: \"\\f219\";\n}\n.fa-ship:before {\n content: \"\\f21a\";\n}\n.fa-user-secret:before {\n content: \"\\f21b\";\n}\n.fa-motorcycle:before {\n content: \"\\f21c\";\n}\n.fa-street-view:before {\n content: \"\\f21d\";\n}\n.fa-heartbeat:before {\n content: \"\\f21e\";\n}\n.fa-venus:before {\n content: \"\\f221\";\n}\n.fa-mars:before {\n content: \"\\f222\";\n}\n.fa-mercury:before {\n content: \"\\f223\";\n}\n.fa-intersex:before,\n.fa-transgender:before {\n content: \"\\f224\";\n}\n.fa-transgender-alt:before {\n content: \"\\f225\";\n}\n.fa-venus-double:before {\n content: \"\\f226\";\n}\n.fa-mars-double:before {\n content: \"\\f227\";\n}\n.fa-venus-mars:before {\n content: \"\\f228\";\n}\n.fa-mars-stroke:before {\n content: \"\\f229\";\n}\n.fa-mars-stroke-v:before {\n content: \"\\f22a\";\n}\n.fa-mars-stroke-h:before {\n content: \"\\f22b\";\n}\n.fa-neuter:before {\n content: \"\\f22c\";\n}\n.fa-genderless:before {\n content: \"\\f22d\";\n}\n.fa-facebook-official:before {\n content: \"\\f230\";\n}\n.fa-pinterest-p:before {\n content: \"\\f231\";\n}\n.fa-whatsapp:before {\n content: \"\\f232\";\n}\n.fa-server:before {\n content: \"\\f233\";\n}\n.fa-user-plus:before {\n content: \"\\f234\";\n}\n.fa-user-times:before {\n content: \"\\f235\";\n}\n.fa-hotel:before,\n.fa-bed:before {\n content: \"\\f236\";\n}\n.fa-viacoin:before {\n content: \"\\f237\";\n}\n.fa-train:before {\n content: \"\\f238\";\n}\n.fa-subway:before {\n content: \"\\f239\";\n}\n.fa-medium:before {\n content: \"\\f23a\";\n}\n.fa-yc:before,\n.fa-y-combinator:before {\n content: \"\\f23b\";\n}\n.fa-optin-monster:before {\n content: \"\\f23c\";\n}\n.fa-opencart:before {\n content: \"\\f23d\";\n}\n.fa-expeditedssl:before {\n content: \"\\f23e\";\n}\n.fa-battery-4:before,\n.fa-battery:before,\n.fa-battery-full:before {\n content: \"\\f240\";\n}\n.fa-battery-3:before,\n.fa-battery-three-quarters:before {\n content: \"\\f241\";\n}\n.fa-battery-2:before,\n.fa-battery-half:before {\n content: \"\\f242\";\n}\n.fa-battery-1:before,\n.fa-battery-quarter:before {\n content: \"\\f243\";\n}\n.fa-battery-0:before,\n.fa-battery-empty:before {\n content: \"\\f244\";\n}\n.fa-mouse-pointer:before {\n content: \"\\f245\";\n}\n.fa-i-cursor:before {\n content: \"\\f246\";\n}\n.fa-object-group:before {\n content: \"\\f247\";\n}\n.fa-object-ungroup:before {\n content: \"\\f248\";\n}\n.fa-sticky-note:before {\n content: \"\\f249\";\n}\n.fa-sticky-note-o:before {\n content: \"\\f24a\";\n}\n.fa-cc-jcb:before {\n content: \"\\f24b\";\n}\n.fa-cc-diners-club:before {\n content: \"\\f24c\";\n}\n.fa-clone:before {\n content: \"\\f24d\";\n}\n.fa-balance-scale:before {\n content: \"\\f24e\";\n}\n.fa-hourglass-o:before {\n content: \"\\f250\";\n}\n.fa-hourglass-1:before,\n.fa-hourglass-start:before {\n content: \"\\f251\";\n}\n.fa-hourglass-2:before,\n.fa-hourglass-half:before {\n content: \"\\f252\";\n}\n.fa-hourglass-3:before,\n.fa-hourglass-end:before {\n content: \"\\f253\";\n}\n.fa-hourglass:before {\n content: \"\\f254\";\n}\n.fa-hand-grab-o:before,\n.fa-hand-rock-o:before {\n content: \"\\f255\";\n}\n.fa-hand-stop-o:before,\n.fa-hand-paper-o:before {\n content: \"\\f256\";\n}\n.fa-hand-scissors-o:before {\n content: \"\\f257\";\n}\n.fa-hand-lizard-o:before {\n content: \"\\f258\";\n}\n.fa-hand-spock-o:before {\n content: \"\\f259\";\n}\n.fa-hand-pointer-o:before {\n content: \"\\f25a\";\n}\n.fa-hand-peace-o:before {\n content: \"\\f25b\";\n}\n.fa-trademark:before {\n content: \"\\f25c\";\n}\n.fa-registered:before {\n content: \"\\f25d\";\n}\n.fa-creative-commons:before {\n content: \"\\f25e\";\n}\n.fa-gg:before {\n content: \"\\f260\";\n}\n.fa-gg-circle:before {\n content: \"\\f261\";\n}\n.fa-tripadvisor:before {\n content: \"\\f262\";\n}\n.fa-odnoklassniki:before {\n content: \"\\f263\";\n}\n.fa-odnoklassniki-square:before {\n content: \"\\f264\";\n}\n.fa-get-pocket:before {\n content: \"\\f265\";\n}\n.fa-wikipedia-w:before {\n content: \"\\f266\";\n}\n.fa-safari:before {\n content: \"\\f267\";\n}\n.fa-chrome:before {\n content: \"\\f268\";\n}\n.fa-firefox:before {\n content: \"\\f269\";\n}\n.fa-opera:before {\n content: \"\\f26a\";\n}\n.fa-internet-explorer:before {\n content: \"\\f26b\";\n}\n.fa-tv:before,\n.fa-television:before {\n content: \"\\f26c\";\n}\n.fa-contao:before {\n content: \"\\f26d\";\n}\n.fa-500px:before {\n content: \"\\f26e\";\n}\n.fa-amazon:before {\n content: \"\\f270\";\n}\n.fa-calendar-plus-o:before {\n content: \"\\f271\";\n}\n.fa-calendar-minus-o:before {\n content: \"\\f272\";\n}\n.fa-calendar-times-o:before {\n content: \"\\f273\";\n}\n.fa-calendar-check-o:before {\n content: \"\\f274\";\n}\n.fa-industry:before {\n content: \"\\f275\";\n}\n.fa-map-pin:before {\n content: \"\\f276\";\n}\n.fa-map-signs:before {\n content: \"\\f277\";\n}\n.fa-map-o:before {\n content: \"\\f278\";\n}\n.fa-map:before {\n content: \"\\f279\";\n}\n.fa-commenting:before {\n content: \"\\f27a\";\n}\n.fa-commenting-o:before {\n content: \"\\f27b\";\n}\n.fa-houzz:before {\n content: \"\\f27c\";\n}\n.fa-vimeo:before {\n content: \"\\f27d\";\n}\n.fa-black-tie:before {\n content: \"\\f27e\";\n}\n.fa-fonticons:before {\n content: \"\\f280\";\n}\n.fa-reddit-alien:before {\n content: \"\\f281\";\n}\n.fa-edge:before {\n content: \"\\f282\";\n}\n.fa-credit-card-alt:before {\n content: \"\\f283\";\n}\n.fa-codiepie:before {\n content: \"\\f284\";\n}\n.fa-modx:before {\n content: \"\\f285\";\n}\n.fa-fort-awesome:before {\n content: \"\\f286\";\n}\n.fa-usb:before {\n content: \"\\f287\";\n}\n.fa-product-hunt:before {\n content: \"\\f288\";\n}\n.fa-mixcloud:before {\n content: \"\\f289\";\n}\n.fa-scribd:before {\n content: \"\\f28a\";\n}\n.fa-pause-circle:before {\n content: \"\\f28b\";\n}\n.fa-pause-circle-o:before {\n content: \"\\f28c\";\n}\n.fa-stop-circle:before {\n content: \"\\f28d\";\n}\n.fa-stop-circle-o:before {\n content: \"\\f28e\";\n}\n.fa-shopping-bag:before {\n content: \"\\f290\";\n}\n.fa-shopping-basket:before {\n content: \"\\f291\";\n}\n.fa-hashtag:before {\n content: \"\\f292\";\n}\n.fa-bluetooth:before {\n content: \"\\f293\";\n}\n.fa-bluetooth-b:before {\n content: \"\\f294\";\n}\n.fa-percent:before {\n content: \"\\f295\";\n}\n.fa-gitlab:before {\n content: \"\\f296\";\n}\n.fa-wpbeginner:before {\n content: \"\\f297\";\n}\n.fa-wpforms:before {\n content: \"\\f298\";\n}\n.fa-envira:before {\n content: \"\\f299\";\n}\n.fa-universal-access:before {\n content: \"\\f29a\";\n}\n.fa-wheelchair-alt:before {\n content: \"\\f29b\";\n}\n.fa-question-circle-o:before {\n content: \"\\f29c\";\n}\n.fa-blind:before {\n content: \"\\f29d\";\n}\n.fa-audio-description:before {\n content: \"\\f29e\";\n}\n.fa-volume-control-phone:before {\n content: \"\\f2a0\";\n}\n.fa-braille:before {\n content: \"\\f2a1\";\n}\n.fa-assistive-listening-systems:before {\n content: \"\\f2a2\";\n}\n.fa-asl-interpreting:before,\n.fa-american-sign-language-interpreting:before {\n content: \"\\f2a3\";\n}\n.fa-deafness:before,\n.fa-hard-of-hearing:before,\n.fa-deaf:before {\n content: \"\\f2a4\";\n}\n.fa-glide:before {\n content: \"\\f2a5\";\n}\n.fa-glide-g:before {\n content: \"\\f2a6\";\n}\n.fa-signing:before,\n.fa-sign-language:before {\n content: \"\\f2a7\";\n}\n.fa-low-vision:before {\n content: \"\\f2a8\";\n}\n.fa-viadeo:before {\n content: \"\\f2a9\";\n}\n.fa-viadeo-square:before {\n content: \"\\f2aa\";\n}\n.fa-snapchat:before {\n content: \"\\f2ab\";\n}\n.fa-snapchat-ghost:before {\n content: \"\\f2ac\";\n}\n.fa-snapchat-square:before {\n content: \"\\f2ad\";\n}\n.fa-pied-piper:before {\n content: \"\\f2ae\";\n}\n.fa-first-order:before {\n content: \"\\f2b0\";\n}\n.fa-yoast:before {\n content: \"\\f2b1\";\n}\n.fa-themeisle:before {\n content: \"\\f2b2\";\n}\n.fa-google-plus-circle:before,\n.fa-google-plus-official:before {\n content: \"\\f2b3\";\n}\n.fa-fa:before,\n.fa-font-awesome:before {\n content: \"\\f2b4\";\n}\n.fa-handshake-o:before {\n content: \"\\f2b5\";\n}\n.fa-envelope-open:before {\n content: \"\\f2b6\";\n}\n.fa-envelope-open-o:before {\n content: \"\\f2b7\";\n}\n.fa-linode:before {\n content: \"\\f2b8\";\n}\n.fa-address-book:before {\n content: \"\\f2b9\";\n}\n.fa-address-book-o:before {\n content: \"\\f2ba\";\n}\n.fa-vcard:before,\n.fa-address-card:before {\n content: \"\\f2bb\";\n}\n.fa-vcard-o:before,\n.fa-address-card-o:before {\n content: \"\\f2bc\";\n}\n.fa-user-circle:before {\n content: \"\\f2bd\";\n}\n.fa-user-circle-o:before {\n content: \"\\f2be\";\n}\n.fa-user-o:before {\n content: \"\\f2c0\";\n}\n.fa-id-badge:before {\n content: \"\\f2c1\";\n}\n.fa-drivers-license:before,\n.fa-id-card:before {\n content: \"\\f2c2\";\n}\n.fa-drivers-license-o:before,\n.fa-id-card-o:before {\n content: \"\\f2c3\";\n}\n.fa-quora:before {\n content: \"\\f2c4\";\n}\n.fa-free-code-camp:before {\n content: \"\\f2c5\";\n}\n.fa-telegram:before {\n content: \"\\f2c6\";\n}\n.fa-thermometer-4:before,\n.fa-thermometer:before,\n.fa-thermometer-full:before {\n content: \"\\f2c7\";\n}\n.fa-thermometer-3:before,\n.fa-thermometer-three-quarters:before {\n content: \"\\f2c8\";\n}\n.fa-thermometer-2:before,\n.fa-thermometer-half:before {\n content: \"\\f2c9\";\n}\n.fa-thermometer-1:before,\n.fa-thermometer-quarter:before {\n content: \"\\f2ca\";\n}\n.fa-thermometer-0:before,\n.fa-thermometer-empty:before {\n content: \"\\f2cb\";\n}\n.fa-shower:before {\n content: \"\\f2cc\";\n}\n.fa-bathtub:before,\n.fa-s15:before,\n.fa-bath:before {\n content: \"\\f2cd\";\n}\n.fa-podcast:before {\n content: \"\\f2ce\";\n}\n.fa-window-maximize:before {\n content: \"\\f2d0\";\n}\n.fa-window-minimize:before {\n content: \"\\f2d1\";\n}\n.fa-window-restore:before {\n content: \"\\f2d2\";\n}\n.fa-times-rectangle:before,\n.fa-window-close:before {\n content: \"\\f2d3\";\n}\n.fa-times-rectangle-o:before,\n.fa-window-close-o:before {\n content: \"\\f2d4\";\n}\n.fa-bandcamp:before {\n content: \"\\f2d5\";\n}\n.fa-grav:before {\n content: \"\\f2d6\";\n}\n.fa-etsy:before {\n content: \"\\f2d7\";\n}\n.fa-imdb:before {\n content: \"\\f2d8\";\n}\n.fa-ravelry:before {\n content: \"\\f2d9\";\n}\n.fa-eercast:before {\n content: \"\\f2da\";\n}\n.fa-microchip:before {\n content: \"\\f2db\";\n}\n.fa-snowflake-o:before {\n content: \"\\f2dc\";\n}\n.fa-superpowers:before {\n content: \"\\f2dd\";\n}\n.fa-wpexplorer:before {\n content: \"\\f2de\";\n}\n.fa-meetup:before {\n content: \"\\f2e0\";\n}\n.sr-only {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n border: 0;\n}\n.sr-only-focusable:active,\n.sr-only-focusable:focus {\n position: static;\n width: auto;\n height: auto;\n margin: 0;\n overflow: visible;\n clip: auto;\n}\n"],"sourceRoot":""} \ No newline at end of file diff --git a/priv/static/packs/flavours/vanilla/share.js b/priv/static/packs/flavours/vanilla/share.js deleted file mode 100644 index fdfa039cb..000000000 Binary files a/priv/static/packs/flavours/vanilla/share.js and /dev/null differ diff --git a/priv/static/packs/flavours/vanilla/share.js.LICENSE.txt b/priv/static/packs/flavours/vanilla/share.js.LICENSE.txt deleted file mode 100644 index 2ea8cbae4..000000000 --- a/priv/static/packs/flavours/vanilla/share.js.LICENSE.txt +++ /dev/null @@ -1,191 +0,0 @@ -/* -object-assign -(c) Sindre Sorhus -@license MIT -*/ - -/*! - Copyright (c) 2017 Jed Watson. - Licensed under the MIT License (MIT), see - http://jedwatson.github.io/classnames -*/ - -/*! - * escape-html - * Copyright(c) 2012-2013 TJ Holowaychuk - * Copyright(c) 2015 Andreas Lubbe - * Copyright(c) 2015 Tiancheng "Timothy" Gu - * MIT Licensed - */ - -/*! - * wavesurfer.js 3.3.1 (2020-01-14) - * https://github.com/katspaugh/wavesurfer.js - * @license BSD-3-Clause - */ - -/*! ./ajax */ - -/*! ./drawer */ - -/*! ./drawer.canvasentry */ - -/*! ./drawer.multicanvas */ - -/*! ./extend */ - -/*! ./fetch */ - -/*! ./frame */ - -/*! ./get-id */ - -/*! ./max */ - -/*! ./mediaelement */ - -/*! ./mediaelement-webaudio */ - -/*! ./min */ - -/*! ./observer */ - -/*! ./peakcache */ - -/*! ./prevent-click */ - -/*! ./request-animation-frame */ - -/*! ./style */ - -/*! ./util */ - -/*! ./util/get-id */ - -/*! ./util/style */ - -/*! ./webaudio */ - -/*! debounce */ - -/*! no static exports found */ - -/*!***********************!*\ - !*** ./src/drawer.js ***! - \***********************/ - -/*!*************************!*\ - !*** ./src/util/max.js ***! - \*************************/ - -/*!*************************!*\ - !*** ./src/util/min.js ***! - \*************************/ - -/*!*************************!*\ - !*** ./src/webaudio.js ***! - \*************************/ - -/*!**************************!*\ - !*** ./src/peakcache.js ***! - \**************************/ - -/*!**************************!*\ - !*** ./src/util/ajax.js ***! - \**************************/ - -/*!***************************!*\ - !*** ./src/util/fetch.js ***! - \***************************/ - -/*!***************************!*\ - !*** ./src/util/frame.js ***! - \***************************/ - -/*!***************************!*\ - !*** ./src/util/index.js ***! - \***************************/ - -/*!***************************!*\ - !*** ./src/util/style.js ***! - \***************************/ - -/*!***************************!*\ - !*** ./src/wavesurfer.js ***! - \***************************/ - -/*!****************************!*\ - !*** ./src/util/extend.js ***! - \****************************/ - -/*!****************************!*\ - !*** ./src/util/get-id.js ***! - \****************************/ - -/*!*****************************!*\ - !*** ./src/mediaelement.js ***! - \*****************************/ - -/*!******************************!*\ - !*** ./src/util/observer.js ***! - \******************************/ - -/*!***********************************!*\ - !*** ./src/drawer.canvasentry.js ***! - \***********************************/ - -/*!***********************************!*\ - !*** ./src/drawer.multicanvas.js ***! - \***********************************/ - -/*!***********************************!*\ - !*** ./src/util/prevent-click.js ***! - \***********************************/ - -/*!**************************************!*\ - !*** ./src/mediaelement-webaudio.js ***! - \**************************************/ - -/*!****************************************!*\ - !*** ./node_modules/debounce/index.js ***! - \****************************************/ - -/*!*********************************************!*\ - !*** ./src/util/request-animation-frame.js ***! - \*********************************************/ - -/** @license React v0.19.0 - * scheduler.production.min.js - * - * Copyright (c) Facebook, Inc. and its affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */ - -/** @license React v16.12.0 - * react-is.production.min.js - * - * Copyright (c) Facebook, Inc. and its affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */ - -/** @license React v16.13.0 - * react-dom.production.min.js - * - * Copyright (c) Facebook, Inc. and its affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */ - -/** @license React v16.13.1 - * react.production.min.js - * - * Copyright (c) Facebook, Inc. and its affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */ diff --git a/priv/static/packs/flavours/vanilla/share.js.map b/priv/static/packs/flavours/vanilla/share.js.map deleted file mode 100644 index 8aefdd1c4..000000000 Binary files a/priv/static/packs/flavours/vanilla/share.js.map and /dev/null differ diff --git a/priv/static/packs/locales.js b/priv/static/packs/locales.js deleted file mode 100644 index ad614f53b..000000000 Binary files a/priv/static/packs/locales.js and /dev/null differ diff --git a/priv/static/packs/locales.js.map b/priv/static/packs/locales.js.map deleted file mode 100644 index 45f8b2b61..000000000 Binary files a/priv/static/packs/locales.js.map and /dev/null differ diff --git a/priv/static/packs/locales/glitch/ar.js b/priv/static/packs/locales/glitch/ar.js deleted file mode 100644 index d99aca589..000000000 Binary files a/priv/static/packs/locales/glitch/ar.js and /dev/null differ diff --git a/priv/static/packs/locales/glitch/ar.js.map b/priv/static/packs/locales/glitch/ar.js.map deleted file mode 100644 index 86279ae70..000000000 Binary files a/priv/static/packs/locales/glitch/ar.js.map and /dev/null differ diff --git a/priv/static/packs/locales/glitch/ast.js b/priv/static/packs/locales/glitch/ast.js deleted file mode 100644 index 692011d30..000000000 Binary files a/priv/static/packs/locales/glitch/ast.js and /dev/null differ diff --git a/priv/static/packs/locales/glitch/ast.js.map b/priv/static/packs/locales/glitch/ast.js.map deleted file mode 100644 index 7c0782e9d..000000000 Binary files a/priv/static/packs/locales/glitch/ast.js.map and /dev/null differ diff --git a/priv/static/packs/locales/glitch/bg.js b/priv/static/packs/locales/glitch/bg.js deleted file mode 100644 index f657dbfdd..000000000 Binary files a/priv/static/packs/locales/glitch/bg.js and /dev/null differ diff --git a/priv/static/packs/locales/glitch/bg.js.map b/priv/static/packs/locales/glitch/bg.js.map deleted file mode 100644 index d881df95c..000000000 Binary files a/priv/static/packs/locales/glitch/bg.js.map and /dev/null differ diff --git a/priv/static/packs/locales/glitch/bn.js b/priv/static/packs/locales/glitch/bn.js deleted file mode 100644 index 961c6ac85..000000000 Binary files a/priv/static/packs/locales/glitch/bn.js and /dev/null differ diff --git a/priv/static/packs/locales/glitch/bn.js.map b/priv/static/packs/locales/glitch/bn.js.map deleted file mode 100644 index 5af427b0f..000000000 Binary files a/priv/static/packs/locales/glitch/bn.js.map and /dev/null differ diff --git a/priv/static/packs/locales/glitch/br.js b/priv/static/packs/locales/glitch/br.js deleted file mode 100644 index 6db685b77..000000000 Binary files a/priv/static/packs/locales/glitch/br.js and /dev/null differ diff --git a/priv/static/packs/locales/glitch/br.js.map b/priv/static/packs/locales/glitch/br.js.map deleted file mode 100644 index f1a4aa7fc..000000000 Binary files a/priv/static/packs/locales/glitch/br.js.map and /dev/null differ diff --git a/priv/static/packs/locales/glitch/ca.js b/priv/static/packs/locales/glitch/ca.js deleted file mode 100644 index 23b6e5a69..000000000 Binary files a/priv/static/packs/locales/glitch/ca.js and /dev/null differ diff --git a/priv/static/packs/locales/glitch/ca.js.map b/priv/static/packs/locales/glitch/ca.js.map deleted file mode 100644 index 94b5ce457..000000000 Binary files a/priv/static/packs/locales/glitch/ca.js.map and /dev/null differ diff --git a/priv/static/packs/locales/glitch/co.js b/priv/static/packs/locales/glitch/co.js deleted file mode 100644 index 986d0b547..000000000 Binary files a/priv/static/packs/locales/glitch/co.js and /dev/null differ diff --git a/priv/static/packs/locales/glitch/co.js.map b/priv/static/packs/locales/glitch/co.js.map deleted file mode 100644 index e263b0566..000000000 Binary files a/priv/static/packs/locales/glitch/co.js.map and /dev/null differ diff --git a/priv/static/packs/locales/glitch/cs.js b/priv/static/packs/locales/glitch/cs.js deleted file mode 100644 index 41b8c5938..000000000 Binary files a/priv/static/packs/locales/glitch/cs.js and /dev/null differ diff --git a/priv/static/packs/locales/glitch/cs.js.map b/priv/static/packs/locales/glitch/cs.js.map deleted file mode 100644 index 04c3961a2..000000000 Binary files a/priv/static/packs/locales/glitch/cs.js.map and /dev/null differ diff --git a/priv/static/packs/locales/glitch/cy.js b/priv/static/packs/locales/glitch/cy.js deleted file mode 100644 index 353d89efc..000000000 Binary files a/priv/static/packs/locales/glitch/cy.js and /dev/null differ diff --git a/priv/static/packs/locales/glitch/cy.js.map b/priv/static/packs/locales/glitch/cy.js.map deleted file mode 100644 index 9f6f51fae..000000000 Binary files a/priv/static/packs/locales/glitch/cy.js.map and /dev/null differ diff --git a/priv/static/packs/locales/glitch/da.js b/priv/static/packs/locales/glitch/da.js deleted file mode 100644 index 6089d5e67..000000000 Binary files a/priv/static/packs/locales/glitch/da.js and /dev/null differ diff --git a/priv/static/packs/locales/glitch/da.js.map b/priv/static/packs/locales/glitch/da.js.map deleted file mode 100644 index 4123e5095..000000000 Binary files a/priv/static/packs/locales/glitch/da.js.map and /dev/null differ diff --git a/priv/static/packs/locales/glitch/de.js b/priv/static/packs/locales/glitch/de.js deleted file mode 100644 index 3692ac715..000000000 Binary files a/priv/static/packs/locales/glitch/de.js and /dev/null differ diff --git a/priv/static/packs/locales/glitch/de.js.map b/priv/static/packs/locales/glitch/de.js.map deleted file mode 100644 index 0b379b1c0..000000000 Binary files a/priv/static/packs/locales/glitch/de.js.map and /dev/null differ diff --git a/priv/static/packs/locales/glitch/el.js b/priv/static/packs/locales/glitch/el.js deleted file mode 100644 index 2aa456032..000000000 Binary files a/priv/static/packs/locales/glitch/el.js and /dev/null differ diff --git a/priv/static/packs/locales/glitch/el.js.map b/priv/static/packs/locales/glitch/el.js.map deleted file mode 100644 index 628818b30..000000000 Binary files a/priv/static/packs/locales/glitch/el.js.map and /dev/null differ diff --git a/priv/static/packs/locales/glitch/en.js b/priv/static/packs/locales/glitch/en.js deleted file mode 100644 index de94c6aa0..000000000 Binary files a/priv/static/packs/locales/glitch/en.js and /dev/null differ diff --git a/priv/static/packs/locales/glitch/en.js.map b/priv/static/packs/locales/glitch/en.js.map deleted file mode 100644 index a543edf11..000000000 Binary files a/priv/static/packs/locales/glitch/en.js.map and /dev/null differ diff --git a/priv/static/packs/locales/glitch/eo.js b/priv/static/packs/locales/glitch/eo.js deleted file mode 100644 index 406eb79cc..000000000 Binary files a/priv/static/packs/locales/glitch/eo.js and /dev/null differ diff --git a/priv/static/packs/locales/glitch/eo.js.map b/priv/static/packs/locales/glitch/eo.js.map deleted file mode 100644 index 7e2ed6dfd..000000000 Binary files a/priv/static/packs/locales/glitch/eo.js.map and /dev/null differ diff --git a/priv/static/packs/locales/glitch/es-AR.js b/priv/static/packs/locales/glitch/es-AR.js deleted file mode 100644 index b841aaaa6..000000000 Binary files a/priv/static/packs/locales/glitch/es-AR.js and /dev/null differ diff --git a/priv/static/packs/locales/glitch/es-AR.js.map b/priv/static/packs/locales/glitch/es-AR.js.map deleted file mode 100644 index 414744318..000000000 Binary files a/priv/static/packs/locales/glitch/es-AR.js.map and /dev/null differ diff --git a/priv/static/packs/locales/glitch/es.js b/priv/static/packs/locales/glitch/es.js deleted file mode 100644 index 2395c7620..000000000 Binary files a/priv/static/packs/locales/glitch/es.js and /dev/null differ diff --git a/priv/static/packs/locales/glitch/es.js.map b/priv/static/packs/locales/glitch/es.js.map deleted file mode 100644 index 9f904dbd1..000000000 Binary files a/priv/static/packs/locales/glitch/es.js.map and /dev/null differ diff --git a/priv/static/packs/locales/glitch/et.js b/priv/static/packs/locales/glitch/et.js deleted file mode 100644 index 301d249d8..000000000 Binary files a/priv/static/packs/locales/glitch/et.js and /dev/null differ diff --git a/priv/static/packs/locales/glitch/et.js.map b/priv/static/packs/locales/glitch/et.js.map deleted file mode 100644 index 1ebdeed17..000000000 Binary files a/priv/static/packs/locales/glitch/et.js.map and /dev/null differ diff --git a/priv/static/packs/locales/glitch/eu.js b/priv/static/packs/locales/glitch/eu.js deleted file mode 100644 index e4a114489..000000000 Binary files a/priv/static/packs/locales/glitch/eu.js and /dev/null differ diff --git a/priv/static/packs/locales/glitch/eu.js.map b/priv/static/packs/locales/glitch/eu.js.map deleted file mode 100644 index e19dfafed..000000000 Binary files a/priv/static/packs/locales/glitch/eu.js.map and /dev/null differ diff --git a/priv/static/packs/locales/glitch/fa.js b/priv/static/packs/locales/glitch/fa.js deleted file mode 100644 index b39d7c8be..000000000 Binary files a/priv/static/packs/locales/glitch/fa.js and /dev/null differ diff --git a/priv/static/packs/locales/glitch/fa.js.map b/priv/static/packs/locales/glitch/fa.js.map deleted file mode 100644 index 9dc4cadc5..000000000 Binary files a/priv/static/packs/locales/glitch/fa.js.map and /dev/null differ diff --git a/priv/static/packs/locales/glitch/fi.js b/priv/static/packs/locales/glitch/fi.js deleted file mode 100644 index 891d5f510..000000000 Binary files a/priv/static/packs/locales/glitch/fi.js and /dev/null differ diff --git a/priv/static/packs/locales/glitch/fi.js.map b/priv/static/packs/locales/glitch/fi.js.map deleted file mode 100644 index 5257a095d..000000000 Binary files a/priv/static/packs/locales/glitch/fi.js.map and /dev/null differ diff --git a/priv/static/packs/locales/glitch/fr.js b/priv/static/packs/locales/glitch/fr.js deleted file mode 100644 index a347e27ca..000000000 Binary files a/priv/static/packs/locales/glitch/fr.js and /dev/null differ diff --git a/priv/static/packs/locales/glitch/fr.js.map b/priv/static/packs/locales/glitch/fr.js.map deleted file mode 100644 index 51f5f7911..000000000 Binary files a/priv/static/packs/locales/glitch/fr.js.map and /dev/null differ diff --git a/priv/static/packs/locales/glitch/ga.js b/priv/static/packs/locales/glitch/ga.js deleted file mode 100644 index 699637416..000000000 Binary files a/priv/static/packs/locales/glitch/ga.js and /dev/null differ diff --git a/priv/static/packs/locales/glitch/ga.js.map b/priv/static/packs/locales/glitch/ga.js.map deleted file mode 100644 index cd7be7d00..000000000 Binary files a/priv/static/packs/locales/glitch/ga.js.map and /dev/null differ diff --git a/priv/static/packs/locales/glitch/gl.js b/priv/static/packs/locales/glitch/gl.js deleted file mode 100644 index f4194822b..000000000 Binary files a/priv/static/packs/locales/glitch/gl.js and /dev/null differ diff --git a/priv/static/packs/locales/glitch/gl.js.map b/priv/static/packs/locales/glitch/gl.js.map deleted file mode 100644 index 3e6f840bd..000000000 Binary files a/priv/static/packs/locales/glitch/gl.js.map and /dev/null differ diff --git a/priv/static/packs/locales/glitch/he.js b/priv/static/packs/locales/glitch/he.js deleted file mode 100644 index 76bf1117e..000000000 Binary files a/priv/static/packs/locales/glitch/he.js and /dev/null differ diff --git a/priv/static/packs/locales/glitch/he.js.map b/priv/static/packs/locales/glitch/he.js.map deleted file mode 100644 index 112537ef6..000000000 Binary files a/priv/static/packs/locales/glitch/he.js.map and /dev/null differ diff --git a/priv/static/packs/locales/glitch/hi.js b/priv/static/packs/locales/glitch/hi.js deleted file mode 100644 index 31abe01f0..000000000 Binary files a/priv/static/packs/locales/glitch/hi.js and /dev/null differ diff --git a/priv/static/packs/locales/glitch/hi.js.map b/priv/static/packs/locales/glitch/hi.js.map deleted file mode 100644 index b5417c255..000000000 Binary files a/priv/static/packs/locales/glitch/hi.js.map and /dev/null differ diff --git a/priv/static/packs/locales/glitch/hr.js b/priv/static/packs/locales/glitch/hr.js deleted file mode 100644 index fe52cd08c..000000000 Binary files a/priv/static/packs/locales/glitch/hr.js and /dev/null differ diff --git a/priv/static/packs/locales/glitch/hr.js.map b/priv/static/packs/locales/glitch/hr.js.map deleted file mode 100644 index fb5486977..000000000 Binary files a/priv/static/packs/locales/glitch/hr.js.map and /dev/null differ diff --git a/priv/static/packs/locales/glitch/hu.js b/priv/static/packs/locales/glitch/hu.js deleted file mode 100644 index 682ca2159..000000000 Binary files a/priv/static/packs/locales/glitch/hu.js and /dev/null differ diff --git a/priv/static/packs/locales/glitch/hu.js.map b/priv/static/packs/locales/glitch/hu.js.map deleted file mode 100644 index 127ec071b..000000000 Binary files a/priv/static/packs/locales/glitch/hu.js.map and /dev/null differ diff --git a/priv/static/packs/locales/glitch/hy.js b/priv/static/packs/locales/glitch/hy.js deleted file mode 100644 index f2011b0e3..000000000 Binary files a/priv/static/packs/locales/glitch/hy.js and /dev/null differ diff --git a/priv/static/packs/locales/glitch/hy.js.map b/priv/static/packs/locales/glitch/hy.js.map deleted file mode 100644 index db9fdc1f9..000000000 Binary files a/priv/static/packs/locales/glitch/hy.js.map and /dev/null differ diff --git a/priv/static/packs/locales/glitch/id.js b/priv/static/packs/locales/glitch/id.js deleted file mode 100644 index 6ca78b22c..000000000 Binary files a/priv/static/packs/locales/glitch/id.js and /dev/null differ diff --git a/priv/static/packs/locales/glitch/id.js.map b/priv/static/packs/locales/glitch/id.js.map deleted file mode 100644 index ab59c6e02..000000000 Binary files a/priv/static/packs/locales/glitch/id.js.map and /dev/null differ diff --git a/priv/static/packs/locales/glitch/io.js b/priv/static/packs/locales/glitch/io.js deleted file mode 100644 index 074da73b8..000000000 Binary files a/priv/static/packs/locales/glitch/io.js and /dev/null differ diff --git a/priv/static/packs/locales/glitch/io.js.map b/priv/static/packs/locales/glitch/io.js.map deleted file mode 100644 index 89999c4c1..000000000 Binary files a/priv/static/packs/locales/glitch/io.js.map and /dev/null differ diff --git a/priv/static/packs/locales/glitch/is.js b/priv/static/packs/locales/glitch/is.js deleted file mode 100644 index ec9436d27..000000000 Binary files a/priv/static/packs/locales/glitch/is.js and /dev/null differ diff --git a/priv/static/packs/locales/glitch/is.js.map b/priv/static/packs/locales/glitch/is.js.map deleted file mode 100644 index 054176ba2..000000000 Binary files a/priv/static/packs/locales/glitch/is.js.map and /dev/null differ diff --git a/priv/static/packs/locales/glitch/it.js b/priv/static/packs/locales/glitch/it.js deleted file mode 100644 index d43b84c3b..000000000 Binary files a/priv/static/packs/locales/glitch/it.js and /dev/null differ diff --git a/priv/static/packs/locales/glitch/it.js.map b/priv/static/packs/locales/glitch/it.js.map deleted file mode 100644 index 54575e8f4..000000000 Binary files a/priv/static/packs/locales/glitch/it.js.map and /dev/null differ diff --git a/priv/static/packs/locales/glitch/ja.js b/priv/static/packs/locales/glitch/ja.js deleted file mode 100644 index a3b5e4e67..000000000 Binary files a/priv/static/packs/locales/glitch/ja.js and /dev/null differ diff --git a/priv/static/packs/locales/glitch/ja.js.map b/priv/static/packs/locales/glitch/ja.js.map deleted file mode 100644 index 85cff94e4..000000000 Binary files a/priv/static/packs/locales/glitch/ja.js.map and /dev/null differ diff --git a/priv/static/packs/locales/glitch/ka.js b/priv/static/packs/locales/glitch/ka.js deleted file mode 100644 index c68203d60..000000000 Binary files a/priv/static/packs/locales/glitch/ka.js and /dev/null differ diff --git a/priv/static/packs/locales/glitch/ka.js.map b/priv/static/packs/locales/glitch/ka.js.map deleted file mode 100644 index 51ec3c320..000000000 Binary files a/priv/static/packs/locales/glitch/ka.js.map and /dev/null differ diff --git a/priv/static/packs/locales/glitch/kab.js b/priv/static/packs/locales/glitch/kab.js deleted file mode 100644 index 38367c712..000000000 Binary files a/priv/static/packs/locales/glitch/kab.js and /dev/null differ diff --git a/priv/static/packs/locales/glitch/kab.js.map b/priv/static/packs/locales/glitch/kab.js.map deleted file mode 100644 index 0fb9d18d9..000000000 Binary files a/priv/static/packs/locales/glitch/kab.js.map and /dev/null differ diff --git a/priv/static/packs/locales/glitch/kk.js b/priv/static/packs/locales/glitch/kk.js deleted file mode 100644 index 328c5caef..000000000 Binary files a/priv/static/packs/locales/glitch/kk.js and /dev/null differ diff --git a/priv/static/packs/locales/glitch/kk.js.map b/priv/static/packs/locales/glitch/kk.js.map deleted file mode 100644 index 71a3e55fd..000000000 Binary files a/priv/static/packs/locales/glitch/kk.js.map and /dev/null differ diff --git a/priv/static/packs/locales/glitch/kn.js b/priv/static/packs/locales/glitch/kn.js deleted file mode 100644 index d6920594d..000000000 Binary files a/priv/static/packs/locales/glitch/kn.js and /dev/null differ diff --git a/priv/static/packs/locales/glitch/kn.js.map b/priv/static/packs/locales/glitch/kn.js.map deleted file mode 100644 index 1d2cfb6e2..000000000 Binary files a/priv/static/packs/locales/glitch/kn.js.map and /dev/null differ diff --git a/priv/static/packs/locales/glitch/ko.js b/priv/static/packs/locales/glitch/ko.js deleted file mode 100644 index 8ee071c52..000000000 Binary files a/priv/static/packs/locales/glitch/ko.js and /dev/null differ diff --git a/priv/static/packs/locales/glitch/ko.js.map b/priv/static/packs/locales/glitch/ko.js.map deleted file mode 100644 index b3c6ad083..000000000 Binary files a/priv/static/packs/locales/glitch/ko.js.map and /dev/null differ diff --git a/priv/static/packs/locales/glitch/lt.js b/priv/static/packs/locales/glitch/lt.js deleted file mode 100644 index f8374f9d2..000000000 Binary files a/priv/static/packs/locales/glitch/lt.js and /dev/null differ diff --git a/priv/static/packs/locales/glitch/lt.js.map b/priv/static/packs/locales/glitch/lt.js.map deleted file mode 100644 index 93f2b59df..000000000 Binary files a/priv/static/packs/locales/glitch/lt.js.map and /dev/null differ diff --git a/priv/static/packs/locales/glitch/lv.js b/priv/static/packs/locales/glitch/lv.js deleted file mode 100644 index a625417cd..000000000 Binary files a/priv/static/packs/locales/glitch/lv.js and /dev/null differ diff --git a/priv/static/packs/locales/glitch/lv.js.map b/priv/static/packs/locales/glitch/lv.js.map deleted file mode 100644 index 034556730..000000000 Binary files a/priv/static/packs/locales/glitch/lv.js.map and /dev/null differ diff --git a/priv/static/packs/locales/glitch/mk.js b/priv/static/packs/locales/glitch/mk.js deleted file mode 100644 index d1aa2c57d..000000000 Binary files a/priv/static/packs/locales/glitch/mk.js and /dev/null differ diff --git a/priv/static/packs/locales/glitch/mk.js.map b/priv/static/packs/locales/glitch/mk.js.map deleted file mode 100644 index 650c0520c..000000000 Binary files a/priv/static/packs/locales/glitch/mk.js.map and /dev/null differ diff --git a/priv/static/packs/locales/glitch/ml.js b/priv/static/packs/locales/glitch/ml.js deleted file mode 100644 index 817c72647..000000000 Binary files a/priv/static/packs/locales/glitch/ml.js and /dev/null differ diff --git a/priv/static/packs/locales/glitch/ml.js.map b/priv/static/packs/locales/glitch/ml.js.map deleted file mode 100644 index 319cca685..000000000 Binary files a/priv/static/packs/locales/glitch/ml.js.map and /dev/null differ diff --git a/priv/static/packs/locales/glitch/mr.js b/priv/static/packs/locales/glitch/mr.js deleted file mode 100644 index 73ede96fe..000000000 Binary files a/priv/static/packs/locales/glitch/mr.js and /dev/null differ diff --git a/priv/static/packs/locales/glitch/mr.js.map b/priv/static/packs/locales/glitch/mr.js.map deleted file mode 100644 index f6ee01063..000000000 Binary files a/priv/static/packs/locales/glitch/mr.js.map and /dev/null differ diff --git a/priv/static/packs/locales/glitch/ms.js b/priv/static/packs/locales/glitch/ms.js deleted file mode 100644 index 549ef5cdc..000000000 Binary files a/priv/static/packs/locales/glitch/ms.js and /dev/null differ diff --git a/priv/static/packs/locales/glitch/ms.js.map b/priv/static/packs/locales/glitch/ms.js.map deleted file mode 100644 index c3814701a..000000000 Binary files a/priv/static/packs/locales/glitch/ms.js.map and /dev/null differ diff --git a/priv/static/packs/locales/glitch/nl.js b/priv/static/packs/locales/glitch/nl.js deleted file mode 100644 index e38907733..000000000 Binary files a/priv/static/packs/locales/glitch/nl.js and /dev/null differ diff --git a/priv/static/packs/locales/glitch/nl.js.map b/priv/static/packs/locales/glitch/nl.js.map deleted file mode 100644 index f975976d6..000000000 Binary files a/priv/static/packs/locales/glitch/nl.js.map and /dev/null differ diff --git a/priv/static/packs/locales/glitch/nn.js b/priv/static/packs/locales/glitch/nn.js deleted file mode 100644 index 3aefbec9c..000000000 Binary files a/priv/static/packs/locales/glitch/nn.js and /dev/null differ diff --git a/priv/static/packs/locales/glitch/nn.js.map b/priv/static/packs/locales/glitch/nn.js.map deleted file mode 100644 index fc106bc1a..000000000 Binary files a/priv/static/packs/locales/glitch/nn.js.map and /dev/null differ diff --git a/priv/static/packs/locales/glitch/no.js b/priv/static/packs/locales/glitch/no.js deleted file mode 100644 index d386209be..000000000 Binary files a/priv/static/packs/locales/glitch/no.js and /dev/null differ diff --git a/priv/static/packs/locales/glitch/no.js.map b/priv/static/packs/locales/glitch/no.js.map deleted file mode 100644 index f1b9b20c9..000000000 Binary files a/priv/static/packs/locales/glitch/no.js.map and /dev/null differ diff --git a/priv/static/packs/locales/glitch/oc.js b/priv/static/packs/locales/glitch/oc.js deleted file mode 100644 index 820d2dc81..000000000 Binary files a/priv/static/packs/locales/glitch/oc.js and /dev/null differ diff --git a/priv/static/packs/locales/glitch/oc.js.map b/priv/static/packs/locales/glitch/oc.js.map deleted file mode 100644 index 29b6cbdb1..000000000 Binary files a/priv/static/packs/locales/glitch/oc.js.map and /dev/null differ diff --git a/priv/static/packs/locales/glitch/pl.js b/priv/static/packs/locales/glitch/pl.js deleted file mode 100644 index 7bdeb1088..000000000 Binary files a/priv/static/packs/locales/glitch/pl.js and /dev/null differ diff --git a/priv/static/packs/locales/glitch/pl.js.map b/priv/static/packs/locales/glitch/pl.js.map deleted file mode 100644 index 470de5ebe..000000000 Binary files a/priv/static/packs/locales/glitch/pl.js.map and /dev/null differ diff --git a/priv/static/packs/locales/glitch/pt-BR.js b/priv/static/packs/locales/glitch/pt-BR.js deleted file mode 100644 index 08950cd4d..000000000 Binary files a/priv/static/packs/locales/glitch/pt-BR.js and /dev/null differ diff --git a/priv/static/packs/locales/glitch/pt-BR.js.map b/priv/static/packs/locales/glitch/pt-BR.js.map deleted file mode 100644 index 584e0e410..000000000 Binary files a/priv/static/packs/locales/glitch/pt-BR.js.map and /dev/null differ diff --git a/priv/static/packs/locales/glitch/pt-PT.js b/priv/static/packs/locales/glitch/pt-PT.js deleted file mode 100644 index 83d72b3fc..000000000 Binary files a/priv/static/packs/locales/glitch/pt-PT.js and /dev/null differ diff --git a/priv/static/packs/locales/glitch/pt-PT.js.map b/priv/static/packs/locales/glitch/pt-PT.js.map deleted file mode 100644 index 51a2aa03f..000000000 Binary files a/priv/static/packs/locales/glitch/pt-PT.js.map and /dev/null differ diff --git a/priv/static/packs/locales/glitch/ro.js b/priv/static/packs/locales/glitch/ro.js deleted file mode 100644 index 667af3651..000000000 Binary files a/priv/static/packs/locales/glitch/ro.js and /dev/null differ diff --git a/priv/static/packs/locales/glitch/ro.js.map b/priv/static/packs/locales/glitch/ro.js.map deleted file mode 100644 index 3fd116429..000000000 Binary files a/priv/static/packs/locales/glitch/ro.js.map and /dev/null differ diff --git a/priv/static/packs/locales/glitch/ru.js b/priv/static/packs/locales/glitch/ru.js deleted file mode 100644 index 44c66bd7d..000000000 Binary files a/priv/static/packs/locales/glitch/ru.js and /dev/null differ diff --git a/priv/static/packs/locales/glitch/ru.js.map b/priv/static/packs/locales/glitch/ru.js.map deleted file mode 100644 index f4bcd78fb..000000000 Binary files a/priv/static/packs/locales/glitch/ru.js.map and /dev/null differ diff --git a/priv/static/packs/locales/glitch/sk.js b/priv/static/packs/locales/glitch/sk.js deleted file mode 100644 index 9476a2f58..000000000 Binary files a/priv/static/packs/locales/glitch/sk.js and /dev/null differ diff --git a/priv/static/packs/locales/glitch/sk.js.map b/priv/static/packs/locales/glitch/sk.js.map deleted file mode 100644 index 747cb346d..000000000 Binary files a/priv/static/packs/locales/glitch/sk.js.map and /dev/null differ diff --git a/priv/static/packs/locales/glitch/sl.js b/priv/static/packs/locales/glitch/sl.js deleted file mode 100644 index 4d99f2414..000000000 Binary files a/priv/static/packs/locales/glitch/sl.js and /dev/null differ diff --git a/priv/static/packs/locales/glitch/sl.js.map b/priv/static/packs/locales/glitch/sl.js.map deleted file mode 100644 index 805563fa1..000000000 Binary files a/priv/static/packs/locales/glitch/sl.js.map and /dev/null differ diff --git a/priv/static/packs/locales/glitch/sq.js b/priv/static/packs/locales/glitch/sq.js deleted file mode 100644 index 3b0bcce3b..000000000 Binary files a/priv/static/packs/locales/glitch/sq.js and /dev/null differ diff --git a/priv/static/packs/locales/glitch/sq.js.map b/priv/static/packs/locales/glitch/sq.js.map deleted file mode 100644 index 17be693bf..000000000 Binary files a/priv/static/packs/locales/glitch/sq.js.map and /dev/null differ diff --git a/priv/static/packs/locales/glitch/sr-Latn.js b/priv/static/packs/locales/glitch/sr-Latn.js deleted file mode 100644 index 7613638cb..000000000 Binary files a/priv/static/packs/locales/glitch/sr-Latn.js and /dev/null differ diff --git a/priv/static/packs/locales/glitch/sr-Latn.js.map b/priv/static/packs/locales/glitch/sr-Latn.js.map deleted file mode 100644 index 89ab44978..000000000 Binary files a/priv/static/packs/locales/glitch/sr-Latn.js.map and /dev/null differ diff --git a/priv/static/packs/locales/glitch/sr.js b/priv/static/packs/locales/glitch/sr.js deleted file mode 100644 index e772dda4f..000000000 Binary files a/priv/static/packs/locales/glitch/sr.js and /dev/null differ diff --git a/priv/static/packs/locales/glitch/sr.js.map b/priv/static/packs/locales/glitch/sr.js.map deleted file mode 100644 index cf7001869..000000000 Binary files a/priv/static/packs/locales/glitch/sr.js.map and /dev/null differ diff --git a/priv/static/packs/locales/glitch/sv.js b/priv/static/packs/locales/glitch/sv.js deleted file mode 100644 index 549120a2a..000000000 Binary files a/priv/static/packs/locales/glitch/sv.js and /dev/null differ diff --git a/priv/static/packs/locales/glitch/sv.js.map b/priv/static/packs/locales/glitch/sv.js.map deleted file mode 100644 index 6db7b18b9..000000000 Binary files a/priv/static/packs/locales/glitch/sv.js.map and /dev/null differ diff --git a/priv/static/packs/locales/glitch/ta.js b/priv/static/packs/locales/glitch/ta.js deleted file mode 100644 index ec8b2b111..000000000 Binary files a/priv/static/packs/locales/glitch/ta.js and /dev/null differ diff --git a/priv/static/packs/locales/glitch/ta.js.map b/priv/static/packs/locales/glitch/ta.js.map deleted file mode 100644 index b7e271261..000000000 Binary files a/priv/static/packs/locales/glitch/ta.js.map and /dev/null differ diff --git a/priv/static/packs/locales/glitch/te.js b/priv/static/packs/locales/glitch/te.js deleted file mode 100644 index d7e85ee36..000000000 Binary files a/priv/static/packs/locales/glitch/te.js and /dev/null differ diff --git a/priv/static/packs/locales/glitch/te.js.map b/priv/static/packs/locales/glitch/te.js.map deleted file mode 100644 index a58e520cb..000000000 Binary files a/priv/static/packs/locales/glitch/te.js.map and /dev/null differ diff --git a/priv/static/packs/locales/glitch/th.js b/priv/static/packs/locales/glitch/th.js deleted file mode 100644 index 4cbdcbcf5..000000000 Binary files a/priv/static/packs/locales/glitch/th.js and /dev/null differ diff --git a/priv/static/packs/locales/glitch/th.js.map b/priv/static/packs/locales/glitch/th.js.map deleted file mode 100644 index 65e5c656b..000000000 Binary files a/priv/static/packs/locales/glitch/th.js.map and /dev/null differ diff --git a/priv/static/packs/locales/glitch/tr.js b/priv/static/packs/locales/glitch/tr.js deleted file mode 100644 index 5c6386138..000000000 Binary files a/priv/static/packs/locales/glitch/tr.js and /dev/null differ diff --git a/priv/static/packs/locales/glitch/tr.js.map b/priv/static/packs/locales/glitch/tr.js.map deleted file mode 100644 index 0ed931331..000000000 Binary files a/priv/static/packs/locales/glitch/tr.js.map and /dev/null differ diff --git a/priv/static/packs/locales/glitch/uk.js b/priv/static/packs/locales/glitch/uk.js deleted file mode 100644 index 04388c934..000000000 Binary files a/priv/static/packs/locales/glitch/uk.js and /dev/null differ diff --git a/priv/static/packs/locales/glitch/uk.js.map b/priv/static/packs/locales/glitch/uk.js.map deleted file mode 100644 index 803672f6f..000000000 Binary files a/priv/static/packs/locales/glitch/uk.js.map and /dev/null differ diff --git a/priv/static/packs/locales/glitch/ur.js b/priv/static/packs/locales/glitch/ur.js deleted file mode 100644 index cb9988dd4..000000000 Binary files a/priv/static/packs/locales/glitch/ur.js and /dev/null differ diff --git a/priv/static/packs/locales/glitch/ur.js.map b/priv/static/packs/locales/glitch/ur.js.map deleted file mode 100644 index 204bc365f..000000000 Binary files a/priv/static/packs/locales/glitch/ur.js.map and /dev/null differ diff --git a/priv/static/packs/locales/glitch/vi.js b/priv/static/packs/locales/glitch/vi.js deleted file mode 100644 index b45ffbc87..000000000 Binary files a/priv/static/packs/locales/glitch/vi.js and /dev/null differ diff --git a/priv/static/packs/locales/glitch/vi.js.map b/priv/static/packs/locales/glitch/vi.js.map deleted file mode 100644 index 11fc5629a..000000000 Binary files a/priv/static/packs/locales/glitch/vi.js.map and /dev/null differ diff --git a/priv/static/packs/locales/glitch/zh-CN.js b/priv/static/packs/locales/glitch/zh-CN.js deleted file mode 100644 index e3fbce7e1..000000000 Binary files a/priv/static/packs/locales/glitch/zh-CN.js and /dev/null differ diff --git a/priv/static/packs/locales/glitch/zh-CN.js.map b/priv/static/packs/locales/glitch/zh-CN.js.map deleted file mode 100644 index 96a461367..000000000 Binary files a/priv/static/packs/locales/glitch/zh-CN.js.map and /dev/null differ diff --git a/priv/static/packs/locales/glitch/zh-HK.js b/priv/static/packs/locales/glitch/zh-HK.js deleted file mode 100644 index 0690558e6..000000000 Binary files a/priv/static/packs/locales/glitch/zh-HK.js and /dev/null differ diff --git a/priv/static/packs/locales/glitch/zh-HK.js.map b/priv/static/packs/locales/glitch/zh-HK.js.map deleted file mode 100644 index 1b64d826f..000000000 Binary files a/priv/static/packs/locales/glitch/zh-HK.js.map and /dev/null differ diff --git a/priv/static/packs/locales/glitch/zh-TW.js b/priv/static/packs/locales/glitch/zh-TW.js deleted file mode 100644 index 4a9ec7186..000000000 Binary files a/priv/static/packs/locales/glitch/zh-TW.js and /dev/null differ diff --git a/priv/static/packs/locales/glitch/zh-TW.js.map b/priv/static/packs/locales/glitch/zh-TW.js.map deleted file mode 100644 index ef62a54ff..000000000 Binary files a/priv/static/packs/locales/glitch/zh-TW.js.map and /dev/null differ diff --git a/priv/static/packs/locales/vanilla/ar.js b/priv/static/packs/locales/vanilla/ar.js deleted file mode 100644 index 6b4181bd5..000000000 Binary files a/priv/static/packs/locales/vanilla/ar.js and /dev/null differ diff --git a/priv/static/packs/locales/vanilla/ar.js.map b/priv/static/packs/locales/vanilla/ar.js.map deleted file mode 100644 index 1802fd3f8..000000000 Binary files a/priv/static/packs/locales/vanilla/ar.js.map and /dev/null differ diff --git a/priv/static/packs/locales/vanilla/ast.js b/priv/static/packs/locales/vanilla/ast.js deleted file mode 100644 index 376afbe70..000000000 Binary files a/priv/static/packs/locales/vanilla/ast.js and /dev/null differ diff --git a/priv/static/packs/locales/vanilla/ast.js.map b/priv/static/packs/locales/vanilla/ast.js.map deleted file mode 100644 index ac9e083d8..000000000 Binary files a/priv/static/packs/locales/vanilla/ast.js.map and /dev/null differ diff --git a/priv/static/packs/locales/vanilla/bg.js b/priv/static/packs/locales/vanilla/bg.js deleted file mode 100644 index 272033cc2..000000000 Binary files a/priv/static/packs/locales/vanilla/bg.js and /dev/null differ diff --git a/priv/static/packs/locales/vanilla/bg.js.map b/priv/static/packs/locales/vanilla/bg.js.map deleted file mode 100644 index ec253ea61..000000000 Binary files a/priv/static/packs/locales/vanilla/bg.js.map and /dev/null differ diff --git a/priv/static/packs/locales/vanilla/bn.js b/priv/static/packs/locales/vanilla/bn.js deleted file mode 100644 index ebdf68537..000000000 Binary files a/priv/static/packs/locales/vanilla/bn.js and /dev/null differ diff --git a/priv/static/packs/locales/vanilla/bn.js.map b/priv/static/packs/locales/vanilla/bn.js.map deleted file mode 100644 index 45a9c014e..000000000 Binary files a/priv/static/packs/locales/vanilla/bn.js.map and /dev/null differ diff --git a/priv/static/packs/locales/vanilla/br.js b/priv/static/packs/locales/vanilla/br.js deleted file mode 100644 index f6ab20245..000000000 Binary files a/priv/static/packs/locales/vanilla/br.js and /dev/null differ diff --git a/priv/static/packs/locales/vanilla/br.js.map b/priv/static/packs/locales/vanilla/br.js.map deleted file mode 100644 index 6d53acc51..000000000 Binary files a/priv/static/packs/locales/vanilla/br.js.map and /dev/null differ diff --git a/priv/static/packs/locales/vanilla/ca.js b/priv/static/packs/locales/vanilla/ca.js deleted file mode 100644 index e8453b5b9..000000000 Binary files a/priv/static/packs/locales/vanilla/ca.js and /dev/null differ diff --git a/priv/static/packs/locales/vanilla/ca.js.map b/priv/static/packs/locales/vanilla/ca.js.map deleted file mode 100644 index b0f1a6789..000000000 Binary files a/priv/static/packs/locales/vanilla/ca.js.map and /dev/null differ diff --git a/priv/static/packs/locales/vanilla/co.js b/priv/static/packs/locales/vanilla/co.js deleted file mode 100644 index 9bbc5f461..000000000 Binary files a/priv/static/packs/locales/vanilla/co.js and /dev/null differ diff --git a/priv/static/packs/locales/vanilla/co.js.map b/priv/static/packs/locales/vanilla/co.js.map deleted file mode 100644 index 303dbdf41..000000000 Binary files a/priv/static/packs/locales/vanilla/co.js.map and /dev/null differ diff --git a/priv/static/packs/locales/vanilla/cs.js b/priv/static/packs/locales/vanilla/cs.js deleted file mode 100644 index d5ea53c06..000000000 Binary files a/priv/static/packs/locales/vanilla/cs.js and /dev/null differ diff --git a/priv/static/packs/locales/vanilla/cs.js.map b/priv/static/packs/locales/vanilla/cs.js.map deleted file mode 100644 index 253a990b7..000000000 Binary files a/priv/static/packs/locales/vanilla/cs.js.map and /dev/null differ diff --git a/priv/static/packs/locales/vanilla/cy.js b/priv/static/packs/locales/vanilla/cy.js deleted file mode 100644 index 9c41b6da4..000000000 Binary files a/priv/static/packs/locales/vanilla/cy.js and /dev/null differ diff --git a/priv/static/packs/locales/vanilla/cy.js.map b/priv/static/packs/locales/vanilla/cy.js.map deleted file mode 100644 index 33ea782c7..000000000 Binary files a/priv/static/packs/locales/vanilla/cy.js.map and /dev/null differ diff --git a/priv/static/packs/locales/vanilla/da.js b/priv/static/packs/locales/vanilla/da.js deleted file mode 100644 index 6f12d46dc..000000000 Binary files a/priv/static/packs/locales/vanilla/da.js and /dev/null differ diff --git a/priv/static/packs/locales/vanilla/da.js.map b/priv/static/packs/locales/vanilla/da.js.map deleted file mode 100644 index c3d938e88..000000000 Binary files a/priv/static/packs/locales/vanilla/da.js.map and /dev/null differ diff --git a/priv/static/packs/locales/vanilla/de.js b/priv/static/packs/locales/vanilla/de.js deleted file mode 100644 index 268accd2f..000000000 Binary files a/priv/static/packs/locales/vanilla/de.js and /dev/null differ diff --git a/priv/static/packs/locales/vanilla/de.js.map b/priv/static/packs/locales/vanilla/de.js.map deleted file mode 100644 index 3b1203043..000000000 Binary files a/priv/static/packs/locales/vanilla/de.js.map and /dev/null differ diff --git a/priv/static/packs/locales/vanilla/el.js b/priv/static/packs/locales/vanilla/el.js deleted file mode 100644 index 2dd5a9895..000000000 Binary files a/priv/static/packs/locales/vanilla/el.js and /dev/null differ diff --git a/priv/static/packs/locales/vanilla/el.js.map b/priv/static/packs/locales/vanilla/el.js.map deleted file mode 100644 index 612980507..000000000 Binary files a/priv/static/packs/locales/vanilla/el.js.map and /dev/null differ diff --git a/priv/static/packs/locales/vanilla/en.js b/priv/static/packs/locales/vanilla/en.js deleted file mode 100644 index 226dde828..000000000 Binary files a/priv/static/packs/locales/vanilla/en.js and /dev/null differ diff --git a/priv/static/packs/locales/vanilla/en.js.map b/priv/static/packs/locales/vanilla/en.js.map deleted file mode 100644 index 2c5d92626..000000000 Binary files a/priv/static/packs/locales/vanilla/en.js.map and /dev/null differ diff --git a/priv/static/packs/locales/vanilla/eo.js b/priv/static/packs/locales/vanilla/eo.js deleted file mode 100644 index 74d3bf896..000000000 Binary files a/priv/static/packs/locales/vanilla/eo.js and /dev/null differ diff --git a/priv/static/packs/locales/vanilla/eo.js.map b/priv/static/packs/locales/vanilla/eo.js.map deleted file mode 100644 index 4aa69e848..000000000 Binary files a/priv/static/packs/locales/vanilla/eo.js.map and /dev/null differ diff --git a/priv/static/packs/locales/vanilla/es-AR.js b/priv/static/packs/locales/vanilla/es-AR.js deleted file mode 100644 index 1cd0935b2..000000000 Binary files a/priv/static/packs/locales/vanilla/es-AR.js and /dev/null differ diff --git a/priv/static/packs/locales/vanilla/es-AR.js.map b/priv/static/packs/locales/vanilla/es-AR.js.map deleted file mode 100644 index 9fdd3bde5..000000000 Binary files a/priv/static/packs/locales/vanilla/es-AR.js.map and /dev/null differ diff --git a/priv/static/packs/locales/vanilla/es.js b/priv/static/packs/locales/vanilla/es.js deleted file mode 100644 index b2079bd66..000000000 Binary files a/priv/static/packs/locales/vanilla/es.js and /dev/null differ diff --git a/priv/static/packs/locales/vanilla/es.js.map b/priv/static/packs/locales/vanilla/es.js.map deleted file mode 100644 index 7f6210e0b..000000000 Binary files a/priv/static/packs/locales/vanilla/es.js.map and /dev/null differ diff --git a/priv/static/packs/locales/vanilla/et.js b/priv/static/packs/locales/vanilla/et.js deleted file mode 100644 index 34a94d107..000000000 Binary files a/priv/static/packs/locales/vanilla/et.js and /dev/null differ diff --git a/priv/static/packs/locales/vanilla/et.js.map b/priv/static/packs/locales/vanilla/et.js.map deleted file mode 100644 index 394bb7428..000000000 Binary files a/priv/static/packs/locales/vanilla/et.js.map and /dev/null differ diff --git a/priv/static/packs/locales/vanilla/eu.js b/priv/static/packs/locales/vanilla/eu.js deleted file mode 100644 index 30cd4e43c..000000000 Binary files a/priv/static/packs/locales/vanilla/eu.js and /dev/null differ diff --git a/priv/static/packs/locales/vanilla/eu.js.map b/priv/static/packs/locales/vanilla/eu.js.map deleted file mode 100644 index e22dd44c5..000000000 Binary files a/priv/static/packs/locales/vanilla/eu.js.map and /dev/null differ diff --git a/priv/static/packs/locales/vanilla/fa.js b/priv/static/packs/locales/vanilla/fa.js deleted file mode 100644 index b616d72a6..000000000 Binary files a/priv/static/packs/locales/vanilla/fa.js and /dev/null differ diff --git a/priv/static/packs/locales/vanilla/fa.js.map b/priv/static/packs/locales/vanilla/fa.js.map deleted file mode 100644 index 3ec9c2377..000000000 Binary files a/priv/static/packs/locales/vanilla/fa.js.map and /dev/null differ diff --git a/priv/static/packs/locales/vanilla/fi.js b/priv/static/packs/locales/vanilla/fi.js deleted file mode 100644 index 4a1631a4d..000000000 Binary files a/priv/static/packs/locales/vanilla/fi.js and /dev/null differ diff --git a/priv/static/packs/locales/vanilla/fi.js.map b/priv/static/packs/locales/vanilla/fi.js.map deleted file mode 100644 index debb697d9..000000000 Binary files a/priv/static/packs/locales/vanilla/fi.js.map and /dev/null differ diff --git a/priv/static/packs/locales/vanilla/fr.js b/priv/static/packs/locales/vanilla/fr.js deleted file mode 100644 index 431bd4ae7..000000000 Binary files a/priv/static/packs/locales/vanilla/fr.js and /dev/null differ diff --git a/priv/static/packs/locales/vanilla/fr.js.map b/priv/static/packs/locales/vanilla/fr.js.map deleted file mode 100644 index b6324ca17..000000000 Binary files a/priv/static/packs/locales/vanilla/fr.js.map and /dev/null differ diff --git a/priv/static/packs/locales/vanilla/ga.js b/priv/static/packs/locales/vanilla/ga.js deleted file mode 100644 index 8b98545b3..000000000 Binary files a/priv/static/packs/locales/vanilla/ga.js and /dev/null differ diff --git a/priv/static/packs/locales/vanilla/ga.js.map b/priv/static/packs/locales/vanilla/ga.js.map deleted file mode 100644 index c0303f4f9..000000000 Binary files a/priv/static/packs/locales/vanilla/ga.js.map and /dev/null differ diff --git a/priv/static/packs/locales/vanilla/gl.js b/priv/static/packs/locales/vanilla/gl.js deleted file mode 100644 index e0c3e6a38..000000000 Binary files a/priv/static/packs/locales/vanilla/gl.js and /dev/null differ diff --git a/priv/static/packs/locales/vanilla/gl.js.map b/priv/static/packs/locales/vanilla/gl.js.map deleted file mode 100644 index 9f305218a..000000000 Binary files a/priv/static/packs/locales/vanilla/gl.js.map and /dev/null differ diff --git a/priv/static/packs/locales/vanilla/he.js b/priv/static/packs/locales/vanilla/he.js deleted file mode 100644 index 73d91419a..000000000 Binary files a/priv/static/packs/locales/vanilla/he.js and /dev/null differ diff --git a/priv/static/packs/locales/vanilla/he.js.map b/priv/static/packs/locales/vanilla/he.js.map deleted file mode 100644 index c98587628..000000000 Binary files a/priv/static/packs/locales/vanilla/he.js.map and /dev/null differ diff --git a/priv/static/packs/locales/vanilla/hi.js b/priv/static/packs/locales/vanilla/hi.js deleted file mode 100644 index 27a6eb946..000000000 Binary files a/priv/static/packs/locales/vanilla/hi.js and /dev/null differ diff --git a/priv/static/packs/locales/vanilla/hi.js.map b/priv/static/packs/locales/vanilla/hi.js.map deleted file mode 100644 index 7a5858596..000000000 Binary files a/priv/static/packs/locales/vanilla/hi.js.map and /dev/null differ diff --git a/priv/static/packs/locales/vanilla/hr.js b/priv/static/packs/locales/vanilla/hr.js deleted file mode 100644 index d8d788315..000000000 Binary files a/priv/static/packs/locales/vanilla/hr.js and /dev/null differ diff --git a/priv/static/packs/locales/vanilla/hr.js.map b/priv/static/packs/locales/vanilla/hr.js.map deleted file mode 100644 index f9c432fb6..000000000 Binary files a/priv/static/packs/locales/vanilla/hr.js.map and /dev/null differ diff --git a/priv/static/packs/locales/vanilla/hu.js b/priv/static/packs/locales/vanilla/hu.js deleted file mode 100644 index f1e7682d6..000000000 Binary files a/priv/static/packs/locales/vanilla/hu.js and /dev/null differ diff --git a/priv/static/packs/locales/vanilla/hu.js.map b/priv/static/packs/locales/vanilla/hu.js.map deleted file mode 100644 index 220a6e92b..000000000 Binary files a/priv/static/packs/locales/vanilla/hu.js.map and /dev/null differ diff --git a/priv/static/packs/locales/vanilla/hy.js b/priv/static/packs/locales/vanilla/hy.js deleted file mode 100644 index f21e393eb..000000000 Binary files a/priv/static/packs/locales/vanilla/hy.js and /dev/null differ diff --git a/priv/static/packs/locales/vanilla/hy.js.map b/priv/static/packs/locales/vanilla/hy.js.map deleted file mode 100644 index a395c87fe..000000000 Binary files a/priv/static/packs/locales/vanilla/hy.js.map and /dev/null differ diff --git a/priv/static/packs/locales/vanilla/id.js b/priv/static/packs/locales/vanilla/id.js deleted file mode 100644 index 6591b818a..000000000 Binary files a/priv/static/packs/locales/vanilla/id.js and /dev/null differ diff --git a/priv/static/packs/locales/vanilla/id.js.map b/priv/static/packs/locales/vanilla/id.js.map deleted file mode 100644 index d0f909013..000000000 Binary files a/priv/static/packs/locales/vanilla/id.js.map and /dev/null differ diff --git a/priv/static/packs/locales/vanilla/io.js b/priv/static/packs/locales/vanilla/io.js deleted file mode 100644 index 22f39d73a..000000000 Binary files a/priv/static/packs/locales/vanilla/io.js and /dev/null differ diff --git a/priv/static/packs/locales/vanilla/io.js.map b/priv/static/packs/locales/vanilla/io.js.map deleted file mode 100644 index 11d01d926..000000000 Binary files a/priv/static/packs/locales/vanilla/io.js.map and /dev/null differ diff --git a/priv/static/packs/locales/vanilla/is.js b/priv/static/packs/locales/vanilla/is.js deleted file mode 100644 index 05db56dfd..000000000 Binary files a/priv/static/packs/locales/vanilla/is.js and /dev/null differ diff --git a/priv/static/packs/locales/vanilla/is.js.map b/priv/static/packs/locales/vanilla/is.js.map deleted file mode 100644 index e45da8547..000000000 Binary files a/priv/static/packs/locales/vanilla/is.js.map and /dev/null differ diff --git a/priv/static/packs/locales/vanilla/it.js b/priv/static/packs/locales/vanilla/it.js deleted file mode 100644 index f8877398f..000000000 Binary files a/priv/static/packs/locales/vanilla/it.js and /dev/null differ diff --git a/priv/static/packs/locales/vanilla/it.js.map b/priv/static/packs/locales/vanilla/it.js.map deleted file mode 100644 index 79aed8726..000000000 Binary files a/priv/static/packs/locales/vanilla/it.js.map and /dev/null differ diff --git a/priv/static/packs/locales/vanilla/ja.js b/priv/static/packs/locales/vanilla/ja.js deleted file mode 100644 index 99efb72a3..000000000 Binary files a/priv/static/packs/locales/vanilla/ja.js and /dev/null differ diff --git a/priv/static/packs/locales/vanilla/ja.js.map b/priv/static/packs/locales/vanilla/ja.js.map deleted file mode 100644 index 8a7d4edb0..000000000 Binary files a/priv/static/packs/locales/vanilla/ja.js.map and /dev/null differ diff --git a/priv/static/packs/locales/vanilla/ka.js b/priv/static/packs/locales/vanilla/ka.js deleted file mode 100644 index 6091581a1..000000000 Binary files a/priv/static/packs/locales/vanilla/ka.js and /dev/null differ diff --git a/priv/static/packs/locales/vanilla/ka.js.map b/priv/static/packs/locales/vanilla/ka.js.map deleted file mode 100644 index aa254d9ab..000000000 Binary files a/priv/static/packs/locales/vanilla/ka.js.map and /dev/null differ diff --git a/priv/static/packs/locales/vanilla/kab.js b/priv/static/packs/locales/vanilla/kab.js deleted file mode 100644 index b9001a1cc..000000000 Binary files a/priv/static/packs/locales/vanilla/kab.js and /dev/null differ diff --git a/priv/static/packs/locales/vanilla/kab.js.map b/priv/static/packs/locales/vanilla/kab.js.map deleted file mode 100644 index 148c3351a..000000000 Binary files a/priv/static/packs/locales/vanilla/kab.js.map and /dev/null differ diff --git a/priv/static/packs/locales/vanilla/kk.js b/priv/static/packs/locales/vanilla/kk.js deleted file mode 100644 index f74b2cb3d..000000000 Binary files a/priv/static/packs/locales/vanilla/kk.js and /dev/null differ diff --git a/priv/static/packs/locales/vanilla/kk.js.map b/priv/static/packs/locales/vanilla/kk.js.map deleted file mode 100644 index ced32c979..000000000 Binary files a/priv/static/packs/locales/vanilla/kk.js.map and /dev/null differ diff --git a/priv/static/packs/locales/vanilla/kn.js b/priv/static/packs/locales/vanilla/kn.js deleted file mode 100644 index a8be6ca7c..000000000 Binary files a/priv/static/packs/locales/vanilla/kn.js and /dev/null differ diff --git a/priv/static/packs/locales/vanilla/kn.js.map b/priv/static/packs/locales/vanilla/kn.js.map deleted file mode 100644 index c7f28697d..000000000 Binary files a/priv/static/packs/locales/vanilla/kn.js.map and /dev/null differ diff --git a/priv/static/packs/locales/vanilla/ko.js b/priv/static/packs/locales/vanilla/ko.js deleted file mode 100644 index 8940912cd..000000000 Binary files a/priv/static/packs/locales/vanilla/ko.js and /dev/null differ diff --git a/priv/static/packs/locales/vanilla/ko.js.map b/priv/static/packs/locales/vanilla/ko.js.map deleted file mode 100644 index 781e7af50..000000000 Binary files a/priv/static/packs/locales/vanilla/ko.js.map and /dev/null differ diff --git a/priv/static/packs/locales/vanilla/lt.js b/priv/static/packs/locales/vanilla/lt.js deleted file mode 100644 index 540f622a3..000000000 Binary files a/priv/static/packs/locales/vanilla/lt.js and /dev/null differ diff --git a/priv/static/packs/locales/vanilla/lt.js.map b/priv/static/packs/locales/vanilla/lt.js.map deleted file mode 100644 index 0ad385eaf..000000000 Binary files a/priv/static/packs/locales/vanilla/lt.js.map and /dev/null differ diff --git a/priv/static/packs/locales/vanilla/lv.js b/priv/static/packs/locales/vanilla/lv.js deleted file mode 100644 index b58d988c1..000000000 Binary files a/priv/static/packs/locales/vanilla/lv.js and /dev/null differ diff --git a/priv/static/packs/locales/vanilla/lv.js.map b/priv/static/packs/locales/vanilla/lv.js.map deleted file mode 100644 index f448f8432..000000000 Binary files a/priv/static/packs/locales/vanilla/lv.js.map and /dev/null differ diff --git a/priv/static/packs/locales/vanilla/mk.js b/priv/static/packs/locales/vanilla/mk.js deleted file mode 100644 index 205f06f17..000000000 Binary files a/priv/static/packs/locales/vanilla/mk.js and /dev/null differ diff --git a/priv/static/packs/locales/vanilla/mk.js.map b/priv/static/packs/locales/vanilla/mk.js.map deleted file mode 100644 index 470d982ec..000000000 Binary files a/priv/static/packs/locales/vanilla/mk.js.map and /dev/null differ diff --git a/priv/static/packs/locales/vanilla/ml.js b/priv/static/packs/locales/vanilla/ml.js deleted file mode 100644 index 010562bb8..000000000 Binary files a/priv/static/packs/locales/vanilla/ml.js and /dev/null differ diff --git a/priv/static/packs/locales/vanilla/ml.js.map b/priv/static/packs/locales/vanilla/ml.js.map deleted file mode 100644 index 1be28164c..000000000 Binary files a/priv/static/packs/locales/vanilla/ml.js.map and /dev/null differ diff --git a/priv/static/packs/locales/vanilla/mr.js b/priv/static/packs/locales/vanilla/mr.js deleted file mode 100644 index 5fd186344..000000000 Binary files a/priv/static/packs/locales/vanilla/mr.js and /dev/null differ diff --git a/priv/static/packs/locales/vanilla/mr.js.map b/priv/static/packs/locales/vanilla/mr.js.map deleted file mode 100644 index cf404625f..000000000 Binary files a/priv/static/packs/locales/vanilla/mr.js.map and /dev/null differ diff --git a/priv/static/packs/locales/vanilla/ms.js b/priv/static/packs/locales/vanilla/ms.js deleted file mode 100644 index aea0ef4c3..000000000 Binary files a/priv/static/packs/locales/vanilla/ms.js and /dev/null differ diff --git a/priv/static/packs/locales/vanilla/ms.js.map b/priv/static/packs/locales/vanilla/ms.js.map deleted file mode 100644 index 897a1b7f8..000000000 Binary files a/priv/static/packs/locales/vanilla/ms.js.map and /dev/null differ diff --git a/priv/static/packs/locales/vanilla/nl.js b/priv/static/packs/locales/vanilla/nl.js deleted file mode 100644 index 84b479dd8..000000000 Binary files a/priv/static/packs/locales/vanilla/nl.js and /dev/null differ diff --git a/priv/static/packs/locales/vanilla/nl.js.map b/priv/static/packs/locales/vanilla/nl.js.map deleted file mode 100644 index 677ff9cc5..000000000 Binary files a/priv/static/packs/locales/vanilla/nl.js.map and /dev/null differ diff --git a/priv/static/packs/locales/vanilla/nn.js b/priv/static/packs/locales/vanilla/nn.js deleted file mode 100644 index a015c275e..000000000 Binary files a/priv/static/packs/locales/vanilla/nn.js and /dev/null differ diff --git a/priv/static/packs/locales/vanilla/nn.js.map b/priv/static/packs/locales/vanilla/nn.js.map deleted file mode 100644 index 01dfd6647..000000000 Binary files a/priv/static/packs/locales/vanilla/nn.js.map and /dev/null differ diff --git a/priv/static/packs/locales/vanilla/no.js b/priv/static/packs/locales/vanilla/no.js deleted file mode 100644 index 19eeca907..000000000 Binary files a/priv/static/packs/locales/vanilla/no.js and /dev/null differ diff --git a/priv/static/packs/locales/vanilla/no.js.map b/priv/static/packs/locales/vanilla/no.js.map deleted file mode 100644 index 97d18247c..000000000 Binary files a/priv/static/packs/locales/vanilla/no.js.map and /dev/null differ diff --git a/priv/static/packs/locales/vanilla/oc.js b/priv/static/packs/locales/vanilla/oc.js deleted file mode 100644 index 25d9e5663..000000000 Binary files a/priv/static/packs/locales/vanilla/oc.js and /dev/null differ diff --git a/priv/static/packs/locales/vanilla/oc.js.map b/priv/static/packs/locales/vanilla/oc.js.map deleted file mode 100644 index 1890f6364..000000000 Binary files a/priv/static/packs/locales/vanilla/oc.js.map and /dev/null differ diff --git a/priv/static/packs/locales/vanilla/pl.js b/priv/static/packs/locales/vanilla/pl.js deleted file mode 100644 index f0b6e02ff..000000000 Binary files a/priv/static/packs/locales/vanilla/pl.js and /dev/null differ diff --git a/priv/static/packs/locales/vanilla/pl.js.map b/priv/static/packs/locales/vanilla/pl.js.map deleted file mode 100644 index 5ce3d9490..000000000 Binary files a/priv/static/packs/locales/vanilla/pl.js.map and /dev/null differ diff --git a/priv/static/packs/locales/vanilla/pt-BR.js b/priv/static/packs/locales/vanilla/pt-BR.js deleted file mode 100644 index bc1bf0707..000000000 Binary files a/priv/static/packs/locales/vanilla/pt-BR.js and /dev/null differ diff --git a/priv/static/packs/locales/vanilla/pt-BR.js.map b/priv/static/packs/locales/vanilla/pt-BR.js.map deleted file mode 100644 index 99718f8e3..000000000 Binary files a/priv/static/packs/locales/vanilla/pt-BR.js.map and /dev/null differ diff --git a/priv/static/packs/locales/vanilla/pt-PT.js b/priv/static/packs/locales/vanilla/pt-PT.js deleted file mode 100644 index 1400d34d0..000000000 Binary files a/priv/static/packs/locales/vanilla/pt-PT.js and /dev/null differ diff --git a/priv/static/packs/locales/vanilla/pt-PT.js.map b/priv/static/packs/locales/vanilla/pt-PT.js.map deleted file mode 100644 index 65881dc14..000000000 Binary files a/priv/static/packs/locales/vanilla/pt-PT.js.map and /dev/null differ diff --git a/priv/static/packs/locales/vanilla/ro.js b/priv/static/packs/locales/vanilla/ro.js deleted file mode 100644 index 6c786214d..000000000 Binary files a/priv/static/packs/locales/vanilla/ro.js and /dev/null differ diff --git a/priv/static/packs/locales/vanilla/ro.js.map b/priv/static/packs/locales/vanilla/ro.js.map deleted file mode 100644 index 816cec77c..000000000 Binary files a/priv/static/packs/locales/vanilla/ro.js.map and /dev/null differ diff --git a/priv/static/packs/locales/vanilla/ru.js b/priv/static/packs/locales/vanilla/ru.js deleted file mode 100644 index 9ae59768e..000000000 Binary files a/priv/static/packs/locales/vanilla/ru.js and /dev/null differ diff --git a/priv/static/packs/locales/vanilla/ru.js.map b/priv/static/packs/locales/vanilla/ru.js.map deleted file mode 100644 index 1ce82af25..000000000 Binary files a/priv/static/packs/locales/vanilla/ru.js.map and /dev/null differ diff --git a/priv/static/packs/locales/vanilla/sk.js b/priv/static/packs/locales/vanilla/sk.js deleted file mode 100644 index 2bfc244c5..000000000 Binary files a/priv/static/packs/locales/vanilla/sk.js and /dev/null differ diff --git a/priv/static/packs/locales/vanilla/sk.js.map b/priv/static/packs/locales/vanilla/sk.js.map deleted file mode 100644 index 78be422ca..000000000 Binary files a/priv/static/packs/locales/vanilla/sk.js.map and /dev/null differ diff --git a/priv/static/packs/locales/vanilla/sl.js b/priv/static/packs/locales/vanilla/sl.js deleted file mode 100644 index a91f08ff0..000000000 Binary files a/priv/static/packs/locales/vanilla/sl.js and /dev/null differ diff --git a/priv/static/packs/locales/vanilla/sl.js.map b/priv/static/packs/locales/vanilla/sl.js.map deleted file mode 100644 index 2a5f516d5..000000000 Binary files a/priv/static/packs/locales/vanilla/sl.js.map and /dev/null differ diff --git a/priv/static/packs/locales/vanilla/sq.js b/priv/static/packs/locales/vanilla/sq.js deleted file mode 100644 index 2077d9e64..000000000 Binary files a/priv/static/packs/locales/vanilla/sq.js and /dev/null differ diff --git a/priv/static/packs/locales/vanilla/sq.js.map b/priv/static/packs/locales/vanilla/sq.js.map deleted file mode 100644 index 034c534ba..000000000 Binary files a/priv/static/packs/locales/vanilla/sq.js.map and /dev/null differ diff --git a/priv/static/packs/locales/vanilla/sr-Latn.js b/priv/static/packs/locales/vanilla/sr-Latn.js deleted file mode 100644 index c6ba642c9..000000000 Binary files a/priv/static/packs/locales/vanilla/sr-Latn.js and /dev/null differ diff --git a/priv/static/packs/locales/vanilla/sr-Latn.js.map b/priv/static/packs/locales/vanilla/sr-Latn.js.map deleted file mode 100644 index 23a189d12..000000000 Binary files a/priv/static/packs/locales/vanilla/sr-Latn.js.map and /dev/null differ diff --git a/priv/static/packs/locales/vanilla/sr.js b/priv/static/packs/locales/vanilla/sr.js deleted file mode 100644 index c70e85181..000000000 Binary files a/priv/static/packs/locales/vanilla/sr.js and /dev/null differ diff --git a/priv/static/packs/locales/vanilla/sr.js.map b/priv/static/packs/locales/vanilla/sr.js.map deleted file mode 100644 index 34d0058c0..000000000 Binary files a/priv/static/packs/locales/vanilla/sr.js.map and /dev/null differ diff --git a/priv/static/packs/locales/vanilla/sv.js b/priv/static/packs/locales/vanilla/sv.js deleted file mode 100644 index c9edf7b80..000000000 Binary files a/priv/static/packs/locales/vanilla/sv.js and /dev/null differ diff --git a/priv/static/packs/locales/vanilla/sv.js.map b/priv/static/packs/locales/vanilla/sv.js.map deleted file mode 100644 index b0ca89829..000000000 Binary files a/priv/static/packs/locales/vanilla/sv.js.map and /dev/null differ diff --git a/priv/static/packs/locales/vanilla/ta.js b/priv/static/packs/locales/vanilla/ta.js deleted file mode 100644 index 2d274230d..000000000 Binary files a/priv/static/packs/locales/vanilla/ta.js and /dev/null differ diff --git a/priv/static/packs/locales/vanilla/ta.js.map b/priv/static/packs/locales/vanilla/ta.js.map deleted file mode 100644 index ffebb252a..000000000 Binary files a/priv/static/packs/locales/vanilla/ta.js.map and /dev/null differ diff --git a/priv/static/packs/locales/vanilla/te.js b/priv/static/packs/locales/vanilla/te.js deleted file mode 100644 index a9548c9f3..000000000 Binary files a/priv/static/packs/locales/vanilla/te.js and /dev/null differ diff --git a/priv/static/packs/locales/vanilla/te.js.map b/priv/static/packs/locales/vanilla/te.js.map deleted file mode 100644 index d6f33a0b9..000000000 Binary files a/priv/static/packs/locales/vanilla/te.js.map and /dev/null differ diff --git a/priv/static/packs/locales/vanilla/th.js b/priv/static/packs/locales/vanilla/th.js deleted file mode 100644 index 5fd67d669..000000000 Binary files a/priv/static/packs/locales/vanilla/th.js and /dev/null differ diff --git a/priv/static/packs/locales/vanilla/th.js.map b/priv/static/packs/locales/vanilla/th.js.map deleted file mode 100644 index 25c2c4641..000000000 Binary files a/priv/static/packs/locales/vanilla/th.js.map and /dev/null differ diff --git a/priv/static/packs/locales/vanilla/tr.js b/priv/static/packs/locales/vanilla/tr.js deleted file mode 100644 index 0e245a4ec..000000000 Binary files a/priv/static/packs/locales/vanilla/tr.js and /dev/null differ diff --git a/priv/static/packs/locales/vanilla/tr.js.map b/priv/static/packs/locales/vanilla/tr.js.map deleted file mode 100644 index fb38b5cde..000000000 Binary files a/priv/static/packs/locales/vanilla/tr.js.map and /dev/null differ diff --git a/priv/static/packs/locales/vanilla/uk.js b/priv/static/packs/locales/vanilla/uk.js deleted file mode 100644 index ea579e1a9..000000000 Binary files a/priv/static/packs/locales/vanilla/uk.js and /dev/null differ diff --git a/priv/static/packs/locales/vanilla/uk.js.map b/priv/static/packs/locales/vanilla/uk.js.map deleted file mode 100644 index e11d638c8..000000000 Binary files a/priv/static/packs/locales/vanilla/uk.js.map and /dev/null differ diff --git a/priv/static/packs/locales/vanilla/ur.js b/priv/static/packs/locales/vanilla/ur.js deleted file mode 100644 index fd92d1ab0..000000000 Binary files a/priv/static/packs/locales/vanilla/ur.js and /dev/null differ diff --git a/priv/static/packs/locales/vanilla/ur.js.map b/priv/static/packs/locales/vanilla/ur.js.map deleted file mode 100644 index 7aa1dc75c..000000000 Binary files a/priv/static/packs/locales/vanilla/ur.js.map and /dev/null differ diff --git a/priv/static/packs/locales/vanilla/vi.js b/priv/static/packs/locales/vanilla/vi.js deleted file mode 100644 index 74b75f64e..000000000 Binary files a/priv/static/packs/locales/vanilla/vi.js and /dev/null differ diff --git a/priv/static/packs/locales/vanilla/vi.js.map b/priv/static/packs/locales/vanilla/vi.js.map deleted file mode 100644 index ea34ab185..000000000 Binary files a/priv/static/packs/locales/vanilla/vi.js.map and /dev/null differ diff --git a/priv/static/packs/locales/vanilla/zh-CN.js b/priv/static/packs/locales/vanilla/zh-CN.js deleted file mode 100644 index 35514a2ee..000000000 Binary files a/priv/static/packs/locales/vanilla/zh-CN.js and /dev/null differ diff --git a/priv/static/packs/locales/vanilla/zh-CN.js.map b/priv/static/packs/locales/vanilla/zh-CN.js.map deleted file mode 100644 index e619f8655..000000000 Binary files a/priv/static/packs/locales/vanilla/zh-CN.js.map and /dev/null differ diff --git a/priv/static/packs/locales/vanilla/zh-HK.js b/priv/static/packs/locales/vanilla/zh-HK.js deleted file mode 100644 index a0eb66b6e..000000000 Binary files a/priv/static/packs/locales/vanilla/zh-HK.js and /dev/null differ diff --git a/priv/static/packs/locales/vanilla/zh-HK.js.map b/priv/static/packs/locales/vanilla/zh-HK.js.map deleted file mode 100644 index aac2821fa..000000000 Binary files a/priv/static/packs/locales/vanilla/zh-HK.js.map and /dev/null differ diff --git a/priv/static/packs/locales/vanilla/zh-TW.js b/priv/static/packs/locales/vanilla/zh-TW.js deleted file mode 100644 index 585a10947..000000000 Binary files a/priv/static/packs/locales/vanilla/zh-TW.js and /dev/null differ diff --git a/priv/static/packs/locales/vanilla/zh-TW.js.map b/priv/static/packs/locales/vanilla/zh-TW.js.map deleted file mode 100644 index 9ae897a48..000000000 Binary files a/priv/static/packs/locales/vanilla/zh-TW.js.map and /dev/null differ diff --git a/priv/static/packs/manifest.json b/priv/static/packs/manifest.json deleted file mode 100644 index df26ebd02..000000000 --- a/priv/static/packs/manifest.json +++ /dev/null @@ -1,2377 +0,0 @@ -{ - "arrow-key-navigation.js": "/packs/arrow-key-navigation.js", - "arrow-key-navigation.js.map": "/packs/arrow-key-navigation.js.map", - "base_polyfills.js": "/packs/base_polyfills.js", - "base_polyfills.js.map": "/packs/base_polyfills.js.map", - "common.js": "/packs/common.js", - "common.js.map": "/packs/common.js.map", - "containers/media_container.js": "/packs/containers/media_container.js", - "containers/media_container.js.map": "/packs/containers/media_container.js.map", - "core/admin.js": "/packs/core/admin.js", - "core/admin.js.map": "/packs/core/admin.js.map", - "core/auth.js": "/packs/core/auth.js", - "core/auth.js.map": "/packs/core/auth.js.map", - "core/common.css": "/packs/core/common.css", - "core/common.css.map": "/packs/core/common.css.map", - "core/common.js": "/packs/core/common.js", - "core/common.js.map": "/packs/core/common.js.map", - "core/embed.js": "/packs/core/embed.js", - "core/embed.js.map": "/packs/core/embed.js.map", - "core/mailer.css": "/packs/core/mailer.css", - "core/mailer.css.map": "/packs/core/mailer.css.map", - "core/mailer.js": "/packs/core/mailer.js", - "core/mailer.js.map": "/packs/core/mailer.js.map", - "core/modal.js": "/packs/core/modal.js", - "core/modal.js.map": "/packs/core/modal.js.map", - "core/public.js": "/packs/core/public.js", - "core/public.js.map": "/packs/core/public.js.map", - "core/settings.js": "/packs/core/settings.js", - "core/settings.js.map": "/packs/core/settings.js.map", - "emoji_picker.js": "/packs/emoji_picker.js", - "emoji_picker.js.map": "/packs/emoji_picker.js.map", - "entrypoints": { - "locales": { - "js": [ - "/packs/locales.js" - ], - "js.map": [ - "/packs/locales.js.map" - ] - }, - "locales/glitch/ar": { - "js": [ - "/packs/locales.js", - "/packs/locales/glitch/ar.js" - ], - "js.map": [ - "/packs/locales.js.map", - "/packs/locales/glitch/ar.js.map" - ] - }, - "locales/glitch/ast": { - "js": [ - "/packs/locales.js", - "/packs/locales/glitch/ast.js" - ], - "js.map": [ - "/packs/locales.js.map", - "/packs/locales/glitch/ast.js.map" - ] - }, - "locales/glitch/bg": { - "js": [ - "/packs/locales.js", - "/packs/locales/glitch/bg.js" - ], - "js.map": [ - "/packs/locales.js.map", - "/packs/locales/glitch/bg.js.map" - ] - }, - "locales/glitch/bn": { - "js": [ - "/packs/locales.js", - "/packs/locales/glitch/bn.js" - ], - "js.map": [ - "/packs/locales.js.map", - "/packs/locales/glitch/bn.js.map" - ] - }, - "locales/glitch/br": { - "js": [ - "/packs/locales.js", - "/packs/locales/glitch/br.js" - ], - "js.map": [ - "/packs/locales.js.map", - "/packs/locales/glitch/br.js.map" - ] - }, - "locales/glitch/ca": { - "js": [ - "/packs/locales.js", - "/packs/locales/glitch/ca.js" - ], - "js.map": [ - "/packs/locales.js.map", - "/packs/locales/glitch/ca.js.map" - ] - }, - "locales/glitch/co": { - "js": [ - "/packs/locales.js", - "/packs/locales/glitch/co.js" - ], - "js.map": [ - "/packs/locales.js.map", - "/packs/locales/glitch/co.js.map" - ] - }, - "locales/glitch/cs": { - "js": [ - "/packs/locales.js", - "/packs/locales/glitch/cs.js" - ], - "js.map": [ - "/packs/locales.js.map", - "/packs/locales/glitch/cs.js.map" - ] - }, - "locales/glitch/cy": { - "js": [ - "/packs/locales.js", - "/packs/locales/glitch/cy.js" - ], - "js.map": [ - "/packs/locales.js.map", - "/packs/locales/glitch/cy.js.map" - ] - }, - "locales/glitch/da": { - "js": [ - "/packs/locales.js", - "/packs/locales/glitch/da.js" - ], - "js.map": [ - "/packs/locales.js.map", - "/packs/locales/glitch/da.js.map" - ] - }, - "locales/glitch/de": { - "js": [ - "/packs/locales.js", - "/packs/locales/glitch/de.js" - ], - "js.map": [ - "/packs/locales.js.map", - "/packs/locales/glitch/de.js.map" - ] - }, - "locales/glitch/el": { - "js": [ - "/packs/locales.js", - "/packs/locales/glitch/el.js" - ], - "js.map": [ - "/packs/locales.js.map", - "/packs/locales/glitch/el.js.map" - ] - }, - "locales/glitch/en": { - "js": [ - "/packs/locales.js", - "/packs/locales/glitch/en.js" - ], - "js.map": [ - "/packs/locales.js.map", - "/packs/locales/glitch/en.js.map" - ] - }, - "locales/glitch/eo": { - "js": [ - "/packs/locales.js", - "/packs/locales/glitch/eo.js" - ], - "js.map": [ - "/packs/locales.js.map", - "/packs/locales/glitch/eo.js.map" - ] - }, - "locales/glitch/es-AR": { - "js": [ - "/packs/locales.js", - "/packs/locales/glitch/es-AR.js" - ], - "js.map": [ - "/packs/locales.js.map", - "/packs/locales/glitch/es-AR.js.map" - ] - }, - "locales/glitch/es": { - "js": [ - "/packs/locales.js", - "/packs/locales/glitch/es.js" - ], - "js.map": [ - "/packs/locales.js.map", - "/packs/locales/glitch/es.js.map" - ] - }, - "locales/glitch/et": { - "js": [ - "/packs/locales.js", - "/packs/locales/glitch/et.js" - ], - "js.map": [ - "/packs/locales.js.map", - "/packs/locales/glitch/et.js.map" - ] - }, - "locales/glitch/eu": { - "js": [ - "/packs/locales.js", - "/packs/locales/glitch/eu.js" - ], - "js.map": [ - "/packs/locales.js.map", - "/packs/locales/glitch/eu.js.map" - ] - }, - "locales/glitch/fa": { - "js": [ - "/packs/locales.js", - "/packs/locales/glitch/fa.js" - ], - "js.map": [ - "/packs/locales.js.map", - "/packs/locales/glitch/fa.js.map" - ] - }, - "locales/glitch/fi": { - "js": [ - "/packs/locales.js", - "/packs/locales/glitch/fi.js" - ], - "js.map": [ - "/packs/locales.js.map", - "/packs/locales/glitch/fi.js.map" - ] - }, - "locales/glitch/fr": { - "js": [ - "/packs/locales.js", - "/packs/locales/glitch/fr.js" - ], - "js.map": [ - "/packs/locales.js.map", - "/packs/locales/glitch/fr.js.map" - ] - }, - "locales/glitch/ga": { - "js": [ - "/packs/locales.js", - "/packs/locales/glitch/ga.js" - ], - "js.map": [ - "/packs/locales.js.map", - "/packs/locales/glitch/ga.js.map" - ] - }, - "locales/glitch/gl": { - "js": [ - "/packs/locales.js", - "/packs/locales/glitch/gl.js" - ], - "js.map": [ - "/packs/locales.js.map", - "/packs/locales/glitch/gl.js.map" - ] - }, - "locales/glitch/he": { - "js": [ - "/packs/locales.js", - "/packs/locales/glitch/he.js" - ], - "js.map": [ - "/packs/locales.js.map", - "/packs/locales/glitch/he.js.map" - ] - }, - "locales/glitch/hi": { - "js": [ - "/packs/locales.js", - "/packs/locales/glitch/hi.js" - ], - "js.map": [ - "/packs/locales.js.map", - "/packs/locales/glitch/hi.js.map" - ] - }, - "locales/glitch/hr": { - "js": [ - "/packs/locales.js", - "/packs/locales/glitch/hr.js" - ], - "js.map": [ - "/packs/locales.js.map", - "/packs/locales/glitch/hr.js.map" - ] - }, - "locales/glitch/hu": { - "js": [ - "/packs/locales.js", - "/packs/locales/glitch/hu.js" - ], - "js.map": [ - "/packs/locales.js.map", - "/packs/locales/glitch/hu.js.map" - ] - }, - "locales/glitch/hy": { - "js": [ - "/packs/locales.js", - "/packs/locales/glitch/hy.js" - ], - "js.map": [ - "/packs/locales.js.map", - "/packs/locales/glitch/hy.js.map" - ] - }, - "locales/glitch/id": { - "js": [ - "/packs/locales.js", - "/packs/locales/glitch/id.js" - ], - "js.map": [ - "/packs/locales.js.map", - "/packs/locales/glitch/id.js.map" - ] - }, - "locales/glitch/io": { - "js": [ - "/packs/locales.js", - "/packs/locales/glitch/io.js" - ], - "js.map": [ - "/packs/locales.js.map", - "/packs/locales/glitch/io.js.map" - ] - }, - "locales/glitch/is": { - "js": [ - "/packs/locales.js", - "/packs/locales/glitch/is.js" - ], - "js.map": [ - "/packs/locales.js.map", - "/packs/locales/glitch/is.js.map" - ] - }, - "locales/glitch/it": { - "js": [ - "/packs/locales.js", - "/packs/locales/glitch/it.js" - ], - "js.map": [ - "/packs/locales.js.map", - "/packs/locales/glitch/it.js.map" - ] - }, - "locales/glitch/ja": { - "js": [ - "/packs/locales.js", - "/packs/locales/glitch/ja.js" - ], - "js.map": [ - "/packs/locales.js.map", - "/packs/locales/glitch/ja.js.map" - ] - }, - "locales/glitch/ka": { - "js": [ - "/packs/locales.js", - "/packs/locales/glitch/ka.js" - ], - "js.map": [ - "/packs/locales.js.map", - "/packs/locales/glitch/ka.js.map" - ] - }, - "locales/glitch/kab": { - "js": [ - "/packs/locales.js", - "/packs/locales/glitch/kab.js" - ], - "js.map": [ - "/packs/locales.js.map", - "/packs/locales/glitch/kab.js.map" - ] - }, - "locales/glitch/kk": { - "js": [ - "/packs/locales.js", - "/packs/locales/glitch/kk.js" - ], - "js.map": [ - "/packs/locales.js.map", - "/packs/locales/glitch/kk.js.map" - ] - }, - "locales/glitch/kn": { - "js": [ - "/packs/locales.js", - "/packs/locales/glitch/kn.js" - ], - "js.map": [ - "/packs/locales.js.map", - "/packs/locales/glitch/kn.js.map" - ] - }, - "locales/glitch/ko": { - "js": [ - "/packs/locales.js", - "/packs/locales/glitch/ko.js" - ], - "js.map": [ - "/packs/locales.js.map", - "/packs/locales/glitch/ko.js.map" - ] - }, - "locales/glitch/lt": { - "js": [ - "/packs/locales.js", - "/packs/locales/glitch/lt.js" - ], - "js.map": [ - "/packs/locales.js.map", - "/packs/locales/glitch/lt.js.map" - ] - }, - "locales/glitch/lv": { - "js": [ - "/packs/locales.js", - "/packs/locales/glitch/lv.js" - ], - "js.map": [ - "/packs/locales.js.map", - "/packs/locales/glitch/lv.js.map" - ] - }, - "locales/glitch/mk": { - "js": [ - "/packs/locales.js", - "/packs/locales/glitch/mk.js" - ], - "js.map": [ - "/packs/locales.js.map", - "/packs/locales/glitch/mk.js.map" - ] - }, - "locales/glitch/ml": { - "js": [ - "/packs/locales.js", - "/packs/locales/glitch/ml.js" - ], - "js.map": [ - "/packs/locales.js.map", - "/packs/locales/glitch/ml.js.map" - ] - }, - "locales/glitch/mr": { - "js": [ - "/packs/locales.js", - "/packs/locales/glitch/mr.js" - ], - "js.map": [ - "/packs/locales.js.map", - "/packs/locales/glitch/mr.js.map" - ] - }, - "locales/glitch/ms": { - "js": [ - "/packs/locales.js", - "/packs/locales/glitch/ms.js" - ], - "js.map": [ - "/packs/locales.js.map", - "/packs/locales/glitch/ms.js.map" - ] - }, - "locales/glitch/nl": { - "js": [ - "/packs/locales.js", - "/packs/locales/glitch/nl.js" - ], - "js.map": [ - "/packs/locales.js.map", - "/packs/locales/glitch/nl.js.map" - ] - }, - "locales/glitch/nn": { - "js": [ - "/packs/locales.js", - "/packs/locales/glitch/nn.js" - ], - "js.map": [ - "/packs/locales.js.map", - "/packs/locales/glitch/nn.js.map" - ] - }, - "locales/glitch/no": { - "js": [ - "/packs/locales.js", - "/packs/locales/glitch/no.js" - ], - "js.map": [ - "/packs/locales.js.map", - "/packs/locales/glitch/no.js.map" - ] - }, - "locales/glitch/oc": { - "js": [ - "/packs/locales.js", - "/packs/locales/glitch/oc.js" - ], - "js.map": [ - "/packs/locales.js.map", - "/packs/locales/glitch/oc.js.map" - ] - }, - "locales/glitch/pl": { - "js": [ - "/packs/locales.js", - "/packs/locales/glitch/pl.js" - ], - "js.map": [ - "/packs/locales.js.map", - "/packs/locales/glitch/pl.js.map" - ] - }, - "locales/glitch/pt-BR": { - "js": [ - "/packs/locales.js", - "/packs/locales/glitch/pt-BR.js" - ], - "js.map": [ - "/packs/locales.js.map", - "/packs/locales/glitch/pt-BR.js.map" - ] - }, - "locales/glitch/pt-PT": { - "js": [ - "/packs/locales.js", - "/packs/locales/glitch/pt-PT.js" - ], - "js.map": [ - "/packs/locales.js.map", - "/packs/locales/glitch/pt-PT.js.map" - ] - }, - "locales/glitch/ro": { - "js": [ - "/packs/locales.js", - "/packs/locales/glitch/ro.js" - ], - "js.map": [ - "/packs/locales.js.map", - "/packs/locales/glitch/ro.js.map" - ] - }, - "locales/glitch/ru": { - "js": [ - "/packs/locales.js", - "/packs/locales/glitch/ru.js" - ], - "js.map": [ - "/packs/locales.js.map", - "/packs/locales/glitch/ru.js.map" - ] - }, - "locales/glitch/sk": { - "js": [ - "/packs/locales.js", - "/packs/locales/glitch/sk.js" - ], - "js.map": [ - "/packs/locales.js.map", - "/packs/locales/glitch/sk.js.map" - ] - }, - "locales/glitch/sl": { - "js": [ - "/packs/locales.js", - "/packs/locales/glitch/sl.js" - ], - "js.map": [ - "/packs/locales.js.map", - "/packs/locales/glitch/sl.js.map" - ] - }, - "locales/glitch/sq": { - "js": [ - "/packs/locales.js", - "/packs/locales/glitch/sq.js" - ], - "js.map": [ - "/packs/locales.js.map", - "/packs/locales/glitch/sq.js.map" - ] - }, - "locales/glitch/sr-Latn": { - "js": [ - "/packs/locales.js", - "/packs/locales/glitch/sr-Latn.js" - ], - "js.map": [ - "/packs/locales.js.map", - "/packs/locales/glitch/sr-Latn.js.map" - ] - }, - "locales/glitch/sr": { - "js": [ - "/packs/locales.js", - "/packs/locales/glitch/sr.js" - ], - "js.map": [ - "/packs/locales.js.map", - "/packs/locales/glitch/sr.js.map" - ] - }, - "locales/glitch/sv": { - "js": [ - "/packs/locales.js", - "/packs/locales/glitch/sv.js" - ], - "js.map": [ - "/packs/locales.js.map", - "/packs/locales/glitch/sv.js.map" - ] - }, - "locales/glitch/ta": { - "js": [ - "/packs/locales.js", - "/packs/locales/glitch/ta.js" - ], - "js.map": [ - "/packs/locales.js.map", - "/packs/locales/glitch/ta.js.map" - ] - }, - "locales/glitch/te": { - "js": [ - "/packs/locales.js", - "/packs/locales/glitch/te.js" - ], - "js.map": [ - "/packs/locales.js.map", - "/packs/locales/glitch/te.js.map" - ] - }, - "locales/glitch/th": { - "js": [ - "/packs/locales.js", - "/packs/locales/glitch/th.js" - ], - "js.map": [ - "/packs/locales.js.map", - "/packs/locales/glitch/th.js.map" - ] - }, - "locales/glitch/tr": { - "js": [ - "/packs/locales.js", - "/packs/locales/glitch/tr.js" - ], - "js.map": [ - "/packs/locales.js.map", - "/packs/locales/glitch/tr.js.map" - ] - }, - "locales/glitch/uk": { - "js": [ - "/packs/locales.js", - "/packs/locales/glitch/uk.js" - ], - "js.map": [ - "/packs/locales.js.map", - "/packs/locales/glitch/uk.js.map" - ] - }, - "locales/glitch/ur": { - "js": [ - "/packs/locales.js", - "/packs/locales/glitch/ur.js" - ], - "js.map": [ - "/packs/locales.js.map", - "/packs/locales/glitch/ur.js.map" - ] - }, - "locales/glitch/vi": { - "js": [ - "/packs/locales.js", - "/packs/locales/glitch/vi.js" - ], - "js.map": [ - "/packs/locales.js.map", - "/packs/locales/glitch/vi.js.map" - ] - }, - "locales/glitch/zh-CN": { - "js": [ - "/packs/locales.js", - "/packs/locales/glitch/zh-CN.js" - ], - "js.map": [ - "/packs/locales.js.map", - "/packs/locales/glitch/zh-CN.js.map" - ] - }, - "locales/glitch/zh-HK": { - "js": [ - "/packs/locales.js", - "/packs/locales/glitch/zh-HK.js" - ], - "js.map": [ - "/packs/locales.js.map", - "/packs/locales/glitch/zh-HK.js.map" - ] - }, - "locales/glitch/zh-TW": { - "js": [ - "/packs/locales.js", - "/packs/locales/glitch/zh-TW.js" - ], - "js.map": [ - "/packs/locales.js.map", - "/packs/locales/glitch/zh-TW.js.map" - ] - }, - "locales/vanilla/ar": { - "js": [ - "/packs/locales.js", - "/packs/locales/vanilla/ar.js" - ], - "js.map": [ - "/packs/locales.js.map", - "/packs/locales/vanilla/ar.js.map" - ] - }, - "locales/vanilla/ast": { - "js": [ - "/packs/locales.js", - "/packs/locales/vanilla/ast.js" - ], - "js.map": [ - "/packs/locales.js.map", - "/packs/locales/vanilla/ast.js.map" - ] - }, - "locales/vanilla/bg": { - "js": [ - "/packs/locales.js", - "/packs/locales/vanilla/bg.js" - ], - "js.map": [ - "/packs/locales.js.map", - "/packs/locales/vanilla/bg.js.map" - ] - }, - "locales/vanilla/bn": { - "js": [ - "/packs/locales.js", - "/packs/locales/vanilla/bn.js" - ], - "js.map": [ - "/packs/locales.js.map", - "/packs/locales/vanilla/bn.js.map" - ] - }, - "locales/vanilla/br": { - "js": [ - "/packs/locales.js", - "/packs/locales/vanilla/br.js" - ], - "js.map": [ - "/packs/locales.js.map", - "/packs/locales/vanilla/br.js.map" - ] - }, - "locales/vanilla/ca": { - "js": [ - "/packs/locales.js", - "/packs/locales/vanilla/ca.js" - ], - "js.map": [ - "/packs/locales.js.map", - "/packs/locales/vanilla/ca.js.map" - ] - }, - "locales/vanilla/co": { - "js": [ - "/packs/locales.js", - "/packs/locales/vanilla/co.js" - ], - "js.map": [ - "/packs/locales.js.map", - "/packs/locales/vanilla/co.js.map" - ] - }, - "locales/vanilla/cs": { - "js": [ - "/packs/locales.js", - "/packs/locales/vanilla/cs.js" - ], - "js.map": [ - "/packs/locales.js.map", - "/packs/locales/vanilla/cs.js.map" - ] - }, - "locales/vanilla/cy": { - "js": [ - "/packs/locales.js", - "/packs/locales/vanilla/cy.js" - ], - "js.map": [ - "/packs/locales.js.map", - "/packs/locales/vanilla/cy.js.map" - ] - }, - "locales/vanilla/da": { - "js": [ - "/packs/locales.js", - "/packs/locales/vanilla/da.js" - ], - "js.map": [ - "/packs/locales.js.map", - "/packs/locales/vanilla/da.js.map" - ] - }, - "locales/vanilla/de": { - "js": [ - "/packs/locales.js", - "/packs/locales/vanilla/de.js" - ], - "js.map": [ - "/packs/locales.js.map", - "/packs/locales/vanilla/de.js.map" - ] - }, - "locales/vanilla/el": { - "js": [ - "/packs/locales.js", - "/packs/locales/vanilla/el.js" - ], - "js.map": [ - "/packs/locales.js.map", - "/packs/locales/vanilla/el.js.map" - ] - }, - "locales/vanilla/en": { - "js": [ - "/packs/locales.js", - "/packs/locales/vanilla/en.js" - ], - "js.map": [ - "/packs/locales.js.map", - "/packs/locales/vanilla/en.js.map" - ] - }, - "locales/vanilla/eo": { - "js": [ - "/packs/locales.js", - "/packs/locales/vanilla/eo.js" - ], - "js.map": [ - "/packs/locales.js.map", - "/packs/locales/vanilla/eo.js.map" - ] - }, - "locales/vanilla/es-AR": { - "js": [ - "/packs/locales.js", - "/packs/locales/vanilla/es-AR.js" - ], - "js.map": [ - "/packs/locales.js.map", - "/packs/locales/vanilla/es-AR.js.map" - ] - }, - "locales/vanilla/es": { - "js": [ - "/packs/locales.js", - "/packs/locales/vanilla/es.js" - ], - "js.map": [ - "/packs/locales.js.map", - "/packs/locales/vanilla/es.js.map" - ] - }, - "locales/vanilla/et": { - "js": [ - "/packs/locales.js", - "/packs/locales/vanilla/et.js" - ], - "js.map": [ - "/packs/locales.js.map", - "/packs/locales/vanilla/et.js.map" - ] - }, - "locales/vanilla/eu": { - "js": [ - "/packs/locales.js", - "/packs/locales/vanilla/eu.js" - ], - "js.map": [ - "/packs/locales.js.map", - "/packs/locales/vanilla/eu.js.map" - ] - }, - "locales/vanilla/fa": { - "js": [ - "/packs/locales.js", - "/packs/locales/vanilla/fa.js" - ], - "js.map": [ - "/packs/locales.js.map", - "/packs/locales/vanilla/fa.js.map" - ] - }, - "locales/vanilla/fi": { - "js": [ - "/packs/locales.js", - "/packs/locales/vanilla/fi.js" - ], - "js.map": [ - "/packs/locales.js.map", - "/packs/locales/vanilla/fi.js.map" - ] - }, - "locales/vanilla/fr": { - "js": [ - "/packs/locales.js", - "/packs/locales/vanilla/fr.js" - ], - "js.map": [ - "/packs/locales.js.map", - "/packs/locales/vanilla/fr.js.map" - ] - }, - "locales/vanilla/ga": { - "js": [ - "/packs/locales.js", - "/packs/locales/vanilla/ga.js" - ], - "js.map": [ - "/packs/locales.js.map", - "/packs/locales/vanilla/ga.js.map" - ] - }, - "locales/vanilla/gl": { - "js": [ - "/packs/locales.js", - "/packs/locales/vanilla/gl.js" - ], - "js.map": [ - "/packs/locales.js.map", - "/packs/locales/vanilla/gl.js.map" - ] - }, - "locales/vanilla/he": { - "js": [ - "/packs/locales.js", - "/packs/locales/vanilla/he.js" - ], - "js.map": [ - "/packs/locales.js.map", - "/packs/locales/vanilla/he.js.map" - ] - }, - "locales/vanilla/hi": { - "js": [ - "/packs/locales.js", - "/packs/locales/vanilla/hi.js" - ], - "js.map": [ - "/packs/locales.js.map", - "/packs/locales/vanilla/hi.js.map" - ] - }, - "locales/vanilla/hr": { - "js": [ - "/packs/locales.js", - "/packs/locales/vanilla/hr.js" - ], - "js.map": [ - "/packs/locales.js.map", - "/packs/locales/vanilla/hr.js.map" - ] - }, - "locales/vanilla/hu": { - "js": [ - "/packs/locales.js", - "/packs/locales/vanilla/hu.js" - ], - "js.map": [ - "/packs/locales.js.map", - "/packs/locales/vanilla/hu.js.map" - ] - }, - "locales/vanilla/hy": { - "js": [ - "/packs/locales.js", - "/packs/locales/vanilla/hy.js" - ], - "js.map": [ - "/packs/locales.js.map", - "/packs/locales/vanilla/hy.js.map" - ] - }, - "locales/vanilla/id": { - "js": [ - "/packs/locales.js", - "/packs/locales/vanilla/id.js" - ], - "js.map": [ - "/packs/locales.js.map", - "/packs/locales/vanilla/id.js.map" - ] - }, - "locales/vanilla/io": { - "js": [ - "/packs/locales.js", - "/packs/locales/vanilla/io.js" - ], - "js.map": [ - "/packs/locales.js.map", - "/packs/locales/vanilla/io.js.map" - ] - }, - "locales/vanilla/is": { - "js": [ - "/packs/locales.js", - "/packs/locales/vanilla/is.js" - ], - "js.map": [ - "/packs/locales.js.map", - "/packs/locales/vanilla/is.js.map" - ] - }, - "locales/vanilla/it": { - "js": [ - "/packs/locales.js", - "/packs/locales/vanilla/it.js" - ], - "js.map": [ - "/packs/locales.js.map", - "/packs/locales/vanilla/it.js.map" - ] - }, - "locales/vanilla/ja": { - "js": [ - "/packs/locales.js", - "/packs/locales/vanilla/ja.js" - ], - "js.map": [ - "/packs/locales.js.map", - "/packs/locales/vanilla/ja.js.map" - ] - }, - "locales/vanilla/ka": { - "js": [ - "/packs/locales.js", - "/packs/locales/vanilla/ka.js" - ], - "js.map": [ - "/packs/locales.js.map", - "/packs/locales/vanilla/ka.js.map" - ] - }, - "locales/vanilla/kab": { - "js": [ - "/packs/locales.js", - "/packs/locales/vanilla/kab.js" - ], - "js.map": [ - "/packs/locales.js.map", - "/packs/locales/vanilla/kab.js.map" - ] - }, - "locales/vanilla/kk": { - "js": [ - "/packs/locales.js", - "/packs/locales/vanilla/kk.js" - ], - "js.map": [ - "/packs/locales.js.map", - "/packs/locales/vanilla/kk.js.map" - ] - }, - "locales/vanilla/kn": { - "js": [ - "/packs/locales.js", - "/packs/locales/vanilla/kn.js" - ], - "js.map": [ - "/packs/locales.js.map", - "/packs/locales/vanilla/kn.js.map" - ] - }, - "locales/vanilla/ko": { - "js": [ - "/packs/locales.js", - "/packs/locales/vanilla/ko.js" - ], - "js.map": [ - "/packs/locales.js.map", - "/packs/locales/vanilla/ko.js.map" - ] - }, - "locales/vanilla/lt": { - "js": [ - "/packs/locales.js", - "/packs/locales/vanilla/lt.js" - ], - "js.map": [ - "/packs/locales.js.map", - "/packs/locales/vanilla/lt.js.map" - ] - }, - "locales/vanilla/lv": { - "js": [ - "/packs/locales.js", - "/packs/locales/vanilla/lv.js" - ], - "js.map": [ - "/packs/locales.js.map", - "/packs/locales/vanilla/lv.js.map" - ] - }, - "locales/vanilla/mk": { - "js": [ - "/packs/locales.js", - "/packs/locales/vanilla/mk.js" - ], - "js.map": [ - "/packs/locales.js.map", - "/packs/locales/vanilla/mk.js.map" - ] - }, - "locales/vanilla/ml": { - "js": [ - "/packs/locales.js", - "/packs/locales/vanilla/ml.js" - ], - "js.map": [ - "/packs/locales.js.map", - "/packs/locales/vanilla/ml.js.map" - ] - }, - "locales/vanilla/mr": { - "js": [ - "/packs/locales.js", - "/packs/locales/vanilla/mr.js" - ], - "js.map": [ - "/packs/locales.js.map", - "/packs/locales/vanilla/mr.js.map" - ] - }, - "locales/vanilla/ms": { - "js": [ - "/packs/locales.js", - "/packs/locales/vanilla/ms.js" - ], - "js.map": [ - "/packs/locales.js.map", - "/packs/locales/vanilla/ms.js.map" - ] - }, - "locales/vanilla/nl": { - "js": [ - "/packs/locales.js", - "/packs/locales/vanilla/nl.js" - ], - "js.map": [ - "/packs/locales.js.map", - "/packs/locales/vanilla/nl.js.map" - ] - }, - "locales/vanilla/nn": { - "js": [ - "/packs/locales.js", - "/packs/locales/vanilla/nn.js" - ], - "js.map": [ - "/packs/locales.js.map", - "/packs/locales/vanilla/nn.js.map" - ] - }, - "locales/vanilla/no": { - "js": [ - "/packs/locales.js", - "/packs/locales/vanilla/no.js" - ], - "js.map": [ - "/packs/locales.js.map", - "/packs/locales/vanilla/no.js.map" - ] - }, - "locales/vanilla/oc": { - "js": [ - "/packs/locales.js", - "/packs/locales/vanilla/oc.js" - ], - "js.map": [ - "/packs/locales.js.map", - "/packs/locales/vanilla/oc.js.map" - ] - }, - "locales/vanilla/pl": { - "js": [ - "/packs/locales.js", - "/packs/locales/vanilla/pl.js" - ], - "js.map": [ - "/packs/locales.js.map", - "/packs/locales/vanilla/pl.js.map" - ] - }, - "locales/vanilla/pt-BR": { - "js": [ - "/packs/locales.js", - "/packs/locales/vanilla/pt-BR.js" - ], - "js.map": [ - "/packs/locales.js.map", - "/packs/locales/vanilla/pt-BR.js.map" - ] - }, - "locales/vanilla/pt-PT": { - "js": [ - "/packs/locales.js", - "/packs/locales/vanilla/pt-PT.js" - ], - "js.map": [ - "/packs/locales.js.map", - "/packs/locales/vanilla/pt-PT.js.map" - ] - }, - "locales/vanilla/ro": { - "js": [ - "/packs/locales.js", - "/packs/locales/vanilla/ro.js" - ], - "js.map": [ - "/packs/locales.js.map", - "/packs/locales/vanilla/ro.js.map" - ] - }, - "locales/vanilla/ru": { - "js": [ - "/packs/locales.js", - "/packs/locales/vanilla/ru.js" - ], - "js.map": [ - "/packs/locales.js.map", - "/packs/locales/vanilla/ru.js.map" - ] - }, - "locales/vanilla/sk": { - "js": [ - "/packs/locales.js", - "/packs/locales/vanilla/sk.js" - ], - "js.map": [ - "/packs/locales.js.map", - "/packs/locales/vanilla/sk.js.map" - ] - }, - "locales/vanilla/sl": { - "js": [ - "/packs/locales.js", - "/packs/locales/vanilla/sl.js" - ], - "js.map": [ - "/packs/locales.js.map", - "/packs/locales/vanilla/sl.js.map" - ] - }, - "locales/vanilla/sq": { - "js": [ - "/packs/locales.js", - "/packs/locales/vanilla/sq.js" - ], - "js.map": [ - "/packs/locales.js.map", - "/packs/locales/vanilla/sq.js.map" - ] - }, - "locales/vanilla/sr-Latn": { - "js": [ - "/packs/locales.js", - "/packs/locales/vanilla/sr-Latn.js" - ], - "js.map": [ - "/packs/locales.js.map", - "/packs/locales/vanilla/sr-Latn.js.map" - ] - }, - "locales/vanilla/sr": { - "js": [ - "/packs/locales.js", - "/packs/locales/vanilla/sr.js" - ], - "js.map": [ - "/packs/locales.js.map", - "/packs/locales/vanilla/sr.js.map" - ] - }, - "locales/vanilla/sv": { - "js": [ - "/packs/locales.js", - "/packs/locales/vanilla/sv.js" - ], - "js.map": [ - "/packs/locales.js.map", - "/packs/locales/vanilla/sv.js.map" - ] - }, - "locales/vanilla/ta": { - "js": [ - "/packs/locales.js", - "/packs/locales/vanilla/ta.js" - ], - "js.map": [ - "/packs/locales.js.map", - "/packs/locales/vanilla/ta.js.map" - ] - }, - "locales/vanilla/te": { - "js": [ - "/packs/locales.js", - "/packs/locales/vanilla/te.js" - ], - "js.map": [ - "/packs/locales.js.map", - "/packs/locales/vanilla/te.js.map" - ] - }, - "locales/vanilla/th": { - "js": [ - "/packs/locales.js", - "/packs/locales/vanilla/th.js" - ], - "js.map": [ - "/packs/locales.js.map", - "/packs/locales/vanilla/th.js.map" - ] - }, - "locales/vanilla/tr": { - "js": [ - "/packs/locales.js", - "/packs/locales/vanilla/tr.js" - ], - "js.map": [ - "/packs/locales.js.map", - "/packs/locales/vanilla/tr.js.map" - ] - }, - "locales/vanilla/uk": { - "js": [ - "/packs/locales.js", - "/packs/locales/vanilla/uk.js" - ], - "js.map": [ - "/packs/locales.js.map", - "/packs/locales/vanilla/uk.js.map" - ] - }, - "locales/vanilla/ur": { - "js": [ - "/packs/locales.js", - "/packs/locales/vanilla/ur.js" - ], - "js.map": [ - "/packs/locales.js.map", - "/packs/locales/vanilla/ur.js.map" - ] - }, - "locales/vanilla/vi": { - "js": [ - "/packs/locales.js", - "/packs/locales/vanilla/vi.js" - ], - "js.map": [ - "/packs/locales.js.map", - "/packs/locales/vanilla/vi.js.map" - ] - }, - "locales/vanilla/zh-CN": { - "js": [ - "/packs/locales.js", - "/packs/locales/vanilla/zh-CN.js" - ], - "js.map": [ - "/packs/locales.js.map", - "/packs/locales/vanilla/zh-CN.js.map" - ] - }, - "locales/vanilla/zh-HK": { - "js": [ - "/packs/locales.js", - "/packs/locales/vanilla/zh-HK.js" - ], - "js.map": [ - "/packs/locales.js.map", - "/packs/locales/vanilla/zh-HK.js.map" - ] - }, - "locales/vanilla/zh-TW": { - "js": [ - "/packs/locales.js", - "/packs/locales/vanilla/zh-TW.js" - ], - "js.map": [ - "/packs/locales.js.map", - "/packs/locales/vanilla/zh-TW.js.map" - ] - }, - "core/admin": { - "js": [ - "/packs/locales.js", - "/packs/core/admin.js" - ], - "js.map": [ - "/packs/locales.js.map", - "/packs/core/admin.js.map" - ] - }, - "core/auth": { - "js": [ - "/packs/locales.js", - "/packs/core/auth.js" - ], - "js.map": [ - "/packs/locales.js.map", - "/packs/core/auth.js.map" - ] - }, - "core/common": { - "js": [ - "/packs/locales.js", - "/packs/core/common.js" - ], - "js.map": [ - "/packs/locales.js.map", - "/packs/core/common.js.map" - ], - "css": [ - "/packs/core/common.css" - ], - "css.map": [ - "/packs/core/common.css.map" - ] - }, - "core/embed": { - "js": [ - "/packs/locales.js", - "/packs/core/embed.js" - ], - "js.map": [ - "/packs/locales.js.map", - "/packs/core/embed.js.map" - ] - }, - "core/mailer": { - "js": [ - "/packs/locales.js", - "/packs/core/mailer.js" - ], - "js.map": [ - "/packs/locales.js.map", - "/packs/core/mailer.js.map" - ], - "css": [ - "/packs/core/mailer.css" - ], - "css.map": [ - "/packs/core/mailer.css.map" - ] - }, - "core/modal": { - "js": [ - "/packs/locales.js", - "/packs/core/modal.js" - ], - "js.map": [ - "/packs/locales.js.map", - "/packs/core/modal.js.map" - ] - }, - "core/public": { - "js": [ - "/packs/locales.js", - "/packs/core/public.js" - ], - "js.map": [ - "/packs/locales.js.map", - "/packs/core/public.js.map" - ] - }, - "core/settings": { - "js": [ - "/packs/locales.js", - "/packs/core/settings.js" - ], - "js.map": [ - "/packs/locales.js.map", - "/packs/core/settings.js.map" - ] - }, - "flavours/glitch/about": { - "js": [ - "/packs/locales.js", - "/packs/flavours/glitch/about.js" - ], - "js.map": [ - "/packs/locales.js.map", - "/packs/flavours/glitch/about.js.map" - ] - }, - "flavours/glitch/admin": { - "js": [ - "/packs/locales.js", - "/packs/flavours/glitch/admin.js" - ], - "js.map": [ - "/packs/locales.js.map", - "/packs/flavours/glitch/admin.js.map" - ] - }, - "flavours/glitch/common": { - "js": [ - "/packs/locales.js", - "/packs/flavours/glitch/common.js" - ], - "js.map": [ - "/packs/locales.js.map", - "/packs/flavours/glitch/common.js.map" - ], - "css": [ - "/packs/flavours/glitch/common.css" - ], - "css.map": [ - "/packs/flavours/glitch/common.css.map" - ] - }, - "flavours/glitch/embed": { - "js": [ - "/packs/locales.js", - "/packs/flavours/glitch/embed.js" - ], - "js.map": [ - "/packs/locales.js.map", - "/packs/flavours/glitch/embed.js.map" - ] - }, - "flavours/glitch/error": { - "js": [ - "/packs/locales.js", - "/packs/flavours/glitch/error.js" - ], - "js.map": [ - "/packs/locales.js.map", - "/packs/flavours/glitch/error.js.map" - ] - }, - "flavours/glitch/home": { - "js": [ - "/packs/locales.js", - "/packs/flavours/glitch/home.js" - ], - "js.map": [ - "/packs/locales.js.map", - "/packs/flavours/glitch/home.js.map" - ] - }, - "flavours/glitch/public": { - "js": [ - "/packs/locales.js", - "/packs/flavours/glitch/public.js" - ], - "js.map": [ - "/packs/locales.js.map", - "/packs/flavours/glitch/public.js.map" - ] - }, - "flavours/glitch/settings": { - "js": [ - "/packs/locales.js", - "/packs/flavours/glitch/settings.js" - ], - "js.map": [ - "/packs/locales.js.map", - "/packs/flavours/glitch/settings.js.map" - ] - }, - "flavours/glitch/share": { - "js": [ - "/packs/locales.js", - "/packs/flavours/glitch/share.js" - ], - "js.map": [ - "/packs/locales.js.map", - "/packs/flavours/glitch/share.js.map" - ] - }, - "skins/glitch/contrast/common": { - "js": [ - "/packs/locales.js", - "/packs/skins/glitch/contrast/common.js" - ], - "js.map": [ - "/packs/locales.js.map", - "/packs/skins/glitch/contrast/common.js.map" - ], - "css": [ - "/packs/skins/glitch/contrast/common.css" - ], - "css.map": [ - "/packs/skins/glitch/contrast/common.css.map" - ] - }, - "skins/glitch/mastodon-light/common": { - "js": [ - "/packs/locales.js", - "/packs/skins/glitch/mastodon-light/common.js" - ], - "js.map": [ - "/packs/locales.js.map", - "/packs/skins/glitch/mastodon-light/common.js.map" - ], - "css": [ - "/packs/skins/glitch/mastodon-light/common.css" - ], - "css.map": [ - "/packs/skins/glitch/mastodon-light/common.css.map" - ] - }, - "flavours/vanilla/about": { - "js": [ - "/packs/locales.js", - "/packs/flavours/vanilla/about.js" - ], - "js.map": [ - "/packs/locales.js.map", - "/packs/flavours/vanilla/about.js.map" - ], - "css": [ - "/packs/flavours/vanilla/about.css" - ], - "css.map": [ - "/packs/flavours/vanilla/about.css.map" - ] - }, - "flavours/vanilla/admin": { - "js": [ - "/packs/locales.js", - "/packs/flavours/vanilla/admin.js" - ], - "js.map": [ - "/packs/locales.js.map", - "/packs/flavours/vanilla/admin.js.map" - ], - "css": [ - "/packs/flavours/vanilla/admin.css" - ], - "css.map": [ - "/packs/flavours/vanilla/admin.css.map" - ] - }, - "flavours/vanilla/common": { - "js": [ - "/packs/locales.js", - "/packs/flavours/vanilla/common.js" - ], - "js.map": [ - "/packs/locales.js.map", - "/packs/flavours/vanilla/common.js.map" - ], - "css": [ - "/packs/flavours/vanilla/common.css" - ], - "css.map": [ - "/packs/flavours/vanilla/common.css.map" - ] - }, - "flavours/vanilla/embed": { - "js": [ - "/packs/locales.js", - "/packs/flavours/vanilla/embed.js" - ], - "js.map": [ - "/packs/locales.js.map", - "/packs/flavours/vanilla/embed.js.map" - ], - "css": [ - "/packs/flavours/vanilla/embed.css" - ], - "css.map": [ - "/packs/flavours/vanilla/embed.css.map" - ] - }, - "flavours/vanilla/error": { - "js": [ - "/packs/locales.js", - "/packs/flavours/vanilla/error.js" - ], - "js.map": [ - "/packs/locales.js.map", - "/packs/flavours/vanilla/error.js.map" - ] - }, - "flavours/vanilla/home": { - "js": [ - "/packs/locales.js", - "/packs/flavours/vanilla/home.js" - ], - "js.map": [ - "/packs/locales.js.map", - "/packs/flavours/vanilla/home.js.map" - ], - "css": [ - "/packs/flavours/vanilla/home.css" - ], - "css.map": [ - "/packs/flavours/vanilla/home.css.map" - ] - }, - "flavours/vanilla/public": { - "js": [ - "/packs/locales.js", - "/packs/flavours/vanilla/public.js" - ], - "js.map": [ - "/packs/locales.js.map", - "/packs/flavours/vanilla/public.js.map" - ], - "css": [ - "/packs/flavours/vanilla/public.css" - ], - "css.map": [ - "/packs/flavours/vanilla/public.css.map" - ] - }, - "flavours/vanilla/settings": { - "js": [ - "/packs/locales.js", - "/packs/flavours/vanilla/settings.js" - ], - "js.map": [ - "/packs/locales.js.map", - "/packs/flavours/vanilla/settings.js.map" - ], - "css": [ - "/packs/flavours/vanilla/settings.css" - ], - "css.map": [ - "/packs/flavours/vanilla/settings.css.map" - ] - }, - "flavours/vanilla/share": { - "js": [ - "/packs/locales.js", - "/packs/flavours/vanilla/share.js" - ], - "js.map": [ - "/packs/locales.js.map", - "/packs/flavours/vanilla/share.js.map" - ], - "css": [ - "/packs/flavours/vanilla/share.css" - ], - "css.map": [ - "/packs/flavours/vanilla/share.css.map" - ] - }, - "skins/vanilla/contrast/common": { - "js": [ - "/packs/locales.js", - "/packs/skins/vanilla/contrast/common.js" - ], - "js.map": [ - "/packs/locales.js.map", - "/packs/skins/vanilla/contrast/common.js.map" - ], - "css": [ - "/packs/skins/vanilla/contrast/common.css" - ], - "css.map": [ - "/packs/skins/vanilla/contrast/common.css.map" - ] - }, - "skins/vanilla/mastodon-light/common": { - "js": [ - "/packs/locales.js", - "/packs/skins/vanilla/mastodon-light/common.js" - ], - "js.map": [ - "/packs/locales.js.map", - "/packs/skins/vanilla/mastodon-light/common.js.map" - ], - "css": [ - "/packs/skins/vanilla/mastodon-light/common.css" - ], - "css.map": [ - "/packs/skins/vanilla/mastodon-light/common.css.map" - ] - }, - "skins/vanilla/win95/common": { - "js": [ - "/packs/locales.js", - "/packs/skins/vanilla/win95/common.js" - ], - "js.map": [ - "/packs/locales.js.map", - "/packs/skins/vanilla/win95/common.js.map" - ], - "css": [ - "/packs/skins/vanilla/win95/common.css" - ], - "css.map": [ - "/packs/skins/vanilla/win95/common.css.map" - ] - } - }, - "extra_polyfills.js": "/packs/extra_polyfills.js", - "extra_polyfills.js.map": "/packs/extra_polyfills.js.map", - "features/account_gallery.js": "/packs/features/account_gallery.js", - "features/account_gallery.js.map": "/packs/features/account_gallery.js.map", - "features/account_timeline.js": "/packs/features/account_timeline.js", - "features/account_timeline.js.map": "/packs/features/account_timeline.js.map", - "features/blocks.js": "/packs/features/blocks.js", - "features/blocks.js.map": "/packs/features/blocks.js.map", - "features/bookmarked_statuses.js": "/packs/features/bookmarked_statuses.js", - "features/bookmarked_statuses.js.map": "/packs/features/bookmarked_statuses.js.map", - "features/community_timeline.js": "/packs/features/community_timeline.js", - "features/community_timeline.js.map": "/packs/features/community_timeline.js.map", - "features/compose.js": "/packs/features/compose.js", - "features/compose.js.map": "/packs/features/compose.js.map", - "features/direct_timeline.js": "/packs/features/direct_timeline.js", - "features/direct_timeline.js.map": "/packs/features/direct_timeline.js.map", - "features/directory.js": "/packs/features/directory.js", - "features/directory.js.map": "/packs/features/directory.js.map", - "features/domain_blocks.js": "/packs/features/domain_blocks.js", - "features/domain_blocks.js.map": "/packs/features/domain_blocks.js.map", - "features/favourited_statuses.js": "/packs/features/favourited_statuses.js", - "features/favourited_statuses.js.map": "/packs/features/favourited_statuses.js.map", - "features/favourites.js": "/packs/features/favourites.js", - "features/favourites.js.map": "/packs/features/favourites.js.map", - "features/follow_requests.js": "/packs/features/follow_requests.js", - "features/follow_requests.js.map": "/packs/features/follow_requests.js.map", - "features/followers.js": "/packs/features/followers.js", - "features/followers.js.map": "/packs/features/followers.js.map", - "features/following.js": "/packs/features/following.js", - "features/following.js.map": "/packs/features/following.js.map", - "features/generic_not_found.js": "/packs/features/generic_not_found.js", - "features/generic_not_found.js.map": "/packs/features/generic_not_found.js.map", - "features/getting_started.js": "/packs/features/getting_started.js", - "features/getting_started.js.map": "/packs/features/getting_started.js.map", - "features/glitch/async/directory.js": "/packs/features/glitch/async/directory.js", - "features/glitch/async/directory.js.map": "/packs/features/glitch/async/directory.js.map", - "features/glitch/async/list_adder.js": "/packs/features/glitch/async/list_adder.js", - "features/glitch/async/list_adder.js.map": "/packs/features/glitch/async/list_adder.js.map", - "features/glitch/async/search.js": "/packs/features/glitch/async/search.js", - "features/glitch/async/search.js.map": "/packs/features/glitch/async/search.js.map", - "features/hashtag_timeline.js": "/packs/features/hashtag_timeline.js", - "features/hashtag_timeline.js.map": "/packs/features/hashtag_timeline.js.map", - "features/home_timeline.js": "/packs/features/home_timeline.js", - "features/home_timeline.js.map": "/packs/features/home_timeline.js.map", - "features/keyboard_shortcuts.js": "/packs/features/keyboard_shortcuts.js", - "features/keyboard_shortcuts.js.map": "/packs/features/keyboard_shortcuts.js.map", - "features/list_adder.js": "/packs/features/list_adder.js", - "features/list_adder.js.map": "/packs/features/list_adder.js.map", - "features/list_editor.js": "/packs/features/list_editor.js", - "features/list_editor.js.map": "/packs/features/list_editor.js.map", - "features/list_timeline.js": "/packs/features/list_timeline.js", - "features/list_timeline.js.map": "/packs/features/list_timeline.js.map", - "features/lists.js": "/packs/features/lists.js", - "features/lists.js.map": "/packs/features/lists.js.map", - "features/mutes.js": "/packs/features/mutes.js", - "features/mutes.js.map": "/packs/features/mutes.js.map", - "features/notifications.js": "/packs/features/notifications.js", - "features/notifications.js.map": "/packs/features/notifications.js.map", - "features/pinned_statuses.js": "/packs/features/pinned_statuses.js", - "features/pinned_statuses.js.map": "/packs/features/pinned_statuses.js.map", - "features/public_timeline.js": "/packs/features/public_timeline.js", - "features/public_timeline.js.map": "/packs/features/public_timeline.js.map", - "features/reblogs.js": "/packs/features/reblogs.js", - "features/reblogs.js.map": "/packs/features/reblogs.js.map", - "features/search.js": "/packs/features/search.js", - "features/search.js.map": "/packs/features/search.js.map", - "features/status.js": "/packs/features/status.js", - "features/status.js.map": "/packs/features/status.js.map", - "flavours/glitch/about.js": "/packs/flavours/glitch/about.js", - "flavours/glitch/about.js.map": "/packs/flavours/glitch/about.js.map", - "flavours/glitch/admin.js": "/packs/flavours/glitch/admin.js", - "flavours/glitch/admin.js.map": "/packs/flavours/glitch/admin.js.map", - "flavours/glitch/async/account_gallery.js": "/packs/flavours/glitch/async/account_gallery.js", - "flavours/glitch/async/account_gallery.js.map": "/packs/flavours/glitch/async/account_gallery.js.map", - "flavours/glitch/async/account_timeline.js": "/packs/flavours/glitch/async/account_timeline.js", - "flavours/glitch/async/account_timeline.js.map": "/packs/flavours/glitch/async/account_timeline.js.map", - "flavours/glitch/async/block_modal.js": "/packs/flavours/glitch/async/block_modal.js", - "flavours/glitch/async/block_modal.js.map": "/packs/flavours/glitch/async/block_modal.js.map", - "flavours/glitch/async/blocks.js": "/packs/flavours/glitch/async/blocks.js", - "flavours/glitch/async/blocks.js.map": "/packs/flavours/glitch/async/blocks.js.map", - "flavours/glitch/async/bookmarked_statuses.js": "/packs/flavours/glitch/async/bookmarked_statuses.js", - "flavours/glitch/async/bookmarked_statuses.js.map": "/packs/flavours/glitch/async/bookmarked_statuses.js.map", - "flavours/glitch/async/community_timeline.js": "/packs/flavours/glitch/async/community_timeline.js", - "flavours/glitch/async/community_timeline.js.map": "/packs/flavours/glitch/async/community_timeline.js.map", - "flavours/glitch/async/compose.js": "/packs/flavours/glitch/async/compose.js", - "flavours/glitch/async/compose.js.map": "/packs/flavours/glitch/async/compose.js.map", - "flavours/glitch/async/direct_timeline.js": "/packs/flavours/glitch/async/direct_timeline.js", - "flavours/glitch/async/direct_timeline.js.map": "/packs/flavours/glitch/async/direct_timeline.js.map", - "flavours/glitch/async/domain_blocks.js": "/packs/flavours/glitch/async/domain_blocks.js", - "flavours/glitch/async/domain_blocks.js.map": "/packs/flavours/glitch/async/domain_blocks.js.map", - "flavours/glitch/async/embed_modal.js": "/packs/flavours/glitch/async/embed_modal.js", - "flavours/glitch/async/embed_modal.js.map": "/packs/flavours/glitch/async/embed_modal.js.map", - "flavours/glitch/async/emoji_picker.js": "/packs/flavours/glitch/async/emoji_picker.js", - "flavours/glitch/async/emoji_picker.js.map": "/packs/flavours/glitch/async/emoji_picker.js.map", - "flavours/glitch/async/favourited_statuses.js": "/packs/flavours/glitch/async/favourited_statuses.js", - "flavours/glitch/async/favourited_statuses.js.map": "/packs/flavours/glitch/async/favourited_statuses.js.map", - "flavours/glitch/async/favourites.js": "/packs/flavours/glitch/async/favourites.js", - "flavours/glitch/async/favourites.js.map": "/packs/flavours/glitch/async/favourites.js.map", - "flavours/glitch/async/follow_requests.js": "/packs/flavours/glitch/async/follow_requests.js", - "flavours/glitch/async/follow_requests.js.map": "/packs/flavours/glitch/async/follow_requests.js.map", - "flavours/glitch/async/followers.js": "/packs/flavours/glitch/async/followers.js", - "flavours/glitch/async/followers.js.map": "/packs/flavours/glitch/async/followers.js.map", - "flavours/glitch/async/following.js": "/packs/flavours/glitch/async/following.js", - "flavours/glitch/async/following.js.map": "/packs/flavours/glitch/async/following.js.map", - "flavours/glitch/async/generic_not_found.js": "/packs/flavours/glitch/async/generic_not_found.js", - "flavours/glitch/async/generic_not_found.js.map": "/packs/flavours/glitch/async/generic_not_found.js.map", - "flavours/glitch/async/getting_started.js": "/packs/flavours/glitch/async/getting_started.js", - "flavours/glitch/async/getting_started.js.map": "/packs/flavours/glitch/async/getting_started.js.map", - "flavours/glitch/async/getting_started_misc.js": "/packs/flavours/glitch/async/getting_started_misc.js", - "flavours/glitch/async/getting_started_misc.js.map": "/packs/flavours/glitch/async/getting_started_misc.js.map", - "flavours/glitch/async/hashtag_timeline.js": "/packs/flavours/glitch/async/hashtag_timeline.js", - "flavours/glitch/async/hashtag_timeline.js.map": "/packs/flavours/glitch/async/hashtag_timeline.js.map", - "flavours/glitch/async/home_timeline.js": "/packs/flavours/glitch/async/home_timeline.js", - "flavours/glitch/async/home_timeline.js.map": "/packs/flavours/glitch/async/home_timeline.js.map", - "flavours/glitch/async/keyboard_shortcuts.js": "/packs/flavours/glitch/async/keyboard_shortcuts.js", - "flavours/glitch/async/keyboard_shortcuts.js.map": "/packs/flavours/glitch/async/keyboard_shortcuts.js.map", - "flavours/glitch/async/list_editor.js": "/packs/flavours/glitch/async/list_editor.js", - "flavours/glitch/async/list_editor.js.map": "/packs/flavours/glitch/async/list_editor.js.map", - "flavours/glitch/async/list_timeline.js": "/packs/flavours/glitch/async/list_timeline.js", - "flavours/glitch/async/list_timeline.js.map": "/packs/flavours/glitch/async/list_timeline.js.map", - "flavours/glitch/async/lists.js": "/packs/flavours/glitch/async/lists.js", - "flavours/glitch/async/lists.js.map": "/packs/flavours/glitch/async/lists.js.map", - "flavours/glitch/async/mute_modal.js": "/packs/flavours/glitch/async/mute_modal.js", - "flavours/glitch/async/mute_modal.js.map": "/packs/flavours/glitch/async/mute_modal.js.map", - "flavours/glitch/async/mutes.js": "/packs/flavours/glitch/async/mutes.js", - "flavours/glitch/async/mutes.js.map": "/packs/flavours/glitch/async/mutes.js.map", - "flavours/glitch/async/notifications.js": "/packs/flavours/glitch/async/notifications.js", - "flavours/glitch/async/notifications.js.map": "/packs/flavours/glitch/async/notifications.js.map", - "flavours/glitch/async/onboarding_modal.js": "/packs/flavours/glitch/async/onboarding_modal.js", - "flavours/glitch/async/onboarding_modal.js.map": "/packs/flavours/glitch/async/onboarding_modal.js.map", - "flavours/glitch/async/pinned_accounts_editor.js": "/packs/flavours/glitch/async/pinned_accounts_editor.js", - "flavours/glitch/async/pinned_accounts_editor.js.map": "/packs/flavours/glitch/async/pinned_accounts_editor.js.map", - "flavours/glitch/async/pinned_statuses.js": "/packs/flavours/glitch/async/pinned_statuses.js", - "flavours/glitch/async/pinned_statuses.js.map": "/packs/flavours/glitch/async/pinned_statuses.js.map", - "flavours/glitch/async/public_timeline.js": "/packs/flavours/glitch/async/public_timeline.js", - "flavours/glitch/async/public_timeline.js.map": "/packs/flavours/glitch/async/public_timeline.js.map", - "flavours/glitch/async/reblogs.js": "/packs/flavours/glitch/async/reblogs.js", - "flavours/glitch/async/reblogs.js.map": "/packs/flavours/glitch/async/reblogs.js.map", - "flavours/glitch/async/report_modal.js": "/packs/flavours/glitch/async/report_modal.js", - "flavours/glitch/async/report_modal.js.map": "/packs/flavours/glitch/async/report_modal.js.map", - "flavours/glitch/async/settings_modal.js": "/packs/flavours/glitch/async/settings_modal.js", - "flavours/glitch/async/settings_modal.js.map": "/packs/flavours/glitch/async/settings_modal.js.map", - "flavours/glitch/async/status.js": "/packs/flavours/glitch/async/status.js", - "flavours/glitch/async/status.js.map": "/packs/flavours/glitch/async/status.js.map", - "flavours/glitch/common.css": "/packs/flavours/glitch/common.css", - "flavours/glitch/common.css.map": "/packs/flavours/glitch/common.css.map", - "flavours/glitch/common.js": "/packs/flavours/glitch/common.js", - "flavours/glitch/common.js.map": "/packs/flavours/glitch/common.js.map", - "flavours/glitch/embed.js": "/packs/flavours/glitch/embed.js", - "flavours/glitch/embed.js.map": "/packs/flavours/glitch/embed.js.map", - "flavours/glitch/error.js": "/packs/flavours/glitch/error.js", - "flavours/glitch/error.js.map": "/packs/flavours/glitch/error.js.map", - "flavours/glitch/home.js": "/packs/flavours/glitch/home.js", - "flavours/glitch/home.js.map": "/packs/flavours/glitch/home.js.map", - "flavours/glitch/public.js": "/packs/flavours/glitch/public.js", - "flavours/glitch/public.js.map": "/packs/flavours/glitch/public.js.map", - "flavours/glitch/settings.js": "/packs/flavours/glitch/settings.js", - "flavours/glitch/settings.js.map": "/packs/flavours/glitch/settings.js.map", - "flavours/glitch/share.js": "/packs/flavours/glitch/share.js", - "flavours/glitch/share.js.map": "/packs/flavours/glitch/share.js.map", - "flavours/vanilla/about.css": "/packs/flavours/vanilla/about.css", - "flavours/vanilla/about.css.map": "/packs/flavours/vanilla/about.css.map", - "flavours/vanilla/about.js": "/packs/flavours/vanilla/about.js", - "flavours/vanilla/about.js.map": "/packs/flavours/vanilla/about.js.map", - "flavours/vanilla/admin.css": "/packs/flavours/vanilla/admin.css", - "flavours/vanilla/admin.css.map": "/packs/flavours/vanilla/admin.css.map", - "flavours/vanilla/admin.js": "/packs/flavours/vanilla/admin.js", - "flavours/vanilla/admin.js.map": "/packs/flavours/vanilla/admin.js.map", - "flavours/vanilla/common.css": "/packs/flavours/vanilla/common.css", - "flavours/vanilla/common.css.map": "/packs/flavours/vanilla/common.css.map", - "flavours/vanilla/common.js": "/packs/flavours/vanilla/common.js", - "flavours/vanilla/common.js.map": "/packs/flavours/vanilla/common.js.map", - "flavours/vanilla/embed.css": "/packs/flavours/vanilla/embed.css", - "flavours/vanilla/embed.css.map": "/packs/flavours/vanilla/embed.css.map", - "flavours/vanilla/embed.js": "/packs/flavours/vanilla/embed.js", - "flavours/vanilla/embed.js.map": "/packs/flavours/vanilla/embed.js.map", - "flavours/vanilla/error.js": "/packs/flavours/vanilla/error.js", - "flavours/vanilla/error.js.map": "/packs/flavours/vanilla/error.js.map", - "flavours/vanilla/home.css": "/packs/flavours/vanilla/home.css", - "flavours/vanilla/home.css.map": "/packs/flavours/vanilla/home.css.map", - "flavours/vanilla/home.js": "/packs/flavours/vanilla/home.js", - "flavours/vanilla/home.js.map": "/packs/flavours/vanilla/home.js.map", - "flavours/vanilla/public.css": "/packs/flavours/vanilla/public.css", - "flavours/vanilla/public.css.map": "/packs/flavours/vanilla/public.css.map", - "flavours/vanilla/public.js": "/packs/flavours/vanilla/public.js", - "flavours/vanilla/public.js.map": "/packs/flavours/vanilla/public.js.map", - "flavours/vanilla/settings.css": "/packs/flavours/vanilla/settings.css", - "flavours/vanilla/settings.css.map": "/packs/flavours/vanilla/settings.css.map", - "flavours/vanilla/settings.js": "/packs/flavours/vanilla/settings.js", - "flavours/vanilla/settings.js.map": "/packs/flavours/vanilla/settings.js.map", - "flavours/vanilla/share.css": "/packs/flavours/vanilla/share.css", - "flavours/vanilla/share.css.map": "/packs/flavours/vanilla/share.css.map", - "flavours/vanilla/share.js": "/packs/flavours/vanilla/share.js", - "flavours/vanilla/share.js.map": "/packs/flavours/vanilla/share.js.map", - "locales.js": "/packs/locales.js", - "locales.js.map": "/packs/locales.js.map", - "locales/glitch/ar.js": "/packs/locales/glitch/ar.js", - "locales/glitch/ar.js.map": "/packs/locales/glitch/ar.js.map", - "locales/glitch/ast.js": "/packs/locales/glitch/ast.js", - "locales/glitch/ast.js.map": "/packs/locales/glitch/ast.js.map", - "locales/glitch/bg.js": "/packs/locales/glitch/bg.js", - "locales/glitch/bg.js.map": "/packs/locales/glitch/bg.js.map", - "locales/glitch/bn.js": "/packs/locales/glitch/bn.js", - "locales/glitch/bn.js.map": "/packs/locales/glitch/bn.js.map", - "locales/glitch/br.js": "/packs/locales/glitch/br.js", - "locales/glitch/br.js.map": "/packs/locales/glitch/br.js.map", - "locales/glitch/ca.js": "/packs/locales/glitch/ca.js", - "locales/glitch/ca.js.map": "/packs/locales/glitch/ca.js.map", - "locales/glitch/co.js": "/packs/locales/glitch/co.js", - "locales/glitch/co.js.map": "/packs/locales/glitch/co.js.map", - "locales/glitch/cs.js": "/packs/locales/glitch/cs.js", - "locales/glitch/cs.js.map": "/packs/locales/glitch/cs.js.map", - "locales/glitch/cy.js": "/packs/locales/glitch/cy.js", - "locales/glitch/cy.js.map": "/packs/locales/glitch/cy.js.map", - "locales/glitch/da.js": "/packs/locales/glitch/da.js", - "locales/glitch/da.js.map": "/packs/locales/glitch/da.js.map", - "locales/glitch/de.js": "/packs/locales/glitch/de.js", - "locales/glitch/de.js.map": "/packs/locales/glitch/de.js.map", - "locales/glitch/el.js": "/packs/locales/glitch/el.js", - "locales/glitch/el.js.map": "/packs/locales/glitch/el.js.map", - "locales/glitch/en.js": "/packs/locales/glitch/en.js", - "locales/glitch/en.js.map": "/packs/locales/glitch/en.js.map", - "locales/glitch/eo.js": "/packs/locales/glitch/eo.js", - "locales/glitch/eo.js.map": "/packs/locales/glitch/eo.js.map", - "locales/glitch/es-AR.js": "/packs/locales/glitch/es-AR.js", - "locales/glitch/es-AR.js.map": "/packs/locales/glitch/es-AR.js.map", - "locales/glitch/es.js": "/packs/locales/glitch/es.js", - "locales/glitch/es.js.map": "/packs/locales/glitch/es.js.map", - "locales/glitch/et.js": "/packs/locales/glitch/et.js", - "locales/glitch/et.js.map": "/packs/locales/glitch/et.js.map", - "locales/glitch/eu.js": "/packs/locales/glitch/eu.js", - "locales/glitch/eu.js.map": "/packs/locales/glitch/eu.js.map", - "locales/glitch/fa.js": "/packs/locales/glitch/fa.js", - "locales/glitch/fa.js.map": "/packs/locales/glitch/fa.js.map", - "locales/glitch/fi.js": "/packs/locales/glitch/fi.js", - "locales/glitch/fi.js.map": "/packs/locales/glitch/fi.js.map", - "locales/glitch/fr.js": "/packs/locales/glitch/fr.js", - "locales/glitch/fr.js.map": "/packs/locales/glitch/fr.js.map", - "locales/glitch/ga.js": "/packs/locales/glitch/ga.js", - "locales/glitch/ga.js.map": "/packs/locales/glitch/ga.js.map", - "locales/glitch/gl.js": "/packs/locales/glitch/gl.js", - "locales/glitch/gl.js.map": "/packs/locales/glitch/gl.js.map", - "locales/glitch/he.js": "/packs/locales/glitch/he.js", - "locales/glitch/he.js.map": "/packs/locales/glitch/he.js.map", - "locales/glitch/hi.js": "/packs/locales/glitch/hi.js", - "locales/glitch/hi.js.map": "/packs/locales/glitch/hi.js.map", - "locales/glitch/hr.js": "/packs/locales/glitch/hr.js", - "locales/glitch/hr.js.map": "/packs/locales/glitch/hr.js.map", - "locales/glitch/hu.js": "/packs/locales/glitch/hu.js", - "locales/glitch/hu.js.map": "/packs/locales/glitch/hu.js.map", - "locales/glitch/hy.js": "/packs/locales/glitch/hy.js", - "locales/glitch/hy.js.map": "/packs/locales/glitch/hy.js.map", - "locales/glitch/id.js": "/packs/locales/glitch/id.js", - "locales/glitch/id.js.map": "/packs/locales/glitch/id.js.map", - "locales/glitch/io.js": "/packs/locales/glitch/io.js", - "locales/glitch/io.js.map": "/packs/locales/glitch/io.js.map", - "locales/glitch/is.js": "/packs/locales/glitch/is.js", - "locales/glitch/is.js.map": "/packs/locales/glitch/is.js.map", - "locales/glitch/it.js": "/packs/locales/glitch/it.js", - "locales/glitch/it.js.map": "/packs/locales/glitch/it.js.map", - "locales/glitch/ja.js": "/packs/locales/glitch/ja.js", - "locales/glitch/ja.js.map": "/packs/locales/glitch/ja.js.map", - "locales/glitch/ka.js": "/packs/locales/glitch/ka.js", - "locales/glitch/ka.js.map": "/packs/locales/glitch/ka.js.map", - "locales/glitch/kab.js": "/packs/locales/glitch/kab.js", - "locales/glitch/kab.js.map": "/packs/locales/glitch/kab.js.map", - "locales/glitch/kk.js": "/packs/locales/glitch/kk.js", - "locales/glitch/kk.js.map": "/packs/locales/glitch/kk.js.map", - "locales/glitch/kn.js": "/packs/locales/glitch/kn.js", - "locales/glitch/kn.js.map": "/packs/locales/glitch/kn.js.map", - "locales/glitch/ko.js": "/packs/locales/glitch/ko.js", - "locales/glitch/ko.js.map": "/packs/locales/glitch/ko.js.map", - "locales/glitch/lt.js": "/packs/locales/glitch/lt.js", - "locales/glitch/lt.js.map": "/packs/locales/glitch/lt.js.map", - "locales/glitch/lv.js": "/packs/locales/glitch/lv.js", - "locales/glitch/lv.js.map": "/packs/locales/glitch/lv.js.map", - "locales/glitch/mk.js": "/packs/locales/glitch/mk.js", - "locales/glitch/mk.js.map": "/packs/locales/glitch/mk.js.map", - "locales/glitch/ml.js": "/packs/locales/glitch/ml.js", - "locales/glitch/ml.js.map": "/packs/locales/glitch/ml.js.map", - "locales/glitch/mr.js": "/packs/locales/glitch/mr.js", - "locales/glitch/mr.js.map": "/packs/locales/glitch/mr.js.map", - "locales/glitch/ms.js": "/packs/locales/glitch/ms.js", - "locales/glitch/ms.js.map": "/packs/locales/glitch/ms.js.map", - "locales/glitch/nl.js": "/packs/locales/glitch/nl.js", - "locales/glitch/nl.js.map": "/packs/locales/glitch/nl.js.map", - "locales/glitch/nn.js": "/packs/locales/glitch/nn.js", - "locales/glitch/nn.js.map": "/packs/locales/glitch/nn.js.map", - "locales/glitch/no.js": "/packs/locales/glitch/no.js", - "locales/glitch/no.js.map": "/packs/locales/glitch/no.js.map", - "locales/glitch/oc.js": "/packs/locales/glitch/oc.js", - "locales/glitch/oc.js.map": "/packs/locales/glitch/oc.js.map", - "locales/glitch/pl.js": "/packs/locales/glitch/pl.js", - "locales/glitch/pl.js.map": "/packs/locales/glitch/pl.js.map", - "locales/glitch/pt-BR.js": "/packs/locales/glitch/pt-BR.js", - "locales/glitch/pt-BR.js.map": "/packs/locales/glitch/pt-BR.js.map", - "locales/glitch/pt-PT.js": "/packs/locales/glitch/pt-PT.js", - "locales/glitch/pt-PT.js.map": "/packs/locales/glitch/pt-PT.js.map", - "locales/glitch/ro.js": "/packs/locales/glitch/ro.js", - "locales/glitch/ro.js.map": "/packs/locales/glitch/ro.js.map", - "locales/glitch/ru.js": "/packs/locales/glitch/ru.js", - "locales/glitch/ru.js.map": "/packs/locales/glitch/ru.js.map", - "locales/glitch/sk.js": "/packs/locales/glitch/sk.js", - "locales/glitch/sk.js.map": "/packs/locales/glitch/sk.js.map", - "locales/glitch/sl.js": "/packs/locales/glitch/sl.js", - "locales/glitch/sl.js.map": "/packs/locales/glitch/sl.js.map", - "locales/glitch/sq.js": "/packs/locales/glitch/sq.js", - "locales/glitch/sq.js.map": "/packs/locales/glitch/sq.js.map", - "locales/glitch/sr-Latn.js": "/packs/locales/glitch/sr-Latn.js", - "locales/glitch/sr-Latn.js.map": "/packs/locales/glitch/sr-Latn.js.map", - "locales/glitch/sr.js": "/packs/locales/glitch/sr.js", - "locales/glitch/sr.js.map": "/packs/locales/glitch/sr.js.map", - "locales/glitch/sv.js": "/packs/locales/glitch/sv.js", - "locales/glitch/sv.js.map": "/packs/locales/glitch/sv.js.map", - "locales/glitch/ta.js": "/packs/locales/glitch/ta.js", - "locales/glitch/ta.js.map": "/packs/locales/glitch/ta.js.map", - "locales/glitch/te.js": "/packs/locales/glitch/te.js", - "locales/glitch/te.js.map": "/packs/locales/glitch/te.js.map", - "locales/glitch/th.js": "/packs/locales/glitch/th.js", - "locales/glitch/th.js.map": "/packs/locales/glitch/th.js.map", - "locales/glitch/tr.js": "/packs/locales/glitch/tr.js", - "locales/glitch/tr.js.map": "/packs/locales/glitch/tr.js.map", - "locales/glitch/uk.js": "/packs/locales/glitch/uk.js", - "locales/glitch/uk.js.map": "/packs/locales/glitch/uk.js.map", - "locales/glitch/ur.js": "/packs/locales/glitch/ur.js", - "locales/glitch/ur.js.map": "/packs/locales/glitch/ur.js.map", - "locales/glitch/vi.js": "/packs/locales/glitch/vi.js", - "locales/glitch/vi.js.map": "/packs/locales/glitch/vi.js.map", - "locales/glitch/zh-CN.js": "/packs/locales/glitch/zh-CN.js", - "locales/glitch/zh-CN.js.map": "/packs/locales/glitch/zh-CN.js.map", - "locales/glitch/zh-HK.js": "/packs/locales/glitch/zh-HK.js", - "locales/glitch/zh-HK.js.map": "/packs/locales/glitch/zh-HK.js.map", - "locales/glitch/zh-TW.js": "/packs/locales/glitch/zh-TW.js", - "locales/glitch/zh-TW.js.map": "/packs/locales/glitch/zh-TW.js.map", - "locales/vanilla/ar.js": "/packs/locales/vanilla/ar.js", - "locales/vanilla/ar.js.map": "/packs/locales/vanilla/ar.js.map", - "locales/vanilla/ast.js": "/packs/locales/vanilla/ast.js", - "locales/vanilla/ast.js.map": "/packs/locales/vanilla/ast.js.map", - "locales/vanilla/bg.js": "/packs/locales/vanilla/bg.js", - "locales/vanilla/bg.js.map": "/packs/locales/vanilla/bg.js.map", - "locales/vanilla/bn.js": "/packs/locales/vanilla/bn.js", - "locales/vanilla/bn.js.map": "/packs/locales/vanilla/bn.js.map", - "locales/vanilla/br.js": "/packs/locales/vanilla/br.js", - "locales/vanilla/br.js.map": "/packs/locales/vanilla/br.js.map", - "locales/vanilla/ca.js": "/packs/locales/vanilla/ca.js", - "locales/vanilla/ca.js.map": "/packs/locales/vanilla/ca.js.map", - "locales/vanilla/co.js": "/packs/locales/vanilla/co.js", - "locales/vanilla/co.js.map": "/packs/locales/vanilla/co.js.map", - "locales/vanilla/cs.js": "/packs/locales/vanilla/cs.js", - "locales/vanilla/cs.js.map": "/packs/locales/vanilla/cs.js.map", - "locales/vanilla/cy.js": "/packs/locales/vanilla/cy.js", - "locales/vanilla/cy.js.map": "/packs/locales/vanilla/cy.js.map", - "locales/vanilla/da.js": "/packs/locales/vanilla/da.js", - "locales/vanilla/da.js.map": "/packs/locales/vanilla/da.js.map", - "locales/vanilla/de.js": "/packs/locales/vanilla/de.js", - "locales/vanilla/de.js.map": "/packs/locales/vanilla/de.js.map", - "locales/vanilla/el.js": "/packs/locales/vanilla/el.js", - "locales/vanilla/el.js.map": "/packs/locales/vanilla/el.js.map", - "locales/vanilla/en.js": "/packs/locales/vanilla/en.js", - "locales/vanilla/en.js.map": "/packs/locales/vanilla/en.js.map", - "locales/vanilla/eo.js": "/packs/locales/vanilla/eo.js", - "locales/vanilla/eo.js.map": "/packs/locales/vanilla/eo.js.map", - "locales/vanilla/es-AR.js": "/packs/locales/vanilla/es-AR.js", - "locales/vanilla/es-AR.js.map": "/packs/locales/vanilla/es-AR.js.map", - "locales/vanilla/es.js": "/packs/locales/vanilla/es.js", - "locales/vanilla/es.js.map": "/packs/locales/vanilla/es.js.map", - "locales/vanilla/et.js": "/packs/locales/vanilla/et.js", - "locales/vanilla/et.js.map": "/packs/locales/vanilla/et.js.map", - "locales/vanilla/eu.js": "/packs/locales/vanilla/eu.js", - "locales/vanilla/eu.js.map": "/packs/locales/vanilla/eu.js.map", - "locales/vanilla/fa.js": "/packs/locales/vanilla/fa.js", - "locales/vanilla/fa.js.map": "/packs/locales/vanilla/fa.js.map", - "locales/vanilla/fi.js": "/packs/locales/vanilla/fi.js", - "locales/vanilla/fi.js.map": "/packs/locales/vanilla/fi.js.map", - "locales/vanilla/fr.js": "/packs/locales/vanilla/fr.js", - "locales/vanilla/fr.js.map": "/packs/locales/vanilla/fr.js.map", - "locales/vanilla/ga.js": "/packs/locales/vanilla/ga.js", - "locales/vanilla/ga.js.map": "/packs/locales/vanilla/ga.js.map", - "locales/vanilla/gl.js": "/packs/locales/vanilla/gl.js", - "locales/vanilla/gl.js.map": "/packs/locales/vanilla/gl.js.map", - "locales/vanilla/he.js": "/packs/locales/vanilla/he.js", - "locales/vanilla/he.js.map": "/packs/locales/vanilla/he.js.map", - "locales/vanilla/hi.js": "/packs/locales/vanilla/hi.js", - "locales/vanilla/hi.js.map": "/packs/locales/vanilla/hi.js.map", - "locales/vanilla/hr.js": "/packs/locales/vanilla/hr.js", - "locales/vanilla/hr.js.map": "/packs/locales/vanilla/hr.js.map", - "locales/vanilla/hu.js": "/packs/locales/vanilla/hu.js", - "locales/vanilla/hu.js.map": "/packs/locales/vanilla/hu.js.map", - "locales/vanilla/hy.js": "/packs/locales/vanilla/hy.js", - "locales/vanilla/hy.js.map": "/packs/locales/vanilla/hy.js.map", - "locales/vanilla/id.js": "/packs/locales/vanilla/id.js", - "locales/vanilla/id.js.map": "/packs/locales/vanilla/id.js.map", - "locales/vanilla/io.js": "/packs/locales/vanilla/io.js", - "locales/vanilla/io.js.map": "/packs/locales/vanilla/io.js.map", - "locales/vanilla/is.js": "/packs/locales/vanilla/is.js", - "locales/vanilla/is.js.map": "/packs/locales/vanilla/is.js.map", - "locales/vanilla/it.js": "/packs/locales/vanilla/it.js", - "locales/vanilla/it.js.map": "/packs/locales/vanilla/it.js.map", - "locales/vanilla/ja.js": "/packs/locales/vanilla/ja.js", - "locales/vanilla/ja.js.map": "/packs/locales/vanilla/ja.js.map", - "locales/vanilla/ka.js": "/packs/locales/vanilla/ka.js", - "locales/vanilla/ka.js.map": "/packs/locales/vanilla/ka.js.map", - "locales/vanilla/kab.js": "/packs/locales/vanilla/kab.js", - "locales/vanilla/kab.js.map": "/packs/locales/vanilla/kab.js.map", - "locales/vanilla/kk.js": "/packs/locales/vanilla/kk.js", - "locales/vanilla/kk.js.map": "/packs/locales/vanilla/kk.js.map", - "locales/vanilla/kn.js": "/packs/locales/vanilla/kn.js", - "locales/vanilla/kn.js.map": "/packs/locales/vanilla/kn.js.map", - "locales/vanilla/ko.js": "/packs/locales/vanilla/ko.js", - "locales/vanilla/ko.js.map": "/packs/locales/vanilla/ko.js.map", - "locales/vanilla/lt.js": "/packs/locales/vanilla/lt.js", - "locales/vanilla/lt.js.map": "/packs/locales/vanilla/lt.js.map", - "locales/vanilla/lv.js": "/packs/locales/vanilla/lv.js", - "locales/vanilla/lv.js.map": "/packs/locales/vanilla/lv.js.map", - "locales/vanilla/mk.js": "/packs/locales/vanilla/mk.js", - "locales/vanilla/mk.js.map": "/packs/locales/vanilla/mk.js.map", - "locales/vanilla/ml.js": "/packs/locales/vanilla/ml.js", - "locales/vanilla/ml.js.map": "/packs/locales/vanilla/ml.js.map", - "locales/vanilla/mr.js": "/packs/locales/vanilla/mr.js", - "locales/vanilla/mr.js.map": "/packs/locales/vanilla/mr.js.map", - "locales/vanilla/ms.js": "/packs/locales/vanilla/ms.js", - "locales/vanilla/ms.js.map": "/packs/locales/vanilla/ms.js.map", - "locales/vanilla/nl.js": "/packs/locales/vanilla/nl.js", - "locales/vanilla/nl.js.map": "/packs/locales/vanilla/nl.js.map", - "locales/vanilla/nn.js": "/packs/locales/vanilla/nn.js", - "locales/vanilla/nn.js.map": "/packs/locales/vanilla/nn.js.map", - "locales/vanilla/no.js": "/packs/locales/vanilla/no.js", - "locales/vanilla/no.js.map": "/packs/locales/vanilla/no.js.map", - "locales/vanilla/oc.js": "/packs/locales/vanilla/oc.js", - "locales/vanilla/oc.js.map": "/packs/locales/vanilla/oc.js.map", - "locales/vanilla/pl.js": "/packs/locales/vanilla/pl.js", - "locales/vanilla/pl.js.map": "/packs/locales/vanilla/pl.js.map", - "locales/vanilla/pt-BR.js": "/packs/locales/vanilla/pt-BR.js", - "locales/vanilla/pt-BR.js.map": "/packs/locales/vanilla/pt-BR.js.map", - "locales/vanilla/pt-PT.js": "/packs/locales/vanilla/pt-PT.js", - "locales/vanilla/pt-PT.js.map": "/packs/locales/vanilla/pt-PT.js.map", - "locales/vanilla/ro.js": "/packs/locales/vanilla/ro.js", - "locales/vanilla/ro.js.map": "/packs/locales/vanilla/ro.js.map", - "locales/vanilla/ru.js": "/packs/locales/vanilla/ru.js", - "locales/vanilla/ru.js.map": "/packs/locales/vanilla/ru.js.map", - "locales/vanilla/sk.js": "/packs/locales/vanilla/sk.js", - "locales/vanilla/sk.js.map": "/packs/locales/vanilla/sk.js.map", - "locales/vanilla/sl.js": "/packs/locales/vanilla/sl.js", - "locales/vanilla/sl.js.map": "/packs/locales/vanilla/sl.js.map", - "locales/vanilla/sq.js": "/packs/locales/vanilla/sq.js", - "locales/vanilla/sq.js.map": "/packs/locales/vanilla/sq.js.map", - "locales/vanilla/sr-Latn.js": "/packs/locales/vanilla/sr-Latn.js", - "locales/vanilla/sr-Latn.js.map": "/packs/locales/vanilla/sr-Latn.js.map", - "locales/vanilla/sr.js": "/packs/locales/vanilla/sr.js", - "locales/vanilla/sr.js.map": "/packs/locales/vanilla/sr.js.map", - "locales/vanilla/sv.js": "/packs/locales/vanilla/sv.js", - "locales/vanilla/sv.js.map": "/packs/locales/vanilla/sv.js.map", - "locales/vanilla/ta.js": "/packs/locales/vanilla/ta.js", - "locales/vanilla/ta.js.map": "/packs/locales/vanilla/ta.js.map", - "locales/vanilla/te.js": "/packs/locales/vanilla/te.js", - "locales/vanilla/te.js.map": "/packs/locales/vanilla/te.js.map", - "locales/vanilla/th.js": "/packs/locales/vanilla/th.js", - "locales/vanilla/th.js.map": "/packs/locales/vanilla/th.js.map", - "locales/vanilla/tr.js": "/packs/locales/vanilla/tr.js", - "locales/vanilla/tr.js.map": "/packs/locales/vanilla/tr.js.map", - "locales/vanilla/uk.js": "/packs/locales/vanilla/uk.js", - "locales/vanilla/uk.js.map": "/packs/locales/vanilla/uk.js.map", - "locales/vanilla/ur.js": "/packs/locales/vanilla/ur.js", - "locales/vanilla/ur.js.map": "/packs/locales/vanilla/ur.js.map", - "locales/vanilla/vi.js": "/packs/locales/vanilla/vi.js", - "locales/vanilla/vi.js.map": "/packs/locales/vanilla/vi.js.map", - "locales/vanilla/zh-CN.js": "/packs/locales/vanilla/zh-CN.js", - "locales/vanilla/zh-CN.js.map": "/packs/locales/vanilla/zh-CN.js.map", - "locales/vanilla/zh-HK.js": "/packs/locales/vanilla/zh-HK.js", - "locales/vanilla/zh-HK.js.map": "/packs/locales/vanilla/zh-HK.js.map", - "locales/vanilla/zh-TW.js": "/packs/locales/vanilla/zh-TW.js", - "locales/vanilla/zh-TW.js.map": "/packs/locales/vanilla/zh-TW.js.map", - "media/flavours/glitch/images/glitch-preview.jpg": "/packs/media/flavours/glitch/images/glitch-preview-bb9cc15a0102bfaf65712e5cff7e58df.jpg", - "media/flavours/glitch/images/wave-drawer-glitched.png": "/packs/media/flavours/glitch/images/wave-drawer-glitched-33467bf8c8d2b995d6c76d8810aba3db.png", - "media/flavours/glitch/images/wave-drawer.png": "/packs/media/flavours/glitch/images/wave-drawer-ee1bfcbe5811ea31771b7187c7507ee6.png", - "media/fonts/fontawesome-webfont.eot?v=4.7.0": "/packs/media/fonts/fontawesome-webfont-674f50d2.eot", - "media/fonts/fontawesome-webfont.svg?v=4.7.0": "/packs/media/fonts/fontawesome-webfont-912ec66d.svg", - "media/fonts/fontawesome-webfont.ttf?v=4.7.0": "/packs/media/fonts/fontawesome-webfont-b06871f2.ttf", - "media/fonts/fontawesome-webfont.woff2?v=4.7.0": "/packs/media/fonts/fontawesome-webfont-af7ae505.woff2", - "media/fonts/fontawesome-webfont.woff?v=4.7.0": "/packs/media/fonts/fontawesome-webfont-fee66e71.woff", - "media/fonts/premillenium/MSSansSerif.ttf": "/packs/media/fonts/premillenium/MSSansSerif-a678e38bb3e20736cbed7a6925f24666.ttf", - "media/images/clippy_frame.png": "/packs/media/images/clippy_frame-3446d4d28d72aef2f64f7fabae30eb4a.png", - "media/images/clippy_wave.gif": "/packs/media/images/clippy_wave-afb828463da264adbce26a3f17731f6c.gif", - "media/images/icon_about.png": "/packs/media/images/icon_about-ffafc67a2e97ca436da6c1bf61a8ab68.png", - "media/images/icon_blocks.png": "/packs/media/images/icon_blocks-0b0e54d45ff0177b02e1357ac09c0d51.png", - "media/images/icon_cached.svg": "/packs/media/images/icon_cached-108e30d96e1d5152be7fe2978bcdfe14.svg", - "media/images/icon_done.svg": "/packs/media/images/icon_done-dba357bfbba455428787fefc655ce120.svg", - "media/images/icon_email.svg": "/packs/media/images/icon_email-1346985c7aaceb601b0d4257133254f4.svg", - "media/images/icon_file_download.svg": "/packs/media/images/icon_file_download-4b5c054e76b0df3cbbc851854cd10c3c.svg", - "media/images/icon_flag.svg": "/packs/media/images/icon_flag-6cc7d5ce6f0c35fe10e0f05494b2aba8.svg", - "media/images/icon_follow_requests.png": "/packs/media/images/icon_follow_requests-32eaf00987b072b2b12f8015d6a6a250.png", - "media/images/icon_grade.svg": "/packs/media/images/icon_grade-8e81b8e88c2b5834347a2a226c65d440.svg", - "media/images/icon_home.png": "/packs/media/images/icon_home-433b9d93fc1f035ec09330c2512a4879.png", - "media/images/icon_keyboard_shortcuts.png": "/packs/media/images/icon_keyboard_shortcuts-4b183486762cfcc9f0de7522520a5485.png", - "media/images/icon_likes.png": "/packs/media/images/icon_likes-27b8551da2d56d81062818c035ed622e.png", - "media/images/icon_lists.png": "/packs/media/images/icon_lists-ae69bf4fb26c40d2c9b056c55c9153e2.png", - "media/images/icon_local.png": "/packs/media/images/icon_local-eade3ebeb7ac50f798cd40ed5fe62232.png", - "media/images/icon_lock_open.svg": "/packs/media/images/icon_lock_open-c9627928caaaa505ac7de2a64bd065ec.svg", - "media/images/icon_logout.png": "/packs/media/images/icon_logout-3abd28c4fc25290e6e4088c50d3352f4.png", - "media/images/icon_mutes.png": "/packs/media/images/icon_mutes-5e7612d5c63fedb3fc59558284304cfc.png", - "media/images/icon_person_add.svg": "/packs/media/images/icon_person_add-5c56ef10b9e99e77a44d89041f4b77b5.svg", - "media/images/icon_pin.png": "/packs/media/images/icon_pin-79e04b07bcaa1266eee3164e83f574b4.png", - "media/images/icon_public.png": "/packs/media/images/icon_public-2d798a39bb2bd6314e47b00669686556.png", - "media/images/icon_reply.svg": "/packs/media/images/icon_reply-b5e28e1fe6acd4ec003e643e947f1c4a.svg", - "media/images/icon_settings.png": "/packs/media/images/icon_settings-e7c53fb8ee137f93827e2db21f507cb1.png", - "media/images/logo_transparent_black.svg": "/packs/media/images/logo_transparent_black-24a8608615e64fe9a08a898c25552819.svg", - "media/images/mailer/icon_cached.png": "/packs/media/images/mailer/icon_cached-26ffa26120a2a16a9be78a75cc603793.png", - "media/images/mailer/icon_done.png": "/packs/media/images/mailer/icon_done-e07ea253e82d137816cfb8d77a3b1562.png", - "media/images/mailer/icon_email.png": "/packs/media/images/mailer/icon_email-ed5d2a37fa765e4c5fec080a82b0a783.png", - "media/images/mailer/icon_file_download.png": "/packs/media/images/mailer/icon_file_download-0b212ed1bca11e1e02539a20b3821d87.png", - "media/images/mailer/icon_grade.png": "/packs/media/images/mailer/icon_grade-1f9e039d0f024626ab071d18098b65a0.png", - "media/images/mailer/icon_lock_open.png": "/packs/media/images/mailer/icon_lock_open-d377f10d3f005d0d042a1ee1dee8284d.png", - "media/images/mailer/icon_person_add.png": "/packs/media/images/mailer/icon_person_add-44d0a8dfa7dce95be5f6e3cfe0cdd133.png", - "media/images/mailer/icon_reply.png": "/packs/media/images/mailer/icon_reply-1c00f97d10006dd420bc620b26a79d8a.png", - "media/images/mailer/icon_warning.png": "/packs/media/images/mailer/icon_warning-af2b38fe580f274ca4c80479bd12141e.png", - "media/images/proof_providers/keybase.png": "/packs/media/images/proof_providers/keybase-22af312ae5def3706736e6a014fdc761.png", - "media/images/reticle.png": "/packs/media/images/reticle-6490ecbb61185e86e62dca0845cf2dcf.png", - "media/images/start.png": "/packs/media/images/start-d443e819b6248a54c6eb466c75938306.png", - "media/images/void.png": "/packs/media/images/void-4c8270c17facce6d53726a2ebb9745f2.png", - "modals/block_modal.js": "/packs/modals/block_modal.js", - "modals/block_modal.js.map": "/packs/modals/block_modal.js.map", - "modals/embed_modal.js": "/packs/modals/embed_modal.js", - "modals/embed_modal.js.map": "/packs/modals/embed_modal.js.map", - "modals/mute_modal.js": "/packs/modals/mute_modal.js", - "modals/mute_modal.js.map": "/packs/modals/mute_modal.js.map", - "modals/report_modal.js": "/packs/modals/report_modal.js", - "modals/report_modal.js.map": "/packs/modals/report_modal.js.map", - "skins/glitch/contrast/common.css": "/packs/skins/glitch/contrast/common.css", - "skins/glitch/contrast/common.css.map": "/packs/skins/glitch/contrast/common.css.map", - "skins/glitch/contrast/common.js": "/packs/skins/glitch/contrast/common.js", - "skins/glitch/contrast/common.js.map": "/packs/skins/glitch/contrast/common.js.map", - "skins/glitch/mastodon-light/common.css": "/packs/skins/glitch/mastodon-light/common.css", - "skins/glitch/mastodon-light/common.css.map": "/packs/skins/glitch/mastodon-light/common.css.map", - "skins/glitch/mastodon-light/common.js": "/packs/skins/glitch/mastodon-light/common.js", - "skins/glitch/mastodon-light/common.js.map": "/packs/skins/glitch/mastodon-light/common.js.map", - "skins/vanilla/contrast/common.css": "/packs/skins/vanilla/contrast/common.css", - "skins/vanilla/contrast/common.css.map": "/packs/skins/vanilla/contrast/common.css.map", - "skins/vanilla/contrast/common.js": "/packs/skins/vanilla/contrast/common.js", - "skins/vanilla/contrast/common.js.map": "/packs/skins/vanilla/contrast/common.js.map", - "skins/vanilla/mastodon-light/common.css": "/packs/skins/vanilla/mastodon-light/common.css", - "skins/vanilla/mastodon-light/common.css.map": "/packs/skins/vanilla/mastodon-light/common.css.map", - "skins/vanilla/mastodon-light/common.js": "/packs/skins/vanilla/mastodon-light/common.js", - "skins/vanilla/mastodon-light/common.js.map": "/packs/skins/vanilla/mastodon-light/common.js.map", - "skins/vanilla/win95/common.css": "/packs/skins/vanilla/win95/common.css", - "skins/vanilla/win95/common.css.map": "/packs/skins/vanilla/win95/common.css.map", - "skins/vanilla/win95/common.js": "/packs/skins/vanilla/win95/common.js", - "skins/vanilla/win95/common.js.map": "/packs/skins/vanilla/win95/common.js.map", - "tesseract.js": "/packs/tesseract.js", - "tesseract.js.map": "/packs/tesseract.js.map" -} \ No newline at end of file diff --git a/priv/static/packs/media/flavours/glitch/images/glitch-preview-bb9cc15a0102bfaf65712e5cff7e58df.jpg b/priv/static/packs/media/flavours/glitch/images/glitch-preview-bb9cc15a0102bfaf65712e5cff7e58df.jpg deleted file mode 100644 index fc5c42043..000000000 Binary files a/priv/static/packs/media/flavours/glitch/images/glitch-preview-bb9cc15a0102bfaf65712e5cff7e58df.jpg and /dev/null differ diff --git a/priv/static/packs/media/flavours/glitch/images/wave-drawer-ee1bfcbe5811ea31771b7187c7507ee6.png b/priv/static/packs/media/flavours/glitch/images/wave-drawer-ee1bfcbe5811ea31771b7187c7507ee6.png deleted file mode 100644 index ca9f9e1d8..000000000 Binary files a/priv/static/packs/media/flavours/glitch/images/wave-drawer-ee1bfcbe5811ea31771b7187c7507ee6.png and /dev/null differ diff --git a/priv/static/packs/media/flavours/glitch/images/wave-drawer-glitched-33467bf8c8d2b995d6c76d8810aba3db.png b/priv/static/packs/media/flavours/glitch/images/wave-drawer-glitched-33467bf8c8d2b995d6c76d8810aba3db.png deleted file mode 100644 index 2290663db..000000000 Binary files a/priv/static/packs/media/flavours/glitch/images/wave-drawer-glitched-33467bf8c8d2b995d6c76d8810aba3db.png and /dev/null differ diff --git a/priv/static/packs/media/fonts/fontawesome-webfont-674f50d2.eot b/priv/static/packs/media/fonts/fontawesome-webfont-674f50d2.eot deleted file mode 100644 index e9f60ca95..000000000 Binary files a/priv/static/packs/media/fonts/fontawesome-webfont-674f50d2.eot and /dev/null differ diff --git a/priv/static/packs/media/fonts/fontawesome-webfont-912ec66d.svg b/priv/static/packs/media/fonts/fontawesome-webfont-912ec66d.svg deleted file mode 100644 index 855c845e5..000000000 --- a/priv/static/packs/media/fonts/fontawesome-webfont-912ec66d.svg +++ /dev/null @@ -1,2671 +0,0 @@ - - - - -Created by FontForge 20120731 at Mon Oct 24 17:37:40 2016 - By ,,, -Copyright Dave Gandy 2016. All rights reserved. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/priv/static/packs/media/fonts/fontawesome-webfont-af7ae505.woff2 b/priv/static/packs/media/fonts/fontawesome-webfont-af7ae505.woff2 deleted file mode 100644 index 4d13fc604..000000000 Binary files a/priv/static/packs/media/fonts/fontawesome-webfont-af7ae505.woff2 and /dev/null differ diff --git a/priv/static/packs/media/fonts/fontawesome-webfont-b06871f2.ttf b/priv/static/packs/media/fonts/fontawesome-webfont-b06871f2.ttf deleted file mode 100644 index 35acda2fa..000000000 Binary files a/priv/static/packs/media/fonts/fontawesome-webfont-b06871f2.ttf and /dev/null differ diff --git a/priv/static/packs/media/fonts/fontawesome-webfont-fee66e71.woff b/priv/static/packs/media/fonts/fontawesome-webfont-fee66e71.woff deleted file mode 100644 index 400014a4b..000000000 Binary files a/priv/static/packs/media/fonts/fontawesome-webfont-fee66e71.woff and /dev/null differ diff --git a/priv/static/packs/media/fonts/premillenium/MSSansSerif-a678e38bb3e20736cbed7a6925f24666.ttf b/priv/static/packs/media/fonts/premillenium/MSSansSerif-a678e38bb3e20736cbed7a6925f24666.ttf deleted file mode 100644 index 3afd76ff2..000000000 Binary files a/priv/static/packs/media/fonts/premillenium/MSSansSerif-a678e38bb3e20736cbed7a6925f24666.ttf and /dev/null differ diff --git a/priv/static/packs/media/images/clippy_frame-3446d4d28d72aef2f64f7fabae30eb4a.png b/priv/static/packs/media/images/clippy_frame-3446d4d28d72aef2f64f7fabae30eb4a.png deleted file mode 100644 index 7f2cd6a59..000000000 Binary files a/priv/static/packs/media/images/clippy_frame-3446d4d28d72aef2f64f7fabae30eb4a.png and /dev/null differ diff --git a/priv/static/packs/media/images/clippy_wave-afb828463da264adbce26a3f17731f6c.gif b/priv/static/packs/media/images/clippy_wave-afb828463da264adbce26a3f17731f6c.gif deleted file mode 100644 index 4d2e38a3d..000000000 Binary files a/priv/static/packs/media/images/clippy_wave-afb828463da264adbce26a3f17731f6c.gif and /dev/null differ diff --git a/priv/static/packs/media/images/icon_about-ffafc67a2e97ca436da6c1bf61a8ab68.png b/priv/static/packs/media/images/icon_about-ffafc67a2e97ca436da6c1bf61a8ab68.png deleted file mode 100644 index 08b76dcd9..000000000 Binary files a/priv/static/packs/media/images/icon_about-ffafc67a2e97ca436da6c1bf61a8ab68.png and /dev/null differ diff --git a/priv/static/packs/media/images/icon_blocks-0b0e54d45ff0177b02e1357ac09c0d51.png b/priv/static/packs/media/images/icon_blocks-0b0e54d45ff0177b02e1357ac09c0d51.png deleted file mode 100644 index 8b1490875..000000000 Binary files a/priv/static/packs/media/images/icon_blocks-0b0e54d45ff0177b02e1357ac09c0d51.png and /dev/null differ diff --git a/priv/static/packs/media/images/icon_cached-108e30d96e1d5152be7fe2978bcdfe14.svg b/priv/static/packs/media/images/icon_cached-108e30d96e1d5152be7fe2978bcdfe14.svg deleted file mode 100644 index 1087c4350..000000000 --- a/priv/static/packs/media/images/icon_cached-108e30d96e1d5152be7fe2978bcdfe14.svg +++ /dev/null @@ -1,2 +0,0 @@ - - diff --git a/priv/static/packs/media/images/icon_done-dba357bfbba455428787fefc655ce120.svg b/priv/static/packs/media/images/icon_done-dba357bfbba455428787fefc655ce120.svg deleted file mode 100644 index 446af14d9..000000000 --- a/priv/static/packs/media/images/icon_done-dba357bfbba455428787fefc655ce120.svg +++ /dev/null @@ -1,4 +0,0 @@ - - - - \ No newline at end of file diff --git a/priv/static/packs/media/images/icon_email-1346985c7aaceb601b0d4257133254f4.svg b/priv/static/packs/media/images/icon_email-1346985c7aaceb601b0d4257133254f4.svg deleted file mode 100644 index 6d0ad9d9b..000000000 --- a/priv/static/packs/media/images/icon_email-1346985c7aaceb601b0d4257133254f4.svg +++ /dev/null @@ -1,4 +0,0 @@ - - - - \ No newline at end of file diff --git a/priv/static/packs/media/images/icon_file_download-4b5c054e76b0df3cbbc851854cd10c3c.svg b/priv/static/packs/media/images/icon_file_download-4b5c054e76b0df3cbbc851854cd10c3c.svg deleted file mode 100644 index 53e97e4f8..000000000 --- a/priv/static/packs/media/images/icon_file_download-4b5c054e76b0df3cbbc851854cd10c3c.svg +++ /dev/null @@ -1,4 +0,0 @@ - - - - \ No newline at end of file diff --git a/priv/static/packs/media/images/icon_flag-6cc7d5ce6f0c35fe10e0f05494b2aba8.svg b/priv/static/packs/media/images/icon_flag-6cc7d5ce6f0c35fe10e0f05494b2aba8.svg deleted file mode 100644 index 3939c9d2b..000000000 --- a/priv/static/packs/media/images/icon_flag-6cc7d5ce6f0c35fe10e0f05494b2aba8.svg +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/priv/static/packs/media/images/icon_follow_requests-32eaf00987b072b2b12f8015d6a6a250.png b/priv/static/packs/media/images/icon_follow_requests-32eaf00987b072b2b12f8015d6a6a250.png deleted file mode 100644 index 4123e2a69..000000000 Binary files a/priv/static/packs/media/images/icon_follow_requests-32eaf00987b072b2b12f8015d6a6a250.png and /dev/null differ diff --git a/priv/static/packs/media/images/icon_grade-8e81b8e88c2b5834347a2a226c65d440.svg b/priv/static/packs/media/images/icon_grade-8e81b8e88c2b5834347a2a226c65d440.svg deleted file mode 100644 index f48b46889..000000000 --- a/priv/static/packs/media/images/icon_grade-8e81b8e88c2b5834347a2a226c65d440.svg +++ /dev/null @@ -1,4 +0,0 @@ - - - - \ No newline at end of file diff --git a/priv/static/packs/media/images/icon_home-433b9d93fc1f035ec09330c2512a4879.png b/priv/static/packs/media/images/icon_home-433b9d93fc1f035ec09330c2512a4879.png deleted file mode 100644 index 66ce779c0..000000000 Binary files a/priv/static/packs/media/images/icon_home-433b9d93fc1f035ec09330c2512a4879.png and /dev/null differ diff --git a/priv/static/packs/media/images/icon_keyboard_shortcuts-4b183486762cfcc9f0de7522520a5485.png b/priv/static/packs/media/images/icon_keyboard_shortcuts-4b183486762cfcc9f0de7522520a5485.png deleted file mode 100644 index d66f3939e..000000000 Binary files a/priv/static/packs/media/images/icon_keyboard_shortcuts-4b183486762cfcc9f0de7522520a5485.png and /dev/null differ diff --git a/priv/static/packs/media/images/icon_likes-27b8551da2d56d81062818c035ed622e.png b/priv/static/packs/media/images/icon_likes-27b8551da2d56d81062818c035ed622e.png deleted file mode 100644 index 17d7a9c59..000000000 Binary files a/priv/static/packs/media/images/icon_likes-27b8551da2d56d81062818c035ed622e.png and /dev/null differ diff --git a/priv/static/packs/media/images/icon_lists-ae69bf4fb26c40d2c9b056c55c9153e2.png b/priv/static/packs/media/images/icon_lists-ae69bf4fb26c40d2c9b056c55c9153e2.png deleted file mode 100644 index 3828946e8..000000000 Binary files a/priv/static/packs/media/images/icon_lists-ae69bf4fb26c40d2c9b056c55c9153e2.png and /dev/null differ diff --git a/priv/static/packs/media/images/icon_local-eade3ebeb7ac50f798cd40ed5fe62232.png b/priv/static/packs/media/images/icon_local-eade3ebeb7ac50f798cd40ed5fe62232.png deleted file mode 100644 index 5f82df395..000000000 Binary files a/priv/static/packs/media/images/icon_local-eade3ebeb7ac50f798cd40ed5fe62232.png and /dev/null differ diff --git a/priv/static/packs/media/images/icon_lock_open-c9627928caaaa505ac7de2a64bd065ec.svg b/priv/static/packs/media/images/icon_lock_open-c9627928caaaa505ac7de2a64bd065ec.svg deleted file mode 100644 index 3288b46d6..000000000 --- a/priv/static/packs/media/images/icon_lock_open-c9627928caaaa505ac7de2a64bd065ec.svg +++ /dev/null @@ -1,4 +0,0 @@ - - - - \ No newline at end of file diff --git a/priv/static/packs/media/images/icon_logout-3abd28c4fc25290e6e4088c50d3352f4.png b/priv/static/packs/media/images/icon_logout-3abd28c4fc25290e6e4088c50d3352f4.png deleted file mode 100644 index 7ff806f58..000000000 Binary files a/priv/static/packs/media/images/icon_logout-3abd28c4fc25290e6e4088c50d3352f4.png and /dev/null differ diff --git a/priv/static/packs/media/images/icon_mutes-5e7612d5c63fedb3fc59558284304cfc.png b/priv/static/packs/media/images/icon_mutes-5e7612d5c63fedb3fc59558284304cfc.png deleted file mode 100644 index c2225e966..000000000 Binary files a/priv/static/packs/media/images/icon_mutes-5e7612d5c63fedb3fc59558284304cfc.png and /dev/null differ diff --git a/priv/static/packs/media/images/icon_person_add-5c56ef10b9e99e77a44d89041f4b77b5.svg b/priv/static/packs/media/images/icon_person_add-5c56ef10b9e99e77a44d89041f4b77b5.svg deleted file mode 100644 index 068b8ae7c..000000000 --- a/priv/static/packs/media/images/icon_person_add-5c56ef10b9e99e77a44d89041f4b77b5.svg +++ /dev/null @@ -1,4 +0,0 @@ - - - - \ No newline at end of file diff --git a/priv/static/packs/media/images/icon_pin-79e04b07bcaa1266eee3164e83f574b4.png b/priv/static/packs/media/images/icon_pin-79e04b07bcaa1266eee3164e83f574b4.png deleted file mode 100644 index 2329d8c54..000000000 Binary files a/priv/static/packs/media/images/icon_pin-79e04b07bcaa1266eee3164e83f574b4.png and /dev/null differ diff --git a/priv/static/packs/media/images/icon_public-2d798a39bb2bd6314e47b00669686556.png b/priv/static/packs/media/images/icon_public-2d798a39bb2bd6314e47b00669686556.png deleted file mode 100644 index 3c09460db..000000000 Binary files a/priv/static/packs/media/images/icon_public-2d798a39bb2bd6314e47b00669686556.png and /dev/null differ diff --git a/priv/static/packs/media/images/icon_reply-b5e28e1fe6acd4ec003e643e947f1c4a.svg b/priv/static/packs/media/images/icon_reply-b5e28e1fe6acd4ec003e643e947f1c4a.svg deleted file mode 100644 index cf6a09abc..000000000 --- a/priv/static/packs/media/images/icon_reply-b5e28e1fe6acd4ec003e643e947f1c4a.svg +++ /dev/null @@ -1,4 +0,0 @@ - - - - \ No newline at end of file diff --git a/priv/static/packs/media/images/icon_settings-e7c53fb8ee137f93827e2db21f507cb1.png b/priv/static/packs/media/images/icon_settings-e7c53fb8ee137f93827e2db21f507cb1.png deleted file mode 100644 index 07f5c4519..000000000 Binary files a/priv/static/packs/media/images/icon_settings-e7c53fb8ee137f93827e2db21f507cb1.png and /dev/null differ diff --git a/priv/static/packs/media/images/logo_transparent_black-24a8608615e64fe9a08a898c25552819.svg b/priv/static/packs/media/images/logo_transparent_black-24a8608615e64fe9a08a898c25552819.svg deleted file mode 100644 index e44bcf5e1..000000000 --- a/priv/static/packs/media/images/logo_transparent_black-24a8608615e64fe9a08a898c25552819.svg +++ /dev/null @@ -1 +0,0 @@ - diff --git a/priv/static/packs/media/images/mailer/icon_cached-26ffa26120a2a16a9be78a75cc603793.png b/priv/static/packs/media/images/mailer/icon_cached-26ffa26120a2a16a9be78a75cc603793.png deleted file mode 100644 index 5c993dbee..000000000 Binary files a/priv/static/packs/media/images/mailer/icon_cached-26ffa26120a2a16a9be78a75cc603793.png and /dev/null differ diff --git a/priv/static/packs/media/images/mailer/icon_done-e07ea253e82d137816cfb8d77a3b1562.png b/priv/static/packs/media/images/mailer/icon_done-e07ea253e82d137816cfb8d77a3b1562.png deleted file mode 100644 index f7f95a0e8..000000000 Binary files a/priv/static/packs/media/images/mailer/icon_done-e07ea253e82d137816cfb8d77a3b1562.png and /dev/null differ diff --git a/priv/static/packs/media/images/mailer/icon_email-ed5d2a37fa765e4c5fec080a82b0a783.png b/priv/static/packs/media/images/mailer/icon_email-ed5d2a37fa765e4c5fec080a82b0a783.png deleted file mode 100644 index 13967009a..000000000 Binary files a/priv/static/packs/media/images/mailer/icon_email-ed5d2a37fa765e4c5fec080a82b0a783.png and /dev/null differ diff --git a/priv/static/packs/media/images/mailer/icon_file_download-0b212ed1bca11e1e02539a20b3821d87.png b/priv/static/packs/media/images/mailer/icon_file_download-0b212ed1bca11e1e02539a20b3821d87.png deleted file mode 100644 index 3f7ac429b..000000000 Binary files a/priv/static/packs/media/images/mailer/icon_file_download-0b212ed1bca11e1e02539a20b3821d87.png and /dev/null differ diff --git a/priv/static/packs/media/images/mailer/icon_grade-1f9e039d0f024626ab071d18098b65a0.png b/priv/static/packs/media/images/mailer/icon_grade-1f9e039d0f024626ab071d18098b65a0.png deleted file mode 100644 index 8c212b7ee..000000000 Binary files a/priv/static/packs/media/images/mailer/icon_grade-1f9e039d0f024626ab071d18098b65a0.png and /dev/null differ diff --git a/priv/static/packs/media/images/mailer/icon_lock_open-d377f10d3f005d0d042a1ee1dee8284d.png b/priv/static/packs/media/images/mailer/icon_lock_open-d377f10d3f005d0d042a1ee1dee8284d.png deleted file mode 100644 index c854c3bdb..000000000 Binary files a/priv/static/packs/media/images/mailer/icon_lock_open-d377f10d3f005d0d042a1ee1dee8284d.png and /dev/null differ diff --git a/priv/static/packs/media/images/mailer/icon_person_add-44d0a8dfa7dce95be5f6e3cfe0cdd133.png b/priv/static/packs/media/images/mailer/icon_person_add-44d0a8dfa7dce95be5f6e3cfe0cdd133.png deleted file mode 100644 index 6290a42ae..000000000 Binary files a/priv/static/packs/media/images/mailer/icon_person_add-44d0a8dfa7dce95be5f6e3cfe0cdd133.png and /dev/null differ diff --git a/priv/static/packs/media/images/mailer/icon_reply-1c00f97d10006dd420bc620b26a79d8a.png b/priv/static/packs/media/images/mailer/icon_reply-1c00f97d10006dd420bc620b26a79d8a.png deleted file mode 100644 index a70093356..000000000 Binary files a/priv/static/packs/media/images/mailer/icon_reply-1c00f97d10006dd420bc620b26a79d8a.png and /dev/null differ diff --git a/priv/static/packs/media/images/mailer/icon_warning-af2b38fe580f274ca4c80479bd12141e.png b/priv/static/packs/media/images/mailer/icon_warning-af2b38fe580f274ca4c80479bd12141e.png deleted file mode 100644 index 7baaac61c..000000000 Binary files a/priv/static/packs/media/images/mailer/icon_warning-af2b38fe580f274ca4c80479bd12141e.png and /dev/null differ diff --git a/priv/static/packs/media/images/proof_providers/keybase-22af312ae5def3706736e6a014fdc761.png b/priv/static/packs/media/images/proof_providers/keybase-22af312ae5def3706736e6a014fdc761.png deleted file mode 100644 index 7e3ac657f..000000000 Binary files a/priv/static/packs/media/images/proof_providers/keybase-22af312ae5def3706736e6a014fdc761.png and /dev/null differ diff --git a/priv/static/packs/media/images/reticle-6490ecbb61185e86e62dca0845cf2dcf.png b/priv/static/packs/media/images/reticle-6490ecbb61185e86e62dca0845cf2dcf.png deleted file mode 100644 index 41a5d1c3a..000000000 Binary files a/priv/static/packs/media/images/reticle-6490ecbb61185e86e62dca0845cf2dcf.png and /dev/null differ diff --git a/priv/static/packs/media/images/start-d443e819b6248a54c6eb466c75938306.png b/priv/static/packs/media/images/start-d443e819b6248a54c6eb466c75938306.png deleted file mode 100644 index 7843455b6..000000000 Binary files a/priv/static/packs/media/images/start-d443e819b6248a54c6eb466c75938306.png and /dev/null differ diff --git a/priv/static/packs/media/images/void-4c8270c17facce6d53726a2ebb9745f2.png b/priv/static/packs/media/images/void-4c8270c17facce6d53726a2ebb9745f2.png deleted file mode 100644 index d73066688..000000000 Binary files a/priv/static/packs/media/images/void-4c8270c17facce6d53726a2ebb9745f2.png and /dev/null differ diff --git a/priv/static/packs/modals/block_modal.js b/priv/static/packs/modals/block_modal.js deleted file mode 100644 index b74a7a3d0..000000000 Binary files a/priv/static/packs/modals/block_modal.js and /dev/null differ diff --git a/priv/static/packs/modals/block_modal.js.map b/priv/static/packs/modals/block_modal.js.map deleted file mode 100644 index 2796f6af6..000000000 Binary files a/priv/static/packs/modals/block_modal.js.map and /dev/null differ diff --git a/priv/static/packs/modals/embed_modal.js b/priv/static/packs/modals/embed_modal.js deleted file mode 100644 index 9092bee72..000000000 Binary files a/priv/static/packs/modals/embed_modal.js and /dev/null differ diff --git a/priv/static/packs/modals/embed_modal.js.map b/priv/static/packs/modals/embed_modal.js.map deleted file mode 100644 index 0fd5ad06d..000000000 Binary files a/priv/static/packs/modals/embed_modal.js.map and /dev/null differ diff --git a/priv/static/packs/modals/mute_modal.js b/priv/static/packs/modals/mute_modal.js deleted file mode 100644 index d239d0dab..000000000 Binary files a/priv/static/packs/modals/mute_modal.js and /dev/null differ diff --git a/priv/static/packs/modals/mute_modal.js.map b/priv/static/packs/modals/mute_modal.js.map deleted file mode 100644 index 8a2885173..000000000 Binary files a/priv/static/packs/modals/mute_modal.js.map and /dev/null differ diff --git a/priv/static/packs/modals/report_modal.js b/priv/static/packs/modals/report_modal.js deleted file mode 100644 index cc6d7904f..000000000 Binary files a/priv/static/packs/modals/report_modal.js and /dev/null differ diff --git a/priv/static/packs/modals/report_modal.js.map b/priv/static/packs/modals/report_modal.js.map deleted file mode 100644 index d695d2a81..000000000 Binary files a/priv/static/packs/modals/report_modal.js.map and /dev/null differ diff --git a/priv/static/packs/ocr/tesseract-core.wasm.js b/priv/static/packs/ocr/tesseract-core.wasm.js deleted file mode 100644 index dfb5d51c6..000000000 Binary files a/priv/static/packs/ocr/tesseract-core.wasm.js and /dev/null differ diff --git a/priv/static/packs/ocr/worker.min.js b/priv/static/packs/ocr/worker.min.js deleted file mode 100644 index 52623532c..000000000 Binary files a/priv/static/packs/ocr/worker.min.js and /dev/null differ diff --git a/priv/static/packs/skins/glitch/contrast/common.css b/priv/static/packs/skins/glitch/contrast/common.css deleted file mode 100644 index 748cdc91f..000000000 Binary files a/priv/static/packs/skins/glitch/contrast/common.css and /dev/null differ diff --git a/priv/static/packs/skins/glitch/contrast/common.css.map b/priv/static/packs/skins/glitch/contrast/common.css.map deleted file mode 100644 index 2869e4adc..000000000 --- a/priv/static/packs/skins/glitch/contrast/common.css.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["webpack:///common.scss","webpack:///./app/javascript/flavours/glitch/styles/reset.scss","webpack:///./app/javascript/flavours/glitch/styles/contrast/variables.scss","webpack:///./app/javascript/flavours/glitch/styles/basics.scss","webpack:///./app/javascript/flavours/glitch/styles/variables.scss","webpack:///./app/javascript/flavours/glitch/styles/containers.scss","webpack:///./app/javascript/flavours/glitch/styles/_mixins.scss","webpack:///./app/javascript/flavours/glitch/styles/lists.scss","webpack:///./app/javascript/flavours/glitch/styles/modal.scss","webpack:///./app/javascript/flavours/glitch/styles/footer.scss","webpack:///./app/javascript/flavours/glitch/styles/compact_header.scss","webpack:///./app/javascript/flavours/glitch/styles/widgets.scss","webpack:///./app/javascript/flavours/glitch/styles/forms.scss","webpack:///./app/javascript/flavours/glitch/styles/accounts.scss","webpack:///./app/javascript/flavours/glitch/styles/statuses.scss","webpack:///./app/javascript/flavours/glitch/styles/components/index.scss","webpack:///./app/javascript/flavours/glitch/styles/components/boost.scss","webpack:///./app/javascript/flavours/glitch/styles/components/accounts.scss","webpack:///./app/javascript/flavours/glitch/styles/components/domains.scss","webpack:///./app/javascript/flavours/glitch/styles/components/status.scss","webpack:///./app/javascript/flavours/glitch/styles/components/modal.scss","webpack:///./app/javascript/flavours/glitch/styles/components/composer.scss","webpack:///./app/javascript/flavours/glitch/styles/components/columns.scss","webpack:///./app/javascript/flavours/glitch/styles/components/regeneration_indicator.scss","webpack:///./app/javascript/flavours/glitch/styles/components/directory.scss","webpack:///./app/javascript/flavours/glitch/styles/components/search.scss","webpack:///","webpack:///./app/javascript/flavours/glitch/styles/components/emoji.scss","webpack:///./app/javascript/flavours/glitch/styles/components/doodle.scss","webpack:///./app/javascript/flavours/glitch/styles/components/drawer.scss","webpack:///./app/javascript/flavours/glitch/styles/components/media.scss","webpack:///./app/javascript/flavours/glitch/styles/components/sensitive.scss","webpack:///./app/javascript/flavours/glitch/styles/components/lists.scss","webpack:///./app/javascript/flavours/glitch/styles/components/emoji_picker.scss","webpack:///./app/javascript/flavours/glitch/styles/components/local_settings.scss","webpack:///./app/javascript/flavours/glitch/styles/components/error_boundary.scss","webpack:///./app/javascript/flavours/glitch/styles/components/single_column.scss","webpack:///./app/javascript/flavours/glitch/styles/components/announcements.scss","webpack:///./app/javascript/flavours/glitch/styles/polls.scss","webpack:///./app/javascript/flavours/glitch/styles/about.scss","webpack:///./app/javascript/flavours/glitch/styles/tables.scss","webpack:///./app/javascript/flavours/glitch/styles/admin.scss","webpack:///./app/javascript/flavours/glitch/styles/accessibility.scss","webpack:///./app/javascript/flavours/glitch/styles/rtl.scss","webpack:///./app/javascript/flavours/glitch/styles/dashboard.scss","webpack:///./app/javascript/flavours/glitch/styles/contrast/diff.scss"],"names":[],"mappings":"AAAA,2ZCKA,QAaE,UACA,SACA,eACA,aACA,wBACA,+EAIF,aAEE,MAGF,aACE,OAGF,eACE,cAGF,WACE,qDAGF,UAEE,aACA,OAGF,wBACE,iBACA,MAGF,sCACE,qBAGF,UACE,YACA,2BAGF,kBACE,cACA,mBACA,iCAGF,kBACE,kCAGF,kBACE,2BAGF,aACE,gBACA,0BACA,CC9EmB,iEDqFrB,kBCrFqB,4BDyFrB,sBACE,MEtFF,sBACE,mBACA,eACA,iBACA,gBACA,WCVM,kCDYN,6BACA,8BACA,CADA,0BACA,CADA,qBACA,0CACA,wCACA,kBAEA,sIAYE,eAGF,SACE,oCAEA,WACE,iBACA,kBACA,uCAGF,iBACE,WACA,YACA,mCAGF,iBACE,cAIJ,kBDpDmB,kBCwDnB,iBACE,kBACA,0BAEA,iBACE,YAIJ,kBACE,SACA,iBACA,uBAEA,iBACE,WACA,YACA,gBACA,YAIJ,kBACE,UACA,YAGF,iBACE,kBACA,cDzEgB,mBAZC,WCwFjB,YACA,UACA,aACA,uBACA,mBACA,oBAEA,qBACE,YACA,wBAEA,aACE,gBACA,WACA,YACA,kBACA,uBAGF,cACE,iBACA,gBACA,QAMR,mBACE,eACA,cAEA,YACE,6BAKF,YAEE,WACA,mBACA,uBACA,oBACA,yEAKF,gBAEE,+EAKF,WAEE,gBErJJ,WACE,CACA,kBACA,qCAEA,eALF,UAMI,SACA,kBAIJ,sBACE,qCAEA,gBAHF,kBAII,qBAGF,YACE,uBACA,mBACA,wBAEA,SDrBI,YCuBF,kBACA,sBAGF,YACE,uBACA,mBACA,WD9BE,qBCgCF,UACA,kBACA,iBACA,uBACA,gBACA,eACA,mCAMJ,WACE,CACA,cACA,mBACA,sBACA,qCAEA,kCAPF,UAQI,aACA,aACA,kBAKN,WACE,CACA,YACA,eACA,iBACA,sBACA,CACA,gBACA,CACA,sBACA,qCAEA,gBAZF,UAaI,CACA,eACA,CACA,mBACA,0BAKA,UACqB,sCC3EvB,iBD4EE,6BAEA,UACE,YACA,cACA,SACA,kBACA,iBD5BkB,wBE9DtB,4BACA,uBD8FA,aACE,cHjFmB,wBGmFnB,iCAEA,aACE,gBACA,uBACA,gBACA,8BAIJ,aACE,eACA,iBACA,gBACA,SAIJ,YACE,cACA,8BACA,sBACA,mCACA,CADA,0BACA,mBAEA,eACE,WACA,mBAGF,aACE,WACA,mBAGF,aACE,WACA,mBAGF,eACE,WACA,qCAGF,QA3BF,UA4BI,qCACA,mBAEA,aACE,mBAGF,aACE,WACA,mBAGF,aACE,WACA,mBAGF,aACE,WACA,UAKN,YACE,cACA,8CACA,sBACA,mCACA,CADA,0BACA,mBAEA,eACE,WACA,mBAGF,eACE,WACA,mBAGF,aACE,WACA,mBAGF,eACE,WACA,mBAGF,aACE,WACA,uCAGF,eACE,wBAGF,kBACE,qCAGF,QAxCF,iDAyCI,uCAEA,YACE,aACA,mBACA,uBACA,iCAGF,UACE,uBACA,mBACA,sBAGF,YACE,sCAIJ,QA7DF,UA8DI,qCACA,mBAEA,aACE,mBAGF,aACE,WACA,mBAGF,aACE,WACA,mBAGF,aACE,WACA,mBAGF,aACE,WACA,sCAMJ,eADF,gBAEI,4BAGF,eACE,qCAEA,0BAHF,SAII,yBAIJ,kBACE,mCACA,kBACA,YACA,cACA,aACA,oBACA,uBACA,iBACA,gBACA,qCAEA,uBAZF,cAaI,WACA,MACA,OACA,SACA,gBACA,gBACA,YACA,6BAGF,cACE,eACA,kCAGF,YACE,oBACA,2BACA,iBACA,oCAGF,YACE,oBACA,uBACA,iBACA,mCAGF,YACE,oBACA,yBACA,iBACA,+BAGF,aACE,aACA,mCAEA,aACE,YACA,WACA,kBACA,YACA,UD1UA,qCC6UA,kCARF,WASI,+GAIJ,kBAGE,kCAIJ,YACE,mBACA,eACA,eACA,gBACA,qBACA,cHlVc,mBGoVd,kBACA,uHAEA,yBAGE,WDvWA,qCC2WF,0CACE,YACE,qCAKN,kBACE,CACA,oBACA,kBACA,6HAEA,oBAGE,mBACA,sBAON,YACE,cACA,0DACA,sBACA,mCACA,CADA,0BACA,gCAEA,UACE,cACA,gCAGF,UACE,cACA,qCAGF,qBAjBF,0BAkBI,WACA,gCAEA,YACE,kCAKN,iBACE,qCAEA,gCAHF,eAII,sCAKF,4BADF,eAEI,wCAIJ,eACE,mBACA,mCACA,gDAEA,UACE,qIAEA,8BAEE,CAFF,sBAEE,6DAGF,wBH1aiB,8CG+anB,yBACE,gBACA,aACA,kBACA,mBACA,oDAEA,UACE,cACA,kBACA,WACA,YACA,gDACA,MACA,OACA,kDAGF,mBACE,CADF,8BACE,CADF,gBACE,cACA,WACA,YACA,SACA,0BACA,qCAGF,6CA3BF,YA4BI,gDAIJ,eACE,6JAEA,iBAEE,qCAEA,4JAJF,eAKI,sCAKN,sCA/DF,eAgEI,gBACA,oDAEA,YACE,+FAGF,eAEE,6CAIJ,iBACE,iBACA,aACA,2BACA,mDAEA,UACE,cACA,mBACA,kBACA,SACA,OACA,QACA,YACA,0BACA,WACA,oDAGF,aACE,CAEA,WACqB,yCCzgB3B,kBD0gBM,cACA,wDAEA,aACE,WACA,YACA,SACA,kBACA,yBACA,mBACA,iBD7dc,wBE9DtB,4BACA,qCD+hBI,2CAvCF,YAwCI,mBACA,0BACA,YACA,mDAEA,YACE,oDAKA,UACqB,sCCtiB7B,CDuiBQ,sBACA,wDAEA,QACE,kBACA,iBDrfY,wBE9DtB,4BACA,2DDsjBQ,mDAbF,YAcI,sCAKN,2CApEF,eAqEI,sCAGF,2CAxEF,cAyEI,8CAIJ,aACE,iBACA,mDAEA,gBACE,mBACA,sDAEA,cACE,iBACA,WDhlBF,gBCklBE,gBACA,mBACA,uBACA,6BACA,4DAEA,aACE,eACA,WD1lBJ,gBC4lBI,gBACA,uBACA,qCAKN,4CA7BF,gBA8BI,aACA,8BACA,mBACA,mDAEA,aACE,iBACA,sDAEA,cACE,iBACA,iBACA,4DAEA,aHrmBQ,oDG4mBd,YACE,2BACA,oBACA,YACA,qEAEA,YACE,mBACA,gBACA,qCAGF,oEACE,YACE,6DAIJ,eACE,sBACA,cACA,cHjoBU,aGmoBV,+BACA,eACA,kBACA,kBACA,8DAEA,aACE,uEAGF,cACE,kEAGF,aACE,WACA,kBACA,SACA,OACA,WACA,gCACA,WACA,wBACA,yEAIA,+BACE,UACA,kFAGF,2BHjqBW,wEGuqBX,SACE,wBACA,8DAIJ,oBACE,cACA,2EAGF,cACE,cACA,4EAGF,eACE,eACA,kBACA,WDzsBJ,uBC2sBI,2DAIJ,aACE,WACA,4DAGF,eACE,8CAKN,YACE,eACA,kEAEA,eACE,gBACA,uBACA,cACA,2FAEA,4BACE,yEAGF,YACE,qDAIJ,gBACE,eACA,cHluBY,uDGquBZ,oBACE,cHtuBU,qBGwuBV,aACA,gBACA,8DAEA,eACE,WD1vBJ,qCCgwBF,6CAtCF,aAuCI,UACA,4CAKN,yBACE,qCAEA,0CAHF,eAII,wCAIJ,eACE,oCAGF,kBACE,mCACA,kBACA,gBACA,mBACA,qCAEA,mCAPF,eAQI,gBACA,gBACA,8DAGF,QACE,aACA,+DAEA,aACE,sFAGF,uBACE,yEAGF,aD3yBU,8DCizBV,mBACA,WDnzBE,qFCuzBJ,YAEE,eACA,cH7yBc,2CGizBhB,gBACE,iCAIJ,YACE,cACA,kDACA,qCAEA,gCALF,aAMI,+CAGF,cACE,iCAIJ,eACE,2BAGF,YACE,eACA,eACA,cACA,+BAEA,qBACE,cACA,YACA,cACA,mBACA,kBACA,qCAEA,8BARF,aASI,sCAGF,8BAZF,cAaI,sCAIJ,0BAvBF,QAwBI,6BACA,+BAEA,UACE,UACA,gBACA,gCACA,0CAEA,eACE,0CAGF,kBHz3Ba,+IG43BX,kBAGE,WEl4BZ,eACE,aAEA,oBACE,aACA,iBAIJ,eACE,cACA,oBAEA,cACE,gBACA,mBACA,eChBJ,k1BACE,aACA,sBACA,aACA,UACA,yBAGF,YACE,OACA,sBACA,yBACA,2BAEA,MACE,iBACA,qCAIJ,gBACE,YACE,yBCrBF,eACE,iBACA,oBACA,eACA,cACA,qCAEA,uBAPF,iBAQI,mBACA,+BAGF,YACE,cACA,0CACA,wCAEA,aACE,WACA,YACA,wCAGF,aACE,WACA,YACA,wCAGF,aACE,WACA,YACA,kBACA,6CAEA,aACE,wCAIJ,aACE,WACA,YACA,wCAGF,aACE,WACA,YACA,qCAGF,6BAxCF,iCAyCI,+EAEA,aAEE,wCAGF,UACE,wCAGF,aACE,+EAGF,aAEE,wCAGF,UACE,sCAIJ,uCACE,aACE,sCAIJ,4JACE,YAIE,4BAKN,wBACE,gBACA,kBACA,cPnFc,6BOsFd,aACE,qBACA,6BAIJ,oBACE,cACA,wGAEA,yBAGE,mCAKF,aACE,YACA,WACA,cACA,aACA,0HAMA,YACE,oBClIR,cACE,iBACA,cRYgB,gBQVhB,mBACA,eACA,qBACA,qCAEA,mBATF,iBAUI,oBACA,uBAGF,aACE,qBACA,0BAGF,eACE,cRJiB,wBQQnB,oBACE,mBACA,kBACA,WACA,YACA,cC9BN,kBACE,mCACA,mBAEA,UACE,kBACA,gBACA,0BACA,gBPPI,uBOUJ,mBACE,CADF,8BACE,CADF,gBACE,cACA,WACA,YACA,SACA,0BACA,oBAIJ,kBTlBmB,aSoBjB,0BACA,eACA,cTVgB,iBSYhB,qBACA,gBACA,8BAEA,UACE,YACA,gBACA,sBAGF,kBACE,iCAEA,eACE,uBAIJ,cACE,SACA,UACA,gBACA,uBACA,oBACA,kBACA,oBACA,cACA,sBAGF,aTxCmB,qBS0CjB,4BAEA,yBACE,qCAKN,aAnEF,YAoEI,uBAIJ,kBACE,oBACA,yBAEA,YACE,yBACA,gBACA,eACA,cTjEgB,+BSqElB,cACE,0CAEA,eACE,sDAGF,YACE,mBACA,gDAGF,UACE,YACA,0BACA,oCAIJ,YACE,mBAKF,aT9FkB,aSmGpB,YACE,kBACA,mBTjHmB,mCSmHnB,qBAGF,YACE,kBACA,0BACA,kBACA,cT9GkB,mBSgHlB,iBAGF,eACE,eACA,cTrHkB,iBSuHlB,qBACA,gBACA,UACA,oBAEA,YACE,yBACA,gBACA,eACA,cThIgB,0BSoIlB,eACE,CACA,kBACA,mBAGF,oBACE,CACA,mBACA,cT7IgB,qBS+IhB,mBACA,gBACA,uBACA,0EAEA,yBAGE,uBAMJ,sBACA,kBACA,mBT3KmB,mCS6KnB,cT/JqB,gBSiKrB,mBACA,sDAEA,eAEE,CAII,qXADF,eACE,yBAKN,aACE,0BACA,CAMI,wLAGF,oBAGE,mIAEA,yBACE,gCAMR,kBACE,oCAEA,gBACE,cT5Mc,8DSkNhB,iBACE,eACA,4DAGF,eACE,qBACA,iEAEA,eACE,kBAMR,YACE,CACA,ePlPM,COoPN,cACA,cTvOkB,mBSyOlB,+BANA,iBACA,CPlPM,kCOgQN,CATA,aAGF,kBACE,CAEA,iBACA,kBACA,cACA,iBAEA,UPjQM,eOmQJ,gBACA,gBACA,mBACA,gBAGF,cACE,cT7PgB,qCSiQlB,aArBF,YAsBI,mBACA,iBAEA,cACE,aAKN,kBTvRqB,kBSyRnB,mCACA,iBAEA,qBACE,mBACA,uCAEA,YAEE,mBACA,8BACA,mBTpSe,kBSsSf,aACA,qBACA,cACA,mCACA,0EAIA,kBAGE,0BAIJ,kBT3SiB,eS6Sf,8BAGF,UACE,eACA,oBAGF,aACE,eACA,gBACA,WPnUE,mBOqUF,gBACA,uBACA,wBAEA,aT5Tc,0BSgUd,aACE,gBACA,eACA,eACA,cTpUY,yFS0Ud,UPvVE,+BO8VJ,aACE,YACA,uDAGF,oBTxViB,eS8VrB,YACE,yBACA,gCAEA,aACE,WACA,YACA,kBACA,kBACA,kBACA,mBACA,yBACA,4CAEA,SACE,6CAGF,SACE,6CAGF,SACE,iBAKN,UACE,0BAEA,SACE,SACA,wBAGF,eACE,0BAGF,iBACE,yBACA,cTtYgB,gBSwYhB,aACA,sCAEA,eACE,0BAIJ,cACE,sBACA,gCACA,wCAGF,eACE,wBAGF,WACE,kBACA,eACA,gBACA,WP3aI,8BO8aJ,aACE,cTlac,gBSoad,eACA,0BAIJ,SACE,iCACA,qCAGF,kCACE,YACE,sCAYJ,qIAPF,eAQI,gBACA,gBACA,iBAOJ,gBACE,qCAEA,eAHF,oBAII,uBAGF,sBACE,sCAEA,qBAHF,sBAII,sCAGF,qBAPF,UAQI,sCAGF,qBAXF,WAYI,kCAIJ,iBACE,qCAEA,gCAHF,4BAII,iEAIA,eACE,0DAGF,cACE,iBACA,oEAEA,UACE,YACA,gBACA,yFAGF,gBACE,SACA,mKAIJ,eAGE,gBAON,aTngBkB,iCSkgBpB,kBAKI,6BAEA,eACE,kBAIJ,cACE,iBACA,wCAMF,oBACE,gBACA,cT1hBiB,4JS6hBjB,yBAGE,oBAKN,kBACE,gBACA,eACA,kBACA,yBAEA,aACE,gBACA,aACA,CACA,kBACA,gBACA,uBACA,qBACA,WP9jBI,gCOgkBJ,4FAEA,yBAGE,oCAIJ,eACE,0BAGF,iBACE,gCACA,MC/kBJ,+BACE,gBACA,iBAGF,eACE,aACA,cACA,qBAIA,kBACE,gBACA,4BAEA,QACE,0CAIA,kBACE,qDAEA,eACE,gDAIJ,iBACE,kBACA,sDAEA,iBACE,SACA,OACA,6BAKN,iBACE,gBACA,gDAEA,mBACE,eACA,gBACA,WRhDA,cQkDA,WACA,4EAGF,iBAEE,mDAGF,eACE,4CAGF,iBACE,QACA,OACA,qCAGF,aVjEoB,0BUmElB,gIAEA,oBAGE,0CAIJ,iBACE,CACA,iBACA,mBAKN,YACE,cACA,0BAEA,qBACE,cACA,UACA,cACA,oBAIJ,aVvFkB,sBU0FhB,aVnGsB,yBUuGtB,iBACE,kBACA,mBACA,wBAIJ,aACE,eACA,eACA,qBAGF,kBACE,cV5GgB,iCU+GhB,iBACE,eACA,iBACA,gBACA,gBACA,oBAIJ,kBACE,qBAGF,eACE,CAII,0JADF,eACE,sDAMJ,YACE,4DAEA,mBACE,eACA,WRzJA,gBQ2JA,gBACA,cACA,wHAGF,aAEE,sDAIJ,cACE,kBACA,mDAKF,mBACE,eACA,WR/KE,cQiLF,kBACA,qBACA,gBACA,sCAGF,cACE,mCAGF,UACE,sCAIJ,cACE,4CAEA,mBACE,eACA,WRrME,cQuMF,gBACA,gBACA,4CAGF,kBACE,yCAGF,cACE,CADF,cACE,kDAIJ,oBACE,WACA,OACA,6BAGF,oBACE,cACA,4BAGF,kBACE,8CAEA,eACE,0BAIJ,YACE,CACA,eACA,oBACA,iCAEA,cACE,kCAGF,qBACE,eACA,cACA,eACA,oCAEA,aACE,2CAGF,eACE,6GAIJ,eAEE,qCAGF,yBA9BF,aA+BI,gBACA,kCAEA,cACE,0JAGF,kBAGE,iDAKN,iBACE,oBACA,eACA,WRzRI,cQ2RJ,WACA,2CAKE,mBACE,eACA,WRnSA,qBQqSA,WACA,kBACA,gBACA,kBACA,cACA,0DAGF,iBACE,OACA,QACA,SACA,kDAKN,cACE,aACA,yBACA,kBACA,sJAGF,qBAKE,eACA,WRnUI,cQqUJ,WACA,UACA,oBACA,gBACA,mBACA,yBACA,kBACA,aACA,6RAEA,aACE,CAHF,+OAEA,aACE,CAHF,mQAEA,aACE,CAHF,sNAEA,aACE,8LAGF,eACE,oVAGF,oBACE,iOAGF,oBR1VY,oLQ8VZ,iBACE,4WAGF,oBV/VsB,mBUkWpB,6CAKF,aACE,gUAGF,oBAME,8CAGF,aACE,gBACA,cACA,eACA,8BAIJ,UACE,uBAGF,eACE,aACA,oCAEA,YACE,mBACA,qEAIJ,aAGE,WACA,SACA,kBACA,mBVzYiB,WEXb,eQuZJ,oBACA,YACA,aACA,yBACA,qBACA,kBACA,sBACA,eACA,gBACA,UACA,mBACA,kBACA,sGAEA,cACE,uFAGF,wBACE,gLAGF,wBAEE,kHAGF,wBVhboB,gGUobpB,kBRpbQ,kHQubN,wBACE,sOAGF,wBAEE,qBAKN,uBACE,CADF,oBACE,CADF,eACE,sBACA,eACA,WRvcI,cQycJ,WACA,UACA,oBACA,gBACA,wXACA,yBACA,kBACA,kBACA,mBACA,YACA,iBAGF,4BACE,oCAIA,iBACE,mCAGF,iBACE,UACA,QACA,CACA,qBACA,eACA,cVvdY,oBUydZ,oBACA,eACA,gBACA,mBACA,gBACA,yCAEA,UACE,cACA,kBACA,MACA,QACA,WACA,UACA,iEACA,4BAKN,iBACE,0CAEA,wBACE,CADF,gBACE,qCAGF,iBACE,MACA,OACA,WACA,YACA,aACA,uBACA,mBACA,8BACA,kBACA,iBACA,gBACA,YACA,8CAEA,iBACE,6HAGE,URrhBF,aQ+hBR,aACE,CACA,kBACA,eACA,gBAGF,kBACE,cV1hBkB,kBU4hBlB,kBACA,mBACA,kBACA,uBAEA,qCACE,iCACA,cR/iBY,sBQmjBd,mCACE,+BACA,cRpjBQ,kBQwjBV,oBACE,cV9iBgB,qBUgjBhB,wBAEA,UR/jBI,0BQikBF,kBAIJ,kBACE,4BAGF,SACE,sBACA,cACA,WACA,YACA,aACA,gCACA,mBV/kBiB,WEDb,eQmlBJ,SACA,8CAEA,QACE,iHAGF,mBAGE,kCAGF,kBACE,uBAIJ,eACE,CAII,oKADF,eACE,0DAKN,eAzEF,eA0EI,eAIJ,eACE,kBACA,gBAEA,aV3mBkB,qBU6mBhB,sBAEA,yBACE,YAKN,eACE,mBACA,eACA,eAEA,oBACE,kBACA,cAGF,aVxoBwB,yBU0oBtB,qBACA,gBACA,2DAEA,aAGE,8BAKN,kBAEE,cV/oBkB,oCUkpBlB,cACE,mBACA,kBACA,4CAGF,aVtpBqB,gBUwpBnB,CAII,mUADF,eACE,0DAKN,6BAtBF,eAuBI,cAIJ,YACE,eACA,uBACA,UAGF,aACE,gBR5rBM,YQ8rBN,qBACA,mCACA,qBACA,cAEA,aACE,SACA,iBAIJ,kBACE,cV3rBqB,WU6rBrB,sBAEA,aACE,eACA,eAKF,kBACE,sBAEA,eACE,CAII,+JADF,eACE,4CASR,qBACE,8BACA,WRxuBI,qCQ0uBJ,oCACA,kBACA,aACA,mBACA,gDAEA,URhvBI,0BQkvBF,oLAEA,oBAGE,0DAIJ,eACE,cACA,kBACA,CAII,yYADF,eACE,kEAIJ,eACE,oBAMR,YACE,eACA,mBACA,4DAEA,aAEE,6BAIA,wBACA,cACA,sBAIJ,iBACE,cVlxBkB,0BUqxBlB,iBACE,oBAIJ,eACE,mBACA,uBAEA,cACE,WR5yBI,kBQ8yBJ,mBACA,SACA,UACA,4BAGF,aACE,eAIJ,aRtzBc,0SQg0BZ,+BACE,aAIJ,kBACE,yBACA,kBACA,aACA,mBACA,kBACA,kBACA,QACA,mCACA,sBAEA,aACE,8BAGF,sBACE,SACA,aACA,eACA,gCACA,oBAGF,aACE,WACA,oBACA,gBACA,eACA,CACA,oBACA,WACA,iCACA,oBAGF,oBR12Bc,gBQ42BZ,2BAEA,kBR92BY,gBQg3BV,oBAKN,kBACE,6BAEA,wBACE,mBACA,eACA,aACA,4BAGF,kBACE,aACA,OACA,sBACA,cACA,cACA,gCAEA,iBACE,YACA,iBACA,kBACA,UACA,8BAGF,qBACE,qCAIJ,kBACE,gCAGF,wBACE,mCACA,kBACA,kBACA,kBACA,kBACA,sCAEA,wBACE,WACA,cACA,YACA,SACA,kBACA,MACA,UACA,yBAIJ,sBACE,aACA,mBACA,SCj7BF,aACE,qBACA,cACA,mCACA,qCAEA,QANF,eAOI,8EAMA,kBACE,YAKN,YACE,kBACA,mBACA,0BACA,gBAEA,aACE,WACA,YACA,SACA,oBACA,CADA,8BACA,CADA,gBACA,0BACA,qCAGF,WAfF,YAgBI,sCAGF,WAnBF,YAoBI,aAIJ,iBACE,aACA,aACA,2BACA,mBACA,mBACA,0BACA,qCAEA,WATF,eAUI,qBAGF,aACE,CAEA,UACqB,sCPpDzB,gBOqDI,wBAEA,UACE,YACA,cACA,SACA,kBACA,iBTLgB,wBE9DtB,4BACA,mBOoEM,oBACA,CADA,8BACA,CADA,gBACA,0BAIJ,gBACE,gBACA,iCAEA,cACE,WT/EA,gBSiFA,gBACA,uBACA,+BAGF,aACE,eACA,cX3EY,gBW6EZ,gBACA,uBACA,aAMR,cACE,kBACA,gBACA,6GAEA,cAME,WT7GI,gBS+GJ,qBACA,iBACA,qBACA,sBAGF,eTrHM,oBSuHJ,WXxHI,eW0HJ,cACA,kBAGF,cACE,uCAGF,wBAEE,cXpHmB,oBWwHrB,UACE,eACA,wBAEA,oBACE,iBACA,oBAIJ,WACE,gBACA,wBAEA,oBACE,gBACA,uBAIJ,cACE,cACA,qCAGF,YA9DF,iBA+DI,mBAEA,YACE,uCAGF,oBAEE,gBAKN,kBX7KqB,mCW+KnB,cX3JiB,eW6JjB,gBACA,kBACA,aACA,uBACA,mBACA,eACA,kBACA,aACA,gBACA,2BAEA,yBACE,yBAGF,qBACE,gBACA,yCAIJ,oBAEE,gBACA,eACA,kBACA,eACA,iBACA,gBACA,cX5MwB,sCW8MxB,sCACA,6DAEA,aTnNc,sCSqNZ,kCACA,qDAGF,aACE,sCACA,kCACA,0BAIJ,eACE,UACA,wBACA,gBACA,CADA,YACA,CACA,iCACA,CADA,uBACA,CADA,kBACA,eACA,iBACA,6BAEA,YACE,gCACA,yDAGF,qBAEE,aACA,kBACA,gBACA,gBACA,mBACA,uBACA,6BAGF,eACE,YACA,cACA,cX/OmB,6BWiPnB,6BAGF,aACE,cXvPgB,4BW2PlB,aXpQwB,qBWsQtB,qGAEA,yBAGE,oCAIJ,qCACE,iCACA,sCAEA,aTtRY,gBSwRV,0CAGF,aT3RY,wCSgSd,eACE,wCAIJ,UACE,0BAIA,aX9RkB,4BWiShB,aX3SsB,qBW6SpB,qGAEA,yBAGE,iCAIJ,UTzTI,gBS2TF,wBAIJ,eACE,kBClUJ,kCACE,kBACA,gBACA,mBACA,qCAEA,iBANF,eAOI,gBACA,gBACA,6BAGF,eACE,SACA,gBACA,gFAEA,yBAEE,sCAIJ,UACE,yBAGF,kBZxBmB,6GY2BjB,sBAGE,CAHF,cAGE,8IAIA,eAGE,0BACA,iJAKF,yBAGE,kLAIA,iBAGE,qCAKN,4GACE,yBAGE,uCAKN,kBACE,qBAIJ,WACE,eACA,mBZhEmB,WEXb,oBU8EN,iBACA,YACA,iBACA,SACA,yBAEA,UACE,YACA,sBACA,iBACA,UVxFI,gFU4FN,kBAGE,qNAKA,kBZlGoB,4IY0GpB,kBV1GQ,qCUiHV,wBACE,YACE,0DAOJ,YACE,uCAGF,2BACE,gBACA,uDAEA,SACE,SACA,yDAGF,eACE,yDAKA,cACA,iBACA,mBACA,mFAGF,iBACE,eACA,WACA,WACA,WACA,qMAGF,eAGE,mEASF,cACE,gBACA,qFAGF,aZhKc,YYkKZ,eACA,WACA,eACA,gBACA,+GAGF,aACE,eACA,CACA,sBACA,eACA,yJAEA,cACE,uEAIJ,WACE,kBACA,WACA,eACA,iDAQF,iBACE,mBACA,yHAEA,iBACE,gBACA,+FAGF,UACE,oCAMR,aACE,eACA,iBACA,cACA,SACA,uBACA,CACA,eACA,qBACA,oFAEA,yBAEE,WC9OJ,gCACE,4CACA,kBAGF,mBACE,sBACA,oBACA,gBACA,kBACA,cAGF,aACE,eACA,iBACA,cbHmB,SaKnB,uBACA,UACA,eACA,wCAEA,yBAEE,uBAGF,abxBsB,ea0BpB,SAIJ,wBACE,YACA,kBACA,sBACA,WXpCM,eWsCN,qBACA,oBACA,eACA,gBACA,YACA,iBACA,iBACA,gBACA,eACA,kBACA,kBACA,yBACA,qBACA,uBACA,2BACA,qCACA,mBACA,WACA,4CAEA,wBAGE,4BACA,qCACA,sBAGF,eACE,mFAEA,wBXnEQ,gBWuEN,kBAIJ,wBb3EsB,ea6EpB,yGAGF,cAIE,iBACA,YACA,oBACA,iBACA,4BAGF,Ub9FM,mBAGgB,qGa+FpB,wBAGE,8BAIJ,kBX1EsB,2GW6EpB,wBAGE,0BAIJ,cACE,iBACA,YACA,cbxGgB,oBa0GhB,uBACA,iBACA,kBACA,yBACA,+FAEA,oBAGE,cACA,mCAGF,UACE,uBAIJ,aACE,WACA,cAIJ,oBACE,UACA,cbhIoB,SakIpB,kBACA,uBACA,eACA,2BACA,2CACA,2DAEA,aAGE,uCACA,4BACA,2CACA,oBAGF,qCACE,uBAGF,aACE,6BACA,eACA,qBAGF,abzKwB,gCa6KxB,QACE,uEAGF,mBAGE,uBAGF,abvKmB,sFa0KjB,aAGE,oCACA,6BAGF,kCACE,gCAGF,aACE,6BACA,8BAGF,ab1MsB,uCa6MpB,aACE,wBAKN,sBACE,0BACA,yBACA,kBACA,YACA,8BAEA,yBACE,mBAKN,abhNqB,SakNnB,kBACA,uBACA,eACA,gBACA,eACA,cACA,iBACA,UACA,2BACA,2CACA,0EAEA,aAGE,oCACA,4BACA,2CACA,yBAGF,kCACE,4BAGF,aACE,6BACA,eACA,0BAGF,abjQwB,qCaqQxB,QACE,sFAGF,mBAGE,gBAIJ,iBACE,uBACA,YAGF,WACE,cACA,qBACA,QACA,SACA,kBACA,+BAEA,kBAEE,mBACA,oBACA,kBACA,mBACA,iBAKF,WACE,uCAIJ,MACE,kBACA,CX/SU,sEWsTZ,aXtTY,uBW0TZ,aX3Tc,4DWiUV,4CACE,CADF,oCACE,8DAKF,6CACE,CADF,qCACE,6BAKN,aACE,gBACA,qBACA,mCAEA,UXrVM,0BWuVJ,eAIJ,aACE,eACA,gBACA,uBACA,mBACA,iBAEA,aACE,wBACA,sBAIA,cACA,gBAKA,yCAPF,WACE,CAEA,gBACA,uBACA,gBACA,mBAWA,CAVA,mBAGF,aACE,CACA,cAKA,8BAIA,yBACE,sBAIJ,SACE,YACA,eACA,iBACA,uBACA,mBACA,gBACA,CAME,sDAGF,cACE,YACA,kBACA,oBACA,qBAKN,eACE,wBAGF,cACE,eAGF,iBACE,WACA,YACA,aACA,mBACA,uBACA,sBACA,6CAEA,cXxX4B,eAEC,0DWyX3B,sBACA,CADA,gCACA,CADA,kBACA,4BAGF,iBACE,qEAGF,YACE,iBAIJ,iBACE,WACA,YACA,aACA,mBACA,uBACA,qBAEA,cXhZ4B,eAEC,WWiZ3B,YACA,sBACA,CADA,gCACA,CADA,kBACA,WAIJ,oBACE,oBAGF,YACE,kBACA,2BAGF,+BACE,mBACA,SACA,gBAGF,kBbxd0B,ca0dxB,kBACA,uCACA,mBAEA,eACE,uBAIJ,iBACE,QACA,SACA,2BACA,4BAEA,UACE,gBACA,2BACA,0Bb5esB,2BagfxB,WACE,iBACA,uBACA,yBbnfsB,8BaufxB,QACE,iBACA,uBACA,4Bb1fsB,6Ba8fxB,SACE,gBACA,2BACA,2BbjgBsB,wBaugBxB,cACE,iBACA,cACA,iBACA,sBACA,qBACA,mBb7gBsB,WAJlB,gBaohBJ,uBACA,mBACA,yFAEA,kBb5gBiB,cAIE,Ua6gBjB,sCAKN,aACE,iBACA,gBACA,QACA,gBACA,aACA,yCAEA,eACE,mBbviBsB,cayiBtB,kBACA,mCACA,gBACA,kBACA,sDAGF,OACE,wDAIA,UACE,8CAIJ,cACE,iBACA,cACA,iBACA,sBACA,qBACA,mBbhkBsB,WAJlB,gBaukBJ,uBACA,mBACA,oDAEA,SACE,oDAGF,kBbnkBiB,cAIE,iBaskBvB,qBACE,iBAIA,sBACA,cb7kBgB,oBaglBhB,cACE,gBACA,mBACA,kBACA,mBAGF,cACE,mBACA,iBAIJ,aAEE,gBACA,qCAGF,cACE,SACE,iBAGF,aAEE,CAEA,gBACA,yCAEA,iBACE,uCAGF,kBACE,qDAKF,gBAEE,kBACA,YAKN,qBACE,aACA,mBACA,cACA,gBACA,iBAGF,aACE,cACA,CACA,sBACA,WX3pBM,qBW6pBN,kBACA,eACA,gBACA,gCACA,2BACA,mDACA,qBAEA,eACE,eACA,qCTxoBA,6GADF,kBSgpBI,4BACA,kHT5oBJ,kBS2oBI,4BACA,wBAIJ,+BACE,cbhrBsB,sBaorBxB,eACE,aACA,2BAGF,aACE,eACA,kBAIJ,iBACE,yBAEA,iBACE,SACA,UACA,mBb9rBiB,yBagsBjB,gBACA,kBACA,eACA,gBACA,iBACA,WXhtBI,mDWqtBR,oBACE,aAGF,iBACE,kBACA,cACA,iCACA,mCAEA,eACE,yBAGF,YAVF,cAWI,oBAGF,YACE,sBACA,qBAGF,aACE,kBACA,iBACA,yBAKF,uBADF,YAEI,gBAIJ,oBACE,kBACA,eACA,6BACA,SACA,UACA,yBACA,CADA,qBACA,CADA,oBACA,CADA,gBACA,0CACA,wCACA,iCAGF,QACE,mBACA,WACA,YACA,gBACA,UACA,kBACA,UACA,yBAGF,kBACE,WACA,wBACA,qBAGF,UACE,YACA,UACA,mBACA,yBbzxBmB,qCa2xBnB,sEAGF,wBACE,4CAGF,wBbxxBqB,+Ea4xBrB,wBACE,2BAGF,iBACE,WACA,YACA,MACA,SACA,gBACA,mBACA,cACA,SACA,UACA,6BACA,CAKA,uEAFF,SACE,6BAeA,CAdA,sBAGF,iBACE,WACA,YACA,MACA,SACA,gBACA,mBACA,cACA,WAGA,8CAGF,SACE,qBAGF,iBACE,QACA,SACA,WACA,YACA,yBACA,kBACA,yBACA,sBACA,yBACA,sCACA,4CAGF,SACE,qBbp1BmB,yDaw1BrB,kBbl2BqB,2Baw2BrB,iBACE,gBACA,cAGF,aACE,kBAGF,kBbj3BqB,cam3BnB,oBAEA,abv2BqB,oBa22BrB,ab52BgB,yBag3BhB,0BACE,CADF,uBACE,CADF,kBACE,kDAKA,sBACA,cACA,wDAEA,kBACE,8DAGF,cACE,sDAGF,abl4Bc,eao4BZ,0DAEA,abt4BY,0Baw4BV,sDAIJ,oBACE,cb94Bc,sMai5Bd,yBAGE,0BAKN,aACE,UACA,mCACA,CADA,0BACA,gBACA,6BAEA,cACE,yBACA,cbj6Bc,aam6Bd,gBACA,gCACA,sCAGF,oDACE,YACE,uCAIJ,oDACE,YACE,uCAIJ,yBA3BF,YA4BI,yCAGF,eACE,aACA,iDAEA,ab57Bc,qBam8BpB,oBACE,kBACA,eACA,iBACA,gBACA,mBbp9BmB,gBas9BnB,iBACA,qBAGF,eACE,gBACA,2BAEA,iBACE,aACA,wBAGF,kBACE,yBAGF,oBACE,gBACA,yBACA,yBACA,eAIJ,abn+BoB,uBaq+BlB,CACA,WACA,CADA,+BACA,sBACA,cACA,oBACA,mBACA,cACA,WACA,0CAEA,UX5/BM,4BFWa,qCIYjB,yDADF,cS6+BE,sBAGF,UbvgCM,gCaygCJ,sDAEA,Ub3gCI,4BAYa,mDaugCrB,uBACE,YACA,6CACA,uBACA,sBACA,WACA,0DAEA,sBACE,0DAIJ,uBACE,2BACA,gDAGF,abnhCsB,6BaqhCpB,uDAGF,abriC0B,yDayiC1B,aACE,YAGF,aACE,cbpiCgB,6BasiChB,SACA,kBACA,kBACA,oBACA,SACA,aACA,sBACA,WACA,WACA,qBACA,kBAEA,kBACE,WAIJ,+BACE,oBAGF,gBACE,qEAGF,4BACE,gCAGF,eACE,kBACA,MACA,QACA,YACA,kBACA,YAEA,mBACA,yBACA,eACA,aAEA,wCAEA,UX/hCsB,mBWiiCpB,aACA,sBACA,mBACA,uBACA,mBACA,8BACA,wBACA,gCACA,uCAGF,wBACE,kBACA,WACA,YACA,eACA,cbrmCgB,yBaumChB,aACA,uBACA,mBACA,sCAGF,mBACE,6CAEA,8BACE,WAKN,oBACE,UACA,oBACA,kBACA,cACA,SACA,uBACA,eACA,oBAGF,abhoCkB,eakoChB,gBACA,yBACA,iBACA,kBACA,QACA,SACA,+BACA,yBAEA,aACE,WACA,CACA,0BACA,oBACA,mBACA,4BAIJ,iBACE,QACA,SACA,+BACA,WACA,YACA,sBACA,6BACA,CACA,wBACA,kBACA,2CAGF,2EACE,CADF,mEACE,8CAGF,4EACE,CADF,oEACE,qCAGF,GACE,sBACE,KAGF,2BACE,KAGF,2BACE,KAGF,yBACE,IAGF,wBACE,EArBF,4BAGF,GACE,sBACE,KAGF,2BACE,KAGF,2BACE,KAGF,yBACE,IAGF,wBACE,uCAIJ,GACE,wBACE,KAGF,0BACE,KAGF,2BACE,KAGF,uBACE,IAGF,sBACE,EAtBA,6BAIJ,GACE,wBACE,KAGF,0BACE,KAGF,2BACE,KAGF,uBACE,IAGF,sBACE,mCAIJ,GACE,OACE,SACA,yBACA,KAGF,wBACE,KAGF,UACE,YACA,6BACA,kBACA,UACA,IAGF,UACE,YACA,eACA,UACA,6BACA,EA5BA,yBAIJ,GACE,OACE,SACA,yBACA,KAGF,wBACE,KAGF,UACE,YACA,6BACA,kBACA,UACA,IAGF,UACE,YACA,eACA,UACA,6BACA,kCAIJ,GACE,gBACA,aACA,aAPE,wBAIJ,GACE,gBACA,aACA,6BAGF,KACE,OACA,WACA,YACA,kBACA,YACA,2BAEA,YACE,SACA,QACA,WACA,YACA,mBACA,6BAGF,mBACE,yBAGF,YACE,0BAGF,aACE,uBACA,WACA,YACA,SACA,iCAEA,oBACE,0BACA,kBACA,iBACA,WX3yCE,gBW6yCF,eACA,+LAMA,yBACE,mEAKF,yBACE,iBAMR,aACE,iBACA,mEAGF,abzzCoB,qBa6zClB,mBACA,gBACA,sBACA,gBAGF,aACE,iBACA,uBAGF,eACE,8BAGF,ab50CoB,ea80ClB,cACA,gBACA,gBACA,uBAGF,qBACE,sBAGF,WACE,8BAGF,GACE,kBACE,+BACA,2CACA,CADA,kCACA,KAGF,oBACE,0CACA,CADA,iCACA,KAGF,oBACE,2CACA,CADA,kCACA,KAGF,oBACE,0CACA,CADA,iCACA,KAGF,kBACE,2CACA,CADA,kCACA,EA3BF,qBAGF,GACE,kBACE,+BACA,2CACA,CADA,kCACA,KAGF,oBACE,0CACA,CADA,iCACA,KAGF,oBACE,2CACA,CADA,kCACA,KAGF,oBACE,0CACA,CADA,iCACA,KAGF,kBACE,2CACA,CADA,kCACA,iBAIJ,0DACE,CADF,kDACE,cAGF,kBACE,0BACA,aACA,YACA,uBACA,OACA,UACA,kBACA,MACA,kBACA,WACA,aACA,gBAEA,mBACE,oBAIJ,WACE,aACA,aACA,sBACA,kBACA,YACA,0BAGF,iBACE,MACA,QACA,SACA,OACA,WACA,kBACA,mBb36CmB,kCa66CnB,uBAGF,MACE,aACA,mBACA,uBACA,cbt6CqB,eaw6CrB,gBACA,0BACA,kBACA,qCAGF,SACE,oBACA,CADA,WACA,cAGF,wBbv7CqB,Way7CnB,kBACA,MACA,OACA,aACA,qBAGF,iBACE,aAGF,iBACE,cACA,aACA,WACA,yBbx8CmB,kBa08CnB,cACA,UACA,WACA,eAGF,YACE,gCACA,CACA,iBACA,qBAEA,kBACE,UACA,uBAGF,aACE,CACA,sBACA,kBACA,eACA,uBAGF,oBACE,mBb3+CsB,kBa6+CtB,cACA,eACA,wBACA,wBAGF,aACE,CACA,0BACA,gBACA,8BAEA,eACE,aACA,2BACA,8BACA,uCAGF,cACE,cbx/Cc,kBa0/Cd,+BAGF,ab7/CgB,ea+/Cd,mBACA,gBACA,uBACA,kBACA,gBACA,YACA,iCAEA,UXphDE,qBWshDA,oHAEA,yBAGE,yCAKN,QACE,uBAIJ,kBACE,6BAEA,kBACE,oDAGF,eACE,6DAGF,UXhjDI,oBWyjDN,kBACA,cACA,2BAGF,eACE,UAGF,iBACE,cAEA,WACE,WACA,sCACA,CADA,6BACA,cAGF,cACE,iBACA,cb9jDmB,gBagkDnB,gBAEA,ab7kDsB,0Ba+kDpB,sBAEA,oBACE,gBAIJ,qBACE,4BAKN,GACE,cACA,eACA,WARI,mBAKN,GACE,cACA,eACA,2CCrmDF,u+KACE,uCAEA,u+KACE,CAOA,8MAMF,okBACE,UClBJ,YACE,gCACA,cACA,qBACA,iCAEA,aACE,cACA,cfOgB,gBeLhB,qBACA,eACA,gBAGF,WACE,UACA,yCAEA,8CAEA,WACE,iBACA,mBAKN,YACE,0BAGF,UACE,iBACA,kBACA,kBAGF,gBb0BwB,wBE9DtB,4BACA,kBWqCA,eACA,yBAEA,oBACE,sBACA,iBACA,4BX3CF,eWiDE,2DAHF,gBbesB,wBE9DtB,4BACA,CWgDE,iBAOE,CANF,+BXjDF,UWqDI,CACA,qBACA,mCAGF,aACE,kBACA,QACA,SACA,+BACA,WbhEE,6BakEF,gBACA,eACA,0BAKN,iBACE,WACqB,sCXpErB,+BANA,UW8EuB,sCXxEvB,gEWsEA,gBbfsB,wBE9DtB,4BWyFE,CXlFF,iCANA,UWmFuB,sCX7EvB,kBW+EE,SACA,QACA,UACA,wBAIJ,WACE,aACA,mBACA,2BAGF,aACE,mBACA,sBAGF,YACE,cf3FgB,6Be8FhB,eACE,CAII,kMADF,eACE,wBAKN,eACE,cACA,0BACA,yFAEA,oBAGE,sBAKN,4BACE,gCACA,iBACA,gBACA,cACA,aACA,4BAGF,YACE,cACA,iBACA,kBACA,2BAGF,oBACE,gBACA,cACA,8BACA,eACA,oCACA,uCAEA,aACE,kCAGF,+BACE,gCAGF,aACE,yBACA,eACA,cfzJgB,kCe6JlB,aACE,eACA,gBACA,Wb7KI,CakLA,2NADF,eACE,gCAKN,afnLwB,oBewL1B,iBACE,mDAEA,aACE,mBACA,gBACA,4BAIJ,UACE,kBACA,wBAGF,gBACE,qBACA,eACA,cfjMkB,eemMlB,kBACA,4BAEA,af/MwB,6BemNxB,aACE,gBACA,uBACA,iBAIJ,kBACE,6BACA,gCACA,aACA,mBACA,eACA,kDAGF,aAEE,kBACA,yBAGF,kBACE,aACA,2BAGF,afrOoB,eeuOlB,cACA,gBACA,mBACA,kDAIA,kBACE,oDAIA,SX5MF,sBACA,WACA,YACA,gBACA,oBACA,mBJxDmB,cAYD,eI+ClB,SACA,+EWsMI,aACE,CXvMN,qEWsMI,aACE,CXvMN,yEWsMI,aACE,CXvMN,gEWsMI,aACE,sEAGF,QACE,yLAGF,mBAGE,0DAGF,kBACE,qCAGF,mDArBF,cAsBI,yDAIJ,af5Qc,iBe8QZ,eACA,4DAGF,gBACE,wDAGF,kBACE,gEAEA,cACE,iNAEA,kBAGE,cACA,gHAKN,aftSgB,0He2ShB,cAEE,gBACA,cf7SY,kZegTZ,aAGE,gEAIJ,wBACE,iDAGF,ebzUI,kBEkEN,CAEA,eACA,cJhDiB,uCIkDjB,UWoQI,mBfxUoB,oDIsExB,wBACE,cJrDe,eIuDf,gBACA,mBACA,oDAGF,aACE,oDAGF,kBACE,oDAGF,eACE,WJ3FI,sDegVJ,WACE,mDAGF,UfpVI,kBesVF,eACA,8HAEA,kBAEE,iCAON,kBACE,mBAIJ,UbtWQ,kBawWN,cACA,mBACA,sBb3WM,yBa6WN,eACA,gBACA,YACA,kBACA,WACA,yBAEA,SACE,6BAIJ,YACE,eACA,gBACA,wBAGF,WACE,sBACA,cACA,kBACA,kBACA,gBACA,WACA,+BAEA,iBACE,QACA,SACA,+BACA,eACA,sDAIJ,kBAEE,gCACA,eACA,aACA,cACA,oEAEA,kBACE,SACA,SACA,6HAGF,aAEE,cACA,cfpZgB,eesZhB,eACA,gBACA,kBACA,qBACA,kBACA,yJAEA,af3ZmB,qWe8ZjB,aAEE,WACA,kBACA,SACA,SACA,QACA,SACA,2BACA,CAEA,4CACA,CADA,kBACA,CADA,wBACA,iLAGF,WACE,6CACA,8GAKN,kBACE,gCACA,qSAKI,YACE,iSAGF,4CACE,sBAQR,sBACA,mBACA,6BACA,gCACA,+BAEA,iBACE,iBACA,cfjdc,Ceodd,eACA,eACA,oCAEA,aACE,gBACA,uBACA,oCAIJ,UACE,kBACA,uDAGF,iBACE,qDAGF,eACE,2BAIJ,af9eoB,eegflB,gBACA,gBACA,kBACA,qBACA,6BAEA,kBACE,wCAEA,eACE,6BAIJ,aACE,0BACA,mCAEA,oBACE,kBAKN,eACE,2BAEA,UACE,8FAEA,8BAEE,CAFF,sBAEE,wBAIJ,iBACE,SACA,UACA,yBAGF,eACE,aACA,kBACA,mBACA,6BAEA,mBACE,CADF,8BACE,CADF,gBACE,cACA,WACA,YACA,SACA,uBAIJ,iBACE,mBACA,YACA,gCACA,+BAEA,aACE,cACA,WACA,iBACA,gDAEA,kBACE,yBACA,wBAKN,YACE,uBACA,gBACA,iBACA,iCAEA,YACE,mBACA,iBACA,gBACA,8CAEA,wBACE,kBACA,uBACA,YACA,yCAGF,YACE,8BAIJ,WACE,4CAEA,kBACE,wCAGF,UACE,YACA,iCAGF,cACE,iBACA,Wb/mBA,gBainBA,gBACA,mBACA,uBACA,uCAEA,aACE,eACA,cf3mBU,gBe6mBV,gBACA,uBACA,gCAKN,aACE,uBAIJ,eACE,cACA,iDAGE,qBACA,Wb5oBE,gDagpBJ,QACE,6BACA,kDAEA,aACE,yEAGF,uBACE,4DAGF,ab3pBU,yBaiqBd,cACE,gCAEA,cACE,cfzpBc,ee2pBd,kCAEA,oBACE,cf9pBY,qBegqBZ,iBACA,gBACA,yCAEA,eACE,WblrBF,ScFR,YACE,gCACA,8BAEA,aACE,cACA,WdJI,qBcMJ,eACA,gBACA,kBAIJ,YACE,iBAGF,WACE,aACA,mBACA,mCCrBF,GACE,sBACE,KAGF,2BACE,KAGF,4BACE,KAGF,2BACE,IAGF,yBACE,EDGF,0BCrBF,GACE,sBACE,KAGF,2BACE,KAGF,4BACE,KAGF,2BACE,IAGF,yBACE,qCAIJ,GACE,yBACE,KAGF,yBACE,KAGF,4BACE,KAGF,wBACE,IAGF,sBACE,EAtBA,2BAIJ,GACE,yBACE,KAGF,yBACE,KAGF,4BACE,KAGF,wBACE,IAGF,sBACE,gCAIJ,cACE,kBAGF,iBACE,cACA,eACA,iBACA,qBACA,gBACA,iBACA,gBACA,wBAEA,SACE,4BAGF,UACE,YACA,gBACA,sBAGF,cACE,iBACA,sBACA,CADA,gCACA,CADA,kBACA,qEAGF,kBACE,qBACA,sGAEA,eACE,qEAIJ,eAEE,qJAEA,kBAEE,mXAGF,eACE,mBACA,qJAGF,eACE,gBACA,2EAGF,eACE,+NAGF,eACE,2FAGF,iBACE,8BACA,cjBjGc,mBiBmGd,qHAEA,eACE,2JAIJ,eACE,mJAGF,iBACE,6EAGF,iBACE,eACA,6EAGF,iBACE,qBACA,qJAGF,eACE,6JAEA,QACE,2EAIJ,oBACE,2EAGF,uBACE,oBAIJ,af9Ic,qBegJZ,0BAEA,yBACE,8BAEA,aACE,kCAKF,oBACE,uCAEA,yBACE,wBAKN,ajBlKc,4CiBuKhB,YACE,8EAEA,aACE,mCAIJ,aACE,oDAEA,af5LQ,ee8LN,iDAIJ,kBACE,uDAEA,kBACE,qBACA,gCAKN,oBACE,kBACA,mBACA,YACA,WjBrNM,gBiBuNN,eACA,cACA,yBACA,oBACA,eACA,sBACA,sCAEA,kBACE,qBACA,+DAGF,oBACE,iBACA,sBACA,kBACA,eACA,oBACA,2GAKF,oBAGE,4BAIJ,ajBvOkB,SiByOhB,kBACA,kBACA,oBACA,SACA,aACA,sBACA,WACA,WACA,gCACA,+BAGF,UACE,kBACA,mDAGF,iBAEE,gCAGA,qEAEA,eACE,kBAKF,SACE,mBACA,kDAEA,kBACE,wDAEA,sBACE,iFAIJ,kBAEE,SAKN,iBACE,kBACA,YACA,gCACA,eACA,UAaA,mCACA,CADA,0BACA,wDAZA,QAPF,kBAUI,0BAGF,GACE,aACA,WALA,gBAGF,GACE,aACA,uDAMF,cAEE,kCAGF,kBACE,4BACA,sCAIA,ajBpTiB,qCiBwTjB,UjB7UI,6BiBiVJ,ajB3Te,CAtBX,kEiByVJ,UjBzVI,kCiB4VF,ajBvVoB,gEiB2VpB,Uf/VE,mBFEgB,sEiBiWhB,kBACE,mBAMR,uBACE,sBACA,yBACA,CADA,qBACA,CADA,oBACA,CADA,gBACA,yCAEA,aACE,kBACA,OACA,QACA,MACA,SACA,6FACA,oBACA,WACA,2DAGF,oBACE,oCAGF,WACE,gBACA,uBACA,cACA,0CAEA,UACE,kBACA,MACA,gBACA,6DACA,oBACA,4CAGF,oBACE,gDAGJ,oDACE,mEAEF,oDACE,0CAGF,eACE,6DAGF,kBACE,gCAIJ,mBACE,+CAKF,sBACE,qEAEA,aACE,wBAKN,oBACE,YACA,CjBragB,ciBuahB,iBACA,mBACA,CACA,sBACA,8CANA,ajBragB,CiByahB,eAOA,8CAGF,aACE,eACA,eAGF,YACE,8BACA,eACA,oBAEA,sBACE,gBACA,2CAGF,oBACE,sBAIJ,YACE,mBACA,WACA,cjBvcoB,iIiB0cpB,gBAGE,kBACA,0EAGF,yBACE,yEAMA,0CACE,CADF,kCACE,2EAKF,2CACE,CADF,mCACE,wBAKN,YACE,mBACA,2BACA,mBAGF,+BACE,aACA,6CAEA,uBACE,OACA,gBACA,4DAEA,eACE,8DAGF,SACE,mBACA,qHAGF,cAEE,gBACA,4EAGF,cACE,0BAKN,kBACE,aACA,cACA,uBACA,aACA,kBAGF,gBACE,mBACA,iBACA,cjBthBgB,CiBwhBhB,iBACA,eACA,kBACA,+CAEA,ajB7hBgB,uBiBiiBhB,aACE,gBACA,uBACA,qBAIJ,kBACE,aACA,eACA,8BAEA,mBACE,kBACA,mBACA,yDAEA,gBACE,qCAGF,oBACE,WACA,eACA,gBACA,cjBvjBgB,4BiB6jBtB,iBACE,8BAGF,cACE,cACA,uCAGF,aACE,aACA,mBACA,uBACA,kBACA,kBAGF,kBACE,kBACA,wBAEA,YACE,eACA,8BACA,uBACA,uFAEA,SAEE,mCAIJ,cACE,iBACA,6CAEA,UACE,YACA,gBACA,+DAIJ,cAEE,wBAIJ,eACE,cjBnnBgB,eiBqnBhB,iBACA,8BAGF,kBACE,6BACA,gCACA,aACA,mBACA,eACA,wBAGF,aACE,qBACA,uDAGF,oBAEE,gBACA,eACA,gBACA,6JAGF,oBAME,4DAKA,UfxqBM,kBe8qBN,UACE,iKAQF,yBACE,+BAIJ,aACE,gBACA,uBACA,0DAGF,aAEE,sCAGF,kBACE,gCAGF,ajB5rBuB,ciB8rBrB,iBACA,mBACA,gBACA,2EAEA,aAEE,uBACA,gBACA,uCAGF,cACE,Wf1tBI,kCe+tBR,UACE,kBACA,iBAGF,SACE,kBACA,YACA,WACA,CjB1tBgB,8IiBquBhB,ajBruBgB,wBiByuBhB,UACE,wCAGF,kBf7tBsB,WF/BhB,8CiBgwBJ,kBACE,qBACA,+DAOJ,yBACE,cAIJ,YACE,eACA,yBACA,kBACA,cjBnwBgB,gBiBqwBhB,qBACA,gBACA,uBAEA,QACE,OACA,kBACA,QACA,MAIA,iDAHA,YACA,uBACA,mBAUE,CATF,0BAEA,yBACE,kBACA,iBACA,cAIA,sDAGF,cAEE,cjB9xBiB,uBiBgyBjB,SACA,cACA,qBACA,eACA,iBACA,sMAEA,UftzBE,yBe6zBJ,cACE,kBACA,YACA,+DAGF,aACE,eAKN,cACE,qBAEA,kBACE,oBAIJ,cACE,cACA,qBACA,WACE,YACA,SACA,2BAIF,UACE,YACA,qBAIJ,aACE,gBACA,kBACA,cjBv1BkB,gBiBy1BlB,uBACA,mBACA,qBACA,uBAGF,aACE,gBACA,2BACA,2BAGF,ajBr2BoB,oBiBy2BpB,aACE,eACA,eACA,gBACA,uBACA,mBACA,qBAGF,cACE,mBACA,kBACA,yBAEA,cACE,kBACA,yBACA,QACA,SACA,+BACA,yBAIJ,aACE,6CAEA,UACE,mDAGF,yBACE,6CAGF,mBACE,sBAIJ,oBACE,kCAEA,QACE,4CAIA,oBACA,0CAGF,kBACE,0CAGF,aACE,6BAIJ,wBACE,2BAGF,yBACE,cACA,SACA,WACA,YACA,oBACA,CADA,8BACA,CADA,gBACA,sBACA,wBACA,kBAGF,YACE,eACA,yBACA,kBACA,gBACA,gBACA,wBAEA,aACE,cjB77Bc,iBiB+7Bd,eACA,+BACA,aACA,sBACA,mBACA,uBACA,eACA,4BAEA,aACE,wBAIJ,eACE,CACA,qBACA,aACA,sBACA,uBACA,2BAEA,aACE,cACA,0BAGF,oBACE,cjB39BY,gBiB69BZ,gCAEA,yBACE,0BAKN,QACE,eACA,iDAEA,SACE,cACA,8BAGF,ajB9+Bc,oCiBo/BlB,cACE,cACA,SACA,uBACA,UACA,kBACA,oBACA,oFAEA,yBAEE,6BC/gCJ,kBACE,aAGF,iBACE,8BACA,oBACA,aACA,sBAGF,cACE,MACA,OACA,QACA,SACA,0BACA,wBAGF,cACE,MACA,OACA,WACA,YACA,aACA,sBACA,mBACA,uBACA,2BACA,aACA,oBACA,yBACA,CADA,qBACA,CADA,oBACA,CADA,gBACA,oBAGF,mBACE,aACA,aACA,6CAGF,kBlBrC0B,WAJlB,kBkB8CN,gBACA,aACA,sBACA,0BAGF,WACE,WACA,gBACA,iBACA,8DAEA,UACE,YACA,sBACA,aACA,sBACA,mBACA,uBACA,aACA,yBACA,CADA,qBACA,CADA,oBACA,CADA,gBACA,oBAIJ,WACE,WACA,gBACA,iBACA,kBACA,wBAEA,iBACE,MACA,OACA,WACA,YACA,sBACA,aACA,aACA,CAGA,YACA,UACA,yBACA,CADA,qBACA,CADA,oBACA,CADA,gBACA,2CANA,qBACA,mBACA,uBAaF,CATE,mBAIJ,YACE,CAGA,iBACA,qCAGF,kBACE,UACE,YACA,gBACA,0BAGF,UACE,YACA,eACA,gBACA,cACA,oDAIJ,aAEE,mBACA,aACA,aACA,2DAEA,cACE,uLAGF,alB9GmB,SkBiHjB,eACA,gBACA,kBACA,oBACA,YACA,aACA,kBACA,6BACA,+mBAEA,aAGE,yBACA,qiBAGF,UlBvJI,qwDkB2JF,aAGE,sBAMR,sBACE,yBAGF,aACE,aACA,mBACA,uBACA,wBAGF,UACE,YACA,mBACA,mBACA,aACA,eACA,8BAEA,kBACE,+BAGF,cACE,mBACA,kCAIJ,mBACE,CACA,mBACA,0EAEA,mBACE,yBAIJ,cACE,iBACA,4BAEA,cACE,gBACA,WlBjNI,mBkBmNJ,2BAGF,alBjNwB,kGkBoNtB,aAGE,2CAIJ,aACE,2BAGF,cACE,clBhNiB,gBkBkNjB,mBACA,sCAEA,eACE,kCAGF,eACE,mBlB7Oe,cAcE,kBkBkOjB,eACA,gBACA,CAII,2NADF,eACE,oCAOV,WACE,UACA,mCAME,mBACA,mBACA,sCAEA,cACE,iBACA,kBACA,qCAGF,eACE,oCAIJ,kBACE,mBACA,kBACA,eAIJ,iBACE,eACA,mBACA,sBAEA,eACE,WlBnSI,kBkBqSJ,yBACA,eACA,qBAGF,kBlBxSmB,cAcE,gBkB6RnB,aACA,kBACA,6HAQF,eACE,qJAGF,kBACE,clB5SmB,mBkB8SnB,kBACA,aACA,kBACA,eACA,sCACA,yPAEA,iBACE,mBACA,qNAGF,mBACE,gBACA,4CAMJ,YACE,mBACA,gDAEA,UACE,cACA,4DAEA,aACE,2DAGF,cACE,kDAGF,iBACE,uDAIJ,eACE,sDAIJ,UhB3WM,2DgBgXR,0BACE,cACE,iBACA,qJAGF,cAIE,mBACA,4CAGF,kBACE,sDAGF,WACE,eACA,mBAIJ,oBACE,eACA,gBACA,iBACA,uHAGF,kBAOE,WlBvZM,kBkByZN,gBACA,eACA,YACA,kBACA,sBACA,+SAEA,alBjZgB,YkBmZd,eACA,WACA,eACA,gBACA,uSAGF,YACE,uPAGF,WACE,WACA,+WAGF,UACE,wBAKF,ehBvbM,CFGkB,gBkBubtB,oBACA,iEhB3bI,2BFGkB,qDkBgc1B,iBAEE,aACA,qEAEA,wBACE,CADF,qBACE,CADF,oBACE,CADF,gBACE,gBACA,kKAIJ,YAKE,8BACA,mBlBjdwB,akBmdxB,iBACA,0LAEA,aACE,iBACA,clBvciB,mBkBycjB,kNAGF,aACE,6DAIJ,cAEE,yDAGF,WAEE,eACA,0BAGF,gBAEE,sDAGF,qBAEE,eAGF,UACE,gBACA,0BAGF,YACE,6BACA,qCAEA,yBAJF,cAKI,gBACA,iDAIJ,qBAEE,UACA,qCAEA,+CALF,UAMI,sDAIJ,aAEE,gBACA,gBACA,gBACA,kBACA,2FAEA,alBvhBwB,qCkB2hBxB,oDAZF,eAaI,sCAKF,4BADF,eAEI,yBAIJ,YACE,+BACA,gBACA,0BAEA,cACE,iBACA,mBACA,sCAGF,aACE,sBACA,WACA,CACA,UlB1jBI,gBECA,agB4jBJ,oBACA,eACA,YACA,CACA,SACA,kBACA,yBACA,iBACA,gBACA,gBACA,4CAEA,wBACE,+CAGF,ehB5kBI,yBgB8kBF,mBACA,kBACA,6DAEA,QACE,gBACA,gBACA,mEAEA,QACE,0DAIJ,UlB7lBE,oBkB+lBA,eACA,gBhB/lBA,+CgBomBJ,YACE,8BACA,mBACA,4CAIJ,aACE,WlB7mBI,ekB+mBJ,gBACA,mBACA,wCAGF,eACE,mBACA,+CAEA,UlBxnBI,ekB0nBF,qCAIJ,uBAnFF,YAoFI,eACA,QACA,wCAEA,iBACE,iBAKN,eAWE,eACA,wBAXA,eACE,iBACA,uBAGF,aACE,gBACA,2CAMF,eACE,mBAGF,eACE,cACA,gBACA,+BAEA,4BACE,4BAGF,QACE,oCAIA,UlBzqBE,akB2qBA,kBACA,eACA,mBACA,qBACA,8EAEA,eAEE,yWAOA,kBlB9qBW,WEXb,iJgBgsBA,iBAGE,oMAUR,aACE,iIAIJ,4BAIE,clBlsBmB,ekBosBnB,gBACA,6cAEA,aAGE,6BACA,uCAIJ,iBACE,mBACA,oBACA,eAEA,yFAEA,qBACE,qGAIJ,YAIE,eACA,iIAEA,eACE,CAII,w1BADF,eACE,sDAMR,iBAEE,oDAKA,eACE,0DAGF,eACE,mBACA,aACA,mBACA,wEAEA,UlBnxBI,CkBqxBF,gBACA,uBAKN,YACE,2CAEA,QACE,WACA,cAIJ,UACE,eACA,gBACA,iBAEA,YACE,gBACA,eACA,kBACA,sCAGF,YACE,4CAEA,kBACE,yDAGF,SACE,sBACA,cACA,WACA,YACA,aACA,gDACA,mBlB5zBe,WEDb,egBg0BF,CACA,eACA,kBACA,2EAEA,QACE,wMAGF,mBAGE,+DAGF,kBACE,qCAGF,wDA7BF,cA8BI,4DAIJ,WACE,eACA,gBACA,SACA,kBACA,cAKN,iBACE,YACA,gBACA,YACA,aACA,uBACA,mBACA,gBhB12BM,yDgB62BN,aAGE,gBACA,WACA,YACA,SACA,sBACA,CADA,gCACA,CADA,kBACA,gBhBr3BI,uBgBy3BN,iBACE,YACA,aACA,+BACA,iEACA,kBACA,wCACA,uBAGF,iBACE,WACA,YACA,MACA,OACA,uBAGF,iBACE,YACA,WACA,UACA,YACA,4BACA,6BAEA,UACE,8BAGF,UhBt5BI,egBw5BF,gBACA,cACA,kBACA,2BAGF,iBACE,mCACA,qCAIJ,oCACE,eAEE,uBAGF,YACE,wBAKN,gBACE,sCAEA,eACE,gCAGF,eACE,qDAGF,UlB57BM,iDkBg8BN,YACE,0DAEA,YACE,0BAIJ,YACE,iBACA,uBACA,kDAGF,alB57BoB,qBkB87BlB,wDAEA,yBACE,WCp9BN,YACE,kCAEA,iBACE,MACA,QACA,oIAEA,+BAEE,oBAKN,cACE,uBACA,eACA,gBACA,cnBGmB,yDEjBP,sCiBsBd,2CACE,oBAGF,QACE,wBACA,UACA,+CAEA,WACE,mBACA,UACA,0BAGF,aACE,sBACA,SACA,YACA,kBACA,aACA,WACA,UACA,WnBjDI,gBECA,eiBmDJ,oBACA,gBACA,qDAEA,anBzCc,CmBuCd,2CAEA,anBzCc,CmBuCd,+CAEA,anBzCc,CmBuCd,sCAEA,anBzCc,gCmB6Cd,8Cf/CA,uCADF,ceiD4D,0Cf5C5D,ce4C4D,oBAI9D,UnBjEQ,mBmBmEN,mBnBhEsB,oCmBkEtB,iBACA,kBACA,eACA,gBACA,sBAEA,anBtDmB,gBmBwDjB,0BACA,mFAEA,oBAEU,iCAKZ,mBACA,eAEA,gBACA,wCAEA,anBxFwB,sDmB4FxB,YACE,2CAGF,oBACE,kBACA,yBACA,sBACA,WACA,YACA,cACA,gBACA,kBACA,SACA,kBACA,sBACA,kDAEA,oBnB9GsB,qCmBqH1B,eACE,kBACA,aACA,mBnB1HsB,gBmB4HtB,gBACA,cACA,yBAEA,iBACE,gBACA,wCAEA,UnBvII,iCmByIJ,WACE,iBACA,2BAIJ,iBACE,cACA,CACA,cACA,iBACA,WnBpJI,qBmBsJJ,gBACA,iBACA,qBACA,mBACA,gBACA,gGAEA,kBACE,qBACA,iIAEA,eACE,kJAIJ,eACE,mBACA,2DAGF,eACE,eACA,8BAGF,cACE,wFAGF,eACE,sCAGF,iBACE,2BACA,WnB1LE,mBmB4LF,mDAEA,eACE,8DAIJ,eACE,0DAGF,iBACE,+BAGF,iBACE,eACA,2DAGF,eACE,+DAEA,QACE,8BAIJ,oBACE,8BAGF,uBACE,6BAGF,anB3MiB,qBmB6Mf,mCAEA,oEAGE,oBACE,gDAEA,qDAMR,UACE,YACA,gBACA,uDAIJ,iBAEE,WACA,mIAGE,aACE,sBACA,SACA,YACA,0BACA,yBACA,WACA,iBACA,UACA,WnBtQE,gBECA,eiBwQF,oBACA,YACA,qBACA,yLAEA,anB/PY,CmB6PZ,sKAEA,anB/PY,CmB6PZ,8KAEA,anB/PY,CmB6PZ,4JAEA,anB/PY,yKmBmQZ,SACE,qJAGF,kBnBlRoB,+ImBmRpB,8Cf1QF,8JADF,ce4Q8D,kKfvQ9D,ceuQ8D,qCfhQ5D,8TADF,sBeoQM,gBACA,6BAMR,aACE,kBACA,SACA,UACA,WACA,gBACA,2CAEA,aACE,mBACA,WACA,YACA,cnBzRiB,emB2RjB,iBACA,kBACA,WACA,4CAIJ,iBACE,SACA,oCAGF,aACE,kBACA,sBACA,SACA,0BACA,YACA,WACA,WnBnUM,mBAIkB,sCmBkUxB,eACA,WACA,aACA,6CAGF,aACE,0CAGF,YACE,eACA,kBACA,iMAEA,kBAGa,iKAEb,YAGE,mBACA,mBACA,2BACA,iBACA,eACA,+DAGF,6BACE,qEAEA,aACE,gBACA,uBACA,mBACA,sEAGF,eACE,qEAGF,aACE,iBACA,gBACA,uBACA,mBACA,4EAMA,anBzWe,wBmB8WrB,eACE,iCAEA,YACE,mBACA,eACA,oBACA,YACA,gBACA,8BAIJ,UACE,WACA,cACA,kCAEA,iBACE,kBACA,aACA,WACA,sBjBzZI,wBiB2ZJ,sBACA,4BACA,gBACA,2CAEA,aACE,kBACA,sBACA,SACA,OACA,SACA,SACA,aACA,WACA,cnBzZiB,gFmB2ZjB,eACA,oBACA,gBACA,UACA,UACA,4BACA,iDAEA,UjBlbE,sEiBobF,WACE,cnBtae,CEff,4DiBobF,WACE,cnBtae,CEff,gEiBobF,WACE,cnBtae,CEff,uDiBobF,WACE,cnBtae,yCmB2anB,2EAKE,0CAKN,iFACE,aACA,uBACA,8BACA,UACA,4BACA,8CAEA,aACE,cnB1csB,emB4ctB,gBACA,aACA,oBACA,2JAEA,aAGE,wCAIJ,SACE,kCAIJ,YACE,aACA,cnBrdkB,gBmBudlB,sCAEA,cACE,kBACA,2CAGF,aACE,gDAEA,aACE,eACA,gBACA,yBACA,qDAGF,iBACE,eACA,kBACA,WACA,WACA,mBjB5dkB,8DiB+dlB,iBACE,MACA,OACA,WACA,kBACA,mBnBvfa,0BmB8frB,UnB1gBQ,oBmB4gBN,eACA,gBjB5gBM,4BiBghBR,YACE,mBACA,0BACA,YACA,aACA,8BACA,cACA,oBAGF,YACE,cACA,sBAEA,oBACE,uBACA,cACA,YACA,iBACA,sBACA,uBAGF,oBACE,aACA,CAEA,oBACA,CADA,6BACA,UACA,QACA,YACA,uBACA,2BAIJ,iBACE,iBACA,0CAKE,yBACE,qCACA,WjB7jBE,mBFWa,gBmBqjBf,8CAGA,yBACE,oCACA,uCAMR,iBACE,kBACA,uCACA,gBjB9kBM,gBiBglBN,uBACA,6CAGF,YACE,mBACA,aACA,WnBxlBM,emB0lBN,sDAEA,aACE,cnBxkBiB,wEmB2kBjB,6EAEA,aACE,WnBnmBE,gBmBqmBF,sGAIJ,kBnB7lBmB,WEXb,6PiBgnBF,UjBhnBE,0DiBonBN,wCAGF,gBACE,iBACA,mBACA,gBACA,yBACA,cACA,+BAEA,oBACE,SACA,eACA,kBACA,gCAGF,oBACE,aACA,UACA,WACA,kBACA,kCAIA,ajB5oBU,CkBFZ,+BAHF,YACE,cACA,kBAUA,CATA,cAKA,kBACA,2BACA,gBAEA,uBAEA,YACE,uBACA,WACA,YACA,iBACA,6BAEA,WACE,gBACA,oBACA,aACA,yBACA,gBACA,oCAEA,0BACE,oCAGF,cACE,YACA,oBACA,YACA,6BAIJ,qBACE,WACA,gBACA,cACA,aACA,sBACA,qCAEA,4BARF,cASI,qBAMR,kBACE,wBACA,CADA,eACA,MACA,UACA,cACA,qCAEA,mBAPF,gBAQI,+BAGF,eACE,qCAEA,6BAHF,kBAII,wHAMJ,WAGE,mCAIJ,YACE,mBACA,uBACA,YACA,CpBrFmB,IoBoGrB,aACE,aACA,sBACA,WACA,YACA,CAIA,oBAGF,qBACE,WACA,mBACA,cpBhHwB,eoBkHxB,cACA,eACA,SACA,iBACA,aACA,SACA,UACA,2BAEA,yBACE,6BAIJ,kBACE,SACA,oBACA,cpBnIwB,eoBqIxB,cACA,eACA,kBACA,UACA,mCAEA,yBACE,wCAGF,kBACE,2BAIJ,oBACE,iBACA,2BAGF,iBACE,kCAGF,cACE,cACA,eACA,aACA,kBACA,QACA,UACA,cAGF,kBACE,WlB5KM,ckB8KN,eACA,aACA,qBACA,2DAEA,kBAGE,oBAGF,SACE,2BAGF,sBACE,cpB3LsB,kGoB8LtB,sBAGE,WlBpME,kCkBwMJ,apB7LiB,oBoBmMrB,oBACE,iBACA,oBAGF,kBpBlNqB,cAaH,iBoBwMhB,eACA,gBACA,yBACA,eACA,yBAGF,iBACE,cACA,UACA,gCAEA,sCACE,uCAEA,aACE,WACA,kBACA,aACA,OACA,QACA,cACA,UACA,oBACA,YACA,UACA,gFACA,wCAIJ,SACE,kBACA,gBAIJ,YACE,eACA,mBACA,cACA,eACA,kBACA,UACA,UACA,gBACA,uBAEA,QACE,YACA,aACA,cACA,uBACA,aACA,gBACA,uBACA,gBACA,mBACA,OACA,4CAGF,apBhRwB,4CoBqRtB,apBrRsB,wCoBuRpB,4CAIJ,SAEE,SAIJ,WACE,kBACA,sBACA,aACA,sBACA,gBACA,wDAEA,SACE,gBACA,gBACA,qBAGF,kBpBlTmB,yBoBuTrB,WACE,aACA,cACA,uBAGF,kBACE,iCAGF,iBACE,sEAGF,kBACE,SACA,cpB3TkB,eoB6TlB,eACA,eACA,kFAEA,aACE,CAKA,kLAEA,UlBtVI,mBkBwVF,kFAKJ,2BACE,wCAIJ,YACE,oBACA,6BACA,+CAEA,sBAEE,kBACA,eACA,qBACA,0CAGF,eACE,gDAKJ,SACE,6BAGF,eACE,gBACA,gBACA,cpB/WkB,0DoBiXlB,UACA,UACA,kBACA,uCAEA,YACE,WACA,uCAGF,iBACE,gCAGF,QACE,uBACA,SACA,6BACA,cACA,iCAIF,eACE,2CACA,YACE,WACA,mCAKN,kBACE,aACA,mCAIA,apBvZkB,0BoByZhB,gCAIJ,WACE,4DAEA,cACE,uEAEA,eACE,uBAKN,oBACE,uBACA,gBACA,mBACA,OACA,sBAGF,oBACE,iBACA,6EAGF,apBrbkB,mBAbG,kBoBucnB,aACA,eACA,gBACA,eACA,aACA,cACA,mBACA,uBACA,yBACA,4EAdF,cAeI,6FAGF,eACE,mFAGF,apBrdwB,qBoBudtB,qGAEA,yBACE,uCAKN,kBACE,aACA,eAGF,qBACE,uCAKA,sBACE,6BACA,qCASF,qCAXA,sBACE,6BACA,sCAgBF,mJAFF,qBAGI,sBAKF,wBACA,aACA,2BACA,mBACA,mBACA,2BAEA,aACE,iCAEA,UACE,kBACA,uCAEA,SACE,kCAKN,aACE,aACA,yBC9hBJ,iBACE,eACA,gBACA,crBagB,mBAbG,eqBGnB,aACA,cACA,sBACA,mBACA,uBACA,aACA,qEAGE,aAEE,WACA,aACA,SACA,yCAIJ,gBACE,gCAGF,eACE,uCAEA,aACE,mBACA,crBjBY,qCqBqBd,cACE,gBACA,kBCtCJ,UACE,cACA,+BACA,0BAEA,UACE,qCAGF,iBATF,QAUI,mBAIJ,qBACE,mBACA,uBAEA,YACE,kBACA,mBACA,gBACA,2BAEA,aACE,WACA,YACA,SACA,oBACA,CADA,8BACA,CADA,gBACA,uBAIJ,YACE,mBACA,mBACA,aACA,6BAEA,aACE,aACA,mBACA,qBACA,gBACA,qCAGF,UACE,eACA,cACA,+BAGF,aACE,WACA,YACA,gBACA,mCAEA,UACE,YACA,cACA,SACA,kBACA,mBACA,oBACA,CADA,8BACA,CADA,gBACA,qCAIJ,gBACE,gBACA,4CAEA,cACE,WpB1EF,gBoB4EE,gBACA,uBACA,0CAGF,aACE,eACA,ctBtEU,gBsBwEV,gBACA,uBACA,yBAKN,kBtB3FiB,asB6Ff,mBACA,uBACA,gDAEA,YACE,cACA,eACA,mDAGF,qBACE,kBACA,gCACA,WACA,gBACA,mBACA,gBACA,uBACA,qDAEA,YACE,iEAEA,cACE,sDAIJ,YACE,cAOV,kBtBjIqB,sBsBoInB,iBACE,4BAGF,aACE,eAIJ,cACE,kBACA,qBACA,cACA,iBACA,eACA,mBACA,gBACA,uBACA,eACA,oEAEA,YAEE,sBAGF,oBACE,kBACA,yBACA,sBACA,WACA,YACA,cACA,kBACA,SACA,kBACA,sBACA,8BAEA,oBACE,mBACA,CC/KJ,eAGF,SnBkDE,sBACA,WACA,YACA,gBACA,oBACA,mBJxDmB,cAYD,eI+ClB,SACA,cmBxDA,CACA,2BACA,iBACA,eACA,2CAEA,aACE,CAHF,iCAEA,aACE,CAHF,qCAEA,aACE,CAHF,4BAEA,aACE,kCAGF,QACE,6EAGF,mBAGE,sBAGF,kBACE,qCAGF,eA3BF,cA4BI,kCAKF,QACE,qDAGF,mBAEE,mBAGF,iBACE,SACA,WACA,UACA,qBACA,UACA,0BACA,4CACA,eACA,WACA,YACA,cvBxCmB,euB0CnB,oBACA,0BAEA,mBACE,WACA,0BAIJ,sBACE,iCAEA,mBACE,WACA,gCAIJ,QACE,uBACA,cvB5DkB,euB8DlB,uCAEA,uBACE,sCAGF,aACE,yBAKN,avB7EkB,mBuB+EhB,gCACA,kBACA,eACA,gBACA,uBAGF,YACE,cvBxFkB,kBuB0FlB,iBAIA,avB7FgB,mBuB+Fd,gCACA,gBACA,aACA,eACA,eACA,qBAEA,oBACE,iBACA,eAIJ,YACE,mBACA,aACA,gCACA,0BAEA,eACE,qBAGF,aACE,cvBvHY,gBuByHZ,uBACA,mBACA,4BAEA,eACE,uBAGF,avBlIc,qBuBoIZ,eACA,gBACA,cACA,gBACA,uBACA,mBACA,qGAKE,yBACE,wBAMR,aACE,eACA,iBACA,gBACA,iBACA,mBACA,gBACA,cvB3JiB,0BuB+JnB,aACE,WACA,2CAEA,mCACE,yBACA,0CAGF,wBACE,WC1LR,yCCCE,qBACA,sBACA,CADA,kBACA,wBACA,WACA,YACA,eAEA,UACE,8BAIJ,evBXQ,kBuBaN,sCACA,kBACA,eACA,UACA,iDAEA,2BACE,2DAGF,UACE,mCAIJ,iBACE,SACA,WACA,eACA,yCAGF,iBACE,UACA,SACA,UACA,gBvBvCM,kBuByCN,sCACA,gBACA,gDAEA,aACE,eACA,SACA,gBACA,uBACA,iKAEA,+BAGE,2DAIJ,WACE,wBAKF,2BACE,eAIJ,aACE,wBACA,UACA,eACA,0CAEA,mBAEE,mBAGF,8BACE,CADF,sBACE,WACA,cACA,SACA,WACA,YACA,0EAMA,SACE,oBACA,CADA,WACA,eChGN,WAEE,0BAGF,kBANW,kBAQT,cACA,iCACA,wBACE,mCAOF,WACE,SACA,UACA,2CAGF,aACE,aAEA,sBACA,YACA,6BACA,6DAGE,oBACE,WACA,iBACA,iBACA,iJAGF,UACE,gEAEF,oBACE,gBACA,WACA,2CAKN,yBACE,sBACA,kBACA,YACA,gBACA,kDAEA,uBACE,CADF,oBACE,CADF,eACE,WACA,YACA,SACA,4BACA,WACA,yBACA,eACA,4CACA,sBACA,oBACA,6DAEA,uBACE,6DAGF,sBACE,wEAGF,sBACE,kBACA,SCjFR,WACE,sBACA,aACA,sBACA,kBACA,iBACA,UACA,qBAEA,iBACE,oBAGF,kBACE,2DvBDF,SuBI0D,yBvBC1D,SuBD0D,qCvBQxD,qLuBLA,yBAGF,eACE,gBACA,eACA,qCvBZA,4BuBgBA,SACE,WACA,YACA,eACA,UACA,+BALF,SACE,WACA,YACA,eACA,UACA,yCAIJ,4BAGF,YACE,mBACA,mBACA,UACA,mBACA,eACA,mBAEA,aACE,sBACA,oCACA,sBACA,YACA,cACA,c3BzCgB,kB2B2ChB,qBACA,eACA,mBAGF,iCACE,iDAEA,YAEE,mBACA,mCACA,SAKN,iBACE,mBACA,UACA,qCvBrDE,6CADF,euBwDkF,sCvBlEhF,sBADF,cuBoE0D,yBvB/D1D,cuB+D0D,gBAG5D,ezBlFQ,kBEkEN,CACA,sBACA,gBACA,cJhDiB,uCIkDjB,mBAEA,wBACE,cJrDe,eIuDf,gBACA,mBACA,mBAGF,aACE,mBAGF,kBACE,mBAGF,eACE,WJ3FI,kB2BuFR,YACE,c3B1EkB,a2B4ElB,mBACA,oBAEA,aACE,qBACA,wBAGF,aACE,c3BnFmB,gB2BqFnB,mBACA,gBACA,uBACA,0BAIJ,aACE,gBACA,gBACA,kBAGF,kB3BhHqB,kB2BkHnB,gBACA,yBAEA,a3BxGgB,mB2B0Gd,aACA,gBACA,eACA,eACA,6BAEA,oBACE,iBACA,0BAIJ,iBACE,6BAEA,kBACE,gCACA,eACA,aACA,aACA,gBACA,eACA,c3BhIY,iC2BmIZ,oBACE,iBACA,8FAIJ,eAEE,mCAGF,aACE,aACA,c3B/IiB,qB2BiJjB,0HAEA,aAGE,0BACA,gBAQN,WACA,kBAGA,+BANF,qBACE,UACA,CAEA,eACA,aAgBA,CAfA,eAGF,iBACE,MACA,OACA,mBACA,CAGA,qBACA,CACA,eACA,WACA,YACA,uBAEA,kB3BlMmB,0B2BuMrB,u1BACE,OACA,gBACA,aACA,8BAEA,aACE,sBACA,CADA,4DACA,CADA,kBACA,+BACA,CADA,2BACA,UACA,YACA,oBACA,eACA,yBACA,CADA,qBACA,CADA,oBACA,CADA,gBACA,oCAGF,aACE,WACA,YACA,YACA,eACA,sCAGF,yBAzBF,aA0BI,iBAIJ,kBACE,eACA,gBACA,mBAGF,cACE,kBACA,MACA,OACA,WACA,YACA,0BACA,oBCrPF,kBACE,gB1BAM,WACA,e0BEN,aACA,sBACA,YACA,uBACA,eACA,kBACA,kBACA,YACA,gBAGF,e1BdQ,cFcY,S4BGlB,WACA,YACA,iEAEA,aAGE,iCAGF,eACE,2BxBcF,iBACE,mBACA,cACA,eACA,aACA,gBACA,yBwBfJ,aACE,eACA,yBAGF,aACE,eACA,gBACA,6BAGF,aACE,kBACA,W1B7CM,0B0B+CN,WACA,SACA,gBACA,kBACA,eACA,gBACA,UACA,oBACA,WACA,4BACA,iBACA,wDAKE,SACE,uBAKN,WACE,aACA,sBACA,4BAEA,iBACE,c5B9DgB,a4BgEhB,YACA,mBACA,CAGE,yDAIJ,UACE,gBAIJ,qBACE,eACA,gBACA,kBACA,kBACA,WACA,aACA,2BxBzDA,iBACE,mBACA,cACA,eACA,aACA,gBACA,sBwBwDJ,WACE,sBACA,cACA,WACA,kBACA,kBACA,gBACA,kCAEA,eACE,qEAIA,cACE,MACA,gCAIJ,e1B5HM,gC0BiIR,cACE,cACA,qBACA,c5BpHqB,kB4BsHrB,UACA,mEAEA,WAEE,WACA,sBACA,CADA,gCACA,CADA,kBACA,CAIE,0HAFF,WACE,oBACA,CADA,8BACA,CADA,gB1BhJE,C0BiJF,wBAKN,UACE,CAEA,iBACA,MACA,OACA,UACA,gB1B7JM,iC0BgKN,YACE,sBAIJ,WACE,gBACA,kBACA,WACA,aACA,uBACA,qCAGF,cACE,YACA,WACA,kBACA,UACA,sBACA,CADA,gCACA,CADA,kBACA,yBACA,CADA,qBACA,CADA,oBACA,CADA,gBACA,qDAEA,WACE,oBACA,CADA,8BACA,CADA,gBACA,sCAIJ,0BACE,2BACA,gBACA,kBACA,yBAGF,eACE,iBACA,yBAGF,UACE,cAGF,UACE,YACA,kBACA,qCAEA,UACE,YACA,aACA,mBACA,uBACA,2CAEA,c1BrK0B,eAEC,C0B+K7B,8CALF,iBACE,MACA,OACA,QACA,SAYA,CAXA,yBAQA,mBACA,8BACA,oBACA,4BAEA,mBACE,0DAGF,SACE,4DAEA,mBACE,mBAKN,yBACE,sBACA,SACA,W1BjQM,e0BmQN,aACA,mBACA,eACA,cACA,cACA,kBACA,kBACA,MACA,SACA,yBAGF,MACE,0BAGF,OACE,CASA,4CANF,UACE,kBACA,kBACA,OACA,YACA,oBAUA,6BAEA,WACE,sBAGF,mBACE,qBACA,gBACA,c5B5SsB,mF4B+StB,yBAGE,wBAKN,oBACE,sBAGF,qB1B9TQ,Y0BgUN,WACA,kBACA,YACA,UACA,SACA,YACA,8BAGF,wB5B9TqB,qB4BkUrB,iBACE,UACA,QACA,YACA,qKAKA,WAEE,mFAGF,WACE,eAKJ,qBACE,kBACA,mBACA,kBACA,oBACA,cACA,wBAEA,eACE,YACA,yBAGF,cACE,kBACA,gBACA,gCAEA,UACE,cACA,kBACA,6BACA,WACA,SACA,OACA,oBACA,qCAIJ,oCACE,iCAGF,wBACE,uCAIA,mBACA,mBACA,6BACA,0BACA,eAIJ,eACE,kBACA,gB1BnZM,e0BqZN,kBACA,sBACA,cACA,wBAEA,eACE,sBACA,qBAGF,SACE,gCAGF,UACE,YACA,0BxB3XF,iBACE,mBACA,cACA,eACA,aACA,gBACA,qBwB0XF,eACE,gBACA,UACA,kBACA,0BAGF,oBACE,sBACA,SACA,gCAEA,wBACE,0BACA,qBACA,sBACA,UACA,4BAKF,qBACE,CADF,gCACE,CADF,kBACE,kBACA,QACA,2BACA,yBAIJ,iBACE,UACA,SACA,OACA,QACA,sBACA,iFACA,eACA,UACA,4BACA,gCAEA,SACE,6EAKF,iBAEE,wBAIJ,YACE,kBACA,MACA,OACA,WACA,YACA,UACA,SACA,gB1BxeI,cFcY,gB4B6dhB,oBACA,+BAEA,aACE,oBACA,8GAEA,aAGE,+BAIJ,aACE,eACA,kCAGF,aACE,eACA,gBACA,4BAIJ,YACE,8BACA,oBACA,CAGE,gUAEA,aAIE,wBAKN,cACE,mBACA,gBACA,uBACA,oCAGE,cACE,qCAKF,eACE,+BAIJ,sBACE,iBACA,eACA,SACA,0BACA,8GAEA,U1B9iBE,+E0BsjBN,cAGE,gBACA,6BAGF,U1B7jBM,iB0B+jBJ,yBAGF,oBACE,aACA,mDAGF,U1BvkBM,uB0B4kBN,cACE,YACA,eACA,8BAEA,UACE,WACA,+BAOA,6DANA,iBACA,cACA,kBACA,WACA,UACA,YAWA,CAVA,+BASA,kBACA,+BAGF,iBACE,UACA,kBACA,WACA,YACA,YACA,UACA,4BACA,mBACA,sCACA,oBACA,qBAIJ,gBACE,uBAEA,oBACE,eACA,gBACA,W1B5nBE,sF0B+nBF,yBAGE,qBAKN,cACE,YACA,kBACA,4BAEA,UACE,WACA,+BACA,kBACA,cACA,kBACA,WACA,SACA,2DAGF,aAEE,kBACA,WACA,kBACA,SACA,mBACA,6BAGF,6BACE,6BAGF,iBACE,UACA,UACA,kBACA,WACA,YACA,QACA,iBACA,4BACA,mBACA,sCACA,oBACA,CAGE,yFAKF,SACE,6GAQF,gBACE,oBACA,iBCtsBR,YACE,mBACA,mBACA,kBACA,QACA,SACA,YACA,mBAGF,YACE,kBACA,gBACA,yBACA,0BACA,eACA,iBACA,yBACA,WACA,4BACA,wCAEA,uBCtBF,kB9BGqB,sB8BDnB,kBACA,uCACA,YACA,gBACA,qCAEA,aARF,SASI,kBAGF,cACE,mBACA,gBACA,eACA,kBACA,0BACA,6BAGF,WACE,6BAGF,yBACE,sCAEA,uBACE,uCACA,wBACA,wBAIJ,eACE,kDAIA,oBACE,+BAIJ,cACE,sBAGF,eACE,aAIJ,kB9BnDqB,sB8BqDnB,kBACA,uCACA,YACA,gBACA,qCAEA,YARF,SASI,uBAGF,kBACE,oBAGF,kBACE,YACA,0BACA,gBACA,mBAGF,YACE,gCACA,4BAGF,YACE,iCAGF,aACE,gBACA,qBACA,eACA,aACA,aC3FJ,cAOE,qBACA,W/BPM,gD+BEJ,iBACA,+BAOF,WACE,iBAIJ,sBACE,6BAEA,uBACE,2BACA,4BACA,mB/BjBsB,4B+BqBxB,oBACE,8BACA,+BACA,aACA,qBAIJ,YACE,8BACA,cACA,c/BfmB,c+BiBnB,oBAGF,iBACE,OACA,kBACA,iBACA,gBACA,8BACA,eACA,0BAEA,aACE,6BAIJ,a/BlD0B,mC+BqDxB,aACE,oDAGF,QACE,wBAIJ,iBACE,YACA,OACA,WACA,WACA,yBACA,uBAIA,oBACE,WACA,eACA,yBAGF,iBACE,gBACA,oBAIJ,iBACE,aACA,gBACA,kBACA,gB7B5FM,sB6B8FN,sGAEA,+BAEE,oBAKF,2BACA,gB7BxGM,0B6B2GN,cACE,gBACA,gBACA,oBACA,cACA,WACA,gCACA,W/BnHI,yB+BqHJ,kBACA,4CAEA,QACE,2GAGF,mBAGE,wCAKN,cACE,6CAEA,SACE,kBACA,kBACA,qDAGF,SACE,WACA,kBACA,MACA,OACA,WACA,YACA,sCACA,mBACA,4BAIJ,SACE,kBACA,wBACA,gBACA,MACA,iCAEA,aACE,WACA,gBACA,gBACA,gB7BpKI,mB6ByKR,iBACE,qBACA,YACA,wBAEA,UACE,YACA,wBAIJ,cACE,kBACA,iBACA,c/BlKiB,mD+BqKjB,YACE,qDAGF,eACE,uDAGF,YACE,qBAIJ,YACE,wBC1MF,iBACE,aACA,mBACA,mBhCEwB,WAJlB,kBgCKN,YACA,WACA,gBACA,iBACA,gBACA,4DAEA,aACE,eACA,mFAGF,iBACE,kBACA,gBACA,+FAEA,iBACE,OACA,MACA,kCAIJ,aACE,chCTiB,2BgCanB,cACE,gBACA,iBACA,mBACA,2BAGF,cACE,gBACA,iBACA,gBACA,mBACA,0CAIJ,aACE,kBACA,cACA,mBACA,gCACA,eACA,qBACA,aACA,0BACA,4DAEA,aACE,iBACA,gDAGF,kBhC9DwB,iDgCkExB,kBhC1DmB,WEXb,qG8B0EN,kB9BxEU,WAFJ,oC8BgFR,kBACE,YACA,eACA,iBACA,gBACA,8BAGF,aACE,UACA,kBACA,YACA,gBACA,oCAGF,iBACE,4FAGF,eAEE,mBACA,qCAGF,mCACE,UACE,cACA,0CAGF,YACE,4DAEA,YACE,kBCtHN,U/BEQ,gC+BCN,oBAEA,cACE,iBACA,gBACA,kBACA,mBAGF,U/BVM,0B+BYJ,oBAGF,eACE,cACA,iBACA,mDAGF,UACE,YACA,gBACA,gCACA,gBC3BJ,WACE,gBACA,aACA,sBACA,yBACA,kBACA,+BAEA,gBACE,eACA,CACA,2BACA,kCAGF,QACE,iCAGF,aACE,6BAGF,sBACE,0BAGF,MACE,kBACA,aACA,sBACA,iBACA,mDAGF,eACE,sBhClCI,0BgCoCJ,cACA,gDAGF,iBACE,gDAGF,WACE,mBAIJ,eACE,mBACA,yBACA,gBACA,aACA,sBACA,qBAEA,aACE,sBAGF,aACE,SACA,CACA,4BACA,cACA,qDAHA,sBAOA,qCAIJ,qBAEI,cACE,wBAKN,qBACE,WACA,cACA,6DAEA,UAEE,YACA,UACA,wCAGF,YACE,cACA,kDACA,qCAEA,uCALF,aAMI,yCAIJ,eACE,oCAGF,YACE,uDAGF,cACE,sCAGF,gBACE,eACA,CACA,2BACA,yCAGF,QACE,mCAGF,gBACE,yBAEA,kCAHF,eAII,sCAIJ,sBACE,gBACA,sCAGF,uCACE,YACE,iKAEA,eAGE,6CAIJ,gBACE,2EAGF,YAEE,kGAGF,gBACE,+BAGF,YACE,gBACA,gLAEA,eAIE,gCAIJ,iBACE,6CAEA,cACE,8CAKF,gBACE,CAIA,yFAGF,eACE,0BAMR,cACE,aACA,uBACA,mBACA,gBACA,iBACA,iBACA,gBACA,mBACA,WhCjNM,kBgCmNN,eACA,iBACA,qBACA,sCACA,4FAEA,kBAGE,qCAIJ,UACE,UACE,uDAGF,kCACE,mCAGF,kBAEE,sCAIJ,2CACE,YACE,sCAOA,sEAGF,YACE,uCAIJ,0CACE,YACE,uCAIJ,UACE,YACE,gCC1QJ,oBACE,gBACA,yCAEA,UACE,YACA,gBACA,iCAGF,kBACE,qBACA,4CAEA,eACE,iCAIJ,anCFqB,qBmCInB,uCAEA,yBACE,+CAIA,oBACE,oDAEA,yBACE,gDAKN,aACE,gBAKN,kBACE,eACA,aACA,qBACA,0BAEA,WACE,cACA,qCAEA,yBAJF,YAKI,4BAIJ,wBACE,cACA,kBACA,qCAEA,0BALF,UAMI,uBAIJ,qBACE,WACA,aACA,kBACA,eACA,iBACA,qBACA,gBACA,gBACA,gBACA,aACA,sBACA,6BAEA,aACE,gBACA,mBACA,mBACA,8BAGF,iBACE,SACA,WACA,cACA,mBnCvFoB,kBmCyFpB,cACA,eACA,4BAIJ,YACE,cnCvFgB,kBmCyFhB,WACA,QACA,mDAIJ,YACE,oDAGF,UACE,gBAGF,YACE,eACA,mBACA,gBACA,iBACA,wBACA,sBAEA,aACE,mBACA,SACA,kBACA,WACA,eACA,yBACA,CADA,qBACA,CADA,oBACA,CADA,gBACA,cACA,aACA,mBACA,2BACA,2CACA,6BAEA,aACE,aACA,WACA,YACA,iCAEA,aACE,SACA,WACA,YACA,eACA,gBACA,sBACA,sBACA,CADA,gCACA,CADA,kBACA,6BAIJ,aACE,cACA,eACA,gBACA,kBACA,gBACA,cnCrJc,mFmCyJhB,kBAGE,4BACA,2CACA,wGAEA,aACE,6BAIJ,0BACE,2CACA,yBACA,yDAEA,aACE,uCAKN,UACE,oCAGF,WACE,8BAGF,anCxLkB,SmC0LhB,eACA,WACA,cACA,cACA,YACA,aACA,mBACA,WACA,2BACA,2CACA,2GAEA,SAGE,cACA,4BACA,2CACA,qCAKF,SACE,OCjON,eACE,eACA,8BAEA,QAEE,gBACA,UAGF,kBACE,kBACA,cAGF,iBACE,cACA,mBACA,WACA,aACA,sBAEA,kBpCTiB,eoCcnB,iBACE,aACA,cACA,iBACA,eACA,gBACA,qBAEA,oBACE,qBACA,yBACA,4BACA,oEAGF,YAEE,kCAGF,aACE,gCAIA,qBACA,WACA,eACA,WpCtDE,coCwDF,UACA,oBACA,gBlCzDE,yBkC2DF,kBACA,iBACA,sCAEA,oBpC3DoB,0BoCgEtB,cACE,wBAGF,YACE,mBACA,iBACA,cAIJ,oBACE,kBACA,yBACA,sBACA,WACA,YACA,cACA,kBACA,SACA,kBACA,sBACA,gBACA,mBACA,cACA,uBAEA,iBACE,qBAGF,oBlClGY,8EkCuGZ,oBAGE,iBACA,gCAGF,mBACE,SACA,wCAGF,mBAEE,eAIJ,oBACE,WACA,gBACA,cACA,cAGF,aACE,qBACA,oBAEA,cACE,eAIJ,eACE,mBACA,cpC9Hc,aoCkIhB,cACE,uBACA,UACA,SACA,SACA,cpCvIc,0BoCyId,kBACA,mBAEA,oBACE,sCAGF,qCAEE,eAIJ,WACE,eACA,kBACA,eACA,6BAIJ,4BACE,kBACA,gCAEA,YACE,2CAGF,4BACE,aACA,aACA,mBACA,mGAEA,UAEE,aACA,+GAEA,oBpC3LoB,sDoCiMxB,cACE,gBACA,iBACA,YACA,oBACA,cpCzLkB,sCoC4LlB,gCAGF,YACE,mBACA,8CAEA,aACE,wBACA,iBACA,oCAIJ,uBACE,CADF,oBACE,CADF,eACE,sBACA,eACA,WpC/NI,qBoCiOJ,WACA,UACA,oBACA,qXACA,yBACA,kBACA,CACA,yBACA,mDAGF,aACE,cAIJ,apClOkB,qBoCqOhB,+BACE,6BAEA,6BACE,YCpPN,qBACE,iBANc,cAQd,kBACA,sCAEA,WANF,UAOI,eACA,mBAIJ,sBACE,eACA,gBACA,gBACA,qBACA,crCPkB,oBqCUlB,arCnBwB,0BqCqBtB,6EAEA,oBAGE,wCAIJ,arCrBkB,oBqC0BlB,YACE,oBACA,+BAEA,eACE,yBAIJ,eACE,crClCmB,qBqCsCrB,iBACE,crCvCmB,uBqC2CrB,eACE,mBACA,kBACA,kBACA,yHAGF,sBAME,mBACA,oBACA,gBACA,crC3DmB,qBqC+DrB,aACE,qBAGF,gBACE,qBAGF,eACE,qBAGF,gBACE,yCAGF,aAEE,qBAGF,eACE,qBAGF,kBACE,yCAMA,iBACA,iBACA,yDAEA,2BACE,yDAGF,2BACE,qBAIJ,UACE,SACA,SACA,gCACA,eACA,4BAEA,UACE,SACA,wBAIJ,UACE,yBACA,8BACA,CADA,iBACA,gBACA,mBACA,iEAEA,+BAEE,cACA,kBACA,gBACA,gBACA,crCxIc,iCqC4IhB,uBACE,gBACA,gBACA,crC9IY,qDqCkJd,WAEE,iBACA,kBACA,qBACA,mEAEA,SACE,kBACA,iFAEA,gBACE,kBACA,6EAGF,iBACE,SACA,UACA,mBACA,gBACA,uBACA,+BAMR,YACE,oBAIJ,kBACE,eACA,mCAEA,iBACE,oBACA,8BAGF,YACE,8BACA,eACA,6BAGF,UACE,uBACA,eACA,iBACA,WnCpNI,iBmCsNJ,kBACA,qEAEA,aAEE,6CAIA,arChNiB,oCqCqNnB,sBACE,gBACA,eACA,iBACA,qCAGF,4BA3BF,iBA4BI,4BAIJ,iBACE,YACA,sBACA,mBACA,CACA,sBACA,0BACA,QACA,aACA,yCAEA,sBACE,eACA,iBACA,gBACA,crClPc,mBqCoPd,mBACA,gCACA,uBACA,mBACA,gBACA,wFAEA,eAEE,cACA,2CAGF,oBACE,2BAKN,iBACE,mCAIE,UACqB,sCjCnRzB,CiCoRI,kBACA,uCAEA,aACE,WACA,YACA,mBACA,iBnCpOgB,wBE9DtB,4BACA,iCiCsSE,cACE,mCAEA,aACE,WnC3SA,qBmC6SA,uDAGE,yBACE,2CAKN,aACE,crC1SY,kCqCkTlB,sBAEE,CACA,eACA,eACA,iBACA,mBACA,crCzTgB,sCqC4ThB,arCrUsB,0BqCuUpB,kBAIJ,cACE,SACA,UACA,gBACA,uBACA,oBACA,kBACA,oBACA,cACA,kBAGF,sBACE,eACA,iBACA,gBACA,mBACA,crCjVmB,wBqCoVnB,sBACE,cACA,eACA,gBACA,cACA,kBAKF,cACA,iBrC/VmB,mCqC6VrB,sBACE,CAEA,eACA,mBACA,crClWmB,kBqCuWnB,cACA,iBrCxWmB,kBqCgXnB,crChXmB,mCqC+WrB,sBACE,CACA,gBACA,gBACA,mBACA,crCpXmB,kBqCyXnB,crCzXmB,kBqCiYrB,sBACE,eACA,iBACA,gBACA,mBACA,crCtYmB,mCqC0YrB,gBAEE,mDAEA,2BACE,mDAGF,2BACE,kBAIJ,eACE,kBAGF,kBACE,yCAGF,cAEE,kBAGF,UACE,SACA,SACA,4CACA,cACA,yBAEA,UACE,SACA,iDAIJ,YAEE,+BAGF,kBrCpcmB,kBqCscjB,kBACA,gBACA,sBACA,oCAEA,UACE,aACA,2BACA,iBACA,8BACA,mBACA,uDAGF,YACE,yBACA,qBACA,mFAEA,aACE,eACA,qCAGF,sDAVF,UAWI,8BACA,6CAIJ,MACE,sBACA,qCAEA,2CAJF,YAKI,sBAKN,iBACE,yBAEA,WACE,WACA,uBACA,4BAIJ,iBACE,mBACA,uCAEA,eACE,mCAGF,eACE,cACA,qCAGF,eACE,UACA,mDAEA,kBACE,aACA,iBACA,0FAKE,oBACE,gFAIJ,cACE,qDAIJ,aACE,cACA,6CAMA,UACqB,sCjC9hB3B,mDiCiiBI,cACE,4DAEA,cACE,qCAKN,oCACE,eACE,sCAIJ,2BA9DF,iBA+DI,mFAIJ,qBAGE,mBrC9jBiB,kBqCgkBjB,kCACA,uBAGF,YACE,kBACA,WACA,YACA,2BAEA,YACE,WACA,uCAKF,YACE,eACA,mBACA,mBACA,qCAGF,sCACE,kBACE,uCAIJ,arChlBmB,qCqColBnB,eACE,WnCpmBE,gBmCsmBF,2CAEA,arC3lBc,gDqC8lBZ,arC5lBe,+CqCkmBnB,eACE,qBAIJ,kBACE,yBAEA,aACE,SACA,eACA,YACA,kBACA,qCAIJ,gDAEI,kBACE,yCAGF,eACE,gBACA,WACA,kBACA,uDAEA,iBACE,sCAMR,8BACE,aACE,uCAEA,gBACE,sDAGF,kBACE,6EAIJ,aAEE,qBAIJ,WACE,UAIJ,mBACE,qCAEA,SAHF,eAII,kBAGF,YACE,uBACA,mBACA,aACA,qBAEA,SnC1rBI,YmC4rBF,qCAGF,gBAXF,SAYI,mBACA,sBAIJ,eACE,uBACA,gBACA,gBACA,uBAGF,eACE,gBACA,0BAEA,YACE,yBACA,gBACA,eACA,crCvsBc,6BqC2sBhB,eACE,iBACA,+BAGF,kBrC5tBiB,aqC8tBf,0BACA,aACA,uCAEA,YACE,gCAIJ,cACE,gBACA,uDAEA,YACE,mBACA,iDAGF,UACE,YACA,0BACA,gCAIJ,YACE,uCAEA,sBACE,eACA,gBACA,cACA,qCAGF,cACE,crCtvBY,uFqC4vBlB,eACE,cASA,CrCtwBgB,2CqCmwBhB,iBACA,CACA,kBACA,gBAGF,eACE,cACA,aACA,kDACA,cACA,qCAEA,eAPF,oCAQI,cACA,8BAEA,UACE,aACA,sBACA,0CAEA,OACE,cACA,2CAGF,YACE,mBACA,QACA,cACA,qCAIJ,UACE,2BAGF,eACE,sCAIJ,eAtCF,UAuCI,6BAEA,aACE,gBACA,gBACA,2GAEA,eAGE,uFAIJ,+BAGE,2BAGF,YACE,gCAEA,eACE,qEAEA,eAEE,gBACA,2CAGF,eACE,SAQZ,iBACE,qBACA,iBAGF,aACE,kBACA,aACA,UACA,YACA,crC92BsB,qBqCg3BtB,eACA,qCAEA,gBAVF,eAWI,WACA,gBACA,crC12Bc,SsChBlB,UACE,eACA,iBACA,yBACA,qBAEA,WAEE,iBACA,mBACA,6BACA,gBACA,mBACA,oBAGF,qBACE,gCACA,aACA,gBACA,oBAGF,eACE,qEAGF,kBtCxBmB,UsC6BnB,atC1BwB,0BsC4BtB,gBAEA,oBACE,eAIJ,eACE,CAII,4HADF,eACE,+FAOF,sBAEE,yFAKF,YAEE,gCAMJ,kBtCjEiB,6BsCmEf,gCACA,4CAEA,qBACE,8BACA,2CAGF,uBACE,+BACA,0BAKN,qBACE,gBAIJ,aACE,mBACA,MAGF,+BACE,0BAGF,sBACE,SACA,aACA,8CAGF,oBAEE,qBACA,iBACA,eACA,ctC/FkB,gBsCiGlB,0DAEA,UpChHM,wDoCoHN,eACE,iBACA,sEAGF,cACE,yCAKF,YAEE,yDAEA,qBACE,iBACA,eACA,gBACA,qEAEA,cACE,2EAGF,YACE,mBACA,uFAEA,YACE,qHAOJ,sBACA,cACA,uBAIJ,wBACE,mBtC/JiB,sBsCiKjB,YACA,mBACA,gCAEA,gBACE,mBACA,oBAIJ,YACE,yBACA,aACA,mBtC9KiB,gCsCiLjB,aACE,gBACA,mBAIJ,wBACE,aACA,mBACA,qCAEA,wCACE,4BACE,0BAIJ,kBACE,iCAGF,kBtCtMiB,uCsCyMf,kBACE,4BAIJ,gBACE,oBACA,sCAEA,SACE,wCAGF,YACE,mBACA,mCAGF,aACE,aACA,uBACA,mBACA,kBACA,6CAEA,UACE,YACA,kCAIJ,aACE,mCAGF,aACE,iBACA,ctClOY,gBsCoOZ,mCAIJ,QACE,WACA,qCAEA,sBACE,gBACA,qCAOJ,4FAFF,YAGI,gCAIJ,aACE,sCAEA,eACE,4BAIJ,wBACE,aACA,gBACA,qCAEA,2BALF,4BAMI,sCAIJ,+CACE,YACE,iBCzRN,YACE,uBACA,WACA,iBACA,iCAEA,gBACE,gBACA,oBACA,cACA,wCAEA,YACE,yBACA,mBvCfe,YuCiBf,yBAIJ,WAvBc,UAyBZ,oBACA,iCAEA,YACE,mBACA,YACA,uCAEA,aACE,yCAEA,oBACE,aACA,2CAGF,SrCxCA,YqC0CE,kBACA,YACA,uCAIJ,aACE,cvCpCY,qBuCsCZ,cACA,eACA,aACA,0HAIA,kBAGE,+BAKN,aACE,iBACA,YACA,aACA,qCAGF,sCACE,YACE,6BAIJ,eACE,0BACA,gBACA,mBACA,qCAEA,2BANF,eAOI,+BAGF,aACE,aACA,cvC9EY,qBuCgFZ,0BACA,2CACA,0BACA,mBACA,gBACA,uBACA,mCAEA,gBACE,oCAGF,UrCzGA,yBqC2GE,0BACA,2CACA,uCAGF,kBACE,sBACA,+BAIJ,kBACE,wBACA,SACA,iCAEA,QACE,kBACA,6DAIJ,UrCjIE,yBFWa,gBuCyHb,gBACA,mEAEA,wBACE,6DAKN,yBACE,iCAIJ,qBACE,WACA,gBApJY,cAsJZ,sCAGF,uCACE,YACE,iCAGF,WA/JY,cAiKV,sCAIJ,gCACE,UACE,0BAMF,2BACA,qCAEA,wBALF,cAMI,CACA,sBACA,kCAGF,YACE,oBAEA,gCACA,0BAEA,eAEA,mBACA,8BACA,mCAEA,eACE,kBACA,yCAGF,mBACE,4DAEA,eACE,qCAIJ,gCAzBF,eA0BI,iBACA,6BAIJ,avCrMmB,euCuMjB,iBACA,gBACA,qCAEA,2BANF,eAOI,6BAIJ,avChNmB,euCkNjB,iBACA,gBACA,mBACA,4BAGF,wBACE,eACA,gBACA,cvC7Nc,mBuC+Nd,kBACA,gCACA,4BAGF,cACE,cvCnOiB,iBuCqOjB,gBACA,0CAGF,UrCxPI,gBqC0PF,uFAGF,eAEE,gEAGF,aACE,4CAGF,cACE,gBACA,WrCxQE,oBqC0QF,iBACA,gBACA,mBACA,2BAGF,cACE,iBACA,cvCnQiB,mBuCqQjB,kCAEA,UrCtRE,gBqCwRA,CAII,2NADF,eACE,4BAMR,UACE,SACA,SACA,4CACA,cACA,mCAEA,UACE,SACA,qCAKN,eA9SF,aA+SI,iCAEA,YACE,yBAGF,UACE,UACA,YACA,iCAEA,YACE,4BAGF,YACE,8DAGF,eAEE,gCACA,gBACA,0EAEA,eACE,+BAIJ,eACE,6DAGF,2BvCxUe,YuC+UrB,UACE,SACA,cACA,WACA,sDAKA,avCtVkB,0DuCyVhB,avClWsB,4DuCuWxB,arC1Wc,gBqC4WZ,4DAGF,arC9WU,gBqCgXR,0DAGF,avCvWgB,gBuCyWd,0DAGF,arCtXU,gBqCwXR,UAIJ,YACE,eACA,yBAEA,aACE,qBACA,oCAEA,kBACE,4BAGF,cACE,gBACA,+BAEA,oBACE,iBACA,gCAIJ,eACE,yBACA,eACA,CAII,iNADF,eACE,6CAKN,aACE,mBACA,2BAGF,oBACE,cvC3Zc,qBuC6Zd,yBACA,eACA,gBACA,gCACA,iCAEA,UrChbE,gCqCkbA,oCAGF,avCjboB,gCuCmblB,iBAMR,aACE,iBACA,eACA,sBAGF,aACE,eACA,cACA,wBAEA,aACE,kBAIJ,YACE,eACA,mBACA,wBAGF,YACE,WACA,sBACA,aACA,+BAEA,aACE,qBACA,gBACA,eACA,iBACA,cvC/cmB,CuCodf,4MADF,eACE,sCAKN,aACE,gCAIJ,YAEE,mBACA,kEAEA,UACE,kBACA,4BACA,gFAEA,iBACE,kDAKN,aAEE,aACA,sBACA,4EAEA,cACE,WACA,kBACA,mBACA,uEAIJ,cAEE,iBAGF,YACE,eACA,kBACA,2CAEA,kBACE,eACA,8BAGF,kBACE,+CAGF,gBACE,uDAEA,gBACE,mBACA,YACA,YAKN,kBACE,eACA,cAEA,avCziBwB,qBuC2iBtB,oBAEA,yBACE,SAKN,aACE,YAGF,gBACE,eACA,mBvC5jBmB,gCuC8jBnB,uBAEA,eACE,oBAGF,YACE,2BACA,mBACA,cvC3jBgB,euC6jBhB,eACA,oBAGF,iBACE,4BAEA,aACE,SACA,kBACA,WACA,YACA,qBAIJ,2BACE,mBAGF,oBACE,uBAGF,avCplBgB,sDuCwlBhB,avCvlBqB,qBuC2lBnB,gBACA,yDAIJ,oBAIE,cvCpmBqB,iGuCumBrB,eACE,yIAIA,4BACE,cACA,iIAGF,8BACE,CADF,sBACE,WACA,sBAKN,YAEE,mBACA,sCAEA,aACE,CACA,gBACA,kBACA,0DAIA,8BACE,CADF,sBACE,WACA,gBAKN,kBACE,8BACA,yBAEA,yBrC9pBc,yBqCkqBd,yBACE,wBAGF,yBrCnqBU,wBqCwqBR,2BACA,eACA,iBACA,4BACA,kBACA,gBACA,0BAEA,avCvqBgB,uBuC6qBhB,wBACA,qBAGF,avChrBgB,cuCqrBlB,kBvClsBqB,kBuCosBnB,mBACA,uBAEA,YACE,8BACA,mBACA,aACA,gCAEA,SACE,SACA,gDAEA,aACE,8BAIJ,aACE,gBACA,cvC5sBc,yBuC8sBd,iBACA,gCAEA,aACE,qBACA,iHAEA,aAGE,mCAIJ,arCvuBM,6BqC8uBR,YACE,2BACA,6BACA,mCAEA,kBACE,gFAGF,YAEE,cACA,sBACA,YACA,cvCjvBY,mLuCovBZ,kBAEE,gBACA,uBACA,sCAIJ,aACE,6BACA,4CAEA,avC/vBU,iBuCiwBR,gBACA,wCAIJ,aACE,sBACA,WACA,aACA,qBACA,cvC5wBY,WuCmxBpB,kBAGE,0BAFA,eACA,uBASA,CARA,eAGF,oBACE,gBACA,CAEA,qBACA,oBAGF,YACE,eACA,CACA,kBACA,wBAEA,qBACE,cACA,mBACA,aACA,0FAGF,kBAEE,kBACA,YACA,6CAGF,QACE,SACA,+CAEA,aACE,sEAGF,uBACE,yDAGF,arC70BY,8CqCk1Bd,qBACE,aACA,WrCr1BI,cqC01BR,iBACE,qBAGF,wBACE,kBACA,2BAEA,cACE,mBvCl2BiB,gCuCo2BjB,kCAEA,cACE,cACA,gBACA,eACA,gBACA,cvC71BiB,qBuC+1BjB,mBACA,uHAEA,UrCj3BE,iCqCw3BJ,cACE,cvC32BY,uCuC+2Bd,YACE,8BACA,mBACA,sCAGF,eACE,kkECp4BN,kIACE,CADF,sIACE,uIAYA,aAEE,yIAGF,aAEE,qIAGF,aAEE,6IAGF,aAEE,UChCJ,aACE,gCAEA,gBACE,eACA,mBACA,+BAGF,cACE,iBACA,8CAGF,aACE,kBACA,wBAGF,gBACE,iCAGF,aACE,kBACA,uCAGF,oBACE,gDAGF,SACE,YACA,8BAGF,cACE,iBACA,mEAGF,aACE,kBACA,2DAGF,cAEE,gBACA,mFAGF,cACE,gBACA,+BAGF,eACE,2EAGF,UAEE,mCAGF,aACE,iBACA,yBAGF,kBACE,kBACA,4BAGF,UACE,UACA,wBAGF,aACE,kCAGF,MACE,WACA,cACA,mBACA,2CAGF,aACE,iBACA,0CAGF,gBACE,eACA,mCAGF,WACE,sCAGF,gBACE,gBACA,yCAGF,UACE,iCAGF,aACE,iBACA,+BAGF,UACE,0BAGF,gBACE,eACA,UAGA,WACA,yCAGF,iBACE,mBACA,4GAGF,iBAEE,gBACA,uCAGF,kBACE,eACA,2BAGF,aACE,kBACA,wCAGF,SACE,YACA,yDAGF,SACE,WACA,CAKA,oFAGF,UACE,OACA,uGAGF,UAEE,gBACA,uCAIA,cACE,iBACA,kEAEA,cACE,gBACA,qCAKN,WACE,eACA,iBACA,uCAGF,WACE,sCAGF,aACE,kBACA,0CAGF,gBACE,eACA,uDAGF,gBACE,2CAGF,cACE,iBACA,YACA,yEAGF,aAEE,iBACA,iBAGF,wBACE,iBAGF,SACE,oBACA,yBAGF,aACE,8EAGF,cAEE,gBACA,oDAGF,cACE,mBACA,gEAGF,iBACE,gBACA,CAMA,8KAGF,SACE,QACA,yDAGF,kBACE,eACA,uDAGF,kBACE,gBACA,qDAGF,SACE,QACA,8FAGF,cAEE,mBACA,4CAGF,UACE,SACA,kDAEA,UACE,OACA,kEACA,8BAIJ,sXACE,uCAGF,gBAEE,kCAGF,cACE,iBACA,gDAGF,UACE,UACA,gEAGF,aACE,uDAGF,WACE,WACA,uDAGF,UACE,WACA,uDAGF,UACE,WACA,kDAGF,MACE,0CAGF,iBACE,yBACA,qDAGF,cACE,iBACA,qCAGF,kCACE,gBAEE,kBACA,2DAEA,gBACE,mBACA,uEAKF,gBAEE,kBACA,gFAKN,cAEE,gBACA,6CAKE,eACE,eACA,sDAIJ,aACE,kBACA,4DAKF,cACE,gBACA,8DAGF,gBACE,eACA,mCAIJ,aACE,kBACA,iBACA,kCAGF,WACE,mCAGF,WACE,oCAGF,cACE,gBACA,gFAGF,cACE,mBACA,+DAGF,SACE,QACA,sBChbJ,YACE,eACA,CACA,kBACA,0BAEA,qBACE,iBACA,cACA,mBACA,yDAEA,YAEE,mBACA,kBACA,sBACA,YACA,4BAGF,oBACE,cACA,cACA,qGAEA,kBAGE,sDAKN,iBAEE,gBACA,eACA,iBACA,WxCrCI,uBwCuCJ,mBACA,iBACA,4BAGF,cACE,6BAGF,cACE,c1CpCgB,kB0CsChB,gBACA,qBAIJ,YACE,eACA,cACA,yBAEA,gBACE,mBACA,6BAEA,aACE,sCAIJ,a1CnEwB,gB0CqEtB,qBACA,2GCrEM,SACE,CDoER,iGCrEM,SACE,CDoER,qGCrEM,SACE,CDoER,4FCrEM,SACE,mJAQZ,aAME,0BACA,mMAEA,oBACE,iOAGF,yBACE,CAKE,0zCAIJ,oBAGE,uUAGF,a3C3BqB,qB2C6BnB,oCAIJ,yBACE,6HAEA,oBAGE,4BAIJ,yBACE,qGAEA,oBAGE,eAIJ,a3CvDoB,yE2C2DpB,+BACE,0D","file":"skins/glitch/contrast/common.css","sourcesContent":["html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,em,img,ins,kbd,q,s,samp,small,strike,strong,sub,sup,tt,var,b,u,i,center,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td,article,aside,canvas,details,embed,figure,figcaption,footer,header,hgroup,menu,nav,output,ruby,section,summary,time,mark,audio,video{margin:0;padding:0;border:0;font-size:100%;font:inherit;vertical-align:baseline}article,aside,details,figcaption,figure,footer,header,hgroup,menu,nav,section{display:block}body{line-height:1}ol,ul{list-style:none}blockquote,q{quotes:none}blockquote:before,blockquote:after,q:before,q:after{content:\"\";content:none}table{border-collapse:collapse;border-spacing:0}html{scrollbar-color:#313543 rgba(0,0,0,.1)}::-webkit-scrollbar{width:12px;height:12px}::-webkit-scrollbar-thumb{background:#313543;border:0px none #fff;border-radius:50px}::-webkit-scrollbar-thumb:hover{background:#353a49}::-webkit-scrollbar-thumb:active{background:#313543}::-webkit-scrollbar-track{border:0px none #fff;border-radius:0;background:rgba(0,0,0,.1)}::-webkit-scrollbar-track:hover{background:#282c37}::-webkit-scrollbar-track:active{background:#282c37}::-webkit-scrollbar-corner{background:transparent}body{font-family:sans-serif,sans-serif;background:#191b22;font-size:13px;line-height:18px;font-weight:400;color:#fff;text-rendering:optimizelegibility;font-feature-settings:\"kern\";text-size-adjust:none;-webkit-tap-highlight-color:rgba(0,0,0,0);-webkit-tap-highlight-color:transparent}body.system-font{font-family:system-ui,-apple-system,BlinkMacSystemFont,\"Segoe UI\",\"Oxygen\",\"Ubuntu\",\"Cantarell\",\"Fira Sans\",\"Droid Sans\",\"Helvetica Neue\",sans-serif,sans-serif}body.app-body{padding:0}body.app-body.layout-single-column{height:auto;min-height:100vh;overflow-y:scroll}body.app-body.layout-multiple-columns{position:absolute;width:100%;height:100%}body.app-body.with-modals--active{overflow-y:hidden}body.lighter{background:#282c37}body.with-modals{overflow-x:hidden;overflow-y:scroll}body.with-modals--active{overflow-y:hidden}body.embed{background:#313543;margin:0;padding-bottom:0}body.embed .container{position:absolute;width:100%;height:100%;overflow:hidden}body.admin{background:#1f232b;padding:0}body.error{position:absolute;text-align:center;color:#dde3ec;background:#282c37;width:100%;height:100%;padding:0;display:flex;justify-content:center;align-items:center}body.error .dialog{vertical-align:middle;margin:20px}body.error .dialog img{display:block;max-width:470px;width:100%;height:auto;margin-top:-120px}body.error .dialog h1{font-size:20px;line-height:28px;font-weight:400}button{font-family:inherit;cursor:pointer}button:focus{outline:none}.app-holder,.app-holder>div{display:flex;width:100%;align-items:center;justify-content:center;outline:0 !important}.layout-single-column .app-holder,.layout-single-column .app-holder>div{min-height:100vh}.layout-multiple-columns .app-holder,.layout-multiple-columns .app-holder>div{height:100%}.container-alt{width:700px;margin:0 auto;margin-top:40px}@media screen and (max-width: 740px){.container-alt{width:100%;margin:0}}.logo-container{margin:100px auto 50px}@media screen and (max-width: 500px){.logo-container{margin:40px auto 0}}.logo-container h1{display:flex;justify-content:center;align-items:center}.logo-container h1 svg{fill:#fff;height:42px;margin-right:10px}.logo-container h1 a{display:flex;justify-content:center;align-items:center;color:#fff;text-decoration:none;outline:0;padding:12px 16px;line-height:32px;font-family:sans-serif,sans-serif;font-weight:500;font-size:14px}.compose-standalone .compose-form{width:400px;margin:0 auto;padding:20px 0;margin-top:40px;box-sizing:border-box}@media screen and (max-width: 400px){.compose-standalone .compose-form{width:100%;margin-top:0;padding:20px}}.account-header{width:400px;margin:0 auto;display:flex;font-size:13px;line-height:18px;box-sizing:border-box;padding:20px 0;padding-bottom:0;margin-bottom:-30px;margin-top:40px}@media screen and (max-width: 440px){.account-header{width:100%;margin:0;margin-bottom:10px;padding:20px;padding-bottom:0}}.account-header .avatar{width:40px;height:40px;width:40px;height:40px;background-size:40px 40px;margin-right:8px}.account-header .avatar img{width:100%;height:100%;display:block;margin:0;border-radius:4px;border-radius:8%;background-position:50%;background-clip:padding-box}.account-header .name{flex:1 1 auto;color:#ecf0f4;width:calc(100% - 88px)}.account-header .name .username{display:block;font-weight:500;text-overflow:ellipsis;overflow:hidden}.account-header .logout-link{display:block;font-size:32px;line-height:40px;margin-left:8px}.grid-3{display:grid;grid-gap:10px;grid-template-columns:3fr 1fr;grid-auto-columns:25%;grid-auto-rows:max-content}.grid-3 .column-0{grid-column:1/3;grid-row:1}.grid-3 .column-1{grid-column:1;grid-row:2}.grid-3 .column-2{grid-column:2;grid-row:2}.grid-3 .column-3{grid-column:1/3;grid-row:3}@media screen and (max-width: 415px){.grid-3{grid-gap:0;grid-template-columns:minmax(0, 100%)}.grid-3 .column-0{grid-column:1}.grid-3 .column-1{grid-column:1;grid-row:3}.grid-3 .column-2{grid-column:1;grid-row:2}.grid-3 .column-3{grid-column:1;grid-row:4}}.grid-4{display:grid;grid-gap:10px;grid-template-columns:repeat(4, minmax(0, 1fr));grid-auto-columns:25%;grid-auto-rows:max-content}.grid-4 .column-0{grid-column:1/5;grid-row:1}.grid-4 .column-1{grid-column:1/4;grid-row:2}.grid-4 .column-2{grid-column:4;grid-row:2}.grid-4 .column-3{grid-column:2/5;grid-row:3}.grid-4 .column-4{grid-column:1;grid-row:3}.grid-4 .landing-page__call-to-action{min-height:100%}.grid-4 .flash-message{margin-bottom:10px}@media screen and (max-width: 738px){.grid-4{grid-template-columns:minmax(0, 50%) minmax(0, 50%)}.grid-4 .landing-page__call-to-action{padding:20px;display:flex;align-items:center;justify-content:center}.grid-4 .row__information-board{width:100%;justify-content:center;align-items:center}.grid-4 .row__mascot{display:none}}@media screen and (max-width: 415px){.grid-4{grid-gap:0;grid-template-columns:minmax(0, 100%)}.grid-4 .column-0{grid-column:1}.grid-4 .column-1{grid-column:1;grid-row:3}.grid-4 .column-2{grid-column:1;grid-row:2}.grid-4 .column-3{grid-column:1;grid-row:5}.grid-4 .column-4{grid-column:1;grid-row:4}}@media screen and (max-width: 415px){.public-layout{padding-top:48px}}.public-layout .container{max-width:960px}@media screen and (max-width: 415px){.public-layout .container{padding:0}}.public-layout .header{background:#393f4f;box-shadow:0 0 15px rgba(0,0,0,.2);border-radius:4px;height:48px;margin:10px 0;display:flex;align-items:stretch;justify-content:center;flex-wrap:nowrap;overflow:hidden}@media screen and (max-width: 415px){.public-layout .header{position:fixed;width:100%;top:0;left:0;margin:0;border-radius:0;box-shadow:none;z-index:110}}.public-layout .header>div{flex:1 1 33.3%;min-height:1px}.public-layout .header .nav-left{display:flex;align-items:stretch;justify-content:flex-start;flex-wrap:nowrap}.public-layout .header .nav-center{display:flex;align-items:stretch;justify-content:center;flex-wrap:nowrap}.public-layout .header .nav-right{display:flex;align-items:stretch;justify-content:flex-end;flex-wrap:nowrap}.public-layout .header .brand{display:block;padding:15px}.public-layout .header .brand svg{display:block;height:18px;width:auto;position:relative;bottom:-2px;fill:#fff}@media screen and (max-width: 415px){.public-layout .header .brand svg{height:20px}}.public-layout .header .brand:hover,.public-layout .header .brand:focus,.public-layout .header .brand:active{background:#42485a}.public-layout .header .nav-link{display:flex;align-items:center;padding:0 1rem;font-size:12px;font-weight:500;text-decoration:none;color:#dde3ec;white-space:nowrap;text-align:center}.public-layout .header .nav-link:hover,.public-layout .header .nav-link:focus,.public-layout .header .nav-link:active{text-decoration:underline;color:#fff}@media screen and (max-width: 550px){.public-layout .header .nav-link.optional{display:none}}.public-layout .header .nav-button{background:#4a5266;margin:8px;margin-left:0;border-radius:4px}.public-layout .header .nav-button:hover,.public-layout .header .nav-button:focus,.public-layout .header .nav-button:active{text-decoration:none;background:#535b72}.public-layout .grid{display:grid;grid-gap:10px;grid-template-columns:minmax(300px, 3fr) minmax(298px, 1fr);grid-auto-columns:25%;grid-auto-rows:max-content}.public-layout .grid .column-0{grid-row:1;grid-column:1}.public-layout .grid .column-1{grid-row:1;grid-column:2}@media screen and (max-width: 600px){.public-layout .grid{grid-template-columns:100%;grid-gap:0}.public-layout .grid .column-1{display:none}}.public-layout .directory__card{border-radius:4px}@media screen and (max-width: 415px){.public-layout .directory__card{border-radius:0}}@media screen and (max-width: 415px){.public-layout .page-header{border-bottom:0}}.public-layout .public-account-header{overflow:hidden;margin-bottom:10px;box-shadow:0 0 15px rgba(0,0,0,.2)}.public-layout .public-account-header.inactive{opacity:.5}.public-layout .public-account-header.inactive .public-account-header__image,.public-layout .public-account-header.inactive .avatar{filter:grayscale(100%)}.public-layout .public-account-header.inactive .logo-button{background-color:#ecf0f4}.public-layout .public-account-header__image{border-radius:4px 4px 0 0;overflow:hidden;height:300px;position:relative;background:#0e1014}.public-layout .public-account-header__image::after{content:\"\";display:block;position:absolute;width:100%;height:100%;box-shadow:inset 0 -1px 1px 1px rgba(0,0,0,.15);top:0;left:0}.public-layout .public-account-header__image img{object-fit:cover;display:block;width:100%;height:100%;margin:0;border-radius:4px 4px 0 0}@media screen and (max-width: 600px){.public-layout .public-account-header__image{height:200px}}.public-layout .public-account-header--no-bar{margin-bottom:0}.public-layout .public-account-header--no-bar .public-account-header__image,.public-layout .public-account-header--no-bar .public-account-header__image img{border-radius:4px}@media screen and (max-width: 415px){.public-layout .public-account-header--no-bar .public-account-header__image,.public-layout .public-account-header--no-bar .public-account-header__image img{border-radius:0}}@media screen and (max-width: 415px){.public-layout .public-account-header{margin-bottom:0;box-shadow:none}.public-layout .public-account-header__image::after{display:none}.public-layout .public-account-header__image,.public-layout .public-account-header__image img{border-radius:0}}.public-layout .public-account-header__bar{position:relative;margin-top:-80px;display:flex;justify-content:flex-start}.public-layout .public-account-header__bar::before{content:\"\";display:block;background:#313543;position:absolute;bottom:0;left:0;right:0;height:60px;border-radius:0 0 4px 4px;z-index:-1}.public-layout .public-account-header__bar .avatar{display:block;width:120px;height:120px;width:120px;height:120px;background-size:120px 120px;padding-left:16px;flex:0 0 auto}.public-layout .public-account-header__bar .avatar img{display:block;width:100%;height:100%;margin:0;border-radius:50%;border:4px solid #313543;background:#17191f;border-radius:8%;background-position:50%;background-clip:padding-box}@media screen and (max-width: 600px){.public-layout .public-account-header__bar{margin-top:0;background:#313543;border-radius:0 0 4px 4px;padding:5px}.public-layout .public-account-header__bar::before{display:none}.public-layout .public-account-header__bar .avatar{width:48px;height:48px;width:48px;height:48px;background-size:48px 48px;padding:7px 0;padding-left:10px}.public-layout .public-account-header__bar .avatar img{border:0;border-radius:4px;border-radius:8%;background-position:50%;background-clip:padding-box}}@media screen and (max-width: 600px)and (max-width: 360px){.public-layout .public-account-header__bar .avatar{display:none}}@media screen and (max-width: 415px){.public-layout .public-account-header__bar{border-radius:0}}@media screen and (max-width: 600px){.public-layout .public-account-header__bar{flex-wrap:wrap}}.public-layout .public-account-header__tabs{flex:1 1 auto;margin-left:20px}.public-layout .public-account-header__tabs__name{padding-top:20px;padding-bottom:8px}.public-layout .public-account-header__tabs__name h1{font-size:20px;line-height:27px;color:#fff;font-weight:500;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;text-shadow:1px 1px 1px #000}.public-layout .public-account-header__tabs__name h1 small{display:block;font-size:14px;color:#fff;font-weight:400;overflow:hidden;text-overflow:ellipsis}@media screen and (max-width: 600px){.public-layout .public-account-header__tabs{margin-left:15px;display:flex;justify-content:space-between;align-items:center}.public-layout .public-account-header__tabs__name{padding-top:0;padding-bottom:0}.public-layout .public-account-header__tabs__name h1{font-size:16px;line-height:24px;text-shadow:none}.public-layout .public-account-header__tabs__name h1 small{color:#dde3ec}}.public-layout .public-account-header__tabs__tabs{display:flex;justify-content:flex-start;align-items:stretch;height:58px}.public-layout .public-account-header__tabs__tabs .details-counters{display:flex;flex-direction:row;min-width:300px}@media screen and (max-width: 600px){.public-layout .public-account-header__tabs__tabs .details-counters{display:none}}.public-layout .public-account-header__tabs__tabs .counter{min-width:33.3%;box-sizing:border-box;flex:0 0 auto;color:#dde3ec;padding:10px;border-right:1px solid #313543;cursor:default;text-align:center;position:relative}.public-layout .public-account-header__tabs__tabs .counter a{display:block}.public-layout .public-account-header__tabs__tabs .counter:last-child{border-right:0}.public-layout .public-account-header__tabs__tabs .counter::after{display:block;content:\"\";position:absolute;bottom:0;left:0;width:100%;border-bottom:4px solid #9baec8;opacity:.5;transition:all 400ms ease}.public-layout .public-account-header__tabs__tabs .counter.active::after{border-bottom:4px solid #2b90d9;opacity:1}.public-layout .public-account-header__tabs__tabs .counter.active.inactive::after{border-bottom-color:#ecf0f4}.public-layout .public-account-header__tabs__tabs .counter:hover::after{opacity:1;transition-duration:100ms}.public-layout .public-account-header__tabs__tabs .counter a{text-decoration:none;color:inherit}.public-layout .public-account-header__tabs__tabs .counter .counter-label{font-size:12px;display:block}.public-layout .public-account-header__tabs__tabs .counter .counter-number{font-weight:500;font-size:18px;margin-bottom:5px;color:#fff;font-family:sans-serif,sans-serif}.public-layout .public-account-header__tabs__tabs .spacer{flex:1 1 auto;height:1px}.public-layout .public-account-header__tabs__tabs__buttons{padding:7px 8px}.public-layout .public-account-header__extra{display:none;margin-top:4px}.public-layout .public-account-header__extra .public-account-bio{border-radius:0;box-shadow:none;background:transparent;margin:0 -5px}.public-layout .public-account-header__extra .public-account-bio .account__header__fields{border-top:1px solid #42485a}.public-layout .public-account-header__extra .public-account-bio .roles{display:none}.public-layout .public-account-header__extra__links{margin-top:-15px;font-size:14px;color:#dde3ec}.public-layout .public-account-header__extra__links a{display:inline-block;color:#dde3ec;text-decoration:none;padding:15px;font-weight:500}.public-layout .public-account-header__extra__links a strong{font-weight:700;color:#fff}@media screen and (max-width: 600px){.public-layout .public-account-header__extra{display:block;flex:100%}}.public-layout .account__section-headline{border-radius:4px 4px 0 0}@media screen and (max-width: 415px){.public-layout .account__section-headline{border-radius:0}}.public-layout .detailed-status__meta{margin-top:25px}.public-layout .public-account-bio{background:#393f4f;box-shadow:0 0 15px rgba(0,0,0,.2);border-radius:4px;overflow:hidden;margin-bottom:10px}@media screen and (max-width: 415px){.public-layout .public-account-bio{box-shadow:none;margin-bottom:0;border-radius:0}}.public-layout .public-account-bio .account__header__fields{margin:0;border-top:0}.public-layout .public-account-bio .account__header__fields a{color:#4e79df}.public-layout .public-account-bio .account__header__fields dl:first-child .verified{border-radius:0 4px 0 0}.public-layout .public-account-bio .account__header__fields .verified a{color:#79bd9a}.public-layout .public-account-bio .account__header__content{padding:20px;padding-bottom:0;color:#fff}.public-layout .public-account-bio__extra,.public-layout .public-account-bio .roles{padding:20px;font-size:14px;color:#dde3ec}.public-layout .public-account-bio .roles{padding-bottom:0}.public-layout .directory__list{display:grid;grid-gap:10px;grid-template-columns:minmax(0, 50%) minmax(0, 50%)}@media screen and (max-width: 415px){.public-layout .directory__list{display:block}}.public-layout .directory__list .icon-button{font-size:18px}.public-layout .directory__card{margin-bottom:0}.public-layout .card-grid{display:flex;flex-wrap:wrap;min-width:100%;margin:0 -5px}.public-layout .card-grid>div{box-sizing:border-box;flex:1 0 auto;width:300px;padding:0 5px;margin-bottom:10px;max-width:33.333%}@media screen and (max-width: 900px){.public-layout .card-grid>div{max-width:50%}}@media screen and (max-width: 600px){.public-layout .card-grid>div{max-width:100%}}@media screen and (max-width: 415px){.public-layout .card-grid{margin:0;border-top:1px solid #393f4f}.public-layout .card-grid>div{width:100%;padding:0;margin-bottom:0;border-bottom:1px solid #393f4f}.public-layout .card-grid>div:last-child{border-bottom:0}.public-layout .card-grid>div .card__bar{background:#282c37}.public-layout .card-grid>div .card__bar:hover,.public-layout .card-grid>div .card__bar:active,.public-layout .card-grid>div .card__bar:focus{background:#313543}}.no-list{list-style:none}.no-list li{display:inline-block;margin:0 5px}.recovery-codes{list-style:none;margin:0 auto}.recovery-codes li{font-size:125%;line-height:1.5;letter-spacing:1px}.modal-layout{background:#282c37 url('data:image/svg+xml;utf8,') repeat-x bottom fixed;display:flex;flex-direction:column;height:100vh;padding:0}.modal-layout__mastodon{display:flex;flex:1;flex-direction:column;justify-content:flex-end}.modal-layout__mastodon>*{flex:1;max-height:235px}@media screen and (max-width: 600px){.account-header{margin-top:0}}.public-layout .footer{text-align:left;padding-top:20px;padding-bottom:60px;font-size:12px;color:#737d99}@media screen and (max-width: 415px){.public-layout .footer{padding-left:20px;padding-right:20px}}.public-layout .footer .grid{display:grid;grid-gap:10px;grid-template-columns:1fr 1fr 2fr 1fr 1fr}.public-layout .footer .grid .column-0{grid-column:1;grid-row:1;min-width:0}.public-layout .footer .grid .column-1{grid-column:2;grid-row:1;min-width:0}.public-layout .footer .grid .column-2{grid-column:3;grid-row:1;min-width:0;text-align:center}.public-layout .footer .grid .column-2 h4 a{color:#737d99}.public-layout .footer .grid .column-3{grid-column:4;grid-row:1;min-width:0}.public-layout .footer .grid .column-4{grid-column:5;grid-row:1;min-width:0}@media screen and (max-width: 690px){.public-layout .footer .grid{grid-template-columns:1fr 2fr 1fr}.public-layout .footer .grid .column-0,.public-layout .footer .grid .column-1{grid-column:1}.public-layout .footer .grid .column-1{grid-row:2}.public-layout .footer .grid .column-2{grid-column:2}.public-layout .footer .grid .column-3,.public-layout .footer .grid .column-4{grid-column:3}.public-layout .footer .grid .column-4{grid-row:2}}@media screen and (max-width: 600px){.public-layout .footer .grid .column-1{display:block}}@media screen and (max-width: 415px){.public-layout .footer .grid .column-0,.public-layout .footer .grid .column-1,.public-layout .footer .grid .column-3,.public-layout .footer .grid .column-4{display:none}}.public-layout .footer h4{text-transform:uppercase;font-weight:700;margin-bottom:8px;color:#dde3ec}.public-layout .footer h4 a{color:inherit;text-decoration:none}.public-layout .footer ul a{text-decoration:none;color:#737d99}.public-layout .footer ul a:hover,.public-layout .footer ul a:active,.public-layout .footer ul a:focus{text-decoration:underline}.public-layout .footer .brand svg{display:block;height:36px;width:auto;margin:0 auto;fill:#737d99}.public-layout .footer .brand:hover svg,.public-layout .footer .brand:focus svg,.public-layout .footer .brand:active svg{fill:#7f88a2}.compact-header h1{font-size:24px;line-height:28px;color:#dde3ec;font-weight:500;margin-bottom:20px;padding:0 10px;word-wrap:break-word}@media screen and (max-width: 740px){.compact-header h1{text-align:center;padding:20px 10px 0}}.compact-header h1 a{color:inherit;text-decoration:none}.compact-header h1 small{font-weight:400;color:#ecf0f4}.compact-header h1 img{display:inline-block;margin-bottom:-5px;margin-right:15px;width:36px;height:36px}.hero-widget{margin-bottom:10px;box-shadow:0 0 15px rgba(0,0,0,.2)}.hero-widget__img{width:100%;position:relative;overflow:hidden;border-radius:4px 4px 0 0;background:#000}.hero-widget__img img{object-fit:cover;display:block;width:100%;height:100%;margin:0;border-radius:4px 4px 0 0}.hero-widget__text{background:#282c37;padding:20px;border-radius:0 0 4px 4px;font-size:15px;color:#dde3ec;line-height:20px;word-wrap:break-word;font-weight:400}.hero-widget__text .emojione{width:20px;height:20px;margin:-3px 0 0}.hero-widget__text p{margin-bottom:20px}.hero-widget__text p:last-child{margin-bottom:0}.hero-widget__text em{display:inline;margin:0;padding:0;font-weight:700;background:transparent;font-family:inherit;font-size:inherit;line-height:inherit;color:#fefefe}.hero-widget__text a{color:#ecf0f4;text-decoration:none}.hero-widget__text a:hover{text-decoration:underline}@media screen and (max-width: 415px){.hero-widget{display:none}}.endorsements-widget{margin-bottom:10px;padding-bottom:10px}.endorsements-widget h4{padding:10px;text-transform:uppercase;font-weight:700;font-size:13px;color:#dde3ec}.endorsements-widget .account{padding:10px 0}.endorsements-widget .account:last-child{border-bottom:0}.endorsements-widget .account .account__display-name{display:flex;align-items:center}.endorsements-widget .account .account__avatar{width:44px;height:44px;background-size:44px 44px}.endorsements-widget .trends__item{padding:10px}.trends-widget h4{color:#dde3ec}.box-widget{padding:20px;border-radius:4px;background:#282c37;box-shadow:0 0 15px rgba(0,0,0,.2)}.placeholder-widget{padding:16px;border-radius:4px;border:2px dashed #c2cede;text-align:center;color:#dde3ec;margin-bottom:10px}.contact-widget{min-height:100%;font-size:15px;color:#dde3ec;line-height:20px;word-wrap:break-word;font-weight:400;padding:0}.contact-widget h4{padding:10px;text-transform:uppercase;font-weight:700;font-size:13px;color:#dde3ec}.contact-widget .account{border-bottom:0;padding:10px 0;padding-top:5px}.contact-widget>a{display:inline-block;padding:10px;padding-top:0;color:#dde3ec;text-decoration:none;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.contact-widget>a:hover,.contact-widget>a:focus,.contact-widget>a:active{text-decoration:underline}.moved-account-widget{padding:15px;padding-bottom:20px;border-radius:4px;background:#282c37;box-shadow:0 0 15px rgba(0,0,0,.2);color:#ecf0f4;font-weight:400;margin-bottom:10px}.moved-account-widget strong,.moved-account-widget a{font-weight:500}.moved-account-widget strong:lang(ja),.moved-account-widget a:lang(ja){font-weight:700}.moved-account-widget strong:lang(ko),.moved-account-widget a:lang(ko){font-weight:700}.moved-account-widget strong:lang(zh-CN),.moved-account-widget a:lang(zh-CN){font-weight:700}.moved-account-widget strong:lang(zh-HK),.moved-account-widget a:lang(zh-HK){font-weight:700}.moved-account-widget strong:lang(zh-TW),.moved-account-widget a:lang(zh-TW){font-weight:700}.moved-account-widget a{color:inherit;text-decoration:underline}.moved-account-widget a.mention{text-decoration:none}.moved-account-widget a.mention span{text-decoration:none}.moved-account-widget a.mention:focus,.moved-account-widget a.mention:hover,.moved-account-widget a.mention:active{text-decoration:none}.moved-account-widget a.mention:focus span,.moved-account-widget a.mention:hover span,.moved-account-widget a.mention:active span{text-decoration:underline}.moved-account-widget__message{margin-bottom:15px}.moved-account-widget__message .fa{margin-right:5px;color:#dde3ec}.moved-account-widget__card .detailed-status__display-avatar{position:relative;cursor:pointer}.moved-account-widget__card .detailed-status__display-name{margin-bottom:0;text-decoration:none}.moved-account-widget__card .detailed-status__display-name span{font-weight:400}.memoriam-widget{padding:20px;border-radius:4px;background:#000;box-shadow:0 0 15px rgba(0,0,0,.2);font-size:14px;color:#dde3ec;margin-bottom:10px}.page-header{background:#393f4f;box-shadow:0 0 15px rgba(0,0,0,.2);border-radius:4px;padding:60px 15px;text-align:center;margin:10px 0}.page-header h1{color:#fff;font-size:36px;line-height:1.1;font-weight:700;margin-bottom:10px}.page-header p{font-size:15px;color:#dde3ec}@media screen and (max-width: 415px){.page-header{margin-top:0;background:#313543}.page-header h1{font-size:24px}}.directory{background:#282c37;border-radius:4px;box-shadow:0 0 15px rgba(0,0,0,.2)}.directory__tag{box-sizing:border-box;margin-bottom:10px}.directory__tag>a,.directory__tag>div{display:flex;align-items:center;justify-content:space-between;background:#282c37;border-radius:4px;padding:15px;text-decoration:none;color:inherit;box-shadow:0 0 15px rgba(0,0,0,.2)}.directory__tag>a:hover,.directory__tag>a:active,.directory__tag>a:focus{background:#393f4f}.directory__tag.active>a{background:#2b5fd9;cursor:default}.directory__tag.disabled>div{opacity:.5;cursor:default}.directory__tag h4{flex:1 1 auto;font-size:18px;font-weight:700;color:#fff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.directory__tag h4 .fa{color:#dde3ec}.directory__tag h4 small{display:block;font-weight:400;font-size:15px;margin-top:8px;color:#dde3ec}.directory__tag.active h4,.directory__tag.active h4 .fa,.directory__tag.active h4 small{color:#fff}.directory__tag .avatar-stack{flex:0 0 auto;width:120px}.directory__tag.active .avatar-stack .account__avatar{border-color:#2b5fd9}.avatar-stack{display:flex;justify-content:flex-end}.avatar-stack .account__avatar{flex:0 0 auto;width:36px;height:36px;border-radius:50%;position:relative;margin-left:-10px;background:#17191f;border:2px solid #282c37}.avatar-stack .account__avatar:nth-child(1){z-index:1}.avatar-stack .account__avatar:nth-child(2){z-index:2}.avatar-stack .account__avatar:nth-child(3){z-index:3}.accounts-table{width:100%}.accounts-table .account{padding:0;border:0}.accounts-table strong{font-weight:700}.accounts-table thead th{text-align:center;text-transform:uppercase;color:#dde3ec;font-weight:700;padding:10px}.accounts-table thead th:first-child{text-align:left}.accounts-table tbody td{padding:15px 0;vertical-align:middle;border-bottom:1px solid #393f4f}.accounts-table tbody tr:last-child td{border-bottom:0}.accounts-table__count{width:120px;text-align:center;font-size:15px;font-weight:500;color:#fff}.accounts-table__count small{display:block;color:#dde3ec;font-weight:400;font-size:14px}.accounts-table__comment{width:50%;vertical-align:initial !important}@media screen and (max-width: 415px){.accounts-table tbody td.optional{display:none}}@media screen and (max-width: 415px){.moved-account-widget,.memoriam-widget,.box-widget,.contact-widget,.landing-page__information.contact-widget,.directory,.page-header{margin-bottom:0;box-shadow:none;border-radius:0}}.statuses-grid{min-height:600px}@media screen and (max-width: 640px){.statuses-grid{width:100% !important}}.statuses-grid__item{width:313.3333333333px}@media screen and (max-width: 1255px){.statuses-grid__item{width:306.6666666667px}}@media screen and (max-width: 640px){.statuses-grid__item{width:100%}}@media screen and (max-width: 415px){.statuses-grid__item{width:100vw}}.statuses-grid .detailed-status{border-radius:4px}@media screen and (max-width: 415px){.statuses-grid .detailed-status{border-top:1px solid #4a5266}}.statuses-grid .detailed-status.compact .detailed-status__meta{margin-top:15px}.statuses-grid .detailed-status.compact .status__content{font-size:15px;line-height:20px}.statuses-grid .detailed-status.compact .status__content .emojione{width:20px;height:20px;margin:-3px 0 0}.statuses-grid .detailed-status.compact .status__content .status__content__spoiler-link{line-height:20px;margin:0}.statuses-grid .detailed-status.compact .media-gallery,.statuses-grid .detailed-status.compact .status-card,.statuses-grid .detailed-status.compact .video-player{margin-top:15px}.notice-widget{margin-bottom:10px;color:#dde3ec}.notice-widget p{margin-bottom:10px}.notice-widget p:last-child{margin-bottom:0}.notice-widget a{font-size:14px;line-height:20px}.notice-widget a,.placeholder-widget a{text-decoration:none;font-weight:500;color:#2b5fd9}.notice-widget a:hover,.notice-widget a:focus,.notice-widget a:active,.placeholder-widget a:hover,.placeholder-widget a:focus,.placeholder-widget a:active{text-decoration:underline}.table-of-contents{background:#1f232b;min-height:100%;font-size:14px;border-radius:4px}.table-of-contents li a{display:block;font-weight:500;padding:15px;overflow:hidden;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-decoration:none;color:#fff;border-bottom:1px solid #313543}.table-of-contents li a:hover,.table-of-contents li a:focus,.table-of-contents li a:active{text-decoration:underline}.table-of-contents li:last-child a{border-bottom:0}.table-of-contents li ul{padding-left:20px;border-bottom:1px solid #313543}code{font-family:monospace,monospace;font-weight:400}.form-container{max-width:400px;padding:20px;margin:0 auto}.simple_form .input{margin-bottom:15px;overflow:hidden}.simple_form .input.hidden{margin:0}.simple_form .input.radio_buttons .radio{margin-bottom:15px}.simple_form .input.radio_buttons .radio:last-child{margin-bottom:0}.simple_form .input.radio_buttons .radio>label{position:relative;padding-left:28px}.simple_form .input.radio_buttons .radio>label input{position:absolute;top:-2px;left:0}.simple_form .input.boolean{position:relative;margin-bottom:0}.simple_form .input.boolean .label_input>label{font-family:inherit;font-size:14px;padding-top:5px;color:#fff;display:block;width:auto}.simple_form .input.boolean .label_input,.simple_form .input.boolean .hint{padding-left:28px}.simple_form .input.boolean .label_input__wrapper{position:static}.simple_form .input.boolean label.checkbox{position:absolute;top:2px;left:0}.simple_form .input.boolean label a{color:#2b90d9;text-decoration:underline}.simple_form .input.boolean label a:hover,.simple_form .input.boolean label a:active,.simple_form .input.boolean label a:focus{text-decoration:none}.simple_form .input.boolean .recommended{position:absolute;margin:0 4px;margin-top:-2px}.simple_form .row{display:flex;margin:0 -5px}.simple_form .row .input{box-sizing:border-box;flex:1 1 auto;width:50%;padding:0 5px}.simple_form .hint{color:#dde3ec}.simple_form .hint a{color:#2b90d9}.simple_form .hint code{border-radius:3px;padding:.2em .4em;background:#0e1014}.simple_form span.hint{display:block;font-size:12px;margin-top:4px}.simple_form p.hint{margin-bottom:15px;color:#dde3ec}.simple_form p.hint.subtle-hint{text-align:center;font-size:12px;line-height:18px;margin-top:15px;margin-bottom:0}.simple_form .card{margin-bottom:15px}.simple_form strong{font-weight:500}.simple_form strong:lang(ja){font-weight:700}.simple_form strong:lang(ko){font-weight:700}.simple_form strong:lang(zh-CN){font-weight:700}.simple_form strong:lang(zh-HK){font-weight:700}.simple_form strong:lang(zh-TW){font-weight:700}.simple_form .input.with_floating_label .label_input{display:flex}.simple_form .input.with_floating_label .label_input>label{font-family:inherit;font-size:14px;color:#fff;font-weight:500;min-width:150px;flex:0 0 auto}.simple_form .input.with_floating_label .label_input input,.simple_form .input.with_floating_label .label_input select{flex:1 1 auto}.simple_form .input.with_floating_label.select .hint{margin-top:6px;margin-left:150px}.simple_form .input.with_label .label_input>label{font-family:inherit;font-size:14px;color:#fff;display:block;margin-bottom:8px;word-wrap:break-word;font-weight:500}.simple_form .input.with_label .hint{margin-top:6px}.simple_form .input.with_label ul{flex:390px}.simple_form .input.with_block_label{max-width:none}.simple_form .input.with_block_label>label{font-family:inherit;font-size:16px;color:#fff;display:block;font-weight:500;padding-top:5px}.simple_form .input.with_block_label .hint{margin-bottom:15px}.simple_form .input.with_block_label ul{columns:2}.simple_form .input.datetime .label_input select{display:inline-block;width:auto;flex:0}.simple_form .required abbr{text-decoration:none;color:#e87487}.simple_form .fields-group{margin-bottom:25px}.simple_form .fields-group .input:last-child{margin-bottom:0}.simple_form .fields-row{display:flex;margin:0 -10px;padding-top:5px;margin-bottom:25px}.simple_form .fields-row .input{max-width:none}.simple_form .fields-row__column{box-sizing:border-box;padding:0 10px;flex:1 1 auto;min-height:1px}.simple_form .fields-row__column-6{max-width:50%}.simple_form .fields-row__column .actions{margin-top:27px}.simple_form .fields-row .fields-group:last-child,.simple_form .fields-row .fields-row__column.fields-group{margin-bottom:0}@media screen and (max-width: 600px){.simple_form .fields-row{display:block;margin-bottom:0}.simple_form .fields-row__column{max-width:none}.simple_form .fields-row .fields-group:last-child,.simple_form .fields-row .fields-row__column.fields-group,.simple_form .fields-row .fields-row__column{margin-bottom:25px}}.simple_form .input.radio_buttons .radio label{margin-bottom:5px;font-family:inherit;font-size:14px;color:#fff;display:block;width:auto}.simple_form .check_boxes .checkbox label{font-family:inherit;font-size:14px;color:#fff;display:inline-block;width:auto;position:relative;padding-top:5px;padding-left:25px;flex:1 1 auto}.simple_form .check_boxes .checkbox input[type=checkbox]{position:absolute;left:0;top:5px;margin:0}.simple_form .input.static .label_input__wrapper{font-size:16px;padding:10px;border:1px solid #c2cede;border-radius:4px}.simple_form input[type=text],.simple_form input[type=number],.simple_form input[type=email],.simple_form input[type=password],.simple_form textarea{box-sizing:border-box;font-size:16px;color:#fff;display:block;width:100%;outline:0;font-family:inherit;resize:vertical;background:#131419;border:1px solid #0a0b0e;border-radius:4px;padding:10px}.simple_form input[type=text]::placeholder,.simple_form input[type=number]::placeholder,.simple_form input[type=email]::placeholder,.simple_form input[type=password]::placeholder,.simple_form textarea::placeholder{color:#eaeef3}.simple_form input[type=text]:invalid,.simple_form input[type=number]:invalid,.simple_form input[type=email]:invalid,.simple_form input[type=password]:invalid,.simple_form textarea:invalid{box-shadow:none}.simple_form input[type=text]:focus:invalid:not(:placeholder-shown),.simple_form input[type=number]:focus:invalid:not(:placeholder-shown),.simple_form input[type=email]:focus:invalid:not(:placeholder-shown),.simple_form input[type=password]:focus:invalid:not(:placeholder-shown),.simple_form textarea:focus:invalid:not(:placeholder-shown){border-color:#e87487}.simple_form input[type=text]:required:valid,.simple_form input[type=number]:required:valid,.simple_form input[type=email]:required:valid,.simple_form input[type=password]:required:valid,.simple_form textarea:required:valid{border-color:#79bd9a}.simple_form input[type=text]:hover,.simple_form input[type=number]:hover,.simple_form input[type=email]:hover,.simple_form input[type=password]:hover,.simple_form textarea:hover{border-color:#000}.simple_form input[type=text]:active,.simple_form input[type=text]:focus,.simple_form input[type=number]:active,.simple_form input[type=number]:focus,.simple_form input[type=email]:active,.simple_form input[type=email]:focus,.simple_form input[type=password]:active,.simple_form input[type=password]:focus,.simple_form textarea:active,.simple_form textarea:focus{border-color:#2b90d9;background:#17191f}.simple_form .input.field_with_errors label{color:#e87487}.simple_form .input.field_with_errors input[type=text],.simple_form .input.field_with_errors input[type=number],.simple_form .input.field_with_errors input[type=email],.simple_form .input.field_with_errors input[type=password],.simple_form .input.field_with_errors textarea,.simple_form .input.field_with_errors select{border-color:#e87487}.simple_form .input.field_with_errors .error{display:block;font-weight:500;color:#e87487;margin-top:4px}.simple_form .input.disabled{opacity:.5}.simple_form .actions{margin-top:30px;display:flex}.simple_form .actions.actions--top{margin-top:0;margin-bottom:30px}.simple_form button,.simple_form .button,.simple_form .block-button{display:block;width:100%;border:0;border-radius:4px;background:#2b5fd9;color:#fff;font-size:18px;line-height:inherit;height:auto;padding:10px;text-transform:uppercase;text-decoration:none;text-align:center;box-sizing:border-box;cursor:pointer;font-weight:500;outline:0;margin-bottom:10px;margin-right:10px}.simple_form button:last-child,.simple_form .button:last-child,.simple_form .block-button:last-child{margin-right:0}.simple_form button:hover,.simple_form .button:hover,.simple_form .block-button:hover{background-color:#416fdd}.simple_form button:active,.simple_form button:focus,.simple_form .button:active,.simple_form .button:focus,.simple_form .block-button:active,.simple_form .block-button:focus{background-color:#2454c7}.simple_form button:disabled:hover,.simple_form .button:disabled:hover,.simple_form .block-button:disabled:hover{background-color:#9baec8}.simple_form button.negative,.simple_form .button.negative,.simple_form .block-button.negative{background:#df405a}.simple_form button.negative:hover,.simple_form .button.negative:hover,.simple_form .block-button.negative:hover{background-color:#e3566d}.simple_form button.negative:active,.simple_form button.negative:focus,.simple_form .button.negative:active,.simple_form .button.negative:focus,.simple_form .block-button.negative:active,.simple_form .block-button.negative:focus{background-color:#db2a47}.simple_form select{appearance:none;box-sizing:border-box;font-size:16px;color:#fff;display:block;width:100%;outline:0;font-family:inherit;resize:vertical;background:#131419 url(\"data:image/svg+xml;utf8,\") no-repeat right 8px center/auto 16px;border:1px solid #0a0b0e;border-radius:4px;padding-left:10px;padding-right:30px;height:41px}.simple_form h4{margin-bottom:15px !important}.simple_form .label_input__wrapper{position:relative}.simple_form .label_input__append{position:absolute;right:3px;top:1px;padding:10px;padding-bottom:9px;font-size:16px;color:#c2cede;font-family:inherit;pointer-events:none;cursor:default;max-width:140px;white-space:nowrap;overflow:hidden}.simple_form .label_input__append::after{content:\"\";display:block;position:absolute;top:0;right:0;bottom:1px;width:5px;background-image:linear-gradient(to right, rgba(19, 20, 25, 0), #131419)}.simple_form__overlay-area{position:relative}.simple_form__overlay-area__blurred form{filter:blur(2px)}.simple_form__overlay-area__overlay{position:absolute;top:0;left:0;width:100%;height:100%;display:flex;justify-content:center;align-items:center;background:rgba(40,44,55,.65);border-radius:4px;margin-left:-4px;margin-top:-4px;padding:4px}.simple_form__overlay-area__overlay__content{text-align:center}.simple_form__overlay-area__overlay__content.rich-formatting,.simple_form__overlay-area__overlay__content.rich-formatting p{color:#fff}.block-icon{display:block;margin:0 auto;margin-bottom:10px;font-size:24px}.flash-message{background:#393f4f;color:#dde3ec;border-radius:4px;padding:15px 10px;margin-bottom:30px;text-align:center}.flash-message.notice{border:1px solid rgba(121,189,154,.5);background:rgba(121,189,154,.25);color:#79bd9a}.flash-message.alert{border:1px solid rgba(223,64,90,.5);background:rgba(223,64,90,.25);color:#df405a}.flash-message a{display:inline-block;color:#dde3ec;text-decoration:none}.flash-message a:hover{color:#fff;text-decoration:underline}.flash-message p{margin-bottom:15px}.flash-message .oauth-code{outline:0;box-sizing:border-box;display:block;width:100%;border:none;padding:10px;font-family:monospace,monospace;background:#282c37;color:#fff;font-size:14px;margin:0}.flash-message .oauth-code::-moz-focus-inner{border:0}.flash-message .oauth-code::-moz-focus-inner,.flash-message .oauth-code:focus,.flash-message .oauth-code:active{outline:0 !important}.flash-message .oauth-code:focus{background:#313543}.flash-message strong{font-weight:500}.flash-message strong:lang(ja){font-weight:700}.flash-message strong:lang(ko){font-weight:700}.flash-message strong:lang(zh-CN){font-weight:700}.flash-message strong:lang(zh-HK){font-weight:700}.flash-message strong:lang(zh-TW){font-weight:700}@media screen and (max-width: 740px)and (min-width: 441px){.flash-message{margin-top:40px}}.form-footer{margin-top:30px;text-align:center}.form-footer a{color:#dde3ec;text-decoration:none}.form-footer a:hover{text-decoration:underline}.quick-nav{list-style:none;margin-bottom:25px;font-size:14px}.quick-nav li{display:inline-block;margin-right:10px}.quick-nav a{color:#2b90d9;text-transform:uppercase;text-decoration:none;font-weight:700}.quick-nav a:hover,.quick-nav a:focus,.quick-nav a:active{color:#4ea2df}.oauth-prompt,.follow-prompt{margin-bottom:30px;color:#dde3ec}.oauth-prompt h2,.follow-prompt h2{font-size:16px;margin-bottom:30px;text-align:center}.oauth-prompt strong,.follow-prompt strong{color:#ecf0f4;font-weight:500}.oauth-prompt strong:lang(ja),.follow-prompt strong:lang(ja){font-weight:700}.oauth-prompt strong:lang(ko),.follow-prompt strong:lang(ko){font-weight:700}.oauth-prompt strong:lang(zh-CN),.follow-prompt strong:lang(zh-CN){font-weight:700}.oauth-prompt strong:lang(zh-HK),.follow-prompt strong:lang(zh-HK){font-weight:700}.oauth-prompt strong:lang(zh-TW),.follow-prompt strong:lang(zh-TW){font-weight:700}@media screen and (max-width: 740px)and (min-width: 441px){.oauth-prompt,.follow-prompt{margin-top:40px}}.qr-wrapper{display:flex;flex-wrap:wrap;align-items:flex-start}.qr-code{flex:0 0 auto;background:#fff;padding:4px;margin:0 10px 20px 0;box-shadow:0 0 15px rgba(0,0,0,.2);display:inline-block}.qr-code svg{display:block;margin:0}.qr-alternative{margin-bottom:20px;color:#ecf0f4;flex:150px}.qr-alternative samp{display:block;font-size:14px}.table-form p{margin-bottom:15px}.table-form p strong{font-weight:500}.table-form p strong:lang(ja){font-weight:700}.table-form p strong:lang(ko){font-weight:700}.table-form p strong:lang(zh-CN){font-weight:700}.table-form p strong:lang(zh-HK){font-weight:700}.table-form p strong:lang(zh-TW){font-weight:700}.simple_form .warning,.table-form .warning{box-sizing:border-box;background:rgba(223,64,90,.5);color:#fff;text-shadow:1px 1px 0 rgba(0,0,0,.3);box-shadow:0 2px 6px rgba(0,0,0,.4);border-radius:4px;padding:10px;margin-bottom:15px}.simple_form .warning a,.table-form .warning a{color:#fff;text-decoration:underline}.simple_form .warning a:hover,.simple_form .warning a:focus,.simple_form .warning a:active,.table-form .warning a:hover,.table-form .warning a:focus,.table-form .warning a:active{text-decoration:none}.simple_form .warning strong,.table-form .warning strong{font-weight:600;display:block;margin-bottom:5px}.simple_form .warning strong:lang(ja),.table-form .warning strong:lang(ja){font-weight:700}.simple_form .warning strong:lang(ko),.table-form .warning strong:lang(ko){font-weight:700}.simple_form .warning strong:lang(zh-CN),.table-form .warning strong:lang(zh-CN){font-weight:700}.simple_form .warning strong:lang(zh-HK),.table-form .warning strong:lang(zh-HK){font-weight:700}.simple_form .warning strong:lang(zh-TW),.table-form .warning strong:lang(zh-TW){font-weight:700}.simple_form .warning strong .fa,.table-form .warning strong .fa{font-weight:400}.action-pagination{display:flex;flex-wrap:wrap;align-items:center}.action-pagination .actions,.action-pagination .pagination{flex:1 1 auto}.action-pagination .actions{padding:30px 0;padding-right:20px;flex:0 0 auto}.post-follow-actions{text-align:center;color:#dde3ec}.post-follow-actions div{margin-bottom:4px}.alternative-login{margin-top:20px;margin-bottom:20px}.alternative-login h4{font-size:16px;color:#fff;text-align:center;margin-bottom:20px;border:0;padding:0}.alternative-login .button{display:block}.scope-danger{color:#ff5050}.form_admin_settings_site_short_description textarea,.form_admin_settings_site_description textarea,.form_admin_settings_site_extended_description textarea,.form_admin_settings_site_terms textarea,.form_admin_settings_custom_css textarea,.form_admin_settings_closed_registrations_message textarea{font-family:monospace,monospace}.input-copy{background:#131419;border:1px solid #0a0b0e;border-radius:4px;display:flex;align-items:center;padding-right:4px;position:relative;top:1px;transition:border-color 300ms linear}.input-copy__wrapper{flex:1 1 auto}.input-copy input[type=text]{background:transparent;border:0;padding:10px;font-size:14px;font-family:monospace,monospace}.input-copy button{flex:0 0 auto;margin:4px;text-transform:none;font-weight:400;font-size:14px;padding:7px 18px;padding-bottom:6px;width:auto;transition:background 300ms linear}.input-copy.copied{border-color:#79bd9a;transition:none}.input-copy.copied button{background:#79bd9a;transition:none}.connection-prompt{margin-bottom:25px}.connection-prompt .fa-link{background-color:#1f232b;border-radius:100%;font-size:24px;padding:10px}.connection-prompt__column{align-items:center;display:flex;flex:1;flex-direction:column;flex-shrink:1;max-width:50%}.connection-prompt__column-sep{align-self:center;flex-grow:0;overflow:visible;position:relative;z-index:1}.connection-prompt__column p{word-break:break-word}.connection-prompt .account__avatar{margin-bottom:20px}.connection-prompt__connection{background-color:#393f4f;box-shadow:0 0 15px rgba(0,0,0,.2);border-radius:4px;padding:25px 10px;position:relative;text-align:center}.connection-prompt__connection::after{background-color:#1f232b;content:\"\";display:block;height:100%;left:50%;position:absolute;top:0;width:1px}.connection-prompt__row{align-items:flex-start;display:flex;flex-direction:row}.card>a{display:block;text-decoration:none;color:inherit;box-shadow:0 0 15px rgba(0,0,0,.2)}@media screen and (max-width: 415px){.card>a{box-shadow:none}}.card>a:hover .card__bar,.card>a:active .card__bar,.card>a:focus .card__bar{background:#393f4f}.card__img{height:130px;position:relative;background:#0e1014;border-radius:4px 4px 0 0}.card__img img{display:block;width:100%;height:100%;margin:0;object-fit:cover;border-radius:4px 4px 0 0}@media screen and (max-width: 600px){.card__img{height:200px}}@media screen and (max-width: 415px){.card__img{display:none}}.card__bar{position:relative;padding:15px;display:flex;justify-content:flex-start;align-items:center;background:#313543;border-radius:0 0 4px 4px}@media screen and (max-width: 415px){.card__bar{border-radius:0}}.card__bar .avatar{flex:0 0 auto;width:48px;height:48px;width:48px;height:48px;background-size:48px 48px;padding-top:2px}.card__bar .avatar img{width:100%;height:100%;display:block;margin:0;border-radius:4px;border-radius:8%;background-position:50%;background-clip:padding-box;background:#17191f;object-fit:cover}.card__bar .display-name{margin-left:15px;text-align:left}.card__bar .display-name strong{font-size:15px;color:#fff;font-weight:500;overflow:hidden;text-overflow:ellipsis}.card__bar .display-name span{display:block;font-size:14px;color:#dde3ec;font-weight:400;overflow:hidden;text-overflow:ellipsis}.pagination{padding:30px 0;text-align:center;overflow:hidden}.pagination a,.pagination .current,.pagination .newer,.pagination .older,.pagination .page,.pagination .gap{font-size:14px;color:#fff;font-weight:500;display:inline-block;padding:6px 10px;text-decoration:none}.pagination .current{background:#fff;border-radius:100px;color:#000;cursor:default;margin:0 10px}.pagination .gap{cursor:default}.pagination .older,.pagination .newer{text-transform:uppercase;color:#ecf0f4}.pagination .older{float:left;padding-left:0}.pagination .older .fa{display:inline-block;margin-right:5px}.pagination .newer{float:right;padding-right:0}.pagination .newer .fa{display:inline-block;margin-left:5px}.pagination .disabled{cursor:default;color:#1a1a1a}@media screen and (max-width: 700px){.pagination{padding:30px 20px}.pagination .page{display:none}.pagination .newer,.pagination .older{display:inline-block}}.nothing-here{background:#282c37;box-shadow:0 0 15px rgba(0,0,0,.2);color:#364861;font-size:14px;font-weight:500;text-align:center;display:flex;justify-content:center;align-items:center;cursor:default;border-radius:4px;padding:20px;min-height:30vh}.nothing-here--under-tabs{border-radius:0 0 4px 4px}.nothing-here--flexible{box-sizing:border-box;min-height:100%}.account-role,.simple_form .recommended{display:inline-block;padding:4px 6px;cursor:default;border-radius:3px;font-size:12px;line-height:12px;font-weight:500;color:#d9e1e8;background-color:rgba(217,225,232,.1);border:1px solid rgba(217,225,232,.5)}.account-role.moderator,.simple_form .recommended.moderator{color:#79bd9a;background-color:rgba(121,189,154,.1);border-color:rgba(121,189,154,.5)}.account-role.admin,.simple_form .recommended.admin{color:#e87487;background-color:rgba(232,116,135,.1);border-color:rgba(232,116,135,.5)}.account__header__fields{max-width:100vw;padding:0;margin:15px -15px -15px;border:0 none;border-top:1px solid #42485a;border-bottom:1px solid #42485a;font-size:14px;line-height:20px}.account__header__fields dl{display:flex;border-bottom:1px solid #42485a}.account__header__fields dt,.account__header__fields dd{box-sizing:border-box;padding:14px;text-align:center;max-height:48px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.account__header__fields dt{font-weight:500;width:120px;flex:0 0 auto;color:#ecf0f4;background:rgba(23,25,31,.5)}.account__header__fields dd{flex:1 1 auto;color:#dde3ec}.account__header__fields a{color:#2b90d9;text-decoration:none}.account__header__fields a:hover,.account__header__fields a:focus,.account__header__fields a:active{text-decoration:underline}.account__header__fields .verified{border:1px solid rgba(121,189,154,.5);background:rgba(121,189,154,.25)}.account__header__fields .verified a{color:#79bd9a;font-weight:500}.account__header__fields .verified__mark{color:#79bd9a}.account__header__fields dl:last-child{border-bottom:0}.directory__tag .trends__item__current{width:auto}.pending-account__header{color:#dde3ec}.pending-account__header a{color:#d9e1e8;text-decoration:none}.pending-account__header a:hover,.pending-account__header a:active,.pending-account__header a:focus{text-decoration:underline}.pending-account__header strong{color:#fff;font-weight:700}.pending-account__body{margin-top:10px}.activity-stream{box-shadow:0 0 15px rgba(0,0,0,.2);border-radius:4px;overflow:hidden;margin-bottom:10px}@media screen and (max-width: 415px){.activity-stream{margin-bottom:0;border-radius:0;box-shadow:none}}.activity-stream--headless{border-radius:0;margin:0;box-shadow:none}.activity-stream--headless .detailed-status,.activity-stream--headless .status{border-radius:0 !important}.activity-stream div[data-component]{width:100%}.activity-stream .entry{background:#282c37}.activity-stream .entry .detailed-status,.activity-stream .entry .status,.activity-stream .entry .load-more{animation:none}.activity-stream .entry:last-child .detailed-status,.activity-stream .entry:last-child .status,.activity-stream .entry:last-child .load-more{border-bottom:0;border-radius:0 0 4px 4px}.activity-stream .entry:first-child .detailed-status,.activity-stream .entry:first-child .status,.activity-stream .entry:first-child .load-more{border-radius:4px 4px 0 0}.activity-stream .entry:first-child:last-child .detailed-status,.activity-stream .entry:first-child:last-child .status,.activity-stream .entry:first-child:last-child .load-more{border-radius:4px}@media screen and (max-width: 740px){.activity-stream .entry .detailed-status,.activity-stream .entry .status,.activity-stream .entry .load-more{border-radius:0 !important}}.activity-stream--highlighted .entry{background:#393f4f}.button.logo-button{flex:0 auto;font-size:14px;background:#2b5fd9;color:#fff;text-transform:none;line-height:36px;height:auto;padding:3px 15px;border:0}.button.logo-button svg{width:20px;height:auto;vertical-align:middle;margin-right:5px;fill:#fff}.button.logo-button:active,.button.logo-button:focus,.button.logo-button:hover{background:#5680e1}.button.logo-button:disabled:active,.button.logo-button:disabled:focus,.button.logo-button:disabled:hover,.button.logo-button.disabled:active,.button.logo-button.disabled:focus,.button.logo-button.disabled:hover{background:#9baec8}.button.logo-button.button--destructive:active,.button.logo-button.button--destructive:focus,.button.logo-button.button--destructive:hover{background:#df405a}@media screen and (max-width: 415px){.button.logo-button svg{display:none}}.embed .detailed-status,.public-layout .detailed-status{padding:15px}.embed .status,.public-layout .status{padding:15px 15px 15px 78px;min-height:50px}.embed .status__avatar,.public-layout .status__avatar{left:15px;top:17px}.embed .status__content,.public-layout .status__content{padding-top:5px}.embed .status__prepend,.public-layout .status__prepend{padding:8px 0;padding-bottom:2px;margin:initial;margin-left:78px;padding-top:15px}.embed .status__prepend-icon-wrapper,.public-layout .status__prepend-icon-wrapper{position:absolute;margin:initial;float:initial;width:auto;left:-32px}.embed .status .media-gallery,.embed .status__action-bar,.embed .status .video-player,.public-layout .status .media-gallery,.public-layout .status__action-bar,.public-layout .status .video-player{margin-top:10px}.embed .status .status__info,.public-layout .status .status__info{font-size:15px;display:initial}.embed .status .status__relative-time,.public-layout .status .status__relative-time{color:#c2cede;float:right;font-size:14px;width:auto;margin:initial;padding:initial}.embed .status .status__info .status__display-name,.public-layout .status .status__info .status__display-name{display:block;max-width:100%;padding:6px 0;padding-right:25px;margin:initial}.embed .status .status__info .status__display-name .display-name strong,.public-layout .status .status__info .status__display-name .display-name strong{display:inline}.embed .status .status__avatar,.public-layout .status .status__avatar{height:48px;position:absolute;width:48px;margin:initial}.rtl .embed .status,.rtl .public-layout .status{padding-left:10px;padding-right:68px}.rtl .embed .status .status__info .status__display-name,.rtl .public-layout .status .status__info .status__display-name{padding-left:25px;padding-right:0}.rtl .embed .status .status__relative-time,.rtl .public-layout .status .status__relative-time{float:left}.status__content__read-more-button{display:block;font-size:15px;line-height:20px;color:#4e79df;border:0;background:transparent;padding:0;padding-top:8px;text-decoration:none}.status__content__read-more-button:hover,.status__content__read-more-button:active{text-decoration:underline}.app-body{-webkit-overflow-scrolling:touch;-ms-overflow-style:-ms-autohiding-scrollbar}.animated-number{display:inline-flex;flex-direction:column;align-items:stretch;overflow:hidden;position:relative}.link-button{display:block;font-size:15px;line-height:20px;color:#2b5fd9;border:0;background:transparent;padding:0;cursor:pointer}.link-button:hover,.link-button:active{text-decoration:underline}.link-button:disabled{color:#9baec8;cursor:default}.button{background-color:#2558d0;border:10px none;border-radius:4px;box-sizing:border-box;color:#fff;cursor:pointer;display:inline-block;font-family:inherit;font-size:14px;font-weight:500;height:36px;letter-spacing:0;line-height:36px;overflow:hidden;padding:0 16px;position:relative;text-align:center;text-transform:uppercase;text-decoration:none;text-overflow:ellipsis;transition:all 100ms ease-in;transition-property:background-color;white-space:nowrap;width:auto}.button:active,.button:focus,.button:hover{background-color:#4976de;transition:all 200ms ease-out;transition-property:background-color}.button--destructive{transition:none}.button--destructive:active,.button--destructive:focus,.button--destructive:hover{background-color:#df405a;transition:none}.button:disabled{background-color:#9baec8;cursor:default}.button.button-primary,.button.button-alternative,.button.button-secondary,.button.button-alternative-2{font-size:16px;line-height:36px;height:auto;text-transform:none;padding:4px 16px}.button.button-alternative{color:#000;background:#9baec8}.button.button-alternative:active,.button.button-alternative:focus,.button.button-alternative:hover{background-color:#a8b9cf}.button.button-alternative-2{background:#606984}.button.button-alternative-2:active,.button.button-alternative-2:focus,.button.button-alternative-2:hover{background-color:#687390}.button.button-secondary{font-size:16px;line-height:36px;height:auto;color:#dde3ec;text-transform:none;background:transparent;padding:3px 15px;border-radius:4px;border:1px solid #9baec8}.button.button-secondary:active,.button.button-secondary:focus,.button.button-secondary:hover{border-color:#a8b9cf;color:#eaeef3}.button.button-secondary:disabled{opacity:.5}.button.button--block{display:block;width:100%}.icon-button{display:inline-block;padding:0;color:#8d9ac2;border:0;border-radius:4px;background:transparent;cursor:pointer;transition:all 100ms ease-in;transition-property:background-color,color}.icon-button:hover,.icon-button:active,.icon-button:focus{color:#a4afce;background-color:rgba(141,154,194,.15);transition:all 200ms ease-out;transition-property:background-color,color}.icon-button:focus{background-color:rgba(141,154,194,.3)}.icon-button.disabled{color:#6274ab;background-color:transparent;cursor:default}.icon-button.active{color:#2b90d9}.icon-button::-moz-focus-inner{border:0}.icon-button::-moz-focus-inner,.icon-button:focus,.icon-button:active{outline:0 !important}.icon-button.inverted{color:#1b1e25}.icon-button.inverted:hover,.icon-button.inverted:active,.icon-button.inverted:focus{color:#0c0d11;background-color:rgba(27,30,37,.15)}.icon-button.inverted:focus{background-color:rgba(27,30,37,.3)}.icon-button.inverted.disabled{color:#2a2e3a;background-color:transparent}.icon-button.inverted.active{color:#2b90d9}.icon-button.inverted.active.disabled{color:#63ade3}.icon-button.overlayed{box-sizing:content-box;background:rgba(0,0,0,.6);color:rgba(255,255,255,.7);border-radius:4px;padding:2px}.icon-button.overlayed:hover{background:rgba(0,0,0,.9)}.text-icon-button{color:#1b1e25;border:0;border-radius:4px;background:transparent;cursor:pointer;font-weight:600;font-size:11px;padding:0 3px;line-height:27px;outline:0;transition:all 100ms ease-in;transition-property:background-color,color}.text-icon-button:hover,.text-icon-button:active,.text-icon-button:focus{color:#0c0d11;background-color:rgba(27,30,37,.15);transition:all 200ms ease-out;transition-property:background-color,color}.text-icon-button:focus{background-color:rgba(27,30,37,.3)}.text-icon-button.disabled{color:#464d60;background-color:transparent;cursor:default}.text-icon-button.active{color:#2b90d9}.text-icon-button::-moz-focus-inner{border:0}.text-icon-button::-moz-focus-inner,.text-icon-button:focus,.text-icon-button:active{outline:0 !important}.dropdown-menu{position:absolute;transform-origin:50% 0}.invisible{font-size:0;line-height:0;display:inline-block;width:0;height:0;position:absolute}.invisible img,.invisible svg{margin:0 !important;border:0 !important;padding:0 !important;width:0 !important;height:0 !important}.ellipsis::after{content:\"…\"}.notification__favourite-icon-wrapper{left:0;position:absolute}.notification__favourite-icon-wrapper .fa.star-icon{color:#ca8f04}.star-icon.active{color:#ca8f04}.bookmark-icon.active{color:#ff5050}.no-reduce-motion .icon-button.star-icon.activate>.fa-star{animation:spring-rotate-in 1s linear}.no-reduce-motion .icon-button.star-icon.deactivate>.fa-star{animation:spring-rotate-out 1s linear}.notification__display-name{color:inherit;font-weight:500;text-decoration:none}.notification__display-name:hover{color:#fff;text-decoration:underline}.display-name{display:block;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.display-name a{color:inherit;text-decoration:inherit}.display-name strong{height:18px;font-size:16px;font-weight:500;line-height:18px;text-overflow:ellipsis;overflow:hidden;white-space:nowrap}.display-name span{display:block;height:18px;font-size:15px;line-height:18px;text-overflow:ellipsis;overflow:hidden;white-space:nowrap}.display-name>a:hover strong{text-decoration:underline}.display-name.inline{padding:0;height:18px;font-size:15px;line-height:18px;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.display-name.inline strong{display:inline;height:auto;font-size:inherit;line-height:inherit}.display-name.inline span{display:inline;height:auto;font-size:inherit;line-height:inherit}.display-name__html{font-weight:500}.display-name__account{font-size:14px}.image-loader{position:relative;width:100%;height:100%;display:flex;align-items:center;justify-content:center;flex-direction:column}.image-loader .image-loader__preview-canvas{max-width:100%;max-height:80%;background:url(\"~images/void.png\") repeat;object-fit:contain}.image-loader .loading-bar{position:relative}.image-loader.image-loader--amorphous .image-loader__preview-canvas{display:none}.zoomable-image{position:relative;width:100%;height:100%;display:flex;align-items:center;justify-content:center}.zoomable-image img{max-width:100%;max-height:80%;width:auto;height:auto;object-fit:contain}.dropdown{display:inline-block}.dropdown__content{display:none;position:absolute}.dropdown-menu__separator{border-bottom:1px solid #c0cdd9;margin:5px 7px 6px;height:0}.dropdown-menu{background:#d9e1e8;padding:4px 0;border-radius:4px;box-shadow:2px 4px 15px rgba(0,0,0,.4)}.dropdown-menu ul{list-style:none}.dropdown-menu__arrow{position:absolute;width:0;height:0;border:0 solid transparent}.dropdown-menu__arrow.left{right:-5px;margin-top:-5px;border-width:5px 0 5px 5px;border-left-color:#d9e1e8}.dropdown-menu__arrow.top{bottom:-5px;margin-left:-7px;border-width:5px 7px 0;border-top-color:#d9e1e8}.dropdown-menu__arrow.bottom{top:-5px;margin-left:-7px;border-width:0 7px 5px;border-bottom-color:#d9e1e8}.dropdown-menu__arrow.right{left:-5px;margin-top:-5px;border-width:5px 5px 5px 0;border-right-color:#d9e1e8}.dropdown-menu__item a{font-size:13px;line-height:18px;display:block;padding:4px 14px;box-sizing:border-box;text-decoration:none;background:#d9e1e8;color:#000;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dropdown-menu__item a:focus,.dropdown-menu__item a:hover,.dropdown-menu__item a:active{background:#2b5fd9;color:#ecf0f4;outline:0}.dropdown--active .dropdown__content{display:block;line-height:18px;max-width:311px;right:0;text-align:left;z-index:9999}.dropdown--active .dropdown__content>ul{list-style:none;background:#d9e1e8;padding:4px 0;border-radius:4px;box-shadow:0 0 15px rgba(0,0,0,.4);min-width:140px;position:relative}.dropdown--active .dropdown__content.dropdown__right{right:0}.dropdown--active .dropdown__content.dropdown__left>ul{left:-98px}.dropdown--active .dropdown__content>ul>li>a{font-size:13px;line-height:18px;display:block;padding:4px 14px;box-sizing:border-box;text-decoration:none;background:#d9e1e8;color:#000;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dropdown--active .dropdown__content>ul>li>a:focus{outline:0}.dropdown--active .dropdown__content>ul>li>a:hover{background:#2b5fd9;color:#ecf0f4}.dropdown__icon{vertical-align:middle}.static-content{padding:10px;padding-top:20px;color:#c2cede}.static-content h1{font-size:16px;font-weight:500;margin-bottom:40px;text-align:center}.static-content p{font-size:13px;margin-bottom:20px}.column,.drawer{flex:1 1 100%;overflow:hidden}@media screen and (min-width: 631px){.columns-area{padding:0}.column,.drawer{flex:0 0 auto;padding:10px;padding-left:5px;padding-right:5px}.column:first-child,.drawer:first-child{padding-left:10px}.column:last-child,.drawer:last-child{padding-right:10px}.columns-area>div .column,.columns-area>div .drawer{padding-left:5px;padding-right:5px}}.tabs-bar{box-sizing:border-box;display:flex;background:#393f4f;flex:0 0 auto;overflow-y:auto}.tabs-bar__link{display:block;flex:1 1 auto;padding:15px 10px;padding-bottom:13px;color:#fff;text-decoration:none;text-align:center;font-size:14px;font-weight:500;border-bottom:2px solid #393f4f;transition:all 50ms linear;transition-property:border-bottom,background,color}.tabs-bar__link .fa{font-weight:400;font-size:16px}@media screen and (min-width: 631px){.auto-columns .tabs-bar__link:hover,.auto-columns .tabs-bar__link:focus,.auto-columns .tabs-bar__link:active{background:#464d60;border-bottom-color:#464d60}}.multi-columns .tabs-bar__link:hover,.multi-columns .tabs-bar__link:focus,.multi-columns .tabs-bar__link:active{background:#464d60;border-bottom-color:#464d60}.tabs-bar__link.active{border-bottom:2px solid #2b5fd9;color:#2b90d9}.tabs-bar__link span{margin-left:5px;display:none}.tabs-bar__link span.icon{margin-left:0;display:inline}.icon-with-badge{position:relative}.icon-with-badge__badge{position:absolute;left:9px;top:-13px;background:#2b5fd9;border:2px solid #393f4f;padding:1px 6px;border-radius:6px;font-size:10px;font-weight:500;line-height:14px;color:#fff}.column-link--transparent .icon-with-badge__badge{border-color:#17191f}.scrollable{overflow-y:scroll;overflow-x:hidden;flex:1 1 auto;-webkit-overflow-scrolling:touch}.scrollable.optionally-scrollable{overflow-y:auto}@supports(display: grid){.scrollable{contain:strict}}.scrollable--flex{display:flex;flex-direction:column}.scrollable__append{flex:1 1 auto;position:relative;min-height:120px}@supports(display: grid){.scrollable.fullscreen{contain:none}}.react-toggle{display:inline-block;position:relative;cursor:pointer;background-color:transparent;border:0;padding:0;user-select:none;-webkit-tap-highlight-color:rgba(0,0,0,0);-webkit-tap-highlight-color:transparent}.react-toggle-screenreader-only{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.react-toggle--disabled{cursor:not-allowed;opacity:.5;transition:opacity .25s}.react-toggle-track{width:50px;height:24px;padding:0;border-radius:30px;background-color:#282c37;transition:background-color .2s ease}.react-toggle:hover:not(.react-toggle--disabled) .react-toggle-track{background-color:#131419}.react-toggle--checked .react-toggle-track{background-color:#2b5fd9}.react-toggle--checked:hover:not(.react-toggle--disabled) .react-toggle-track{background-color:#5680e1}.react-toggle-track-check{position:absolute;width:14px;height:10px;top:0;bottom:0;margin-top:auto;margin-bottom:auto;line-height:0;left:8px;opacity:0;transition:opacity .25s ease}.react-toggle--checked .react-toggle-track-check{opacity:1;transition:opacity .25s ease}.react-toggle-track-x{position:absolute;width:10px;height:10px;top:0;bottom:0;margin-top:auto;margin-bottom:auto;line-height:0;right:10px;opacity:1;transition:opacity .25s ease}.react-toggle--checked .react-toggle-track-x{opacity:0}.react-toggle-thumb{position:absolute;top:1px;left:1px;width:22px;height:22px;border:1px solid #282c37;border-radius:50%;background-color:#fafafa;box-sizing:border-box;transition:all .25s ease;transition-property:border-color,left}.react-toggle--checked .react-toggle-thumb{left:27px;border-color:#2b5fd9}.getting-started__wrapper,.getting_started,.flex-spacer{background:#282c37}.getting-started__wrapper{position:relative;overflow-y:auto}.flex-spacer{flex:1 1 auto}.getting-started{background:#282c37;flex:1 0 auto}.getting-started p{color:#ecf0f4}.getting-started a{color:#c2cede}.getting-started__panel{height:min-content}.getting-started__panel,.getting-started__footer{padding:10px;padding-top:20px;flex:0 1 auto}.getting-started__panel ul,.getting-started__footer ul{margin-bottom:10px}.getting-started__panel ul li,.getting-started__footer ul li{display:inline}.getting-started__panel p,.getting-started__footer p{color:#c2cede;font-size:13px}.getting-started__panel p a,.getting-started__footer p a{color:#c2cede;text-decoration:underline}.getting-started__panel a,.getting-started__footer a{text-decoration:none;color:#dde3ec}.getting-started__panel a:hover,.getting-started__panel a:focus,.getting-started__panel a:active,.getting-started__footer a:hover,.getting-started__footer a:focus,.getting-started__footer a:active{text-decoration:underline}.getting-started__trends{flex:0 1 auto;opacity:1;animation:fade 150ms linear;margin-top:10px}.getting-started__trends h4{font-size:12px;text-transform:uppercase;color:#dde3ec;padding:10px;font-weight:500;border-bottom:1px solid #393f4f}@media screen and (max-height: 810px){.getting-started__trends .trends__item:nth-child(3){display:none}}@media screen and (max-height: 720px){.getting-started__trends .trends__item:nth-child(2){display:none}}@media screen and (max-height: 670px){.getting-started__trends{display:none}}.getting-started__trends .trends__item{border-bottom:0;padding:10px}.getting-started__trends .trends__item__current{color:#dde3ec}.column-link__badge{display:inline-block;border-radius:4px;font-size:12px;line-height:19px;font-weight:500;background:#282c37;padding:4px 8px;margin:-6px 10px}.keyboard-shortcuts{padding:8px 0 0;overflow:hidden}.keyboard-shortcuts thead{position:absolute;left:-9999px}.keyboard-shortcuts td{padding:0 10px 8px}.keyboard-shortcuts kbd{display:inline-block;padding:3px 5px;background-color:#393f4f;border:1px solid #1f232b}.setting-text{color:#dde3ec;background:transparent;border:none;border-bottom:2px solid #9baec8;box-sizing:border-box;display:block;font-family:inherit;margin-bottom:10px;padding:7px 0;width:100%}.setting-text:focus,.setting-text:active{color:#fff;border-bottom-color:#2b5fd9}@media screen and (max-width: 600px){.auto-columns .setting-text,.single-column .setting-text{font-size:16px}}.setting-text.light{color:#000;border-bottom:2px solid #626c87}.setting-text.light:focus,.setting-text.light:active{color:#000;border-bottom-color:#2b5fd9}.no-reduce-motion button.icon-button i.fa-retweet{background-position:0 0;height:19px;transition:background-position .9s steps(10);transition-duration:0s;vertical-align:middle;width:22px}.no-reduce-motion button.icon-button i.fa-retweet::before{display:none !important}.no-reduce-motion button.icon-button.active i.fa-retweet{transition-duration:.9s;background-position:0 100%}.reduce-motion button.icon-button i.fa-retweet{color:#8d9ac2;transition:color 100ms ease-in}.reduce-motion button.icon-button.active i.fa-retweet{color:#2b90d9}.reduce-motion button.icon-button.disabled i.fa-retweet{color:#6274ab}.load-more{display:block;color:#c2cede;background-color:transparent;border:0;font-size:inherit;text-align:center;line-height:inherit;margin:0;padding:15px;box-sizing:border-box;width:100%;clear:both;text-decoration:none}.load-more:hover{background:#2c313d}.load-gap{border-bottom:1px solid #393f4f}.missing-indicator{padding-top:68px}.scrollable>div>:first-child .notification__dismiss-overlay>.wrappy{border-top:1px solid #282c37}.notification__dismiss-overlay{overflow:hidden;position:absolute;top:0;right:0;bottom:-1px;padding-left:15px;z-index:999;align-items:center;justify-content:flex-end;cursor:pointer;display:flex}.notification__dismiss-overlay .wrappy{width:4rem;align-self:stretch;display:flex;flex-direction:column;align-items:center;justify-content:center;background:#393f4f;border-left:1px solid #535b72;box-shadow:0 0 5px #000;border-bottom:1px solid #282c37}.notification__dismiss-overlay .ckbox{border:2px solid #9baec8;border-radius:2px;width:30px;height:30px;font-size:20px;color:#dde3ec;text-shadow:0 0 5px #000;display:flex;justify-content:center;align-items:center}.notification__dismiss-overlay:focus{outline:0 !important}.notification__dismiss-overlay:focus .ckbox{box-shadow:0 0 1px 1px #2b5fd9}.text-btn{display:inline-block;padding:0;font-family:inherit;font-size:inherit;color:inherit;border:0;background:transparent;cursor:pointer}.loading-indicator{color:#c2cede;font-size:12px;font-weight:400;text-transform:uppercase;overflow:visible;position:absolute;top:50%;left:50%;transform:translate(-50%, -50%)}.loading-indicator span{display:block;float:left;margin-left:50%;transform:translateX(-50%);margin:82px 0 0 50%;white-space:nowrap}.loading-indicator__figure{position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);width:42px;height:42px;box-sizing:border-box;background-color:transparent;border:0 solid #606984;border-width:6px;border-radius:50%}.no-reduce-motion .loading-indicator span{animation:loader-label 1.15s infinite cubic-bezier(0.215, 0.61, 0.355, 1)}.no-reduce-motion .loading-indicator__figure{animation:loader-figure 1.15s infinite cubic-bezier(0.215, 0.61, 0.355, 1)}@keyframes spring-rotate-in{0%{transform:rotate(0deg)}30%{transform:rotate(-484.8deg)}60%{transform:rotate(-316.7deg)}90%{transform:rotate(-375deg)}100%{transform:rotate(-360deg)}}@keyframes spring-rotate-out{0%{transform:rotate(-360deg)}30%{transform:rotate(124.8deg)}60%{transform:rotate(-43.27deg)}90%{transform:rotate(15deg)}100%{transform:rotate(0deg)}}@keyframes loader-figure{0%{width:0;height:0;background-color:#606984}29%{background-color:#606984}30%{width:42px;height:42px;background-color:transparent;border-width:21px;opacity:1}100%{width:42px;height:42px;border-width:0;opacity:0;background-color:transparent}}@keyframes loader-label{0%{opacity:.25}30%{opacity:1}100%{opacity:.25}}.spoiler-button{top:0;left:0;width:100%;height:100%;position:absolute;z-index:100}.spoiler-button--minified{display:flex;left:4px;top:4px;width:auto;height:auto;align-items:center}.spoiler-button--click-thru{pointer-events:none}.spoiler-button--hidden{display:none}.spoiler-button__overlay{display:block;background:transparent;width:100%;height:100%;border:0}.spoiler-button__overlay__label{display:inline-block;background:rgba(0,0,0,.5);border-radius:8px;padding:8px 12px;color:#fff;font-weight:500;font-size:14px}.spoiler-button__overlay:hover .spoiler-button__overlay__label,.spoiler-button__overlay:focus .spoiler-button__overlay__label,.spoiler-button__overlay:active .spoiler-button__overlay__label{background:rgba(0,0,0,.8)}.spoiler-button__overlay:disabled .spoiler-button__overlay__label{background:rgba(0,0,0,.5)}.setting-toggle{display:block;line-height:24px}.setting-toggle__label,.setting-radio__label,.setting-meta__label{color:#dde3ec;display:inline-block;margin-bottom:14px;margin-left:8px;vertical-align:middle}.setting-radio{display:block;line-height:18px}.setting-radio__label{margin-bottom:0}.column-settings__row legend{color:#dde3ec;cursor:default;display:block;font-weight:500;margin-top:10px}.setting-radio__input{vertical-align:middle}.setting-meta__label{float:right}@keyframes heartbeat{from{transform:scale(1);transform-origin:center center;animation-timing-function:ease-out}10%{transform:scale(0.91);animation-timing-function:ease-in}17%{transform:scale(0.98);animation-timing-function:ease-out}33%{transform:scale(0.87);animation-timing-function:ease-in}45%{transform:scale(1);animation-timing-function:ease-out}}.pulse-loading{animation:heartbeat 1.5s ease-in-out infinite both}.upload-area{align-items:center;background:rgba(0,0,0,.8);display:flex;height:100%;justify-content:center;left:0;opacity:0;position:absolute;top:0;visibility:hidden;width:100%;z-index:2000}.upload-area *{pointer-events:none}.upload-area__drop{width:320px;height:160px;display:flex;box-sizing:border-box;position:relative;padding:8px}.upload-area__background{position:absolute;top:0;right:0;bottom:0;left:0;z-index:-1;border-radius:4px;background:#282c37;box-shadow:0 0 5px rgba(0,0,0,.2)}.upload-area__content{flex:1;display:flex;align-items:center;justify-content:center;color:#ecf0f4;font-size:18px;font-weight:500;border:2px dashed #606984;border-radius:4px}.dropdown--active .emoji-button img{opacity:1;filter:none}.loading-bar{background-color:#2b5fd9;height:3px;position:absolute;top:0;left:0;z-index:9999}.icon-badge-wrapper{position:relative}.icon-badge{position:absolute;display:block;right:-0.25em;top:-0.25em;background-color:#2b5fd9;border-radius:50%;font-size:75%;width:1em;height:1em}.conversation{display:flex;border-bottom:1px solid #393f4f;padding:5px;padding-bottom:0}.conversation:focus{background:#2c313d;outline:0}.conversation__avatar{flex:0 0 auto;padding:10px;padding-top:12px;position:relative;cursor:pointer}.conversation__unread{display:inline-block;background:#2b90d9;border-radius:50%;width:.625rem;height:.625rem;margin:-0.1ex .15em .1ex}.conversation__content{flex:1 1 auto;padding:10px 5px;padding-right:15px;overflow:hidden}.conversation__content__info{overflow:hidden;display:flex;flex-direction:row-reverse;justify-content:space-between}.conversation__content__relative-time{font-size:15px;color:#dde3ec;padding-left:15px}.conversation__content__names{color:#dde3ec;font-size:15px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-bottom:4px;flex-basis:90px;flex-grow:1}.conversation__content__names a{color:#fff;text-decoration:none}.conversation__content__names a:hover,.conversation__content__names a:focus,.conversation__content__names a:active{text-decoration:underline}.conversation__content .status__content{margin:0}.conversation--unread{background:#2c313d}.conversation--unread:focus{background:#313543}.conversation--unread .conversation__content__info{font-weight:700}.conversation--unread .conversation__content__relative-time{color:#fff}.ui .flash-message{margin-top:10px;margin-left:auto;margin-right:auto;margin-bottom:0;min-width:75%}::-webkit-scrollbar-thumb{border-radius:0}noscript{text-align:center}noscript img{width:200px;opacity:.5;animation:flicker 4s infinite}noscript div{font-size:14px;margin:30px auto;color:#ecf0f4;max-width:400px}noscript div a{color:#2b90d9;text-decoration:underline}noscript div a:hover{text-decoration:none}noscript div a{word-break:break-word}@keyframes flicker{0%{opacity:1}30%{opacity:.75}100%{opacity:1}}button.icon-button i.fa-retweet{background-image:url(\"data:image/svg+xml;utf8,\")}button.icon-button i.fa-retweet:hover{background-image:url(\"data:image/svg+xml;utf8,\")}button.icon-button.disabled i.fa-retweet,button.icon-button.disabled i.fa-retweet:hover{background-image:url(\"data:image/svg+xml;utf8,\")}.status-direct button.icon-button.disabled i.fa-retweet,.status-direct button.icon-button.disabled i.fa-retweet:hover{background-image:url(\"data:image/svg+xml;utf8,\")}.account{padding:10px;border-bottom:1px solid #393f4f;color:inherit;text-decoration:none}.account .account__display-name{flex:1 1 auto;display:block;color:#dde3ec;overflow:hidden;text-decoration:none;font-size:14px}.account.small{border:none;padding:0}.account.small>.account__avatar-wrapper{margin:0 8px 0 0}.account.small>.display-name{height:24px;line-height:24px}.account__wrapper{display:flex}.account__avatar-wrapper{float:left;margin-left:12px;margin-right:12px}.account__avatar{border-radius:8%;background-position:50%;background-clip:padding-box;position:relative;cursor:pointer}.account__avatar-inline{display:inline-block;vertical-align:middle;margin-right:5px}.account__avatar-composite{border-radius:8%;background-position:50%;background-clip:padding-box;overflow:hidden;position:relative}.account__avatar-composite div{border-radius:8%;background-position:50%;background-clip:padding-box;float:left;position:relative;box-sizing:border-box}.account__avatar-composite__label{display:block;position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);color:#fff;text-shadow:1px 1px 2px #000;font-weight:700;font-size:15px}.account__avatar-overlay{position:relative;width:48px;height:48px;background-size:48px 48px}.account__avatar-overlay-base{border-radius:8%;background-position:50%;background-clip:padding-box;width:36px;height:36px;background-size:36px 36px}.account__avatar-overlay-overlay{border-radius:8%;background-position:50%;background-clip:padding-box;width:24px;height:24px;background-size:24px 24px;position:absolute;bottom:0;right:0;z-index:1}.account__relationship{height:18px;padding:10px;white-space:nowrap}.account__header__wrapper{flex:0 0 auto;background:#313543}.account__disclaimer{padding:10px;color:#c2cede}.account__disclaimer strong{font-weight:500}.account__disclaimer strong:lang(ja){font-weight:700}.account__disclaimer strong:lang(ko){font-weight:700}.account__disclaimer strong:lang(zh-CN){font-weight:700}.account__disclaimer strong:lang(zh-HK){font-weight:700}.account__disclaimer strong:lang(zh-TW){font-weight:700}.account__disclaimer a{font-weight:500;color:inherit;text-decoration:underline}.account__disclaimer a:hover,.account__disclaimer a:focus,.account__disclaimer a:active{text-decoration:none}.account__action-bar{border-top:1px solid #393f4f;border-bottom:1px solid #393f4f;line-height:36px;overflow:hidden;flex:0 0 auto;display:flex}.account__action-bar-links{display:flex;flex:1 1 auto;line-height:18px;text-align:center}.account__action-bar__tab{text-decoration:none;overflow:hidden;flex:0 1 100%;border-left:1px solid #393f4f;padding:10px 0;border-bottom:4px solid transparent}.account__action-bar__tab:first-child{border-left:0}.account__action-bar__tab.active{border-bottom:4px solid #2b5fd9}.account__action-bar__tab>span{display:block;text-transform:uppercase;font-size:11px;color:#dde3ec}.account__action-bar__tab strong{display:block;font-size:15px;font-weight:500;color:#fff}.account__action-bar__tab strong:lang(ja){font-weight:700}.account__action-bar__tab strong:lang(ko){font-weight:700}.account__action-bar__tab strong:lang(zh-CN){font-weight:700}.account__action-bar__tab strong:lang(zh-HK){font-weight:700}.account__action-bar__tab strong:lang(zh-TW){font-weight:700}.account__action-bar__tab abbr{color:#2b90d9}.account-authorize{padding:14px 10px}.account-authorize .detailed-status__display-name{display:block;margin-bottom:15px;overflow:hidden}.account-authorize__avatar{float:left;margin-right:10px}.notification__message{margin-left:42px;padding:8px 0 0 26px;cursor:default;color:#dde3ec;font-size:15px;position:relative}.notification__message .fa{color:#2b90d9}.notification__message>span{display:block;overflow:hidden;text-overflow:ellipsis}.account--panel{background:#313543;border-top:1px solid #393f4f;border-bottom:1px solid #393f4f;display:flex;flex-direction:row;padding:10px 0}.account--panel__button,.detailed-status__button{flex:1 1 auto;text-align:center}.column-settings__outer{background:#393f4f;padding:15px}.column-settings__section{color:#dde3ec;cursor:default;display:block;font-weight:500;margin-bottom:10px}.column-settings__hashtags .column-settings__row{margin-bottom:15px}.column-settings__hashtags .column-select__control{outline:0;box-sizing:border-box;width:100%;border:none;box-shadow:none;font-family:inherit;background:#282c37;color:#dde3ec;font-size:14px;margin:0}.column-settings__hashtags .column-select__control::placeholder{color:#eaeef3}.column-settings__hashtags .column-select__control::-moz-focus-inner{border:0}.column-settings__hashtags .column-select__control::-moz-focus-inner,.column-settings__hashtags .column-select__control:focus,.column-settings__hashtags .column-select__control:active{outline:0 !important}.column-settings__hashtags .column-select__control:focus{background:#313543}@media screen and (max-width: 600px){.column-settings__hashtags .column-select__control{font-size:16px}}.column-settings__hashtags .column-select__placeholder{color:#c2cede;padding-left:2px;font-size:12px}.column-settings__hashtags .column-select__value-container{padding-left:6px}.column-settings__hashtags .column-select__multi-value{background:#393f4f}.column-settings__hashtags .column-select__multi-value__remove{cursor:pointer}.column-settings__hashtags .column-select__multi-value__remove:hover,.column-settings__hashtags .column-select__multi-value__remove:active,.column-settings__hashtags .column-select__multi-value__remove:focus{background:#42485a;color:#eaeef3}.column-settings__hashtags .column-select__multi-value__label,.column-settings__hashtags .column-select__input{color:#dde3ec}.column-settings__hashtags .column-select__clear-indicator,.column-settings__hashtags .column-select__dropdown-indicator{cursor:pointer;transition:none;color:#c2cede}.column-settings__hashtags .column-select__clear-indicator:hover,.column-settings__hashtags .column-select__clear-indicator:active,.column-settings__hashtags .column-select__clear-indicator:focus,.column-settings__hashtags .column-select__dropdown-indicator:hover,.column-settings__hashtags .column-select__dropdown-indicator:active,.column-settings__hashtags .column-select__dropdown-indicator:focus{color:#d0d9e5}.column-settings__hashtags .column-select__indicator-separator{background-color:#393f4f}.column-settings__hashtags .column-select__menu{background:#fff;border-radius:4px;padding:10px 14px;padding-bottom:14px;margin-top:10px;color:#364861;box-shadow:2px 4px 15px rgba(0,0,0,.4);padding:0;background:#d9e1e8}.column-settings__hashtags .column-select__menu h4{text-transform:uppercase;color:#364861;font-size:13px;font-weight:500;margin-bottom:10px}.column-settings__hashtags .column-select__menu li{padding:4px 0}.column-settings__hashtags .column-select__menu ul{margin-bottom:10px}.column-settings__hashtags .column-select__menu em{font-weight:500;color:#000}.column-settings__hashtags .column-select__menu-list{padding:6px}.column-settings__hashtags .column-select__option{color:#000;border-radius:4px;font-size:14px}.column-settings__hashtags .column-select__option--is-focused,.column-settings__hashtags .column-select__option--is-selected{background:#b9c8d5}.column-settings__row .text-btn{margin-bottom:15px}.relationship-tag{color:#fff;margin-bottom:4px;display:block;vertical-align:top;background-color:#000;text-transform:uppercase;font-size:11px;font-weight:500;padding:4px;border-radius:4px;opacity:.7}.relationship-tag:hover{opacity:1}.account-gallery__container{display:flex;flex-wrap:wrap;padding:4px 2px}.account-gallery__item{border:none;box-sizing:border-box;display:block;position:relative;border-radius:4px;overflow:hidden;margin:2px}.account-gallery__item__icons{position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);font-size:24px}.notification__filter-bar,.account__section-headline{background:#1f232b;border-bottom:1px solid #393f4f;cursor:default;display:flex;flex-shrink:0}.notification__filter-bar button,.account__section-headline button{background:#1f232b;border:0;margin:0}.notification__filter-bar button,.notification__filter-bar a,.account__section-headline button,.account__section-headline a{display:block;flex:1 1 auto;color:#dde3ec;padding:15px 0;font-size:14px;font-weight:500;text-align:center;text-decoration:none;position:relative}.notification__filter-bar button.active,.notification__filter-bar a.active,.account__section-headline button.active,.account__section-headline a.active{color:#ecf0f4}.notification__filter-bar button.active::before,.notification__filter-bar button.active::after,.notification__filter-bar a.active::before,.notification__filter-bar a.active::after,.account__section-headline button.active::before,.account__section-headline button.active::after,.account__section-headline a.active::before,.account__section-headline a.active::after{display:block;content:\"\";position:absolute;bottom:0;left:50%;width:0;height:0;transform:translateX(-50%);border-style:solid;border-width:0 10px 10px;border-color:transparent transparent #393f4f}.notification__filter-bar button.active::after,.notification__filter-bar a.active::after,.account__section-headline button.active::after,.account__section-headline a.active::after{bottom:-1px;border-color:transparent transparent #282c37}.notification__filter-bar.directory__section-headline,.account__section-headline.directory__section-headline{background:#242731;border-bottom-color:transparent}.notification__filter-bar.directory__section-headline a.active::before,.notification__filter-bar.directory__section-headline button.active::before,.account__section-headline.directory__section-headline a.active::before,.account__section-headline.directory__section-headline button.active::before{display:none}.notification__filter-bar.directory__section-headline a.active::after,.notification__filter-bar.directory__section-headline button.active::after,.account__section-headline.directory__section-headline a.active::after,.account__section-headline.directory__section-headline button.active::after{border-color:transparent transparent #191b22}.account__moved-note{padding:14px 10px;padding-bottom:16px;background:#313543;border-top:1px solid #393f4f;border-bottom:1px solid #393f4f}.account__moved-note__message{position:relative;margin-left:58px;color:#c2cede;padding:8px 0;padding-top:0;padding-bottom:4px;font-size:14px}.account__moved-note__message>span{display:block;overflow:hidden;text-overflow:ellipsis}.account__moved-note__icon-wrapper{left:-26px;position:absolute}.account__moved-note .detailed-status__display-avatar{position:relative}.account__moved-note .detailed-status__display-name{margin-bottom:0}.account__header__content{color:#dde3ec;font-size:14px;font-weight:400;overflow:hidden;word-break:normal;word-wrap:break-word}.account__header__content p{margin-bottom:20px}.account__header__content p:last-child{margin-bottom:0}.account__header__content a{color:inherit;text-decoration:underline}.account__header__content a:hover{text-decoration:none}.account__header{overflow:hidden}.account__header.inactive{opacity:.5}.account__header.inactive .account__header__image,.account__header.inactive .account__avatar{filter:grayscale(100%)}.account__header__info{position:absolute;top:10px;left:10px}.account__header__image{overflow:hidden;height:145px;position:relative;background:#1f232b}.account__header__image img{object-fit:cover;display:block;width:100%;height:100%;margin:0}.account__header__bar{position:relative;background:#313543;padding:5px;border-bottom:1px solid #42485a}.account__header__bar .avatar{display:block;flex:0 0 auto;width:94px;margin-left:-2px}.account__header__bar .avatar .account__avatar{background:#17191f;border:2px solid #313543}.account__header__tabs{display:flex;align-items:flex-start;padding:7px 5px;margin-top:-55px}.account__header__tabs__buttons{display:flex;align-items:center;padding-top:55px;overflow:hidden}.account__header__tabs__buttons .icon-button{border:1px solid #42485a;border-radius:4px;box-sizing:content-box;padding:2px}.account__header__tabs__buttons .button{margin:0 8px}.account__header__tabs__name{padding:5px}.account__header__tabs__name .account-role{vertical-align:top}.account__header__tabs__name .emojione{width:22px;height:22px}.account__header__tabs__name h1{font-size:16px;line-height:24px;color:#fff;font-weight:500;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.account__header__tabs__name h1 small{display:block;font-size:14px;color:#dde3ec;font-weight:400;overflow:hidden;text-overflow:ellipsis}.account__header__tabs .spacer{flex:1 1 auto}.account__header__bio{overflow:hidden;margin:0 -5px}.account__header__bio .account__header__content{padding:20px 15px;padding-bottom:5px;color:#fff}.account__header__bio .account__header__fields{margin:0;border-top:1px solid #42485a}.account__header__bio .account__header__fields a{color:#4e79df}.account__header__bio .account__header__fields dl:first-child .verified{border-radius:0 4px 0 0}.account__header__bio .account__header__fields .verified a{color:#79bd9a}.account__header__extra{margin-top:4px}.account__header__extra__links{font-size:14px;color:#dde3ec;padding:10px 0}.account__header__extra__links a{display:inline-block;color:#dde3ec;text-decoration:none;padding:5px 10px;font-weight:500}.account__header__extra__links a strong{font-weight:700;color:#fff}.domain{padding:10px;border-bottom:1px solid #393f4f}.domain .domain__domain-name{flex:1 1 auto;display:block;color:#fff;text-decoration:none;font-size:14px;font-weight:500}.domain__wrapper{display:flex}.domain_buttons{height:18px;padding:10px;white-space:nowrap}@keyframes spring-flip-in{0%{transform:rotate(0deg)}30%{transform:rotate(-242.4deg)}60%{transform:rotate(-158.35deg)}90%{transform:rotate(-187.5deg)}100%{transform:rotate(-180deg)}}@keyframes spring-flip-out{0%{transform:rotate(-180deg)}30%{transform:rotate(62.4deg)}60%{transform:rotate(-21.635deg)}90%{transform:rotate(7.5deg)}100%{transform:rotate(0deg)}}.status__content--with-action{cursor:pointer}.status__content{position:relative;margin:10px 0;font-size:15px;line-height:20px;word-wrap:break-word;font-weight:400;overflow:visible;padding-top:5px}.status__content:focus{outline:0}.status__content .emojione{width:20px;height:20px;margin:-3px 0 0}.status__content img{max-width:100%;max-height:400px;object-fit:contain}.status__content p,.status__content pre,.status__content blockquote{margin-bottom:20px;white-space:pre-wrap}.status__content p:last-child,.status__content pre:last-child,.status__content blockquote:last-child{margin-bottom:0}.status__content .status__content__text,.status__content .e-content{overflow:hidden}.status__content .status__content__text>ul,.status__content .status__content__text>ol,.status__content .e-content>ul,.status__content .e-content>ol{margin-bottom:20px}.status__content .status__content__text h1,.status__content .status__content__text h2,.status__content .status__content__text h3,.status__content .status__content__text h4,.status__content .status__content__text h5,.status__content .e-content h1,.status__content .e-content h2,.status__content .e-content h3,.status__content .e-content h4,.status__content .e-content h5{margin-top:20px;margin-bottom:20px}.status__content .status__content__text h1,.status__content .status__content__text h2,.status__content .e-content h1,.status__content .e-content h2{font-weight:700;font-size:1.2em}.status__content .status__content__text h2,.status__content .e-content h2{font-size:1.1em}.status__content .status__content__text h3,.status__content .status__content__text h4,.status__content .status__content__text h5,.status__content .e-content h3,.status__content .e-content h4,.status__content .e-content h5{font-weight:500}.status__content .status__content__text blockquote,.status__content .e-content blockquote{padding-left:10px;border-left:3px solid #dde3ec;color:#dde3ec;white-space:normal}.status__content .status__content__text blockquote p:last-child,.status__content .e-content blockquote p:last-child{margin-bottom:0}.status__content .status__content__text b,.status__content .status__content__text strong,.status__content .e-content b,.status__content .e-content strong{font-weight:700}.status__content .status__content__text em,.status__content .status__content__text i,.status__content .e-content em,.status__content .e-content i{font-style:italic}.status__content .status__content__text sub,.status__content .e-content sub{font-size:smaller;text-align:sub}.status__content .status__content__text sup,.status__content .e-content sup{font-size:smaller;vertical-align:super}.status__content .status__content__text ul,.status__content .status__content__text ol,.status__content .e-content ul,.status__content .e-content ol{margin-left:1em}.status__content .status__content__text ul p,.status__content .status__content__text ol p,.status__content .e-content ul p,.status__content .e-content ol p{margin:0}.status__content .status__content__text ul,.status__content .e-content ul{list-style-type:disc}.status__content .status__content__text ol,.status__content .e-content ol{list-style-type:decimal}.status__content a{color:#d8a070;text-decoration:none}.status__content a:hover{text-decoration:underline}.status__content a:hover .fa{color:#dae1ea}.status__content a.mention:hover{text-decoration:none}.status__content a.mention:hover span{text-decoration:underline}.status__content a .fa{color:#c2cede}.status__content .status__content__spoiler{display:none}.status__content .status__content__spoiler.status__content__spoiler--visible{display:block}.status__content a.unhandled-link{color:#4e79df}.status__content a.unhandled-link .link-origin-tag{color:#ca8f04;font-size:.8em}.status__content .status__content__spoiler-link{background:#687390}.status__content .status__content__spoiler-link:hover{background:#707b97;text-decoration:none}.status__content__spoiler-link{display:inline-block;border-radius:2px;background:#687390;border:none;color:#000;font-weight:500;font-size:11px;padding:0 5px;text-transform:uppercase;line-height:inherit;cursor:pointer;vertical-align:bottom}.status__content__spoiler-link:hover{background:#707b97;text-decoration:none}.status__content__spoiler-link .status__content__spoiler-icon{display:inline-block;margin:0 0 0 5px;border-left:1px solid currentColor;padding:0 0 0 4px;font-size:16px;vertical-align:-2px}.notif-cleaning .status,.notif-cleaning .notification-follow,.notif-cleaning .notification-follow-request{padding-right:4.5rem}.status__wrapper--filtered{color:#c2cede;border:0;font-size:inherit;text-align:center;line-height:inherit;margin:0;padding:15px;box-sizing:border-box;width:100%;clear:both;border-bottom:1px solid #393f4f}.status__prepend-icon-wrapper{left:-26px;position:absolute}.notification-follow,.notification-follow-request{position:relative;border-bottom:1px solid #393f4f}.notification-follow .account,.notification-follow-request .account{border-bottom:0 none}.focusable:focus{outline:0;background:#313543}.focusable:focus.status.status-direct:not(.read){background:#42485a}.focusable:focus.status.status-direct:not(.read).muted{background:transparent}.focusable:focus .detailed-status,.focusable:focus .detailed-status__action-bar{background:#393f4f}.status{padding:10px 14px;position:relative;height:auto;border-bottom:1px solid #393f4f;cursor:default;opacity:1;animation:fade 150ms linear}@supports(-ms-overflow-style: -ms-autohiding-scrollbar){.status{padding-right:28px}}@keyframes fade{0%{opacity:0}100%{opacity:1}}.status .video-player,.status .audio-player{margin-top:8px}.status.status-direct:not(.read){background:#393f4f;border-bottom-color:#42485a}.status.light .status__relative-time{color:#1b1e25}.status.light .status__display-name{color:#000}.status.light .display-name{color:#364861}.status.light .display-name strong{color:#000}.status.light .status__content{color:#000}.status.light .status__content a{color:#2b90d9}.status.light .status__content a.status__content__spoiler-link{color:#fff;background:#9baec8}.status.light .status__content a.status__content__spoiler-link:hover{background:#b5c3d6}.status.collapsed{background-position:center;background-size:cover;user-select:none}.status.collapsed.has-background::before{display:block;position:absolute;left:0;right:0;top:0;bottom:0;background-image:linear-gradient(to bottom, rgba(0, 0, 0, 0.75), rgba(0, 0, 0, 0.65) 24px, rgba(0, 0, 0, 0.8));pointer-events:none;content:\"\"}.status.collapsed .display-name:hover .display-name__html{text-decoration:none}.status.collapsed .status__content{height:20px;overflow:hidden;text-overflow:ellipsis;padding-top:0}.status.collapsed .status__content:after{content:\"\";position:absolute;top:0;bottom:0;left:0;right:0;background:linear-gradient(rgba(40, 44, 55, 0), #282c37);pointer-events:none}.status.collapsed .status__content a:hover{text-decoration:none}.status.collapsed:focus>.status__content:after{background:linear-gradient(rgba(49, 53, 67, 0), #313543)}.status.collapsed.status-direct:not(.read)>.status__content:after{background:linear-gradient(rgba(57, 63, 79, 0), #393f4f)}.status.collapsed .notification__message{margin-bottom:0}.status.collapsed .status__info .notification__message>span{white-space:nowrap}.status .notification__message{margin:-10px 0px 10px 0}.notification-favourite .status.status-direct{background:transparent}.notification-favourite .status.status-direct .icon-button.disabled{color:#b8c0d9}.status__relative-time{display:inline-block;flex-grow:1;color:#c2cede;font-size:14px;text-align:right;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.status__display-name{color:#c2cede;overflow:hidden}.status__info__account .status__display-name{display:block;max-width:100%}.status__info{display:flex;justify-content:space-between;font-size:15px}.status__info>span{text-overflow:ellipsis;overflow:hidden}.status__info .notification__message>span{word-wrap:break-word}.status__info__icons{display:flex;align-items:center;height:1em;color:#8d9ac2}.status__info__icons .status__media-icon,.status__info__icons .status__visibility-icon,.status__info__icons .status__reply-icon{padding-left:2px;padding-right:2px}.status__info__icons .status__collapse-button.active>.fa-angle-double-up{transform:rotate(-180deg)}.no-reduce-motion .status__collapse-button.activate>.fa-angle-double-up{animation:spring-flip-in 1s linear}.no-reduce-motion .status__collapse-button.deactivate>.fa-angle-double-up{animation:spring-flip-out 1s linear}.status__info__account{display:flex;align-items:center;justify-content:flex-start}.status-check-box{border-bottom:1px solid #d9e1e8;display:flex}.status-check-box .status-check-box__status{margin:10px 0 10px 10px;flex:1;overflow:hidden}.status-check-box .status-check-box__status .media-gallery{max-width:250px}.status-check-box .status-check-box__status .status__content{padding:0;white-space:normal}.status-check-box .status-check-box__status .video-player,.status-check-box .status-check-box__status .audio-player{margin-top:8px;max-width:250px}.status-check-box .status-check-box__status .media-gallery__item-thumbnail{cursor:default}.status-check-box-toggle{align-items:center;display:flex;flex:0 0 auto;justify-content:center;padding:10px}.status__prepend{margin-top:-10px;margin-bottom:10px;margin-left:58px;color:#c2cede;padding:8px 0;padding-bottom:2px;font-size:14px;position:relative}.status__prepend .status__display-name strong{color:#c2cede}.status__prepend>span{display:block;overflow:hidden;text-overflow:ellipsis}.status__action-bar{align-items:center;display:flex;margin-top:8px}.status__action-bar__counter{display:inline-flex;margin-right:11px;align-items:center}.status__action-bar__counter .status__action-bar-button{margin-right:4px}.status__action-bar__counter__label{display:inline-block;width:14px;font-size:12px;font-weight:500;color:#8d9ac2}.status__action-bar-button{margin-right:18px}.status__action-bar-dropdown{height:23.15px;width:23.15px}.detailed-status__action-bar-dropdown{flex:1 1 auto;display:flex;align-items:center;justify-content:center;position:relative}.detailed-status{background:#313543;padding:14px 10px}.detailed-status--flex{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-start}.detailed-status--flex .status__content,.detailed-status--flex .detailed-status__meta{flex:100%}.detailed-status .status__content{font-size:19px;line-height:24px}.detailed-status .status__content .emojione{width:24px;height:24px;margin:-1px 0 0}.detailed-status .video-player,.detailed-status .audio-player{margin-top:8px}.detailed-status__meta{margin-top:15px;color:#c2cede;font-size:14px;line-height:18px}.detailed-status__action-bar{background:#313543;border-top:1px solid #393f4f;border-bottom:1px solid #393f4f;display:flex;flex-direction:row;padding:10px 0}.detailed-status__link{color:inherit;text-decoration:none}.detailed-status__favorites,.detailed-status__reblogs{display:inline-block;font-weight:500;font-size:12px;margin-left:6px}.status__display-name,.status__relative-time,.detailed-status__display-name,.detailed-status__datetime,.detailed-status__application,.account__display-name{text-decoration:none}.status__display-name strong,.account__display-name strong{color:#fff}.muted .emojione{opacity:.5}a.status__display-name:hover strong,.reply-indicator__display-name:hover strong,.detailed-status__display-name:hover strong,.account__display-name:hover strong{text-decoration:underline}.account__display-name strong{display:block;overflow:hidden;text-overflow:ellipsis}.detailed-status__application,.detailed-status__datetime{color:inherit}.detailed-status .button.logo-button{margin-bottom:15px}.detailed-status__display-name{color:#ecf0f4;display:block;line-height:24px;margin-bottom:15px;overflow:hidden}.detailed-status__display-name strong,.detailed-status__display-name span{display:block;text-overflow:ellipsis;overflow:hidden}.detailed-status__display-name strong{font-size:16px;color:#fff}.detailed-status__display-avatar{float:left;margin-right:10px}.status__avatar{flex:none;margin:0 10px 0 0;height:48px;width:48px}.muted .status__content,.muted .status__content p,.muted .status__content a,.muted .status__content__text{color:#c2cede}.muted .status__display-name strong{color:#c2cede}.muted .status__avatar{opacity:.5}.muted a.status__content__spoiler-link{background:#606984;color:#000}.muted a.status__content__spoiler-link:hover{background:#66718d;text-decoration:none}.status__relative-time:hover,.detailed-status__datetime:hover{text-decoration:underline}.status-card{display:flex;font-size:14px;border:1px solid #393f4f;border-radius:4px;color:#c2cede;margin-top:14px;text-decoration:none;overflow:hidden}.status-card__actions{bottom:0;left:0;position:absolute;right:0;top:0;display:flex;justify-content:center;align-items:center}.status-card__actions>div{background:rgba(0,0,0,.6);border-radius:8px;padding:12px 9px;flex:0 0 auto;display:flex;justify-content:center;align-items:center}.status-card__actions button,.status-card__actions a{display:inline;color:#ecf0f4;background:transparent;border:0;padding:0 8px;text-decoration:none;font-size:18px;line-height:18px}.status-card__actions button:hover,.status-card__actions button:active,.status-card__actions button:focus,.status-card__actions a:hover,.status-card__actions a:active,.status-card__actions a:focus{color:#fff}.status-card__actions a{font-size:19px;position:relative;bottom:-1px}.status-card__actions a .fa,.status-card__actions a:hover .fa{color:inherit}a.status-card{cursor:pointer}a.status-card:hover{background:#393f4f}.status-card-photo{cursor:zoom-in;display:block;text-decoration:none;width:100%;height:auto;margin:0}.status-card-video iframe{width:100%;height:100%}.status-card__title{display:block;font-weight:500;margin-bottom:5px;color:#dde3ec;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-decoration:none}.status-card__content{flex:1 1 auto;overflow:hidden;padding:14px 14px 14px 8px}.status-card__description{color:#dde3ec}.status-card__host{display:block;margin-top:5px;font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.status-card__image{flex:0 0 100px;background:#393f4f;position:relative}.status-card__image>.fa{font-size:21px;position:absolute;transform-origin:50% 50%;top:50%;left:50%;transform:translate(-50%, -50%)}.status-card.horizontal{display:block}.status-card.horizontal .status-card__image{width:100%}.status-card.horizontal .status-card__image-image{border-radius:4px 4px 0 0}.status-card.horizontal .status-card__title{white-space:inherit}.status-card.compact{border-color:#313543}.status-card.compact.interactive{border:0}.status-card.compact .status-card__content{padding:8px;padding-top:10px}.status-card.compact .status-card__title{white-space:nowrap}.status-card.compact .status-card__image{flex:0 0 60px}a.status-card.compact:hover{background-color:#313543}.status-card__image-image{border-radius:4px 0 0 4px;display:block;margin:0;width:100%;height:100%;object-fit:cover;background-size:cover;background-position:center center}.attachment-list{display:flex;font-size:14px;border:1px solid #393f4f;border-radius:4px;margin-top:14px;overflow:hidden}.attachment-list__icon{flex:0 0 auto;color:#c2cede;padding:8px 18px;cursor:default;border-right:1px solid #393f4f;display:flex;flex-direction:column;align-items:center;justify-content:center;font-size:26px}.attachment-list__icon .fa{display:block}.attachment-list__list{list-style:none;padding:4px 0;padding-left:8px;display:flex;flex-direction:column;justify-content:center}.attachment-list__list li{display:block;padding:4px 0}.attachment-list__list a{text-decoration:none;color:#c2cede;font-weight:500}.attachment-list__list a:hover{text-decoration:underline}.attachment-list.compact{border:0;margin-top:4px}.attachment-list.compact .attachment-list__list{padding:0;display:block}.attachment-list.compact .fa{color:#c2cede}.status__wrapper--filtered__button{display:inline;color:#4e79df;border:0;background:transparent;padding:0;font-size:inherit;line-height:inherit}.status__wrapper--filtered__button:hover,.status__wrapper--filtered__button:active{text-decoration:underline}.modal-container--preloader{background:#393f4f}.modal-root{position:relative;transition:opacity .3s linear;will-change:opacity;z-index:9999}.modal-root__overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.7)}.modal-root__container{position:fixed;top:0;left:0;width:100%;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;align-content:space-around;z-index:9999;pointer-events:none;user-select:none}.modal-root__modal{pointer-events:auto;display:flex;z-index:9999}.onboarding-modal,.error-modal,.embed-modal{background:#d9e1e8;color:#000;border-radius:8px;overflow:hidden;display:flex;flex-direction:column}.onboarding-modal__pager{height:80vh;width:80vw;max-width:520px;max-height:470px}.onboarding-modal__pager .react-swipeable-view-container>div{width:100%;height:100%;box-sizing:border-box;display:none;flex-direction:column;align-items:center;justify-content:center;display:flex;user-select:text}.error-modal__body{height:80vh;width:80vw;max-width:520px;max-height:420px;position:relative}.error-modal__body>div{position:absolute;top:0;left:0;width:100%;height:100%;box-sizing:border-box;padding:25px;display:none;flex-direction:column;align-items:center;justify-content:center;display:flex;opacity:0;user-select:text}.error-modal__body{display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center}@media screen and (max-width: 550px){.onboarding-modal{width:100%;height:100%;border-radius:0}.onboarding-modal__pager{width:100%;height:auto;max-width:none;max-height:none;flex:1 1 auto}}.onboarding-modal__paginator,.error-modal__footer{flex:0 0 auto;background:#c0cdd9;display:flex;padding:25px}.onboarding-modal__paginator>div,.error-modal__footer>div{min-width:33px}.onboarding-modal__paginator .onboarding-modal__nav,.onboarding-modal__paginator .error-modal__nav,.error-modal__footer .onboarding-modal__nav,.error-modal__footer .error-modal__nav{color:#1b1e25;border:0;font-size:14px;font-weight:500;padding:10px 25px;line-height:inherit;height:auto;margin:-10px;border-radius:4px;background-color:transparent}.onboarding-modal__paginator .onboarding-modal__nav:hover,.onboarding-modal__paginator .onboarding-modal__nav:focus,.onboarding-modal__paginator .onboarding-modal__nav:active,.onboarding-modal__paginator .error-modal__nav:hover,.onboarding-modal__paginator .error-modal__nav:focus,.onboarding-modal__paginator .error-modal__nav:active,.error-modal__footer .onboarding-modal__nav:hover,.error-modal__footer .onboarding-modal__nav:focus,.error-modal__footer .onboarding-modal__nav:active,.error-modal__footer .error-modal__nav:hover,.error-modal__footer .error-modal__nav:focus,.error-modal__footer .error-modal__nav:active{color:#131419;background-color:#a6b9c9}.onboarding-modal__paginator .onboarding-modal__nav.onboarding-modal__done,.onboarding-modal__paginator .onboarding-modal__nav.onboarding-modal__next,.onboarding-modal__paginator .error-modal__nav.onboarding-modal__done,.onboarding-modal__paginator .error-modal__nav.onboarding-modal__next,.error-modal__footer .onboarding-modal__nav.onboarding-modal__done,.error-modal__footer .onboarding-modal__nav.onboarding-modal__next,.error-modal__footer .error-modal__nav.onboarding-modal__done,.error-modal__footer .error-modal__nav.onboarding-modal__next{color:#000}.onboarding-modal__paginator .onboarding-modal__nav.onboarding-modal__done:hover,.onboarding-modal__paginator .onboarding-modal__nav.onboarding-modal__done:focus,.onboarding-modal__paginator .onboarding-modal__nav.onboarding-modal__done:active,.onboarding-modal__paginator .onboarding-modal__nav.onboarding-modal__next:hover,.onboarding-modal__paginator .onboarding-modal__nav.onboarding-modal__next:focus,.onboarding-modal__paginator .onboarding-modal__nav.onboarding-modal__next:active,.onboarding-modal__paginator .error-modal__nav.onboarding-modal__done:hover,.onboarding-modal__paginator .error-modal__nav.onboarding-modal__done:focus,.onboarding-modal__paginator .error-modal__nav.onboarding-modal__done:active,.onboarding-modal__paginator .error-modal__nav.onboarding-modal__next:hover,.onboarding-modal__paginator .error-modal__nav.onboarding-modal__next:focus,.onboarding-modal__paginator .error-modal__nav.onboarding-modal__next:active,.error-modal__footer .onboarding-modal__nav.onboarding-modal__done:hover,.error-modal__footer .onboarding-modal__nav.onboarding-modal__done:focus,.error-modal__footer .onboarding-modal__nav.onboarding-modal__done:active,.error-modal__footer .onboarding-modal__nav.onboarding-modal__next:hover,.error-modal__footer .onboarding-modal__nav.onboarding-modal__next:focus,.error-modal__footer .onboarding-modal__nav.onboarding-modal__next:active,.error-modal__footer .error-modal__nav.onboarding-modal__done:hover,.error-modal__footer .error-modal__nav.onboarding-modal__done:focus,.error-modal__footer .error-modal__nav.onboarding-modal__done:active,.error-modal__footer .error-modal__nav.onboarding-modal__next:hover,.error-modal__footer .error-modal__nav.onboarding-modal__next:focus,.error-modal__footer .error-modal__nav.onboarding-modal__next:active{color:#0a0a0a}.error-modal__footer{justify-content:center}.onboarding-modal__dots{flex:1 1 auto;display:flex;align-items:center;justify-content:center}.onboarding-modal__dot{width:14px;height:14px;border-radius:14px;background:#a6b9c9;margin:0 3px;cursor:pointer}.onboarding-modal__dot:hover{background:#a0b4c5}.onboarding-modal__dot.active{cursor:default;background:#8da5ba}.onboarding-modal__page__wrapper{pointer-events:none;padding:25px;padding-bottom:0}.onboarding-modal__page__wrapper.onboarding-modal__page__wrapper--active{pointer-events:auto}.onboarding-modal__page{cursor:default;line-height:21px}.onboarding-modal__page h1{font-size:18px;font-weight:500;color:#000;margin-bottom:20px}.onboarding-modal__page a{color:#2b90d9}.onboarding-modal__page a:hover,.onboarding-modal__page a:focus,.onboarding-modal__page a:active{color:#3c99dc}.onboarding-modal__page .navigation-bar a{color:inherit}.onboarding-modal__page p{font-size:16px;color:#1b1e25;margin-top:10px;margin-bottom:10px}.onboarding-modal__page p:last-child{margin-bottom:0}.onboarding-modal__page p strong{font-weight:500;background:#282c37;color:#ecf0f4;border-radius:4px;font-size:14px;padding:3px 6px}.onboarding-modal__page p strong:lang(ja){font-weight:700}.onboarding-modal__page p strong:lang(ko){font-weight:700}.onboarding-modal__page p strong:lang(zh-CN){font-weight:700}.onboarding-modal__page p strong:lang(zh-HK){font-weight:700}.onboarding-modal__page p strong:lang(zh-TW){font-weight:700}.onboarding-modal__page__wrapper-0{height:100%;padding:0}.onboarding-modal__page-one__lead{padding:65px;padding-top:45px;padding-bottom:0;margin-bottom:10px}.onboarding-modal__page-one__lead h1{font-size:26px;line-height:36px;margin-bottom:8px}.onboarding-modal__page-one__lead p{margin-bottom:0}.onboarding-modal__page-one__extra{padding-right:65px;padding-left:185px;text-align:center}.display-case{text-align:center;font-size:15px;margin-bottom:15px}.display-case__label{font-weight:500;color:#000;margin-bottom:5px;text-transform:uppercase;font-size:12px}.display-case__case{background:#282c37;color:#ecf0f4;font-weight:500;padding:10px;border-radius:4px}.onboarding-modal__page-two p,.onboarding-modal__page-three p,.onboarding-modal__page-four p,.onboarding-modal__page-five p{text-align:left}.onboarding-modal__page-two .figure,.onboarding-modal__page-three .figure,.onboarding-modal__page-four .figure,.onboarding-modal__page-five .figure{background:#17191f;color:#ecf0f4;margin-bottom:20px;border-radius:4px;padding:10px;text-align:center;font-size:14px;box-shadow:1px 2px 6px rgba(0,0,0,.3)}.onboarding-modal__page-two .figure .onboarding-modal__image,.onboarding-modal__page-three .figure .onboarding-modal__image,.onboarding-modal__page-four .figure .onboarding-modal__image,.onboarding-modal__page-five .figure .onboarding-modal__image{border-radius:4px;margin-bottom:10px}.onboarding-modal__page-two .figure.non-interactive,.onboarding-modal__page-three .figure.non-interactive,.onboarding-modal__page-four .figure.non-interactive,.onboarding-modal__page-five .figure.non-interactive{pointer-events:none;text-align:left}.onboarding-modal__page-four__columns .row{display:flex;margin-bottom:20px}.onboarding-modal__page-four__columns .row>div{flex:1 1 0;margin:0 10px}.onboarding-modal__page-four__columns .row>div:first-child{margin-left:0}.onboarding-modal__page-four__columns .row>div:last-child{margin-right:0}.onboarding-modal__page-four__columns .row>div p{text-align:center}.onboarding-modal__page-four__columns .row:last-child{margin-bottom:0}.onboarding-modal__page-four__columns .column-header{color:#fff}@media screen and (max-width: 320px)and (max-height: 600px){.onboarding-modal__page p{font-size:14px;line-height:20px}.onboarding-modal__page-two .figure,.onboarding-modal__page-three .figure,.onboarding-modal__page-four .figure,.onboarding-modal__page-five .figure{font-size:12px;margin-bottom:10px}.onboarding-modal__page-four__columns .row{margin-bottom:10px}.onboarding-modal__page-four__columns .column-header{padding:5px;font-size:12px}}.onboard-sliders{display:inline-block;max-width:30px;max-height:auto;margin-left:10px}.boost-modal,.doodle-modal,.favourite-modal,.confirmation-modal,.report-modal,.actions-modal,.mute-modal,.block-modal{background:#f2f5f7;color:#000;border-radius:8px;overflow:hidden;max-width:90vw;width:480px;position:relative;flex-direction:column}.boost-modal .status__relative-time,.doodle-modal .status__relative-time,.favourite-modal .status__relative-time,.confirmation-modal .status__relative-time,.report-modal .status__relative-time,.actions-modal .status__relative-time,.mute-modal .status__relative-time,.block-modal .status__relative-time{color:#c2cede;float:right;font-size:14px;width:auto;margin:initial;padding:initial}.boost-modal .status__display-name,.doodle-modal .status__display-name,.favourite-modal .status__display-name,.confirmation-modal .status__display-name,.report-modal .status__display-name,.actions-modal .status__display-name,.mute-modal .status__display-name,.block-modal .status__display-name{display:flex}.boost-modal .status__avatar,.doodle-modal .status__avatar,.favourite-modal .status__avatar,.confirmation-modal .status__avatar,.report-modal .status__avatar,.actions-modal .status__avatar,.mute-modal .status__avatar,.block-modal .status__avatar{height:48px;width:48px}.boost-modal .status__content__spoiler-link,.doodle-modal .status__content__spoiler-link,.favourite-modal .status__content__spoiler-link,.confirmation-modal .status__content__spoiler-link,.report-modal .status__content__spoiler-link,.actions-modal .status__content__spoiler-link,.mute-modal .status__content__spoiler-link,.block-modal .status__content__spoiler-link{color:#fff}.actions-modal .status{background:#fff;border-bottom-color:#d9e1e8;padding-top:10px;padding-bottom:10px}.actions-modal .dropdown-menu__separator{border-bottom-color:#d9e1e8}.boost-modal__container,.favourite-modal__container{overflow-x:scroll;padding:10px}.boost-modal__container .status,.favourite-modal__container .status{user-select:text;border-bottom:0}.boost-modal__action-bar,.doodle-modal__action-bar,.favourite-modal__action-bar,.confirmation-modal__action-bar,.mute-modal__action-bar,.block-modal__action-bar{display:flex;justify-content:space-between;background:#d9e1e8;padding:10px;line-height:36px}.boost-modal__action-bar>div,.doodle-modal__action-bar>div,.favourite-modal__action-bar>div,.confirmation-modal__action-bar>div,.mute-modal__action-bar>div,.block-modal__action-bar>div{flex:1 1 auto;text-align:right;color:#1b1e25;padding-right:10px}.boost-modal__action-bar .button,.doodle-modal__action-bar .button,.favourite-modal__action-bar .button,.confirmation-modal__action-bar .button,.mute-modal__action-bar .button,.block-modal__action-bar .button{flex:0 0 auto}.boost-modal__status-header,.favourite-modal__status-header{font-size:15px}.boost-modal__status-time,.favourite-modal__status-time{float:right;font-size:14px}.mute-modal,.block-modal{line-height:24px}.mute-modal .react-toggle,.block-modal .react-toggle{vertical-align:middle}.report-modal{width:90vw;max-width:700px}.report-modal__container{display:flex;border-top:1px solid #d9e1e8}@media screen and (max-width: 480px){.report-modal__container{flex-wrap:wrap;overflow-y:auto}}.report-modal__statuses,.report-modal__comment{box-sizing:border-box;width:50%}@media screen and (max-width: 480px){.report-modal__statuses,.report-modal__comment{width:100%}}.report-modal__statuses,.focal-point-modal__content{flex:1 1 auto;min-height:20vh;max-height:80vh;overflow-y:auto;overflow-x:hidden}.report-modal__statuses .status__content a,.focal-point-modal__content .status__content a{color:#2b90d9}@media screen and (max-width: 480px){.report-modal__statuses,.focal-point-modal__content{max-height:10vh}}@media screen and (max-width: 480px){.focal-point-modal__content{max-height:40vh}}.report-modal__comment{padding:20px;border-right:1px solid #d9e1e8;max-width:320px}.report-modal__comment p{font-size:14px;line-height:20px;margin-bottom:20px}.report-modal__comment .setting-text{display:block;box-sizing:border-box;width:100%;margin:0;color:#000;background:#fff;padding:10px;font-family:inherit;font-size:14px;resize:none;border:0;outline:0;border-radius:4px;border:1px solid #d9e1e8;min-height:100px;max-height:50vh;margin-bottom:10px}.report-modal__comment .setting-text:focus{border:1px solid #c0cdd9}.report-modal__comment .setting-text__wrapper{background:#fff;border:1px solid #d9e1e8;margin-bottom:10px;border-radius:4px}.report-modal__comment .setting-text__wrapper .setting-text{border:0;margin-bottom:0;border-radius:0}.report-modal__comment .setting-text__wrapper .setting-text:focus{border:0}.report-modal__comment .setting-text__wrapper__modifiers{color:#000;font-family:inherit;font-size:14px;background:#fff}.report-modal__comment .setting-text__toolbar{display:flex;justify-content:space-between;margin-bottom:20px}.report-modal__comment .setting-text-label{display:block;color:#000;font-size:14px;font-weight:500;margin-bottom:10px}.report-modal__comment .setting-toggle{margin-top:20px;margin-bottom:24px}.report-modal__comment .setting-toggle__label{color:#000;font-size:14px}@media screen and (max-width: 480px){.report-modal__comment{padding:10px;max-width:100%;order:2}.report-modal__comment .setting-toggle{margin-bottom:4px}}.actions-modal{max-height:80vh;max-width:80vw}.actions-modal .status{overflow-y:auto;max-height:300px}.actions-modal strong{display:block;font-weight:500}.actions-modal .actions-modal__item-label{font-weight:500}.actions-modal ul{overflow-y:auto;flex-shrink:0;max-height:80vh}.actions-modal ul.with-status{max-height:calc(80vh - 75px)}.actions-modal ul li:empty{margin:0}.actions-modal ul li:not(:empty) a{color:#000;display:flex;padding:12px 16px;font-size:15px;align-items:center;text-decoration:none}.actions-modal ul li:not(:empty) a,.actions-modal ul li:not(:empty) a button{transition:none}.actions-modal ul li:not(:empty) a.active,.actions-modal ul li:not(:empty) a.active button,.actions-modal ul li:not(:empty) a:hover,.actions-modal ul li:not(:empty) a:hover button,.actions-modal ul li:not(:empty) a:active,.actions-modal ul li:not(:empty) a:active button,.actions-modal ul li:not(:empty) a:focus,.actions-modal ul li:not(:empty) a:focus button{background:#2b5fd9;color:#fff}.actions-modal ul li:not(:empty) a>.react-toggle,.actions-modal ul li:not(:empty) a>.icon,.actions-modal ul li:not(:empty) a button:first-child{margin-right:10px}.confirmation-modal__action-bar .confirmation-modal__secondary-button,.mute-modal__action-bar .confirmation-modal__secondary-button,.block-modal__action-bar .confirmation-modal__secondary-button{flex-shrink:1}.confirmation-modal__secondary-button,.confirmation-modal__cancel-button,.mute-modal__cancel-button,.block-modal__cancel-button{background-color:transparent;color:#1b1e25;font-size:14px;font-weight:500}.confirmation-modal__secondary-button:hover,.confirmation-modal__secondary-button:focus,.confirmation-modal__secondary-button:active,.confirmation-modal__cancel-button:hover,.confirmation-modal__cancel-button:focus,.confirmation-modal__cancel-button:active,.mute-modal__cancel-button:hover,.mute-modal__cancel-button:focus,.mute-modal__cancel-button:active,.block-modal__cancel-button:hover,.block-modal__cancel-button:focus,.block-modal__cancel-button:active{color:#131419;background-color:transparent}.confirmation-modal__do_not_ask_again{padding-left:20px;padding-right:20px;padding-bottom:10px;font-size:14px}.confirmation-modal__do_not_ask_again label,.confirmation-modal__do_not_ask_again input{vertical-align:middle}.confirmation-modal__container,.mute-modal__container,.block-modal__container,.report-modal__target{padding:30px;font-size:16px}.confirmation-modal__container strong,.mute-modal__container strong,.block-modal__container strong,.report-modal__target strong{font-weight:500}.confirmation-modal__container strong:lang(ja),.mute-modal__container strong:lang(ja),.block-modal__container strong:lang(ja),.report-modal__target strong:lang(ja){font-weight:700}.confirmation-modal__container strong:lang(ko),.mute-modal__container strong:lang(ko),.block-modal__container strong:lang(ko),.report-modal__target strong:lang(ko){font-weight:700}.confirmation-modal__container strong:lang(zh-CN),.mute-modal__container strong:lang(zh-CN),.block-modal__container strong:lang(zh-CN),.report-modal__target strong:lang(zh-CN){font-weight:700}.confirmation-modal__container strong:lang(zh-HK),.mute-modal__container strong:lang(zh-HK),.block-modal__container strong:lang(zh-HK),.report-modal__target strong:lang(zh-HK){font-weight:700}.confirmation-modal__container strong:lang(zh-TW),.mute-modal__container strong:lang(zh-TW),.block-modal__container strong:lang(zh-TW),.report-modal__target strong:lang(zh-TW){font-weight:700}.confirmation-modal__container,.report-modal__target{text-align:center}.block-modal__explanation,.mute-modal__explanation{margin-top:20px}.block-modal .setting-toggle,.mute-modal .setting-toggle{margin-top:20px;margin-bottom:24px;display:flex;align-items:center}.block-modal .setting-toggle__label,.mute-modal .setting-toggle__label{color:#000;margin:0;margin-left:8px}.report-modal__target{padding:15px}.report-modal__target .media-modal__close{top:14px;right:15px}.embed-modal{width:auto;max-width:80vw;max-height:80vh}.embed-modal h4{padding:30px;font-weight:500;font-size:16px;text-align:center}.embed-modal .embed-modal__container{padding:10px}.embed-modal .embed-modal__container .hint{margin-bottom:15px}.embed-modal .embed-modal__container .embed-modal__html{outline:0;box-sizing:border-box;display:block;width:100%;border:none;padding:10px;font-family:\"mastodon-font-monospace\",monospace;background:#282c37;color:#fff;font-size:14px;margin:0;margin-bottom:15px;border-radius:4px}.embed-modal .embed-modal__container .embed-modal__html::-moz-focus-inner{border:0}.embed-modal .embed-modal__container .embed-modal__html::-moz-focus-inner,.embed-modal .embed-modal__container .embed-modal__html:focus,.embed-modal .embed-modal__container .embed-modal__html:active{outline:0 !important}.embed-modal .embed-modal__container .embed-modal__html:focus{background:#313543}@media screen and (max-width: 600px){.embed-modal .embed-modal__container .embed-modal__html{font-size:16px}}.embed-modal .embed-modal__container .embed-modal__iframe{width:400px;max-width:100%;overflow:hidden;border:0;border-radius:4px}.focal-point{position:relative;cursor:move;overflow:hidden;height:100%;display:flex;justify-content:center;align-items:center;background:#000}.focal-point img,.focal-point video,.focal-point canvas{display:block;max-height:80vh;width:100%;height:auto;margin:0;object-fit:contain;background:#000}.focal-point__reticle{position:absolute;width:100px;height:100px;transform:translate(-50%, -50%);background:url(\"~images/reticle.png\") no-repeat 0 0;border-radius:50%;box-shadow:0 0 0 9999em rgba(0,0,0,.35)}.focal-point__overlay{position:absolute;width:100%;height:100%;top:0;left:0}.focal-point__preview{position:absolute;bottom:10px;right:10px;z-index:2;cursor:move;transition:opacity .1s ease}.focal-point__preview:hover{opacity:.5}.focal-point__preview strong{color:#fff;font-size:14px;font-weight:500;display:block;margin-bottom:5px}.focal-point__preview div{border-radius:4px;box-shadow:0 0 14px rgba(0,0,0,.2)}@media screen and (max-width: 480px){.focal-point img,.focal-point video{max-height:100%}.focal-point__preview{display:none}}.filtered-status-info{text-align:start}.filtered-status-info .spoiler__text{margin-top:20px}.filtered-status-info .account{border-bottom:0}.filtered-status-info .account__display-name strong{color:#000}.filtered-status-info .status__content__spoiler{display:none}.filtered-status-info .status__content__spoiler--visible{display:flex}.filtered-status-info ul{padding:10px;margin-left:12px;list-style:disc inside}.filtered-status-info .filtered-status-edit-link{color:#8d9ac2;text-decoration:none}.filtered-status-info .filtered-status-edit-link:hover{text-decoration:underline}.composer{padding:10px}.composer .emoji-picker-dropdown{position:absolute;top:0;right:0}.composer .emoji-picker-dropdown ::-webkit-scrollbar-track:hover,.composer .emoji-picker-dropdown ::-webkit-scrollbar-track:active{background-color:rgba(0,0,0,.3)}.character-counter{cursor:default;font-family:sans-serif,sans-serif;font-size:14px;font-weight:600;color:#1b1e25}.character-counter.character-counter--over{color:#ff5050}.no-reduce-motion .composer--spoiler{transition:height .4s ease,opacity .4s ease}.composer--spoiler{height:0;transform-origin:bottom;opacity:0}.composer--spoiler.composer--spoiler--visible{height:36px;margin-bottom:11px;opacity:1}.composer--spoiler input{display:block;box-sizing:border-box;margin:0;border:none;border-radius:4px;padding:10px;width:100%;outline:0;color:#000;background:#fff;font-size:14px;font-family:inherit;resize:vertical}.composer--spoiler input::placeholder{color:#c2cede}.composer--spoiler input:focus{outline:0}@media screen and (max-width: 630px){.auto-columns .composer--spoiler input{font-size:16px}}.single-column .composer--spoiler input{font-size:16px}.composer--warning{color:#000;margin-bottom:15px;background:#9baec8;box-shadow:0 2px 6px rgba(0,0,0,.3);padding:8px 10px;border-radius:4px;font-size:13px;font-weight:400}.composer--warning a{color:#1b1e25;font-weight:500;text-decoration:underline}.composer--warning a:active,.composer--warning a:focus,.composer--warning a:hover{text-decoration:none}.compose-form__sensitive-button{padding:10px;padding-top:0;font-size:14px;font-weight:500}.compose-form__sensitive-button.active{color:#2b90d9}.compose-form__sensitive-button input[type=checkbox]{display:none}.compose-form__sensitive-button .checkbox{display:inline-block;position:relative;border:1px solid #9baec8;box-sizing:border-box;width:18px;height:18px;flex:0 0 auto;margin-left:5px;margin-right:10px;top:-1px;border-radius:4px;vertical-align:middle}.compose-form__sensitive-button .checkbox.active{border-color:#2b90d9;background:#2b90d9}.composer--reply{margin:0 0 10px;border-radius:4px;padding:10px;background:#9baec8;min-height:23px;overflow-y:auto;flex:0 2 auto}.composer--reply>header{margin-bottom:5px;overflow:hidden}.composer--reply>header>.account.small{color:#000}.composer--reply>header>.cancel{float:right;line-height:24px}.composer--reply>.content{position:relative;margin:10px 0;padding:0 12px;font-size:14px;line-height:20px;color:#000;word-wrap:break-word;font-weight:400;overflow:visible;white-space:pre-wrap;padding-top:5px;overflow:hidden}.composer--reply>.content p,.composer--reply>.content pre,.composer--reply>.content blockquote{margin-bottom:20px;white-space:pre-wrap}.composer--reply>.content p:last-child,.composer--reply>.content pre:last-child,.composer--reply>.content blockquote:last-child{margin-bottom:0}.composer--reply>.content h1,.composer--reply>.content h2,.composer--reply>.content h3,.composer--reply>.content h4,.composer--reply>.content h5{margin-top:20px;margin-bottom:20px}.composer--reply>.content h1,.composer--reply>.content h2{font-weight:700;font-size:18px}.composer--reply>.content h2{font-size:16px}.composer--reply>.content h3,.composer--reply>.content h4,.composer--reply>.content h5{font-weight:500}.composer--reply>.content blockquote{padding-left:10px;border-left:3px solid #000;color:#000;white-space:normal}.composer--reply>.content blockquote p:last-child{margin-bottom:0}.composer--reply>.content b,.composer--reply>.content strong{font-weight:700}.composer--reply>.content em,.composer--reply>.content i{font-style:italic}.composer--reply>.content sub{font-size:smaller;text-align:sub}.composer--reply>.content ul,.composer--reply>.content ol{margin-left:1em}.composer--reply>.content ul p,.composer--reply>.content ol p{margin:0}.composer--reply>.content ul{list-style-type:disc}.composer--reply>.content ol{list-style-type:decimal}.composer--reply>.content a{color:#1b1e25;text-decoration:none}.composer--reply>.content a:hover{text-decoration:underline}.composer--reply>.content a.mention:hover{text-decoration:none}.composer--reply>.content a.mention:hover span{text-decoration:underline}.composer--reply .emojione{width:20px;height:20px;margin:-5px 0 0}.compose-form__autosuggest-wrapper,.autosuggest-input{position:relative;width:100%}.compose-form__autosuggest-wrapper label .autosuggest-textarea__textarea,.autosuggest-input label .autosuggest-textarea__textarea{display:block;box-sizing:border-box;margin:0;border:none;border-radius:4px 4px 0 0;padding:10px 32px 0 10px;width:100%;min-height:100px;outline:0;color:#000;background:#fff;font-size:14px;font-family:inherit;resize:none;scrollbar-color:initial}.compose-form__autosuggest-wrapper label .autosuggest-textarea__textarea::placeholder,.autosuggest-input label .autosuggest-textarea__textarea::placeholder{color:#c2cede}.compose-form__autosuggest-wrapper label .autosuggest-textarea__textarea::-webkit-scrollbar,.autosuggest-input label .autosuggest-textarea__textarea::-webkit-scrollbar{all:unset}.compose-form__autosuggest-wrapper label .autosuggest-textarea__textarea:disabled,.autosuggest-input label .autosuggest-textarea__textarea:disabled{background:#d9e1e8}.compose-form__autosuggest-wrapper label .autosuggest-textarea__textarea:focus,.autosuggest-input label .autosuggest-textarea__textarea:focus{outline:0}@media screen and (max-width: 630px){.auto-columns .compose-form__autosuggest-wrapper label .autosuggest-textarea__textarea,.auto-columns .autosuggest-input label .autosuggest-textarea__textarea{font-size:16px}}.single-column .compose-form__autosuggest-wrapper label .autosuggest-textarea__textarea,.single-column .autosuggest-input label .autosuggest-textarea__textarea{font-size:16px}@media screen and (max-width: 600px){.auto-columns .compose-form__autosuggest-wrapper label .autosuggest-textarea__textarea,.single-column .compose-form__autosuggest-wrapper label .autosuggest-textarea__textarea,.auto-columns .autosuggest-input label .autosuggest-textarea__textarea,.single-column .autosuggest-input label .autosuggest-textarea__textarea{height:100px !important;resize:vertical}}.composer--textarea--icons{display:block;position:absolute;top:29px;right:5px;bottom:5px;overflow:hidden}.composer--textarea--icons>.textarea_icon{display:block;margin:2px 0 0 2px;width:24px;height:24px;color:#1b1e25;font-size:18px;line-height:24px;text-align:center;opacity:.8}.autosuggest-textarea__suggestions-wrapper{position:relative;height:0}.autosuggest-textarea__suggestions{display:block;position:absolute;box-sizing:border-box;top:100%;border-radius:0 0 4px 4px;padding:6px;width:100%;color:#000;background:#d9e1e8;box-shadow:4px 4px 6px rgba(0,0,0,.4);font-size:14px;z-index:99;display:none}.autosuggest-textarea__suggestions--visible{display:block}.autosuggest-textarea__suggestions__item{padding:10px;cursor:pointer;border-radius:4px}.autosuggest-textarea__suggestions__item:hover,.autosuggest-textarea__suggestions__item:focus,.autosuggest-textarea__suggestions__item:active,.autosuggest-textarea__suggestions__item.selected{background:#b9c8d5}.autosuggest-textarea__suggestions__item>.account,.autosuggest-textarea__suggestions__item>.emoji,.autosuggest-textarea__suggestions__item>.autosuggest-hashtag{display:flex;flex-direction:row;align-items:center;justify-content:flex-start;line-height:18px;font-size:14px}.autosuggest-textarea__suggestions__item .autosuggest-hashtag{justify-content:space-between}.autosuggest-textarea__suggestions__item .autosuggest-hashtag__name{flex:1 1 auto;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.autosuggest-textarea__suggestions__item .autosuggest-hashtag strong{font-weight:500}.autosuggest-textarea__suggestions__item .autosuggest-hashtag__uses{flex:0 0 auto;text-align:right;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.autosuggest-textarea__suggestions__item>.account.small .display-name>span{color:#1b1e25}.composer--upload_form{overflow:hidden}.composer--upload_form>.content{display:flex;flex-direction:row;flex-wrap:wrap;font-family:inherit;padding:5px;overflow:hidden}.composer--upload_form--item{flex:1 1 0;margin:5px;min-width:40%}.composer--upload_form--item>div{position:relative;border-radius:4px;height:140px;width:100%;background-color:#000;background-position:center;background-size:cover;background-repeat:no-repeat;overflow:hidden}.composer--upload_form--item>div textarea{display:block;position:absolute;box-sizing:border-box;bottom:0;left:0;margin:0;border:0;padding:10px;width:100%;color:#ecf0f4;background:linear-gradient(0deg, rgba(0, 0, 0, 0.8) 0, rgba(0, 0, 0, 0.35) 80%, transparent);font-size:14px;font-family:inherit;font-weight:500;opacity:0;z-index:2;transition:opacity .1s ease}.composer--upload_form--item>div textarea:focus{color:#fff}.composer--upload_form--item>div textarea::placeholder{opacity:.54;color:#ecf0f4}.composer--upload_form--item>div>.close{mix-blend-mode:difference}.composer--upload_form--item.active>div textarea{opacity:1}.composer--upload_form--actions{background:linear-gradient(180deg, rgba(0, 0, 0, 0.8) 0, rgba(0, 0, 0, 0.35) 80%, transparent);display:flex;align-items:flex-start;justify-content:space-between;opacity:0;transition:opacity .1s ease}.composer--upload_form--actions .icon-button{flex:0 1 auto;color:#d9e1e8;font-size:14px;font-weight:500;padding:10px;font-family:inherit}.composer--upload_form--actions .icon-button:hover,.composer--upload_form--actions .icon-button:focus,.composer--upload_form--actions .icon-button:active{color:#e6ebf0}.composer--upload_form--actions.active{opacity:1}.composer--upload_form--progress{display:flex;padding:10px;color:#dde3ec;overflow:hidden}.composer--upload_form--progress>.fa{font-size:34px;margin-right:10px}.composer--upload_form--progress>.message{flex:1 1 auto}.composer--upload_form--progress>.message>span{display:block;font-size:12px;font-weight:500;text-transform:uppercase}.composer--upload_form--progress>.message>.backdrop{position:relative;margin-top:5px;border-radius:6px;width:100%;height:6px;background:#606984}.composer--upload_form--progress>.message>.backdrop>.tracker{position:absolute;top:0;left:0;height:6px;border-radius:6px;background:#2b5fd9}.compose-form__modifiers{color:#000;font-family:inherit;font-size:14px;background:#fff}.composer--options-wrapper{padding:10px;background:#ebebeb;border-radius:0 0 4px 4px;height:27px;display:flex;justify-content:space-between;flex:0 0 auto}.composer--options{display:flex;flex:0 0 auto}.composer--options>*{display:inline-block;box-sizing:content-box;padding:0 3px;height:27px;line-height:27px;vertical-align:bottom}.composer--options>hr{display:inline-block;margin:0 3px;border-width:0 0 0 1px;border-style:none none none solid;border-color:transparent transparent transparent #c2c2c2;padding:0;width:0;height:27px;background:transparent}.compose--counter-wrapper{align-self:center;margin-right:4px}.composer--options--dropdown.open>.value{border-radius:4px 4px 0 0;box-shadow:0 -4px 4px rgba(0,0,0,.1);color:#fff;background:#2b5fd9;transition:none}.composer--options--dropdown.open.top>.value{border-radius:0 0 4px 4px;box-shadow:0 4px 4px rgba(0,0,0,.1)}.composer--options--dropdown--content{position:absolute;border-radius:4px;box-shadow:2px 4px 15px rgba(0,0,0,.4);background:#fff;overflow:hidden;transform-origin:50% 0}.composer--options--dropdown--content--item{display:flex;align-items:center;padding:10px;color:#000;cursor:pointer}.composer--options--dropdown--content--item>.content{flex:1 1 auto;color:#1b1e25}.composer--options--dropdown--content--item>.content:not(:first-child){margin-left:10px}.composer--options--dropdown--content--item>.content strong{display:block;color:#000;font-weight:500}.composer--options--dropdown--content--item:hover,.composer--options--dropdown--content--item.active{background:#2b5fd9;color:#fff}.composer--options--dropdown--content--item:hover>.content,.composer--options--dropdown--content--item.active>.content{color:#fff}.composer--options--dropdown--content--item:hover>.content strong,.composer--options--dropdown--content--item.active>.content strong{color:#fff}.composer--options--dropdown--content--item.active:hover{background:#3c6cdc}.composer--publisher{padding-top:10px;text-align:right;white-space:nowrap;overflow:hidden;justify-content:flex-end;flex:0 0 auto}.composer--publisher>.primary{display:inline-block;margin:0;padding:0 10px;text-align:center}.composer--publisher>.side_arm{display:inline-block;margin:0 2px;padding:0;width:36px;text-align:center}.composer--publisher.over>.count{color:#ff5050}.column__wrapper{display:flex;flex:1 1 auto;position:relative}.columns-area{display:flex;flex:1 1 auto;flex-direction:row;justify-content:flex-start;overflow-x:auto;position:relative}.columns-area__panels{display:flex;justify-content:center;width:100%;height:100%;min-height:100vh}.columns-area__panels__pane{height:100%;overflow:hidden;pointer-events:none;display:flex;justify-content:flex-end;min-width:285px}.columns-area__panels__pane--start{justify-content:flex-start}.columns-area__panels__pane__inner{position:fixed;width:285px;pointer-events:auto;height:100%}.columns-area__panels__main{box-sizing:border-box;width:100%;max-width:600px;flex:0 0 auto;display:flex;flex-direction:column}@media screen and (min-width: 415px){.columns-area__panels__main{padding:0 10px}}.tabs-bar__wrapper{background:#17191f;position:sticky;top:0;z-index:2;padding-top:0}@media screen and (min-width: 415px){.tabs-bar__wrapper{padding-top:10px}}.tabs-bar__wrapper .tabs-bar{margin-bottom:0}@media screen and (min-width: 415px){.tabs-bar__wrapper .tabs-bar{margin-bottom:10px}}.react-swipeable-view-container,.react-swipeable-view-container .columns-area,.react-swipeable-view-container .column{height:100%}.react-swipeable-view-container>*{display:flex;align-items:center;justify-content:center;height:100%}.column{width:330px;position:relative;box-sizing:border-box;display:flex;flex-direction:column}.column>.scrollable{background:#282c37}.ui{flex:0 0 auto;display:flex;flex-direction:column;width:100%;height:100%}.column{overflow:hidden}.column-back-button{box-sizing:border-box;width:100%;background:#313543;color:#2b90d9;cursor:pointer;flex:0 0 auto;font-size:16px;border:0;text-align:unset;padding:15px;margin:0;z-index:3}.column-back-button:hover{text-decoration:underline}.column-header__back-button{background:#313543;border:0;font-family:inherit;color:#2b90d9;cursor:pointer;flex:0 0 auto;font-size:16px;padding:0 5px 0 0;z-index:3}.column-header__back-button:hover{text-decoration:underline}.column-header__back-button:last-child{padding:0 15px 0 0}.column-back-button__icon{display:inline-block;margin-right:5px}.column-back-button--slim{position:relative}.column-back-button--slim-button{cursor:pointer;flex:0 0 auto;font-size:16px;padding:15px;position:absolute;right:0;top:-48px}.column-link{background:#393f4f;color:#fff;display:block;font-size:16px;padding:15px;text-decoration:none}.column-link:hover,.column-link:focus,.column-link:active{background:#404657}.column-link:focus{outline:0}.column-link--transparent{background:transparent;color:#d9e1e8}.column-link--transparent:hover,.column-link--transparent:focus,.column-link--transparent:active{background:transparent;color:#fff}.column-link--transparent.active{color:#2b5fd9}.column-link__icon{display:inline-block;margin-right:5px}.column-subheading{background:#282c37;color:#c2cede;padding:8px 20px;font-size:12px;font-weight:500;text-transform:uppercase;cursor:default}.column-header__wrapper{position:relative;flex:0 0 auto;z-index:1}.column-header__wrapper.active{box-shadow:0 1px 0 rgba(43,144,217,.3)}.column-header__wrapper.active::before{display:block;content:\"\";position:absolute;bottom:-13px;left:0;right:0;margin:0 auto;width:60%;pointer-events:none;height:28px;z-index:1;background:radial-gradient(ellipse, rgba(43, 95, 217, 0.23) 0%, rgba(43, 95, 217, 0) 60%)}.column-header__wrapper .announcements{z-index:1;position:relative}.column-header{display:flex;font-size:16px;background:#313543;flex:0 0 auto;cursor:pointer;position:relative;z-index:2;outline:0;overflow:hidden}.column-header>button{margin:0;border:none;padding:15px;color:inherit;background:transparent;font:inherit;text-align:left;text-overflow:ellipsis;overflow:hidden;white-space:nowrap;flex:1}.column-header>.column-header__back-button{color:#2b90d9}.column-header.active .column-header__icon{color:#2b90d9;text-shadow:0 0 10px rgba(43,95,217,.4)}.column-header:focus,.column-header:active{outline:0}.column{width:330px;position:relative;box-sizing:border-box;display:flex;flex-direction:column;overflow:hidden}.wide .columns-area:not(.columns-area--mobile) .column{flex:auto;min-width:330px;max-width:400px}.column>.scrollable{background:#282c37}.column-header__buttons{height:48px;display:flex;margin-left:0}.column-header__links{margin-bottom:14px}.column-header__links .text-btn{margin-right:10px}.column-header__button,.column-header__notif-cleaning-buttons button{background:#313543;border:0;color:#dde3ec;cursor:pointer;font-size:16px;padding:0 15px}.column-header__button:hover,.column-header__notif-cleaning-buttons button:hover{color:#f4f6f9}.column-header__button.active,.column-header__notif-cleaning-buttons button.active{color:#fff;background:#393f4f}.column-header__button.active:hover,.column-header__notif-cleaning-buttons button.active:hover{color:#fff;background:#393f4f}.column-header__button:focus,.column-header__notif-cleaning-buttons button:focus{text-shadow:0 0 4px #2454c7}.column-header__notif-cleaning-buttons{display:flex;align-items:stretch;justify-content:space-around}.column-header__notif-cleaning-buttons button{background:transparent;text-align:center;padding:10px 0;white-space:pre-wrap}.column-header__notif-cleaning-buttons b{font-weight:bold}.column-header__collapsible-inner.nopad-drawer{padding:0}.column-header__collapsible{max-height:70vh;overflow:hidden;overflow-y:auto;color:#dde3ec;transition:max-height 150ms ease-in-out,opacity 300ms linear;opacity:1;z-index:1;position:relative}.column-header__collapsible.collapsed{max-height:0;opacity:.5}.column-header__collapsible.animating{overflow-y:hidden}.column-header__collapsible hr{height:0;background:transparent;border:0;border-top:1px solid #42485a;margin:10px 0}.column-header__collapsible.ncd{transition:none}.column-header__collapsible.ncd.collapsed{max-height:0;opacity:.7}.column-header__collapsible-inner{background:#393f4f;padding:15px}.column-header__setting-btn:hover{color:#dde3ec;text-decoration:underline}.column-header__setting-arrows{float:right}.column-header__setting-arrows .column-header__setting-btn{padding:0 10px}.column-header__setting-arrows .column-header__setting-btn:last-child{padding-right:0}.column-header__title{display:inline-block;text-overflow:ellipsis;overflow:hidden;white-space:nowrap;flex:1}.column-header__icon{display:inline-block;margin-right:5px}.empty-column-indicator,.error-column,.follow_requests-unlocked_explanation{color:#c2cede;background:#282c37;text-align:center;padding:20px;font-size:15px;font-weight:400;cursor:default;display:flex;flex:1 1 auto;align-items:center;justify-content:center}@supports(display: grid){.empty-column-indicator,.error-column,.follow_requests-unlocked_explanation{contain:strict}}.empty-column-indicator>span,.error-column>span,.follow_requests-unlocked_explanation>span{max-width:400px}.empty-column-indicator a,.error-column a,.follow_requests-unlocked_explanation a{color:#2b90d9;text-decoration:none}.empty-column-indicator a:hover,.error-column a:hover,.follow_requests-unlocked_explanation a:hover{text-decoration:underline}.follow_requests-unlocked_explanation{background:#1f232b;contain:initial}.error-column{flex-direction:column}.single-column.navbar-under .tabs-bar{margin-top:0 !important;margin-bottom:-6px !important}@media screen and (max-width: 415px){.auto-columns.navbar-under .tabs-bar{margin-top:0 !important;margin-bottom:-6px !important}}@media screen and (max-width: 415px){.auto-columns.navbar-under .react-swipeable-view-container .columns-area,.single-column.navbar-under .react-swipeable-view-container .columns-area{height:100% !important}}.column-inline-form{padding:7px 15px;padding-right:5px;display:flex;justify-content:flex-start;align-items:center;background:#313543}.column-inline-form label{flex:1 1 auto}.column-inline-form label input{width:100%;margin-bottom:6px}.column-inline-form label input:focus{outline:0}.column-inline-form .icon-button{flex:0 0 auto;margin:0 5px}.regeneration-indicator{text-align:center;font-size:16px;font-weight:500;color:#c2cede;background:#282c37;cursor:default;display:flex;flex:1 1 auto;flex-direction:column;align-items:center;justify-content:center;padding:20px}.regeneration-indicator__figure,.regeneration-indicator__figure img{display:block;width:auto;height:160px;margin:0}.regeneration-indicator--without-header{padding-top:68px}.regeneration-indicator__label{margin-top:30px}.regeneration-indicator__label strong{display:block;margin-bottom:10px;color:#c2cede}.regeneration-indicator__label span{font-size:15px;font-weight:400}.directory__list{width:100%;margin:10px 0;transition:opacity 100ms ease-in}.directory__list.loading{opacity:.7}@media screen and (max-width: 415px){.directory__list{margin:0}}.directory__card{box-sizing:border-box;margin-bottom:10px}.directory__card__img{height:125px;position:relative;background:#0e1014;overflow:hidden}.directory__card__img img{display:block;width:100%;height:100%;margin:0;object-fit:cover}.directory__card__bar{display:flex;align-items:center;background:#313543;padding:10px}.directory__card__bar__name{flex:1 1 auto;display:flex;align-items:center;text-decoration:none;overflow:hidden}.directory__card__bar__relationship{width:23px;min-height:1px;flex:0 0 auto}.directory__card__bar .avatar{flex:0 0 auto;width:48px;height:48px;padding-top:2px}.directory__card__bar .avatar img{width:100%;height:100%;display:block;margin:0;border-radius:4px;background:#17191f;object-fit:cover}.directory__card__bar .display-name{margin-left:15px;text-align:left}.directory__card__bar .display-name strong{font-size:15px;color:#fff;font-weight:500;overflow:hidden;text-overflow:ellipsis}.directory__card__bar .display-name span{display:block;font-size:14px;color:#dde3ec;font-weight:400;overflow:hidden;text-overflow:ellipsis}.directory__card__extra{background:#282c37;display:flex;align-items:center;justify-content:center}.directory__card__extra .accounts-table__count{width:33.33%;flex:0 0 auto;padding:15px 0}.directory__card__extra .account__header__content{box-sizing:border-box;padding:15px 10px;border-bottom:1px solid #393f4f;width:100%;min-height:48px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.directory__card__extra .account__header__content p{display:none}.directory__card__extra .account__header__content p:first-child{display:inline}.directory__card__extra .account__header__content br{display:none}.filter-form{background:#282c37}.filter-form__column{padding:10px 15px}.filter-form .radio-button{display:block}.radio-button{font-size:14px;position:relative;display:inline-block;padding:6px 0;line-height:18px;cursor:default;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:pointer}.radio-button input[type=radio],.radio-button input[type=checkbox]{display:none}.radio-button__input{display:inline-block;position:relative;border:1px solid #9baec8;box-sizing:border-box;width:18px;height:18px;flex:0 0 auto;margin-right:10px;top:-1px;border-radius:50%;vertical-align:middle}.radio-button__input.checked{border-color:#4e79df;background:#4e79df}.search{position:relative}.search__input{outline:0;box-sizing:border-box;width:100%;border:none;box-shadow:none;font-family:inherit;background:#282c37;color:#dde3ec;font-size:14px;margin:0;display:block;padding:15px;padding-right:30px;line-height:18px;font-size:16px}.search__input::placeholder{color:#eaeef3}.search__input::-moz-focus-inner{border:0}.search__input::-moz-focus-inner,.search__input:focus,.search__input:active{outline:0 !important}.search__input:focus{background:#313543}@media screen and (max-width: 600px){.search__input{font-size:16px}}.search__icon::-moz-focus-inner{border:0}.search__icon::-moz-focus-inner,.search__icon:focus{outline:0 !important}.search__icon .fa{position:absolute;top:16px;right:10px;z-index:2;display:inline-block;opacity:0;transition:all 100ms linear;transition-property:color,transform,opacity;font-size:18px;width:18px;height:18px;color:#ecf0f4;cursor:default;pointer-events:none}.search__icon .fa.active{pointer-events:auto;opacity:.3}.search__icon .fa-search{transform:rotate(0deg)}.search__icon .fa-search.active{pointer-events:auto;opacity:.3}.search__icon .fa-times-circle{top:17px;transform:rotate(0deg);color:#8d9ac2;cursor:pointer}.search__icon .fa-times-circle.active{transform:rotate(90deg)}.search__icon .fa-times-circle:hover{color:#a4afce}.search-results__header{color:#c2cede;background:#2c313d;border-bottom:1px solid #1f232b;padding:15px 10px;font-size:14px;font-weight:500}.search-results__info{padding:20px;color:#dde3ec;text-align:center}.trends__header{color:#c2cede;background:#2c313d;border-bottom:1px solid #1f232b;font-weight:500;padding:15px;font-size:16px;cursor:default}.trends__header .fa{display:inline-block;margin-right:5px}.trends__item{display:flex;align-items:center;padding:15px;border-bottom:1px solid #393f4f}.trends__item:last-child{border-bottom:0}.trends__item__name{flex:1 1 auto;color:#c2cede;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.trends__item__name strong{font-weight:500}.trends__item__name a{color:#dde3ec;text-decoration:none;font-size:14px;font-weight:500;display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.trends__item__name a:hover span,.trends__item__name a:focus span,.trends__item__name a:active span{text-decoration:underline}.trends__item__current{flex:0 0 auto;font-size:24px;line-height:36px;font-weight:500;text-align:right;padding-right:15px;margin-left:5px;color:#ecf0f4}.trends__item__sparkline{flex:0 0 auto;width:50px}.trends__item__sparkline path:first-child{fill:rgba(43,144,217,.25) !important;fill-opacity:1 !important}.trends__item__sparkline path:last-child{stroke:#459ede !important}.emojione{font-size:inherit;vertical-align:middle;object-fit:contain;margin:-0.2ex .15em .2ex;width:16px;height:16px}.emojione img{width:auto}.emoji-picker-dropdown__menu{background:#fff;position:absolute;box-shadow:4px 4px 6px rgba(0,0,0,.4);border-radius:4px;margin-top:5px;z-index:2}.emoji-picker-dropdown__menu .emoji-mart-scroll{transition:opacity 200ms ease}.emoji-picker-dropdown__menu.selecting .emoji-mart-scroll{opacity:.5}.emoji-picker-dropdown__modifiers{position:absolute;top:60px;right:11px;cursor:pointer}.emoji-picker-dropdown__modifiers__menu{position:absolute;z-index:4;top:-4px;left:-8px;background:#fff;border-radius:4px;box-shadow:1px 2px 6px rgba(0,0,0,.2);overflow:hidden}.emoji-picker-dropdown__modifiers__menu button{display:block;cursor:pointer;border:0;padding:4px 8px;background:transparent}.emoji-picker-dropdown__modifiers__menu button:hover,.emoji-picker-dropdown__modifiers__menu button:focus,.emoji-picker-dropdown__modifiers__menu button:active{background:rgba(217,225,232,.4)}.emoji-picker-dropdown__modifiers__menu .emoji-mart-emoji{height:22px}.emoji-mart-emoji span{background-repeat:no-repeat}.emoji-button{display:block;padding:5px 5px 2px 2px;outline:0;cursor:pointer}.emoji-button:active,.emoji-button:focus{outline:0 !important}.emoji-button img{filter:grayscale(100%);opacity:.8;display:block;margin:0;width:22px;height:22px}.emoji-button:hover img,.emoji-button:active img,.emoji-button:focus img{opacity:1;filter:none}.doodle-modal{width:unset}.doodle-modal__container{background:#d9e1e8;text-align:center;line-height:0}.doodle-modal__container canvas{border:5px solid #d9e1e8}.doodle-modal__action-bar .filler{flex-grow:1;margin:0;padding:0}.doodle-modal__action-bar .doodle-toolbar{line-height:1;display:flex;flex-direction:column;flex-grow:0;justify-content:space-around}.doodle-modal__action-bar .doodle-toolbar.with-inputs label{display:inline-block;width:70px;text-align:right;margin-right:2px}.doodle-modal__action-bar .doodle-toolbar.with-inputs input[type=number],.doodle-modal__action-bar .doodle-toolbar.with-inputs input[type=text]{width:40px}.doodle-modal__action-bar .doodle-toolbar.with-inputs span.val{display:inline-block;text-align:left;width:50px}.doodle-modal__action-bar .doodle-palette{padding-right:0 !important;border:1px solid #000;line-height:.2rem;flex-grow:0;background:#fff}.doodle-modal__action-bar .doodle-palette button{appearance:none;width:1rem;height:1rem;margin:0;padding:0;text-align:center;color:#000;text-shadow:0 0 1px #fff;cursor:pointer;box-shadow:inset 0 0 1px rgba(255,255,255,.5);border:1px solid #000;outline-offset:-1px}.doodle-modal__action-bar .doodle-palette button.foreground{outline:1px dashed #fff}.doodle-modal__action-bar .doodle-palette button.background{outline:1px dashed red}.doodle-modal__action-bar .doodle-palette button.foreground.background{outline:1px dashed red;border-color:#fff}.drawer{width:300px;box-sizing:border-box;display:flex;flex-direction:column;overflow-y:hidden;padding:10px 5px;flex:none}.drawer:first-child{padding-left:10px}.drawer:last-child{padding-right:10px}@media screen and (max-width: 630px){.auto-columns .drawer{flex:auto}}.single-column .drawer{flex:auto}@media screen and (max-width: 630px){.auto-columns .drawer,.auto-columns .drawer:first-child,.auto-columns .drawer:last-child,.single-column .drawer,.single-column .drawer:first-child,.single-column .drawer:last-child{padding:0}}.wide .drawer{min-width:300px;max-width:400px;flex:1 1 200px}@media screen and (max-width: 630px){:root .auto-columns .drawer{flex:auto;width:100%;min-width:0;max-width:none;padding:0}}:root .single-column .drawer{flex:auto;width:100%;min-width:0;max-width:none;padding:0}.react-swipeable-view-container .drawer{height:100%}.drawer--header{display:flex;flex-direction:row;margin-bottom:10px;flex:none;background:#393f4f;font-size:16px}.drawer--header>*{display:block;box-sizing:border-box;border-bottom:2px solid transparent;padding:15px 5px 13px;height:48px;flex:1 1 auto;color:#dde3ec;text-align:center;text-decoration:none;cursor:pointer}.drawer--header a{transition:background 100ms ease-in}.drawer--header a:focus,.drawer--header a:hover{outline:none;background:#2e3340;transition:background 200ms ease-out}.search{position:relative;margin-bottom:10px;flex:none}@media screen and (max-width: 415px){.auto-columns .search,.single-column .search{margin-bottom:0}}@media screen and (max-width: 630px){.auto-columns .search{font-size:16px}}.single-column .search{font-size:16px}.search-popout{background:#fff;border-radius:4px;padding:10px 14px;padding-bottom:14px;margin-top:10px;color:#364861;box-shadow:2px 4px 15px rgba(0,0,0,.4)}.search-popout h4{text-transform:uppercase;color:#364861;font-size:13px;font-weight:500;margin-bottom:10px}.search-popout li{padding:4px 0}.search-popout ul{margin-bottom:10px}.search-popout em{font-weight:500;color:#000}.drawer--account{padding:10px;color:#dde3ec;display:flex;align-items:center}.drawer--account a{color:inherit;text-decoration:none}.drawer--account .acct{display:block;color:#ecf0f4;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.navigation-bar__profile{flex:1 1 auto;margin-left:8px;overflow:hidden}.drawer--results{background:#282c37;overflow-x:hidden;overflow-y:auto}.drawer--results>header{color:#c2cede;background:#2c313d;padding:15px;font-weight:500;font-size:16px;cursor:default}.drawer--results>header .fa{display:inline-block;margin-right:5px}.drawer--results>section{margin-bottom:5px}.drawer--results>section h5{background:#1f232b;border-bottom:1px solid #393f4f;cursor:default;display:flex;padding:15px;font-weight:500;font-size:16px;color:#c2cede}.drawer--results>section h5 .fa{display:inline-block;margin-right:5px}.drawer--results>section .account:last-child,.drawer--results>section>div:last-child .status{border-bottom:0}.drawer--results>section>.hashtag{display:block;padding:10px;color:#ecf0f4;text-decoration:none}.drawer--results>section>.hashtag:hover,.drawer--results>section>.hashtag:active,.drawer--results>section>.hashtag:focus{color:#f9fafb;text-decoration:underline}.drawer__pager{box-sizing:border-box;padding:0;flex-grow:1;position:relative;overflow:hidden;display:flex}.drawer__inner{position:absolute;top:0;left:0;background:#444b5d;box-sizing:border-box;padding:0;display:flex;flex-direction:column;overflow:hidden;overflow-y:auto;width:100%;height:100%}.drawer__inner.darker{background:#282c37}.drawer__inner__mastodon{background:#444b5d url('data:image/svg+xml;utf8,') no-repeat bottom/100% auto;flex:1;min-height:47px;display:none}.drawer__inner__mastodon>img{display:block;object-fit:contain;object-position:bottom left;width:85%;height:100%;pointer-events:none;user-drag:none;user-select:none}.drawer__inner__mastodon>.mastodon{display:block;width:100%;height:100%;border:none;cursor:inherit}@media screen and (min-height: 640px){.drawer__inner__mastodon{display:block}}.pseudo-drawer{background:#444b5d;font-size:13px;text-align:left}.drawer__backdrop{cursor:pointer;position:absolute;top:0;left:0;width:100%;height:100%;background:rgba(0,0,0,.5)}.video-error-cover{align-items:center;background:#000;color:#fff;cursor:pointer;display:flex;flex-direction:column;height:100%;justify-content:center;margin-top:8px;position:relative;text-align:center;z-index:100}.media-spoiler{background:#000;color:#dde3ec;border:0;width:100%;height:100%}.media-spoiler:hover,.media-spoiler:active,.media-spoiler:focus{color:#f7f9fb}.status__content>.media-spoiler{margin-top:15px}.media-spoiler.full-width{margin-left:-14px;margin-right:-14px;width:inherit;max-width:none;height:250px;border-radius:0px}.media-spoiler__warning{display:block;font-size:14px}.media-spoiler__trigger{display:block;font-size:11px;font-weight:500}.media-gallery__gifv__label{display:block;position:absolute;color:#fff;background:rgba(0,0,0,.5);bottom:6px;left:6px;padding:2px 6px;border-radius:2px;font-size:11px;font-weight:600;z-index:1;pointer-events:none;opacity:.9;transition:opacity .1s ease;line-height:18px}.media-gallery__gifv:hover .media-gallery__gifv__label{opacity:1}.media-gallery__audio{height:100%;display:flex;flex-direction:column}.media-gallery__audio span{text-align:center;color:#dde3ec;display:flex;height:100%;align-items:center}.media-gallery__audio span p{width:100%}.media-gallery__audio audio{width:100%}.media-gallery{box-sizing:border-box;margin-top:8px;overflow:hidden;border-radius:4px;position:relative;width:100%;height:110px}.media-gallery.full-width{margin-left:-14px;margin-right:-14px;width:inherit;max-width:none;height:250px;border-radius:0px}.media-gallery__item{border:none;box-sizing:border-box;display:block;float:left;position:relative;border-radius:4px;overflow:hidden}.full-width .media-gallery__item{border-radius:0}.media-gallery__item.standalone .media-gallery__item-gifv-thumbnail{transform:none;top:0}.media-gallery__item.letterbox{background:#000}.media-gallery__item-thumbnail{cursor:zoom-in;display:block;text-decoration:none;color:#ecf0f4;position:relative;z-index:1}.media-gallery__item-thumbnail,.media-gallery__item-thumbnail img{height:100%;width:100%;object-fit:contain}.media-gallery__item-thumbnail:not(.letterbox),.media-gallery__item-thumbnail img:not(.letterbox){height:100%;object-fit:cover}.media-gallery__preview{width:100%;height:100%;object-fit:cover;position:absolute;top:0;left:0;z-index:0;background:#000}.media-gallery__preview--hidden{display:none}.media-gallery__gifv{height:100%;overflow:hidden;position:relative;width:100%;display:flex;justify-content:center}.media-gallery__item-gifv-thumbnail{cursor:zoom-in;height:100%;width:100%;position:relative;z-index:1;object-fit:contain;user-select:none}.media-gallery__item-gifv-thumbnail:not(.letterbox){height:100%;object-fit:cover}.media-gallery__item-thumbnail-label{clip:rect(1px 1px 1px 1px);clip:rect(1px, 1px, 1px, 1px);overflow:hidden;position:absolute}.video-modal__container{max-width:100vw;max-height:100vh}.audio-modal__container{width:50vw}.media-modal{width:100%;height:100%;position:relative}.media-modal .extended-video-player{width:100%;height:100%;display:flex;align-items:center;justify-content:center}.media-modal .extended-video-player video{max-width:100%;max-height:80%}.media-modal__closer{position:absolute;top:0;left:0;right:0;bottom:0}.media-modal__navigation{position:absolute;top:0;left:0;right:0;bottom:0;pointer-events:none;transition:opacity .3s linear;will-change:opacity}.media-modal__navigation *{pointer-events:auto}.media-modal__navigation.media-modal__navigation--hidden{opacity:0}.media-modal__navigation.media-modal__navigation--hidden *{pointer-events:none}.media-modal__nav{background:rgba(0,0,0,.5);box-sizing:border-box;border:0;color:#fff;cursor:pointer;display:flex;align-items:center;font-size:24px;height:20vmax;margin:auto 0;padding:30px 15px;position:absolute;top:0;bottom:0}.media-modal__nav--left{left:0}.media-modal__nav--right{right:0}.media-modal__pagination{width:100%;text-align:center;position:absolute;left:0;bottom:20px;pointer-events:none}.media-modal__meta{text-align:center;position:absolute;left:0;bottom:20px;width:100%;pointer-events:none}.media-modal__meta--shifted{bottom:62px}.media-modal__meta a{pointer-events:auto;text-decoration:none;font-weight:500;color:#d9e1e8}.media-modal__meta a:hover,.media-modal__meta a:focus,.media-modal__meta a:active{text-decoration:underline}.media-modal__page-dot{display:inline-block}.media-modal__button{background-color:#fff;height:12px;width:12px;border-radius:6px;margin:10px;padding:0;border:0;font-size:0}.media-modal__button--active{background-color:#2b5fd9}.media-modal__close{position:absolute;right:8px;top:8px;z-index:100}.detailed .video-player__volume__current,.detailed .video-player__volume::before,.fullscreen .video-player__volume__current,.fullscreen .video-player__volume::before{bottom:27px}.detailed .video-player__volume__handle,.fullscreen .video-player__volume__handle{bottom:23px}.audio-player{box-sizing:border-box;position:relative;background:#17191f;border-radius:4px;padding-bottom:44px;direction:ltr}.audio-player.editable{border-radius:0;height:100%}.audio-player__waveform{padding:15px 0;position:relative;overflow:hidden}.audio-player__waveform::before{content:\"\";display:block;position:absolute;border-top:1px solid #313543;width:100%;height:0;left:0;top:calc(50% + 1px)}.audio-player__progress-placeholder{background-color:rgba(78,121,223,.5)}.audio-player__wave-placeholder{background-color:#4a5266}.audio-player .video-player__controls{padding:0 15px;padding-top:10px;background:#17191f;border-top:1px solid #313543;border-radius:0 0 4px 4px}.video-player{overflow:hidden;position:relative;background:#000;max-width:100%;border-radius:4px;box-sizing:border-box;direction:ltr}.video-player.editable{border-radius:0;height:100% !important}.video-player:focus{outline:0}.detailed-status .video-player{width:100%;height:100%}.video-player.full-width{margin-left:-14px;margin-right:-14px;width:inherit;max-width:none;height:250px;border-radius:0px}.video-player video{max-width:100vw;max-height:80vh;z-index:1;position:relative}.video-player.fullscreen{width:100% !important;height:100% !important;margin:0}.video-player.fullscreen video{max-width:100% !important;max-height:100% !important;width:100% !important;height:100% !important;outline:0}.video-player.inline video{object-fit:contain;position:relative;top:50%;transform:translateY(-50%)}.video-player__controls{position:absolute;z-index:2;bottom:0;left:0;right:0;box-sizing:border-box;background:linear-gradient(0deg, rgba(0, 0, 0, 0.85) 0, rgba(0, 0, 0, 0.45) 60%, transparent);padding:0 15px;opacity:0;transition:opacity .1s ease}.video-player__controls.active{opacity:1}.video-player.inactive video,.video-player.inactive .video-player__controls{visibility:hidden}.video-player__spoiler{display:none;position:absolute;top:0;left:0;width:100%;height:100%;z-index:4;border:0;background:#000;color:#dde3ec;transition:none;pointer-events:none}.video-player__spoiler.active{display:block;pointer-events:auto}.video-player__spoiler.active:hover,.video-player__spoiler.active:active,.video-player__spoiler.active:focus{color:#f4f6f9}.video-player__spoiler__title{display:block;font-size:14px}.video-player__spoiler__subtitle{display:block;font-size:11px;font-weight:500}.video-player__buttons-bar{display:flex;justify-content:space-between;padding-bottom:10px}.video-player__buttons-bar .video-player__download__icon{color:inherit}.video-player__buttons-bar .video-player__download__icon .fa,.video-player__buttons-bar .video-player__download__icon:active .fa,.video-player__buttons-bar .video-player__download__icon:hover .fa,.video-player__buttons-bar .video-player__download__icon:focus .fa{color:inherit}.video-player__buttons{font-size:16px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.video-player__buttons.left button{padding-left:0}.video-player__buttons.right button{padding-right:0}.video-player__buttons button{background:transparent;padding:2px 10px;font-size:16px;border:0;color:rgba(255,255,255,.75)}.video-player__buttons button:active,.video-player__buttons button:hover,.video-player__buttons button:focus{color:#fff}.video-player__time-sep,.video-player__time-total,.video-player__time-current{font-size:14px;font-weight:500}.video-player__time-current{color:#fff;margin-left:60px}.video-player__time-sep{display:inline-block;margin:0 6px}.video-player__time-sep,.video-player__time-total{color:#fff}.video-player__volume{cursor:pointer;height:24px;display:inline}.video-player__volume::before{content:\"\";width:50px;background:rgba(255,255,255,.35);border-radius:4px;display:block;position:absolute;height:4px;left:70px;bottom:20px}.video-player__volume__current{display:block;position:absolute;height:4px;border-radius:4px;left:70px;bottom:20px;background:#4e79df}.video-player__volume__handle{position:absolute;z-index:3;border-radius:50%;width:12px;height:12px;bottom:16px;left:70px;transition:opacity .1s ease;background:#4e79df;box-shadow:1px 2px 6px rgba(0,0,0,.2);pointer-events:none}.video-player__link{padding:2px 10px}.video-player__link a{text-decoration:none;font-size:14px;font-weight:500;color:#fff}.video-player__link a:hover,.video-player__link a:active,.video-player__link a:focus{text-decoration:underline}.video-player__seek{cursor:pointer;height:24px;position:relative}.video-player__seek::before{content:\"\";width:100%;background:rgba(255,255,255,.35);border-radius:4px;display:block;position:absolute;height:4px;top:10px}.video-player__seek__progress,.video-player__seek__buffer{display:block;position:absolute;height:4px;border-radius:4px;top:10px;background:#4e79df}.video-player__seek__buffer{background:rgba(255,255,255,.2)}.video-player__seek__handle{position:absolute;z-index:3;opacity:0;border-radius:50%;width:12px;height:12px;top:6px;margin-left:-6px;transition:opacity .1s ease;background:#4e79df;box-shadow:1px 2px 6px rgba(0,0,0,.2);pointer-events:none}.video-player__seek__handle.active{opacity:1}.video-player__seek:hover .video-player__seek__handle{opacity:1}.video-player.detailed .video-player__buttons button,.video-player.fullscreen .video-player__buttons button{padding-top:10px;padding-bottom:10px}.sensitive-info{display:flex;flex-direction:row;align-items:center;position:absolute;top:4px;left:4px;z-index:100}.sensitive-marker{margin:0 3px;border-radius:2px;padding:2px 6px;color:rgba(255,255,255,.8);background:rgba(0,0,0,.5);font-size:12px;line-height:18px;text-transform:uppercase;opacity:.9;transition:opacity .1s ease}.media-gallery:hover .sensitive-marker{opacity:1}.list-editor{background:#282c37;flex-direction:column;border-radius:8px;box-shadow:2px 4px 15px rgba(0,0,0,.4);width:380px;overflow:hidden}@media screen and (max-width: 420px){.list-editor{width:90%}}.list-editor h4{padding:15px 0;background:#444b5d;font-weight:500;font-size:16px;text-align:center;border-radius:8px 8px 0 0}.list-editor .drawer__pager{height:50vh}.list-editor .drawer__inner{border-radius:0 0 8px 8px}.list-editor .drawer__inner.backdrop{width:calc(100% - 60px);box-shadow:2px 4px 15px rgba(0,0,0,.4);border-radius:0 0 0 8px}.list-editor__accounts{overflow-y:auto}.list-editor .account__display-name:hover strong{text-decoration:none}.list-editor .account__avatar{cursor:default}.list-editor .search{margin-bottom:0}.list-adder{background:#282c37;flex-direction:column;border-radius:8px;box-shadow:2px 4px 15px rgba(0,0,0,.4);width:380px;overflow:hidden}@media screen and (max-width: 420px){.list-adder{width:90%}}.list-adder__account{background:#444b5d}.list-adder__lists{background:#444b5d;height:50vh;border-radius:0 0 8px 8px;overflow-y:auto}.list-adder .list{padding:10px;border-bottom:1px solid #393f4f}.list-adder .list__wrapper{display:flex}.list-adder .list__display-name{flex:1 1 auto;overflow:hidden;text-decoration:none;font-size:16px;padding:10px}.emoji-mart{font-size:13px;display:inline-block;color:#000}.emoji-mart,.emoji-mart *{box-sizing:border-box;line-height:1.15}.emoji-mart .emoji-mart-emoji{padding:6px}.emoji-mart-bar{border:0 solid #c0cdd9}.emoji-mart-bar:first-child{border-bottom-width:1px;border-top-left-radius:5px;border-top-right-radius:5px;background:#d9e1e8}.emoji-mart-bar:last-child{border-top-width:1px;border-bottom-left-radius:5px;border-bottom-right-radius:5px;display:none}.emoji-mart-anchors{display:flex;justify-content:space-between;padding:0 6px;color:#1b1e25;line-height:0}.emoji-mart-anchor{position:relative;flex:1;text-align:center;padding:12px 4px;overflow:hidden;transition:color .1s ease-out;cursor:pointer}.emoji-mart-anchor:hover{color:#131419}.emoji-mart-anchor-selected{color:#2b90d9}.emoji-mart-anchor-selected:hover{color:#2485cb}.emoji-mart-anchor-selected .emoji-mart-anchor-bar{bottom:0}.emoji-mart-anchor-bar{position:absolute;bottom:-3px;left:0;width:100%;height:3px;background-color:#2558d0}.emoji-mart-anchors i{display:inline-block;width:100%;max-width:22px}.emoji-mart-anchors svg{fill:currentColor;max-height:18px}.emoji-mart-scroll{overflow-y:scroll;height:270px;max-height:35vh;padding:0 6px 6px;background:#fff;will-change:transform}.emoji-mart-scroll::-webkit-scrollbar-track:hover,.emoji-mart-scroll::-webkit-scrollbar-track:active{background-color:rgba(0,0,0,.3)}.emoji-mart-search{padding:10px;padding-right:45px;background:#fff}.emoji-mart-search input{font-size:14px;font-weight:400;padding:7px 9px;font-family:inherit;display:block;width:100%;background:rgba(217,225,232,.3);color:#000;border:1px solid #d9e1e8;border-radius:4px}.emoji-mart-search input::-moz-focus-inner{border:0}.emoji-mart-search input::-moz-focus-inner,.emoji-mart-search input:focus,.emoji-mart-search input:active{outline:0 !important}.emoji-mart-category .emoji-mart-emoji{cursor:pointer}.emoji-mart-category .emoji-mart-emoji span{z-index:1;position:relative;text-align:center}.emoji-mart-category .emoji-mart-emoji:hover::before{z-index:0;content:\"\";position:absolute;top:0;left:0;width:100%;height:100%;background-color:rgba(217,225,232,.7);border-radius:100%}.emoji-mart-category-label{z-index:2;position:relative;position:-webkit-sticky;position:sticky;top:0}.emoji-mart-category-label span{display:block;width:100%;font-weight:500;padding:5px 6px;background:#fff}.emoji-mart-emoji{position:relative;display:inline-block;font-size:0}.emoji-mart-emoji span{width:22px;height:22px}.emoji-mart-no-results{font-size:14px;text-align:center;padding-top:70px;color:#364861}.emoji-mart-no-results .emoji-mart-category-label{display:none}.emoji-mart-no-results .emoji-mart-no-results-label{margin-top:.2em}.emoji-mart-no-results .emoji-mart-emoji:hover::before{content:none}.emoji-mart-preview{display:none}.glitch.local-settings{position:relative;display:flex;flex-direction:row;background:#d9e1e8;color:#000;border-radius:8px;height:80vh;width:80vw;max-width:740px;max-height:450px;overflow:hidden}.glitch.local-settings label,.glitch.local-settings legend{display:block;font-size:14px}.glitch.local-settings .boolean label,.glitch.local-settings .radio_buttons label{position:relative;padding-left:28px;padding-top:3px}.glitch.local-settings .boolean label input,.glitch.local-settings .radio_buttons label input{position:absolute;left:0;top:0}.glitch.local-settings span.hint{display:block;color:#1b1e25}.glitch.local-settings h1{font-size:18px;font-weight:500;line-height:24px;margin-bottom:20px}.glitch.local-settings h2{font-size:15px;font-weight:500;line-height:20px;margin-top:20px;margin-bottom:10px}.glitch.local-settings__navigation__item{display:block;padding:15px 20px;color:inherit;background:#f2f5f7;border-bottom:1px #d9e1e8 solid;cursor:pointer;text-decoration:none;outline:none;transition:background .3s}.glitch.local-settings__navigation__item .text-icon-button{color:inherit;transition:unset}.glitch.local-settings__navigation__item:hover{background:#d9e1e8}.glitch.local-settings__navigation__item.active{background:#2b5fd9;color:#fff}.glitch.local-settings__navigation__item.close,.glitch.local-settings__navigation__item.close:hover{background:#df405a;color:#fff}.glitch.local-settings__navigation{background:#f2f5f7;width:212px;font-size:15px;line-height:20px;overflow-y:auto}.glitch.local-settings__page{display:block;flex:auto;padding:15px 20px 15px 20px;width:360px;overflow-y:auto}.glitch.local-settings__page__item{margin-bottom:2px}.glitch.local-settings__page__item.string,.glitch.local-settings__page__item.radio_buttons{margin-top:10px;margin-bottom:10px}@media screen and (max-width: 630px){.glitch.local-settings__navigation{width:40px;flex-shrink:0}.glitch.local-settings__navigation__item{padding:10px}.glitch.local-settings__navigation__item span:last-of-type{display:none}}.error-boundary{color:#fff;font-size:15px;line-height:20px}.error-boundary h1{font-size:26px;line-height:36px;font-weight:400;margin-bottom:8px}.error-boundary a{color:#fff;text-decoration:underline}.error-boundary ul{list-style:disc;margin-left:0;padding-left:1em}.error-boundary textarea.web_app_crash-stacktrace{width:100%;resize:none;white-space:pre;font-family:monospace,monospace}.compose-panel{width:285px;margin-top:10px;display:flex;flex-direction:column;height:calc(100% - 10px);overflow-y:hidden}.compose-panel .search__input{line-height:18px;font-size:16px;padding:15px;padding-right:30px}.compose-panel .search__icon .fa{top:15px}.compose-panel .drawer--account{flex:0 1 48px}.compose-panel .flex-spacer{background:transparent}.compose-panel .composer{flex:1;overflow-y:hidden;display:flex;flex-direction:column;min-height:310px}.compose-panel .compose-form__autosuggest-wrapper{overflow-y:auto;background-color:#fff;border-radius:4px 4px 0 0;flex:0 1 auto}.compose-panel .autosuggest-textarea__textarea{overflow-y:hidden}.compose-panel .compose-form__upload-thumbnail{height:80px}.navigation-panel{margin-top:10px;margin-bottom:10px;height:calc(100% - 20px);overflow-y:auto;display:flex;flex-direction:column}.navigation-panel>a{flex:0 0 auto}.navigation-panel hr{flex:0 0 auto;border:0;background:transparent;border-top:1px solid #313543;margin:10px 0}.navigation-panel .flex-spacer{background:transparent}@media screen and (min-width: 600px){.tabs-bar__link span{display:inline}}.columns-area--mobile{flex-direction:column;width:100%;margin:0 auto}.columns-area--mobile .column,.columns-area--mobile .drawer{width:100%;height:100%;padding:0}.columns-area--mobile .directory__list{display:grid;grid-gap:10px;grid-template-columns:minmax(0, 50%) minmax(0, 50%)}@media screen and (max-width: 415px){.columns-area--mobile .directory__list{display:block}}.columns-area--mobile .directory__card{margin-bottom:0}.columns-area--mobile .filter-form{display:flex}.columns-area--mobile .autosuggest-textarea__textarea{font-size:16px}.columns-area--mobile .search__input{line-height:18px;font-size:16px;padding:15px;padding-right:30px}.columns-area--mobile .search__icon .fa{top:15px}.columns-area--mobile .scrollable{overflow:visible}@supports(display: grid){.columns-area--mobile .scrollable{contain:content}}@media screen and (min-width: 415px){.columns-area--mobile{padding:10px 0;padding-top:0}}@media screen and (min-width: 630px){.columns-area--mobile .detailed-status{padding:15px}.columns-area--mobile .detailed-status .media-gallery,.columns-area--mobile .detailed-status .video-player,.columns-area--mobile .detailed-status .audio-player{margin-top:15px}.columns-area--mobile .account__header__bar{padding:5px 10px}.columns-area--mobile .navigation-bar,.columns-area--mobile .compose-form{padding:15px}.columns-area--mobile .compose-form .compose-form__publish .compose-form__publish-button-wrapper{padding-top:15px}.columns-area--mobile .status{padding:15px;min-height:50px}.columns-area--mobile .status .media-gallery,.columns-area--mobile .status__action-bar,.columns-area--mobile .status .video-player,.columns-area--mobile .status .audio-player{margin-top:10px}.columns-area--mobile .account{padding:15px 10px}.columns-area--mobile .account__header__bio{margin:0 -10px}.columns-area--mobile .notification__message{padding-top:15px}.columns-area--mobile .notification .status{padding-top:8px}.columns-area--mobile .notification .account{padding-top:8px}}.floating-action-button{position:fixed;display:flex;justify-content:center;align-items:center;width:3.9375rem;height:3.9375rem;bottom:1.3125rem;right:1.3125rem;background:#2558d0;color:#fff;border-radius:50%;font-size:21px;line-height:21px;text-decoration:none;box-shadow:2px 3px 9px rgba(0,0,0,.4)}.floating-action-button:hover,.floating-action-button:focus,.floating-action-button:active{background:#4976de}@media screen and (min-width: 415px){.tabs-bar{width:100%}.react-swipeable-view-container .columns-area--mobile{height:calc(100% - 10px) !important}.getting-started__wrapper,.search{margin-bottom:10px}}@media screen and (max-width: 895px){.columns-area__panels__pane--compositional{display:none}}@media screen and (min-width: 895px){.floating-action-button,.tabs-bar__link.optional{display:none}.search-page .search{display:none}}@media screen and (max-width: 1190px){.columns-area__panels__pane--navigational{display:none}}@media screen and (min-width: 1190px){.tabs-bar{display:none}}.announcements__item__content{word-wrap:break-word;overflow-y:auto}.announcements__item__content .emojione{width:20px;height:20px;margin:-3px 0 0}.announcements__item__content p{margin-bottom:10px;white-space:pre-wrap}.announcements__item__content p:last-child{margin-bottom:0}.announcements__item__content a{color:#ecf0f4;text-decoration:none}.announcements__item__content a:hover{text-decoration:underline}.announcements__item__content a.mention:hover{text-decoration:none}.announcements__item__content a.mention:hover span{text-decoration:underline}.announcements__item__content a.unhandled-link{color:#4e79df}.announcements{background:#393f4f;font-size:13px;display:flex;align-items:flex-end}.announcements__mastodon{width:124px;flex:0 0 auto}@media screen and (max-width: 424px){.announcements__mastodon{display:none}}.announcements__container{width:calc(100% - 124px);flex:0 0 auto;position:relative}@media screen and (max-width: 424px){.announcements__container{width:100%}}.announcements__item{box-sizing:border-box;width:100%;padding:15px;position:relative;font-size:15px;line-height:20px;word-wrap:break-word;font-weight:400;max-height:50vh;overflow:hidden;display:flex;flex-direction:column}.announcements__item__range{display:block;font-weight:500;margin-bottom:10px;padding-right:18px}.announcements__item__unread{position:absolute;top:19px;right:19px;display:block;background:#2b90d9;border-radius:50%;width:.625rem;height:.625rem}.announcements__pagination{padding:15px;color:#dde3ec;position:absolute;bottom:3px;right:0}.layout-multiple-columns .announcements__mastodon{display:none}.layout-multiple-columns .announcements__container{width:100%}.reactions-bar{display:flex;flex-wrap:wrap;align-items:center;margin-top:15px;margin-left:-2px;width:calc(100% - (90px - 33px))}.reactions-bar__item{flex-shrink:0;background:#42485a;border:0;border-radius:3px;margin:2px;cursor:pointer;user-select:none;padding:0 6px;display:flex;align-items:center;transition:all 100ms ease-in;transition-property:background-color,color}.reactions-bar__item__emoji{display:block;margin:3px 0;width:16px;height:16px}.reactions-bar__item__emoji img{display:block;margin:0;width:100%;height:100%;min-width:auto;min-height:auto;vertical-align:bottom;object-fit:contain}.reactions-bar__item__count{display:block;min-width:9px;font-size:13px;font-weight:500;text-align:center;margin-left:6px;color:#dde3ec}.reactions-bar__item:hover,.reactions-bar__item:focus,.reactions-bar__item:active{background:#4a5266;transition:all 200ms ease-out;transition-property:background-color,color}.reactions-bar__item:hover__count,.reactions-bar__item:focus__count,.reactions-bar__item:active__count{color:#eaeef3}.reactions-bar__item.active{transition:all 100ms ease-in;transition-property:background-color,color;background-color:#3d4d73}.reactions-bar__item.active .reactions-bar__item__count{color:#4ea2df}.reactions-bar .emoji-picker-dropdown{margin:2px}.reactions-bar:hover .emoji-button{opacity:.85}.reactions-bar .emoji-button{color:#dde3ec;margin:0;font-size:16px;width:auto;flex-shrink:0;padding:0 6px;height:22px;display:flex;align-items:center;opacity:.5;transition:all 100ms ease-in;transition-property:background-color,color}.reactions-bar .emoji-button:hover,.reactions-bar .emoji-button:active,.reactions-bar .emoji-button:focus{opacity:1;color:#eaeef3;transition:all 200ms ease-out;transition-property:background-color,color}.reactions-bar--empty .emoji-button{padding:0}.poll{margin-top:16px;font-size:14px}.poll ul,.e-content .poll ul{margin:0;list-style:none}.poll li{margin-bottom:10px;position:relative}.poll__chart{border-radius:4px;display:block;background:#8ba1bf;height:5px;min-width:1%}.poll__chart.leading{background:#2b5fd9}.poll__option{position:relative;display:flex;padding:6px 0;line-height:18px;cursor:default;overflow:hidden}.poll__option__text{display:inline-block;word-wrap:break-word;overflow-wrap:break-word;max-width:calc(100% - 45px - 25px)}.poll__option input[type=radio],.poll__option input[type=checkbox]{display:none}.poll__option .autossugest-input{flex:1 1 auto}.poll__option input[type=text]{display:block;box-sizing:border-box;width:100%;font-size:14px;color:#000;display:block;outline:0;font-family:inherit;background:#fff;border:1px solid #dbdbdb;border-radius:4px;padding:6px 10px}.poll__option input[type=text]:focus{border-color:#2b90d9}.poll__option.selectable{cursor:pointer}.poll__option.editable{display:flex;align-items:center;overflow:visible}.poll__input{display:inline-block;position:relative;border:1px solid #9baec8;box-sizing:border-box;width:18px;height:18px;flex:0 0 auto;margin-right:10px;top:-1px;border-radius:50%;vertical-align:middle;margin-top:auto;margin-bottom:auto;flex:0 0 18px}.poll__input.checkbox{border-radius:4px}.poll__input.active{border-color:#79bd9a;background:#79bd9a}.poll__input:active,.poll__input:focus,.poll__input:hover{border-color:#acd6c1;border-width:4px}.poll__input::-moz-focus-inner{outline:0 !important;border:0}.poll__input:focus,.poll__input:active{outline:0 !important}.poll__number{display:inline-block;width:45px;font-weight:700;flex:0 0 45px}.poll__voted{padding:0 5px;display:inline-block}.poll__voted__mark{font-size:18px}.poll__footer{padding-top:6px;padding-bottom:5px;color:#c2cede}.poll__link{display:inline;background:transparent;padding:0;margin:0;border:0;color:#c2cede;text-decoration:underline;font-size:inherit}.poll__link:hover{text-decoration:none}.poll__link:active,.poll__link:focus{background-color:rgba(194,206,222,.1)}.poll .button{height:36px;padding:0 16px;margin-right:10px;font-size:14px}.compose-form__poll-wrapper{border-top:1px solid #ebebeb;overflow-x:hidden}.compose-form__poll-wrapper ul{padding:10px}.compose-form__poll-wrapper .poll__footer{border-top:1px solid #ebebeb;padding:10px;display:flex;align-items:center}.compose-form__poll-wrapper .poll__footer button,.compose-form__poll-wrapper .poll__footer select{width:100%;flex:1 1 50%}.compose-form__poll-wrapper .poll__footer button:focus,.compose-form__poll-wrapper .poll__footer select:focus{border-color:#2b90d9}.compose-form__poll-wrapper .button.button-secondary{font-size:14px;font-weight:400;padding:6px 10px;height:auto;line-height:inherit;color:#8d9ac2;border-color:#8d9ac2;margin-right:5px}.compose-form__poll-wrapper li{display:flex;align-items:center}.compose-form__poll-wrapper li .poll__option{flex:0 0 auto;width:calc(100% - (23px + 6px));margin-right:6px}.compose-form__poll-wrapper select{appearance:none;box-sizing:border-box;font-size:14px;color:#000;display:inline-block;width:auto;outline:0;font-family:inherit;background:#fff url(\"data:image/svg+xml;utf8,\") no-repeat right 8px center/auto 16px;border:1px solid #dbdbdb;border-radius:4px;padding:6px 10px;padding-right:30px}.compose-form__poll-wrapper .icon-button.disabled{color:#dbdbdb}.muted .poll{color:#c2cede}.muted .poll__chart{background:rgba(109,137,175,.2)}.muted .poll__chart.leading{background:rgba(43,95,217,.2)}.container{box-sizing:border-box;max-width:1235px;margin:0 auto;position:relative}@media screen and (max-width: 1255px){.container{width:100%;padding:0 10px}}.rich-formatting{font-family:sans-serif,sans-serif;font-size:14px;font-weight:400;line-height:1.7;word-wrap:break-word;color:#dde3ec}.rich-formatting a{color:#2b90d9;text-decoration:underline}.rich-formatting a:hover,.rich-formatting a:focus,.rich-formatting a:active{text-decoration:none}.rich-formatting p,.rich-formatting li{color:#dde3ec}.rich-formatting p{margin-top:0;margin-bottom:.85em}.rich-formatting p:last-child{margin-bottom:0}.rich-formatting strong{font-weight:700;color:#ecf0f4}.rich-formatting em{font-style:italic;color:#ecf0f4}.rich-formatting code{font-size:.85em;background:#17191f;border-radius:4px;padding:.2em .3em}.rich-formatting h1,.rich-formatting h2,.rich-formatting h3,.rich-formatting h4,.rich-formatting h5,.rich-formatting h6{font-family:sans-serif,sans-serif;margin-top:1.275em;margin-bottom:.85em;font-weight:500;color:#ecf0f4}.rich-formatting h1{font-size:2em}.rich-formatting h2{font-size:1.75em}.rich-formatting h3{font-size:1.5em}.rich-formatting h4{font-size:1.25em}.rich-formatting h5,.rich-formatting h6{font-size:1em}.rich-formatting ul{list-style:disc}.rich-formatting ol{list-style:decimal}.rich-formatting ul,.rich-formatting ol{margin:0;padding:0;padding-left:2em;margin-bottom:.85em}.rich-formatting ul[type=a],.rich-formatting ol[type=a]{list-style-type:lower-alpha}.rich-formatting ul[type=i],.rich-formatting ol[type=i]{list-style-type:lower-roman}.rich-formatting hr{width:100%;height:0;border:0;border-bottom:1px solid #313543;margin:1.7em 0}.rich-formatting hr.spacer{height:1px;border:0}.rich-formatting table{width:100%;border-collapse:collapse;break-inside:auto;margin-top:24px;margin-bottom:32px}.rich-formatting table thead tr,.rich-formatting table tbody tr{border-bottom:1px solid #313543;font-size:1em;line-height:1.625;font-weight:400;text-align:left;color:#dde3ec}.rich-formatting table thead tr{border-bottom-width:2px;line-height:1.5;font-weight:500;color:#c2cede}.rich-formatting table th,.rich-formatting table td{padding:8px;align-self:start;align-items:start;word-break:break-all}.rich-formatting table th.nowrap,.rich-formatting table td.nowrap{width:25%;position:relative}.rich-formatting table th.nowrap::before,.rich-formatting table td.nowrap::before{content:\" \";visibility:hidden}.rich-formatting table th.nowrap span,.rich-formatting table td.nowrap span{position:absolute;left:8px;right:8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.rich-formatting>:first-child{margin-top:0}.information-board{background:#1f232b;padding:20px 0}.information-board .container-alt{position:relative;padding-right:295px}.information-board__sections{display:flex;justify-content:space-between;flex-wrap:wrap}.information-board__section{flex:1 0 0;font-family:sans-serif,sans-serif;font-size:16px;line-height:28px;color:#fff;text-align:right;padding:10px 15px}.information-board__section span,.information-board__section strong{display:block}.information-board__section span:last-child{color:#ecf0f4}.information-board__section strong{font-family:sans-serif,sans-serif;font-weight:500;font-size:32px;line-height:48px}@media screen and (max-width: 700px){.information-board__section{text-align:center}}.information-board .panel{position:absolute;width:280px;box-sizing:border-box;background:#17191f;padding:20px;padding-top:10px;border-radius:4px 4px 0 0;right:0;bottom:-40px}.information-board .panel .panel-header{font-family:sans-serif,sans-serif;font-size:14px;line-height:24px;font-weight:500;color:#dde3ec;padding-bottom:5px;margin-bottom:15px;border-bottom:1px solid #313543;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.information-board .panel .panel-header a,.information-board .panel .panel-header span{font-weight:400;color:#bcc9da}.information-board .panel .panel-header a{text-decoration:none}.information-board .owner{text-align:center}.information-board .owner .avatar{width:80px;height:80px;width:80px;height:80px;background-size:80px 80px;margin:0 auto;margin-bottom:15px}.information-board .owner .avatar img{display:block;width:80px;height:80px;border-radius:48px;border-radius:8%;background-position:50%;background-clip:padding-box}.information-board .owner .name{font-size:14px}.information-board .owner .name a{display:block;color:#fff;text-decoration:none}.information-board .owner .name a:hover .display_name{text-decoration:underline}.information-board .owner .name .username{display:block;color:#dde3ec}.landing-page p,.landing-page li{font-family:sans-serif,sans-serif;font-size:16px;font-weight:400;font-size:16px;line-height:30px;margin-bottom:12px;color:#dde3ec}.landing-page p a,.landing-page li a{color:#2b90d9;text-decoration:underline}.landing-page em{display:inline;margin:0;padding:0;font-weight:700;background:transparent;font-family:inherit;font-size:inherit;line-height:inherit;color:#fefefe}.landing-page h1{font-family:sans-serif,sans-serif;font-size:26px;line-height:30px;font-weight:500;margin-bottom:20px;color:#ecf0f4}.landing-page h1 small{font-family:sans-serif,sans-serif;display:block;font-size:18px;font-weight:400;color:#fefefe}.landing-page h2{font-family:sans-serif,sans-serif;font-size:22px;line-height:26px;font-weight:500;margin-bottom:20px;color:#ecf0f4}.landing-page h3{font-family:sans-serif,sans-serif;font-size:18px;line-height:24px;font-weight:500;margin-bottom:20px;color:#ecf0f4}.landing-page h4{font-family:sans-serif,sans-serif;font-size:16px;line-height:24px;font-weight:500;margin-bottom:20px;color:#ecf0f4}.landing-page h5{font-family:sans-serif,sans-serif;font-size:14px;line-height:24px;font-weight:500;margin-bottom:20px;color:#ecf0f4}.landing-page h6{font-family:sans-serif,sans-serif;font-size:12px;line-height:24px;font-weight:500;margin-bottom:20px;color:#ecf0f4}.landing-page ul,.landing-page ol{margin-left:20px}.landing-page ul[type=a],.landing-page ol[type=a]{list-style-type:lower-alpha}.landing-page ul[type=i],.landing-page ol[type=i]{list-style-type:lower-roman}.landing-page ul{list-style:disc}.landing-page ol{list-style:decimal}.landing-page li>ol,.landing-page li>ul{margin-top:6px}.landing-page hr{width:100%;height:0;border:0;border-bottom:1px solid rgba(96,105,132,.6);margin:20px 0}.landing-page hr.spacer{height:1px;border:0}.landing-page__information,.landing-page__forms{padding:20px}.landing-page__call-to-action{background:#282c37;border-radius:4px;padding:25px 40px;overflow:hidden;box-sizing:border-box}.landing-page__call-to-action .row{width:100%;display:flex;flex-direction:row-reverse;flex-wrap:nowrap;justify-content:space-between;align-items:center}.landing-page__call-to-action .row__information-board{display:flex;justify-content:flex-end;align-items:flex-end}.landing-page__call-to-action .row__information-board .information-board__section{flex:1 0 auto;padding:0 10px}@media screen and (max-width: 415px){.landing-page__call-to-action .row__information-board{width:100%;justify-content:space-between}}.landing-page__call-to-action .row__mascot{flex:1;margin:10px -50px 0 0}@media screen and (max-width: 415px){.landing-page__call-to-action .row__mascot{display:none}}.landing-page__logo{margin-right:20px}.landing-page__logo img{height:50px;width:auto;mix-blend-mode:lighten}.landing-page__information{padding:45px 40px;margin-bottom:10px}.landing-page__information:last-child{margin-bottom:0}.landing-page__information strong{font-weight:500;color:#fefefe}.landing-page__information .account{border-bottom:0;padding:0}.landing-page__information .account__display-name{align-items:center;display:flex;margin-right:5px}.landing-page__information .account div.account__display-name:hover .display-name strong{text-decoration:none}.landing-page__information .account div.account__display-name .account__avatar{cursor:default}.landing-page__information .account__avatar-wrapper{margin-left:0;flex:0 0 auto}.landing-page__information .account__avatar{width:44px;height:44px;background-size:44px 44px;width:44px;height:44px;background-size:44px 44px}.landing-page__information .account .display-name{font-size:15px}.landing-page__information .account .display-name__account{font-size:14px}@media screen and (max-width: 960px){.landing-page__information .contact{margin-top:30px}}@media screen and (max-width: 700px){.landing-page__information{padding:25px 20px}}.landing-page__information,.landing-page__forms,.landing-page #mastodon-timeline{box-sizing:border-box;background:#282c37;border-radius:4px;box-shadow:0 0 6px rgba(0,0,0,.1)}.landing-page__mascot{height:104px;position:relative;left:-40px;bottom:25px}.landing-page__mascot img{height:190px;width:auto}.landing-page__short-description .row{display:flex;flex-wrap:wrap;align-items:center;margin-bottom:40px}@media screen and (max-width: 700px){.landing-page__short-description .row{margin-bottom:20px}}.landing-page__short-description p a{color:#ecf0f4}.landing-page__short-description h1{font-weight:500;color:#fff;margin-bottom:0}.landing-page__short-description h1 small{color:#dde3ec}.landing-page__short-description h1 small span{color:#ecf0f4}.landing-page__short-description p:last-child{margin-bottom:0}.landing-page__hero{margin-bottom:10px}.landing-page__hero img{display:block;margin:0;max-width:100%;height:auto;border-radius:4px}@media screen and (max-width: 840px){.landing-page .information-board .container-alt{padding-right:20px}.landing-page .information-board .panel{position:static;margin-top:20px;width:100%;border-radius:4px}.landing-page .information-board .panel .panel-header{text-align:center}}@media screen and (max-width: 675px){.landing-page .header-wrapper{padding-top:0}.landing-page .header-wrapper.compact{padding-bottom:0}.landing-page .header-wrapper.compact .hero .heading{text-align:initial}.landing-page .header .container-alt,.landing-page .features .container-alt{display:block}}.landing-page .cta{margin:20px}.landing{margin-bottom:100px}@media screen and (max-width: 738px){.landing{margin-bottom:0}}.landing__brand{display:flex;justify-content:center;align-items:center;padding:50px}.landing__brand svg{fill:#fff;height:52px}@media screen and (max-width: 415px){.landing__brand{padding:0;margin-bottom:30px}}.landing .directory{margin-top:30px;background:transparent;box-shadow:none;border-radius:0}.landing .hero-widget{margin-top:30px;margin-bottom:0}.landing .hero-widget h4{padding:10px;text-transform:uppercase;font-weight:700;font-size:13px;color:#dde3ec}.landing .hero-widget__text{border-radius:0;padding-bottom:0}.landing .hero-widget__footer{background:#282c37;padding:10px;border-radius:0 0 4px 4px;display:flex}.landing .hero-widget__footer__column{flex:1 1 50%}.landing .hero-widget .account{padding:10px 0;border-bottom:0}.landing .hero-widget .account .account__display-name{display:flex;align-items:center}.landing .hero-widget .account .account__avatar{width:44px;height:44px;background-size:44px 44px}.landing .hero-widget__counter{padding:10px}.landing .hero-widget__counter strong{font-family:sans-serif,sans-serif;font-size:15px;font-weight:700;display:block}.landing .hero-widget__counter span{font-size:14px;color:#dde3ec}.landing .simple_form .user_agreement .label_input>label{font-weight:400;color:#dde3ec}.landing .simple_form p.lead{color:#dde3ec;font-size:15px;line-height:20px;font-weight:400;margin-bottom:25px}.landing__grid{max-width:960px;margin:0 auto;display:grid;grid-template-columns:minmax(0, 50%) minmax(0, 50%);grid-gap:30px}@media screen and (max-width: 738px){.landing__grid{grid-template-columns:minmax(0, 100%);grid-gap:10px}.landing__grid__column-login{grid-row:1;display:flex;flex-direction:column}.landing__grid__column-login .box-widget{order:2;flex:0 0 auto}.landing__grid__column-login .hero-widget{margin-top:0;margin-bottom:10px;order:1;flex:0 0 auto}.landing__grid__column-registration{grid-row:2}.landing__grid .directory{margin-top:10px}}@media screen and (max-width: 415px){.landing__grid{grid-gap:0}.landing__grid .hero-widget{display:block;margin-bottom:0;box-shadow:none}.landing__grid .hero-widget__img,.landing__grid .hero-widget__img img,.landing__grid .hero-widget__footer{border-radius:0}.landing__grid .hero-widget,.landing__grid .box-widget,.landing__grid .directory__tag{border-bottom:1px solid #393f4f}.landing__grid .directory{margin-top:0}.landing__grid .directory__tag{margin-bottom:0}.landing__grid .directory__tag>a,.landing__grid .directory__tag>div{border-radius:0;box-shadow:none}.landing__grid .directory__tag:last-child{border-bottom:0}}.brand{position:relative;text-decoration:none}.brand__tagline{display:block;position:absolute;bottom:-10px;left:50px;width:300px;color:#9baec8;text-decoration:none;font-size:14px}@media screen and (max-width: 415px){.brand__tagline{position:static;width:auto;margin-top:20px;color:#c2cede}}.table{width:100%;max-width:100%;border-spacing:0;border-collapse:collapse}.table th,.table td{padding:8px;line-height:18px;vertical-align:top;border-top:1px solid #282c37;text-align:left;background:#1f232b}.table>thead>tr>th{vertical-align:bottom;border-bottom:2px solid #282c37;border-top:0;font-weight:500}.table>tbody>tr>th{font-weight:500}.table>tbody>tr:nth-child(odd)>td,.table>tbody>tr:nth-child(odd)>th{background:#282c37}.table a{color:#2b90d9;text-decoration:underline}.table a:hover{text-decoration:none}.table strong{font-weight:500}.table strong:lang(ja){font-weight:700}.table strong:lang(ko){font-weight:700}.table strong:lang(zh-CN){font-weight:700}.table strong:lang(zh-HK){font-weight:700}.table strong:lang(zh-TW){font-weight:700}.table.inline-table>tbody>tr:nth-child(odd)>td,.table.inline-table>tbody>tr:nth-child(odd)>th{background:transparent}.table.inline-table>tbody>tr:first-child>td,.table.inline-table>tbody>tr:first-child>th{border-top:0}.table.batch-table>thead>tr>th{background:#282c37;border-top:1px solid #17191f;border-bottom:1px solid #17191f}.table.batch-table>thead>tr>th:first-child{border-radius:4px 0 0;border-left:1px solid #17191f}.table.batch-table>thead>tr>th:last-child{border-radius:0 4px 0 0;border-right:1px solid #17191f}.table--invites tbody td{vertical-align:middle}.table-wrapper{overflow:auto;margin-bottom:20px}samp{font-family:monospace,monospace}button.table-action-link{background:transparent;border:0;font:inherit}button.table-action-link,a.table-action-link{text-decoration:none;display:inline-block;margin-right:5px;padding:0 10px;color:#dde3ec;font-weight:500}button.table-action-link:hover,a.table-action-link:hover{color:#fff}button.table-action-link i.fa,a.table-action-link i.fa{font-weight:400;margin-right:5px}button.table-action-link:first-child,a.table-action-link:first-child{padding-left:0}.batch-table__toolbar,.batch-table__row{display:flex}.batch-table__toolbar__select,.batch-table__row__select{box-sizing:border-box;padding:8px 16px;cursor:pointer;min-height:100%}.batch-table__toolbar__select input,.batch-table__row__select input{margin-top:8px}.batch-table__toolbar__select--aligned,.batch-table__row__select--aligned{display:flex;align-items:center}.batch-table__toolbar__select--aligned input,.batch-table__row__select--aligned input{margin-top:0}.batch-table__toolbar__actions,.batch-table__toolbar__content,.batch-table__row__actions,.batch-table__row__content{padding:8px 0;padding-right:16px;flex:1 1 auto}.batch-table__toolbar{border:1px solid #17191f;background:#282c37;border-radius:4px 0 0;height:47px;align-items:center}.batch-table__toolbar__actions{text-align:right;padding-right:11px}.batch-table__form{padding:16px;border:1px solid #17191f;border-top:0;background:#282c37}.batch-table__form .fields-row{padding-top:0;margin-bottom:0}.batch-table__row{border:1px solid #17191f;border-top:0;background:#1f232b}@media screen and (max-width: 415px){.optional .batch-table__row:first-child{border-top:1px solid #17191f}}.batch-table__row:hover{background:#242731}.batch-table__row:nth-child(even){background:#282c37}.batch-table__row:nth-child(even):hover{background:#2c313d}.batch-table__row__content{padding-top:12px;padding-bottom:16px}.batch-table__row__content--unpadded{padding:0}.batch-table__row__content--with-image{display:flex;align-items:center}.batch-table__row__content__image{flex:0 0 auto;display:flex;justify-content:center;align-items:center;margin-right:10px}.batch-table__row__content__image .emojione{width:32px;height:32px}.batch-table__row__content__text{flex:1 1 auto}.batch-table__row__content__extra{flex:0 0 auto;text-align:right;color:#dde3ec;font-weight:500}.batch-table__row .directory__tag{margin:0;width:100%}.batch-table__row .directory__tag a{background:transparent;border-radius:0}@media screen and (max-width: 415px){.batch-table.optional .batch-table__toolbar,.batch-table.optional .batch-table__row__select{display:none}}.batch-table .status__content{padding-top:0}.batch-table .status__content strong{font-weight:700}.batch-table .nothing-here{border:1px solid #17191f;border-top:0;box-shadow:none}@media screen and (max-width: 415px){.batch-table .nothing-here{border-top:1px solid #17191f}}@media screen and (max-width: 870px){.batch-table .accounts-table tbody td.optional{display:none}}.admin-wrapper{display:flex;justify-content:center;width:100%;min-height:100vh}.admin-wrapper .sidebar-wrapper{min-height:100vh;overflow:hidden;pointer-events:none;flex:1 1 auto}.admin-wrapper .sidebar-wrapper__inner{display:flex;justify-content:flex-end;background:#282c37;height:100%}.admin-wrapper .sidebar{width:240px;padding:0;pointer-events:auto}.admin-wrapper .sidebar__toggle{display:none;background:#393f4f;height:48px}.admin-wrapper .sidebar__toggle__logo{flex:1 1 auto}.admin-wrapper .sidebar__toggle__logo a{display:inline-block;padding:15px}.admin-wrapper .sidebar__toggle__logo svg{fill:#fff;height:20px;position:relative;bottom:-2px}.admin-wrapper .sidebar__toggle__icon{display:block;color:#dde3ec;text-decoration:none;flex:0 0 auto;font-size:20px;padding:15px}.admin-wrapper .sidebar__toggle a:hover,.admin-wrapper .sidebar__toggle a:focus,.admin-wrapper .sidebar__toggle a:active{background:#42485a}.admin-wrapper .sidebar .logo{display:block;margin:40px auto;width:100px;height:100px}@media screen and (max-width: 600px){.admin-wrapper .sidebar>a:first-child{display:none}}.admin-wrapper .sidebar ul{list-style:none;border-radius:4px 0 0 4px;overflow:hidden;margin-bottom:20px}@media screen and (max-width: 600px){.admin-wrapper .sidebar ul{margin-bottom:0}}.admin-wrapper .sidebar ul a{display:block;padding:15px;color:#dde3ec;text-decoration:none;transition:all 200ms linear;transition-property:color,background-color;border-radius:4px 0 0 4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.admin-wrapper .sidebar ul a i.fa{margin-right:5px}.admin-wrapper .sidebar ul a:hover{color:#fff;background-color:#1d2028;transition:all 100ms linear;transition-property:color,background-color}.admin-wrapper .sidebar ul a.selected{background:#242731;border-radius:4px 0 0}.admin-wrapper .sidebar ul ul{background:#1f232b;border-radius:0 0 0 4px;margin:0}.admin-wrapper .sidebar ul ul a{border:0;padding:15px 35px}.admin-wrapper .sidebar ul .simple-navigation-active-leaf a{color:#fff;background-color:#2b5fd9;border-bottom:0;border-radius:0}.admin-wrapper .sidebar ul .simple-navigation-active-leaf a:hover{background-color:#416fdd}.admin-wrapper .sidebar>ul>.simple-navigation-active-leaf a{border-radius:4px 0 0 4px}.admin-wrapper .content-wrapper{box-sizing:border-box;width:100%;max-width:840px;flex:1 1 auto}@media screen and (max-width: 1080px){.admin-wrapper .sidebar-wrapper--empty{display:none}.admin-wrapper .sidebar-wrapper{width:240px;flex:0 0 auto}}@media screen and (max-width: 600px){.admin-wrapper .sidebar-wrapper{width:100%}}.admin-wrapper .content{padding:20px 15px;padding-top:60px;padding-left:25px}@media screen and (max-width: 600px){.admin-wrapper .content{max-width:none;padding:15px;padding-top:30px}}.admin-wrapper .content-heading{display:flex;padding-bottom:40px;border-bottom:1px solid #393f4f;margin:-15px -15px 40px 0;flex-wrap:wrap;align-items:center;justify-content:space-between}.admin-wrapper .content-heading>*{margin-top:15px;margin-right:15px}.admin-wrapper .content-heading-actions{display:inline-flex}.admin-wrapper .content-heading-actions>:not(:first-child){margin-left:5px}@media screen and (max-width: 600px){.admin-wrapper .content-heading{border-bottom:0;padding-bottom:0}}.admin-wrapper .content h2{color:#ecf0f4;font-size:24px;line-height:28px;font-weight:400}@media screen and (max-width: 600px){.admin-wrapper .content h2{font-weight:700}}.admin-wrapper .content h3{color:#ecf0f4;font-size:20px;line-height:28px;font-weight:400;margin-bottom:30px}.admin-wrapper .content h4{text-transform:uppercase;font-size:13px;font-weight:700;color:#dde3ec;padding-bottom:8px;margin-bottom:8px;border-bottom:1px solid #393f4f}.admin-wrapper .content h6{font-size:16px;color:#ecf0f4;line-height:28px;font-weight:500}.admin-wrapper .content .fields-group h6{color:#fff;font-weight:500}.admin-wrapper .content .directory__tag>a,.admin-wrapper .content .directory__tag>div{box-shadow:none}.admin-wrapper .content .directory__tag .table-action-link .fa{color:inherit}.admin-wrapper .content .directory__tag h4{font-size:18px;font-weight:700;color:#fff;text-transform:none;padding-bottom:0;margin-bottom:0;border-bottom:none}.admin-wrapper .content>p{font-size:14px;line-height:21px;color:#ecf0f4;margin-bottom:20px}.admin-wrapper .content>p strong{color:#fff;font-weight:500}.admin-wrapper .content>p strong:lang(ja){font-weight:700}.admin-wrapper .content>p strong:lang(ko){font-weight:700}.admin-wrapper .content>p strong:lang(zh-CN){font-weight:700}.admin-wrapper .content>p strong:lang(zh-HK){font-weight:700}.admin-wrapper .content>p strong:lang(zh-TW){font-weight:700}.admin-wrapper .content hr{width:100%;height:0;border:0;border-bottom:1px solid rgba(96,105,132,.6);margin:20px 0}.admin-wrapper .content hr.spacer{height:1px;border:0}@media screen and (max-width: 600px){.admin-wrapper{display:block}.admin-wrapper .sidebar-wrapper{min-height:0}.admin-wrapper .sidebar{width:100%;padding:0;height:auto}.admin-wrapper .sidebar__toggle{display:flex}.admin-wrapper .sidebar>ul{display:none}.admin-wrapper .sidebar ul a,.admin-wrapper .sidebar ul ul a{border-radius:0;border-bottom:1px solid #313543;transition:none}.admin-wrapper .sidebar ul a:hover,.admin-wrapper .sidebar ul ul a:hover{transition:none}.admin-wrapper .sidebar ul ul{border-radius:0}.admin-wrapper .sidebar ul .simple-navigation-active-leaf a{border-bottom-color:#2b5fd9}}hr.spacer{width:100%;border:0;margin:20px 0;height:1px}body .muted-hint,.admin-wrapper .content .muted-hint{color:#dde3ec}body .muted-hint a,.admin-wrapper .content .muted-hint a{color:#2b90d9}body .positive-hint,.admin-wrapper .content .positive-hint{color:#79bd9a;font-weight:500}body .negative-hint,.admin-wrapper .content .negative-hint{color:#df405a;font-weight:500}body .neutral-hint,.admin-wrapper .content .neutral-hint{color:#c2cede;font-weight:500}body .warning-hint,.admin-wrapper .content .warning-hint{color:#ca8f04;font-weight:500}.filters{display:flex;flex-wrap:wrap}.filters .filter-subset{flex:0 0 auto;margin:0 40px 20px 0}.filters .filter-subset:last-child{margin-bottom:30px}.filters .filter-subset ul{margin-top:5px;list-style:none}.filters .filter-subset ul li{display:inline-block;margin-right:5px}.filters .filter-subset strong{font-weight:500;text-transform:uppercase;font-size:12px}.filters .filter-subset strong:lang(ja){font-weight:700}.filters .filter-subset strong:lang(ko){font-weight:700}.filters .filter-subset strong:lang(zh-CN){font-weight:700}.filters .filter-subset strong:lang(zh-HK){font-weight:700}.filters .filter-subset strong:lang(zh-TW){font-weight:700}.filters .filter-subset--with-select strong{display:block;margin-bottom:10px}.filters .filter-subset a{display:inline-block;color:#dde3ec;text-decoration:none;text-transform:uppercase;font-size:12px;font-weight:500;border-bottom:2px solid #282c37}.filters .filter-subset a:hover{color:#fff;border-bottom:2px solid #333846}.filters .filter-subset a.selected{color:#2b90d9;border-bottom:2px solid #2b5fd9}.flavour-screen{display:block;margin:10px auto;max-width:100%}.flavour-description{display:block;font-size:16px;margin:10px 0}.flavour-description>p{margin:10px 0}.report-accounts{display:flex;flex-wrap:wrap;margin-bottom:20px}.report-accounts__item{display:flex;flex:250px;flex-direction:column;margin:0 5px}.report-accounts__item>strong{display:block;margin:0 0 10px -5px;font-weight:500;font-size:14px;line-height:18px;color:#ecf0f4}.report-accounts__item>strong:lang(ja){font-weight:700}.report-accounts__item>strong:lang(ko){font-weight:700}.report-accounts__item>strong:lang(zh-CN){font-weight:700}.report-accounts__item>strong:lang(zh-HK){font-weight:700}.report-accounts__item>strong:lang(zh-TW){font-weight:700}.report-accounts__item .account-card{flex:1 1 auto}.report-status,.account-status{display:flex;margin-bottom:10px}.report-status .activity-stream,.account-status .activity-stream{flex:2 0 0;margin-right:20px;max-width:calc(100% - 60px)}.report-status .activity-stream .entry,.account-status .activity-stream .entry{border-radius:4px}.report-status__actions,.account-status__actions{flex:0 0 auto;display:flex;flex-direction:column}.report-status__actions .icon-button,.account-status__actions .icon-button{font-size:24px;width:24px;text-align:center;margin-bottom:10px}.simple_form.new_report_note,.simple_form.new_account_moderation_note{max-width:100%}.batch-form-box{display:flex;flex-wrap:wrap;margin-bottom:5px}.batch-form-box #form_status_batch_action{margin:0 5px 5px 0;font-size:14px}.batch-form-box input.button{margin:0 5px 5px 0}.batch-form-box .media-spoiler-toggle-buttons{margin-left:auto}.batch-form-box .media-spoiler-toggle-buttons .button{overflow:visible;margin:0 0 5px 5px;float:right}.back-link{margin-bottom:10px;font-size:14px}.back-link a{color:#2b90d9;text-decoration:none}.back-link a:hover{text-decoration:underline}.spacer{flex:1 1 auto}.log-entry{line-height:20px;padding:15px 0;background:#282c37;border-bottom:1px solid #313543}.log-entry:last-child{border-bottom:0}.log-entry__header{display:flex;justify-content:flex-start;align-items:center;color:#dde3ec;font-size:14px;padding:0 10px}.log-entry__avatar{margin-right:10px}.log-entry__avatar .avatar{display:block;margin:0;border-radius:50%;width:40px;height:40px}.log-entry__content{max-width:calc(100% - 90px)}.log-entry__title{word-wrap:break-word}.log-entry__timestamp{color:#c2cede}.log-entry a,.log-entry .username,.log-entry .target{color:#ecf0f4;text-decoration:none;font-weight:500}a.name-tag,.name-tag,a.inline-name-tag,.inline-name-tag{text-decoration:none;color:#ecf0f4}a.name-tag .username,.name-tag .username,a.inline-name-tag .username,.inline-name-tag .username{font-weight:500}a.name-tag.suspended .username,.name-tag.suspended .username,a.inline-name-tag.suspended .username,.inline-name-tag.suspended .username{text-decoration:line-through;color:#e87487}a.name-tag.suspended .avatar,.name-tag.suspended .avatar,a.inline-name-tag.suspended .avatar,.inline-name-tag.suspended .avatar{filter:grayscale(100%);opacity:.8}a.name-tag,.name-tag{display:flex;align-items:center}a.name-tag .avatar,.name-tag .avatar{display:block;margin:0;margin-right:5px;border-radius:50%}a.name-tag.suspended .avatar,.name-tag.suspended .avatar{filter:grayscale(100%);opacity:.8}.speech-bubble{margin-bottom:20px;border-left:4px solid #2b5fd9}.speech-bubble.positive{border-left-color:#79bd9a}.speech-bubble.negative{border-left-color:#e87487}.speech-bubble.warning{border-left-color:#ca8f04}.speech-bubble__bubble{padding:16px;padding-left:14px;font-size:15px;line-height:20px;border-radius:4px 4px 4px 0;position:relative;font-weight:500}.speech-bubble__bubble a{color:#dde3ec}.speech-bubble__owner{padding:8px;padding-left:12px}.speech-bubble time{color:#c2cede}.report-card{background:#282c37;border-radius:4px;margin-bottom:20px}.report-card__profile{display:flex;justify-content:space-between;align-items:center;padding:15px}.report-card__profile .account{padding:0;border:0}.report-card__profile .account__avatar-wrapper{margin-left:0}.report-card__profile__stats{flex:0 0 auto;font-weight:500;color:#dde3ec;text-transform:uppercase;text-align:right}.report-card__profile__stats a{color:inherit;text-decoration:none}.report-card__profile__stats a:focus,.report-card__profile__stats a:hover,.report-card__profile__stats a:active{color:#f7f9fb}.report-card__profile__stats .red{color:#df405a}.report-card__summary__item{display:flex;justify-content:flex-start;border-top:1px solid #1f232b}.report-card__summary__item:hover{background:#2c313d}.report-card__summary__item__reported-by,.report-card__summary__item__assigned{padding:15px;flex:0 0 auto;box-sizing:border-box;width:150px;color:#dde3ec}.report-card__summary__item__reported-by,.report-card__summary__item__reported-by .username,.report-card__summary__item__assigned,.report-card__summary__item__assigned .username{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.report-card__summary__item__content{flex:1 1 auto;max-width:calc(100% - 300px)}.report-card__summary__item__content__icon{color:#c2cede;margin-right:4px;font-weight:500}.report-card__summary__item__content a{display:block;box-sizing:border-box;width:100%;padding:15px;text-decoration:none;color:#dde3ec}.one-line{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ellipsized-ip{display:inline-block;max-width:120px;overflow:hidden;text-overflow:ellipsis;vertical-align:middle}.admin-account-bio{display:flex;flex-wrap:wrap;margin:0 -5px;margin-top:20px}.admin-account-bio>div{box-sizing:border-box;padding:0 5px;margin-bottom:10px;flex:1 0 50%}.admin-account-bio .account__header__fields,.admin-account-bio .account__header__content{background:#393f4f;border-radius:4px;height:100%}.admin-account-bio .account__header__fields{margin:0;border:0}.admin-account-bio .account__header__fields a{color:#4e79df}.admin-account-bio .account__header__fields dl:first-child .verified{border-radius:0 4px 0 0}.admin-account-bio .account__header__fields .verified a{color:#79bd9a}.admin-account-bio .account__header__content{box-sizing:border-box;padding:20px;color:#fff}.center-text{text-align:center}.announcements-list{border:1px solid #313543;border-radius:4px}.announcements-list__item{padding:15px 0;background:#282c37;border-bottom:1px solid #313543}.announcements-list__item__title{padding:0 15px;display:block;font-weight:500;font-size:18px;line-height:1.5;color:#ecf0f4;text-decoration:none;margin-bottom:10px}.announcements-list__item__title:hover,.announcements-list__item__title:focus,.announcements-list__item__title:active{color:#fff}.announcements-list__item__meta{padding:0 15px;color:#c2cede}.announcements-list__item__action-bar{display:flex;justify-content:space-between;align-items:center}.announcements-list__item:last-child{border-bottom:0}.emojione[title=\":wavy_dash:\"],.emojione[title=\":waving_black_flag:\"],.emojione[title=\":water_buffalo:\"],.emojione[title=\":video_game:\"],.emojione[title=\":video_camera:\"],.emojione[title=\":vhs:\"],.emojione[title=\":turkey:\"],.emojione[title=\":tophat:\"],.emojione[title=\":top:\"],.emojione[title=\":tm:\"],.emojione[title=\":telephone_receiver:\"],.emojione[title=\":spider:\"],.emojione[title=\":speaking_head_in_silhouette:\"],.emojione[title=\":spades:\"],.emojione[title=\":soon:\"],.emojione[title=\":registered:\"],.emojione[title=\":on:\"],.emojione[title=\":musical_score:\"],.emojione[title=\":movie_camera:\"],.emojione[title=\":mortar_board:\"],.emojione[title=\":microphone:\"],.emojione[title=\":male-guard:\"],.emojione[title=\":lower_left_fountain_pen:\"],.emojione[title=\":lower_left_ballpoint_pen:\"],.emojione[title=\":kaaba:\"],.emojione[title=\":joystick:\"],.emojione[title=\":hole:\"],.emojione[title=\":hocho:\"],.emojione[title=\":heavy_plus_sign:\"],.emojione[title=\":heavy_multiplication_x:\"],.emojione[title=\":heavy_minus_sign:\"],.emojione[title=\":heavy_dollar_sign:\"],.emojione[title=\":heavy_division_sign:\"],.emojione[title=\":heavy_check_mark:\"],.emojione[title=\":guardsman:\"],.emojione[title=\":gorilla:\"],.emojione[title=\":fried_egg:\"],.emojione[title=\":film_projector:\"],.emojione[title=\":female-guard:\"],.emojione[title=\":end:\"],.emojione[title=\":electric_plug:\"],.emojione[title=\":eight_pointed_black_star:\"],.emojione[title=\":dark_sunglasses:\"],.emojione[title=\":currency_exchange:\"],.emojione[title=\":curly_loop:\"],.emojione[title=\":copyright:\"],.emojione[title=\":clubs:\"],.emojione[title=\":camera_with_flash:\"],.emojione[title=\":camera:\"],.emojione[title=\":busts_in_silhouette:\"],.emojione[title=\":bust_in_silhouette:\"],.emojione[title=\":bowling:\"],.emojione[title=\":bomb:\"],.emojione[title=\":black_small_square:\"],.emojione[title=\":black_nib:\"],.emojione[title=\":black_medium_square:\"],.emojione[title=\":black_medium_small_square:\"],.emojione[title=\":black_large_square:\"],.emojione[title=\":black_heart:\"],.emojione[title=\":black_circle:\"],.emojione[title=\":back:\"],.emojione[title=\":ant:\"],.emojione[title=\":8ball:\"]{filter:drop-shadow(1px 1px 0 #ffffff) drop-shadow(-1px 1px 0 #ffffff) drop-shadow(1px -1px 0 #ffffff) drop-shadow(-1px -1px 0 #ffffff)}.hicolor-privacy-icons .status__visibility-icon.fa-globe,.hicolor-privacy-icons .composer--options--dropdown--content--item .fa-globe{color:#1976d2}.hicolor-privacy-icons .status__visibility-icon.fa-unlock,.hicolor-privacy-icons .composer--options--dropdown--content--item .fa-unlock{color:#388e3c}.hicolor-privacy-icons .status__visibility-icon.fa-lock,.hicolor-privacy-icons .composer--options--dropdown--content--item .fa-lock{color:#ffa000}.hicolor-privacy-icons .status__visibility-icon.fa-envelope,.hicolor-privacy-icons .composer--options--dropdown--content--item .fa-envelope{color:#d32f2f}body.rtl{direction:rtl}body.rtl .column-header>button{text-align:right;padding-left:0;padding-right:15px}body.rtl .radio-button__input{margin-right:0;margin-left:10px}body.rtl .directory__card__bar .display-name{margin-left:0;margin-right:15px}body.rtl .display-name{text-align:right}body.rtl .notification__message{margin-left:0;margin-right:68px}body.rtl .drawer__inner__mastodon>img{transform:scaleX(-1)}body.rtl .notification__favourite-icon-wrapper{left:auto;right:-26px}body.rtl .landing-page__logo{margin-right:0;margin-left:20px}body.rtl .landing-page .features-list .features-list__row .visual{margin-left:0;margin-right:15px}body.rtl .column-link__icon,body.rtl .column-header__icon{margin-right:0;margin-left:5px}body.rtl .compose-form .compose-form__buttons-wrapper .character-counter__wrapper{margin-right:0;margin-left:4px}body.rtl .composer--publisher{text-align:left}body.rtl .boost-modal__status-time,body.rtl .favourite-modal__status-time{float:left}body.rtl .navigation-bar__profile{margin-left:0;margin-right:8px}body.rtl .search__input{padding-right:10px;padding-left:30px}body.rtl .search__icon .fa{right:auto;left:10px}body.rtl .columns-area{direction:rtl}body.rtl .column-header__buttons{left:0;right:auto;margin-left:0;margin-right:-15px}body.rtl .column-inline-form .icon-button{margin-left:0;margin-right:5px}body.rtl .column-header__links .text-btn{margin-left:10px;margin-right:0}body.rtl .account__avatar-wrapper{float:right}body.rtl .column-header__back-button{padding-left:5px;padding-right:0}body.rtl .column-header__setting-arrows{float:left}body.rtl .setting-toggle__label{margin-left:0;margin-right:8px}body.rtl .setting-meta__label{float:left}body.rtl .status__avatar{margin-left:10px;margin-right:0;left:auto;right:10px}body.rtl .activity-stream .status.light{padding-left:10px;padding-right:68px}body.rtl .status__info .status__display-name,body.rtl .activity-stream .status.light .status__display-name{padding-left:25px;padding-right:0}body.rtl .activity-stream .pre-header{padding-right:68px;padding-left:0}body.rtl .status__prepend{margin-left:0;margin-right:58px}body.rtl .status__prepend-icon-wrapper{left:auto;right:-26px}body.rtl .activity-stream .pre-header .pre-header__icon{left:auto;right:42px}body.rtl .account__avatar-overlay-overlay{right:auto;left:0}body.rtl .column-back-button--slim-button{right:auto;left:0}body.rtl .status__relative-time,body.rtl .activity-stream .status.light .status__header .status__meta{float:left;text-align:left}body.rtl .status__action-bar__counter{margin-right:0;margin-left:11px}body.rtl .status__action-bar__counter .status__action-bar-button{margin-right:0;margin-left:4px}body.rtl .status__action-bar-button{float:right;margin-right:0;margin-left:18px}body.rtl .status__action-bar-dropdown{float:right}body.rtl .privacy-dropdown__dropdown{margin-left:0;margin-right:40px}body.rtl .privacy-dropdown__option__icon{margin-left:10px;margin-right:0}body.rtl .detailed-status__display-name .display-name{text-align:right}body.rtl .detailed-status__display-avatar{margin-right:0;margin-left:10px;float:right}body.rtl .detailed-status__favorites,body.rtl .detailed-status__reblogs{margin-left:0;margin-right:6px}body.rtl .fa-ul{margin-left:2.14285714em}body.rtl .fa-li{left:auto;right:-2.14285714em}body.rtl .admin-wrapper{direction:rtl}body.rtl .admin-wrapper .sidebar ul a i.fa,body.rtl a.table-action-link i.fa{margin-right:0;margin-left:5px}body.rtl .simple_form .check_boxes .checkbox label{padding-left:0;padding-right:25px}body.rtl .simple_form .input.with_label.boolean label.checkbox{padding-left:25px;padding-right:0}body.rtl .simple_form .check_boxes .checkbox input[type=checkbox],body.rtl .simple_form .input.boolean input[type=checkbox]{left:auto;right:0}body.rtl .simple_form .input.radio_buttons .radio{left:auto;right:0}body.rtl .simple_form .input.radio_buttons .radio>label{padding-right:28px;padding-left:0}body.rtl .simple_form .input-with-append .input input{padding-left:142px;padding-right:0}body.rtl .simple_form .input.boolean label.checkbox{left:auto;right:0}body.rtl .simple_form .input.boolean .label_input,body.rtl .simple_form .input.boolean .hint{padding-left:0;padding-right:28px}body.rtl .simple_form .label_input__append{right:auto;left:3px}body.rtl .simple_form .label_input__append::after{right:auto;left:0;background-image:linear-gradient(to left, rgba(19, 20, 25, 0), #131419)}body.rtl .simple_form select{background:#131419 url(\"data:image/svg+xml;utf8,\") no-repeat left 8px center/auto 16px}body.rtl .table th,body.rtl .table td{text-align:right}body.rtl .filters .filter-subset{margin-right:0;margin-left:45px}body.rtl .landing-page .header-wrapper .mascot{right:60px;left:auto}body.rtl .landing-page__call-to-action .row__information-board{direction:rtl}body.rtl .landing-page .header .hero .floats .float-1{left:-120px;right:auto}body.rtl .landing-page .header .hero .floats .float-2{left:210px;right:auto}body.rtl .landing-page .header .hero .floats .float-3{left:110px;right:auto}body.rtl .landing-page .header .links .brand img{left:0}body.rtl .landing-page .fa-external-link{padding-right:5px;padding-left:0 !important}body.rtl .landing-page .features #mastodon-timeline{margin-right:0;margin-left:30px}@media screen and (min-width: 631px){body.rtl .column,body.rtl .drawer{padding-left:5px;padding-right:5px}body.rtl .column:first-child,body.rtl .drawer:first-child{padding-left:5px;padding-right:10px}body.rtl .columns-area>div .column,body.rtl .columns-area>div .drawer{padding-left:5px;padding-right:5px}}body.rtl .columns-area--mobile .column,body.rtl .columns-area--mobile .drawer{padding-left:0;padding-right:0}body.rtl .public-layout .header .nav-button{margin-left:8px;margin-right:0}body.rtl .public-layout .public-account-header__tabs{margin-left:0;margin-right:20px}body.rtl .landing-page__information .account__display-name{margin-right:0;margin-left:5px}body.rtl .landing-page__information .account__avatar-wrapper{margin-left:12px;margin-right:0}body.rtl .card__bar .display-name{margin-left:0;margin-right:15px;text-align:right}body.rtl .fa-chevron-left::before{content:\"\"}body.rtl .fa-chevron-right::before{content:\"\"}body.rtl .column-back-button__icon{margin-right:0;margin-left:5px}body.rtl .column-header__setting-arrows .column-header__setting-btn:last-child{padding-left:0;padding-right:10px}body.rtl .simple_form .input.radio_buttons .radio>label input{left:auto;right:0}.dashboard__counters{display:flex;flex-wrap:wrap;margin:0 -5px;margin-bottom:20px}.dashboard__counters>div{box-sizing:border-box;flex:0 0 33.333%;padding:0 5px;margin-bottom:10px}.dashboard__counters>div>div,.dashboard__counters>div>a{padding:20px;background:#313543;border-radius:4px;box-sizing:border-box;height:100%}.dashboard__counters>div>a{text-decoration:none;color:inherit;display:block}.dashboard__counters>div>a:hover,.dashboard__counters>div>a:focus,.dashboard__counters>div>a:active{background:#393f4f}.dashboard__counters__num,.dashboard__counters__text{text-align:center;font-weight:500;font-size:24px;line-height:21px;color:#fff;font-family:sans-serif,sans-serif;margin-bottom:20px;line-height:30px}.dashboard__counters__text{font-size:18px}.dashboard__counters__label{font-size:14px;color:#dde3ec;text-align:center;font-weight:500}.dashboard__widgets{display:flex;flex-wrap:wrap;margin:0 -5px}.dashboard__widgets>div{flex:0 0 33.333%;margin-bottom:20px}.dashboard__widgets>div>div{padding:0 5px}.dashboard__widgets a:not(.name-tag){color:#d9e1e8;font-weight:500;text-decoration:none}.compose-form .compose-form__modifiers .compose-form__upload-description input::placeholder{opacity:1}.rich-formatting a,.rich-formatting p a,.rich-formatting li a,.landing-page__short-description p a,.status__content a,.reply-indicator__content a{color:#5f86e2;text-decoration:underline}.rich-formatting a.mention,.rich-formatting p a.mention,.rich-formatting li a.mention,.landing-page__short-description p a.mention,.status__content a.mention,.reply-indicator__content a.mention{text-decoration:none}.rich-formatting a.mention span,.rich-formatting p a.mention span,.rich-formatting li a.mention span,.landing-page__short-description p a.mention span,.status__content a.mention span,.reply-indicator__content a.mention span{text-decoration:underline}.rich-formatting a.mention span:hover,.rich-formatting a.mention span:focus,.rich-formatting a.mention span:active,.rich-formatting p a.mention span:hover,.rich-formatting p a.mention span:focus,.rich-formatting p a.mention span:active,.rich-formatting li a.mention span:hover,.rich-formatting li a.mention span:focus,.rich-formatting li a.mention span:active,.landing-page__short-description p a.mention span:hover,.landing-page__short-description p a.mention span:focus,.landing-page__short-description p a.mention span:active,.status__content a.mention span:hover,.status__content a.mention span:focus,.status__content a.mention span:active,.reply-indicator__content a.mention span:hover,.reply-indicator__content a.mention span:focus,.reply-indicator__content a.mention span:active{text-decoration:none}.rich-formatting a:hover,.rich-formatting a:focus,.rich-formatting a:active,.rich-formatting p a:hover,.rich-formatting p a:focus,.rich-formatting p a:active,.rich-formatting li a:hover,.rich-formatting li a:focus,.rich-formatting li a:active,.landing-page__short-description p a:hover,.landing-page__short-description p a:focus,.landing-page__short-description p a:active,.status__content a:hover,.status__content a:focus,.status__content a:active,.reply-indicator__content a:hover,.reply-indicator__content a:focus,.reply-indicator__content a:active{text-decoration:none}.rich-formatting a.status__content__spoiler-link,.rich-formatting p a.status__content__spoiler-link,.rich-formatting li a.status__content__spoiler-link,.landing-page__short-description p a.status__content__spoiler-link,.status__content a.status__content__spoiler-link,.reply-indicator__content a.status__content__spoiler-link{color:#ecf0f4;text-decoration:none}.status__content__read-more-button{text-decoration:underline}.status__content__read-more-button:hover,.status__content__read-more-button:focus,.status__content__read-more-button:active{text-decoration:none}.getting-started__footer a{text-decoration:underline}.getting-started__footer a:hover,.getting-started__footer a:focus,.getting-started__footer a:active{text-decoration:none}.nothing-here{color:#dde3ec}.public-layout .public-account-header__tabs__tabs .counter.active::after{border-bottom:4px solid #2b5fd9}","/* http://meyerweb.com/eric/tools/css/reset/\n v2.0 | 20110126\n License: none (public domain)\n*/\n\nhtml, body, div, span, applet, object, iframe,\nh1, h2, h3, h4, h5, h6, p, blockquote, pre,\na, abbr, acronym, address, big, cite, code,\ndel, dfn, em, img, ins, kbd, q, s, samp,\nsmall, strike, strong, sub, sup, tt, var,\nb, u, i, center,\ndl, dt, dd, ol, ul, li,\nfieldset, form, label, legend,\ntable, caption, tbody, tfoot, thead, tr, th, td,\narticle, aside, canvas, details, embed,\nfigure, figcaption, footer, header, hgroup,\nmenu, nav, output, ruby, section, summary,\ntime, mark, audio, video {\n margin: 0;\n padding: 0;\n border: 0;\n font-size: 100%;\n font: inherit;\n vertical-align: baseline;\n}\n\n/* HTML5 display-role reset for older browsers */\narticle, aside, details, figcaption, figure,\nfooter, header, hgroup, menu, nav, section {\n display: block;\n}\n\nbody {\n line-height: 1;\n}\n\nol, ul {\n list-style: none;\n}\n\nblockquote, q {\n quotes: none;\n}\n\nblockquote:before, blockquote:after,\nq:before, q:after {\n content: '';\n content: none;\n}\n\ntable {\n border-collapse: collapse;\n border-spacing: 0;\n}\n\nhtml {\n scrollbar-color: lighten($ui-base-color, 4%) rgba($base-overlay-background, 0.1);\n}\n\n::-webkit-scrollbar {\n width: 12px;\n height: 12px;\n}\n\n::-webkit-scrollbar-thumb {\n background: lighten($ui-base-color, 4%);\n border: 0px none $base-border-color;\n border-radius: 50px;\n}\n\n::-webkit-scrollbar-thumb:hover {\n background: lighten($ui-base-color, 6%);\n}\n\n::-webkit-scrollbar-thumb:active {\n background: lighten($ui-base-color, 4%);\n}\n\n::-webkit-scrollbar-track {\n border: 0px none $base-border-color;\n border-radius: 0;\n background: rgba($base-overlay-background, 0.1);\n}\n\n::-webkit-scrollbar-track:hover {\n background: $ui-base-color;\n}\n\n::-webkit-scrollbar-track:active {\n background: $ui-base-color;\n}\n\n::-webkit-scrollbar-corner {\n background: transparent;\n}\n","// Dependent colors\n$black: #000000;\n\n$classic-base-color: #282c37;\n$classic-primary-color: #9baec8;\n$classic-secondary-color: #d9e1e8;\n$classic-highlight-color: #2b90d9;\n\n$ui-base-color: $classic-base-color !default;\n$ui-primary-color: $classic-primary-color !default;\n$ui-secondary-color: $classic-secondary-color !default;\n\n// Differences\n$ui-highlight-color: #2b5fd9;\n\n$darker-text-color: lighten($ui-primary-color, 20%) !default;\n$dark-text-color: lighten($ui-primary-color, 12%) !default;\n$secondary-text-color: lighten($ui-secondary-color, 6%) !default;\n$highlight-text-color: $classic-highlight-color !default;\n$action-button-color: #8d9ac2;\n\n$inverted-text-color: $black !default;\n$lighter-text-color: darken($ui-base-color,6%) !default;\n$light-text-color: darken($ui-primary-color, 40%) !default;\n","@function hex-color($color) {\n @if type-of($color) == 'color' {\n $color: str-slice(ie-hex-str($color), 4);\n }\n @return '%23' + unquote($color)\n}\n\nbody {\n font-family: $font-sans-serif, sans-serif;\n background: darken($ui-base-color, 7%);\n font-size: 13px;\n line-height: 18px;\n font-weight: 400;\n color: $primary-text-color;\n text-rendering: optimizelegibility;\n font-feature-settings: \"kern\";\n text-size-adjust: none;\n -webkit-tap-highlight-color: rgba(0,0,0,0);\n -webkit-tap-highlight-color: transparent;\n\n &.system-font {\n // system-ui => standard property (Chrome/Android WebView 56+, Opera 43+, Safari 11+)\n // -apple-system => Safari <11 specific\n // BlinkMacSystemFont => Chrome <56 on macOS specific\n // Segoe UI => Windows 7/8/10\n // Oxygen => KDE\n // Ubuntu => Unity/Ubuntu\n // Cantarell => GNOME\n // Fira Sans => Firefox OS\n // Droid Sans => Older Androids (<4.0)\n // Helvetica Neue => Older macOS <10.11\n // $font-sans-serif => web-font (Roboto) fallback and newer Androids (>=4.0)\n font-family: system-ui, -apple-system, BlinkMacSystemFont, \"Segoe UI\", \"Oxygen\", \"Ubuntu\", \"Cantarell\", \"Fira Sans\", \"Droid Sans\", \"Helvetica Neue\", $font-sans-serif, sans-serif;\n }\n\n &.app-body {\n padding: 0;\n\n &.layout-single-column {\n height: auto;\n min-height: 100vh;\n overflow-y: scroll;\n }\n\n &.layout-multiple-columns {\n position: absolute;\n width: 100%;\n height: 100%;\n }\n\n &.with-modals--active {\n overflow-y: hidden;\n }\n }\n\n &.lighter {\n background: $ui-base-color;\n }\n\n &.with-modals {\n overflow-x: hidden;\n overflow-y: scroll;\n\n &--active {\n overflow-y: hidden;\n }\n }\n\n &.embed {\n background: lighten($ui-base-color, 4%);\n margin: 0;\n padding-bottom: 0;\n\n .container {\n position: absolute;\n width: 100%;\n height: 100%;\n overflow: hidden;\n }\n }\n\n &.admin {\n background: darken($ui-base-color, 4%);\n padding: 0;\n }\n\n &.error {\n position: absolute;\n text-align: center;\n color: $darker-text-color;\n background: $ui-base-color;\n width: 100%;\n height: 100%;\n padding: 0;\n display: flex;\n justify-content: center;\n align-items: center;\n\n .dialog {\n vertical-align: middle;\n margin: 20px;\n\n img {\n display: block;\n max-width: 470px;\n width: 100%;\n height: auto;\n margin-top: -120px;\n }\n\n h1 {\n font-size: 20px;\n line-height: 28px;\n font-weight: 400;\n }\n }\n }\n}\n\nbutton {\n font-family: inherit;\n cursor: pointer;\n\n &:focus {\n outline: none;\n }\n}\n\n.app-holder {\n &,\n & > div {\n display: flex;\n width: 100%;\n align-items: center;\n justify-content: center;\n outline: 0 !important;\n }\n}\n\n.layout-single-column .app-holder {\n &,\n & > div {\n min-height: 100vh;\n }\n}\n\n.layout-multiple-columns .app-holder {\n &,\n & > div {\n height: 100%;\n }\n}\n","// Commonly used web colors\n$black: #000000; // Black\n$white: #ffffff; // White\n$success-green: #79bd9a; // Padua\n$error-red: #df405a; // Cerise\n$warning-red: #ff5050; // Sunset Orange\n$gold-star: #ca8f04; // Dark Goldenrod\n\n$red-bookmark: $warning-red;\n\n// Pleroma-Dark colors\n$pleroma-bg: #121a24;\n$pleroma-fg: #182230;\n$pleroma-text: #b9b9ba;\n$pleroma-links: #d8a070;\n\n// Values from the classic Mastodon UI\n$classic-base-color: $pleroma-bg;\n$classic-primary-color: #9baec8;\n$classic-secondary-color: #d9e1e8;\n$classic-highlight-color: #d8a070;\n\n// Variables for defaults in UI\n$base-shadow-color: $black !default;\n$base-overlay-background: $black !default;\n$base-border-color: $white !default;\n$simple-background-color: $white !default;\n$valid-value-color: $success-green !default;\n$error-value-color: $error-red !default;\n\n// Tell UI to use selected colors\n$ui-base-color: $classic-base-color !default; // Darkest\n$ui-base-lighter-color: lighten($ui-base-color, 26%) !default; // Lighter darkest\n$ui-primary-color: $classic-primary-color !default; // Lighter\n$ui-secondary-color: $classic-secondary-color !default; // Lightest\n$ui-highlight-color: $classic-highlight-color !default;\n\n// Variables for texts\n$primary-text-color: $white !default;\n$darker-text-color: $ui-primary-color !default;\n$dark-text-color: $ui-base-lighter-color !default;\n$secondary-text-color: $ui-secondary-color !default;\n$highlight-text-color: $ui-highlight-color !default;\n$action-button-color: $ui-base-lighter-color !default;\n// For texts on inverted backgrounds\n$inverted-text-color: $ui-base-color !default;\n$lighter-text-color: $ui-base-lighter-color !default;\n$light-text-color: $ui-primary-color !default;\n\n// Language codes that uses CJK fonts\n$cjk-langs: ja, ko, zh-CN, zh-HK, zh-TW;\n\n// Variables for components\n$media-modal-media-max-width: 100%;\n// put margins on top and bottom of image to avoid the screen covered by image.\n$media-modal-media-max-height: 80%;\n\n$no-gap-breakpoint: 415px;\n\n$font-sans-serif: sans-serif !default;\n$font-display: sans-serif !default;\n$font-monospace: monospace !default;\n\n// Avatar border size (8% default, 100% for rounded avatars)\n$ui-avatar-border-size: 8%;\n\n// More variables\n$dismiss-overlay-width: 4rem;\n",".container-alt {\n width: 700px;\n margin: 0 auto;\n margin-top: 40px;\n\n @media screen and (max-width: 740px) {\n width: 100%;\n margin: 0;\n }\n}\n\n.logo-container {\n margin: 100px auto 50px;\n\n @media screen and (max-width: 500px) {\n margin: 40px auto 0;\n }\n\n h1 {\n display: flex;\n justify-content: center;\n align-items: center;\n\n svg {\n fill: $primary-text-color;\n height: 42px;\n margin-right: 10px;\n }\n\n a {\n display: flex;\n justify-content: center;\n align-items: center;\n color: $primary-text-color;\n text-decoration: none;\n outline: 0;\n padding: 12px 16px;\n line-height: 32px;\n font-family: $font-display, sans-serif;\n font-weight: 500;\n font-size: 14px;\n }\n }\n}\n\n.compose-standalone {\n .compose-form {\n width: 400px;\n margin: 0 auto;\n padding: 20px 0;\n margin-top: 40px;\n box-sizing: border-box;\n\n @media screen and (max-width: 400px) {\n width: 100%;\n margin-top: 0;\n padding: 20px;\n }\n }\n}\n\n.account-header {\n width: 400px;\n margin: 0 auto;\n display: flex;\n font-size: 13px;\n line-height: 18px;\n box-sizing: border-box;\n padding: 20px 0;\n padding-bottom: 0;\n margin-bottom: -30px;\n margin-top: 40px;\n\n @media screen and (max-width: 440px) {\n width: 100%;\n margin: 0;\n margin-bottom: 10px;\n padding: 20px;\n padding-bottom: 0;\n }\n\n .avatar {\n width: 40px;\n height: 40px;\n @include avatar-size(40px);\n margin-right: 8px;\n\n img {\n width: 100%;\n height: 100%;\n display: block;\n margin: 0;\n border-radius: 4px;\n @include avatar-radius();\n }\n }\n\n .name {\n flex: 1 1 auto;\n color: $secondary-text-color;\n width: calc(100% - 88px);\n\n .username {\n display: block;\n font-weight: 500;\n text-overflow: ellipsis;\n overflow: hidden;\n }\n }\n\n .logout-link {\n display: block;\n font-size: 32px;\n line-height: 40px;\n margin-left: 8px;\n }\n}\n\n.grid-3 {\n display: grid;\n grid-gap: 10px;\n grid-template-columns: 3fr 1fr;\n grid-auto-columns: 25%;\n grid-auto-rows: max-content;\n\n .column-0 {\n grid-column: 1/3;\n grid-row: 1;\n }\n\n .column-1 {\n grid-column: 1;\n grid-row: 2;\n }\n\n .column-2 {\n grid-column: 2;\n grid-row: 2;\n }\n\n .column-3 {\n grid-column: 1/3;\n grid-row: 3;\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n grid-gap: 0;\n grid-template-columns: minmax(0, 100%);\n\n .column-0 {\n grid-column: 1;\n }\n\n .column-1 {\n grid-column: 1;\n grid-row: 3;\n }\n\n .column-2 {\n grid-column: 1;\n grid-row: 2;\n }\n\n .column-3 {\n grid-column: 1;\n grid-row: 4;\n }\n }\n}\n\n.grid-4 {\n display: grid;\n grid-gap: 10px;\n grid-template-columns: repeat(4, minmax(0, 1fr));\n grid-auto-columns: 25%;\n grid-auto-rows: max-content;\n\n .column-0 {\n grid-column: 1 / 5;\n grid-row: 1;\n }\n\n .column-1 {\n grid-column: 1 / 4;\n grid-row: 2;\n }\n\n .column-2 {\n grid-column: 4;\n grid-row: 2;\n }\n\n .column-3 {\n grid-column: 2 / 5;\n grid-row: 3;\n }\n\n .column-4 {\n grid-column: 1;\n grid-row: 3;\n }\n\n .landing-page__call-to-action {\n min-height: 100%;\n }\n\n .flash-message {\n margin-bottom: 10px;\n }\n\n @media screen and (max-width: 738px) {\n grid-template-columns: minmax(0, 50%) minmax(0, 50%);\n\n .landing-page__call-to-action {\n padding: 20px;\n display: flex;\n align-items: center;\n justify-content: center;\n }\n\n .row__information-board {\n width: 100%;\n justify-content: center;\n align-items: center;\n }\n\n .row__mascot {\n display: none;\n }\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n grid-gap: 0;\n grid-template-columns: minmax(0, 100%);\n\n .column-0 {\n grid-column: 1;\n }\n\n .column-1 {\n grid-column: 1;\n grid-row: 3;\n }\n\n .column-2 {\n grid-column: 1;\n grid-row: 2;\n }\n\n .column-3 {\n grid-column: 1;\n grid-row: 5;\n }\n\n .column-4 {\n grid-column: 1;\n grid-row: 4;\n }\n }\n}\n\n.public-layout {\n @media screen and (max-width: $no-gap-breakpoint) {\n padding-top: 48px;\n }\n\n .container {\n max-width: 960px;\n\n @media screen and (max-width: $no-gap-breakpoint) {\n padding: 0;\n }\n }\n\n .header {\n background: lighten($ui-base-color, 8%);\n box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);\n border-radius: 4px;\n height: 48px;\n margin: 10px 0;\n display: flex;\n align-items: stretch;\n justify-content: center;\n flex-wrap: nowrap;\n overflow: hidden;\n\n @media screen and (max-width: $no-gap-breakpoint) {\n position: fixed;\n width: 100%;\n top: 0;\n left: 0;\n margin: 0;\n border-radius: 0;\n box-shadow: none;\n z-index: 110;\n }\n\n & > div {\n flex: 1 1 33.3%;\n min-height: 1px;\n }\n\n .nav-left {\n display: flex;\n align-items: stretch;\n justify-content: flex-start;\n flex-wrap: nowrap;\n }\n\n .nav-center {\n display: flex;\n align-items: stretch;\n justify-content: center;\n flex-wrap: nowrap;\n }\n\n .nav-right {\n display: flex;\n align-items: stretch;\n justify-content: flex-end;\n flex-wrap: nowrap;\n }\n\n .brand {\n display: block;\n padding: 15px;\n\n svg {\n display: block;\n height: 18px;\n width: auto;\n position: relative;\n bottom: -2px;\n fill: $primary-text-color;\n\n @media screen and (max-width: $no-gap-breakpoint) {\n height: 20px;\n }\n }\n\n &:hover,\n &:focus,\n &:active {\n background: lighten($ui-base-color, 12%);\n }\n }\n\n .nav-link {\n display: flex;\n align-items: center;\n padding: 0 1rem;\n font-size: 12px;\n font-weight: 500;\n text-decoration: none;\n color: $darker-text-color;\n white-space: nowrap;\n text-align: center;\n\n &:hover,\n &:focus,\n &:active {\n text-decoration: underline;\n color: $primary-text-color;\n }\n\n @media screen and (max-width: 550px) {\n &.optional {\n display: none;\n }\n }\n }\n\n .nav-button {\n background: lighten($ui-base-color, 16%);\n margin: 8px;\n margin-left: 0;\n border-radius: 4px;\n\n &:hover,\n &:focus,\n &:active {\n text-decoration: none;\n background: lighten($ui-base-color, 20%);\n }\n }\n }\n\n $no-columns-breakpoint: 600px;\n\n .grid {\n display: grid;\n grid-gap: 10px;\n grid-template-columns: minmax(300px, 3fr) minmax(298px, 1fr);\n grid-auto-columns: 25%;\n grid-auto-rows: max-content;\n\n .column-0 {\n grid-row: 1;\n grid-column: 1;\n }\n\n .column-1 {\n grid-row: 1;\n grid-column: 2;\n }\n\n @media screen and (max-width: $no-columns-breakpoint) {\n grid-template-columns: 100%;\n grid-gap: 0;\n\n .column-1 {\n display: none;\n }\n }\n }\n\n .directory__card {\n border-radius: 4px;\n\n @media screen and (max-width: $no-gap-breakpoint) {\n border-radius: 0;\n }\n }\n\n .page-header {\n @media screen and (max-width: $no-gap-breakpoint) {\n border-bottom: 0;\n }\n }\n\n .public-account-header {\n overflow: hidden;\n margin-bottom: 10px;\n box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);\n\n &.inactive {\n opacity: 0.5;\n\n .public-account-header__image,\n .avatar {\n filter: grayscale(100%);\n }\n\n .logo-button {\n background-color: $secondary-text-color;\n }\n }\n\n &__image {\n border-radius: 4px 4px 0 0;\n overflow: hidden;\n height: 300px;\n position: relative;\n background: darken($ui-base-color, 12%);\n\n &::after {\n content: \"\";\n display: block;\n position: absolute;\n width: 100%;\n height: 100%;\n box-shadow: inset 0 -1px 1px 1px rgba($base-shadow-color, 0.15);\n top: 0;\n left: 0;\n }\n\n img {\n object-fit: cover;\n display: block;\n width: 100%;\n height: 100%;\n margin: 0;\n border-radius: 4px 4px 0 0;\n }\n\n @media screen and (max-width: 600px) {\n height: 200px;\n }\n }\n\n &--no-bar {\n margin-bottom: 0;\n\n .public-account-header__image,\n .public-account-header__image img {\n border-radius: 4px;\n\n @media screen and (max-width: $no-gap-breakpoint) {\n border-radius: 0;\n }\n }\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n margin-bottom: 0;\n box-shadow: none;\n\n &__image::after {\n display: none;\n }\n\n &__image,\n &__image img {\n border-radius: 0;\n }\n }\n\n &__bar {\n position: relative;\n margin-top: -80px;\n display: flex;\n justify-content: flex-start;\n\n &::before {\n content: \"\";\n display: block;\n background: lighten($ui-base-color, 4%);\n position: absolute;\n bottom: 0;\n left: 0;\n right: 0;\n height: 60px;\n border-radius: 0 0 4px 4px;\n z-index: -1;\n }\n\n .avatar {\n display: block;\n width: 120px;\n height: 120px;\n @include avatar-size(120px);\n padding-left: 20px - 4px;\n flex: 0 0 auto;\n\n img {\n display: block;\n width: 100%;\n height: 100%;\n margin: 0;\n border-radius: 50%;\n border: 4px solid lighten($ui-base-color, 4%);\n background: darken($ui-base-color, 8%);\n @include avatar-radius();\n }\n }\n\n @media screen and (max-width: 600px) {\n margin-top: 0;\n background: lighten($ui-base-color, 4%);\n border-radius: 0 0 4px 4px;\n padding: 5px;\n\n &::before {\n display: none;\n }\n\n .avatar {\n width: 48px;\n height: 48px;\n @include avatar-size(48px);\n padding: 7px 0;\n padding-left: 10px;\n\n img {\n border: 0;\n border-radius: 4px;\n @include avatar-radius();\n }\n\n @media screen and (max-width: 360px) {\n display: none;\n }\n }\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n border-radius: 0;\n }\n\n @media screen and (max-width: $no-columns-breakpoint) {\n flex-wrap: wrap;\n }\n }\n\n &__tabs {\n flex: 1 1 auto;\n margin-left: 20px;\n\n &__name {\n padding-top: 20px;\n padding-bottom: 8px;\n\n h1 {\n font-size: 20px;\n line-height: 18px * 1.5;\n color: $primary-text-color;\n font-weight: 500;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n text-shadow: 1px 1px 1px $base-shadow-color;\n\n small {\n display: block;\n font-size: 14px;\n color: $primary-text-color;\n font-weight: 400;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n }\n }\n\n @media screen and (max-width: 600px) {\n margin-left: 15px;\n display: flex;\n justify-content: space-between;\n align-items: center;\n\n &__name {\n padding-top: 0;\n padding-bottom: 0;\n\n h1 {\n font-size: 16px;\n line-height: 24px;\n text-shadow: none;\n\n small {\n color: $darker-text-color;\n }\n }\n }\n }\n\n &__tabs {\n display: flex;\n justify-content: flex-start;\n align-items: stretch;\n height: 58px;\n\n .details-counters {\n display: flex;\n flex-direction: row;\n min-width: 300px;\n }\n\n @media screen and (max-width: $no-columns-breakpoint) {\n .details-counters {\n display: none;\n }\n }\n\n .counter {\n min-width: 33.3%;\n box-sizing: border-box;\n flex: 0 0 auto;\n color: $darker-text-color;\n padding: 10px;\n border-right: 1px solid lighten($ui-base-color, 4%);\n cursor: default;\n text-align: center;\n position: relative;\n\n a {\n display: block;\n }\n\n &:last-child {\n border-right: 0;\n }\n\n &::after {\n display: block;\n content: \"\";\n position: absolute;\n bottom: 0;\n left: 0;\n width: 100%;\n border-bottom: 4px solid $ui-primary-color;\n opacity: 0.5;\n transition: all 400ms ease;\n }\n\n &.active {\n &::after {\n border-bottom: 4px solid $highlight-text-color;\n opacity: 1;\n }\n\n &.inactive::after {\n border-bottom-color: $secondary-text-color;\n }\n }\n\n &:hover {\n &::after {\n opacity: 1;\n transition-duration: 100ms;\n }\n }\n\n a {\n text-decoration: none;\n color: inherit;\n }\n\n .counter-label {\n font-size: 12px;\n display: block;\n }\n\n .counter-number {\n font-weight: 500;\n font-size: 18px;\n margin-bottom: 5px;\n color: $primary-text-color;\n font-family: $font-display, sans-serif;\n }\n }\n\n .spacer {\n flex: 1 1 auto;\n height: 1px;\n }\n\n &__buttons {\n padding: 7px 8px;\n }\n }\n }\n\n &__extra {\n display: none;\n margin-top: 4px;\n\n .public-account-bio {\n border-radius: 0;\n box-shadow: none;\n background: transparent;\n margin: 0 -5px;\n\n .account__header__fields {\n border-top: 1px solid lighten($ui-base-color, 12%);\n }\n\n .roles {\n display: none;\n }\n }\n\n &__links {\n margin-top: -15px;\n font-size: 14px;\n color: $darker-text-color;\n\n a {\n display: inline-block;\n color: $darker-text-color;\n text-decoration: none;\n padding: 15px;\n font-weight: 500;\n\n strong {\n font-weight: 700;\n color: $primary-text-color;\n }\n }\n }\n\n @media screen and (max-width: $no-columns-breakpoint) {\n display: block;\n flex: 100%;\n }\n }\n }\n\n .account__section-headline {\n border-radius: 4px 4px 0 0;\n\n @media screen and (max-width: $no-gap-breakpoint) {\n border-radius: 0;\n }\n }\n\n .detailed-status__meta {\n margin-top: 25px;\n }\n\n .public-account-bio {\n background: lighten($ui-base-color, 8%);\n box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);\n border-radius: 4px;\n overflow: hidden;\n margin-bottom: 10px;\n\n @media screen and (max-width: $no-gap-breakpoint) {\n box-shadow: none;\n margin-bottom: 0;\n border-radius: 0;\n }\n\n .account__header__fields {\n margin: 0;\n border-top: 0;\n\n a {\n color: lighten($ui-highlight-color, 8%);\n }\n\n dl:first-child .verified {\n border-radius: 0 4px 0 0;\n }\n\n .verified a {\n color: $valid-value-color;\n }\n }\n\n .account__header__content {\n padding: 20px;\n padding-bottom: 0;\n color: $primary-text-color;\n }\n\n &__extra,\n .roles {\n padding: 20px;\n font-size: 14px;\n color: $darker-text-color;\n }\n\n .roles {\n padding-bottom: 0;\n }\n }\n\n .directory__list {\n display: grid;\n grid-gap: 10px;\n grid-template-columns: minmax(0, 50%) minmax(0, 50%);\n\n @media screen and (max-width: $no-gap-breakpoint) {\n display: block;\n }\n\n .icon-button {\n font-size: 18px;\n }\n }\n\n .directory__card {\n margin-bottom: 0;\n }\n\n .card-grid {\n display: flex;\n flex-wrap: wrap;\n min-width: 100%;\n margin: 0 -5px;\n\n & > div {\n box-sizing: border-box;\n flex: 1 0 auto;\n width: 300px;\n padding: 0 5px;\n margin-bottom: 10px;\n max-width: 33.333%;\n\n @media screen and (max-width: 900px) {\n max-width: 50%;\n }\n\n @media screen and (max-width: 600px) {\n max-width: 100%;\n }\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n margin: 0;\n border-top: 1px solid lighten($ui-base-color, 8%);\n\n & > div {\n width: 100%;\n padding: 0;\n margin-bottom: 0;\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n\n &:last-child {\n border-bottom: 0;\n }\n\n .card__bar {\n background: $ui-base-color;\n\n &:hover,\n &:active,\n &:focus {\n background: lighten($ui-base-color, 4%);\n }\n }\n }\n }\n }\n}\n","@mixin avatar-radius() {\n border-radius: $ui-avatar-border-size;\n background-position: 50%;\n background-clip: padding-box;\n}\n\n@mixin avatar-size($size:48px) {\n width: $size;\n height: $size;\n background-size: $size $size;\n}\n\n@mixin single-column($media, $parent: '&') {\n .auto-columns #{$parent} {\n @media #{$media} {\n @content;\n }\n }\n .single-column #{$parent} {\n @content;\n }\n}\n\n@mixin limited-single-column($media, $parent: '&') {\n .auto-columns #{$parent}, .single-column #{$parent} {\n @media #{$media} {\n @content;\n }\n }\n}\n\n@mixin multi-columns($media, $parent: '&') {\n .auto-columns #{$parent} {\n @media #{$media} {\n @content;\n }\n }\n .multi-columns #{$parent} {\n @content;\n }\n}\n\n@mixin fullwidth-gallery {\n &.full-width {\n margin-left: -14px;\n margin-right: -14px;\n width: inherit;\n max-width: none;\n height: 250px;\n border-radius: 0px;\n }\n}\n\n@mixin search-input() {\n outline: 0;\n box-sizing: border-box;\n width: 100%;\n border: none;\n box-shadow: none;\n font-family: inherit;\n background: $ui-base-color;\n color: $darker-text-color;\n font-size: 14px;\n margin: 0;\n}\n\n@mixin search-popout() {\n background: $simple-background-color;\n border-radius: 4px;\n padding: 10px 14px;\n padding-bottom: 14px;\n margin-top: 10px;\n color: $light-text-color;\n box-shadow: 2px 4px 15px rgba($base-shadow-color, 0.4);\n\n h4 {\n text-transform: uppercase;\n color: $light-text-color;\n font-size: 13px;\n font-weight: 500;\n margin-bottom: 10px;\n }\n\n li {\n padding: 4px 0;\n }\n\n ul {\n margin-bottom: 10px;\n }\n\n em {\n font-weight: 500;\n color: $inverted-text-color;\n }\n}\n",".no-list {\n list-style: none;\n\n li {\n display: inline-block;\n margin: 0 5px;\n }\n}\n\n.recovery-codes {\n list-style: none;\n margin: 0 auto;\n\n li {\n font-size: 125%;\n line-height: 1.5;\n letter-spacing: 1px;\n }\n}\n",".modal-layout {\n background: $ui-base-color url('data:image/svg+xml;utf8,') repeat-x bottom fixed;\n display: flex;\n flex-direction: column;\n height: 100vh;\n padding: 0;\n}\n\n.modal-layout__mastodon {\n display: flex;\n flex: 1;\n flex-direction: column;\n justify-content: flex-end;\n\n > * {\n flex: 1;\n max-height: 235px;\n }\n}\n\n@media screen and (max-width: 600px) {\n .account-header {\n margin-top: 0;\n }\n}\n",".public-layout {\n .footer {\n text-align: left;\n padding-top: 20px;\n padding-bottom: 60px;\n font-size: 12px;\n color: lighten($ui-base-color, 34%);\n\n @media screen and (max-width: $no-gap-breakpoint) {\n padding-left: 20px;\n padding-right: 20px;\n }\n\n .grid {\n display: grid;\n grid-gap: 10px;\n grid-template-columns: 1fr 1fr 2fr 1fr 1fr;\n\n .column-0 {\n grid-column: 1;\n grid-row: 1;\n min-width: 0;\n }\n\n .column-1 {\n grid-column: 2;\n grid-row: 1;\n min-width: 0;\n }\n\n .column-2 {\n grid-column: 3;\n grid-row: 1;\n min-width: 0;\n text-align: center;\n\n h4 a {\n color: lighten($ui-base-color, 34%);\n }\n }\n\n .column-3 {\n grid-column: 4;\n grid-row: 1;\n min-width: 0;\n }\n\n .column-4 {\n grid-column: 5;\n grid-row: 1;\n min-width: 0;\n }\n\n @media screen and (max-width: 690px) {\n grid-template-columns: 1fr 2fr 1fr;\n\n .column-0,\n .column-1 {\n grid-column: 1;\n }\n\n .column-1 {\n grid-row: 2;\n }\n\n .column-2 {\n grid-column: 2;\n }\n\n .column-3,\n .column-4 {\n grid-column: 3;\n }\n\n .column-4 {\n grid-row: 2;\n }\n }\n\n @media screen and (max-width: 600px) {\n .column-1 {\n display: block;\n }\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n .column-0,\n .column-1,\n .column-3,\n .column-4 {\n display: none;\n }\n }\n }\n\n h4 {\n text-transform: uppercase;\n font-weight: 700;\n margin-bottom: 8px;\n color: $darker-text-color;\n\n a {\n color: inherit;\n text-decoration: none;\n }\n }\n\n ul a {\n text-decoration: none;\n color: lighten($ui-base-color, 34%);\n\n &:hover,\n &:active,\n &:focus {\n text-decoration: underline;\n }\n }\n\n .brand {\n svg {\n display: block;\n height: 36px;\n width: auto;\n margin: 0 auto;\n fill: lighten($ui-base-color, 34%);\n }\n\n &:hover,\n &:focus,\n &:active {\n svg {\n fill: lighten($ui-base-color, 38%);\n }\n }\n }\n }\n}\n",".compact-header {\n h1 {\n font-size: 24px;\n line-height: 28px;\n color: $darker-text-color;\n font-weight: 500;\n margin-bottom: 20px;\n padding: 0 10px;\n word-wrap: break-word;\n\n @media screen and (max-width: 740px) {\n text-align: center;\n padding: 20px 10px 0;\n }\n\n a {\n color: inherit;\n text-decoration: none;\n }\n\n small {\n font-weight: 400;\n color: $secondary-text-color;\n }\n\n img {\n display: inline-block;\n margin-bottom: -5px;\n margin-right: 15px;\n width: 36px;\n height: 36px;\n }\n }\n}\n",".hero-widget {\n margin-bottom: 10px;\n box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);\n\n &__img {\n width: 100%;\n position: relative;\n overflow: hidden;\n border-radius: 4px 4px 0 0;\n background: $base-shadow-color;\n\n img {\n object-fit: cover;\n display: block;\n width: 100%;\n height: 100%;\n margin: 0;\n border-radius: 4px 4px 0 0;\n }\n }\n\n &__text {\n background: $ui-base-color;\n padding: 20px;\n border-radius: 0 0 4px 4px;\n font-size: 15px;\n color: $darker-text-color;\n line-height: 20px;\n word-wrap: break-word;\n font-weight: 400;\n\n .emojione {\n width: 20px;\n height: 20px;\n margin: -3px 0 0;\n }\n\n p {\n margin-bottom: 20px;\n\n &:last-child {\n margin-bottom: 0;\n }\n }\n\n em {\n display: inline;\n margin: 0;\n padding: 0;\n font-weight: 700;\n background: transparent;\n font-family: inherit;\n font-size: inherit;\n line-height: inherit;\n color: lighten($darker-text-color, 10%);\n }\n\n a {\n color: $secondary-text-color;\n text-decoration: none;\n\n &:hover {\n text-decoration: underline;\n }\n }\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n display: none;\n }\n}\n\n.endorsements-widget {\n margin-bottom: 10px;\n padding-bottom: 10px;\n\n h4 {\n padding: 10px;\n text-transform: uppercase;\n font-weight: 700;\n font-size: 13px;\n color: $darker-text-color;\n }\n\n .account {\n padding: 10px 0;\n\n &:last-child {\n border-bottom: 0;\n }\n\n .account__display-name {\n display: flex;\n align-items: center;\n }\n\n .account__avatar {\n width: 44px;\n height: 44px;\n background-size: 44px 44px;\n }\n }\n\n .trends__item {\n padding: 10px;\n }\n}\n\n.trends-widget {\n h4 {\n color: $darker-text-color;\n }\n}\n\n.box-widget {\n padding: 20px;\n border-radius: 4px;\n background: $ui-base-color;\n box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);\n}\n\n.placeholder-widget {\n padding: 16px;\n border-radius: 4px;\n border: 2px dashed $dark-text-color;\n text-align: center;\n color: $darker-text-color;\n margin-bottom: 10px;\n}\n\n.contact-widget {\n min-height: 100%;\n font-size: 15px;\n color: $darker-text-color;\n line-height: 20px;\n word-wrap: break-word;\n font-weight: 400;\n padding: 0;\n\n h4 {\n padding: 10px;\n text-transform: uppercase;\n font-weight: 700;\n font-size: 13px;\n color: $darker-text-color;\n }\n\n .account {\n border-bottom: 0;\n padding: 10px 0;\n padding-top: 5px;\n }\n\n & > a {\n display: inline-block;\n padding: 10px;\n padding-top: 0;\n color: $darker-text-color;\n text-decoration: none;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n\n &:hover,\n &:focus,\n &:active {\n text-decoration: underline;\n }\n }\n}\n\n.moved-account-widget {\n padding: 15px;\n padding-bottom: 20px;\n border-radius: 4px;\n background: $ui-base-color;\n box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);\n color: $secondary-text-color;\n font-weight: 400;\n margin-bottom: 10px;\n\n strong,\n a {\n font-weight: 500;\n\n @each $lang in $cjk-langs {\n &:lang(#{$lang}) {\n font-weight: 700;\n }\n }\n }\n\n a {\n color: inherit;\n text-decoration: underline;\n\n &.mention {\n text-decoration: none;\n\n span {\n text-decoration: none;\n }\n\n &:focus,\n &:hover,\n &:active {\n text-decoration: none;\n\n span {\n text-decoration: underline;\n }\n }\n }\n }\n\n &__message {\n margin-bottom: 15px;\n\n .fa {\n margin-right: 5px;\n color: $darker-text-color;\n }\n }\n\n &__card {\n .detailed-status__display-avatar {\n position: relative;\n cursor: pointer;\n }\n\n .detailed-status__display-name {\n margin-bottom: 0;\n text-decoration: none;\n\n span {\n font-weight: 400;\n }\n }\n }\n}\n\n.memoriam-widget {\n padding: 20px;\n border-radius: 4px;\n background: $base-shadow-color;\n box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);\n font-size: 14px;\n color: $darker-text-color;\n margin-bottom: 10px;\n}\n\n.page-header {\n background: lighten($ui-base-color, 8%);\n box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);\n border-radius: 4px;\n padding: 60px 15px;\n text-align: center;\n margin: 10px 0;\n\n h1 {\n color: $primary-text-color;\n font-size: 36px;\n line-height: 1.1;\n font-weight: 700;\n margin-bottom: 10px;\n }\n\n p {\n font-size: 15px;\n color: $darker-text-color;\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n margin-top: 0;\n background: lighten($ui-base-color, 4%);\n\n h1 {\n font-size: 24px;\n }\n }\n}\n\n.directory {\n background: $ui-base-color;\n border-radius: 4px;\n box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);\n\n &__tag {\n box-sizing: border-box;\n margin-bottom: 10px;\n\n & > a,\n & > div {\n display: flex;\n align-items: center;\n justify-content: space-between;\n background: $ui-base-color;\n border-radius: 4px;\n padding: 15px;\n text-decoration: none;\n color: inherit;\n box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);\n }\n\n & > a {\n &:hover,\n &:active,\n &:focus {\n background: lighten($ui-base-color, 8%);\n }\n }\n\n &.active > a {\n background: $ui-highlight-color;\n cursor: default;\n }\n\n &.disabled > div {\n opacity: 0.5;\n cursor: default;\n }\n\n h4 {\n flex: 1 1 auto;\n font-size: 18px;\n font-weight: 700;\n color: $primary-text-color;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n\n .fa {\n color: $darker-text-color;\n }\n\n small {\n display: block;\n font-weight: 400;\n font-size: 15px;\n margin-top: 8px;\n color: $darker-text-color;\n }\n }\n\n &.active h4 {\n &,\n .fa,\n small {\n color: $primary-text-color;\n }\n }\n\n .avatar-stack {\n flex: 0 0 auto;\n width: (36px + 4px) * 3;\n }\n\n &.active .avatar-stack .account__avatar {\n border-color: $ui-highlight-color;\n }\n }\n}\n\n.avatar-stack {\n display: flex;\n justify-content: flex-end;\n\n .account__avatar {\n flex: 0 0 auto;\n width: 36px;\n height: 36px;\n border-radius: 50%;\n position: relative;\n margin-left: -10px;\n background: darken($ui-base-color, 8%);\n border: 2px solid $ui-base-color;\n\n &:nth-child(1) {\n z-index: 1;\n }\n\n &:nth-child(2) {\n z-index: 2;\n }\n\n &:nth-child(3) {\n z-index: 3;\n }\n }\n}\n\n.accounts-table {\n width: 100%;\n\n .account {\n padding: 0;\n border: 0;\n }\n\n strong {\n font-weight: 700;\n }\n\n thead th {\n text-align: center;\n text-transform: uppercase;\n color: $darker-text-color;\n font-weight: 700;\n padding: 10px;\n\n &:first-child {\n text-align: left;\n }\n }\n\n tbody td {\n padding: 15px 0;\n vertical-align: middle;\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n }\n\n tbody tr:last-child td {\n border-bottom: 0;\n }\n\n &__count {\n width: 120px;\n text-align: center;\n font-size: 15px;\n font-weight: 500;\n color: $primary-text-color;\n\n small {\n display: block;\n color: $darker-text-color;\n font-weight: 400;\n font-size: 14px;\n }\n }\n\n &__comment {\n width: 50%;\n vertical-align: initial !important;\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n tbody td.optional {\n display: none;\n }\n }\n}\n\n.moved-account-widget,\n.memoriam-widget,\n.box-widget,\n.contact-widget,\n.landing-page__information.contact-widget,\n.directory,\n.page-header {\n @media screen and (max-width: $no-gap-breakpoint) {\n margin-bottom: 0;\n box-shadow: none;\n border-radius: 0;\n }\n}\n\n$maximum-width: 1235px;\n$fluid-breakpoint: $maximum-width + 20px;\n\n.statuses-grid {\n min-height: 600px;\n\n @media screen and (max-width: 640px) {\n width: 100% !important; // Masonry layout is unnecessary at this width\n }\n\n &__item {\n width: (960px - 20px) / 3;\n\n @media screen and (max-width: $fluid-breakpoint) {\n width: (940px - 20px) / 3;\n }\n\n @media screen and (max-width: 640px) {\n width: 100%;\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n width: 100vw;\n }\n }\n\n .detailed-status {\n border-radius: 4px;\n\n @media screen and (max-width: $no-gap-breakpoint) {\n border-top: 1px solid lighten($ui-base-color, 16%);\n }\n\n &.compact {\n .detailed-status__meta {\n margin-top: 15px;\n }\n\n .status__content {\n font-size: 15px;\n line-height: 20px;\n\n .emojione {\n width: 20px;\n height: 20px;\n margin: -3px 0 0;\n }\n\n .status__content__spoiler-link {\n line-height: 20px;\n margin: 0;\n }\n }\n\n .media-gallery,\n .status-card,\n .video-player {\n margin-top: 15px;\n }\n }\n }\n}\n\n.notice-widget {\n margin-bottom: 10px;\n color: $darker-text-color;\n\n p {\n margin-bottom: 10px;\n\n &:last-child {\n margin-bottom: 0;\n }\n }\n\n a {\n font-size: 14px;\n line-height: 20px;\n }\n}\n\n.notice-widget,\n.placeholder-widget {\n a {\n text-decoration: none;\n font-weight: 500;\n color: $ui-highlight-color;\n\n &:hover,\n &:focus,\n &:active {\n text-decoration: underline;\n }\n }\n}\n\n.table-of-contents {\n background: darken($ui-base-color, 4%);\n min-height: 100%;\n font-size: 14px;\n border-radius: 4px;\n\n li a {\n display: block;\n font-weight: 500;\n padding: 15px;\n overflow: hidden;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n text-decoration: none;\n color: $primary-text-color;\n border-bottom: 1px solid lighten($ui-base-color, 4%);\n\n &:hover,\n &:focus,\n &:active {\n text-decoration: underline;\n }\n }\n\n li:last-child a {\n border-bottom: 0;\n }\n\n li ul {\n padding-left: 20px;\n border-bottom: 1px solid lighten($ui-base-color, 4%);\n }\n}\n","$no-columns-breakpoint: 600px;\n\ncode {\n font-family: $font-monospace, monospace;\n font-weight: 400;\n}\n\n.form-container {\n max-width: 400px;\n padding: 20px;\n margin: 0 auto;\n}\n\n.simple_form {\n .input {\n margin-bottom: 15px;\n overflow: hidden;\n\n &.hidden {\n margin: 0;\n }\n\n &.radio_buttons {\n .radio {\n margin-bottom: 15px;\n\n &:last-child {\n margin-bottom: 0;\n }\n }\n\n .radio > label {\n position: relative;\n padding-left: 28px;\n\n input {\n position: absolute;\n top: -2px;\n left: 0;\n }\n }\n }\n\n &.boolean {\n position: relative;\n margin-bottom: 0;\n\n .label_input > label {\n font-family: inherit;\n font-size: 14px;\n padding-top: 5px;\n color: $primary-text-color;\n display: block;\n width: auto;\n }\n\n .label_input,\n .hint {\n padding-left: 28px;\n }\n\n .label_input__wrapper {\n position: static;\n }\n\n label.checkbox {\n position: absolute;\n top: 2px;\n left: 0;\n }\n\n label a {\n color: $highlight-text-color;\n text-decoration: underline;\n\n &:hover,\n &:active,\n &:focus {\n text-decoration: none;\n }\n }\n\n .recommended {\n position: absolute;\n margin: 0 4px;\n margin-top: -2px;\n }\n }\n }\n\n .row {\n display: flex;\n margin: 0 -5px;\n\n .input {\n box-sizing: border-box;\n flex: 1 1 auto;\n width: 50%;\n padding: 0 5px;\n }\n }\n\n .hint {\n color: $darker-text-color;\n\n a {\n color: $highlight-text-color;\n }\n\n code {\n border-radius: 3px;\n padding: 0.2em 0.4em;\n background: darken($ui-base-color, 12%);\n }\n }\n\n span.hint {\n display: block;\n font-size: 12px;\n margin-top: 4px;\n }\n\n p.hint {\n margin-bottom: 15px;\n color: $darker-text-color;\n\n &.subtle-hint {\n text-align: center;\n font-size: 12px;\n line-height: 18px;\n margin-top: 15px;\n margin-bottom: 0;\n }\n }\n\n .card {\n margin-bottom: 15px;\n }\n\n strong {\n font-weight: 500;\n\n @each $lang in $cjk-langs {\n &:lang(#{$lang}) {\n font-weight: 700;\n }\n }\n }\n\n .input.with_floating_label {\n .label_input {\n display: flex;\n\n & > label {\n font-family: inherit;\n font-size: 14px;\n color: $primary-text-color;\n font-weight: 500;\n min-width: 150px;\n flex: 0 0 auto;\n }\n\n input,\n select {\n flex: 1 1 auto;\n }\n }\n\n &.select .hint {\n margin-top: 6px;\n margin-left: 150px;\n }\n }\n\n .input.with_label {\n .label_input > label {\n font-family: inherit;\n font-size: 14px;\n color: $primary-text-color;\n display: block;\n margin-bottom: 8px;\n word-wrap: break-word;\n font-weight: 500;\n }\n\n .hint {\n margin-top: 6px;\n }\n\n ul {\n flex: 390px;\n }\n }\n\n .input.with_block_label {\n max-width: none;\n\n & > label {\n font-family: inherit;\n font-size: 16px;\n color: $primary-text-color;\n display: block;\n font-weight: 500;\n padding-top: 5px;\n }\n\n .hint {\n margin-bottom: 15px;\n }\n\n ul {\n columns: 2;\n }\n }\n\n .input.datetime .label_input select {\n display: inline-block;\n width: auto;\n flex: 0;\n }\n\n .required abbr {\n text-decoration: none;\n color: lighten($error-value-color, 12%);\n }\n\n .fields-group {\n margin-bottom: 25px;\n\n .input:last-child {\n margin-bottom: 0;\n }\n }\n\n .fields-row {\n display: flex;\n margin: 0 -10px;\n padding-top: 5px;\n margin-bottom: 25px;\n\n .input {\n max-width: none;\n }\n\n &__column {\n box-sizing: border-box;\n padding: 0 10px;\n flex: 1 1 auto;\n min-height: 1px;\n\n &-6 {\n max-width: 50%;\n }\n\n .actions {\n margin-top: 27px;\n }\n }\n\n .fields-group:last-child,\n .fields-row__column.fields-group {\n margin-bottom: 0;\n }\n\n @media screen and (max-width: $no-columns-breakpoint) {\n display: block;\n margin-bottom: 0;\n\n &__column {\n max-width: none;\n }\n\n .fields-group:last-child,\n .fields-row__column.fields-group,\n .fields-row__column {\n margin-bottom: 25px;\n }\n }\n }\n\n .input.radio_buttons .radio label {\n margin-bottom: 5px;\n font-family: inherit;\n font-size: 14px;\n color: $primary-text-color;\n display: block;\n width: auto;\n }\n\n .check_boxes {\n .checkbox {\n label {\n font-family: inherit;\n font-size: 14px;\n color: $primary-text-color;\n display: inline-block;\n width: auto;\n position: relative;\n padding-top: 5px;\n padding-left: 25px;\n flex: 1 1 auto;\n }\n\n input[type=checkbox] {\n position: absolute;\n left: 0;\n top: 5px;\n margin: 0;\n }\n }\n }\n\n .input.static .label_input__wrapper {\n font-size: 16px;\n padding: 10px;\n border: 1px solid $dark-text-color;\n border-radius: 4px;\n }\n\n input[type=text],\n input[type=number],\n input[type=email],\n input[type=password],\n textarea {\n box-sizing: border-box;\n font-size: 16px;\n color: $primary-text-color;\n display: block;\n width: 100%;\n outline: 0;\n font-family: inherit;\n resize: vertical;\n background: darken($ui-base-color, 10%);\n border: 1px solid darken($ui-base-color, 14%);\n border-radius: 4px;\n padding: 10px;\n\n &::placeholder {\n color: lighten($darker-text-color, 4%);\n }\n\n &:invalid {\n box-shadow: none;\n }\n\n &:focus:invalid:not(:placeholder-shown) {\n border-color: lighten($error-red, 12%);\n }\n\n &:required:valid {\n border-color: $valid-value-color;\n }\n\n &:hover {\n border-color: darken($ui-base-color, 20%);\n }\n\n &:active,\n &:focus {\n border-color: $highlight-text-color;\n background: darken($ui-base-color, 8%);\n }\n }\n\n .input.field_with_errors {\n label {\n color: lighten($error-red, 12%);\n }\n\n input[type=text],\n input[type=number],\n input[type=email],\n input[type=password],\n textarea,\n select {\n border-color: lighten($error-red, 12%);\n }\n\n .error {\n display: block;\n font-weight: 500;\n color: lighten($error-red, 12%);\n margin-top: 4px;\n }\n }\n\n .input.disabled {\n opacity: 0.5;\n }\n\n .actions {\n margin-top: 30px;\n display: flex;\n\n &.actions--top {\n margin-top: 0;\n margin-bottom: 30px;\n }\n }\n\n button,\n .button,\n .block-button {\n display: block;\n width: 100%;\n border: 0;\n border-radius: 4px;\n background: $ui-highlight-color;\n color: $primary-text-color;\n font-size: 18px;\n line-height: inherit;\n height: auto;\n padding: 10px;\n text-transform: uppercase;\n text-decoration: none;\n text-align: center;\n box-sizing: border-box;\n cursor: pointer;\n font-weight: 500;\n outline: 0;\n margin-bottom: 10px;\n margin-right: 10px;\n\n &:last-child {\n margin-right: 0;\n }\n\n &:hover {\n background-color: lighten($ui-highlight-color, 5%);\n }\n\n &:active,\n &:focus {\n background-color: darken($ui-highlight-color, 5%);\n }\n\n &:disabled:hover {\n background-color: $ui-primary-color;\n }\n\n &.negative {\n background: $error-value-color;\n\n &:hover {\n background-color: lighten($error-value-color, 5%);\n }\n\n &:active,\n &:focus {\n background-color: darken($error-value-color, 5%);\n }\n }\n }\n\n select {\n appearance: none;\n box-sizing: border-box;\n font-size: 16px;\n color: $primary-text-color;\n display: block;\n width: 100%;\n outline: 0;\n font-family: inherit;\n resize: vertical;\n background: darken($ui-base-color, 10%) url(\"data:image/svg+xml;utf8,\") no-repeat right 8px center / auto 16px;\n border: 1px solid darken($ui-base-color, 14%);\n border-radius: 4px;\n padding-left: 10px;\n padding-right: 30px;\n height: 41px;\n }\n\n h4 {\n margin-bottom: 15px !important;\n }\n\n .label_input {\n &__wrapper {\n position: relative;\n }\n\n &__append {\n position: absolute;\n right: 3px;\n top: 1px;\n padding: 10px;\n padding-bottom: 9px;\n font-size: 16px;\n color: $dark-text-color;\n font-family: inherit;\n pointer-events: none;\n cursor: default;\n max-width: 140px;\n white-space: nowrap;\n overflow: hidden;\n\n &::after {\n content: '';\n display: block;\n position: absolute;\n top: 0;\n right: 0;\n bottom: 1px;\n width: 5px;\n background-image: linear-gradient(to right, rgba(darken($ui-base-color, 10%), 0), darken($ui-base-color, 10%));\n }\n }\n }\n\n &__overlay-area {\n position: relative;\n\n &__blurred form {\n filter: blur(2px);\n }\n\n &__overlay {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n display: flex;\n justify-content: center;\n align-items: center;\n background: rgba($ui-base-color, 0.65);\n border-radius: 4px;\n margin-left: -4px;\n margin-top: -4px;\n padding: 4px;\n\n &__content {\n text-align: center;\n\n &.rich-formatting {\n &,\n p {\n color: $primary-text-color;\n }\n }\n }\n }\n }\n}\n\n.block-icon {\n display: block;\n margin: 0 auto;\n margin-bottom: 10px;\n font-size: 24px;\n}\n\n.flash-message {\n background: lighten($ui-base-color, 8%);\n color: $darker-text-color;\n border-radius: 4px;\n padding: 15px 10px;\n margin-bottom: 30px;\n text-align: center;\n\n &.notice {\n border: 1px solid rgba($valid-value-color, 0.5);\n background: rgba($valid-value-color, 0.25);\n color: $valid-value-color;\n }\n\n &.alert {\n border: 1px solid rgba($error-value-color, 0.5);\n background: rgba($error-value-color, 0.25);\n color: $error-value-color;\n }\n\n a {\n display: inline-block;\n color: $darker-text-color;\n text-decoration: none;\n\n &:hover {\n color: $primary-text-color;\n text-decoration: underline;\n }\n }\n\n p {\n margin-bottom: 15px;\n }\n\n .oauth-code {\n outline: 0;\n box-sizing: border-box;\n display: block;\n width: 100%;\n border: none;\n padding: 10px;\n font-family: $font-monospace, monospace;\n background: $ui-base-color;\n color: $primary-text-color;\n font-size: 14px;\n margin: 0;\n\n &::-moz-focus-inner {\n border: 0;\n }\n\n &::-moz-focus-inner,\n &:focus,\n &:active {\n outline: 0 !important;\n }\n\n &:focus {\n background: lighten($ui-base-color, 4%);\n }\n }\n\n strong {\n font-weight: 500;\n\n @each $lang in $cjk-langs {\n &:lang(#{$lang}) {\n font-weight: 700;\n }\n }\n }\n\n @media screen and (max-width: 740px) and (min-width: 441px) {\n margin-top: 40px;\n }\n}\n\n.form-footer {\n margin-top: 30px;\n text-align: center;\n\n a {\n color: $darker-text-color;\n text-decoration: none;\n\n &:hover {\n text-decoration: underline;\n }\n }\n}\n\n.quick-nav {\n list-style: none;\n margin-bottom: 25px;\n font-size: 14px;\n\n li {\n display: inline-block;\n margin-right: 10px;\n }\n\n a {\n color: $highlight-text-color;\n text-transform: uppercase;\n text-decoration: none;\n font-weight: 700;\n\n &:hover,\n &:focus,\n &:active {\n color: lighten($highlight-text-color, 8%);\n }\n }\n}\n\n.oauth-prompt,\n.follow-prompt {\n margin-bottom: 30px;\n color: $darker-text-color;\n\n h2 {\n font-size: 16px;\n margin-bottom: 30px;\n text-align: center;\n }\n\n strong {\n color: $secondary-text-color;\n font-weight: 500;\n\n @each $lang in $cjk-langs {\n &:lang(#{$lang}) {\n font-weight: 700;\n }\n }\n }\n\n @media screen and (max-width: 740px) and (min-width: 441px) {\n margin-top: 40px;\n }\n}\n\n.qr-wrapper {\n display: flex;\n flex-wrap: wrap;\n align-items: flex-start;\n}\n\n.qr-code {\n flex: 0 0 auto;\n background: $simple-background-color;\n padding: 4px;\n margin: 0 10px 20px 0;\n box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);\n display: inline-block;\n\n svg {\n display: block;\n margin: 0;\n }\n}\n\n.qr-alternative {\n margin-bottom: 20px;\n color: $secondary-text-color;\n flex: 150px;\n\n samp {\n display: block;\n font-size: 14px;\n }\n}\n\n.table-form {\n p {\n margin-bottom: 15px;\n\n strong {\n font-weight: 500;\n\n @each $lang in $cjk-langs {\n &:lang(#{$lang}) {\n font-weight: 700;\n }\n }\n }\n }\n}\n\n.simple_form,\n.table-form {\n .warning {\n box-sizing: border-box;\n background: rgba($error-value-color, 0.5);\n color: $primary-text-color;\n text-shadow: 1px 1px 0 rgba($base-shadow-color, 0.3);\n box-shadow: 0 2px 6px rgba($base-shadow-color, 0.4);\n border-radius: 4px;\n padding: 10px;\n margin-bottom: 15px;\n\n a {\n color: $primary-text-color;\n text-decoration: underline;\n\n &:hover,\n &:focus,\n &:active {\n text-decoration: none;\n }\n }\n\n strong {\n font-weight: 600;\n display: block;\n margin-bottom: 5px;\n\n @each $lang in $cjk-langs {\n &:lang(#{$lang}) {\n font-weight: 700;\n }\n }\n\n .fa {\n font-weight: 400;\n }\n }\n }\n}\n\n.action-pagination {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n\n .actions,\n .pagination {\n flex: 1 1 auto;\n }\n\n .actions {\n padding: 30px 0;\n padding-right: 20px;\n flex: 0 0 auto;\n }\n}\n\n.post-follow-actions {\n text-align: center;\n color: $darker-text-color;\n\n div {\n margin-bottom: 4px;\n }\n}\n\n.alternative-login {\n margin-top: 20px;\n margin-bottom: 20px;\n\n h4 {\n font-size: 16px;\n color: $primary-text-color;\n text-align: center;\n margin-bottom: 20px;\n border: 0;\n padding: 0;\n }\n\n .button {\n display: block;\n }\n}\n\n.scope-danger {\n color: $warning-red;\n}\n\n.form_admin_settings_site_short_description,\n.form_admin_settings_site_description,\n.form_admin_settings_site_extended_description,\n.form_admin_settings_site_terms,\n.form_admin_settings_custom_css,\n.form_admin_settings_closed_registrations_message {\n textarea {\n font-family: $font-monospace, monospace;\n }\n}\n\n.input-copy {\n background: darken($ui-base-color, 10%);\n border: 1px solid darken($ui-base-color, 14%);\n border-radius: 4px;\n display: flex;\n align-items: center;\n padding-right: 4px;\n position: relative;\n top: 1px;\n transition: border-color 300ms linear;\n\n &__wrapper {\n flex: 1 1 auto;\n }\n\n input[type=text] {\n background: transparent;\n border: 0;\n padding: 10px;\n font-size: 14px;\n font-family: $font-monospace, monospace;\n }\n\n button {\n flex: 0 0 auto;\n margin: 4px;\n text-transform: none;\n font-weight: 400;\n font-size: 14px;\n padding: 7px 18px;\n padding-bottom: 6px;\n width: auto;\n transition: background 300ms linear;\n }\n\n &.copied {\n border-color: $valid-value-color;\n transition: none;\n\n button {\n background: $valid-value-color;\n transition: none;\n }\n }\n}\n\n.connection-prompt {\n margin-bottom: 25px;\n\n .fa-link {\n background-color: darken($ui-base-color, 4%);\n border-radius: 100%;\n font-size: 24px;\n padding: 10px;\n }\n\n &__column {\n align-items: center;\n display: flex;\n flex: 1;\n flex-direction: column;\n flex-shrink: 1;\n max-width: 50%;\n\n &-sep {\n align-self: center;\n flex-grow: 0;\n overflow: visible;\n position: relative;\n z-index: 1;\n }\n\n p {\n word-break: break-word;\n }\n }\n\n .account__avatar {\n margin-bottom: 20px;\n }\n\n &__connection {\n background-color: lighten($ui-base-color, 8%);\n box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);\n border-radius: 4px;\n padding: 25px 10px;\n position: relative;\n text-align: center;\n\n &::after {\n background-color: darken($ui-base-color, 4%);\n content: '';\n display: block;\n height: 100%;\n left: 50%;\n position: absolute;\n top: 0;\n width: 1px;\n }\n }\n\n &__row {\n align-items: flex-start;\n display: flex;\n flex-direction: row;\n }\n}\n",".card {\n & > a {\n display: block;\n text-decoration: none;\n color: inherit;\n box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);\n\n @media screen and (max-width: $no-gap-breakpoint) {\n box-shadow: none;\n }\n\n &:hover,\n &:active,\n &:focus {\n .card__bar {\n background: lighten($ui-base-color, 8%);\n }\n }\n }\n\n &__img {\n height: 130px;\n position: relative;\n background: darken($ui-base-color, 12%);\n border-radius: 4px 4px 0 0;\n\n img {\n display: block;\n width: 100%;\n height: 100%;\n margin: 0;\n object-fit: cover;\n border-radius: 4px 4px 0 0;\n }\n\n @media screen and (max-width: 600px) {\n height: 200px;\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n display: none;\n }\n }\n\n &__bar {\n position: relative;\n padding: 15px;\n display: flex;\n justify-content: flex-start;\n align-items: center;\n background: lighten($ui-base-color, 4%);\n border-radius: 0 0 4px 4px;\n\n @media screen and (max-width: $no-gap-breakpoint) {\n border-radius: 0;\n }\n\n .avatar {\n flex: 0 0 auto;\n width: 48px;\n height: 48px;\n @include avatar-size(48px);\n padding-top: 2px;\n\n img {\n width: 100%;\n height: 100%;\n display: block;\n margin: 0;\n border-radius: 4px;\n @include avatar-radius();\n background: darken($ui-base-color, 8%);\n object-fit: cover;\n }\n }\n\n .display-name {\n margin-left: 15px;\n text-align: left;\n\n strong {\n font-size: 15px;\n color: $primary-text-color;\n font-weight: 500;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n span {\n display: block;\n font-size: 14px;\n color: $darker-text-color;\n font-weight: 400;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n }\n }\n}\n\n.pagination {\n padding: 30px 0;\n text-align: center;\n overflow: hidden;\n\n a,\n .current,\n .newer,\n .older,\n .page,\n .gap {\n font-size: 14px;\n color: $primary-text-color;\n font-weight: 500;\n display: inline-block;\n padding: 6px 10px;\n text-decoration: none;\n }\n\n .current {\n background: $simple-background-color;\n border-radius: 100px;\n color: $inverted-text-color;\n cursor: default;\n margin: 0 10px;\n }\n\n .gap {\n cursor: default;\n }\n\n .older,\n .newer {\n text-transform: uppercase;\n color: $secondary-text-color;\n }\n\n .older {\n float: left;\n padding-left: 0;\n\n .fa {\n display: inline-block;\n margin-right: 5px;\n }\n }\n\n .newer {\n float: right;\n padding-right: 0;\n\n .fa {\n display: inline-block;\n margin-left: 5px;\n }\n }\n\n .disabled {\n cursor: default;\n color: lighten($inverted-text-color, 10%);\n }\n\n @media screen and (max-width: 700px) {\n padding: 30px 20px;\n\n .page {\n display: none;\n }\n\n .newer,\n .older {\n display: inline-block;\n }\n }\n}\n\n.nothing-here {\n background: $ui-base-color;\n box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);\n color: $light-text-color;\n font-size: 14px;\n font-weight: 500;\n text-align: center;\n display: flex;\n justify-content: center;\n align-items: center;\n cursor: default;\n border-radius: 4px;\n padding: 20px;\n min-height: 30vh;\n\n &--under-tabs {\n border-radius: 0 0 4px 4px;\n }\n\n &--flexible {\n box-sizing: border-box;\n min-height: 100%;\n }\n}\n\n.account-role,\n.simple_form .recommended {\n display: inline-block;\n padding: 4px 6px;\n cursor: default;\n border-radius: 3px;\n font-size: 12px;\n line-height: 12px;\n font-weight: 500;\n color: $ui-secondary-color;\n background-color: rgba($ui-secondary-color, 0.1);\n border: 1px solid rgba($ui-secondary-color, 0.5);\n\n &.moderator {\n color: $success-green;\n background-color: rgba($success-green, 0.1);\n border-color: rgba($success-green, 0.5);\n }\n\n &.admin {\n color: lighten($error-red, 12%);\n background-color: rgba(lighten($error-red, 12%), 0.1);\n border-color: rgba(lighten($error-red, 12%), 0.5);\n }\n}\n\n.account__header__fields {\n max-width: 100vw;\n padding: 0;\n margin: 15px -15px -15px;\n border: 0 none;\n border-top: 1px solid lighten($ui-base-color, 12%);\n border-bottom: 1px solid lighten($ui-base-color, 12%);\n font-size: 14px;\n line-height: 20px;\n\n dl {\n display: flex;\n border-bottom: 1px solid lighten($ui-base-color, 12%);\n }\n\n dt,\n dd {\n box-sizing: border-box;\n padding: 14px;\n text-align: center;\n max-height: 48px;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n }\n\n dt {\n font-weight: 500;\n width: 120px;\n flex: 0 0 auto;\n color: $secondary-text-color;\n background: rgba(darken($ui-base-color, 8%), 0.5);\n }\n\n dd {\n flex: 1 1 auto;\n color: $darker-text-color;\n }\n\n a {\n color: $highlight-text-color;\n text-decoration: none;\n\n &:hover,\n &:focus,\n &:active {\n text-decoration: underline;\n }\n }\n\n .verified {\n border: 1px solid rgba($valid-value-color, 0.5);\n background: rgba($valid-value-color, 0.25);\n\n a {\n color: $valid-value-color;\n font-weight: 500;\n }\n\n &__mark {\n color: $valid-value-color;\n }\n }\n\n dl:last-child {\n border-bottom: 0;\n }\n}\n\n.directory__tag .trends__item__current {\n width: auto;\n}\n\n.pending-account {\n &__header {\n color: $darker-text-color;\n\n a {\n color: $ui-secondary-color;\n text-decoration: none;\n\n &:hover,\n &:active,\n &:focus {\n text-decoration: underline;\n }\n }\n\n strong {\n color: $primary-text-color;\n font-weight: 700;\n }\n }\n\n &__body {\n margin-top: 10px;\n }\n}\n",".activity-stream {\n box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);\n border-radius: 4px;\n overflow: hidden;\n margin-bottom: 10px;\n\n @media screen and (max-width: $no-gap-breakpoint) {\n margin-bottom: 0;\n border-radius: 0;\n box-shadow: none;\n }\n\n &--headless {\n border-radius: 0;\n margin: 0;\n box-shadow: none;\n\n .detailed-status,\n .status {\n border-radius: 0 !important;\n }\n }\n\n div[data-component] {\n width: 100%;\n }\n\n .entry {\n background: $ui-base-color;\n\n .detailed-status,\n .status,\n .load-more {\n animation: none;\n }\n\n &:last-child {\n .detailed-status,\n .status,\n .load-more {\n border-bottom: 0;\n border-radius: 0 0 4px 4px;\n }\n }\n\n &:first-child {\n .detailed-status,\n .status,\n .load-more {\n border-radius: 4px 4px 0 0;\n }\n\n &:last-child {\n .detailed-status,\n .status,\n .load-more {\n border-radius: 4px;\n }\n }\n }\n\n @media screen and (max-width: 740px) {\n .detailed-status,\n .status,\n .load-more {\n border-radius: 0 !important;\n }\n }\n }\n\n &--highlighted .entry {\n background: lighten($ui-base-color, 8%);\n }\n}\n\n.button.logo-button {\n flex: 0 auto;\n font-size: 14px;\n background: $ui-highlight-color;\n color: $primary-text-color;\n text-transform: none;\n line-height: 36px;\n height: auto;\n padding: 3px 15px;\n border: 0;\n\n svg {\n width: 20px;\n height: auto;\n vertical-align: middle;\n margin-right: 5px;\n fill: $primary-text-color;\n }\n\n &:active,\n &:focus,\n &:hover {\n background: lighten($ui-highlight-color, 10%);\n }\n\n &:disabled,\n &.disabled {\n &:active,\n &:focus,\n &:hover {\n background: $ui-primary-color;\n }\n }\n\n &.button--destructive {\n &:active,\n &:focus,\n &:hover {\n background: $error-red;\n }\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n svg {\n display: none;\n }\n }\n}\n\n.embed,\n.public-layout {\n .detailed-status {\n padding: 15px;\n }\n\n .status {\n padding: 15px 15px 15px (48px + 15px * 2);\n min-height: 48px + 2px;\n\n &__avatar {\n left: 15px;\n top: 17px;\n }\n\n &__content {\n padding-top: 5px;\n }\n\n &__prepend {\n padding: 8px 0;\n padding-bottom: 2px;\n margin: initial;\n margin-left: 48px + 15px * 2;\n padding-top: 15px;\n }\n\n &__prepend-icon-wrapper {\n position: absolute;\n margin: initial;\n float: initial;\n width: auto;\n left: -32px;\n }\n\n .media-gallery,\n &__action-bar,\n .video-player {\n margin-top: 10px;\n }\n }\n}\n\n// Styling from upstream's WebUI, as public pages use the same layout\n.embed,\n.public-layout {\n .status {\n .status__info {\n font-size: 15px;\n display: initial;\n }\n\n .status__relative-time {\n color: $dark-text-color;\n float: right;\n font-size: 14px;\n width: auto;\n margin: initial;\n padding: initial;\n }\n\n .status__info .status__display-name {\n display: block;\n max-width: 100%;\n padding: 6px 0;\n padding-right: 25px;\n margin: initial;\n\n .display-name strong {\n display: inline;\n }\n }\n\n .status__avatar {\n height: 48px;\n position: absolute;\n width: 48px;\n margin: initial;\n }\n }\n}\n\n.rtl {\n .embed,\n .public-layout {\n .status {\n padding-left: 10px;\n padding-right: 68px;\n\n .status__info .status__display-name {\n padding-left: 25px;\n padding-right: 0;\n }\n\n .status__relative-time {\n float: left;\n }\n }\n }\n}\n\n.status__content__read-more-button {\n display: block;\n font-size: 15px;\n line-height: 20px;\n color: lighten($ui-highlight-color, 8%);\n border: 0;\n background: transparent;\n padding: 0;\n padding-top: 8px;\n text-decoration: none;\n\n &:hover,\n &:active {\n text-decoration: underline;\n }\n}\n",".app-body {\n -webkit-overflow-scrolling: touch;\n -ms-overflow-style: -ms-autohiding-scrollbar;\n}\n\n.animated-number {\n display: inline-flex;\n flex-direction: column;\n align-items: stretch;\n overflow: hidden;\n position: relative;\n}\n\n.link-button {\n display: block;\n font-size: 15px;\n line-height: 20px;\n color: $ui-highlight-color;\n border: 0;\n background: transparent;\n padding: 0;\n cursor: pointer;\n\n &:hover,\n &:active {\n text-decoration: underline;\n }\n\n &:disabled {\n color: $ui-primary-color;\n cursor: default;\n }\n}\n\n.button {\n background-color: darken($ui-highlight-color, 3%);\n border: 10px none;\n border-radius: 4px;\n box-sizing: border-box;\n color: $primary-text-color;\n cursor: pointer;\n display: inline-block;\n font-family: inherit;\n font-size: 14px;\n font-weight: 500;\n height: 36px;\n letter-spacing: 0;\n line-height: 36px;\n overflow: hidden;\n padding: 0 16px;\n position: relative;\n text-align: center;\n text-transform: uppercase;\n text-decoration: none;\n text-overflow: ellipsis;\n transition: all 100ms ease-in;\n transition-property: background-color;\n white-space: nowrap;\n width: auto;\n\n &:active,\n &:focus,\n &:hover {\n background-color: lighten($ui-highlight-color, 7%);\n transition: all 200ms ease-out;\n transition-property: background-color;\n }\n\n &--destructive {\n transition: none;\n\n &:active,\n &:focus,\n &:hover {\n background-color: $error-red;\n transition: none;\n }\n }\n\n &:disabled {\n background-color: $ui-primary-color;\n cursor: default;\n }\n\n &.button-primary,\n &.button-alternative,\n &.button-secondary,\n &.button-alternative-2 {\n font-size: 16px;\n line-height: 36px;\n height: auto;\n text-transform: none;\n padding: 4px 16px;\n }\n\n &.button-alternative {\n color: $inverted-text-color;\n background: $ui-primary-color;\n\n &:active,\n &:focus,\n &:hover {\n background-color: lighten($ui-primary-color, 4%);\n }\n }\n\n &.button-alternative-2 {\n background: $ui-base-lighter-color;\n\n &:active,\n &:focus,\n &:hover {\n background-color: lighten($ui-base-lighter-color, 4%);\n }\n }\n\n &.button-secondary {\n font-size: 16px;\n line-height: 36px;\n height: auto;\n color: $darker-text-color;\n text-transform: none;\n background: transparent;\n padding: 3px 15px;\n border-radius: 4px;\n border: 1px solid $ui-primary-color;\n\n &:active,\n &:focus,\n &:hover {\n border-color: lighten($ui-primary-color, 4%);\n color: lighten($darker-text-color, 4%);\n }\n\n &:disabled {\n opacity: 0.5;\n }\n }\n\n &.button--block {\n display: block;\n width: 100%;\n }\n}\n\n.icon-button {\n display: inline-block;\n padding: 0;\n color: $action-button-color;\n border: 0;\n border-radius: 4px;\n background: transparent;\n cursor: pointer;\n transition: all 100ms ease-in;\n transition-property: background-color, color;\n\n &:hover,\n &:active,\n &:focus {\n color: lighten($action-button-color, 7%);\n background-color: rgba($action-button-color, 0.15);\n transition: all 200ms ease-out;\n transition-property: background-color, color;\n }\n\n &:focus {\n background-color: rgba($action-button-color, 0.3);\n }\n\n &.disabled {\n color: darken($action-button-color, 13%);\n background-color: transparent;\n cursor: default;\n }\n\n &.active {\n color: $highlight-text-color;\n }\n\n &::-moz-focus-inner {\n border: 0;\n }\n\n &::-moz-focus-inner,\n &:focus,\n &:active {\n outline: 0 !important;\n }\n\n &.inverted {\n color: $lighter-text-color;\n\n &:hover,\n &:active,\n &:focus {\n color: darken($lighter-text-color, 7%);\n background-color: rgba($lighter-text-color, 0.15);\n }\n\n &:focus {\n background-color: rgba($lighter-text-color, 0.3);\n }\n\n &.disabled {\n color: lighten($lighter-text-color, 7%);\n background-color: transparent;\n }\n\n &.active {\n color: $highlight-text-color;\n\n &.disabled {\n color: lighten($highlight-text-color, 13%);\n }\n }\n }\n\n &.overlayed {\n box-sizing: content-box;\n background: rgba($base-overlay-background, 0.6);\n color: rgba($primary-text-color, 0.7);\n border-radius: 4px;\n padding: 2px;\n\n &:hover {\n background: rgba($base-overlay-background, 0.9);\n }\n }\n}\n\n.text-icon-button {\n color: $lighter-text-color;\n border: 0;\n border-radius: 4px;\n background: transparent;\n cursor: pointer;\n font-weight: 600;\n font-size: 11px;\n padding: 0 3px;\n line-height: 27px;\n outline: 0;\n transition: all 100ms ease-in;\n transition-property: background-color, color;\n\n &:hover,\n &:active,\n &:focus {\n color: darken($lighter-text-color, 7%);\n background-color: rgba($lighter-text-color, 0.15);\n transition: all 200ms ease-out;\n transition-property: background-color, color;\n }\n\n &:focus {\n background-color: rgba($lighter-text-color, 0.3);\n }\n\n &.disabled {\n color: lighten($lighter-text-color, 20%);\n background-color: transparent;\n cursor: default;\n }\n\n &.active {\n color: $highlight-text-color;\n }\n\n &::-moz-focus-inner {\n border: 0;\n }\n\n &::-moz-focus-inner,\n &:focus,\n &:active {\n outline: 0 !important;\n }\n}\n\n.dropdown-menu {\n position: absolute;\n transform-origin: 50% 0;\n}\n\n.invisible {\n font-size: 0;\n line-height: 0;\n display: inline-block;\n width: 0;\n height: 0;\n position: absolute;\n\n img,\n svg {\n margin: 0 !important;\n border: 0 !important;\n padding: 0 !important;\n width: 0 !important;\n height: 0 !important;\n }\n}\n\n.ellipsis {\n &::after {\n content: \"…\";\n }\n}\n\n.notification__favourite-icon-wrapper {\n left: 0;\n position: absolute;\n\n .fa.star-icon {\n color: $gold-star;\n }\n}\n\n.star-icon.active {\n color: $gold-star;\n}\n\n.bookmark-icon.active {\n color: $red-bookmark;\n}\n\n.no-reduce-motion .icon-button.star-icon {\n &.activate {\n & > .fa-star {\n animation: spring-rotate-in 1s linear;\n }\n }\n\n &.deactivate {\n & > .fa-star {\n animation: spring-rotate-out 1s linear;\n }\n }\n}\n\n.notification__display-name {\n color: inherit;\n font-weight: 500;\n text-decoration: none;\n\n &:hover {\n color: $primary-text-color;\n text-decoration: underline;\n }\n}\n\n.display-name {\n display: block;\n max-width: 100%;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n\n a {\n color: inherit;\n text-decoration: inherit;\n }\n\n strong {\n height: 18px;\n font-size: 16px;\n font-weight: 500;\n line-height: 18px;\n text-overflow: ellipsis;\n overflow: hidden;\n white-space: nowrap;\n }\n\n span {\n display: block;\n height: 18px;\n font-size: 15px;\n line-height: 18px;\n text-overflow: ellipsis;\n overflow: hidden;\n white-space: nowrap;\n }\n\n > a:hover {\n strong {\n text-decoration: underline;\n }\n }\n\n &.inline {\n padding: 0;\n height: 18px;\n font-size: 15px;\n line-height: 18px;\n text-overflow: ellipsis;\n white-space: nowrap;\n overflow: hidden;\n\n strong {\n display: inline;\n height: auto;\n font-size: inherit;\n line-height: inherit;\n }\n\n span {\n display: inline;\n height: auto;\n font-size: inherit;\n line-height: inherit;\n }\n }\n}\n\n.display-name__html {\n font-weight: 500;\n}\n\n.display-name__account {\n font-size: 14px;\n}\n\n.image-loader {\n position: relative;\n width: 100%;\n height: 100%;\n display: flex;\n align-items: center;\n justify-content: center;\n flex-direction: column;\n\n .image-loader__preview-canvas {\n max-width: $media-modal-media-max-width;\n max-height: $media-modal-media-max-height;\n background: url('~images/void.png') repeat;\n object-fit: contain;\n }\n\n .loading-bar {\n position: relative;\n }\n\n &.image-loader--amorphous .image-loader__preview-canvas {\n display: none;\n }\n}\n\n.zoomable-image {\n position: relative;\n width: 100%;\n height: 100%;\n display: flex;\n align-items: center;\n justify-content: center;\n\n img {\n max-width: $media-modal-media-max-width;\n max-height: $media-modal-media-max-height;\n width: auto;\n height: auto;\n object-fit: contain;\n }\n}\n\n.dropdown {\n display: inline-block;\n}\n\n.dropdown__content {\n display: none;\n position: absolute;\n}\n\n.dropdown-menu__separator {\n border-bottom: 1px solid darken($ui-secondary-color, 8%);\n margin: 5px 7px 6px;\n height: 0;\n}\n\n.dropdown-menu {\n background: $ui-secondary-color;\n padding: 4px 0;\n border-radius: 4px;\n box-shadow: 2px 4px 15px rgba($base-shadow-color, 0.4);\n\n ul {\n list-style: none;\n }\n}\n\n.dropdown-menu__arrow {\n position: absolute;\n width: 0;\n height: 0;\n border: 0 solid transparent;\n\n &.left {\n right: -5px;\n margin-top: -5px;\n border-width: 5px 0 5px 5px;\n border-left-color: $ui-secondary-color;\n }\n\n &.top {\n bottom: -5px;\n margin-left: -7px;\n border-width: 5px 7px 0;\n border-top-color: $ui-secondary-color;\n }\n\n &.bottom {\n top: -5px;\n margin-left: -7px;\n border-width: 0 7px 5px;\n border-bottom-color: $ui-secondary-color;\n }\n\n &.right {\n left: -5px;\n margin-top: -5px;\n border-width: 5px 5px 5px 0;\n border-right-color: $ui-secondary-color;\n }\n}\n\n.dropdown-menu__item {\n a {\n font-size: 13px;\n line-height: 18px;\n display: block;\n padding: 4px 14px;\n box-sizing: border-box;\n text-decoration: none;\n background: $ui-secondary-color;\n color: $inverted-text-color;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n\n &:focus,\n &:hover,\n &:active {\n background: $ui-highlight-color;\n color: $secondary-text-color;\n outline: 0;\n }\n }\n}\n\n.dropdown--active .dropdown__content {\n display: block;\n line-height: 18px;\n max-width: 311px;\n right: 0;\n text-align: left;\n z-index: 9999;\n\n & > ul {\n list-style: none;\n background: $ui-secondary-color;\n padding: 4px 0;\n border-radius: 4px;\n box-shadow: 0 0 15px rgba($base-shadow-color, 0.4);\n min-width: 140px;\n position: relative;\n }\n\n &.dropdown__right {\n right: 0;\n }\n\n &.dropdown__left {\n & > ul {\n left: -98px;\n }\n }\n\n & > ul > li > a {\n font-size: 13px;\n line-height: 18px;\n display: block;\n padding: 4px 14px;\n box-sizing: border-box;\n text-decoration: none;\n background: $ui-secondary-color;\n color: $inverted-text-color;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n\n &:focus {\n outline: 0;\n }\n\n &:hover {\n background: $ui-highlight-color;\n color: $secondary-text-color;\n }\n }\n}\n\n.dropdown__icon {\n vertical-align: middle;\n}\n\n.static-content {\n padding: 10px;\n padding-top: 20px;\n color: $dark-text-color;\n\n h1 {\n font-size: 16px;\n font-weight: 500;\n margin-bottom: 40px;\n text-align: center;\n }\n\n p {\n font-size: 13px;\n margin-bottom: 20px;\n }\n}\n\n.column,\n.drawer {\n flex: 1 1 100%;\n overflow: hidden;\n}\n\n@media screen and (min-width: 631px) {\n .columns-area {\n padding: 0;\n }\n\n .column,\n .drawer {\n flex: 0 0 auto;\n padding: 10px;\n padding-left: 5px;\n padding-right: 5px;\n\n &:first-child {\n padding-left: 10px;\n }\n\n &:last-child {\n padding-right: 10px;\n }\n }\n\n .columns-area > div {\n .column,\n .drawer {\n padding-left: 5px;\n padding-right: 5px;\n }\n }\n}\n\n.tabs-bar {\n box-sizing: border-box;\n display: flex;\n background: lighten($ui-base-color, 8%);\n flex: 0 0 auto;\n overflow-y: auto;\n}\n\n.tabs-bar__link {\n display: block;\n flex: 1 1 auto;\n padding: 15px 10px;\n padding-bottom: 13px;\n color: $primary-text-color;\n text-decoration: none;\n text-align: center;\n font-size: 14px;\n font-weight: 500;\n border-bottom: 2px solid lighten($ui-base-color, 8%);\n transition: all 50ms linear;\n transition-property: border-bottom, background, color;\n\n .fa {\n font-weight: 400;\n font-size: 16px;\n }\n\n &:hover,\n &:focus,\n &:active {\n @include multi-columns('screen and (min-width: 631px)') {\n background: lighten($ui-base-color, 14%);\n border-bottom-color: lighten($ui-base-color, 14%);\n }\n }\n\n &.active {\n border-bottom: 2px solid $ui-highlight-color;\n color: $highlight-text-color;\n }\n\n span {\n margin-left: 5px;\n display: none;\n }\n\n span.icon {\n margin-left: 0;\n display: inline;\n }\n}\n\n.icon-with-badge {\n position: relative;\n\n &__badge {\n position: absolute;\n left: 9px;\n top: -13px;\n background: $ui-highlight-color;\n border: 2px solid lighten($ui-base-color, 8%);\n padding: 1px 6px;\n border-radius: 6px;\n font-size: 10px;\n font-weight: 500;\n line-height: 14px;\n color: $primary-text-color;\n }\n}\n\n.column-link--transparent .icon-with-badge__badge {\n border-color: darken($ui-base-color, 8%);\n}\n\n.scrollable {\n overflow-y: scroll;\n overflow-x: hidden;\n flex: 1 1 auto;\n -webkit-overflow-scrolling: touch;\n\n &.optionally-scrollable {\n overflow-y: auto;\n }\n\n @supports(display: grid) { // hack to fix Chrome <57\n contain: strict;\n }\n\n &--flex {\n display: flex;\n flex-direction: column;\n }\n\n &__append {\n flex: 1 1 auto;\n position: relative;\n min-height: 120px;\n }\n}\n\n.scrollable.fullscreen {\n @supports(display: grid) { // hack to fix Chrome <57\n contain: none;\n }\n}\n\n.react-toggle {\n display: inline-block;\n position: relative;\n cursor: pointer;\n background-color: transparent;\n border: 0;\n padding: 0;\n user-select: none;\n -webkit-tap-highlight-color: rgba($base-overlay-background, 0);\n -webkit-tap-highlight-color: transparent;\n}\n\n.react-toggle-screenreader-only {\n border: 0;\n clip: rect(0 0 0 0);\n height: 1px;\n margin: -1px;\n overflow: hidden;\n padding: 0;\n position: absolute;\n width: 1px;\n}\n\n.react-toggle--disabled {\n cursor: not-allowed;\n opacity: 0.5;\n transition: opacity 0.25s;\n}\n\n.react-toggle-track {\n width: 50px;\n height: 24px;\n padding: 0;\n border-radius: 30px;\n background-color: $ui-base-color;\n transition: background-color 0.2s ease;\n}\n\n.react-toggle:hover:not(.react-toggle--disabled) .react-toggle-track {\n background-color: darken($ui-base-color, 10%);\n}\n\n.react-toggle--checked .react-toggle-track {\n background-color: $ui-highlight-color;\n}\n\n.react-toggle--checked:hover:not(.react-toggle--disabled) .react-toggle-track {\n background-color: lighten($ui-highlight-color, 10%);\n}\n\n.react-toggle-track-check {\n position: absolute;\n width: 14px;\n height: 10px;\n top: 0;\n bottom: 0;\n margin-top: auto;\n margin-bottom: auto;\n line-height: 0;\n left: 8px;\n opacity: 0;\n transition: opacity 0.25s ease;\n}\n\n.react-toggle--checked .react-toggle-track-check {\n opacity: 1;\n transition: opacity 0.25s ease;\n}\n\n.react-toggle-track-x {\n position: absolute;\n width: 10px;\n height: 10px;\n top: 0;\n bottom: 0;\n margin-top: auto;\n margin-bottom: auto;\n line-height: 0;\n right: 10px;\n opacity: 1;\n transition: opacity 0.25s ease;\n}\n\n.react-toggle--checked .react-toggle-track-x {\n opacity: 0;\n}\n\n.react-toggle-thumb {\n position: absolute;\n top: 1px;\n left: 1px;\n width: 22px;\n height: 22px;\n border: 1px solid $ui-base-color;\n border-radius: 50%;\n background-color: darken($simple-background-color, 2%);\n box-sizing: border-box;\n transition: all 0.25s ease;\n transition-property: border-color, left;\n}\n\n.react-toggle--checked .react-toggle-thumb {\n left: 27px;\n border-color: $ui-highlight-color;\n}\n\n.getting-started__wrapper,\n.getting_started,\n.flex-spacer {\n background: $ui-base-color;\n}\n\n.getting-started__wrapper {\n position: relative;\n overflow-y: auto;\n}\n\n.flex-spacer {\n flex: 1 1 auto;\n}\n\n.getting-started {\n background: $ui-base-color;\n flex: 1 0 auto;\n\n p {\n color: $secondary-text-color;\n }\n\n a {\n color: $dark-text-color;\n }\n\n &__panel {\n height: min-content;\n }\n\n &__panel,\n &__footer {\n padding: 10px;\n padding-top: 20px;\n flex: 0 1 auto;\n\n ul {\n margin-bottom: 10px;\n }\n\n ul li {\n display: inline;\n }\n\n p {\n color: $dark-text-color;\n font-size: 13px;\n\n a {\n color: $dark-text-color;\n text-decoration: underline;\n }\n }\n\n a {\n text-decoration: none;\n color: $darker-text-color;\n\n &:hover,\n &:focus,\n &:active {\n text-decoration: underline;\n }\n }\n }\n\n &__trends {\n flex: 0 1 auto;\n opacity: 1;\n animation: fade 150ms linear;\n margin-top: 10px;\n\n h4 {\n font-size: 12px;\n text-transform: uppercase;\n color: $darker-text-color;\n padding: 10px;\n font-weight: 500;\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n }\n\n @media screen and (max-height: 810px) {\n .trends__item:nth-child(3) {\n display: none;\n }\n }\n\n @media screen and (max-height: 720px) {\n .trends__item:nth-child(2) {\n display: none;\n }\n }\n\n @media screen and (max-height: 670px) {\n display: none;\n }\n\n .trends__item {\n border-bottom: 0;\n padding: 10px;\n\n &__current {\n color: $darker-text-color;\n }\n }\n }\n}\n\n.column-link__badge {\n display: inline-block;\n border-radius: 4px;\n font-size: 12px;\n line-height: 19px;\n font-weight: 500;\n background: $ui-base-color;\n padding: 4px 8px;\n margin: -6px 10px;\n}\n\n.keyboard-shortcuts {\n padding: 8px 0 0;\n overflow: hidden;\n\n thead {\n position: absolute;\n left: -9999px;\n }\n\n td {\n padding: 0 10px 8px;\n }\n\n kbd {\n display: inline-block;\n padding: 3px 5px;\n background-color: lighten($ui-base-color, 8%);\n border: 1px solid darken($ui-base-color, 4%);\n }\n}\n\n.setting-text {\n color: $darker-text-color;\n background: transparent;\n border: none;\n border-bottom: 2px solid $ui-primary-color;\n box-sizing: border-box;\n display: block;\n font-family: inherit;\n margin-bottom: 10px;\n padding: 7px 0;\n width: 100%;\n\n &:focus,\n &:active {\n color: $primary-text-color;\n border-bottom-color: $ui-highlight-color;\n }\n\n @include limited-single-column('screen and (max-width: 600px)') {\n font-size: 16px;\n }\n\n &.light {\n color: $inverted-text-color;\n border-bottom: 2px solid lighten($ui-base-color, 27%);\n\n &:focus,\n &:active {\n color: $inverted-text-color;\n border-bottom-color: $ui-highlight-color;\n }\n }\n}\n\n.no-reduce-motion button.icon-button i.fa-retweet {\n background-position: 0 0;\n height: 19px;\n transition: background-position 0.9s steps(10);\n transition-duration: 0s;\n vertical-align: middle;\n width: 22px;\n\n &::before {\n display: none !important;\n }\n}\n\n.no-reduce-motion button.icon-button.active i.fa-retweet {\n transition-duration: 0.9s;\n background-position: 0 100%;\n}\n\n.reduce-motion button.icon-button i.fa-retweet {\n color: $action-button-color;\n transition: color 100ms ease-in;\n}\n\n.reduce-motion button.icon-button.active i.fa-retweet {\n color: $highlight-text-color;\n}\n\n.reduce-motion button.icon-button.disabled i.fa-retweet {\n color: darken($action-button-color, 13%);\n}\n\n.load-more {\n display: block;\n color: $dark-text-color;\n background-color: transparent;\n border: 0;\n font-size: inherit;\n text-align: center;\n line-height: inherit;\n margin: 0;\n padding: 15px;\n box-sizing: border-box;\n width: 100%;\n clear: both;\n text-decoration: none;\n\n &:hover {\n background: lighten($ui-base-color, 2%);\n }\n}\n\n.load-gap {\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n}\n\n.missing-indicator {\n padding-top: 20px + 48px;\n}\n\n.scrollable > div > :first-child .notification__dismiss-overlay > .wrappy {\n border-top: 1px solid $ui-base-color;\n}\n\n.notification__dismiss-overlay {\n overflow: hidden;\n position: absolute;\n top: 0;\n right: 0;\n bottom: -1px;\n padding-left: 15px; // space for the box shadow to be visible\n\n z-index: 999;\n align-items: center;\n justify-content: flex-end;\n cursor: pointer;\n\n display: flex;\n\n .wrappy {\n width: $dismiss-overlay-width;\n align-self: stretch;\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n background: lighten($ui-base-color, 8%);\n border-left: 1px solid lighten($ui-base-color, 20%);\n box-shadow: 0 0 5px black;\n border-bottom: 1px solid $ui-base-color;\n }\n\n .ckbox {\n border: 2px solid $ui-primary-color;\n border-radius: 2px;\n width: 30px;\n height: 30px;\n font-size: 20px;\n color: $darker-text-color;\n text-shadow: 0 0 5px black;\n display: flex;\n justify-content: center;\n align-items: center;\n }\n\n &:focus {\n outline: 0 !important;\n\n .ckbox {\n box-shadow: 0 0 1px 1px $ui-highlight-color;\n }\n }\n}\n\n.text-btn {\n display: inline-block;\n padding: 0;\n font-family: inherit;\n font-size: inherit;\n color: inherit;\n border: 0;\n background: transparent;\n cursor: pointer;\n}\n\n.loading-indicator {\n color: $dark-text-color;\n font-size: 12px;\n font-weight: 400;\n text-transform: uppercase;\n overflow: visible;\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n\n span {\n display: block;\n float: left;\n margin-left: 50%;\n transform: translateX(-50%);\n margin: 82px 0 0 50%;\n white-space: nowrap;\n }\n}\n\n.loading-indicator__figure {\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n width: 42px;\n height: 42px;\n box-sizing: border-box;\n background-color: transparent;\n border: 0 solid lighten($ui-base-color, 26%);\n border-width: 6px;\n border-radius: 50%;\n}\n\n.no-reduce-motion .loading-indicator span {\n animation: loader-label 1.15s infinite cubic-bezier(0.215, 0.610, 0.355, 1.000);\n}\n\n.no-reduce-motion .loading-indicator__figure {\n animation: loader-figure 1.15s infinite cubic-bezier(0.215, 0.610, 0.355, 1.000);\n}\n\n@keyframes spring-rotate-in {\n 0% {\n transform: rotate(0deg);\n }\n\n 30% {\n transform: rotate(-484.8deg);\n }\n\n 60% {\n transform: rotate(-316.7deg);\n }\n\n 90% {\n transform: rotate(-375deg);\n }\n\n 100% {\n transform: rotate(-360deg);\n }\n}\n\n@keyframes spring-rotate-out {\n 0% {\n transform: rotate(-360deg);\n }\n\n 30% {\n transform: rotate(124.8deg);\n }\n\n 60% {\n transform: rotate(-43.27deg);\n }\n\n 90% {\n transform: rotate(15deg);\n }\n\n 100% {\n transform: rotate(0deg);\n }\n}\n\n@keyframes loader-figure {\n 0% {\n width: 0;\n height: 0;\n background-color: lighten($ui-base-color, 26%);\n }\n\n 29% {\n background-color: lighten($ui-base-color, 26%);\n }\n\n 30% {\n width: 42px;\n height: 42px;\n background-color: transparent;\n border-width: 21px;\n opacity: 1;\n }\n\n 100% {\n width: 42px;\n height: 42px;\n border-width: 0;\n opacity: 0;\n background-color: transparent;\n }\n}\n\n@keyframes loader-label {\n 0% { opacity: 0.25; }\n 30% { opacity: 1; }\n 100% { opacity: 0.25; }\n}\n\n.spoiler-button {\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n position: absolute;\n z-index: 100;\n\n &--minified {\n display: flex;\n left: 4px;\n top: 4px;\n width: auto;\n height: auto;\n align-items: center;\n }\n\n &--click-thru {\n pointer-events: none;\n }\n\n &--hidden {\n display: none;\n }\n\n &__overlay {\n display: block;\n background: transparent;\n width: 100%;\n height: 100%;\n border: 0;\n\n &__label {\n display: inline-block;\n background: rgba($base-overlay-background, 0.5);\n border-radius: 8px;\n padding: 8px 12px;\n color: $primary-text-color;\n font-weight: 500;\n font-size: 14px;\n }\n\n &:hover,\n &:focus,\n &:active {\n .spoiler-button__overlay__label {\n background: rgba($base-overlay-background, 0.8);\n }\n }\n\n &:disabled {\n .spoiler-button__overlay__label {\n background: rgba($base-overlay-background, 0.5);\n }\n }\n }\n}\n\n.setting-toggle {\n display: block;\n line-height: 24px;\n}\n\n.setting-toggle__label,\n.setting-radio__label,\n.setting-meta__label {\n color: $darker-text-color;\n display: inline-block;\n margin-bottom: 14px;\n margin-left: 8px;\n vertical-align: middle;\n}\n\n.setting-radio {\n display: block;\n line-height: 18px;\n}\n\n.setting-radio__label {\n margin-bottom: 0;\n}\n\n.column-settings__row legend {\n color: $darker-text-color;\n cursor: default;\n display: block;\n font-weight: 500;\n margin-top: 10px;\n}\n\n.setting-radio__input {\n vertical-align: middle;\n}\n\n.setting-meta__label {\n float: right;\n}\n\n@keyframes heartbeat {\n from {\n transform: scale(1);\n transform-origin: center center;\n animation-timing-function: ease-out;\n }\n\n 10% {\n transform: scale(0.91);\n animation-timing-function: ease-in;\n }\n\n 17% {\n transform: scale(0.98);\n animation-timing-function: ease-out;\n }\n\n 33% {\n transform: scale(0.87);\n animation-timing-function: ease-in;\n }\n\n 45% {\n transform: scale(1);\n animation-timing-function: ease-out;\n }\n}\n\n.pulse-loading {\n animation: heartbeat 1.5s ease-in-out infinite both;\n}\n\n.upload-area {\n align-items: center;\n background: rgba($base-overlay-background, 0.8);\n display: flex;\n height: 100%;\n justify-content: center;\n left: 0;\n opacity: 0;\n position: absolute;\n top: 0;\n visibility: hidden;\n width: 100%;\n z-index: 2000;\n\n * {\n pointer-events: none;\n }\n}\n\n.upload-area__drop {\n width: 320px;\n height: 160px;\n display: flex;\n box-sizing: border-box;\n position: relative;\n padding: 8px;\n}\n\n.upload-area__background {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: -1;\n border-radius: 4px;\n background: $ui-base-color;\n box-shadow: 0 0 5px rgba($base-shadow-color, 0.2);\n}\n\n.upload-area__content {\n flex: 1;\n display: flex;\n align-items: center;\n justify-content: center;\n color: $secondary-text-color;\n font-size: 18px;\n font-weight: 500;\n border: 2px dashed $ui-base-lighter-color;\n border-radius: 4px;\n}\n\n.dropdown--active .emoji-button img {\n opacity: 1;\n filter: none;\n}\n\n.loading-bar {\n background-color: $ui-highlight-color;\n height: 3px;\n position: absolute;\n top: 0;\n left: 0;\n z-index: 9999;\n}\n\n.icon-badge-wrapper {\n position: relative;\n}\n\n.icon-badge {\n position: absolute;\n display: block;\n right: -.25em;\n top: -.25em;\n background-color: $ui-highlight-color;\n border-radius: 50%;\n font-size: 75%;\n width: 1em;\n height: 1em;\n}\n\n.conversation {\n display: flex;\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n padding: 5px;\n padding-bottom: 0;\n\n &:focus {\n background: lighten($ui-base-color, 2%);\n outline: 0;\n }\n\n &__avatar {\n flex: 0 0 auto;\n padding: 10px;\n padding-top: 12px;\n position: relative;\n cursor: pointer;\n }\n\n &__unread {\n display: inline-block;\n background: $highlight-text-color;\n border-radius: 50%;\n width: 0.625rem;\n height: 0.625rem;\n margin: -.1ex .15em .1ex;\n }\n\n &__content {\n flex: 1 1 auto;\n padding: 10px 5px;\n padding-right: 15px;\n overflow: hidden;\n\n &__info {\n overflow: hidden;\n display: flex;\n flex-direction: row-reverse;\n justify-content: space-between;\n }\n\n &__relative-time {\n font-size: 15px;\n color: $darker-text-color;\n padding-left: 15px;\n }\n\n &__names {\n color: $darker-text-color;\n font-size: 15px;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n margin-bottom: 4px;\n flex-basis: 90px;\n flex-grow: 1;\n\n a {\n color: $primary-text-color;\n text-decoration: none;\n\n &:hover,\n &:focus,\n &:active {\n text-decoration: underline;\n }\n }\n }\n\n .status__content {\n margin: 0;\n }\n }\n\n &--unread {\n background: lighten($ui-base-color, 2%);\n\n &:focus {\n background: lighten($ui-base-color, 4%);\n }\n\n .conversation__content__info {\n font-weight: 700;\n }\n\n .conversation__content__relative-time {\n color: $primary-text-color;\n }\n }\n}\n\n.ui .flash-message {\n margin-top: 10px;\n margin-left: auto;\n margin-right: auto;\n margin-bottom: 0;\n min-width: 75%;\n}\n\n::-webkit-scrollbar-thumb {\n border-radius: 0;\n}\n\nnoscript {\n text-align: center;\n\n img {\n width: 200px;\n opacity: 0.5;\n animation: flicker 4s infinite;\n }\n\n div {\n font-size: 14px;\n margin: 30px auto;\n color: $secondary-text-color;\n max-width: 400px;\n\n a {\n color: $highlight-text-color;\n text-decoration: underline;\n\n &:hover {\n text-decoration: none;\n }\n }\n\n a {\n word-break: break-word;\n }\n }\n}\n\n@keyframes flicker {\n 0% { opacity: 1; }\n 30% { opacity: 0.75; }\n 100% { opacity: 1; }\n}\n\n@import 'boost';\n@import 'accounts';\n@import 'domains';\n@import 'status';\n@import 'modal';\n@import 'composer';\n@import 'columns';\n@import 'regeneration_indicator';\n@import 'directory';\n@import 'search';\n@import 'emoji';\n@import 'doodle';\n@import 'drawer';\n@import 'media';\n@import 'sensitive';\n@import 'lists';\n@import 'emoji_picker';\n@import 'local_settings';\n@import 'error_boundary';\n@import 'single_column';\n@import 'announcements';\n","button.icon-button i.fa-retweet {\n background-image: url(\"data:image/svg+xml;utf8,\");\n\n &:hover {\n background-image: url(\"data:image/svg+xml;utf8,\");\n }\n}\n\n// Disabled variant\nbutton.icon-button.disabled i.fa-retweet {\n &, &:hover {\n background-image: url(\"data:image/svg+xml;utf8,\");\n }\n}\n\n// Disabled variant for use with DMs\n.status-direct button.icon-button.disabled i.fa-retweet {\n &, &:hover {\n background-image: url(\"data:image/svg+xml;utf8,\");\n }\n}\n",".account {\n padding: 10px;\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n color: inherit;\n text-decoration: none;\n\n .account__display-name {\n flex: 1 1 auto;\n display: block;\n color: $darker-text-color;\n overflow: hidden;\n text-decoration: none;\n font-size: 14px;\n }\n\n &.small {\n border: none;\n padding: 0;\n\n & > .account__avatar-wrapper { margin: 0 8px 0 0 }\n\n & > .display-name {\n height: 24px;\n line-height: 24px;\n }\n }\n}\n\n.account__wrapper {\n display: flex;\n}\n\n.account__avatar-wrapper {\n float: left;\n margin-left: 12px;\n margin-right: 12px;\n}\n\n.account__avatar {\n @include avatar-radius();\n position: relative;\n cursor: pointer;\n\n &-inline {\n display: inline-block;\n vertical-align: middle;\n margin-right: 5px;\n }\n\n &-composite {\n @include avatar-radius;\n overflow: hidden;\n position: relative;\n\n & div {\n @include avatar-radius;\n float: left;\n position: relative;\n box-sizing: border-box;\n }\n\n &__label {\n display: block;\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n color: $primary-text-color;\n text-shadow: 1px 1px 2px $base-shadow-color;\n font-weight: 700;\n font-size: 15px;\n }\n }\n}\n\n.account__avatar-overlay {\n position: relative;\n @include avatar-size(48px);\n\n &-base {\n @include avatar-radius();\n @include avatar-size(36px);\n }\n\n &-overlay {\n @include avatar-radius();\n @include avatar-size(24px);\n\n position: absolute;\n bottom: 0;\n right: 0;\n z-index: 1;\n }\n}\n\n.account__relationship {\n height: 18px;\n padding: 10px;\n white-space: nowrap;\n}\n\n.account__header__wrapper {\n flex: 0 0 auto;\n background: lighten($ui-base-color, 4%);\n}\n\n.account__disclaimer {\n padding: 10px;\n color: $dark-text-color;\n\n strong {\n font-weight: 500;\n\n @each $lang in $cjk-langs {\n &:lang(#{$lang}) {\n font-weight: 700;\n }\n }\n }\n\n a {\n font-weight: 500;\n color: inherit;\n text-decoration: underline;\n\n &:hover,\n &:focus,\n &:active {\n text-decoration: none;\n }\n }\n}\n\n.account__action-bar {\n border-top: 1px solid lighten($ui-base-color, 8%);\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n line-height: 36px;\n overflow: hidden;\n flex: 0 0 auto;\n display: flex;\n}\n\n.account__action-bar-links {\n display: flex;\n flex: 1 1 auto;\n line-height: 18px;\n text-align: center;\n}\n\n.account__action-bar__tab {\n text-decoration: none;\n overflow: hidden;\n flex: 0 1 100%;\n border-left: 1px solid lighten($ui-base-color, 8%);\n padding: 10px 0;\n border-bottom: 4px solid transparent;\n\n &:first-child {\n border-left: 0;\n }\n\n &.active {\n border-bottom: 4px solid $ui-highlight-color;\n }\n\n & > span {\n display: block;\n text-transform: uppercase;\n font-size: 11px;\n color: $darker-text-color;\n }\n\n strong {\n display: block;\n font-size: 15px;\n font-weight: 500;\n color: $primary-text-color;\n\n @each $lang in $cjk-langs {\n &:lang(#{$lang}) {\n font-weight: 700;\n }\n }\n }\n\n abbr {\n color: $highlight-text-color;\n }\n}\n\n.account-authorize {\n padding: 14px 10px;\n\n .detailed-status__display-name {\n display: block;\n margin-bottom: 15px;\n overflow: hidden;\n }\n}\n\n.account-authorize__avatar {\n float: left;\n margin-right: 10px;\n}\n\n.notification__message {\n margin-left: 42px;\n padding: 8px 0 0 26px;\n cursor: default;\n color: $darker-text-color;\n font-size: 15px;\n position: relative;\n\n .fa {\n color: $highlight-text-color;\n }\n\n > span {\n display: block;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n}\n\n.account--panel {\n background: lighten($ui-base-color, 4%);\n border-top: 1px solid lighten($ui-base-color, 8%);\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n display: flex;\n flex-direction: row;\n padding: 10px 0;\n}\n\n.account--panel__button,\n.detailed-status__button {\n flex: 1 1 auto;\n text-align: center;\n}\n\n.column-settings__outer {\n background: lighten($ui-base-color, 8%);\n padding: 15px;\n}\n\n.column-settings__section {\n color: $darker-text-color;\n cursor: default;\n display: block;\n font-weight: 500;\n margin-bottom: 10px;\n}\n\n.column-settings__hashtags {\n .column-settings__row {\n margin-bottom: 15px;\n }\n\n .column-select {\n &__control {\n @include search-input();\n\n &::placeholder {\n color: lighten($darker-text-color, 4%);\n }\n\n &::-moz-focus-inner {\n border: 0;\n }\n\n &::-moz-focus-inner,\n &:focus,\n &:active {\n outline: 0 !important;\n }\n\n &:focus {\n background: lighten($ui-base-color, 4%);\n }\n\n @media screen and (max-width: 600px) {\n font-size: 16px;\n }\n }\n\n &__placeholder {\n color: $dark-text-color;\n padding-left: 2px;\n font-size: 12px;\n }\n\n &__value-container {\n padding-left: 6px;\n }\n\n &__multi-value {\n background: lighten($ui-base-color, 8%);\n\n &__remove {\n cursor: pointer;\n\n &:hover,\n &:active,\n &:focus {\n background: lighten($ui-base-color, 12%);\n color: lighten($darker-text-color, 4%);\n }\n }\n }\n\n &__multi-value__label,\n &__input {\n color: $darker-text-color;\n }\n\n &__clear-indicator,\n &__dropdown-indicator {\n cursor: pointer;\n transition: none;\n color: $dark-text-color;\n\n &:hover,\n &:active,\n &:focus {\n color: lighten($dark-text-color, 4%);\n }\n }\n\n &__indicator-separator {\n background-color: lighten($ui-base-color, 8%);\n }\n\n &__menu {\n @include search-popout();\n padding: 0;\n background: $ui-secondary-color;\n }\n\n &__menu-list {\n padding: 6px;\n }\n\n &__option {\n color: $inverted-text-color;\n border-radius: 4px;\n font-size: 14px;\n\n &--is-focused,\n &--is-selected {\n background: darken($ui-secondary-color, 10%);\n }\n }\n }\n}\n\n.column-settings__row {\n .text-btn {\n margin-bottom: 15px;\n }\n}\n\n.relationship-tag {\n color: $primary-text-color;\n margin-bottom: 4px;\n display: block;\n vertical-align: top;\n background-color: $base-overlay-background;\n text-transform: uppercase;\n font-size: 11px;\n font-weight: 500;\n padding: 4px;\n border-radius: 4px;\n opacity: 0.7;\n\n &:hover {\n opacity: 1;\n }\n}\n\n.account-gallery__container {\n display: flex;\n flex-wrap: wrap;\n padding: 4px 2px;\n}\n\n.account-gallery__item {\n border: none;\n box-sizing: border-box;\n display: block;\n position: relative;\n border-radius: 4px;\n overflow: hidden;\n margin: 2px;\n\n &__icons {\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n font-size: 24px;\n }\n}\n\n.notification__filter-bar,\n.account__section-headline {\n background: darken($ui-base-color, 4%);\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n cursor: default;\n display: flex;\n flex-shrink: 0;\n\n button {\n background: darken($ui-base-color, 4%);\n border: 0;\n margin: 0;\n }\n\n button,\n a {\n display: block;\n flex: 1 1 auto;\n color: $darker-text-color;\n padding: 15px 0;\n font-size: 14px;\n font-weight: 500;\n text-align: center;\n text-decoration: none;\n position: relative;\n\n &.active {\n color: $secondary-text-color;\n\n &::before,\n &::after {\n display: block;\n content: \"\";\n position: absolute;\n bottom: 0;\n left: 50%;\n width: 0;\n height: 0;\n transform: translateX(-50%);\n border-style: solid;\n border-width: 0 10px 10px;\n border-color: transparent transparent lighten($ui-base-color, 8%);\n }\n\n &::after {\n bottom: -1px;\n border-color: transparent transparent $ui-base-color;\n }\n }\n }\n\n &.directory__section-headline {\n background: darken($ui-base-color, 2%);\n border-bottom-color: transparent;\n\n a,\n button {\n &.active {\n &::before {\n display: none;\n }\n\n &::after {\n border-color: transparent transparent darken($ui-base-color, 7%);\n }\n }\n }\n }\n}\n\n.account__moved-note {\n padding: 14px 10px;\n padding-bottom: 16px;\n background: lighten($ui-base-color, 4%);\n border-top: 1px solid lighten($ui-base-color, 8%);\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n\n &__message {\n position: relative;\n margin-left: 58px;\n color: $dark-text-color;\n padding: 8px 0;\n padding-top: 0;\n padding-bottom: 4px;\n font-size: 14px;\n\n > span {\n display: block;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n }\n\n &__icon-wrapper {\n left: -26px;\n position: absolute;\n }\n\n .detailed-status__display-avatar {\n position: relative;\n }\n\n .detailed-status__display-name {\n margin-bottom: 0;\n }\n}\n\n.account__header__content {\n color: $darker-text-color;\n font-size: 14px;\n font-weight: 400;\n overflow: hidden;\n word-break: normal;\n word-wrap: break-word;\n\n p {\n margin-bottom: 20px;\n\n &:last-child {\n margin-bottom: 0;\n }\n }\n\n a {\n color: inherit;\n text-decoration: underline;\n\n &:hover {\n text-decoration: none;\n }\n }\n}\n\n.account__header {\n overflow: hidden;\n\n &.inactive {\n opacity: 0.5;\n\n .account__header__image,\n .account__avatar {\n filter: grayscale(100%);\n }\n }\n\n &__info {\n position: absolute;\n top: 10px;\n left: 10px;\n }\n\n &__image {\n overflow: hidden;\n height: 145px;\n position: relative;\n background: darken($ui-base-color, 4%);\n\n img {\n object-fit: cover;\n display: block;\n width: 100%;\n height: 100%;\n margin: 0;\n }\n }\n\n &__bar {\n position: relative;\n background: lighten($ui-base-color, 4%);\n padding: 5px;\n border-bottom: 1px solid lighten($ui-base-color, 12%);\n\n .avatar {\n display: block;\n flex: 0 0 auto;\n width: 94px;\n margin-left: -2px;\n\n .account__avatar {\n background: darken($ui-base-color, 8%);\n border: 2px solid lighten($ui-base-color, 4%);\n }\n }\n }\n\n &__tabs {\n display: flex;\n align-items: flex-start;\n padding: 7px 5px;\n margin-top: -55px;\n\n &__buttons {\n display: flex;\n align-items: center;\n padding-top: 55px;\n overflow: hidden;\n\n .icon-button {\n border: 1px solid lighten($ui-base-color, 12%);\n border-radius: 4px;\n box-sizing: content-box;\n padding: 2px;\n }\n\n .button {\n margin: 0 8px;\n }\n }\n\n &__name {\n padding: 5px;\n\n .account-role {\n vertical-align: top;\n }\n\n .emojione {\n width: 22px;\n height: 22px;\n }\n\n h1 {\n font-size: 16px;\n line-height: 24px;\n color: $primary-text-color;\n font-weight: 500;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n\n small {\n display: block;\n font-size: 14px;\n color: $darker-text-color;\n font-weight: 400;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n }\n }\n\n .spacer {\n flex: 1 1 auto;\n }\n }\n\n &__bio {\n overflow: hidden;\n margin: 0 -5px;\n\n .account__header__content {\n padding: 20px 15px;\n padding-bottom: 5px;\n color: $primary-text-color;\n }\n\n .account__header__fields {\n margin: 0;\n border-top: 1px solid lighten($ui-base-color, 12%);\n\n a {\n color: lighten($ui-highlight-color, 8%);\n }\n\n dl:first-child .verified {\n border-radius: 0 4px 0 0;\n }\n\n .verified a {\n color: $valid-value-color;\n }\n }\n }\n\n &__extra {\n margin-top: 4px;\n\n &__links {\n font-size: 14px;\n color: $darker-text-color;\n padding: 10px 0;\n\n a {\n display: inline-block;\n color: $darker-text-color;\n text-decoration: none;\n padding: 5px 10px;\n font-weight: 500;\n\n strong {\n font-weight: 700;\n color: $primary-text-color;\n }\n }\n }\n }\n}\n",".domain {\n padding: 10px;\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n\n .domain__domain-name {\n flex: 1 1 auto;\n display: block;\n color: $primary-text-color;\n text-decoration: none;\n font-size: 14px;\n font-weight: 500;\n }\n}\n\n.domain__wrapper {\n display: flex;\n}\n\n.domain_buttons {\n height: 18px;\n padding: 10px;\n white-space: nowrap;\n}\n","@keyframes spring-flip-in {\n 0% {\n transform: rotate(0deg);\n }\n\n 30% {\n transform: rotate(-242.4deg);\n }\n\n 60% {\n transform: rotate(-158.35deg);\n }\n\n 90% {\n transform: rotate(-187.5deg);\n }\n\n 100% {\n transform: rotate(-180deg);\n }\n}\n\n@keyframes spring-flip-out {\n 0% {\n transform: rotate(-180deg);\n }\n\n 30% {\n transform: rotate(62.4deg);\n }\n\n 60% {\n transform: rotate(-21.635deg);\n }\n\n 90% {\n transform: rotate(7.5deg);\n }\n\n 100% {\n transform: rotate(0deg);\n }\n}\n\n.status__content--with-action {\n cursor: pointer;\n}\n\n.status__content {\n position: relative;\n margin: 10px 0;\n font-size: 15px;\n line-height: 20px;\n word-wrap: break-word;\n font-weight: 400;\n overflow: visible;\n padding-top: 5px;\n\n &:focus {\n outline: 0;\n }\n\n .emojione {\n width: 20px;\n height: 20px;\n margin: -3px 0 0;\n }\n\n img {\n max-width: 100%;\n max-height: 400px;\n object-fit: contain;\n }\n\n p, pre, blockquote {\n margin-bottom: 20px;\n white-space: pre-wrap;\n\n &:last-child {\n margin-bottom: 0;\n }\n }\n\n .status__content__text,\n .e-content {\n overflow: hidden;\n\n & > ul,\n & > ol {\n margin-bottom: 20px;\n }\n\n h1, h2, h3, h4, h5 {\n margin-top: 20px;\n margin-bottom: 20px;\n }\n\n h1, h2 {\n font-weight: 700;\n font-size: 1.2em;\n }\n\n h2 {\n font-size: 1.1em;\n }\n\n h3, h4, h5 {\n font-weight: 500;\n }\n\n blockquote {\n padding-left: 10px;\n border-left: 3px solid $darker-text-color;\n color: $darker-text-color;\n white-space: normal;\n\n p:last-child {\n margin-bottom: 0;\n }\n }\n\n b, strong {\n font-weight: 700;\n }\n\n em, i {\n font-style: italic;\n }\n\n sub {\n font-size: smaller;\n text-align: sub;\n }\n\n sup {\n font-size: smaller;\n vertical-align: super;\n }\n\n ul, ol {\n margin-left: 1em;\n\n p {\n margin: 0;\n }\n }\n\n ul {\n list-style-type: disc;\n }\n\n ol {\n list-style-type: decimal;\n }\n }\n\n a {\n color: $pleroma-links;\n text-decoration: none;\n\n &:hover {\n text-decoration: underline;\n\n .fa {\n color: lighten($dark-text-color, 7%);\n }\n }\n\n &.mention {\n &:hover {\n text-decoration: none;\n\n span {\n text-decoration: underline;\n }\n }\n }\n\n .fa {\n color: $dark-text-color;\n }\n }\n\n .status__content__spoiler {\n display: none;\n\n &.status__content__spoiler--visible {\n display: block;\n }\n }\n\n a.unhandled-link {\n color: lighten($ui-highlight-color, 8%);\n\n .link-origin-tag {\n color: $gold-star;\n font-size: 0.8em;\n }\n }\n\n .status__content__spoiler-link {\n background: lighten($ui-base-color, 30%);\n\n &:hover {\n background: lighten($ui-base-color, 33%);\n text-decoration: none;\n }\n }\n}\n\n.status__content__spoiler-link {\n display: inline-block;\n border-radius: 2px;\n background: lighten($ui-base-color, 30%);\n border: none;\n color: $inverted-text-color;\n font-weight: 500;\n font-size: 11px;\n padding: 0 5px;\n text-transform: uppercase;\n line-height: inherit;\n cursor: pointer;\n vertical-align: bottom;\n\n &:hover {\n background: lighten($ui-base-color, 33%);\n text-decoration: none;\n }\n\n .status__content__spoiler-icon {\n display: inline-block;\n margin: 0 0 0 5px;\n border-left: 1px solid currentColor;\n padding: 0 0 0 4px;\n font-size: 16px;\n vertical-align: -2px;\n }\n}\n\n.notif-cleaning {\n .status,\n .notification-follow,\n .notification-follow-request {\n padding-right: ($dismiss-overlay-width + 0.5rem);\n }\n}\n\n.status__wrapper--filtered {\n color: $dark-text-color;\n border: 0;\n font-size: inherit;\n text-align: center;\n line-height: inherit;\n margin: 0;\n padding: 15px;\n box-sizing: border-box;\n width: 100%;\n clear: both;\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n}\n\n.status__prepend-icon-wrapper {\n left: -26px;\n position: absolute;\n}\n\n.notification-follow,\n.notification-follow-request {\n position: relative;\n\n // same like Status\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n\n .account {\n border-bottom: 0 none;\n }\n}\n\n.focusable {\n &:focus {\n outline: 0;\n background: lighten($ui-base-color, 4%);\n\n &.status.status-direct:not(.read) {\n background: lighten($ui-base-color, 12%);\n\n &.muted {\n background: transparent;\n }\n }\n\n .detailed-status,\n .detailed-status__action-bar {\n background: lighten($ui-base-color, 8%);\n }\n }\n}\n\n.status {\n padding: 10px 14px;\n position: relative;\n height: auto;\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n cursor: default;\n\n @supports (-ms-overflow-style: -ms-autohiding-scrollbar) {\n // Add margin to avoid Edge auto-hiding scrollbar appearing over content.\n // On Edge 16 this is 16px and Edge <=15 it's 12px, so aim for 16px.\n padding-right: 28px; // 12px + 16px\n }\n\n @keyframes fade {\n 0% { opacity: 0; }\n 100% { opacity: 1; }\n }\n\n opacity: 1;\n animation: fade 150ms linear;\n\n .video-player,\n .audio-player {\n margin-top: 8px;\n }\n\n &.status-direct:not(.read) {\n background: lighten($ui-base-color, 8%);\n border-bottom-color: lighten($ui-base-color, 12%);\n }\n\n &.light {\n .status__relative-time {\n color: $lighter-text-color;\n }\n\n .status__display-name {\n color: $inverted-text-color;\n }\n\n .display-name {\n color: $light-text-color;\n\n strong {\n color: $inverted-text-color;\n }\n }\n\n .status__content {\n color: $inverted-text-color;\n\n a {\n color: $highlight-text-color;\n }\n\n a.status__content__spoiler-link {\n color: $primary-text-color;\n background: $ui-primary-color;\n\n &:hover {\n background: lighten($ui-primary-color, 8%);\n }\n }\n }\n }\n\n &.collapsed {\n background-position: center;\n background-size: cover;\n user-select: none;\n\n &.has-background::before {\n display: block;\n position: absolute;\n left: 0;\n right: 0;\n top: 0;\n bottom: 0;\n background-image: linear-gradient(to bottom, rgba($base-shadow-color, .75), rgba($base-shadow-color, .65) 24px, rgba($base-shadow-color, .8));\n pointer-events: none;\n content: \"\";\n }\n\n .display-name:hover .display-name__html {\n text-decoration: none;\n }\n\n .status__content {\n height: 20px;\n overflow: hidden;\n text-overflow: ellipsis;\n padding-top: 0;\n\n &:after {\n content: \"\";\n position: absolute;\n top: 0; bottom: 0;\n left: 0; right: 0;\n background: linear-gradient(rgba($ui-base-color, 0), rgba($ui-base-color, 1));\n pointer-events: none;\n }\n \n a:hover {\n text-decoration: none;\n }\n }\n &:focus > .status__content:after {\n background: linear-gradient(rgba(lighten($ui-base-color, 4%), 0), rgba(lighten($ui-base-color, 4%), 1));\n }\n &.status-direct:not(.read)> .status__content:after {\n background: linear-gradient(rgba(lighten($ui-base-color, 8%), 0), rgba(lighten($ui-base-color, 8%), 1));\n }\n\n .notification__message {\n margin-bottom: 0;\n }\n\n .status__info .notification__message > span {\n white-space: nowrap;\n }\n }\n\n .notification__message {\n margin: -10px 0px 10px 0;\n }\n}\n\n.notification-favourite {\n .status.status-direct {\n background: transparent;\n\n .icon-button.disabled {\n color: lighten($action-button-color, 13%);\n }\n }\n}\n\n.status__relative-time {\n display: inline-block;\n flex-grow: 1;\n color: $dark-text-color;\n font-size: 14px;\n text-align: right;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n.status__display-name {\n color: $dark-text-color;\n overflow: hidden;\n}\n\n.status__info__account .status__display-name {\n display: block;\n max-width: 100%;\n}\n\n.status__info {\n display: flex;\n justify-content: space-between;\n font-size: 15px;\n\n > span {\n text-overflow: ellipsis;\n overflow: hidden;\n }\n\n .notification__message > span {\n word-wrap: break-word;\n }\n}\n\n.status__info__icons {\n display: flex;\n align-items: center;\n height: 1em;\n color: $action-button-color;\n\n .status__media-icon,\n .status__visibility-icon,\n .status__reply-icon {\n padding-left: 2px;\n padding-right: 2px;\n }\n\n .status__collapse-button.active > .fa-angle-double-up {\n transform: rotate(-180deg);\n }\n}\n\n.no-reduce-motion .status__collapse-button {\n &.activate {\n & > .fa-angle-double-up {\n animation: spring-flip-in 1s linear;\n }\n }\n\n &.deactivate {\n & > .fa-angle-double-up {\n animation: spring-flip-out 1s linear;\n }\n }\n}\n\n.status__info__account {\n display: flex;\n align-items: center;\n justify-content: flex-start;\n}\n\n.status-check-box {\n border-bottom: 1px solid $ui-secondary-color;\n display: flex;\n\n .status-check-box__status {\n margin: 10px 0 10px 10px;\n flex: 1;\n overflow: hidden;\n\n .media-gallery {\n max-width: 250px;\n }\n\n .status__content {\n padding: 0;\n white-space: normal;\n }\n\n .video-player,\n .audio-player {\n margin-top: 8px;\n max-width: 250px;\n }\n\n .media-gallery__item-thumbnail {\n cursor: default;\n }\n }\n}\n\n.status-check-box-toggle {\n align-items: center;\n display: flex;\n flex: 0 0 auto;\n justify-content: center;\n padding: 10px;\n}\n\n.status__prepend {\n margin-top: -10px;\n margin-bottom: 10px;\n margin-left: 58px;\n color: $dark-text-color;\n padding: 8px 0;\n padding-bottom: 2px;\n font-size: 14px;\n position: relative;\n\n .status__display-name strong {\n color: $dark-text-color;\n }\n\n > span {\n display: block;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n}\n\n.status__action-bar {\n align-items: center;\n display: flex;\n margin-top: 8px;\n\n &__counter {\n display: inline-flex;\n margin-right: 11px;\n align-items: center;\n\n .status__action-bar-button {\n margin-right: 4px;\n }\n\n &__label {\n display: inline-block;\n width: 14px;\n font-size: 12px;\n font-weight: 500;\n color: $action-button-color;\n }\n }\n}\n\n.status__action-bar-button {\n margin-right: 18px;\n}\n\n.status__action-bar-dropdown {\n height: 23.15px;\n width: 23.15px;\n}\n\n.detailed-status__action-bar-dropdown {\n flex: 1 1 auto;\n display: flex;\n align-items: center;\n justify-content: center;\n position: relative;\n}\n\n.detailed-status {\n background: lighten($ui-base-color, 4%);\n padding: 14px 10px;\n\n &--flex {\n display: flex;\n flex-wrap: wrap;\n justify-content: space-between;\n align-items: flex-start;\n\n .status__content,\n .detailed-status__meta {\n flex: 100%;\n }\n }\n\n .status__content {\n font-size: 19px;\n line-height: 24px;\n\n .emojione {\n width: 24px;\n height: 24px;\n margin: -1px 0 0;\n }\n }\n\n .video-player,\n .audio-player {\n margin-top: 8px;\n }\n}\n\n.detailed-status__meta {\n margin-top: 15px;\n color: $dark-text-color;\n font-size: 14px;\n line-height: 18px;\n}\n\n.detailed-status__action-bar {\n background: lighten($ui-base-color, 4%);\n border-top: 1px solid lighten($ui-base-color, 8%);\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n display: flex;\n flex-direction: row;\n padding: 10px 0;\n}\n\n.detailed-status__link {\n color: inherit;\n text-decoration: none;\n}\n\n.detailed-status__favorites,\n.detailed-status__reblogs {\n display: inline-block;\n font-weight: 500;\n font-size: 12px;\n margin-left: 6px;\n}\n\n.status__display-name,\n.status__relative-time,\n.detailed-status__display-name,\n.detailed-status__datetime,\n.detailed-status__application,\n.account__display-name {\n text-decoration: none;\n}\n\n.status__display-name,\n.account__display-name {\n strong {\n color: $primary-text-color;\n }\n}\n\n.muted {\n .emojione {\n opacity: 0.5;\n }\n}\n\na.status__display-name,\n.reply-indicator__display-name,\n.detailed-status__display-name,\n.account__display-name {\n &:hover strong {\n text-decoration: underline;\n }\n}\n\n.account__display-name strong {\n display: block;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n.detailed-status__application,\n.detailed-status__datetime {\n color: inherit;\n}\n\n.detailed-status .button.logo-button {\n margin-bottom: 15px;\n}\n\n.detailed-status__display-name {\n color: $secondary-text-color;\n display: block;\n line-height: 24px;\n margin-bottom: 15px;\n overflow: hidden;\n\n strong,\n span {\n display: block;\n text-overflow: ellipsis;\n overflow: hidden;\n }\n\n strong {\n font-size: 16px;\n color: $primary-text-color;\n }\n}\n\n.detailed-status__display-avatar {\n float: left;\n margin-right: 10px;\n}\n\n.status__avatar {\n flex: none;\n margin: 0 10px 0 0;\n height: 48px;\n width: 48px;\n}\n\n.muted {\n .status__content,\n .status__content p,\n .status__content a,\n .status__content__text {\n color: $dark-text-color;\n }\n\n .status__display-name strong {\n color: $dark-text-color;\n }\n\n .status__avatar {\n opacity: 0.5;\n }\n\n a.status__content__spoiler-link {\n background: $ui-base-lighter-color;\n color: $inverted-text-color;\n\n &:hover {\n background: lighten($ui-base-color, 29%);\n text-decoration: none;\n }\n }\n}\n\n.status__relative-time,\n.detailed-status__datetime {\n &:hover {\n text-decoration: underline;\n }\n}\n\n.status-card {\n display: flex;\n font-size: 14px;\n border: 1px solid lighten($ui-base-color, 8%);\n border-radius: 4px;\n color: $dark-text-color;\n margin-top: 14px;\n text-decoration: none;\n overflow: hidden;\n\n &__actions {\n bottom: 0;\n left: 0;\n position: absolute;\n right: 0;\n top: 0;\n display: flex;\n justify-content: center;\n align-items: center;\n\n & > div {\n background: rgba($base-shadow-color, 0.6);\n border-radius: 8px;\n padding: 12px 9px;\n flex: 0 0 auto;\n display: flex;\n justify-content: center;\n align-items: center;\n }\n\n button,\n a {\n display: inline;\n color: $secondary-text-color;\n background: transparent;\n border: 0;\n padding: 0 8px;\n text-decoration: none;\n font-size: 18px;\n line-height: 18px;\n\n &:hover,\n &:active,\n &:focus {\n color: $primary-text-color;\n }\n }\n\n a {\n font-size: 19px;\n position: relative;\n bottom: -1px;\n }\n\n a .fa, a:hover .fa {\n color: inherit;\n }\n }\n}\n\na.status-card {\n cursor: pointer;\n\n &:hover {\n background: lighten($ui-base-color, 8%);\n }\n}\n\n.status-card-photo {\n cursor: zoom-in;\n display: block;\n text-decoration: none;\n width: 100%;\n height: auto;\n margin: 0;\n}\n\n.status-card-video {\n iframe {\n width: 100%;\n height: 100%;\n }\n}\n\n.status-card__title {\n display: block;\n font-weight: 500;\n margin-bottom: 5px;\n color: $darker-text-color;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n text-decoration: none;\n}\n\n.status-card__content {\n flex: 1 1 auto;\n overflow: hidden;\n padding: 14px 14px 14px 8px;\n}\n\n.status-card__description {\n color: $darker-text-color;\n}\n\n.status-card__host {\n display: block;\n margin-top: 5px;\n font-size: 13px;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.status-card__image {\n flex: 0 0 100px;\n background: lighten($ui-base-color, 8%);\n position: relative;\n\n & > .fa {\n font-size: 21px;\n position: absolute;\n transform-origin: 50% 50%;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n }\n}\n\n.status-card.horizontal {\n display: block;\n\n .status-card__image {\n width: 100%;\n }\n\n .status-card__image-image {\n border-radius: 4px 4px 0 0;\n }\n\n .status-card__title {\n white-space: inherit;\n }\n}\n\n.status-card.compact {\n border-color: lighten($ui-base-color, 4%);\n\n &.interactive {\n border: 0;\n }\n\n .status-card__content {\n padding: 8px;\n padding-top: 10px;\n }\n\n .status-card__title {\n white-space: nowrap;\n }\n\n .status-card__image {\n flex: 0 0 60px;\n }\n}\n\na.status-card.compact:hover {\n background-color: lighten($ui-base-color, 4%);\n}\n\n.status-card__image-image {\n border-radius: 4px 0 0 4px;\n display: block;\n margin: 0;\n width: 100%;\n height: 100%;\n object-fit: cover;\n background-size: cover;\n background-position: center center;\n}\n\n.attachment-list {\n display: flex;\n font-size: 14px;\n border: 1px solid lighten($ui-base-color, 8%);\n border-radius: 4px;\n margin-top: 14px;\n overflow: hidden;\n\n &__icon {\n flex: 0 0 auto;\n color: $dark-text-color;\n padding: 8px 18px;\n cursor: default;\n border-right: 1px solid lighten($ui-base-color, 8%);\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n font-size: 26px;\n\n .fa {\n display: block;\n }\n }\n\n &__list {\n list-style: none;\n padding: 4px 0;\n padding-left: 8px;\n display: flex;\n flex-direction: column;\n justify-content: center;\n\n li {\n display: block;\n padding: 4px 0;\n }\n\n a {\n text-decoration: none;\n color: $dark-text-color;\n font-weight: 500;\n\n &:hover {\n text-decoration: underline;\n }\n }\n }\n\n &.compact {\n border: 0;\n margin-top: 4px;\n\n .attachment-list__list {\n padding: 0;\n display: block;\n }\n\n .fa {\n color: $dark-text-color;\n }\n }\n}\n\n.status__wrapper--filtered__button {\n display: inline;\n color: lighten($ui-highlight-color, 8%);\n border: 0;\n background: transparent;\n padding: 0;\n font-size: inherit;\n line-height: inherit;\n\n &:hover,\n &:active {\n text-decoration: underline;\n }\n}\n",".modal-container--preloader {\n background: lighten($ui-base-color, 8%);\n}\n\n.modal-root {\n position: relative;\n transition: opacity 0.3s linear;\n will-change: opacity;\n z-index: 9999;\n}\n\n.modal-root__overlay {\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background: rgba($base-overlay-background, 0.7);\n}\n\n.modal-root__container {\n position: fixed;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n align-content: space-around;\n z-index: 9999;\n pointer-events: none;\n user-select: none;\n}\n\n.modal-root__modal {\n pointer-events: auto;\n display: flex;\n z-index: 9999;\n}\n\n.onboarding-modal,\n.error-modal,\n.embed-modal {\n background: $ui-secondary-color;\n color: $inverted-text-color;\n border-radius: 8px;\n overflow: hidden;\n display: flex;\n flex-direction: column;\n}\n\n.onboarding-modal__pager {\n height: 80vh;\n width: 80vw;\n max-width: 520px;\n max-height: 470px;\n\n .react-swipeable-view-container > div {\n width: 100%;\n height: 100%;\n box-sizing: border-box;\n display: none;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n display: flex;\n user-select: text;\n }\n}\n\n.error-modal__body {\n height: 80vh;\n width: 80vw;\n max-width: 520px;\n max-height: 420px;\n position: relative;\n\n & > div {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n box-sizing: border-box;\n padding: 25px;\n display: none;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n display: flex;\n opacity: 0;\n user-select: text;\n }\n}\n\n.error-modal__body {\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n text-align: center;\n}\n\n@media screen and (max-width: 550px) {\n .onboarding-modal {\n width: 100%;\n height: 100%;\n border-radius: 0;\n }\n\n .onboarding-modal__pager {\n width: 100%;\n height: auto;\n max-width: none;\n max-height: none;\n flex: 1 1 auto;\n }\n}\n\n.onboarding-modal__paginator,\n.error-modal__footer {\n flex: 0 0 auto;\n background: darken($ui-secondary-color, 8%);\n display: flex;\n padding: 25px;\n\n & > div {\n min-width: 33px;\n }\n\n .onboarding-modal__nav,\n .error-modal__nav {\n color: $lighter-text-color;\n border: 0;\n font-size: 14px;\n font-weight: 500;\n padding: 10px 25px;\n line-height: inherit;\n height: auto;\n margin: -10px;\n border-radius: 4px;\n background-color: transparent;\n\n &:hover,\n &:focus,\n &:active {\n color: darken($lighter-text-color, 4%);\n background-color: darken($ui-secondary-color, 16%);\n }\n\n &.onboarding-modal__done,\n &.onboarding-modal__next {\n color: $inverted-text-color;\n\n &:hover,\n &:focus,\n &:active {\n color: lighten($inverted-text-color, 4%);\n }\n }\n }\n}\n\n.error-modal__footer {\n justify-content: center;\n}\n\n.onboarding-modal__dots {\n flex: 1 1 auto;\n display: flex;\n align-items: center;\n justify-content: center;\n}\n\n.onboarding-modal__dot {\n width: 14px;\n height: 14px;\n border-radius: 14px;\n background: darken($ui-secondary-color, 16%);\n margin: 0 3px;\n cursor: pointer;\n\n &:hover {\n background: darken($ui-secondary-color, 18%);\n }\n\n &.active {\n cursor: default;\n background: darken($ui-secondary-color, 24%);\n }\n}\n\n.onboarding-modal__page__wrapper {\n pointer-events: none;\n padding: 25px;\n padding-bottom: 0;\n\n &.onboarding-modal__page__wrapper--active {\n pointer-events: auto;\n }\n}\n\n.onboarding-modal__page {\n cursor: default;\n line-height: 21px;\n\n h1 {\n font-size: 18px;\n font-weight: 500;\n color: $inverted-text-color;\n margin-bottom: 20px;\n }\n\n a {\n color: $highlight-text-color;\n\n &:hover,\n &:focus,\n &:active {\n color: lighten($highlight-text-color, 4%);\n }\n }\n\n .navigation-bar a {\n color: inherit;\n }\n\n p {\n font-size: 16px;\n color: $lighter-text-color;\n margin-top: 10px;\n margin-bottom: 10px;\n\n &:last-child {\n margin-bottom: 0;\n }\n\n strong {\n font-weight: 500;\n background: $ui-base-color;\n color: $secondary-text-color;\n border-radius: 4px;\n font-size: 14px;\n padding: 3px 6px;\n\n @each $lang in $cjk-langs {\n &:lang(#{$lang}) {\n font-weight: 700;\n }\n }\n }\n }\n}\n\n.onboarding-modal__page__wrapper-0 {\n height: 100%;\n padding: 0;\n}\n\n.onboarding-modal__page-one {\n &__lead {\n padding: 65px;\n padding-top: 45px;\n padding-bottom: 0;\n margin-bottom: 10px;\n\n h1 {\n font-size: 26px;\n line-height: 36px;\n margin-bottom: 8px;\n }\n\n p {\n margin-bottom: 0;\n }\n }\n\n &__extra {\n padding-right: 65px;\n padding-left: 185px;\n text-align: center;\n }\n}\n\n.display-case {\n text-align: center;\n font-size: 15px;\n margin-bottom: 15px;\n\n &__label {\n font-weight: 500;\n color: $inverted-text-color;\n margin-bottom: 5px;\n text-transform: uppercase;\n font-size: 12px;\n }\n\n &__case {\n background: $ui-base-color;\n color: $secondary-text-color;\n font-weight: 500;\n padding: 10px;\n border-radius: 4px;\n }\n}\n\n.onboarding-modal__page-two,\n.onboarding-modal__page-three,\n.onboarding-modal__page-four,\n.onboarding-modal__page-five {\n p {\n text-align: left;\n }\n\n .figure {\n background: darken($ui-base-color, 8%);\n color: $secondary-text-color;\n margin-bottom: 20px;\n border-radius: 4px;\n padding: 10px;\n text-align: center;\n font-size: 14px;\n box-shadow: 1px 2px 6px rgba($base-shadow-color, 0.3);\n\n .onboarding-modal__image {\n border-radius: 4px;\n margin-bottom: 10px;\n }\n\n &.non-interactive {\n pointer-events: none;\n text-align: left;\n }\n }\n}\n\n.onboarding-modal__page-four__columns {\n .row {\n display: flex;\n margin-bottom: 20px;\n\n & > div {\n flex: 1 1 0;\n margin: 0 10px;\n\n &:first-child {\n margin-left: 0;\n }\n\n &:last-child {\n margin-right: 0;\n }\n\n p {\n text-align: center;\n }\n }\n\n &:last-child {\n margin-bottom: 0;\n }\n }\n\n .column-header {\n color: $primary-text-color;\n }\n}\n\n@media screen and (max-width: 320px) and (max-height: 600px) {\n .onboarding-modal__page p {\n font-size: 14px;\n line-height: 20px;\n }\n\n .onboarding-modal__page-two .figure,\n .onboarding-modal__page-three .figure,\n .onboarding-modal__page-four .figure,\n .onboarding-modal__page-five .figure {\n font-size: 12px;\n margin-bottom: 10px;\n }\n\n .onboarding-modal__page-four__columns .row {\n margin-bottom: 10px;\n }\n\n .onboarding-modal__page-four__columns .column-header {\n padding: 5px;\n font-size: 12px;\n }\n}\n\n.onboard-sliders {\n display: inline-block;\n max-width: 30px;\n max-height: auto;\n margin-left: 10px;\n}\n\n.boost-modal,\n.favourite-modal,\n.confirmation-modal,\n.report-modal,\n.actions-modal,\n.mute-modal,\n.block-modal {\n background: lighten($ui-secondary-color, 8%);\n color: $inverted-text-color;\n border-radius: 8px;\n overflow: hidden;\n max-width: 90vw;\n width: 480px;\n position: relative;\n flex-direction: column;\n\n .status__relative-time {\n color: $dark-text-color;\n float: right;\n font-size: 14px;\n width: auto;\n margin: initial;\n padding: initial;\n }\n\n .status__display-name {\n display: flex;\n }\n\n .status__avatar {\n height: 48px;\n width: 48px;\n }\n\n .status__content__spoiler-link {\n color: lighten($secondary-text-color, 8%);\n }\n}\n\n.actions-modal {\n .status {\n background: $white;\n border-bottom-color: $ui-secondary-color;\n padding-top: 10px;\n padding-bottom: 10px;\n }\n\n .dropdown-menu__separator {\n border-bottom-color: $ui-secondary-color;\n }\n}\n\n.boost-modal__container,\n.favourite-modal__container {\n overflow-x: scroll;\n padding: 10px;\n\n .status {\n user-select: text;\n border-bottom: 0;\n }\n}\n\n.boost-modal__action-bar,\n.favourite-modal__action-bar,\n.confirmation-modal__action-bar,\n.mute-modal__action-bar,\n.block-modal__action-bar {\n display: flex;\n justify-content: space-between;\n background: $ui-secondary-color;\n padding: 10px;\n line-height: 36px;\n\n & > div {\n flex: 1 1 auto;\n text-align: right;\n color: $lighter-text-color;\n padding-right: 10px;\n }\n\n .button {\n flex: 0 0 auto;\n }\n}\n\n.boost-modal__status-header,\n.favourite-modal__status-header {\n font-size: 15px;\n}\n\n.boost-modal__status-time,\n.favourite-modal__status-time {\n float: right;\n font-size: 14px;\n}\n\n.mute-modal,\n.block-modal {\n line-height: 24px;\n}\n\n.mute-modal .react-toggle,\n.block-modal .react-toggle {\n vertical-align: middle;\n}\n\n.report-modal {\n width: 90vw;\n max-width: 700px;\n}\n\n.report-modal__container {\n display: flex;\n border-top: 1px solid $ui-secondary-color;\n\n @media screen and (max-width: 480px) {\n flex-wrap: wrap;\n overflow-y: auto;\n }\n}\n\n.report-modal__statuses,\n.report-modal__comment {\n box-sizing: border-box;\n width: 50%;\n\n @media screen and (max-width: 480px) {\n width: 100%;\n }\n}\n\n.report-modal__statuses,\n.focal-point-modal__content {\n flex: 1 1 auto;\n min-height: 20vh;\n max-height: 80vh;\n overflow-y: auto;\n overflow-x: hidden;\n\n .status__content a {\n color: $highlight-text-color;\n }\n\n @media screen and (max-width: 480px) {\n max-height: 10vh;\n }\n}\n\n.focal-point-modal__content {\n @media screen and (max-width: 480px) {\n max-height: 40vh;\n }\n}\n\n.report-modal__comment {\n padding: 20px;\n border-right: 1px solid $ui-secondary-color;\n max-width: 320px;\n\n p {\n font-size: 14px;\n line-height: 20px;\n margin-bottom: 20px;\n }\n\n .setting-text {\n display: block;\n box-sizing: border-box;\n width: 100%;\n margin: 0;\n color: $inverted-text-color;\n background: $white;\n padding: 10px;\n font-family: inherit;\n font-size: 14px;\n resize: none;\n border: 0;\n outline: 0;\n border-radius: 4px;\n border: 1px solid $ui-secondary-color;\n min-height: 100px;\n max-height: 50vh;\n margin-bottom: 10px;\n\n &:focus {\n border: 1px solid darken($ui-secondary-color, 8%);\n }\n\n &__wrapper {\n background: $white;\n border: 1px solid $ui-secondary-color;\n margin-bottom: 10px;\n border-radius: 4px;\n\n .setting-text {\n border: 0;\n margin-bottom: 0;\n border-radius: 0;\n\n &:focus {\n border: 0;\n }\n }\n\n &__modifiers {\n color: $inverted-text-color;\n font-family: inherit;\n font-size: 14px;\n background: $white;\n }\n }\n\n &__toolbar {\n display: flex;\n justify-content: space-between;\n margin-bottom: 20px;\n }\n }\n\n .setting-text-label {\n display: block;\n color: $inverted-text-color;\n font-size: 14px;\n font-weight: 500;\n margin-bottom: 10px;\n }\n\n .setting-toggle {\n margin-top: 20px;\n margin-bottom: 24px;\n\n &__label {\n color: $inverted-text-color;\n font-size: 14px;\n }\n }\n\n @media screen and (max-width: 480px) {\n padding: 10px;\n max-width: 100%;\n order: 2;\n\n .setting-toggle {\n margin-bottom: 4px;\n }\n }\n}\n\n.actions-modal {\n .status {\n overflow-y: auto;\n max-height: 300px;\n }\n\n strong {\n display: block;\n font-weight: 500;\n }\n\n max-height: 80vh;\n max-width: 80vw;\n\n .actions-modal__item-label {\n font-weight: 500;\n }\n\n ul {\n overflow-y: auto;\n flex-shrink: 0;\n max-height: 80vh;\n\n &.with-status {\n max-height: calc(80vh - 75px);\n }\n\n li:empty {\n margin: 0;\n }\n\n li:not(:empty) {\n a {\n color: $inverted-text-color;\n display: flex;\n padding: 12px 16px;\n font-size: 15px;\n align-items: center;\n text-decoration: none;\n\n &,\n button {\n transition: none;\n }\n\n &.active,\n &:hover,\n &:active,\n &:focus {\n &,\n button {\n background: $ui-highlight-color;\n color: $primary-text-color;\n }\n }\n\n & > .react-toggle,\n & > .icon,\n button:first-child {\n margin-right: 10px;\n }\n }\n }\n }\n}\n\n.confirmation-modal__action-bar,\n.mute-modal__action-bar,\n.block-modal__action-bar {\n .confirmation-modal__secondary-button {\n flex-shrink: 1;\n }\n}\n\n.confirmation-modal__secondary-button,\n.confirmation-modal__cancel-button,\n.mute-modal__cancel-button,\n.block-modal__cancel-button {\n background-color: transparent;\n color: $lighter-text-color;\n font-size: 14px;\n font-weight: 500;\n\n &:hover,\n &:focus,\n &:active {\n color: darken($lighter-text-color, 4%);\n background-color: transparent;\n }\n}\n\n.confirmation-modal__do_not_ask_again {\n padding-left: 20px;\n padding-right: 20px;\n padding-bottom: 10px;\n\n font-size: 14px;\n\n label, input {\n vertical-align: middle;\n }\n}\n\n.confirmation-modal__container,\n.mute-modal__container,\n.block-modal__container,\n.report-modal__target {\n padding: 30px;\n font-size: 16px;\n\n strong {\n font-weight: 500;\n\n @each $lang in $cjk-langs {\n &:lang(#{$lang}) {\n font-weight: 700;\n }\n }\n }\n}\n\n.confirmation-modal__container,\n.report-modal__target {\n text-align: center;\n}\n\n.block-modal,\n.mute-modal {\n &__explanation {\n margin-top: 20px;\n }\n\n .setting-toggle {\n margin-top: 20px;\n margin-bottom: 24px;\n display: flex;\n align-items: center;\n\n &__label {\n color: $inverted-text-color;\n margin: 0;\n margin-left: 8px;\n }\n }\n}\n\n.report-modal__target {\n padding: 15px;\n\n .media-modal__close {\n top: 14px;\n right: 15px;\n }\n}\n\n.embed-modal {\n width: auto;\n max-width: 80vw;\n max-height: 80vh;\n\n h4 {\n padding: 30px;\n font-weight: 500;\n font-size: 16px;\n text-align: center;\n }\n\n .embed-modal__container {\n padding: 10px;\n\n .hint {\n margin-bottom: 15px;\n }\n\n .embed-modal__html {\n outline: 0;\n box-sizing: border-box;\n display: block;\n width: 100%;\n border: none;\n padding: 10px;\n font-family: 'mastodon-font-monospace', monospace;\n background: $ui-base-color;\n color: $primary-text-color;\n font-size: 14px;\n margin: 0;\n margin-bottom: 15px;\n border-radius: 4px;\n\n &::-moz-focus-inner {\n border: 0;\n }\n\n &::-moz-focus-inner,\n &:focus,\n &:active {\n outline: 0 !important;\n }\n\n &:focus {\n background: lighten($ui-base-color, 4%);\n }\n\n @media screen and (max-width: 600px) {\n font-size: 16px;\n }\n }\n\n .embed-modal__iframe {\n width: 400px;\n max-width: 100%;\n overflow: hidden;\n border: 0;\n border-radius: 4px;\n }\n }\n}\n\n.focal-point {\n position: relative;\n cursor: move;\n overflow: hidden;\n height: 100%;\n display: flex;\n justify-content: center;\n align-items: center;\n background: $base-shadow-color;\n\n img,\n video,\n canvas {\n display: block;\n max-height: 80vh;\n width: 100%;\n height: auto;\n margin: 0;\n object-fit: contain;\n background: $base-shadow-color;\n }\n\n &__reticle {\n position: absolute;\n width: 100px;\n height: 100px;\n transform: translate(-50%, -50%);\n background: url('~images/reticle.png') no-repeat 0 0;\n border-radius: 50%;\n box-shadow: 0 0 0 9999em rgba($base-shadow-color, 0.35);\n }\n\n &__overlay {\n position: absolute;\n width: 100%;\n height: 100%;\n top: 0;\n left: 0;\n }\n\n &__preview {\n position: absolute;\n bottom: 10px;\n right: 10px;\n z-index: 2;\n cursor: move;\n transition: opacity 0.1s ease;\n\n &:hover {\n opacity: 0.5;\n }\n\n strong {\n color: $primary-text-color;\n font-size: 14px;\n font-weight: 500;\n display: block;\n margin-bottom: 5px;\n }\n\n div {\n border-radius: 4px;\n box-shadow: 0 0 14px rgba($base-shadow-color, 0.2);\n }\n }\n\n @media screen and (max-width: 480px) {\n img,\n video {\n max-height: 100%;\n }\n\n &__preview {\n display: none;\n }\n }\n}\n\n.filtered-status-info {\n text-align: start;\n\n .spoiler__text {\n margin-top: 20px;\n }\n\n .account {\n border-bottom: 0;\n }\n\n .account__display-name strong {\n color: $inverted-text-color;\n }\n\n .status__content__spoiler {\n display: none;\n\n &--visible {\n display: flex;\n }\n }\n\n ul {\n padding: 10px;\n margin-left: 12px;\n list-style: disc inside;\n }\n\n .filtered-status-edit-link {\n color: $action-button-color;\n text-decoration: none;\n\n &:hover {\n text-decoration: underline\n }\n }\n}\n",".composer {\n padding: 10px;\n\n .emoji-picker-dropdown {\n position: absolute;\n top: 0;\n right: 0;\n\n ::-webkit-scrollbar-track:hover,\n ::-webkit-scrollbar-track:active {\n background-color: rgba($base-overlay-background, 0.3);\n }\n }\n}\n\n.character-counter {\n cursor: default;\n font-family: $font-sans-serif, sans-serif;\n font-size: 14px;\n font-weight: 600;\n color: $lighter-text-color;\n\n &.character-counter--over {\n color: $warning-red;\n }\n}\n\n.no-reduce-motion .composer--spoiler {\n transition: height 0.4s ease, opacity 0.4s ease;\n}\n\n.composer--spoiler {\n height: 0;\n transform-origin: bottom;\n opacity: 0.0;\n\n &.composer--spoiler--visible {\n height: 36px;\n margin-bottom: 11px;\n opacity: 1.0;\n }\n\n input {\n display: block;\n box-sizing: border-box;\n margin: 0;\n border: none;\n border-radius: 4px;\n padding: 10px;\n width: 100%;\n outline: 0;\n color: $inverted-text-color;\n background: $simple-background-color;\n font-size: 14px;\n font-family: inherit;\n resize: vertical;\n\n &::placeholder {\n color: $dark-text-color;\n }\n\n &:focus { outline: 0 }\n @include single-column('screen and (max-width: 630px)') { font-size: 16px }\n }\n}\n\n.composer--warning {\n color: $inverted-text-color;\n margin-bottom: 15px;\n background: $ui-primary-color;\n box-shadow: 0 2px 6px rgba($base-shadow-color, 0.3);\n padding: 8px 10px;\n border-radius: 4px;\n font-size: 13px;\n font-weight: 400;\n\n a {\n color: $lighter-text-color;\n font-weight: 500;\n text-decoration: underline;\n\n &:active,\n &:focus,\n &:hover { text-decoration: none }\n }\n}\n\n.compose-form__sensitive-button {\n padding: 10px;\n padding-top: 0;\n\n font-size: 14px;\n font-weight: 500;\n\n &.active {\n color: $highlight-text-color;\n }\n\n input[type=checkbox] {\n display: none;\n }\n\n .checkbox {\n display: inline-block;\n position: relative;\n border: 1px solid $ui-primary-color;\n box-sizing: border-box;\n width: 18px;\n height: 18px;\n flex: 0 0 auto;\n margin-left: 5px;\n margin-right: 10px;\n top: -1px;\n border-radius: 4px;\n vertical-align: middle;\n\n &.active {\n border-color: $highlight-text-color;\n background: $highlight-text-color;\n }\n }\n}\n\n.composer--reply {\n margin: 0 0 10px;\n border-radius: 4px;\n padding: 10px;\n background: $ui-primary-color;\n min-height: 23px;\n overflow-y: auto;\n flex: 0 2 auto;\n\n & > header {\n margin-bottom: 5px;\n overflow: hidden;\n\n & > .account.small { color: $inverted-text-color; }\n\n & > .cancel {\n float: right;\n line-height: 24px;\n }\n }\n\n & > .content {\n position: relative;\n margin: 10px 0;\n padding: 0 12px;\n font-size: 14px;\n line-height: 20px;\n color: $inverted-text-color;\n word-wrap: break-word;\n font-weight: 400;\n overflow: visible;\n white-space: pre-wrap;\n padding-top: 5px;\n overflow: hidden;\n\n p, pre, blockquote {\n margin-bottom: 20px;\n white-space: pre-wrap;\n\n &:last-child {\n margin-bottom: 0;\n }\n }\n\n h1, h2, h3, h4, h5 {\n margin-top: 20px;\n margin-bottom: 20px;\n }\n\n h1, h2 {\n font-weight: 700;\n font-size: 18px;\n }\n\n h2 {\n font-size: 16px;\n }\n\n h3, h4, h5 {\n font-weight: 500;\n }\n\n blockquote {\n padding-left: 10px;\n border-left: 3px solid $inverted-text-color;\n color: $inverted-text-color;\n white-space: normal;\n\n p:last-child {\n margin-bottom: 0;\n }\n }\n\n b, strong {\n font-weight: 700;\n }\n\n em, i {\n font-style: italic;\n }\n\n sub {\n font-size: smaller;\n text-align: sub;\n }\n\n ul, ol {\n margin-left: 1em;\n\n p {\n margin: 0;\n }\n }\n\n ul {\n list-style-type: disc;\n }\n\n ol {\n list-style-type: decimal;\n }\n\n a {\n color: $lighter-text-color;\n text-decoration: none;\n\n &:hover { text-decoration: underline }\n\n &.mention {\n &:hover {\n text-decoration: none;\n\n span { text-decoration: underline }\n }\n }\n }\n }\n\n .emojione {\n width: 20px;\n height: 20px;\n margin: -5px 0 0;\n }\n}\n\n.compose-form__autosuggest-wrapper,\n.autosuggest-input {\n position: relative;\n width: 100%;\n\n label {\n .autosuggest-textarea__textarea {\n display: block;\n box-sizing: border-box;\n margin: 0;\n border: none;\n border-radius: 4px 4px 0 0;\n padding: 10px 32px 0 10px;\n width: 100%;\n min-height: 100px;\n outline: 0;\n color: $inverted-text-color;\n background: $simple-background-color;\n font-size: 14px;\n font-family: inherit;\n resize: none;\n scrollbar-color: initial;\n\n &::placeholder {\n color: $dark-text-color;\n }\n\n &::-webkit-scrollbar {\n all: unset;\n }\n\n &:disabled { background: $ui-secondary-color }\n &:focus { outline: 0 }\n @include single-column('screen and (max-width: 630px)') { font-size: 16px }\n\n @include limited-single-column('screen and (max-width: 600px)') {\n height: 100px !important; // prevent auto-resize textarea\n resize: vertical;\n }\n }\n }\n}\n\n.composer--textarea--icons {\n display: block;\n position: absolute;\n top: 29px;\n right: 5px;\n bottom: 5px;\n overflow: hidden;\n\n & > .textarea_icon {\n display: block;\n margin: 2px 0 0 2px;\n width: 24px;\n height: 24px;\n color: $lighter-text-color;\n font-size: 18px;\n line-height: 24px;\n text-align: center;\n opacity: .8;\n }\n}\n\n.autosuggest-textarea__suggestions-wrapper {\n position: relative;\n height: 0;\n}\n\n.autosuggest-textarea__suggestions {\n display: block;\n position: absolute;\n box-sizing: border-box;\n top: 100%;\n border-radius: 0 0 4px 4px;\n padding: 6px;\n width: 100%;\n color: $inverted-text-color;\n background: $ui-secondary-color;\n box-shadow: 4px 4px 6px rgba($base-shadow-color, 0.4);\n font-size: 14px;\n z-index: 99;\n display: none;\n}\n\n.autosuggest-textarea__suggestions--visible {\n display: block;\n}\n\n.autosuggest-textarea__suggestions__item {\n padding: 10px;\n cursor: pointer;\n border-radius: 4px;\n\n &:hover,\n &:focus,\n &:active,\n &.selected { background: darken($ui-secondary-color, 10%) }\n\n > .account,\n > .emoji,\n > .autosuggest-hashtag {\n display: flex;\n flex-direction: row;\n align-items: center;\n justify-content: flex-start;\n line-height: 18px;\n font-size: 14px;\n }\n\n .autosuggest-hashtag {\n justify-content: space-between;\n\n &__name {\n flex: 1 1 auto;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n\n strong {\n font-weight: 500;\n }\n\n &__uses {\n flex: 0 0 auto;\n text-align: right;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n }\n\n & > .account.small {\n .display-name {\n & > span { color: $lighter-text-color }\n }\n }\n}\n\n.composer--upload_form {\n overflow: hidden;\n\n & > .content {\n display: flex;\n flex-direction: row;\n flex-wrap: wrap;\n font-family: inherit;\n padding: 5px;\n overflow: hidden;\n }\n}\n\n.composer--upload_form--item {\n flex: 1 1 0;\n margin: 5px;\n min-width: 40%;\n\n & > div {\n position: relative;\n border-radius: 4px;\n height: 140px;\n width: 100%;\n background-color: $base-shadow-color;\n background-position: center;\n background-size: cover;\n background-repeat: no-repeat;\n overflow: hidden;\n\n textarea {\n display: block;\n position: absolute;\n box-sizing: border-box;\n bottom: 0;\n left: 0;\n margin: 0;\n border: 0;\n padding: 10px;\n width: 100%;\n color: $secondary-text-color;\n background: linear-gradient(0deg, rgba($base-shadow-color, 0.8) 0, rgba($base-shadow-color, 0.35) 80%, transparent);\n font-size: 14px;\n font-family: inherit;\n font-weight: 500;\n opacity: 0;\n z-index: 2;\n transition: opacity .1s ease;\n\n &:focus { color: $white }\n\n &::placeholder {\n opacity: 0.54;\n color: $secondary-text-color;\n }\n }\n\n & > .close { mix-blend-mode: difference }\n }\n\n &.active {\n & > div {\n textarea { opacity: 1 }\n }\n }\n}\n\n.composer--upload_form--actions {\n background: linear-gradient(180deg, rgba($base-shadow-color, 0.8) 0, rgba($base-shadow-color, 0.35) 80%, transparent);\n display: flex;\n align-items: flex-start;\n justify-content: space-between;\n opacity: 0;\n transition: opacity .1s ease;\n\n .icon-button {\n flex: 0 1 auto;\n color: $ui-secondary-color;\n font-size: 14px;\n font-weight: 500;\n padding: 10px;\n font-family: inherit;\n\n &:hover,\n &:focus,\n &:active {\n color: lighten($ui-secondary-color, 4%);\n }\n }\n\n &.active {\n opacity: 1;\n }\n}\n\n.composer--upload_form--progress {\n display: flex;\n padding: 10px;\n color: $darker-text-color;\n overflow: hidden;\n\n & > .fa {\n font-size: 34px;\n margin-right: 10px;\n }\n\n & > .message {\n flex: 1 1 auto;\n\n & > span {\n display: block;\n font-size: 12px;\n font-weight: 500;\n text-transform: uppercase;\n }\n\n & > .backdrop {\n position: relative;\n margin-top: 5px;\n border-radius: 6px;\n width: 100%;\n height: 6px;\n background: $ui-base-lighter-color;\n\n & > .tracker {\n position: absolute;\n top: 0;\n left: 0;\n height: 6px;\n border-radius: 6px;\n background: $ui-highlight-color;\n }\n }\n }\n}\n\n.compose-form__modifiers {\n color: $inverted-text-color;\n font-family: inherit;\n font-size: 14px;\n background: $simple-background-color;\n}\n\n.composer--options-wrapper {\n padding: 10px;\n background: darken($simple-background-color, 8%);\n border-radius: 0 0 4px 4px;\n height: 27px;\n display: flex;\n justify-content: space-between;\n flex: 0 0 auto;\n}\n\n.composer--options {\n display: flex;\n flex: 0 0 auto;\n\n & > * {\n display: inline-block;\n box-sizing: content-box;\n padding: 0 3px;\n height: 27px;\n line-height: 27px;\n vertical-align: bottom;\n }\n\n & > hr {\n display: inline-block;\n margin: 0 3px;\n border-width: 0 0 0 1px;\n border-style: none none none solid;\n border-color: transparent transparent transparent darken($simple-background-color, 24%);\n padding: 0;\n width: 0;\n height: 27px;\n background: transparent;\n }\n}\n\n.compose--counter-wrapper {\n align-self: center;\n margin-right: 4px;\n}\n\n.composer--options--dropdown {\n &.open {\n & > .value {\n border-radius: 4px 4px 0 0;\n box-shadow: 0 -4px 4px rgba($base-shadow-color, 0.1);\n color: $primary-text-color;\n background: $ui-highlight-color;\n transition: none;\n }\n &.top {\n & > .value {\n border-radius: 0 0 4px 4px;\n box-shadow: 0 4px 4px rgba($base-shadow-color, 0.1);\n }\n }\n }\n}\n\n.composer--options--dropdown--content {\n position: absolute;\n border-radius: 4px;\n box-shadow: 2px 4px 15px rgba($base-shadow-color, 0.4);\n background: $simple-background-color;\n overflow: hidden;\n transform-origin: 50% 0;\n}\n\n.composer--options--dropdown--content--item {\n display: flex;\n align-items: center;\n padding: 10px;\n color: $inverted-text-color;\n cursor: pointer;\n\n & > .content {\n flex: 1 1 auto;\n color: $lighter-text-color;\n\n &:not(:first-child) { margin-left: 10px }\n\n strong {\n display: block;\n color: $inverted-text-color;\n font-weight: 500;\n }\n }\n\n &:hover,\n &.active {\n background: $ui-highlight-color;\n color: $primary-text-color;\n\n & > .content {\n color: $primary-text-color;\n\n strong { color: $primary-text-color }\n }\n }\n\n &.active:hover { background: lighten($ui-highlight-color, 4%) }\n}\n\n.composer--publisher {\n padding-top: 10px;\n text-align: right;\n white-space: nowrap;\n overflow: hidden;\n justify-content: flex-end;\n flex: 0 0 auto;\n\n & > .primary {\n display: inline-block;\n margin: 0;\n padding: 0 10px;\n text-align: center;\n }\n\n & > .side_arm {\n display: inline-block;\n margin: 0 2px;\n padding: 0;\n width: 36px;\n text-align: center;\n }\n\n &.over {\n & > .count { color: $warning-red }\n }\n}\n",".column__wrapper {\n display: flex;\n flex: 1 1 auto;\n position: relative;\n}\n\n.columns-area {\n display: flex;\n flex: 1 1 auto;\n flex-direction: row;\n justify-content: flex-start;\n overflow-x: auto;\n position: relative;\n\n &__panels {\n display: flex;\n justify-content: center;\n width: 100%;\n height: 100%;\n min-height: 100vh;\n\n &__pane {\n height: 100%;\n overflow: hidden;\n pointer-events: none;\n display: flex;\n justify-content: flex-end;\n min-width: 285px;\n\n &--start {\n justify-content: flex-start;\n }\n\n &__inner {\n position: fixed;\n width: 285px;\n pointer-events: auto;\n height: 100%;\n }\n }\n\n &__main {\n box-sizing: border-box;\n width: 100%;\n max-width: 600px;\n flex: 0 0 auto;\n display: flex;\n flex-direction: column;\n\n @media screen and (min-width: $no-gap-breakpoint) {\n padding: 0 10px;\n }\n }\n }\n}\n\n.tabs-bar__wrapper {\n background: darken($ui-base-color, 8%);\n position: sticky;\n top: 0;\n z-index: 2;\n padding-top: 0;\n\n @media screen and (min-width: $no-gap-breakpoint) {\n padding-top: 10px;\n }\n\n .tabs-bar {\n margin-bottom: 0;\n\n @media screen and (min-width: $no-gap-breakpoint) {\n margin-bottom: 10px;\n }\n }\n}\n\n.react-swipeable-view-container {\n &,\n .columns-area,\n .column {\n height: 100%;\n }\n}\n\n.react-swipeable-view-container > * {\n display: flex;\n align-items: center;\n justify-content: center;\n height: 100%;\n}\n\n.column {\n width: 330px;\n position: relative;\n box-sizing: border-box;\n display: flex;\n flex-direction: column;\n\n > .scrollable {\n background: $ui-base-color;\n }\n}\n\n.ui {\n flex: 0 0 auto;\n display: flex;\n flex-direction: column;\n width: 100%;\n height: 100%;\n}\n\n.column {\n overflow: hidden;\n}\n\n.column-back-button {\n box-sizing: border-box;\n width: 100%;\n background: lighten($ui-base-color, 4%);\n color: $highlight-text-color;\n cursor: pointer;\n flex: 0 0 auto;\n font-size: 16px;\n border: 0;\n text-align: unset;\n padding: 15px;\n margin: 0;\n z-index: 3;\n\n &:hover {\n text-decoration: underline;\n }\n}\n\n.column-header__back-button {\n background: lighten($ui-base-color, 4%);\n border: 0;\n font-family: inherit;\n color: $highlight-text-color;\n cursor: pointer;\n flex: 0 0 auto;\n font-size: 16px;\n padding: 0 5px 0 0;\n z-index: 3;\n\n &:hover {\n text-decoration: underline;\n }\n\n &:last-child {\n padding: 0 15px 0 0;\n }\n}\n\n.column-back-button__icon {\n display: inline-block;\n margin-right: 5px;\n}\n\n.column-back-button--slim {\n position: relative;\n}\n\n.column-back-button--slim-button {\n cursor: pointer;\n flex: 0 0 auto;\n font-size: 16px;\n padding: 15px;\n position: absolute;\n right: 0;\n top: -48px;\n}\n\n.column-link {\n background: lighten($ui-base-color, 8%);\n color: $primary-text-color;\n display: block;\n font-size: 16px;\n padding: 15px;\n text-decoration: none;\n\n &:hover,\n &:focus,\n &:active {\n background: lighten($ui-base-color, 11%);\n }\n\n &:focus {\n outline: 0;\n }\n\n &--transparent {\n background: transparent;\n color: $ui-secondary-color;\n\n &:hover,\n &:focus,\n &:active {\n background: transparent;\n color: $primary-text-color;\n }\n\n &.active {\n color: $ui-highlight-color;\n }\n }\n}\n\n.column-link__icon {\n display: inline-block;\n margin-right: 5px;\n}\n\n.column-subheading {\n background: $ui-base-color;\n color: $dark-text-color;\n padding: 8px 20px;\n font-size: 12px;\n font-weight: 500;\n text-transform: uppercase;\n cursor: default;\n}\n\n.column-header__wrapper {\n position: relative;\n flex: 0 0 auto;\n z-index: 1;\n\n &.active {\n box-shadow: 0 1px 0 rgba($highlight-text-color, 0.3);\n\n &::before {\n display: block;\n content: \"\";\n position: absolute;\n bottom: -13px;\n left: 0;\n right: 0;\n margin: 0 auto;\n width: 60%;\n pointer-events: none;\n height: 28px;\n z-index: 1;\n background: radial-gradient(ellipse, rgba($ui-highlight-color, 0.23) 0%, rgba($ui-highlight-color, 0) 60%);\n }\n }\n\n .announcements {\n z-index: 1;\n position: relative;\n }\n}\n\n.column-header {\n display: flex;\n font-size: 16px;\n background: lighten($ui-base-color, 4%);\n flex: 0 0 auto;\n cursor: pointer;\n position: relative;\n z-index: 2;\n outline: 0;\n overflow: hidden;\n\n & > button {\n margin: 0;\n border: none;\n padding: 15px;\n color: inherit;\n background: transparent;\n font: inherit;\n text-align: left;\n text-overflow: ellipsis;\n overflow: hidden;\n white-space: nowrap;\n flex: 1;\n }\n\n & > .column-header__back-button {\n color: $highlight-text-color;\n }\n\n &.active {\n .column-header__icon {\n color: $highlight-text-color;\n text-shadow: 0 0 10px rgba($ui-highlight-color, 0.4);\n }\n }\n\n &:focus,\n &:active {\n outline: 0;\n }\n}\n\n.column {\n width: 330px;\n position: relative;\n box-sizing: border-box;\n display: flex;\n flex-direction: column;\n overflow: hidden;\n\n .wide .columns-area:not(.columns-area--mobile) & {\n flex: auto;\n min-width: 330px;\n max-width: 400px;\n }\n\n > .scrollable {\n background: $ui-base-color;\n }\n}\n\n.column-header__buttons {\n height: 48px;\n display: flex;\n margin-left: 0;\n}\n\n.column-header__links {\n margin-bottom: 14px;\n}\n\n.column-header__links .text-btn {\n margin-right: 10px;\n}\n\n.column-header__button {\n background: lighten($ui-base-color, 4%);\n border: 0;\n color: $darker-text-color;\n cursor: pointer;\n font-size: 16px;\n padding: 0 15px;\n\n &:hover {\n color: lighten($darker-text-color, 7%);\n }\n\n &.active {\n color: $primary-text-color;\n background: lighten($ui-base-color, 8%);\n\n &:hover {\n color: $primary-text-color;\n background: lighten($ui-base-color, 8%);\n }\n }\n\n // glitch - added focus ring for keyboard navigation\n &:focus {\n text-shadow: 0 0 4px darken($ui-highlight-color, 5%);\n }\n}\n\n.column-header__notif-cleaning-buttons {\n display: flex;\n align-items: stretch;\n justify-content: space-around;\n\n button {\n @extend .column-header__button;\n background: transparent;\n text-align: center;\n padding: 10px 0;\n white-space: pre-wrap;\n }\n\n b {\n font-weight: bold;\n }\n}\n\n// The notifs drawer with no padding to have more space for the buttons\n.column-header__collapsible-inner.nopad-drawer {\n padding: 0;\n}\n\n.column-header__collapsible {\n max-height: 70vh;\n overflow: hidden;\n overflow-y: auto;\n color: $darker-text-color;\n transition: max-height 150ms ease-in-out, opacity 300ms linear;\n opacity: 1;\n z-index: 1;\n position: relative;\n\n &.collapsed {\n max-height: 0;\n opacity: 0.5;\n }\n\n &.animating {\n overflow-y: hidden;\n }\n\n hr {\n height: 0;\n background: transparent;\n border: 0;\n border-top: 1px solid lighten($ui-base-color, 12%);\n margin: 10px 0;\n }\n\n // notif cleaning drawer\n &.ncd {\n transition: none;\n &.collapsed {\n max-height: 0;\n opacity: 0.7;\n }\n }\n}\n\n.column-header__collapsible-inner {\n background: lighten($ui-base-color, 8%);\n padding: 15px;\n}\n\n.column-header__setting-btn {\n &:hover {\n color: $darker-text-color;\n text-decoration: underline;\n }\n}\n\n.column-header__setting-arrows {\n float: right;\n\n .column-header__setting-btn {\n padding: 0 10px;\n\n &:last-child {\n padding-right: 0;\n }\n }\n}\n\n.column-header__title {\n display: inline-block;\n text-overflow: ellipsis;\n overflow: hidden;\n white-space: nowrap;\n flex: 1;\n}\n\n.column-header__icon {\n display: inline-block;\n margin-right: 5px;\n}\n\n.empty-column-indicator,\n.error-column,\n.follow_requests-unlocked_explanation {\n color: $dark-text-color;\n background: $ui-base-color;\n text-align: center;\n padding: 20px;\n font-size: 15px;\n font-weight: 400;\n cursor: default;\n display: flex;\n flex: 1 1 auto;\n align-items: center;\n justify-content: center;\n @supports(display: grid) { // hack to fix Chrome <57\n contain: strict;\n }\n\n & > span {\n max-width: 400px;\n }\n\n a {\n color: $highlight-text-color;\n text-decoration: none;\n\n &:hover {\n text-decoration: underline;\n }\n }\n}\n\n.follow_requests-unlocked_explanation {\n background: darken($ui-base-color, 4%);\n contain: initial;\n}\n\n.error-column {\n flex-direction: column;\n}\n\n// more fixes for the navbar-under mode\n@mixin fix-margins-for-navbar-under {\n .tabs-bar {\n margin-top: 0 !important;\n margin-bottom: -6px !important;\n }\n}\n\n.single-column.navbar-under {\n @include fix-margins-for-navbar-under;\n}\n\n.auto-columns.navbar-under {\n @media screen and (max-width: $no-gap-breakpoint) {\n @include fix-margins-for-navbar-under;\n }\n}\n\n.auto-columns.navbar-under .react-swipeable-view-container .columns-area,\n.single-column.navbar-under .react-swipeable-view-container .columns-area {\n @media screen and (max-width: $no-gap-breakpoint) {\n height: 100% !important;\n }\n}\n\n.column-inline-form {\n padding: 7px 15px;\n padding-right: 5px;\n display: flex;\n justify-content: flex-start;\n align-items: center;\n background: lighten($ui-base-color, 4%);\n\n label {\n flex: 1 1 auto;\n\n input {\n width: 100%;\n margin-bottom: 6px;\n\n &:focus {\n outline: 0;\n }\n }\n }\n\n .icon-button {\n flex: 0 0 auto;\n margin: 0 5px;\n }\n}\n",".regeneration-indicator {\n text-align: center;\n font-size: 16px;\n font-weight: 500;\n color: $dark-text-color;\n background: $ui-base-color;\n cursor: default;\n display: flex;\n flex: 1 1 auto;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n padding: 20px;\n\n &__figure {\n &,\n img {\n display: block;\n width: auto;\n height: 160px;\n margin: 0;\n }\n }\n\n &--without-header {\n padding-top: 20px + 48px;\n }\n\n &__label {\n margin-top: 30px;\n\n strong {\n display: block;\n margin-bottom: 10px;\n color: $dark-text-color;\n }\n\n span {\n font-size: 15px;\n font-weight: 400;\n }\n }\n}\n",".directory {\n &__list {\n width: 100%;\n margin: 10px 0;\n transition: opacity 100ms ease-in;\n\n &.loading {\n opacity: 0.7;\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n margin: 0;\n }\n }\n\n &__card {\n box-sizing: border-box;\n margin-bottom: 10px;\n\n &__img {\n height: 125px;\n position: relative;\n background: darken($ui-base-color, 12%);\n overflow: hidden;\n\n img {\n display: block;\n width: 100%;\n height: 100%;\n margin: 0;\n object-fit: cover;\n }\n }\n\n &__bar {\n display: flex;\n align-items: center;\n background: lighten($ui-base-color, 4%);\n padding: 10px;\n\n &__name {\n flex: 1 1 auto;\n display: flex;\n align-items: center;\n text-decoration: none;\n overflow: hidden;\n }\n\n &__relationship {\n width: 23px;\n min-height: 1px;\n flex: 0 0 auto;\n }\n\n .avatar {\n flex: 0 0 auto;\n width: 48px;\n height: 48px;\n padding-top: 2px;\n\n img {\n width: 100%;\n height: 100%;\n display: block;\n margin: 0;\n border-radius: 4px;\n background: darken($ui-base-color, 8%);\n object-fit: cover;\n }\n }\n\n .display-name {\n margin-left: 15px;\n text-align: left;\n\n strong {\n font-size: 15px;\n color: $primary-text-color;\n font-weight: 500;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n span {\n display: block;\n font-size: 14px;\n color: $darker-text-color;\n font-weight: 400;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n }\n }\n\n &__extra {\n background: $ui-base-color;\n display: flex;\n align-items: center;\n justify-content: center;\n\n .accounts-table__count {\n width: 33.33%;\n flex: 0 0 auto;\n padding: 15px 0;\n }\n\n .account__header__content {\n box-sizing: border-box;\n padding: 15px 10px;\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n width: 100%;\n min-height: 18px + 30px;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n\n p {\n display: none;\n\n &:first-child {\n display: inline;\n }\n }\n\n br {\n display: none;\n }\n }\n }\n }\n}\n\n.filter-form {\n background: $ui-base-color;\n\n &__column {\n padding: 10px 15px;\n }\n\n .radio-button {\n display: block;\n }\n}\n\n.radio-button {\n font-size: 14px;\n position: relative;\n display: inline-block;\n padding: 6px 0;\n line-height: 18px;\n cursor: default;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n cursor: pointer;\n\n input[type=radio],\n input[type=checkbox] {\n display: none;\n }\n\n &__input {\n display: inline-block;\n position: relative;\n border: 1px solid $ui-primary-color;\n box-sizing: border-box;\n width: 18px;\n height: 18px;\n flex: 0 0 auto;\n margin-right: 10px;\n top: -1px;\n border-radius: 50%;\n vertical-align: middle;\n\n &.checked {\n border-color: lighten($ui-highlight-color, 8%);\n background: lighten($ui-highlight-color, 8%);\n }\n }\n}\n",".search {\n position: relative;\n}\n\n.search__input {\n @include search-input();\n\n display: block;\n padding: 15px;\n padding-right: 30px;\n line-height: 18px;\n font-size: 16px;\n\n &::placeholder {\n color: lighten($darker-text-color, 4%);\n }\n\n &::-moz-focus-inner {\n border: 0;\n }\n\n &::-moz-focus-inner,\n &:focus,\n &:active {\n outline: 0 !important;\n }\n\n &:focus {\n background: lighten($ui-base-color, 4%);\n }\n\n @media screen and (max-width: 600px) {\n font-size: 16px;\n }\n}\n\n.search__icon {\n &::-moz-focus-inner {\n border: 0;\n }\n\n &::-moz-focus-inner,\n &:focus {\n outline: 0 !important;\n }\n\n .fa {\n position: absolute;\n top: 16px;\n right: 10px;\n z-index: 2;\n display: inline-block;\n opacity: 0;\n transition: all 100ms linear;\n transition-property: color, transform, opacity;\n font-size: 18px;\n width: 18px;\n height: 18px;\n color: $secondary-text-color;\n cursor: default;\n pointer-events: none;\n\n &.active {\n pointer-events: auto;\n opacity: 0.3;\n }\n }\n\n .fa-search {\n transform: rotate(0deg);\n\n &.active {\n pointer-events: auto;\n opacity: 0.3;\n }\n }\n\n .fa-times-circle {\n top: 17px;\n transform: rotate(0deg);\n color: $action-button-color;\n cursor: pointer;\n\n &.active {\n transform: rotate(90deg);\n }\n\n &:hover {\n color: lighten($action-button-color, 7%);\n }\n }\n}\n\n.search-results__header {\n color: $dark-text-color;\n background: lighten($ui-base-color, 2%);\n border-bottom: 1px solid darken($ui-base-color, 4%);\n padding: 15px 10px;\n font-size: 14px;\n font-weight: 500;\n}\n\n.search-results__info {\n padding: 20px;\n color: $darker-text-color;\n text-align: center;\n}\n\n.trends {\n &__header {\n color: $dark-text-color;\n background: lighten($ui-base-color, 2%);\n border-bottom: 1px solid darken($ui-base-color, 4%);\n font-weight: 500;\n padding: 15px;\n font-size: 16px;\n cursor: default;\n\n .fa {\n display: inline-block;\n margin-right: 5px;\n }\n }\n\n &__item {\n display: flex;\n align-items: center;\n padding: 15px;\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n\n &:last-child {\n border-bottom: 0;\n }\n\n &__name {\n flex: 1 1 auto;\n color: $dark-text-color;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n\n strong {\n font-weight: 500;\n }\n\n a {\n color: $darker-text-color;\n text-decoration: none;\n font-size: 14px;\n font-weight: 500;\n display: block;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n\n &:hover,\n &:focus,\n &:active {\n span {\n text-decoration: underline;\n }\n }\n }\n }\n\n &__current {\n flex: 0 0 auto;\n font-size: 24px;\n line-height: 36px;\n font-weight: 500;\n text-align: right;\n padding-right: 15px;\n margin-left: 5px;\n color: $secondary-text-color;\n }\n\n &__sparkline {\n flex: 0 0 auto;\n width: 50px;\n\n path:first-child {\n fill: rgba($highlight-text-color, 0.25) !important;\n fill-opacity: 1 !important;\n }\n\n path:last-child {\n stroke: lighten($highlight-text-color, 6%) !important;\n }\n }\n }\n}\n",null,".emojione {\n font-size: inherit;\n vertical-align: middle;\n object-fit: contain;\n margin: -.2ex .15em .2ex;\n width: 16px;\n height: 16px;\n\n img {\n width: auto;\n }\n}\n\n.emoji-picker-dropdown__menu {\n background: $simple-background-color;\n position: absolute;\n box-shadow: 4px 4px 6px rgba($base-shadow-color, 0.4);\n border-radius: 4px;\n margin-top: 5px;\n z-index: 2;\n\n .emoji-mart-scroll {\n transition: opacity 200ms ease;\n }\n\n &.selecting .emoji-mart-scroll {\n opacity: 0.5;\n }\n}\n\n.emoji-picker-dropdown__modifiers {\n position: absolute;\n top: 60px;\n right: 11px;\n cursor: pointer;\n}\n\n.emoji-picker-dropdown__modifiers__menu {\n position: absolute;\n z-index: 4;\n top: -4px;\n left: -8px;\n background: $simple-background-color;\n border-radius: 4px;\n box-shadow: 1px 2px 6px rgba($base-shadow-color, 0.2);\n overflow: hidden;\n\n button {\n display: block;\n cursor: pointer;\n border: 0;\n padding: 4px 8px;\n background: transparent;\n\n &:hover,\n &:focus,\n &:active {\n background: rgba($ui-secondary-color, 0.4);\n }\n }\n\n .emoji-mart-emoji {\n height: 22px;\n }\n}\n\n.emoji-mart-emoji {\n span {\n background-repeat: no-repeat;\n }\n}\n\n.emoji-button {\n display: block;\n padding: 5px 5px 2px 2px;\n outline: 0;\n cursor: pointer;\n\n &:active,\n &:focus {\n outline: 0 !important;\n }\n\n img {\n filter: grayscale(100%);\n opacity: 0.8;\n display: block;\n margin: 0;\n width: 22px;\n height: 22px;\n }\n\n &:hover,\n &:active,\n &:focus {\n img {\n opacity: 1;\n filter: none;\n }\n }\n}\n","$doodleBg: #d9e1e8;\n.doodle-modal {\n @extend .boost-modal;\n width: unset;\n}\n\n.doodle-modal__container {\n background: $doodleBg;\n text-align: center;\n line-height: 0; // remove weird gap under canvas\n canvas {\n border: 5px solid $doodleBg;\n }\n}\n\n.doodle-modal__action-bar {\n @extend .boost-modal__action-bar;\n\n .filler {\n flex-grow: 1;\n margin: 0;\n padding: 0;\n }\n\n .doodle-toolbar {\n line-height: 1;\n\n display: flex;\n flex-direction: column;\n flex-grow: 0;\n justify-content: space-around;\n\n &.with-inputs {\n label {\n display: inline-block;\n width: 70px;\n text-align: right;\n margin-right: 2px;\n }\n\n input[type=\"number\"],input[type=\"text\"] {\n width: 40px;\n }\n span.val {\n display: inline-block;\n text-align: left;\n width: 50px;\n }\n }\n }\n\n .doodle-palette {\n padding-right: 0 !important;\n border: 1px solid black;\n line-height: .2rem;\n flex-grow: 0;\n background: white;\n\n button {\n appearance: none;\n width: 1rem;\n height: 1rem;\n margin: 0; padding: 0;\n text-align: center;\n color: black;\n text-shadow: 0 0 1px white;\n cursor: pointer;\n box-shadow: inset 0 0 1px rgba(white, .5);\n border: 1px solid black;\n outline-offset:-1px;\n\n &.foreground {\n outline: 1px dashed white;\n }\n\n &.background {\n outline: 1px dashed red;\n }\n\n &.foreground.background {\n outline: 1px dashed red;\n border-color: white;\n }\n }\n }\n}\n",".drawer {\n width: 300px;\n box-sizing: border-box;\n display: flex;\n flex-direction: column;\n overflow-y: hidden;\n padding: 10px 5px;\n flex: none;\n\n &:first-child {\n padding-left: 10px;\n }\n\n &:last-child {\n padding-right: 10px;\n }\n\n @include single-column('screen and (max-width: 630px)') { flex: auto }\n\n @include limited-single-column('screen and (max-width: 630px)') {\n &, &:first-child, &:last-child { padding: 0 }\n }\n\n .wide & {\n min-width: 300px;\n max-width: 400px;\n flex: 1 1 200px;\n }\n\n @include single-column('screen and (max-width: 630px)') {\n :root & { // Overrides `.wide` for single-column view\n flex: auto;\n width: 100%;\n min-width: 0;\n max-width: none;\n padding: 0;\n }\n }\n\n .react-swipeable-view-container & { height: 100% }\n}\n\n.drawer--header {\n display: flex;\n flex-direction: row;\n margin-bottom: 10px;\n flex: none;\n background: lighten($ui-base-color, 8%);\n font-size: 16px;\n\n & > * {\n display: block;\n box-sizing: border-box;\n border-bottom: 2px solid transparent;\n padding: 15px 5px 13px;\n height: 48px;\n flex: 1 1 auto;\n color: $darker-text-color;\n text-align: center;\n text-decoration: none;\n cursor: pointer;\n }\n\n a {\n transition: background 100ms ease-in;\n\n &:focus,\n &:hover {\n outline: none;\n background: lighten($ui-base-color, 3%);\n transition: background 200ms ease-out;\n }\n }\n}\n\n.search {\n position: relative;\n margin-bottom: 10px;\n flex: none;\n\n @include limited-single-column('screen and (max-width: #{$no-gap-breakpoint})') { margin-bottom: 0 }\n @include single-column('screen and (max-width: 630px)') { font-size: 16px }\n}\n\n.search-popout {\n @include search-popout();\n}\n\n.drawer--account {\n padding: 10px;\n color: $darker-text-color;\n display: flex;\n align-items: center;\n\n a {\n color: inherit;\n text-decoration: none;\n }\n\n .acct {\n display: block;\n color: $secondary-text-color;\n font-weight: 500;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n}\n\n.navigation-bar__profile {\n flex: 1 1 auto;\n margin-left: 8px;\n overflow: hidden;\n}\n\n.drawer--results {\n background: $ui-base-color;\n overflow-x: hidden;\n overflow-y: auto;\n\n & > header {\n color: $dark-text-color;\n background: lighten($ui-base-color, 2%);\n padding: 15px;\n font-weight: 500;\n font-size: 16px;\n cursor: default;\n\n .fa {\n display: inline-block;\n margin-right: 5px;\n }\n }\n\n & > section {\n margin-bottom: 5px;\n\n h5 {\n background: darken($ui-base-color, 4%);\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n cursor: default;\n display: flex;\n padding: 15px;\n font-weight: 500;\n font-size: 16px;\n color: $dark-text-color;\n\n .fa {\n display: inline-block;\n margin-right: 5px;\n }\n }\n\n .account:last-child,\n & > div:last-child .status {\n border-bottom: 0;\n }\n\n & > .hashtag {\n display: block;\n padding: 10px;\n color: $secondary-text-color;\n text-decoration: none;\n\n &:hover,\n &:active,\n &:focus {\n color: lighten($secondary-text-color, 4%);\n text-decoration: underline;\n }\n }\n }\n}\n\n.drawer__pager {\n box-sizing: border-box;\n padding: 0;\n flex-grow: 1;\n position: relative;\n overflow: hidden;\n display: flex;\n}\n\n.drawer__inner {\n position: absolute;\n top: 0;\n left: 0;\n background: lighten($ui-base-color, 13%);\n box-sizing: border-box;\n padding: 0;\n display: flex;\n flex-direction: column;\n overflow: hidden;\n overflow-y: auto;\n width: 100%;\n height: 100%;\n\n &.darker {\n background: $ui-base-color;\n }\n}\n\n.drawer__inner__mastodon {\n background: lighten($ui-base-color, 13%) url('data:image/svg+xml;utf8,') no-repeat bottom / 100% auto;\n flex: 1;\n min-height: 47px;\n display: none;\n\n > img {\n display: block;\n object-fit: contain;\n object-position: bottom left;\n width: 85%;\n height: 100%;\n pointer-events: none;\n user-drag: none;\n user-select: none;\n }\n\n > .mastodon {\n display: block;\n width: 100%;\n height: 100%;\n border: none;\n cursor: inherit;\n }\n\n @media screen and (min-height: 640px) {\n display: block;\n }\n}\n\n.pseudo-drawer {\n background: lighten($ui-base-color, 13%);\n font-size: 13px;\n text-align: left;\n}\n\n.drawer__backdrop {\n cursor: pointer;\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n background: rgba($base-overlay-background, 0.5);\n}\n",".video-error-cover {\n align-items: center;\n background: $base-overlay-background;\n color: $primary-text-color;\n cursor: pointer;\n display: flex;\n flex-direction: column;\n height: 100%;\n justify-content: center;\n margin-top: 8px;\n position: relative;\n text-align: center;\n z-index: 100;\n}\n\n.media-spoiler {\n background: $base-overlay-background;\n color: $darker-text-color;\n border: 0;\n width: 100%;\n height: 100%;\n\n &:hover,\n &:active,\n &:focus {\n color: lighten($darker-text-color, 8%);\n }\n\n .status__content > & {\n margin-top: 15px; // Add margin when used bare for NSFW video player\n }\n @include fullwidth-gallery;\n}\n\n.media-spoiler__warning {\n display: block;\n font-size: 14px;\n}\n\n.media-spoiler__trigger {\n display: block;\n font-size: 11px;\n font-weight: 500;\n}\n\n.media-gallery__gifv__label {\n display: block;\n position: absolute;\n color: $primary-text-color;\n background: rgba($base-overlay-background, 0.5);\n bottom: 6px;\n left: 6px;\n padding: 2px 6px;\n border-radius: 2px;\n font-size: 11px;\n font-weight: 600;\n z-index: 1;\n pointer-events: none;\n opacity: 0.9;\n transition: opacity 0.1s ease;\n line-height: 18px;\n}\n\n.media-gallery__gifv {\n &:hover {\n .media-gallery__gifv__label {\n opacity: 1;\n }\n }\n}\n\n.media-gallery__audio {\n height: 100%;\n display: flex;\n flex-direction: column;\n\n span {\n text-align: center;\n color: $darker-text-color;\n display: flex;\n height: 100%;\n align-items: center;\n\n p {\n width: 100%;\n }\n }\n\n audio {\n width: 100%;\n }\n}\n\n.media-gallery {\n box-sizing: border-box;\n margin-top: 8px;\n overflow: hidden;\n border-radius: 4px;\n position: relative;\n width: 100%;\n height: 110px;\n\n @include fullwidth-gallery;\n}\n\n.media-gallery__item {\n border: none;\n box-sizing: border-box;\n display: block;\n float: left;\n position: relative;\n border-radius: 4px;\n overflow: hidden;\n\n .full-width & {\n border-radius: 0;\n }\n\n &.standalone {\n .media-gallery__item-gifv-thumbnail {\n transform: none;\n top: 0;\n }\n }\n\n &.letterbox {\n background: $base-shadow-color;\n }\n}\n\n.media-gallery__item-thumbnail {\n cursor: zoom-in;\n display: block;\n text-decoration: none;\n color: $secondary-text-color;\n position: relative;\n z-index: 1;\n\n &,\n img {\n height: 100%;\n width: 100%;\n object-fit: contain;\n\n &:not(.letterbox) {\n height: 100%;\n object-fit: cover;\n }\n }\n}\n\n.media-gallery__preview {\n width: 100%;\n height: 100%;\n object-fit: cover;\n position: absolute;\n top: 0;\n left: 0;\n z-index: 0;\n background: $base-overlay-background;\n\n &--hidden {\n display: none;\n }\n}\n\n.media-gallery__gifv {\n height: 100%;\n overflow: hidden;\n position: relative;\n width: 100%;\n display: flex;\n justify-content: center;\n}\n\n.media-gallery__item-gifv-thumbnail {\n cursor: zoom-in;\n height: 100%;\n width: 100%;\n position: relative;\n z-index: 1;\n object-fit: contain;\n user-select: none;\n\n &:not(.letterbox) {\n height: 100%;\n object-fit: cover;\n }\n}\n\n.media-gallery__item-thumbnail-label {\n clip: rect(1px 1px 1px 1px); /* IE6, IE7 */\n clip: rect(1px, 1px, 1px, 1px);\n overflow: hidden;\n position: absolute;\n}\n\n.video-modal__container {\n max-width: 100vw;\n max-height: 100vh;\n}\n\n.audio-modal__container {\n width: 50vw;\n}\n\n.media-modal {\n width: 100%;\n height: 100%;\n position: relative;\n\n .extended-video-player {\n width: 100%;\n height: 100%;\n display: flex;\n align-items: center;\n justify-content: center;\n\n video {\n max-width: $media-modal-media-max-width;\n max-height: $media-modal-media-max-height;\n }\n }\n}\n\n.media-modal__closer {\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n}\n\n.media-modal__navigation {\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n pointer-events: none;\n transition: opacity 0.3s linear;\n will-change: opacity;\n\n * {\n pointer-events: auto;\n }\n\n &.media-modal__navigation--hidden {\n opacity: 0;\n\n * {\n pointer-events: none;\n }\n }\n}\n\n.media-modal__nav {\n background: rgba($base-overlay-background, 0.5);\n box-sizing: border-box;\n border: 0;\n color: $primary-text-color;\n cursor: pointer;\n display: flex;\n align-items: center;\n font-size: 24px;\n height: 20vmax;\n margin: auto 0;\n padding: 30px 15px;\n position: absolute;\n top: 0;\n bottom: 0;\n}\n\n.media-modal__nav--left {\n left: 0;\n}\n\n.media-modal__nav--right {\n right: 0;\n}\n\n.media-modal__pagination {\n width: 100%;\n text-align: center;\n position: absolute;\n left: 0;\n bottom: 20px;\n pointer-events: none;\n}\n\n.media-modal__meta {\n text-align: center;\n position: absolute;\n left: 0;\n bottom: 20px;\n width: 100%;\n pointer-events: none;\n\n &--shifted {\n bottom: 62px;\n }\n\n a {\n pointer-events: auto;\n text-decoration: none;\n font-weight: 500;\n color: $ui-secondary-color;\n\n &:hover,\n &:focus,\n &:active {\n text-decoration: underline;\n }\n }\n}\n\n.media-modal__page-dot {\n display: inline-block;\n}\n\n.media-modal__button {\n background-color: $white;\n height: 12px;\n width: 12px;\n border-radius: 6px;\n margin: 10px;\n padding: 0;\n border: 0;\n font-size: 0;\n}\n\n.media-modal__button--active {\n background-color: $ui-highlight-color;\n}\n\n.media-modal__close {\n position: absolute;\n right: 8px;\n top: 8px;\n z-index: 100;\n}\n\n.detailed,\n.fullscreen {\n .video-player__volume__current,\n .video-player__volume::before {\n bottom: 27px;\n }\n\n .video-player__volume__handle {\n bottom: 23px;\n }\n\n}\n\n.audio-player {\n box-sizing: border-box;\n position: relative;\n background: darken($ui-base-color, 8%);\n border-radius: 4px;\n padding-bottom: 44px;\n direction: ltr;\n\n &.editable {\n border-radius: 0;\n height: 100%;\n }\n\n &__waveform {\n padding: 15px 0;\n position: relative;\n overflow: hidden;\n\n &::before {\n content: \"\";\n display: block;\n position: absolute;\n border-top: 1px solid lighten($ui-base-color, 4%);\n width: 100%;\n height: 0;\n left: 0;\n top: calc(50% + 1px);\n }\n }\n\n &__progress-placeholder {\n background-color: rgba(lighten($ui-highlight-color, 8%), 0.5);\n }\n\n &__wave-placeholder {\n background-color: lighten($ui-base-color, 16%);\n }\n\n .video-player__controls {\n padding: 0 15px;\n padding-top: 10px;\n background: darken($ui-base-color, 8%);\n border-top: 1px solid lighten($ui-base-color, 4%);\n border-radius: 0 0 4px 4px;\n }\n}\n\n.video-player {\n overflow: hidden;\n position: relative;\n background: $base-shadow-color;\n max-width: 100%;\n border-radius: 4px;\n box-sizing: border-box;\n direction: ltr;\n\n &.editable {\n border-radius: 0;\n height: 100% !important;\n }\n\n &:focus {\n outline: 0;\n }\n\n .detailed-status & {\n width: 100%;\n height: 100%;\n }\n\n @include fullwidth-gallery;\n\n video {\n max-width: 100vw;\n max-height: 80vh;\n z-index: 1;\n position: relative;\n }\n\n &.fullscreen {\n width: 100% !important;\n height: 100% !important;\n margin: 0;\n\n video {\n max-width: 100% !important;\n max-height: 100% !important;\n width: 100% !important;\n height: 100% !important;\n outline: 0;\n }\n }\n\n &.inline {\n video {\n object-fit: contain;\n position: relative;\n top: 50%;\n transform: translateY(-50%);\n }\n }\n\n &__controls {\n position: absolute;\n z-index: 2;\n bottom: 0;\n left: 0;\n right: 0;\n box-sizing: border-box;\n background: linear-gradient(0deg, rgba($base-shadow-color, 0.85) 0, rgba($base-shadow-color, 0.45) 60%, transparent);\n padding: 0 15px;\n opacity: 0;\n transition: opacity .1s ease;\n\n &.active {\n opacity: 1;\n }\n }\n\n &.inactive {\n video,\n .video-player__controls {\n visibility: hidden;\n }\n }\n\n &__spoiler {\n display: none;\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n z-index: 4;\n border: 0;\n background: $base-shadow-color;\n color: $darker-text-color;\n transition: none;\n pointer-events: none;\n\n &.active {\n display: block;\n pointer-events: auto;\n\n &:hover,\n &:active,\n &:focus {\n color: lighten($darker-text-color, 7%);\n }\n }\n\n &__title {\n display: block;\n font-size: 14px;\n }\n\n &__subtitle {\n display: block;\n font-size: 11px;\n font-weight: 500;\n }\n }\n\n &__buttons-bar {\n display: flex;\n justify-content: space-between;\n padding-bottom: 10px;\n\n .video-player__download__icon {\n color: inherit;\n\n .fa,\n &:active .fa,\n &:hover .fa,\n &:focus .fa {\n color: inherit;\n }\n }\n }\n\n &__buttons {\n font-size: 16px;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n\n &.left {\n button {\n padding-left: 0;\n }\n }\n\n &.right {\n button {\n padding-right: 0;\n }\n }\n\n button {\n background: transparent;\n padding: 2px 10px;\n font-size: 16px;\n border: 0;\n color: rgba($white, 0.75);\n\n &:active,\n &:hover,\n &:focus {\n color: $white;\n }\n }\n }\n\n &__time-sep,\n &__time-total,\n &__time-current {\n font-size: 14px;\n font-weight: 500;\n }\n\n &__time-current {\n color: $white;\n margin-left: 60px;\n }\n\n &__time-sep {\n display: inline-block;\n margin: 0 6px;\n }\n\n &__time-sep,\n &__time-total {\n color: $white;\n }\n\n &__volume {\n cursor: pointer;\n height: 24px;\n display: inline;\n\n &::before {\n content: \"\";\n width: 50px;\n background: rgba($white, 0.35);\n border-radius: 4px;\n display: block;\n position: absolute;\n height: 4px;\n left: 70px;\n bottom: 20px;\n }\n\n &__current {\n display: block;\n position: absolute;\n height: 4px;\n border-radius: 4px;\n left: 70px;\n bottom: 20px;\n background: lighten($ui-highlight-color, 8%);\n }\n\n &__handle {\n position: absolute;\n z-index: 3;\n border-radius: 50%;\n width: 12px;\n height: 12px;\n bottom: 16px;\n left: 70px;\n transition: opacity .1s ease;\n background: lighten($ui-highlight-color, 8%);\n box-shadow: 1px 2px 6px rgba($base-shadow-color, 0.2);\n pointer-events: none;\n }\n }\n\n &__link {\n padding: 2px 10px;\n\n a {\n text-decoration: none;\n font-size: 14px;\n font-weight: 500;\n color: $white;\n\n &:hover,\n &:active,\n &:focus {\n text-decoration: underline;\n }\n }\n }\n\n &__seek {\n cursor: pointer;\n height: 24px;\n position: relative;\n\n &::before {\n content: \"\";\n width: 100%;\n background: rgba($white, 0.35);\n border-radius: 4px;\n display: block;\n position: absolute;\n height: 4px;\n top: 10px;\n }\n\n &__progress,\n &__buffer {\n display: block;\n position: absolute;\n height: 4px;\n border-radius: 4px;\n top: 10px;\n background: lighten($ui-highlight-color, 8%);\n }\n\n &__buffer {\n background: rgba($white, 0.2);\n }\n\n &__handle {\n position: absolute;\n z-index: 3;\n opacity: 0;\n border-radius: 50%;\n width: 12px;\n height: 12px;\n top: 6px;\n margin-left: -6px;\n transition: opacity .1s ease;\n background: lighten($ui-highlight-color, 8%);\n box-shadow: 1px 2px 6px rgba($base-shadow-color, 0.2);\n pointer-events: none;\n\n &.active {\n opacity: 1;\n }\n }\n\n &:hover {\n .video-player__seek__handle {\n opacity: 1;\n }\n }\n }\n\n &.detailed,\n &.fullscreen {\n .video-player__buttons {\n button {\n padding-top: 10px;\n padding-bottom: 10px;\n }\n }\n }\n}\n",".sensitive-info {\n display: flex;\n flex-direction: row;\n align-items: center;\n position: absolute;\n top: 4px;\n left: 4px;\n z-index: 100;\n}\n\n.sensitive-marker {\n margin: 0 3px;\n border-radius: 2px;\n padding: 2px 6px;\n color: rgba($primary-text-color, 0.8);\n background: rgba($base-overlay-background, 0.5);\n font-size: 12px;\n line-height: 18px;\n text-transform: uppercase;\n opacity: .9;\n transition: opacity .1s ease;\n\n .media-gallery:hover & { opacity: 1 }\n}\n",".list-editor {\n background: $ui-base-color;\n flex-direction: column;\n border-radius: 8px;\n box-shadow: 2px 4px 15px rgba($base-shadow-color, 0.4);\n width: 380px;\n overflow: hidden;\n\n @media screen and (max-width: 420px) {\n width: 90%;\n }\n\n h4 {\n padding: 15px 0;\n background: lighten($ui-base-color, 13%);\n font-weight: 500;\n font-size: 16px;\n text-align: center;\n border-radius: 8px 8px 0 0;\n }\n\n .drawer__pager {\n height: 50vh;\n }\n\n .drawer__inner {\n border-radius: 0 0 8px 8px;\n\n &.backdrop {\n width: calc(100% - 60px);\n box-shadow: 2px 4px 15px rgba($base-shadow-color, 0.4);\n border-radius: 0 0 0 8px;\n }\n }\n\n &__accounts {\n overflow-y: auto;\n }\n\n .account__display-name {\n &:hover strong {\n text-decoration: none;\n }\n }\n\n .account__avatar {\n cursor: default;\n }\n\n .search {\n margin-bottom: 0;\n }\n}\n\n.list-adder {\n background: $ui-base-color;\n flex-direction: column;\n border-radius: 8px;\n box-shadow: 2px 4px 15px rgba($base-shadow-color, 0.4);\n width: 380px;\n overflow: hidden;\n\n @media screen and (max-width: 420px) {\n width: 90%;\n }\n\n &__account {\n background: lighten($ui-base-color, 13%);\n }\n\n &__lists {\n background: lighten($ui-base-color, 13%);\n height: 50vh;\n border-radius: 0 0 8px 8px;\n overflow-y: auto;\n }\n\n .list {\n padding: 10px;\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n }\n\n .list__wrapper {\n display: flex;\n }\n\n .list__display-name {\n flex: 1 1 auto;\n overflow: hidden;\n text-decoration: none;\n font-size: 16px;\n padding: 10px;\n }\n}\n",".emoji-mart {\n &,\n * {\n box-sizing: border-box;\n line-height: 1.15;\n }\n\n font-size: 13px;\n display: inline-block;\n color: $inverted-text-color;\n\n .emoji-mart-emoji {\n padding: 6px;\n }\n}\n\n.emoji-mart-bar {\n border: 0 solid darken($ui-secondary-color, 8%);\n\n &:first-child {\n border-bottom-width: 1px;\n border-top-left-radius: 5px;\n border-top-right-radius: 5px;\n background: $ui-secondary-color;\n }\n\n &:last-child {\n border-top-width: 1px;\n border-bottom-left-radius: 5px;\n border-bottom-right-radius: 5px;\n display: none;\n }\n}\n\n.emoji-mart-anchors {\n display: flex;\n justify-content: space-between;\n padding: 0 6px;\n color: $lighter-text-color;\n line-height: 0;\n}\n\n.emoji-mart-anchor {\n position: relative;\n flex: 1;\n text-align: center;\n padding: 12px 4px;\n overflow: hidden;\n transition: color .1s ease-out;\n cursor: pointer;\n\n &:hover {\n color: darken($lighter-text-color, 4%);\n }\n}\n\n.emoji-mart-anchor-selected {\n color: $highlight-text-color;\n\n &:hover {\n color: darken($highlight-text-color, 4%);\n }\n\n .emoji-mart-anchor-bar {\n bottom: 0;\n }\n}\n\n.emoji-mart-anchor-bar {\n position: absolute;\n bottom: -3px;\n left: 0;\n width: 100%;\n height: 3px;\n background-color: darken($ui-highlight-color, 3%);\n}\n\n.emoji-mart-anchors {\n i {\n display: inline-block;\n width: 100%;\n max-width: 22px;\n }\n\n svg {\n fill: currentColor;\n max-height: 18px;\n }\n}\n\n.emoji-mart-scroll {\n overflow-y: scroll;\n height: 270px;\n max-height: 35vh;\n padding: 0 6px 6px;\n background: $simple-background-color;\n will-change: transform;\n\n &::-webkit-scrollbar-track:hover,\n &::-webkit-scrollbar-track:active {\n background-color: rgba($base-overlay-background, 0.3);\n }\n}\n\n.emoji-mart-search {\n padding: 10px;\n padding-right: 45px;\n background: $simple-background-color;\n\n input {\n font-size: 14px;\n font-weight: 400;\n padding: 7px 9px;\n font-family: inherit;\n display: block;\n width: 100%;\n background: rgba($ui-secondary-color, 0.3);\n color: $inverted-text-color;\n border: 1px solid $ui-secondary-color;\n border-radius: 4px;\n\n &::-moz-focus-inner {\n border: 0;\n }\n\n &::-moz-focus-inner,\n &:focus,\n &:active {\n outline: 0 !important;\n }\n }\n}\n\n.emoji-mart-category .emoji-mart-emoji {\n cursor: pointer;\n\n span {\n z-index: 1;\n position: relative;\n text-align: center;\n }\n\n &:hover::before {\n z-index: 0;\n content: \"\";\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n background-color: rgba($ui-secondary-color, 0.7);\n border-radius: 100%;\n }\n}\n\n.emoji-mart-category-label {\n z-index: 2;\n position: relative;\n position: -webkit-sticky;\n position: sticky;\n top: 0;\n\n span {\n display: block;\n width: 100%;\n font-weight: 500;\n padding: 5px 6px;\n background: $simple-background-color;\n }\n}\n\n.emoji-mart-emoji {\n position: relative;\n display: inline-block;\n font-size: 0;\n\n span {\n width: 22px;\n height: 22px;\n }\n}\n\n.emoji-mart-no-results {\n font-size: 14px;\n text-align: center;\n padding-top: 70px;\n color: $light-text-color;\n\n .emoji-mart-category-label {\n display: none;\n }\n\n .emoji-mart-no-results-label {\n margin-top: .2em;\n }\n\n .emoji-mart-emoji:hover::before {\n content: none;\n }\n}\n\n.emoji-mart-preview {\n display: none;\n}\n",".glitch.local-settings {\n position: relative;\n display: flex;\n flex-direction: row;\n background: $ui-secondary-color;\n color: $inverted-text-color;\n border-radius: 8px;\n height: 80vh;\n width: 80vw;\n max-width: 740px;\n max-height: 450px;\n overflow: hidden;\n\n label, legend {\n display: block;\n font-size: 14px;\n }\n\n .boolean label, .radio_buttons label {\n position: relative;\n padding-left: 28px;\n padding-top: 3px;\n\n input {\n position: absolute;\n left: 0;\n top: 0;\n }\n }\n\n span.hint {\n display: block;\n color: $lighter-text-color;\n }\n\n h1 {\n font-size: 18px;\n font-weight: 500;\n line-height: 24px;\n margin-bottom: 20px;\n }\n\n h2 {\n font-size: 15px;\n font-weight: 500;\n line-height: 20px;\n margin-top: 20px;\n margin-bottom: 10px;\n }\n}\n\n.glitch.local-settings__navigation__item {\n display: block;\n padding: 15px 20px;\n color: inherit;\n background: lighten($ui-secondary-color, 8%);\n border-bottom: 1px $ui-secondary-color solid;\n cursor: pointer;\n text-decoration: none;\n outline: none;\n transition: background .3s;\n\n .text-icon-button {\n color: inherit;\n transition: unset;\n }\n\n &:hover {\n background: $ui-secondary-color;\n }\n\n &.active {\n background: $ui-highlight-color;\n color: $primary-text-color;\n }\n\n &.close, &.close:hover {\n background: $error-value-color;\n color: $primary-text-color;\n }\n}\n\n.glitch.local-settings__navigation {\n background: lighten($ui-secondary-color, 8%);\n width: 212px;\n font-size: 15px;\n line-height: 20px;\n overflow-y: auto;\n}\n\n.glitch.local-settings__page {\n display: block;\n flex: auto;\n padding: 15px 20px 15px 20px;\n width: 360px;\n overflow-y: auto;\n}\n\n.glitch.local-settings__page__item {\n margin-bottom: 2px;\n}\n\n.glitch.local-settings__page__item.string,\n.glitch.local-settings__page__item.radio_buttons {\n margin-top: 10px;\n margin-bottom: 10px;\n}\n\n@media screen and (max-width: 630px) {\n .glitch.local-settings__navigation {\n width: 40px;\n flex-shrink: 0;\n }\n\n .glitch.local-settings__navigation__item {\n padding: 10px;\n\n span:last-of-type {\n display: none;\n }\n }\n}\n",".error-boundary {\n color: $primary-text-color;\n font-size: 15px;\n line-height: 20px;\n\n h1 {\n font-size: 26px;\n line-height: 36px;\n font-weight: 400;\n margin-bottom: 8px;\n }\n\n a {\n color: $primary-text-color;\n text-decoration: underline;\n }\n\n ul {\n list-style: disc;\n margin-left: 0;\n padding-left: 1em;\n }\n\n textarea.web_app_crash-stacktrace {\n width: 100%;\n resize: none;\n white-space: pre;\n font-family: $font-monospace, monospace;\n }\n}\n",".compose-panel {\n width: 285px;\n margin-top: 10px;\n display: flex;\n flex-direction: column;\n height: calc(100% - 10px);\n overflow-y: hidden;\n\n .search__input {\n line-height: 18px;\n font-size: 16px;\n padding: 15px;\n padding-right: 30px;\n }\n\n .search__icon .fa {\n top: 15px;\n }\n\n .drawer--account {\n flex: 0 1 48px;\n }\n\n .flex-spacer {\n background: transparent;\n }\n\n .composer {\n flex: 1;\n overflow-y: hidden;\n display: flex;\n flex-direction: column;\n min-height: 310px;\n }\n\n .compose-form__autosuggest-wrapper {\n overflow-y: auto;\n background-color: $white;\n border-radius: 4px 4px 0 0;\n flex: 0 1 auto;\n }\n\n .autosuggest-textarea__textarea {\n overflow-y: hidden;\n }\n\n .compose-form__upload-thumbnail {\n height: 80px;\n }\n}\n\n.navigation-panel {\n margin-top: 10px;\n margin-bottom: 10px;\n height: calc(100% - 20px);\n overflow-y: auto;\n display: flex;\n flex-direction: column;\n\n & > a {\n flex: 0 0 auto;\n }\n\n hr {\n flex: 0 0 auto;\n border: 0;\n background: transparent;\n border-top: 1px solid lighten($ui-base-color, 4%);\n margin: 10px 0;\n }\n\n .flex-spacer {\n background: transparent;\n }\n}\n\n@media screen and (min-width: 600px) {\n .tabs-bar__link {\n span {\n display: inline;\n }\n }\n}\n\n.columns-area--mobile {\n flex-direction: column;\n width: 100%;\n margin: 0 auto;\n\n .column,\n .drawer {\n width: 100%;\n height: 100%;\n padding: 0;\n }\n\n .directory__list {\n display: grid;\n grid-gap: 10px;\n grid-template-columns: minmax(0, 50%) minmax(0, 50%);\n\n @media screen and (max-width: $no-gap-breakpoint) {\n display: block;\n }\n }\n\n .directory__card {\n margin-bottom: 0;\n }\n\n .filter-form {\n display: flex;\n }\n\n .autosuggest-textarea__textarea {\n font-size: 16px;\n }\n\n .search__input {\n line-height: 18px;\n font-size: 16px;\n padding: 15px;\n padding-right: 30px;\n }\n\n .search__icon .fa {\n top: 15px;\n }\n\n .scrollable {\n overflow: visible;\n\n @supports(display: grid) {\n contain: content;\n }\n }\n\n @media screen and (min-width: $no-gap-breakpoint) {\n padding: 10px 0;\n padding-top: 0;\n }\n\n @media screen and (min-width: 630px) {\n .detailed-status {\n padding: 15px;\n\n .media-gallery,\n .video-player,\n .audio-player {\n margin-top: 15px;\n }\n }\n\n .account__header__bar {\n padding: 5px 10px;\n }\n\n .navigation-bar,\n .compose-form {\n padding: 15px;\n }\n\n .compose-form .compose-form__publish .compose-form__publish-button-wrapper {\n padding-top: 15px;\n }\n\n .status {\n padding: 15px;\n min-height: 48px + 2px;\n\n .media-gallery,\n &__action-bar,\n .video-player,\n .audio-player {\n margin-top: 10px;\n }\n }\n\n .account {\n padding: 15px 10px;\n\n &__header__bio {\n margin: 0 -10px;\n }\n }\n\n .notification {\n &__message {\n padding-top: 15px;\n }\n\n .status {\n padding-top: 8px;\n }\n\n .account {\n padding-top: 8px;\n }\n }\n }\n}\n\n.floating-action-button {\n position: fixed;\n display: flex;\n justify-content: center;\n align-items: center;\n width: 3.9375rem;\n height: 3.9375rem;\n bottom: 1.3125rem;\n right: 1.3125rem;\n background: darken($ui-highlight-color, 3%);\n color: $white;\n border-radius: 50%;\n font-size: 21px;\n line-height: 21px;\n text-decoration: none;\n box-shadow: 2px 3px 9px rgba($base-shadow-color, 0.4);\n\n &:hover,\n &:focus,\n &:active {\n background: lighten($ui-highlight-color, 7%);\n }\n}\n\n@media screen and (min-width: $no-gap-breakpoint) {\n .tabs-bar {\n width: 100%;\n }\n\n .react-swipeable-view-container .columns-area--mobile {\n height: calc(100% - 10px) !important;\n }\n\n .getting-started__wrapper,\n .search {\n margin-bottom: 10px;\n }\n}\n\n@media screen and (max-width: 600px + (285px * 1) + (10px * 1)) {\n .columns-area__panels__pane--compositional {\n display: none;\n }\n}\n\n@media screen and (min-width: 600px + (285px * 1) + (10px * 1)) {\n .floating-action-button,\n .tabs-bar__link.optional {\n display: none;\n }\n\n .search-page .search {\n display: none;\n }\n}\n\n@media screen and (max-width: 600px + (285px * 2) + (10px * 2)) {\n .columns-area__panels__pane--navigational {\n display: none;\n }\n}\n\n@media screen and (min-width: 600px + (285px * 2) + (10px * 2)) {\n .tabs-bar {\n display: none;\n }\n}\n",".announcements__item__content {\n word-wrap: break-word;\n overflow-y: auto;\n\n .emojione {\n width: 20px;\n height: 20px;\n margin: -3px 0 0;\n }\n\n p {\n margin-bottom: 10px;\n white-space: pre-wrap;\n\n &:last-child {\n margin-bottom: 0;\n }\n }\n\n a {\n color: $secondary-text-color;\n text-decoration: none;\n\n &:hover {\n text-decoration: underline;\n }\n\n &.mention {\n &:hover {\n text-decoration: none;\n\n span {\n text-decoration: underline;\n }\n }\n }\n\n &.unhandled-link {\n color: lighten($ui-highlight-color, 8%);\n }\n }\n}\n\n.announcements {\n background: lighten($ui-base-color, 8%);\n font-size: 13px;\n display: flex;\n align-items: flex-end;\n\n &__mastodon {\n width: 124px;\n flex: 0 0 auto;\n\n @media screen and (max-width: 124px + 300px) {\n display: none;\n }\n }\n\n &__container {\n width: calc(100% - 124px);\n flex: 0 0 auto;\n position: relative;\n\n @media screen and (max-width: 124px + 300px) {\n width: 100%;\n }\n }\n\n &__item {\n box-sizing: border-box;\n width: 100%;\n padding: 15px;\n position: relative;\n font-size: 15px;\n line-height: 20px;\n word-wrap: break-word;\n font-weight: 400;\n max-height: 50vh;\n overflow: hidden;\n display: flex;\n flex-direction: column;\n\n &__range {\n display: block;\n font-weight: 500;\n margin-bottom: 10px;\n padding-right: 18px;\n }\n\n &__unread {\n position: absolute;\n top: 19px;\n right: 19px;\n display: block;\n background: $highlight-text-color;\n border-radius: 50%;\n width: 0.625rem;\n height: 0.625rem;\n }\n }\n\n &__pagination {\n padding: 15px;\n color: $darker-text-color;\n position: absolute;\n bottom: 3px;\n right: 0;\n }\n}\n\n.layout-multiple-columns .announcements__mastodon {\n display: none;\n}\n\n.layout-multiple-columns .announcements__container {\n width: 100%;\n}\n\n.reactions-bar {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n margin-top: 15px;\n margin-left: -2px;\n width: calc(100% - (90px - 33px));\n\n &__item {\n flex-shrink: 0;\n background: lighten($ui-base-color, 12%);\n border: 0;\n border-radius: 3px;\n margin: 2px;\n cursor: pointer;\n user-select: none;\n padding: 0 6px;\n display: flex;\n align-items: center;\n transition: all 100ms ease-in;\n transition-property: background-color, color;\n\n &__emoji {\n display: block;\n margin: 3px 0;\n width: 16px;\n height: 16px;\n\n img {\n display: block;\n margin: 0;\n width: 100%;\n height: 100%;\n min-width: auto;\n min-height: auto;\n vertical-align: bottom;\n object-fit: contain;\n }\n }\n\n &__count {\n display: block;\n min-width: 9px;\n font-size: 13px;\n font-weight: 500;\n text-align: center;\n margin-left: 6px;\n color: $darker-text-color;\n }\n\n &:hover,\n &:focus,\n &:active {\n background: lighten($ui-base-color, 16%);\n transition: all 200ms ease-out;\n transition-property: background-color, color;\n\n &__count {\n color: lighten($darker-text-color, 4%);\n }\n }\n\n &.active {\n transition: all 100ms ease-in;\n transition-property: background-color, color;\n background-color: mix(lighten($ui-base-color, 12%), $ui-highlight-color, 80%);\n\n .reactions-bar__item__count {\n color: lighten($highlight-text-color, 8%);\n }\n }\n }\n\n .emoji-picker-dropdown {\n margin: 2px;\n }\n\n &:hover .emoji-button {\n opacity: 0.85;\n }\n\n .emoji-button {\n color: $darker-text-color;\n margin: 0;\n font-size: 16px;\n width: auto;\n flex-shrink: 0;\n padding: 0 6px;\n height: 22px;\n display: flex;\n align-items: center;\n opacity: 0.5;\n transition: all 100ms ease-in;\n transition-property: background-color, color;\n\n &:hover,\n &:active,\n &:focus {\n opacity: 1;\n color: lighten($darker-text-color, 4%);\n transition: all 200ms ease-out;\n transition-property: background-color, color;\n }\n }\n\n &--empty {\n .emoji-button {\n padding: 0;\n }\n }\n}\n",".poll {\n margin-top: 16px;\n font-size: 14px;\n\n ul,\n .e-content & ul {\n margin: 0;\n list-style: none;\n }\n\n li {\n margin-bottom: 10px;\n position: relative;\n }\n\n &__chart {\n border-radius: 4px;\n display: block;\n background: darken($ui-primary-color, 5%);\n height: 5px;\n min-width: 1%;\n\n &.leading {\n background: $ui-highlight-color;\n }\n }\n\n &__option {\n position: relative;\n display: flex;\n padding: 6px 0;\n line-height: 18px;\n cursor: default;\n overflow: hidden;\n\n &__text {\n display: inline-block;\n word-wrap: break-word;\n overflow-wrap: break-word;\n max-width: calc(100% - 45px - 25px);\n }\n\n input[type=radio],\n input[type=checkbox] {\n display: none;\n }\n\n .autossugest-input {\n flex: 1 1 auto;\n }\n\n input[type=text] {\n display: block;\n box-sizing: border-box;\n width: 100%;\n font-size: 14px;\n color: $inverted-text-color;\n display: block;\n outline: 0;\n font-family: inherit;\n background: $simple-background-color;\n border: 1px solid darken($simple-background-color, 14%);\n border-radius: 4px;\n padding: 6px 10px;\n\n &:focus {\n border-color: $highlight-text-color;\n }\n }\n\n &.selectable {\n cursor: pointer;\n }\n\n &.editable {\n display: flex;\n align-items: center;\n overflow: visible;\n }\n }\n\n &__input {\n display: inline-block;\n position: relative;\n border: 1px solid $ui-primary-color;\n box-sizing: border-box;\n width: 18px;\n height: 18px;\n flex: 0 0 auto;\n margin-right: 10px;\n top: -1px;\n border-radius: 50%;\n vertical-align: middle;\n margin-top: auto;\n margin-bottom: auto;\n flex: 0 0 18px;\n\n &.checkbox {\n border-radius: 4px;\n }\n\n &.active {\n border-color: $valid-value-color;\n background: $valid-value-color;\n }\n\n &:active,\n &:focus,\n &:hover {\n border-color: lighten($valid-value-color, 15%);\n border-width: 4px;\n }\n\n &::-moz-focus-inner {\n outline: 0 !important;\n border: 0;\n }\n\n &:focus,\n &:active {\n outline: 0 !important;\n }\n }\n\n &__number {\n display: inline-block;\n width: 45px;\n font-weight: 700;\n flex: 0 0 45px;\n }\n\n &__voted {\n padding: 0 5px;\n display: inline-block;\n\n &__mark {\n font-size: 18px;\n }\n }\n\n &__footer {\n padding-top: 6px;\n padding-bottom: 5px;\n color: $dark-text-color;\n }\n\n &__link {\n display: inline;\n background: transparent;\n padding: 0;\n margin: 0;\n border: 0;\n color: $dark-text-color;\n text-decoration: underline;\n font-size: inherit;\n\n &:hover {\n text-decoration: none;\n }\n\n &:active,\n &:focus {\n background-color: rgba($dark-text-color, .1);\n }\n }\n\n .button {\n height: 36px;\n padding: 0 16px;\n margin-right: 10px;\n font-size: 14px;\n }\n}\n\n.compose-form__poll-wrapper {\n border-top: 1px solid darken($simple-background-color, 8%);\n overflow-x: hidden;\n\n ul {\n padding: 10px;\n }\n\n .poll__footer {\n border-top: 1px solid darken($simple-background-color, 8%);\n padding: 10px;\n display: flex;\n align-items: center;\n\n button,\n select {\n width: 100%;\n flex: 1 1 50%;\n\n &:focus {\n border-color: $highlight-text-color;\n }\n }\n }\n\n .button.button-secondary {\n font-size: 14px;\n font-weight: 400;\n padding: 6px 10px;\n height: auto;\n line-height: inherit;\n color: $action-button-color;\n border-color: $action-button-color;\n margin-right: 5px;\n }\n\n li {\n display: flex;\n align-items: center;\n\n .poll__option {\n flex: 0 0 auto;\n width: calc(100% - (23px + 6px));\n margin-right: 6px;\n }\n }\n\n select {\n appearance: none;\n box-sizing: border-box;\n font-size: 14px;\n color: $inverted-text-color;\n display: inline-block;\n width: auto;\n outline: 0;\n font-family: inherit;\n background: $simple-background-color url(\"data:image/svg+xml;utf8,\") no-repeat right 8px center / auto 16px;\n border: 1px solid darken($simple-background-color, 14%);\n border-radius: 4px;\n padding: 6px 10px;\n padding-right: 30px;\n }\n\n .icon-button.disabled {\n color: darken($simple-background-color, 14%);\n }\n}\n\n.muted .poll {\n color: $dark-text-color;\n\n &__chart {\n background: rgba(darken($ui-primary-color, 14%), 0.2);\n\n &.leading {\n background: rgba($ui-highlight-color, 0.2);\n }\n }\n}\n","$maximum-width: 1235px;\n$fluid-breakpoint: $maximum-width + 20px;\n$column-breakpoint: 700px;\n$small-breakpoint: 960px;\n\n.container {\n box-sizing: border-box;\n max-width: $maximum-width;\n margin: 0 auto;\n position: relative;\n\n @media screen and (max-width: $fluid-breakpoint) {\n width: 100%;\n padding: 0 10px;\n }\n}\n\n.rich-formatting {\n font-family: $font-sans-serif, sans-serif;\n font-size: 14px;\n font-weight: 400;\n line-height: 1.7;\n word-wrap: break-word;\n color: $darker-text-color;\n\n a {\n color: $highlight-text-color;\n text-decoration: underline;\n\n &:hover,\n &:focus,\n &:active {\n text-decoration: none;\n }\n }\n\n p,\n li {\n color: $darker-text-color;\n }\n\n p {\n margin-top: 0;\n margin-bottom: .85em;\n\n &:last-child {\n margin-bottom: 0;\n }\n }\n\n strong {\n font-weight: 700;\n color: $secondary-text-color;\n }\n\n em {\n font-style: italic;\n color: $secondary-text-color;\n }\n\n code {\n font-size: 0.85em;\n background: darken($ui-base-color, 8%);\n border-radius: 4px;\n padding: 0.2em 0.3em;\n }\n\n h1,\n h2,\n h3,\n h4,\n h5,\n h6 {\n font-family: $font-display, sans-serif;\n margin-top: 1.275em;\n margin-bottom: .85em;\n font-weight: 500;\n color: $secondary-text-color;\n }\n\n h1 {\n font-size: 2em;\n }\n\n h2 {\n font-size: 1.75em;\n }\n\n h3 {\n font-size: 1.5em;\n }\n\n h4 {\n font-size: 1.25em;\n }\n\n h5,\n h6 {\n font-size: 1em;\n }\n\n ul {\n list-style: disc;\n }\n\n ol {\n list-style: decimal;\n }\n\n ul,\n ol {\n margin: 0;\n padding: 0;\n padding-left: 2em;\n margin-bottom: 0.85em;\n\n &[type='a'] {\n list-style-type: lower-alpha;\n }\n\n &[type='i'] {\n list-style-type: lower-roman;\n }\n }\n\n hr {\n width: 100%;\n height: 0;\n border: 0;\n border-bottom: 1px solid lighten($ui-base-color, 4%);\n margin: 1.7em 0;\n\n &.spacer {\n height: 1px;\n border: 0;\n }\n }\n\n table {\n width: 100%;\n border-collapse: collapse;\n break-inside: auto;\n margin-top: 24px;\n margin-bottom: 32px;\n\n thead tr,\n tbody tr {\n border-bottom: 1px solid lighten($ui-base-color, 4%);\n font-size: 1em;\n line-height: 1.625;\n font-weight: 400;\n text-align: left;\n color: $darker-text-color;\n }\n\n thead tr {\n border-bottom-width: 2px;\n line-height: 1.5;\n font-weight: 500;\n color: $dark-text-color;\n }\n\n th,\n td {\n padding: 8px;\n align-self: start;\n align-items: start;\n word-break: break-all;\n\n &.nowrap {\n width: 25%;\n position: relative;\n\n &::before {\n content: ' ';\n visibility: hidden;\n }\n\n span {\n position: absolute;\n left: 8px;\n right: 8px;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n }\n }\n }\n\n & > :first-child {\n margin-top: 0;\n }\n}\n\n.information-board {\n background: darken($ui-base-color, 4%);\n padding: 20px 0;\n\n .container-alt {\n position: relative;\n padding-right: 280px + 15px;\n }\n\n &__sections {\n display: flex;\n justify-content: space-between;\n flex-wrap: wrap;\n }\n\n &__section {\n flex: 1 0 0;\n font-family: $font-sans-serif, sans-serif;\n font-size: 16px;\n line-height: 28px;\n color: $primary-text-color;\n text-align: right;\n padding: 10px 15px;\n\n span,\n strong {\n display: block;\n }\n\n span {\n &:last-child {\n color: $secondary-text-color;\n }\n }\n\n strong {\n font-family: $font-display, sans-serif;\n font-weight: 500;\n font-size: 32px;\n line-height: 48px;\n }\n\n @media screen and (max-width: $column-breakpoint) {\n text-align: center;\n }\n }\n\n .panel {\n position: absolute;\n width: 280px;\n box-sizing: border-box;\n background: darken($ui-base-color, 8%);\n padding: 20px;\n padding-top: 10px;\n border-radius: 4px 4px 0 0;\n right: 0;\n bottom: -40px;\n\n .panel-header {\n font-family: $font-display, sans-serif;\n font-size: 14px;\n line-height: 24px;\n font-weight: 500;\n color: $darker-text-color;\n padding-bottom: 5px;\n margin-bottom: 15px;\n border-bottom: 1px solid lighten($ui-base-color, 4%);\n text-overflow: ellipsis;\n white-space: nowrap;\n overflow: hidden;\n\n a,\n span {\n font-weight: 400;\n color: darken($darker-text-color, 10%);\n }\n\n a {\n text-decoration: none;\n }\n }\n }\n\n .owner {\n text-align: center;\n\n .avatar {\n width: 80px;\n height: 80px;\n @include avatar-size(80px);\n margin: 0 auto;\n margin-bottom: 15px;\n\n img {\n display: block;\n width: 80px;\n height: 80px;\n border-radius: 48px;\n @include avatar-radius();\n }\n }\n\n .name {\n font-size: 14px;\n\n a {\n display: block;\n color: $primary-text-color;\n text-decoration: none;\n\n &:hover {\n .display_name {\n text-decoration: underline;\n }\n }\n }\n\n .username {\n display: block;\n color: $darker-text-color;\n }\n }\n }\n}\n\n.landing-page {\n p,\n li {\n font-family: $font-sans-serif, sans-serif;\n font-size: 16px;\n font-weight: 400;\n font-size: 16px;\n line-height: 30px;\n margin-bottom: 12px;\n color: $darker-text-color;\n\n a {\n color: $highlight-text-color;\n text-decoration: underline;\n }\n }\n\n em {\n display: inline;\n margin: 0;\n padding: 0;\n font-weight: 700;\n background: transparent;\n font-family: inherit;\n font-size: inherit;\n line-height: inherit;\n color: lighten($darker-text-color, 10%);\n }\n\n h1 {\n font-family: $font-display, sans-serif;\n font-size: 26px;\n line-height: 30px;\n font-weight: 500;\n margin-bottom: 20px;\n color: $secondary-text-color;\n\n small {\n font-family: $font-sans-serif, sans-serif;\n display: block;\n font-size: 18px;\n font-weight: 400;\n color: lighten($darker-text-color, 10%);\n }\n }\n\n h2 {\n font-family: $font-display, sans-serif;\n font-size: 22px;\n line-height: 26px;\n font-weight: 500;\n margin-bottom: 20px;\n color: $secondary-text-color;\n }\n\n h3 {\n font-family: $font-display, sans-serif;\n font-size: 18px;\n line-height: 24px;\n font-weight: 500;\n margin-bottom: 20px;\n color: $secondary-text-color;\n }\n\n h4 {\n font-family: $font-display, sans-serif;\n font-size: 16px;\n line-height: 24px;\n font-weight: 500;\n margin-bottom: 20px;\n color: $secondary-text-color;\n }\n\n h5 {\n font-family: $font-display, sans-serif;\n font-size: 14px;\n line-height: 24px;\n font-weight: 500;\n margin-bottom: 20px;\n color: $secondary-text-color;\n }\n\n h6 {\n font-family: $font-display, sans-serif;\n font-size: 12px;\n line-height: 24px;\n font-weight: 500;\n margin-bottom: 20px;\n color: $secondary-text-color;\n }\n\n ul,\n ol {\n margin-left: 20px;\n\n &[type='a'] {\n list-style-type: lower-alpha;\n }\n\n &[type='i'] {\n list-style-type: lower-roman;\n }\n }\n\n ul {\n list-style: disc;\n }\n\n ol {\n list-style: decimal;\n }\n\n li > ol,\n li > ul {\n margin-top: 6px;\n }\n\n hr {\n width: 100%;\n height: 0;\n border: 0;\n border-bottom: 1px solid rgba($ui-base-lighter-color, .6);\n margin: 20px 0;\n\n &.spacer {\n height: 1px;\n border: 0;\n }\n }\n\n &__information,\n &__forms {\n padding: 20px;\n }\n\n &__call-to-action {\n background: $ui-base-color;\n border-radius: 4px;\n padding: 25px 40px;\n overflow: hidden;\n box-sizing: border-box;\n\n .row {\n width: 100%;\n display: flex;\n flex-direction: row-reverse;\n flex-wrap: nowrap;\n justify-content: space-between;\n align-items: center;\n }\n\n .row__information-board {\n display: flex;\n justify-content: flex-end;\n align-items: flex-end;\n\n .information-board__section {\n flex: 1 0 auto;\n padding: 0 10px;\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n width: 100%;\n justify-content: space-between;\n }\n }\n\n .row__mascot {\n flex: 1;\n margin: 10px -50px 0 0;\n\n @media screen and (max-width: $no-gap-breakpoint) {\n display: none;\n }\n }\n }\n\n &__logo {\n margin-right: 20px;\n\n img {\n height: 50px;\n width: auto;\n mix-blend-mode: lighten;\n }\n }\n\n &__information {\n padding: 45px 40px;\n margin-bottom: 10px;\n\n &:last-child {\n margin-bottom: 0;\n }\n\n strong {\n font-weight: 500;\n color: lighten($darker-text-color, 10%);\n }\n\n .account {\n border-bottom: 0;\n padding: 0;\n\n &__display-name {\n align-items: center;\n display: flex;\n margin-right: 5px;\n }\n\n div.account__display-name {\n &:hover {\n .display-name strong {\n text-decoration: none;\n }\n }\n\n .account__avatar {\n cursor: default;\n }\n }\n\n &__avatar-wrapper {\n margin-left: 0;\n flex: 0 0 auto;\n }\n\n &__avatar {\n width: 44px;\n height: 44px;\n background-size: 44px 44px;\n @include avatar-size(44px);\n }\n\n .display-name {\n font-size: 15px;\n\n &__account {\n font-size: 14px;\n }\n }\n }\n\n @media screen and (max-width: $small-breakpoint) {\n .contact {\n margin-top: 30px;\n }\n }\n\n @media screen and (max-width: $column-breakpoint) {\n padding: 25px 20px;\n }\n }\n\n &__information,\n &__forms,\n #mastodon-timeline {\n box-sizing: border-box;\n background: $ui-base-color;\n border-radius: 4px;\n box-shadow: 0 0 6px rgba($black, 0.1);\n }\n\n &__mascot {\n height: 104px;\n position: relative;\n left: -40px;\n bottom: 25px;\n\n img {\n height: 190px;\n width: auto;\n }\n }\n\n &__short-description {\n .row {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n margin-bottom: 40px;\n }\n\n @media screen and (max-width: $column-breakpoint) {\n .row {\n margin-bottom: 20px;\n }\n }\n\n p a {\n color: $secondary-text-color;\n }\n\n h1 {\n font-weight: 500;\n color: $primary-text-color;\n margin-bottom: 0;\n\n small {\n color: $darker-text-color;\n\n span {\n color: $secondary-text-color;\n }\n }\n }\n\n p:last-child {\n margin-bottom: 0;\n }\n }\n\n &__hero {\n margin-bottom: 10px;\n\n img {\n display: block;\n margin: 0;\n max-width: 100%;\n height: auto;\n border-radius: 4px;\n }\n }\n\n @media screen and (max-width: 840px) {\n .information-board {\n .container-alt {\n padding-right: 20px;\n }\n\n .panel {\n position: static;\n margin-top: 20px;\n width: 100%;\n border-radius: 4px;\n\n .panel-header {\n text-align: center;\n }\n }\n }\n }\n\n @media screen and (max-width: 675px) {\n .header-wrapper {\n padding-top: 0;\n\n &.compact {\n padding-bottom: 0;\n }\n\n &.compact .hero .heading {\n text-align: initial;\n }\n }\n\n .header .container-alt,\n .features .container-alt {\n display: block;\n }\n }\n\n .cta {\n margin: 20px;\n }\n}\n\n.landing {\n margin-bottom: 100px;\n\n @media screen and (max-width: 738px) {\n margin-bottom: 0;\n }\n\n &__brand {\n display: flex;\n justify-content: center;\n align-items: center;\n padding: 50px;\n\n svg {\n fill: $primary-text-color;\n height: 52px;\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n padding: 0;\n margin-bottom: 30px;\n }\n }\n\n .directory {\n margin-top: 30px;\n background: transparent;\n box-shadow: none;\n border-radius: 0;\n }\n\n .hero-widget {\n margin-top: 30px;\n margin-bottom: 0;\n\n h4 {\n padding: 10px;\n text-transform: uppercase;\n font-weight: 700;\n font-size: 13px;\n color: $darker-text-color;\n }\n\n &__text {\n border-radius: 0;\n padding-bottom: 0;\n }\n\n &__footer {\n background: $ui-base-color;\n padding: 10px;\n border-radius: 0 0 4px 4px;\n display: flex;\n\n &__column {\n flex: 1 1 50%;\n }\n }\n\n .account {\n padding: 10px 0;\n border-bottom: 0;\n\n .account__display-name {\n display: flex;\n align-items: center;\n }\n\n .account__avatar {\n width: 44px;\n height: 44px;\n background-size: 44px 44px;\n }\n }\n\n &__counter {\n padding: 10px;\n\n strong {\n font-family: $font-display, sans-serif;\n font-size: 15px;\n font-weight: 700;\n display: block;\n }\n\n span {\n font-size: 14px;\n color: $darker-text-color;\n }\n }\n }\n\n .simple_form .user_agreement .label_input > label {\n font-weight: 400;\n color: $darker-text-color;\n }\n\n .simple_form p.lead {\n color: $darker-text-color;\n font-size: 15px;\n line-height: 20px;\n font-weight: 400;\n margin-bottom: 25px;\n }\n\n &__grid {\n max-width: 960px;\n margin: 0 auto;\n display: grid;\n grid-template-columns: minmax(0, 50%) minmax(0, 50%);\n grid-gap: 30px;\n\n @media screen and (max-width: 738px) {\n grid-template-columns: minmax(0, 100%);\n grid-gap: 10px;\n\n &__column-login {\n grid-row: 1;\n display: flex;\n flex-direction: column;\n\n .box-widget {\n order: 2;\n flex: 0 0 auto;\n }\n\n .hero-widget {\n margin-top: 0;\n margin-bottom: 10px;\n order: 1;\n flex: 0 0 auto;\n }\n }\n\n &__column-registration {\n grid-row: 2;\n }\n\n .directory {\n margin-top: 10px;\n }\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n grid-gap: 0;\n\n .hero-widget {\n display: block;\n margin-bottom: 0;\n box-shadow: none;\n\n &__img,\n &__img img,\n &__footer {\n border-radius: 0;\n }\n }\n\n .hero-widget,\n .box-widget,\n .directory__tag {\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n }\n\n .directory {\n margin-top: 0;\n\n &__tag {\n margin-bottom: 0;\n\n & > a,\n & > div {\n border-radius: 0;\n box-shadow: none;\n }\n\n &:last-child {\n border-bottom: 0;\n }\n }\n }\n }\n }\n}\n\n.brand {\n position: relative;\n text-decoration: none;\n}\n\n.brand__tagline {\n display: block;\n position: absolute;\n bottom: -10px;\n left: 50px;\n width: 300px;\n color: $ui-primary-color;\n text-decoration: none;\n font-size: 14px;\n\n @media screen and (max-width: $no-gap-breakpoint) {\n position: static;\n width: auto;\n margin-top: 20px;\n color: $dark-text-color;\n }\n}\n\n",".table {\n width: 100%;\n max-width: 100%;\n border-spacing: 0;\n border-collapse: collapse;\n\n th,\n td {\n padding: 8px;\n line-height: 18px;\n vertical-align: top;\n border-top: 1px solid $ui-base-color;\n text-align: left;\n background: darken($ui-base-color, 4%);\n }\n\n & > thead > tr > th {\n vertical-align: bottom;\n border-bottom: 2px solid $ui-base-color;\n border-top: 0;\n font-weight: 500;\n }\n\n & > tbody > tr > th {\n font-weight: 500;\n }\n\n & > tbody > tr:nth-child(odd) > td,\n & > tbody > tr:nth-child(odd) > th {\n background: $ui-base-color;\n }\n\n a {\n color: $highlight-text-color;\n text-decoration: underline;\n\n &:hover {\n text-decoration: none;\n }\n }\n\n strong {\n font-weight: 500;\n\n @each $lang in $cjk-langs {\n &:lang(#{$lang}) {\n font-weight: 700;\n }\n }\n }\n\n &.inline-table {\n & > tbody > tr:nth-child(odd) {\n & > td,\n & > th {\n background: transparent;\n }\n }\n\n & > tbody > tr:first-child {\n & > td,\n & > th {\n border-top: 0;\n }\n }\n }\n\n &.batch-table {\n & > thead > tr > th {\n background: $ui-base-color;\n border-top: 1px solid darken($ui-base-color, 8%);\n border-bottom: 1px solid darken($ui-base-color, 8%);\n\n &:first-child {\n border-radius: 4px 0 0;\n border-left: 1px solid darken($ui-base-color, 8%);\n }\n\n &:last-child {\n border-radius: 0 4px 0 0;\n border-right: 1px solid darken($ui-base-color, 8%);\n }\n }\n }\n\n &--invites tbody td {\n vertical-align: middle;\n }\n}\n\n.table-wrapper {\n overflow: auto;\n margin-bottom: 20px;\n}\n\nsamp {\n font-family: $font-monospace, monospace;\n}\n\nbutton.table-action-link {\n background: transparent;\n border: 0;\n font: inherit;\n}\n\nbutton.table-action-link,\na.table-action-link {\n text-decoration: none;\n display: inline-block;\n margin-right: 5px;\n padding: 0 10px;\n color: $darker-text-color;\n font-weight: 500;\n\n &:hover {\n color: $primary-text-color;\n }\n\n i.fa {\n font-weight: 400;\n margin-right: 5px;\n }\n\n &:first-child {\n padding-left: 0;\n }\n}\n\n.batch-table {\n &__toolbar,\n &__row {\n display: flex;\n\n &__select {\n box-sizing: border-box;\n padding: 8px 16px;\n cursor: pointer;\n min-height: 100%;\n\n input {\n margin-top: 8px;\n }\n\n &--aligned {\n display: flex;\n align-items: center;\n\n input {\n margin-top: 0;\n }\n }\n }\n\n &__actions,\n &__content {\n padding: 8px 0;\n padding-right: 16px;\n flex: 1 1 auto;\n }\n }\n\n &__toolbar {\n border: 1px solid darken($ui-base-color, 8%);\n background: $ui-base-color;\n border-radius: 4px 0 0;\n height: 47px;\n align-items: center;\n\n &__actions {\n text-align: right;\n padding-right: 16px - 5px;\n }\n }\n\n &__form {\n padding: 16px;\n border: 1px solid darken($ui-base-color, 8%);\n border-top: 0;\n background: $ui-base-color;\n\n .fields-row {\n padding-top: 0;\n margin-bottom: 0;\n }\n }\n\n &__row {\n border: 1px solid darken($ui-base-color, 8%);\n border-top: 0;\n background: darken($ui-base-color, 4%);\n\n @media screen and (max-width: $no-gap-breakpoint) {\n .optional &:first-child {\n border-top: 1px solid darken($ui-base-color, 8%);\n }\n }\n\n &:hover {\n background: darken($ui-base-color, 2%);\n }\n\n &:nth-child(even) {\n background: $ui-base-color;\n\n &:hover {\n background: lighten($ui-base-color, 2%);\n }\n }\n\n &__content {\n padding-top: 12px;\n padding-bottom: 16px;\n\n &--unpadded {\n padding: 0;\n }\n\n &--with-image {\n display: flex;\n align-items: center;\n }\n\n &__image {\n flex: 0 0 auto;\n display: flex;\n justify-content: center;\n align-items: center;\n margin-right: 10px;\n\n .emojione {\n width: 32px;\n height: 32px;\n }\n }\n\n &__text {\n flex: 1 1 auto;\n }\n\n &__extra {\n flex: 0 0 auto;\n text-align: right;\n color: $darker-text-color;\n font-weight: 500;\n }\n }\n\n .directory__tag {\n margin: 0;\n width: 100%;\n\n a {\n background: transparent;\n border-radius: 0;\n }\n }\n }\n\n &.optional .batch-table__toolbar,\n &.optional .batch-table__row__select {\n @media screen and (max-width: $no-gap-breakpoint) {\n display: none;\n }\n }\n\n .status__content {\n padding-top: 0;\n\n strong {\n font-weight: 700;\n }\n }\n\n .nothing-here {\n border: 1px solid darken($ui-base-color, 8%);\n border-top: 0;\n box-shadow: none;\n\n @media screen and (max-width: $no-gap-breakpoint) {\n border-top: 1px solid darken($ui-base-color, 8%);\n }\n }\n\n @media screen and (max-width: 870px) {\n .accounts-table tbody td.optional {\n display: none;\n }\n }\n}\n","$no-columns-breakpoint: 600px;\n$sidebar-width: 240px;\n$content-width: 840px;\n\n.admin-wrapper {\n display: flex;\n justify-content: center;\n width: 100%;\n min-height: 100vh;\n\n .sidebar-wrapper {\n min-height: 100vh;\n overflow: hidden;\n pointer-events: none;\n flex: 1 1 auto;\n\n &__inner {\n display: flex;\n justify-content: flex-end;\n background: $ui-base-color;\n height: 100%;\n }\n }\n\n .sidebar {\n width: $sidebar-width;\n padding: 0;\n pointer-events: auto;\n\n &__toggle {\n display: none;\n background: lighten($ui-base-color, 8%);\n height: 48px;\n\n &__logo {\n flex: 1 1 auto;\n\n a {\n display: inline-block;\n padding: 15px;\n }\n\n svg {\n fill: $primary-text-color;\n height: 20px;\n position: relative;\n bottom: -2px;\n }\n }\n\n &__icon {\n display: block;\n color: $darker-text-color;\n text-decoration: none;\n flex: 0 0 auto;\n font-size: 20px;\n padding: 15px;\n }\n\n a {\n &:hover,\n &:focus,\n &:active {\n background: lighten($ui-base-color, 12%);\n }\n }\n }\n\n .logo {\n display: block;\n margin: 40px auto;\n width: 100px;\n height: 100px;\n }\n\n @media screen and (max-width: $no-columns-breakpoint) {\n & > a:first-child {\n display: none;\n }\n }\n\n ul {\n list-style: none;\n border-radius: 4px 0 0 4px;\n overflow: hidden;\n margin-bottom: 20px;\n\n @media screen and (max-width: $no-columns-breakpoint) {\n margin-bottom: 0;\n }\n\n a {\n display: block;\n padding: 15px;\n color: $darker-text-color;\n text-decoration: none;\n transition: all 200ms linear;\n transition-property: color, background-color;\n border-radius: 4px 0 0 4px;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n\n i.fa {\n margin-right: 5px;\n }\n\n &:hover {\n color: $primary-text-color;\n background-color: darken($ui-base-color, 5%);\n transition: all 100ms linear;\n transition-property: color, background-color;\n }\n\n &.selected {\n background: darken($ui-base-color, 2%);\n border-radius: 4px 0 0;\n }\n }\n\n ul {\n background: darken($ui-base-color, 4%);\n border-radius: 0 0 0 4px;\n margin: 0;\n\n a {\n border: 0;\n padding: 15px 35px;\n }\n }\n\n .simple-navigation-active-leaf a {\n color: $primary-text-color;\n background-color: $ui-highlight-color;\n border-bottom: 0;\n border-radius: 0;\n\n &:hover {\n background-color: lighten($ui-highlight-color, 5%);\n }\n }\n }\n\n & > ul > .simple-navigation-active-leaf a {\n border-radius: 4px 0 0 4px;\n }\n }\n\n .content-wrapper {\n box-sizing: border-box;\n width: 100%;\n max-width: $content-width;\n flex: 1 1 auto;\n }\n\n @media screen and (max-width: $content-width + $sidebar-width) {\n .sidebar-wrapper--empty {\n display: none;\n }\n\n .sidebar-wrapper {\n width: $sidebar-width;\n flex: 0 0 auto;\n }\n }\n\n @media screen and (max-width: $no-columns-breakpoint) {\n .sidebar-wrapper {\n width: 100%;\n }\n }\n\n .content {\n padding: 20px 15px;\n padding-top: 60px;\n padding-left: 25px;\n\n @media screen and (max-width: $no-columns-breakpoint) {\n max-width: none;\n padding: 15px;\n padding-top: 30px;\n }\n\n &-heading {\n display: flex;\n\n padding-bottom: 40px;\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n\n margin: -15px -15px 40px 0;\n\n flex-wrap: wrap;\n align-items: center;\n justify-content: space-between;\n\n & > * {\n margin-top: 15px;\n margin-right: 15px;\n }\n\n &-actions {\n display: inline-flex;\n\n & > :not(:first-child) {\n margin-left: 5px;\n }\n }\n\n @media screen and (max-width: $no-columns-breakpoint) {\n border-bottom: 0;\n padding-bottom: 0;\n }\n }\n\n h2 {\n color: $secondary-text-color;\n font-size: 24px;\n line-height: 28px;\n font-weight: 400;\n\n @media screen and (max-width: $no-columns-breakpoint) {\n font-weight: 700;\n }\n }\n\n h3 {\n color: $secondary-text-color;\n font-size: 20px;\n line-height: 28px;\n font-weight: 400;\n margin-bottom: 30px;\n }\n\n h4 {\n text-transform: uppercase;\n font-size: 13px;\n font-weight: 700;\n color: $darker-text-color;\n padding-bottom: 8px;\n margin-bottom: 8px;\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n }\n\n h6 {\n font-size: 16px;\n color: $secondary-text-color;\n line-height: 28px;\n font-weight: 500;\n }\n\n .fields-group h6 {\n color: $primary-text-color;\n font-weight: 500;\n }\n\n .directory__tag > a,\n .directory__tag > div {\n box-shadow: none;\n }\n\n .directory__tag .table-action-link .fa {\n color: inherit;\n }\n\n .directory__tag h4 {\n font-size: 18px;\n font-weight: 700;\n color: $primary-text-color;\n text-transform: none;\n padding-bottom: 0;\n margin-bottom: 0;\n border-bottom: none;\n }\n\n & > p {\n font-size: 14px;\n line-height: 21px;\n color: $secondary-text-color;\n margin-bottom: 20px;\n\n strong {\n color: $primary-text-color;\n font-weight: 500;\n\n @each $lang in $cjk-langs {\n &:lang(#{$lang}) {\n font-weight: 700;\n }\n }\n }\n }\n\n hr {\n width: 100%;\n height: 0;\n border: 0;\n border-bottom: 1px solid rgba($ui-base-lighter-color, .6);\n margin: 20px 0;\n\n &.spacer {\n height: 1px;\n border: 0;\n }\n }\n }\n\n @media screen and (max-width: $no-columns-breakpoint) {\n display: block;\n\n .sidebar-wrapper {\n min-height: 0;\n }\n\n .sidebar {\n width: 100%;\n padding: 0;\n height: auto;\n\n &__toggle {\n display: flex;\n }\n\n & > ul {\n display: none;\n }\n\n ul a,\n ul ul a {\n border-radius: 0;\n border-bottom: 1px solid lighten($ui-base-color, 4%);\n transition: none;\n\n &:hover {\n transition: none;\n }\n }\n\n ul ul {\n border-radius: 0;\n }\n\n ul .simple-navigation-active-leaf a {\n border-bottom-color: $ui-highlight-color;\n }\n }\n }\n}\n\nhr.spacer {\n width: 100%;\n border: 0;\n margin: 20px 0;\n height: 1px;\n}\n\nbody,\n.admin-wrapper .content {\n .muted-hint {\n color: $darker-text-color;\n\n a {\n color: $highlight-text-color;\n }\n }\n\n .positive-hint {\n color: $valid-value-color;\n font-weight: 500;\n }\n\n .negative-hint {\n color: $error-value-color;\n font-weight: 500;\n }\n\n .neutral-hint {\n color: $dark-text-color;\n font-weight: 500;\n }\n\n .warning-hint {\n color: $gold-star;\n font-weight: 500;\n }\n}\n\n.filters {\n display: flex;\n flex-wrap: wrap;\n\n .filter-subset {\n flex: 0 0 auto;\n margin: 0 40px 20px 0;\n\n &:last-child {\n margin-bottom: 30px;\n }\n\n ul {\n margin-top: 5px;\n list-style: none;\n\n li {\n display: inline-block;\n margin-right: 5px;\n }\n }\n\n strong {\n font-weight: 500;\n text-transform: uppercase;\n font-size: 12px;\n\n @each $lang in $cjk-langs {\n &:lang(#{$lang}) {\n font-weight: 700;\n }\n }\n }\n\n &--with-select strong {\n display: block;\n margin-bottom: 10px;\n }\n\n a {\n display: inline-block;\n color: $darker-text-color;\n text-decoration: none;\n text-transform: uppercase;\n font-size: 12px;\n font-weight: 500;\n border-bottom: 2px solid $ui-base-color;\n\n &:hover {\n color: $primary-text-color;\n border-bottom: 2px solid lighten($ui-base-color, 5%);\n }\n\n &.selected {\n color: $highlight-text-color;\n border-bottom: 2px solid $ui-highlight-color;\n }\n }\n }\n}\n\n.flavour-screen {\n display: block;\n margin: 10px auto;\n max-width: 100%;\n}\n\n.flavour-description {\n display: block;\n font-size: 16px;\n margin: 10px 0;\n\n & > p {\n margin: 10px 0;\n }\n}\n\n.report-accounts {\n display: flex;\n flex-wrap: wrap;\n margin-bottom: 20px;\n}\n\n.report-accounts__item {\n display: flex;\n flex: 250px;\n flex-direction: column;\n margin: 0 5px;\n\n & > strong {\n display: block;\n margin: 0 0 10px -5px;\n font-weight: 500;\n font-size: 14px;\n line-height: 18px;\n color: $secondary-text-color;\n\n @each $lang in $cjk-langs {\n &:lang(#{$lang}) {\n font-weight: 700;\n }\n }\n }\n\n .account-card {\n flex: 1 1 auto;\n }\n}\n\n.report-status,\n.account-status {\n display: flex;\n margin-bottom: 10px;\n\n .activity-stream {\n flex: 2 0 0;\n margin-right: 20px;\n max-width: calc(100% - 60px);\n\n .entry {\n border-radius: 4px;\n }\n }\n}\n\n.report-status__actions,\n.account-status__actions {\n flex: 0 0 auto;\n display: flex;\n flex-direction: column;\n\n .icon-button {\n font-size: 24px;\n width: 24px;\n text-align: center;\n margin-bottom: 10px;\n }\n}\n\n.simple_form.new_report_note,\n.simple_form.new_account_moderation_note {\n max-width: 100%;\n}\n\n.batch-form-box {\n display: flex;\n flex-wrap: wrap;\n margin-bottom: 5px;\n\n #form_status_batch_action {\n margin: 0 5px 5px 0;\n font-size: 14px;\n }\n\n input.button {\n margin: 0 5px 5px 0;\n }\n\n .media-spoiler-toggle-buttons {\n margin-left: auto;\n\n .button {\n overflow: visible;\n margin: 0 0 5px 5px;\n float: right;\n }\n }\n}\n\n.back-link {\n margin-bottom: 10px;\n font-size: 14px;\n\n a {\n color: $highlight-text-color;\n text-decoration: none;\n\n &:hover {\n text-decoration: underline;\n }\n }\n}\n\n.spacer {\n flex: 1 1 auto;\n}\n\n.log-entry {\n line-height: 20px;\n padding: 15px 0;\n background: $ui-base-color;\n border-bottom: 1px solid lighten($ui-base-color, 4%);\n\n &:last-child {\n border-bottom: 0;\n }\n\n &__header {\n display: flex;\n justify-content: flex-start;\n align-items: center;\n color: $darker-text-color;\n font-size: 14px;\n padding: 0 10px;\n }\n\n &__avatar {\n margin-right: 10px;\n\n .avatar {\n display: block;\n margin: 0;\n border-radius: 50%;\n width: 40px;\n height: 40px;\n }\n }\n\n &__content {\n max-width: calc(100% - 90px);\n }\n\n &__title {\n word-wrap: break-word;\n }\n\n &__timestamp {\n color: $dark-text-color;\n }\n\n a,\n .username,\n .target {\n color: $secondary-text-color;\n text-decoration: none;\n font-weight: 500;\n }\n}\n\na.name-tag,\n.name-tag,\na.inline-name-tag,\n.inline-name-tag {\n text-decoration: none;\n color: $secondary-text-color;\n\n .username {\n font-weight: 500;\n }\n\n &.suspended {\n .username {\n text-decoration: line-through;\n color: lighten($error-red, 12%);\n }\n\n .avatar {\n filter: grayscale(100%);\n opacity: 0.8;\n }\n }\n}\n\na.name-tag,\n.name-tag {\n display: flex;\n align-items: center;\n\n .avatar {\n display: block;\n margin: 0;\n margin-right: 5px;\n border-radius: 50%;\n }\n\n &.suspended {\n .avatar {\n filter: grayscale(100%);\n opacity: 0.8;\n }\n }\n}\n\n.speech-bubble {\n margin-bottom: 20px;\n border-left: 4px solid $ui-highlight-color;\n\n &.positive {\n border-left-color: $success-green;\n }\n\n &.negative {\n border-left-color: lighten($error-red, 12%);\n }\n\n &.warning {\n border-left-color: $gold-star;\n }\n\n &__bubble {\n padding: 16px;\n padding-left: 14px;\n font-size: 15px;\n line-height: 20px;\n border-radius: 4px 4px 4px 0;\n position: relative;\n font-weight: 500;\n\n a {\n color: $darker-text-color;\n }\n }\n\n &__owner {\n padding: 8px;\n padding-left: 12px;\n }\n\n time {\n color: $dark-text-color;\n }\n}\n\n.report-card {\n background: $ui-base-color;\n border-radius: 4px;\n margin-bottom: 20px;\n\n &__profile {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 15px;\n\n .account {\n padding: 0;\n border: 0;\n\n &__avatar-wrapper {\n margin-left: 0;\n }\n }\n\n &__stats {\n flex: 0 0 auto;\n font-weight: 500;\n color: $darker-text-color;\n text-transform: uppercase;\n text-align: right;\n\n a {\n color: inherit;\n text-decoration: none;\n\n &:focus,\n &:hover,\n &:active {\n color: lighten($darker-text-color, 8%);\n }\n }\n\n .red {\n color: $error-value-color;\n }\n }\n }\n\n &__summary {\n &__item {\n display: flex;\n justify-content: flex-start;\n border-top: 1px solid darken($ui-base-color, 4%);\n\n &:hover {\n background: lighten($ui-base-color, 2%);\n }\n\n &__reported-by,\n &__assigned {\n padding: 15px;\n flex: 0 0 auto;\n box-sizing: border-box;\n width: 150px;\n color: $darker-text-color;\n\n &,\n .username {\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n }\n\n &__content {\n flex: 1 1 auto;\n max-width: calc(100% - 300px);\n\n &__icon {\n color: $dark-text-color;\n margin-right: 4px;\n font-weight: 500;\n }\n }\n\n &__content a {\n display: block;\n box-sizing: border-box;\n width: 100%;\n padding: 15px;\n text-decoration: none;\n color: $darker-text-color;\n }\n }\n }\n}\n\n.one-line {\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n.ellipsized-ip {\n display: inline-block;\n max-width: 120px;\n overflow: hidden;\n text-overflow: ellipsis;\n vertical-align: middle;\n}\n\n.admin-account-bio {\n display: flex;\n flex-wrap: wrap;\n margin: 0 -5px;\n margin-top: 20px;\n\n > div {\n box-sizing: border-box;\n padding: 0 5px;\n margin-bottom: 10px;\n flex: 1 0 50%;\n }\n\n .account__header__fields,\n .account__header__content {\n background: lighten($ui-base-color, 8%);\n border-radius: 4px;\n height: 100%;\n }\n\n .account__header__fields {\n margin: 0;\n border: 0;\n\n a {\n color: lighten($ui-highlight-color, 8%);\n }\n\n dl:first-child .verified {\n border-radius: 0 4px 0 0;\n }\n\n .verified a {\n color: $valid-value-color;\n }\n }\n\n .account__header__content {\n box-sizing: border-box;\n padding: 20px;\n color: $primary-text-color;\n }\n}\n\n.center-text {\n text-align: center;\n}\n\n.announcements-list {\n border: 1px solid lighten($ui-base-color, 4%);\n border-radius: 4px;\n\n &__item {\n padding: 15px 0;\n background: $ui-base-color;\n border-bottom: 1px solid lighten($ui-base-color, 4%);\n\n &__title {\n padding: 0 15px;\n display: block;\n font-weight: 500;\n font-size: 18px;\n line-height: 1.5;\n color: $secondary-text-color;\n text-decoration: none;\n margin-bottom: 10px;\n\n &:hover,\n &:focus,\n &:active {\n color: $primary-text-color;\n }\n }\n\n &__meta {\n padding: 0 15px;\n color: $dark-text-color;\n }\n\n &__action-bar {\n display: flex;\n justify-content: space-between;\n align-items: center;\n }\n\n &:last-child {\n border-bottom: 0;\n }\n }\n}\n","$emojis-requiring-outlines: '8ball' 'ant' 'back' 'black_circle' 'black_heart' 'black_large_square' 'black_medium_small_square' 'black_medium_square' 'black_nib' 'black_small_square' 'bomb' 'bowling' 'bust_in_silhouette' 'busts_in_silhouette' 'camera' 'camera_with_flash' 'clubs' 'copyright' 'curly_loop' 'currency_exchange' 'dark_sunglasses' 'eight_pointed_black_star' 'electric_plug' 'end' 'female-guard' 'film_projector' 'fried_egg' 'gorilla' 'guardsman' 'heavy_check_mark' 'heavy_division_sign' 'heavy_dollar_sign' 'heavy_minus_sign' 'heavy_multiplication_x' 'heavy_plus_sign' 'hocho' 'hole' 'joystick' 'kaaba' 'lower_left_ballpoint_pen' 'lower_left_fountain_pen' 'male-guard' 'microphone' 'mortar_board' 'movie_camera' 'musical_score' 'on' 'registered' 'soon' 'spades' 'speaking_head_in_silhouette' 'spider' 'telephone_receiver' 'tm' 'top' 'tophat' 'turkey' 'vhs' 'video_camera' 'video_game' 'water_buffalo' 'waving_black_flag' 'wavy_dash' !default;\n\n%emoji-outline {\n filter: drop-shadow(1px 1px 0 $primary-text-color) drop-shadow(-1px 1px 0 $primary-text-color) drop-shadow(1px -1px 0 $primary-text-color) drop-shadow(-1px -1px 0 $primary-text-color);\n}\n\n.emojione {\n @each $emoji in $emojis-requiring-outlines {\n &[title=':#{$emoji}:'] {\n @extend %emoji-outline;\n }\n }\n}\n\n.hicolor-privacy-icons {\n .status__visibility-icon.fa-globe,\n .composer--options--dropdown--content--item .fa-globe {\n color: #1976D2;\n }\n\n .status__visibility-icon.fa-unlock,\n .composer--options--dropdown--content--item .fa-unlock {\n color: #388E3C;\n }\n\n .status__visibility-icon.fa-lock,\n .composer--options--dropdown--content--item .fa-lock {\n color: #FFA000;\n }\n\n .status__visibility-icon.fa-envelope,\n .composer--options--dropdown--content--item .fa-envelope {\n color: #D32F2F;\n }\n}\n","body.rtl {\n direction: rtl;\n\n .column-header > button {\n text-align: right;\n padding-left: 0;\n padding-right: 15px;\n }\n\n .radio-button__input {\n margin-right: 0;\n margin-left: 10px;\n }\n\n .directory__card__bar .display-name {\n margin-left: 0;\n margin-right: 15px;\n }\n\n .display-name {\n text-align: right;\n }\n\n .notification__message {\n margin-left: 0;\n margin-right: 68px;\n }\n\n .drawer__inner__mastodon > img {\n transform: scaleX(-1);\n }\n\n .notification__favourite-icon-wrapper {\n left: auto;\n right: -26px;\n }\n\n .landing-page__logo {\n margin-right: 0;\n margin-left: 20px;\n }\n\n .landing-page .features-list .features-list__row .visual {\n margin-left: 0;\n margin-right: 15px;\n }\n\n .column-link__icon,\n .column-header__icon {\n margin-right: 0;\n margin-left: 5px;\n }\n\n .compose-form .compose-form__buttons-wrapper .character-counter__wrapper {\n margin-right: 0;\n margin-left: 4px;\n }\n\n .composer--publisher {\n text-align: left;\n }\n\n .boost-modal__status-time,\n .favourite-modal__status-time {\n float: left;\n }\n\n .navigation-bar__profile {\n margin-left: 0;\n margin-right: 8px;\n }\n\n .search__input {\n padding-right: 10px;\n padding-left: 30px;\n }\n\n .search__icon .fa {\n right: auto;\n left: 10px;\n }\n\n .columns-area {\n direction: rtl;\n }\n\n .column-header__buttons {\n left: 0;\n right: auto;\n margin-left: 0;\n margin-right: -15px;\n }\n\n .column-inline-form .icon-button {\n margin-left: 0;\n margin-right: 5px;\n }\n\n .column-header__links .text-btn {\n margin-left: 10px;\n margin-right: 0;\n }\n\n .account__avatar-wrapper {\n float: right;\n }\n\n .column-header__back-button {\n padding-left: 5px;\n padding-right: 0;\n }\n\n .column-header__setting-arrows {\n float: left;\n }\n\n .setting-toggle__label {\n margin-left: 0;\n margin-right: 8px;\n }\n\n .setting-meta__label {\n float: left;\n }\n\n .status__avatar {\n margin-left: 10px;\n margin-right: 0;\n\n // Those are used for public pages\n left: auto;\n right: 10px;\n }\n\n .activity-stream .status.light {\n padding-left: 10px;\n padding-right: 68px;\n }\n\n .status__info .status__display-name,\n .activity-stream .status.light .status__display-name {\n padding-left: 25px;\n padding-right: 0;\n }\n\n .activity-stream .pre-header {\n padding-right: 68px;\n padding-left: 0;\n }\n\n .status__prepend {\n margin-left: 0;\n margin-right: 58px;\n }\n\n .status__prepend-icon-wrapper {\n left: auto;\n right: -26px;\n }\n\n .activity-stream .pre-header .pre-header__icon {\n left: auto;\n right: 42px;\n }\n\n .account__avatar-overlay-overlay {\n right: auto;\n left: 0;\n }\n\n .column-back-button--slim-button {\n right: auto;\n left: 0;\n }\n\n .status__relative-time,\n .activity-stream .status.light .status__header .status__meta {\n float: left;\n text-align: left;\n }\n\n .status__action-bar {\n &__counter {\n margin-right: 0;\n margin-left: 11px;\n\n .status__action-bar-button {\n margin-right: 0;\n margin-left: 4px;\n }\n }\n }\n\n .status__action-bar-button {\n float: right;\n margin-right: 0;\n margin-left: 18px;\n }\n\n .status__action-bar-dropdown {\n float: right;\n }\n\n .privacy-dropdown__dropdown {\n margin-left: 0;\n margin-right: 40px;\n }\n\n .privacy-dropdown__option__icon {\n margin-left: 10px;\n margin-right: 0;\n }\n\n .detailed-status__display-name .display-name {\n text-align: right;\n }\n\n .detailed-status__display-avatar {\n margin-right: 0;\n margin-left: 10px;\n float: right;\n }\n\n .detailed-status__favorites,\n .detailed-status__reblogs {\n margin-left: 0;\n margin-right: 6px;\n }\n\n .fa-ul {\n margin-left: 2.14285714em;\n }\n\n .fa-li {\n left: auto;\n right: -2.14285714em;\n }\n\n .admin-wrapper {\n direction: rtl;\n }\n\n .admin-wrapper .sidebar ul a i.fa,\n a.table-action-link i.fa {\n margin-right: 0;\n margin-left: 5px;\n }\n\n .simple_form .check_boxes .checkbox label {\n padding-left: 0;\n padding-right: 25px;\n }\n\n .simple_form .input.with_label.boolean label.checkbox {\n padding-left: 25px;\n padding-right: 0;\n }\n\n .simple_form .check_boxes .checkbox input[type=\"checkbox\"],\n .simple_form .input.boolean input[type=\"checkbox\"] {\n left: auto;\n right: 0;\n }\n\n .simple_form .input.radio_buttons .radio {\n left: auto;\n right: 0;\n }\n\n .simple_form .input.radio_buttons .radio > label {\n padding-right: 28px;\n padding-left: 0;\n }\n\n .simple_form .input-with-append .input input {\n padding-left: 142px;\n padding-right: 0;\n }\n\n .simple_form .input.boolean label.checkbox {\n left: auto;\n right: 0;\n }\n\n .simple_form .input.boolean .label_input,\n .simple_form .input.boolean .hint {\n padding-left: 0;\n padding-right: 28px;\n }\n\n .simple_form .label_input__append {\n right: auto;\n left: 3px;\n\n &::after {\n right: auto;\n left: 0;\n background-image: linear-gradient(to left, rgba(darken($ui-base-color, 10%), 0), darken($ui-base-color, 10%));\n }\n }\n\n .simple_form select {\n background: darken($ui-base-color, 10%) url(\"data:image/svg+xml;utf8,\") no-repeat left 8px center / auto 16px;\n }\n\n .table th,\n .table td {\n text-align: right;\n }\n\n .filters .filter-subset {\n margin-right: 0;\n margin-left: 45px;\n }\n\n .landing-page .header-wrapper .mascot {\n right: 60px;\n left: auto;\n }\n\n .landing-page__call-to-action .row__information-board {\n direction: rtl;\n }\n\n .landing-page .header .hero .floats .float-1 {\n left: -120px;\n right: auto;\n }\n\n .landing-page .header .hero .floats .float-2 {\n left: 210px;\n right: auto;\n }\n\n .landing-page .header .hero .floats .float-3 {\n left: 110px;\n right: auto;\n }\n\n .landing-page .header .links .brand img {\n left: 0;\n }\n\n .landing-page .fa-external-link {\n padding-right: 5px;\n padding-left: 0 !important;\n }\n\n .landing-page .features #mastodon-timeline {\n margin-right: 0;\n margin-left: 30px;\n }\n\n @media screen and (min-width: 631px) {\n .column,\n .drawer {\n padding-left: 5px;\n padding-right: 5px;\n\n &:first-child {\n padding-left: 5px;\n padding-right: 10px;\n }\n }\n\n .columns-area > div {\n .column,\n .drawer {\n padding-left: 5px;\n padding-right: 5px;\n }\n }\n }\n\n .columns-area--mobile .column,\n .columns-area--mobile .drawer {\n padding-left: 0;\n padding-right: 0;\n }\n\n .public-layout {\n .header {\n .nav-button {\n margin-left: 8px;\n margin-right: 0;\n }\n }\n\n .public-account-header__tabs {\n margin-left: 0;\n margin-right: 20px;\n }\n }\n\n .landing-page__information {\n .account__display-name {\n margin-right: 0;\n margin-left: 5px;\n }\n\n .account__avatar-wrapper {\n margin-left: 12px;\n margin-right: 0;\n }\n }\n\n .card__bar .display-name {\n margin-left: 0;\n margin-right: 15px;\n text-align: right;\n }\n\n .fa-chevron-left::before {\n content: \"\\F054\";\n }\n\n .fa-chevron-right::before {\n content: \"\\F053\";\n }\n\n .column-back-button__icon {\n margin-right: 0;\n margin-left: 5px;\n }\n\n .column-header__setting-arrows .column-header__setting-btn:last-child {\n padding-left: 0;\n padding-right: 10px;\n }\n\n .simple_form .input.radio_buttons .radio > label input {\n left: auto;\n right: 0;\n }\n}\n",".dashboard__counters {\n display: flex;\n flex-wrap: wrap;\n margin: 0 -5px;\n margin-bottom: 20px;\n\n & > div {\n box-sizing: border-box;\n flex: 0 0 33.333%;\n padding: 0 5px;\n margin-bottom: 10px;\n\n & > div,\n & > a {\n padding: 20px;\n background: lighten($ui-base-color, 4%);\n border-radius: 4px;\n box-sizing: border-box;\n height: 100%;\n }\n\n & > a {\n text-decoration: none;\n color: inherit;\n display: block;\n\n &:hover,\n &:focus,\n &:active {\n background: lighten($ui-base-color, 8%);\n }\n }\n }\n\n &__num,\n &__text {\n text-align: center;\n font-weight: 500;\n font-size: 24px;\n line-height: 21px;\n color: $primary-text-color;\n font-family: $font-display, sans-serif;\n margin-bottom: 20px;\n line-height: 30px;\n }\n\n &__text {\n font-size: 18px;\n }\n\n &__label {\n font-size: 14px;\n color: $darker-text-color;\n text-align: center;\n font-weight: 500;\n }\n}\n\n.dashboard__widgets {\n display: flex;\n flex-wrap: wrap;\n margin: 0 -5px;\n\n & > div {\n flex: 0 0 33.333%;\n margin-bottom: 20px;\n\n & > div {\n padding: 0 5px;\n }\n }\n\n a:not(.name-tag) {\n color: $ui-secondary-color;\n font-weight: 500;\n text-decoration: none;\n }\n}\n","// components.scss\n.compose-form {\n .compose-form__modifiers {\n .compose-form__upload {\n &-description {\n input {\n &::placeholder {\n opacity: 1.0;\n }\n }\n }\n }\n }\n}\n\n.rich-formatting a,\n.rich-formatting p a,\n.rich-formatting li a,\n.landing-page__short-description p a,\n.status__content a,\n.reply-indicator__content a {\n color: lighten($ui-highlight-color, 12%);\n text-decoration: underline;\n\n &.mention {\n text-decoration: none;\n }\n\n &.mention span {\n text-decoration: underline;\n\n &:hover,\n &:focus,\n &:active {\n text-decoration: none;\n }\n }\n\n &:hover,\n &:focus,\n &:active {\n text-decoration: none;\n }\n\n &.status__content__spoiler-link {\n color: $secondary-text-color;\n text-decoration: none;\n }\n}\n\n.status__content__read-more-button {\n text-decoration: underline;\n\n &:hover,\n &:focus,\n &:active {\n text-decoration: none;\n }\n}\n\n.getting-started__footer a {\n text-decoration: underline;\n\n &:hover,\n &:focus,\n &:active {\n text-decoration: none;\n }\n}\n\n.nothing-here {\n color: $darker-text-color;\n}\n\n.public-layout .public-account-header__tabs__tabs .counter.active::after {\n border-bottom: 4px solid $ui-highlight-color;\n}\n"],"sourceRoot":""} \ No newline at end of file diff --git a/priv/static/packs/skins/glitch/contrast/common.js b/priv/static/packs/skins/glitch/contrast/common.js deleted file mode 100644 index adca386cf..000000000 Binary files a/priv/static/packs/skins/glitch/contrast/common.js and /dev/null differ diff --git a/priv/static/packs/skins/glitch/contrast/common.js.map b/priv/static/packs/skins/glitch/contrast/common.js.map deleted file mode 100644 index 91cc60e8c..000000000 Binary files a/priv/static/packs/skins/glitch/contrast/common.js.map and /dev/null differ diff --git a/priv/static/packs/skins/glitch/mastodon-light/common.css b/priv/static/packs/skins/glitch/mastodon-light/common.css deleted file mode 100644 index 90aa2181c..000000000 Binary files a/priv/static/packs/skins/glitch/mastodon-light/common.css and /dev/null differ diff --git a/priv/static/packs/skins/glitch/mastodon-light/common.css.map b/priv/static/packs/skins/glitch/mastodon-light/common.css.map deleted file mode 100644 index 88fa5f09b..000000000 --- a/priv/static/packs/skins/glitch/mastodon-light/common.css.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["webpack:///common.scss","webpack:///./app/javascript/flavours/glitch/styles/reset.scss","webpack:///./app/javascript/flavours/glitch/styles/mastodon-light/variables.scss","webpack:///./app/javascript/flavours/glitch/styles/basics.scss","webpack:///./app/javascript/flavours/glitch/styles/containers.scss","webpack:///./app/javascript/flavours/glitch/styles/_mixins.scss","webpack:///./app/javascript/flavours/glitch/styles/variables.scss","webpack:///./app/javascript/flavours/glitch/styles/lists.scss","webpack:///./app/javascript/flavours/glitch/styles/modal.scss","webpack:///./app/javascript/flavours/glitch/styles/footer.scss","webpack:///./app/javascript/flavours/glitch/styles/compact_header.scss","webpack:///./app/javascript/flavours/glitch/styles/widgets.scss","webpack:///./app/javascript/flavours/glitch/styles/forms.scss","webpack:///./app/javascript/flavours/glitch/styles/accounts.scss","webpack:///./app/javascript/flavours/glitch/styles/statuses.scss","webpack:///./app/javascript/flavours/glitch/styles/components/index.scss","webpack:///./app/javascript/flavours/glitch/styles/components/boost.scss","webpack:///./app/javascript/flavours/glitch/styles/components/accounts.scss","webpack:///./app/javascript/flavours/glitch/styles/components/domains.scss","webpack:///./app/javascript/flavours/glitch/styles/components/status.scss","webpack:///./app/javascript/flavours/glitch/styles/components/modal.scss","webpack:///./app/javascript/flavours/glitch/styles/components/composer.scss","webpack:///./app/javascript/flavours/glitch/styles/components/columns.scss","webpack:///./app/javascript/flavours/glitch/styles/components/regeneration_indicator.scss","webpack:///./app/javascript/flavours/glitch/styles/components/directory.scss","webpack:///./app/javascript/flavours/glitch/styles/components/search.scss","webpack:///","webpack:///./app/javascript/flavours/glitch/styles/components/emoji.scss","webpack:///./app/javascript/flavours/glitch/styles/components/doodle.scss","webpack:///./app/javascript/flavours/glitch/styles/components/drawer.scss","webpack:///./app/javascript/flavours/glitch/styles/components/media.scss","webpack:///./app/javascript/flavours/glitch/styles/components/sensitive.scss","webpack:///./app/javascript/flavours/glitch/styles/components/lists.scss","webpack:///./app/javascript/flavours/glitch/styles/components/emoji_picker.scss","webpack:///./app/javascript/flavours/glitch/styles/components/local_settings.scss","webpack:///./app/javascript/flavours/glitch/styles/components/error_boundary.scss","webpack:///./app/javascript/flavours/glitch/styles/components/single_column.scss","webpack:///./app/javascript/flavours/glitch/styles/components/announcements.scss","webpack:///./app/javascript/flavours/glitch/styles/polls.scss","webpack:///./app/javascript/flavours/glitch/styles/about.scss","webpack:///./app/javascript/flavours/glitch/styles/tables.scss","webpack:///./app/javascript/flavours/glitch/styles/admin.scss","webpack:///./app/javascript/flavours/glitch/styles/accessibility.scss","webpack:///./app/javascript/flavours/glitch/styles/rtl.scss","webpack:///./app/javascript/flavours/glitch/styles/dashboard.scss","webpack:///./app/javascript/flavours/glitch/styles/mastodon-light/diff.scss"],"names":[],"mappings":"AAAA,2ZCKA,QAaE,UACA,SACA,eACA,aACA,wBACA,+EAIF,aAEE,MAGF,aACE,OAGF,eACE,cAGF,WACE,qDAGF,UAEE,aACA,OAGF,wBACE,iBACA,MAGF,0CACE,qBAGF,UACE,YACA,2BAGF,kBACE,cACA,mBACA,iCAGF,kBACE,kCAGF,kBACE,2BAGF,aACE,gBACA,8BACA,CC3EwB,iEDkF1B,kBClF0B,4BDsF1B,sBACE,MEtFF,sBACE,mBACA,eACA,iBACA,gBACA,WDXM,kCCaN,6BACA,8BACA,CADA,0BACA,CADA,qBACA,0CACA,wCACA,kBAEA,sIAYE,eAGF,SACE,oCAEA,WACE,iBACA,kBACA,uCAGF,iBACE,WACA,YACA,mCAGF,iBACE,cAIJ,kBDjDwB,kBCqDxB,iBACE,kBACA,0BAEA,iBACE,YAIJ,kBACE,SACA,iBACA,uBAEA,iBACE,WACA,YACA,gBACA,YAIJ,kBACE,UACA,YAGF,iBACE,kBACA,cDpFiB,mBAEK,WCqFtB,YACA,UACA,aACA,uBACA,mBACA,oBAEA,qBACE,YACA,wBAEA,aACE,gBACA,WACA,YACA,kBACA,uBAGF,cACE,iBACA,gBACA,QAMR,mBACE,eACA,cAEA,YACE,6BAKF,YAEE,WACA,mBACA,uBACA,oBACA,yEAKF,gBAEE,+EAKF,WAEE,gBCrJJ,WACE,CACA,kBACA,qCAEA,eALF,UAMI,SACA,kBAIJ,sBACE,qCAEA,gBAHF,kBAII,qBAGF,YACE,uBACA,mBACA,wBAEA,SFtBI,YEwBF,kBACA,sBAGF,YACE,uBACA,mBACA,WF/BE,qBEiCF,UACA,kBACA,iBACA,uBACA,gBACA,eACA,mCAMJ,WACE,CACA,cACA,mBACA,sBACA,qCAEA,kCAPF,UAQI,aACA,aACA,kBAKN,WACE,CACA,YACA,eACA,iBACA,sBACA,CACA,gBACA,CACA,sBACA,qCAEA,gBAZF,UAaI,CACA,eACA,CACA,mBACA,0BAKA,UACqB,sCC3EvB,iBD4EE,6BAEA,UACE,YACA,cACA,SACA,kBACA,iBE5BkB,wBD9DtB,4BACA,uBD8FA,aACE,cF9FiB,wBEgGjB,iCAEA,aACE,gBACA,uBACA,gBACA,8BAIJ,aACE,eACA,iBACA,gBACA,SAIJ,YACE,cACA,8BACA,sBACA,mCACA,CADA,0BACA,mBAEA,eACE,WACA,mBAGF,aACE,WACA,mBAGF,aACE,WACA,mBAGF,eACE,WACA,qCAGF,QA3BF,UA4BI,qCACA,mBAEA,aACE,mBAGF,aACE,WACA,mBAGF,aACE,WACA,mBAGF,aACE,WACA,UAKN,YACE,cACA,8CACA,sBACA,mCACA,CADA,0BACA,mBAEA,eACE,WACA,mBAGF,eACE,WACA,mBAGF,aACE,WACA,mBAGF,eACE,WACA,mBAGF,aACE,WACA,uCAGF,eACE,wBAGF,kBACE,qCAGF,QAxCF,iDAyCI,uCAEA,YACE,aACA,mBACA,uBACA,iCAGF,UACE,uBACA,mBACA,sBAGF,YACE,sCAIJ,QA7DF,UA8DI,qCACA,mBAEA,aACE,mBAGF,aACE,WACA,mBAGF,aACE,WACA,mBAGF,aACE,WACA,mBAGF,aACE,WACA,sCAMJ,eADF,gBAEI,4BAGF,eACE,qCAEA,0BAHF,SAII,yBAIJ,kBACE,mCACA,kBACA,YACA,cACA,aACA,oBACA,uBACA,iBACA,gBACA,qCAEA,uBAZF,cAaI,WACA,MACA,OACA,SACA,gBACA,gBACA,YACA,6BAGF,cACE,eACA,kCAGF,YACE,oBACA,2BACA,iBACA,oCAGF,YACE,oBACA,uBACA,iBACA,mCAGF,YACE,oBACA,yBACA,iBACA,+BAGF,aACE,aACA,mCAEA,aACE,YACA,WACA,kBACA,YACA,UF3UA,qCE8UA,kCARF,WASI,+GAIJ,kBAGE,kCAIJ,YACE,mBACA,eACA,eACA,gBACA,qBACA,cF7Ve,mBE+Vf,kBACA,uHAEA,yBAGE,WFxWA,qCE4WF,0CACE,YACE,qCAKN,kBACE,CACA,oBACA,kBACA,6HAEA,oBAGE,mBACA,sBAON,YACE,cACA,0DACA,sBACA,mCACA,CADA,0BACA,gCAEA,UACE,cACA,gCAGF,UACE,cACA,qCAGF,qBAjBF,0BAkBI,WACA,gCAEA,YACE,kCAKN,iBACE,qCAEA,gCAHF,eAII,sCAKF,4BADF,eAEI,wCAIJ,eACE,mBACA,mCACA,gDAEA,UACE,qIAEA,8BAEE,CAFF,sBAEE,6DAGF,wBFvbe,8CE4bjB,yBACE,gBACA,aACA,kBACA,gBACA,oDAEA,UACE,cACA,kBACA,WACA,YACA,gDACA,MACA,OACA,kDAGF,mBACE,CADF,8BACE,CADF,gBACE,cACA,WACA,YACA,SACA,0BACA,qCAGF,6CA3BF,YA4BI,gDAIJ,eACE,6JAEA,iBAEE,qCAEA,4JAJF,eAKI,sCAKN,sCA/DF,eAgEI,gBACA,oDAEA,YACE,+FAGF,eAEE,6CAIJ,iBACE,iBACA,aACA,2BACA,mDAEA,UACE,cACA,mBACA,kBACA,SACA,OACA,QACA,YACA,0BACA,WACA,oDAGF,aACE,CAEA,WACqB,yCCzgB3B,kBD0gBM,cACA,wDAEA,aACE,WACA,YACA,SACA,kBACA,yBACA,mBACA,iBE7dc,wBD9DtB,4BACA,qCD+hBI,2CAvCF,YAwCI,mBACA,0BACA,YACA,mDAEA,YACE,oDAKA,UACqB,sCCtiB7B,CDuiBQ,sBACA,wDAEA,QACE,kBACA,iBErfY,wBD9DtB,4BACA,2DDsjBQ,mDAbF,YAcI,sCAKN,2CApEF,eAqEI,sCAGF,2CAxEF,cAyEI,8CAIJ,aACE,iBACA,mDAEA,gBACE,mBACA,sDAEA,cACE,iBACA,WFjlBF,gBEmlBE,gBACA,mBACA,uBACA,6BACA,4DAEA,aACE,eACA,WF3lBJ,gBE6lBI,gBACA,uBACA,qCAKN,4CA7BF,gBA8BI,aACA,8BACA,mBACA,mDAEA,aACE,iBACA,sDAEA,cACE,iBACA,iBACA,4DAEA,aFhnBS,oDEunBf,YACE,2BACA,oBACA,YACA,qEAEA,YACE,mBACA,gBACA,qCAGF,oEACE,YACE,6DAIJ,eACE,sBACA,cACA,cF5oBW,aE8oBX,+BACA,eACA,kBACA,kBACA,8DAEA,aACE,uEAGF,cACE,kEAGF,aACE,WACA,kBACA,SACA,OACA,WACA,gCACA,WACA,wBACA,yEAIA,+BACE,UACA,kFAGF,2BF9qBS,wEEorBT,SACE,wBACA,8DAIJ,oBACE,cACA,2EAGF,cACE,cACA,4EAGF,eACE,eACA,kBACA,WF1sBJ,uBE4sBI,2DAIJ,aACE,WACA,4DAGF,eACE,8CAKN,YACE,eACA,kEAEA,eACE,gBACA,uBACA,cACA,2FAEA,4BACE,yEAGF,YACE,qDAIJ,gBACE,eACA,cF7uBa,uDEgvBb,oBACE,cFjvBW,qBEmvBX,aACA,gBACA,8DAEA,eACE,WF3vBJ,qCEiwBF,6CAtCF,aAuCI,UACA,4CAKN,yBACE,qCAEA,0CAHF,eAII,wCAIJ,eACE,oCAGF,kBACE,mCACA,kBACA,gBACA,mBACA,qCAEA,mCAPF,eAQI,gBACA,gBACA,8DAGF,QACE,aACA,+DAEA,aACE,sFAGF,uBACE,yEAGF,aE3yBU,8DFizBV,mBACA,WFpzBE,qFEwzBJ,YAEE,eACA,cFxzBe,2CE4zBjB,gBACE,iCAIJ,YACE,cACA,kDACA,qCAEA,gCALF,aAMI,+CAGF,cACE,iCAIJ,eACE,2BAGF,YACE,eACA,eACA,cACA,+BAEA,qBACE,cACA,YACA,cACA,mBACA,kBACA,qCAEA,8BARF,aASI,sCAGF,8BAZF,cAaI,sCAIJ,0BAvBF,QAwBI,6BACA,+BAEA,UACE,UACA,gBACA,gCACA,0CAEA,eACE,0CAGF,kBFt3BkB,+IEy3BhB,kBAGE,WGl4BZ,eACE,aAEA,oBACE,aACA,iBAIJ,eACE,cACA,oBAEA,cACE,gBACA,mBACA,eChBJ,k1BACE,aACA,sBACA,aACA,UACA,yBAGF,YACE,OACA,sBACA,yBACA,2BAEA,MACE,iBACA,qCAIJ,gBACE,YACE,yBCrBF,eACE,iBACA,oBACA,eACA,cACA,qCAEA,uBAPF,iBAQI,mBACA,+BAGF,YACE,cACA,0CACA,wCAEA,aACE,WACA,YACA,wCAGF,aACE,WACA,YACA,wCAGF,aACE,WACA,YACA,kBACA,6CAEA,aACE,wCAIJ,aACE,WACA,YACA,wCAGF,aACE,WACA,YACA,qCAGF,6BAxCF,iCAyCI,+EAEA,aAEE,wCAGF,UACE,wCAGF,aACE,+EAGF,aAEE,wCAGF,UACE,sCAIJ,uCACE,aACE,sCAIJ,4JACE,YAIE,4BAKN,wBACE,gBACA,kBACA,cP9Fe,6BOiGf,aACE,qBACA,6BAIJ,oBACE,cACA,wGAEA,yBAGE,mCAKF,aACE,YACA,WACA,cACA,aACA,0HAMA,YACE,oBClIR,cACE,iBACA,cACA,gBACA,mBACA,eACA,qBACA,qCAEA,mBATF,iBAUI,oBACA,uBAGF,aACE,qBACA,0BAGF,eACE,cRjBe,wBQqBjB,oBACE,mBACA,kBACA,WACA,YACA,cC9BN,kBACE,mCACA,mBAEA,UACE,kBACA,gBACA,0BACA,gBLPI,uBKUJ,mBACE,CADF,8BACE,CADF,gBACE,cACA,WACA,YACA,SACA,0BACA,oBAIJ,kBTfwB,aSiBtB,0BACA,eACA,cTrBiB,iBSuBjB,qBACA,gBACA,8BAEA,UACE,YACA,gBACA,sBAGF,kBACE,iCAEA,eACE,uBAIJ,cACE,SACA,UACA,gBACA,uBACA,oBACA,kBACA,oBACA,cACA,sBAGF,aTrDiB,qBSuDf,4BAEA,yBACE,qCAKN,aAnEF,YAoEI,uBAIJ,kBACE,oBACA,yBAEA,YACE,yBACA,gBACA,eACA,cT5EiB,+BSgFnB,cACE,0CAEA,eACE,sDAGF,YACE,mBACA,gDAGF,UACE,YACA,0BACA,oCAIJ,YACE,mBAKF,aTzGmB,aS8GrB,YACE,kBACA,mBT9GwB,mCSgHxB,qBAGF,YACE,kBACA,0BACA,kBACA,cTzHmB,mBS2HnB,iBAGF,eACE,eACA,cThImB,iBSkInB,qBACA,gBACA,UACA,oBAEA,YACE,yBACA,gBACA,eACA,cT3IiB,0BS+InB,eACE,CACA,kBACA,mBAGF,oBACE,CACA,mBACA,cTxJiB,qBS0JjB,mBACA,gBACA,uBACA,0EAEA,yBAGE,uBAMJ,sBACA,kBACA,mBTxKwB,mCS0KxB,cT5KmB,gBS8KnB,mBACA,sDAEA,eAEE,CAII,qXADF,eACE,yBAKN,aACE,0BACA,CAMI,wLAGF,oBAGE,mIAEA,yBACE,gCAMR,kBACE,oCAEA,gBACE,cTvNe,8DS6NjB,iBACE,eACA,4DAGF,eACE,qBACA,iEAEA,eACE,kBAMR,YACE,CACA,eLlPM,CKoPN,cACA,cTlPmB,mBSoPnB,+BANA,iBACA,CLlPM,kCKgQN,CATA,aAGF,kBACE,CAEA,iBACA,kBACA,cACA,iBAEA,UTlQM,eSoQJ,gBACA,gBACA,mBACA,gBAGF,cACE,cTxQiB,qCS4QnB,aArBF,YAsBI,mBACA,iBAEA,cACE,aAKN,kBTpR0B,kBSsRxB,mCACA,iBAEA,qBACE,mBACA,uCAEA,YAEE,mBACA,8BACA,mBTjSoB,kBSmSpB,aACA,qBACA,cACA,mCACA,0EAIA,kBAGE,0BAIJ,kBTjTsB,eSmTpB,8BAGF,UACE,eACA,oBAGF,aACE,eACA,gBACA,WTpUE,mBSsUF,gBACA,uBACA,wBAEA,aTvUe,0BS2Uf,aACE,gBACA,eACA,eACA,cT/Ua,yFSqVf,UTxVE,+BS+VJ,aACE,YACA,uDAGF,oBT9VsB,eSoW1B,YACE,yBACA,gCAEA,aACE,WACA,YACA,kBACA,kBACA,kBACA,mBACA,yBACA,4CAEA,SACE,6CAGF,SACE,6CAGF,SACE,iBAKN,UACE,0BAEA,SACE,SACA,wBAGF,eACE,0BAGF,iBACE,yBACA,cTjZiB,gBSmZjB,aACA,sCAEA,eACE,0BAIJ,cACE,sBACA,gCACA,wCAGF,eACE,wBAGF,WACE,kBACA,eACA,gBACA,WT5aI,8BS+aJ,aACE,cT7ae,gBS+af,eACA,0BAIJ,SACE,iCACA,qCAGF,kCACE,YACE,sCAYJ,qIAPF,eAQI,gBACA,gBACA,iBAOJ,gBACE,qCAEA,eAHF,oBAII,uBAGF,sBACE,sCAEA,qBAHF,sBAII,sCAGF,qBAPF,UAQI,sCAGF,qBAXF,WAYI,kCAIJ,iBACE,qCAEA,gCAHF,4BAII,iEAIA,eACE,0DAGF,cACE,iBACA,oEAEA,UACE,YACA,gBACA,yFAGF,gBACE,SACA,mKAIJ,eAGE,gBAON,aT9gBmB,iCS6gBrB,kBAKI,6BAEA,eACE,kBAIJ,cACE,iBACA,wCAMF,oBACE,gBACA,cThiBsB,4JSmiBtB,yBAGE,oBAKN,kBACE,gBACA,eACA,kBACA,yBAEA,aACE,gBACA,aACA,CACA,kBACA,gBACA,uBACA,qBACA,WT/jBI,gCSikBJ,4FAEA,yBAGE,oCAIJ,eACE,0BAGF,iBACE,gCACA,MC/kBJ,+BACE,gBACA,iBAGF,eACE,aACA,cACA,qBAIA,kBACE,gBACA,4BAEA,QACE,0CAIA,kBACE,qDAEA,eACE,gDAIJ,iBACE,kBACA,sDAEA,iBACE,SACA,OACA,6BAKN,iBACE,gBACA,gDAEA,mBACE,eACA,gBACA,WVjDA,cUmDA,WACA,4EAGF,iBAEE,mDAGF,eACE,4CAGF,iBACE,QACA,OACA,qCAGF,aVhEoB,0BUkElB,gIAEA,oBAGE,0CAIJ,iBACE,CACA,iBACA,mBAKN,YACE,cACA,0BAEA,qBACE,cACA,UACA,cACA,oBAIJ,aVlGmB,sBUqGjB,aVlGsB,yBUsGtB,iBACE,kBACA,gBACA,wBAIJ,aACE,eACA,eACA,qBAGF,kBACE,cVvHiB,iCU0HjB,iBACE,eACA,iBACA,gBACA,gBACA,oBAIJ,kBACE,qBAGF,eACE,CAII,0JADF,eACE,sDAMJ,YACE,4DAEA,mBACE,eACA,WV1JA,gBU4JA,gBACA,cACA,wHAGF,aAEE,sDAIJ,cACE,kBACA,mDAKF,mBACE,eACA,WVhLE,cUkLF,kBACA,qBACA,gBACA,sCAGF,cACE,mCAGF,UACE,sCAIJ,cACE,4CAEA,mBACE,eACA,WVtME,cUwMF,gBACA,gBACA,4CAGF,kBACE,yCAGF,cACE,CADF,cACE,kDAIJ,oBACE,WACA,OACA,6BAGF,oBACE,cACA,4BAGF,kBACE,8CAEA,eACE,0BAIJ,YACE,CACA,eACA,oBACA,iCAEA,cACE,kCAGF,qBACE,eACA,cACA,eACA,oCAEA,aACE,2CAGF,eACE,6GAIJ,eAEE,qCAGF,yBA9BF,aA+BI,gBACA,kCAEA,cACE,0JAGF,kBAGE,iDAKN,iBACE,oBACA,eACA,WV1RI,cU4RJ,WACA,2CAKE,mBACE,eACA,WVpSA,qBUsSA,WACA,kBACA,gBACA,kBACA,cACA,0DAGF,iBACE,OACA,QACA,SACA,kDAKN,cACE,aACA,yBACA,kBACA,sJAGF,qBAKE,eACA,WVpUI,cUsUJ,WACA,UACA,oBACA,gBACA,mBACA,sBACA,kBACA,aACA,6RAEA,aACE,CAHF,+OAEA,aACE,CAHF,mQAEA,aACE,CAHF,sNAEA,aACE,8LAGF,eACE,oVAGF,oBACE,iOAGF,oBN1VY,oLM8VZ,iBACE,4WAGF,oBV9VsB,mBUiWpB,6CAKF,aACE,gUAGF,oBAME,8CAGF,aACE,gBACA,cACA,eACA,8BAIJ,UACE,uBAGF,eACE,aACA,oCAEA,YACE,mBACA,qEAIJ,aAGE,WACA,SACA,kBACA,mBV/YsB,WANlB,eUwZJ,oBACA,YACA,aACA,yBACA,qBACA,kBACA,sBACA,eACA,gBACA,UACA,mBACA,kBACA,sGAEA,cACE,uFAGF,wBACE,gLAGF,wBAEE,kHAGF,wBV/aoB,gGUmbpB,kBNpbQ,kHMubN,wBACE,sOAGF,wBAEE,qBAKN,uBACE,CADF,oBACE,CADF,eACE,sBACA,eACA,WVxcI,cU0cJ,WACA,UACA,oBACA,gBACA,wXACA,sBACA,kBACA,kBACA,mBACA,YACA,iBAGF,4BACE,oCAIA,iBACE,mCAGF,iBACE,UACA,QACA,CACA,qBACA,eACA,cVtdY,oBUwdZ,oBACA,eACA,gBACA,mBACA,gBACA,yCAEA,UACE,cACA,kBACA,MACA,QACA,WACA,UACA,oEACA,4BAKN,iBACE,0CAEA,wBACE,CADF,gBACE,qCAGF,iBACE,MACA,OACA,WACA,YACA,aACA,uBACA,mBACA,iCACA,kBACA,iBACA,gBACA,YACA,8CAEA,iBACE,6HAGE,UVthBF,aUgiBR,aACE,CACA,kBACA,eACA,gBAGF,kBACE,cVriBmB,kBUuiBnB,kBACA,mBACA,kBACA,uBAEA,qCACE,iCACA,cN/iBY,sBMmjBd,mCACE,+BACA,cNpjBQ,kBMwjBV,oBACE,cVzjBiB,qBU2jBjB,wBAEA,UVhkBI,0BUkkBF,kBAIJ,kBACE,4BAGF,SACE,sBACA,cACA,WACA,YACA,aACA,gCACA,mBV5kBsB,WALlB,eUolBJ,SACA,8CAEA,QACE,iHAGF,mBAGE,kCAGF,kBACE,uBAIJ,eACE,CAII,oKADF,eACE,0DAKN,eAzEF,eA0EI,eAIJ,eACE,kBACA,gBAEA,aVtnBmB,qBUwnBjB,sBAEA,yBACE,YAKN,eACE,mBACA,eACA,eAEA,oBACE,kBACA,cAGF,aVvoBwB,yBUyoBtB,qBACA,gBACA,2DAEA,aAGE,8BAKN,kBAEE,cV1pBmB,oCU6pBnB,cACE,mBACA,kBACA,4CAGF,aVnqBmB,gBUqqBjB,CAII,mUADF,eACE,0DAKN,6BAtBF,eAuBI,cAIJ,YACE,eACA,uBACA,UAGF,aACE,gBN5rBM,YM8rBN,qBACA,mCACA,qBACA,cAEA,aACE,SACA,iBAIJ,kBACE,cVxsBmB,WU0sBnB,sBAEA,aACE,eACA,eAKF,kBACE,sBAEA,eACE,CAII,+JADF,eACE,4CASR,qBACE,8BACA,WVzuBI,qCU2uBJ,oCACA,kBACA,aACA,mBACA,gDAEA,UVjvBI,0BUmvBF,oLAEA,oBAGE,0DAIJ,eACE,cACA,kBACA,CAII,yYADF,eACE,kEAIJ,eACE,oBAMR,YACE,eACA,mBACA,4DAEA,aAEE,6BAIA,wBACA,cACA,sBAIJ,iBACE,cV7xBmB,0BUgyBnB,iBACE,oBAIJ,eACE,mBACA,uBAEA,cACE,WV7yBI,kBU+yBJ,mBACA,SACA,UACA,4BAGF,aACE,eAIJ,aNtzBc,0SMg0BZ,+BACE,aAIJ,kBACE,sBACA,kBACA,aACA,mBACA,kBACA,kBACA,QACA,mCACA,sBAEA,aACE,8BAGF,sBACE,SACA,aACA,eACA,gCACA,oBAGF,aACE,WACA,oBACA,gBACA,eACA,CACA,oBACA,WACA,iCACA,oBAGF,oBN12Bc,gBM42BZ,2BAEA,kBN92BY,gBMg3BV,oBAKN,kBACE,6BAEA,wBACE,mBACA,eACA,aACA,4BAGF,kBACE,aACA,OACA,sBACA,cACA,cACA,gCAEA,iBACE,YACA,iBACA,kBACA,UACA,8BAGF,qBACE,qCAIJ,kBACE,gCAGF,wBACE,mCACA,kBACA,kBACA,kBACA,kBACA,sCAEA,wBACE,WACA,cACA,YACA,SACA,kBACA,MACA,UACA,yBAIJ,sBACE,aACA,mBACA,SCj7BF,aACE,qBACA,cACA,mCACA,qCAEA,QANF,eAOI,8EAMA,kBACE,YAKN,YACE,kBACA,gBACA,0BACA,gBAEA,aACE,WACA,YACA,SACA,oBACA,CADA,8BACA,CADA,gBACA,0BACA,qCAGF,WAfF,YAgBI,sCAGF,WAnBF,YAoBI,aAIJ,iBACE,aACA,aACA,2BACA,mBACA,mBACA,0BACA,qCAEA,WATF,eAUI,qBAGF,aACE,CAEA,UACqB,sCRpDzB,gBQqDI,wBAEA,UACE,YACA,cACA,SACA,kBACA,iBPLgB,wBD9DtB,4BACA,mBQoEM,oBACA,CADA,8BACA,CADA,gBACA,0BAIJ,gBACE,gBACA,iCAEA,cACE,WXhFA,gBWkFA,gBACA,uBACA,+BAGF,aACE,eACA,cXtFa,gBWwFb,gBACA,uBACA,aAMR,cACE,kBACA,gBACA,6GAEA,cAME,WX9GI,gBWgHJ,qBACA,iBACA,qBACA,sBAGF,ePrHM,oBOuHJ,WXxHI,eW0HJ,cACA,kBAGF,cACE,uCAGF,wBAEE,cXjIiB,oBWqInB,UACE,eACA,wBAEA,oBACE,iBACA,oBAIJ,WACE,gBACA,wBAEA,oBACE,gBACA,uBAIJ,cACE,WACA,qCAGF,YA9DF,iBA+DI,mBAEA,YACE,uCAGF,oBAEE,gBAKN,kBX1K0B,mCW4KxB,cXxJiB,eW0JjB,gBACA,kBACA,aACA,uBACA,mBACA,eACA,kBACA,aACA,gBACA,2BAEA,yBACE,yBAGF,qBACE,gBACA,yCAIJ,oBAEE,gBACA,eACA,kBACA,eACA,iBACA,gBACA,cX7MmB,mCW+MnB,mCACA,6DAEA,aPnNc,sCOqNZ,kCACA,qDAGF,aACE,oCACA,gCACA,0BAIJ,eACE,UACA,wBACA,gBACA,CADA,YACA,CACA,iCACA,CADA,uBACA,CADA,kBACA,eACA,iBACA,6BAEA,YACE,gCACA,yDAGF,qBAEE,aACA,kBACA,gBACA,gBACA,mBACA,uBACA,6BAGF,eACE,YACA,cACA,cX5PiB,gCW8PjB,6BAGF,aACE,cXlQiB,4BWsQnB,aXnQwB,qBWqQtB,qGAEA,yBAGE,oCAIJ,qCACE,iCACA,sCAEA,aPtRY,gBOwRV,0CAGF,aP3RY,wCOgSd,eACE,wCAIJ,UACE,0BAIA,aXzSmB,4BW4SjB,aX5SiB,qBW8Sf,qGAEA,yBAGE,iCAIJ,UX1TI,gBW4TF,wBAIJ,eACE,kBClUJ,kCACE,kBACA,gBACA,mBACA,qCAEA,iBANF,eAOI,gBACA,gBACA,6BAGF,eACE,SACA,gBACA,gFAEA,yBAEE,sCAIJ,UACE,yBAGF,kBZrBwB,6GYwBtB,sBAGE,CAHF,cAGE,8IAIA,eAGE,0BACA,iJAKF,yBAGE,kLAIA,iBAGE,qCAKN,4GACE,yBAGE,uCAKN,kBACE,qBAIJ,WACE,eACA,mBZtEwB,WANlB,oBY+EN,iBACA,YACA,iBACA,SACA,yBAEA,UACE,YACA,sBACA,iBACA,UZzFI,gFY6FN,kBAGE,qNAKA,kBZjGoB,4IYyGpB,kBR1GQ,qCQiHV,wBACE,YACE,0DAOJ,YACE,uCAGF,2BACE,gBACA,uDAEA,SACE,SACA,yDAGF,eACE,yDAKA,cACA,iBACA,mBACA,mFAGF,iBACE,eACA,WACA,WACA,WACA,qMAGF,eAGE,mEASF,cACE,gBACA,qFAGF,aZ/Jc,YYiKZ,eACA,WACA,eACA,gBACA,+GAGF,aACE,eACA,CACA,sBACA,eACA,yJAEA,cACE,uEAIJ,WACE,kBACA,WACA,eACA,iDAQF,iBACE,mBACA,yHAEA,iBACE,gBACA,+FAGF,UACE,oCAMR,aACE,eACA,iBACA,cACA,SACA,uBACA,CACA,eACA,qBACA,oFAEA,yBAEE,WC9OJ,gCACE,4CACA,kBAGF,mBACE,sBACA,oBACA,gBACA,kBACA,cAGF,aACE,eACA,iBACA,cbTwB,SaWxB,uBACA,UACA,eACA,wCAEA,yBAEE,uBAGF,abvBsB,eayBpB,SAIJ,wBACE,YACA,kBACA,sBACA,WbrCM,eauCN,qBACA,oBACA,eACA,gBACA,YACA,iBACA,iBACA,gBACA,eACA,kBACA,kBACA,yBACA,qBACA,uBACA,2BACA,qCACA,mBACA,WACA,4CAEA,wBAGE,4BACA,qCACA,sBAGF,eACE,mFAEA,wBTnEQ,gBSuEN,kBAIJ,wBb1EsB,ea4EpB,yGAGF,cAIE,iBACA,YACA,oBACA,iBACA,4BAGF,Ub9FM,mBAIgB,qGa8FpB,wBAGE,8BAIJ,kBbhGsB,2GamGpB,wBAGE,0BAIJ,cACE,iBACA,YACA,cbnHiB,oBaqHjB,uBACA,iBACA,kBACA,yBACA,+FAEA,oBAGE,cACA,mCAGF,UACE,uBAIJ,aACE,WACA,cAIJ,oBACE,UACA,cbjIoB,SamIpB,kBACA,uBACA,eACA,2BACA,2CACA,2DAEA,aAGE,sCACA,4BACA,2CACA,oBAGF,oCACE,uBAGF,aACE,6BACA,eACA,qBAGF,abxKwB,gCa4KxB,QACE,uEAGF,mBAGE,uBAGF,abzLmB,sFa4LjB,aAGE,oCACA,6BAGF,kCACE,gCAGF,aACE,6BACA,8BAGF,abzMsB,uCa4MpB,aACE,wBAKN,sBACE,8BACA,qBACA,kBACA,YACA,8BAEA,6BACE,mBAKN,ablOqB,SaoOnB,kBACA,uBACA,eACA,gBACA,eACA,cACA,iBACA,UACA,2BACA,2CACA,0EAEA,aAGE,oCACA,4BACA,2CACA,yBAGF,kCACE,4BAGF,UACE,6BACA,eACA,0BAGF,abhQwB,qCaoQxB,QACE,sFAGF,mBAGE,gBAIJ,iBACE,uBACA,YAGF,WACE,cACA,qBACA,QACA,SACA,kBACA,+BAEA,kBAEE,mBACA,oBACA,kBACA,mBACA,iBAKF,WACE,uCAIJ,MACE,kBACA,CT/SU,sESsTZ,aTtTY,uBS0TZ,aT3Tc,4DSiUV,4CACE,CADF,oCACE,8DAKF,6CACE,CADF,qCACE,6BAKN,aACE,gBACA,qBACA,mCAEA,UbtVM,0BawVJ,eAIJ,aACE,eACA,gBACA,uBACA,mBACA,iBAEA,aACE,wBACA,sBAIA,cACA,gBAKA,yCAPF,WACE,CAEA,gBACA,uBACA,gBACA,mBAWA,CAVA,mBAGF,aACE,CACA,cAKA,8BAIA,yBACE,sBAIJ,SACE,YACA,eACA,iBACA,uBACA,mBACA,gBACA,CAME,sDAGF,cACE,YACA,kBACA,oBACA,qBAKN,eACE,wBAGF,cACE,eAGF,iBACE,WACA,YACA,aACA,mBACA,uBACA,sBACA,6CAEA,cTxX4B,eAEC,0DSyX3B,sBACA,CADA,gCACA,CADA,kBACA,4BAGF,iBACE,qEAGF,YACE,iBAIJ,iBACE,WACA,YACA,aACA,mBACA,uBACA,qBAEA,cThZ4B,eAEC,WSiZ3B,YACA,sBACA,CADA,gCACA,CADA,kBACA,WAIJ,oBACE,oBAGF,YACE,kBACA,2BAGF,+BACE,mBACA,SACA,gBAGF,kBbzdqB,ca2dnB,kBACA,uCACA,mBAEA,eACE,uBAIJ,iBACE,QACA,SACA,2BACA,4BAEA,UACE,gBACA,2BACA,0Bb7eiB,2BaifnB,WACE,iBACA,uBACA,yBbpfiB,8BawfnB,QACE,iBACA,uBACA,4Bb3fiB,6Ba+fnB,SACE,gBACA,2BACA,2BblgBiB,wBawgBnB,cACE,iBACA,cACA,iBACA,sBACA,qBACA,mBb9gBiB,WAHb,gBaohBJ,uBACA,mBACA,yFAEA,kBblhBsB,cAHL,Ua0hBf,sCAKN,aACE,iBACA,gBACA,QACA,gBACA,aACA,yCAEA,eACE,mBbxiBiB,ca0iBjB,kBACA,mCACA,gBACA,kBACA,sDAGF,OACE,wDAIA,UACE,8CAIJ,cACE,iBACA,cACA,iBACA,sBACA,qBACA,mBbjkBiB,WAHb,gBaukBJ,uBACA,mBACA,oDAEA,SACE,oDAGF,kBbzkBsB,cAHL,iBamlBrB,qBACE,iBAIA,sBACA,cb5kBgB,oBa+kBhB,cACE,gBACA,mBACA,kBACA,mBAGF,cACE,mBACA,iBAIJ,aAEE,gBACA,qCAGF,cACE,SACE,iBAGF,aAEE,CAEA,gBACA,yCAEA,iBACE,uCAGF,kBACE,qDAKF,gBAEE,kBACA,YAKN,qBACE,aACA,mBACA,cACA,gBACA,iBAGF,aACE,cACA,CACA,sBACA,Wb5pBM,qBa8pBN,kBACA,eACA,gBACA,gCACA,2BACA,mDACA,qBAEA,eACE,eACA,qCVxoBA,6GADF,kBUgpBI,4BACA,kHV5oBJ,kBU2oBI,4BACA,wBAIJ,+BACE,cb/qBsB,sBamrBxB,eACE,aACA,2BAGF,aACE,eACA,kBAIJ,iBACE,yBAEA,iBACE,SACA,UACA,mBbpsBsB,yBassBtB,gBACA,kBACA,eACA,gBACA,iBACA,WbjtBI,mDastBR,oBACE,aAGF,iBACE,kBACA,cACA,iCACA,mCAEA,eACE,yBAGF,YAVF,cAWI,oBAGF,YACE,sBACA,qBAGF,aACE,kBACA,iBACA,yBAKF,uBADF,YAEI,gBAIJ,oBACE,kBACA,eACA,6BACA,SACA,UACA,yBACA,CADA,qBACA,CADA,oBACA,CADA,gBACA,gDACA,wCACA,iCAGF,QACE,mBACA,WACA,YACA,gBACA,UACA,kBACA,UACA,yBAGF,kBACE,WACA,wBACA,qBAGF,UACE,YACA,UACA,mBACA,yBbtxBwB,qCawxBxB,sEAGF,wBACE,4CAGF,wBb9xB0B,+EakyB1B,wBACE,2BAGF,iBACE,WACA,YACA,MACA,SACA,gBACA,mBACA,cACA,SACA,UACA,6BACA,CAKA,uEAFF,SACE,6BAeA,CAdA,sBAGF,iBACE,WACA,YACA,MACA,SACA,gBACA,mBACA,cACA,WAGA,8CAGF,SACE,qBAGF,iBACE,QACA,SACA,WACA,YACA,yBACA,kBACA,sBACA,sBACA,yBACA,sCACA,4CAGF,SACE,qBb11BwB,yDa81B1B,kBb/1B0B,2Baq2B1B,iBACE,gBACA,cAGF,aACE,kBAGF,kBb92B0B,cag3BxB,oBAEA,abp3BmB,oBaw3BnB,ab32BgB,yBa+2BhB,0BACE,CADF,uBACE,CADF,kBACE,kDAKA,sBACA,cACA,wDAEA,kBACE,8DAGF,cACE,sDAGF,abj4Bc,eam4BZ,0DAEA,abr4BY,0Bau4BV,sDAIJ,oBACE,cbz5Be,sMa45Bf,yBAGE,0BAKN,aACE,UACA,mCACA,CADA,0BACA,gBACA,6BAEA,cACE,yBACA,cb56Be,aa86Bf,gBACA,gCACA,sCAGF,oDACE,YACE,uCAIJ,oDACE,YACE,uCAIJ,yBA3BF,YA4BI,yCAGF,eACE,aACA,iDAEA,abv8Be,qBa88BrB,oBACE,kBACA,eACA,iBACA,gBACA,mBbj9BwB,gBam9BxB,iBACA,qBAGF,eACE,gBACA,2BAEA,iBACE,aACA,wBAGF,kBACE,yBAGF,oBACE,gBACA,yBACA,yBACA,eAIJ,ab9+BqB,uBag/BnB,CACA,WACA,CADA,+BACA,sBACA,cACA,oBACA,mBACA,cACA,WACA,0CAEA,Ub7/BM,4BAMkB,qCGkBtB,yDADF,cU6+BE,sBAGF,UbvgCM,gCaygCJ,sDAEA,Ub3gCI,4BAMkB,mDa6gC1B,uBACE,YACA,6CACA,uBACA,sBACA,WACA,0DAEA,sBACE,0DAIJ,uBACE,2BACA,gDAGF,abphCsB,6BashCpB,uDAGF,abpiC0B,yDawiC1B,aACE,YAGF,aACE,cbniCgB,6BaqiChB,SACA,kBACA,kBACA,oBACA,SACA,aACA,sBACA,WACA,WACA,qBACA,kBAEA,kBACE,WAIJ,+BACE,oBAGF,gBACE,qEAGF,4BACE,gCAGF,eACE,kBACA,MACA,QACA,YACA,kBACA,YAEA,mBACA,yBACA,eACA,aAEA,wCAEA,UT/hCsB,mBSiiCpB,aACA,sBACA,mBACA,uBACA,mBACA,8BACA,wBACA,gCACA,uCAGF,wBACE,kBACA,WACA,YACA,eACA,cbhnCiB,yBaknCjB,aACA,uBACA,mBACA,sCAGF,mBACE,6CAEA,8BACE,WAKN,oBACE,UACA,oBACA,kBACA,cACA,SACA,uBACA,eACA,oBAGF,ab/nCkB,eaioChB,gBACA,yBACA,iBACA,kBACA,QACA,SACA,+BACA,yBAEA,aACE,WACA,CACA,0BACA,oBACA,mBACA,4BAIJ,iBACE,QACA,SACA,+BACA,WACA,YACA,sBACA,6BACA,CACA,wBACA,kBACA,2CAGF,2EACE,CADF,mEACE,8CAGF,4EACE,CADF,oEACE,qCAGF,GACE,sBACE,KAGF,2BACE,KAGF,2BACE,KAGF,yBACE,IAGF,wBACE,EArBF,4BAGF,GACE,sBACE,KAGF,2BACE,KAGF,2BACE,KAGF,yBACE,IAGF,wBACE,uCAIJ,GACE,wBACE,KAGF,0BACE,KAGF,2BACE,KAGF,uBACE,IAGF,sBACE,EAtBA,6BAIJ,GACE,wBACE,KAGF,0BACE,KAGF,2BACE,KAGF,uBACE,IAGF,sBACE,mCAIJ,GACE,OACE,SACA,yBACA,KAGF,wBACE,KAGF,UACE,YACA,6BACA,kBACA,UACA,IAGF,UACE,YACA,eACA,UACA,6BACA,EA5BA,yBAIJ,GACE,OACE,SACA,yBACA,KAGF,wBACE,KAGF,UACE,YACA,6BACA,kBACA,UACA,IAGF,UACE,YACA,eACA,UACA,6BACA,kCAIJ,GACE,gBACA,aACA,aAPE,wBAIJ,GACE,gBACA,aACA,6BAGF,KACE,OACA,WACA,YACA,kBACA,YACA,2BAEA,YACE,SACA,QACA,WACA,YACA,mBACA,6BAGF,mBACE,yBAGF,YACE,0BAGF,aACE,uBACA,WACA,YACA,SACA,iCAEA,oBACE,8BACA,kBACA,iBACA,Wb5yCE,gBa8yCF,eACA,+LAMA,6BACE,mEAKF,6BACE,iBAMR,aACE,iBACA,mEAGF,abp0CqB,qBaw0CnB,mBACA,gBACA,sBACA,gBAGF,aACE,iBACA,uBAGF,eACE,8BAGF,abv1CqB,eay1CnB,cACA,gBACA,gBACA,uBAGF,qBACE,sBAGF,WACE,8BAGF,GACE,kBACE,+BACA,2CACA,CADA,kCACA,KAGF,oBACE,0CACA,CADA,iCACA,KAGF,oBACE,2CACA,CADA,kCACA,KAGF,oBACE,0CACA,CADA,iCACA,KAGF,kBACE,2CACA,CADA,kCACA,EA3BF,qBAGF,GACE,kBACE,+BACA,2CACA,CADA,kCACA,KAGF,oBACE,0CACA,CADA,iCACA,KAGF,oBACE,2CACA,CADA,kCACA,KAGF,oBACE,0CACA,CADA,iCACA,KAGF,kBACE,2CACA,CADA,kCACA,iBAIJ,0DACE,CADF,kDACE,cAGF,kBACE,8BACA,aACA,YACA,uBACA,OACA,UACA,kBACA,MACA,kBACA,WACA,aACA,gBAEA,mBACE,oBAIJ,WACE,aACA,aACA,sBACA,kBACA,YACA,0BAGF,iBACE,MACA,QACA,SACA,OACA,WACA,kBACA,mBbx6CwB,kCa06CxB,uBAGF,MACE,aACA,mBACA,uBACA,cbn7CmB,eaq7CnB,gBACA,0BACA,kBACA,qCAGF,SACE,oBACA,CADA,WACA,cAGF,wBb77C0B,Wa+7CxB,kBACA,MACA,OACA,aACA,qBAGF,iBACE,aAGF,iBACE,cACA,aACA,WACA,yBb98CwB,kBag9CxB,cACA,UACA,WACA,eAGF,YACE,gCACA,CACA,iBACA,qBAEA,kBACE,UACA,uBAGF,aACE,CACA,sBACA,kBACA,eACA,uBAGF,oBACE,mBb1+CsB,kBa4+CtB,cACA,eACA,wBACA,wBAGF,aACE,CACA,0BACA,gBACA,8BAEA,eACE,aACA,2BACA,8BACA,uCAGF,cACE,cbngDe,kBaqgDf,+BAGF,abxgDiB,ea0gDf,mBACA,gBACA,uBACA,kBACA,gBACA,YACA,iCAEA,UbrhDE,qBauhDA,oHAEA,yBAGE,yCAKN,QACE,uBAIJ,kBACE,6BAEA,kBACE,oDAGF,eACE,6DAGF,UbjjDI,oBa0jDN,kBACA,cACA,2BAGF,eACE,UAGF,iBACE,cAEA,WACE,WACA,sCACA,CADA,6BACA,cAGF,cACE,iBACA,cb3kDiB,gBa6kDjB,gBAEA,ab5kDsB,0Ba8kDpB,sBAEA,oBACE,gBAIJ,qBACE,4BAKN,GACE,cACA,eACA,WARI,mBAKN,GACE,cACA,eACA,2CCrmDF,u+KACE,uCAEA,u+KACE,CAOA,8MAMF,okBACE,UClBJ,YACE,gCACA,cACA,qBACA,iCAEA,aACE,cACA,cfJiB,gBeMjB,qBACA,eACA,gBAGF,WACE,UACA,yCAEA,8CAEA,WACE,iBACA,mBAKN,YACE,0BAGF,UACE,iBACA,kBACA,kBAGF,gBX0BwB,wBD9DtB,4BACA,kBYqCA,eACA,yBAEA,oBACE,sBACA,iBACA,4BZ3CF,eYiDE,2DAHF,gBXesB,wBD9DtB,4BACA,CYgDE,iBAOE,CANF,+BZjDF,UYqDI,CACA,qBACA,mCAGF,aACE,kBACA,QACA,SACA,+BACA,WfjEE,6BemEF,gBACA,eACA,0BAKN,iBACE,WACqB,sCZpErB,+BANA,UY8EuB,sCZxEvB,gEYsEA,gBXfsB,wBD9DtB,4BYyFE,CZlFF,iCANA,UYmFuB,sCZ7EvB,kBY+EE,SACA,QACA,UACA,wBAIJ,WACE,aACA,mBACA,2BAGF,aACE,mBACA,sBAGF,YACE,cf1FgB,6Be6FhB,eACE,CAII,kMADF,eACE,wBAKN,eACE,cACA,0BACA,yFAEA,oBAGE,sBAKN,4BACE,gCACA,iBACA,gBACA,cACA,aACA,4BAGF,YACE,cACA,iBACA,kBACA,2BAGF,oBACE,gBACA,cACA,8BACA,eACA,oCACA,uCAEA,aACE,kCAGF,+BACE,gCAGF,aACE,yBACA,eACA,cfpKiB,kCewKnB,aACE,eACA,gBACA,Wf9KI,CemLA,2NADF,eACE,gCAKN,aflLwB,oBeuL1B,iBACE,mDAEA,aACE,mBACA,gBACA,4BAIJ,UACE,kBACA,wBAGF,gBACE,qBACA,eACA,cf5MmB,ee8MnB,kBACA,4BAEA,af9MwB,6BekNxB,aACE,gBACA,uBACA,iBAIJ,kBACE,6BACA,gCACA,aACA,mBACA,eACA,kDAGF,aAEE,kBACA,yBAGF,kBACE,aACA,2BAGF,afhPqB,eekPnB,cACA,gBACA,mBACA,kDAIA,kBACE,oDAIA,SZ5MF,sBACA,WACA,YACA,gBACA,oBACA,mBHrDwB,cAFL,eG0DnB,SACA,+EYsMI,aACE,CZvMN,qEYsMI,aACE,CZvMN,yEYsMI,aACE,CZvMN,gEYsMI,aACE,sEAGF,QACE,yLAGF,mBAGE,0DAGF,kBACE,qCAGF,mDArBF,cAsBI,yDAIJ,af3Qc,iBe6QZ,eACA,4DAGF,gBACE,wDAGF,kBACE,gEAEA,cACE,iNAEA,kBAGE,cACA,gHAKN,afjTiB,0HesTjB,cAEE,gBACA,cf5SY,kZe+SZ,aAGE,gEAIJ,wBACE,iDAGF,eXzUI,kBDkEN,CAEA,eACA,cH7CiB,uCG+CjB,UYoQI,mBfzUe,oDGuEnB,wBACE,cHlDe,eGoDf,gBACA,mBACA,oDAGF,aACE,oDAGF,kBACE,oDAGF,eACE,WH3FI,sDegVJ,WACE,mDAGF,UfpVI,kBesVF,eACA,8HAEA,kBAEE,iCAON,kBACE,mBAIJ,UfvWQ,kBeyWN,cACA,mBACA,sBf1WM,yBe4WN,eACA,gBACA,YACA,kBACA,WACA,yBAEA,SACE,6BAIJ,YACE,eACA,gBACA,wBAGF,WACE,sBACA,cACA,kBACA,kBACA,gBACA,WACA,+BAEA,iBACE,QACA,SACA,+BACA,eACA,sDAIJ,kBAEE,gCACA,eACA,aACA,cACA,oEAEA,kBACE,SACA,SACA,6HAGF,aAEE,cACA,cf/ZiB,eeiajB,eACA,gBACA,kBACA,qBACA,kBACA,yJAEA,afxaiB,qWe2af,aAEE,WACA,kBACA,SACA,SACA,QACA,SACA,2BACA,CAEA,4CACA,CADA,kBACA,CADA,wBACA,iLAGF,WACE,6CACA,8GAKN,kBACE,gCACA,qSAKI,YACE,iSAGF,4CACE,sBAQR,sBACA,mBACA,6BACA,gCACA,+BAEA,iBACE,iBACA,cfhdc,Cemdd,eACA,eACA,oCAEA,aACE,gBACA,uBACA,oCAIJ,UACE,kBACA,uDAGF,iBACE,qDAGF,eACE,2BAIJ,afzfqB,ee2fnB,gBACA,gBACA,kBACA,qBACA,6BAEA,kBACE,wCAEA,eACE,6BAIJ,aACE,0BACA,mCAEA,oBACE,kBAKN,eACE,2BAEA,UACE,8FAEA,8BAEE,CAFF,sBAEE,wBAIJ,iBACE,SACA,UACA,yBAGF,eACE,aACA,kBACA,mBACA,6BAEA,mBACE,CADF,8BACE,CADF,gBACE,cACA,WACA,YACA,SACA,uBAIJ,iBACE,mBACA,YACA,gCACA,+BAEA,aACE,cACA,WACA,iBACA,gDAEA,kBACE,yBACA,wBAKN,YACE,uBACA,gBACA,iBACA,iCAEA,YACE,mBACA,iBACA,gBACA,8CAEA,wBACE,kBACA,uBACA,YACA,yCAGF,YACE,8BAIJ,WACE,4CAEA,kBACE,wCAGF,UACE,YACA,iCAGF,cACE,iBACA,WfhnBA,gBeknBA,gBACA,mBACA,uBACA,uCAEA,aACE,eACA,cftnBW,gBewnBX,gBACA,uBACA,gCAKN,aACE,uBAIJ,eACE,cACA,iDAGE,qBACA,Wf7oBE,gDeipBJ,QACE,6BACA,kDAEA,aACE,yEAGF,uBACE,4DAGF,aX3pBU,yBWiqBd,cACE,gCAEA,cACE,cfpqBe,eesqBf,kCAEA,oBACE,cfzqBa,qBe2qBb,iBACA,gBACA,yCAEA,eACE,WfnrBF,SgBDR,YACE,gCACA,8BAEA,aACE,cACA,WhBLI,qBgBOJ,eACA,gBACA,kBAIJ,YACE,iBAGF,WACE,aACA,mBACA,mCCrBF,GACE,sBACE,KAGF,2BACE,KAGF,4BACE,KAGF,2BACE,IAGF,yBACE,EDGF,0BCrBF,GACE,sBACE,KAGF,2BACE,KAGF,4BACE,KAGF,2BACE,IAGF,yBACE,qCAIJ,GACE,yBACE,KAGF,yBACE,KAGF,4BACE,KAGF,wBACE,IAGF,sBACE,EAtBA,2BAIJ,GACE,yBACE,KAGF,yBACE,KAGF,4BACE,KAGF,wBACE,IAGF,sBACE,gCAIJ,cACE,kBAGF,iBACE,cACA,eACA,iBACA,qBACA,gBACA,iBACA,gBACA,wBAEA,SACE,4BAGF,UACE,YACA,gBACA,sBAGF,cACE,iBACA,sBACA,CADA,gCACA,CADA,kBACA,qEAGF,kBACE,qBACA,sGAEA,eACE,qEAIJ,eAEE,qJAEA,kBAEE,mXAGF,eACE,mBACA,qJAGF,eACE,gBACA,2EAGF,eACE,+NAGF,eACE,2FAGF,iBACE,8BACA,cjB5Ge,mBiB8Gf,qHAEA,eACE,2JAIJ,eACE,mJAGF,iBACE,6EAGF,iBACE,eACA,6EAGF,iBACE,qBACA,qJAGF,eACE,6JAEA,QACE,2EAIJ,oBACE,2EAGF,uBACE,oBAIJ,ab9Ic,qBagJZ,0BAEA,yBACE,8BAEA,aACE,kCAKF,oBACE,uCAEA,yBACE,wBAKN,ajBjKc,4CiBsKhB,YACE,8EAEA,aACE,mCAIJ,aACE,oDAEA,ab5LQ,ea8LN,CAKF,sDAEA,kBAEE,gCAKN,oBACE,kBACA,mBACA,YACA,WjBrNM,gBiBuNN,eACA,cACA,yBACA,oBACA,eACA,sBACA,sCAEA,kBACE,qBACA,+DAGF,oBACE,iBACA,sBACA,kBACA,eACA,oBACA,2GAKF,oBAGE,4BAIJ,ajBtOkB,SiBwOhB,kBACA,kBACA,oBACA,SACA,aACA,sBACA,WACA,WACA,gCACA,+BAGF,UACE,kBACA,mDAGF,iBAEE,gCAGA,qEAEA,eACE,kBAKF,SACE,mBACA,kDAEA,kBACE,wDAEA,sBACE,iFAIJ,kBAEE,SAKN,iBACE,kBACA,YACA,gCACA,eACA,UAaA,mCACA,CADA,0BACA,wDAZA,QAPF,kBAUI,0BAGF,GACE,aACA,WALA,gBAGF,GACE,aACA,uDAMF,cAEE,kCAGF,kBACE,4BACA,sCAIA,ajBtUiB,qCiB0UjB,UjB7UI,6BiBiVJ,ajBxTe,CAzBX,kEiByVJ,UjBzVI,kCiB4VF,ajBtVoB,gEiB0VpB,UjBhWE,mBAIgB,sEiBgWhB,kBACE,mBAMR,uBACE,sBACA,yBACA,CADA,qBACA,CADA,oBACA,CADA,gBACA,yCAEA,aACE,kBACA,OACA,QACA,MACA,SACA,6FACA,oBACA,WACA,2DAGF,oBACE,oCAGF,WACE,gBACA,uBACA,cACA,0CAEA,UACE,kBACA,MACA,gBACA,gEACA,oBACA,4CAGF,oBACE,gDAGJ,uDACE,mEAEF,uDACE,0CAGF,eACE,6DAGF,kBACE,gCAIJ,mBACE,+CAKF,sBACE,qEAEA,aACE,wBAKN,oBACE,YACA,CjBpagB,ciBsahB,iBACA,mBACA,CACA,sBACA,8CANA,ajBpagB,CiBwahB,eAOA,8CAGF,aACE,eACA,eAGF,YACE,8BACA,eACA,oBAEA,sBACE,gBACA,2CAGF,oBACE,sBAIJ,YACE,mBACA,WACA,cjBxcoB,iIiB2cpB,gBAGE,kBACA,0EAGF,yBACE,yEAMA,0CACE,CADF,kCACE,2EAKF,2CACE,CADF,mCACE,wBAKN,YACE,mBACA,2BACA,mBAGF,+BACE,aACA,6CAEA,uBACE,OACA,gBACA,4DAEA,eACE,8DAGF,SACE,mBACA,qHAGF,cAEE,gBACA,4EAGF,cACE,0BAKN,kBACE,aACA,cACA,uBACA,aACA,kBAGF,gBACE,mBACA,iBACA,cjBrhBgB,CiBuhBhB,iBACA,eACA,kBACA,+CAEA,ajB5hBgB,uBiBgiBhB,aACE,gBACA,uBACA,qBAIJ,kBACE,aACA,eACA,8BAEA,mBACE,kBACA,mBACA,yDAEA,gBACE,qCAGF,oBACE,WACA,eACA,gBACA,cjBxjBgB,4BiB8jBtB,iBACE,8BAGF,cACE,cACA,uCAGF,aACE,aACA,mBACA,uBACA,kBACA,kBAGF,kBACE,kBACA,wBAEA,YACE,eACA,8BACA,uBACA,uFAEA,SAEE,mCAIJ,cACE,iBACA,6CAEA,UACE,YACA,gBACA,+DAIJ,cAEE,wBAIJ,eACE,cjBlnBgB,eiBonBhB,iBACA,8BAGF,kBACE,6BACA,gCACA,aACA,mBACA,eACA,wBAGF,aACE,qBACA,uDAGF,oBAEE,gBACA,eACA,gBACA,6JAGF,oBAME,4DAKA,UjBzqBM,kBiB+qBN,UACE,iKAQF,yBACE,+BAIJ,aACE,gBACA,uBACA,0DAGF,aAEE,sCAGF,kBACE,gCAGF,ajBzsBqB,ciB2sBnB,iBACA,mBACA,gBACA,2EAEA,aAEE,uBACA,gBACA,uCAGF,cACE,WjB3tBI,kCiBguBR,UACE,kBACA,iBAGF,SACE,kBACA,YACA,WACA,CjBztBgB,8IiBouBhB,ajBpuBgB,wBiBwuBhB,UACE,wCAGF,kBjBnvBsB,WAThB,8CiBgwBJ,kBACE,qBACA,+DAOJ,yBACE,cAIJ,YACE,eACA,yBACA,kBACA,cjBlwBgB,gBiBowBhB,qBACA,gBACA,uBAEA,QACE,OACA,kBACA,QACA,MAIA,iDAHA,YACA,uBACA,mBAUE,CATF,0BAEA,yBACE,kBACA,iBACA,cAIA,sDAGF,cAEE,cjB3yBe,uBiB6yBf,SACA,cACA,qBACA,eACA,iBACA,sMAEA,UjBvzBE,yBiB8zBJ,cACE,kBACA,YACA,+DAGF,aACE,eAKN,cACE,qBAEA,kBACE,oBAIJ,cACE,cACA,qBACA,WACE,YACA,SACA,2BAIF,UACE,YACA,qBAIJ,aACE,gBACA,kBACA,cjBl2BmB,gBiBo2BnB,uBACA,mBACA,qBACA,uBAGF,aACE,gBACA,2BACA,2BAGF,ajBh3BqB,oBiBo3BrB,aACE,eACA,eACA,gBACA,uBACA,mBACA,qBAGF,cACE,mBACA,kBACA,yBAEA,cACE,kBACA,yBACA,QACA,SACA,+BACA,yBAIJ,aACE,6CAEA,UACE,mDAGF,yBACE,6CAGF,mBACE,sBAIJ,oBACE,kCAEA,QACE,4CAIA,oBACA,0CAGF,kBACE,0CAGF,aACE,6BAIJ,wBACE,2BAGF,yBACE,cACA,SACA,WACA,YACA,oBACA,CADA,8BACA,CADA,gBACA,sBACA,wBACA,kBAGF,YACE,eACA,yBACA,kBACA,gBACA,gBACA,wBAEA,aACE,cjB57Bc,iBiB87Bd,eACA,+BACA,aACA,sBACA,mBACA,uBACA,eACA,4BAEA,aACE,wBAIJ,eACE,CACA,qBACA,aACA,sBACA,uBACA,2BAEA,aACE,cACA,0BAGF,oBACE,cjB19BY,gBiB49BZ,gCAEA,yBACE,0BAKN,QACE,eACA,iDAEA,SACE,cACA,8BAGF,ajB7+Bc,oCiBm/BlB,cACE,cACA,SACA,uBACA,UACA,kBACA,oBACA,oFAEA,yBAEE,6BC/gCJ,kBACE,aAGF,iBACE,8BACA,oBACA,aACA,sBAGF,cACE,MACA,OACA,QACA,SACA,8BACA,wBAGF,cACE,MACA,OACA,WACA,YACA,aACA,sBACA,mBACA,uBACA,2BACA,aACA,oBACA,yBACA,CADA,qBACA,CADA,oBACA,CADA,gBACA,oBAGF,mBACE,aACA,aACA,6CAGF,kBlBtCqB,WAHb,kBkB8CN,gBACA,aACA,sBACA,0BAGF,WACE,WACA,gBACA,iBACA,8DAEA,UACE,YACA,sBACA,aACA,sBACA,mBACA,uBACA,aACA,yBACA,CADA,qBACA,CADA,oBACA,CADA,gBACA,oBAIJ,WACE,WACA,gBACA,iBACA,kBACA,wBAEA,iBACE,MACA,OACA,WACA,YACA,sBACA,aACA,aACA,CAGA,YACA,UACA,yBACA,CADA,qBACA,CADA,oBACA,CADA,gBACA,2CANA,qBACA,mBACA,uBAaF,CATE,mBAIJ,YACE,CAGA,iBACA,qCAGF,kBACE,UACE,YACA,gBACA,0BAGF,UACE,YACA,eACA,gBACA,cACA,oDAIJ,aAEE,mBACA,aACA,aACA,2DAEA,cACE,uLAGF,alBhImB,SkBmIjB,eACA,gBACA,kBACA,oBACA,YACA,aACA,kBACA,6BACA,+mBAEA,aAGE,yBACA,ClBpJE,wyEkB2JF,UAGE,sBAMR,sBACE,yBAGF,aACE,aACA,mBACA,uBACA,wBAGF,UACE,YACA,mBACA,mBACA,aACA,eACA,8BAEA,kBACE,+BAGF,cACE,mBACA,kCAIJ,mBACE,CACA,mBACA,0EAEA,mBACE,yBAIJ,cACE,iBACA,4BAEA,cACE,gBACA,WlBjNI,mBkBmNJ,2BAGF,alBhNwB,kGkBmNtB,aAGE,2CAIJ,aACE,2BAGF,cACE,clBlOiB,gBkBoOjB,mBACA,sCAEA,eACE,kCAGF,eACE,mBlB1OoB,cAFL,kBkB+Of,eACA,gBACA,CAII,2NADF,eACE,oCAOV,WACE,UACA,mCAME,mBACA,mBACA,sCAEA,cACE,iBACA,kBACA,qCAGF,eACE,oCAIJ,kBACE,mBACA,kBACA,eAIJ,iBACE,eACA,mBACA,sBAEA,eACE,WlBnSI,kBkBqSJ,yBACA,eACA,qBAGF,kBlBrSwB,cAFL,gBkB0SjB,aACA,kBACA,6HAQF,eACE,qJAGF,kBACE,clBzTiB,mBkB2TjB,kBACA,aACA,kBACA,eACA,sCACA,yPAEA,iBACE,mBACA,qNAGF,mBACE,gBACA,4CAMJ,YACE,mBACA,gDAEA,UACE,cACA,4DAEA,aACE,2DAGF,cACE,kDAGF,iBACE,uDAIJ,eACE,sDAIJ,UlB5WM,2DkBiXR,0BACE,cACE,iBACA,qJAGF,cAIE,mBACA,4CAGF,kBACE,sDAGF,WACE,eACA,mBAIJ,oBACE,eACA,gBACA,iBACA,uHAGF,kBAOE,WlBvZM,kBkByZN,gBACA,eACA,YACA,kBACA,sBACA,+SAEA,alBhZgB,YkBkZd,eACA,WACA,eACA,gBACA,uSAGF,YACE,uPAGF,WACE,WACA,+WAGF,aACE,wBAKF,edvbM,CJEa,gBkBwbjB,oBACA,iEd3bI,2BJEa,qDkBicrB,iBAEE,aACA,qEAEA,wBACE,CADF,qBACE,CADF,oBACE,CADF,gBACE,gBACA,kKAIJ,YAKE,8BACA,mBlBldmB,akBodnB,iBACA,0LAEA,aACE,iBACA,clBzdiB,mBkB2djB,kNAGF,aACE,6DAIJ,cAEE,yDAGF,WAEE,eACA,0BAGF,gBAEE,sDAGF,qBAEE,eAGF,UACE,gBACA,0BAGF,YACE,6BACA,qCAEA,yBAJF,cAKI,gBACA,iDAIJ,qBAEE,UACA,qCAEA,+CALF,UAMI,sDAIJ,aAEE,gBACA,gBACA,gBACA,kBACA,2FAEA,alBthBwB,qCkB0hBxB,oDAZF,eAaI,sCAKF,4BADF,eAEI,yBAIJ,YACE,+BACA,gBACA,0BAEA,cACE,iBACA,mBACA,sCAGF,aACE,sBACA,WACA,CACA,UlB1jBI,gBICA,ac4jBJ,oBACA,eACA,YACA,CACA,SACA,kBACA,yBACA,iBACA,gBACA,gBACA,4CAEA,wBACE,+CAGF,ed5kBI,yBc8kBF,mBACA,kBACA,6DAEA,QACE,gBACA,gBACA,mEAEA,QACE,0DAIJ,UlB7lBE,oBkB+lBA,eACA,gBd/lBA,+CcomBJ,YACE,8BACA,mBACA,4CAIJ,aACE,WlB7mBI,ekB+mBJ,gBACA,mBACA,wCAGF,eACE,mBACA,+CAEA,UlBxnBI,ekB0nBF,qCAIJ,uBAnFF,YAoFI,eACA,QACA,wCAEA,iBACE,iBAKN,eAWE,eACA,wBAXA,eACE,iBACA,uBAGF,aACE,gBACA,2CAMF,eACE,mBAGF,eACE,cACA,gBACA,+BAEA,4BACE,4BAGF,QACE,oCAIA,UlBzqBE,akB2qBA,kBACA,eACA,mBACA,qBACA,8EAEA,eAEE,yWAOA,kBlBprBgB,WANlB,iJkBisBA,iBAGE,oMAUR,aACE,iIAIJ,4BAIE,clBptBmB,ekBstBnB,gBACA,6cAEA,aAGE,6BACA,uCAIJ,iBACE,mBACA,oBACA,eAEA,yFAEA,qBACE,qGAIJ,YAIE,eACA,iIAEA,eACE,CAII,w1BADF,eACE,sDAMR,iBAEE,oDAKA,eACE,0DAGF,eACE,mBACA,aACA,mBACA,wEAEA,UlBnxBI,CkBqxBF,gBACA,uBAKN,YACE,2CAEA,QACE,WACA,cAIJ,UACE,eACA,gBACA,iBAEA,YACE,gBACA,eACA,kBACA,sCAGF,YACE,4CAEA,kBACE,yDAGF,SACE,sBACA,cACA,WACA,YACA,aACA,gDACA,mBlBzzBoB,WALlB,ekBi0BF,CACA,eACA,kBACA,2EAEA,QACE,wMAGF,mBAGE,+DAGF,kBACE,qCAGF,wDA7BF,cA8BI,4DAIJ,WACE,eACA,gBACA,SACA,kBACA,cAKN,iBACE,YACA,gBACA,YACA,aACA,uBACA,mBACA,gBd12BM,yDc62BN,aAGE,gBACA,WACA,YACA,SACA,sBACA,CADA,gCACA,CADA,kBACA,gBdr3BI,uBcy3BN,iBACE,YACA,aACA,+BACA,iEACA,kBACA,wCACA,uBAGF,iBACE,WACA,YACA,MACA,OACA,uBAGF,iBACE,YACA,WACA,UACA,YACA,4BACA,6BAEA,UACE,8BAGF,UlBv5BI,ekBy5BF,gBACA,cACA,kBACA,2BAGF,iBACE,mCACA,qCAIJ,oCACE,eAEE,uBAGF,YACE,wBAKN,gBACE,sCAEA,eACE,gCAGF,eACE,qDAGF,UlB57BM,iDkBg8BN,YACE,0DAEA,YACE,0BAIJ,YACE,iBACA,uBACA,kDAGF,alB77BoB,qBkB+7BlB,wDAEA,yBACE,WCp9BN,YACE,kCAEA,iBACE,MACA,QACA,oIAEA,mCAEE,oBAKN,cACE,uBACA,eACA,gBACA,cnBfmB,4CmBkBnB,afjBY,sCesBd,2CACE,oBAGF,QACE,wBACA,UACA,+CAEA,WACE,mBACA,UACA,0BAGF,aACE,sBACA,SACA,YACA,kBACA,aACA,WACA,UACA,WnBjDI,gBICA,eemDJ,oBACA,gBACA,qDAEA,anBxCc,CmBsCd,2CAEA,anBxCc,CmBsCd,+CAEA,anBxCc,CmBsCd,sCAEA,anBxCc,gCmB4Cd,8ChB/CA,uCADF,cgBiD4D,0ChB5C5D,cgB4C4D,oBAI9D,UnBjEQ,mBmBmEN,mBnB/DsB,oCmBiEtB,iBACA,kBACA,eACA,gBACA,sBAEA,anBxEmB,gBmB0EjB,0BACA,mFAEA,oBAEU,iCAKZ,mBACA,eAEA,gBACA,wCAEA,anBvFwB,sDmB2FxB,YACE,2CAGF,oBACE,kBACA,yBACA,sBACA,WACA,YACA,cACA,gBACA,kBACA,SACA,kBACA,sBACA,kDAEA,oBnB7GsB,qCmBoH1B,eACE,kBACA,aACA,mBnBzHsB,gBmB2HtB,gBACA,cACA,yBAEA,iBACE,gBACA,wCAEA,UnBvII,iCmByIJ,WACE,iBACA,2BAIJ,iBACE,cACA,CACA,cACA,iBACA,WnBpJI,qBmBsJJ,gBACA,iBACA,qBACA,mBACA,gBACA,gGAEA,kBACE,qBACA,iIAEA,eACE,kJAIJ,eACE,mBACA,2DAGF,eACE,eACA,8BAGF,cACE,wFAGF,eACE,sCAGF,iBACE,2BACA,WnB1LE,mBmB4LF,mDAEA,eACE,8DAIJ,eACE,0DAGF,iBACE,+BAGF,iBACE,eACA,2DAGF,eACE,+DAEA,QACE,8BAIJ,oBACE,8BAGF,uBACE,6BAGF,anB7NiB,qBmB+Nf,mCAEA,oEAGE,oBACE,gDAEA,qDAMR,UACE,YACA,gBACA,uDAIJ,iBAEE,WACA,mIAGE,aACE,sBACA,SACA,YACA,0BACA,yBACA,WACA,iBACA,UACA,WnBtQE,gBICA,eewQF,oBACA,YACA,qBACA,yLAEA,anB9PY,CmB4PZ,sKAEA,anB9PY,CmB4PZ,8KAEA,anB9PY,CmB4PZ,4JAEA,anB9PY,yKmBkQZ,SACE,qJAGF,kBnBnRe,+ImBoRf,8ChB1QF,8JADF,cgB4Q8D,kKhBvQ9D,cgBuQ8D,qChBhQ5D,8TADF,sBgBoQM,gBACA,6BAMR,aACE,kBACA,SACA,UACA,WACA,gBACA,2CAEA,aACE,mBACA,WACA,YACA,cnB3SiB,emB6SjB,iBACA,kBACA,WACA,4CAIJ,iBACE,SACA,oCAGF,aACE,kBACA,sBACA,SACA,0BACA,YACA,WACA,WnBnUM,mBAGa,sCmBmUnB,eACA,WACA,aACA,6CAGF,aACE,0CAGF,YACE,eACA,kBACA,iMAEA,kBAGa,iKAEb,YAGE,mBACA,mBACA,2BACA,iBACA,eACA,+DAGF,6BACE,qEAEA,aACE,gBACA,uBACA,mBACA,sEAGF,eACE,qEAGF,aACE,iBACA,gBACA,uBACA,mBACA,4EAMA,anB3Xe,wBmBgYrB,eACE,iCAEA,YACE,mBACA,eACA,oBACA,YACA,gBACA,8BAIJ,UACE,WACA,cACA,kCAEA,iBACE,kBACA,aACA,WACA,sBfzZI,wBe2ZJ,sBACA,4BACA,gBACA,2CAEA,aACE,kBACA,sBACA,SACA,OACA,SACA,SACA,aACA,WACA,cnBtae,gFmBwaf,eACA,oBACA,gBACA,UACA,UACA,4BACA,iDAEA,UflbE,sEeobF,WACE,cnBnba,CIFb,4DeobF,WACE,cnBnba,CIFb,gEeobF,WACE,cnBnba,CIFb,uDeobF,WACE,cnBnba,yCmBwbjB,2EAKE,0CAKN,iFACE,aACA,uBACA,8BACA,UACA,4BACA,8CAEA,aACE,cnB3ciB,emB6cjB,gBACA,aACA,oBACA,2JAEA,aAGE,wCAIJ,SACE,kCAIJ,YACE,aACA,cnBhemB,gBmBkenB,sCAEA,cACE,kBACA,2CAGF,aACE,gDAEA,aACE,eACA,gBACA,yBACA,qDAGF,iBACE,eACA,kBACA,WACA,WACA,mBnBlfkB,8DmBqflB,iBACE,MACA,OACA,WACA,kBACA,mBnB7fkB,0BmBogB1B,UnB1gBQ,oBmB4gBN,eACA,gBf5gBM,4BeghBR,YACE,gBACA,0BACA,YACA,aACA,8BACA,cACA,oBAGF,YACE,cACA,sBAEA,oBACE,uBACA,cACA,YACA,iBACA,sBACA,uBAGF,oBACE,aACA,CAEA,oBACA,CADA,0BACA,UACA,QACA,YACA,uBACA,2BAIJ,iBACE,iBACA,0CAKE,yBACE,qCACA,WnB9jBE,mBAMkB,gBmB2jBpB,8CAGA,yBACE,oCACA,uCAMR,iBACE,kBACA,uCACA,gBf9kBM,gBeglBN,uBACA,6CAGF,YACE,mBACA,aACA,WnBxlBM,emB0lBN,sDAEA,aACE,cnB1lBiB,wEmB6lBjB,6EAEA,aACE,WnBnmBE,gBmBqmBF,sGAIJ,kBnBnmBwB,WANlB,6PmBinBF,UnBjnBE,0DmBqnBN,wCAGF,gBACE,iBACA,mBACA,gBACA,yBACA,cACA,+BAEA,oBACE,SACA,eACA,kBACA,gCAGF,oBACE,aACA,UACA,WACA,kBACA,kCAIA,af5oBU,CgBFZ,+BAHF,YACE,cACA,kBAUA,CATA,cAKA,kBACA,2BACA,gBAEA,uBAEA,YACE,uBACA,WACA,YACA,iBACA,6BAEA,WACE,gBACA,oBACA,aACA,yBACA,gBACA,oCAEA,0BACE,oCAGF,cACE,YACA,oBACA,YACA,6BAIJ,qBACE,WACA,gBACA,cACA,aACA,sBACA,qCAEA,4BARF,cASI,qBAMR,kBACE,wBACA,CADA,eACA,MACA,UACA,cACA,qCAEA,mBAPF,gBAQI,+BAGF,eACE,qCAEA,6BAHF,kBAII,wHAMJ,WAGE,mCAIJ,YACE,mBACA,uBACA,YACA,CpBlFwB,IoBiG1B,aACE,aACA,sBACA,WACA,YACA,CAIA,oBAGF,qBACE,WACA,mBACA,cpB/GwB,eoBiHxB,cACA,eACA,SACA,iBACA,aACA,SACA,UACA,2BAEA,yBACE,6BAIJ,kBACE,SACA,oBACA,cpBlIwB,eoBoIxB,cACA,eACA,kBACA,UACA,mCAEA,yBACE,wCAGF,kBACE,2BAIJ,oBACE,iBACA,2BAGF,iBACE,kCAGF,cACE,cACA,eACA,aACA,kBACA,QACA,UACA,cAGF,kBACE,WpB7KM,coB+KN,eACA,aACA,qBACA,2DAEA,kBAGE,oBAGF,SACE,2BAGF,sBACE,cpB5LiB,kGoB+LjB,sBAGE,WpBrME,kCoByMJ,apBnMsB,oBoByM1B,oBACE,iBACA,oBAGF,kBpB/M0B,cAWR,iBoBuMhB,eACA,gBACA,yBACA,eACA,yBAGF,iBACE,cACA,UACA,gCAEA,sCACE,uCAEA,aACE,WACA,kBACA,aACA,OACA,QACA,cACA,UACA,oBACA,YACA,UACA,kFACA,wCAIJ,SACE,kBACA,gBAIJ,YACE,eACA,mBACA,cACA,eACA,kBACA,UACA,UACA,gBACA,uBAEA,QACE,YACA,aACA,cACA,uBACA,aACA,gBACA,uBACA,gBACA,mBACA,OACA,4CAGF,apB/QwB,4CoBoRtB,apBpRsB,yCoBsRpB,4CAIJ,SAEE,SAIJ,WACE,kBACA,sBACA,aACA,sBACA,gBACA,wDAEA,SACE,gBACA,gBACA,qBAGF,kBpB/SwB,yBoBoT1B,WACE,aACA,cACA,uBAGF,kBACE,iCAGF,iBACE,sEAGF,kBACE,SACA,cpBtUmB,eoBwUnB,eACA,eACA,kFAEA,aACE,CAKA,kLAEA,UpBvVI,mBoByVF,kFAKJ,2BACE,wCAIJ,YACE,oBACA,6BACA,+CAEA,sBAEE,kBACA,eACA,qBACA,0CAGF,eACE,gDAKJ,SACE,6BAGF,eACE,gBACA,gBACA,cpB1XmB,0DoB4XnB,UACA,UACA,kBACA,uCAEA,YACE,WACA,uCAGF,iBACE,gCAGF,QACE,uBACA,SACA,6BACA,cACA,iCAIF,eACE,2CACA,YACE,WACA,mCAKN,kBACE,aACA,mCAIA,apBlamB,0BoBoajB,gCAIJ,WACE,4DAEA,cACE,uEAEA,eACE,uBAKN,oBACE,uBACA,gBACA,mBACA,OACA,sBAGF,oBACE,iBACA,6EAGF,apBpbkB,mBAXQ,kBoBocxB,aACA,eACA,gBACA,eACA,aACA,cACA,mBACA,uBACA,yBACA,4EAdF,cAeI,6FAGF,eACE,mFAGF,apBpdwB,qBoBsdtB,qGAEA,yBACE,uCAKN,kBACE,aACA,eAGF,qBACE,uCAKA,sBACE,6BACA,qCASF,qCAXA,sBACE,6BACA,sCAgBF,mJAFF,qBAGI,sBAKF,wBACA,aACA,2BACA,mBACA,mBACA,2BAEA,aACE,iCAEA,UACE,kBACA,uCAEA,SACE,kCAKN,aACE,aACA,yBC9hBJ,iBACE,eACA,gBACA,crBcgB,mBAXQ,4BqBCxB,cACA,sBACA,mBACA,uBACA,aACA,qEAGE,aAEE,WACA,aACA,SACA,yCAIJ,gBACE,gCAGF,eACE,uCAEA,aACE,mBACA,crBhBY,qCqBoBd,cACE,gBACA,kBCtCJ,UACE,cACA,+BACA,0BAEA,UACE,qCAGF,iBATF,QAUI,mBAIJ,qBACE,mBACA,uBAEA,YACE,kBACA,gBACA,gBACA,2BAEA,aACE,WACA,YACA,SACA,oBACA,CADA,8BACA,CADA,gBACA,uBAIJ,YACE,mBACA,mBACA,aACA,6BAEA,aACE,aACA,mBACA,qBACA,gBACA,qCAGF,UACE,eACA,cACA,+BAGF,aACE,WACA,YACA,gBACA,mCAEA,UACE,YACA,cACA,SACA,kBACA,mBACA,oBACA,CADA,8BACA,CADA,gBACA,qCAIJ,gBACE,gBACA,4CAEA,cACE,WtB3EF,gBsB6EE,gBACA,uBACA,0CAGF,aACE,eACA,ctBjFW,gBsBmFX,gBACA,uBACA,yBAKN,kBtBxFsB,asB0FpB,mBACA,uBACA,gDAEA,YACE,cACA,eACA,mDAGF,qBACE,kBACA,gCACA,WACA,gBACA,mBACA,gBACA,uBACA,qDAEA,YACE,iEAEA,cACE,sDAIJ,YACE,cAOV,kBtB9H0B,sBsBiIxB,iBACE,4BAGF,aACE,eAIJ,cACE,kBACA,qBACA,cACA,iBACA,eACA,mBACA,gBACA,uBACA,eACA,oEAEA,YAEE,sBAGF,oBACE,kBACA,yBACA,sBACA,WACA,YACA,cACA,kBACA,SACA,kBACA,sBACA,8BAEA,oBACE,mBACA,CC/KJ,eAGF,SpBkDE,sBACA,WACA,YACA,gBACA,oBACA,mBHrDwB,cAFL,eG0DnB,SACA,coBxDA,CACA,2BACA,iBACA,eACA,2CAEA,aACE,CAHF,iCAEA,aACE,CAHF,qCAEA,aACE,CAHF,4BAEA,aACE,kCAGF,QACE,6EAGF,mBAGE,sBAGF,kBACE,qCAGF,eA3BF,cA4BI,kCAKF,QACE,qDAGF,mBAEE,mBAGF,iBACE,SACA,WACA,UACA,qBACA,UACA,0BACA,4CACA,eACA,WACA,YACA,cvBrDiB,euBuDjB,oBACA,0BAEA,mBACE,WACA,0BAIJ,sBACE,iCAEA,mBACE,WACA,gCAIJ,QACE,uBACA,cvB7DkB,euB+DlB,uCAEA,uBACE,sCAGF,aACE,yBAKN,avB5EkB,mBuB8EhB,gCACA,kBACA,eACA,gBACA,uBAGF,YACE,cvBnGmB,kBuBqGnB,iBAIA,avB5FgB,mBuB8Fd,gCACA,gBACA,aACA,eACA,eACA,qBAEA,oBACE,iBACA,eAIJ,YACE,mBACA,aACA,gCACA,0BAEA,eACE,qBAGF,aACE,cvBtHY,gBuBwHZ,uBACA,mBACA,4BAEA,eACE,uBAGF,avB7Ie,qBuB+Ib,eACA,gBACA,cACA,gBACA,uBACA,mBACA,qGAKE,yBACE,wBAMR,aACE,eACA,iBACA,gBACA,iBACA,mBACA,gBACA,cvBxKe,0BuB4KjB,aACE,WACA,2CAEA,mCACE,yBACA,0CAGF,wBACE,WC1LR,yCCCE,qBACA,sBACA,CADA,kBACA,wBACA,WACA,YACA,eAEA,UACE,8BAIJ,erBXQ,kBqBaN,sCACA,kBACA,eACA,UACA,iDAEA,2BACE,2DAGF,UACE,mCAIJ,iBACE,SACA,WACA,eACA,yCAGF,iBACE,UACA,SACA,UACA,gBrBvCM,kBqByCN,sCACA,gBACA,gDAEA,aACE,eACA,SACA,gBACA,uBACA,iKAEA,4BAGE,2DAIJ,WACE,wBAKF,2BACE,eAIJ,aACE,wBACA,UACA,eACA,0CAEA,mBAEE,mBAGF,8BACE,CADF,sBACE,WACA,cACA,SACA,WACA,YACA,0EAMA,SACE,oBACA,CADA,WACA,eChGN,WAEE,0BAGF,kBANW,kBAQT,cACA,iCACA,wBACE,mCAOF,WACE,SACA,UACA,2CAGF,aACE,aAEA,sBACA,YACA,6BACA,6DAGE,oBACE,WACA,iBACA,iBACA,iJAGF,UACE,gEAEF,oBACE,gBACA,WACA,2CAKN,yBACE,sBACA,kBACA,YACA,gBACA,kDAEA,uBACE,CADF,oBACE,CADF,eACE,WACA,YACA,SACA,4BACA,WACA,yBACA,eACA,4CACA,sBACA,oBACA,6DAEA,uBACE,6DAGF,sBACE,wEAGF,sBACE,kBACA,SCjFR,WACE,sBACA,aACA,sBACA,kBACA,iBACA,UACA,qBAEA,iBACE,oBAGF,kBACE,2DxBDF,SwBI0D,yBxBC1D,SwBD0D,qCxBQxD,qLwBLA,yBAGF,eACE,gBACA,eACA,qCxBZA,4BwBgBA,SACE,WACA,YACA,eACA,UACA,+BALF,SACE,WACA,YACA,eACA,UACA,yCAIJ,4BAGF,YACE,mBACA,mBACA,UACA,mBACA,eACA,mBAEA,aACE,sBACA,oCACA,sBACA,YACA,cACA,c3BpDiB,kB2BsDjB,qBACA,eACA,mBAGF,iCACE,iDAEA,YAEE,mBACA,mCACA,SAKN,iBACE,mBACA,UACA,qCxBrDE,6CADF,ewBwDkF,sCxBlEhF,sBADF,cwBoE0D,yBxB/D1D,cwB+D0D,gBAG5D,evBlFQ,kBDkEN,CACA,sBACA,gBACA,cH7CiB,uCG+CjB,mBAEA,wBACE,cHlDe,eGoDf,gBACA,mBACA,mBAGF,aACE,mBAGF,kBACE,mBAGF,eACE,WH3FI,kB2BuFR,YACE,c3BrFmB,a2BuFnB,mBACA,oBAEA,aACE,qBACA,wBAGF,aACE,c3BhGiB,gB2BkGjB,mBACA,gBACA,uBACA,0BAIJ,aACE,gBACA,gBACA,kBAGF,kB3B7G0B,kB2B+GxB,gBACA,yBAEA,a3BvGgB,mB2ByGd,aACA,gBACA,eACA,eACA,6BAEA,oBACE,iBACA,0BAIJ,iBACE,6BAEA,kBACE,gCACA,eACA,aACA,aACA,gBACA,eACA,c3B/HY,iC2BkIZ,oBACE,iBACA,8FAIJ,eAEE,mCAGF,aACE,aACA,c3B5Je,qB2B8Jf,0HAEA,aAGE,0BACA,gBAQN,WACA,kBAGA,+BANF,qBACE,UACA,CAEA,eACA,aAgBA,CAfA,eAGF,iBACE,MACA,OACA,mBACA,CAGA,qBACA,CACA,eACA,WACA,YACA,uBAEA,kB3B/LwB,0B2BoM1B,u1BACE,OACA,gBACA,aACA,8BAEA,aACE,sBACA,CADA,4DACA,CADA,kBACA,+BACA,CADA,2BACA,UACA,YACA,oBACA,eACA,yBACA,CADA,qBACA,CADA,oBACA,CADA,gBACA,oCAGF,aACE,WACA,YACA,YACA,eACA,sCAGF,yBAzBF,aA0BI,iBAIJ,kBACE,eACA,gBACA,mBAGF,cACE,kBACA,MACA,OACA,WACA,YACA,8BACA,oBCrPF,kBACE,gBACA,W5BDM,e4BGN,aACA,sBACA,YACA,uBACA,eACA,kBACA,kBACA,YACA,gBAGF,e5BbQ,cAEa,S4BcnB,WACA,YACA,iEAEA,aAGE,iCAGF,eACE,2BzBcF,iBACE,mBACA,cACA,eACA,aACA,gBACA,yByBfJ,aACE,eACA,yBAGF,aACE,eACA,gBACA,6BAGF,aACE,kBACA,W5B9CM,8B4BgDN,WACA,SACA,gBACA,kBACA,eACA,gBACA,UACA,oBACA,WACA,4BACA,iBACA,wDAKE,SACE,uBAKN,WACE,aACA,sBACA,4BAEA,iBACE,c5BzEiB,a4B2EjB,YACA,mBACA,CAGE,yDAIJ,UACE,gBAIJ,qBACE,eACA,gBACA,kBACA,kBACA,WACA,aACA,2BzBzDA,iBACE,mBACA,cACA,eACA,aACA,gBACA,sByBwDJ,WACE,sBACA,cACA,WACA,kBACA,kBACA,gBACA,kCAEA,eACE,qEAIA,cACE,MACA,gCAIJ,exB5HM,gCwBiIR,cACE,cACA,qBACA,c5BjImB,kB4BmInB,UACA,mEAEA,WAEE,WACA,sBACA,CADA,gCACA,CADA,kBACA,CAIE,0HAFF,WACE,oBACA,CADA,8BACA,CADA,gB5B/IE,C4BgJF,wBAKN,UACE,CAEA,iBACA,MACA,OACA,UACA,gB5B5JM,iC4B+JN,YACE,sBAIJ,WACE,gBACA,kBACA,WACA,aACA,uBACA,qCAGF,cACE,YACA,WACA,kBACA,UACA,sBACA,CADA,gCACA,CADA,kBACA,yBACA,CADA,qBACA,CADA,oBACA,CADA,gBACA,qDAEA,WACE,oBACA,CADA,8BACA,CADA,gBACA,sCAIJ,0BACE,2BACA,gBACA,kBACA,yBAGF,eACE,iBACA,yBAGF,UACE,cAGF,UACE,YACA,kBACA,qCAEA,UACE,YACA,aACA,mBACA,uBACA,2CAEA,cxBrK0B,eAEC,CwB+K7B,8CALF,iBACE,MACA,OACA,QACA,SAYA,CAXA,yBAQA,mBACA,8BACA,oBACA,4BAEA,mBACE,0DAGF,SACE,4DAEA,mBACE,mBAKN,6BACE,sBACA,SACA,W5BlQM,e4BoQN,aACA,mBACA,eACA,cACA,cACA,kBACA,kBACA,MACA,SACA,yBAGF,MACE,0BAGF,OACE,CASA,4CANF,UACE,kBACA,kBACA,OACA,YACA,oBAUA,6BAEA,WACE,sBAGF,mBACE,qBACA,gBACA,c5B7SiB,mF4BgTjB,yBAGE,wBAKN,oBACE,sBAGF,qBxB9TQ,YwBgUN,WACA,kBACA,YACA,UACA,SACA,YACA,8BAGF,wB5BpU0B,qB4BwU1B,iBACE,UACA,QACA,YACA,qKAKA,WAEE,mFAGF,WACE,eAKJ,qBACE,kBACA,mBACA,kBACA,oBACA,cACA,wBAEA,eACE,YACA,yBAGF,cACE,kBACA,gBACA,gCAEA,UACE,cACA,kBACA,6BACA,WACA,SACA,OACA,oBACA,qCAIJ,oCACE,iCAGF,wBACE,uCAIA,mBACA,mBACA,6BACA,0BACA,eAIJ,eACE,kBACA,gBxBnZM,ewBqZN,kBACA,sBACA,cACA,wBAEA,eACE,sBACA,qBAGF,SACE,gCAGF,UACE,YACA,0BzB3XF,iBACE,mBACA,cACA,eACA,aACA,gBACA,qByB0XF,eACE,gBACA,UACA,kBACA,0BAGF,oBACE,sBACA,SACA,gCAEA,wBACE,0BACA,qBACA,sBACA,UACA,4BAKF,qBACE,CADF,gCACE,CADF,kBACE,kBACA,QACA,2BACA,yBAIJ,iBACE,UACA,SACA,OACA,QACA,sBACA,iFACA,eACA,UACA,4BACA,gCAEA,SACE,6EAKF,iBAEE,wBAIJ,YACE,kBACA,MACA,OACA,WACA,YACA,UACA,SACA,gBxBxeI,cJGa,gB4BwejB,oBACA,+BAEA,aACE,oBACA,8GAEA,aAGE,+BAIJ,aACE,eACA,kCAGF,aACE,eACA,gBACA,4BAIJ,YACE,8BACA,oBACA,CAGE,gUAEA,aAIE,wBAKN,cACE,mBACA,gBACA,uBACA,oCAGE,cACE,qCAKF,eACE,+BAIJ,sBACE,iBACA,eACA,SACA,0BACA,8GAEA,UxB9iBE,+EwBsjBN,cAGE,gBACA,6BAGF,UxB7jBM,iBwB+jBJ,yBAGF,oBACE,aACA,mDAGF,UxBvkBM,uBwB4kBN,cACE,YACA,eACA,8BAEA,UACE,WACA,+BAOA,6DANA,iBACA,cACA,kBACA,WACA,UACA,YAWA,CAVA,+BASA,kBACA,+BAGF,iBACE,UACA,kBACA,WACA,YACA,YACA,UACA,4BACA,mBACA,sCACA,oBACA,qBAIJ,gBACE,uBAEA,oBACE,eACA,gBACA,WxB5nBE,sFwB+nBF,yBAGE,qBAKN,cACE,YACA,kBACA,4BAEA,UACE,WACA,+BACA,kBACA,cACA,kBACA,WACA,SACA,2DAGF,aAEE,kBACA,WACA,kBACA,SACA,mBACA,6BAGF,6BACE,6BAGF,iBACE,UACA,UACA,kBACA,WACA,YACA,QACA,iBACA,4BACA,mBACA,sCACA,oBACA,CAGE,yFAKF,SACE,6GAQF,gBACE,oBACA,iBCtsBR,YACE,mBACA,mBACA,kBACA,QACA,SACA,YACA,mBAGF,YACE,kBACA,gBACA,qBACA,8BACA,eACA,iBACA,yBACA,WACA,4BACA,wCAEA,uBCtBF,kB9BM0B,sB8BJxB,kBACA,uCACA,YACA,gBACA,qCAEA,aARF,SASI,kBAGF,cACE,mBACA,gBACA,eACA,kBACA,0BACA,6BAGF,WACE,6BAGF,yBACE,sCAEA,uBACE,uCACA,wBACA,wBAIJ,eACE,kDAIA,oBACE,+BAIJ,cACE,sBAGF,eACE,aAIJ,kB9BhD0B,sB8BkDxB,kBACA,uCACA,YACA,gBACA,qCAEA,YARF,SASI,uBAGF,kBACE,oBAGF,kBACE,YACA,0BACA,gBACA,mBAGF,YACE,gCACA,4BAGF,YACE,iCAGF,aACE,gBACA,qBACA,eACA,aACA,aC3FJ,cAOE,qBACA,W/BPM,gD+BEJ,iBACA,+BAOF,WACE,iBAIJ,sBACE,6BAEA,uBACE,2BACA,4BACA,mB/BlBiB,4B+BsBnB,oBACE,8BACA,+BACA,aACA,qBAIJ,YACE,8BACA,cACA,c/BjCmB,c+BmCnB,oBAGF,iBACE,OACA,kBACA,iBACA,gBACA,8BACA,eACA,0BAEA,aACE,6BAIJ,a/BjD0B,mC+BoDxB,aACE,oDAGF,QACE,wBAIJ,iBACE,YACA,OACA,WACA,WACA,yBACA,uBAIA,oBACE,WACA,eACA,yBAGF,iBACE,gBACA,oBAIJ,iBACE,aACA,gBACA,kBACA,gB3B5FM,sB2B8FN,sGAEA,mCAEE,oBAKF,2BACA,gB3BxGM,0B2B2GN,cACE,gBACA,gBACA,oBACA,cACA,WACA,6BACA,W/BnHI,yB+BqHJ,kBACA,4CAEA,QACE,2GAGF,mBAGE,wCAKN,cACE,6CAEA,SACE,kBACA,kBACA,qDAGF,SACE,WACA,kBACA,MACA,OACA,WACA,YACA,mCACA,mBACA,4BAIJ,SACE,kBACA,wBACA,gBACA,MACA,iCAEA,aACE,WACA,gBACA,gBACA,gB3BpKI,mB2ByKR,iBACE,qBACA,YACA,wBAEA,UACE,YACA,wBAIJ,cACE,kBACA,iBACA,c/B/JiB,mD+BkKjB,YACE,qDAGF,eACE,uDAGF,YACE,qBAIJ,YACE,wBC1MF,iBACE,aACA,mBACA,mBACA,WhCHM,kBgCKN,YACA,WACA,gBACA,iBACA,gBACA,4DAEA,aACE,eACA,mFAGF,iBACE,kBACA,gBACA,+FAEA,iBACE,OACA,MACA,kCAIJ,aACE,chC3BiB,2BgC+BnB,cACE,gBACA,iBACA,mBACA,2BAGF,cACE,gBACA,iBACA,gBACA,mBACA,0CAIJ,aACE,kBACA,cACA,mBACA,gCACA,eACA,qBACA,aACA,0BACA,4DAEA,aACE,iBACA,gDAGF,kBhC/DmB,iDgCmEnB,kBhChEwB,WANlB,qGgC2EN,kB5BxEU,WJHJ,oCgCiFR,kBACE,YACA,eACA,iBACA,gBACA,8BAGF,aACE,UACA,kBACA,YACA,gBACA,oCAGF,iBACE,4FAGF,eAEE,mBACA,qCAGF,mCACE,UACE,cACA,0CAGF,YACE,4DAEA,YACE,kBCtHN,UACE,eACA,iBACA,oBAEA,cACE,iBACA,gBACA,kBACA,mBAGF,UjCXM,0BiCaJ,oBAGF,eACE,cACA,iBACA,mDAGF,UACE,YACA,gBACA,gCACA,gBC3BJ,WACE,gBACA,aACA,sBACA,yBACA,kBACA,+BAEA,gBACE,eACA,CACA,2BACA,kCAGF,QACE,iCAGF,aACE,6BAGF,sBACE,0BAGF,MACE,kBACA,aACA,sBACA,iBACA,mDAGF,eACE,sB9BlCI,0B8BoCJ,cACA,gDAGF,iBACE,gDAGF,WACE,mBAIJ,eACE,mBACA,yBACA,gBACA,aACA,sBACA,qBAEA,aACE,sBAGF,aACE,SACA,CACA,4BACA,cACA,qDAHA,sBAOA,qCAIJ,qBAEI,cACE,wBAKN,qBACE,WACA,cACA,6DAEA,UAEE,YACA,UACA,wCAGF,YACE,cACA,kDACA,qCAEA,uCALF,aAMI,yCAIJ,eACE,oCAGF,YACE,uDAGF,cACE,sCAGF,gBACE,eACA,CACA,2BACA,yCAGF,QACE,mCAGF,gBACE,yBAEA,kCAHF,eAII,sCAIJ,sBACE,gBACA,sCAGF,uCACE,YACE,iKAEA,eAGE,6CAIJ,gBACE,2EAGF,YAEE,kGAGF,gBACE,+BAGF,YACE,gBACA,gLAEA,eAIE,gCAIJ,iBACE,6CAEA,cACE,8CAKF,gBACE,CAIA,yFAGF,eACE,0BAMR,cACE,aACA,uBACA,mBACA,gBACA,iBACA,iBACA,gBACA,mBACA,W9BjNM,kB8BmNN,eACA,iBACA,qBACA,sCACA,4FAEA,kBAGE,qCAIJ,UACE,UACE,uDAGF,kCACE,mCAGF,kBAEE,sCAIJ,2CACE,YACE,sCAOA,sEAGF,YACE,uCAIJ,0CACE,YACE,uCAIJ,UACE,YACE,gCC1QJ,oBACE,gBACA,yCAEA,UACE,YACA,gBACA,iCAGF,kBACE,qBACA,4CAEA,eACE,iCAIJ,anCfmB,qBmCiBjB,uCAEA,yBACE,+CAIA,oBACE,oDAEA,yBACE,gDAKN,aACE,gBAKN,kBACE,eACA,aACA,qBACA,0BAEA,WACE,cACA,qCAEA,yBAJF,YAKI,4BAIJ,wBACE,cACA,kBACA,qCAEA,0BALF,UAMI,uBAIJ,qBACE,WACA,aACA,kBACA,eACA,iBACA,qBACA,gBACA,gBACA,gBACA,aACA,sBACA,6BAEA,aACE,gBACA,mBACA,mBACA,8BAGF,iBACE,SACA,WACA,cACA,mBnCtFoB,kBmCwFpB,cACA,eACA,4BAIJ,YACE,cnClGiB,kBmCoGjB,WACA,QACA,mDAIJ,YACE,oDAGF,UACE,gBAGF,YACE,eACA,mBACA,gBACA,iBACA,wBACA,sBAEA,aACE,mBACA,SACA,kBACA,WACA,eACA,yBACA,CADA,qBACA,CADA,oBACA,CADA,gBACA,cACA,aACA,mBACA,2BACA,2CACA,6BAEA,aACE,aACA,WACA,YACA,iCAEA,aACE,SACA,WACA,YACA,eACA,gBACA,sBACA,sBACA,CADA,gCACA,CADA,kBACA,6BAIJ,aACE,cACA,eACA,gBACA,kBACA,gBACA,cnChKe,mFmCoKjB,kBAGE,4BACA,2CACA,wGAEA,aACE,6BAIJ,0BACE,2CACA,yBACA,yDAEA,aACE,uCAKN,UACE,oCAGF,WACE,8BAGF,anCnMmB,SmCqMjB,eACA,WACA,cACA,cACA,YACA,aACA,mBACA,WACA,2BACA,2CACA,2GAEA,SAGE,cACA,4BACA,2CACA,qCAKF,SACE,OCjON,eACE,eACA,8BAEA,QAEE,gBACA,UAGF,kBACE,kBACA,cAGF,iBACE,cACA,mBACA,WACA,aACA,sBAEA,kBpCfsB,eoCoBxB,iBACE,aACA,cACA,iBACA,eACA,gBACA,qBAEA,oBACE,qBACA,yBACA,4BACA,oEAGF,YAEE,kCAGF,aACE,gCAIA,qBACA,WACA,eACA,WpCtDE,coCwDF,UACA,oBACA,gBhCzDE,sBgC2DF,kBACA,iBACA,sCAEA,oBpC1DoB,0BoC+DtB,cACE,wBAGF,YACE,mBACA,iBACA,cAIJ,oBACE,kBACA,yBACA,sBACA,WACA,YACA,cACA,kBACA,SACA,kBACA,sBACA,gBACA,mBACA,cACA,uBAEA,iBACE,qBAGF,oBhClGY,8EgCuGZ,oBAGE,iBACA,gCAGF,mBACE,SACA,wCAGF,mBAEE,eAIJ,oBACE,WACA,gBACA,cACA,cAGF,aACE,qBACA,oBAEA,cACE,eAIJ,eACE,mBACA,cpC7Hc,aoCiIhB,cACE,uBACA,UACA,SACA,SACA,cpCtIc,0BoCwId,kBACA,mBAEA,oBACE,sCAGF,kCAEE,eAIJ,WACE,eACA,kBACA,eACA,6BAIJ,yBACE,kBACA,gCAEA,YACE,2CAGF,yBACE,aACA,aACA,mBACA,mGAEA,UAEE,aACA,+GAEA,oBpC1LoB,sDoCgMxB,cACE,gBACA,iBACA,YACA,oBACA,cpC1LkB,sCoC6LlB,gCAGF,YACE,mBACA,8CAEA,aACE,wBACA,iBACA,oCAIJ,uBACE,CADF,oBACE,CADF,eACE,sBACA,eACA,WpC/NI,qBoCiOJ,WACA,UACA,oBACA,qXACA,sBACA,kBACA,CACA,yBACA,mDAGF,UACE,cAIJ,apCjOkB,qBoCoOhB,+BACE,6BAEA,8BACE,YCpPN,qBACE,iBANc,cAQd,kBACA,sCAEA,WANF,UAOI,eACA,mBAIJ,sBACE,eACA,gBACA,gBACA,qBACA,crClBmB,oBqCqBnB,arClBwB,0BqCoBtB,6EAEA,oBAGE,wCAIJ,arChCmB,oBqCqCnB,YACE,oBACA,+BAEA,eACE,yBAIJ,eACE,crC/CiB,qBqCmDnB,iBACE,crCpDiB,uBqCwDnB,eACE,mBACA,kBACA,kBACA,yHAGF,sBAME,mBACA,oBACA,gBACA,crCxEiB,qBqC4EnB,aACE,qBAGF,gBACE,qBAGF,eACE,qBAGF,gBACE,yCAGF,aAEE,qBAGF,eACE,qBAGF,kBACE,yCAMA,iBACA,iBACA,yDAEA,2BACE,yDAGF,2BACE,qBAIJ,UACE,SACA,SACA,gCACA,eACA,4BAEA,UACE,SACA,wBAIJ,UACE,yBACA,8BACA,CADA,iBACA,gBACA,mBACA,iEAEA,+BAEE,cACA,kBACA,gBACA,gBACA,crCnJe,iCqCuJjB,uBACE,gBACA,gBACA,crC7IY,qDqCiJd,WAEE,iBACA,kBACA,qBACA,mEAEA,SACE,kBACA,iFAEA,gBACE,kBACA,6EAGF,iBACE,SACA,UACA,mBACA,gBACA,uBACA,+BAMR,YACE,oBAIJ,kBACE,eACA,mCAEA,iBACE,oBACA,8BAGF,YACE,8BACA,eACA,6BAGF,UACE,uBACA,eACA,iBACA,WrCrNI,iBqCuNJ,kBACA,qEAEA,aAEE,6CAIA,arC7Ne,oCqCkOjB,sBACE,gBACA,eACA,iBACA,qCAGF,4BA3BF,iBA4BI,4BAIJ,iBACE,YACA,sBACA,mBACA,CACA,sBACA,0BACA,QACA,aACA,yCAEA,sBACE,eACA,iBACA,gBACA,crC7Pe,mBqC+Pf,mBACA,gCACA,uBACA,mBACA,gBACA,wFAEA,eAEE,cACA,2CAGF,oBACE,2BAKN,iBACE,mCAIE,UACqB,sClCnRzB,CkCoRI,kBACA,uCAEA,aACE,WACA,YACA,mBACA,iBjCpOgB,wBD9DtB,4BACA,iCkCsSE,cACE,mCAEA,aACE,WrC5SA,qBqC8SA,uDAGE,yBACE,2CAKN,aACE,crCrTa,kCqC6TnB,sBAEE,CACA,eACA,eACA,iBACA,mBACA,crCpUiB,sCqCuUjB,arCpUsB,0BqCsUpB,kBAIJ,cACE,SACA,UACA,gBACA,uBACA,oBACA,kBACA,oBACA,cACA,kBAGF,sBACE,eACA,iBACA,gBACA,mBACA,crC9ViB,wBqCiWjB,sBACE,cACA,eACA,gBACA,cACA,kBAKF,cACA,iBrC5WiB,mCqC0WnB,sBACE,CAEA,eACA,mBACA,crC/WiB,kBqCoXjB,cACA,iBrCrXiB,kBqC6XjB,crC7XiB,mCqC4XnB,sBACE,CACA,gBACA,gBACA,mBACA,crCjYiB,kBqCsYjB,crCtYiB,kBqC8YnB,sBACE,eACA,iBACA,gBACA,mBACA,crCnZiB,mCqCuZnB,gBAEE,mDAEA,2BACE,mDAGF,2BACE,kBAIJ,eACE,kBAGF,kBACE,yCAGF,cAEE,kBAGF,UACE,SACA,SACA,0CACA,cACA,yBAEA,UACE,SACA,iDAIJ,YAEE,+BAGF,kBrCjcwB,kBqCmctB,kBACA,gBACA,sBACA,oCAEA,UACE,aACA,2BACA,iBACA,8BACA,mBACA,uDAGF,YACE,yBACA,qBACA,mFAEA,aACE,eACA,qCAGF,sDAVF,UAWI,8BACA,6CAIJ,MACE,sBACA,qCAEA,2CAJF,YAKI,sBAKN,iBACE,yBAEA,WACE,WACA,uBACA,4BAIJ,iBACE,mBACA,uCAEA,eACE,mCAGF,eACE,cACA,qCAGF,eACE,UACA,mDAEA,kBACE,aACA,iBACA,0FAKE,oBACE,gFAIJ,cACE,qDAIJ,aACE,cACA,6CAMA,UACqB,sClC9hB3B,mDkCiiBI,cACE,4DAEA,cACE,qCAKN,oCACE,eACE,sCAIJ,2BA9DF,iBA+DI,mFAIJ,qBAGE,mBrC3jBsB,kBqC6jBtB,kCACA,uBAGF,YACE,kBACA,WACA,YACA,2BAEA,YACE,WACA,uCAKF,YACE,eACA,mBACA,mBACA,qCAGF,sCACE,kBACE,uCAIJ,arC7lBiB,qCqCimBjB,eACE,WrCrmBE,gBqCumBF,CrCpmBe,yFqCymBb,arCzmBa,+CqC+mBjB,eACE,qBAIJ,kBACE,yBAEA,aACE,SACA,eACA,YACA,kBACA,qCAIJ,gDAEI,kBACE,yCAGF,eACE,gBACA,WACA,kBACA,uDAEA,iBACE,sCAMR,8BACE,aACE,uCAEA,gBACE,sDAGF,kBACE,6EAIJ,aAEE,qBAIJ,WACE,UAIJ,mBACE,qCAEA,SAHF,eAII,kBAGF,YACE,uBACA,mBACA,aACA,qBAEA,SrC3rBI,YqC6rBF,qCAGF,gBAXF,SAYI,mBACA,sBAIJ,eACE,uBACA,gBACA,gBACA,uBAGF,eACE,gBACA,0BAEA,YACE,yBACA,gBACA,eACA,crCltBe,6BqCstBjB,eACE,iBACA,+BAGF,kBrCztBsB,aqC2tBpB,0BACA,aACA,uCAEA,YACE,gCAIJ,cACE,gBACA,uDAEA,YACE,mBACA,iDAGF,UACE,YACA,0BACA,gCAIJ,YACE,uCAEA,sBACE,eACA,gBACA,cACA,qCAGF,cACE,crCjwBa,uFqCuwBnB,eACE,cASA,CrCjxBiB,2CqC8wBjB,iBACA,CACA,kBACA,gBAGF,eACE,cACA,aACA,kDACA,cACA,qCAEA,eAPF,oCAQI,cACA,8BAEA,UACE,aACA,sBACA,0CAEA,OACE,cACA,2CAGF,YACE,mBACA,QACA,cACA,qCAIJ,UACE,2BAGF,eACE,sCAIJ,eAtCF,UAuCI,6BAEA,aACE,gBACA,gBACA,2GAEA,eAGE,uFAIJ,+BAGE,2BAGF,YACE,gCAEA,eACE,qEAEA,eAEE,gBACA,2CAGF,eACE,SAQZ,iBACE,qBACA,iBAGF,aACE,kBACA,aACA,UACA,YACA,crC72BsB,qBqC+2BtB,eACA,qCAEA,gBAVF,eAWI,WACA,gBACA,crCz2Bc,SsCjBlB,UACE,eACA,iBACA,yBACA,qBAEA,WAEE,iBACA,mBACA,6BACA,gBACA,mBACA,oBAGF,qBACE,gCACA,aACA,gBACA,oBAGF,eACE,qEAGF,kBtCrBwB,UsC0BxB,atCzBwB,0BsC2BtB,gBAEA,oBACE,eAIJ,eACE,CAII,4HADF,eACE,+FAOF,sBAEE,yFAKF,YAEE,gCAMJ,kBtC9DsB,6BsCgEpB,gCACA,4CAEA,qBACE,8BACA,2CAGF,uBACE,+BACA,0BAKN,qBACE,gBAIJ,aACE,mBACA,MAGF,+BACE,0BAGF,sBACE,SACA,aACA,8CAGF,oBAEE,qBACA,iBACA,eACA,ctC1GmB,gBsC4GnB,0DAEA,UtCjHM,wDsCqHN,eACE,iBACA,sEAGF,cACE,yCAKF,YAEE,yDAEA,qBACE,iBACA,eACA,gBACA,qEAEA,cACE,2EAGF,YACE,mBACA,uFAEA,YACE,qHAOJ,sBACA,cACA,uBAIJ,wBACE,mBtC5JsB,sBsC8JtB,YACA,mBACA,gCAEA,gBACE,mBACA,oBAIJ,YACE,yBACA,aACA,mBtC3KsB,gCsC8KtB,aACE,gBACA,mBAIJ,wBACE,aACA,mBACA,qCAEA,wCACE,4BACE,0BAIJ,kBACE,iCAGF,kBtCnMsB,uCsCsMpB,kBACE,4BAIJ,gBACE,oBACA,sCAEA,SACE,wCAGF,YACE,mBACA,mCAGF,aACE,aACA,uBACA,mBACA,kBACA,6CAEA,UACE,YACA,kCAIJ,aACE,mCAGF,aACE,iBACA,ctC7Oa,gBsC+Ob,mCAIJ,QACE,WACA,qCAEA,sBACE,gBACA,qCAOJ,4FAFF,YAGI,gCAIJ,aACE,sCAEA,eACE,4BAIJ,wBACE,aACA,gBACA,qCAEA,2BALF,4BAMI,sCAIJ,+CACE,YACE,iBCzRN,YACE,uBACA,WACA,iBACA,iCAEA,gBACE,gBACA,oBACA,cACA,wCAEA,YACE,yBACA,mBvCZoB,YuCcpB,yBAIJ,WAvBc,UAyBZ,oBACA,iCAEA,YACE,mBACA,YACA,uCAEA,aACE,yCAEA,oBACE,aACA,2CAGF,SvCzCA,YuC2CE,kBACA,YACA,uCAIJ,aACE,cvC/Ca,qBuCiDb,cACA,eACA,aACA,0HAIA,kBAGE,+BAKN,aACE,iBACA,YACA,aACA,qCAGF,sCACE,YACE,6BAIJ,eACE,0BACA,gBACA,mBACA,qCAEA,2BANF,eAOI,+BAGF,aACE,aACA,cvCzFa,qBuC2Fb,0BACA,2CACA,0BACA,mBACA,gBACA,uBACA,mCAEA,gBACE,oCAGF,UvC1GA,yBuC4GE,0BACA,2CACA,uCAGF,kBACE,sBACA,+BAIJ,kBACE,wBACA,SACA,iCAEA,QACE,kBACA,6DAIJ,UvClIE,yBAMkB,gBuC+HlB,gBACA,mEAEA,wBACE,6DAKN,yBACE,iCAIJ,qBACE,WACA,gBApJY,cAsJZ,sCAGF,uCACE,YACE,iCAGF,WA/JY,cAiKV,sCAIJ,gCACE,UACE,0BAMF,2BACA,qCAEA,wBALF,cAMI,CACA,sBACA,kCAGF,YACE,oBAEA,gCACA,0BAEA,eAEA,mBACA,8BACA,mCAEA,eACE,kBACA,yCAGF,mBACE,4DAEA,eACE,qCAIJ,gCAzBF,eA0BI,iBACA,6BAIJ,avClNiB,euCoNf,iBACA,gBACA,qCAEA,2BANF,eAOI,6BAIJ,avC7NiB,euC+Nf,iBACA,gBACA,mBACA,4BAGF,wBACE,eACA,gBACA,cvCxOe,mBuC0Of,kBACA,gCACA,4BAGF,cACE,cvChPe,iBuCkPf,gBACA,0CAGF,UvCzPI,gBuC2PF,uFAGF,eAEE,gEAGF,aACE,4CAGF,cACE,gBACA,WvCzQE,oBuC2QF,iBACA,gBACA,mBACA,2BAGF,cACE,iBACA,cvChRe,mBuCkRf,kCAEA,UvCvRE,gBuCyRA,CAII,2NADF,eACE,4BAMR,UACE,SACA,SACA,0CACA,cACA,mCAEA,UACE,SACA,qCAKN,eA9SF,aA+SI,iCAEA,YACE,yBAGF,UACE,UACA,YACA,iCAEA,YACE,4BAGF,YACE,8DAGF,eAEE,gCACA,gBACA,0EAEA,eACE,+BAIJ,eACE,6DAGF,2BvC9UoB,YuCqV1B,UACE,SACA,cACA,WACA,sDAKA,avCjWmB,0DuCoWjB,avCjWsB,4DuCsWxB,anC1Wc,gBmC4WZ,4DAGF,anC9WU,gBmCgXR,0DAGF,avCtWgB,gBuCwWd,0DAGF,anCtXU,gBmCwXR,UAIJ,YACE,eACA,yBAEA,aACE,qBACA,oCAEA,kBACE,4BAGF,cACE,gBACA,+BAEA,oBACE,iBACA,gCAIJ,eACE,yBACA,eACA,CAII,iNADF,eACE,6CAKN,aACE,mBACA,2BAGF,oBACE,cvCtae,qBuCwaf,yBACA,eACA,gBACA,gCACA,iCAEA,UvCjbE,gCuCmbA,oCAGF,avChboB,gCuCkblB,iBAMR,aACE,iBACA,eACA,sBAGF,aACE,eACA,cACA,wBAEA,aACE,kBAIJ,YACE,eACA,mBACA,wBAGF,YACE,WACA,sBACA,aACA,+BAEA,aACE,qBACA,gBACA,eACA,iBACA,cvC5diB,CuCieb,4MADF,eACE,sCAKN,aACE,gCAIJ,YAEE,mBACA,kEAEA,UACE,kBACA,4BACA,gFAEA,iBACE,kDAKN,aAEE,aACA,sBACA,4EAEA,cACE,WACA,kBACA,mBACA,uEAIJ,cAEE,iBAGF,YACE,eACA,kBACA,2CAEA,kBACE,eACA,8BAGF,kBACE,+CAGF,gBACE,uDAEA,gBACE,mBACA,YACA,YAKN,kBACE,eACA,cAEA,avCxiBwB,qBuC0iBtB,oBAEA,yBACE,SAKN,aACE,YAGF,gBACE,eACA,mBvCzjBwB,gCuC2jBxB,uBAEA,eACE,oBAGF,YACE,2BACA,mBACA,cvCtkBiB,euCwkBjB,eACA,oBAGF,iBACE,4BAEA,aACE,SACA,kBACA,WACA,YACA,qBAIJ,2BACE,mBAGF,oBACE,uBAGF,avCnlBgB,sDuCulBhB,avCpmBmB,qBuCwmBjB,gBACA,yDAIJ,oBAIE,cvCjnBmB,iGuConBnB,eACE,yIAIA,4BACE,cACA,iIAGF,8BACE,CADF,sBACE,WACA,sBAKN,YAEE,mBACA,sCAEA,aACE,CACA,gBACA,kBACA,0DAIA,8BACE,CADF,sBACE,WACA,gBAKN,kBACE,8BACA,yBAEA,yBnC9pBc,yBmCkqBd,yBACE,wBAGF,yBnCnqBU,wBmCwqBR,2BACA,eACA,iBACA,4BACA,kBACA,gBACA,0BAEA,avClrBiB,uBuCwrBjB,wBACA,qBAGF,avC/qBgB,cuCorBlB,kBvC/rB0B,kBuCisBxB,mBACA,uBAEA,YACE,8BACA,mBACA,aACA,gCAEA,SACE,SACA,gDAEA,aACE,8BAIJ,aACE,gBACA,cvCvtBe,yBuCytBf,iBACA,gCAEA,aACE,qBACA,iHAEA,aAGE,mCAIJ,anCvuBM,6BmC8uBR,YACE,2BACA,6BACA,mCAEA,kBACE,gFAGF,YAEE,cACA,sBACA,YACA,cvC5vBa,mLuC+vBb,kBAEE,gBACA,uBACA,sCAIJ,aACE,6BACA,4CAEA,avC9vBU,iBuCgwBR,gBACA,wCAIJ,aACE,sBACA,WACA,aACA,qBACA,cvCvxBa,WuC8xBrB,kBAGE,0BAFA,eACA,uBASA,CARA,eAGF,oBACE,gBACA,CAEA,qBACA,oBAGF,YACE,eACA,CACA,kBACA,wBAEA,qBACE,cACA,mBACA,aACA,0FAGF,kBAEE,kBACA,YACA,6CAGF,QACE,SACA,+CAEA,aACE,sEAGF,uBACE,yDAGF,anC70BY,8CmCk1Bd,qBACE,aACA,WvCt1BI,cuC21BR,iBACE,qBAGF,wBACE,kBACA,2BAEA,cACE,mBvC/1BsB,gCuCi2BtB,kCAEA,cACE,cACA,gBACA,eACA,gBACA,cvC12Be,qBuC42Bf,mBACA,uHAEA,UvCl3BE,iCuCy3BJ,cACE,cvC12BY,uCuC82Bd,YACE,8BACA,mBACA,sCAGF,eACE,0pDCp4BN,kIACE,CADF,sIACE,uIAYA,aAEE,yIAGF,aAEE,qIAGF,aAEE,6IAGF,aAEE,UChCJ,aACE,gCAEA,gBACE,eACA,mBACA,+BAGF,cACE,iBACA,8CAGF,aACE,kBACA,wBAGF,gBACE,iCAGF,aACE,kBACA,uCAGF,oBACE,gDAGF,SACE,YACA,8BAGF,cACE,iBACA,mEAGF,aACE,kBACA,2DAGF,cAEE,gBACA,mFAGF,cACE,gBACA,+BAGF,eACE,2EAGF,UAEE,mCAGF,aACE,iBACA,yBAGF,kBACE,kBACA,4BAGF,UACE,UACA,wBAGF,aACE,kCAGF,MACE,WACA,cACA,mBACA,2CAGF,aACE,iBACA,0CAGF,gBACE,eACA,mCAGF,WACE,sCAGF,gBACE,gBACA,yCAGF,UACE,iCAGF,aACE,iBACA,+BAGF,UACE,0BAGF,gBACE,eACA,UAGA,WACA,yCAGF,iBACE,mBACA,4GAGF,iBAEE,gBACA,uCAGF,kBACE,eACA,2BAGF,aACE,kBACA,wCAGF,SACE,YACA,yDAGF,SACE,WACA,CAKA,oFAGF,UACE,OACA,uGAGF,UAEE,gBACA,uCAIA,cACE,iBACA,kEAEA,cACE,gBACA,qCAKN,WACE,eACA,iBACA,uCAGF,WACE,sCAGF,aACE,kBACA,0CAGF,gBACE,eACA,uDAGF,gBACE,2CAGF,cACE,iBACA,YACA,yEAGF,aAEE,iBACA,iBAGF,wBACE,iBAGF,SACE,oBACA,yBAGF,aACE,8EAGF,cAEE,gBACA,oDAGF,cACE,mBACA,gEAGF,iBACE,gBACA,CAMA,8KAGF,SACE,QACA,yDAGF,kBACE,eACA,uDAGF,kBACE,gBACA,qDAGF,SACE,QACA,8FAGF,cAEE,mBACA,4CAGF,UACE,SACA,kDAEA,UACE,OACA,qEACA,8BAIJ,sXACE,uCAGF,gBAEE,kCAGF,cACE,iBACA,gDAGF,UACE,UACA,gEAGF,aACE,uDAGF,WACE,WACA,uDAGF,UACE,WACA,uDAGF,UACE,WACA,kDAGF,MACE,0CAGF,iBACE,yBACA,qDAGF,cACE,iBACA,qCAGF,kCACE,gBAEE,kBACA,2DAEA,gBACE,mBACA,uEAKF,gBAEE,kBACA,gFAKN,cAEE,gBACA,6CAKE,eACE,eACA,sDAIJ,aACE,kBACA,4DAKF,cACE,gBACA,8DAGF,gBACE,eACA,mCAIJ,aACE,kBACA,iBACA,kCAGF,WACE,mCAGF,WACE,oCAGF,cACE,gBACA,gFAGF,cACE,mBACA,+DAGF,SACE,QACA,sBChbJ,YACE,eACA,CACA,kBACA,0BAEA,qBACE,iBACA,cACA,mBACA,yDAEA,YAEE,mBACA,kBACA,sBACA,YACA,4BAGF,oBACE,cACA,cACA,qGAEA,kBAGE,sDAKN,iBAEE,gBACA,eACA,iBACA,W1CtCI,uB0CwCJ,mBACA,iBACA,4BAGF,cACE,6BAGF,cACE,c1C/CiB,kB0CiDjB,gBACA,qBAIJ,YACE,eACA,cACA,yBAEA,gBACE,mBACA,6BAEA,aACE,sCAIJ,a1CpEmB,gB0CsEjB,qBACA,wBCxEJ,kB3CG0B,C2CCtB,4EAGF,kBACE,gDAEA,kB3CPsB,wC2CcxB,gBACE,uCAGF,iBACE,kCAIJ,kBACE,yBACA,mEAEA,uDACE,kDAIJ,kBACE,mFAEA,uDACE,qBAMF,eACE,0CAIJ,kDACE,gBAGF,kB3CnD0B,0B2CuD1B,i2BACE,oCAEA,sDACE,CADF,8CACE,iDAOF,kBAEE,uDAEA,kBACE,qBACA,C3CxEoB,8E2CuF1B,kB3CvF0B,4B2C6FxB,yB3C7FwB,2B2CiGxB,wB3CjGwB,8B2CqGxB,2B3CrGwB,6B2CyGxB,0B3CzGwB,wB2CgHxB,kB3ChHwB,cAFL,0F2C2HnB,aACE,4GAEA,kKAEA,aACE,CAHF,6HAEA,aACE,CAHF,qIAEA,aACE,CAHF,mHAEA,aACE,sCAIJ,kBACE,iCAGF,YACE,C3CzIoB,mH2C+IpB,a3C/IoB,8C2CuJxB,aACE,2JAEA,UvC7JM,wCuCoKR,aACE,mEAEA,aACE,CAHF,yDAEA,aACE,CAHF,6DAEA,aACE,CAHF,oDAEA,aACE,2BAIJ,2BACE,gDAKA,a3C7KwB,iB2CkL1B,oBACE,6BAEA,kBACE,0BAIJ,+BACE,qB3C5LwB,oC2CgM1B,kBACE,iMAIA,kBAIE,qBAIJ,kB3C/MqB,sE2CmNrB,kBACE,4FAGF,kBACE,qOAIF,evC9NQ,yBuC0ON,wBAGF,0BACE,0BAGF,wBACE,uLAGF,kBAME,4qEAIE,qBAGE,uCAMN,aAEE,uBAIF,e3C9QQ,gC2CmRJ,a3ChRoB,yB2CyRtB,e3C5RM,CADA,oG2CwSF,U3CxSE,0D2CqTF,a3ClTe,2C2CwTf,U3C3TE,6C2CgUJ,a3C7TiB,6D2CiUjB,U3CpUI,qB2C2UR,UvC1UQ,yBuC6UN,SvC7UM,iGuCmVN,eAGE,CAIA,oEAIA,kBACE,oDAEA,eACE,iHAMA,UvCxWA,2CuCiXR,yCACE,gMAGF,eAUE,sKAGF,U3CnYQ,0D","file":"skins/glitch/mastodon-light/common.css","sourcesContent":["html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,em,img,ins,kbd,q,s,samp,small,strike,strong,sub,sup,tt,var,b,u,i,center,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td,article,aside,canvas,details,embed,figure,figcaption,footer,header,hgroup,menu,nav,output,ruby,section,summary,time,mark,audio,video{margin:0;padding:0;border:0;font-size:100%;font:inherit;vertical-align:baseline}article,aside,details,figcaption,figure,footer,header,hgroup,menu,nav,section{display:block}body{line-height:1}ol,ul{list-style:none}blockquote,q{quotes:none}blockquote:before,blockquote:after,q:before,q:after{content:\"\";content:none}table{border-collapse:collapse;border-spacing:0}html{scrollbar-color:#ccd7e0 rgba(255,255,255,.1)}::-webkit-scrollbar{width:12px;height:12px}::-webkit-scrollbar-thumb{background:#ccd7e0;border:0px none #fff;border-radius:50px}::-webkit-scrollbar-thumb:hover{background:#c6d2dc}::-webkit-scrollbar-thumb:active{background:#ccd7e0}::-webkit-scrollbar-track{border:0px none #fff;border-radius:0;background:rgba(255,255,255,.1)}::-webkit-scrollbar-track:hover{background:#d9e1e8}::-webkit-scrollbar-track:active{background:#d9e1e8}::-webkit-scrollbar-corner{background:transparent}body{font-family:sans-serif,sans-serif;background:#eff3f5;font-size:13px;line-height:18px;font-weight:400;color:#000;text-rendering:optimizelegibility;font-feature-settings:\"kern\";text-size-adjust:none;-webkit-tap-highlight-color:rgba(0,0,0,0);-webkit-tap-highlight-color:transparent}body.system-font{font-family:system-ui,-apple-system,BlinkMacSystemFont,\"Segoe UI\",\"Oxygen\",\"Ubuntu\",\"Cantarell\",\"Fira Sans\",\"Droid Sans\",\"Helvetica Neue\",sans-serif,sans-serif}body.app-body{padding:0}body.app-body.layout-single-column{height:auto;min-height:100vh;overflow-y:scroll}body.app-body.layout-multiple-columns{position:absolute;width:100%;height:100%}body.app-body.with-modals--active{overflow-y:hidden}body.lighter{background:#d9e1e8}body.with-modals{overflow-x:hidden;overflow-y:scroll}body.with-modals--active{overflow-y:hidden}body.embed{background:#ccd7e0;margin:0;padding-bottom:0}body.embed .container{position:absolute;width:100%;height:100%;overflow:hidden}body.admin{background:#e6ebf0;padding:0}body.error{position:absolute;text-align:center;color:#282c37;background:#d9e1e8;width:100%;height:100%;padding:0;display:flex;justify-content:center;align-items:center}body.error .dialog{vertical-align:middle;margin:20px}body.error .dialog img{display:block;max-width:470px;width:100%;height:auto;margin-top:-120px}body.error .dialog h1{font-size:20px;line-height:28px;font-weight:400}button{font-family:inherit;cursor:pointer}button:focus{outline:none}.app-holder,.app-holder>div{display:flex;width:100%;align-items:center;justify-content:center;outline:0 !important}.layout-single-column .app-holder,.layout-single-column .app-holder>div{min-height:100vh}.layout-multiple-columns .app-holder,.layout-multiple-columns .app-holder>div{height:100%}.container-alt{width:700px;margin:0 auto;margin-top:40px}@media screen and (max-width: 740px){.container-alt{width:100%;margin:0}}.logo-container{margin:100px auto 50px}@media screen and (max-width: 500px){.logo-container{margin:40px auto 0}}.logo-container h1{display:flex;justify-content:center;align-items:center}.logo-container h1 svg{fill:#000;height:42px;margin-right:10px}.logo-container h1 a{display:flex;justify-content:center;align-items:center;color:#000;text-decoration:none;outline:0;padding:12px 16px;line-height:32px;font-family:sans-serif,sans-serif;font-weight:500;font-size:14px}.compose-standalone .compose-form{width:400px;margin:0 auto;padding:20px 0;margin-top:40px;box-sizing:border-box}@media screen and (max-width: 400px){.compose-standalone .compose-form{width:100%;margin-top:0;padding:20px}}.account-header{width:400px;margin:0 auto;display:flex;font-size:13px;line-height:18px;box-sizing:border-box;padding:20px 0;padding-bottom:0;margin-bottom:-30px;margin-top:40px}@media screen and (max-width: 440px){.account-header{width:100%;margin:0;margin-bottom:10px;padding:20px;padding-bottom:0}}.account-header .avatar{width:40px;height:40px;width:40px;height:40px;background-size:40px 40px;margin-right:8px}.account-header .avatar img{width:100%;height:100%;display:block;margin:0;border-radius:4px;border-radius:8%;background-position:50%;background-clip:padding-box}.account-header .name{flex:1 1 auto;color:#282c37;width:calc(100% - 88px)}.account-header .name .username{display:block;font-weight:500;text-overflow:ellipsis;overflow:hidden}.account-header .logout-link{display:block;font-size:32px;line-height:40px;margin-left:8px}.grid-3{display:grid;grid-gap:10px;grid-template-columns:3fr 1fr;grid-auto-columns:25%;grid-auto-rows:max-content}.grid-3 .column-0{grid-column:1/3;grid-row:1}.grid-3 .column-1{grid-column:1;grid-row:2}.grid-3 .column-2{grid-column:2;grid-row:2}.grid-3 .column-3{grid-column:1/3;grid-row:3}@media screen and (max-width: 415px){.grid-3{grid-gap:0;grid-template-columns:minmax(0, 100%)}.grid-3 .column-0{grid-column:1}.grid-3 .column-1{grid-column:1;grid-row:3}.grid-3 .column-2{grid-column:1;grid-row:2}.grid-3 .column-3{grid-column:1;grid-row:4}}.grid-4{display:grid;grid-gap:10px;grid-template-columns:repeat(4, minmax(0, 1fr));grid-auto-columns:25%;grid-auto-rows:max-content}.grid-4 .column-0{grid-column:1/5;grid-row:1}.grid-4 .column-1{grid-column:1/4;grid-row:2}.grid-4 .column-2{grid-column:4;grid-row:2}.grid-4 .column-3{grid-column:2/5;grid-row:3}.grid-4 .column-4{grid-column:1;grid-row:3}.grid-4 .landing-page__call-to-action{min-height:100%}.grid-4 .flash-message{margin-bottom:10px}@media screen and (max-width: 738px){.grid-4{grid-template-columns:minmax(0, 50%) minmax(0, 50%)}.grid-4 .landing-page__call-to-action{padding:20px;display:flex;align-items:center;justify-content:center}.grid-4 .row__information-board{width:100%;justify-content:center;align-items:center}.grid-4 .row__mascot{display:none}}@media screen and (max-width: 415px){.grid-4{grid-gap:0;grid-template-columns:minmax(0, 100%)}.grid-4 .column-0{grid-column:1}.grid-4 .column-1{grid-column:1;grid-row:3}.grid-4 .column-2{grid-column:1;grid-row:2}.grid-4 .column-3{grid-column:1;grid-row:5}.grid-4 .column-4{grid-column:1;grid-row:4}}@media screen and (max-width: 415px){.public-layout{padding-top:48px}}.public-layout .container{max-width:960px}@media screen and (max-width: 415px){.public-layout .container{padding:0}}.public-layout .header{background:#c0cdd9;box-shadow:0 0 15px rgba(0,0,0,.2);border-radius:4px;height:48px;margin:10px 0;display:flex;align-items:stretch;justify-content:center;flex-wrap:nowrap;overflow:hidden}@media screen and (max-width: 415px){.public-layout .header{position:fixed;width:100%;top:0;left:0;margin:0;border-radius:0;box-shadow:none;z-index:110}}.public-layout .header>div{flex:1 1 33.3%;min-height:1px}.public-layout .header .nav-left{display:flex;align-items:stretch;justify-content:flex-start;flex-wrap:nowrap}.public-layout .header .nav-center{display:flex;align-items:stretch;justify-content:center;flex-wrap:nowrap}.public-layout .header .nav-right{display:flex;align-items:stretch;justify-content:flex-end;flex-wrap:nowrap}.public-layout .header .brand{display:block;padding:15px}.public-layout .header .brand svg{display:block;height:18px;width:auto;position:relative;bottom:-2px;fill:#000}@media screen and (max-width: 415px){.public-layout .header .brand svg{height:20px}}.public-layout .header .brand:hover,.public-layout .header .brand:focus,.public-layout .header .brand:active{background:#b3c3d1}.public-layout .header .nav-link{display:flex;align-items:center;padding:0 1rem;font-size:12px;font-weight:500;text-decoration:none;color:#282c37;white-space:nowrap;text-align:center}.public-layout .header .nav-link:hover,.public-layout .header .nav-link:focus,.public-layout .header .nav-link:active{text-decoration:underline;color:#000}@media screen and (max-width: 550px){.public-layout .header .nav-link.optional{display:none}}.public-layout .header .nav-button{background:#a6b9c9;margin:8px;margin-left:0;border-radius:4px}.public-layout .header .nav-button:hover,.public-layout .header .nav-button:focus,.public-layout .header .nav-button:active{text-decoration:none;background:#99afc2}.public-layout .grid{display:grid;grid-gap:10px;grid-template-columns:minmax(300px, 3fr) minmax(298px, 1fr);grid-auto-columns:25%;grid-auto-rows:max-content}.public-layout .grid .column-0{grid-row:1;grid-column:1}.public-layout .grid .column-1{grid-row:1;grid-column:2}@media screen and (max-width: 600px){.public-layout .grid{grid-template-columns:100%;grid-gap:0}.public-layout .grid .column-1{display:none}}.public-layout .directory__card{border-radius:4px}@media screen and (max-width: 415px){.public-layout .directory__card{border-radius:0}}@media screen and (max-width: 415px){.public-layout .page-header{border-bottom:0}}.public-layout .public-account-header{overflow:hidden;margin-bottom:10px;box-shadow:0 0 15px rgba(0,0,0,.2)}.public-layout .public-account-header.inactive{opacity:.5}.public-layout .public-account-header.inactive .public-account-header__image,.public-layout .public-account-header.inactive .avatar{filter:grayscale(100%)}.public-layout .public-account-header.inactive .logo-button{background-color:#282c37}.public-layout .public-account-header__image{border-radius:4px 4px 0 0;overflow:hidden;height:300px;position:relative;background:#fff}.public-layout .public-account-header__image::after{content:\"\";display:block;position:absolute;width:100%;height:100%;box-shadow:inset 0 -1px 1px 1px rgba(0,0,0,.15);top:0;left:0}.public-layout .public-account-header__image img{object-fit:cover;display:block;width:100%;height:100%;margin:0;border-radius:4px 4px 0 0}@media screen and (max-width: 600px){.public-layout .public-account-header__image{height:200px}}.public-layout .public-account-header--no-bar{margin-bottom:0}.public-layout .public-account-header--no-bar .public-account-header__image,.public-layout .public-account-header--no-bar .public-account-header__image img{border-radius:4px}@media screen and (max-width: 415px){.public-layout .public-account-header--no-bar .public-account-header__image,.public-layout .public-account-header--no-bar .public-account-header__image img{border-radius:0}}@media screen and (max-width: 415px){.public-layout .public-account-header{margin-bottom:0;box-shadow:none}.public-layout .public-account-header__image::after{display:none}.public-layout .public-account-header__image,.public-layout .public-account-header__image img{border-radius:0}}.public-layout .public-account-header__bar{position:relative;margin-top:-80px;display:flex;justify-content:flex-start}.public-layout .public-account-header__bar::before{content:\"\";display:block;background:#ccd7e0;position:absolute;bottom:0;left:0;right:0;height:60px;border-radius:0 0 4px 4px;z-index:-1}.public-layout .public-account-header__bar .avatar{display:block;width:120px;height:120px;width:120px;height:120px;background-size:120px 120px;padding-left:16px;flex:0 0 auto}.public-layout .public-account-header__bar .avatar img{display:block;width:100%;height:100%;margin:0;border-radius:50%;border:4px solid #ccd7e0;background:#f2f5f7;border-radius:8%;background-position:50%;background-clip:padding-box}@media screen and (max-width: 600px){.public-layout .public-account-header__bar{margin-top:0;background:#ccd7e0;border-radius:0 0 4px 4px;padding:5px}.public-layout .public-account-header__bar::before{display:none}.public-layout .public-account-header__bar .avatar{width:48px;height:48px;width:48px;height:48px;background-size:48px 48px;padding:7px 0;padding-left:10px}.public-layout .public-account-header__bar .avatar img{border:0;border-radius:4px;border-radius:8%;background-position:50%;background-clip:padding-box}}@media screen and (max-width: 600px)and (max-width: 360px){.public-layout .public-account-header__bar .avatar{display:none}}@media screen and (max-width: 415px){.public-layout .public-account-header__bar{border-radius:0}}@media screen and (max-width: 600px){.public-layout .public-account-header__bar{flex-wrap:wrap}}.public-layout .public-account-header__tabs{flex:1 1 auto;margin-left:20px}.public-layout .public-account-header__tabs__name{padding-top:20px;padding-bottom:8px}.public-layout .public-account-header__tabs__name h1{font-size:20px;line-height:27px;color:#000;font-weight:500;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;text-shadow:1px 1px 1px #000}.public-layout .public-account-header__tabs__name h1 small{display:block;font-size:14px;color:#000;font-weight:400;overflow:hidden;text-overflow:ellipsis}@media screen and (max-width: 600px){.public-layout .public-account-header__tabs{margin-left:15px;display:flex;justify-content:space-between;align-items:center}.public-layout .public-account-header__tabs__name{padding-top:0;padding-bottom:0}.public-layout .public-account-header__tabs__name h1{font-size:16px;line-height:24px;text-shadow:none}.public-layout .public-account-header__tabs__name h1 small{color:#282c37}}.public-layout .public-account-header__tabs__tabs{display:flex;justify-content:flex-start;align-items:stretch;height:58px}.public-layout .public-account-header__tabs__tabs .details-counters{display:flex;flex-direction:row;min-width:300px}@media screen and (max-width: 600px){.public-layout .public-account-header__tabs__tabs .details-counters{display:none}}.public-layout .public-account-header__tabs__tabs .counter{min-width:33.3%;box-sizing:border-box;flex:0 0 auto;color:#282c37;padding:10px;border-right:1px solid #ccd7e0;cursor:default;text-align:center;position:relative}.public-layout .public-account-header__tabs__tabs .counter a{display:block}.public-layout .public-account-header__tabs__tabs .counter:last-child{border-right:0}.public-layout .public-account-header__tabs__tabs .counter::after{display:block;content:\"\";position:absolute;bottom:0;left:0;width:100%;border-bottom:4px solid #9baec8;opacity:.5;transition:all 400ms ease}.public-layout .public-account-header__tabs__tabs .counter.active::after{border-bottom:4px solid #2b90d9;opacity:1}.public-layout .public-account-header__tabs__tabs .counter.active.inactive::after{border-bottom-color:#282c37}.public-layout .public-account-header__tabs__tabs .counter:hover::after{opacity:1;transition-duration:100ms}.public-layout .public-account-header__tabs__tabs .counter a{text-decoration:none;color:inherit}.public-layout .public-account-header__tabs__tabs .counter .counter-label{font-size:12px;display:block}.public-layout .public-account-header__tabs__tabs .counter .counter-number{font-weight:500;font-size:18px;margin-bottom:5px;color:#000;font-family:sans-serif,sans-serif}.public-layout .public-account-header__tabs__tabs .spacer{flex:1 1 auto;height:1px}.public-layout .public-account-header__tabs__tabs__buttons{padding:7px 8px}.public-layout .public-account-header__extra{display:none;margin-top:4px}.public-layout .public-account-header__extra .public-account-bio{border-radius:0;box-shadow:none;background:transparent;margin:0 -5px}.public-layout .public-account-header__extra .public-account-bio .account__header__fields{border-top:1px solid #b3c3d1}.public-layout .public-account-header__extra .public-account-bio .roles{display:none}.public-layout .public-account-header__extra__links{margin-top:-15px;font-size:14px;color:#282c37}.public-layout .public-account-header__extra__links a{display:inline-block;color:#282c37;text-decoration:none;padding:15px;font-weight:500}.public-layout .public-account-header__extra__links a strong{font-weight:700;color:#000}@media screen and (max-width: 600px){.public-layout .public-account-header__extra{display:block;flex:100%}}.public-layout .account__section-headline{border-radius:4px 4px 0 0}@media screen and (max-width: 415px){.public-layout .account__section-headline{border-radius:0}}.public-layout .detailed-status__meta{margin-top:25px}.public-layout .public-account-bio{background:#c0cdd9;box-shadow:0 0 15px rgba(0,0,0,.2);border-radius:4px;overflow:hidden;margin-bottom:10px}@media screen and (max-width: 415px){.public-layout .public-account-bio{box-shadow:none;margin-bottom:0;border-radius:0}}.public-layout .public-account-bio .account__header__fields{margin:0;border-top:0}.public-layout .public-account-bio .account__header__fields a{color:#217aba}.public-layout .public-account-bio .account__header__fields dl:first-child .verified{border-radius:0 4px 0 0}.public-layout .public-account-bio .account__header__fields .verified a{color:#79bd9a}.public-layout .public-account-bio .account__header__content{padding:20px;padding-bottom:0;color:#000}.public-layout .public-account-bio__extra,.public-layout .public-account-bio .roles{padding:20px;font-size:14px;color:#282c37}.public-layout .public-account-bio .roles{padding-bottom:0}.public-layout .directory__list{display:grid;grid-gap:10px;grid-template-columns:minmax(0, 50%) minmax(0, 50%)}@media screen and (max-width: 415px){.public-layout .directory__list{display:block}}.public-layout .directory__list .icon-button{font-size:18px}.public-layout .directory__card{margin-bottom:0}.public-layout .card-grid{display:flex;flex-wrap:wrap;min-width:100%;margin:0 -5px}.public-layout .card-grid>div{box-sizing:border-box;flex:1 0 auto;width:300px;padding:0 5px;margin-bottom:10px;max-width:33.333%}@media screen and (max-width: 900px){.public-layout .card-grid>div{max-width:50%}}@media screen and (max-width: 600px){.public-layout .card-grid>div{max-width:100%}}@media screen and (max-width: 415px){.public-layout .card-grid{margin:0;border-top:1px solid #c0cdd9}.public-layout .card-grid>div{width:100%;padding:0;margin-bottom:0;border-bottom:1px solid #c0cdd9}.public-layout .card-grid>div:last-child{border-bottom:0}.public-layout .card-grid>div .card__bar{background:#d9e1e8}.public-layout .card-grid>div .card__bar:hover,.public-layout .card-grid>div .card__bar:active,.public-layout .card-grid>div .card__bar:focus{background:#ccd7e0}}.no-list{list-style:none}.no-list li{display:inline-block;margin:0 5px}.recovery-codes{list-style:none;margin:0 auto}.recovery-codes li{font-size:125%;line-height:1.5;letter-spacing:1px}.modal-layout{background:#d9e1e8 url('data:image/svg+xml;utf8,') repeat-x bottom fixed;display:flex;flex-direction:column;height:100vh;padding:0}.modal-layout__mastodon{display:flex;flex:1;flex-direction:column;justify-content:flex-end}.modal-layout__mastodon>*{flex:1;max-height:235px}@media screen and (max-width: 600px){.account-header{margin-top:0}}.public-layout .footer{text-align:left;padding-top:20px;padding-bottom:60px;font-size:12px;color:#6d8ca7}@media screen and (max-width: 415px){.public-layout .footer{padding-left:20px;padding-right:20px}}.public-layout .footer .grid{display:grid;grid-gap:10px;grid-template-columns:1fr 1fr 2fr 1fr 1fr}.public-layout .footer .grid .column-0{grid-column:1;grid-row:1;min-width:0}.public-layout .footer .grid .column-1{grid-column:2;grid-row:1;min-width:0}.public-layout .footer .grid .column-2{grid-column:3;grid-row:1;min-width:0;text-align:center}.public-layout .footer .grid .column-2 h4 a{color:#6d8ca7}.public-layout .footer .grid .column-3{grid-column:4;grid-row:1;min-width:0}.public-layout .footer .grid .column-4{grid-column:5;grid-row:1;min-width:0}@media screen and (max-width: 690px){.public-layout .footer .grid{grid-template-columns:1fr 2fr 1fr}.public-layout .footer .grid .column-0,.public-layout .footer .grid .column-1{grid-column:1}.public-layout .footer .grid .column-1{grid-row:2}.public-layout .footer .grid .column-2{grid-column:2}.public-layout .footer .grid .column-3,.public-layout .footer .grid .column-4{grid-column:3}.public-layout .footer .grid .column-4{grid-row:2}}@media screen and (max-width: 600px){.public-layout .footer .grid .column-1{display:block}}@media screen and (max-width: 415px){.public-layout .footer .grid .column-0,.public-layout .footer .grid .column-1,.public-layout .footer .grid .column-3,.public-layout .footer .grid .column-4{display:none}}.public-layout .footer h4{text-transform:uppercase;font-weight:700;margin-bottom:8px;color:#282c37}.public-layout .footer h4 a{color:inherit;text-decoration:none}.public-layout .footer ul a{text-decoration:none;color:#6d8ca7}.public-layout .footer ul a:hover,.public-layout .footer ul a:active,.public-layout .footer ul a:focus{text-decoration:underline}.public-layout .footer .brand svg{display:block;height:36px;width:auto;margin:0 auto;fill:#6d8ca7}.public-layout .footer .brand:hover svg,.public-layout .footer .brand:focus svg,.public-layout .footer .brand:active svg{fill:#60829f}.compact-header h1{font-size:24px;line-height:28px;color:#282c37;font-weight:500;margin-bottom:20px;padding:0 10px;word-wrap:break-word}@media screen and (max-width: 740px){.compact-header h1{text-align:center;padding:20px 10px 0}}.compact-header h1 a{color:inherit;text-decoration:none}.compact-header h1 small{font-weight:400;color:#282c37}.compact-header h1 img{display:inline-block;margin-bottom:-5px;margin-right:15px;width:36px;height:36px}.hero-widget{margin-bottom:10px;box-shadow:0 0 15px rgba(0,0,0,.2)}.hero-widget__img{width:100%;position:relative;overflow:hidden;border-radius:4px 4px 0 0;background:#000}.hero-widget__img img{object-fit:cover;display:block;width:100%;height:100%;margin:0;border-radius:4px 4px 0 0}.hero-widget__text{background:#d9e1e8;padding:20px;border-radius:0 0 4px 4px;font-size:15px;color:#282c37;line-height:20px;word-wrap:break-word;font-weight:400}.hero-widget__text .emojione{width:20px;height:20px;margin:-3px 0 0}.hero-widget__text p{margin-bottom:20px}.hero-widget__text p:last-child{margin-bottom:0}.hero-widget__text em{display:inline;margin:0;padding:0;font-weight:700;background:transparent;font-family:inherit;font-size:inherit;line-height:inherit;color:#131419}.hero-widget__text a{color:#282c37;text-decoration:none}.hero-widget__text a:hover{text-decoration:underline}@media screen and (max-width: 415px){.hero-widget{display:none}}.endorsements-widget{margin-bottom:10px;padding-bottom:10px}.endorsements-widget h4{padding:10px;text-transform:uppercase;font-weight:700;font-size:13px;color:#282c37}.endorsements-widget .account{padding:10px 0}.endorsements-widget .account:last-child{border-bottom:0}.endorsements-widget .account .account__display-name{display:flex;align-items:center}.endorsements-widget .account .account__avatar{width:44px;height:44px;background-size:44px 44px}.endorsements-widget .trends__item{padding:10px}.trends-widget h4{color:#282c37}.box-widget{padding:20px;border-radius:4px;background:#d9e1e8;box-shadow:0 0 15px rgba(0,0,0,.2)}.placeholder-widget{padding:16px;border-radius:4px;border:2px dashed #444b5d;text-align:center;color:#282c37;margin-bottom:10px}.contact-widget{min-height:100%;font-size:15px;color:#282c37;line-height:20px;word-wrap:break-word;font-weight:400;padding:0}.contact-widget h4{padding:10px;text-transform:uppercase;font-weight:700;font-size:13px;color:#282c37}.contact-widget .account{border-bottom:0;padding:10px 0;padding-top:5px}.contact-widget>a{display:inline-block;padding:10px;padding-top:0;color:#282c37;text-decoration:none;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.contact-widget>a:hover,.contact-widget>a:focus,.contact-widget>a:active{text-decoration:underline}.moved-account-widget{padding:15px;padding-bottom:20px;border-radius:4px;background:#d9e1e8;box-shadow:0 0 15px rgba(0,0,0,.2);color:#282c37;font-weight:400;margin-bottom:10px}.moved-account-widget strong,.moved-account-widget a{font-weight:500}.moved-account-widget strong:lang(ja),.moved-account-widget a:lang(ja){font-weight:700}.moved-account-widget strong:lang(ko),.moved-account-widget a:lang(ko){font-weight:700}.moved-account-widget strong:lang(zh-CN),.moved-account-widget a:lang(zh-CN){font-weight:700}.moved-account-widget strong:lang(zh-HK),.moved-account-widget a:lang(zh-HK){font-weight:700}.moved-account-widget strong:lang(zh-TW),.moved-account-widget a:lang(zh-TW){font-weight:700}.moved-account-widget a{color:inherit;text-decoration:underline}.moved-account-widget a.mention{text-decoration:none}.moved-account-widget a.mention span{text-decoration:none}.moved-account-widget a.mention:focus,.moved-account-widget a.mention:hover,.moved-account-widget a.mention:active{text-decoration:none}.moved-account-widget a.mention:focus span,.moved-account-widget a.mention:hover span,.moved-account-widget a.mention:active span{text-decoration:underline}.moved-account-widget__message{margin-bottom:15px}.moved-account-widget__message .fa{margin-right:5px;color:#282c37}.moved-account-widget__card .detailed-status__display-avatar{position:relative;cursor:pointer}.moved-account-widget__card .detailed-status__display-name{margin-bottom:0;text-decoration:none}.moved-account-widget__card .detailed-status__display-name span{font-weight:400}.memoriam-widget{padding:20px;border-radius:4px;background:#000;box-shadow:0 0 15px rgba(0,0,0,.2);font-size:14px;color:#282c37;margin-bottom:10px}.page-header{background:#c0cdd9;box-shadow:0 0 15px rgba(0,0,0,.2);border-radius:4px;padding:60px 15px;text-align:center;margin:10px 0}.page-header h1{color:#000;font-size:36px;line-height:1.1;font-weight:700;margin-bottom:10px}.page-header p{font-size:15px;color:#282c37}@media screen and (max-width: 415px){.page-header{margin-top:0;background:#ccd7e0}.page-header h1{font-size:24px}}.directory{background:#d9e1e8;border-radius:4px;box-shadow:0 0 15px rgba(0,0,0,.2)}.directory__tag{box-sizing:border-box;margin-bottom:10px}.directory__tag>a,.directory__tag>div{display:flex;align-items:center;justify-content:space-between;background:#d9e1e8;border-radius:4px;padding:15px;text-decoration:none;color:inherit;box-shadow:0 0 15px rgba(0,0,0,.2)}.directory__tag>a:hover,.directory__tag>a:active,.directory__tag>a:focus{background:#c0cdd9}.directory__tag.active>a{background:#2b90d9;cursor:default}.directory__tag.disabled>div{opacity:.5;cursor:default}.directory__tag h4{flex:1 1 auto;font-size:18px;font-weight:700;color:#000;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.directory__tag h4 .fa{color:#282c37}.directory__tag h4 small{display:block;font-weight:400;font-size:15px;margin-top:8px;color:#282c37}.directory__tag.active h4,.directory__tag.active h4 .fa,.directory__tag.active h4 small{color:#000}.directory__tag .avatar-stack{flex:0 0 auto;width:120px}.directory__tag.active .avatar-stack .account__avatar{border-color:#2b90d9}.avatar-stack{display:flex;justify-content:flex-end}.avatar-stack .account__avatar{flex:0 0 auto;width:36px;height:36px;border-radius:50%;position:relative;margin-left:-10px;background:#f2f5f7;border:2px solid #d9e1e8}.avatar-stack .account__avatar:nth-child(1){z-index:1}.avatar-stack .account__avatar:nth-child(2){z-index:2}.avatar-stack .account__avatar:nth-child(3){z-index:3}.accounts-table{width:100%}.accounts-table .account{padding:0;border:0}.accounts-table strong{font-weight:700}.accounts-table thead th{text-align:center;text-transform:uppercase;color:#282c37;font-weight:700;padding:10px}.accounts-table thead th:first-child{text-align:left}.accounts-table tbody td{padding:15px 0;vertical-align:middle;border-bottom:1px solid #c0cdd9}.accounts-table tbody tr:last-child td{border-bottom:0}.accounts-table__count{width:120px;text-align:center;font-size:15px;font-weight:500;color:#000}.accounts-table__count small{display:block;color:#282c37;font-weight:400;font-size:14px}.accounts-table__comment{width:50%;vertical-align:initial !important}@media screen and (max-width: 415px){.accounts-table tbody td.optional{display:none}}@media screen and (max-width: 415px){.moved-account-widget,.memoriam-widget,.box-widget,.contact-widget,.landing-page__information.contact-widget,.directory,.page-header{margin-bottom:0;box-shadow:none;border-radius:0}}.statuses-grid{min-height:600px}@media screen and (max-width: 640px){.statuses-grid{width:100% !important}}.statuses-grid__item{width:313.3333333333px}@media screen and (max-width: 1255px){.statuses-grid__item{width:306.6666666667px}}@media screen and (max-width: 640px){.statuses-grid__item{width:100%}}@media screen and (max-width: 415px){.statuses-grid__item{width:100vw}}.statuses-grid .detailed-status{border-radius:4px}@media screen and (max-width: 415px){.statuses-grid .detailed-status{border-top:1px solid #a6b9c9}}.statuses-grid .detailed-status.compact .detailed-status__meta{margin-top:15px}.statuses-grid .detailed-status.compact .status__content{font-size:15px;line-height:20px}.statuses-grid .detailed-status.compact .status__content .emojione{width:20px;height:20px;margin:-3px 0 0}.statuses-grid .detailed-status.compact .status__content .status__content__spoiler-link{line-height:20px;margin:0}.statuses-grid .detailed-status.compact .media-gallery,.statuses-grid .detailed-status.compact .status-card,.statuses-grid .detailed-status.compact .video-player{margin-top:15px}.notice-widget{margin-bottom:10px;color:#282c37}.notice-widget p{margin-bottom:10px}.notice-widget p:last-child{margin-bottom:0}.notice-widget a{font-size:14px;line-height:20px}.notice-widget a,.placeholder-widget a{text-decoration:none;font-weight:500;color:#2b90d9}.notice-widget a:hover,.notice-widget a:focus,.notice-widget a:active,.placeholder-widget a:hover,.placeholder-widget a:focus,.placeholder-widget a:active{text-decoration:underline}.table-of-contents{background:#e6ebf0;min-height:100%;font-size:14px;border-radius:4px}.table-of-contents li a{display:block;font-weight:500;padding:15px;overflow:hidden;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-decoration:none;color:#000;border-bottom:1px solid #ccd7e0}.table-of-contents li a:hover,.table-of-contents li a:focus,.table-of-contents li a:active{text-decoration:underline}.table-of-contents li:last-child a{border-bottom:0}.table-of-contents li ul{padding-left:20px;border-bottom:1px solid #ccd7e0}code{font-family:monospace,monospace;font-weight:400}.form-container{max-width:400px;padding:20px;margin:0 auto}.simple_form .input{margin-bottom:15px;overflow:hidden}.simple_form .input.hidden{margin:0}.simple_form .input.radio_buttons .radio{margin-bottom:15px}.simple_form .input.radio_buttons .radio:last-child{margin-bottom:0}.simple_form .input.radio_buttons .radio>label{position:relative;padding-left:28px}.simple_form .input.radio_buttons .radio>label input{position:absolute;top:-2px;left:0}.simple_form .input.boolean{position:relative;margin-bottom:0}.simple_form .input.boolean .label_input>label{font-family:inherit;font-size:14px;padding-top:5px;color:#000;display:block;width:auto}.simple_form .input.boolean .label_input,.simple_form .input.boolean .hint{padding-left:28px}.simple_form .input.boolean .label_input__wrapper{position:static}.simple_form .input.boolean label.checkbox{position:absolute;top:2px;left:0}.simple_form .input.boolean label a{color:#2b90d9;text-decoration:underline}.simple_form .input.boolean label a:hover,.simple_form .input.boolean label a:active,.simple_form .input.boolean label a:focus{text-decoration:none}.simple_form .input.boolean .recommended{position:absolute;margin:0 4px;margin-top:-2px}.simple_form .row{display:flex;margin:0 -5px}.simple_form .row .input{box-sizing:border-box;flex:1 1 auto;width:50%;padding:0 5px}.simple_form .hint{color:#282c37}.simple_form .hint a{color:#2b90d9}.simple_form .hint code{border-radius:3px;padding:.2em .4em;background:#fff}.simple_form span.hint{display:block;font-size:12px;margin-top:4px}.simple_form p.hint{margin-bottom:15px;color:#282c37}.simple_form p.hint.subtle-hint{text-align:center;font-size:12px;line-height:18px;margin-top:15px;margin-bottom:0}.simple_form .card{margin-bottom:15px}.simple_form strong{font-weight:500}.simple_form strong:lang(ja){font-weight:700}.simple_form strong:lang(ko){font-weight:700}.simple_form strong:lang(zh-CN){font-weight:700}.simple_form strong:lang(zh-HK){font-weight:700}.simple_form strong:lang(zh-TW){font-weight:700}.simple_form .input.with_floating_label .label_input{display:flex}.simple_form .input.with_floating_label .label_input>label{font-family:inherit;font-size:14px;color:#000;font-weight:500;min-width:150px;flex:0 0 auto}.simple_form .input.with_floating_label .label_input input,.simple_form .input.with_floating_label .label_input select{flex:1 1 auto}.simple_form .input.with_floating_label.select .hint{margin-top:6px;margin-left:150px}.simple_form .input.with_label .label_input>label{font-family:inherit;font-size:14px;color:#000;display:block;margin-bottom:8px;word-wrap:break-word;font-weight:500}.simple_form .input.with_label .hint{margin-top:6px}.simple_form .input.with_label ul{flex:390px}.simple_form .input.with_block_label{max-width:none}.simple_form .input.with_block_label>label{font-family:inherit;font-size:16px;color:#000;display:block;font-weight:500;padding-top:5px}.simple_form .input.with_block_label .hint{margin-bottom:15px}.simple_form .input.with_block_label ul{columns:2}.simple_form .input.datetime .label_input select{display:inline-block;width:auto;flex:0}.simple_form .required abbr{text-decoration:none;color:#c1203b}.simple_form .fields-group{margin-bottom:25px}.simple_form .fields-group .input:last-child{margin-bottom:0}.simple_form .fields-row{display:flex;margin:0 -10px;padding-top:5px;margin-bottom:25px}.simple_form .fields-row .input{max-width:none}.simple_form .fields-row__column{box-sizing:border-box;padding:0 10px;flex:1 1 auto;min-height:1px}.simple_form .fields-row__column-6{max-width:50%}.simple_form .fields-row__column .actions{margin-top:27px}.simple_form .fields-row .fields-group:last-child,.simple_form .fields-row .fields-row__column.fields-group{margin-bottom:0}@media screen and (max-width: 600px){.simple_form .fields-row{display:block;margin-bottom:0}.simple_form .fields-row__column{max-width:none}.simple_form .fields-row .fields-group:last-child,.simple_form .fields-row .fields-row__column.fields-group,.simple_form .fields-row .fields-row__column{margin-bottom:25px}}.simple_form .input.radio_buttons .radio label{margin-bottom:5px;font-family:inherit;font-size:14px;color:#000;display:block;width:auto}.simple_form .check_boxes .checkbox label{font-family:inherit;font-size:14px;color:#000;display:inline-block;width:auto;position:relative;padding-top:5px;padding-left:25px;flex:1 1 auto}.simple_form .check_boxes .checkbox input[type=checkbox]{position:absolute;left:0;top:5px;margin:0}.simple_form .input.static .label_input__wrapper{font-size:16px;padding:10px;border:1px solid #444b5d;border-radius:4px}.simple_form input[type=text],.simple_form input[type=number],.simple_form input[type=email],.simple_form input[type=password],.simple_form textarea{box-sizing:border-box;font-size:16px;color:#000;display:block;width:100%;outline:0;font-family:inherit;resize:vertical;background:#f9fafb;border:1px solid #fff;border-radius:4px;padding:10px}.simple_form input[type=text]::placeholder,.simple_form input[type=number]::placeholder,.simple_form input[type=email]::placeholder,.simple_form input[type=password]::placeholder,.simple_form textarea::placeholder{color:#1f232b}.simple_form input[type=text]:invalid,.simple_form input[type=number]:invalid,.simple_form input[type=email]:invalid,.simple_form input[type=password]:invalid,.simple_form textarea:invalid{box-shadow:none}.simple_form input[type=text]:focus:invalid:not(:placeholder-shown),.simple_form input[type=number]:focus:invalid:not(:placeholder-shown),.simple_form input[type=email]:focus:invalid:not(:placeholder-shown),.simple_form input[type=password]:focus:invalid:not(:placeholder-shown),.simple_form textarea:focus:invalid:not(:placeholder-shown){border-color:#c1203b}.simple_form input[type=text]:required:valid,.simple_form input[type=number]:required:valid,.simple_form input[type=email]:required:valid,.simple_form input[type=password]:required:valid,.simple_form textarea:required:valid{border-color:#79bd9a}.simple_form input[type=text]:hover,.simple_form input[type=number]:hover,.simple_form input[type=email]:hover,.simple_form input[type=password]:hover,.simple_form textarea:hover{border-color:#fff}.simple_form input[type=text]:active,.simple_form input[type=text]:focus,.simple_form input[type=number]:active,.simple_form input[type=number]:focus,.simple_form input[type=email]:active,.simple_form input[type=email]:focus,.simple_form input[type=password]:active,.simple_form input[type=password]:focus,.simple_form textarea:active,.simple_form textarea:focus{border-color:#2b90d9;background:#f2f5f7}.simple_form .input.field_with_errors label{color:#c1203b}.simple_form .input.field_with_errors input[type=text],.simple_form .input.field_with_errors input[type=number],.simple_form .input.field_with_errors input[type=email],.simple_form .input.field_with_errors input[type=password],.simple_form .input.field_with_errors textarea,.simple_form .input.field_with_errors select{border-color:#c1203b}.simple_form .input.field_with_errors .error{display:block;font-weight:500;color:#c1203b;margin-top:4px}.simple_form .input.disabled{opacity:.5}.simple_form .actions{margin-top:30px;display:flex}.simple_form .actions.actions--top{margin-top:0;margin-bottom:30px}.simple_form button,.simple_form .button,.simple_form .block-button{display:block;width:100%;border:0;border-radius:4px;background:#2b90d9;color:#000;font-size:18px;line-height:inherit;height:auto;padding:10px;text-transform:uppercase;text-decoration:none;text-align:center;box-sizing:border-box;cursor:pointer;font-weight:500;outline:0;margin-bottom:10px;margin-right:10px}.simple_form button:last-child,.simple_form .button:last-child,.simple_form .block-button:last-child{margin-right:0}.simple_form button:hover,.simple_form .button:hover,.simple_form .block-button:hover{background-color:#2482c7}.simple_form button:active,.simple_form button:focus,.simple_form .button:active,.simple_form .button:focus,.simple_form .block-button:active,.simple_form .block-button:focus{background-color:#419bdd}.simple_form button:disabled:hover,.simple_form .button:disabled:hover,.simple_form .block-button:disabled:hover{background-color:#9baec8}.simple_form button.negative,.simple_form .button.negative,.simple_form .block-button.negative{background:#df405a}.simple_form button.negative:hover,.simple_form .button.negative:hover,.simple_form .block-button.negative:hover{background-color:#db2a47}.simple_form button.negative:active,.simple_form button.negative:focus,.simple_form .button.negative:active,.simple_form .button.negative:focus,.simple_form .block-button.negative:active,.simple_form .block-button.negative:focus{background-color:#e3566d}.simple_form select{appearance:none;box-sizing:border-box;font-size:16px;color:#000;display:block;width:100%;outline:0;font-family:inherit;resize:vertical;background:#f9fafb url(\"data:image/svg+xml;utf8,\") no-repeat right 8px center/auto 16px;border:1px solid #fff;border-radius:4px;padding-left:10px;padding-right:30px;height:41px}.simple_form h4{margin-bottom:15px !important}.simple_form .label_input__wrapper{position:relative}.simple_form .label_input__append{position:absolute;right:3px;top:1px;padding:10px;padding-bottom:9px;font-size:16px;color:#444b5d;font-family:inherit;pointer-events:none;cursor:default;max-width:140px;white-space:nowrap;overflow:hidden}.simple_form .label_input__append::after{content:\"\";display:block;position:absolute;top:0;right:0;bottom:1px;width:5px;background-image:linear-gradient(to right, rgba(249, 250, 251, 0), #f9fafb)}.simple_form__overlay-area{position:relative}.simple_form__overlay-area__blurred form{filter:blur(2px)}.simple_form__overlay-area__overlay{position:absolute;top:0;left:0;width:100%;height:100%;display:flex;justify-content:center;align-items:center;background:rgba(217,225,232,.65);border-radius:4px;margin-left:-4px;margin-top:-4px;padding:4px}.simple_form__overlay-area__overlay__content{text-align:center}.simple_form__overlay-area__overlay__content.rich-formatting,.simple_form__overlay-area__overlay__content.rich-formatting p{color:#000}.block-icon{display:block;margin:0 auto;margin-bottom:10px;font-size:24px}.flash-message{background:#c0cdd9;color:#282c37;border-radius:4px;padding:15px 10px;margin-bottom:30px;text-align:center}.flash-message.notice{border:1px solid rgba(121,189,154,.5);background:rgba(121,189,154,.25);color:#79bd9a}.flash-message.alert{border:1px solid rgba(223,64,90,.5);background:rgba(223,64,90,.25);color:#df405a}.flash-message a{display:inline-block;color:#282c37;text-decoration:none}.flash-message a:hover{color:#000;text-decoration:underline}.flash-message p{margin-bottom:15px}.flash-message .oauth-code{outline:0;box-sizing:border-box;display:block;width:100%;border:none;padding:10px;font-family:monospace,monospace;background:#d9e1e8;color:#000;font-size:14px;margin:0}.flash-message .oauth-code::-moz-focus-inner{border:0}.flash-message .oauth-code::-moz-focus-inner,.flash-message .oauth-code:focus,.flash-message .oauth-code:active{outline:0 !important}.flash-message .oauth-code:focus{background:#ccd7e0}.flash-message strong{font-weight:500}.flash-message strong:lang(ja){font-weight:700}.flash-message strong:lang(ko){font-weight:700}.flash-message strong:lang(zh-CN){font-weight:700}.flash-message strong:lang(zh-HK){font-weight:700}.flash-message strong:lang(zh-TW){font-weight:700}@media screen and (max-width: 740px)and (min-width: 441px){.flash-message{margin-top:40px}}.form-footer{margin-top:30px;text-align:center}.form-footer a{color:#282c37;text-decoration:none}.form-footer a:hover{text-decoration:underline}.quick-nav{list-style:none;margin-bottom:25px;font-size:14px}.quick-nav li{display:inline-block;margin-right:10px}.quick-nav a{color:#2b90d9;text-transform:uppercase;text-decoration:none;font-weight:700}.quick-nav a:hover,.quick-nav a:focus,.quick-nav a:active{color:#217aba}.oauth-prompt,.follow-prompt{margin-bottom:30px;color:#282c37}.oauth-prompt h2,.follow-prompt h2{font-size:16px;margin-bottom:30px;text-align:center}.oauth-prompt strong,.follow-prompt strong{color:#282c37;font-weight:500}.oauth-prompt strong:lang(ja),.follow-prompt strong:lang(ja){font-weight:700}.oauth-prompt strong:lang(ko),.follow-prompt strong:lang(ko){font-weight:700}.oauth-prompt strong:lang(zh-CN),.follow-prompt strong:lang(zh-CN){font-weight:700}.oauth-prompt strong:lang(zh-HK),.follow-prompt strong:lang(zh-HK){font-weight:700}.oauth-prompt strong:lang(zh-TW),.follow-prompt strong:lang(zh-TW){font-weight:700}@media screen and (max-width: 740px)and (min-width: 441px){.oauth-prompt,.follow-prompt{margin-top:40px}}.qr-wrapper{display:flex;flex-wrap:wrap;align-items:flex-start}.qr-code{flex:0 0 auto;background:#fff;padding:4px;margin:0 10px 20px 0;box-shadow:0 0 15px rgba(0,0,0,.2);display:inline-block}.qr-code svg{display:block;margin:0}.qr-alternative{margin-bottom:20px;color:#282c37;flex:150px}.qr-alternative samp{display:block;font-size:14px}.table-form p{margin-bottom:15px}.table-form p strong{font-weight:500}.table-form p strong:lang(ja){font-weight:700}.table-form p strong:lang(ko){font-weight:700}.table-form p strong:lang(zh-CN){font-weight:700}.table-form p strong:lang(zh-HK){font-weight:700}.table-form p strong:lang(zh-TW){font-weight:700}.simple_form .warning,.table-form .warning{box-sizing:border-box;background:rgba(223,64,90,.5);color:#000;text-shadow:1px 1px 0 rgba(0,0,0,.3);box-shadow:0 2px 6px rgba(0,0,0,.4);border-radius:4px;padding:10px;margin-bottom:15px}.simple_form .warning a,.table-form .warning a{color:#000;text-decoration:underline}.simple_form .warning a:hover,.simple_form .warning a:focus,.simple_form .warning a:active,.table-form .warning a:hover,.table-form .warning a:focus,.table-form .warning a:active{text-decoration:none}.simple_form .warning strong,.table-form .warning strong{font-weight:600;display:block;margin-bottom:5px}.simple_form .warning strong:lang(ja),.table-form .warning strong:lang(ja){font-weight:700}.simple_form .warning strong:lang(ko),.table-form .warning strong:lang(ko){font-weight:700}.simple_form .warning strong:lang(zh-CN),.table-form .warning strong:lang(zh-CN){font-weight:700}.simple_form .warning strong:lang(zh-HK),.table-form .warning strong:lang(zh-HK){font-weight:700}.simple_form .warning strong:lang(zh-TW),.table-form .warning strong:lang(zh-TW){font-weight:700}.simple_form .warning strong .fa,.table-form .warning strong .fa{font-weight:400}.action-pagination{display:flex;flex-wrap:wrap;align-items:center}.action-pagination .actions,.action-pagination .pagination{flex:1 1 auto}.action-pagination .actions{padding:30px 0;padding-right:20px;flex:0 0 auto}.post-follow-actions{text-align:center;color:#282c37}.post-follow-actions div{margin-bottom:4px}.alternative-login{margin-top:20px;margin-bottom:20px}.alternative-login h4{font-size:16px;color:#000;text-align:center;margin-bottom:20px;border:0;padding:0}.alternative-login .button{display:block}.scope-danger{color:#ff5050}.form_admin_settings_site_short_description textarea,.form_admin_settings_site_description textarea,.form_admin_settings_site_extended_description textarea,.form_admin_settings_site_terms textarea,.form_admin_settings_custom_css textarea,.form_admin_settings_closed_registrations_message textarea{font-family:monospace,monospace}.input-copy{background:#f9fafb;border:1px solid #fff;border-radius:4px;display:flex;align-items:center;padding-right:4px;position:relative;top:1px;transition:border-color 300ms linear}.input-copy__wrapper{flex:1 1 auto}.input-copy input[type=text]{background:transparent;border:0;padding:10px;font-size:14px;font-family:monospace,monospace}.input-copy button{flex:0 0 auto;margin:4px;text-transform:none;font-weight:400;font-size:14px;padding:7px 18px;padding-bottom:6px;width:auto;transition:background 300ms linear}.input-copy.copied{border-color:#79bd9a;transition:none}.input-copy.copied button{background:#79bd9a;transition:none}.connection-prompt{margin-bottom:25px}.connection-prompt .fa-link{background-color:#e6ebf0;border-radius:100%;font-size:24px;padding:10px}.connection-prompt__column{align-items:center;display:flex;flex:1;flex-direction:column;flex-shrink:1;max-width:50%}.connection-prompt__column-sep{align-self:center;flex-grow:0;overflow:visible;position:relative;z-index:1}.connection-prompt__column p{word-break:break-word}.connection-prompt .account__avatar{margin-bottom:20px}.connection-prompt__connection{background-color:#c0cdd9;box-shadow:0 0 15px rgba(0,0,0,.2);border-radius:4px;padding:25px 10px;position:relative;text-align:center}.connection-prompt__connection::after{background-color:#e6ebf0;content:\"\";display:block;height:100%;left:50%;position:absolute;top:0;width:1px}.connection-prompt__row{align-items:flex-start;display:flex;flex-direction:row}.card>a{display:block;text-decoration:none;color:inherit;box-shadow:0 0 15px rgba(0,0,0,.2)}@media screen and (max-width: 415px){.card>a{box-shadow:none}}.card>a:hover .card__bar,.card>a:active .card__bar,.card>a:focus .card__bar{background:#c0cdd9}.card__img{height:130px;position:relative;background:#fff;border-radius:4px 4px 0 0}.card__img img{display:block;width:100%;height:100%;margin:0;object-fit:cover;border-radius:4px 4px 0 0}@media screen and (max-width: 600px){.card__img{height:200px}}@media screen and (max-width: 415px){.card__img{display:none}}.card__bar{position:relative;padding:15px;display:flex;justify-content:flex-start;align-items:center;background:#ccd7e0;border-radius:0 0 4px 4px}@media screen and (max-width: 415px){.card__bar{border-radius:0}}.card__bar .avatar{flex:0 0 auto;width:48px;height:48px;width:48px;height:48px;background-size:48px 48px;padding-top:2px}.card__bar .avatar img{width:100%;height:100%;display:block;margin:0;border-radius:4px;border-radius:8%;background-position:50%;background-clip:padding-box;background:#f2f5f7;object-fit:cover}.card__bar .display-name{margin-left:15px;text-align:left}.card__bar .display-name strong{font-size:15px;color:#000;font-weight:500;overflow:hidden;text-overflow:ellipsis}.card__bar .display-name span{display:block;font-size:14px;color:#282c37;font-weight:400;overflow:hidden;text-overflow:ellipsis}.pagination{padding:30px 0;text-align:center;overflow:hidden}.pagination a,.pagination .current,.pagination .newer,.pagination .older,.pagination .page,.pagination .gap{font-size:14px;color:#000;font-weight:500;display:inline-block;padding:6px 10px;text-decoration:none}.pagination .current{background:#fff;border-radius:100px;color:#000;cursor:default;margin:0 10px}.pagination .gap{cursor:default}.pagination .older,.pagination .newer{text-transform:uppercase;color:#282c37}.pagination .older{float:left;padding-left:0}.pagination .older .fa{display:inline-block;margin-right:5px}.pagination .newer{float:right;padding-right:0}.pagination .newer .fa{display:inline-block;margin-left:5px}.pagination .disabled{cursor:default;color:#000}@media screen and (max-width: 700px){.pagination{padding:30px 20px}.pagination .page{display:none}.pagination .newer,.pagination .older{display:inline-block}}.nothing-here{background:#d9e1e8;box-shadow:0 0 15px rgba(0,0,0,.2);color:#444b5d;font-size:14px;font-weight:500;text-align:center;display:flex;justify-content:center;align-items:center;cursor:default;border-radius:4px;padding:20px;min-height:30vh}.nothing-here--under-tabs{border-radius:0 0 4px 4px}.nothing-here--flexible{box-sizing:border-box;min-height:100%}.account-role,.simple_form .recommended{display:inline-block;padding:4px 6px;cursor:default;border-radius:3px;font-size:12px;line-height:12px;font-weight:500;color:#282c37;background-color:rgba(40,44,55,.1);border:1px solid rgba(40,44,55,.5)}.account-role.moderator,.simple_form .recommended.moderator{color:#79bd9a;background-color:rgba(121,189,154,.1);border-color:rgba(121,189,154,.5)}.account-role.admin,.simple_form .recommended.admin{color:#c1203b;background-color:rgba(193,32,59,.1);border-color:rgba(193,32,59,.5)}.account__header__fields{max-width:100vw;padding:0;margin:15px -15px -15px;border:0 none;border-top:1px solid #b3c3d1;border-bottom:1px solid #b3c3d1;font-size:14px;line-height:20px}.account__header__fields dl{display:flex;border-bottom:1px solid #b3c3d1}.account__header__fields dt,.account__header__fields dd{box-sizing:border-box;padding:14px;text-align:center;max-height:48px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.account__header__fields dt{font-weight:500;width:120px;flex:0 0 auto;color:#282c37;background:rgba(242,245,247,.5)}.account__header__fields dd{flex:1 1 auto;color:#282c37}.account__header__fields a{color:#2b90d9;text-decoration:none}.account__header__fields a:hover,.account__header__fields a:focus,.account__header__fields a:active{text-decoration:underline}.account__header__fields .verified{border:1px solid rgba(121,189,154,.5);background:rgba(121,189,154,.25)}.account__header__fields .verified a{color:#79bd9a;font-weight:500}.account__header__fields .verified__mark{color:#79bd9a}.account__header__fields dl:last-child{border-bottom:0}.directory__tag .trends__item__current{width:auto}.pending-account__header{color:#282c37}.pending-account__header a{color:#282c37;text-decoration:none}.pending-account__header a:hover,.pending-account__header a:active,.pending-account__header a:focus{text-decoration:underline}.pending-account__header strong{color:#000;font-weight:700}.pending-account__body{margin-top:10px}.activity-stream{box-shadow:0 0 15px rgba(0,0,0,.2);border-radius:4px;overflow:hidden;margin-bottom:10px}@media screen and (max-width: 415px){.activity-stream{margin-bottom:0;border-radius:0;box-shadow:none}}.activity-stream--headless{border-radius:0;margin:0;box-shadow:none}.activity-stream--headless .detailed-status,.activity-stream--headless .status{border-radius:0 !important}.activity-stream div[data-component]{width:100%}.activity-stream .entry{background:#d9e1e8}.activity-stream .entry .detailed-status,.activity-stream .entry .status,.activity-stream .entry .load-more{animation:none}.activity-stream .entry:last-child .detailed-status,.activity-stream .entry:last-child .status,.activity-stream .entry:last-child .load-more{border-bottom:0;border-radius:0 0 4px 4px}.activity-stream .entry:first-child .detailed-status,.activity-stream .entry:first-child .status,.activity-stream .entry:first-child .load-more{border-radius:4px 4px 0 0}.activity-stream .entry:first-child:last-child .detailed-status,.activity-stream .entry:first-child:last-child .status,.activity-stream .entry:first-child:last-child .load-more{border-radius:4px}@media screen and (max-width: 740px){.activity-stream .entry .detailed-status,.activity-stream .entry .status,.activity-stream .entry .load-more{border-radius:0 !important}}.activity-stream--highlighted .entry{background:#c0cdd9}.button.logo-button{flex:0 auto;font-size:14px;background:#2b90d9;color:#000;text-transform:none;line-height:36px;height:auto;padding:3px 15px;border:0}.button.logo-button svg{width:20px;height:auto;vertical-align:middle;margin-right:5px;fill:#000}.button.logo-button:active,.button.logo-button:focus,.button.logo-button:hover{background:#2074b1}.button.logo-button:disabled:active,.button.logo-button:disabled:focus,.button.logo-button:disabled:hover,.button.logo-button.disabled:active,.button.logo-button.disabled:focus,.button.logo-button.disabled:hover{background:#9baec8}.button.logo-button.button--destructive:active,.button.logo-button.button--destructive:focus,.button.logo-button.button--destructive:hover{background:#df405a}@media screen and (max-width: 415px){.button.logo-button svg{display:none}}.embed .detailed-status,.public-layout .detailed-status{padding:15px}.embed .status,.public-layout .status{padding:15px 15px 15px 78px;min-height:50px}.embed .status__avatar,.public-layout .status__avatar{left:15px;top:17px}.embed .status__content,.public-layout .status__content{padding-top:5px}.embed .status__prepend,.public-layout .status__prepend{padding:8px 0;padding-bottom:2px;margin:initial;margin-left:78px;padding-top:15px}.embed .status__prepend-icon-wrapper,.public-layout .status__prepend-icon-wrapper{position:absolute;margin:initial;float:initial;width:auto;left:-32px}.embed .status .media-gallery,.embed .status__action-bar,.embed .status .video-player,.public-layout .status .media-gallery,.public-layout .status__action-bar,.public-layout .status .video-player{margin-top:10px}.embed .status .status__info,.public-layout .status .status__info{font-size:15px;display:initial}.embed .status .status__relative-time,.public-layout .status .status__relative-time{color:#444b5d;float:right;font-size:14px;width:auto;margin:initial;padding:initial}.embed .status .status__info .status__display-name,.public-layout .status .status__info .status__display-name{display:block;max-width:100%;padding:6px 0;padding-right:25px;margin:initial}.embed .status .status__info .status__display-name .display-name strong,.public-layout .status .status__info .status__display-name .display-name strong{display:inline}.embed .status .status__avatar,.public-layout .status .status__avatar{height:48px;position:absolute;width:48px;margin:initial}.rtl .embed .status,.rtl .public-layout .status{padding-left:10px;padding-right:68px}.rtl .embed .status .status__info .status__display-name,.rtl .public-layout .status .status__info .status__display-name{padding-left:25px;padding-right:0}.rtl .embed .status .status__relative-time,.rtl .public-layout .status .status__relative-time{float:left}.status__content__read-more-button{display:block;font-size:15px;line-height:20px;color:#217aba;border:0;background:transparent;padding:0;padding-top:8px;text-decoration:none}.status__content__read-more-button:hover,.status__content__read-more-button:active{text-decoration:underline}.app-body{-webkit-overflow-scrolling:touch;-ms-overflow-style:-ms-autohiding-scrollbar}.animated-number{display:inline-flex;flex-direction:column;align-items:stretch;overflow:hidden;position:relative}.link-button{display:block;font-size:15px;line-height:20px;color:#2b90d9;border:0;background:transparent;padding:0;cursor:pointer}.link-button:hover,.link-button:active{text-decoration:underline}.link-button:disabled{color:#9baec8;cursor:default}.button{background-color:#3897db;border:10px none;border-radius:4px;box-sizing:border-box;color:#000;cursor:pointer;display:inline-block;font-family:inherit;font-size:14px;font-weight:500;height:36px;letter-spacing:0;line-height:36px;overflow:hidden;padding:0 16px;position:relative;text-align:center;text-transform:uppercase;text-decoration:none;text-overflow:ellipsis;transition:all 100ms ease-in;transition-property:background-color;white-space:nowrap;width:auto}.button:active,.button:focus,.button:hover{background-color:#227dbe;transition:all 200ms ease-out;transition-property:background-color}.button--destructive{transition:none}.button--destructive:active,.button--destructive:focus,.button--destructive:hover{background-color:#df405a;transition:none}.button:disabled{background-color:#9baec8;cursor:default}.button.button-primary,.button.button-alternative,.button.button-secondary,.button.button-alternative-2{font-size:16px;line-height:36px;height:auto;text-transform:none;padding:4px 16px}.button.button-alternative{color:#000;background:#9baec8}.button.button-alternative:active,.button.button-alternative:focus,.button.button-alternative:hover{background-color:#8ea3c1}.button.button-alternative-2{background:#3c5063}.button.button-alternative-2:active,.button.button-alternative-2:focus,.button.button-alternative-2:hover{background-color:#344656}.button.button-secondary{font-size:16px;line-height:36px;height:auto;color:#282c37;text-transform:none;background:transparent;padding:3px 15px;border-radius:4px;border:1px solid #9baec8}.button.button-secondary:active,.button.button-secondary:focus,.button.button-secondary:hover{border-color:#8ea3c1;color:#1f232b}.button.button-secondary:disabled{opacity:.5}.button.button--block{display:block;width:100%}.icon-button{display:inline-block;padding:0;color:#606984;border:0;border-radius:4px;background:transparent;cursor:pointer;transition:all 100ms ease-in;transition-property:background-color,color}.icon-button:hover,.icon-button:active,.icon-button:focus{color:#51596f;background-color:rgba(96,105,132,.15);transition:all 200ms ease-out;transition-property:background-color,color}.icon-button:focus{background-color:rgba(96,105,132,.3)}.icon-button.disabled{color:#828ba4;background-color:transparent;cursor:default}.icon-button.active{color:#2b90d9}.icon-button::-moz-focus-inner{border:0}.icon-button::-moz-focus-inner,.icon-button:focus,.icon-button:active{outline:0 !important}.icon-button.inverted{color:#282c37}.icon-button.inverted:hover,.icon-button.inverted:active,.icon-button.inverted:focus{color:#373d4c;background-color:rgba(40,44,55,.15)}.icon-button.inverted:focus{background-color:rgba(40,44,55,.3)}.icon-button.inverted.disabled{color:#191b22;background-color:transparent}.icon-button.inverted.active{color:#2b90d9}.icon-button.inverted.active.disabled{color:#1d6ca4}.icon-button.overlayed{box-sizing:content-box;background:rgba(255,255,255,.6);color:rgba(0,0,0,.7);border-radius:4px;padding:2px}.icon-button.overlayed:hover{background:rgba(255,255,255,.9)}.text-icon-button{color:#282c37;border:0;border-radius:4px;background:transparent;cursor:pointer;font-weight:600;font-size:11px;padding:0 3px;line-height:27px;outline:0;transition:all 100ms ease-in;transition-property:background-color,color}.text-icon-button:hover,.text-icon-button:active,.text-icon-button:focus{color:#373d4c;background-color:rgba(40,44,55,.15);transition:all 200ms ease-out;transition-property:background-color,color}.text-icon-button:focus{background-color:rgba(40,44,55,.3)}.text-icon-button.disabled{color:#000;background-color:transparent;cursor:default}.text-icon-button.active{color:#2b90d9}.text-icon-button::-moz-focus-inner{border:0}.text-icon-button::-moz-focus-inner,.text-icon-button:focus,.text-icon-button:active{outline:0 !important}.dropdown-menu{position:absolute;transform-origin:50% 0}.invisible{font-size:0;line-height:0;display:inline-block;width:0;height:0;position:absolute}.invisible img,.invisible svg{margin:0 !important;border:0 !important;padding:0 !important;width:0 !important;height:0 !important}.ellipsis::after{content:\"…\"}.notification__favourite-icon-wrapper{left:0;position:absolute}.notification__favourite-icon-wrapper .fa.star-icon{color:#ca8f04}.star-icon.active{color:#ca8f04}.bookmark-icon.active{color:#ff5050}.no-reduce-motion .icon-button.star-icon.activate>.fa-star{animation:spring-rotate-in 1s linear}.no-reduce-motion .icon-button.star-icon.deactivate>.fa-star{animation:spring-rotate-out 1s linear}.notification__display-name{color:inherit;font-weight:500;text-decoration:none}.notification__display-name:hover{color:#000;text-decoration:underline}.display-name{display:block;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.display-name a{color:inherit;text-decoration:inherit}.display-name strong{height:18px;font-size:16px;font-weight:500;line-height:18px;text-overflow:ellipsis;overflow:hidden;white-space:nowrap}.display-name span{display:block;height:18px;font-size:15px;line-height:18px;text-overflow:ellipsis;overflow:hidden;white-space:nowrap}.display-name>a:hover strong{text-decoration:underline}.display-name.inline{padding:0;height:18px;font-size:15px;line-height:18px;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.display-name.inline strong{display:inline;height:auto;font-size:inherit;line-height:inherit}.display-name.inline span{display:inline;height:auto;font-size:inherit;line-height:inherit}.display-name__html{font-weight:500}.display-name__account{font-size:14px}.image-loader{position:relative;width:100%;height:100%;display:flex;align-items:center;justify-content:center;flex-direction:column}.image-loader .image-loader__preview-canvas{max-width:100%;max-height:80%;background:url(\"~images/void.png\") repeat;object-fit:contain}.image-loader .loading-bar{position:relative}.image-loader.image-loader--amorphous .image-loader__preview-canvas{display:none}.zoomable-image{position:relative;width:100%;height:100%;display:flex;align-items:center;justify-content:center}.zoomable-image img{max-width:100%;max-height:80%;width:auto;height:auto;object-fit:contain}.dropdown{display:inline-block}.dropdown__content{display:none;position:absolute}.dropdown-menu__separator{border-bottom:1px solid #393f4f;margin:5px 7px 6px;height:0}.dropdown-menu{background:#282c37;padding:4px 0;border-radius:4px;box-shadow:2px 4px 15px rgba(0,0,0,.4)}.dropdown-menu ul{list-style:none}.dropdown-menu__arrow{position:absolute;width:0;height:0;border:0 solid transparent}.dropdown-menu__arrow.left{right:-5px;margin-top:-5px;border-width:5px 0 5px 5px;border-left-color:#282c37}.dropdown-menu__arrow.top{bottom:-5px;margin-left:-7px;border-width:5px 7px 0;border-top-color:#282c37}.dropdown-menu__arrow.bottom{top:-5px;margin-left:-7px;border-width:0 7px 5px;border-bottom-color:#282c37}.dropdown-menu__arrow.right{left:-5px;margin-top:-5px;border-width:5px 5px 5px 0;border-right-color:#282c37}.dropdown-menu__item a{font-size:13px;line-height:18px;display:block;padding:4px 14px;box-sizing:border-box;text-decoration:none;background:#282c37;color:#000;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dropdown-menu__item a:focus,.dropdown-menu__item a:hover,.dropdown-menu__item a:active{background:#2b90d9;color:#282c37;outline:0}.dropdown--active .dropdown__content{display:block;line-height:18px;max-width:311px;right:0;text-align:left;z-index:9999}.dropdown--active .dropdown__content>ul{list-style:none;background:#282c37;padding:4px 0;border-radius:4px;box-shadow:0 0 15px rgba(0,0,0,.4);min-width:140px;position:relative}.dropdown--active .dropdown__content.dropdown__right{right:0}.dropdown--active .dropdown__content.dropdown__left>ul{left:-98px}.dropdown--active .dropdown__content>ul>li>a{font-size:13px;line-height:18px;display:block;padding:4px 14px;box-sizing:border-box;text-decoration:none;background:#282c37;color:#000;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dropdown--active .dropdown__content>ul>li>a:focus{outline:0}.dropdown--active .dropdown__content>ul>li>a:hover{background:#2b90d9;color:#282c37}.dropdown__icon{vertical-align:middle}.static-content{padding:10px;padding-top:20px;color:#444b5d}.static-content h1{font-size:16px;font-weight:500;margin-bottom:40px;text-align:center}.static-content p{font-size:13px;margin-bottom:20px}.column,.drawer{flex:1 1 100%;overflow:hidden}@media screen and (min-width: 631px){.columns-area{padding:0}.column,.drawer{flex:0 0 auto;padding:10px;padding-left:5px;padding-right:5px}.column:first-child,.drawer:first-child{padding-left:10px}.column:last-child,.drawer:last-child{padding-right:10px}.columns-area>div .column,.columns-area>div .drawer{padding-left:5px;padding-right:5px}}.tabs-bar{box-sizing:border-box;display:flex;background:#c0cdd9;flex:0 0 auto;overflow-y:auto}.tabs-bar__link{display:block;flex:1 1 auto;padding:15px 10px;padding-bottom:13px;color:#000;text-decoration:none;text-align:center;font-size:14px;font-weight:500;border-bottom:2px solid #c0cdd9;transition:all 50ms linear;transition-property:border-bottom,background,color}.tabs-bar__link .fa{font-weight:400;font-size:16px}@media screen and (min-width: 631px){.auto-columns .tabs-bar__link:hover,.auto-columns .tabs-bar__link:focus,.auto-columns .tabs-bar__link:active{background:#adbecd;border-bottom-color:#adbecd}}.multi-columns .tabs-bar__link:hover,.multi-columns .tabs-bar__link:focus,.multi-columns .tabs-bar__link:active{background:#adbecd;border-bottom-color:#adbecd}.tabs-bar__link.active{border-bottom:2px solid #2b90d9;color:#2b90d9}.tabs-bar__link span{margin-left:5px;display:none}.tabs-bar__link span.icon{margin-left:0;display:inline}.icon-with-badge{position:relative}.icon-with-badge__badge{position:absolute;left:9px;top:-13px;background:#2b90d9;border:2px solid #c0cdd9;padding:1px 6px;border-radius:6px;font-size:10px;font-weight:500;line-height:14px;color:#000}.column-link--transparent .icon-with-badge__badge{border-color:#f2f5f7}.scrollable{overflow-y:scroll;overflow-x:hidden;flex:1 1 auto;-webkit-overflow-scrolling:touch}.scrollable.optionally-scrollable{overflow-y:auto}@supports(display: grid){.scrollable{contain:strict}}.scrollable--flex{display:flex;flex-direction:column}.scrollable__append{flex:1 1 auto;position:relative;min-height:120px}@supports(display: grid){.scrollable.fullscreen{contain:none}}.react-toggle{display:inline-block;position:relative;cursor:pointer;background-color:transparent;border:0;padding:0;user-select:none;-webkit-tap-highlight-color:rgba(255,255,255,0);-webkit-tap-highlight-color:transparent}.react-toggle-screenreader-only{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.react-toggle--disabled{cursor:not-allowed;opacity:.5;transition:opacity .25s}.react-toggle-track{width:50px;height:24px;padding:0;border-radius:30px;background-color:#d9e1e8;transition:background-color .2s ease}.react-toggle:hover:not(.react-toggle--disabled) .react-toggle-track{background-color:#f9fafb}.react-toggle--checked .react-toggle-track{background-color:#2b90d9}.react-toggle--checked:hover:not(.react-toggle--disabled) .react-toggle-track{background-color:#2074b1}.react-toggle-track-check{position:absolute;width:14px;height:10px;top:0;bottom:0;margin-top:auto;margin-bottom:auto;line-height:0;left:8px;opacity:0;transition:opacity .25s ease}.react-toggle--checked .react-toggle-track-check{opacity:1;transition:opacity .25s ease}.react-toggle-track-x{position:absolute;width:10px;height:10px;top:0;bottom:0;margin-top:auto;margin-bottom:auto;line-height:0;right:10px;opacity:1;transition:opacity .25s ease}.react-toggle--checked .react-toggle-track-x{opacity:0}.react-toggle-thumb{position:absolute;top:1px;left:1px;width:22px;height:22px;border:1px solid #d9e1e8;border-radius:50%;background-color:#fff;box-sizing:border-box;transition:all .25s ease;transition-property:border-color,left}.react-toggle--checked .react-toggle-thumb{left:27px;border-color:#2b90d9}.getting-started__wrapper,.getting_started,.flex-spacer{background:#d9e1e8}.getting-started__wrapper{position:relative;overflow-y:auto}.flex-spacer{flex:1 1 auto}.getting-started{background:#d9e1e8;flex:1 0 auto}.getting-started p{color:#282c37}.getting-started a{color:#444b5d}.getting-started__panel{height:min-content}.getting-started__panel,.getting-started__footer{padding:10px;padding-top:20px;flex:0 1 auto}.getting-started__panel ul,.getting-started__footer ul{margin-bottom:10px}.getting-started__panel ul li,.getting-started__footer ul li{display:inline}.getting-started__panel p,.getting-started__footer p{color:#444b5d;font-size:13px}.getting-started__panel p a,.getting-started__footer p a{color:#444b5d;text-decoration:underline}.getting-started__panel a,.getting-started__footer a{text-decoration:none;color:#282c37}.getting-started__panel a:hover,.getting-started__panel a:focus,.getting-started__panel a:active,.getting-started__footer a:hover,.getting-started__footer a:focus,.getting-started__footer a:active{text-decoration:underline}.getting-started__trends{flex:0 1 auto;opacity:1;animation:fade 150ms linear;margin-top:10px}.getting-started__trends h4{font-size:12px;text-transform:uppercase;color:#282c37;padding:10px;font-weight:500;border-bottom:1px solid #c0cdd9}@media screen and (max-height: 810px){.getting-started__trends .trends__item:nth-child(3){display:none}}@media screen and (max-height: 720px){.getting-started__trends .trends__item:nth-child(2){display:none}}@media screen and (max-height: 670px){.getting-started__trends{display:none}}.getting-started__trends .trends__item{border-bottom:0;padding:10px}.getting-started__trends .trends__item__current{color:#282c37}.column-link__badge{display:inline-block;border-radius:4px;font-size:12px;line-height:19px;font-weight:500;background:#d9e1e8;padding:4px 8px;margin:-6px 10px}.keyboard-shortcuts{padding:8px 0 0;overflow:hidden}.keyboard-shortcuts thead{position:absolute;left:-9999px}.keyboard-shortcuts td{padding:0 10px 8px}.keyboard-shortcuts kbd{display:inline-block;padding:3px 5px;background-color:#c0cdd9;border:1px solid #e6ebf0}.setting-text{color:#282c37;background:transparent;border:none;border-bottom:2px solid #9baec8;box-sizing:border-box;display:block;font-family:inherit;margin-bottom:10px;padding:7px 0;width:100%}.setting-text:focus,.setting-text:active{color:#000;border-bottom-color:#2b90d9}@media screen and (max-width: 600px){.auto-columns .setting-text,.single-column .setting-text{font-size:16px}}.setting-text.light{color:#000;border-bottom:2px solid #839db4}.setting-text.light:focus,.setting-text.light:active{color:#000;border-bottom-color:#2b90d9}.no-reduce-motion button.icon-button i.fa-retweet{background-position:0 0;height:19px;transition:background-position .9s steps(10);transition-duration:0s;vertical-align:middle;width:22px}.no-reduce-motion button.icon-button i.fa-retweet::before{display:none !important}.no-reduce-motion button.icon-button.active i.fa-retweet{transition-duration:.9s;background-position:0 100%}.reduce-motion button.icon-button i.fa-retweet{color:#606984;transition:color 100ms ease-in}.reduce-motion button.icon-button.active i.fa-retweet{color:#2b90d9}.reduce-motion button.icon-button.disabled i.fa-retweet{color:#828ba4}.load-more{display:block;color:#444b5d;background-color:transparent;border:0;font-size:inherit;text-align:center;line-height:inherit;margin:0;padding:15px;box-sizing:border-box;width:100%;clear:both;text-decoration:none}.load-more:hover{background:#d3dce4}.load-gap{border-bottom:1px solid #c0cdd9}.missing-indicator{padding-top:68px}.scrollable>div>:first-child .notification__dismiss-overlay>.wrappy{border-top:1px solid #d9e1e8}.notification__dismiss-overlay{overflow:hidden;position:absolute;top:0;right:0;bottom:-1px;padding-left:15px;z-index:999;align-items:center;justify-content:flex-end;cursor:pointer;display:flex}.notification__dismiss-overlay .wrappy{width:4rem;align-self:stretch;display:flex;flex-direction:column;align-items:center;justify-content:center;background:#c0cdd9;border-left:1px solid #99afc2;box-shadow:0 0 5px #000;border-bottom:1px solid #d9e1e8}.notification__dismiss-overlay .ckbox{border:2px solid #9baec8;border-radius:2px;width:30px;height:30px;font-size:20px;color:#282c37;text-shadow:0 0 5px #000;display:flex;justify-content:center;align-items:center}.notification__dismiss-overlay:focus{outline:0 !important}.notification__dismiss-overlay:focus .ckbox{box-shadow:0 0 1px 1px #2b90d9}.text-btn{display:inline-block;padding:0;font-family:inherit;font-size:inherit;color:inherit;border:0;background:transparent;cursor:pointer}.loading-indicator{color:#444b5d;font-size:12px;font-weight:400;text-transform:uppercase;overflow:visible;position:absolute;top:50%;left:50%;transform:translate(-50%, -50%)}.loading-indicator span{display:block;float:left;margin-left:50%;transform:translateX(-50%);margin:82px 0 0 50%;white-space:nowrap}.loading-indicator__figure{position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);width:42px;height:42px;box-sizing:border-box;background-color:transparent;border:0 solid #86a0b6;border-width:6px;border-radius:50%}.no-reduce-motion .loading-indicator span{animation:loader-label 1.15s infinite cubic-bezier(0.215, 0.61, 0.355, 1)}.no-reduce-motion .loading-indicator__figure{animation:loader-figure 1.15s infinite cubic-bezier(0.215, 0.61, 0.355, 1)}@keyframes spring-rotate-in{0%{transform:rotate(0deg)}30%{transform:rotate(-484.8deg)}60%{transform:rotate(-316.7deg)}90%{transform:rotate(-375deg)}100%{transform:rotate(-360deg)}}@keyframes spring-rotate-out{0%{transform:rotate(-360deg)}30%{transform:rotate(124.8deg)}60%{transform:rotate(-43.27deg)}90%{transform:rotate(15deg)}100%{transform:rotate(0deg)}}@keyframes loader-figure{0%{width:0;height:0;background-color:#86a0b6}29%{background-color:#86a0b6}30%{width:42px;height:42px;background-color:transparent;border-width:21px;opacity:1}100%{width:42px;height:42px;border-width:0;opacity:0;background-color:transparent}}@keyframes loader-label{0%{opacity:.25}30%{opacity:1}100%{opacity:.25}}.spoiler-button{top:0;left:0;width:100%;height:100%;position:absolute;z-index:100}.spoiler-button--minified{display:flex;left:4px;top:4px;width:auto;height:auto;align-items:center}.spoiler-button--click-thru{pointer-events:none}.spoiler-button--hidden{display:none}.spoiler-button__overlay{display:block;background:transparent;width:100%;height:100%;border:0}.spoiler-button__overlay__label{display:inline-block;background:rgba(255,255,255,.5);border-radius:8px;padding:8px 12px;color:#000;font-weight:500;font-size:14px}.spoiler-button__overlay:hover .spoiler-button__overlay__label,.spoiler-button__overlay:focus .spoiler-button__overlay__label,.spoiler-button__overlay:active .spoiler-button__overlay__label{background:rgba(255,255,255,.8)}.spoiler-button__overlay:disabled .spoiler-button__overlay__label{background:rgba(255,255,255,.5)}.setting-toggle{display:block;line-height:24px}.setting-toggle__label,.setting-radio__label,.setting-meta__label{color:#282c37;display:inline-block;margin-bottom:14px;margin-left:8px;vertical-align:middle}.setting-radio{display:block;line-height:18px}.setting-radio__label{margin-bottom:0}.column-settings__row legend{color:#282c37;cursor:default;display:block;font-weight:500;margin-top:10px}.setting-radio__input{vertical-align:middle}.setting-meta__label{float:right}@keyframes heartbeat{from{transform:scale(1);transform-origin:center center;animation-timing-function:ease-out}10%{transform:scale(0.91);animation-timing-function:ease-in}17%{transform:scale(0.98);animation-timing-function:ease-out}33%{transform:scale(0.87);animation-timing-function:ease-in}45%{transform:scale(1);animation-timing-function:ease-out}}.pulse-loading{animation:heartbeat 1.5s ease-in-out infinite both}.upload-area{align-items:center;background:rgba(255,255,255,.8);display:flex;height:100%;justify-content:center;left:0;opacity:0;position:absolute;top:0;visibility:hidden;width:100%;z-index:2000}.upload-area *{pointer-events:none}.upload-area__drop{width:320px;height:160px;display:flex;box-sizing:border-box;position:relative;padding:8px}.upload-area__background{position:absolute;top:0;right:0;bottom:0;left:0;z-index:-1;border-radius:4px;background:#d9e1e8;box-shadow:0 0 5px rgba(0,0,0,.2)}.upload-area__content{flex:1;display:flex;align-items:center;justify-content:center;color:#282c37;font-size:18px;font-weight:500;border:2px dashed #3c5063;border-radius:4px}.dropdown--active .emoji-button img{opacity:1;filter:none}.loading-bar{background-color:#2b90d9;height:3px;position:absolute;top:0;left:0;z-index:9999}.icon-badge-wrapper{position:relative}.icon-badge{position:absolute;display:block;right:-0.25em;top:-0.25em;background-color:#2b90d9;border-radius:50%;font-size:75%;width:1em;height:1em}.conversation{display:flex;border-bottom:1px solid #c0cdd9;padding:5px;padding-bottom:0}.conversation:focus{background:#d3dce4;outline:0}.conversation__avatar{flex:0 0 auto;padding:10px;padding-top:12px;position:relative;cursor:pointer}.conversation__unread{display:inline-block;background:#2b90d9;border-radius:50%;width:.625rem;height:.625rem;margin:-0.1ex .15em .1ex}.conversation__content{flex:1 1 auto;padding:10px 5px;padding-right:15px;overflow:hidden}.conversation__content__info{overflow:hidden;display:flex;flex-direction:row-reverse;justify-content:space-between}.conversation__content__relative-time{font-size:15px;color:#282c37;padding-left:15px}.conversation__content__names{color:#282c37;font-size:15px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-bottom:4px;flex-basis:90px;flex-grow:1}.conversation__content__names a{color:#000;text-decoration:none}.conversation__content__names a:hover,.conversation__content__names a:focus,.conversation__content__names a:active{text-decoration:underline}.conversation__content .status__content{margin:0}.conversation--unread{background:#d3dce4}.conversation--unread:focus{background:#ccd7e0}.conversation--unread .conversation__content__info{font-weight:700}.conversation--unread .conversation__content__relative-time{color:#000}.ui .flash-message{margin-top:10px;margin-left:auto;margin-right:auto;margin-bottom:0;min-width:75%}::-webkit-scrollbar-thumb{border-radius:0}noscript{text-align:center}noscript img{width:200px;opacity:.5;animation:flicker 4s infinite}noscript div{font-size:14px;margin:30px auto;color:#282c37;max-width:400px}noscript div a{color:#2b90d9;text-decoration:underline}noscript div a:hover{text-decoration:none}noscript div a{word-break:break-word}@keyframes flicker{0%{opacity:1}30%{opacity:.75}100%{opacity:1}}button.icon-button i.fa-retweet{background-image:url(\"data:image/svg+xml;utf8,\")}button.icon-button i.fa-retweet:hover{background-image:url(\"data:image/svg+xml;utf8,\")}button.icon-button.disabled i.fa-retweet,button.icon-button.disabled i.fa-retweet:hover{background-image:url(\"data:image/svg+xml;utf8,\")}.status-direct button.icon-button.disabled i.fa-retweet,.status-direct button.icon-button.disabled i.fa-retweet:hover{background-image:url(\"data:image/svg+xml;utf8,\")}.account{padding:10px;border-bottom:1px solid #c0cdd9;color:inherit;text-decoration:none}.account .account__display-name{flex:1 1 auto;display:block;color:#282c37;overflow:hidden;text-decoration:none;font-size:14px}.account.small{border:none;padding:0}.account.small>.account__avatar-wrapper{margin:0 8px 0 0}.account.small>.display-name{height:24px;line-height:24px}.account__wrapper{display:flex}.account__avatar-wrapper{float:left;margin-left:12px;margin-right:12px}.account__avatar{border-radius:8%;background-position:50%;background-clip:padding-box;position:relative;cursor:pointer}.account__avatar-inline{display:inline-block;vertical-align:middle;margin-right:5px}.account__avatar-composite{border-radius:8%;background-position:50%;background-clip:padding-box;overflow:hidden;position:relative}.account__avatar-composite div{border-radius:8%;background-position:50%;background-clip:padding-box;float:left;position:relative;box-sizing:border-box}.account__avatar-composite__label{display:block;position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);color:#000;text-shadow:1px 1px 2px #000;font-weight:700;font-size:15px}.account__avatar-overlay{position:relative;width:48px;height:48px;background-size:48px 48px}.account__avatar-overlay-base{border-radius:8%;background-position:50%;background-clip:padding-box;width:36px;height:36px;background-size:36px 36px}.account__avatar-overlay-overlay{border-radius:8%;background-position:50%;background-clip:padding-box;width:24px;height:24px;background-size:24px 24px;position:absolute;bottom:0;right:0;z-index:1}.account__relationship{height:18px;padding:10px;white-space:nowrap}.account__header__wrapper{flex:0 0 auto;background:#ccd7e0}.account__disclaimer{padding:10px;color:#444b5d}.account__disclaimer strong{font-weight:500}.account__disclaimer strong:lang(ja){font-weight:700}.account__disclaimer strong:lang(ko){font-weight:700}.account__disclaimer strong:lang(zh-CN){font-weight:700}.account__disclaimer strong:lang(zh-HK){font-weight:700}.account__disclaimer strong:lang(zh-TW){font-weight:700}.account__disclaimer a{font-weight:500;color:inherit;text-decoration:underline}.account__disclaimer a:hover,.account__disclaimer a:focus,.account__disclaimer a:active{text-decoration:none}.account__action-bar{border-top:1px solid #c0cdd9;border-bottom:1px solid #c0cdd9;line-height:36px;overflow:hidden;flex:0 0 auto;display:flex}.account__action-bar-links{display:flex;flex:1 1 auto;line-height:18px;text-align:center}.account__action-bar__tab{text-decoration:none;overflow:hidden;flex:0 1 100%;border-left:1px solid #c0cdd9;padding:10px 0;border-bottom:4px solid transparent}.account__action-bar__tab:first-child{border-left:0}.account__action-bar__tab.active{border-bottom:4px solid #2b90d9}.account__action-bar__tab>span{display:block;text-transform:uppercase;font-size:11px;color:#282c37}.account__action-bar__tab strong{display:block;font-size:15px;font-weight:500;color:#000}.account__action-bar__tab strong:lang(ja){font-weight:700}.account__action-bar__tab strong:lang(ko){font-weight:700}.account__action-bar__tab strong:lang(zh-CN){font-weight:700}.account__action-bar__tab strong:lang(zh-HK){font-weight:700}.account__action-bar__tab strong:lang(zh-TW){font-weight:700}.account__action-bar__tab abbr{color:#2b90d9}.account-authorize{padding:14px 10px}.account-authorize .detailed-status__display-name{display:block;margin-bottom:15px;overflow:hidden}.account-authorize__avatar{float:left;margin-right:10px}.notification__message{margin-left:42px;padding:8px 0 0 26px;cursor:default;color:#282c37;font-size:15px;position:relative}.notification__message .fa{color:#2b90d9}.notification__message>span{display:block;overflow:hidden;text-overflow:ellipsis}.account--panel{background:#ccd7e0;border-top:1px solid #c0cdd9;border-bottom:1px solid #c0cdd9;display:flex;flex-direction:row;padding:10px 0}.account--panel__button,.detailed-status__button{flex:1 1 auto;text-align:center}.column-settings__outer{background:#c0cdd9;padding:15px}.column-settings__section{color:#282c37;cursor:default;display:block;font-weight:500;margin-bottom:10px}.column-settings__hashtags .column-settings__row{margin-bottom:15px}.column-settings__hashtags .column-select__control{outline:0;box-sizing:border-box;width:100%;border:none;box-shadow:none;font-family:inherit;background:#d9e1e8;color:#282c37;font-size:14px;margin:0}.column-settings__hashtags .column-select__control::placeholder{color:#1f232b}.column-settings__hashtags .column-select__control::-moz-focus-inner{border:0}.column-settings__hashtags .column-select__control::-moz-focus-inner,.column-settings__hashtags .column-select__control:focus,.column-settings__hashtags .column-select__control:active{outline:0 !important}.column-settings__hashtags .column-select__control:focus{background:#ccd7e0}@media screen and (max-width: 600px){.column-settings__hashtags .column-select__control{font-size:16px}}.column-settings__hashtags .column-select__placeholder{color:#444b5d;padding-left:2px;font-size:12px}.column-settings__hashtags .column-select__value-container{padding-left:6px}.column-settings__hashtags .column-select__multi-value{background:#c0cdd9}.column-settings__hashtags .column-select__multi-value__remove{cursor:pointer}.column-settings__hashtags .column-select__multi-value__remove:hover,.column-settings__hashtags .column-select__multi-value__remove:active,.column-settings__hashtags .column-select__multi-value__remove:focus{background:#b3c3d1;color:#1f232b}.column-settings__hashtags .column-select__multi-value__label,.column-settings__hashtags .column-select__input{color:#282c37}.column-settings__hashtags .column-select__clear-indicator,.column-settings__hashtags .column-select__dropdown-indicator{cursor:pointer;transition:none;color:#444b5d}.column-settings__hashtags .column-select__clear-indicator:hover,.column-settings__hashtags .column-select__clear-indicator:active,.column-settings__hashtags .column-select__clear-indicator:focus,.column-settings__hashtags .column-select__dropdown-indicator:hover,.column-settings__hashtags .column-select__dropdown-indicator:active,.column-settings__hashtags .column-select__dropdown-indicator:focus{color:#3b4151}.column-settings__hashtags .column-select__indicator-separator{background-color:#c0cdd9}.column-settings__hashtags .column-select__menu{background:#fff;border-radius:4px;padding:10px 14px;padding-bottom:14px;margin-top:10px;color:#444b5d;box-shadow:2px 4px 15px rgba(0,0,0,.4);padding:0;background:#282c37}.column-settings__hashtags .column-select__menu h4{text-transform:uppercase;color:#444b5d;font-size:13px;font-weight:500;margin-bottom:10px}.column-settings__hashtags .column-select__menu li{padding:4px 0}.column-settings__hashtags .column-select__menu ul{margin-bottom:10px}.column-settings__hashtags .column-select__menu em{font-weight:500;color:#000}.column-settings__hashtags .column-select__menu-list{padding:6px}.column-settings__hashtags .column-select__option{color:#000;border-radius:4px;font-size:14px}.column-settings__hashtags .column-select__option--is-focused,.column-settings__hashtags .column-select__option--is-selected{background:#3d4455}.column-settings__row .text-btn{margin-bottom:15px}.relationship-tag{color:#000;margin-bottom:4px;display:block;vertical-align:top;background-color:#fff;text-transform:uppercase;font-size:11px;font-weight:500;padding:4px;border-radius:4px;opacity:.7}.relationship-tag:hover{opacity:1}.account-gallery__container{display:flex;flex-wrap:wrap;padding:4px 2px}.account-gallery__item{border:none;box-sizing:border-box;display:block;position:relative;border-radius:4px;overflow:hidden;margin:2px}.account-gallery__item__icons{position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);font-size:24px}.notification__filter-bar,.account__section-headline{background:#e6ebf0;border-bottom:1px solid #c0cdd9;cursor:default;display:flex;flex-shrink:0}.notification__filter-bar button,.account__section-headline button{background:#e6ebf0;border:0;margin:0}.notification__filter-bar button,.notification__filter-bar a,.account__section-headline button,.account__section-headline a{display:block;flex:1 1 auto;color:#282c37;padding:15px 0;font-size:14px;font-weight:500;text-align:center;text-decoration:none;position:relative}.notification__filter-bar button.active,.notification__filter-bar a.active,.account__section-headline button.active,.account__section-headline a.active{color:#282c37}.notification__filter-bar button.active::before,.notification__filter-bar button.active::after,.notification__filter-bar a.active::before,.notification__filter-bar a.active::after,.account__section-headline button.active::before,.account__section-headline button.active::after,.account__section-headline a.active::before,.account__section-headline a.active::after{display:block;content:\"\";position:absolute;bottom:0;left:50%;width:0;height:0;transform:translateX(-50%);border-style:solid;border-width:0 10px 10px;border-color:transparent transparent #c0cdd9}.notification__filter-bar button.active::after,.notification__filter-bar a.active::after,.account__section-headline button.active::after,.account__section-headline a.active::after{bottom:-1px;border-color:transparent transparent #d9e1e8}.notification__filter-bar.directory__section-headline,.account__section-headline.directory__section-headline{background:#dfe6ec;border-bottom-color:transparent}.notification__filter-bar.directory__section-headline a.active::before,.notification__filter-bar.directory__section-headline button.active::before,.account__section-headline.directory__section-headline a.active::before,.account__section-headline.directory__section-headline button.active::before{display:none}.notification__filter-bar.directory__section-headline a.active::after,.notification__filter-bar.directory__section-headline button.active::after,.account__section-headline.directory__section-headline a.active::after,.account__section-headline.directory__section-headline button.active::after{border-color:transparent transparent #eff3f5}.account__moved-note{padding:14px 10px;padding-bottom:16px;background:#ccd7e0;border-top:1px solid #c0cdd9;border-bottom:1px solid #c0cdd9}.account__moved-note__message{position:relative;margin-left:58px;color:#444b5d;padding:8px 0;padding-top:0;padding-bottom:4px;font-size:14px}.account__moved-note__message>span{display:block;overflow:hidden;text-overflow:ellipsis}.account__moved-note__icon-wrapper{left:-26px;position:absolute}.account__moved-note .detailed-status__display-avatar{position:relative}.account__moved-note .detailed-status__display-name{margin-bottom:0}.account__header__content{color:#282c37;font-size:14px;font-weight:400;overflow:hidden;word-break:normal;word-wrap:break-word}.account__header__content p{margin-bottom:20px}.account__header__content p:last-child{margin-bottom:0}.account__header__content a{color:inherit;text-decoration:underline}.account__header__content a:hover{text-decoration:none}.account__header{overflow:hidden}.account__header.inactive{opacity:.5}.account__header.inactive .account__header__image,.account__header.inactive .account__avatar{filter:grayscale(100%)}.account__header__info{position:absolute;top:10px;left:10px}.account__header__image{overflow:hidden;height:145px;position:relative;background:#e6ebf0}.account__header__image img{object-fit:cover;display:block;width:100%;height:100%;margin:0}.account__header__bar{position:relative;background:#ccd7e0;padding:5px;border-bottom:1px solid #b3c3d1}.account__header__bar .avatar{display:block;flex:0 0 auto;width:94px;margin-left:-2px}.account__header__bar .avatar .account__avatar{background:#f2f5f7;border:2px solid #ccd7e0}.account__header__tabs{display:flex;align-items:flex-start;padding:7px 5px;margin-top:-55px}.account__header__tabs__buttons{display:flex;align-items:center;padding-top:55px;overflow:hidden}.account__header__tabs__buttons .icon-button{border:1px solid #b3c3d1;border-radius:4px;box-sizing:content-box;padding:2px}.account__header__tabs__buttons .button{margin:0 8px}.account__header__tabs__name{padding:5px}.account__header__tabs__name .account-role{vertical-align:top}.account__header__tabs__name .emojione{width:22px;height:22px}.account__header__tabs__name h1{font-size:16px;line-height:24px;color:#000;font-weight:500;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.account__header__tabs__name h1 small{display:block;font-size:14px;color:#282c37;font-weight:400;overflow:hidden;text-overflow:ellipsis}.account__header__tabs .spacer{flex:1 1 auto}.account__header__bio{overflow:hidden;margin:0 -5px}.account__header__bio .account__header__content{padding:20px 15px;padding-bottom:5px;color:#000}.account__header__bio .account__header__fields{margin:0;border-top:1px solid #b3c3d1}.account__header__bio .account__header__fields a{color:#217aba}.account__header__bio .account__header__fields dl:first-child .verified{border-radius:0 4px 0 0}.account__header__bio .account__header__fields .verified a{color:#79bd9a}.account__header__extra{margin-top:4px}.account__header__extra__links{font-size:14px;color:#282c37;padding:10px 0}.account__header__extra__links a{display:inline-block;color:#282c37;text-decoration:none;padding:5px 10px;font-weight:500}.account__header__extra__links a strong{font-weight:700;color:#000}.domain{padding:10px;border-bottom:1px solid #c0cdd9}.domain .domain__domain-name{flex:1 1 auto;display:block;color:#000;text-decoration:none;font-size:14px;font-weight:500}.domain__wrapper{display:flex}.domain_buttons{height:18px;padding:10px;white-space:nowrap}@keyframes spring-flip-in{0%{transform:rotate(0deg)}30%{transform:rotate(-242.4deg)}60%{transform:rotate(-158.35deg)}90%{transform:rotate(-187.5deg)}100%{transform:rotate(-180deg)}}@keyframes spring-flip-out{0%{transform:rotate(-180deg)}30%{transform:rotate(62.4deg)}60%{transform:rotate(-21.635deg)}90%{transform:rotate(7.5deg)}100%{transform:rotate(0deg)}}.status__content--with-action{cursor:pointer}.status__content{position:relative;margin:10px 0;font-size:15px;line-height:20px;word-wrap:break-word;font-weight:400;overflow:visible;padding-top:5px}.status__content:focus{outline:0}.status__content .emojione{width:20px;height:20px;margin:-3px 0 0}.status__content img{max-width:100%;max-height:400px;object-fit:contain}.status__content p,.status__content pre,.status__content blockquote{margin-bottom:20px;white-space:pre-wrap}.status__content p:last-child,.status__content pre:last-child,.status__content blockquote:last-child{margin-bottom:0}.status__content .status__content__text,.status__content .e-content{overflow:hidden}.status__content .status__content__text>ul,.status__content .status__content__text>ol,.status__content .e-content>ul,.status__content .e-content>ol{margin-bottom:20px}.status__content .status__content__text h1,.status__content .status__content__text h2,.status__content .status__content__text h3,.status__content .status__content__text h4,.status__content .status__content__text h5,.status__content .e-content h1,.status__content .e-content h2,.status__content .e-content h3,.status__content .e-content h4,.status__content .e-content h5{margin-top:20px;margin-bottom:20px}.status__content .status__content__text h1,.status__content .status__content__text h2,.status__content .e-content h1,.status__content .e-content h2{font-weight:700;font-size:1.2em}.status__content .status__content__text h2,.status__content .e-content h2{font-size:1.1em}.status__content .status__content__text h3,.status__content .status__content__text h4,.status__content .status__content__text h5,.status__content .e-content h3,.status__content .e-content h4,.status__content .e-content h5{font-weight:500}.status__content .status__content__text blockquote,.status__content .e-content blockquote{padding-left:10px;border-left:3px solid #282c37;color:#282c37;white-space:normal}.status__content .status__content__text blockquote p:last-child,.status__content .e-content blockquote p:last-child{margin-bottom:0}.status__content .status__content__text b,.status__content .status__content__text strong,.status__content .e-content b,.status__content .e-content strong{font-weight:700}.status__content .status__content__text em,.status__content .status__content__text i,.status__content .e-content em,.status__content .e-content i{font-style:italic}.status__content .status__content__text sub,.status__content .e-content sub{font-size:smaller;text-align:sub}.status__content .status__content__text sup,.status__content .e-content sup{font-size:smaller;vertical-align:super}.status__content .status__content__text ul,.status__content .status__content__text ol,.status__content .e-content ul,.status__content .e-content ol{margin-left:1em}.status__content .status__content__text ul p,.status__content .status__content__text ol p,.status__content .e-content ul p,.status__content .e-content ol p{margin:0}.status__content .status__content__text ul,.status__content .e-content ul{list-style-type:disc}.status__content .status__content__text ol,.status__content .e-content ol{list-style-type:decimal}.status__content a{color:#d8a070;text-decoration:none}.status__content a:hover{text-decoration:underline}.status__content a:hover .fa{color:#353a48}.status__content a.mention:hover{text-decoration:none}.status__content a.mention:hover span{text-decoration:underline}.status__content a .fa{color:#444b5d}.status__content .status__content__spoiler{display:none}.status__content .status__content__spoiler.status__content__spoiler--visible{display:block}.status__content a.unhandled-link{color:#217aba}.status__content a.unhandled-link .link-origin-tag{color:#ca8f04;font-size:.8em}.status__content .status__content__spoiler-link{background:#7a96ae}.status__content .status__content__spoiler-link:hover{background:#708ea9;text-decoration:none}.status__content__spoiler-link{display:inline-block;border-radius:2px;background:#7a96ae;border:none;color:#000;font-weight:500;font-size:11px;padding:0 5px;text-transform:uppercase;line-height:inherit;cursor:pointer;vertical-align:bottom}.status__content__spoiler-link:hover{background:#708ea9;text-decoration:none}.status__content__spoiler-link .status__content__spoiler-icon{display:inline-block;margin:0 0 0 5px;border-left:1px solid currentColor;padding:0 0 0 4px;font-size:16px;vertical-align:-2px}.notif-cleaning .status,.notif-cleaning .notification-follow,.notif-cleaning .notification-follow-request{padding-right:4.5rem}.status__wrapper--filtered{color:#444b5d;border:0;font-size:inherit;text-align:center;line-height:inherit;margin:0;padding:15px;box-sizing:border-box;width:100%;clear:both;border-bottom:1px solid #c0cdd9}.status__prepend-icon-wrapper{left:-26px;position:absolute}.notification-follow,.notification-follow-request{position:relative;border-bottom:1px solid #c0cdd9}.notification-follow .account,.notification-follow-request .account{border-bottom:0 none}.focusable:focus{outline:0;background:#ccd7e0}.focusable:focus.status.status-direct:not(.read){background:#b3c3d1}.focusable:focus.status.status-direct:not(.read).muted{background:transparent}.focusable:focus .detailed-status,.focusable:focus .detailed-status__action-bar{background:#c0cdd9}.status{padding:10px 14px;position:relative;height:auto;border-bottom:1px solid #c0cdd9;cursor:default;opacity:1;animation:fade 150ms linear}@supports(-ms-overflow-style: -ms-autohiding-scrollbar){.status{padding-right:28px}}@keyframes fade{0%{opacity:0}100%{opacity:1}}.status .video-player,.status .audio-player{margin-top:8px}.status.status-direct:not(.read){background:#c0cdd9;border-bottom-color:#b3c3d1}.status.light .status__relative-time{color:#282c37}.status.light .status__display-name{color:#000}.status.light .display-name{color:#444b5d}.status.light .display-name strong{color:#000}.status.light .status__content{color:#000}.status.light .status__content a{color:#2b90d9}.status.light .status__content a.status__content__spoiler-link{color:#000;background:#9baec8}.status.light .status__content a.status__content__spoiler-link:hover{background:#8199ba}.status.collapsed{background-position:center;background-size:cover;user-select:none}.status.collapsed.has-background::before{display:block;position:absolute;left:0;right:0;top:0;bottom:0;background-image:linear-gradient(to bottom, rgba(0, 0, 0, 0.75), rgba(0, 0, 0, 0.65) 24px, rgba(0, 0, 0, 0.8));pointer-events:none;content:\"\"}.status.collapsed .display-name:hover .display-name__html{text-decoration:none}.status.collapsed .status__content{height:20px;overflow:hidden;text-overflow:ellipsis;padding-top:0}.status.collapsed .status__content:after{content:\"\";position:absolute;top:0;bottom:0;left:0;right:0;background:linear-gradient(rgba(217, 225, 232, 0), #d9e1e8);pointer-events:none}.status.collapsed .status__content a:hover{text-decoration:none}.status.collapsed:focus>.status__content:after{background:linear-gradient(rgba(204, 215, 224, 0), #ccd7e0)}.status.collapsed.status-direct:not(.read)>.status__content:after{background:linear-gradient(rgba(192, 205, 217, 0), #c0cdd9)}.status.collapsed .notification__message{margin-bottom:0}.status.collapsed .status__info .notification__message>span{white-space:nowrap}.status .notification__message{margin:-10px 0px 10px 0}.notification-favourite .status.status-direct{background:transparent}.notification-favourite .status.status-direct .icon-button.disabled{color:#444a5e}.status__relative-time{display:inline-block;flex-grow:1;color:#444b5d;font-size:14px;text-align:right;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.status__display-name{color:#444b5d;overflow:hidden}.status__info__account .status__display-name{display:block;max-width:100%}.status__info{display:flex;justify-content:space-between;font-size:15px}.status__info>span{text-overflow:ellipsis;overflow:hidden}.status__info .notification__message>span{word-wrap:break-word}.status__info__icons{display:flex;align-items:center;height:1em;color:#606984}.status__info__icons .status__media-icon,.status__info__icons .status__visibility-icon,.status__info__icons .status__reply-icon{padding-left:2px;padding-right:2px}.status__info__icons .status__collapse-button.active>.fa-angle-double-up{transform:rotate(-180deg)}.no-reduce-motion .status__collapse-button.activate>.fa-angle-double-up{animation:spring-flip-in 1s linear}.no-reduce-motion .status__collapse-button.deactivate>.fa-angle-double-up{animation:spring-flip-out 1s linear}.status__info__account{display:flex;align-items:center;justify-content:flex-start}.status-check-box{border-bottom:1px solid #282c37;display:flex}.status-check-box .status-check-box__status{margin:10px 0 10px 10px;flex:1;overflow:hidden}.status-check-box .status-check-box__status .media-gallery{max-width:250px}.status-check-box .status-check-box__status .status__content{padding:0;white-space:normal}.status-check-box .status-check-box__status .video-player,.status-check-box .status-check-box__status .audio-player{margin-top:8px;max-width:250px}.status-check-box .status-check-box__status .media-gallery__item-thumbnail{cursor:default}.status-check-box-toggle{align-items:center;display:flex;flex:0 0 auto;justify-content:center;padding:10px}.status__prepend{margin-top:-10px;margin-bottom:10px;margin-left:58px;color:#444b5d;padding:8px 0;padding-bottom:2px;font-size:14px;position:relative}.status__prepend .status__display-name strong{color:#444b5d}.status__prepend>span{display:block;overflow:hidden;text-overflow:ellipsis}.status__action-bar{align-items:center;display:flex;margin-top:8px}.status__action-bar__counter{display:inline-flex;margin-right:11px;align-items:center}.status__action-bar__counter .status__action-bar-button{margin-right:4px}.status__action-bar__counter__label{display:inline-block;width:14px;font-size:12px;font-weight:500;color:#606984}.status__action-bar-button{margin-right:18px}.status__action-bar-dropdown{height:23.15px;width:23.15px}.detailed-status__action-bar-dropdown{flex:1 1 auto;display:flex;align-items:center;justify-content:center;position:relative}.detailed-status{background:#ccd7e0;padding:14px 10px}.detailed-status--flex{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-start}.detailed-status--flex .status__content,.detailed-status--flex .detailed-status__meta{flex:100%}.detailed-status .status__content{font-size:19px;line-height:24px}.detailed-status .status__content .emojione{width:24px;height:24px;margin:-1px 0 0}.detailed-status .video-player,.detailed-status .audio-player{margin-top:8px}.detailed-status__meta{margin-top:15px;color:#444b5d;font-size:14px;line-height:18px}.detailed-status__action-bar{background:#ccd7e0;border-top:1px solid #c0cdd9;border-bottom:1px solid #c0cdd9;display:flex;flex-direction:row;padding:10px 0}.detailed-status__link{color:inherit;text-decoration:none}.detailed-status__favorites,.detailed-status__reblogs{display:inline-block;font-weight:500;font-size:12px;margin-left:6px}.status__display-name,.status__relative-time,.detailed-status__display-name,.detailed-status__datetime,.detailed-status__application,.account__display-name{text-decoration:none}.status__display-name strong,.account__display-name strong{color:#000}.muted .emojione{opacity:.5}a.status__display-name:hover strong,.reply-indicator__display-name:hover strong,.detailed-status__display-name:hover strong,.account__display-name:hover strong{text-decoration:underline}.account__display-name strong{display:block;overflow:hidden;text-overflow:ellipsis}.detailed-status__application,.detailed-status__datetime{color:inherit}.detailed-status .button.logo-button{margin-bottom:15px}.detailed-status__display-name{color:#282c37;display:block;line-height:24px;margin-bottom:15px;overflow:hidden}.detailed-status__display-name strong,.detailed-status__display-name span{display:block;text-overflow:ellipsis;overflow:hidden}.detailed-status__display-name strong{font-size:16px;color:#000}.detailed-status__display-avatar{float:left;margin-right:10px}.status__avatar{flex:none;margin:0 10px 0 0;height:48px;width:48px}.muted .status__content,.muted .status__content p,.muted .status__content a,.muted .status__content__text{color:#444b5d}.muted .status__display-name strong{color:#444b5d}.muted .status__avatar{opacity:.5}.muted a.status__content__spoiler-link{background:#3c5063;color:#000}.muted a.status__content__spoiler-link:hover{background:#7d98b0;text-decoration:none}.status__relative-time:hover,.detailed-status__datetime:hover{text-decoration:underline}.status-card{display:flex;font-size:14px;border:1px solid #c0cdd9;border-radius:4px;color:#444b5d;margin-top:14px;text-decoration:none;overflow:hidden}.status-card__actions{bottom:0;left:0;position:absolute;right:0;top:0;display:flex;justify-content:center;align-items:center}.status-card__actions>div{background:rgba(0,0,0,.6);border-radius:8px;padding:12px 9px;flex:0 0 auto;display:flex;justify-content:center;align-items:center}.status-card__actions button,.status-card__actions a{display:inline;color:#282c37;background:transparent;border:0;padding:0 8px;text-decoration:none;font-size:18px;line-height:18px}.status-card__actions button:hover,.status-card__actions button:active,.status-card__actions button:focus,.status-card__actions a:hover,.status-card__actions a:active,.status-card__actions a:focus{color:#000}.status-card__actions a{font-size:19px;position:relative;bottom:-1px}.status-card__actions a .fa,.status-card__actions a:hover .fa{color:inherit}a.status-card{cursor:pointer}a.status-card:hover{background:#c0cdd9}.status-card-photo{cursor:zoom-in;display:block;text-decoration:none;width:100%;height:auto;margin:0}.status-card-video iframe{width:100%;height:100%}.status-card__title{display:block;font-weight:500;margin-bottom:5px;color:#282c37;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-decoration:none}.status-card__content{flex:1 1 auto;overflow:hidden;padding:14px 14px 14px 8px}.status-card__description{color:#282c37}.status-card__host{display:block;margin-top:5px;font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.status-card__image{flex:0 0 100px;background:#c0cdd9;position:relative}.status-card__image>.fa{font-size:21px;position:absolute;transform-origin:50% 50%;top:50%;left:50%;transform:translate(-50%, -50%)}.status-card.horizontal{display:block}.status-card.horizontal .status-card__image{width:100%}.status-card.horizontal .status-card__image-image{border-radius:4px 4px 0 0}.status-card.horizontal .status-card__title{white-space:inherit}.status-card.compact{border-color:#ccd7e0}.status-card.compact.interactive{border:0}.status-card.compact .status-card__content{padding:8px;padding-top:10px}.status-card.compact .status-card__title{white-space:nowrap}.status-card.compact .status-card__image{flex:0 0 60px}a.status-card.compact:hover{background-color:#ccd7e0}.status-card__image-image{border-radius:4px 0 0 4px;display:block;margin:0;width:100%;height:100%;object-fit:cover;background-size:cover;background-position:center center}.attachment-list{display:flex;font-size:14px;border:1px solid #c0cdd9;border-radius:4px;margin-top:14px;overflow:hidden}.attachment-list__icon{flex:0 0 auto;color:#444b5d;padding:8px 18px;cursor:default;border-right:1px solid #c0cdd9;display:flex;flex-direction:column;align-items:center;justify-content:center;font-size:26px}.attachment-list__icon .fa{display:block}.attachment-list__list{list-style:none;padding:4px 0;padding-left:8px;display:flex;flex-direction:column;justify-content:center}.attachment-list__list li{display:block;padding:4px 0}.attachment-list__list a{text-decoration:none;color:#444b5d;font-weight:500}.attachment-list__list a:hover{text-decoration:underline}.attachment-list.compact{border:0;margin-top:4px}.attachment-list.compact .attachment-list__list{padding:0;display:block}.attachment-list.compact .fa{color:#444b5d}.status__wrapper--filtered__button{display:inline;color:#217aba;border:0;background:transparent;padding:0;font-size:inherit;line-height:inherit}.status__wrapper--filtered__button:hover,.status__wrapper--filtered__button:active{text-decoration:underline}.modal-container--preloader{background:#c0cdd9}.modal-root{position:relative;transition:opacity .3s linear;will-change:opacity;z-index:9999}.modal-root__overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(255,255,255,.7)}.modal-root__container{position:fixed;top:0;left:0;width:100%;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;align-content:space-around;z-index:9999;pointer-events:none;user-select:none}.modal-root__modal{pointer-events:auto;display:flex;z-index:9999}.onboarding-modal,.error-modal,.embed-modal{background:#282c37;color:#000;border-radius:8px;overflow:hidden;display:flex;flex-direction:column}.onboarding-modal__pager{height:80vh;width:80vw;max-width:520px;max-height:470px}.onboarding-modal__pager .react-swipeable-view-container>div{width:100%;height:100%;box-sizing:border-box;display:none;flex-direction:column;align-items:center;justify-content:center;display:flex;user-select:text}.error-modal__body{height:80vh;width:80vw;max-width:520px;max-height:420px;position:relative}.error-modal__body>div{position:absolute;top:0;left:0;width:100%;height:100%;box-sizing:border-box;padding:25px;display:none;flex-direction:column;align-items:center;justify-content:center;display:flex;opacity:0;user-select:text}.error-modal__body{display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center}@media screen and (max-width: 550px){.onboarding-modal{width:100%;height:100%;border-radius:0}.onboarding-modal__pager{width:100%;height:auto;max-width:none;max-height:none;flex:1 1 auto}}.onboarding-modal__paginator,.error-modal__footer{flex:0 0 auto;background:#393f4f;display:flex;padding:25px}.onboarding-modal__paginator>div,.error-modal__footer>div{min-width:33px}.onboarding-modal__paginator .onboarding-modal__nav,.onboarding-modal__paginator .error-modal__nav,.error-modal__footer .onboarding-modal__nav,.error-modal__footer .error-modal__nav{color:#282c37;border:0;font-size:14px;font-weight:500;padding:10px 25px;line-height:inherit;height:auto;margin:-10px;border-radius:4px;background-color:transparent}.onboarding-modal__paginator .onboarding-modal__nav:hover,.onboarding-modal__paginator .onboarding-modal__nav:focus,.onboarding-modal__paginator .onboarding-modal__nav:active,.onboarding-modal__paginator .error-modal__nav:hover,.onboarding-modal__paginator .error-modal__nav:focus,.onboarding-modal__paginator .error-modal__nav:active,.error-modal__footer .onboarding-modal__nav:hover,.error-modal__footer .onboarding-modal__nav:focus,.error-modal__footer .onboarding-modal__nav:active,.error-modal__footer .error-modal__nav:hover,.error-modal__footer .error-modal__nav:focus,.error-modal__footer .error-modal__nav:active{color:#313543;background-color:#4a5266}.onboarding-modal__paginator .onboarding-modal__nav.onboarding-modal__done,.onboarding-modal__paginator .onboarding-modal__nav.onboarding-modal__next,.onboarding-modal__paginator .error-modal__nav.onboarding-modal__done,.onboarding-modal__paginator .error-modal__nav.onboarding-modal__next,.error-modal__footer .onboarding-modal__nav.onboarding-modal__done,.error-modal__footer .onboarding-modal__nav.onboarding-modal__next,.error-modal__footer .error-modal__nav.onboarding-modal__done,.error-modal__footer .error-modal__nav.onboarding-modal__next{color:#000}.onboarding-modal__paginator .onboarding-modal__nav.onboarding-modal__done:hover,.onboarding-modal__paginator .onboarding-modal__nav.onboarding-modal__done:focus,.onboarding-modal__paginator .onboarding-modal__nav.onboarding-modal__done:active,.onboarding-modal__paginator .onboarding-modal__nav.onboarding-modal__next:hover,.onboarding-modal__paginator .onboarding-modal__nav.onboarding-modal__next:focus,.onboarding-modal__paginator .onboarding-modal__nav.onboarding-modal__next:active,.onboarding-modal__paginator .error-modal__nav.onboarding-modal__done:hover,.onboarding-modal__paginator .error-modal__nav.onboarding-modal__done:focus,.onboarding-modal__paginator .error-modal__nav.onboarding-modal__done:active,.onboarding-modal__paginator .error-modal__nav.onboarding-modal__next:hover,.onboarding-modal__paginator .error-modal__nav.onboarding-modal__next:focus,.onboarding-modal__paginator .error-modal__nav.onboarding-modal__next:active,.error-modal__footer .onboarding-modal__nav.onboarding-modal__done:hover,.error-modal__footer .onboarding-modal__nav.onboarding-modal__done:focus,.error-modal__footer .onboarding-modal__nav.onboarding-modal__done:active,.error-modal__footer .onboarding-modal__nav.onboarding-modal__next:hover,.error-modal__footer .onboarding-modal__nav.onboarding-modal__next:focus,.error-modal__footer .onboarding-modal__nav.onboarding-modal__next:active,.error-modal__footer .error-modal__nav.onboarding-modal__done:hover,.error-modal__footer .error-modal__nav.onboarding-modal__done:focus,.error-modal__footer .error-modal__nav.onboarding-modal__done:active,.error-modal__footer .error-modal__nav.onboarding-modal__next:hover,.error-modal__footer .error-modal__nav.onboarding-modal__next:focus,.error-modal__footer .error-modal__nav.onboarding-modal__next:active{color:#000}.error-modal__footer{justify-content:center}.onboarding-modal__dots{flex:1 1 auto;display:flex;align-items:center;justify-content:center}.onboarding-modal__dot{width:14px;height:14px;border-radius:14px;background:#4a5266;margin:0 3px;cursor:pointer}.onboarding-modal__dot:hover{background:#4f576c}.onboarding-modal__dot.active{cursor:default;background:#5c657e}.onboarding-modal__page__wrapper{pointer-events:none;padding:25px;padding-bottom:0}.onboarding-modal__page__wrapper.onboarding-modal__page__wrapper--active{pointer-events:auto}.onboarding-modal__page{cursor:default;line-height:21px}.onboarding-modal__page h1{font-size:18px;font-weight:500;color:#000;margin-bottom:20px}.onboarding-modal__page a{color:#2b90d9}.onboarding-modal__page a:hover,.onboarding-modal__page a:focus,.onboarding-modal__page a:active{color:#2485cb}.onboarding-modal__page .navigation-bar a{color:inherit}.onboarding-modal__page p{font-size:16px;color:#282c37;margin-top:10px;margin-bottom:10px}.onboarding-modal__page p:last-child{margin-bottom:0}.onboarding-modal__page p strong{font-weight:500;background:#d9e1e8;color:#282c37;border-radius:4px;font-size:14px;padding:3px 6px}.onboarding-modal__page p strong:lang(ja){font-weight:700}.onboarding-modal__page p strong:lang(ko){font-weight:700}.onboarding-modal__page p strong:lang(zh-CN){font-weight:700}.onboarding-modal__page p strong:lang(zh-HK){font-weight:700}.onboarding-modal__page p strong:lang(zh-TW){font-weight:700}.onboarding-modal__page__wrapper-0{height:100%;padding:0}.onboarding-modal__page-one__lead{padding:65px;padding-top:45px;padding-bottom:0;margin-bottom:10px}.onboarding-modal__page-one__lead h1{font-size:26px;line-height:36px;margin-bottom:8px}.onboarding-modal__page-one__lead p{margin-bottom:0}.onboarding-modal__page-one__extra{padding-right:65px;padding-left:185px;text-align:center}.display-case{text-align:center;font-size:15px;margin-bottom:15px}.display-case__label{font-weight:500;color:#000;margin-bottom:5px;text-transform:uppercase;font-size:12px}.display-case__case{background:#d9e1e8;color:#282c37;font-weight:500;padding:10px;border-radius:4px}.onboarding-modal__page-two p,.onboarding-modal__page-three p,.onboarding-modal__page-four p,.onboarding-modal__page-five p{text-align:left}.onboarding-modal__page-two .figure,.onboarding-modal__page-three .figure,.onboarding-modal__page-four .figure,.onboarding-modal__page-five .figure{background:#f2f5f7;color:#282c37;margin-bottom:20px;border-radius:4px;padding:10px;text-align:center;font-size:14px;box-shadow:1px 2px 6px rgba(0,0,0,.3)}.onboarding-modal__page-two .figure .onboarding-modal__image,.onboarding-modal__page-three .figure .onboarding-modal__image,.onboarding-modal__page-four .figure .onboarding-modal__image,.onboarding-modal__page-five .figure .onboarding-modal__image{border-radius:4px;margin-bottom:10px}.onboarding-modal__page-two .figure.non-interactive,.onboarding-modal__page-three .figure.non-interactive,.onboarding-modal__page-four .figure.non-interactive,.onboarding-modal__page-five .figure.non-interactive{pointer-events:none;text-align:left}.onboarding-modal__page-four__columns .row{display:flex;margin-bottom:20px}.onboarding-modal__page-four__columns .row>div{flex:1 1 0;margin:0 10px}.onboarding-modal__page-four__columns .row>div:first-child{margin-left:0}.onboarding-modal__page-four__columns .row>div:last-child{margin-right:0}.onboarding-modal__page-four__columns .row>div p{text-align:center}.onboarding-modal__page-four__columns .row:last-child{margin-bottom:0}.onboarding-modal__page-four__columns .column-header{color:#000}@media screen and (max-width: 320px)and (max-height: 600px){.onboarding-modal__page p{font-size:14px;line-height:20px}.onboarding-modal__page-two .figure,.onboarding-modal__page-three .figure,.onboarding-modal__page-four .figure,.onboarding-modal__page-five .figure{font-size:12px;margin-bottom:10px}.onboarding-modal__page-four__columns .row{margin-bottom:10px}.onboarding-modal__page-four__columns .column-header{padding:5px;font-size:12px}}.onboard-sliders{display:inline-block;max-width:30px;max-height:auto;margin-left:10px}.boost-modal,.doodle-modal,.favourite-modal,.confirmation-modal,.report-modal,.actions-modal,.mute-modal,.block-modal{background:#17191f;color:#000;border-radius:8px;overflow:hidden;max-width:90vw;width:480px;position:relative;flex-direction:column}.boost-modal .status__relative-time,.doodle-modal .status__relative-time,.favourite-modal .status__relative-time,.confirmation-modal .status__relative-time,.report-modal .status__relative-time,.actions-modal .status__relative-time,.mute-modal .status__relative-time,.block-modal .status__relative-time{color:#444b5d;float:right;font-size:14px;width:auto;margin:initial;padding:initial}.boost-modal .status__display-name,.doodle-modal .status__display-name,.favourite-modal .status__display-name,.confirmation-modal .status__display-name,.report-modal .status__display-name,.actions-modal .status__display-name,.mute-modal .status__display-name,.block-modal .status__display-name{display:flex}.boost-modal .status__avatar,.doodle-modal .status__avatar,.favourite-modal .status__avatar,.confirmation-modal .status__avatar,.report-modal .status__avatar,.actions-modal .status__avatar,.mute-modal .status__avatar,.block-modal .status__avatar{height:48px;width:48px}.boost-modal .status__content__spoiler-link,.doodle-modal .status__content__spoiler-link,.favourite-modal .status__content__spoiler-link,.confirmation-modal .status__content__spoiler-link,.report-modal .status__content__spoiler-link,.actions-modal .status__content__spoiler-link,.mute-modal .status__content__spoiler-link,.block-modal .status__content__spoiler-link{color:#17191f}.actions-modal .status{background:#fff;border-bottom-color:#282c37;padding-top:10px;padding-bottom:10px}.actions-modal .dropdown-menu__separator{border-bottom-color:#282c37}.boost-modal__container,.favourite-modal__container{overflow-x:scroll;padding:10px}.boost-modal__container .status,.favourite-modal__container .status{user-select:text;border-bottom:0}.boost-modal__action-bar,.doodle-modal__action-bar,.favourite-modal__action-bar,.confirmation-modal__action-bar,.mute-modal__action-bar,.block-modal__action-bar{display:flex;justify-content:space-between;background:#282c37;padding:10px;line-height:36px}.boost-modal__action-bar>div,.doodle-modal__action-bar>div,.favourite-modal__action-bar>div,.confirmation-modal__action-bar>div,.mute-modal__action-bar>div,.block-modal__action-bar>div{flex:1 1 auto;text-align:right;color:#282c37;padding-right:10px}.boost-modal__action-bar .button,.doodle-modal__action-bar .button,.favourite-modal__action-bar .button,.confirmation-modal__action-bar .button,.mute-modal__action-bar .button,.block-modal__action-bar .button{flex:0 0 auto}.boost-modal__status-header,.favourite-modal__status-header{font-size:15px}.boost-modal__status-time,.favourite-modal__status-time{float:right;font-size:14px}.mute-modal,.block-modal{line-height:24px}.mute-modal .react-toggle,.block-modal .react-toggle{vertical-align:middle}.report-modal{width:90vw;max-width:700px}.report-modal__container{display:flex;border-top:1px solid #282c37}@media screen and (max-width: 480px){.report-modal__container{flex-wrap:wrap;overflow-y:auto}}.report-modal__statuses,.report-modal__comment{box-sizing:border-box;width:50%}@media screen and (max-width: 480px){.report-modal__statuses,.report-modal__comment{width:100%}}.report-modal__statuses,.focal-point-modal__content{flex:1 1 auto;min-height:20vh;max-height:80vh;overflow-y:auto;overflow-x:hidden}.report-modal__statuses .status__content a,.focal-point-modal__content .status__content a{color:#2b90d9}@media screen and (max-width: 480px){.report-modal__statuses,.focal-point-modal__content{max-height:10vh}}@media screen and (max-width: 480px){.focal-point-modal__content{max-height:40vh}}.report-modal__comment{padding:20px;border-right:1px solid #282c37;max-width:320px}.report-modal__comment p{font-size:14px;line-height:20px;margin-bottom:20px}.report-modal__comment .setting-text{display:block;box-sizing:border-box;width:100%;margin:0;color:#000;background:#fff;padding:10px;font-family:inherit;font-size:14px;resize:none;border:0;outline:0;border-radius:4px;border:1px solid #282c37;min-height:100px;max-height:50vh;margin-bottom:10px}.report-modal__comment .setting-text:focus{border:1px solid #393f4f}.report-modal__comment .setting-text__wrapper{background:#fff;border:1px solid #282c37;margin-bottom:10px;border-radius:4px}.report-modal__comment .setting-text__wrapper .setting-text{border:0;margin-bottom:0;border-radius:0}.report-modal__comment .setting-text__wrapper .setting-text:focus{border:0}.report-modal__comment .setting-text__wrapper__modifiers{color:#000;font-family:inherit;font-size:14px;background:#fff}.report-modal__comment .setting-text__toolbar{display:flex;justify-content:space-between;margin-bottom:20px}.report-modal__comment .setting-text-label{display:block;color:#000;font-size:14px;font-weight:500;margin-bottom:10px}.report-modal__comment .setting-toggle{margin-top:20px;margin-bottom:24px}.report-modal__comment .setting-toggle__label{color:#000;font-size:14px}@media screen and (max-width: 480px){.report-modal__comment{padding:10px;max-width:100%;order:2}.report-modal__comment .setting-toggle{margin-bottom:4px}}.actions-modal{max-height:80vh;max-width:80vw}.actions-modal .status{overflow-y:auto;max-height:300px}.actions-modal strong{display:block;font-weight:500}.actions-modal .actions-modal__item-label{font-weight:500}.actions-modal ul{overflow-y:auto;flex-shrink:0;max-height:80vh}.actions-modal ul.with-status{max-height:calc(80vh - 75px)}.actions-modal ul li:empty{margin:0}.actions-modal ul li:not(:empty) a{color:#000;display:flex;padding:12px 16px;font-size:15px;align-items:center;text-decoration:none}.actions-modal ul li:not(:empty) a,.actions-modal ul li:not(:empty) a button{transition:none}.actions-modal ul li:not(:empty) a.active,.actions-modal ul li:not(:empty) a.active button,.actions-modal ul li:not(:empty) a:hover,.actions-modal ul li:not(:empty) a:hover button,.actions-modal ul li:not(:empty) a:active,.actions-modal ul li:not(:empty) a:active button,.actions-modal ul li:not(:empty) a:focus,.actions-modal ul li:not(:empty) a:focus button{background:#2b90d9;color:#000}.actions-modal ul li:not(:empty) a>.react-toggle,.actions-modal ul li:not(:empty) a>.icon,.actions-modal ul li:not(:empty) a button:first-child{margin-right:10px}.confirmation-modal__action-bar .confirmation-modal__secondary-button,.mute-modal__action-bar .confirmation-modal__secondary-button,.block-modal__action-bar .confirmation-modal__secondary-button{flex-shrink:1}.confirmation-modal__secondary-button,.confirmation-modal__cancel-button,.mute-modal__cancel-button,.block-modal__cancel-button{background-color:transparent;color:#282c37;font-size:14px;font-weight:500}.confirmation-modal__secondary-button:hover,.confirmation-modal__secondary-button:focus,.confirmation-modal__secondary-button:active,.confirmation-modal__cancel-button:hover,.confirmation-modal__cancel-button:focus,.confirmation-modal__cancel-button:active,.mute-modal__cancel-button:hover,.mute-modal__cancel-button:focus,.mute-modal__cancel-button:active,.block-modal__cancel-button:hover,.block-modal__cancel-button:focus,.block-modal__cancel-button:active{color:#313543;background-color:transparent}.confirmation-modal__do_not_ask_again{padding-left:20px;padding-right:20px;padding-bottom:10px;font-size:14px}.confirmation-modal__do_not_ask_again label,.confirmation-modal__do_not_ask_again input{vertical-align:middle}.confirmation-modal__container,.mute-modal__container,.block-modal__container,.report-modal__target{padding:30px;font-size:16px}.confirmation-modal__container strong,.mute-modal__container strong,.block-modal__container strong,.report-modal__target strong{font-weight:500}.confirmation-modal__container strong:lang(ja),.mute-modal__container strong:lang(ja),.block-modal__container strong:lang(ja),.report-modal__target strong:lang(ja){font-weight:700}.confirmation-modal__container strong:lang(ko),.mute-modal__container strong:lang(ko),.block-modal__container strong:lang(ko),.report-modal__target strong:lang(ko){font-weight:700}.confirmation-modal__container strong:lang(zh-CN),.mute-modal__container strong:lang(zh-CN),.block-modal__container strong:lang(zh-CN),.report-modal__target strong:lang(zh-CN){font-weight:700}.confirmation-modal__container strong:lang(zh-HK),.mute-modal__container strong:lang(zh-HK),.block-modal__container strong:lang(zh-HK),.report-modal__target strong:lang(zh-HK){font-weight:700}.confirmation-modal__container strong:lang(zh-TW),.mute-modal__container strong:lang(zh-TW),.block-modal__container strong:lang(zh-TW),.report-modal__target strong:lang(zh-TW){font-weight:700}.confirmation-modal__container,.report-modal__target{text-align:center}.block-modal__explanation,.mute-modal__explanation{margin-top:20px}.block-modal .setting-toggle,.mute-modal .setting-toggle{margin-top:20px;margin-bottom:24px;display:flex;align-items:center}.block-modal .setting-toggle__label,.mute-modal .setting-toggle__label{color:#000;margin:0;margin-left:8px}.report-modal__target{padding:15px}.report-modal__target .media-modal__close{top:14px;right:15px}.embed-modal{width:auto;max-width:80vw;max-height:80vh}.embed-modal h4{padding:30px;font-weight:500;font-size:16px;text-align:center}.embed-modal .embed-modal__container{padding:10px}.embed-modal .embed-modal__container .hint{margin-bottom:15px}.embed-modal .embed-modal__container .embed-modal__html{outline:0;box-sizing:border-box;display:block;width:100%;border:none;padding:10px;font-family:\"mastodon-font-monospace\",monospace;background:#d9e1e8;color:#000;font-size:14px;margin:0;margin-bottom:15px;border-radius:4px}.embed-modal .embed-modal__container .embed-modal__html::-moz-focus-inner{border:0}.embed-modal .embed-modal__container .embed-modal__html::-moz-focus-inner,.embed-modal .embed-modal__container .embed-modal__html:focus,.embed-modal .embed-modal__container .embed-modal__html:active{outline:0 !important}.embed-modal .embed-modal__container .embed-modal__html:focus{background:#ccd7e0}@media screen and (max-width: 600px){.embed-modal .embed-modal__container .embed-modal__html{font-size:16px}}.embed-modal .embed-modal__container .embed-modal__iframe{width:400px;max-width:100%;overflow:hidden;border:0;border-radius:4px}.focal-point{position:relative;cursor:move;overflow:hidden;height:100%;display:flex;justify-content:center;align-items:center;background:#000}.focal-point img,.focal-point video,.focal-point canvas{display:block;max-height:80vh;width:100%;height:auto;margin:0;object-fit:contain;background:#000}.focal-point__reticle{position:absolute;width:100px;height:100px;transform:translate(-50%, -50%);background:url(\"~images/reticle.png\") no-repeat 0 0;border-radius:50%;box-shadow:0 0 0 9999em rgba(0,0,0,.35)}.focal-point__overlay{position:absolute;width:100%;height:100%;top:0;left:0}.focal-point__preview{position:absolute;bottom:10px;right:10px;z-index:2;cursor:move;transition:opacity .1s ease}.focal-point__preview:hover{opacity:.5}.focal-point__preview strong{color:#000;font-size:14px;font-weight:500;display:block;margin-bottom:5px}.focal-point__preview div{border-radius:4px;box-shadow:0 0 14px rgba(0,0,0,.2)}@media screen and (max-width: 480px){.focal-point img,.focal-point video{max-height:100%}.focal-point__preview{display:none}}.filtered-status-info{text-align:start}.filtered-status-info .spoiler__text{margin-top:20px}.filtered-status-info .account{border-bottom:0}.filtered-status-info .account__display-name strong{color:#000}.filtered-status-info .status__content__spoiler{display:none}.filtered-status-info .status__content__spoiler--visible{display:flex}.filtered-status-info ul{padding:10px;margin-left:12px;list-style:disc inside}.filtered-status-info .filtered-status-edit-link{color:#606984;text-decoration:none}.filtered-status-info .filtered-status-edit-link:hover{text-decoration:underline}.composer{padding:10px}.composer .emoji-picker-dropdown{position:absolute;top:0;right:0}.composer .emoji-picker-dropdown ::-webkit-scrollbar-track:hover,.composer .emoji-picker-dropdown ::-webkit-scrollbar-track:active{background-color:rgba(255,255,255,.3)}.character-counter{cursor:default;font-family:sans-serif,sans-serif;font-size:14px;font-weight:600;color:#282c37}.character-counter.character-counter--over{color:#ff5050}.no-reduce-motion .composer--spoiler{transition:height .4s ease,opacity .4s ease}.composer--spoiler{height:0;transform-origin:bottom;opacity:0}.composer--spoiler.composer--spoiler--visible{height:36px;margin-bottom:11px;opacity:1}.composer--spoiler input{display:block;box-sizing:border-box;margin:0;border:none;border-radius:4px;padding:10px;width:100%;outline:0;color:#000;background:#fff;font-size:14px;font-family:inherit;resize:vertical}.composer--spoiler input::placeholder{color:#444b5d}.composer--spoiler input:focus{outline:0}@media screen and (max-width: 630px){.auto-columns .composer--spoiler input{font-size:16px}}.single-column .composer--spoiler input{font-size:16px}.composer--warning{color:#000;margin-bottom:15px;background:#9baec8;box-shadow:0 2px 6px rgba(0,0,0,.3);padding:8px 10px;border-radius:4px;font-size:13px;font-weight:400}.composer--warning a{color:#282c37;font-weight:500;text-decoration:underline}.composer--warning a:active,.composer--warning a:focus,.composer--warning a:hover{text-decoration:none}.compose-form__sensitive-button{padding:10px;padding-top:0;font-size:14px;font-weight:500}.compose-form__sensitive-button.active{color:#2b90d9}.compose-form__sensitive-button input[type=checkbox]{display:none}.compose-form__sensitive-button .checkbox{display:inline-block;position:relative;border:1px solid #9baec8;box-sizing:border-box;width:18px;height:18px;flex:0 0 auto;margin-left:5px;margin-right:10px;top:-1px;border-radius:4px;vertical-align:middle}.compose-form__sensitive-button .checkbox.active{border-color:#2b90d9;background:#2b90d9}.composer--reply{margin:0 0 10px;border-radius:4px;padding:10px;background:#9baec8;min-height:23px;overflow-y:auto;flex:0 2 auto}.composer--reply>header{margin-bottom:5px;overflow:hidden}.composer--reply>header>.account.small{color:#000}.composer--reply>header>.cancel{float:right;line-height:24px}.composer--reply>.content{position:relative;margin:10px 0;padding:0 12px;font-size:14px;line-height:20px;color:#000;word-wrap:break-word;font-weight:400;overflow:visible;white-space:pre-wrap;padding-top:5px;overflow:hidden}.composer--reply>.content p,.composer--reply>.content pre,.composer--reply>.content blockquote{margin-bottom:20px;white-space:pre-wrap}.composer--reply>.content p:last-child,.composer--reply>.content pre:last-child,.composer--reply>.content blockquote:last-child{margin-bottom:0}.composer--reply>.content h1,.composer--reply>.content h2,.composer--reply>.content h3,.composer--reply>.content h4,.composer--reply>.content h5{margin-top:20px;margin-bottom:20px}.composer--reply>.content h1,.composer--reply>.content h2{font-weight:700;font-size:18px}.composer--reply>.content h2{font-size:16px}.composer--reply>.content h3,.composer--reply>.content h4,.composer--reply>.content h5{font-weight:500}.composer--reply>.content blockquote{padding-left:10px;border-left:3px solid #000;color:#000;white-space:normal}.composer--reply>.content blockquote p:last-child{margin-bottom:0}.composer--reply>.content b,.composer--reply>.content strong{font-weight:700}.composer--reply>.content em,.composer--reply>.content i{font-style:italic}.composer--reply>.content sub{font-size:smaller;text-align:sub}.composer--reply>.content ul,.composer--reply>.content ol{margin-left:1em}.composer--reply>.content ul p,.composer--reply>.content ol p{margin:0}.composer--reply>.content ul{list-style-type:disc}.composer--reply>.content ol{list-style-type:decimal}.composer--reply>.content a{color:#282c37;text-decoration:none}.composer--reply>.content a:hover{text-decoration:underline}.composer--reply>.content a.mention:hover{text-decoration:none}.composer--reply>.content a.mention:hover span{text-decoration:underline}.composer--reply .emojione{width:20px;height:20px;margin:-5px 0 0}.compose-form__autosuggest-wrapper,.autosuggest-input{position:relative;width:100%}.compose-form__autosuggest-wrapper label .autosuggest-textarea__textarea,.autosuggest-input label .autosuggest-textarea__textarea{display:block;box-sizing:border-box;margin:0;border:none;border-radius:4px 4px 0 0;padding:10px 32px 0 10px;width:100%;min-height:100px;outline:0;color:#000;background:#fff;font-size:14px;font-family:inherit;resize:none;scrollbar-color:initial}.compose-form__autosuggest-wrapper label .autosuggest-textarea__textarea::placeholder,.autosuggest-input label .autosuggest-textarea__textarea::placeholder{color:#444b5d}.compose-form__autosuggest-wrapper label .autosuggest-textarea__textarea::-webkit-scrollbar,.autosuggest-input label .autosuggest-textarea__textarea::-webkit-scrollbar{all:unset}.compose-form__autosuggest-wrapper label .autosuggest-textarea__textarea:disabled,.autosuggest-input label .autosuggest-textarea__textarea:disabled{background:#282c37}.compose-form__autosuggest-wrapper label .autosuggest-textarea__textarea:focus,.autosuggest-input label .autosuggest-textarea__textarea:focus{outline:0}@media screen and (max-width: 630px){.auto-columns .compose-form__autosuggest-wrapper label .autosuggest-textarea__textarea,.auto-columns .autosuggest-input label .autosuggest-textarea__textarea{font-size:16px}}.single-column .compose-form__autosuggest-wrapper label .autosuggest-textarea__textarea,.single-column .autosuggest-input label .autosuggest-textarea__textarea{font-size:16px}@media screen and (max-width: 600px){.auto-columns .compose-form__autosuggest-wrapper label .autosuggest-textarea__textarea,.single-column .compose-form__autosuggest-wrapper label .autosuggest-textarea__textarea,.auto-columns .autosuggest-input label .autosuggest-textarea__textarea,.single-column .autosuggest-input label .autosuggest-textarea__textarea{height:100px !important;resize:vertical}}.composer--textarea--icons{display:block;position:absolute;top:29px;right:5px;bottom:5px;overflow:hidden}.composer--textarea--icons>.textarea_icon{display:block;margin:2px 0 0 2px;width:24px;height:24px;color:#282c37;font-size:18px;line-height:24px;text-align:center;opacity:.8}.autosuggest-textarea__suggestions-wrapper{position:relative;height:0}.autosuggest-textarea__suggestions{display:block;position:absolute;box-sizing:border-box;top:100%;border-radius:0 0 4px 4px;padding:6px;width:100%;color:#000;background:#282c37;box-shadow:4px 4px 6px rgba(0,0,0,.4);font-size:14px;z-index:99;display:none}.autosuggest-textarea__suggestions--visible{display:block}.autosuggest-textarea__suggestions__item{padding:10px;cursor:pointer;border-radius:4px}.autosuggest-textarea__suggestions__item:hover,.autosuggest-textarea__suggestions__item:focus,.autosuggest-textarea__suggestions__item:active,.autosuggest-textarea__suggestions__item.selected{background:#3d4455}.autosuggest-textarea__suggestions__item>.account,.autosuggest-textarea__suggestions__item>.emoji,.autosuggest-textarea__suggestions__item>.autosuggest-hashtag{display:flex;flex-direction:row;align-items:center;justify-content:flex-start;line-height:18px;font-size:14px}.autosuggest-textarea__suggestions__item .autosuggest-hashtag{justify-content:space-between}.autosuggest-textarea__suggestions__item .autosuggest-hashtag__name{flex:1 1 auto;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.autosuggest-textarea__suggestions__item .autosuggest-hashtag strong{font-weight:500}.autosuggest-textarea__suggestions__item .autosuggest-hashtag__uses{flex:0 0 auto;text-align:right;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.autosuggest-textarea__suggestions__item>.account.small .display-name>span{color:#282c37}.composer--upload_form{overflow:hidden}.composer--upload_form>.content{display:flex;flex-direction:row;flex-wrap:wrap;font-family:inherit;padding:5px;overflow:hidden}.composer--upload_form--item{flex:1 1 0;margin:5px;min-width:40%}.composer--upload_form--item>div{position:relative;border-radius:4px;height:140px;width:100%;background-color:#000;background-position:center;background-size:cover;background-repeat:no-repeat;overflow:hidden}.composer--upload_form--item>div textarea{display:block;position:absolute;box-sizing:border-box;bottom:0;left:0;margin:0;border:0;padding:10px;width:100%;color:#282c37;background:linear-gradient(0deg, rgba(0, 0, 0, 0.8) 0, rgba(0, 0, 0, 0.35) 80%, transparent);font-size:14px;font-family:inherit;font-weight:500;opacity:0;z-index:2;transition:opacity .1s ease}.composer--upload_form--item>div textarea:focus{color:#fff}.composer--upload_form--item>div textarea::placeholder{opacity:.54;color:#282c37}.composer--upload_form--item>div>.close{mix-blend-mode:difference}.composer--upload_form--item.active>div textarea{opacity:1}.composer--upload_form--actions{background:linear-gradient(180deg, rgba(0, 0, 0, 0.8) 0, rgba(0, 0, 0, 0.35) 80%, transparent);display:flex;align-items:flex-start;justify-content:space-between;opacity:0;transition:opacity .1s ease}.composer--upload_form--actions .icon-button{flex:0 1 auto;color:#282c37;font-size:14px;font-weight:500;padding:10px;font-family:inherit}.composer--upload_form--actions .icon-button:hover,.composer--upload_form--actions .icon-button:focus,.composer--upload_form--actions .icon-button:active{color:#1f232b}.composer--upload_form--actions.active{opacity:1}.composer--upload_form--progress{display:flex;padding:10px;color:#282c37;overflow:hidden}.composer--upload_form--progress>.fa{font-size:34px;margin-right:10px}.composer--upload_form--progress>.message{flex:1 1 auto}.composer--upload_form--progress>.message>span{display:block;font-size:12px;font-weight:500;text-transform:uppercase}.composer--upload_form--progress>.message>.backdrop{position:relative;margin-top:5px;border-radius:6px;width:100%;height:6px;background:#3c5063}.composer--upload_form--progress>.message>.backdrop>.tracker{position:absolute;top:0;left:0;height:6px;border-radius:6px;background:#2b90d9}.compose-form__modifiers{color:#000;font-family:inherit;font-size:14px;background:#fff}.composer--options-wrapper{padding:10px;background:#fff;border-radius:0 0 4px 4px;height:27px;display:flex;justify-content:space-between;flex:0 0 auto}.composer--options{display:flex;flex:0 0 auto}.composer--options>*{display:inline-block;box-sizing:content-box;padding:0 3px;height:27px;line-height:27px;vertical-align:bottom}.composer--options>hr{display:inline-block;margin:0 3px;border-width:0 0 0 1px;border-style:none none none solid;border-color:transparent transparent transparent #fff;padding:0;width:0;height:27px;background:transparent}.compose--counter-wrapper{align-self:center;margin-right:4px}.composer--options--dropdown.open>.value{border-radius:4px 4px 0 0;box-shadow:0 -4px 4px rgba(0,0,0,.1);color:#000;background:#2b90d9;transition:none}.composer--options--dropdown.open.top>.value{border-radius:0 0 4px 4px;box-shadow:0 4px 4px rgba(0,0,0,.1)}.composer--options--dropdown--content{position:absolute;border-radius:4px;box-shadow:2px 4px 15px rgba(0,0,0,.4);background:#fff;overflow:hidden;transform-origin:50% 0}.composer--options--dropdown--content--item{display:flex;align-items:center;padding:10px;color:#000;cursor:pointer}.composer--options--dropdown--content--item>.content{flex:1 1 auto;color:#282c37}.composer--options--dropdown--content--item>.content:not(:first-child){margin-left:10px}.composer--options--dropdown--content--item>.content strong{display:block;color:#000;font-weight:500}.composer--options--dropdown--content--item:hover,.composer--options--dropdown--content--item.active{background:#2b90d9;color:#000}.composer--options--dropdown--content--item:hover>.content,.composer--options--dropdown--content--item.active>.content{color:#000}.composer--options--dropdown--content--item:hover>.content strong,.composer--options--dropdown--content--item.active>.content strong{color:#000}.composer--options--dropdown--content--item.active:hover{background:#2485cb}.composer--publisher{padding-top:10px;text-align:right;white-space:nowrap;overflow:hidden;justify-content:flex-end;flex:0 0 auto}.composer--publisher>.primary{display:inline-block;margin:0;padding:0 10px;text-align:center}.composer--publisher>.side_arm{display:inline-block;margin:0 2px;padding:0;width:36px;text-align:center}.composer--publisher.over>.count{color:#ff5050}.column__wrapper{display:flex;flex:1 1 auto;position:relative}.columns-area{display:flex;flex:1 1 auto;flex-direction:row;justify-content:flex-start;overflow-x:auto;position:relative}.columns-area__panels{display:flex;justify-content:center;width:100%;height:100%;min-height:100vh}.columns-area__panels__pane{height:100%;overflow:hidden;pointer-events:none;display:flex;justify-content:flex-end;min-width:285px}.columns-area__panels__pane--start{justify-content:flex-start}.columns-area__panels__pane__inner{position:fixed;width:285px;pointer-events:auto;height:100%}.columns-area__panels__main{box-sizing:border-box;width:100%;max-width:600px;flex:0 0 auto;display:flex;flex-direction:column}@media screen and (min-width: 415px){.columns-area__panels__main{padding:0 10px}}.tabs-bar__wrapper{background:#f2f5f7;position:sticky;top:0;z-index:2;padding-top:0}@media screen and (min-width: 415px){.tabs-bar__wrapper{padding-top:10px}}.tabs-bar__wrapper .tabs-bar{margin-bottom:0}@media screen and (min-width: 415px){.tabs-bar__wrapper .tabs-bar{margin-bottom:10px}}.react-swipeable-view-container,.react-swipeable-view-container .columns-area,.react-swipeable-view-container .column{height:100%}.react-swipeable-view-container>*{display:flex;align-items:center;justify-content:center;height:100%}.column{width:330px;position:relative;box-sizing:border-box;display:flex;flex-direction:column}.column>.scrollable{background:#d9e1e8}.ui{flex:0 0 auto;display:flex;flex-direction:column;width:100%;height:100%}.column{overflow:hidden}.column-back-button{box-sizing:border-box;width:100%;background:#ccd7e0;color:#2b90d9;cursor:pointer;flex:0 0 auto;font-size:16px;border:0;text-align:unset;padding:15px;margin:0;z-index:3}.column-back-button:hover{text-decoration:underline}.column-header__back-button{background:#ccd7e0;border:0;font-family:inherit;color:#2b90d9;cursor:pointer;flex:0 0 auto;font-size:16px;padding:0 5px 0 0;z-index:3}.column-header__back-button:hover{text-decoration:underline}.column-header__back-button:last-child{padding:0 15px 0 0}.column-back-button__icon{display:inline-block;margin-right:5px}.column-back-button--slim{position:relative}.column-back-button--slim-button{cursor:pointer;flex:0 0 auto;font-size:16px;padding:15px;position:absolute;right:0;top:-48px}.column-link{background:#c0cdd9;color:#000;display:block;font-size:16px;padding:15px;text-decoration:none}.column-link:hover,.column-link:focus,.column-link:active{background:#b6c5d3}.column-link:focus{outline:0}.column-link--transparent{background:transparent;color:#282c37}.column-link--transparent:hover,.column-link--transparent:focus,.column-link--transparent:active{background:transparent;color:#000}.column-link--transparent.active{color:#2b90d9}.column-link__icon{display:inline-block;margin-right:5px}.column-subheading{background:#d9e1e8;color:#444b5d;padding:8px 20px;font-size:12px;font-weight:500;text-transform:uppercase;cursor:default}.column-header__wrapper{position:relative;flex:0 0 auto;z-index:1}.column-header__wrapper.active{box-shadow:0 1px 0 rgba(43,144,217,.3)}.column-header__wrapper.active::before{display:block;content:\"\";position:absolute;bottom:-13px;left:0;right:0;margin:0 auto;width:60%;pointer-events:none;height:28px;z-index:1;background:radial-gradient(ellipse, rgba(43, 144, 217, 0.23) 0%, rgba(43, 144, 217, 0) 60%)}.column-header__wrapper .announcements{z-index:1;position:relative}.column-header{display:flex;font-size:16px;background:#ccd7e0;flex:0 0 auto;cursor:pointer;position:relative;z-index:2;outline:0;overflow:hidden}.column-header>button{margin:0;border:none;padding:15px;color:inherit;background:transparent;font:inherit;text-align:left;text-overflow:ellipsis;overflow:hidden;white-space:nowrap;flex:1}.column-header>.column-header__back-button{color:#2b90d9}.column-header.active .column-header__icon{color:#2b90d9;text-shadow:0 0 10px rgba(43,144,217,.4)}.column-header:focus,.column-header:active{outline:0}.column{width:330px;position:relative;box-sizing:border-box;display:flex;flex-direction:column;overflow:hidden}.wide .columns-area:not(.columns-area--mobile) .column{flex:auto;min-width:330px;max-width:400px}.column>.scrollable{background:#d9e1e8}.column-header__buttons{height:48px;display:flex;margin-left:0}.column-header__links{margin-bottom:14px}.column-header__links .text-btn{margin-right:10px}.column-header__button,.column-header__notif-cleaning-buttons button{background:#ccd7e0;border:0;color:#282c37;cursor:pointer;font-size:16px;padding:0 15px}.column-header__button:hover,.column-header__notif-cleaning-buttons button:hover{color:#191b22}.column-header__button.active,.column-header__notif-cleaning-buttons button.active{color:#000;background:#c0cdd9}.column-header__button.active:hover,.column-header__notif-cleaning-buttons button.active:hover{color:#000;background:#c0cdd9}.column-header__button:focus,.column-header__notif-cleaning-buttons button:focus{text-shadow:0 0 4px #419bdd}.column-header__notif-cleaning-buttons{display:flex;align-items:stretch;justify-content:space-around}.column-header__notif-cleaning-buttons button{background:transparent;text-align:center;padding:10px 0;white-space:pre-wrap}.column-header__notif-cleaning-buttons b{font-weight:bold}.column-header__collapsible-inner.nopad-drawer{padding:0}.column-header__collapsible{max-height:70vh;overflow:hidden;overflow-y:auto;color:#282c37;transition:max-height 150ms ease-in-out,opacity 300ms linear;opacity:1;z-index:1;position:relative}.column-header__collapsible.collapsed{max-height:0;opacity:.5}.column-header__collapsible.animating{overflow-y:hidden}.column-header__collapsible hr{height:0;background:transparent;border:0;border-top:1px solid #b3c3d1;margin:10px 0}.column-header__collapsible.ncd{transition:none}.column-header__collapsible.ncd.collapsed{max-height:0;opacity:.7}.column-header__collapsible-inner{background:#c0cdd9;padding:15px}.column-header__setting-btn:hover{color:#282c37;text-decoration:underline}.column-header__setting-arrows{float:right}.column-header__setting-arrows .column-header__setting-btn{padding:0 10px}.column-header__setting-arrows .column-header__setting-btn:last-child{padding-right:0}.column-header__title{display:inline-block;text-overflow:ellipsis;overflow:hidden;white-space:nowrap;flex:1}.column-header__icon{display:inline-block;margin-right:5px}.empty-column-indicator,.error-column,.follow_requests-unlocked_explanation{color:#444b5d;background:#d9e1e8;text-align:center;padding:20px;font-size:15px;font-weight:400;cursor:default;display:flex;flex:1 1 auto;align-items:center;justify-content:center}@supports(display: grid){.empty-column-indicator,.error-column,.follow_requests-unlocked_explanation{contain:strict}}.empty-column-indicator>span,.error-column>span,.follow_requests-unlocked_explanation>span{max-width:400px}.empty-column-indicator a,.error-column a,.follow_requests-unlocked_explanation a{color:#2b90d9;text-decoration:none}.empty-column-indicator a:hover,.error-column a:hover,.follow_requests-unlocked_explanation a:hover{text-decoration:underline}.follow_requests-unlocked_explanation{background:#e6ebf0;contain:initial}.error-column{flex-direction:column}.single-column.navbar-under .tabs-bar{margin-top:0 !important;margin-bottom:-6px !important}@media screen and (max-width: 415px){.auto-columns.navbar-under .tabs-bar{margin-top:0 !important;margin-bottom:-6px !important}}@media screen and (max-width: 415px){.auto-columns.navbar-under .react-swipeable-view-container .columns-area,.single-column.navbar-under .react-swipeable-view-container .columns-area{height:100% !important}}.column-inline-form{padding:7px 15px;padding-right:5px;display:flex;justify-content:flex-start;align-items:center;background:#ccd7e0}.column-inline-form label{flex:1 1 auto}.column-inline-form label input{width:100%;margin-bottom:6px}.column-inline-form label input:focus{outline:0}.column-inline-form .icon-button{flex:0 0 auto;margin:0 5px}.regeneration-indicator{text-align:center;font-size:16px;font-weight:500;color:#444b5d;background:#d9e1e8;cursor:default;display:flex;flex:1 1 auto;flex-direction:column;align-items:center;justify-content:center;padding:20px}.regeneration-indicator__figure,.regeneration-indicator__figure img{display:block;width:auto;height:160px;margin:0}.regeneration-indicator--without-header{padding-top:68px}.regeneration-indicator__label{margin-top:30px}.regeneration-indicator__label strong{display:block;margin-bottom:10px;color:#444b5d}.regeneration-indicator__label span{font-size:15px;font-weight:400}.directory__list{width:100%;margin:10px 0;transition:opacity 100ms ease-in}.directory__list.loading{opacity:.7}@media screen and (max-width: 415px){.directory__list{margin:0}}.directory__card{box-sizing:border-box;margin-bottom:10px}.directory__card__img{height:125px;position:relative;background:#fff;overflow:hidden}.directory__card__img img{display:block;width:100%;height:100%;margin:0;object-fit:cover}.directory__card__bar{display:flex;align-items:center;background:#ccd7e0;padding:10px}.directory__card__bar__name{flex:1 1 auto;display:flex;align-items:center;text-decoration:none;overflow:hidden}.directory__card__bar__relationship{width:23px;min-height:1px;flex:0 0 auto}.directory__card__bar .avatar{flex:0 0 auto;width:48px;height:48px;padding-top:2px}.directory__card__bar .avatar img{width:100%;height:100%;display:block;margin:0;border-radius:4px;background:#f2f5f7;object-fit:cover}.directory__card__bar .display-name{margin-left:15px;text-align:left}.directory__card__bar .display-name strong{font-size:15px;color:#000;font-weight:500;overflow:hidden;text-overflow:ellipsis}.directory__card__bar .display-name span{display:block;font-size:14px;color:#282c37;font-weight:400;overflow:hidden;text-overflow:ellipsis}.directory__card__extra{background:#d9e1e8;display:flex;align-items:center;justify-content:center}.directory__card__extra .accounts-table__count{width:33.33%;flex:0 0 auto;padding:15px 0}.directory__card__extra .account__header__content{box-sizing:border-box;padding:15px 10px;border-bottom:1px solid #c0cdd9;width:100%;min-height:48px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.directory__card__extra .account__header__content p{display:none}.directory__card__extra .account__header__content p:first-child{display:inline}.directory__card__extra .account__header__content br{display:none}.filter-form{background:#d9e1e8}.filter-form__column{padding:10px 15px}.filter-form .radio-button{display:block}.radio-button{font-size:14px;position:relative;display:inline-block;padding:6px 0;line-height:18px;cursor:default;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:pointer}.radio-button input[type=radio],.radio-button input[type=checkbox]{display:none}.radio-button__input{display:inline-block;position:relative;border:1px solid #9baec8;box-sizing:border-box;width:18px;height:18px;flex:0 0 auto;margin-right:10px;top:-1px;border-radius:50%;vertical-align:middle}.radio-button__input.checked{border-color:#217aba;background:#217aba}.search{position:relative}.search__input{outline:0;box-sizing:border-box;width:100%;border:none;box-shadow:none;font-family:inherit;background:#d9e1e8;color:#282c37;font-size:14px;margin:0;display:block;padding:15px;padding-right:30px;line-height:18px;font-size:16px}.search__input::placeholder{color:#1f232b}.search__input::-moz-focus-inner{border:0}.search__input::-moz-focus-inner,.search__input:focus,.search__input:active{outline:0 !important}.search__input:focus{background:#ccd7e0}@media screen and (max-width: 600px){.search__input{font-size:16px}}.search__icon::-moz-focus-inner{border:0}.search__icon::-moz-focus-inner,.search__icon:focus{outline:0 !important}.search__icon .fa{position:absolute;top:16px;right:10px;z-index:2;display:inline-block;opacity:0;transition:all 100ms linear;transition-property:color,transform,opacity;font-size:18px;width:18px;height:18px;color:#282c37;cursor:default;pointer-events:none}.search__icon .fa.active{pointer-events:auto;opacity:.3}.search__icon .fa-search{transform:rotate(0deg)}.search__icon .fa-search.active{pointer-events:auto;opacity:.3}.search__icon .fa-times-circle{top:17px;transform:rotate(0deg);color:#606984;cursor:pointer}.search__icon .fa-times-circle.active{transform:rotate(90deg)}.search__icon .fa-times-circle:hover{color:#51596f}.search-results__header{color:#444b5d;background:#d3dce4;border-bottom:1px solid #e6ebf0;padding:15px 10px;font-size:14px;font-weight:500}.search-results__info{padding:20px;color:#282c37;text-align:center}.trends__header{color:#444b5d;background:#d3dce4;border-bottom:1px solid #e6ebf0;font-weight:500;padding:15px;font-size:16px;cursor:default}.trends__header .fa{display:inline-block;margin-right:5px}.trends__item{display:flex;align-items:center;padding:15px;border-bottom:1px solid #c0cdd9}.trends__item:last-child{border-bottom:0}.trends__item__name{flex:1 1 auto;color:#444b5d;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.trends__item__name strong{font-weight:500}.trends__item__name a{color:#282c37;text-decoration:none;font-size:14px;font-weight:500;display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.trends__item__name a:hover span,.trends__item__name a:focus span,.trends__item__name a:active span{text-decoration:underline}.trends__item__current{flex:0 0 auto;font-size:24px;line-height:36px;font-weight:500;text-align:right;padding-right:15px;margin-left:5px;color:#282c37}.trends__item__sparkline{flex:0 0 auto;width:50px}.trends__item__sparkline path:first-child{fill:rgba(43,144,217,.25) !important;fill-opacity:1 !important}.trends__item__sparkline path:last-child{stroke:#2380c3 !important}.emojione{font-size:inherit;vertical-align:middle;object-fit:contain;margin:-0.2ex .15em .2ex;width:16px;height:16px}.emojione img{width:auto}.emoji-picker-dropdown__menu{background:#fff;position:absolute;box-shadow:4px 4px 6px rgba(0,0,0,.4);border-radius:4px;margin-top:5px;z-index:2}.emoji-picker-dropdown__menu .emoji-mart-scroll{transition:opacity 200ms ease}.emoji-picker-dropdown__menu.selecting .emoji-mart-scroll{opacity:.5}.emoji-picker-dropdown__modifiers{position:absolute;top:60px;right:11px;cursor:pointer}.emoji-picker-dropdown__modifiers__menu{position:absolute;z-index:4;top:-4px;left:-8px;background:#fff;border-radius:4px;box-shadow:1px 2px 6px rgba(0,0,0,.2);overflow:hidden}.emoji-picker-dropdown__modifiers__menu button{display:block;cursor:pointer;border:0;padding:4px 8px;background:transparent}.emoji-picker-dropdown__modifiers__menu button:hover,.emoji-picker-dropdown__modifiers__menu button:focus,.emoji-picker-dropdown__modifiers__menu button:active{background:rgba(40,44,55,.4)}.emoji-picker-dropdown__modifiers__menu .emoji-mart-emoji{height:22px}.emoji-mart-emoji span{background-repeat:no-repeat}.emoji-button{display:block;padding:5px 5px 2px 2px;outline:0;cursor:pointer}.emoji-button:active,.emoji-button:focus{outline:0 !important}.emoji-button img{filter:grayscale(100%);opacity:.8;display:block;margin:0;width:22px;height:22px}.emoji-button:hover img,.emoji-button:active img,.emoji-button:focus img{opacity:1;filter:none}.doodle-modal{width:unset}.doodle-modal__container{background:#d9e1e8;text-align:center;line-height:0}.doodle-modal__container canvas{border:5px solid #d9e1e8}.doodle-modal__action-bar .filler{flex-grow:1;margin:0;padding:0}.doodle-modal__action-bar .doodle-toolbar{line-height:1;display:flex;flex-direction:column;flex-grow:0;justify-content:space-around}.doodle-modal__action-bar .doodle-toolbar.with-inputs label{display:inline-block;width:70px;text-align:right;margin-right:2px}.doodle-modal__action-bar .doodle-toolbar.with-inputs input[type=number],.doodle-modal__action-bar .doodle-toolbar.with-inputs input[type=text]{width:40px}.doodle-modal__action-bar .doodle-toolbar.with-inputs span.val{display:inline-block;text-align:left;width:50px}.doodle-modal__action-bar .doodle-palette{padding-right:0 !important;border:1px solid #000;line-height:.2rem;flex-grow:0;background:#fff}.doodle-modal__action-bar .doodle-palette button{appearance:none;width:1rem;height:1rem;margin:0;padding:0;text-align:center;color:#000;text-shadow:0 0 1px #fff;cursor:pointer;box-shadow:inset 0 0 1px rgba(255,255,255,.5);border:1px solid #000;outline-offset:-1px}.doodle-modal__action-bar .doodle-palette button.foreground{outline:1px dashed #fff}.doodle-modal__action-bar .doodle-palette button.background{outline:1px dashed red}.doodle-modal__action-bar .doodle-palette button.foreground.background{outline:1px dashed red;border-color:#fff}.drawer{width:300px;box-sizing:border-box;display:flex;flex-direction:column;overflow-y:hidden;padding:10px 5px;flex:none}.drawer:first-child{padding-left:10px}.drawer:last-child{padding-right:10px}@media screen and (max-width: 630px){.auto-columns .drawer{flex:auto}}.single-column .drawer{flex:auto}@media screen and (max-width: 630px){.auto-columns .drawer,.auto-columns .drawer:first-child,.auto-columns .drawer:last-child,.single-column .drawer,.single-column .drawer:first-child,.single-column .drawer:last-child{padding:0}}.wide .drawer{min-width:300px;max-width:400px;flex:1 1 200px}@media screen and (max-width: 630px){:root .auto-columns .drawer{flex:auto;width:100%;min-width:0;max-width:none;padding:0}}:root .single-column .drawer{flex:auto;width:100%;min-width:0;max-width:none;padding:0}.react-swipeable-view-container .drawer{height:100%}.drawer--header{display:flex;flex-direction:row;margin-bottom:10px;flex:none;background:#c0cdd9;font-size:16px}.drawer--header>*{display:block;box-sizing:border-box;border-bottom:2px solid transparent;padding:15px 5px 13px;height:48px;flex:1 1 auto;color:#282c37;text-align:center;text-decoration:none;cursor:pointer}.drawer--header a{transition:background 100ms ease-in}.drawer--header a:focus,.drawer--header a:hover{outline:none;background:#cfd9e2;transition:background 200ms ease-out}.search{position:relative;margin-bottom:10px;flex:none}@media screen and (max-width: 415px){.auto-columns .search,.single-column .search{margin-bottom:0}}@media screen and (max-width: 630px){.auto-columns .search{font-size:16px}}.single-column .search{font-size:16px}.search-popout{background:#fff;border-radius:4px;padding:10px 14px;padding-bottom:14px;margin-top:10px;color:#444b5d;box-shadow:2px 4px 15px rgba(0,0,0,.4)}.search-popout h4{text-transform:uppercase;color:#444b5d;font-size:13px;font-weight:500;margin-bottom:10px}.search-popout li{padding:4px 0}.search-popout ul{margin-bottom:10px}.search-popout em{font-weight:500;color:#000}.drawer--account{padding:10px;color:#282c37;display:flex;align-items:center}.drawer--account a{color:inherit;text-decoration:none}.drawer--account .acct{display:block;color:#282c37;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.navigation-bar__profile{flex:1 1 auto;margin-left:8px;overflow:hidden}.drawer--results{background:#d9e1e8;overflow-x:hidden;overflow-y:auto}.drawer--results>header{color:#444b5d;background:#d3dce4;padding:15px;font-weight:500;font-size:16px;cursor:default}.drawer--results>header .fa{display:inline-block;margin-right:5px}.drawer--results>section{margin-bottom:5px}.drawer--results>section h5{background:#e6ebf0;border-bottom:1px solid #c0cdd9;cursor:default;display:flex;padding:15px;font-weight:500;font-size:16px;color:#444b5d}.drawer--results>section h5 .fa{display:inline-block;margin-right:5px}.drawer--results>section .account:last-child,.drawer--results>section>div:last-child .status{border-bottom:0}.drawer--results>section>.hashtag{display:block;padding:10px;color:#282c37;text-decoration:none}.drawer--results>section>.hashtag:hover,.drawer--results>section>.hashtag:active,.drawer--results>section>.hashtag:focus{color:#1f232b;text-decoration:underline}.drawer__pager{box-sizing:border-box;padding:0;flex-grow:1;position:relative;overflow:hidden;display:flex}.drawer__inner{position:absolute;top:0;left:0;background:#b0c0cf;box-sizing:border-box;padding:0;display:flex;flex-direction:column;overflow:hidden;overflow-y:auto;width:100%;height:100%}.drawer__inner.darker{background:#d9e1e8}.drawer__inner__mastodon{background:#b0c0cf url('data:image/svg+xml;utf8,') no-repeat bottom/100% auto;flex:1;min-height:47px;display:none}.drawer__inner__mastodon>img{display:block;object-fit:contain;object-position:bottom left;width:85%;height:100%;pointer-events:none;user-drag:none;user-select:none}.drawer__inner__mastodon>.mastodon{display:block;width:100%;height:100%;border:none;cursor:inherit}@media screen and (min-height: 640px){.drawer__inner__mastodon{display:block}}.pseudo-drawer{background:#b0c0cf;font-size:13px;text-align:left}.drawer__backdrop{cursor:pointer;position:absolute;top:0;left:0;width:100%;height:100%;background:rgba(255,255,255,.5)}.video-error-cover{align-items:center;background:#fff;color:#000;cursor:pointer;display:flex;flex-direction:column;height:100%;justify-content:center;margin-top:8px;position:relative;text-align:center;z-index:100}.media-spoiler{background:#fff;color:#282c37;border:0;width:100%;height:100%}.media-spoiler:hover,.media-spoiler:active,.media-spoiler:focus{color:#17191f}.status__content>.media-spoiler{margin-top:15px}.media-spoiler.full-width{margin-left:-14px;margin-right:-14px;width:inherit;max-width:none;height:250px;border-radius:0px}.media-spoiler__warning{display:block;font-size:14px}.media-spoiler__trigger{display:block;font-size:11px;font-weight:500}.media-gallery__gifv__label{display:block;position:absolute;color:#000;background:rgba(255,255,255,.5);bottom:6px;left:6px;padding:2px 6px;border-radius:2px;font-size:11px;font-weight:600;z-index:1;pointer-events:none;opacity:.9;transition:opacity .1s ease;line-height:18px}.media-gallery__gifv:hover .media-gallery__gifv__label{opacity:1}.media-gallery__audio{height:100%;display:flex;flex-direction:column}.media-gallery__audio span{text-align:center;color:#282c37;display:flex;height:100%;align-items:center}.media-gallery__audio span p{width:100%}.media-gallery__audio audio{width:100%}.media-gallery{box-sizing:border-box;margin-top:8px;overflow:hidden;border-radius:4px;position:relative;width:100%;height:110px}.media-gallery.full-width{margin-left:-14px;margin-right:-14px;width:inherit;max-width:none;height:250px;border-radius:0px}.media-gallery__item{border:none;box-sizing:border-box;display:block;float:left;position:relative;border-radius:4px;overflow:hidden}.full-width .media-gallery__item{border-radius:0}.media-gallery__item.standalone .media-gallery__item-gifv-thumbnail{transform:none;top:0}.media-gallery__item.letterbox{background:#000}.media-gallery__item-thumbnail{cursor:zoom-in;display:block;text-decoration:none;color:#282c37;position:relative;z-index:1}.media-gallery__item-thumbnail,.media-gallery__item-thumbnail img{height:100%;width:100%;object-fit:contain}.media-gallery__item-thumbnail:not(.letterbox),.media-gallery__item-thumbnail img:not(.letterbox){height:100%;object-fit:cover}.media-gallery__preview{width:100%;height:100%;object-fit:cover;position:absolute;top:0;left:0;z-index:0;background:#fff}.media-gallery__preview--hidden{display:none}.media-gallery__gifv{height:100%;overflow:hidden;position:relative;width:100%;display:flex;justify-content:center}.media-gallery__item-gifv-thumbnail{cursor:zoom-in;height:100%;width:100%;position:relative;z-index:1;object-fit:contain;user-select:none}.media-gallery__item-gifv-thumbnail:not(.letterbox){height:100%;object-fit:cover}.media-gallery__item-thumbnail-label{clip:rect(1px 1px 1px 1px);clip:rect(1px, 1px, 1px, 1px);overflow:hidden;position:absolute}.video-modal__container{max-width:100vw;max-height:100vh}.audio-modal__container{width:50vw}.media-modal{width:100%;height:100%;position:relative}.media-modal .extended-video-player{width:100%;height:100%;display:flex;align-items:center;justify-content:center}.media-modal .extended-video-player video{max-width:100%;max-height:80%}.media-modal__closer{position:absolute;top:0;left:0;right:0;bottom:0}.media-modal__navigation{position:absolute;top:0;left:0;right:0;bottom:0;pointer-events:none;transition:opacity .3s linear;will-change:opacity}.media-modal__navigation *{pointer-events:auto}.media-modal__navigation.media-modal__navigation--hidden{opacity:0}.media-modal__navigation.media-modal__navigation--hidden *{pointer-events:none}.media-modal__nav{background:rgba(255,255,255,.5);box-sizing:border-box;border:0;color:#000;cursor:pointer;display:flex;align-items:center;font-size:24px;height:20vmax;margin:auto 0;padding:30px 15px;position:absolute;top:0;bottom:0}.media-modal__nav--left{left:0}.media-modal__nav--right{right:0}.media-modal__pagination{width:100%;text-align:center;position:absolute;left:0;bottom:20px;pointer-events:none}.media-modal__meta{text-align:center;position:absolute;left:0;bottom:20px;width:100%;pointer-events:none}.media-modal__meta--shifted{bottom:62px}.media-modal__meta a{pointer-events:auto;text-decoration:none;font-weight:500;color:#282c37}.media-modal__meta a:hover,.media-modal__meta a:focus,.media-modal__meta a:active{text-decoration:underline}.media-modal__page-dot{display:inline-block}.media-modal__button{background-color:#fff;height:12px;width:12px;border-radius:6px;margin:10px;padding:0;border:0;font-size:0}.media-modal__button--active{background-color:#2b90d9}.media-modal__close{position:absolute;right:8px;top:8px;z-index:100}.detailed .video-player__volume__current,.detailed .video-player__volume::before,.fullscreen .video-player__volume__current,.fullscreen .video-player__volume::before{bottom:27px}.detailed .video-player__volume__handle,.fullscreen .video-player__volume__handle{bottom:23px}.audio-player{box-sizing:border-box;position:relative;background:#f2f5f7;border-radius:4px;padding-bottom:44px;direction:ltr}.audio-player.editable{border-radius:0;height:100%}.audio-player__waveform{padding:15px 0;position:relative;overflow:hidden}.audio-player__waveform::before{content:\"\";display:block;position:absolute;border-top:1px solid #ccd7e0;width:100%;height:0;left:0;top:calc(50% + 1px)}.audio-player__progress-placeholder{background-color:rgba(33,122,186,.5)}.audio-player__wave-placeholder{background-color:#a6b9c9}.audio-player .video-player__controls{padding:0 15px;padding-top:10px;background:#f2f5f7;border-top:1px solid #ccd7e0;border-radius:0 0 4px 4px}.video-player{overflow:hidden;position:relative;background:#000;max-width:100%;border-radius:4px;box-sizing:border-box;direction:ltr}.video-player.editable{border-radius:0;height:100% !important}.video-player:focus{outline:0}.detailed-status .video-player{width:100%;height:100%}.video-player.full-width{margin-left:-14px;margin-right:-14px;width:inherit;max-width:none;height:250px;border-radius:0px}.video-player video{max-width:100vw;max-height:80vh;z-index:1;position:relative}.video-player.fullscreen{width:100% !important;height:100% !important;margin:0}.video-player.fullscreen video{max-width:100% !important;max-height:100% !important;width:100% !important;height:100% !important;outline:0}.video-player.inline video{object-fit:contain;position:relative;top:50%;transform:translateY(-50%)}.video-player__controls{position:absolute;z-index:2;bottom:0;left:0;right:0;box-sizing:border-box;background:linear-gradient(0deg, rgba(0, 0, 0, 0.85) 0, rgba(0, 0, 0, 0.45) 60%, transparent);padding:0 15px;opacity:0;transition:opacity .1s ease}.video-player__controls.active{opacity:1}.video-player.inactive video,.video-player.inactive .video-player__controls{visibility:hidden}.video-player__spoiler{display:none;position:absolute;top:0;left:0;width:100%;height:100%;z-index:4;border:0;background:#000;color:#282c37;transition:none;pointer-events:none}.video-player__spoiler.active{display:block;pointer-events:auto}.video-player__spoiler.active:hover,.video-player__spoiler.active:active,.video-player__spoiler.active:focus{color:#191b22}.video-player__spoiler__title{display:block;font-size:14px}.video-player__spoiler__subtitle{display:block;font-size:11px;font-weight:500}.video-player__buttons-bar{display:flex;justify-content:space-between;padding-bottom:10px}.video-player__buttons-bar .video-player__download__icon{color:inherit}.video-player__buttons-bar .video-player__download__icon .fa,.video-player__buttons-bar .video-player__download__icon:active .fa,.video-player__buttons-bar .video-player__download__icon:hover .fa,.video-player__buttons-bar .video-player__download__icon:focus .fa{color:inherit}.video-player__buttons{font-size:16px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.video-player__buttons.left button{padding-left:0}.video-player__buttons.right button{padding-right:0}.video-player__buttons button{background:transparent;padding:2px 10px;font-size:16px;border:0;color:rgba(255,255,255,.75)}.video-player__buttons button:active,.video-player__buttons button:hover,.video-player__buttons button:focus{color:#fff}.video-player__time-sep,.video-player__time-total,.video-player__time-current{font-size:14px;font-weight:500}.video-player__time-current{color:#fff;margin-left:60px}.video-player__time-sep{display:inline-block;margin:0 6px}.video-player__time-sep,.video-player__time-total{color:#fff}.video-player__volume{cursor:pointer;height:24px;display:inline}.video-player__volume::before{content:\"\";width:50px;background:rgba(255,255,255,.35);border-radius:4px;display:block;position:absolute;height:4px;left:70px;bottom:20px}.video-player__volume__current{display:block;position:absolute;height:4px;border-radius:4px;left:70px;bottom:20px;background:#217aba}.video-player__volume__handle{position:absolute;z-index:3;border-radius:50%;width:12px;height:12px;bottom:16px;left:70px;transition:opacity .1s ease;background:#217aba;box-shadow:1px 2px 6px rgba(0,0,0,.2);pointer-events:none}.video-player__link{padding:2px 10px}.video-player__link a{text-decoration:none;font-size:14px;font-weight:500;color:#fff}.video-player__link a:hover,.video-player__link a:active,.video-player__link a:focus{text-decoration:underline}.video-player__seek{cursor:pointer;height:24px;position:relative}.video-player__seek::before{content:\"\";width:100%;background:rgba(255,255,255,.35);border-radius:4px;display:block;position:absolute;height:4px;top:10px}.video-player__seek__progress,.video-player__seek__buffer{display:block;position:absolute;height:4px;border-radius:4px;top:10px;background:#217aba}.video-player__seek__buffer{background:rgba(255,255,255,.2)}.video-player__seek__handle{position:absolute;z-index:3;opacity:0;border-radius:50%;width:12px;height:12px;top:6px;margin-left:-6px;transition:opacity .1s ease;background:#217aba;box-shadow:1px 2px 6px rgba(0,0,0,.2);pointer-events:none}.video-player__seek__handle.active{opacity:1}.video-player__seek:hover .video-player__seek__handle{opacity:1}.video-player.detailed .video-player__buttons button,.video-player.fullscreen .video-player__buttons button{padding-top:10px;padding-bottom:10px}.sensitive-info{display:flex;flex-direction:row;align-items:center;position:absolute;top:4px;left:4px;z-index:100}.sensitive-marker{margin:0 3px;border-radius:2px;padding:2px 6px;color:rgba(0,0,0,.8);background:rgba(255,255,255,.5);font-size:12px;line-height:18px;text-transform:uppercase;opacity:.9;transition:opacity .1s ease}.media-gallery:hover .sensitive-marker{opacity:1}.list-editor{background:#d9e1e8;flex-direction:column;border-radius:8px;box-shadow:2px 4px 15px rgba(0,0,0,.4);width:380px;overflow:hidden}@media screen and (max-width: 420px){.list-editor{width:90%}}.list-editor h4{padding:15px 0;background:#b0c0cf;font-weight:500;font-size:16px;text-align:center;border-radius:8px 8px 0 0}.list-editor .drawer__pager{height:50vh}.list-editor .drawer__inner{border-radius:0 0 8px 8px}.list-editor .drawer__inner.backdrop{width:calc(100% - 60px);box-shadow:2px 4px 15px rgba(0,0,0,.4);border-radius:0 0 0 8px}.list-editor__accounts{overflow-y:auto}.list-editor .account__display-name:hover strong{text-decoration:none}.list-editor .account__avatar{cursor:default}.list-editor .search{margin-bottom:0}.list-adder{background:#d9e1e8;flex-direction:column;border-radius:8px;box-shadow:2px 4px 15px rgba(0,0,0,.4);width:380px;overflow:hidden}@media screen and (max-width: 420px){.list-adder{width:90%}}.list-adder__account{background:#b0c0cf}.list-adder__lists{background:#b0c0cf;height:50vh;border-radius:0 0 8px 8px;overflow-y:auto}.list-adder .list{padding:10px;border-bottom:1px solid #c0cdd9}.list-adder .list__wrapper{display:flex}.list-adder .list__display-name{flex:1 1 auto;overflow:hidden;text-decoration:none;font-size:16px;padding:10px}.emoji-mart{font-size:13px;display:inline-block;color:#000}.emoji-mart,.emoji-mart *{box-sizing:border-box;line-height:1.15}.emoji-mart .emoji-mart-emoji{padding:6px}.emoji-mart-bar{border:0 solid #393f4f}.emoji-mart-bar:first-child{border-bottom-width:1px;border-top-left-radius:5px;border-top-right-radius:5px;background:#282c37}.emoji-mart-bar:last-child{border-top-width:1px;border-bottom-left-radius:5px;border-bottom-right-radius:5px;display:none}.emoji-mart-anchors{display:flex;justify-content:space-between;padding:0 6px;color:#282c37;line-height:0}.emoji-mart-anchor{position:relative;flex:1;text-align:center;padding:12px 4px;overflow:hidden;transition:color .1s ease-out;cursor:pointer}.emoji-mart-anchor:hover{color:#313543}.emoji-mart-anchor-selected{color:#2b90d9}.emoji-mart-anchor-selected:hover{color:#3c99dc}.emoji-mart-anchor-selected .emoji-mart-anchor-bar{bottom:0}.emoji-mart-anchor-bar{position:absolute;bottom:-3px;left:0;width:100%;height:3px;background-color:#3897db}.emoji-mart-anchors i{display:inline-block;width:100%;max-width:22px}.emoji-mart-anchors svg{fill:currentColor;max-height:18px}.emoji-mart-scroll{overflow-y:scroll;height:270px;max-height:35vh;padding:0 6px 6px;background:#fff;will-change:transform}.emoji-mart-scroll::-webkit-scrollbar-track:hover,.emoji-mart-scroll::-webkit-scrollbar-track:active{background-color:rgba(255,255,255,.3)}.emoji-mart-search{padding:10px;padding-right:45px;background:#fff}.emoji-mart-search input{font-size:14px;font-weight:400;padding:7px 9px;font-family:inherit;display:block;width:100%;background:rgba(40,44,55,.3);color:#000;border:1px solid #282c37;border-radius:4px}.emoji-mart-search input::-moz-focus-inner{border:0}.emoji-mart-search input::-moz-focus-inner,.emoji-mart-search input:focus,.emoji-mart-search input:active{outline:0 !important}.emoji-mart-category .emoji-mart-emoji{cursor:pointer}.emoji-mart-category .emoji-mart-emoji span{z-index:1;position:relative;text-align:center}.emoji-mart-category .emoji-mart-emoji:hover::before{z-index:0;content:\"\";position:absolute;top:0;left:0;width:100%;height:100%;background-color:rgba(40,44,55,.7);border-radius:100%}.emoji-mart-category-label{z-index:2;position:relative;position:-webkit-sticky;position:sticky;top:0}.emoji-mart-category-label span{display:block;width:100%;font-weight:500;padding:5px 6px;background:#fff}.emoji-mart-emoji{position:relative;display:inline-block;font-size:0}.emoji-mart-emoji span{width:22px;height:22px}.emoji-mart-no-results{font-size:14px;text-align:center;padding-top:70px;color:#444b5d}.emoji-mart-no-results .emoji-mart-category-label{display:none}.emoji-mart-no-results .emoji-mart-no-results-label{margin-top:.2em}.emoji-mart-no-results .emoji-mart-emoji:hover::before{content:none}.emoji-mart-preview{display:none}.glitch.local-settings{position:relative;display:flex;flex-direction:row;background:#282c37;color:#000;border-radius:8px;height:80vh;width:80vw;max-width:740px;max-height:450px;overflow:hidden}.glitch.local-settings label,.glitch.local-settings legend{display:block;font-size:14px}.glitch.local-settings .boolean label,.glitch.local-settings .radio_buttons label{position:relative;padding-left:28px;padding-top:3px}.glitch.local-settings .boolean label input,.glitch.local-settings .radio_buttons label input{position:absolute;left:0;top:0}.glitch.local-settings span.hint{display:block;color:#282c37}.glitch.local-settings h1{font-size:18px;font-weight:500;line-height:24px;margin-bottom:20px}.glitch.local-settings h2{font-size:15px;font-weight:500;line-height:20px;margin-top:20px;margin-bottom:10px}.glitch.local-settings__navigation__item{display:block;padding:15px 20px;color:inherit;background:#17191f;border-bottom:1px #282c37 solid;cursor:pointer;text-decoration:none;outline:none;transition:background .3s}.glitch.local-settings__navigation__item .text-icon-button{color:inherit;transition:unset}.glitch.local-settings__navigation__item:hover{background:#282c37}.glitch.local-settings__navigation__item.active{background:#2b90d9;color:#000}.glitch.local-settings__navigation__item.close,.glitch.local-settings__navigation__item.close:hover{background:#df405a;color:#000}.glitch.local-settings__navigation{background:#17191f;width:212px;font-size:15px;line-height:20px;overflow-y:auto}.glitch.local-settings__page{display:block;flex:auto;padding:15px 20px 15px 20px;width:360px;overflow-y:auto}.glitch.local-settings__page__item{margin-bottom:2px}.glitch.local-settings__page__item.string,.glitch.local-settings__page__item.radio_buttons{margin-top:10px;margin-bottom:10px}@media screen and (max-width: 630px){.glitch.local-settings__navigation{width:40px;flex-shrink:0}.glitch.local-settings__navigation__item{padding:10px}.glitch.local-settings__navigation__item span:last-of-type{display:none}}.error-boundary{color:#000;font-size:15px;line-height:20px}.error-boundary h1{font-size:26px;line-height:36px;font-weight:400;margin-bottom:8px}.error-boundary a{color:#000;text-decoration:underline}.error-boundary ul{list-style:disc;margin-left:0;padding-left:1em}.error-boundary textarea.web_app_crash-stacktrace{width:100%;resize:none;white-space:pre;font-family:monospace,monospace}.compose-panel{width:285px;margin-top:10px;display:flex;flex-direction:column;height:calc(100% - 10px);overflow-y:hidden}.compose-panel .search__input{line-height:18px;font-size:16px;padding:15px;padding-right:30px}.compose-panel .search__icon .fa{top:15px}.compose-panel .drawer--account{flex:0 1 48px}.compose-panel .flex-spacer{background:transparent}.compose-panel .composer{flex:1;overflow-y:hidden;display:flex;flex-direction:column;min-height:310px}.compose-panel .compose-form__autosuggest-wrapper{overflow-y:auto;background-color:#fff;border-radius:4px 4px 0 0;flex:0 1 auto}.compose-panel .autosuggest-textarea__textarea{overflow-y:hidden}.compose-panel .compose-form__upload-thumbnail{height:80px}.navigation-panel{margin-top:10px;margin-bottom:10px;height:calc(100% - 20px);overflow-y:auto;display:flex;flex-direction:column}.navigation-panel>a{flex:0 0 auto}.navigation-panel hr{flex:0 0 auto;border:0;background:transparent;border-top:1px solid #ccd7e0;margin:10px 0}.navigation-panel .flex-spacer{background:transparent}@media screen and (min-width: 600px){.tabs-bar__link span{display:inline}}.columns-area--mobile{flex-direction:column;width:100%;margin:0 auto}.columns-area--mobile .column,.columns-area--mobile .drawer{width:100%;height:100%;padding:0}.columns-area--mobile .directory__list{display:grid;grid-gap:10px;grid-template-columns:minmax(0, 50%) minmax(0, 50%)}@media screen and (max-width: 415px){.columns-area--mobile .directory__list{display:block}}.columns-area--mobile .directory__card{margin-bottom:0}.columns-area--mobile .filter-form{display:flex}.columns-area--mobile .autosuggest-textarea__textarea{font-size:16px}.columns-area--mobile .search__input{line-height:18px;font-size:16px;padding:15px;padding-right:30px}.columns-area--mobile .search__icon .fa{top:15px}.columns-area--mobile .scrollable{overflow:visible}@supports(display: grid){.columns-area--mobile .scrollable{contain:content}}@media screen and (min-width: 415px){.columns-area--mobile{padding:10px 0;padding-top:0}}@media screen and (min-width: 630px){.columns-area--mobile .detailed-status{padding:15px}.columns-area--mobile .detailed-status .media-gallery,.columns-area--mobile .detailed-status .video-player,.columns-area--mobile .detailed-status .audio-player{margin-top:15px}.columns-area--mobile .account__header__bar{padding:5px 10px}.columns-area--mobile .navigation-bar,.columns-area--mobile .compose-form{padding:15px}.columns-area--mobile .compose-form .compose-form__publish .compose-form__publish-button-wrapper{padding-top:15px}.columns-area--mobile .status{padding:15px;min-height:50px}.columns-area--mobile .status .media-gallery,.columns-area--mobile .status__action-bar,.columns-area--mobile .status .video-player,.columns-area--mobile .status .audio-player{margin-top:10px}.columns-area--mobile .account{padding:15px 10px}.columns-area--mobile .account__header__bio{margin:0 -10px}.columns-area--mobile .notification__message{padding-top:15px}.columns-area--mobile .notification .status{padding-top:8px}.columns-area--mobile .notification .account{padding-top:8px}}.floating-action-button{position:fixed;display:flex;justify-content:center;align-items:center;width:3.9375rem;height:3.9375rem;bottom:1.3125rem;right:1.3125rem;background:#3897db;color:#fff;border-radius:50%;font-size:21px;line-height:21px;text-decoration:none;box-shadow:2px 3px 9px rgba(0,0,0,.4)}.floating-action-button:hover,.floating-action-button:focus,.floating-action-button:active{background:#227dbe}@media screen and (min-width: 415px){.tabs-bar{width:100%}.react-swipeable-view-container .columns-area--mobile{height:calc(100% - 10px) !important}.getting-started__wrapper,.search{margin-bottom:10px}}@media screen and (max-width: 895px){.columns-area__panels__pane--compositional{display:none}}@media screen and (min-width: 895px){.floating-action-button,.tabs-bar__link.optional{display:none}.search-page .search{display:none}}@media screen and (max-width: 1190px){.columns-area__panels__pane--navigational{display:none}}@media screen and (min-width: 1190px){.tabs-bar{display:none}}.announcements__item__content{word-wrap:break-word;overflow-y:auto}.announcements__item__content .emojione{width:20px;height:20px;margin:-3px 0 0}.announcements__item__content p{margin-bottom:10px;white-space:pre-wrap}.announcements__item__content p:last-child{margin-bottom:0}.announcements__item__content a{color:#282c37;text-decoration:none}.announcements__item__content a:hover{text-decoration:underline}.announcements__item__content a.mention:hover{text-decoration:none}.announcements__item__content a.mention:hover span{text-decoration:underline}.announcements__item__content a.unhandled-link{color:#217aba}.announcements{background:#c0cdd9;font-size:13px;display:flex;align-items:flex-end}.announcements__mastodon{width:124px;flex:0 0 auto}@media screen and (max-width: 424px){.announcements__mastodon{display:none}}.announcements__container{width:calc(100% - 124px);flex:0 0 auto;position:relative}@media screen and (max-width: 424px){.announcements__container{width:100%}}.announcements__item{box-sizing:border-box;width:100%;padding:15px;position:relative;font-size:15px;line-height:20px;word-wrap:break-word;font-weight:400;max-height:50vh;overflow:hidden;display:flex;flex-direction:column}.announcements__item__range{display:block;font-weight:500;margin-bottom:10px;padding-right:18px}.announcements__item__unread{position:absolute;top:19px;right:19px;display:block;background:#2b90d9;border-radius:50%;width:.625rem;height:.625rem}.announcements__pagination{padding:15px;color:#282c37;position:absolute;bottom:3px;right:0}.layout-multiple-columns .announcements__mastodon{display:none}.layout-multiple-columns .announcements__container{width:100%}.reactions-bar{display:flex;flex-wrap:wrap;align-items:center;margin-top:15px;margin-left:-2px;width:calc(100% - (90px - 33px))}.reactions-bar__item{flex-shrink:0;background:#b3c3d1;border:0;border-radius:3px;margin:2px;cursor:pointer;user-select:none;padding:0 6px;display:flex;align-items:center;transition:all 100ms ease-in;transition-property:background-color,color}.reactions-bar__item__emoji{display:block;margin:3px 0;width:16px;height:16px}.reactions-bar__item__emoji img{display:block;margin:0;width:100%;height:100%;min-width:auto;min-height:auto;vertical-align:bottom;object-fit:contain}.reactions-bar__item__count{display:block;min-width:9px;font-size:13px;font-weight:500;text-align:center;margin-left:6px;color:#282c37}.reactions-bar__item:hover,.reactions-bar__item:focus,.reactions-bar__item:active{background:#a6b9c9;transition:all 200ms ease-out;transition-property:background-color,color}.reactions-bar__item:hover__count,.reactions-bar__item:focus__count,.reactions-bar__item:active__count{color:#1f232b}.reactions-bar__item.active{transition:all 100ms ease-in;transition-property:background-color,color;background-color:#98b9d3}.reactions-bar__item.active .reactions-bar__item__count{color:#217aba}.reactions-bar .emoji-picker-dropdown{margin:2px}.reactions-bar:hover .emoji-button{opacity:.85}.reactions-bar .emoji-button{color:#282c37;margin:0;font-size:16px;width:auto;flex-shrink:0;padding:0 6px;height:22px;display:flex;align-items:center;opacity:.5;transition:all 100ms ease-in;transition-property:background-color,color}.reactions-bar .emoji-button:hover,.reactions-bar .emoji-button:active,.reactions-bar .emoji-button:focus{opacity:1;color:#1f232b;transition:all 200ms ease-out;transition-property:background-color,color}.reactions-bar--empty .emoji-button{padding:0}.poll{margin-top:16px;font-size:14px}.poll ul,.e-content .poll ul{margin:0;list-style:none}.poll li{margin-bottom:10px;position:relative}.poll__chart{border-radius:4px;display:block;background:#abbbd1;height:5px;min-width:1%}.poll__chart.leading{background:#2b90d9}.poll__option{position:relative;display:flex;padding:6px 0;line-height:18px;cursor:default;overflow:hidden}.poll__option__text{display:inline-block;word-wrap:break-word;overflow-wrap:break-word;max-width:calc(100% - 45px - 25px)}.poll__option input[type=radio],.poll__option input[type=checkbox]{display:none}.poll__option .autossugest-input{flex:1 1 auto}.poll__option input[type=text]{display:block;box-sizing:border-box;width:100%;font-size:14px;color:#000;display:block;outline:0;font-family:inherit;background:#fff;border:1px solid #fff;border-radius:4px;padding:6px 10px}.poll__option input[type=text]:focus{border-color:#2b90d9}.poll__option.selectable{cursor:pointer}.poll__option.editable{display:flex;align-items:center;overflow:visible}.poll__input{display:inline-block;position:relative;border:1px solid #9baec8;box-sizing:border-box;width:18px;height:18px;flex:0 0 auto;margin-right:10px;top:-1px;border-radius:50%;vertical-align:middle;margin-top:auto;margin-bottom:auto;flex:0 0 18px}.poll__input.checkbox{border-radius:4px}.poll__input.active{border-color:#79bd9a;background:#79bd9a}.poll__input:active,.poll__input:focus,.poll__input:hover{border-color:#4d9c74;border-width:4px}.poll__input::-moz-focus-inner{outline:0 !important;border:0}.poll__input:focus,.poll__input:active{outline:0 !important}.poll__number{display:inline-block;width:45px;font-weight:700;flex:0 0 45px}.poll__voted{padding:0 5px;display:inline-block}.poll__voted__mark{font-size:18px}.poll__footer{padding-top:6px;padding-bottom:5px;color:#444b5d}.poll__link{display:inline;background:transparent;padding:0;margin:0;border:0;color:#444b5d;text-decoration:underline;font-size:inherit}.poll__link:hover{text-decoration:none}.poll__link:active,.poll__link:focus{background-color:rgba(68,75,93,.1)}.poll .button{height:36px;padding:0 16px;margin-right:10px;font-size:14px}.compose-form__poll-wrapper{border-top:1px solid #fff;overflow-x:hidden}.compose-form__poll-wrapper ul{padding:10px}.compose-form__poll-wrapper .poll__footer{border-top:1px solid #fff;padding:10px;display:flex;align-items:center}.compose-form__poll-wrapper .poll__footer button,.compose-form__poll-wrapper .poll__footer select{width:100%;flex:1 1 50%}.compose-form__poll-wrapper .poll__footer button:focus,.compose-form__poll-wrapper .poll__footer select:focus{border-color:#2b90d9}.compose-form__poll-wrapper .button.button-secondary{font-size:14px;font-weight:400;padding:6px 10px;height:auto;line-height:inherit;color:#606984;border-color:#606984;margin-right:5px}.compose-form__poll-wrapper li{display:flex;align-items:center}.compose-form__poll-wrapper li .poll__option{flex:0 0 auto;width:calc(100% - (23px + 6px));margin-right:6px}.compose-form__poll-wrapper select{appearance:none;box-sizing:border-box;font-size:14px;color:#000;display:inline-block;width:auto;outline:0;font-family:inherit;background:#fff url(\"data:image/svg+xml;utf8,\") no-repeat right 8px center/auto 16px;border:1px solid #fff;border-radius:4px;padding:6px 10px;padding-right:30px}.compose-form__poll-wrapper .icon-button.disabled{color:#fff}.muted .poll{color:#444b5d}.muted .poll__chart{background:rgba(201,211,225,.2)}.muted .poll__chart.leading{background:rgba(43,144,217,.2)}.container{box-sizing:border-box;max-width:1235px;margin:0 auto;position:relative}@media screen and (max-width: 1255px){.container{width:100%;padding:0 10px}}.rich-formatting{font-family:sans-serif,sans-serif;font-size:14px;font-weight:400;line-height:1.7;word-wrap:break-word;color:#282c37}.rich-formatting a{color:#2b90d9;text-decoration:underline}.rich-formatting a:hover,.rich-formatting a:focus,.rich-formatting a:active{text-decoration:none}.rich-formatting p,.rich-formatting li{color:#282c37}.rich-formatting p{margin-top:0;margin-bottom:.85em}.rich-formatting p:last-child{margin-bottom:0}.rich-formatting strong{font-weight:700;color:#282c37}.rich-formatting em{font-style:italic;color:#282c37}.rich-formatting code{font-size:.85em;background:#f2f5f7;border-radius:4px;padding:.2em .3em}.rich-formatting h1,.rich-formatting h2,.rich-formatting h3,.rich-formatting h4,.rich-formatting h5,.rich-formatting h6{font-family:sans-serif,sans-serif;margin-top:1.275em;margin-bottom:.85em;font-weight:500;color:#282c37}.rich-formatting h1{font-size:2em}.rich-formatting h2{font-size:1.75em}.rich-formatting h3{font-size:1.5em}.rich-formatting h4{font-size:1.25em}.rich-formatting h5,.rich-formatting h6{font-size:1em}.rich-formatting ul{list-style:disc}.rich-formatting ol{list-style:decimal}.rich-formatting ul,.rich-formatting ol{margin:0;padding:0;padding-left:2em;margin-bottom:.85em}.rich-formatting ul[type=a],.rich-formatting ol[type=a]{list-style-type:lower-alpha}.rich-formatting ul[type=i],.rich-formatting ol[type=i]{list-style-type:lower-roman}.rich-formatting hr{width:100%;height:0;border:0;border-bottom:1px solid #ccd7e0;margin:1.7em 0}.rich-formatting hr.spacer{height:1px;border:0}.rich-formatting table{width:100%;border-collapse:collapse;break-inside:auto;margin-top:24px;margin-bottom:32px}.rich-formatting table thead tr,.rich-formatting table tbody tr{border-bottom:1px solid #ccd7e0;font-size:1em;line-height:1.625;font-weight:400;text-align:left;color:#282c37}.rich-formatting table thead tr{border-bottom-width:2px;line-height:1.5;font-weight:500;color:#444b5d}.rich-formatting table th,.rich-formatting table td{padding:8px;align-self:start;align-items:start;word-break:break-all}.rich-formatting table th.nowrap,.rich-formatting table td.nowrap{width:25%;position:relative}.rich-formatting table th.nowrap::before,.rich-formatting table td.nowrap::before{content:\" \";visibility:hidden}.rich-formatting table th.nowrap span,.rich-formatting table td.nowrap span{position:absolute;left:8px;right:8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.rich-formatting>:first-child{margin-top:0}.information-board{background:#e6ebf0;padding:20px 0}.information-board .container-alt{position:relative;padding-right:295px}.information-board__sections{display:flex;justify-content:space-between;flex-wrap:wrap}.information-board__section{flex:1 0 0;font-family:sans-serif,sans-serif;font-size:16px;line-height:28px;color:#000;text-align:right;padding:10px 15px}.information-board__section span,.information-board__section strong{display:block}.information-board__section span:last-child{color:#282c37}.information-board__section strong{font-family:sans-serif,sans-serif;font-weight:500;font-size:32px;line-height:48px}@media screen and (max-width: 700px){.information-board__section{text-align:center}}.information-board .panel{position:absolute;width:280px;box-sizing:border-box;background:#f2f5f7;padding:20px;padding-top:10px;border-radius:4px 4px 0 0;right:0;bottom:-40px}.information-board .panel .panel-header{font-family:sans-serif,sans-serif;font-size:14px;line-height:24px;font-weight:500;color:#282c37;padding-bottom:5px;margin-bottom:15px;border-bottom:1px solid #ccd7e0;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.information-board .panel .panel-header a,.information-board .panel .panel-header span{font-weight:400;color:#3d4455}.information-board .panel .panel-header a{text-decoration:none}.information-board .owner{text-align:center}.information-board .owner .avatar{width:80px;height:80px;width:80px;height:80px;background-size:80px 80px;margin:0 auto;margin-bottom:15px}.information-board .owner .avatar img{display:block;width:80px;height:80px;border-radius:48px;border-radius:8%;background-position:50%;background-clip:padding-box}.information-board .owner .name{font-size:14px}.information-board .owner .name a{display:block;color:#000;text-decoration:none}.information-board .owner .name a:hover .display_name{text-decoration:underline}.information-board .owner .name .username{display:block;color:#282c37}.landing-page p,.landing-page li{font-family:sans-serif,sans-serif;font-size:16px;font-weight:400;font-size:16px;line-height:30px;margin-bottom:12px;color:#282c37}.landing-page p a,.landing-page li a{color:#2b90d9;text-decoration:underline}.landing-page em{display:inline;margin:0;padding:0;font-weight:700;background:transparent;font-family:inherit;font-size:inherit;line-height:inherit;color:#131419}.landing-page h1{font-family:sans-serif,sans-serif;font-size:26px;line-height:30px;font-weight:500;margin-bottom:20px;color:#282c37}.landing-page h1 small{font-family:sans-serif,sans-serif;display:block;font-size:18px;font-weight:400;color:#131419}.landing-page h2{font-family:sans-serif,sans-serif;font-size:22px;line-height:26px;font-weight:500;margin-bottom:20px;color:#282c37}.landing-page h3{font-family:sans-serif,sans-serif;font-size:18px;line-height:24px;font-weight:500;margin-bottom:20px;color:#282c37}.landing-page h4{font-family:sans-serif,sans-serif;font-size:16px;line-height:24px;font-weight:500;margin-bottom:20px;color:#282c37}.landing-page h5{font-family:sans-serif,sans-serif;font-size:14px;line-height:24px;font-weight:500;margin-bottom:20px;color:#282c37}.landing-page h6{font-family:sans-serif,sans-serif;font-size:12px;line-height:24px;font-weight:500;margin-bottom:20px;color:#282c37}.landing-page ul,.landing-page ol{margin-left:20px}.landing-page ul[type=a],.landing-page ol[type=a]{list-style-type:lower-alpha}.landing-page ul[type=i],.landing-page ol[type=i]{list-style-type:lower-roman}.landing-page ul{list-style:disc}.landing-page ol{list-style:decimal}.landing-page li>ol,.landing-page li>ul{margin-top:6px}.landing-page hr{width:100%;height:0;border:0;border-bottom:1px solid rgba(60,80,99,.6);margin:20px 0}.landing-page hr.spacer{height:1px;border:0}.landing-page__information,.landing-page__forms{padding:20px}.landing-page__call-to-action{background:#d9e1e8;border-radius:4px;padding:25px 40px;overflow:hidden;box-sizing:border-box}.landing-page__call-to-action .row{width:100%;display:flex;flex-direction:row-reverse;flex-wrap:nowrap;justify-content:space-between;align-items:center}.landing-page__call-to-action .row__information-board{display:flex;justify-content:flex-end;align-items:flex-end}.landing-page__call-to-action .row__information-board .information-board__section{flex:1 0 auto;padding:0 10px}@media screen and (max-width: 415px){.landing-page__call-to-action .row__information-board{width:100%;justify-content:space-between}}.landing-page__call-to-action .row__mascot{flex:1;margin:10px -50px 0 0}@media screen and (max-width: 415px){.landing-page__call-to-action .row__mascot{display:none}}.landing-page__logo{margin-right:20px}.landing-page__logo img{height:50px;width:auto;mix-blend-mode:lighten}.landing-page__information{padding:45px 40px;margin-bottom:10px}.landing-page__information:last-child{margin-bottom:0}.landing-page__information strong{font-weight:500;color:#131419}.landing-page__information .account{border-bottom:0;padding:0}.landing-page__information .account__display-name{align-items:center;display:flex;margin-right:5px}.landing-page__information .account div.account__display-name:hover .display-name strong{text-decoration:none}.landing-page__information .account div.account__display-name .account__avatar{cursor:default}.landing-page__information .account__avatar-wrapper{margin-left:0;flex:0 0 auto}.landing-page__information .account__avatar{width:44px;height:44px;background-size:44px 44px;width:44px;height:44px;background-size:44px 44px}.landing-page__information .account .display-name{font-size:15px}.landing-page__information .account .display-name__account{font-size:14px}@media screen and (max-width: 960px){.landing-page__information .contact{margin-top:30px}}@media screen and (max-width: 700px){.landing-page__information{padding:25px 20px}}.landing-page__information,.landing-page__forms,.landing-page #mastodon-timeline{box-sizing:border-box;background:#d9e1e8;border-radius:4px;box-shadow:0 0 6px rgba(0,0,0,.1)}.landing-page__mascot{height:104px;position:relative;left:-40px;bottom:25px}.landing-page__mascot img{height:190px;width:auto}.landing-page__short-description .row{display:flex;flex-wrap:wrap;align-items:center;margin-bottom:40px}@media screen and (max-width: 700px){.landing-page__short-description .row{margin-bottom:20px}}.landing-page__short-description p a{color:#282c37}.landing-page__short-description h1{font-weight:500;color:#000;margin-bottom:0}.landing-page__short-description h1 small{color:#282c37}.landing-page__short-description h1 small span{color:#282c37}.landing-page__short-description p:last-child{margin-bottom:0}.landing-page__hero{margin-bottom:10px}.landing-page__hero img{display:block;margin:0;max-width:100%;height:auto;border-radius:4px}@media screen and (max-width: 840px){.landing-page .information-board .container-alt{padding-right:20px}.landing-page .information-board .panel{position:static;margin-top:20px;width:100%;border-radius:4px}.landing-page .information-board .panel .panel-header{text-align:center}}@media screen and (max-width: 675px){.landing-page .header-wrapper{padding-top:0}.landing-page .header-wrapper.compact{padding-bottom:0}.landing-page .header-wrapper.compact .hero .heading{text-align:initial}.landing-page .header .container-alt,.landing-page .features .container-alt{display:block}}.landing-page .cta{margin:20px}.landing{margin-bottom:100px}@media screen and (max-width: 738px){.landing{margin-bottom:0}}.landing__brand{display:flex;justify-content:center;align-items:center;padding:50px}.landing__brand svg{fill:#000;height:52px}@media screen and (max-width: 415px){.landing__brand{padding:0;margin-bottom:30px}}.landing .directory{margin-top:30px;background:transparent;box-shadow:none;border-radius:0}.landing .hero-widget{margin-top:30px;margin-bottom:0}.landing .hero-widget h4{padding:10px;text-transform:uppercase;font-weight:700;font-size:13px;color:#282c37}.landing .hero-widget__text{border-radius:0;padding-bottom:0}.landing .hero-widget__footer{background:#d9e1e8;padding:10px;border-radius:0 0 4px 4px;display:flex}.landing .hero-widget__footer__column{flex:1 1 50%}.landing .hero-widget .account{padding:10px 0;border-bottom:0}.landing .hero-widget .account .account__display-name{display:flex;align-items:center}.landing .hero-widget .account .account__avatar{width:44px;height:44px;background-size:44px 44px}.landing .hero-widget__counter{padding:10px}.landing .hero-widget__counter strong{font-family:sans-serif,sans-serif;font-size:15px;font-weight:700;display:block}.landing .hero-widget__counter span{font-size:14px;color:#282c37}.landing .simple_form .user_agreement .label_input>label{font-weight:400;color:#282c37}.landing .simple_form p.lead{color:#282c37;font-size:15px;line-height:20px;font-weight:400;margin-bottom:25px}.landing__grid{max-width:960px;margin:0 auto;display:grid;grid-template-columns:minmax(0, 50%) minmax(0, 50%);grid-gap:30px}@media screen and (max-width: 738px){.landing__grid{grid-template-columns:minmax(0, 100%);grid-gap:10px}.landing__grid__column-login{grid-row:1;display:flex;flex-direction:column}.landing__grid__column-login .box-widget{order:2;flex:0 0 auto}.landing__grid__column-login .hero-widget{margin-top:0;margin-bottom:10px;order:1;flex:0 0 auto}.landing__grid__column-registration{grid-row:2}.landing__grid .directory{margin-top:10px}}@media screen and (max-width: 415px){.landing__grid{grid-gap:0}.landing__grid .hero-widget{display:block;margin-bottom:0;box-shadow:none}.landing__grid .hero-widget__img,.landing__grid .hero-widget__img img,.landing__grid .hero-widget__footer{border-radius:0}.landing__grid .hero-widget,.landing__grid .box-widget,.landing__grid .directory__tag{border-bottom:1px solid #c0cdd9}.landing__grid .directory{margin-top:0}.landing__grid .directory__tag{margin-bottom:0}.landing__grid .directory__tag>a,.landing__grid .directory__tag>div{border-radius:0;box-shadow:none}.landing__grid .directory__tag:last-child{border-bottom:0}}.brand{position:relative;text-decoration:none}.brand__tagline{display:block;position:absolute;bottom:-10px;left:50px;width:300px;color:#9baec8;text-decoration:none;font-size:14px}@media screen and (max-width: 415px){.brand__tagline{position:static;width:auto;margin-top:20px;color:#444b5d}}.table{width:100%;max-width:100%;border-spacing:0;border-collapse:collapse}.table th,.table td{padding:8px;line-height:18px;vertical-align:top;border-top:1px solid #d9e1e8;text-align:left;background:#e6ebf0}.table>thead>tr>th{vertical-align:bottom;border-bottom:2px solid #d9e1e8;border-top:0;font-weight:500}.table>tbody>tr>th{font-weight:500}.table>tbody>tr:nth-child(odd)>td,.table>tbody>tr:nth-child(odd)>th{background:#d9e1e8}.table a{color:#2b90d9;text-decoration:underline}.table a:hover{text-decoration:none}.table strong{font-weight:500}.table strong:lang(ja){font-weight:700}.table strong:lang(ko){font-weight:700}.table strong:lang(zh-CN){font-weight:700}.table strong:lang(zh-HK){font-weight:700}.table strong:lang(zh-TW){font-weight:700}.table.inline-table>tbody>tr:nth-child(odd)>td,.table.inline-table>tbody>tr:nth-child(odd)>th{background:transparent}.table.inline-table>tbody>tr:first-child>td,.table.inline-table>tbody>tr:first-child>th{border-top:0}.table.batch-table>thead>tr>th{background:#d9e1e8;border-top:1px solid #f2f5f7;border-bottom:1px solid #f2f5f7}.table.batch-table>thead>tr>th:first-child{border-radius:4px 0 0;border-left:1px solid #f2f5f7}.table.batch-table>thead>tr>th:last-child{border-radius:0 4px 0 0;border-right:1px solid #f2f5f7}.table--invites tbody td{vertical-align:middle}.table-wrapper{overflow:auto;margin-bottom:20px}samp{font-family:monospace,monospace}button.table-action-link{background:transparent;border:0;font:inherit}button.table-action-link,a.table-action-link{text-decoration:none;display:inline-block;margin-right:5px;padding:0 10px;color:#282c37;font-weight:500}button.table-action-link:hover,a.table-action-link:hover{color:#000}button.table-action-link i.fa,a.table-action-link i.fa{font-weight:400;margin-right:5px}button.table-action-link:first-child,a.table-action-link:first-child{padding-left:0}.batch-table__toolbar,.batch-table__row{display:flex}.batch-table__toolbar__select,.batch-table__row__select{box-sizing:border-box;padding:8px 16px;cursor:pointer;min-height:100%}.batch-table__toolbar__select input,.batch-table__row__select input{margin-top:8px}.batch-table__toolbar__select--aligned,.batch-table__row__select--aligned{display:flex;align-items:center}.batch-table__toolbar__select--aligned input,.batch-table__row__select--aligned input{margin-top:0}.batch-table__toolbar__actions,.batch-table__toolbar__content,.batch-table__row__actions,.batch-table__row__content{padding:8px 0;padding-right:16px;flex:1 1 auto}.batch-table__toolbar{border:1px solid #f2f5f7;background:#d9e1e8;border-radius:4px 0 0;height:47px;align-items:center}.batch-table__toolbar__actions{text-align:right;padding-right:11px}.batch-table__form{padding:16px;border:1px solid #f2f5f7;border-top:0;background:#d9e1e8}.batch-table__form .fields-row{padding-top:0;margin-bottom:0}.batch-table__row{border:1px solid #f2f5f7;border-top:0;background:#e6ebf0}@media screen and (max-width: 415px){.optional .batch-table__row:first-child{border-top:1px solid #f2f5f7}}.batch-table__row:hover{background:#dfe6ec}.batch-table__row:nth-child(even){background:#d9e1e8}.batch-table__row:nth-child(even):hover{background:#d3dce4}.batch-table__row__content{padding-top:12px;padding-bottom:16px}.batch-table__row__content--unpadded{padding:0}.batch-table__row__content--with-image{display:flex;align-items:center}.batch-table__row__content__image{flex:0 0 auto;display:flex;justify-content:center;align-items:center;margin-right:10px}.batch-table__row__content__image .emojione{width:32px;height:32px}.batch-table__row__content__text{flex:1 1 auto}.batch-table__row__content__extra{flex:0 0 auto;text-align:right;color:#282c37;font-weight:500}.batch-table__row .directory__tag{margin:0;width:100%}.batch-table__row .directory__tag a{background:transparent;border-radius:0}@media screen and (max-width: 415px){.batch-table.optional .batch-table__toolbar,.batch-table.optional .batch-table__row__select{display:none}}.batch-table .status__content{padding-top:0}.batch-table .status__content strong{font-weight:700}.batch-table .nothing-here{border:1px solid #f2f5f7;border-top:0;box-shadow:none}@media screen and (max-width: 415px){.batch-table .nothing-here{border-top:1px solid #f2f5f7}}@media screen and (max-width: 870px){.batch-table .accounts-table tbody td.optional{display:none}}.admin-wrapper{display:flex;justify-content:center;width:100%;min-height:100vh}.admin-wrapper .sidebar-wrapper{min-height:100vh;overflow:hidden;pointer-events:none;flex:1 1 auto}.admin-wrapper .sidebar-wrapper__inner{display:flex;justify-content:flex-end;background:#d9e1e8;height:100%}.admin-wrapper .sidebar{width:240px;padding:0;pointer-events:auto}.admin-wrapper .sidebar__toggle{display:none;background:#c0cdd9;height:48px}.admin-wrapper .sidebar__toggle__logo{flex:1 1 auto}.admin-wrapper .sidebar__toggle__logo a{display:inline-block;padding:15px}.admin-wrapper .sidebar__toggle__logo svg{fill:#000;height:20px;position:relative;bottom:-2px}.admin-wrapper .sidebar__toggle__icon{display:block;color:#282c37;text-decoration:none;flex:0 0 auto;font-size:20px;padding:15px}.admin-wrapper .sidebar__toggle a:hover,.admin-wrapper .sidebar__toggle a:focus,.admin-wrapper .sidebar__toggle a:active{background:#b3c3d1}.admin-wrapper .sidebar .logo{display:block;margin:40px auto;width:100px;height:100px}@media screen and (max-width: 600px){.admin-wrapper .sidebar>a:first-child{display:none}}.admin-wrapper .sidebar ul{list-style:none;border-radius:4px 0 0 4px;overflow:hidden;margin-bottom:20px}@media screen and (max-width: 600px){.admin-wrapper .sidebar ul{margin-bottom:0}}.admin-wrapper .sidebar ul a{display:block;padding:15px;color:#282c37;text-decoration:none;transition:all 200ms linear;transition-property:color,background-color;border-radius:4px 0 0 4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.admin-wrapper .sidebar ul a i.fa{margin-right:5px}.admin-wrapper .sidebar ul a:hover{color:#000;background-color:#e9eef2;transition:all 100ms linear;transition-property:color,background-color}.admin-wrapper .sidebar ul a.selected{background:#dfe6ec;border-radius:4px 0 0}.admin-wrapper .sidebar ul ul{background:#e6ebf0;border-radius:0 0 0 4px;margin:0}.admin-wrapper .sidebar ul ul a{border:0;padding:15px 35px}.admin-wrapper .sidebar ul .simple-navigation-active-leaf a{color:#000;background-color:#2b90d9;border-bottom:0;border-radius:0}.admin-wrapper .sidebar ul .simple-navigation-active-leaf a:hover{background-color:#2482c7}.admin-wrapper .sidebar>ul>.simple-navigation-active-leaf a{border-radius:4px 0 0 4px}.admin-wrapper .content-wrapper{box-sizing:border-box;width:100%;max-width:840px;flex:1 1 auto}@media screen and (max-width: 1080px){.admin-wrapper .sidebar-wrapper--empty{display:none}.admin-wrapper .sidebar-wrapper{width:240px;flex:0 0 auto}}@media screen and (max-width: 600px){.admin-wrapper .sidebar-wrapper{width:100%}}.admin-wrapper .content{padding:20px 15px;padding-top:60px;padding-left:25px}@media screen and (max-width: 600px){.admin-wrapper .content{max-width:none;padding:15px;padding-top:30px}}.admin-wrapper .content-heading{display:flex;padding-bottom:40px;border-bottom:1px solid #c0cdd9;margin:-15px -15px 40px 0;flex-wrap:wrap;align-items:center;justify-content:space-between}.admin-wrapper .content-heading>*{margin-top:15px;margin-right:15px}.admin-wrapper .content-heading-actions{display:inline-flex}.admin-wrapper .content-heading-actions>:not(:first-child){margin-left:5px}@media screen and (max-width: 600px){.admin-wrapper .content-heading{border-bottom:0;padding-bottom:0}}.admin-wrapper .content h2{color:#282c37;font-size:24px;line-height:28px;font-weight:400}@media screen and (max-width: 600px){.admin-wrapper .content h2{font-weight:700}}.admin-wrapper .content h3{color:#282c37;font-size:20px;line-height:28px;font-weight:400;margin-bottom:30px}.admin-wrapper .content h4{text-transform:uppercase;font-size:13px;font-weight:700;color:#282c37;padding-bottom:8px;margin-bottom:8px;border-bottom:1px solid #c0cdd9}.admin-wrapper .content h6{font-size:16px;color:#282c37;line-height:28px;font-weight:500}.admin-wrapper .content .fields-group h6{color:#000;font-weight:500}.admin-wrapper .content .directory__tag>a,.admin-wrapper .content .directory__tag>div{box-shadow:none}.admin-wrapper .content .directory__tag .table-action-link .fa{color:inherit}.admin-wrapper .content .directory__tag h4{font-size:18px;font-weight:700;color:#000;text-transform:none;padding-bottom:0;margin-bottom:0;border-bottom:none}.admin-wrapper .content>p{font-size:14px;line-height:21px;color:#282c37;margin-bottom:20px}.admin-wrapper .content>p strong{color:#000;font-weight:500}.admin-wrapper .content>p strong:lang(ja){font-weight:700}.admin-wrapper .content>p strong:lang(ko){font-weight:700}.admin-wrapper .content>p strong:lang(zh-CN){font-weight:700}.admin-wrapper .content>p strong:lang(zh-HK){font-weight:700}.admin-wrapper .content>p strong:lang(zh-TW){font-weight:700}.admin-wrapper .content hr{width:100%;height:0;border:0;border-bottom:1px solid rgba(60,80,99,.6);margin:20px 0}.admin-wrapper .content hr.spacer{height:1px;border:0}@media screen and (max-width: 600px){.admin-wrapper{display:block}.admin-wrapper .sidebar-wrapper{min-height:0}.admin-wrapper .sidebar{width:100%;padding:0;height:auto}.admin-wrapper .sidebar__toggle{display:flex}.admin-wrapper .sidebar>ul{display:none}.admin-wrapper .sidebar ul a,.admin-wrapper .sidebar ul ul a{border-radius:0;border-bottom:1px solid #ccd7e0;transition:none}.admin-wrapper .sidebar ul a:hover,.admin-wrapper .sidebar ul ul a:hover{transition:none}.admin-wrapper .sidebar ul ul{border-radius:0}.admin-wrapper .sidebar ul .simple-navigation-active-leaf a{border-bottom-color:#2b90d9}}hr.spacer{width:100%;border:0;margin:20px 0;height:1px}body .muted-hint,.admin-wrapper .content .muted-hint{color:#282c37}body .muted-hint a,.admin-wrapper .content .muted-hint a{color:#2b90d9}body .positive-hint,.admin-wrapper .content .positive-hint{color:#79bd9a;font-weight:500}body .negative-hint,.admin-wrapper .content .negative-hint{color:#df405a;font-weight:500}body .neutral-hint,.admin-wrapper .content .neutral-hint{color:#444b5d;font-weight:500}body .warning-hint,.admin-wrapper .content .warning-hint{color:#ca8f04;font-weight:500}.filters{display:flex;flex-wrap:wrap}.filters .filter-subset{flex:0 0 auto;margin:0 40px 20px 0}.filters .filter-subset:last-child{margin-bottom:30px}.filters .filter-subset ul{margin-top:5px;list-style:none}.filters .filter-subset ul li{display:inline-block;margin-right:5px}.filters .filter-subset strong{font-weight:500;text-transform:uppercase;font-size:12px}.filters .filter-subset strong:lang(ja){font-weight:700}.filters .filter-subset strong:lang(ko){font-weight:700}.filters .filter-subset strong:lang(zh-CN){font-weight:700}.filters .filter-subset strong:lang(zh-HK){font-weight:700}.filters .filter-subset strong:lang(zh-TW){font-weight:700}.filters .filter-subset--with-select strong{display:block;margin-bottom:10px}.filters .filter-subset a{display:inline-block;color:#282c37;text-decoration:none;text-transform:uppercase;font-size:12px;font-weight:500;border-bottom:2px solid #d9e1e8}.filters .filter-subset a:hover{color:#000;border-bottom:2px solid #c9d4de}.filters .filter-subset a.selected{color:#2b90d9;border-bottom:2px solid #2b90d9}.flavour-screen{display:block;margin:10px auto;max-width:100%}.flavour-description{display:block;font-size:16px;margin:10px 0}.flavour-description>p{margin:10px 0}.report-accounts{display:flex;flex-wrap:wrap;margin-bottom:20px}.report-accounts__item{display:flex;flex:250px;flex-direction:column;margin:0 5px}.report-accounts__item>strong{display:block;margin:0 0 10px -5px;font-weight:500;font-size:14px;line-height:18px;color:#282c37}.report-accounts__item>strong:lang(ja){font-weight:700}.report-accounts__item>strong:lang(ko){font-weight:700}.report-accounts__item>strong:lang(zh-CN){font-weight:700}.report-accounts__item>strong:lang(zh-HK){font-weight:700}.report-accounts__item>strong:lang(zh-TW){font-weight:700}.report-accounts__item .account-card{flex:1 1 auto}.report-status,.account-status{display:flex;margin-bottom:10px}.report-status .activity-stream,.account-status .activity-stream{flex:2 0 0;margin-right:20px;max-width:calc(100% - 60px)}.report-status .activity-stream .entry,.account-status .activity-stream .entry{border-radius:4px}.report-status__actions,.account-status__actions{flex:0 0 auto;display:flex;flex-direction:column}.report-status__actions .icon-button,.account-status__actions .icon-button{font-size:24px;width:24px;text-align:center;margin-bottom:10px}.simple_form.new_report_note,.simple_form.new_account_moderation_note{max-width:100%}.batch-form-box{display:flex;flex-wrap:wrap;margin-bottom:5px}.batch-form-box #form_status_batch_action{margin:0 5px 5px 0;font-size:14px}.batch-form-box input.button{margin:0 5px 5px 0}.batch-form-box .media-spoiler-toggle-buttons{margin-left:auto}.batch-form-box .media-spoiler-toggle-buttons .button{overflow:visible;margin:0 0 5px 5px;float:right}.back-link{margin-bottom:10px;font-size:14px}.back-link a{color:#2b90d9;text-decoration:none}.back-link a:hover{text-decoration:underline}.spacer{flex:1 1 auto}.log-entry{line-height:20px;padding:15px 0;background:#d9e1e8;border-bottom:1px solid #ccd7e0}.log-entry:last-child{border-bottom:0}.log-entry__header{display:flex;justify-content:flex-start;align-items:center;color:#282c37;font-size:14px;padding:0 10px}.log-entry__avatar{margin-right:10px}.log-entry__avatar .avatar{display:block;margin:0;border-radius:50%;width:40px;height:40px}.log-entry__content{max-width:calc(100% - 90px)}.log-entry__title{word-wrap:break-word}.log-entry__timestamp{color:#444b5d}.log-entry a,.log-entry .username,.log-entry .target{color:#282c37;text-decoration:none;font-weight:500}a.name-tag,.name-tag,a.inline-name-tag,.inline-name-tag{text-decoration:none;color:#282c37}a.name-tag .username,.name-tag .username,a.inline-name-tag .username,.inline-name-tag .username{font-weight:500}a.name-tag.suspended .username,.name-tag.suspended .username,a.inline-name-tag.suspended .username,.inline-name-tag.suspended .username{text-decoration:line-through;color:#c1203b}a.name-tag.suspended .avatar,.name-tag.suspended .avatar,a.inline-name-tag.suspended .avatar,.inline-name-tag.suspended .avatar{filter:grayscale(100%);opacity:.8}a.name-tag,.name-tag{display:flex;align-items:center}a.name-tag .avatar,.name-tag .avatar{display:block;margin:0;margin-right:5px;border-radius:50%}a.name-tag.suspended .avatar,.name-tag.suspended .avatar{filter:grayscale(100%);opacity:.8}.speech-bubble{margin-bottom:20px;border-left:4px solid #2b90d9}.speech-bubble.positive{border-left-color:#79bd9a}.speech-bubble.negative{border-left-color:#c1203b}.speech-bubble.warning{border-left-color:#ca8f04}.speech-bubble__bubble{padding:16px;padding-left:14px;font-size:15px;line-height:20px;border-radius:4px 4px 4px 0;position:relative;font-weight:500}.speech-bubble__bubble a{color:#282c37}.speech-bubble__owner{padding:8px;padding-left:12px}.speech-bubble time{color:#444b5d}.report-card{background:#d9e1e8;border-radius:4px;margin-bottom:20px}.report-card__profile{display:flex;justify-content:space-between;align-items:center;padding:15px}.report-card__profile .account{padding:0;border:0}.report-card__profile .account__avatar-wrapper{margin-left:0}.report-card__profile__stats{flex:0 0 auto;font-weight:500;color:#282c37;text-transform:uppercase;text-align:right}.report-card__profile__stats a{color:inherit;text-decoration:none}.report-card__profile__stats a:focus,.report-card__profile__stats a:hover,.report-card__profile__stats a:active{color:#17191f}.report-card__profile__stats .red{color:#df405a}.report-card__summary__item{display:flex;justify-content:flex-start;border-top:1px solid #e6ebf0}.report-card__summary__item:hover{background:#d3dce4}.report-card__summary__item__reported-by,.report-card__summary__item__assigned{padding:15px;flex:0 0 auto;box-sizing:border-box;width:150px;color:#282c37}.report-card__summary__item__reported-by,.report-card__summary__item__reported-by .username,.report-card__summary__item__assigned,.report-card__summary__item__assigned .username{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.report-card__summary__item__content{flex:1 1 auto;max-width:calc(100% - 300px)}.report-card__summary__item__content__icon{color:#444b5d;margin-right:4px;font-weight:500}.report-card__summary__item__content a{display:block;box-sizing:border-box;width:100%;padding:15px;text-decoration:none;color:#282c37}.one-line{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ellipsized-ip{display:inline-block;max-width:120px;overflow:hidden;text-overflow:ellipsis;vertical-align:middle}.admin-account-bio{display:flex;flex-wrap:wrap;margin:0 -5px;margin-top:20px}.admin-account-bio>div{box-sizing:border-box;padding:0 5px;margin-bottom:10px;flex:1 0 50%}.admin-account-bio .account__header__fields,.admin-account-bio .account__header__content{background:#c0cdd9;border-radius:4px;height:100%}.admin-account-bio .account__header__fields{margin:0;border:0}.admin-account-bio .account__header__fields a{color:#217aba}.admin-account-bio .account__header__fields dl:first-child .verified{border-radius:0 4px 0 0}.admin-account-bio .account__header__fields .verified a{color:#79bd9a}.admin-account-bio .account__header__content{box-sizing:border-box;padding:20px;color:#000}.center-text{text-align:center}.announcements-list{border:1px solid #ccd7e0;border-radius:4px}.announcements-list__item{padding:15px 0;background:#d9e1e8;border-bottom:1px solid #ccd7e0}.announcements-list__item__title{padding:0 15px;display:block;font-weight:500;font-size:18px;line-height:1.5;color:#282c37;text-decoration:none;margin-bottom:10px}.announcements-list__item__title:hover,.announcements-list__item__title:focus,.announcements-list__item__title:active{color:#000}.announcements-list__item__meta{padding:0 15px;color:#444b5d}.announcements-list__item__action-bar{display:flex;justify-content:space-between;align-items:center}.announcements-list__item:last-child{border-bottom:0}.emojione[title=\":wind_blowing_face:\"],.emojione[title=\":white_small_square:\"],.emojione[title=\":white_medium_square:\"],.emojione[title=\":white_medium_small_square:\"],.emojione[title=\":white_large_square:\"],.emojione[title=\":white_circle:\"],.emojione[title=\":waxing_crescent_moon:\"],.emojione[title=\":waving_white_flag:\"],.emojione[title=\":waning_gibbous_moon:\"],.emojione[title=\":waning_crescent_moon:\"],.emojione[title=\":volleyball:\"],.emojione[title=\":thought_balloon:\"],.emojione[title=\":speech_balloon:\"],.emojione[title=\":speaker:\"],.emojione[title=\":sound:\"],.emojione[title=\":snow_cloud:\"],.emojione[title=\":skull_and_crossbones:\"],.emojione[title=\":skull:\"],.emojione[title=\":sheep:\"],.emojione[title=\":rooster:\"],.emojione[title=\":rice_ball:\"],.emojione[title=\":rice:\"],.emojione[title=\":ram:\"],.emojione[title=\":rain_cloud:\"],.emojione[title=\":page_with_curl:\"],.emojione[title=\":mute:\"],.emojione[title=\":moon:\"],.emojione[title=\":loud_sound:\"],.emojione[title=\":lightning:\"],.emojione[title=\":last_quarter_moon_with_face:\"],.emojione[title=\":last_quarter_moon:\"],.emojione[title=\":ice_skate:\"],.emojione[title=\":grey_question:\"],.emojione[title=\":grey_exclamation:\"],.emojione[title=\":goat:\"],.emojione[title=\":ghost:\"],.emojione[title=\":full_moon_with_face:\"],.emojione[title=\":full_moon:\"],.emojione[title=\":fish_cake:\"],.emojione[title=\":first_quarter_moon_with_face:\"],.emojione[title=\":first_quarter_moon:\"],.emojione[title=\":eyes:\"],.emojione[title=\":dove_of_peace:\"],.emojione[title=\":dash:\"],.emojione[title=\":crescent_moon:\"],.emojione[title=\":cloud:\"],.emojione[title=\":chicken:\"],.emojione[title=\":chains:\"],.emojione[title=\":baseball:\"],.emojione[title=\":alien:\"]{filter:drop-shadow(1px 1px 0 #000000) drop-shadow(-1px 1px 0 #000000) drop-shadow(1px -1px 0 #000000) drop-shadow(-1px -1px 0 #000000)}.hicolor-privacy-icons .status__visibility-icon.fa-globe,.hicolor-privacy-icons .composer--options--dropdown--content--item .fa-globe{color:#1976d2}.hicolor-privacy-icons .status__visibility-icon.fa-unlock,.hicolor-privacy-icons .composer--options--dropdown--content--item .fa-unlock{color:#388e3c}.hicolor-privacy-icons .status__visibility-icon.fa-lock,.hicolor-privacy-icons .composer--options--dropdown--content--item .fa-lock{color:#ffa000}.hicolor-privacy-icons .status__visibility-icon.fa-envelope,.hicolor-privacy-icons .composer--options--dropdown--content--item .fa-envelope{color:#d32f2f}body.rtl{direction:rtl}body.rtl .column-header>button{text-align:right;padding-left:0;padding-right:15px}body.rtl .radio-button__input{margin-right:0;margin-left:10px}body.rtl .directory__card__bar .display-name{margin-left:0;margin-right:15px}body.rtl .display-name{text-align:right}body.rtl .notification__message{margin-left:0;margin-right:68px}body.rtl .drawer__inner__mastodon>img{transform:scaleX(-1)}body.rtl .notification__favourite-icon-wrapper{left:auto;right:-26px}body.rtl .landing-page__logo{margin-right:0;margin-left:20px}body.rtl .landing-page .features-list .features-list__row .visual{margin-left:0;margin-right:15px}body.rtl .column-link__icon,body.rtl .column-header__icon{margin-right:0;margin-left:5px}body.rtl .compose-form .compose-form__buttons-wrapper .character-counter__wrapper{margin-right:0;margin-left:4px}body.rtl .composer--publisher{text-align:left}body.rtl .boost-modal__status-time,body.rtl .favourite-modal__status-time{float:left}body.rtl .navigation-bar__profile{margin-left:0;margin-right:8px}body.rtl .search__input{padding-right:10px;padding-left:30px}body.rtl .search__icon .fa{right:auto;left:10px}body.rtl .columns-area{direction:rtl}body.rtl .column-header__buttons{left:0;right:auto;margin-left:0;margin-right:-15px}body.rtl .column-inline-form .icon-button{margin-left:0;margin-right:5px}body.rtl .column-header__links .text-btn{margin-left:10px;margin-right:0}body.rtl .account__avatar-wrapper{float:right}body.rtl .column-header__back-button{padding-left:5px;padding-right:0}body.rtl .column-header__setting-arrows{float:left}body.rtl .setting-toggle__label{margin-left:0;margin-right:8px}body.rtl .setting-meta__label{float:left}body.rtl .status__avatar{margin-left:10px;margin-right:0;left:auto;right:10px}body.rtl .activity-stream .status.light{padding-left:10px;padding-right:68px}body.rtl .status__info .status__display-name,body.rtl .activity-stream .status.light .status__display-name{padding-left:25px;padding-right:0}body.rtl .activity-stream .pre-header{padding-right:68px;padding-left:0}body.rtl .status__prepend{margin-left:0;margin-right:58px}body.rtl .status__prepend-icon-wrapper{left:auto;right:-26px}body.rtl .activity-stream .pre-header .pre-header__icon{left:auto;right:42px}body.rtl .account__avatar-overlay-overlay{right:auto;left:0}body.rtl .column-back-button--slim-button{right:auto;left:0}body.rtl .status__relative-time,body.rtl .activity-stream .status.light .status__header .status__meta{float:left;text-align:left}body.rtl .status__action-bar__counter{margin-right:0;margin-left:11px}body.rtl .status__action-bar__counter .status__action-bar-button{margin-right:0;margin-left:4px}body.rtl .status__action-bar-button{float:right;margin-right:0;margin-left:18px}body.rtl .status__action-bar-dropdown{float:right}body.rtl .privacy-dropdown__dropdown{margin-left:0;margin-right:40px}body.rtl .privacy-dropdown__option__icon{margin-left:10px;margin-right:0}body.rtl .detailed-status__display-name .display-name{text-align:right}body.rtl .detailed-status__display-avatar{margin-right:0;margin-left:10px;float:right}body.rtl .detailed-status__favorites,body.rtl .detailed-status__reblogs{margin-left:0;margin-right:6px}body.rtl .fa-ul{margin-left:2.14285714em}body.rtl .fa-li{left:auto;right:-2.14285714em}body.rtl .admin-wrapper{direction:rtl}body.rtl .admin-wrapper .sidebar ul a i.fa,body.rtl a.table-action-link i.fa{margin-right:0;margin-left:5px}body.rtl .simple_form .check_boxes .checkbox label{padding-left:0;padding-right:25px}body.rtl .simple_form .input.with_label.boolean label.checkbox{padding-left:25px;padding-right:0}body.rtl .simple_form .check_boxes .checkbox input[type=checkbox],body.rtl .simple_form .input.boolean input[type=checkbox]{left:auto;right:0}body.rtl .simple_form .input.radio_buttons .radio{left:auto;right:0}body.rtl .simple_form .input.radio_buttons .radio>label{padding-right:28px;padding-left:0}body.rtl .simple_form .input-with-append .input input{padding-left:142px;padding-right:0}body.rtl .simple_form .input.boolean label.checkbox{left:auto;right:0}body.rtl .simple_form .input.boolean .label_input,body.rtl .simple_form .input.boolean .hint{padding-left:0;padding-right:28px}body.rtl .simple_form .label_input__append{right:auto;left:3px}body.rtl .simple_form .label_input__append::after{right:auto;left:0;background-image:linear-gradient(to left, rgba(249, 250, 251, 0), #f9fafb)}body.rtl .simple_form select{background:#f9fafb url(\"data:image/svg+xml;utf8,\") no-repeat left 8px center/auto 16px}body.rtl .table th,body.rtl .table td{text-align:right}body.rtl .filters .filter-subset{margin-right:0;margin-left:45px}body.rtl .landing-page .header-wrapper .mascot{right:60px;left:auto}body.rtl .landing-page__call-to-action .row__information-board{direction:rtl}body.rtl .landing-page .header .hero .floats .float-1{left:-120px;right:auto}body.rtl .landing-page .header .hero .floats .float-2{left:210px;right:auto}body.rtl .landing-page .header .hero .floats .float-3{left:110px;right:auto}body.rtl .landing-page .header .links .brand img{left:0}body.rtl .landing-page .fa-external-link{padding-right:5px;padding-left:0 !important}body.rtl .landing-page .features #mastodon-timeline{margin-right:0;margin-left:30px}@media screen and (min-width: 631px){body.rtl .column,body.rtl .drawer{padding-left:5px;padding-right:5px}body.rtl .column:first-child,body.rtl .drawer:first-child{padding-left:5px;padding-right:10px}body.rtl .columns-area>div .column,body.rtl .columns-area>div .drawer{padding-left:5px;padding-right:5px}}body.rtl .columns-area--mobile .column,body.rtl .columns-area--mobile .drawer{padding-left:0;padding-right:0}body.rtl .public-layout .header .nav-button{margin-left:8px;margin-right:0}body.rtl .public-layout .public-account-header__tabs{margin-left:0;margin-right:20px}body.rtl .landing-page__information .account__display-name{margin-right:0;margin-left:5px}body.rtl .landing-page__information .account__avatar-wrapper{margin-left:12px;margin-right:0}body.rtl .card__bar .display-name{margin-left:0;margin-right:15px;text-align:right}body.rtl .fa-chevron-left::before{content:\"\"}body.rtl .fa-chevron-right::before{content:\"\"}body.rtl .column-back-button__icon{margin-right:0;margin-left:5px}body.rtl .column-header__setting-arrows .column-header__setting-btn:last-child{padding-left:0;padding-right:10px}body.rtl .simple_form .input.radio_buttons .radio>label input{left:auto;right:0}.dashboard__counters{display:flex;flex-wrap:wrap;margin:0 -5px;margin-bottom:20px}.dashboard__counters>div{box-sizing:border-box;flex:0 0 33.333%;padding:0 5px;margin-bottom:10px}.dashboard__counters>div>div,.dashboard__counters>div>a{padding:20px;background:#ccd7e0;border-radius:4px;box-sizing:border-box;height:100%}.dashboard__counters>div>a{text-decoration:none;color:inherit;display:block}.dashboard__counters>div>a:hover,.dashboard__counters>div>a:focus,.dashboard__counters>div>a:active{background:#c0cdd9}.dashboard__counters__num,.dashboard__counters__text{text-align:center;font-weight:500;font-size:24px;line-height:21px;color:#000;font-family:sans-serif,sans-serif;margin-bottom:20px;line-height:30px}.dashboard__counters__text{font-size:18px}.dashboard__counters__label{font-size:14px;color:#282c37;text-align:center;font-weight:500}.dashboard__widgets{display:flex;flex-wrap:wrap;margin:0 -5px}.dashboard__widgets>div{flex:0 0 33.333%;margin-bottom:20px}.dashboard__widgets>div>div{padding:0 5px}.dashboard__widgets a:not(.name-tag){color:#282c37;font-weight:500;text-decoration:none}.glitch.local-settings{background:#d9e1e8}.glitch.local-settings__navigation{background:#f2f5f7}.glitch.local-settings__navigation__item{background:#f2f5f7}.glitch.local-settings__navigation__item:hover{background:#d9e1e8}.notification__dismiss-overlay .wrappy{box-shadow:unset}.notification__dismiss-overlay .ckbox{text-shadow:unset}.status.status-direct:not(.read){background:#f2f5f7;border-bottom-color:#fff}.status.status-direct:not(.read).collapsed>.status__content:after{background:linear-gradient(rgba(242, 245, 247, 0), #f2f5f7)}.focusable:focus.status.status-direct:not(.read){background:#e6ebf0}.focusable:focus.status.status-direct:not(.read).collapsed>.status__content:after{background:linear-gradient(rgba(230, 235, 240, 0), #e6ebf0)}.column>.scrollable{background:#fff}.status.collapsed .status__content:after{background:linear-gradient(rgba(255, 255, 255, 0), white)}.drawer__inner{background:#d9e1e8}.drawer__inner__mastodon{background:#d9e1e8 url('data:image/svg+xml;utf8,') no-repeat bottom/100% auto !important}.drawer__inner__mastodon .mastodon{filter:contrast(75%) brightness(75%) !important}.status__content .status__content__spoiler-link{background:#7a96ae}.status__content .status__content__spoiler-link:hover{background:#6a89a5;text-decoration:none}.media-spoiler,.video-player__spoiler,.account-gallery__item a{background:#d9e1e8}.dropdown-menu{background:#d9e1e8}.dropdown-menu__arrow.left{border-left-color:#d9e1e8}.dropdown-menu__arrow.top{border-top-color:#d9e1e8}.dropdown-menu__arrow.bottom{border-bottom-color:#d9e1e8}.dropdown-menu__arrow.right{border-right-color:#d9e1e8}.dropdown-menu__item a{background:#d9e1e8;color:#282c37}.composer .composer--spoiler input,.composer .compose-form__autosuggest-wrapper textarea{color:#0f151a}.composer .composer--spoiler input:disabled,.composer .compose-form__autosuggest-wrapper textarea:disabled{background:#e6e6e6}.composer .composer--spoiler input::placeholder,.composer .compose-form__autosuggest-wrapper textarea::placeholder{color:#232f39}.composer .composer--options-wrapper{background:#b9c8d5}.composer .composer--options>hr{display:none}.composer .composer--options--dropdown--content--item{color:#9baec8}.composer .composer--options--dropdown--content--item strong{color:#9baec8}.composer--upload_form--actions .icon-button{color:#ededed}.composer--upload_form--actions .icon-button:active,.composer--upload_form--actions .icon-button:focus,.composer--upload_form--actions .icon-button:hover{color:#fff}.composer--upload_form--item>div input{color:#ededed}.composer--upload_form--item>div input::placeholder{color:#e6e6e6}.dropdown-menu__separator{border-bottom-color:#b3c3d1}.status__content a,.reply-indicator__content a{color:#2b90d9}.emoji-mart-bar{border-color:#e6ebf0}.emoji-mart-bar:first-child{background:#b9c8d5}.emoji-mart-search input{background:rgba(217,225,232,.3);border-color:#d9e1e8}.autosuggest-textarea__suggestions{background:#b9c8d5}.autosuggest-textarea__suggestions__item:hover,.autosuggest-textarea__suggestions__item:focus,.autosuggest-textarea__suggestions__item:active,.autosuggest-textarea__suggestions__item.selected{background:#e6ebf0}.react-toggle-track{background:#282c37}.react-toggle:hover:not(.react-toggle--disabled) .react-toggle-track{background:#131419}.react-toggle.react-toggle--checked:hover:not(.react-toggle--disabled) .react-toggle-track{background:#56a7e1}.actions-modal,.boost-modal,.doodle-modal,.confirmation-modal,.mute-modal,.block-modal,.report-modal,.embed-modal,.error-modal,.onboarding-modal,.report-modal__comment .setting-text__wrapper,.report-modal__comment .setting-text{background:#fff;border:1px solid #c0cdd9}.report-modal__comment{border-right-color:#c0cdd9}.report-modal__container{border-top-color:#c0cdd9}.boost-modal__action-bar,.doodle-modal__action-bar,.confirmation-modal__action-bar,.mute-modal__action-bar,.block-modal__action-bar,.onboarding-modal__paginator,.error-modal__footer{background:#ecf0f4}.boost-modal__action-bar .onboarding-modal__nav:hover,.doodle-modal__action-bar .onboarding-modal__nav:hover,.boost-modal__action-bar .onboarding-modal__nav:focus,.doodle-modal__action-bar .onboarding-modal__nav:focus,.boost-modal__action-bar .onboarding-modal__nav:active,.doodle-modal__action-bar .onboarding-modal__nav:active,.boost-modal__action-bar .error-modal__nav:hover,.doodle-modal__action-bar .error-modal__nav:hover,.boost-modal__action-bar .error-modal__nav:focus,.doodle-modal__action-bar .error-modal__nav:focus,.boost-modal__action-bar .error-modal__nav:active,.doodle-modal__action-bar .error-modal__nav:active,.confirmation-modal__action-bar .onboarding-modal__nav:hover,.confirmation-modal__action-bar .onboarding-modal__nav:focus,.confirmation-modal__action-bar .onboarding-modal__nav:active,.confirmation-modal__action-bar .error-modal__nav:hover,.confirmation-modal__action-bar .error-modal__nav:focus,.confirmation-modal__action-bar .error-modal__nav:active,.mute-modal__action-bar .onboarding-modal__nav:hover,.mute-modal__action-bar .onboarding-modal__nav:focus,.mute-modal__action-bar .onboarding-modal__nav:active,.mute-modal__action-bar .error-modal__nav:hover,.mute-modal__action-bar .error-modal__nav:focus,.mute-modal__action-bar .error-modal__nav:active,.block-modal__action-bar .onboarding-modal__nav:hover,.block-modal__action-bar .onboarding-modal__nav:focus,.block-modal__action-bar .onboarding-modal__nav:active,.block-modal__action-bar .error-modal__nav:hover,.block-modal__action-bar .error-modal__nav:focus,.block-modal__action-bar .error-modal__nav:active,.onboarding-modal__paginator .onboarding-modal__nav:hover,.onboarding-modal__paginator .onboarding-modal__nav:focus,.onboarding-modal__paginator .onboarding-modal__nav:active,.onboarding-modal__paginator .error-modal__nav:hover,.onboarding-modal__paginator .error-modal__nav:focus,.onboarding-modal__paginator .error-modal__nav:active,.error-modal__footer .onboarding-modal__nav:hover,.error-modal__footer .onboarding-modal__nav:focus,.error-modal__footer .onboarding-modal__nav:active,.error-modal__footer .error-modal__nav:hover,.error-modal__footer .error-modal__nav:focus,.error-modal__footer .error-modal__nav:active{background-color:#fff}.empty-column-indicator,.error-column{color:#364959}.activity-stream-tabs{background:#fff}.activity-stream-tabs a.active{color:#9baec8}.activity-stream .entry{background:#fff}.activity-stream .status.light .status__content{color:#000}.activity-stream .status.light .display-name strong{color:#000}.accounts-grid .account-grid-card .controls .icon-button{color:#282c37}.accounts-grid .account-grid-card .name a{color:#000}.accounts-grid .account-grid-card .username{color:#282c37}.accounts-grid .account-grid-card .account__header__content{color:#000}.button.logo-button{color:#fff}.button.logo-button svg{fill:#fff}.public-layout .header,.public-layout .public-account-header,.public-layout .public-account-bio{box-shadow:none}.public-layout .header{background:#b3c3d1}.public-layout .public-account-header__image{background:#b3c3d1}.public-layout .public-account-header__image::after{box-shadow:none}.public-layout .public-account-header__tabs__name h1,.public-layout .public-account-header__tabs__name h1 small{color:#fff}.account__section-headline a.active::after{border-color:transparent transparent #fff}.hero-widget,.box-widget,.contact-widget,.landing-page__information.contact-widget,.moved-account-widget,.memoriam-widget,.activity-stream,.nothing-here,.directory__tag>a,.directory__tag>div{box-shadow:none}.audio-player .video-player__controls button,.audio-player .video-player__time-sep,.audio-player .video-player__time-current,.audio-player .video-player__time-total{color:#000}","/* http://meyerweb.com/eric/tools/css/reset/\n v2.0 | 20110126\n License: none (public domain)\n*/\n\nhtml, body, div, span, applet, object, iframe,\nh1, h2, h3, h4, h5, h6, p, blockquote, pre,\na, abbr, acronym, address, big, cite, code,\ndel, dfn, em, img, ins, kbd, q, s, samp,\nsmall, strike, strong, sub, sup, tt, var,\nb, u, i, center,\ndl, dt, dd, ol, ul, li,\nfieldset, form, label, legend,\ntable, caption, tbody, tfoot, thead, tr, th, td,\narticle, aside, canvas, details, embed,\nfigure, figcaption, footer, header, hgroup,\nmenu, nav, output, ruby, section, summary,\ntime, mark, audio, video {\n margin: 0;\n padding: 0;\n border: 0;\n font-size: 100%;\n font: inherit;\n vertical-align: baseline;\n}\n\n/* HTML5 display-role reset for older browsers */\narticle, aside, details, figcaption, figure,\nfooter, header, hgroup, menu, nav, section {\n display: block;\n}\n\nbody {\n line-height: 1;\n}\n\nol, ul {\n list-style: none;\n}\n\nblockquote, q {\n quotes: none;\n}\n\nblockquote:before, blockquote:after,\nq:before, q:after {\n content: '';\n content: none;\n}\n\ntable {\n border-collapse: collapse;\n border-spacing: 0;\n}\n\nhtml {\n scrollbar-color: lighten($ui-base-color, 4%) rgba($base-overlay-background, 0.1);\n}\n\n::-webkit-scrollbar {\n width: 12px;\n height: 12px;\n}\n\n::-webkit-scrollbar-thumb {\n background: lighten($ui-base-color, 4%);\n border: 0px none $base-border-color;\n border-radius: 50px;\n}\n\n::-webkit-scrollbar-thumb:hover {\n background: lighten($ui-base-color, 6%);\n}\n\n::-webkit-scrollbar-thumb:active {\n background: lighten($ui-base-color, 4%);\n}\n\n::-webkit-scrollbar-track {\n border: 0px none $base-border-color;\n border-radius: 0;\n background: rgba($base-overlay-background, 0.1);\n}\n\n::-webkit-scrollbar-track:hover {\n background: $ui-base-color;\n}\n\n::-webkit-scrollbar-track:active {\n background: $ui-base-color;\n}\n\n::-webkit-scrollbar-corner {\n background: transparent;\n}\n","// Dependent colors\n$black: #000000;\n$white: #ffffff;\n\n$classic-base-color: #282c37;\n$classic-primary-color: #9baec8;\n$classic-secondary-color: #d9e1e8;\n$classic-highlight-color: #2b90d9;\n\n$ui-base-color: $classic-secondary-color !default;\n$ui-base-lighter-color: darken($ui-base-color, 57%);\n$ui-highlight-color: $classic-highlight-color !default;\n$ui-primary-color: $classic-primary-color !default;\n$ui-secondary-color: $classic-base-color !default;\n\n$primary-text-color: $black !default;\n$darker-text-color: $classic-base-color !default;\n$dark-text-color: #444b5d;\n$action-button-color: #606984;\n\n$success-green: lighten(#3c754d, 8%);\n\n$base-overlay-background: $white !default;\n\n$inverted-text-color: $black !default;\n$lighter-text-color: $classic-base-color !default;\n$light-text-color: #444b5d;\n\n$account-background-color: $white !default;\n\n//Invert darkened and lightened colors\n@function darken($color, $amount) {\n @return hsl(hue($color), saturation($color), lightness($color) + $amount);\n}\n\n@function lighten($color, $amount) {\n @return hsl(hue($color), saturation($color), lightness($color) - $amount);\n}\n\n$emojis-requiring-outlines: 'alien' 'baseball' 'chains' 'chicken' 'cloud' 'crescent_moon' 'dash' 'dove_of_peace' 'eyes' 'first_quarter_moon' 'first_quarter_moon_with_face' 'fish_cake' 'full_moon' 'full_moon_with_face' 'ghost' 'goat' 'grey_exclamation' 'grey_question' 'ice_skate' 'last_quarter_moon' 'last_quarter_moon_with_face' 'lightning' 'loud_sound' 'moon' 'mute' 'page_with_curl' 'rain_cloud' 'ram' 'rice' 'rice_ball' 'rooster' 'sheep' 'skull' 'skull_and_crossbones' 'snow_cloud' 'sound' 'speaker' 'speech_balloon' 'thought_balloon' 'volleyball' 'waning_crescent_moon' 'waning_gibbous_moon' 'waving_white_flag' 'waxing_crescent_moon' 'white_circle' 'white_large_square' 'white_medium_small_square' 'white_medium_square' 'white_small_square' 'wind_blowing_face';\n","@function hex-color($color) {\n @if type-of($color) == 'color' {\n $color: str-slice(ie-hex-str($color), 4);\n }\n @return '%23' + unquote($color)\n}\n\nbody {\n font-family: $font-sans-serif, sans-serif;\n background: darken($ui-base-color, 7%);\n font-size: 13px;\n line-height: 18px;\n font-weight: 400;\n color: $primary-text-color;\n text-rendering: optimizelegibility;\n font-feature-settings: \"kern\";\n text-size-adjust: none;\n -webkit-tap-highlight-color: rgba(0,0,0,0);\n -webkit-tap-highlight-color: transparent;\n\n &.system-font {\n // system-ui => standard property (Chrome/Android WebView 56+, Opera 43+, Safari 11+)\n // -apple-system => Safari <11 specific\n // BlinkMacSystemFont => Chrome <56 on macOS specific\n // Segoe UI => Windows 7/8/10\n // Oxygen => KDE\n // Ubuntu => Unity/Ubuntu\n // Cantarell => GNOME\n // Fira Sans => Firefox OS\n // Droid Sans => Older Androids (<4.0)\n // Helvetica Neue => Older macOS <10.11\n // $font-sans-serif => web-font (Roboto) fallback and newer Androids (>=4.0)\n font-family: system-ui, -apple-system, BlinkMacSystemFont, \"Segoe UI\", \"Oxygen\", \"Ubuntu\", \"Cantarell\", \"Fira Sans\", \"Droid Sans\", \"Helvetica Neue\", $font-sans-serif, sans-serif;\n }\n\n &.app-body {\n padding: 0;\n\n &.layout-single-column {\n height: auto;\n min-height: 100vh;\n overflow-y: scroll;\n }\n\n &.layout-multiple-columns {\n position: absolute;\n width: 100%;\n height: 100%;\n }\n\n &.with-modals--active {\n overflow-y: hidden;\n }\n }\n\n &.lighter {\n background: $ui-base-color;\n }\n\n &.with-modals {\n overflow-x: hidden;\n overflow-y: scroll;\n\n &--active {\n overflow-y: hidden;\n }\n }\n\n &.embed {\n background: lighten($ui-base-color, 4%);\n margin: 0;\n padding-bottom: 0;\n\n .container {\n position: absolute;\n width: 100%;\n height: 100%;\n overflow: hidden;\n }\n }\n\n &.admin {\n background: darken($ui-base-color, 4%);\n padding: 0;\n }\n\n &.error {\n position: absolute;\n text-align: center;\n color: $darker-text-color;\n background: $ui-base-color;\n width: 100%;\n height: 100%;\n padding: 0;\n display: flex;\n justify-content: center;\n align-items: center;\n\n .dialog {\n vertical-align: middle;\n margin: 20px;\n\n img {\n display: block;\n max-width: 470px;\n width: 100%;\n height: auto;\n margin-top: -120px;\n }\n\n h1 {\n font-size: 20px;\n line-height: 28px;\n font-weight: 400;\n }\n }\n }\n}\n\nbutton {\n font-family: inherit;\n cursor: pointer;\n\n &:focus {\n outline: none;\n }\n}\n\n.app-holder {\n &,\n & > div {\n display: flex;\n width: 100%;\n align-items: center;\n justify-content: center;\n outline: 0 !important;\n }\n}\n\n.layout-single-column .app-holder {\n &,\n & > div {\n min-height: 100vh;\n }\n}\n\n.layout-multiple-columns .app-holder {\n &,\n & > div {\n height: 100%;\n }\n}\n",".container-alt {\n width: 700px;\n margin: 0 auto;\n margin-top: 40px;\n\n @media screen and (max-width: 740px) {\n width: 100%;\n margin: 0;\n }\n}\n\n.logo-container {\n margin: 100px auto 50px;\n\n @media screen and (max-width: 500px) {\n margin: 40px auto 0;\n }\n\n h1 {\n display: flex;\n justify-content: center;\n align-items: center;\n\n svg {\n fill: $primary-text-color;\n height: 42px;\n margin-right: 10px;\n }\n\n a {\n display: flex;\n justify-content: center;\n align-items: center;\n color: $primary-text-color;\n text-decoration: none;\n outline: 0;\n padding: 12px 16px;\n line-height: 32px;\n font-family: $font-display, sans-serif;\n font-weight: 500;\n font-size: 14px;\n }\n }\n}\n\n.compose-standalone {\n .compose-form {\n width: 400px;\n margin: 0 auto;\n padding: 20px 0;\n margin-top: 40px;\n box-sizing: border-box;\n\n @media screen and (max-width: 400px) {\n width: 100%;\n margin-top: 0;\n padding: 20px;\n }\n }\n}\n\n.account-header {\n width: 400px;\n margin: 0 auto;\n display: flex;\n font-size: 13px;\n line-height: 18px;\n box-sizing: border-box;\n padding: 20px 0;\n padding-bottom: 0;\n margin-bottom: -30px;\n margin-top: 40px;\n\n @media screen and (max-width: 440px) {\n width: 100%;\n margin: 0;\n margin-bottom: 10px;\n padding: 20px;\n padding-bottom: 0;\n }\n\n .avatar {\n width: 40px;\n height: 40px;\n @include avatar-size(40px);\n margin-right: 8px;\n\n img {\n width: 100%;\n height: 100%;\n display: block;\n margin: 0;\n border-radius: 4px;\n @include avatar-radius();\n }\n }\n\n .name {\n flex: 1 1 auto;\n color: $secondary-text-color;\n width: calc(100% - 88px);\n\n .username {\n display: block;\n font-weight: 500;\n text-overflow: ellipsis;\n overflow: hidden;\n }\n }\n\n .logout-link {\n display: block;\n font-size: 32px;\n line-height: 40px;\n margin-left: 8px;\n }\n}\n\n.grid-3 {\n display: grid;\n grid-gap: 10px;\n grid-template-columns: 3fr 1fr;\n grid-auto-columns: 25%;\n grid-auto-rows: max-content;\n\n .column-0 {\n grid-column: 1/3;\n grid-row: 1;\n }\n\n .column-1 {\n grid-column: 1;\n grid-row: 2;\n }\n\n .column-2 {\n grid-column: 2;\n grid-row: 2;\n }\n\n .column-3 {\n grid-column: 1/3;\n grid-row: 3;\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n grid-gap: 0;\n grid-template-columns: minmax(0, 100%);\n\n .column-0 {\n grid-column: 1;\n }\n\n .column-1 {\n grid-column: 1;\n grid-row: 3;\n }\n\n .column-2 {\n grid-column: 1;\n grid-row: 2;\n }\n\n .column-3 {\n grid-column: 1;\n grid-row: 4;\n }\n }\n}\n\n.grid-4 {\n display: grid;\n grid-gap: 10px;\n grid-template-columns: repeat(4, minmax(0, 1fr));\n grid-auto-columns: 25%;\n grid-auto-rows: max-content;\n\n .column-0 {\n grid-column: 1 / 5;\n grid-row: 1;\n }\n\n .column-1 {\n grid-column: 1 / 4;\n grid-row: 2;\n }\n\n .column-2 {\n grid-column: 4;\n grid-row: 2;\n }\n\n .column-3 {\n grid-column: 2 / 5;\n grid-row: 3;\n }\n\n .column-4 {\n grid-column: 1;\n grid-row: 3;\n }\n\n .landing-page__call-to-action {\n min-height: 100%;\n }\n\n .flash-message {\n margin-bottom: 10px;\n }\n\n @media screen and (max-width: 738px) {\n grid-template-columns: minmax(0, 50%) minmax(0, 50%);\n\n .landing-page__call-to-action {\n padding: 20px;\n display: flex;\n align-items: center;\n justify-content: center;\n }\n\n .row__information-board {\n width: 100%;\n justify-content: center;\n align-items: center;\n }\n\n .row__mascot {\n display: none;\n }\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n grid-gap: 0;\n grid-template-columns: minmax(0, 100%);\n\n .column-0 {\n grid-column: 1;\n }\n\n .column-1 {\n grid-column: 1;\n grid-row: 3;\n }\n\n .column-2 {\n grid-column: 1;\n grid-row: 2;\n }\n\n .column-3 {\n grid-column: 1;\n grid-row: 5;\n }\n\n .column-4 {\n grid-column: 1;\n grid-row: 4;\n }\n }\n}\n\n.public-layout {\n @media screen and (max-width: $no-gap-breakpoint) {\n padding-top: 48px;\n }\n\n .container {\n max-width: 960px;\n\n @media screen and (max-width: $no-gap-breakpoint) {\n padding: 0;\n }\n }\n\n .header {\n background: lighten($ui-base-color, 8%);\n box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);\n border-radius: 4px;\n height: 48px;\n margin: 10px 0;\n display: flex;\n align-items: stretch;\n justify-content: center;\n flex-wrap: nowrap;\n overflow: hidden;\n\n @media screen and (max-width: $no-gap-breakpoint) {\n position: fixed;\n width: 100%;\n top: 0;\n left: 0;\n margin: 0;\n border-radius: 0;\n box-shadow: none;\n z-index: 110;\n }\n\n & > div {\n flex: 1 1 33.3%;\n min-height: 1px;\n }\n\n .nav-left {\n display: flex;\n align-items: stretch;\n justify-content: flex-start;\n flex-wrap: nowrap;\n }\n\n .nav-center {\n display: flex;\n align-items: stretch;\n justify-content: center;\n flex-wrap: nowrap;\n }\n\n .nav-right {\n display: flex;\n align-items: stretch;\n justify-content: flex-end;\n flex-wrap: nowrap;\n }\n\n .brand {\n display: block;\n padding: 15px;\n\n svg {\n display: block;\n height: 18px;\n width: auto;\n position: relative;\n bottom: -2px;\n fill: $primary-text-color;\n\n @media screen and (max-width: $no-gap-breakpoint) {\n height: 20px;\n }\n }\n\n &:hover,\n &:focus,\n &:active {\n background: lighten($ui-base-color, 12%);\n }\n }\n\n .nav-link {\n display: flex;\n align-items: center;\n padding: 0 1rem;\n font-size: 12px;\n font-weight: 500;\n text-decoration: none;\n color: $darker-text-color;\n white-space: nowrap;\n text-align: center;\n\n &:hover,\n &:focus,\n &:active {\n text-decoration: underline;\n color: $primary-text-color;\n }\n\n @media screen and (max-width: 550px) {\n &.optional {\n display: none;\n }\n }\n }\n\n .nav-button {\n background: lighten($ui-base-color, 16%);\n margin: 8px;\n margin-left: 0;\n border-radius: 4px;\n\n &:hover,\n &:focus,\n &:active {\n text-decoration: none;\n background: lighten($ui-base-color, 20%);\n }\n }\n }\n\n $no-columns-breakpoint: 600px;\n\n .grid {\n display: grid;\n grid-gap: 10px;\n grid-template-columns: minmax(300px, 3fr) minmax(298px, 1fr);\n grid-auto-columns: 25%;\n grid-auto-rows: max-content;\n\n .column-0 {\n grid-row: 1;\n grid-column: 1;\n }\n\n .column-1 {\n grid-row: 1;\n grid-column: 2;\n }\n\n @media screen and (max-width: $no-columns-breakpoint) {\n grid-template-columns: 100%;\n grid-gap: 0;\n\n .column-1 {\n display: none;\n }\n }\n }\n\n .directory__card {\n border-radius: 4px;\n\n @media screen and (max-width: $no-gap-breakpoint) {\n border-radius: 0;\n }\n }\n\n .page-header {\n @media screen and (max-width: $no-gap-breakpoint) {\n border-bottom: 0;\n }\n }\n\n .public-account-header {\n overflow: hidden;\n margin-bottom: 10px;\n box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);\n\n &.inactive {\n opacity: 0.5;\n\n .public-account-header__image,\n .avatar {\n filter: grayscale(100%);\n }\n\n .logo-button {\n background-color: $secondary-text-color;\n }\n }\n\n &__image {\n border-radius: 4px 4px 0 0;\n overflow: hidden;\n height: 300px;\n position: relative;\n background: darken($ui-base-color, 12%);\n\n &::after {\n content: \"\";\n display: block;\n position: absolute;\n width: 100%;\n height: 100%;\n box-shadow: inset 0 -1px 1px 1px rgba($base-shadow-color, 0.15);\n top: 0;\n left: 0;\n }\n\n img {\n object-fit: cover;\n display: block;\n width: 100%;\n height: 100%;\n margin: 0;\n border-radius: 4px 4px 0 0;\n }\n\n @media screen and (max-width: 600px) {\n height: 200px;\n }\n }\n\n &--no-bar {\n margin-bottom: 0;\n\n .public-account-header__image,\n .public-account-header__image img {\n border-radius: 4px;\n\n @media screen and (max-width: $no-gap-breakpoint) {\n border-radius: 0;\n }\n }\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n margin-bottom: 0;\n box-shadow: none;\n\n &__image::after {\n display: none;\n }\n\n &__image,\n &__image img {\n border-radius: 0;\n }\n }\n\n &__bar {\n position: relative;\n margin-top: -80px;\n display: flex;\n justify-content: flex-start;\n\n &::before {\n content: \"\";\n display: block;\n background: lighten($ui-base-color, 4%);\n position: absolute;\n bottom: 0;\n left: 0;\n right: 0;\n height: 60px;\n border-radius: 0 0 4px 4px;\n z-index: -1;\n }\n\n .avatar {\n display: block;\n width: 120px;\n height: 120px;\n @include avatar-size(120px);\n padding-left: 20px - 4px;\n flex: 0 0 auto;\n\n img {\n display: block;\n width: 100%;\n height: 100%;\n margin: 0;\n border-radius: 50%;\n border: 4px solid lighten($ui-base-color, 4%);\n background: darken($ui-base-color, 8%);\n @include avatar-radius();\n }\n }\n\n @media screen and (max-width: 600px) {\n margin-top: 0;\n background: lighten($ui-base-color, 4%);\n border-radius: 0 0 4px 4px;\n padding: 5px;\n\n &::before {\n display: none;\n }\n\n .avatar {\n width: 48px;\n height: 48px;\n @include avatar-size(48px);\n padding: 7px 0;\n padding-left: 10px;\n\n img {\n border: 0;\n border-radius: 4px;\n @include avatar-radius();\n }\n\n @media screen and (max-width: 360px) {\n display: none;\n }\n }\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n border-radius: 0;\n }\n\n @media screen and (max-width: $no-columns-breakpoint) {\n flex-wrap: wrap;\n }\n }\n\n &__tabs {\n flex: 1 1 auto;\n margin-left: 20px;\n\n &__name {\n padding-top: 20px;\n padding-bottom: 8px;\n\n h1 {\n font-size: 20px;\n line-height: 18px * 1.5;\n color: $primary-text-color;\n font-weight: 500;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n text-shadow: 1px 1px 1px $base-shadow-color;\n\n small {\n display: block;\n font-size: 14px;\n color: $primary-text-color;\n font-weight: 400;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n }\n }\n\n @media screen and (max-width: 600px) {\n margin-left: 15px;\n display: flex;\n justify-content: space-between;\n align-items: center;\n\n &__name {\n padding-top: 0;\n padding-bottom: 0;\n\n h1 {\n font-size: 16px;\n line-height: 24px;\n text-shadow: none;\n\n small {\n color: $darker-text-color;\n }\n }\n }\n }\n\n &__tabs {\n display: flex;\n justify-content: flex-start;\n align-items: stretch;\n height: 58px;\n\n .details-counters {\n display: flex;\n flex-direction: row;\n min-width: 300px;\n }\n\n @media screen and (max-width: $no-columns-breakpoint) {\n .details-counters {\n display: none;\n }\n }\n\n .counter {\n min-width: 33.3%;\n box-sizing: border-box;\n flex: 0 0 auto;\n color: $darker-text-color;\n padding: 10px;\n border-right: 1px solid lighten($ui-base-color, 4%);\n cursor: default;\n text-align: center;\n position: relative;\n\n a {\n display: block;\n }\n\n &:last-child {\n border-right: 0;\n }\n\n &::after {\n display: block;\n content: \"\";\n position: absolute;\n bottom: 0;\n left: 0;\n width: 100%;\n border-bottom: 4px solid $ui-primary-color;\n opacity: 0.5;\n transition: all 400ms ease;\n }\n\n &.active {\n &::after {\n border-bottom: 4px solid $highlight-text-color;\n opacity: 1;\n }\n\n &.inactive::after {\n border-bottom-color: $secondary-text-color;\n }\n }\n\n &:hover {\n &::after {\n opacity: 1;\n transition-duration: 100ms;\n }\n }\n\n a {\n text-decoration: none;\n color: inherit;\n }\n\n .counter-label {\n font-size: 12px;\n display: block;\n }\n\n .counter-number {\n font-weight: 500;\n font-size: 18px;\n margin-bottom: 5px;\n color: $primary-text-color;\n font-family: $font-display, sans-serif;\n }\n }\n\n .spacer {\n flex: 1 1 auto;\n height: 1px;\n }\n\n &__buttons {\n padding: 7px 8px;\n }\n }\n }\n\n &__extra {\n display: none;\n margin-top: 4px;\n\n .public-account-bio {\n border-radius: 0;\n box-shadow: none;\n background: transparent;\n margin: 0 -5px;\n\n .account__header__fields {\n border-top: 1px solid lighten($ui-base-color, 12%);\n }\n\n .roles {\n display: none;\n }\n }\n\n &__links {\n margin-top: -15px;\n font-size: 14px;\n color: $darker-text-color;\n\n a {\n display: inline-block;\n color: $darker-text-color;\n text-decoration: none;\n padding: 15px;\n font-weight: 500;\n\n strong {\n font-weight: 700;\n color: $primary-text-color;\n }\n }\n }\n\n @media screen and (max-width: $no-columns-breakpoint) {\n display: block;\n flex: 100%;\n }\n }\n }\n\n .account__section-headline {\n border-radius: 4px 4px 0 0;\n\n @media screen and (max-width: $no-gap-breakpoint) {\n border-radius: 0;\n }\n }\n\n .detailed-status__meta {\n margin-top: 25px;\n }\n\n .public-account-bio {\n background: lighten($ui-base-color, 8%);\n box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);\n border-radius: 4px;\n overflow: hidden;\n margin-bottom: 10px;\n\n @media screen and (max-width: $no-gap-breakpoint) {\n box-shadow: none;\n margin-bottom: 0;\n border-radius: 0;\n }\n\n .account__header__fields {\n margin: 0;\n border-top: 0;\n\n a {\n color: lighten($ui-highlight-color, 8%);\n }\n\n dl:first-child .verified {\n border-radius: 0 4px 0 0;\n }\n\n .verified a {\n color: $valid-value-color;\n }\n }\n\n .account__header__content {\n padding: 20px;\n padding-bottom: 0;\n color: $primary-text-color;\n }\n\n &__extra,\n .roles {\n padding: 20px;\n font-size: 14px;\n color: $darker-text-color;\n }\n\n .roles {\n padding-bottom: 0;\n }\n }\n\n .directory__list {\n display: grid;\n grid-gap: 10px;\n grid-template-columns: minmax(0, 50%) minmax(0, 50%);\n\n @media screen and (max-width: $no-gap-breakpoint) {\n display: block;\n }\n\n .icon-button {\n font-size: 18px;\n }\n }\n\n .directory__card {\n margin-bottom: 0;\n }\n\n .card-grid {\n display: flex;\n flex-wrap: wrap;\n min-width: 100%;\n margin: 0 -5px;\n\n & > div {\n box-sizing: border-box;\n flex: 1 0 auto;\n width: 300px;\n padding: 0 5px;\n margin-bottom: 10px;\n max-width: 33.333%;\n\n @media screen and (max-width: 900px) {\n max-width: 50%;\n }\n\n @media screen and (max-width: 600px) {\n max-width: 100%;\n }\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n margin: 0;\n border-top: 1px solid lighten($ui-base-color, 8%);\n\n & > div {\n width: 100%;\n padding: 0;\n margin-bottom: 0;\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n\n &:last-child {\n border-bottom: 0;\n }\n\n .card__bar {\n background: $ui-base-color;\n\n &:hover,\n &:active,\n &:focus {\n background: lighten($ui-base-color, 4%);\n }\n }\n }\n }\n }\n}\n","@mixin avatar-radius() {\n border-radius: $ui-avatar-border-size;\n background-position: 50%;\n background-clip: padding-box;\n}\n\n@mixin avatar-size($size:48px) {\n width: $size;\n height: $size;\n background-size: $size $size;\n}\n\n@mixin single-column($media, $parent: '&') {\n .auto-columns #{$parent} {\n @media #{$media} {\n @content;\n }\n }\n .single-column #{$parent} {\n @content;\n }\n}\n\n@mixin limited-single-column($media, $parent: '&') {\n .auto-columns #{$parent}, .single-column #{$parent} {\n @media #{$media} {\n @content;\n }\n }\n}\n\n@mixin multi-columns($media, $parent: '&') {\n .auto-columns #{$parent} {\n @media #{$media} {\n @content;\n }\n }\n .multi-columns #{$parent} {\n @content;\n }\n}\n\n@mixin fullwidth-gallery {\n &.full-width {\n margin-left: -14px;\n margin-right: -14px;\n width: inherit;\n max-width: none;\n height: 250px;\n border-radius: 0px;\n }\n}\n\n@mixin search-input() {\n outline: 0;\n box-sizing: border-box;\n width: 100%;\n border: none;\n box-shadow: none;\n font-family: inherit;\n background: $ui-base-color;\n color: $darker-text-color;\n font-size: 14px;\n margin: 0;\n}\n\n@mixin search-popout() {\n background: $simple-background-color;\n border-radius: 4px;\n padding: 10px 14px;\n padding-bottom: 14px;\n margin-top: 10px;\n color: $light-text-color;\n box-shadow: 2px 4px 15px rgba($base-shadow-color, 0.4);\n\n h4 {\n text-transform: uppercase;\n color: $light-text-color;\n font-size: 13px;\n font-weight: 500;\n margin-bottom: 10px;\n }\n\n li {\n padding: 4px 0;\n }\n\n ul {\n margin-bottom: 10px;\n }\n\n em {\n font-weight: 500;\n color: $inverted-text-color;\n }\n}\n","// Commonly used web colors\n$black: #000000; // Black\n$white: #ffffff; // White\n$success-green: #79bd9a; // Padua\n$error-red: #df405a; // Cerise\n$warning-red: #ff5050; // Sunset Orange\n$gold-star: #ca8f04; // Dark Goldenrod\n\n$red-bookmark: $warning-red;\n\n// Pleroma-Dark colors\n$pleroma-bg: #121a24;\n$pleroma-fg: #182230;\n$pleroma-text: #b9b9ba;\n$pleroma-links: #d8a070;\n\n// Values from the classic Mastodon UI\n$classic-base-color: $pleroma-bg;\n$classic-primary-color: #9baec8;\n$classic-secondary-color: #d9e1e8;\n$classic-highlight-color: #d8a070;\n\n// Variables for defaults in UI\n$base-shadow-color: $black !default;\n$base-overlay-background: $black !default;\n$base-border-color: $white !default;\n$simple-background-color: $white !default;\n$valid-value-color: $success-green !default;\n$error-value-color: $error-red !default;\n\n// Tell UI to use selected colors\n$ui-base-color: $classic-base-color !default; // Darkest\n$ui-base-lighter-color: lighten($ui-base-color, 26%) !default; // Lighter darkest\n$ui-primary-color: $classic-primary-color !default; // Lighter\n$ui-secondary-color: $classic-secondary-color !default; // Lightest\n$ui-highlight-color: $classic-highlight-color !default;\n\n// Variables for texts\n$primary-text-color: $white !default;\n$darker-text-color: $ui-primary-color !default;\n$dark-text-color: $ui-base-lighter-color !default;\n$secondary-text-color: $ui-secondary-color !default;\n$highlight-text-color: $ui-highlight-color !default;\n$action-button-color: $ui-base-lighter-color !default;\n// For texts on inverted backgrounds\n$inverted-text-color: $ui-base-color !default;\n$lighter-text-color: $ui-base-lighter-color !default;\n$light-text-color: $ui-primary-color !default;\n\n// Language codes that uses CJK fonts\n$cjk-langs: ja, ko, zh-CN, zh-HK, zh-TW;\n\n// Variables for components\n$media-modal-media-max-width: 100%;\n// put margins on top and bottom of image to avoid the screen covered by image.\n$media-modal-media-max-height: 80%;\n\n$no-gap-breakpoint: 415px;\n\n$font-sans-serif: sans-serif !default;\n$font-display: sans-serif !default;\n$font-monospace: monospace !default;\n\n// Avatar border size (8% default, 100% for rounded avatars)\n$ui-avatar-border-size: 8%;\n\n// More variables\n$dismiss-overlay-width: 4rem;\n",".no-list {\n list-style: none;\n\n li {\n display: inline-block;\n margin: 0 5px;\n }\n}\n\n.recovery-codes {\n list-style: none;\n margin: 0 auto;\n\n li {\n font-size: 125%;\n line-height: 1.5;\n letter-spacing: 1px;\n }\n}\n",".modal-layout {\n background: $ui-base-color url('data:image/svg+xml;utf8,') repeat-x bottom fixed;\n display: flex;\n flex-direction: column;\n height: 100vh;\n padding: 0;\n}\n\n.modal-layout__mastodon {\n display: flex;\n flex: 1;\n flex-direction: column;\n justify-content: flex-end;\n\n > * {\n flex: 1;\n max-height: 235px;\n }\n}\n\n@media screen and (max-width: 600px) {\n .account-header {\n margin-top: 0;\n }\n}\n",".public-layout {\n .footer {\n text-align: left;\n padding-top: 20px;\n padding-bottom: 60px;\n font-size: 12px;\n color: lighten($ui-base-color, 34%);\n\n @media screen and (max-width: $no-gap-breakpoint) {\n padding-left: 20px;\n padding-right: 20px;\n }\n\n .grid {\n display: grid;\n grid-gap: 10px;\n grid-template-columns: 1fr 1fr 2fr 1fr 1fr;\n\n .column-0 {\n grid-column: 1;\n grid-row: 1;\n min-width: 0;\n }\n\n .column-1 {\n grid-column: 2;\n grid-row: 1;\n min-width: 0;\n }\n\n .column-2 {\n grid-column: 3;\n grid-row: 1;\n min-width: 0;\n text-align: center;\n\n h4 a {\n color: lighten($ui-base-color, 34%);\n }\n }\n\n .column-3 {\n grid-column: 4;\n grid-row: 1;\n min-width: 0;\n }\n\n .column-4 {\n grid-column: 5;\n grid-row: 1;\n min-width: 0;\n }\n\n @media screen and (max-width: 690px) {\n grid-template-columns: 1fr 2fr 1fr;\n\n .column-0,\n .column-1 {\n grid-column: 1;\n }\n\n .column-1 {\n grid-row: 2;\n }\n\n .column-2 {\n grid-column: 2;\n }\n\n .column-3,\n .column-4 {\n grid-column: 3;\n }\n\n .column-4 {\n grid-row: 2;\n }\n }\n\n @media screen and (max-width: 600px) {\n .column-1 {\n display: block;\n }\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n .column-0,\n .column-1,\n .column-3,\n .column-4 {\n display: none;\n }\n }\n }\n\n h4 {\n text-transform: uppercase;\n font-weight: 700;\n margin-bottom: 8px;\n color: $darker-text-color;\n\n a {\n color: inherit;\n text-decoration: none;\n }\n }\n\n ul a {\n text-decoration: none;\n color: lighten($ui-base-color, 34%);\n\n &:hover,\n &:active,\n &:focus {\n text-decoration: underline;\n }\n }\n\n .brand {\n svg {\n display: block;\n height: 36px;\n width: auto;\n margin: 0 auto;\n fill: lighten($ui-base-color, 34%);\n }\n\n &:hover,\n &:focus,\n &:active {\n svg {\n fill: lighten($ui-base-color, 38%);\n }\n }\n }\n }\n}\n",".compact-header {\n h1 {\n font-size: 24px;\n line-height: 28px;\n color: $darker-text-color;\n font-weight: 500;\n margin-bottom: 20px;\n padding: 0 10px;\n word-wrap: break-word;\n\n @media screen and (max-width: 740px) {\n text-align: center;\n padding: 20px 10px 0;\n }\n\n a {\n color: inherit;\n text-decoration: none;\n }\n\n small {\n font-weight: 400;\n color: $secondary-text-color;\n }\n\n img {\n display: inline-block;\n margin-bottom: -5px;\n margin-right: 15px;\n width: 36px;\n height: 36px;\n }\n }\n}\n",".hero-widget {\n margin-bottom: 10px;\n box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);\n\n &__img {\n width: 100%;\n position: relative;\n overflow: hidden;\n border-radius: 4px 4px 0 0;\n background: $base-shadow-color;\n\n img {\n object-fit: cover;\n display: block;\n width: 100%;\n height: 100%;\n margin: 0;\n border-radius: 4px 4px 0 0;\n }\n }\n\n &__text {\n background: $ui-base-color;\n padding: 20px;\n border-radius: 0 0 4px 4px;\n font-size: 15px;\n color: $darker-text-color;\n line-height: 20px;\n word-wrap: break-word;\n font-weight: 400;\n\n .emojione {\n width: 20px;\n height: 20px;\n margin: -3px 0 0;\n }\n\n p {\n margin-bottom: 20px;\n\n &:last-child {\n margin-bottom: 0;\n }\n }\n\n em {\n display: inline;\n margin: 0;\n padding: 0;\n font-weight: 700;\n background: transparent;\n font-family: inherit;\n font-size: inherit;\n line-height: inherit;\n color: lighten($darker-text-color, 10%);\n }\n\n a {\n color: $secondary-text-color;\n text-decoration: none;\n\n &:hover {\n text-decoration: underline;\n }\n }\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n display: none;\n }\n}\n\n.endorsements-widget {\n margin-bottom: 10px;\n padding-bottom: 10px;\n\n h4 {\n padding: 10px;\n text-transform: uppercase;\n font-weight: 700;\n font-size: 13px;\n color: $darker-text-color;\n }\n\n .account {\n padding: 10px 0;\n\n &:last-child {\n border-bottom: 0;\n }\n\n .account__display-name {\n display: flex;\n align-items: center;\n }\n\n .account__avatar {\n width: 44px;\n height: 44px;\n background-size: 44px 44px;\n }\n }\n\n .trends__item {\n padding: 10px;\n }\n}\n\n.trends-widget {\n h4 {\n color: $darker-text-color;\n }\n}\n\n.box-widget {\n padding: 20px;\n border-radius: 4px;\n background: $ui-base-color;\n box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);\n}\n\n.placeholder-widget {\n padding: 16px;\n border-radius: 4px;\n border: 2px dashed $dark-text-color;\n text-align: center;\n color: $darker-text-color;\n margin-bottom: 10px;\n}\n\n.contact-widget {\n min-height: 100%;\n font-size: 15px;\n color: $darker-text-color;\n line-height: 20px;\n word-wrap: break-word;\n font-weight: 400;\n padding: 0;\n\n h4 {\n padding: 10px;\n text-transform: uppercase;\n font-weight: 700;\n font-size: 13px;\n color: $darker-text-color;\n }\n\n .account {\n border-bottom: 0;\n padding: 10px 0;\n padding-top: 5px;\n }\n\n & > a {\n display: inline-block;\n padding: 10px;\n padding-top: 0;\n color: $darker-text-color;\n text-decoration: none;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n\n &:hover,\n &:focus,\n &:active {\n text-decoration: underline;\n }\n }\n}\n\n.moved-account-widget {\n padding: 15px;\n padding-bottom: 20px;\n border-radius: 4px;\n background: $ui-base-color;\n box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);\n color: $secondary-text-color;\n font-weight: 400;\n margin-bottom: 10px;\n\n strong,\n a {\n font-weight: 500;\n\n @each $lang in $cjk-langs {\n &:lang(#{$lang}) {\n font-weight: 700;\n }\n }\n }\n\n a {\n color: inherit;\n text-decoration: underline;\n\n &.mention {\n text-decoration: none;\n\n span {\n text-decoration: none;\n }\n\n &:focus,\n &:hover,\n &:active {\n text-decoration: none;\n\n span {\n text-decoration: underline;\n }\n }\n }\n }\n\n &__message {\n margin-bottom: 15px;\n\n .fa {\n margin-right: 5px;\n color: $darker-text-color;\n }\n }\n\n &__card {\n .detailed-status__display-avatar {\n position: relative;\n cursor: pointer;\n }\n\n .detailed-status__display-name {\n margin-bottom: 0;\n text-decoration: none;\n\n span {\n font-weight: 400;\n }\n }\n }\n}\n\n.memoriam-widget {\n padding: 20px;\n border-radius: 4px;\n background: $base-shadow-color;\n box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);\n font-size: 14px;\n color: $darker-text-color;\n margin-bottom: 10px;\n}\n\n.page-header {\n background: lighten($ui-base-color, 8%);\n box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);\n border-radius: 4px;\n padding: 60px 15px;\n text-align: center;\n margin: 10px 0;\n\n h1 {\n color: $primary-text-color;\n font-size: 36px;\n line-height: 1.1;\n font-weight: 700;\n margin-bottom: 10px;\n }\n\n p {\n font-size: 15px;\n color: $darker-text-color;\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n margin-top: 0;\n background: lighten($ui-base-color, 4%);\n\n h1 {\n font-size: 24px;\n }\n }\n}\n\n.directory {\n background: $ui-base-color;\n border-radius: 4px;\n box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);\n\n &__tag {\n box-sizing: border-box;\n margin-bottom: 10px;\n\n & > a,\n & > div {\n display: flex;\n align-items: center;\n justify-content: space-between;\n background: $ui-base-color;\n border-radius: 4px;\n padding: 15px;\n text-decoration: none;\n color: inherit;\n box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);\n }\n\n & > a {\n &:hover,\n &:active,\n &:focus {\n background: lighten($ui-base-color, 8%);\n }\n }\n\n &.active > a {\n background: $ui-highlight-color;\n cursor: default;\n }\n\n &.disabled > div {\n opacity: 0.5;\n cursor: default;\n }\n\n h4 {\n flex: 1 1 auto;\n font-size: 18px;\n font-weight: 700;\n color: $primary-text-color;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n\n .fa {\n color: $darker-text-color;\n }\n\n small {\n display: block;\n font-weight: 400;\n font-size: 15px;\n margin-top: 8px;\n color: $darker-text-color;\n }\n }\n\n &.active h4 {\n &,\n .fa,\n small {\n color: $primary-text-color;\n }\n }\n\n .avatar-stack {\n flex: 0 0 auto;\n width: (36px + 4px) * 3;\n }\n\n &.active .avatar-stack .account__avatar {\n border-color: $ui-highlight-color;\n }\n }\n}\n\n.avatar-stack {\n display: flex;\n justify-content: flex-end;\n\n .account__avatar {\n flex: 0 0 auto;\n width: 36px;\n height: 36px;\n border-radius: 50%;\n position: relative;\n margin-left: -10px;\n background: darken($ui-base-color, 8%);\n border: 2px solid $ui-base-color;\n\n &:nth-child(1) {\n z-index: 1;\n }\n\n &:nth-child(2) {\n z-index: 2;\n }\n\n &:nth-child(3) {\n z-index: 3;\n }\n }\n}\n\n.accounts-table {\n width: 100%;\n\n .account {\n padding: 0;\n border: 0;\n }\n\n strong {\n font-weight: 700;\n }\n\n thead th {\n text-align: center;\n text-transform: uppercase;\n color: $darker-text-color;\n font-weight: 700;\n padding: 10px;\n\n &:first-child {\n text-align: left;\n }\n }\n\n tbody td {\n padding: 15px 0;\n vertical-align: middle;\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n }\n\n tbody tr:last-child td {\n border-bottom: 0;\n }\n\n &__count {\n width: 120px;\n text-align: center;\n font-size: 15px;\n font-weight: 500;\n color: $primary-text-color;\n\n small {\n display: block;\n color: $darker-text-color;\n font-weight: 400;\n font-size: 14px;\n }\n }\n\n &__comment {\n width: 50%;\n vertical-align: initial !important;\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n tbody td.optional {\n display: none;\n }\n }\n}\n\n.moved-account-widget,\n.memoriam-widget,\n.box-widget,\n.contact-widget,\n.landing-page__information.contact-widget,\n.directory,\n.page-header {\n @media screen and (max-width: $no-gap-breakpoint) {\n margin-bottom: 0;\n box-shadow: none;\n border-radius: 0;\n }\n}\n\n$maximum-width: 1235px;\n$fluid-breakpoint: $maximum-width + 20px;\n\n.statuses-grid {\n min-height: 600px;\n\n @media screen and (max-width: 640px) {\n width: 100% !important; // Masonry layout is unnecessary at this width\n }\n\n &__item {\n width: (960px - 20px) / 3;\n\n @media screen and (max-width: $fluid-breakpoint) {\n width: (940px - 20px) / 3;\n }\n\n @media screen and (max-width: 640px) {\n width: 100%;\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n width: 100vw;\n }\n }\n\n .detailed-status {\n border-radius: 4px;\n\n @media screen and (max-width: $no-gap-breakpoint) {\n border-top: 1px solid lighten($ui-base-color, 16%);\n }\n\n &.compact {\n .detailed-status__meta {\n margin-top: 15px;\n }\n\n .status__content {\n font-size: 15px;\n line-height: 20px;\n\n .emojione {\n width: 20px;\n height: 20px;\n margin: -3px 0 0;\n }\n\n .status__content__spoiler-link {\n line-height: 20px;\n margin: 0;\n }\n }\n\n .media-gallery,\n .status-card,\n .video-player {\n margin-top: 15px;\n }\n }\n }\n}\n\n.notice-widget {\n margin-bottom: 10px;\n color: $darker-text-color;\n\n p {\n margin-bottom: 10px;\n\n &:last-child {\n margin-bottom: 0;\n }\n }\n\n a {\n font-size: 14px;\n line-height: 20px;\n }\n}\n\n.notice-widget,\n.placeholder-widget {\n a {\n text-decoration: none;\n font-weight: 500;\n color: $ui-highlight-color;\n\n &:hover,\n &:focus,\n &:active {\n text-decoration: underline;\n }\n }\n}\n\n.table-of-contents {\n background: darken($ui-base-color, 4%);\n min-height: 100%;\n font-size: 14px;\n border-radius: 4px;\n\n li a {\n display: block;\n font-weight: 500;\n padding: 15px;\n overflow: hidden;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n text-decoration: none;\n color: $primary-text-color;\n border-bottom: 1px solid lighten($ui-base-color, 4%);\n\n &:hover,\n &:focus,\n &:active {\n text-decoration: underline;\n }\n }\n\n li:last-child a {\n border-bottom: 0;\n }\n\n li ul {\n padding-left: 20px;\n border-bottom: 1px solid lighten($ui-base-color, 4%);\n }\n}\n","$no-columns-breakpoint: 600px;\n\ncode {\n font-family: $font-monospace, monospace;\n font-weight: 400;\n}\n\n.form-container {\n max-width: 400px;\n padding: 20px;\n margin: 0 auto;\n}\n\n.simple_form {\n .input {\n margin-bottom: 15px;\n overflow: hidden;\n\n &.hidden {\n margin: 0;\n }\n\n &.radio_buttons {\n .radio {\n margin-bottom: 15px;\n\n &:last-child {\n margin-bottom: 0;\n }\n }\n\n .radio > label {\n position: relative;\n padding-left: 28px;\n\n input {\n position: absolute;\n top: -2px;\n left: 0;\n }\n }\n }\n\n &.boolean {\n position: relative;\n margin-bottom: 0;\n\n .label_input > label {\n font-family: inherit;\n font-size: 14px;\n padding-top: 5px;\n color: $primary-text-color;\n display: block;\n width: auto;\n }\n\n .label_input,\n .hint {\n padding-left: 28px;\n }\n\n .label_input__wrapper {\n position: static;\n }\n\n label.checkbox {\n position: absolute;\n top: 2px;\n left: 0;\n }\n\n label a {\n color: $highlight-text-color;\n text-decoration: underline;\n\n &:hover,\n &:active,\n &:focus {\n text-decoration: none;\n }\n }\n\n .recommended {\n position: absolute;\n margin: 0 4px;\n margin-top: -2px;\n }\n }\n }\n\n .row {\n display: flex;\n margin: 0 -5px;\n\n .input {\n box-sizing: border-box;\n flex: 1 1 auto;\n width: 50%;\n padding: 0 5px;\n }\n }\n\n .hint {\n color: $darker-text-color;\n\n a {\n color: $highlight-text-color;\n }\n\n code {\n border-radius: 3px;\n padding: 0.2em 0.4em;\n background: darken($ui-base-color, 12%);\n }\n }\n\n span.hint {\n display: block;\n font-size: 12px;\n margin-top: 4px;\n }\n\n p.hint {\n margin-bottom: 15px;\n color: $darker-text-color;\n\n &.subtle-hint {\n text-align: center;\n font-size: 12px;\n line-height: 18px;\n margin-top: 15px;\n margin-bottom: 0;\n }\n }\n\n .card {\n margin-bottom: 15px;\n }\n\n strong {\n font-weight: 500;\n\n @each $lang in $cjk-langs {\n &:lang(#{$lang}) {\n font-weight: 700;\n }\n }\n }\n\n .input.with_floating_label {\n .label_input {\n display: flex;\n\n & > label {\n font-family: inherit;\n font-size: 14px;\n color: $primary-text-color;\n font-weight: 500;\n min-width: 150px;\n flex: 0 0 auto;\n }\n\n input,\n select {\n flex: 1 1 auto;\n }\n }\n\n &.select .hint {\n margin-top: 6px;\n margin-left: 150px;\n }\n }\n\n .input.with_label {\n .label_input > label {\n font-family: inherit;\n font-size: 14px;\n color: $primary-text-color;\n display: block;\n margin-bottom: 8px;\n word-wrap: break-word;\n font-weight: 500;\n }\n\n .hint {\n margin-top: 6px;\n }\n\n ul {\n flex: 390px;\n }\n }\n\n .input.with_block_label {\n max-width: none;\n\n & > label {\n font-family: inherit;\n font-size: 16px;\n color: $primary-text-color;\n display: block;\n font-weight: 500;\n padding-top: 5px;\n }\n\n .hint {\n margin-bottom: 15px;\n }\n\n ul {\n columns: 2;\n }\n }\n\n .input.datetime .label_input select {\n display: inline-block;\n width: auto;\n flex: 0;\n }\n\n .required abbr {\n text-decoration: none;\n color: lighten($error-value-color, 12%);\n }\n\n .fields-group {\n margin-bottom: 25px;\n\n .input:last-child {\n margin-bottom: 0;\n }\n }\n\n .fields-row {\n display: flex;\n margin: 0 -10px;\n padding-top: 5px;\n margin-bottom: 25px;\n\n .input {\n max-width: none;\n }\n\n &__column {\n box-sizing: border-box;\n padding: 0 10px;\n flex: 1 1 auto;\n min-height: 1px;\n\n &-6 {\n max-width: 50%;\n }\n\n .actions {\n margin-top: 27px;\n }\n }\n\n .fields-group:last-child,\n .fields-row__column.fields-group {\n margin-bottom: 0;\n }\n\n @media screen and (max-width: $no-columns-breakpoint) {\n display: block;\n margin-bottom: 0;\n\n &__column {\n max-width: none;\n }\n\n .fields-group:last-child,\n .fields-row__column.fields-group,\n .fields-row__column {\n margin-bottom: 25px;\n }\n }\n }\n\n .input.radio_buttons .radio label {\n margin-bottom: 5px;\n font-family: inherit;\n font-size: 14px;\n color: $primary-text-color;\n display: block;\n width: auto;\n }\n\n .check_boxes {\n .checkbox {\n label {\n font-family: inherit;\n font-size: 14px;\n color: $primary-text-color;\n display: inline-block;\n width: auto;\n position: relative;\n padding-top: 5px;\n padding-left: 25px;\n flex: 1 1 auto;\n }\n\n input[type=checkbox] {\n position: absolute;\n left: 0;\n top: 5px;\n margin: 0;\n }\n }\n }\n\n .input.static .label_input__wrapper {\n font-size: 16px;\n padding: 10px;\n border: 1px solid $dark-text-color;\n border-radius: 4px;\n }\n\n input[type=text],\n input[type=number],\n input[type=email],\n input[type=password],\n textarea {\n box-sizing: border-box;\n font-size: 16px;\n color: $primary-text-color;\n display: block;\n width: 100%;\n outline: 0;\n font-family: inherit;\n resize: vertical;\n background: darken($ui-base-color, 10%);\n border: 1px solid darken($ui-base-color, 14%);\n border-radius: 4px;\n padding: 10px;\n\n &::placeholder {\n color: lighten($darker-text-color, 4%);\n }\n\n &:invalid {\n box-shadow: none;\n }\n\n &:focus:invalid:not(:placeholder-shown) {\n border-color: lighten($error-red, 12%);\n }\n\n &:required:valid {\n border-color: $valid-value-color;\n }\n\n &:hover {\n border-color: darken($ui-base-color, 20%);\n }\n\n &:active,\n &:focus {\n border-color: $highlight-text-color;\n background: darken($ui-base-color, 8%);\n }\n }\n\n .input.field_with_errors {\n label {\n color: lighten($error-red, 12%);\n }\n\n input[type=text],\n input[type=number],\n input[type=email],\n input[type=password],\n textarea,\n select {\n border-color: lighten($error-red, 12%);\n }\n\n .error {\n display: block;\n font-weight: 500;\n color: lighten($error-red, 12%);\n margin-top: 4px;\n }\n }\n\n .input.disabled {\n opacity: 0.5;\n }\n\n .actions {\n margin-top: 30px;\n display: flex;\n\n &.actions--top {\n margin-top: 0;\n margin-bottom: 30px;\n }\n }\n\n button,\n .button,\n .block-button {\n display: block;\n width: 100%;\n border: 0;\n border-radius: 4px;\n background: $ui-highlight-color;\n color: $primary-text-color;\n font-size: 18px;\n line-height: inherit;\n height: auto;\n padding: 10px;\n text-transform: uppercase;\n text-decoration: none;\n text-align: center;\n box-sizing: border-box;\n cursor: pointer;\n font-weight: 500;\n outline: 0;\n margin-bottom: 10px;\n margin-right: 10px;\n\n &:last-child {\n margin-right: 0;\n }\n\n &:hover {\n background-color: lighten($ui-highlight-color, 5%);\n }\n\n &:active,\n &:focus {\n background-color: darken($ui-highlight-color, 5%);\n }\n\n &:disabled:hover {\n background-color: $ui-primary-color;\n }\n\n &.negative {\n background: $error-value-color;\n\n &:hover {\n background-color: lighten($error-value-color, 5%);\n }\n\n &:active,\n &:focus {\n background-color: darken($error-value-color, 5%);\n }\n }\n }\n\n select {\n appearance: none;\n box-sizing: border-box;\n font-size: 16px;\n color: $primary-text-color;\n display: block;\n width: 100%;\n outline: 0;\n font-family: inherit;\n resize: vertical;\n background: darken($ui-base-color, 10%) url(\"data:image/svg+xml;utf8,\") no-repeat right 8px center / auto 16px;\n border: 1px solid darken($ui-base-color, 14%);\n border-radius: 4px;\n padding-left: 10px;\n padding-right: 30px;\n height: 41px;\n }\n\n h4 {\n margin-bottom: 15px !important;\n }\n\n .label_input {\n &__wrapper {\n position: relative;\n }\n\n &__append {\n position: absolute;\n right: 3px;\n top: 1px;\n padding: 10px;\n padding-bottom: 9px;\n font-size: 16px;\n color: $dark-text-color;\n font-family: inherit;\n pointer-events: none;\n cursor: default;\n max-width: 140px;\n white-space: nowrap;\n overflow: hidden;\n\n &::after {\n content: '';\n display: block;\n position: absolute;\n top: 0;\n right: 0;\n bottom: 1px;\n width: 5px;\n background-image: linear-gradient(to right, rgba(darken($ui-base-color, 10%), 0), darken($ui-base-color, 10%));\n }\n }\n }\n\n &__overlay-area {\n position: relative;\n\n &__blurred form {\n filter: blur(2px);\n }\n\n &__overlay {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n display: flex;\n justify-content: center;\n align-items: center;\n background: rgba($ui-base-color, 0.65);\n border-radius: 4px;\n margin-left: -4px;\n margin-top: -4px;\n padding: 4px;\n\n &__content {\n text-align: center;\n\n &.rich-formatting {\n &,\n p {\n color: $primary-text-color;\n }\n }\n }\n }\n }\n}\n\n.block-icon {\n display: block;\n margin: 0 auto;\n margin-bottom: 10px;\n font-size: 24px;\n}\n\n.flash-message {\n background: lighten($ui-base-color, 8%);\n color: $darker-text-color;\n border-radius: 4px;\n padding: 15px 10px;\n margin-bottom: 30px;\n text-align: center;\n\n &.notice {\n border: 1px solid rgba($valid-value-color, 0.5);\n background: rgba($valid-value-color, 0.25);\n color: $valid-value-color;\n }\n\n &.alert {\n border: 1px solid rgba($error-value-color, 0.5);\n background: rgba($error-value-color, 0.25);\n color: $error-value-color;\n }\n\n a {\n display: inline-block;\n color: $darker-text-color;\n text-decoration: none;\n\n &:hover {\n color: $primary-text-color;\n text-decoration: underline;\n }\n }\n\n p {\n margin-bottom: 15px;\n }\n\n .oauth-code {\n outline: 0;\n box-sizing: border-box;\n display: block;\n width: 100%;\n border: none;\n padding: 10px;\n font-family: $font-monospace, monospace;\n background: $ui-base-color;\n color: $primary-text-color;\n font-size: 14px;\n margin: 0;\n\n &::-moz-focus-inner {\n border: 0;\n }\n\n &::-moz-focus-inner,\n &:focus,\n &:active {\n outline: 0 !important;\n }\n\n &:focus {\n background: lighten($ui-base-color, 4%);\n }\n }\n\n strong {\n font-weight: 500;\n\n @each $lang in $cjk-langs {\n &:lang(#{$lang}) {\n font-weight: 700;\n }\n }\n }\n\n @media screen and (max-width: 740px) and (min-width: 441px) {\n margin-top: 40px;\n }\n}\n\n.form-footer {\n margin-top: 30px;\n text-align: center;\n\n a {\n color: $darker-text-color;\n text-decoration: none;\n\n &:hover {\n text-decoration: underline;\n }\n }\n}\n\n.quick-nav {\n list-style: none;\n margin-bottom: 25px;\n font-size: 14px;\n\n li {\n display: inline-block;\n margin-right: 10px;\n }\n\n a {\n color: $highlight-text-color;\n text-transform: uppercase;\n text-decoration: none;\n font-weight: 700;\n\n &:hover,\n &:focus,\n &:active {\n color: lighten($highlight-text-color, 8%);\n }\n }\n}\n\n.oauth-prompt,\n.follow-prompt {\n margin-bottom: 30px;\n color: $darker-text-color;\n\n h2 {\n font-size: 16px;\n margin-bottom: 30px;\n text-align: center;\n }\n\n strong {\n color: $secondary-text-color;\n font-weight: 500;\n\n @each $lang in $cjk-langs {\n &:lang(#{$lang}) {\n font-weight: 700;\n }\n }\n }\n\n @media screen and (max-width: 740px) and (min-width: 441px) {\n margin-top: 40px;\n }\n}\n\n.qr-wrapper {\n display: flex;\n flex-wrap: wrap;\n align-items: flex-start;\n}\n\n.qr-code {\n flex: 0 0 auto;\n background: $simple-background-color;\n padding: 4px;\n margin: 0 10px 20px 0;\n box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);\n display: inline-block;\n\n svg {\n display: block;\n margin: 0;\n }\n}\n\n.qr-alternative {\n margin-bottom: 20px;\n color: $secondary-text-color;\n flex: 150px;\n\n samp {\n display: block;\n font-size: 14px;\n }\n}\n\n.table-form {\n p {\n margin-bottom: 15px;\n\n strong {\n font-weight: 500;\n\n @each $lang in $cjk-langs {\n &:lang(#{$lang}) {\n font-weight: 700;\n }\n }\n }\n }\n}\n\n.simple_form,\n.table-form {\n .warning {\n box-sizing: border-box;\n background: rgba($error-value-color, 0.5);\n color: $primary-text-color;\n text-shadow: 1px 1px 0 rgba($base-shadow-color, 0.3);\n box-shadow: 0 2px 6px rgba($base-shadow-color, 0.4);\n border-radius: 4px;\n padding: 10px;\n margin-bottom: 15px;\n\n a {\n color: $primary-text-color;\n text-decoration: underline;\n\n &:hover,\n &:focus,\n &:active {\n text-decoration: none;\n }\n }\n\n strong {\n font-weight: 600;\n display: block;\n margin-bottom: 5px;\n\n @each $lang in $cjk-langs {\n &:lang(#{$lang}) {\n font-weight: 700;\n }\n }\n\n .fa {\n font-weight: 400;\n }\n }\n }\n}\n\n.action-pagination {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n\n .actions,\n .pagination {\n flex: 1 1 auto;\n }\n\n .actions {\n padding: 30px 0;\n padding-right: 20px;\n flex: 0 0 auto;\n }\n}\n\n.post-follow-actions {\n text-align: center;\n color: $darker-text-color;\n\n div {\n margin-bottom: 4px;\n }\n}\n\n.alternative-login {\n margin-top: 20px;\n margin-bottom: 20px;\n\n h4 {\n font-size: 16px;\n color: $primary-text-color;\n text-align: center;\n margin-bottom: 20px;\n border: 0;\n padding: 0;\n }\n\n .button {\n display: block;\n }\n}\n\n.scope-danger {\n color: $warning-red;\n}\n\n.form_admin_settings_site_short_description,\n.form_admin_settings_site_description,\n.form_admin_settings_site_extended_description,\n.form_admin_settings_site_terms,\n.form_admin_settings_custom_css,\n.form_admin_settings_closed_registrations_message {\n textarea {\n font-family: $font-monospace, monospace;\n }\n}\n\n.input-copy {\n background: darken($ui-base-color, 10%);\n border: 1px solid darken($ui-base-color, 14%);\n border-radius: 4px;\n display: flex;\n align-items: center;\n padding-right: 4px;\n position: relative;\n top: 1px;\n transition: border-color 300ms linear;\n\n &__wrapper {\n flex: 1 1 auto;\n }\n\n input[type=text] {\n background: transparent;\n border: 0;\n padding: 10px;\n font-size: 14px;\n font-family: $font-monospace, monospace;\n }\n\n button {\n flex: 0 0 auto;\n margin: 4px;\n text-transform: none;\n font-weight: 400;\n font-size: 14px;\n padding: 7px 18px;\n padding-bottom: 6px;\n width: auto;\n transition: background 300ms linear;\n }\n\n &.copied {\n border-color: $valid-value-color;\n transition: none;\n\n button {\n background: $valid-value-color;\n transition: none;\n }\n }\n}\n\n.connection-prompt {\n margin-bottom: 25px;\n\n .fa-link {\n background-color: darken($ui-base-color, 4%);\n border-radius: 100%;\n font-size: 24px;\n padding: 10px;\n }\n\n &__column {\n align-items: center;\n display: flex;\n flex: 1;\n flex-direction: column;\n flex-shrink: 1;\n max-width: 50%;\n\n &-sep {\n align-self: center;\n flex-grow: 0;\n overflow: visible;\n position: relative;\n z-index: 1;\n }\n\n p {\n word-break: break-word;\n }\n }\n\n .account__avatar {\n margin-bottom: 20px;\n }\n\n &__connection {\n background-color: lighten($ui-base-color, 8%);\n box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);\n border-radius: 4px;\n padding: 25px 10px;\n position: relative;\n text-align: center;\n\n &::after {\n background-color: darken($ui-base-color, 4%);\n content: '';\n display: block;\n height: 100%;\n left: 50%;\n position: absolute;\n top: 0;\n width: 1px;\n }\n }\n\n &__row {\n align-items: flex-start;\n display: flex;\n flex-direction: row;\n }\n}\n",".card {\n & > a {\n display: block;\n text-decoration: none;\n color: inherit;\n box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);\n\n @media screen and (max-width: $no-gap-breakpoint) {\n box-shadow: none;\n }\n\n &:hover,\n &:active,\n &:focus {\n .card__bar {\n background: lighten($ui-base-color, 8%);\n }\n }\n }\n\n &__img {\n height: 130px;\n position: relative;\n background: darken($ui-base-color, 12%);\n border-radius: 4px 4px 0 0;\n\n img {\n display: block;\n width: 100%;\n height: 100%;\n margin: 0;\n object-fit: cover;\n border-radius: 4px 4px 0 0;\n }\n\n @media screen and (max-width: 600px) {\n height: 200px;\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n display: none;\n }\n }\n\n &__bar {\n position: relative;\n padding: 15px;\n display: flex;\n justify-content: flex-start;\n align-items: center;\n background: lighten($ui-base-color, 4%);\n border-radius: 0 0 4px 4px;\n\n @media screen and (max-width: $no-gap-breakpoint) {\n border-radius: 0;\n }\n\n .avatar {\n flex: 0 0 auto;\n width: 48px;\n height: 48px;\n @include avatar-size(48px);\n padding-top: 2px;\n\n img {\n width: 100%;\n height: 100%;\n display: block;\n margin: 0;\n border-radius: 4px;\n @include avatar-radius();\n background: darken($ui-base-color, 8%);\n object-fit: cover;\n }\n }\n\n .display-name {\n margin-left: 15px;\n text-align: left;\n\n strong {\n font-size: 15px;\n color: $primary-text-color;\n font-weight: 500;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n span {\n display: block;\n font-size: 14px;\n color: $darker-text-color;\n font-weight: 400;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n }\n }\n}\n\n.pagination {\n padding: 30px 0;\n text-align: center;\n overflow: hidden;\n\n a,\n .current,\n .newer,\n .older,\n .page,\n .gap {\n font-size: 14px;\n color: $primary-text-color;\n font-weight: 500;\n display: inline-block;\n padding: 6px 10px;\n text-decoration: none;\n }\n\n .current {\n background: $simple-background-color;\n border-radius: 100px;\n color: $inverted-text-color;\n cursor: default;\n margin: 0 10px;\n }\n\n .gap {\n cursor: default;\n }\n\n .older,\n .newer {\n text-transform: uppercase;\n color: $secondary-text-color;\n }\n\n .older {\n float: left;\n padding-left: 0;\n\n .fa {\n display: inline-block;\n margin-right: 5px;\n }\n }\n\n .newer {\n float: right;\n padding-right: 0;\n\n .fa {\n display: inline-block;\n margin-left: 5px;\n }\n }\n\n .disabled {\n cursor: default;\n color: lighten($inverted-text-color, 10%);\n }\n\n @media screen and (max-width: 700px) {\n padding: 30px 20px;\n\n .page {\n display: none;\n }\n\n .newer,\n .older {\n display: inline-block;\n }\n }\n}\n\n.nothing-here {\n background: $ui-base-color;\n box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);\n color: $light-text-color;\n font-size: 14px;\n font-weight: 500;\n text-align: center;\n display: flex;\n justify-content: center;\n align-items: center;\n cursor: default;\n border-radius: 4px;\n padding: 20px;\n min-height: 30vh;\n\n &--under-tabs {\n border-radius: 0 0 4px 4px;\n }\n\n &--flexible {\n box-sizing: border-box;\n min-height: 100%;\n }\n}\n\n.account-role,\n.simple_form .recommended {\n display: inline-block;\n padding: 4px 6px;\n cursor: default;\n border-radius: 3px;\n font-size: 12px;\n line-height: 12px;\n font-weight: 500;\n color: $ui-secondary-color;\n background-color: rgba($ui-secondary-color, 0.1);\n border: 1px solid rgba($ui-secondary-color, 0.5);\n\n &.moderator {\n color: $success-green;\n background-color: rgba($success-green, 0.1);\n border-color: rgba($success-green, 0.5);\n }\n\n &.admin {\n color: lighten($error-red, 12%);\n background-color: rgba(lighten($error-red, 12%), 0.1);\n border-color: rgba(lighten($error-red, 12%), 0.5);\n }\n}\n\n.account__header__fields {\n max-width: 100vw;\n padding: 0;\n margin: 15px -15px -15px;\n border: 0 none;\n border-top: 1px solid lighten($ui-base-color, 12%);\n border-bottom: 1px solid lighten($ui-base-color, 12%);\n font-size: 14px;\n line-height: 20px;\n\n dl {\n display: flex;\n border-bottom: 1px solid lighten($ui-base-color, 12%);\n }\n\n dt,\n dd {\n box-sizing: border-box;\n padding: 14px;\n text-align: center;\n max-height: 48px;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n }\n\n dt {\n font-weight: 500;\n width: 120px;\n flex: 0 0 auto;\n color: $secondary-text-color;\n background: rgba(darken($ui-base-color, 8%), 0.5);\n }\n\n dd {\n flex: 1 1 auto;\n color: $darker-text-color;\n }\n\n a {\n color: $highlight-text-color;\n text-decoration: none;\n\n &:hover,\n &:focus,\n &:active {\n text-decoration: underline;\n }\n }\n\n .verified {\n border: 1px solid rgba($valid-value-color, 0.5);\n background: rgba($valid-value-color, 0.25);\n\n a {\n color: $valid-value-color;\n font-weight: 500;\n }\n\n &__mark {\n color: $valid-value-color;\n }\n }\n\n dl:last-child {\n border-bottom: 0;\n }\n}\n\n.directory__tag .trends__item__current {\n width: auto;\n}\n\n.pending-account {\n &__header {\n color: $darker-text-color;\n\n a {\n color: $ui-secondary-color;\n text-decoration: none;\n\n &:hover,\n &:active,\n &:focus {\n text-decoration: underline;\n }\n }\n\n strong {\n color: $primary-text-color;\n font-weight: 700;\n }\n }\n\n &__body {\n margin-top: 10px;\n }\n}\n",".activity-stream {\n box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);\n border-radius: 4px;\n overflow: hidden;\n margin-bottom: 10px;\n\n @media screen and (max-width: $no-gap-breakpoint) {\n margin-bottom: 0;\n border-radius: 0;\n box-shadow: none;\n }\n\n &--headless {\n border-radius: 0;\n margin: 0;\n box-shadow: none;\n\n .detailed-status,\n .status {\n border-radius: 0 !important;\n }\n }\n\n div[data-component] {\n width: 100%;\n }\n\n .entry {\n background: $ui-base-color;\n\n .detailed-status,\n .status,\n .load-more {\n animation: none;\n }\n\n &:last-child {\n .detailed-status,\n .status,\n .load-more {\n border-bottom: 0;\n border-radius: 0 0 4px 4px;\n }\n }\n\n &:first-child {\n .detailed-status,\n .status,\n .load-more {\n border-radius: 4px 4px 0 0;\n }\n\n &:last-child {\n .detailed-status,\n .status,\n .load-more {\n border-radius: 4px;\n }\n }\n }\n\n @media screen and (max-width: 740px) {\n .detailed-status,\n .status,\n .load-more {\n border-radius: 0 !important;\n }\n }\n }\n\n &--highlighted .entry {\n background: lighten($ui-base-color, 8%);\n }\n}\n\n.button.logo-button {\n flex: 0 auto;\n font-size: 14px;\n background: $ui-highlight-color;\n color: $primary-text-color;\n text-transform: none;\n line-height: 36px;\n height: auto;\n padding: 3px 15px;\n border: 0;\n\n svg {\n width: 20px;\n height: auto;\n vertical-align: middle;\n margin-right: 5px;\n fill: $primary-text-color;\n }\n\n &:active,\n &:focus,\n &:hover {\n background: lighten($ui-highlight-color, 10%);\n }\n\n &:disabled,\n &.disabled {\n &:active,\n &:focus,\n &:hover {\n background: $ui-primary-color;\n }\n }\n\n &.button--destructive {\n &:active,\n &:focus,\n &:hover {\n background: $error-red;\n }\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n svg {\n display: none;\n }\n }\n}\n\n.embed,\n.public-layout {\n .detailed-status {\n padding: 15px;\n }\n\n .status {\n padding: 15px 15px 15px (48px + 15px * 2);\n min-height: 48px + 2px;\n\n &__avatar {\n left: 15px;\n top: 17px;\n }\n\n &__content {\n padding-top: 5px;\n }\n\n &__prepend {\n padding: 8px 0;\n padding-bottom: 2px;\n margin: initial;\n margin-left: 48px + 15px * 2;\n padding-top: 15px;\n }\n\n &__prepend-icon-wrapper {\n position: absolute;\n margin: initial;\n float: initial;\n width: auto;\n left: -32px;\n }\n\n .media-gallery,\n &__action-bar,\n .video-player {\n margin-top: 10px;\n }\n }\n}\n\n// Styling from upstream's WebUI, as public pages use the same layout\n.embed,\n.public-layout {\n .status {\n .status__info {\n font-size: 15px;\n display: initial;\n }\n\n .status__relative-time {\n color: $dark-text-color;\n float: right;\n font-size: 14px;\n width: auto;\n margin: initial;\n padding: initial;\n }\n\n .status__info .status__display-name {\n display: block;\n max-width: 100%;\n padding: 6px 0;\n padding-right: 25px;\n margin: initial;\n\n .display-name strong {\n display: inline;\n }\n }\n\n .status__avatar {\n height: 48px;\n position: absolute;\n width: 48px;\n margin: initial;\n }\n }\n}\n\n.rtl {\n .embed,\n .public-layout {\n .status {\n padding-left: 10px;\n padding-right: 68px;\n\n .status__info .status__display-name {\n padding-left: 25px;\n padding-right: 0;\n }\n\n .status__relative-time {\n float: left;\n }\n }\n }\n}\n\n.status__content__read-more-button {\n display: block;\n font-size: 15px;\n line-height: 20px;\n color: lighten($ui-highlight-color, 8%);\n border: 0;\n background: transparent;\n padding: 0;\n padding-top: 8px;\n text-decoration: none;\n\n &:hover,\n &:active {\n text-decoration: underline;\n }\n}\n",".app-body {\n -webkit-overflow-scrolling: touch;\n -ms-overflow-style: -ms-autohiding-scrollbar;\n}\n\n.animated-number {\n display: inline-flex;\n flex-direction: column;\n align-items: stretch;\n overflow: hidden;\n position: relative;\n}\n\n.link-button {\n display: block;\n font-size: 15px;\n line-height: 20px;\n color: $ui-highlight-color;\n border: 0;\n background: transparent;\n padding: 0;\n cursor: pointer;\n\n &:hover,\n &:active {\n text-decoration: underline;\n }\n\n &:disabled {\n color: $ui-primary-color;\n cursor: default;\n }\n}\n\n.button {\n background-color: darken($ui-highlight-color, 3%);\n border: 10px none;\n border-radius: 4px;\n box-sizing: border-box;\n color: $primary-text-color;\n cursor: pointer;\n display: inline-block;\n font-family: inherit;\n font-size: 14px;\n font-weight: 500;\n height: 36px;\n letter-spacing: 0;\n line-height: 36px;\n overflow: hidden;\n padding: 0 16px;\n position: relative;\n text-align: center;\n text-transform: uppercase;\n text-decoration: none;\n text-overflow: ellipsis;\n transition: all 100ms ease-in;\n transition-property: background-color;\n white-space: nowrap;\n width: auto;\n\n &:active,\n &:focus,\n &:hover {\n background-color: lighten($ui-highlight-color, 7%);\n transition: all 200ms ease-out;\n transition-property: background-color;\n }\n\n &--destructive {\n transition: none;\n\n &:active,\n &:focus,\n &:hover {\n background-color: $error-red;\n transition: none;\n }\n }\n\n &:disabled {\n background-color: $ui-primary-color;\n cursor: default;\n }\n\n &.button-primary,\n &.button-alternative,\n &.button-secondary,\n &.button-alternative-2 {\n font-size: 16px;\n line-height: 36px;\n height: auto;\n text-transform: none;\n padding: 4px 16px;\n }\n\n &.button-alternative {\n color: $inverted-text-color;\n background: $ui-primary-color;\n\n &:active,\n &:focus,\n &:hover {\n background-color: lighten($ui-primary-color, 4%);\n }\n }\n\n &.button-alternative-2 {\n background: $ui-base-lighter-color;\n\n &:active,\n &:focus,\n &:hover {\n background-color: lighten($ui-base-lighter-color, 4%);\n }\n }\n\n &.button-secondary {\n font-size: 16px;\n line-height: 36px;\n height: auto;\n color: $darker-text-color;\n text-transform: none;\n background: transparent;\n padding: 3px 15px;\n border-radius: 4px;\n border: 1px solid $ui-primary-color;\n\n &:active,\n &:focus,\n &:hover {\n border-color: lighten($ui-primary-color, 4%);\n color: lighten($darker-text-color, 4%);\n }\n\n &:disabled {\n opacity: 0.5;\n }\n }\n\n &.button--block {\n display: block;\n width: 100%;\n }\n}\n\n.icon-button {\n display: inline-block;\n padding: 0;\n color: $action-button-color;\n border: 0;\n border-radius: 4px;\n background: transparent;\n cursor: pointer;\n transition: all 100ms ease-in;\n transition-property: background-color, color;\n\n &:hover,\n &:active,\n &:focus {\n color: lighten($action-button-color, 7%);\n background-color: rgba($action-button-color, 0.15);\n transition: all 200ms ease-out;\n transition-property: background-color, color;\n }\n\n &:focus {\n background-color: rgba($action-button-color, 0.3);\n }\n\n &.disabled {\n color: darken($action-button-color, 13%);\n background-color: transparent;\n cursor: default;\n }\n\n &.active {\n color: $highlight-text-color;\n }\n\n &::-moz-focus-inner {\n border: 0;\n }\n\n &::-moz-focus-inner,\n &:focus,\n &:active {\n outline: 0 !important;\n }\n\n &.inverted {\n color: $lighter-text-color;\n\n &:hover,\n &:active,\n &:focus {\n color: darken($lighter-text-color, 7%);\n background-color: rgba($lighter-text-color, 0.15);\n }\n\n &:focus {\n background-color: rgba($lighter-text-color, 0.3);\n }\n\n &.disabled {\n color: lighten($lighter-text-color, 7%);\n background-color: transparent;\n }\n\n &.active {\n color: $highlight-text-color;\n\n &.disabled {\n color: lighten($highlight-text-color, 13%);\n }\n }\n }\n\n &.overlayed {\n box-sizing: content-box;\n background: rgba($base-overlay-background, 0.6);\n color: rgba($primary-text-color, 0.7);\n border-radius: 4px;\n padding: 2px;\n\n &:hover {\n background: rgba($base-overlay-background, 0.9);\n }\n }\n}\n\n.text-icon-button {\n color: $lighter-text-color;\n border: 0;\n border-radius: 4px;\n background: transparent;\n cursor: pointer;\n font-weight: 600;\n font-size: 11px;\n padding: 0 3px;\n line-height: 27px;\n outline: 0;\n transition: all 100ms ease-in;\n transition-property: background-color, color;\n\n &:hover,\n &:active,\n &:focus {\n color: darken($lighter-text-color, 7%);\n background-color: rgba($lighter-text-color, 0.15);\n transition: all 200ms ease-out;\n transition-property: background-color, color;\n }\n\n &:focus {\n background-color: rgba($lighter-text-color, 0.3);\n }\n\n &.disabled {\n color: lighten($lighter-text-color, 20%);\n background-color: transparent;\n cursor: default;\n }\n\n &.active {\n color: $highlight-text-color;\n }\n\n &::-moz-focus-inner {\n border: 0;\n }\n\n &::-moz-focus-inner,\n &:focus,\n &:active {\n outline: 0 !important;\n }\n}\n\n.dropdown-menu {\n position: absolute;\n transform-origin: 50% 0;\n}\n\n.invisible {\n font-size: 0;\n line-height: 0;\n display: inline-block;\n width: 0;\n height: 0;\n position: absolute;\n\n img,\n svg {\n margin: 0 !important;\n border: 0 !important;\n padding: 0 !important;\n width: 0 !important;\n height: 0 !important;\n }\n}\n\n.ellipsis {\n &::after {\n content: \"…\";\n }\n}\n\n.notification__favourite-icon-wrapper {\n left: 0;\n position: absolute;\n\n .fa.star-icon {\n color: $gold-star;\n }\n}\n\n.star-icon.active {\n color: $gold-star;\n}\n\n.bookmark-icon.active {\n color: $red-bookmark;\n}\n\n.no-reduce-motion .icon-button.star-icon {\n &.activate {\n & > .fa-star {\n animation: spring-rotate-in 1s linear;\n }\n }\n\n &.deactivate {\n & > .fa-star {\n animation: spring-rotate-out 1s linear;\n }\n }\n}\n\n.notification__display-name {\n color: inherit;\n font-weight: 500;\n text-decoration: none;\n\n &:hover {\n color: $primary-text-color;\n text-decoration: underline;\n }\n}\n\n.display-name {\n display: block;\n max-width: 100%;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n\n a {\n color: inherit;\n text-decoration: inherit;\n }\n\n strong {\n height: 18px;\n font-size: 16px;\n font-weight: 500;\n line-height: 18px;\n text-overflow: ellipsis;\n overflow: hidden;\n white-space: nowrap;\n }\n\n span {\n display: block;\n height: 18px;\n font-size: 15px;\n line-height: 18px;\n text-overflow: ellipsis;\n overflow: hidden;\n white-space: nowrap;\n }\n\n > a:hover {\n strong {\n text-decoration: underline;\n }\n }\n\n &.inline {\n padding: 0;\n height: 18px;\n font-size: 15px;\n line-height: 18px;\n text-overflow: ellipsis;\n white-space: nowrap;\n overflow: hidden;\n\n strong {\n display: inline;\n height: auto;\n font-size: inherit;\n line-height: inherit;\n }\n\n span {\n display: inline;\n height: auto;\n font-size: inherit;\n line-height: inherit;\n }\n }\n}\n\n.display-name__html {\n font-weight: 500;\n}\n\n.display-name__account {\n font-size: 14px;\n}\n\n.image-loader {\n position: relative;\n width: 100%;\n height: 100%;\n display: flex;\n align-items: center;\n justify-content: center;\n flex-direction: column;\n\n .image-loader__preview-canvas {\n max-width: $media-modal-media-max-width;\n max-height: $media-modal-media-max-height;\n background: url('~images/void.png') repeat;\n object-fit: contain;\n }\n\n .loading-bar {\n position: relative;\n }\n\n &.image-loader--amorphous .image-loader__preview-canvas {\n display: none;\n }\n}\n\n.zoomable-image {\n position: relative;\n width: 100%;\n height: 100%;\n display: flex;\n align-items: center;\n justify-content: center;\n\n img {\n max-width: $media-modal-media-max-width;\n max-height: $media-modal-media-max-height;\n width: auto;\n height: auto;\n object-fit: contain;\n }\n}\n\n.dropdown {\n display: inline-block;\n}\n\n.dropdown__content {\n display: none;\n position: absolute;\n}\n\n.dropdown-menu__separator {\n border-bottom: 1px solid darken($ui-secondary-color, 8%);\n margin: 5px 7px 6px;\n height: 0;\n}\n\n.dropdown-menu {\n background: $ui-secondary-color;\n padding: 4px 0;\n border-radius: 4px;\n box-shadow: 2px 4px 15px rgba($base-shadow-color, 0.4);\n\n ul {\n list-style: none;\n }\n}\n\n.dropdown-menu__arrow {\n position: absolute;\n width: 0;\n height: 0;\n border: 0 solid transparent;\n\n &.left {\n right: -5px;\n margin-top: -5px;\n border-width: 5px 0 5px 5px;\n border-left-color: $ui-secondary-color;\n }\n\n &.top {\n bottom: -5px;\n margin-left: -7px;\n border-width: 5px 7px 0;\n border-top-color: $ui-secondary-color;\n }\n\n &.bottom {\n top: -5px;\n margin-left: -7px;\n border-width: 0 7px 5px;\n border-bottom-color: $ui-secondary-color;\n }\n\n &.right {\n left: -5px;\n margin-top: -5px;\n border-width: 5px 5px 5px 0;\n border-right-color: $ui-secondary-color;\n }\n}\n\n.dropdown-menu__item {\n a {\n font-size: 13px;\n line-height: 18px;\n display: block;\n padding: 4px 14px;\n box-sizing: border-box;\n text-decoration: none;\n background: $ui-secondary-color;\n color: $inverted-text-color;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n\n &:focus,\n &:hover,\n &:active {\n background: $ui-highlight-color;\n color: $secondary-text-color;\n outline: 0;\n }\n }\n}\n\n.dropdown--active .dropdown__content {\n display: block;\n line-height: 18px;\n max-width: 311px;\n right: 0;\n text-align: left;\n z-index: 9999;\n\n & > ul {\n list-style: none;\n background: $ui-secondary-color;\n padding: 4px 0;\n border-radius: 4px;\n box-shadow: 0 0 15px rgba($base-shadow-color, 0.4);\n min-width: 140px;\n position: relative;\n }\n\n &.dropdown__right {\n right: 0;\n }\n\n &.dropdown__left {\n & > ul {\n left: -98px;\n }\n }\n\n & > ul > li > a {\n font-size: 13px;\n line-height: 18px;\n display: block;\n padding: 4px 14px;\n box-sizing: border-box;\n text-decoration: none;\n background: $ui-secondary-color;\n color: $inverted-text-color;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n\n &:focus {\n outline: 0;\n }\n\n &:hover {\n background: $ui-highlight-color;\n color: $secondary-text-color;\n }\n }\n}\n\n.dropdown__icon {\n vertical-align: middle;\n}\n\n.static-content {\n padding: 10px;\n padding-top: 20px;\n color: $dark-text-color;\n\n h1 {\n font-size: 16px;\n font-weight: 500;\n margin-bottom: 40px;\n text-align: center;\n }\n\n p {\n font-size: 13px;\n margin-bottom: 20px;\n }\n}\n\n.column,\n.drawer {\n flex: 1 1 100%;\n overflow: hidden;\n}\n\n@media screen and (min-width: 631px) {\n .columns-area {\n padding: 0;\n }\n\n .column,\n .drawer {\n flex: 0 0 auto;\n padding: 10px;\n padding-left: 5px;\n padding-right: 5px;\n\n &:first-child {\n padding-left: 10px;\n }\n\n &:last-child {\n padding-right: 10px;\n }\n }\n\n .columns-area > div {\n .column,\n .drawer {\n padding-left: 5px;\n padding-right: 5px;\n }\n }\n}\n\n.tabs-bar {\n box-sizing: border-box;\n display: flex;\n background: lighten($ui-base-color, 8%);\n flex: 0 0 auto;\n overflow-y: auto;\n}\n\n.tabs-bar__link {\n display: block;\n flex: 1 1 auto;\n padding: 15px 10px;\n padding-bottom: 13px;\n color: $primary-text-color;\n text-decoration: none;\n text-align: center;\n font-size: 14px;\n font-weight: 500;\n border-bottom: 2px solid lighten($ui-base-color, 8%);\n transition: all 50ms linear;\n transition-property: border-bottom, background, color;\n\n .fa {\n font-weight: 400;\n font-size: 16px;\n }\n\n &:hover,\n &:focus,\n &:active {\n @include multi-columns('screen and (min-width: 631px)') {\n background: lighten($ui-base-color, 14%);\n border-bottom-color: lighten($ui-base-color, 14%);\n }\n }\n\n &.active {\n border-bottom: 2px solid $ui-highlight-color;\n color: $highlight-text-color;\n }\n\n span {\n margin-left: 5px;\n display: none;\n }\n\n span.icon {\n margin-left: 0;\n display: inline;\n }\n}\n\n.icon-with-badge {\n position: relative;\n\n &__badge {\n position: absolute;\n left: 9px;\n top: -13px;\n background: $ui-highlight-color;\n border: 2px solid lighten($ui-base-color, 8%);\n padding: 1px 6px;\n border-radius: 6px;\n font-size: 10px;\n font-weight: 500;\n line-height: 14px;\n color: $primary-text-color;\n }\n}\n\n.column-link--transparent .icon-with-badge__badge {\n border-color: darken($ui-base-color, 8%);\n}\n\n.scrollable {\n overflow-y: scroll;\n overflow-x: hidden;\n flex: 1 1 auto;\n -webkit-overflow-scrolling: touch;\n\n &.optionally-scrollable {\n overflow-y: auto;\n }\n\n @supports(display: grid) { // hack to fix Chrome <57\n contain: strict;\n }\n\n &--flex {\n display: flex;\n flex-direction: column;\n }\n\n &__append {\n flex: 1 1 auto;\n position: relative;\n min-height: 120px;\n }\n}\n\n.scrollable.fullscreen {\n @supports(display: grid) { // hack to fix Chrome <57\n contain: none;\n }\n}\n\n.react-toggle {\n display: inline-block;\n position: relative;\n cursor: pointer;\n background-color: transparent;\n border: 0;\n padding: 0;\n user-select: none;\n -webkit-tap-highlight-color: rgba($base-overlay-background, 0);\n -webkit-tap-highlight-color: transparent;\n}\n\n.react-toggle-screenreader-only {\n border: 0;\n clip: rect(0 0 0 0);\n height: 1px;\n margin: -1px;\n overflow: hidden;\n padding: 0;\n position: absolute;\n width: 1px;\n}\n\n.react-toggle--disabled {\n cursor: not-allowed;\n opacity: 0.5;\n transition: opacity 0.25s;\n}\n\n.react-toggle-track {\n width: 50px;\n height: 24px;\n padding: 0;\n border-radius: 30px;\n background-color: $ui-base-color;\n transition: background-color 0.2s ease;\n}\n\n.react-toggle:hover:not(.react-toggle--disabled) .react-toggle-track {\n background-color: darken($ui-base-color, 10%);\n}\n\n.react-toggle--checked .react-toggle-track {\n background-color: $ui-highlight-color;\n}\n\n.react-toggle--checked:hover:not(.react-toggle--disabled) .react-toggle-track {\n background-color: lighten($ui-highlight-color, 10%);\n}\n\n.react-toggle-track-check {\n position: absolute;\n width: 14px;\n height: 10px;\n top: 0;\n bottom: 0;\n margin-top: auto;\n margin-bottom: auto;\n line-height: 0;\n left: 8px;\n opacity: 0;\n transition: opacity 0.25s ease;\n}\n\n.react-toggle--checked .react-toggle-track-check {\n opacity: 1;\n transition: opacity 0.25s ease;\n}\n\n.react-toggle-track-x {\n position: absolute;\n width: 10px;\n height: 10px;\n top: 0;\n bottom: 0;\n margin-top: auto;\n margin-bottom: auto;\n line-height: 0;\n right: 10px;\n opacity: 1;\n transition: opacity 0.25s ease;\n}\n\n.react-toggle--checked .react-toggle-track-x {\n opacity: 0;\n}\n\n.react-toggle-thumb {\n position: absolute;\n top: 1px;\n left: 1px;\n width: 22px;\n height: 22px;\n border: 1px solid $ui-base-color;\n border-radius: 50%;\n background-color: darken($simple-background-color, 2%);\n box-sizing: border-box;\n transition: all 0.25s ease;\n transition-property: border-color, left;\n}\n\n.react-toggle--checked .react-toggle-thumb {\n left: 27px;\n border-color: $ui-highlight-color;\n}\n\n.getting-started__wrapper,\n.getting_started,\n.flex-spacer {\n background: $ui-base-color;\n}\n\n.getting-started__wrapper {\n position: relative;\n overflow-y: auto;\n}\n\n.flex-spacer {\n flex: 1 1 auto;\n}\n\n.getting-started {\n background: $ui-base-color;\n flex: 1 0 auto;\n\n p {\n color: $secondary-text-color;\n }\n\n a {\n color: $dark-text-color;\n }\n\n &__panel {\n height: min-content;\n }\n\n &__panel,\n &__footer {\n padding: 10px;\n padding-top: 20px;\n flex: 0 1 auto;\n\n ul {\n margin-bottom: 10px;\n }\n\n ul li {\n display: inline;\n }\n\n p {\n color: $dark-text-color;\n font-size: 13px;\n\n a {\n color: $dark-text-color;\n text-decoration: underline;\n }\n }\n\n a {\n text-decoration: none;\n color: $darker-text-color;\n\n &:hover,\n &:focus,\n &:active {\n text-decoration: underline;\n }\n }\n }\n\n &__trends {\n flex: 0 1 auto;\n opacity: 1;\n animation: fade 150ms linear;\n margin-top: 10px;\n\n h4 {\n font-size: 12px;\n text-transform: uppercase;\n color: $darker-text-color;\n padding: 10px;\n font-weight: 500;\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n }\n\n @media screen and (max-height: 810px) {\n .trends__item:nth-child(3) {\n display: none;\n }\n }\n\n @media screen and (max-height: 720px) {\n .trends__item:nth-child(2) {\n display: none;\n }\n }\n\n @media screen and (max-height: 670px) {\n display: none;\n }\n\n .trends__item {\n border-bottom: 0;\n padding: 10px;\n\n &__current {\n color: $darker-text-color;\n }\n }\n }\n}\n\n.column-link__badge {\n display: inline-block;\n border-radius: 4px;\n font-size: 12px;\n line-height: 19px;\n font-weight: 500;\n background: $ui-base-color;\n padding: 4px 8px;\n margin: -6px 10px;\n}\n\n.keyboard-shortcuts {\n padding: 8px 0 0;\n overflow: hidden;\n\n thead {\n position: absolute;\n left: -9999px;\n }\n\n td {\n padding: 0 10px 8px;\n }\n\n kbd {\n display: inline-block;\n padding: 3px 5px;\n background-color: lighten($ui-base-color, 8%);\n border: 1px solid darken($ui-base-color, 4%);\n }\n}\n\n.setting-text {\n color: $darker-text-color;\n background: transparent;\n border: none;\n border-bottom: 2px solid $ui-primary-color;\n box-sizing: border-box;\n display: block;\n font-family: inherit;\n margin-bottom: 10px;\n padding: 7px 0;\n width: 100%;\n\n &:focus,\n &:active {\n color: $primary-text-color;\n border-bottom-color: $ui-highlight-color;\n }\n\n @include limited-single-column('screen and (max-width: 600px)') {\n font-size: 16px;\n }\n\n &.light {\n color: $inverted-text-color;\n border-bottom: 2px solid lighten($ui-base-color, 27%);\n\n &:focus,\n &:active {\n color: $inverted-text-color;\n border-bottom-color: $ui-highlight-color;\n }\n }\n}\n\n.no-reduce-motion button.icon-button i.fa-retweet {\n background-position: 0 0;\n height: 19px;\n transition: background-position 0.9s steps(10);\n transition-duration: 0s;\n vertical-align: middle;\n width: 22px;\n\n &::before {\n display: none !important;\n }\n}\n\n.no-reduce-motion button.icon-button.active i.fa-retweet {\n transition-duration: 0.9s;\n background-position: 0 100%;\n}\n\n.reduce-motion button.icon-button i.fa-retweet {\n color: $action-button-color;\n transition: color 100ms ease-in;\n}\n\n.reduce-motion button.icon-button.active i.fa-retweet {\n color: $highlight-text-color;\n}\n\n.reduce-motion button.icon-button.disabled i.fa-retweet {\n color: darken($action-button-color, 13%);\n}\n\n.load-more {\n display: block;\n color: $dark-text-color;\n background-color: transparent;\n border: 0;\n font-size: inherit;\n text-align: center;\n line-height: inherit;\n margin: 0;\n padding: 15px;\n box-sizing: border-box;\n width: 100%;\n clear: both;\n text-decoration: none;\n\n &:hover {\n background: lighten($ui-base-color, 2%);\n }\n}\n\n.load-gap {\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n}\n\n.missing-indicator {\n padding-top: 20px + 48px;\n}\n\n.scrollable > div > :first-child .notification__dismiss-overlay > .wrappy {\n border-top: 1px solid $ui-base-color;\n}\n\n.notification__dismiss-overlay {\n overflow: hidden;\n position: absolute;\n top: 0;\n right: 0;\n bottom: -1px;\n padding-left: 15px; // space for the box shadow to be visible\n\n z-index: 999;\n align-items: center;\n justify-content: flex-end;\n cursor: pointer;\n\n display: flex;\n\n .wrappy {\n width: $dismiss-overlay-width;\n align-self: stretch;\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n background: lighten($ui-base-color, 8%);\n border-left: 1px solid lighten($ui-base-color, 20%);\n box-shadow: 0 0 5px black;\n border-bottom: 1px solid $ui-base-color;\n }\n\n .ckbox {\n border: 2px solid $ui-primary-color;\n border-radius: 2px;\n width: 30px;\n height: 30px;\n font-size: 20px;\n color: $darker-text-color;\n text-shadow: 0 0 5px black;\n display: flex;\n justify-content: center;\n align-items: center;\n }\n\n &:focus {\n outline: 0 !important;\n\n .ckbox {\n box-shadow: 0 0 1px 1px $ui-highlight-color;\n }\n }\n}\n\n.text-btn {\n display: inline-block;\n padding: 0;\n font-family: inherit;\n font-size: inherit;\n color: inherit;\n border: 0;\n background: transparent;\n cursor: pointer;\n}\n\n.loading-indicator {\n color: $dark-text-color;\n font-size: 12px;\n font-weight: 400;\n text-transform: uppercase;\n overflow: visible;\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n\n span {\n display: block;\n float: left;\n margin-left: 50%;\n transform: translateX(-50%);\n margin: 82px 0 0 50%;\n white-space: nowrap;\n }\n}\n\n.loading-indicator__figure {\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n width: 42px;\n height: 42px;\n box-sizing: border-box;\n background-color: transparent;\n border: 0 solid lighten($ui-base-color, 26%);\n border-width: 6px;\n border-radius: 50%;\n}\n\n.no-reduce-motion .loading-indicator span {\n animation: loader-label 1.15s infinite cubic-bezier(0.215, 0.610, 0.355, 1.000);\n}\n\n.no-reduce-motion .loading-indicator__figure {\n animation: loader-figure 1.15s infinite cubic-bezier(0.215, 0.610, 0.355, 1.000);\n}\n\n@keyframes spring-rotate-in {\n 0% {\n transform: rotate(0deg);\n }\n\n 30% {\n transform: rotate(-484.8deg);\n }\n\n 60% {\n transform: rotate(-316.7deg);\n }\n\n 90% {\n transform: rotate(-375deg);\n }\n\n 100% {\n transform: rotate(-360deg);\n }\n}\n\n@keyframes spring-rotate-out {\n 0% {\n transform: rotate(-360deg);\n }\n\n 30% {\n transform: rotate(124.8deg);\n }\n\n 60% {\n transform: rotate(-43.27deg);\n }\n\n 90% {\n transform: rotate(15deg);\n }\n\n 100% {\n transform: rotate(0deg);\n }\n}\n\n@keyframes loader-figure {\n 0% {\n width: 0;\n height: 0;\n background-color: lighten($ui-base-color, 26%);\n }\n\n 29% {\n background-color: lighten($ui-base-color, 26%);\n }\n\n 30% {\n width: 42px;\n height: 42px;\n background-color: transparent;\n border-width: 21px;\n opacity: 1;\n }\n\n 100% {\n width: 42px;\n height: 42px;\n border-width: 0;\n opacity: 0;\n background-color: transparent;\n }\n}\n\n@keyframes loader-label {\n 0% { opacity: 0.25; }\n 30% { opacity: 1; }\n 100% { opacity: 0.25; }\n}\n\n.spoiler-button {\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n position: absolute;\n z-index: 100;\n\n &--minified {\n display: flex;\n left: 4px;\n top: 4px;\n width: auto;\n height: auto;\n align-items: center;\n }\n\n &--click-thru {\n pointer-events: none;\n }\n\n &--hidden {\n display: none;\n }\n\n &__overlay {\n display: block;\n background: transparent;\n width: 100%;\n height: 100%;\n border: 0;\n\n &__label {\n display: inline-block;\n background: rgba($base-overlay-background, 0.5);\n border-radius: 8px;\n padding: 8px 12px;\n color: $primary-text-color;\n font-weight: 500;\n font-size: 14px;\n }\n\n &:hover,\n &:focus,\n &:active {\n .spoiler-button__overlay__label {\n background: rgba($base-overlay-background, 0.8);\n }\n }\n\n &:disabled {\n .spoiler-button__overlay__label {\n background: rgba($base-overlay-background, 0.5);\n }\n }\n }\n}\n\n.setting-toggle {\n display: block;\n line-height: 24px;\n}\n\n.setting-toggle__label,\n.setting-radio__label,\n.setting-meta__label {\n color: $darker-text-color;\n display: inline-block;\n margin-bottom: 14px;\n margin-left: 8px;\n vertical-align: middle;\n}\n\n.setting-radio {\n display: block;\n line-height: 18px;\n}\n\n.setting-radio__label {\n margin-bottom: 0;\n}\n\n.column-settings__row legend {\n color: $darker-text-color;\n cursor: default;\n display: block;\n font-weight: 500;\n margin-top: 10px;\n}\n\n.setting-radio__input {\n vertical-align: middle;\n}\n\n.setting-meta__label {\n float: right;\n}\n\n@keyframes heartbeat {\n from {\n transform: scale(1);\n transform-origin: center center;\n animation-timing-function: ease-out;\n }\n\n 10% {\n transform: scale(0.91);\n animation-timing-function: ease-in;\n }\n\n 17% {\n transform: scale(0.98);\n animation-timing-function: ease-out;\n }\n\n 33% {\n transform: scale(0.87);\n animation-timing-function: ease-in;\n }\n\n 45% {\n transform: scale(1);\n animation-timing-function: ease-out;\n }\n}\n\n.pulse-loading {\n animation: heartbeat 1.5s ease-in-out infinite both;\n}\n\n.upload-area {\n align-items: center;\n background: rgba($base-overlay-background, 0.8);\n display: flex;\n height: 100%;\n justify-content: center;\n left: 0;\n opacity: 0;\n position: absolute;\n top: 0;\n visibility: hidden;\n width: 100%;\n z-index: 2000;\n\n * {\n pointer-events: none;\n }\n}\n\n.upload-area__drop {\n width: 320px;\n height: 160px;\n display: flex;\n box-sizing: border-box;\n position: relative;\n padding: 8px;\n}\n\n.upload-area__background {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: -1;\n border-radius: 4px;\n background: $ui-base-color;\n box-shadow: 0 0 5px rgba($base-shadow-color, 0.2);\n}\n\n.upload-area__content {\n flex: 1;\n display: flex;\n align-items: center;\n justify-content: center;\n color: $secondary-text-color;\n font-size: 18px;\n font-weight: 500;\n border: 2px dashed $ui-base-lighter-color;\n border-radius: 4px;\n}\n\n.dropdown--active .emoji-button img {\n opacity: 1;\n filter: none;\n}\n\n.loading-bar {\n background-color: $ui-highlight-color;\n height: 3px;\n position: absolute;\n top: 0;\n left: 0;\n z-index: 9999;\n}\n\n.icon-badge-wrapper {\n position: relative;\n}\n\n.icon-badge {\n position: absolute;\n display: block;\n right: -.25em;\n top: -.25em;\n background-color: $ui-highlight-color;\n border-radius: 50%;\n font-size: 75%;\n width: 1em;\n height: 1em;\n}\n\n.conversation {\n display: flex;\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n padding: 5px;\n padding-bottom: 0;\n\n &:focus {\n background: lighten($ui-base-color, 2%);\n outline: 0;\n }\n\n &__avatar {\n flex: 0 0 auto;\n padding: 10px;\n padding-top: 12px;\n position: relative;\n cursor: pointer;\n }\n\n &__unread {\n display: inline-block;\n background: $highlight-text-color;\n border-radius: 50%;\n width: 0.625rem;\n height: 0.625rem;\n margin: -.1ex .15em .1ex;\n }\n\n &__content {\n flex: 1 1 auto;\n padding: 10px 5px;\n padding-right: 15px;\n overflow: hidden;\n\n &__info {\n overflow: hidden;\n display: flex;\n flex-direction: row-reverse;\n justify-content: space-between;\n }\n\n &__relative-time {\n font-size: 15px;\n color: $darker-text-color;\n padding-left: 15px;\n }\n\n &__names {\n color: $darker-text-color;\n font-size: 15px;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n margin-bottom: 4px;\n flex-basis: 90px;\n flex-grow: 1;\n\n a {\n color: $primary-text-color;\n text-decoration: none;\n\n &:hover,\n &:focus,\n &:active {\n text-decoration: underline;\n }\n }\n }\n\n .status__content {\n margin: 0;\n }\n }\n\n &--unread {\n background: lighten($ui-base-color, 2%);\n\n &:focus {\n background: lighten($ui-base-color, 4%);\n }\n\n .conversation__content__info {\n font-weight: 700;\n }\n\n .conversation__content__relative-time {\n color: $primary-text-color;\n }\n }\n}\n\n.ui .flash-message {\n margin-top: 10px;\n margin-left: auto;\n margin-right: auto;\n margin-bottom: 0;\n min-width: 75%;\n}\n\n::-webkit-scrollbar-thumb {\n border-radius: 0;\n}\n\nnoscript {\n text-align: center;\n\n img {\n width: 200px;\n opacity: 0.5;\n animation: flicker 4s infinite;\n }\n\n div {\n font-size: 14px;\n margin: 30px auto;\n color: $secondary-text-color;\n max-width: 400px;\n\n a {\n color: $highlight-text-color;\n text-decoration: underline;\n\n &:hover {\n text-decoration: none;\n }\n }\n\n a {\n word-break: break-word;\n }\n }\n}\n\n@keyframes flicker {\n 0% { opacity: 1; }\n 30% { opacity: 0.75; }\n 100% { opacity: 1; }\n}\n\n@import 'boost';\n@import 'accounts';\n@import 'domains';\n@import 'status';\n@import 'modal';\n@import 'composer';\n@import 'columns';\n@import 'regeneration_indicator';\n@import 'directory';\n@import 'search';\n@import 'emoji';\n@import 'doodle';\n@import 'drawer';\n@import 'media';\n@import 'sensitive';\n@import 'lists';\n@import 'emoji_picker';\n@import 'local_settings';\n@import 'error_boundary';\n@import 'single_column';\n@import 'announcements';\n","button.icon-button i.fa-retweet {\n background-image: url(\"data:image/svg+xml;utf8,\");\n\n &:hover {\n background-image: url(\"data:image/svg+xml;utf8,\");\n }\n}\n\n// Disabled variant\nbutton.icon-button.disabled i.fa-retweet {\n &, &:hover {\n background-image: url(\"data:image/svg+xml;utf8,\");\n }\n}\n\n// Disabled variant for use with DMs\n.status-direct button.icon-button.disabled i.fa-retweet {\n &, &:hover {\n background-image: url(\"data:image/svg+xml;utf8,\");\n }\n}\n",".account {\n padding: 10px;\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n color: inherit;\n text-decoration: none;\n\n .account__display-name {\n flex: 1 1 auto;\n display: block;\n color: $darker-text-color;\n overflow: hidden;\n text-decoration: none;\n font-size: 14px;\n }\n\n &.small {\n border: none;\n padding: 0;\n\n & > .account__avatar-wrapper { margin: 0 8px 0 0 }\n\n & > .display-name {\n height: 24px;\n line-height: 24px;\n }\n }\n}\n\n.account__wrapper {\n display: flex;\n}\n\n.account__avatar-wrapper {\n float: left;\n margin-left: 12px;\n margin-right: 12px;\n}\n\n.account__avatar {\n @include avatar-radius();\n position: relative;\n cursor: pointer;\n\n &-inline {\n display: inline-block;\n vertical-align: middle;\n margin-right: 5px;\n }\n\n &-composite {\n @include avatar-radius;\n overflow: hidden;\n position: relative;\n\n & div {\n @include avatar-radius;\n float: left;\n position: relative;\n box-sizing: border-box;\n }\n\n &__label {\n display: block;\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n color: $primary-text-color;\n text-shadow: 1px 1px 2px $base-shadow-color;\n font-weight: 700;\n font-size: 15px;\n }\n }\n}\n\n.account__avatar-overlay {\n position: relative;\n @include avatar-size(48px);\n\n &-base {\n @include avatar-radius();\n @include avatar-size(36px);\n }\n\n &-overlay {\n @include avatar-radius();\n @include avatar-size(24px);\n\n position: absolute;\n bottom: 0;\n right: 0;\n z-index: 1;\n }\n}\n\n.account__relationship {\n height: 18px;\n padding: 10px;\n white-space: nowrap;\n}\n\n.account__header__wrapper {\n flex: 0 0 auto;\n background: lighten($ui-base-color, 4%);\n}\n\n.account__disclaimer {\n padding: 10px;\n color: $dark-text-color;\n\n strong {\n font-weight: 500;\n\n @each $lang in $cjk-langs {\n &:lang(#{$lang}) {\n font-weight: 700;\n }\n }\n }\n\n a {\n font-weight: 500;\n color: inherit;\n text-decoration: underline;\n\n &:hover,\n &:focus,\n &:active {\n text-decoration: none;\n }\n }\n}\n\n.account__action-bar {\n border-top: 1px solid lighten($ui-base-color, 8%);\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n line-height: 36px;\n overflow: hidden;\n flex: 0 0 auto;\n display: flex;\n}\n\n.account__action-bar-links {\n display: flex;\n flex: 1 1 auto;\n line-height: 18px;\n text-align: center;\n}\n\n.account__action-bar__tab {\n text-decoration: none;\n overflow: hidden;\n flex: 0 1 100%;\n border-left: 1px solid lighten($ui-base-color, 8%);\n padding: 10px 0;\n border-bottom: 4px solid transparent;\n\n &:first-child {\n border-left: 0;\n }\n\n &.active {\n border-bottom: 4px solid $ui-highlight-color;\n }\n\n & > span {\n display: block;\n text-transform: uppercase;\n font-size: 11px;\n color: $darker-text-color;\n }\n\n strong {\n display: block;\n font-size: 15px;\n font-weight: 500;\n color: $primary-text-color;\n\n @each $lang in $cjk-langs {\n &:lang(#{$lang}) {\n font-weight: 700;\n }\n }\n }\n\n abbr {\n color: $highlight-text-color;\n }\n}\n\n.account-authorize {\n padding: 14px 10px;\n\n .detailed-status__display-name {\n display: block;\n margin-bottom: 15px;\n overflow: hidden;\n }\n}\n\n.account-authorize__avatar {\n float: left;\n margin-right: 10px;\n}\n\n.notification__message {\n margin-left: 42px;\n padding: 8px 0 0 26px;\n cursor: default;\n color: $darker-text-color;\n font-size: 15px;\n position: relative;\n\n .fa {\n color: $highlight-text-color;\n }\n\n > span {\n display: block;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n}\n\n.account--panel {\n background: lighten($ui-base-color, 4%);\n border-top: 1px solid lighten($ui-base-color, 8%);\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n display: flex;\n flex-direction: row;\n padding: 10px 0;\n}\n\n.account--panel__button,\n.detailed-status__button {\n flex: 1 1 auto;\n text-align: center;\n}\n\n.column-settings__outer {\n background: lighten($ui-base-color, 8%);\n padding: 15px;\n}\n\n.column-settings__section {\n color: $darker-text-color;\n cursor: default;\n display: block;\n font-weight: 500;\n margin-bottom: 10px;\n}\n\n.column-settings__hashtags {\n .column-settings__row {\n margin-bottom: 15px;\n }\n\n .column-select {\n &__control {\n @include search-input();\n\n &::placeholder {\n color: lighten($darker-text-color, 4%);\n }\n\n &::-moz-focus-inner {\n border: 0;\n }\n\n &::-moz-focus-inner,\n &:focus,\n &:active {\n outline: 0 !important;\n }\n\n &:focus {\n background: lighten($ui-base-color, 4%);\n }\n\n @media screen and (max-width: 600px) {\n font-size: 16px;\n }\n }\n\n &__placeholder {\n color: $dark-text-color;\n padding-left: 2px;\n font-size: 12px;\n }\n\n &__value-container {\n padding-left: 6px;\n }\n\n &__multi-value {\n background: lighten($ui-base-color, 8%);\n\n &__remove {\n cursor: pointer;\n\n &:hover,\n &:active,\n &:focus {\n background: lighten($ui-base-color, 12%);\n color: lighten($darker-text-color, 4%);\n }\n }\n }\n\n &__multi-value__label,\n &__input {\n color: $darker-text-color;\n }\n\n &__clear-indicator,\n &__dropdown-indicator {\n cursor: pointer;\n transition: none;\n color: $dark-text-color;\n\n &:hover,\n &:active,\n &:focus {\n color: lighten($dark-text-color, 4%);\n }\n }\n\n &__indicator-separator {\n background-color: lighten($ui-base-color, 8%);\n }\n\n &__menu {\n @include search-popout();\n padding: 0;\n background: $ui-secondary-color;\n }\n\n &__menu-list {\n padding: 6px;\n }\n\n &__option {\n color: $inverted-text-color;\n border-radius: 4px;\n font-size: 14px;\n\n &--is-focused,\n &--is-selected {\n background: darken($ui-secondary-color, 10%);\n }\n }\n }\n}\n\n.column-settings__row {\n .text-btn {\n margin-bottom: 15px;\n }\n}\n\n.relationship-tag {\n color: $primary-text-color;\n margin-bottom: 4px;\n display: block;\n vertical-align: top;\n background-color: $base-overlay-background;\n text-transform: uppercase;\n font-size: 11px;\n font-weight: 500;\n padding: 4px;\n border-radius: 4px;\n opacity: 0.7;\n\n &:hover {\n opacity: 1;\n }\n}\n\n.account-gallery__container {\n display: flex;\n flex-wrap: wrap;\n padding: 4px 2px;\n}\n\n.account-gallery__item {\n border: none;\n box-sizing: border-box;\n display: block;\n position: relative;\n border-radius: 4px;\n overflow: hidden;\n margin: 2px;\n\n &__icons {\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n font-size: 24px;\n }\n}\n\n.notification__filter-bar,\n.account__section-headline {\n background: darken($ui-base-color, 4%);\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n cursor: default;\n display: flex;\n flex-shrink: 0;\n\n button {\n background: darken($ui-base-color, 4%);\n border: 0;\n margin: 0;\n }\n\n button,\n a {\n display: block;\n flex: 1 1 auto;\n color: $darker-text-color;\n padding: 15px 0;\n font-size: 14px;\n font-weight: 500;\n text-align: center;\n text-decoration: none;\n position: relative;\n\n &.active {\n color: $secondary-text-color;\n\n &::before,\n &::after {\n display: block;\n content: \"\";\n position: absolute;\n bottom: 0;\n left: 50%;\n width: 0;\n height: 0;\n transform: translateX(-50%);\n border-style: solid;\n border-width: 0 10px 10px;\n border-color: transparent transparent lighten($ui-base-color, 8%);\n }\n\n &::after {\n bottom: -1px;\n border-color: transparent transparent $ui-base-color;\n }\n }\n }\n\n &.directory__section-headline {\n background: darken($ui-base-color, 2%);\n border-bottom-color: transparent;\n\n a,\n button {\n &.active {\n &::before {\n display: none;\n }\n\n &::after {\n border-color: transparent transparent darken($ui-base-color, 7%);\n }\n }\n }\n }\n}\n\n.account__moved-note {\n padding: 14px 10px;\n padding-bottom: 16px;\n background: lighten($ui-base-color, 4%);\n border-top: 1px solid lighten($ui-base-color, 8%);\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n\n &__message {\n position: relative;\n margin-left: 58px;\n color: $dark-text-color;\n padding: 8px 0;\n padding-top: 0;\n padding-bottom: 4px;\n font-size: 14px;\n\n > span {\n display: block;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n }\n\n &__icon-wrapper {\n left: -26px;\n position: absolute;\n }\n\n .detailed-status__display-avatar {\n position: relative;\n }\n\n .detailed-status__display-name {\n margin-bottom: 0;\n }\n}\n\n.account__header__content {\n color: $darker-text-color;\n font-size: 14px;\n font-weight: 400;\n overflow: hidden;\n word-break: normal;\n word-wrap: break-word;\n\n p {\n margin-bottom: 20px;\n\n &:last-child {\n margin-bottom: 0;\n }\n }\n\n a {\n color: inherit;\n text-decoration: underline;\n\n &:hover {\n text-decoration: none;\n }\n }\n}\n\n.account__header {\n overflow: hidden;\n\n &.inactive {\n opacity: 0.5;\n\n .account__header__image,\n .account__avatar {\n filter: grayscale(100%);\n }\n }\n\n &__info {\n position: absolute;\n top: 10px;\n left: 10px;\n }\n\n &__image {\n overflow: hidden;\n height: 145px;\n position: relative;\n background: darken($ui-base-color, 4%);\n\n img {\n object-fit: cover;\n display: block;\n width: 100%;\n height: 100%;\n margin: 0;\n }\n }\n\n &__bar {\n position: relative;\n background: lighten($ui-base-color, 4%);\n padding: 5px;\n border-bottom: 1px solid lighten($ui-base-color, 12%);\n\n .avatar {\n display: block;\n flex: 0 0 auto;\n width: 94px;\n margin-left: -2px;\n\n .account__avatar {\n background: darken($ui-base-color, 8%);\n border: 2px solid lighten($ui-base-color, 4%);\n }\n }\n }\n\n &__tabs {\n display: flex;\n align-items: flex-start;\n padding: 7px 5px;\n margin-top: -55px;\n\n &__buttons {\n display: flex;\n align-items: center;\n padding-top: 55px;\n overflow: hidden;\n\n .icon-button {\n border: 1px solid lighten($ui-base-color, 12%);\n border-radius: 4px;\n box-sizing: content-box;\n padding: 2px;\n }\n\n .button {\n margin: 0 8px;\n }\n }\n\n &__name {\n padding: 5px;\n\n .account-role {\n vertical-align: top;\n }\n\n .emojione {\n width: 22px;\n height: 22px;\n }\n\n h1 {\n font-size: 16px;\n line-height: 24px;\n color: $primary-text-color;\n font-weight: 500;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n\n small {\n display: block;\n font-size: 14px;\n color: $darker-text-color;\n font-weight: 400;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n }\n }\n\n .spacer {\n flex: 1 1 auto;\n }\n }\n\n &__bio {\n overflow: hidden;\n margin: 0 -5px;\n\n .account__header__content {\n padding: 20px 15px;\n padding-bottom: 5px;\n color: $primary-text-color;\n }\n\n .account__header__fields {\n margin: 0;\n border-top: 1px solid lighten($ui-base-color, 12%);\n\n a {\n color: lighten($ui-highlight-color, 8%);\n }\n\n dl:first-child .verified {\n border-radius: 0 4px 0 0;\n }\n\n .verified a {\n color: $valid-value-color;\n }\n }\n }\n\n &__extra {\n margin-top: 4px;\n\n &__links {\n font-size: 14px;\n color: $darker-text-color;\n padding: 10px 0;\n\n a {\n display: inline-block;\n color: $darker-text-color;\n text-decoration: none;\n padding: 5px 10px;\n font-weight: 500;\n\n strong {\n font-weight: 700;\n color: $primary-text-color;\n }\n }\n }\n }\n}\n",".domain {\n padding: 10px;\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n\n .domain__domain-name {\n flex: 1 1 auto;\n display: block;\n color: $primary-text-color;\n text-decoration: none;\n font-size: 14px;\n font-weight: 500;\n }\n}\n\n.domain__wrapper {\n display: flex;\n}\n\n.domain_buttons {\n height: 18px;\n padding: 10px;\n white-space: nowrap;\n}\n","@keyframes spring-flip-in {\n 0% {\n transform: rotate(0deg);\n }\n\n 30% {\n transform: rotate(-242.4deg);\n }\n\n 60% {\n transform: rotate(-158.35deg);\n }\n\n 90% {\n transform: rotate(-187.5deg);\n }\n\n 100% {\n transform: rotate(-180deg);\n }\n}\n\n@keyframes spring-flip-out {\n 0% {\n transform: rotate(-180deg);\n }\n\n 30% {\n transform: rotate(62.4deg);\n }\n\n 60% {\n transform: rotate(-21.635deg);\n }\n\n 90% {\n transform: rotate(7.5deg);\n }\n\n 100% {\n transform: rotate(0deg);\n }\n}\n\n.status__content--with-action {\n cursor: pointer;\n}\n\n.status__content {\n position: relative;\n margin: 10px 0;\n font-size: 15px;\n line-height: 20px;\n word-wrap: break-word;\n font-weight: 400;\n overflow: visible;\n padding-top: 5px;\n\n &:focus {\n outline: 0;\n }\n\n .emojione {\n width: 20px;\n height: 20px;\n margin: -3px 0 0;\n }\n\n img {\n max-width: 100%;\n max-height: 400px;\n object-fit: contain;\n }\n\n p, pre, blockquote {\n margin-bottom: 20px;\n white-space: pre-wrap;\n\n &:last-child {\n margin-bottom: 0;\n }\n }\n\n .status__content__text,\n .e-content {\n overflow: hidden;\n\n & > ul,\n & > ol {\n margin-bottom: 20px;\n }\n\n h1, h2, h3, h4, h5 {\n margin-top: 20px;\n margin-bottom: 20px;\n }\n\n h1, h2 {\n font-weight: 700;\n font-size: 1.2em;\n }\n\n h2 {\n font-size: 1.1em;\n }\n\n h3, h4, h5 {\n font-weight: 500;\n }\n\n blockquote {\n padding-left: 10px;\n border-left: 3px solid $darker-text-color;\n color: $darker-text-color;\n white-space: normal;\n\n p:last-child {\n margin-bottom: 0;\n }\n }\n\n b, strong {\n font-weight: 700;\n }\n\n em, i {\n font-style: italic;\n }\n\n sub {\n font-size: smaller;\n text-align: sub;\n }\n\n sup {\n font-size: smaller;\n vertical-align: super;\n }\n\n ul, ol {\n margin-left: 1em;\n\n p {\n margin: 0;\n }\n }\n\n ul {\n list-style-type: disc;\n }\n\n ol {\n list-style-type: decimal;\n }\n }\n\n a {\n color: $pleroma-links;\n text-decoration: none;\n\n &:hover {\n text-decoration: underline;\n\n .fa {\n color: lighten($dark-text-color, 7%);\n }\n }\n\n &.mention {\n &:hover {\n text-decoration: none;\n\n span {\n text-decoration: underline;\n }\n }\n }\n\n .fa {\n color: $dark-text-color;\n }\n }\n\n .status__content__spoiler {\n display: none;\n\n &.status__content__spoiler--visible {\n display: block;\n }\n }\n\n a.unhandled-link {\n color: lighten($ui-highlight-color, 8%);\n\n .link-origin-tag {\n color: $gold-star;\n font-size: 0.8em;\n }\n }\n\n .status__content__spoiler-link {\n background: lighten($ui-base-color, 30%);\n\n &:hover {\n background: lighten($ui-base-color, 33%);\n text-decoration: none;\n }\n }\n}\n\n.status__content__spoiler-link {\n display: inline-block;\n border-radius: 2px;\n background: lighten($ui-base-color, 30%);\n border: none;\n color: $inverted-text-color;\n font-weight: 500;\n font-size: 11px;\n padding: 0 5px;\n text-transform: uppercase;\n line-height: inherit;\n cursor: pointer;\n vertical-align: bottom;\n\n &:hover {\n background: lighten($ui-base-color, 33%);\n text-decoration: none;\n }\n\n .status__content__spoiler-icon {\n display: inline-block;\n margin: 0 0 0 5px;\n border-left: 1px solid currentColor;\n padding: 0 0 0 4px;\n font-size: 16px;\n vertical-align: -2px;\n }\n}\n\n.notif-cleaning {\n .status,\n .notification-follow,\n .notification-follow-request {\n padding-right: ($dismiss-overlay-width + 0.5rem);\n }\n}\n\n.status__wrapper--filtered {\n color: $dark-text-color;\n border: 0;\n font-size: inherit;\n text-align: center;\n line-height: inherit;\n margin: 0;\n padding: 15px;\n box-sizing: border-box;\n width: 100%;\n clear: both;\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n}\n\n.status__prepend-icon-wrapper {\n left: -26px;\n position: absolute;\n}\n\n.notification-follow,\n.notification-follow-request {\n position: relative;\n\n // same like Status\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n\n .account {\n border-bottom: 0 none;\n }\n}\n\n.focusable {\n &:focus {\n outline: 0;\n background: lighten($ui-base-color, 4%);\n\n &.status.status-direct:not(.read) {\n background: lighten($ui-base-color, 12%);\n\n &.muted {\n background: transparent;\n }\n }\n\n .detailed-status,\n .detailed-status__action-bar {\n background: lighten($ui-base-color, 8%);\n }\n }\n}\n\n.status {\n padding: 10px 14px;\n position: relative;\n height: auto;\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n cursor: default;\n\n @supports (-ms-overflow-style: -ms-autohiding-scrollbar) {\n // Add margin to avoid Edge auto-hiding scrollbar appearing over content.\n // On Edge 16 this is 16px and Edge <=15 it's 12px, so aim for 16px.\n padding-right: 28px; // 12px + 16px\n }\n\n @keyframes fade {\n 0% { opacity: 0; }\n 100% { opacity: 1; }\n }\n\n opacity: 1;\n animation: fade 150ms linear;\n\n .video-player,\n .audio-player {\n margin-top: 8px;\n }\n\n &.status-direct:not(.read) {\n background: lighten($ui-base-color, 8%);\n border-bottom-color: lighten($ui-base-color, 12%);\n }\n\n &.light {\n .status__relative-time {\n color: $lighter-text-color;\n }\n\n .status__display-name {\n color: $inverted-text-color;\n }\n\n .display-name {\n color: $light-text-color;\n\n strong {\n color: $inverted-text-color;\n }\n }\n\n .status__content {\n color: $inverted-text-color;\n\n a {\n color: $highlight-text-color;\n }\n\n a.status__content__spoiler-link {\n color: $primary-text-color;\n background: $ui-primary-color;\n\n &:hover {\n background: lighten($ui-primary-color, 8%);\n }\n }\n }\n }\n\n &.collapsed {\n background-position: center;\n background-size: cover;\n user-select: none;\n\n &.has-background::before {\n display: block;\n position: absolute;\n left: 0;\n right: 0;\n top: 0;\n bottom: 0;\n background-image: linear-gradient(to bottom, rgba($base-shadow-color, .75), rgba($base-shadow-color, .65) 24px, rgba($base-shadow-color, .8));\n pointer-events: none;\n content: \"\";\n }\n\n .display-name:hover .display-name__html {\n text-decoration: none;\n }\n\n .status__content {\n height: 20px;\n overflow: hidden;\n text-overflow: ellipsis;\n padding-top: 0;\n\n &:after {\n content: \"\";\n position: absolute;\n top: 0; bottom: 0;\n left: 0; right: 0;\n background: linear-gradient(rgba($ui-base-color, 0), rgba($ui-base-color, 1));\n pointer-events: none;\n }\n \n a:hover {\n text-decoration: none;\n }\n }\n &:focus > .status__content:after {\n background: linear-gradient(rgba(lighten($ui-base-color, 4%), 0), rgba(lighten($ui-base-color, 4%), 1));\n }\n &.status-direct:not(.read)> .status__content:after {\n background: linear-gradient(rgba(lighten($ui-base-color, 8%), 0), rgba(lighten($ui-base-color, 8%), 1));\n }\n\n .notification__message {\n margin-bottom: 0;\n }\n\n .status__info .notification__message > span {\n white-space: nowrap;\n }\n }\n\n .notification__message {\n margin: -10px 0px 10px 0;\n }\n}\n\n.notification-favourite {\n .status.status-direct {\n background: transparent;\n\n .icon-button.disabled {\n color: lighten($action-button-color, 13%);\n }\n }\n}\n\n.status__relative-time {\n display: inline-block;\n flex-grow: 1;\n color: $dark-text-color;\n font-size: 14px;\n text-align: right;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n.status__display-name {\n color: $dark-text-color;\n overflow: hidden;\n}\n\n.status__info__account .status__display-name {\n display: block;\n max-width: 100%;\n}\n\n.status__info {\n display: flex;\n justify-content: space-between;\n font-size: 15px;\n\n > span {\n text-overflow: ellipsis;\n overflow: hidden;\n }\n\n .notification__message > span {\n word-wrap: break-word;\n }\n}\n\n.status__info__icons {\n display: flex;\n align-items: center;\n height: 1em;\n color: $action-button-color;\n\n .status__media-icon,\n .status__visibility-icon,\n .status__reply-icon {\n padding-left: 2px;\n padding-right: 2px;\n }\n\n .status__collapse-button.active > .fa-angle-double-up {\n transform: rotate(-180deg);\n }\n}\n\n.no-reduce-motion .status__collapse-button {\n &.activate {\n & > .fa-angle-double-up {\n animation: spring-flip-in 1s linear;\n }\n }\n\n &.deactivate {\n & > .fa-angle-double-up {\n animation: spring-flip-out 1s linear;\n }\n }\n}\n\n.status__info__account {\n display: flex;\n align-items: center;\n justify-content: flex-start;\n}\n\n.status-check-box {\n border-bottom: 1px solid $ui-secondary-color;\n display: flex;\n\n .status-check-box__status {\n margin: 10px 0 10px 10px;\n flex: 1;\n overflow: hidden;\n\n .media-gallery {\n max-width: 250px;\n }\n\n .status__content {\n padding: 0;\n white-space: normal;\n }\n\n .video-player,\n .audio-player {\n margin-top: 8px;\n max-width: 250px;\n }\n\n .media-gallery__item-thumbnail {\n cursor: default;\n }\n }\n}\n\n.status-check-box-toggle {\n align-items: center;\n display: flex;\n flex: 0 0 auto;\n justify-content: center;\n padding: 10px;\n}\n\n.status__prepend {\n margin-top: -10px;\n margin-bottom: 10px;\n margin-left: 58px;\n color: $dark-text-color;\n padding: 8px 0;\n padding-bottom: 2px;\n font-size: 14px;\n position: relative;\n\n .status__display-name strong {\n color: $dark-text-color;\n }\n\n > span {\n display: block;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n}\n\n.status__action-bar {\n align-items: center;\n display: flex;\n margin-top: 8px;\n\n &__counter {\n display: inline-flex;\n margin-right: 11px;\n align-items: center;\n\n .status__action-bar-button {\n margin-right: 4px;\n }\n\n &__label {\n display: inline-block;\n width: 14px;\n font-size: 12px;\n font-weight: 500;\n color: $action-button-color;\n }\n }\n}\n\n.status__action-bar-button {\n margin-right: 18px;\n}\n\n.status__action-bar-dropdown {\n height: 23.15px;\n width: 23.15px;\n}\n\n.detailed-status__action-bar-dropdown {\n flex: 1 1 auto;\n display: flex;\n align-items: center;\n justify-content: center;\n position: relative;\n}\n\n.detailed-status {\n background: lighten($ui-base-color, 4%);\n padding: 14px 10px;\n\n &--flex {\n display: flex;\n flex-wrap: wrap;\n justify-content: space-between;\n align-items: flex-start;\n\n .status__content,\n .detailed-status__meta {\n flex: 100%;\n }\n }\n\n .status__content {\n font-size: 19px;\n line-height: 24px;\n\n .emojione {\n width: 24px;\n height: 24px;\n margin: -1px 0 0;\n }\n }\n\n .video-player,\n .audio-player {\n margin-top: 8px;\n }\n}\n\n.detailed-status__meta {\n margin-top: 15px;\n color: $dark-text-color;\n font-size: 14px;\n line-height: 18px;\n}\n\n.detailed-status__action-bar {\n background: lighten($ui-base-color, 4%);\n border-top: 1px solid lighten($ui-base-color, 8%);\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n display: flex;\n flex-direction: row;\n padding: 10px 0;\n}\n\n.detailed-status__link {\n color: inherit;\n text-decoration: none;\n}\n\n.detailed-status__favorites,\n.detailed-status__reblogs {\n display: inline-block;\n font-weight: 500;\n font-size: 12px;\n margin-left: 6px;\n}\n\n.status__display-name,\n.status__relative-time,\n.detailed-status__display-name,\n.detailed-status__datetime,\n.detailed-status__application,\n.account__display-name {\n text-decoration: none;\n}\n\n.status__display-name,\n.account__display-name {\n strong {\n color: $primary-text-color;\n }\n}\n\n.muted {\n .emojione {\n opacity: 0.5;\n }\n}\n\na.status__display-name,\n.reply-indicator__display-name,\n.detailed-status__display-name,\n.account__display-name {\n &:hover strong {\n text-decoration: underline;\n }\n}\n\n.account__display-name strong {\n display: block;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n.detailed-status__application,\n.detailed-status__datetime {\n color: inherit;\n}\n\n.detailed-status .button.logo-button {\n margin-bottom: 15px;\n}\n\n.detailed-status__display-name {\n color: $secondary-text-color;\n display: block;\n line-height: 24px;\n margin-bottom: 15px;\n overflow: hidden;\n\n strong,\n span {\n display: block;\n text-overflow: ellipsis;\n overflow: hidden;\n }\n\n strong {\n font-size: 16px;\n color: $primary-text-color;\n }\n}\n\n.detailed-status__display-avatar {\n float: left;\n margin-right: 10px;\n}\n\n.status__avatar {\n flex: none;\n margin: 0 10px 0 0;\n height: 48px;\n width: 48px;\n}\n\n.muted {\n .status__content,\n .status__content p,\n .status__content a,\n .status__content__text {\n color: $dark-text-color;\n }\n\n .status__display-name strong {\n color: $dark-text-color;\n }\n\n .status__avatar {\n opacity: 0.5;\n }\n\n a.status__content__spoiler-link {\n background: $ui-base-lighter-color;\n color: $inverted-text-color;\n\n &:hover {\n background: lighten($ui-base-color, 29%);\n text-decoration: none;\n }\n }\n}\n\n.status__relative-time,\n.detailed-status__datetime {\n &:hover {\n text-decoration: underline;\n }\n}\n\n.status-card {\n display: flex;\n font-size: 14px;\n border: 1px solid lighten($ui-base-color, 8%);\n border-radius: 4px;\n color: $dark-text-color;\n margin-top: 14px;\n text-decoration: none;\n overflow: hidden;\n\n &__actions {\n bottom: 0;\n left: 0;\n position: absolute;\n right: 0;\n top: 0;\n display: flex;\n justify-content: center;\n align-items: center;\n\n & > div {\n background: rgba($base-shadow-color, 0.6);\n border-radius: 8px;\n padding: 12px 9px;\n flex: 0 0 auto;\n display: flex;\n justify-content: center;\n align-items: center;\n }\n\n button,\n a {\n display: inline;\n color: $secondary-text-color;\n background: transparent;\n border: 0;\n padding: 0 8px;\n text-decoration: none;\n font-size: 18px;\n line-height: 18px;\n\n &:hover,\n &:active,\n &:focus {\n color: $primary-text-color;\n }\n }\n\n a {\n font-size: 19px;\n position: relative;\n bottom: -1px;\n }\n\n a .fa, a:hover .fa {\n color: inherit;\n }\n }\n}\n\na.status-card {\n cursor: pointer;\n\n &:hover {\n background: lighten($ui-base-color, 8%);\n }\n}\n\n.status-card-photo {\n cursor: zoom-in;\n display: block;\n text-decoration: none;\n width: 100%;\n height: auto;\n margin: 0;\n}\n\n.status-card-video {\n iframe {\n width: 100%;\n height: 100%;\n }\n}\n\n.status-card__title {\n display: block;\n font-weight: 500;\n margin-bottom: 5px;\n color: $darker-text-color;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n text-decoration: none;\n}\n\n.status-card__content {\n flex: 1 1 auto;\n overflow: hidden;\n padding: 14px 14px 14px 8px;\n}\n\n.status-card__description {\n color: $darker-text-color;\n}\n\n.status-card__host {\n display: block;\n margin-top: 5px;\n font-size: 13px;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.status-card__image {\n flex: 0 0 100px;\n background: lighten($ui-base-color, 8%);\n position: relative;\n\n & > .fa {\n font-size: 21px;\n position: absolute;\n transform-origin: 50% 50%;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n }\n}\n\n.status-card.horizontal {\n display: block;\n\n .status-card__image {\n width: 100%;\n }\n\n .status-card__image-image {\n border-radius: 4px 4px 0 0;\n }\n\n .status-card__title {\n white-space: inherit;\n }\n}\n\n.status-card.compact {\n border-color: lighten($ui-base-color, 4%);\n\n &.interactive {\n border: 0;\n }\n\n .status-card__content {\n padding: 8px;\n padding-top: 10px;\n }\n\n .status-card__title {\n white-space: nowrap;\n }\n\n .status-card__image {\n flex: 0 0 60px;\n }\n}\n\na.status-card.compact:hover {\n background-color: lighten($ui-base-color, 4%);\n}\n\n.status-card__image-image {\n border-radius: 4px 0 0 4px;\n display: block;\n margin: 0;\n width: 100%;\n height: 100%;\n object-fit: cover;\n background-size: cover;\n background-position: center center;\n}\n\n.attachment-list {\n display: flex;\n font-size: 14px;\n border: 1px solid lighten($ui-base-color, 8%);\n border-radius: 4px;\n margin-top: 14px;\n overflow: hidden;\n\n &__icon {\n flex: 0 0 auto;\n color: $dark-text-color;\n padding: 8px 18px;\n cursor: default;\n border-right: 1px solid lighten($ui-base-color, 8%);\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n font-size: 26px;\n\n .fa {\n display: block;\n }\n }\n\n &__list {\n list-style: none;\n padding: 4px 0;\n padding-left: 8px;\n display: flex;\n flex-direction: column;\n justify-content: center;\n\n li {\n display: block;\n padding: 4px 0;\n }\n\n a {\n text-decoration: none;\n color: $dark-text-color;\n font-weight: 500;\n\n &:hover {\n text-decoration: underline;\n }\n }\n }\n\n &.compact {\n border: 0;\n margin-top: 4px;\n\n .attachment-list__list {\n padding: 0;\n display: block;\n }\n\n .fa {\n color: $dark-text-color;\n }\n }\n}\n\n.status__wrapper--filtered__button {\n display: inline;\n color: lighten($ui-highlight-color, 8%);\n border: 0;\n background: transparent;\n padding: 0;\n font-size: inherit;\n line-height: inherit;\n\n &:hover,\n &:active {\n text-decoration: underline;\n }\n}\n",".modal-container--preloader {\n background: lighten($ui-base-color, 8%);\n}\n\n.modal-root {\n position: relative;\n transition: opacity 0.3s linear;\n will-change: opacity;\n z-index: 9999;\n}\n\n.modal-root__overlay {\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background: rgba($base-overlay-background, 0.7);\n}\n\n.modal-root__container {\n position: fixed;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n align-content: space-around;\n z-index: 9999;\n pointer-events: none;\n user-select: none;\n}\n\n.modal-root__modal {\n pointer-events: auto;\n display: flex;\n z-index: 9999;\n}\n\n.onboarding-modal,\n.error-modal,\n.embed-modal {\n background: $ui-secondary-color;\n color: $inverted-text-color;\n border-radius: 8px;\n overflow: hidden;\n display: flex;\n flex-direction: column;\n}\n\n.onboarding-modal__pager {\n height: 80vh;\n width: 80vw;\n max-width: 520px;\n max-height: 470px;\n\n .react-swipeable-view-container > div {\n width: 100%;\n height: 100%;\n box-sizing: border-box;\n display: none;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n display: flex;\n user-select: text;\n }\n}\n\n.error-modal__body {\n height: 80vh;\n width: 80vw;\n max-width: 520px;\n max-height: 420px;\n position: relative;\n\n & > div {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n box-sizing: border-box;\n padding: 25px;\n display: none;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n display: flex;\n opacity: 0;\n user-select: text;\n }\n}\n\n.error-modal__body {\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n text-align: center;\n}\n\n@media screen and (max-width: 550px) {\n .onboarding-modal {\n width: 100%;\n height: 100%;\n border-radius: 0;\n }\n\n .onboarding-modal__pager {\n width: 100%;\n height: auto;\n max-width: none;\n max-height: none;\n flex: 1 1 auto;\n }\n}\n\n.onboarding-modal__paginator,\n.error-modal__footer {\n flex: 0 0 auto;\n background: darken($ui-secondary-color, 8%);\n display: flex;\n padding: 25px;\n\n & > div {\n min-width: 33px;\n }\n\n .onboarding-modal__nav,\n .error-modal__nav {\n color: $lighter-text-color;\n border: 0;\n font-size: 14px;\n font-weight: 500;\n padding: 10px 25px;\n line-height: inherit;\n height: auto;\n margin: -10px;\n border-radius: 4px;\n background-color: transparent;\n\n &:hover,\n &:focus,\n &:active {\n color: darken($lighter-text-color, 4%);\n background-color: darken($ui-secondary-color, 16%);\n }\n\n &.onboarding-modal__done,\n &.onboarding-modal__next {\n color: $inverted-text-color;\n\n &:hover,\n &:focus,\n &:active {\n color: lighten($inverted-text-color, 4%);\n }\n }\n }\n}\n\n.error-modal__footer {\n justify-content: center;\n}\n\n.onboarding-modal__dots {\n flex: 1 1 auto;\n display: flex;\n align-items: center;\n justify-content: center;\n}\n\n.onboarding-modal__dot {\n width: 14px;\n height: 14px;\n border-radius: 14px;\n background: darken($ui-secondary-color, 16%);\n margin: 0 3px;\n cursor: pointer;\n\n &:hover {\n background: darken($ui-secondary-color, 18%);\n }\n\n &.active {\n cursor: default;\n background: darken($ui-secondary-color, 24%);\n }\n}\n\n.onboarding-modal__page__wrapper {\n pointer-events: none;\n padding: 25px;\n padding-bottom: 0;\n\n &.onboarding-modal__page__wrapper--active {\n pointer-events: auto;\n }\n}\n\n.onboarding-modal__page {\n cursor: default;\n line-height: 21px;\n\n h1 {\n font-size: 18px;\n font-weight: 500;\n color: $inverted-text-color;\n margin-bottom: 20px;\n }\n\n a {\n color: $highlight-text-color;\n\n &:hover,\n &:focus,\n &:active {\n color: lighten($highlight-text-color, 4%);\n }\n }\n\n .navigation-bar a {\n color: inherit;\n }\n\n p {\n font-size: 16px;\n color: $lighter-text-color;\n margin-top: 10px;\n margin-bottom: 10px;\n\n &:last-child {\n margin-bottom: 0;\n }\n\n strong {\n font-weight: 500;\n background: $ui-base-color;\n color: $secondary-text-color;\n border-radius: 4px;\n font-size: 14px;\n padding: 3px 6px;\n\n @each $lang in $cjk-langs {\n &:lang(#{$lang}) {\n font-weight: 700;\n }\n }\n }\n }\n}\n\n.onboarding-modal__page__wrapper-0 {\n height: 100%;\n padding: 0;\n}\n\n.onboarding-modal__page-one {\n &__lead {\n padding: 65px;\n padding-top: 45px;\n padding-bottom: 0;\n margin-bottom: 10px;\n\n h1 {\n font-size: 26px;\n line-height: 36px;\n margin-bottom: 8px;\n }\n\n p {\n margin-bottom: 0;\n }\n }\n\n &__extra {\n padding-right: 65px;\n padding-left: 185px;\n text-align: center;\n }\n}\n\n.display-case {\n text-align: center;\n font-size: 15px;\n margin-bottom: 15px;\n\n &__label {\n font-weight: 500;\n color: $inverted-text-color;\n margin-bottom: 5px;\n text-transform: uppercase;\n font-size: 12px;\n }\n\n &__case {\n background: $ui-base-color;\n color: $secondary-text-color;\n font-weight: 500;\n padding: 10px;\n border-radius: 4px;\n }\n}\n\n.onboarding-modal__page-two,\n.onboarding-modal__page-three,\n.onboarding-modal__page-four,\n.onboarding-modal__page-five {\n p {\n text-align: left;\n }\n\n .figure {\n background: darken($ui-base-color, 8%);\n color: $secondary-text-color;\n margin-bottom: 20px;\n border-radius: 4px;\n padding: 10px;\n text-align: center;\n font-size: 14px;\n box-shadow: 1px 2px 6px rgba($base-shadow-color, 0.3);\n\n .onboarding-modal__image {\n border-radius: 4px;\n margin-bottom: 10px;\n }\n\n &.non-interactive {\n pointer-events: none;\n text-align: left;\n }\n }\n}\n\n.onboarding-modal__page-four__columns {\n .row {\n display: flex;\n margin-bottom: 20px;\n\n & > div {\n flex: 1 1 0;\n margin: 0 10px;\n\n &:first-child {\n margin-left: 0;\n }\n\n &:last-child {\n margin-right: 0;\n }\n\n p {\n text-align: center;\n }\n }\n\n &:last-child {\n margin-bottom: 0;\n }\n }\n\n .column-header {\n color: $primary-text-color;\n }\n}\n\n@media screen and (max-width: 320px) and (max-height: 600px) {\n .onboarding-modal__page p {\n font-size: 14px;\n line-height: 20px;\n }\n\n .onboarding-modal__page-two .figure,\n .onboarding-modal__page-three .figure,\n .onboarding-modal__page-four .figure,\n .onboarding-modal__page-five .figure {\n font-size: 12px;\n margin-bottom: 10px;\n }\n\n .onboarding-modal__page-four__columns .row {\n margin-bottom: 10px;\n }\n\n .onboarding-modal__page-four__columns .column-header {\n padding: 5px;\n font-size: 12px;\n }\n}\n\n.onboard-sliders {\n display: inline-block;\n max-width: 30px;\n max-height: auto;\n margin-left: 10px;\n}\n\n.boost-modal,\n.favourite-modal,\n.confirmation-modal,\n.report-modal,\n.actions-modal,\n.mute-modal,\n.block-modal {\n background: lighten($ui-secondary-color, 8%);\n color: $inverted-text-color;\n border-radius: 8px;\n overflow: hidden;\n max-width: 90vw;\n width: 480px;\n position: relative;\n flex-direction: column;\n\n .status__relative-time {\n color: $dark-text-color;\n float: right;\n font-size: 14px;\n width: auto;\n margin: initial;\n padding: initial;\n }\n\n .status__display-name {\n display: flex;\n }\n\n .status__avatar {\n height: 48px;\n width: 48px;\n }\n\n .status__content__spoiler-link {\n color: lighten($secondary-text-color, 8%);\n }\n}\n\n.actions-modal {\n .status {\n background: $white;\n border-bottom-color: $ui-secondary-color;\n padding-top: 10px;\n padding-bottom: 10px;\n }\n\n .dropdown-menu__separator {\n border-bottom-color: $ui-secondary-color;\n }\n}\n\n.boost-modal__container,\n.favourite-modal__container {\n overflow-x: scroll;\n padding: 10px;\n\n .status {\n user-select: text;\n border-bottom: 0;\n }\n}\n\n.boost-modal__action-bar,\n.favourite-modal__action-bar,\n.confirmation-modal__action-bar,\n.mute-modal__action-bar,\n.block-modal__action-bar {\n display: flex;\n justify-content: space-between;\n background: $ui-secondary-color;\n padding: 10px;\n line-height: 36px;\n\n & > div {\n flex: 1 1 auto;\n text-align: right;\n color: $lighter-text-color;\n padding-right: 10px;\n }\n\n .button {\n flex: 0 0 auto;\n }\n}\n\n.boost-modal__status-header,\n.favourite-modal__status-header {\n font-size: 15px;\n}\n\n.boost-modal__status-time,\n.favourite-modal__status-time {\n float: right;\n font-size: 14px;\n}\n\n.mute-modal,\n.block-modal {\n line-height: 24px;\n}\n\n.mute-modal .react-toggle,\n.block-modal .react-toggle {\n vertical-align: middle;\n}\n\n.report-modal {\n width: 90vw;\n max-width: 700px;\n}\n\n.report-modal__container {\n display: flex;\n border-top: 1px solid $ui-secondary-color;\n\n @media screen and (max-width: 480px) {\n flex-wrap: wrap;\n overflow-y: auto;\n }\n}\n\n.report-modal__statuses,\n.report-modal__comment {\n box-sizing: border-box;\n width: 50%;\n\n @media screen and (max-width: 480px) {\n width: 100%;\n }\n}\n\n.report-modal__statuses,\n.focal-point-modal__content {\n flex: 1 1 auto;\n min-height: 20vh;\n max-height: 80vh;\n overflow-y: auto;\n overflow-x: hidden;\n\n .status__content a {\n color: $highlight-text-color;\n }\n\n @media screen and (max-width: 480px) {\n max-height: 10vh;\n }\n}\n\n.focal-point-modal__content {\n @media screen and (max-width: 480px) {\n max-height: 40vh;\n }\n}\n\n.report-modal__comment {\n padding: 20px;\n border-right: 1px solid $ui-secondary-color;\n max-width: 320px;\n\n p {\n font-size: 14px;\n line-height: 20px;\n margin-bottom: 20px;\n }\n\n .setting-text {\n display: block;\n box-sizing: border-box;\n width: 100%;\n margin: 0;\n color: $inverted-text-color;\n background: $white;\n padding: 10px;\n font-family: inherit;\n font-size: 14px;\n resize: none;\n border: 0;\n outline: 0;\n border-radius: 4px;\n border: 1px solid $ui-secondary-color;\n min-height: 100px;\n max-height: 50vh;\n margin-bottom: 10px;\n\n &:focus {\n border: 1px solid darken($ui-secondary-color, 8%);\n }\n\n &__wrapper {\n background: $white;\n border: 1px solid $ui-secondary-color;\n margin-bottom: 10px;\n border-radius: 4px;\n\n .setting-text {\n border: 0;\n margin-bottom: 0;\n border-radius: 0;\n\n &:focus {\n border: 0;\n }\n }\n\n &__modifiers {\n color: $inverted-text-color;\n font-family: inherit;\n font-size: 14px;\n background: $white;\n }\n }\n\n &__toolbar {\n display: flex;\n justify-content: space-between;\n margin-bottom: 20px;\n }\n }\n\n .setting-text-label {\n display: block;\n color: $inverted-text-color;\n font-size: 14px;\n font-weight: 500;\n margin-bottom: 10px;\n }\n\n .setting-toggle {\n margin-top: 20px;\n margin-bottom: 24px;\n\n &__label {\n color: $inverted-text-color;\n font-size: 14px;\n }\n }\n\n @media screen and (max-width: 480px) {\n padding: 10px;\n max-width: 100%;\n order: 2;\n\n .setting-toggle {\n margin-bottom: 4px;\n }\n }\n}\n\n.actions-modal {\n .status {\n overflow-y: auto;\n max-height: 300px;\n }\n\n strong {\n display: block;\n font-weight: 500;\n }\n\n max-height: 80vh;\n max-width: 80vw;\n\n .actions-modal__item-label {\n font-weight: 500;\n }\n\n ul {\n overflow-y: auto;\n flex-shrink: 0;\n max-height: 80vh;\n\n &.with-status {\n max-height: calc(80vh - 75px);\n }\n\n li:empty {\n margin: 0;\n }\n\n li:not(:empty) {\n a {\n color: $inverted-text-color;\n display: flex;\n padding: 12px 16px;\n font-size: 15px;\n align-items: center;\n text-decoration: none;\n\n &,\n button {\n transition: none;\n }\n\n &.active,\n &:hover,\n &:active,\n &:focus {\n &,\n button {\n background: $ui-highlight-color;\n color: $primary-text-color;\n }\n }\n\n & > .react-toggle,\n & > .icon,\n button:first-child {\n margin-right: 10px;\n }\n }\n }\n }\n}\n\n.confirmation-modal__action-bar,\n.mute-modal__action-bar,\n.block-modal__action-bar {\n .confirmation-modal__secondary-button {\n flex-shrink: 1;\n }\n}\n\n.confirmation-modal__secondary-button,\n.confirmation-modal__cancel-button,\n.mute-modal__cancel-button,\n.block-modal__cancel-button {\n background-color: transparent;\n color: $lighter-text-color;\n font-size: 14px;\n font-weight: 500;\n\n &:hover,\n &:focus,\n &:active {\n color: darken($lighter-text-color, 4%);\n background-color: transparent;\n }\n}\n\n.confirmation-modal__do_not_ask_again {\n padding-left: 20px;\n padding-right: 20px;\n padding-bottom: 10px;\n\n font-size: 14px;\n\n label, input {\n vertical-align: middle;\n }\n}\n\n.confirmation-modal__container,\n.mute-modal__container,\n.block-modal__container,\n.report-modal__target {\n padding: 30px;\n font-size: 16px;\n\n strong {\n font-weight: 500;\n\n @each $lang in $cjk-langs {\n &:lang(#{$lang}) {\n font-weight: 700;\n }\n }\n }\n}\n\n.confirmation-modal__container,\n.report-modal__target {\n text-align: center;\n}\n\n.block-modal,\n.mute-modal {\n &__explanation {\n margin-top: 20px;\n }\n\n .setting-toggle {\n margin-top: 20px;\n margin-bottom: 24px;\n display: flex;\n align-items: center;\n\n &__label {\n color: $inverted-text-color;\n margin: 0;\n margin-left: 8px;\n }\n }\n}\n\n.report-modal__target {\n padding: 15px;\n\n .media-modal__close {\n top: 14px;\n right: 15px;\n }\n}\n\n.embed-modal {\n width: auto;\n max-width: 80vw;\n max-height: 80vh;\n\n h4 {\n padding: 30px;\n font-weight: 500;\n font-size: 16px;\n text-align: center;\n }\n\n .embed-modal__container {\n padding: 10px;\n\n .hint {\n margin-bottom: 15px;\n }\n\n .embed-modal__html {\n outline: 0;\n box-sizing: border-box;\n display: block;\n width: 100%;\n border: none;\n padding: 10px;\n font-family: 'mastodon-font-monospace', monospace;\n background: $ui-base-color;\n color: $primary-text-color;\n font-size: 14px;\n margin: 0;\n margin-bottom: 15px;\n border-radius: 4px;\n\n &::-moz-focus-inner {\n border: 0;\n }\n\n &::-moz-focus-inner,\n &:focus,\n &:active {\n outline: 0 !important;\n }\n\n &:focus {\n background: lighten($ui-base-color, 4%);\n }\n\n @media screen and (max-width: 600px) {\n font-size: 16px;\n }\n }\n\n .embed-modal__iframe {\n width: 400px;\n max-width: 100%;\n overflow: hidden;\n border: 0;\n border-radius: 4px;\n }\n }\n}\n\n.focal-point {\n position: relative;\n cursor: move;\n overflow: hidden;\n height: 100%;\n display: flex;\n justify-content: center;\n align-items: center;\n background: $base-shadow-color;\n\n img,\n video,\n canvas {\n display: block;\n max-height: 80vh;\n width: 100%;\n height: auto;\n margin: 0;\n object-fit: contain;\n background: $base-shadow-color;\n }\n\n &__reticle {\n position: absolute;\n width: 100px;\n height: 100px;\n transform: translate(-50%, -50%);\n background: url('~images/reticle.png') no-repeat 0 0;\n border-radius: 50%;\n box-shadow: 0 0 0 9999em rgba($base-shadow-color, 0.35);\n }\n\n &__overlay {\n position: absolute;\n width: 100%;\n height: 100%;\n top: 0;\n left: 0;\n }\n\n &__preview {\n position: absolute;\n bottom: 10px;\n right: 10px;\n z-index: 2;\n cursor: move;\n transition: opacity 0.1s ease;\n\n &:hover {\n opacity: 0.5;\n }\n\n strong {\n color: $primary-text-color;\n font-size: 14px;\n font-weight: 500;\n display: block;\n margin-bottom: 5px;\n }\n\n div {\n border-radius: 4px;\n box-shadow: 0 0 14px rgba($base-shadow-color, 0.2);\n }\n }\n\n @media screen and (max-width: 480px) {\n img,\n video {\n max-height: 100%;\n }\n\n &__preview {\n display: none;\n }\n }\n}\n\n.filtered-status-info {\n text-align: start;\n\n .spoiler__text {\n margin-top: 20px;\n }\n\n .account {\n border-bottom: 0;\n }\n\n .account__display-name strong {\n color: $inverted-text-color;\n }\n\n .status__content__spoiler {\n display: none;\n\n &--visible {\n display: flex;\n }\n }\n\n ul {\n padding: 10px;\n margin-left: 12px;\n list-style: disc inside;\n }\n\n .filtered-status-edit-link {\n color: $action-button-color;\n text-decoration: none;\n\n &:hover {\n text-decoration: underline\n }\n }\n}\n",".composer {\n padding: 10px;\n\n .emoji-picker-dropdown {\n position: absolute;\n top: 0;\n right: 0;\n\n ::-webkit-scrollbar-track:hover,\n ::-webkit-scrollbar-track:active {\n background-color: rgba($base-overlay-background, 0.3);\n }\n }\n}\n\n.character-counter {\n cursor: default;\n font-family: $font-sans-serif, sans-serif;\n font-size: 14px;\n font-weight: 600;\n color: $lighter-text-color;\n\n &.character-counter--over {\n color: $warning-red;\n }\n}\n\n.no-reduce-motion .composer--spoiler {\n transition: height 0.4s ease, opacity 0.4s ease;\n}\n\n.composer--spoiler {\n height: 0;\n transform-origin: bottom;\n opacity: 0.0;\n\n &.composer--spoiler--visible {\n height: 36px;\n margin-bottom: 11px;\n opacity: 1.0;\n }\n\n input {\n display: block;\n box-sizing: border-box;\n margin: 0;\n border: none;\n border-radius: 4px;\n padding: 10px;\n width: 100%;\n outline: 0;\n color: $inverted-text-color;\n background: $simple-background-color;\n font-size: 14px;\n font-family: inherit;\n resize: vertical;\n\n &::placeholder {\n color: $dark-text-color;\n }\n\n &:focus { outline: 0 }\n @include single-column('screen and (max-width: 630px)') { font-size: 16px }\n }\n}\n\n.composer--warning {\n color: $inverted-text-color;\n margin-bottom: 15px;\n background: $ui-primary-color;\n box-shadow: 0 2px 6px rgba($base-shadow-color, 0.3);\n padding: 8px 10px;\n border-radius: 4px;\n font-size: 13px;\n font-weight: 400;\n\n a {\n color: $lighter-text-color;\n font-weight: 500;\n text-decoration: underline;\n\n &:active,\n &:focus,\n &:hover { text-decoration: none }\n }\n}\n\n.compose-form__sensitive-button {\n padding: 10px;\n padding-top: 0;\n\n font-size: 14px;\n font-weight: 500;\n\n &.active {\n color: $highlight-text-color;\n }\n\n input[type=checkbox] {\n display: none;\n }\n\n .checkbox {\n display: inline-block;\n position: relative;\n border: 1px solid $ui-primary-color;\n box-sizing: border-box;\n width: 18px;\n height: 18px;\n flex: 0 0 auto;\n margin-left: 5px;\n margin-right: 10px;\n top: -1px;\n border-radius: 4px;\n vertical-align: middle;\n\n &.active {\n border-color: $highlight-text-color;\n background: $highlight-text-color;\n }\n }\n}\n\n.composer--reply {\n margin: 0 0 10px;\n border-radius: 4px;\n padding: 10px;\n background: $ui-primary-color;\n min-height: 23px;\n overflow-y: auto;\n flex: 0 2 auto;\n\n & > header {\n margin-bottom: 5px;\n overflow: hidden;\n\n & > .account.small { color: $inverted-text-color; }\n\n & > .cancel {\n float: right;\n line-height: 24px;\n }\n }\n\n & > .content {\n position: relative;\n margin: 10px 0;\n padding: 0 12px;\n font-size: 14px;\n line-height: 20px;\n color: $inverted-text-color;\n word-wrap: break-word;\n font-weight: 400;\n overflow: visible;\n white-space: pre-wrap;\n padding-top: 5px;\n overflow: hidden;\n\n p, pre, blockquote {\n margin-bottom: 20px;\n white-space: pre-wrap;\n\n &:last-child {\n margin-bottom: 0;\n }\n }\n\n h1, h2, h3, h4, h5 {\n margin-top: 20px;\n margin-bottom: 20px;\n }\n\n h1, h2 {\n font-weight: 700;\n font-size: 18px;\n }\n\n h2 {\n font-size: 16px;\n }\n\n h3, h4, h5 {\n font-weight: 500;\n }\n\n blockquote {\n padding-left: 10px;\n border-left: 3px solid $inverted-text-color;\n color: $inverted-text-color;\n white-space: normal;\n\n p:last-child {\n margin-bottom: 0;\n }\n }\n\n b, strong {\n font-weight: 700;\n }\n\n em, i {\n font-style: italic;\n }\n\n sub {\n font-size: smaller;\n text-align: sub;\n }\n\n ul, ol {\n margin-left: 1em;\n\n p {\n margin: 0;\n }\n }\n\n ul {\n list-style-type: disc;\n }\n\n ol {\n list-style-type: decimal;\n }\n\n a {\n color: $lighter-text-color;\n text-decoration: none;\n\n &:hover { text-decoration: underline }\n\n &.mention {\n &:hover {\n text-decoration: none;\n\n span { text-decoration: underline }\n }\n }\n }\n }\n\n .emojione {\n width: 20px;\n height: 20px;\n margin: -5px 0 0;\n }\n}\n\n.compose-form__autosuggest-wrapper,\n.autosuggest-input {\n position: relative;\n width: 100%;\n\n label {\n .autosuggest-textarea__textarea {\n display: block;\n box-sizing: border-box;\n margin: 0;\n border: none;\n border-radius: 4px 4px 0 0;\n padding: 10px 32px 0 10px;\n width: 100%;\n min-height: 100px;\n outline: 0;\n color: $inverted-text-color;\n background: $simple-background-color;\n font-size: 14px;\n font-family: inherit;\n resize: none;\n scrollbar-color: initial;\n\n &::placeholder {\n color: $dark-text-color;\n }\n\n &::-webkit-scrollbar {\n all: unset;\n }\n\n &:disabled { background: $ui-secondary-color }\n &:focus { outline: 0 }\n @include single-column('screen and (max-width: 630px)') { font-size: 16px }\n\n @include limited-single-column('screen and (max-width: 600px)') {\n height: 100px !important; // prevent auto-resize textarea\n resize: vertical;\n }\n }\n }\n}\n\n.composer--textarea--icons {\n display: block;\n position: absolute;\n top: 29px;\n right: 5px;\n bottom: 5px;\n overflow: hidden;\n\n & > .textarea_icon {\n display: block;\n margin: 2px 0 0 2px;\n width: 24px;\n height: 24px;\n color: $lighter-text-color;\n font-size: 18px;\n line-height: 24px;\n text-align: center;\n opacity: .8;\n }\n}\n\n.autosuggest-textarea__suggestions-wrapper {\n position: relative;\n height: 0;\n}\n\n.autosuggest-textarea__suggestions {\n display: block;\n position: absolute;\n box-sizing: border-box;\n top: 100%;\n border-radius: 0 0 4px 4px;\n padding: 6px;\n width: 100%;\n color: $inverted-text-color;\n background: $ui-secondary-color;\n box-shadow: 4px 4px 6px rgba($base-shadow-color, 0.4);\n font-size: 14px;\n z-index: 99;\n display: none;\n}\n\n.autosuggest-textarea__suggestions--visible {\n display: block;\n}\n\n.autosuggest-textarea__suggestions__item {\n padding: 10px;\n cursor: pointer;\n border-radius: 4px;\n\n &:hover,\n &:focus,\n &:active,\n &.selected { background: darken($ui-secondary-color, 10%) }\n\n > .account,\n > .emoji,\n > .autosuggest-hashtag {\n display: flex;\n flex-direction: row;\n align-items: center;\n justify-content: flex-start;\n line-height: 18px;\n font-size: 14px;\n }\n\n .autosuggest-hashtag {\n justify-content: space-between;\n\n &__name {\n flex: 1 1 auto;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n\n strong {\n font-weight: 500;\n }\n\n &__uses {\n flex: 0 0 auto;\n text-align: right;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n }\n\n & > .account.small {\n .display-name {\n & > span { color: $lighter-text-color }\n }\n }\n}\n\n.composer--upload_form {\n overflow: hidden;\n\n & > .content {\n display: flex;\n flex-direction: row;\n flex-wrap: wrap;\n font-family: inherit;\n padding: 5px;\n overflow: hidden;\n }\n}\n\n.composer--upload_form--item {\n flex: 1 1 0;\n margin: 5px;\n min-width: 40%;\n\n & > div {\n position: relative;\n border-radius: 4px;\n height: 140px;\n width: 100%;\n background-color: $base-shadow-color;\n background-position: center;\n background-size: cover;\n background-repeat: no-repeat;\n overflow: hidden;\n\n textarea {\n display: block;\n position: absolute;\n box-sizing: border-box;\n bottom: 0;\n left: 0;\n margin: 0;\n border: 0;\n padding: 10px;\n width: 100%;\n color: $secondary-text-color;\n background: linear-gradient(0deg, rgba($base-shadow-color, 0.8) 0, rgba($base-shadow-color, 0.35) 80%, transparent);\n font-size: 14px;\n font-family: inherit;\n font-weight: 500;\n opacity: 0;\n z-index: 2;\n transition: opacity .1s ease;\n\n &:focus { color: $white }\n\n &::placeholder {\n opacity: 0.54;\n color: $secondary-text-color;\n }\n }\n\n & > .close { mix-blend-mode: difference }\n }\n\n &.active {\n & > div {\n textarea { opacity: 1 }\n }\n }\n}\n\n.composer--upload_form--actions {\n background: linear-gradient(180deg, rgba($base-shadow-color, 0.8) 0, rgba($base-shadow-color, 0.35) 80%, transparent);\n display: flex;\n align-items: flex-start;\n justify-content: space-between;\n opacity: 0;\n transition: opacity .1s ease;\n\n .icon-button {\n flex: 0 1 auto;\n color: $ui-secondary-color;\n font-size: 14px;\n font-weight: 500;\n padding: 10px;\n font-family: inherit;\n\n &:hover,\n &:focus,\n &:active {\n color: lighten($ui-secondary-color, 4%);\n }\n }\n\n &.active {\n opacity: 1;\n }\n}\n\n.composer--upload_form--progress {\n display: flex;\n padding: 10px;\n color: $darker-text-color;\n overflow: hidden;\n\n & > .fa {\n font-size: 34px;\n margin-right: 10px;\n }\n\n & > .message {\n flex: 1 1 auto;\n\n & > span {\n display: block;\n font-size: 12px;\n font-weight: 500;\n text-transform: uppercase;\n }\n\n & > .backdrop {\n position: relative;\n margin-top: 5px;\n border-radius: 6px;\n width: 100%;\n height: 6px;\n background: $ui-base-lighter-color;\n\n & > .tracker {\n position: absolute;\n top: 0;\n left: 0;\n height: 6px;\n border-radius: 6px;\n background: $ui-highlight-color;\n }\n }\n }\n}\n\n.compose-form__modifiers {\n color: $inverted-text-color;\n font-family: inherit;\n font-size: 14px;\n background: $simple-background-color;\n}\n\n.composer--options-wrapper {\n padding: 10px;\n background: darken($simple-background-color, 8%);\n border-radius: 0 0 4px 4px;\n height: 27px;\n display: flex;\n justify-content: space-between;\n flex: 0 0 auto;\n}\n\n.composer--options {\n display: flex;\n flex: 0 0 auto;\n\n & > * {\n display: inline-block;\n box-sizing: content-box;\n padding: 0 3px;\n height: 27px;\n line-height: 27px;\n vertical-align: bottom;\n }\n\n & > hr {\n display: inline-block;\n margin: 0 3px;\n border-width: 0 0 0 1px;\n border-style: none none none solid;\n border-color: transparent transparent transparent darken($simple-background-color, 24%);\n padding: 0;\n width: 0;\n height: 27px;\n background: transparent;\n }\n}\n\n.compose--counter-wrapper {\n align-self: center;\n margin-right: 4px;\n}\n\n.composer--options--dropdown {\n &.open {\n & > .value {\n border-radius: 4px 4px 0 0;\n box-shadow: 0 -4px 4px rgba($base-shadow-color, 0.1);\n color: $primary-text-color;\n background: $ui-highlight-color;\n transition: none;\n }\n &.top {\n & > .value {\n border-radius: 0 0 4px 4px;\n box-shadow: 0 4px 4px rgba($base-shadow-color, 0.1);\n }\n }\n }\n}\n\n.composer--options--dropdown--content {\n position: absolute;\n border-radius: 4px;\n box-shadow: 2px 4px 15px rgba($base-shadow-color, 0.4);\n background: $simple-background-color;\n overflow: hidden;\n transform-origin: 50% 0;\n}\n\n.composer--options--dropdown--content--item {\n display: flex;\n align-items: center;\n padding: 10px;\n color: $inverted-text-color;\n cursor: pointer;\n\n & > .content {\n flex: 1 1 auto;\n color: $lighter-text-color;\n\n &:not(:first-child) { margin-left: 10px }\n\n strong {\n display: block;\n color: $inverted-text-color;\n font-weight: 500;\n }\n }\n\n &:hover,\n &.active {\n background: $ui-highlight-color;\n color: $primary-text-color;\n\n & > .content {\n color: $primary-text-color;\n\n strong { color: $primary-text-color }\n }\n }\n\n &.active:hover { background: lighten($ui-highlight-color, 4%) }\n}\n\n.composer--publisher {\n padding-top: 10px;\n text-align: right;\n white-space: nowrap;\n overflow: hidden;\n justify-content: flex-end;\n flex: 0 0 auto;\n\n & > .primary {\n display: inline-block;\n margin: 0;\n padding: 0 10px;\n text-align: center;\n }\n\n & > .side_arm {\n display: inline-block;\n margin: 0 2px;\n padding: 0;\n width: 36px;\n text-align: center;\n }\n\n &.over {\n & > .count { color: $warning-red }\n }\n}\n",".column__wrapper {\n display: flex;\n flex: 1 1 auto;\n position: relative;\n}\n\n.columns-area {\n display: flex;\n flex: 1 1 auto;\n flex-direction: row;\n justify-content: flex-start;\n overflow-x: auto;\n position: relative;\n\n &__panels {\n display: flex;\n justify-content: center;\n width: 100%;\n height: 100%;\n min-height: 100vh;\n\n &__pane {\n height: 100%;\n overflow: hidden;\n pointer-events: none;\n display: flex;\n justify-content: flex-end;\n min-width: 285px;\n\n &--start {\n justify-content: flex-start;\n }\n\n &__inner {\n position: fixed;\n width: 285px;\n pointer-events: auto;\n height: 100%;\n }\n }\n\n &__main {\n box-sizing: border-box;\n width: 100%;\n max-width: 600px;\n flex: 0 0 auto;\n display: flex;\n flex-direction: column;\n\n @media screen and (min-width: $no-gap-breakpoint) {\n padding: 0 10px;\n }\n }\n }\n}\n\n.tabs-bar__wrapper {\n background: darken($ui-base-color, 8%);\n position: sticky;\n top: 0;\n z-index: 2;\n padding-top: 0;\n\n @media screen and (min-width: $no-gap-breakpoint) {\n padding-top: 10px;\n }\n\n .tabs-bar {\n margin-bottom: 0;\n\n @media screen and (min-width: $no-gap-breakpoint) {\n margin-bottom: 10px;\n }\n }\n}\n\n.react-swipeable-view-container {\n &,\n .columns-area,\n .column {\n height: 100%;\n }\n}\n\n.react-swipeable-view-container > * {\n display: flex;\n align-items: center;\n justify-content: center;\n height: 100%;\n}\n\n.column {\n width: 330px;\n position: relative;\n box-sizing: border-box;\n display: flex;\n flex-direction: column;\n\n > .scrollable {\n background: $ui-base-color;\n }\n}\n\n.ui {\n flex: 0 0 auto;\n display: flex;\n flex-direction: column;\n width: 100%;\n height: 100%;\n}\n\n.column {\n overflow: hidden;\n}\n\n.column-back-button {\n box-sizing: border-box;\n width: 100%;\n background: lighten($ui-base-color, 4%);\n color: $highlight-text-color;\n cursor: pointer;\n flex: 0 0 auto;\n font-size: 16px;\n border: 0;\n text-align: unset;\n padding: 15px;\n margin: 0;\n z-index: 3;\n\n &:hover {\n text-decoration: underline;\n }\n}\n\n.column-header__back-button {\n background: lighten($ui-base-color, 4%);\n border: 0;\n font-family: inherit;\n color: $highlight-text-color;\n cursor: pointer;\n flex: 0 0 auto;\n font-size: 16px;\n padding: 0 5px 0 0;\n z-index: 3;\n\n &:hover {\n text-decoration: underline;\n }\n\n &:last-child {\n padding: 0 15px 0 0;\n }\n}\n\n.column-back-button__icon {\n display: inline-block;\n margin-right: 5px;\n}\n\n.column-back-button--slim {\n position: relative;\n}\n\n.column-back-button--slim-button {\n cursor: pointer;\n flex: 0 0 auto;\n font-size: 16px;\n padding: 15px;\n position: absolute;\n right: 0;\n top: -48px;\n}\n\n.column-link {\n background: lighten($ui-base-color, 8%);\n color: $primary-text-color;\n display: block;\n font-size: 16px;\n padding: 15px;\n text-decoration: none;\n\n &:hover,\n &:focus,\n &:active {\n background: lighten($ui-base-color, 11%);\n }\n\n &:focus {\n outline: 0;\n }\n\n &--transparent {\n background: transparent;\n color: $ui-secondary-color;\n\n &:hover,\n &:focus,\n &:active {\n background: transparent;\n color: $primary-text-color;\n }\n\n &.active {\n color: $ui-highlight-color;\n }\n }\n}\n\n.column-link__icon {\n display: inline-block;\n margin-right: 5px;\n}\n\n.column-subheading {\n background: $ui-base-color;\n color: $dark-text-color;\n padding: 8px 20px;\n font-size: 12px;\n font-weight: 500;\n text-transform: uppercase;\n cursor: default;\n}\n\n.column-header__wrapper {\n position: relative;\n flex: 0 0 auto;\n z-index: 1;\n\n &.active {\n box-shadow: 0 1px 0 rgba($highlight-text-color, 0.3);\n\n &::before {\n display: block;\n content: \"\";\n position: absolute;\n bottom: -13px;\n left: 0;\n right: 0;\n margin: 0 auto;\n width: 60%;\n pointer-events: none;\n height: 28px;\n z-index: 1;\n background: radial-gradient(ellipse, rgba($ui-highlight-color, 0.23) 0%, rgba($ui-highlight-color, 0) 60%);\n }\n }\n\n .announcements {\n z-index: 1;\n position: relative;\n }\n}\n\n.column-header {\n display: flex;\n font-size: 16px;\n background: lighten($ui-base-color, 4%);\n flex: 0 0 auto;\n cursor: pointer;\n position: relative;\n z-index: 2;\n outline: 0;\n overflow: hidden;\n\n & > button {\n margin: 0;\n border: none;\n padding: 15px;\n color: inherit;\n background: transparent;\n font: inherit;\n text-align: left;\n text-overflow: ellipsis;\n overflow: hidden;\n white-space: nowrap;\n flex: 1;\n }\n\n & > .column-header__back-button {\n color: $highlight-text-color;\n }\n\n &.active {\n .column-header__icon {\n color: $highlight-text-color;\n text-shadow: 0 0 10px rgba($ui-highlight-color, 0.4);\n }\n }\n\n &:focus,\n &:active {\n outline: 0;\n }\n}\n\n.column {\n width: 330px;\n position: relative;\n box-sizing: border-box;\n display: flex;\n flex-direction: column;\n overflow: hidden;\n\n .wide .columns-area:not(.columns-area--mobile) & {\n flex: auto;\n min-width: 330px;\n max-width: 400px;\n }\n\n > .scrollable {\n background: $ui-base-color;\n }\n}\n\n.column-header__buttons {\n height: 48px;\n display: flex;\n margin-left: 0;\n}\n\n.column-header__links {\n margin-bottom: 14px;\n}\n\n.column-header__links .text-btn {\n margin-right: 10px;\n}\n\n.column-header__button {\n background: lighten($ui-base-color, 4%);\n border: 0;\n color: $darker-text-color;\n cursor: pointer;\n font-size: 16px;\n padding: 0 15px;\n\n &:hover {\n color: lighten($darker-text-color, 7%);\n }\n\n &.active {\n color: $primary-text-color;\n background: lighten($ui-base-color, 8%);\n\n &:hover {\n color: $primary-text-color;\n background: lighten($ui-base-color, 8%);\n }\n }\n\n // glitch - added focus ring for keyboard navigation\n &:focus {\n text-shadow: 0 0 4px darken($ui-highlight-color, 5%);\n }\n}\n\n.column-header__notif-cleaning-buttons {\n display: flex;\n align-items: stretch;\n justify-content: space-around;\n\n button {\n @extend .column-header__button;\n background: transparent;\n text-align: center;\n padding: 10px 0;\n white-space: pre-wrap;\n }\n\n b {\n font-weight: bold;\n }\n}\n\n// The notifs drawer with no padding to have more space for the buttons\n.column-header__collapsible-inner.nopad-drawer {\n padding: 0;\n}\n\n.column-header__collapsible {\n max-height: 70vh;\n overflow: hidden;\n overflow-y: auto;\n color: $darker-text-color;\n transition: max-height 150ms ease-in-out, opacity 300ms linear;\n opacity: 1;\n z-index: 1;\n position: relative;\n\n &.collapsed {\n max-height: 0;\n opacity: 0.5;\n }\n\n &.animating {\n overflow-y: hidden;\n }\n\n hr {\n height: 0;\n background: transparent;\n border: 0;\n border-top: 1px solid lighten($ui-base-color, 12%);\n margin: 10px 0;\n }\n\n // notif cleaning drawer\n &.ncd {\n transition: none;\n &.collapsed {\n max-height: 0;\n opacity: 0.7;\n }\n }\n}\n\n.column-header__collapsible-inner {\n background: lighten($ui-base-color, 8%);\n padding: 15px;\n}\n\n.column-header__setting-btn {\n &:hover {\n color: $darker-text-color;\n text-decoration: underline;\n }\n}\n\n.column-header__setting-arrows {\n float: right;\n\n .column-header__setting-btn {\n padding: 0 10px;\n\n &:last-child {\n padding-right: 0;\n }\n }\n}\n\n.column-header__title {\n display: inline-block;\n text-overflow: ellipsis;\n overflow: hidden;\n white-space: nowrap;\n flex: 1;\n}\n\n.column-header__icon {\n display: inline-block;\n margin-right: 5px;\n}\n\n.empty-column-indicator,\n.error-column,\n.follow_requests-unlocked_explanation {\n color: $dark-text-color;\n background: $ui-base-color;\n text-align: center;\n padding: 20px;\n font-size: 15px;\n font-weight: 400;\n cursor: default;\n display: flex;\n flex: 1 1 auto;\n align-items: center;\n justify-content: center;\n @supports(display: grid) { // hack to fix Chrome <57\n contain: strict;\n }\n\n & > span {\n max-width: 400px;\n }\n\n a {\n color: $highlight-text-color;\n text-decoration: none;\n\n &:hover {\n text-decoration: underline;\n }\n }\n}\n\n.follow_requests-unlocked_explanation {\n background: darken($ui-base-color, 4%);\n contain: initial;\n}\n\n.error-column {\n flex-direction: column;\n}\n\n// more fixes for the navbar-under mode\n@mixin fix-margins-for-navbar-under {\n .tabs-bar {\n margin-top: 0 !important;\n margin-bottom: -6px !important;\n }\n}\n\n.single-column.navbar-under {\n @include fix-margins-for-navbar-under;\n}\n\n.auto-columns.navbar-under {\n @media screen and (max-width: $no-gap-breakpoint) {\n @include fix-margins-for-navbar-under;\n }\n}\n\n.auto-columns.navbar-under .react-swipeable-view-container .columns-area,\n.single-column.navbar-under .react-swipeable-view-container .columns-area {\n @media screen and (max-width: $no-gap-breakpoint) {\n height: 100% !important;\n }\n}\n\n.column-inline-form {\n padding: 7px 15px;\n padding-right: 5px;\n display: flex;\n justify-content: flex-start;\n align-items: center;\n background: lighten($ui-base-color, 4%);\n\n label {\n flex: 1 1 auto;\n\n input {\n width: 100%;\n margin-bottom: 6px;\n\n &:focus {\n outline: 0;\n }\n }\n }\n\n .icon-button {\n flex: 0 0 auto;\n margin: 0 5px;\n }\n}\n",".regeneration-indicator {\n text-align: center;\n font-size: 16px;\n font-weight: 500;\n color: $dark-text-color;\n background: $ui-base-color;\n cursor: default;\n display: flex;\n flex: 1 1 auto;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n padding: 20px;\n\n &__figure {\n &,\n img {\n display: block;\n width: auto;\n height: 160px;\n margin: 0;\n }\n }\n\n &--without-header {\n padding-top: 20px + 48px;\n }\n\n &__label {\n margin-top: 30px;\n\n strong {\n display: block;\n margin-bottom: 10px;\n color: $dark-text-color;\n }\n\n span {\n font-size: 15px;\n font-weight: 400;\n }\n }\n}\n",".directory {\n &__list {\n width: 100%;\n margin: 10px 0;\n transition: opacity 100ms ease-in;\n\n &.loading {\n opacity: 0.7;\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n margin: 0;\n }\n }\n\n &__card {\n box-sizing: border-box;\n margin-bottom: 10px;\n\n &__img {\n height: 125px;\n position: relative;\n background: darken($ui-base-color, 12%);\n overflow: hidden;\n\n img {\n display: block;\n width: 100%;\n height: 100%;\n margin: 0;\n object-fit: cover;\n }\n }\n\n &__bar {\n display: flex;\n align-items: center;\n background: lighten($ui-base-color, 4%);\n padding: 10px;\n\n &__name {\n flex: 1 1 auto;\n display: flex;\n align-items: center;\n text-decoration: none;\n overflow: hidden;\n }\n\n &__relationship {\n width: 23px;\n min-height: 1px;\n flex: 0 0 auto;\n }\n\n .avatar {\n flex: 0 0 auto;\n width: 48px;\n height: 48px;\n padding-top: 2px;\n\n img {\n width: 100%;\n height: 100%;\n display: block;\n margin: 0;\n border-radius: 4px;\n background: darken($ui-base-color, 8%);\n object-fit: cover;\n }\n }\n\n .display-name {\n margin-left: 15px;\n text-align: left;\n\n strong {\n font-size: 15px;\n color: $primary-text-color;\n font-weight: 500;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n span {\n display: block;\n font-size: 14px;\n color: $darker-text-color;\n font-weight: 400;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n }\n }\n\n &__extra {\n background: $ui-base-color;\n display: flex;\n align-items: center;\n justify-content: center;\n\n .accounts-table__count {\n width: 33.33%;\n flex: 0 0 auto;\n padding: 15px 0;\n }\n\n .account__header__content {\n box-sizing: border-box;\n padding: 15px 10px;\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n width: 100%;\n min-height: 18px + 30px;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n\n p {\n display: none;\n\n &:first-child {\n display: inline;\n }\n }\n\n br {\n display: none;\n }\n }\n }\n }\n}\n\n.filter-form {\n background: $ui-base-color;\n\n &__column {\n padding: 10px 15px;\n }\n\n .radio-button {\n display: block;\n }\n}\n\n.radio-button {\n font-size: 14px;\n position: relative;\n display: inline-block;\n padding: 6px 0;\n line-height: 18px;\n cursor: default;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n cursor: pointer;\n\n input[type=radio],\n input[type=checkbox] {\n display: none;\n }\n\n &__input {\n display: inline-block;\n position: relative;\n border: 1px solid $ui-primary-color;\n box-sizing: border-box;\n width: 18px;\n height: 18px;\n flex: 0 0 auto;\n margin-right: 10px;\n top: -1px;\n border-radius: 50%;\n vertical-align: middle;\n\n &.checked {\n border-color: lighten($ui-highlight-color, 8%);\n background: lighten($ui-highlight-color, 8%);\n }\n }\n}\n",".search {\n position: relative;\n}\n\n.search__input {\n @include search-input();\n\n display: block;\n padding: 15px;\n padding-right: 30px;\n line-height: 18px;\n font-size: 16px;\n\n &::placeholder {\n color: lighten($darker-text-color, 4%);\n }\n\n &::-moz-focus-inner {\n border: 0;\n }\n\n &::-moz-focus-inner,\n &:focus,\n &:active {\n outline: 0 !important;\n }\n\n &:focus {\n background: lighten($ui-base-color, 4%);\n }\n\n @media screen and (max-width: 600px) {\n font-size: 16px;\n }\n}\n\n.search__icon {\n &::-moz-focus-inner {\n border: 0;\n }\n\n &::-moz-focus-inner,\n &:focus {\n outline: 0 !important;\n }\n\n .fa {\n position: absolute;\n top: 16px;\n right: 10px;\n z-index: 2;\n display: inline-block;\n opacity: 0;\n transition: all 100ms linear;\n transition-property: color, transform, opacity;\n font-size: 18px;\n width: 18px;\n height: 18px;\n color: $secondary-text-color;\n cursor: default;\n pointer-events: none;\n\n &.active {\n pointer-events: auto;\n opacity: 0.3;\n }\n }\n\n .fa-search {\n transform: rotate(0deg);\n\n &.active {\n pointer-events: auto;\n opacity: 0.3;\n }\n }\n\n .fa-times-circle {\n top: 17px;\n transform: rotate(0deg);\n color: $action-button-color;\n cursor: pointer;\n\n &.active {\n transform: rotate(90deg);\n }\n\n &:hover {\n color: lighten($action-button-color, 7%);\n }\n }\n}\n\n.search-results__header {\n color: $dark-text-color;\n background: lighten($ui-base-color, 2%);\n border-bottom: 1px solid darken($ui-base-color, 4%);\n padding: 15px 10px;\n font-size: 14px;\n font-weight: 500;\n}\n\n.search-results__info {\n padding: 20px;\n color: $darker-text-color;\n text-align: center;\n}\n\n.trends {\n &__header {\n color: $dark-text-color;\n background: lighten($ui-base-color, 2%);\n border-bottom: 1px solid darken($ui-base-color, 4%);\n font-weight: 500;\n padding: 15px;\n font-size: 16px;\n cursor: default;\n\n .fa {\n display: inline-block;\n margin-right: 5px;\n }\n }\n\n &__item {\n display: flex;\n align-items: center;\n padding: 15px;\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n\n &:last-child {\n border-bottom: 0;\n }\n\n &__name {\n flex: 1 1 auto;\n color: $dark-text-color;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n\n strong {\n font-weight: 500;\n }\n\n a {\n color: $darker-text-color;\n text-decoration: none;\n font-size: 14px;\n font-weight: 500;\n display: block;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n\n &:hover,\n &:focus,\n &:active {\n span {\n text-decoration: underline;\n }\n }\n }\n }\n\n &__current {\n flex: 0 0 auto;\n font-size: 24px;\n line-height: 36px;\n font-weight: 500;\n text-align: right;\n padding-right: 15px;\n margin-left: 5px;\n color: $secondary-text-color;\n }\n\n &__sparkline {\n flex: 0 0 auto;\n width: 50px;\n\n path:first-child {\n fill: rgba($highlight-text-color, 0.25) !important;\n fill-opacity: 1 !important;\n }\n\n path:last-child {\n stroke: lighten($highlight-text-color, 6%) !important;\n }\n }\n }\n}\n",null,".emojione {\n font-size: inherit;\n vertical-align: middle;\n object-fit: contain;\n margin: -.2ex .15em .2ex;\n width: 16px;\n height: 16px;\n\n img {\n width: auto;\n }\n}\n\n.emoji-picker-dropdown__menu {\n background: $simple-background-color;\n position: absolute;\n box-shadow: 4px 4px 6px rgba($base-shadow-color, 0.4);\n border-radius: 4px;\n margin-top: 5px;\n z-index: 2;\n\n .emoji-mart-scroll {\n transition: opacity 200ms ease;\n }\n\n &.selecting .emoji-mart-scroll {\n opacity: 0.5;\n }\n}\n\n.emoji-picker-dropdown__modifiers {\n position: absolute;\n top: 60px;\n right: 11px;\n cursor: pointer;\n}\n\n.emoji-picker-dropdown__modifiers__menu {\n position: absolute;\n z-index: 4;\n top: -4px;\n left: -8px;\n background: $simple-background-color;\n border-radius: 4px;\n box-shadow: 1px 2px 6px rgba($base-shadow-color, 0.2);\n overflow: hidden;\n\n button {\n display: block;\n cursor: pointer;\n border: 0;\n padding: 4px 8px;\n background: transparent;\n\n &:hover,\n &:focus,\n &:active {\n background: rgba($ui-secondary-color, 0.4);\n }\n }\n\n .emoji-mart-emoji {\n height: 22px;\n }\n}\n\n.emoji-mart-emoji {\n span {\n background-repeat: no-repeat;\n }\n}\n\n.emoji-button {\n display: block;\n padding: 5px 5px 2px 2px;\n outline: 0;\n cursor: pointer;\n\n &:active,\n &:focus {\n outline: 0 !important;\n }\n\n img {\n filter: grayscale(100%);\n opacity: 0.8;\n display: block;\n margin: 0;\n width: 22px;\n height: 22px;\n }\n\n &:hover,\n &:active,\n &:focus {\n img {\n opacity: 1;\n filter: none;\n }\n }\n}\n","$doodleBg: #d9e1e8;\n.doodle-modal {\n @extend .boost-modal;\n width: unset;\n}\n\n.doodle-modal__container {\n background: $doodleBg;\n text-align: center;\n line-height: 0; // remove weird gap under canvas\n canvas {\n border: 5px solid $doodleBg;\n }\n}\n\n.doodle-modal__action-bar {\n @extend .boost-modal__action-bar;\n\n .filler {\n flex-grow: 1;\n margin: 0;\n padding: 0;\n }\n\n .doodle-toolbar {\n line-height: 1;\n\n display: flex;\n flex-direction: column;\n flex-grow: 0;\n justify-content: space-around;\n\n &.with-inputs {\n label {\n display: inline-block;\n width: 70px;\n text-align: right;\n margin-right: 2px;\n }\n\n input[type=\"number\"],input[type=\"text\"] {\n width: 40px;\n }\n span.val {\n display: inline-block;\n text-align: left;\n width: 50px;\n }\n }\n }\n\n .doodle-palette {\n padding-right: 0 !important;\n border: 1px solid black;\n line-height: .2rem;\n flex-grow: 0;\n background: white;\n\n button {\n appearance: none;\n width: 1rem;\n height: 1rem;\n margin: 0; padding: 0;\n text-align: center;\n color: black;\n text-shadow: 0 0 1px white;\n cursor: pointer;\n box-shadow: inset 0 0 1px rgba(white, .5);\n border: 1px solid black;\n outline-offset:-1px;\n\n &.foreground {\n outline: 1px dashed white;\n }\n\n &.background {\n outline: 1px dashed red;\n }\n\n &.foreground.background {\n outline: 1px dashed red;\n border-color: white;\n }\n }\n }\n}\n",".drawer {\n width: 300px;\n box-sizing: border-box;\n display: flex;\n flex-direction: column;\n overflow-y: hidden;\n padding: 10px 5px;\n flex: none;\n\n &:first-child {\n padding-left: 10px;\n }\n\n &:last-child {\n padding-right: 10px;\n }\n\n @include single-column('screen and (max-width: 630px)') { flex: auto }\n\n @include limited-single-column('screen and (max-width: 630px)') {\n &, &:first-child, &:last-child { padding: 0 }\n }\n\n .wide & {\n min-width: 300px;\n max-width: 400px;\n flex: 1 1 200px;\n }\n\n @include single-column('screen and (max-width: 630px)') {\n :root & { // Overrides `.wide` for single-column view\n flex: auto;\n width: 100%;\n min-width: 0;\n max-width: none;\n padding: 0;\n }\n }\n\n .react-swipeable-view-container & { height: 100% }\n}\n\n.drawer--header {\n display: flex;\n flex-direction: row;\n margin-bottom: 10px;\n flex: none;\n background: lighten($ui-base-color, 8%);\n font-size: 16px;\n\n & > * {\n display: block;\n box-sizing: border-box;\n border-bottom: 2px solid transparent;\n padding: 15px 5px 13px;\n height: 48px;\n flex: 1 1 auto;\n color: $darker-text-color;\n text-align: center;\n text-decoration: none;\n cursor: pointer;\n }\n\n a {\n transition: background 100ms ease-in;\n\n &:focus,\n &:hover {\n outline: none;\n background: lighten($ui-base-color, 3%);\n transition: background 200ms ease-out;\n }\n }\n}\n\n.search {\n position: relative;\n margin-bottom: 10px;\n flex: none;\n\n @include limited-single-column('screen and (max-width: #{$no-gap-breakpoint})') { margin-bottom: 0 }\n @include single-column('screen and (max-width: 630px)') { font-size: 16px }\n}\n\n.search-popout {\n @include search-popout();\n}\n\n.drawer--account {\n padding: 10px;\n color: $darker-text-color;\n display: flex;\n align-items: center;\n\n a {\n color: inherit;\n text-decoration: none;\n }\n\n .acct {\n display: block;\n color: $secondary-text-color;\n font-weight: 500;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n}\n\n.navigation-bar__profile {\n flex: 1 1 auto;\n margin-left: 8px;\n overflow: hidden;\n}\n\n.drawer--results {\n background: $ui-base-color;\n overflow-x: hidden;\n overflow-y: auto;\n\n & > header {\n color: $dark-text-color;\n background: lighten($ui-base-color, 2%);\n padding: 15px;\n font-weight: 500;\n font-size: 16px;\n cursor: default;\n\n .fa {\n display: inline-block;\n margin-right: 5px;\n }\n }\n\n & > section {\n margin-bottom: 5px;\n\n h5 {\n background: darken($ui-base-color, 4%);\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n cursor: default;\n display: flex;\n padding: 15px;\n font-weight: 500;\n font-size: 16px;\n color: $dark-text-color;\n\n .fa {\n display: inline-block;\n margin-right: 5px;\n }\n }\n\n .account:last-child,\n & > div:last-child .status {\n border-bottom: 0;\n }\n\n & > .hashtag {\n display: block;\n padding: 10px;\n color: $secondary-text-color;\n text-decoration: none;\n\n &:hover,\n &:active,\n &:focus {\n color: lighten($secondary-text-color, 4%);\n text-decoration: underline;\n }\n }\n }\n}\n\n.drawer__pager {\n box-sizing: border-box;\n padding: 0;\n flex-grow: 1;\n position: relative;\n overflow: hidden;\n display: flex;\n}\n\n.drawer__inner {\n position: absolute;\n top: 0;\n left: 0;\n background: lighten($ui-base-color, 13%);\n box-sizing: border-box;\n padding: 0;\n display: flex;\n flex-direction: column;\n overflow: hidden;\n overflow-y: auto;\n width: 100%;\n height: 100%;\n\n &.darker {\n background: $ui-base-color;\n }\n}\n\n.drawer__inner__mastodon {\n background: lighten($ui-base-color, 13%) url('data:image/svg+xml;utf8,') no-repeat bottom / 100% auto;\n flex: 1;\n min-height: 47px;\n display: none;\n\n > img {\n display: block;\n object-fit: contain;\n object-position: bottom left;\n width: 85%;\n height: 100%;\n pointer-events: none;\n user-drag: none;\n user-select: none;\n }\n\n > .mastodon {\n display: block;\n width: 100%;\n height: 100%;\n border: none;\n cursor: inherit;\n }\n\n @media screen and (min-height: 640px) {\n display: block;\n }\n}\n\n.pseudo-drawer {\n background: lighten($ui-base-color, 13%);\n font-size: 13px;\n text-align: left;\n}\n\n.drawer__backdrop {\n cursor: pointer;\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n background: rgba($base-overlay-background, 0.5);\n}\n",".video-error-cover {\n align-items: center;\n background: $base-overlay-background;\n color: $primary-text-color;\n cursor: pointer;\n display: flex;\n flex-direction: column;\n height: 100%;\n justify-content: center;\n margin-top: 8px;\n position: relative;\n text-align: center;\n z-index: 100;\n}\n\n.media-spoiler {\n background: $base-overlay-background;\n color: $darker-text-color;\n border: 0;\n width: 100%;\n height: 100%;\n\n &:hover,\n &:active,\n &:focus {\n color: lighten($darker-text-color, 8%);\n }\n\n .status__content > & {\n margin-top: 15px; // Add margin when used bare for NSFW video player\n }\n @include fullwidth-gallery;\n}\n\n.media-spoiler__warning {\n display: block;\n font-size: 14px;\n}\n\n.media-spoiler__trigger {\n display: block;\n font-size: 11px;\n font-weight: 500;\n}\n\n.media-gallery__gifv__label {\n display: block;\n position: absolute;\n color: $primary-text-color;\n background: rgba($base-overlay-background, 0.5);\n bottom: 6px;\n left: 6px;\n padding: 2px 6px;\n border-radius: 2px;\n font-size: 11px;\n font-weight: 600;\n z-index: 1;\n pointer-events: none;\n opacity: 0.9;\n transition: opacity 0.1s ease;\n line-height: 18px;\n}\n\n.media-gallery__gifv {\n &:hover {\n .media-gallery__gifv__label {\n opacity: 1;\n }\n }\n}\n\n.media-gallery__audio {\n height: 100%;\n display: flex;\n flex-direction: column;\n\n span {\n text-align: center;\n color: $darker-text-color;\n display: flex;\n height: 100%;\n align-items: center;\n\n p {\n width: 100%;\n }\n }\n\n audio {\n width: 100%;\n }\n}\n\n.media-gallery {\n box-sizing: border-box;\n margin-top: 8px;\n overflow: hidden;\n border-radius: 4px;\n position: relative;\n width: 100%;\n height: 110px;\n\n @include fullwidth-gallery;\n}\n\n.media-gallery__item {\n border: none;\n box-sizing: border-box;\n display: block;\n float: left;\n position: relative;\n border-radius: 4px;\n overflow: hidden;\n\n .full-width & {\n border-radius: 0;\n }\n\n &.standalone {\n .media-gallery__item-gifv-thumbnail {\n transform: none;\n top: 0;\n }\n }\n\n &.letterbox {\n background: $base-shadow-color;\n }\n}\n\n.media-gallery__item-thumbnail {\n cursor: zoom-in;\n display: block;\n text-decoration: none;\n color: $secondary-text-color;\n position: relative;\n z-index: 1;\n\n &,\n img {\n height: 100%;\n width: 100%;\n object-fit: contain;\n\n &:not(.letterbox) {\n height: 100%;\n object-fit: cover;\n }\n }\n}\n\n.media-gallery__preview {\n width: 100%;\n height: 100%;\n object-fit: cover;\n position: absolute;\n top: 0;\n left: 0;\n z-index: 0;\n background: $base-overlay-background;\n\n &--hidden {\n display: none;\n }\n}\n\n.media-gallery__gifv {\n height: 100%;\n overflow: hidden;\n position: relative;\n width: 100%;\n display: flex;\n justify-content: center;\n}\n\n.media-gallery__item-gifv-thumbnail {\n cursor: zoom-in;\n height: 100%;\n width: 100%;\n position: relative;\n z-index: 1;\n object-fit: contain;\n user-select: none;\n\n &:not(.letterbox) {\n height: 100%;\n object-fit: cover;\n }\n}\n\n.media-gallery__item-thumbnail-label {\n clip: rect(1px 1px 1px 1px); /* IE6, IE7 */\n clip: rect(1px, 1px, 1px, 1px);\n overflow: hidden;\n position: absolute;\n}\n\n.video-modal__container {\n max-width: 100vw;\n max-height: 100vh;\n}\n\n.audio-modal__container {\n width: 50vw;\n}\n\n.media-modal {\n width: 100%;\n height: 100%;\n position: relative;\n\n .extended-video-player {\n width: 100%;\n height: 100%;\n display: flex;\n align-items: center;\n justify-content: center;\n\n video {\n max-width: $media-modal-media-max-width;\n max-height: $media-modal-media-max-height;\n }\n }\n}\n\n.media-modal__closer {\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n}\n\n.media-modal__navigation {\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n pointer-events: none;\n transition: opacity 0.3s linear;\n will-change: opacity;\n\n * {\n pointer-events: auto;\n }\n\n &.media-modal__navigation--hidden {\n opacity: 0;\n\n * {\n pointer-events: none;\n }\n }\n}\n\n.media-modal__nav {\n background: rgba($base-overlay-background, 0.5);\n box-sizing: border-box;\n border: 0;\n color: $primary-text-color;\n cursor: pointer;\n display: flex;\n align-items: center;\n font-size: 24px;\n height: 20vmax;\n margin: auto 0;\n padding: 30px 15px;\n position: absolute;\n top: 0;\n bottom: 0;\n}\n\n.media-modal__nav--left {\n left: 0;\n}\n\n.media-modal__nav--right {\n right: 0;\n}\n\n.media-modal__pagination {\n width: 100%;\n text-align: center;\n position: absolute;\n left: 0;\n bottom: 20px;\n pointer-events: none;\n}\n\n.media-modal__meta {\n text-align: center;\n position: absolute;\n left: 0;\n bottom: 20px;\n width: 100%;\n pointer-events: none;\n\n &--shifted {\n bottom: 62px;\n }\n\n a {\n pointer-events: auto;\n text-decoration: none;\n font-weight: 500;\n color: $ui-secondary-color;\n\n &:hover,\n &:focus,\n &:active {\n text-decoration: underline;\n }\n }\n}\n\n.media-modal__page-dot {\n display: inline-block;\n}\n\n.media-modal__button {\n background-color: $white;\n height: 12px;\n width: 12px;\n border-radius: 6px;\n margin: 10px;\n padding: 0;\n border: 0;\n font-size: 0;\n}\n\n.media-modal__button--active {\n background-color: $ui-highlight-color;\n}\n\n.media-modal__close {\n position: absolute;\n right: 8px;\n top: 8px;\n z-index: 100;\n}\n\n.detailed,\n.fullscreen {\n .video-player__volume__current,\n .video-player__volume::before {\n bottom: 27px;\n }\n\n .video-player__volume__handle {\n bottom: 23px;\n }\n\n}\n\n.audio-player {\n box-sizing: border-box;\n position: relative;\n background: darken($ui-base-color, 8%);\n border-radius: 4px;\n padding-bottom: 44px;\n direction: ltr;\n\n &.editable {\n border-radius: 0;\n height: 100%;\n }\n\n &__waveform {\n padding: 15px 0;\n position: relative;\n overflow: hidden;\n\n &::before {\n content: \"\";\n display: block;\n position: absolute;\n border-top: 1px solid lighten($ui-base-color, 4%);\n width: 100%;\n height: 0;\n left: 0;\n top: calc(50% + 1px);\n }\n }\n\n &__progress-placeholder {\n background-color: rgba(lighten($ui-highlight-color, 8%), 0.5);\n }\n\n &__wave-placeholder {\n background-color: lighten($ui-base-color, 16%);\n }\n\n .video-player__controls {\n padding: 0 15px;\n padding-top: 10px;\n background: darken($ui-base-color, 8%);\n border-top: 1px solid lighten($ui-base-color, 4%);\n border-radius: 0 0 4px 4px;\n }\n}\n\n.video-player {\n overflow: hidden;\n position: relative;\n background: $base-shadow-color;\n max-width: 100%;\n border-radius: 4px;\n box-sizing: border-box;\n direction: ltr;\n\n &.editable {\n border-radius: 0;\n height: 100% !important;\n }\n\n &:focus {\n outline: 0;\n }\n\n .detailed-status & {\n width: 100%;\n height: 100%;\n }\n\n @include fullwidth-gallery;\n\n video {\n max-width: 100vw;\n max-height: 80vh;\n z-index: 1;\n position: relative;\n }\n\n &.fullscreen {\n width: 100% !important;\n height: 100% !important;\n margin: 0;\n\n video {\n max-width: 100% !important;\n max-height: 100% !important;\n width: 100% !important;\n height: 100% !important;\n outline: 0;\n }\n }\n\n &.inline {\n video {\n object-fit: contain;\n position: relative;\n top: 50%;\n transform: translateY(-50%);\n }\n }\n\n &__controls {\n position: absolute;\n z-index: 2;\n bottom: 0;\n left: 0;\n right: 0;\n box-sizing: border-box;\n background: linear-gradient(0deg, rgba($base-shadow-color, 0.85) 0, rgba($base-shadow-color, 0.45) 60%, transparent);\n padding: 0 15px;\n opacity: 0;\n transition: opacity .1s ease;\n\n &.active {\n opacity: 1;\n }\n }\n\n &.inactive {\n video,\n .video-player__controls {\n visibility: hidden;\n }\n }\n\n &__spoiler {\n display: none;\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n z-index: 4;\n border: 0;\n background: $base-shadow-color;\n color: $darker-text-color;\n transition: none;\n pointer-events: none;\n\n &.active {\n display: block;\n pointer-events: auto;\n\n &:hover,\n &:active,\n &:focus {\n color: lighten($darker-text-color, 7%);\n }\n }\n\n &__title {\n display: block;\n font-size: 14px;\n }\n\n &__subtitle {\n display: block;\n font-size: 11px;\n font-weight: 500;\n }\n }\n\n &__buttons-bar {\n display: flex;\n justify-content: space-between;\n padding-bottom: 10px;\n\n .video-player__download__icon {\n color: inherit;\n\n .fa,\n &:active .fa,\n &:hover .fa,\n &:focus .fa {\n color: inherit;\n }\n }\n }\n\n &__buttons {\n font-size: 16px;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n\n &.left {\n button {\n padding-left: 0;\n }\n }\n\n &.right {\n button {\n padding-right: 0;\n }\n }\n\n button {\n background: transparent;\n padding: 2px 10px;\n font-size: 16px;\n border: 0;\n color: rgba($white, 0.75);\n\n &:active,\n &:hover,\n &:focus {\n color: $white;\n }\n }\n }\n\n &__time-sep,\n &__time-total,\n &__time-current {\n font-size: 14px;\n font-weight: 500;\n }\n\n &__time-current {\n color: $white;\n margin-left: 60px;\n }\n\n &__time-sep {\n display: inline-block;\n margin: 0 6px;\n }\n\n &__time-sep,\n &__time-total {\n color: $white;\n }\n\n &__volume {\n cursor: pointer;\n height: 24px;\n display: inline;\n\n &::before {\n content: \"\";\n width: 50px;\n background: rgba($white, 0.35);\n border-radius: 4px;\n display: block;\n position: absolute;\n height: 4px;\n left: 70px;\n bottom: 20px;\n }\n\n &__current {\n display: block;\n position: absolute;\n height: 4px;\n border-radius: 4px;\n left: 70px;\n bottom: 20px;\n background: lighten($ui-highlight-color, 8%);\n }\n\n &__handle {\n position: absolute;\n z-index: 3;\n border-radius: 50%;\n width: 12px;\n height: 12px;\n bottom: 16px;\n left: 70px;\n transition: opacity .1s ease;\n background: lighten($ui-highlight-color, 8%);\n box-shadow: 1px 2px 6px rgba($base-shadow-color, 0.2);\n pointer-events: none;\n }\n }\n\n &__link {\n padding: 2px 10px;\n\n a {\n text-decoration: none;\n font-size: 14px;\n font-weight: 500;\n color: $white;\n\n &:hover,\n &:active,\n &:focus {\n text-decoration: underline;\n }\n }\n }\n\n &__seek {\n cursor: pointer;\n height: 24px;\n position: relative;\n\n &::before {\n content: \"\";\n width: 100%;\n background: rgba($white, 0.35);\n border-radius: 4px;\n display: block;\n position: absolute;\n height: 4px;\n top: 10px;\n }\n\n &__progress,\n &__buffer {\n display: block;\n position: absolute;\n height: 4px;\n border-radius: 4px;\n top: 10px;\n background: lighten($ui-highlight-color, 8%);\n }\n\n &__buffer {\n background: rgba($white, 0.2);\n }\n\n &__handle {\n position: absolute;\n z-index: 3;\n opacity: 0;\n border-radius: 50%;\n width: 12px;\n height: 12px;\n top: 6px;\n margin-left: -6px;\n transition: opacity .1s ease;\n background: lighten($ui-highlight-color, 8%);\n box-shadow: 1px 2px 6px rgba($base-shadow-color, 0.2);\n pointer-events: none;\n\n &.active {\n opacity: 1;\n }\n }\n\n &:hover {\n .video-player__seek__handle {\n opacity: 1;\n }\n }\n }\n\n &.detailed,\n &.fullscreen {\n .video-player__buttons {\n button {\n padding-top: 10px;\n padding-bottom: 10px;\n }\n }\n }\n}\n",".sensitive-info {\n display: flex;\n flex-direction: row;\n align-items: center;\n position: absolute;\n top: 4px;\n left: 4px;\n z-index: 100;\n}\n\n.sensitive-marker {\n margin: 0 3px;\n border-radius: 2px;\n padding: 2px 6px;\n color: rgba($primary-text-color, 0.8);\n background: rgba($base-overlay-background, 0.5);\n font-size: 12px;\n line-height: 18px;\n text-transform: uppercase;\n opacity: .9;\n transition: opacity .1s ease;\n\n .media-gallery:hover & { opacity: 1 }\n}\n",".list-editor {\n background: $ui-base-color;\n flex-direction: column;\n border-radius: 8px;\n box-shadow: 2px 4px 15px rgba($base-shadow-color, 0.4);\n width: 380px;\n overflow: hidden;\n\n @media screen and (max-width: 420px) {\n width: 90%;\n }\n\n h4 {\n padding: 15px 0;\n background: lighten($ui-base-color, 13%);\n font-weight: 500;\n font-size: 16px;\n text-align: center;\n border-radius: 8px 8px 0 0;\n }\n\n .drawer__pager {\n height: 50vh;\n }\n\n .drawer__inner {\n border-radius: 0 0 8px 8px;\n\n &.backdrop {\n width: calc(100% - 60px);\n box-shadow: 2px 4px 15px rgba($base-shadow-color, 0.4);\n border-radius: 0 0 0 8px;\n }\n }\n\n &__accounts {\n overflow-y: auto;\n }\n\n .account__display-name {\n &:hover strong {\n text-decoration: none;\n }\n }\n\n .account__avatar {\n cursor: default;\n }\n\n .search {\n margin-bottom: 0;\n }\n}\n\n.list-adder {\n background: $ui-base-color;\n flex-direction: column;\n border-radius: 8px;\n box-shadow: 2px 4px 15px rgba($base-shadow-color, 0.4);\n width: 380px;\n overflow: hidden;\n\n @media screen and (max-width: 420px) {\n width: 90%;\n }\n\n &__account {\n background: lighten($ui-base-color, 13%);\n }\n\n &__lists {\n background: lighten($ui-base-color, 13%);\n height: 50vh;\n border-radius: 0 0 8px 8px;\n overflow-y: auto;\n }\n\n .list {\n padding: 10px;\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n }\n\n .list__wrapper {\n display: flex;\n }\n\n .list__display-name {\n flex: 1 1 auto;\n overflow: hidden;\n text-decoration: none;\n font-size: 16px;\n padding: 10px;\n }\n}\n",".emoji-mart {\n &,\n * {\n box-sizing: border-box;\n line-height: 1.15;\n }\n\n font-size: 13px;\n display: inline-block;\n color: $inverted-text-color;\n\n .emoji-mart-emoji {\n padding: 6px;\n }\n}\n\n.emoji-mart-bar {\n border: 0 solid darken($ui-secondary-color, 8%);\n\n &:first-child {\n border-bottom-width: 1px;\n border-top-left-radius: 5px;\n border-top-right-radius: 5px;\n background: $ui-secondary-color;\n }\n\n &:last-child {\n border-top-width: 1px;\n border-bottom-left-radius: 5px;\n border-bottom-right-radius: 5px;\n display: none;\n }\n}\n\n.emoji-mart-anchors {\n display: flex;\n justify-content: space-between;\n padding: 0 6px;\n color: $lighter-text-color;\n line-height: 0;\n}\n\n.emoji-mart-anchor {\n position: relative;\n flex: 1;\n text-align: center;\n padding: 12px 4px;\n overflow: hidden;\n transition: color .1s ease-out;\n cursor: pointer;\n\n &:hover {\n color: darken($lighter-text-color, 4%);\n }\n}\n\n.emoji-mart-anchor-selected {\n color: $highlight-text-color;\n\n &:hover {\n color: darken($highlight-text-color, 4%);\n }\n\n .emoji-mart-anchor-bar {\n bottom: 0;\n }\n}\n\n.emoji-mart-anchor-bar {\n position: absolute;\n bottom: -3px;\n left: 0;\n width: 100%;\n height: 3px;\n background-color: darken($ui-highlight-color, 3%);\n}\n\n.emoji-mart-anchors {\n i {\n display: inline-block;\n width: 100%;\n max-width: 22px;\n }\n\n svg {\n fill: currentColor;\n max-height: 18px;\n }\n}\n\n.emoji-mart-scroll {\n overflow-y: scroll;\n height: 270px;\n max-height: 35vh;\n padding: 0 6px 6px;\n background: $simple-background-color;\n will-change: transform;\n\n &::-webkit-scrollbar-track:hover,\n &::-webkit-scrollbar-track:active {\n background-color: rgba($base-overlay-background, 0.3);\n }\n}\n\n.emoji-mart-search {\n padding: 10px;\n padding-right: 45px;\n background: $simple-background-color;\n\n input {\n font-size: 14px;\n font-weight: 400;\n padding: 7px 9px;\n font-family: inherit;\n display: block;\n width: 100%;\n background: rgba($ui-secondary-color, 0.3);\n color: $inverted-text-color;\n border: 1px solid $ui-secondary-color;\n border-radius: 4px;\n\n &::-moz-focus-inner {\n border: 0;\n }\n\n &::-moz-focus-inner,\n &:focus,\n &:active {\n outline: 0 !important;\n }\n }\n}\n\n.emoji-mart-category .emoji-mart-emoji {\n cursor: pointer;\n\n span {\n z-index: 1;\n position: relative;\n text-align: center;\n }\n\n &:hover::before {\n z-index: 0;\n content: \"\";\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n background-color: rgba($ui-secondary-color, 0.7);\n border-radius: 100%;\n }\n}\n\n.emoji-mart-category-label {\n z-index: 2;\n position: relative;\n position: -webkit-sticky;\n position: sticky;\n top: 0;\n\n span {\n display: block;\n width: 100%;\n font-weight: 500;\n padding: 5px 6px;\n background: $simple-background-color;\n }\n}\n\n.emoji-mart-emoji {\n position: relative;\n display: inline-block;\n font-size: 0;\n\n span {\n width: 22px;\n height: 22px;\n }\n}\n\n.emoji-mart-no-results {\n font-size: 14px;\n text-align: center;\n padding-top: 70px;\n color: $light-text-color;\n\n .emoji-mart-category-label {\n display: none;\n }\n\n .emoji-mart-no-results-label {\n margin-top: .2em;\n }\n\n .emoji-mart-emoji:hover::before {\n content: none;\n }\n}\n\n.emoji-mart-preview {\n display: none;\n}\n",".glitch.local-settings {\n position: relative;\n display: flex;\n flex-direction: row;\n background: $ui-secondary-color;\n color: $inverted-text-color;\n border-radius: 8px;\n height: 80vh;\n width: 80vw;\n max-width: 740px;\n max-height: 450px;\n overflow: hidden;\n\n label, legend {\n display: block;\n font-size: 14px;\n }\n\n .boolean label, .radio_buttons label {\n position: relative;\n padding-left: 28px;\n padding-top: 3px;\n\n input {\n position: absolute;\n left: 0;\n top: 0;\n }\n }\n\n span.hint {\n display: block;\n color: $lighter-text-color;\n }\n\n h1 {\n font-size: 18px;\n font-weight: 500;\n line-height: 24px;\n margin-bottom: 20px;\n }\n\n h2 {\n font-size: 15px;\n font-weight: 500;\n line-height: 20px;\n margin-top: 20px;\n margin-bottom: 10px;\n }\n}\n\n.glitch.local-settings__navigation__item {\n display: block;\n padding: 15px 20px;\n color: inherit;\n background: lighten($ui-secondary-color, 8%);\n border-bottom: 1px $ui-secondary-color solid;\n cursor: pointer;\n text-decoration: none;\n outline: none;\n transition: background .3s;\n\n .text-icon-button {\n color: inherit;\n transition: unset;\n }\n\n &:hover {\n background: $ui-secondary-color;\n }\n\n &.active {\n background: $ui-highlight-color;\n color: $primary-text-color;\n }\n\n &.close, &.close:hover {\n background: $error-value-color;\n color: $primary-text-color;\n }\n}\n\n.glitch.local-settings__navigation {\n background: lighten($ui-secondary-color, 8%);\n width: 212px;\n font-size: 15px;\n line-height: 20px;\n overflow-y: auto;\n}\n\n.glitch.local-settings__page {\n display: block;\n flex: auto;\n padding: 15px 20px 15px 20px;\n width: 360px;\n overflow-y: auto;\n}\n\n.glitch.local-settings__page__item {\n margin-bottom: 2px;\n}\n\n.glitch.local-settings__page__item.string,\n.glitch.local-settings__page__item.radio_buttons {\n margin-top: 10px;\n margin-bottom: 10px;\n}\n\n@media screen and (max-width: 630px) {\n .glitch.local-settings__navigation {\n width: 40px;\n flex-shrink: 0;\n }\n\n .glitch.local-settings__navigation__item {\n padding: 10px;\n\n span:last-of-type {\n display: none;\n }\n }\n}\n",".error-boundary {\n color: $primary-text-color;\n font-size: 15px;\n line-height: 20px;\n\n h1 {\n font-size: 26px;\n line-height: 36px;\n font-weight: 400;\n margin-bottom: 8px;\n }\n\n a {\n color: $primary-text-color;\n text-decoration: underline;\n }\n\n ul {\n list-style: disc;\n margin-left: 0;\n padding-left: 1em;\n }\n\n textarea.web_app_crash-stacktrace {\n width: 100%;\n resize: none;\n white-space: pre;\n font-family: $font-monospace, monospace;\n }\n}\n",".compose-panel {\n width: 285px;\n margin-top: 10px;\n display: flex;\n flex-direction: column;\n height: calc(100% - 10px);\n overflow-y: hidden;\n\n .search__input {\n line-height: 18px;\n font-size: 16px;\n padding: 15px;\n padding-right: 30px;\n }\n\n .search__icon .fa {\n top: 15px;\n }\n\n .drawer--account {\n flex: 0 1 48px;\n }\n\n .flex-spacer {\n background: transparent;\n }\n\n .composer {\n flex: 1;\n overflow-y: hidden;\n display: flex;\n flex-direction: column;\n min-height: 310px;\n }\n\n .compose-form__autosuggest-wrapper {\n overflow-y: auto;\n background-color: $white;\n border-radius: 4px 4px 0 0;\n flex: 0 1 auto;\n }\n\n .autosuggest-textarea__textarea {\n overflow-y: hidden;\n }\n\n .compose-form__upload-thumbnail {\n height: 80px;\n }\n}\n\n.navigation-panel {\n margin-top: 10px;\n margin-bottom: 10px;\n height: calc(100% - 20px);\n overflow-y: auto;\n display: flex;\n flex-direction: column;\n\n & > a {\n flex: 0 0 auto;\n }\n\n hr {\n flex: 0 0 auto;\n border: 0;\n background: transparent;\n border-top: 1px solid lighten($ui-base-color, 4%);\n margin: 10px 0;\n }\n\n .flex-spacer {\n background: transparent;\n }\n}\n\n@media screen and (min-width: 600px) {\n .tabs-bar__link {\n span {\n display: inline;\n }\n }\n}\n\n.columns-area--mobile {\n flex-direction: column;\n width: 100%;\n margin: 0 auto;\n\n .column,\n .drawer {\n width: 100%;\n height: 100%;\n padding: 0;\n }\n\n .directory__list {\n display: grid;\n grid-gap: 10px;\n grid-template-columns: minmax(0, 50%) minmax(0, 50%);\n\n @media screen and (max-width: $no-gap-breakpoint) {\n display: block;\n }\n }\n\n .directory__card {\n margin-bottom: 0;\n }\n\n .filter-form {\n display: flex;\n }\n\n .autosuggest-textarea__textarea {\n font-size: 16px;\n }\n\n .search__input {\n line-height: 18px;\n font-size: 16px;\n padding: 15px;\n padding-right: 30px;\n }\n\n .search__icon .fa {\n top: 15px;\n }\n\n .scrollable {\n overflow: visible;\n\n @supports(display: grid) {\n contain: content;\n }\n }\n\n @media screen and (min-width: $no-gap-breakpoint) {\n padding: 10px 0;\n padding-top: 0;\n }\n\n @media screen and (min-width: 630px) {\n .detailed-status {\n padding: 15px;\n\n .media-gallery,\n .video-player,\n .audio-player {\n margin-top: 15px;\n }\n }\n\n .account__header__bar {\n padding: 5px 10px;\n }\n\n .navigation-bar,\n .compose-form {\n padding: 15px;\n }\n\n .compose-form .compose-form__publish .compose-form__publish-button-wrapper {\n padding-top: 15px;\n }\n\n .status {\n padding: 15px;\n min-height: 48px + 2px;\n\n .media-gallery,\n &__action-bar,\n .video-player,\n .audio-player {\n margin-top: 10px;\n }\n }\n\n .account {\n padding: 15px 10px;\n\n &__header__bio {\n margin: 0 -10px;\n }\n }\n\n .notification {\n &__message {\n padding-top: 15px;\n }\n\n .status {\n padding-top: 8px;\n }\n\n .account {\n padding-top: 8px;\n }\n }\n }\n}\n\n.floating-action-button {\n position: fixed;\n display: flex;\n justify-content: center;\n align-items: center;\n width: 3.9375rem;\n height: 3.9375rem;\n bottom: 1.3125rem;\n right: 1.3125rem;\n background: darken($ui-highlight-color, 3%);\n color: $white;\n border-radius: 50%;\n font-size: 21px;\n line-height: 21px;\n text-decoration: none;\n box-shadow: 2px 3px 9px rgba($base-shadow-color, 0.4);\n\n &:hover,\n &:focus,\n &:active {\n background: lighten($ui-highlight-color, 7%);\n }\n}\n\n@media screen and (min-width: $no-gap-breakpoint) {\n .tabs-bar {\n width: 100%;\n }\n\n .react-swipeable-view-container .columns-area--mobile {\n height: calc(100% - 10px) !important;\n }\n\n .getting-started__wrapper,\n .search {\n margin-bottom: 10px;\n }\n}\n\n@media screen and (max-width: 600px + (285px * 1) + (10px * 1)) {\n .columns-area__panels__pane--compositional {\n display: none;\n }\n}\n\n@media screen and (min-width: 600px + (285px * 1) + (10px * 1)) {\n .floating-action-button,\n .tabs-bar__link.optional {\n display: none;\n }\n\n .search-page .search {\n display: none;\n }\n}\n\n@media screen and (max-width: 600px + (285px * 2) + (10px * 2)) {\n .columns-area__panels__pane--navigational {\n display: none;\n }\n}\n\n@media screen and (min-width: 600px + (285px * 2) + (10px * 2)) {\n .tabs-bar {\n display: none;\n }\n}\n",".announcements__item__content {\n word-wrap: break-word;\n overflow-y: auto;\n\n .emojione {\n width: 20px;\n height: 20px;\n margin: -3px 0 0;\n }\n\n p {\n margin-bottom: 10px;\n white-space: pre-wrap;\n\n &:last-child {\n margin-bottom: 0;\n }\n }\n\n a {\n color: $secondary-text-color;\n text-decoration: none;\n\n &:hover {\n text-decoration: underline;\n }\n\n &.mention {\n &:hover {\n text-decoration: none;\n\n span {\n text-decoration: underline;\n }\n }\n }\n\n &.unhandled-link {\n color: lighten($ui-highlight-color, 8%);\n }\n }\n}\n\n.announcements {\n background: lighten($ui-base-color, 8%);\n font-size: 13px;\n display: flex;\n align-items: flex-end;\n\n &__mastodon {\n width: 124px;\n flex: 0 0 auto;\n\n @media screen and (max-width: 124px + 300px) {\n display: none;\n }\n }\n\n &__container {\n width: calc(100% - 124px);\n flex: 0 0 auto;\n position: relative;\n\n @media screen and (max-width: 124px + 300px) {\n width: 100%;\n }\n }\n\n &__item {\n box-sizing: border-box;\n width: 100%;\n padding: 15px;\n position: relative;\n font-size: 15px;\n line-height: 20px;\n word-wrap: break-word;\n font-weight: 400;\n max-height: 50vh;\n overflow: hidden;\n display: flex;\n flex-direction: column;\n\n &__range {\n display: block;\n font-weight: 500;\n margin-bottom: 10px;\n padding-right: 18px;\n }\n\n &__unread {\n position: absolute;\n top: 19px;\n right: 19px;\n display: block;\n background: $highlight-text-color;\n border-radius: 50%;\n width: 0.625rem;\n height: 0.625rem;\n }\n }\n\n &__pagination {\n padding: 15px;\n color: $darker-text-color;\n position: absolute;\n bottom: 3px;\n right: 0;\n }\n}\n\n.layout-multiple-columns .announcements__mastodon {\n display: none;\n}\n\n.layout-multiple-columns .announcements__container {\n width: 100%;\n}\n\n.reactions-bar {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n margin-top: 15px;\n margin-left: -2px;\n width: calc(100% - (90px - 33px));\n\n &__item {\n flex-shrink: 0;\n background: lighten($ui-base-color, 12%);\n border: 0;\n border-radius: 3px;\n margin: 2px;\n cursor: pointer;\n user-select: none;\n padding: 0 6px;\n display: flex;\n align-items: center;\n transition: all 100ms ease-in;\n transition-property: background-color, color;\n\n &__emoji {\n display: block;\n margin: 3px 0;\n width: 16px;\n height: 16px;\n\n img {\n display: block;\n margin: 0;\n width: 100%;\n height: 100%;\n min-width: auto;\n min-height: auto;\n vertical-align: bottom;\n object-fit: contain;\n }\n }\n\n &__count {\n display: block;\n min-width: 9px;\n font-size: 13px;\n font-weight: 500;\n text-align: center;\n margin-left: 6px;\n color: $darker-text-color;\n }\n\n &:hover,\n &:focus,\n &:active {\n background: lighten($ui-base-color, 16%);\n transition: all 200ms ease-out;\n transition-property: background-color, color;\n\n &__count {\n color: lighten($darker-text-color, 4%);\n }\n }\n\n &.active {\n transition: all 100ms ease-in;\n transition-property: background-color, color;\n background-color: mix(lighten($ui-base-color, 12%), $ui-highlight-color, 80%);\n\n .reactions-bar__item__count {\n color: lighten($highlight-text-color, 8%);\n }\n }\n }\n\n .emoji-picker-dropdown {\n margin: 2px;\n }\n\n &:hover .emoji-button {\n opacity: 0.85;\n }\n\n .emoji-button {\n color: $darker-text-color;\n margin: 0;\n font-size: 16px;\n width: auto;\n flex-shrink: 0;\n padding: 0 6px;\n height: 22px;\n display: flex;\n align-items: center;\n opacity: 0.5;\n transition: all 100ms ease-in;\n transition-property: background-color, color;\n\n &:hover,\n &:active,\n &:focus {\n opacity: 1;\n color: lighten($darker-text-color, 4%);\n transition: all 200ms ease-out;\n transition-property: background-color, color;\n }\n }\n\n &--empty {\n .emoji-button {\n padding: 0;\n }\n }\n}\n",".poll {\n margin-top: 16px;\n font-size: 14px;\n\n ul,\n .e-content & ul {\n margin: 0;\n list-style: none;\n }\n\n li {\n margin-bottom: 10px;\n position: relative;\n }\n\n &__chart {\n border-radius: 4px;\n display: block;\n background: darken($ui-primary-color, 5%);\n height: 5px;\n min-width: 1%;\n\n &.leading {\n background: $ui-highlight-color;\n }\n }\n\n &__option {\n position: relative;\n display: flex;\n padding: 6px 0;\n line-height: 18px;\n cursor: default;\n overflow: hidden;\n\n &__text {\n display: inline-block;\n word-wrap: break-word;\n overflow-wrap: break-word;\n max-width: calc(100% - 45px - 25px);\n }\n\n input[type=radio],\n input[type=checkbox] {\n display: none;\n }\n\n .autossugest-input {\n flex: 1 1 auto;\n }\n\n input[type=text] {\n display: block;\n box-sizing: border-box;\n width: 100%;\n font-size: 14px;\n color: $inverted-text-color;\n display: block;\n outline: 0;\n font-family: inherit;\n background: $simple-background-color;\n border: 1px solid darken($simple-background-color, 14%);\n border-radius: 4px;\n padding: 6px 10px;\n\n &:focus {\n border-color: $highlight-text-color;\n }\n }\n\n &.selectable {\n cursor: pointer;\n }\n\n &.editable {\n display: flex;\n align-items: center;\n overflow: visible;\n }\n }\n\n &__input {\n display: inline-block;\n position: relative;\n border: 1px solid $ui-primary-color;\n box-sizing: border-box;\n width: 18px;\n height: 18px;\n flex: 0 0 auto;\n margin-right: 10px;\n top: -1px;\n border-radius: 50%;\n vertical-align: middle;\n margin-top: auto;\n margin-bottom: auto;\n flex: 0 0 18px;\n\n &.checkbox {\n border-radius: 4px;\n }\n\n &.active {\n border-color: $valid-value-color;\n background: $valid-value-color;\n }\n\n &:active,\n &:focus,\n &:hover {\n border-color: lighten($valid-value-color, 15%);\n border-width: 4px;\n }\n\n &::-moz-focus-inner {\n outline: 0 !important;\n border: 0;\n }\n\n &:focus,\n &:active {\n outline: 0 !important;\n }\n }\n\n &__number {\n display: inline-block;\n width: 45px;\n font-weight: 700;\n flex: 0 0 45px;\n }\n\n &__voted {\n padding: 0 5px;\n display: inline-block;\n\n &__mark {\n font-size: 18px;\n }\n }\n\n &__footer {\n padding-top: 6px;\n padding-bottom: 5px;\n color: $dark-text-color;\n }\n\n &__link {\n display: inline;\n background: transparent;\n padding: 0;\n margin: 0;\n border: 0;\n color: $dark-text-color;\n text-decoration: underline;\n font-size: inherit;\n\n &:hover {\n text-decoration: none;\n }\n\n &:active,\n &:focus {\n background-color: rgba($dark-text-color, .1);\n }\n }\n\n .button {\n height: 36px;\n padding: 0 16px;\n margin-right: 10px;\n font-size: 14px;\n }\n}\n\n.compose-form__poll-wrapper {\n border-top: 1px solid darken($simple-background-color, 8%);\n overflow-x: hidden;\n\n ul {\n padding: 10px;\n }\n\n .poll__footer {\n border-top: 1px solid darken($simple-background-color, 8%);\n padding: 10px;\n display: flex;\n align-items: center;\n\n button,\n select {\n width: 100%;\n flex: 1 1 50%;\n\n &:focus {\n border-color: $highlight-text-color;\n }\n }\n }\n\n .button.button-secondary {\n font-size: 14px;\n font-weight: 400;\n padding: 6px 10px;\n height: auto;\n line-height: inherit;\n color: $action-button-color;\n border-color: $action-button-color;\n margin-right: 5px;\n }\n\n li {\n display: flex;\n align-items: center;\n\n .poll__option {\n flex: 0 0 auto;\n width: calc(100% - (23px + 6px));\n margin-right: 6px;\n }\n }\n\n select {\n appearance: none;\n box-sizing: border-box;\n font-size: 14px;\n color: $inverted-text-color;\n display: inline-block;\n width: auto;\n outline: 0;\n font-family: inherit;\n background: $simple-background-color url(\"data:image/svg+xml;utf8,\") no-repeat right 8px center / auto 16px;\n border: 1px solid darken($simple-background-color, 14%);\n border-radius: 4px;\n padding: 6px 10px;\n padding-right: 30px;\n }\n\n .icon-button.disabled {\n color: darken($simple-background-color, 14%);\n }\n}\n\n.muted .poll {\n color: $dark-text-color;\n\n &__chart {\n background: rgba(darken($ui-primary-color, 14%), 0.2);\n\n &.leading {\n background: rgba($ui-highlight-color, 0.2);\n }\n }\n}\n","$maximum-width: 1235px;\n$fluid-breakpoint: $maximum-width + 20px;\n$column-breakpoint: 700px;\n$small-breakpoint: 960px;\n\n.container {\n box-sizing: border-box;\n max-width: $maximum-width;\n margin: 0 auto;\n position: relative;\n\n @media screen and (max-width: $fluid-breakpoint) {\n width: 100%;\n padding: 0 10px;\n }\n}\n\n.rich-formatting {\n font-family: $font-sans-serif, sans-serif;\n font-size: 14px;\n font-weight: 400;\n line-height: 1.7;\n word-wrap: break-word;\n color: $darker-text-color;\n\n a {\n color: $highlight-text-color;\n text-decoration: underline;\n\n &:hover,\n &:focus,\n &:active {\n text-decoration: none;\n }\n }\n\n p,\n li {\n color: $darker-text-color;\n }\n\n p {\n margin-top: 0;\n margin-bottom: .85em;\n\n &:last-child {\n margin-bottom: 0;\n }\n }\n\n strong {\n font-weight: 700;\n color: $secondary-text-color;\n }\n\n em {\n font-style: italic;\n color: $secondary-text-color;\n }\n\n code {\n font-size: 0.85em;\n background: darken($ui-base-color, 8%);\n border-radius: 4px;\n padding: 0.2em 0.3em;\n }\n\n h1,\n h2,\n h3,\n h4,\n h5,\n h6 {\n font-family: $font-display, sans-serif;\n margin-top: 1.275em;\n margin-bottom: .85em;\n font-weight: 500;\n color: $secondary-text-color;\n }\n\n h1 {\n font-size: 2em;\n }\n\n h2 {\n font-size: 1.75em;\n }\n\n h3 {\n font-size: 1.5em;\n }\n\n h4 {\n font-size: 1.25em;\n }\n\n h5,\n h6 {\n font-size: 1em;\n }\n\n ul {\n list-style: disc;\n }\n\n ol {\n list-style: decimal;\n }\n\n ul,\n ol {\n margin: 0;\n padding: 0;\n padding-left: 2em;\n margin-bottom: 0.85em;\n\n &[type='a'] {\n list-style-type: lower-alpha;\n }\n\n &[type='i'] {\n list-style-type: lower-roman;\n }\n }\n\n hr {\n width: 100%;\n height: 0;\n border: 0;\n border-bottom: 1px solid lighten($ui-base-color, 4%);\n margin: 1.7em 0;\n\n &.spacer {\n height: 1px;\n border: 0;\n }\n }\n\n table {\n width: 100%;\n border-collapse: collapse;\n break-inside: auto;\n margin-top: 24px;\n margin-bottom: 32px;\n\n thead tr,\n tbody tr {\n border-bottom: 1px solid lighten($ui-base-color, 4%);\n font-size: 1em;\n line-height: 1.625;\n font-weight: 400;\n text-align: left;\n color: $darker-text-color;\n }\n\n thead tr {\n border-bottom-width: 2px;\n line-height: 1.5;\n font-weight: 500;\n color: $dark-text-color;\n }\n\n th,\n td {\n padding: 8px;\n align-self: start;\n align-items: start;\n word-break: break-all;\n\n &.nowrap {\n width: 25%;\n position: relative;\n\n &::before {\n content: ' ';\n visibility: hidden;\n }\n\n span {\n position: absolute;\n left: 8px;\n right: 8px;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n }\n }\n }\n\n & > :first-child {\n margin-top: 0;\n }\n}\n\n.information-board {\n background: darken($ui-base-color, 4%);\n padding: 20px 0;\n\n .container-alt {\n position: relative;\n padding-right: 280px + 15px;\n }\n\n &__sections {\n display: flex;\n justify-content: space-between;\n flex-wrap: wrap;\n }\n\n &__section {\n flex: 1 0 0;\n font-family: $font-sans-serif, sans-serif;\n font-size: 16px;\n line-height: 28px;\n color: $primary-text-color;\n text-align: right;\n padding: 10px 15px;\n\n span,\n strong {\n display: block;\n }\n\n span {\n &:last-child {\n color: $secondary-text-color;\n }\n }\n\n strong {\n font-family: $font-display, sans-serif;\n font-weight: 500;\n font-size: 32px;\n line-height: 48px;\n }\n\n @media screen and (max-width: $column-breakpoint) {\n text-align: center;\n }\n }\n\n .panel {\n position: absolute;\n width: 280px;\n box-sizing: border-box;\n background: darken($ui-base-color, 8%);\n padding: 20px;\n padding-top: 10px;\n border-radius: 4px 4px 0 0;\n right: 0;\n bottom: -40px;\n\n .panel-header {\n font-family: $font-display, sans-serif;\n font-size: 14px;\n line-height: 24px;\n font-weight: 500;\n color: $darker-text-color;\n padding-bottom: 5px;\n margin-bottom: 15px;\n border-bottom: 1px solid lighten($ui-base-color, 4%);\n text-overflow: ellipsis;\n white-space: nowrap;\n overflow: hidden;\n\n a,\n span {\n font-weight: 400;\n color: darken($darker-text-color, 10%);\n }\n\n a {\n text-decoration: none;\n }\n }\n }\n\n .owner {\n text-align: center;\n\n .avatar {\n width: 80px;\n height: 80px;\n @include avatar-size(80px);\n margin: 0 auto;\n margin-bottom: 15px;\n\n img {\n display: block;\n width: 80px;\n height: 80px;\n border-radius: 48px;\n @include avatar-radius();\n }\n }\n\n .name {\n font-size: 14px;\n\n a {\n display: block;\n color: $primary-text-color;\n text-decoration: none;\n\n &:hover {\n .display_name {\n text-decoration: underline;\n }\n }\n }\n\n .username {\n display: block;\n color: $darker-text-color;\n }\n }\n }\n}\n\n.landing-page {\n p,\n li {\n font-family: $font-sans-serif, sans-serif;\n font-size: 16px;\n font-weight: 400;\n font-size: 16px;\n line-height: 30px;\n margin-bottom: 12px;\n color: $darker-text-color;\n\n a {\n color: $highlight-text-color;\n text-decoration: underline;\n }\n }\n\n em {\n display: inline;\n margin: 0;\n padding: 0;\n font-weight: 700;\n background: transparent;\n font-family: inherit;\n font-size: inherit;\n line-height: inherit;\n color: lighten($darker-text-color, 10%);\n }\n\n h1 {\n font-family: $font-display, sans-serif;\n font-size: 26px;\n line-height: 30px;\n font-weight: 500;\n margin-bottom: 20px;\n color: $secondary-text-color;\n\n small {\n font-family: $font-sans-serif, sans-serif;\n display: block;\n font-size: 18px;\n font-weight: 400;\n color: lighten($darker-text-color, 10%);\n }\n }\n\n h2 {\n font-family: $font-display, sans-serif;\n font-size: 22px;\n line-height: 26px;\n font-weight: 500;\n margin-bottom: 20px;\n color: $secondary-text-color;\n }\n\n h3 {\n font-family: $font-display, sans-serif;\n font-size: 18px;\n line-height: 24px;\n font-weight: 500;\n margin-bottom: 20px;\n color: $secondary-text-color;\n }\n\n h4 {\n font-family: $font-display, sans-serif;\n font-size: 16px;\n line-height: 24px;\n font-weight: 500;\n margin-bottom: 20px;\n color: $secondary-text-color;\n }\n\n h5 {\n font-family: $font-display, sans-serif;\n font-size: 14px;\n line-height: 24px;\n font-weight: 500;\n margin-bottom: 20px;\n color: $secondary-text-color;\n }\n\n h6 {\n font-family: $font-display, sans-serif;\n font-size: 12px;\n line-height: 24px;\n font-weight: 500;\n margin-bottom: 20px;\n color: $secondary-text-color;\n }\n\n ul,\n ol {\n margin-left: 20px;\n\n &[type='a'] {\n list-style-type: lower-alpha;\n }\n\n &[type='i'] {\n list-style-type: lower-roman;\n }\n }\n\n ul {\n list-style: disc;\n }\n\n ol {\n list-style: decimal;\n }\n\n li > ol,\n li > ul {\n margin-top: 6px;\n }\n\n hr {\n width: 100%;\n height: 0;\n border: 0;\n border-bottom: 1px solid rgba($ui-base-lighter-color, .6);\n margin: 20px 0;\n\n &.spacer {\n height: 1px;\n border: 0;\n }\n }\n\n &__information,\n &__forms {\n padding: 20px;\n }\n\n &__call-to-action {\n background: $ui-base-color;\n border-radius: 4px;\n padding: 25px 40px;\n overflow: hidden;\n box-sizing: border-box;\n\n .row {\n width: 100%;\n display: flex;\n flex-direction: row-reverse;\n flex-wrap: nowrap;\n justify-content: space-between;\n align-items: center;\n }\n\n .row__information-board {\n display: flex;\n justify-content: flex-end;\n align-items: flex-end;\n\n .information-board__section {\n flex: 1 0 auto;\n padding: 0 10px;\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n width: 100%;\n justify-content: space-between;\n }\n }\n\n .row__mascot {\n flex: 1;\n margin: 10px -50px 0 0;\n\n @media screen and (max-width: $no-gap-breakpoint) {\n display: none;\n }\n }\n }\n\n &__logo {\n margin-right: 20px;\n\n img {\n height: 50px;\n width: auto;\n mix-blend-mode: lighten;\n }\n }\n\n &__information {\n padding: 45px 40px;\n margin-bottom: 10px;\n\n &:last-child {\n margin-bottom: 0;\n }\n\n strong {\n font-weight: 500;\n color: lighten($darker-text-color, 10%);\n }\n\n .account {\n border-bottom: 0;\n padding: 0;\n\n &__display-name {\n align-items: center;\n display: flex;\n margin-right: 5px;\n }\n\n div.account__display-name {\n &:hover {\n .display-name strong {\n text-decoration: none;\n }\n }\n\n .account__avatar {\n cursor: default;\n }\n }\n\n &__avatar-wrapper {\n margin-left: 0;\n flex: 0 0 auto;\n }\n\n &__avatar {\n width: 44px;\n height: 44px;\n background-size: 44px 44px;\n @include avatar-size(44px);\n }\n\n .display-name {\n font-size: 15px;\n\n &__account {\n font-size: 14px;\n }\n }\n }\n\n @media screen and (max-width: $small-breakpoint) {\n .contact {\n margin-top: 30px;\n }\n }\n\n @media screen and (max-width: $column-breakpoint) {\n padding: 25px 20px;\n }\n }\n\n &__information,\n &__forms,\n #mastodon-timeline {\n box-sizing: border-box;\n background: $ui-base-color;\n border-radius: 4px;\n box-shadow: 0 0 6px rgba($black, 0.1);\n }\n\n &__mascot {\n height: 104px;\n position: relative;\n left: -40px;\n bottom: 25px;\n\n img {\n height: 190px;\n width: auto;\n }\n }\n\n &__short-description {\n .row {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n margin-bottom: 40px;\n }\n\n @media screen and (max-width: $column-breakpoint) {\n .row {\n margin-bottom: 20px;\n }\n }\n\n p a {\n color: $secondary-text-color;\n }\n\n h1 {\n font-weight: 500;\n color: $primary-text-color;\n margin-bottom: 0;\n\n small {\n color: $darker-text-color;\n\n span {\n color: $secondary-text-color;\n }\n }\n }\n\n p:last-child {\n margin-bottom: 0;\n }\n }\n\n &__hero {\n margin-bottom: 10px;\n\n img {\n display: block;\n margin: 0;\n max-width: 100%;\n height: auto;\n border-radius: 4px;\n }\n }\n\n @media screen and (max-width: 840px) {\n .information-board {\n .container-alt {\n padding-right: 20px;\n }\n\n .panel {\n position: static;\n margin-top: 20px;\n width: 100%;\n border-radius: 4px;\n\n .panel-header {\n text-align: center;\n }\n }\n }\n }\n\n @media screen and (max-width: 675px) {\n .header-wrapper {\n padding-top: 0;\n\n &.compact {\n padding-bottom: 0;\n }\n\n &.compact .hero .heading {\n text-align: initial;\n }\n }\n\n .header .container-alt,\n .features .container-alt {\n display: block;\n }\n }\n\n .cta {\n margin: 20px;\n }\n}\n\n.landing {\n margin-bottom: 100px;\n\n @media screen and (max-width: 738px) {\n margin-bottom: 0;\n }\n\n &__brand {\n display: flex;\n justify-content: center;\n align-items: center;\n padding: 50px;\n\n svg {\n fill: $primary-text-color;\n height: 52px;\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n padding: 0;\n margin-bottom: 30px;\n }\n }\n\n .directory {\n margin-top: 30px;\n background: transparent;\n box-shadow: none;\n border-radius: 0;\n }\n\n .hero-widget {\n margin-top: 30px;\n margin-bottom: 0;\n\n h4 {\n padding: 10px;\n text-transform: uppercase;\n font-weight: 700;\n font-size: 13px;\n color: $darker-text-color;\n }\n\n &__text {\n border-radius: 0;\n padding-bottom: 0;\n }\n\n &__footer {\n background: $ui-base-color;\n padding: 10px;\n border-radius: 0 0 4px 4px;\n display: flex;\n\n &__column {\n flex: 1 1 50%;\n }\n }\n\n .account {\n padding: 10px 0;\n border-bottom: 0;\n\n .account__display-name {\n display: flex;\n align-items: center;\n }\n\n .account__avatar {\n width: 44px;\n height: 44px;\n background-size: 44px 44px;\n }\n }\n\n &__counter {\n padding: 10px;\n\n strong {\n font-family: $font-display, sans-serif;\n font-size: 15px;\n font-weight: 700;\n display: block;\n }\n\n span {\n font-size: 14px;\n color: $darker-text-color;\n }\n }\n }\n\n .simple_form .user_agreement .label_input > label {\n font-weight: 400;\n color: $darker-text-color;\n }\n\n .simple_form p.lead {\n color: $darker-text-color;\n font-size: 15px;\n line-height: 20px;\n font-weight: 400;\n margin-bottom: 25px;\n }\n\n &__grid {\n max-width: 960px;\n margin: 0 auto;\n display: grid;\n grid-template-columns: minmax(0, 50%) minmax(0, 50%);\n grid-gap: 30px;\n\n @media screen and (max-width: 738px) {\n grid-template-columns: minmax(0, 100%);\n grid-gap: 10px;\n\n &__column-login {\n grid-row: 1;\n display: flex;\n flex-direction: column;\n\n .box-widget {\n order: 2;\n flex: 0 0 auto;\n }\n\n .hero-widget {\n margin-top: 0;\n margin-bottom: 10px;\n order: 1;\n flex: 0 0 auto;\n }\n }\n\n &__column-registration {\n grid-row: 2;\n }\n\n .directory {\n margin-top: 10px;\n }\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n grid-gap: 0;\n\n .hero-widget {\n display: block;\n margin-bottom: 0;\n box-shadow: none;\n\n &__img,\n &__img img,\n &__footer {\n border-radius: 0;\n }\n }\n\n .hero-widget,\n .box-widget,\n .directory__tag {\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n }\n\n .directory {\n margin-top: 0;\n\n &__tag {\n margin-bottom: 0;\n\n & > a,\n & > div {\n border-radius: 0;\n box-shadow: none;\n }\n\n &:last-child {\n border-bottom: 0;\n }\n }\n }\n }\n }\n}\n\n.brand {\n position: relative;\n text-decoration: none;\n}\n\n.brand__tagline {\n display: block;\n position: absolute;\n bottom: -10px;\n left: 50px;\n width: 300px;\n color: $ui-primary-color;\n text-decoration: none;\n font-size: 14px;\n\n @media screen and (max-width: $no-gap-breakpoint) {\n position: static;\n width: auto;\n margin-top: 20px;\n color: $dark-text-color;\n }\n}\n\n",".table {\n width: 100%;\n max-width: 100%;\n border-spacing: 0;\n border-collapse: collapse;\n\n th,\n td {\n padding: 8px;\n line-height: 18px;\n vertical-align: top;\n border-top: 1px solid $ui-base-color;\n text-align: left;\n background: darken($ui-base-color, 4%);\n }\n\n & > thead > tr > th {\n vertical-align: bottom;\n border-bottom: 2px solid $ui-base-color;\n border-top: 0;\n font-weight: 500;\n }\n\n & > tbody > tr > th {\n font-weight: 500;\n }\n\n & > tbody > tr:nth-child(odd) > td,\n & > tbody > tr:nth-child(odd) > th {\n background: $ui-base-color;\n }\n\n a {\n color: $highlight-text-color;\n text-decoration: underline;\n\n &:hover {\n text-decoration: none;\n }\n }\n\n strong {\n font-weight: 500;\n\n @each $lang in $cjk-langs {\n &:lang(#{$lang}) {\n font-weight: 700;\n }\n }\n }\n\n &.inline-table {\n & > tbody > tr:nth-child(odd) {\n & > td,\n & > th {\n background: transparent;\n }\n }\n\n & > tbody > tr:first-child {\n & > td,\n & > th {\n border-top: 0;\n }\n }\n }\n\n &.batch-table {\n & > thead > tr > th {\n background: $ui-base-color;\n border-top: 1px solid darken($ui-base-color, 8%);\n border-bottom: 1px solid darken($ui-base-color, 8%);\n\n &:first-child {\n border-radius: 4px 0 0;\n border-left: 1px solid darken($ui-base-color, 8%);\n }\n\n &:last-child {\n border-radius: 0 4px 0 0;\n border-right: 1px solid darken($ui-base-color, 8%);\n }\n }\n }\n\n &--invites tbody td {\n vertical-align: middle;\n }\n}\n\n.table-wrapper {\n overflow: auto;\n margin-bottom: 20px;\n}\n\nsamp {\n font-family: $font-monospace, monospace;\n}\n\nbutton.table-action-link {\n background: transparent;\n border: 0;\n font: inherit;\n}\n\nbutton.table-action-link,\na.table-action-link {\n text-decoration: none;\n display: inline-block;\n margin-right: 5px;\n padding: 0 10px;\n color: $darker-text-color;\n font-weight: 500;\n\n &:hover {\n color: $primary-text-color;\n }\n\n i.fa {\n font-weight: 400;\n margin-right: 5px;\n }\n\n &:first-child {\n padding-left: 0;\n }\n}\n\n.batch-table {\n &__toolbar,\n &__row {\n display: flex;\n\n &__select {\n box-sizing: border-box;\n padding: 8px 16px;\n cursor: pointer;\n min-height: 100%;\n\n input {\n margin-top: 8px;\n }\n\n &--aligned {\n display: flex;\n align-items: center;\n\n input {\n margin-top: 0;\n }\n }\n }\n\n &__actions,\n &__content {\n padding: 8px 0;\n padding-right: 16px;\n flex: 1 1 auto;\n }\n }\n\n &__toolbar {\n border: 1px solid darken($ui-base-color, 8%);\n background: $ui-base-color;\n border-radius: 4px 0 0;\n height: 47px;\n align-items: center;\n\n &__actions {\n text-align: right;\n padding-right: 16px - 5px;\n }\n }\n\n &__form {\n padding: 16px;\n border: 1px solid darken($ui-base-color, 8%);\n border-top: 0;\n background: $ui-base-color;\n\n .fields-row {\n padding-top: 0;\n margin-bottom: 0;\n }\n }\n\n &__row {\n border: 1px solid darken($ui-base-color, 8%);\n border-top: 0;\n background: darken($ui-base-color, 4%);\n\n @media screen and (max-width: $no-gap-breakpoint) {\n .optional &:first-child {\n border-top: 1px solid darken($ui-base-color, 8%);\n }\n }\n\n &:hover {\n background: darken($ui-base-color, 2%);\n }\n\n &:nth-child(even) {\n background: $ui-base-color;\n\n &:hover {\n background: lighten($ui-base-color, 2%);\n }\n }\n\n &__content {\n padding-top: 12px;\n padding-bottom: 16px;\n\n &--unpadded {\n padding: 0;\n }\n\n &--with-image {\n display: flex;\n align-items: center;\n }\n\n &__image {\n flex: 0 0 auto;\n display: flex;\n justify-content: center;\n align-items: center;\n margin-right: 10px;\n\n .emojione {\n width: 32px;\n height: 32px;\n }\n }\n\n &__text {\n flex: 1 1 auto;\n }\n\n &__extra {\n flex: 0 0 auto;\n text-align: right;\n color: $darker-text-color;\n font-weight: 500;\n }\n }\n\n .directory__tag {\n margin: 0;\n width: 100%;\n\n a {\n background: transparent;\n border-radius: 0;\n }\n }\n }\n\n &.optional .batch-table__toolbar,\n &.optional .batch-table__row__select {\n @media screen and (max-width: $no-gap-breakpoint) {\n display: none;\n }\n }\n\n .status__content {\n padding-top: 0;\n\n strong {\n font-weight: 700;\n }\n }\n\n .nothing-here {\n border: 1px solid darken($ui-base-color, 8%);\n border-top: 0;\n box-shadow: none;\n\n @media screen and (max-width: $no-gap-breakpoint) {\n border-top: 1px solid darken($ui-base-color, 8%);\n }\n }\n\n @media screen and (max-width: 870px) {\n .accounts-table tbody td.optional {\n display: none;\n }\n }\n}\n","$no-columns-breakpoint: 600px;\n$sidebar-width: 240px;\n$content-width: 840px;\n\n.admin-wrapper {\n display: flex;\n justify-content: center;\n width: 100%;\n min-height: 100vh;\n\n .sidebar-wrapper {\n min-height: 100vh;\n overflow: hidden;\n pointer-events: none;\n flex: 1 1 auto;\n\n &__inner {\n display: flex;\n justify-content: flex-end;\n background: $ui-base-color;\n height: 100%;\n }\n }\n\n .sidebar {\n width: $sidebar-width;\n padding: 0;\n pointer-events: auto;\n\n &__toggle {\n display: none;\n background: lighten($ui-base-color, 8%);\n height: 48px;\n\n &__logo {\n flex: 1 1 auto;\n\n a {\n display: inline-block;\n padding: 15px;\n }\n\n svg {\n fill: $primary-text-color;\n height: 20px;\n position: relative;\n bottom: -2px;\n }\n }\n\n &__icon {\n display: block;\n color: $darker-text-color;\n text-decoration: none;\n flex: 0 0 auto;\n font-size: 20px;\n padding: 15px;\n }\n\n a {\n &:hover,\n &:focus,\n &:active {\n background: lighten($ui-base-color, 12%);\n }\n }\n }\n\n .logo {\n display: block;\n margin: 40px auto;\n width: 100px;\n height: 100px;\n }\n\n @media screen and (max-width: $no-columns-breakpoint) {\n & > a:first-child {\n display: none;\n }\n }\n\n ul {\n list-style: none;\n border-radius: 4px 0 0 4px;\n overflow: hidden;\n margin-bottom: 20px;\n\n @media screen and (max-width: $no-columns-breakpoint) {\n margin-bottom: 0;\n }\n\n a {\n display: block;\n padding: 15px;\n color: $darker-text-color;\n text-decoration: none;\n transition: all 200ms linear;\n transition-property: color, background-color;\n border-radius: 4px 0 0 4px;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n\n i.fa {\n margin-right: 5px;\n }\n\n &:hover {\n color: $primary-text-color;\n background-color: darken($ui-base-color, 5%);\n transition: all 100ms linear;\n transition-property: color, background-color;\n }\n\n &.selected {\n background: darken($ui-base-color, 2%);\n border-radius: 4px 0 0;\n }\n }\n\n ul {\n background: darken($ui-base-color, 4%);\n border-radius: 0 0 0 4px;\n margin: 0;\n\n a {\n border: 0;\n padding: 15px 35px;\n }\n }\n\n .simple-navigation-active-leaf a {\n color: $primary-text-color;\n background-color: $ui-highlight-color;\n border-bottom: 0;\n border-radius: 0;\n\n &:hover {\n background-color: lighten($ui-highlight-color, 5%);\n }\n }\n }\n\n & > ul > .simple-navigation-active-leaf a {\n border-radius: 4px 0 0 4px;\n }\n }\n\n .content-wrapper {\n box-sizing: border-box;\n width: 100%;\n max-width: $content-width;\n flex: 1 1 auto;\n }\n\n @media screen and (max-width: $content-width + $sidebar-width) {\n .sidebar-wrapper--empty {\n display: none;\n }\n\n .sidebar-wrapper {\n width: $sidebar-width;\n flex: 0 0 auto;\n }\n }\n\n @media screen and (max-width: $no-columns-breakpoint) {\n .sidebar-wrapper {\n width: 100%;\n }\n }\n\n .content {\n padding: 20px 15px;\n padding-top: 60px;\n padding-left: 25px;\n\n @media screen and (max-width: $no-columns-breakpoint) {\n max-width: none;\n padding: 15px;\n padding-top: 30px;\n }\n\n &-heading {\n display: flex;\n\n padding-bottom: 40px;\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n\n margin: -15px -15px 40px 0;\n\n flex-wrap: wrap;\n align-items: center;\n justify-content: space-between;\n\n & > * {\n margin-top: 15px;\n margin-right: 15px;\n }\n\n &-actions {\n display: inline-flex;\n\n & > :not(:first-child) {\n margin-left: 5px;\n }\n }\n\n @media screen and (max-width: $no-columns-breakpoint) {\n border-bottom: 0;\n padding-bottom: 0;\n }\n }\n\n h2 {\n color: $secondary-text-color;\n font-size: 24px;\n line-height: 28px;\n font-weight: 400;\n\n @media screen and (max-width: $no-columns-breakpoint) {\n font-weight: 700;\n }\n }\n\n h3 {\n color: $secondary-text-color;\n font-size: 20px;\n line-height: 28px;\n font-weight: 400;\n margin-bottom: 30px;\n }\n\n h4 {\n text-transform: uppercase;\n font-size: 13px;\n font-weight: 700;\n color: $darker-text-color;\n padding-bottom: 8px;\n margin-bottom: 8px;\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n }\n\n h6 {\n font-size: 16px;\n color: $secondary-text-color;\n line-height: 28px;\n font-weight: 500;\n }\n\n .fields-group h6 {\n color: $primary-text-color;\n font-weight: 500;\n }\n\n .directory__tag > a,\n .directory__tag > div {\n box-shadow: none;\n }\n\n .directory__tag .table-action-link .fa {\n color: inherit;\n }\n\n .directory__tag h4 {\n font-size: 18px;\n font-weight: 700;\n color: $primary-text-color;\n text-transform: none;\n padding-bottom: 0;\n margin-bottom: 0;\n border-bottom: none;\n }\n\n & > p {\n font-size: 14px;\n line-height: 21px;\n color: $secondary-text-color;\n margin-bottom: 20px;\n\n strong {\n color: $primary-text-color;\n font-weight: 500;\n\n @each $lang in $cjk-langs {\n &:lang(#{$lang}) {\n font-weight: 700;\n }\n }\n }\n }\n\n hr {\n width: 100%;\n height: 0;\n border: 0;\n border-bottom: 1px solid rgba($ui-base-lighter-color, .6);\n margin: 20px 0;\n\n &.spacer {\n height: 1px;\n border: 0;\n }\n }\n }\n\n @media screen and (max-width: $no-columns-breakpoint) {\n display: block;\n\n .sidebar-wrapper {\n min-height: 0;\n }\n\n .sidebar {\n width: 100%;\n padding: 0;\n height: auto;\n\n &__toggle {\n display: flex;\n }\n\n & > ul {\n display: none;\n }\n\n ul a,\n ul ul a {\n border-radius: 0;\n border-bottom: 1px solid lighten($ui-base-color, 4%);\n transition: none;\n\n &:hover {\n transition: none;\n }\n }\n\n ul ul {\n border-radius: 0;\n }\n\n ul .simple-navigation-active-leaf a {\n border-bottom-color: $ui-highlight-color;\n }\n }\n }\n}\n\nhr.spacer {\n width: 100%;\n border: 0;\n margin: 20px 0;\n height: 1px;\n}\n\nbody,\n.admin-wrapper .content {\n .muted-hint {\n color: $darker-text-color;\n\n a {\n color: $highlight-text-color;\n }\n }\n\n .positive-hint {\n color: $valid-value-color;\n font-weight: 500;\n }\n\n .negative-hint {\n color: $error-value-color;\n font-weight: 500;\n }\n\n .neutral-hint {\n color: $dark-text-color;\n font-weight: 500;\n }\n\n .warning-hint {\n color: $gold-star;\n font-weight: 500;\n }\n}\n\n.filters {\n display: flex;\n flex-wrap: wrap;\n\n .filter-subset {\n flex: 0 0 auto;\n margin: 0 40px 20px 0;\n\n &:last-child {\n margin-bottom: 30px;\n }\n\n ul {\n margin-top: 5px;\n list-style: none;\n\n li {\n display: inline-block;\n margin-right: 5px;\n }\n }\n\n strong {\n font-weight: 500;\n text-transform: uppercase;\n font-size: 12px;\n\n @each $lang in $cjk-langs {\n &:lang(#{$lang}) {\n font-weight: 700;\n }\n }\n }\n\n &--with-select strong {\n display: block;\n margin-bottom: 10px;\n }\n\n a {\n display: inline-block;\n color: $darker-text-color;\n text-decoration: none;\n text-transform: uppercase;\n font-size: 12px;\n font-weight: 500;\n border-bottom: 2px solid $ui-base-color;\n\n &:hover {\n color: $primary-text-color;\n border-bottom: 2px solid lighten($ui-base-color, 5%);\n }\n\n &.selected {\n color: $highlight-text-color;\n border-bottom: 2px solid $ui-highlight-color;\n }\n }\n }\n}\n\n.flavour-screen {\n display: block;\n margin: 10px auto;\n max-width: 100%;\n}\n\n.flavour-description {\n display: block;\n font-size: 16px;\n margin: 10px 0;\n\n & > p {\n margin: 10px 0;\n }\n}\n\n.report-accounts {\n display: flex;\n flex-wrap: wrap;\n margin-bottom: 20px;\n}\n\n.report-accounts__item {\n display: flex;\n flex: 250px;\n flex-direction: column;\n margin: 0 5px;\n\n & > strong {\n display: block;\n margin: 0 0 10px -5px;\n font-weight: 500;\n font-size: 14px;\n line-height: 18px;\n color: $secondary-text-color;\n\n @each $lang in $cjk-langs {\n &:lang(#{$lang}) {\n font-weight: 700;\n }\n }\n }\n\n .account-card {\n flex: 1 1 auto;\n }\n}\n\n.report-status,\n.account-status {\n display: flex;\n margin-bottom: 10px;\n\n .activity-stream {\n flex: 2 0 0;\n margin-right: 20px;\n max-width: calc(100% - 60px);\n\n .entry {\n border-radius: 4px;\n }\n }\n}\n\n.report-status__actions,\n.account-status__actions {\n flex: 0 0 auto;\n display: flex;\n flex-direction: column;\n\n .icon-button {\n font-size: 24px;\n width: 24px;\n text-align: center;\n margin-bottom: 10px;\n }\n}\n\n.simple_form.new_report_note,\n.simple_form.new_account_moderation_note {\n max-width: 100%;\n}\n\n.batch-form-box {\n display: flex;\n flex-wrap: wrap;\n margin-bottom: 5px;\n\n #form_status_batch_action {\n margin: 0 5px 5px 0;\n font-size: 14px;\n }\n\n input.button {\n margin: 0 5px 5px 0;\n }\n\n .media-spoiler-toggle-buttons {\n margin-left: auto;\n\n .button {\n overflow: visible;\n margin: 0 0 5px 5px;\n float: right;\n }\n }\n}\n\n.back-link {\n margin-bottom: 10px;\n font-size: 14px;\n\n a {\n color: $highlight-text-color;\n text-decoration: none;\n\n &:hover {\n text-decoration: underline;\n }\n }\n}\n\n.spacer {\n flex: 1 1 auto;\n}\n\n.log-entry {\n line-height: 20px;\n padding: 15px 0;\n background: $ui-base-color;\n border-bottom: 1px solid lighten($ui-base-color, 4%);\n\n &:last-child {\n border-bottom: 0;\n }\n\n &__header {\n display: flex;\n justify-content: flex-start;\n align-items: center;\n color: $darker-text-color;\n font-size: 14px;\n padding: 0 10px;\n }\n\n &__avatar {\n margin-right: 10px;\n\n .avatar {\n display: block;\n margin: 0;\n border-radius: 50%;\n width: 40px;\n height: 40px;\n }\n }\n\n &__content {\n max-width: calc(100% - 90px);\n }\n\n &__title {\n word-wrap: break-word;\n }\n\n &__timestamp {\n color: $dark-text-color;\n }\n\n a,\n .username,\n .target {\n color: $secondary-text-color;\n text-decoration: none;\n font-weight: 500;\n }\n}\n\na.name-tag,\n.name-tag,\na.inline-name-tag,\n.inline-name-tag {\n text-decoration: none;\n color: $secondary-text-color;\n\n .username {\n font-weight: 500;\n }\n\n &.suspended {\n .username {\n text-decoration: line-through;\n color: lighten($error-red, 12%);\n }\n\n .avatar {\n filter: grayscale(100%);\n opacity: 0.8;\n }\n }\n}\n\na.name-tag,\n.name-tag {\n display: flex;\n align-items: center;\n\n .avatar {\n display: block;\n margin: 0;\n margin-right: 5px;\n border-radius: 50%;\n }\n\n &.suspended {\n .avatar {\n filter: grayscale(100%);\n opacity: 0.8;\n }\n }\n}\n\n.speech-bubble {\n margin-bottom: 20px;\n border-left: 4px solid $ui-highlight-color;\n\n &.positive {\n border-left-color: $success-green;\n }\n\n &.negative {\n border-left-color: lighten($error-red, 12%);\n }\n\n &.warning {\n border-left-color: $gold-star;\n }\n\n &__bubble {\n padding: 16px;\n padding-left: 14px;\n font-size: 15px;\n line-height: 20px;\n border-radius: 4px 4px 4px 0;\n position: relative;\n font-weight: 500;\n\n a {\n color: $darker-text-color;\n }\n }\n\n &__owner {\n padding: 8px;\n padding-left: 12px;\n }\n\n time {\n color: $dark-text-color;\n }\n}\n\n.report-card {\n background: $ui-base-color;\n border-radius: 4px;\n margin-bottom: 20px;\n\n &__profile {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 15px;\n\n .account {\n padding: 0;\n border: 0;\n\n &__avatar-wrapper {\n margin-left: 0;\n }\n }\n\n &__stats {\n flex: 0 0 auto;\n font-weight: 500;\n color: $darker-text-color;\n text-transform: uppercase;\n text-align: right;\n\n a {\n color: inherit;\n text-decoration: none;\n\n &:focus,\n &:hover,\n &:active {\n color: lighten($darker-text-color, 8%);\n }\n }\n\n .red {\n color: $error-value-color;\n }\n }\n }\n\n &__summary {\n &__item {\n display: flex;\n justify-content: flex-start;\n border-top: 1px solid darken($ui-base-color, 4%);\n\n &:hover {\n background: lighten($ui-base-color, 2%);\n }\n\n &__reported-by,\n &__assigned {\n padding: 15px;\n flex: 0 0 auto;\n box-sizing: border-box;\n width: 150px;\n color: $darker-text-color;\n\n &,\n .username {\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n }\n\n &__content {\n flex: 1 1 auto;\n max-width: calc(100% - 300px);\n\n &__icon {\n color: $dark-text-color;\n margin-right: 4px;\n font-weight: 500;\n }\n }\n\n &__content a {\n display: block;\n box-sizing: border-box;\n width: 100%;\n padding: 15px;\n text-decoration: none;\n color: $darker-text-color;\n }\n }\n }\n}\n\n.one-line {\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n.ellipsized-ip {\n display: inline-block;\n max-width: 120px;\n overflow: hidden;\n text-overflow: ellipsis;\n vertical-align: middle;\n}\n\n.admin-account-bio {\n display: flex;\n flex-wrap: wrap;\n margin: 0 -5px;\n margin-top: 20px;\n\n > div {\n box-sizing: border-box;\n padding: 0 5px;\n margin-bottom: 10px;\n flex: 1 0 50%;\n }\n\n .account__header__fields,\n .account__header__content {\n background: lighten($ui-base-color, 8%);\n border-radius: 4px;\n height: 100%;\n }\n\n .account__header__fields {\n margin: 0;\n border: 0;\n\n a {\n color: lighten($ui-highlight-color, 8%);\n }\n\n dl:first-child .verified {\n border-radius: 0 4px 0 0;\n }\n\n .verified a {\n color: $valid-value-color;\n }\n }\n\n .account__header__content {\n box-sizing: border-box;\n padding: 20px;\n color: $primary-text-color;\n }\n}\n\n.center-text {\n text-align: center;\n}\n\n.announcements-list {\n border: 1px solid lighten($ui-base-color, 4%);\n border-radius: 4px;\n\n &__item {\n padding: 15px 0;\n background: $ui-base-color;\n border-bottom: 1px solid lighten($ui-base-color, 4%);\n\n &__title {\n padding: 0 15px;\n display: block;\n font-weight: 500;\n font-size: 18px;\n line-height: 1.5;\n color: $secondary-text-color;\n text-decoration: none;\n margin-bottom: 10px;\n\n &:hover,\n &:focus,\n &:active {\n color: $primary-text-color;\n }\n }\n\n &__meta {\n padding: 0 15px;\n color: $dark-text-color;\n }\n\n &__action-bar {\n display: flex;\n justify-content: space-between;\n align-items: center;\n }\n\n &:last-child {\n border-bottom: 0;\n }\n }\n}\n","$emojis-requiring-outlines: '8ball' 'ant' 'back' 'black_circle' 'black_heart' 'black_large_square' 'black_medium_small_square' 'black_medium_square' 'black_nib' 'black_small_square' 'bomb' 'bowling' 'bust_in_silhouette' 'busts_in_silhouette' 'camera' 'camera_with_flash' 'clubs' 'copyright' 'curly_loop' 'currency_exchange' 'dark_sunglasses' 'eight_pointed_black_star' 'electric_plug' 'end' 'female-guard' 'film_projector' 'fried_egg' 'gorilla' 'guardsman' 'heavy_check_mark' 'heavy_division_sign' 'heavy_dollar_sign' 'heavy_minus_sign' 'heavy_multiplication_x' 'heavy_plus_sign' 'hocho' 'hole' 'joystick' 'kaaba' 'lower_left_ballpoint_pen' 'lower_left_fountain_pen' 'male-guard' 'microphone' 'mortar_board' 'movie_camera' 'musical_score' 'on' 'registered' 'soon' 'spades' 'speaking_head_in_silhouette' 'spider' 'telephone_receiver' 'tm' 'top' 'tophat' 'turkey' 'vhs' 'video_camera' 'video_game' 'water_buffalo' 'waving_black_flag' 'wavy_dash' !default;\n\n%emoji-outline {\n filter: drop-shadow(1px 1px 0 $primary-text-color) drop-shadow(-1px 1px 0 $primary-text-color) drop-shadow(1px -1px 0 $primary-text-color) drop-shadow(-1px -1px 0 $primary-text-color);\n}\n\n.emojione {\n @each $emoji in $emojis-requiring-outlines {\n &[title=':#{$emoji}:'] {\n @extend %emoji-outline;\n }\n }\n}\n\n.hicolor-privacy-icons {\n .status__visibility-icon.fa-globe,\n .composer--options--dropdown--content--item .fa-globe {\n color: #1976D2;\n }\n\n .status__visibility-icon.fa-unlock,\n .composer--options--dropdown--content--item .fa-unlock {\n color: #388E3C;\n }\n\n .status__visibility-icon.fa-lock,\n .composer--options--dropdown--content--item .fa-lock {\n color: #FFA000;\n }\n\n .status__visibility-icon.fa-envelope,\n .composer--options--dropdown--content--item .fa-envelope {\n color: #D32F2F;\n }\n}\n","body.rtl {\n direction: rtl;\n\n .column-header > button {\n text-align: right;\n padding-left: 0;\n padding-right: 15px;\n }\n\n .radio-button__input {\n margin-right: 0;\n margin-left: 10px;\n }\n\n .directory__card__bar .display-name {\n margin-left: 0;\n margin-right: 15px;\n }\n\n .display-name {\n text-align: right;\n }\n\n .notification__message {\n margin-left: 0;\n margin-right: 68px;\n }\n\n .drawer__inner__mastodon > img {\n transform: scaleX(-1);\n }\n\n .notification__favourite-icon-wrapper {\n left: auto;\n right: -26px;\n }\n\n .landing-page__logo {\n margin-right: 0;\n margin-left: 20px;\n }\n\n .landing-page .features-list .features-list__row .visual {\n margin-left: 0;\n margin-right: 15px;\n }\n\n .column-link__icon,\n .column-header__icon {\n margin-right: 0;\n margin-left: 5px;\n }\n\n .compose-form .compose-form__buttons-wrapper .character-counter__wrapper {\n margin-right: 0;\n margin-left: 4px;\n }\n\n .composer--publisher {\n text-align: left;\n }\n\n .boost-modal__status-time,\n .favourite-modal__status-time {\n float: left;\n }\n\n .navigation-bar__profile {\n margin-left: 0;\n margin-right: 8px;\n }\n\n .search__input {\n padding-right: 10px;\n padding-left: 30px;\n }\n\n .search__icon .fa {\n right: auto;\n left: 10px;\n }\n\n .columns-area {\n direction: rtl;\n }\n\n .column-header__buttons {\n left: 0;\n right: auto;\n margin-left: 0;\n margin-right: -15px;\n }\n\n .column-inline-form .icon-button {\n margin-left: 0;\n margin-right: 5px;\n }\n\n .column-header__links .text-btn {\n margin-left: 10px;\n margin-right: 0;\n }\n\n .account__avatar-wrapper {\n float: right;\n }\n\n .column-header__back-button {\n padding-left: 5px;\n padding-right: 0;\n }\n\n .column-header__setting-arrows {\n float: left;\n }\n\n .setting-toggle__label {\n margin-left: 0;\n margin-right: 8px;\n }\n\n .setting-meta__label {\n float: left;\n }\n\n .status__avatar {\n margin-left: 10px;\n margin-right: 0;\n\n // Those are used for public pages\n left: auto;\n right: 10px;\n }\n\n .activity-stream .status.light {\n padding-left: 10px;\n padding-right: 68px;\n }\n\n .status__info .status__display-name,\n .activity-stream .status.light .status__display-name {\n padding-left: 25px;\n padding-right: 0;\n }\n\n .activity-stream .pre-header {\n padding-right: 68px;\n padding-left: 0;\n }\n\n .status__prepend {\n margin-left: 0;\n margin-right: 58px;\n }\n\n .status__prepend-icon-wrapper {\n left: auto;\n right: -26px;\n }\n\n .activity-stream .pre-header .pre-header__icon {\n left: auto;\n right: 42px;\n }\n\n .account__avatar-overlay-overlay {\n right: auto;\n left: 0;\n }\n\n .column-back-button--slim-button {\n right: auto;\n left: 0;\n }\n\n .status__relative-time,\n .activity-stream .status.light .status__header .status__meta {\n float: left;\n text-align: left;\n }\n\n .status__action-bar {\n &__counter {\n margin-right: 0;\n margin-left: 11px;\n\n .status__action-bar-button {\n margin-right: 0;\n margin-left: 4px;\n }\n }\n }\n\n .status__action-bar-button {\n float: right;\n margin-right: 0;\n margin-left: 18px;\n }\n\n .status__action-bar-dropdown {\n float: right;\n }\n\n .privacy-dropdown__dropdown {\n margin-left: 0;\n margin-right: 40px;\n }\n\n .privacy-dropdown__option__icon {\n margin-left: 10px;\n margin-right: 0;\n }\n\n .detailed-status__display-name .display-name {\n text-align: right;\n }\n\n .detailed-status__display-avatar {\n margin-right: 0;\n margin-left: 10px;\n float: right;\n }\n\n .detailed-status__favorites,\n .detailed-status__reblogs {\n margin-left: 0;\n margin-right: 6px;\n }\n\n .fa-ul {\n margin-left: 2.14285714em;\n }\n\n .fa-li {\n left: auto;\n right: -2.14285714em;\n }\n\n .admin-wrapper {\n direction: rtl;\n }\n\n .admin-wrapper .sidebar ul a i.fa,\n a.table-action-link i.fa {\n margin-right: 0;\n margin-left: 5px;\n }\n\n .simple_form .check_boxes .checkbox label {\n padding-left: 0;\n padding-right: 25px;\n }\n\n .simple_form .input.with_label.boolean label.checkbox {\n padding-left: 25px;\n padding-right: 0;\n }\n\n .simple_form .check_boxes .checkbox input[type=\"checkbox\"],\n .simple_form .input.boolean input[type=\"checkbox\"] {\n left: auto;\n right: 0;\n }\n\n .simple_form .input.radio_buttons .radio {\n left: auto;\n right: 0;\n }\n\n .simple_form .input.radio_buttons .radio > label {\n padding-right: 28px;\n padding-left: 0;\n }\n\n .simple_form .input-with-append .input input {\n padding-left: 142px;\n padding-right: 0;\n }\n\n .simple_form .input.boolean label.checkbox {\n left: auto;\n right: 0;\n }\n\n .simple_form .input.boolean .label_input,\n .simple_form .input.boolean .hint {\n padding-left: 0;\n padding-right: 28px;\n }\n\n .simple_form .label_input__append {\n right: auto;\n left: 3px;\n\n &::after {\n right: auto;\n left: 0;\n background-image: linear-gradient(to left, rgba(darken($ui-base-color, 10%), 0), darken($ui-base-color, 10%));\n }\n }\n\n .simple_form select {\n background: darken($ui-base-color, 10%) url(\"data:image/svg+xml;utf8,\") no-repeat left 8px center / auto 16px;\n }\n\n .table th,\n .table td {\n text-align: right;\n }\n\n .filters .filter-subset {\n margin-right: 0;\n margin-left: 45px;\n }\n\n .landing-page .header-wrapper .mascot {\n right: 60px;\n left: auto;\n }\n\n .landing-page__call-to-action .row__information-board {\n direction: rtl;\n }\n\n .landing-page .header .hero .floats .float-1 {\n left: -120px;\n right: auto;\n }\n\n .landing-page .header .hero .floats .float-2 {\n left: 210px;\n right: auto;\n }\n\n .landing-page .header .hero .floats .float-3 {\n left: 110px;\n right: auto;\n }\n\n .landing-page .header .links .brand img {\n left: 0;\n }\n\n .landing-page .fa-external-link {\n padding-right: 5px;\n padding-left: 0 !important;\n }\n\n .landing-page .features #mastodon-timeline {\n margin-right: 0;\n margin-left: 30px;\n }\n\n @media screen and (min-width: 631px) {\n .column,\n .drawer {\n padding-left: 5px;\n padding-right: 5px;\n\n &:first-child {\n padding-left: 5px;\n padding-right: 10px;\n }\n }\n\n .columns-area > div {\n .column,\n .drawer {\n padding-left: 5px;\n padding-right: 5px;\n }\n }\n }\n\n .columns-area--mobile .column,\n .columns-area--mobile .drawer {\n padding-left: 0;\n padding-right: 0;\n }\n\n .public-layout {\n .header {\n .nav-button {\n margin-left: 8px;\n margin-right: 0;\n }\n }\n\n .public-account-header__tabs {\n margin-left: 0;\n margin-right: 20px;\n }\n }\n\n .landing-page__information {\n .account__display-name {\n margin-right: 0;\n margin-left: 5px;\n }\n\n .account__avatar-wrapper {\n margin-left: 12px;\n margin-right: 0;\n }\n }\n\n .card__bar .display-name {\n margin-left: 0;\n margin-right: 15px;\n text-align: right;\n }\n\n .fa-chevron-left::before {\n content: \"\\F054\";\n }\n\n .fa-chevron-right::before {\n content: \"\\F053\";\n }\n\n .column-back-button__icon {\n margin-right: 0;\n margin-left: 5px;\n }\n\n .column-header__setting-arrows .column-header__setting-btn:last-child {\n padding-left: 0;\n padding-right: 10px;\n }\n\n .simple_form .input.radio_buttons .radio > label input {\n left: auto;\n right: 0;\n }\n}\n",".dashboard__counters {\n display: flex;\n flex-wrap: wrap;\n margin: 0 -5px;\n margin-bottom: 20px;\n\n & > div {\n box-sizing: border-box;\n flex: 0 0 33.333%;\n padding: 0 5px;\n margin-bottom: 10px;\n\n & > div,\n & > a {\n padding: 20px;\n background: lighten($ui-base-color, 4%);\n border-radius: 4px;\n box-sizing: border-box;\n height: 100%;\n }\n\n & > a {\n text-decoration: none;\n color: inherit;\n display: block;\n\n &:hover,\n &:focus,\n &:active {\n background: lighten($ui-base-color, 8%);\n }\n }\n }\n\n &__num,\n &__text {\n text-align: center;\n font-weight: 500;\n font-size: 24px;\n line-height: 21px;\n color: $primary-text-color;\n font-family: $font-display, sans-serif;\n margin-bottom: 20px;\n line-height: 30px;\n }\n\n &__text {\n font-size: 18px;\n }\n\n &__label {\n font-size: 14px;\n color: $darker-text-color;\n text-align: center;\n font-weight: 500;\n }\n}\n\n.dashboard__widgets {\n display: flex;\n flex-wrap: wrap;\n margin: 0 -5px;\n\n & > div {\n flex: 0 0 33.333%;\n margin-bottom: 20px;\n\n & > div {\n padding: 0 5px;\n }\n }\n\n a:not(.name-tag) {\n color: $ui-secondary-color;\n font-weight: 500;\n text-decoration: none;\n }\n}\n","// Notes!\n// Sass color functions, \"darken\" and \"lighten\" are automatically replaced.\n\n.glitch.local-settings {\n background: $ui-base-color;\n\n &__navigation {\n background: darken($ui-base-color, 8%);\n }\n\n &__navigation__item {\n background: darken($ui-base-color, 8%);\n\n &:hover {\n background: $ui-base-color;\n }\n }\n}\n\n.notification__dismiss-overlay {\n .wrappy {\n box-shadow: unset;\n }\n\n .ckbox {\n text-shadow: unset;\n }\n}\n\n.status.status-direct:not(.read) {\n background: darken($ui-base-color, 8%);\n border-bottom-color: darken($ui-base-color, 12%);\n\n &.collapsed> .status__content:after {\n background: linear-gradient(rgba(darken($ui-base-color, 8%), 0), rgba(darken($ui-base-color, 8%), 1));\n }\n}\n\n.focusable:focus.status.status-direct:not(.read) {\n background: darken($ui-base-color, 4%);\n\n &.collapsed> .status__content:after {\n background: linear-gradient(rgba(darken($ui-base-color, 4%), 0), rgba(darken($ui-base-color, 4%), 1));\n }\n}\n\n// Change columns' default background colors\n.column {\n > .scrollable {\n background: darken($ui-base-color, 13%);\n }\n}\n\n.status.collapsed .status__content:after {\n background: linear-gradient(rgba(darken($ui-base-color, 13%), 0), rgba(darken($ui-base-color, 13%), 1));\n}\n\n.drawer__inner {\n background: $ui-base-color;\n}\n\n.drawer__inner__mastodon {\n background: $ui-base-color url('data:image/svg+xml;utf8,') no-repeat bottom / 100% auto !important;\n\n .mastodon {\n filter: contrast(75%) brightness(75%) !important;\n }\n}\n\n// Change the default appearance of the content warning button\n.status__content {\n\n .status__content__spoiler-link {\n\n background: lighten($ui-base-color, 30%);\n\n &:hover {\n background: lighten($ui-base-color, 35%);\n text-decoration: none;\n }\n\n }\n\n}\n\n// Change the background colors of media and video spoilers\n.media-spoiler,\n.video-player__spoiler,\n.account-gallery__item a {\n background: $ui-base-color;\n}\n\n// Change the colors used in the dropdown menu\n.dropdown-menu {\n background: $ui-base-color;\n}\n\n.dropdown-menu__arrow {\n\n &.left {\n border-left-color: $ui-base-color;\n }\n\n &.top {\n border-top-color: $ui-base-color;\n }\n\n &.bottom {\n border-bottom-color: $ui-base-color;\n }\n\n &.right {\n border-right-color: $ui-base-color;\n }\n\n}\n\n.dropdown-menu__item {\n a {\n background: $ui-base-color;\n color: $ui-secondary-color;\n }\n}\n\n// Change the default color of several parts of the compose form\n.composer {\n\n .composer--spoiler input, .compose-form__autosuggest-wrapper textarea {\n color: lighten($ui-base-color, 80%);\n\n &:disabled { background: lighten($simple-background-color, 10%) }\n\n &::placeholder {\n color: lighten($ui-base-color, 70%);\n }\n }\n\n .composer--options-wrapper {\n background: lighten($ui-base-color, 10%);\n }\n\n .composer--options > hr {\n display: none;\n }\n\n .composer--options--dropdown--content--item {\n color: $ui-primary-color;\n \n strong {\n color: $ui-primary-color;\n }\n\n }\n\n}\n\n.composer--upload_form--actions .icon-button {\n color: lighten($white, 7%);\n\n &:active,\n &:focus,\n &:hover {\n color: $white;\n }\n}\n\n.composer--upload_form--item > div input {\n color: lighten($white, 7%);\n\n &::placeholder {\n color: lighten($white, 10%);\n }\n}\n\n.dropdown-menu__separator {\n border-bottom-color: lighten($ui-base-color, 12%);\n}\n\n.status__content,\n.reply-indicator__content {\n a {\n color: $highlight-text-color;\n }\n}\n\n.emoji-mart-bar {\n border-color: darken($ui-base-color, 4%);\n\n &:first-child {\n background: lighten($ui-base-color, 10%);\n }\n}\n\n.emoji-mart-search input {\n background: rgba($ui-base-color, 0.3);\n border-color: $ui-base-color;\n}\n\n.autosuggest-textarea__suggestions {\n background: lighten($ui-base-color, 10%)\n}\n\n.autosuggest-textarea__suggestions__item {\n &:hover,\n &:focus,\n &:active,\n &.selected {\n background: darken($ui-base-color, 4%);\n }\n}\n\n.react-toggle-track {\n background: $ui-secondary-color;\n}\n\n.react-toggle:hover:not(.react-toggle--disabled) .react-toggle-track {\n background: lighten($ui-secondary-color, 10%);\n}\n\n.react-toggle.react-toggle--checked:hover:not(.react-toggle--disabled) .react-toggle-track {\n background: darken($ui-highlight-color, 10%);\n}\n\n// Change the background colors of modals\n.actions-modal,\n.boost-modal,\n.confirmation-modal,\n.mute-modal,\n.block-modal,\n.report-modal,\n.embed-modal,\n.error-modal,\n.onboarding-modal,\n.report-modal__comment .setting-text__wrapper,\n.report-modal__comment .setting-text {\n background: $white;\n border: 1px solid lighten($ui-base-color, 8%);\n}\n\n.report-modal__comment {\n border-right-color: lighten($ui-base-color, 8%);\n}\n\n.report-modal__container {\n border-top-color: lighten($ui-base-color, 8%);\n}\n\n.boost-modal__action-bar,\n.confirmation-modal__action-bar,\n.mute-modal__action-bar,\n.block-modal__action-bar,\n.onboarding-modal__paginator,\n.error-modal__footer {\n background: darken($ui-base-color, 6%);\n\n .onboarding-modal__nav,\n .error-modal__nav {\n &:hover,\n &:focus,\n &:active {\n background-color: darken($ui-base-color, 12%);\n }\n }\n}\n\n// Change the default color used for the text in an empty column or on the error column\n.empty-column-indicator,\n.error-column {\n color: lighten($ui-base-color, 60%);\n}\n\n// Change the default colors used on some parts of the profile pages\n.activity-stream-tabs {\n\n background: $account-background-color;\n\n a {\n &.active {\n color: $ui-primary-color;\n }\n }\n\n}\n\n.activity-stream {\n\n .entry {\n background: $account-background-color;\n }\n\n .status.light {\n\n .status__content {\n color: $primary-text-color;\n }\n\n .display-name {\n strong {\n color: $primary-text-color;\n }\n }\n\n }\n\n}\n\n.accounts-grid {\n .account-grid-card {\n\n .controls {\n .icon-button {\n color: $ui-secondary-color;\n }\n }\n\n .name {\n a {\n color: $primary-text-color;\n }\n }\n\n .username {\n color: $ui-secondary-color;\n }\n\n .account__header__content {\n color: $primary-text-color;\n }\n\n }\n}\n\n.button.logo-button {\n color: $white;\n\n svg {\n fill: $white;\n }\n}\n\n.public-layout {\n .header,\n .public-account-header,\n .public-account-bio {\n box-shadow: none;\n }\n\n .header {\n background: lighten($ui-base-color, 12%);\n }\n\n .public-account-header {\n &__image {\n background: lighten($ui-base-color, 12%);\n\n &::after {\n box-shadow: none;\n }\n }\n\n &__tabs {\n &__name {\n h1,\n h1 small {\n color: $white;\n }\n }\n }\n }\n}\n\n.account__section-headline a.active::after {\n border-color: transparent transparent $white;\n}\n\n.hero-widget,\n.box-widget,\n.contact-widget,\n.landing-page__information.contact-widget,\n.moved-account-widget,\n.memoriam-widget,\n.activity-stream,\n.nothing-here,\n.directory__tag > a,\n.directory__tag > div {\n box-shadow: none;\n}\n\n.audio-player .video-player__controls button,\n.audio-player .video-player__time-sep,\n.audio-player .video-player__time-current,\n.audio-player .video-player__time-total {\n color: $primary-text-color;\n}\n"],"sourceRoot":""} \ No newline at end of file diff --git a/priv/static/packs/skins/glitch/mastodon-light/common.js b/priv/static/packs/skins/glitch/mastodon-light/common.js deleted file mode 100644 index 0477e20b0..000000000 Binary files a/priv/static/packs/skins/glitch/mastodon-light/common.js and /dev/null differ diff --git a/priv/static/packs/skins/glitch/mastodon-light/common.js.map b/priv/static/packs/skins/glitch/mastodon-light/common.js.map deleted file mode 100644 index aeb9a2119..000000000 Binary files a/priv/static/packs/skins/glitch/mastodon-light/common.js.map and /dev/null differ diff --git a/priv/static/packs/skins/vanilla/contrast/common.css b/priv/static/packs/skins/vanilla/contrast/common.css deleted file mode 100644 index 166981fe7..000000000 Binary files a/priv/static/packs/skins/vanilla/contrast/common.css and /dev/null differ diff --git a/priv/static/packs/skins/vanilla/contrast/common.css.map b/priv/static/packs/skins/vanilla/contrast/common.css.map deleted file mode 100644 index 55ba6a017..000000000 --- a/priv/static/packs/skins/vanilla/contrast/common.css.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["webpack:///common.scss","webpack:///./app/javascript/styles/mastodon/reset.scss","webpack:///./app/javascript/styles/contrast/variables.scss","webpack:///./app/javascript/styles/mastodon/basics.scss","webpack:///./app/javascript/styles/mastodon/variables.scss","webpack:///./app/javascript/styles/mastodon/containers.scss","webpack:///./app/javascript/styles/mastodon/lists.scss","webpack:///./app/javascript/styles/mastodon/footer.scss","webpack:///./app/javascript/styles/mastodon/compact_header.scss","webpack:///./app/javascript/styles/mastodon/widgets.scss","webpack:///./app/javascript/styles/mastodon/forms.scss","webpack:///./app/javascript/styles/mastodon/accounts.scss","webpack:///./app/javascript/styles/mastodon/statuses.scss","webpack:///./app/javascript/styles/mastodon/boost.scss","webpack:///./app/javascript/styles/mastodon/components.scss","webpack:///","webpack:///./app/javascript/styles/mastodon/_mixins.scss","webpack:///./app/javascript/styles/mastodon/polls.scss","webpack:///./app/javascript/styles/mastodon/modal.scss","webpack:///./app/javascript/styles/mastodon/emoji_picker.scss","webpack:///./app/javascript/styles/mastodon/about.scss","webpack:///./app/javascript/styles/mastodon/tables.scss","webpack:///./app/javascript/styles/mastodon/admin.scss","webpack:///./app/javascript/styles/mastodon/dashboard.scss","webpack:///./app/javascript/styles/mastodon/rtl.scss","webpack:///./app/javascript/styles/mastodon/accessibility.scss","webpack:///./app/javascript/styles/contrast/diff.scss"],"names":[],"mappings":"AAAA,2ZCKA,QAaE,UACA,SACA,eACA,aACA,wBACA,+EAIF,aAEE,MAGF,aACE,OAGF,eACE,cAGF,WACE,qDAGF,UAEE,aACA,OAGF,wBACE,iBACA,MAGF,sCACE,qBAGF,UACE,YACA,2BAGF,kBACE,cACA,mBACA,iCAGF,kBACE,kCAGF,kBACE,2BAGF,aACE,gBACA,0BACA,CC9EmB,iEDqFrB,kBCrFqB,4BDyFrB,sBACE,MErFF,iDACE,mBACA,eACA,iBACA,gBACA,WCXM,kCDaN,6BACA,8BACA,CADA,0BACA,CADA,qBACA,0CACA,wCACA,kBAEA,iKAYE,eAGF,SACE,oCAEA,WACE,iBACA,kBACA,uCAGF,iBACE,WACA,YACA,mCAGF,iBACE,cAIJ,kBDrDmB,kBCyDnB,iBACE,kBACA,0BAEA,iBACE,aAIJ,iBACE,YAGF,kBACE,SACA,iBACA,uBAEA,iBACE,WACA,YACA,gBACA,YAIJ,kBACE,UACA,YAGF,iBACE,kBACA,cD9EgB,mBAZC,WC6FjB,YACA,UACA,aACA,uBACA,mBACA,oBAEA,qBACE,YACA,sCAGE,aACE,gBACA,WACA,YACA,kBACA,uBAIJ,cACE,iBACA,gBACA,QAMR,mBACE,eACA,cAEA,YACE,kDAKF,YAGE,WACA,mBACA,uBACA,oBACA,sBAGF,YACE,yEAKF,gBAEE,+EAKF,WAEE,sCAIJ,qBAEE,eACA,gBACA,gBACA,cACA,kBACA,8CAEA,eACE,0CAGF,mBACE,gEAEA,eACE,0CAIJ,aDpLwB,kKCuLtB,oBAGE,sDAIJ,aDpLgB,eCsLd,0DAEA,aDxLc,oDC6LhB,cACE,SACA,uBACA,cDhMc,aCkMd,UACA,SACA,oBACA,eACA,UACA,4BACA,0BACA,gMAEA,oBAGE,kEAGF,aC9NY,gBDgOV,gBEnON,WACE,CACA,kBACA,qCAEA,eALF,UAMI,SACA,kBAIJ,sBACE,qCAEA,gBAHF,kBAII,qBAGF,YACE,uBACA,mBACA,wBAEA,SDrBI,YCuBF,kBACA,sBAGF,YACE,uBACA,mBACA,WD9BE,qBCgCF,UACA,kBACA,iBACA,6CACA,gBACA,eACA,mCAMJ,WACE,CACA,cACA,mBACA,sBACA,qCAEA,kCAPF,UAQI,aACA,aACA,kBAKN,WACE,CACA,YACA,eACA,iBACA,sBACA,CACA,gBACA,CACA,sBACA,qCAEA,gBAZF,UAaI,CACA,eACA,CACA,mBACA,0BAGF,UACE,YACA,iBACA,6BAEA,UACE,YACA,cACA,SACA,kBACA,uBAIJ,aACE,cH/EmB,wBGiFnB,iCAEA,aACE,gBACA,uBACA,gBACA,8BAIJ,aACE,eACA,iBACA,gBACA,SAIJ,YACE,cACA,8BACA,sBACA,mCACA,CADA,0BACA,mBAEA,eACE,WACA,mBAGF,aACE,WACA,mBAGF,aACE,WACA,mBAGF,eACE,WACA,qCAGF,QA3BF,UA4BI,qCACA,mBAEA,aACE,mBAGF,aACE,WACA,mBAGF,aACE,WACA,mBAGF,aACE,WACA,UAKN,YACE,cACA,8CACA,sBACA,mCACA,CADA,0BACA,mBAEA,eACE,WACA,mBAGF,eACE,WACA,mBAGF,aACE,WACA,mBAGF,eACE,WACA,mBAGF,aACE,WACA,uCAGF,eACE,wBAGF,kBACE,qCAGF,QAxCF,iDAyCI,uCAEA,YACE,aACA,mBACA,uBACA,iCAGF,UACE,uBACA,mBACA,sBAGF,YACE,sCAIJ,QA7DF,UA8DI,qCACA,mBAEA,aACE,mBAGF,aACE,WACA,mBAGF,aACE,WACA,mBAGF,aACE,WACA,mBAGF,aACE,WACA,sCAMJ,eADF,gBAEI,4BAGF,eACE,qCAEA,0BAHF,SAII,yBAIJ,kBACE,mCACA,kBACA,YACA,cACA,aACA,oBACA,uBACA,iBACA,gBACA,qCAEA,uBAZF,cAaI,WACA,MACA,OACA,SACA,gBACA,gBACA,YACA,6BAGF,cACE,eACA,kCAGF,YACE,oBACA,2BACA,iBACA,oCAGF,YACE,oBACA,uBACA,iBACA,mCAGF,YACE,oBACA,yBACA,iBACA,+BAGF,aACE,aACA,mCAEA,aACE,YACA,WACA,kBACA,YACA,UDxUA,qCC2UA,kCARF,WASI,+GAIJ,kBAGE,kCAIJ,YACE,mBACA,eACA,eACA,gBACA,qBACA,cHhVc,mBGkVd,kBACA,uHAEA,yBAGE,WDrWA,qCCyWF,0CACE,YACE,qCAKN,kBACE,CACA,oBACA,kBACA,6HAEA,oBAGE,mBACA,sBAON,YACE,cACA,0DACA,sBACA,mCACA,CADA,0BACA,gCAEA,UACE,cACA,gCAGF,UACE,cACA,qCAGF,qBAjBF,0BAkBI,WACA,gCAEA,YACE,kCAKN,iBACE,qCAEA,gCAHF,eAII,sCAKF,4BADF,eAEI,wCAIJ,eACE,mBACA,mCACA,gDAEA,UACE,qIAEA,8BAEE,CAFF,sBAEE,6DAGF,wBHxaiB,8CG6anB,yBACE,gBACA,aACA,kBACA,mBACA,oDAEA,UACE,cACA,kBACA,WACA,YACA,gDACA,MACA,OACA,kDAGF,mBACE,CADF,8BACE,CADF,gBACE,cACA,WACA,YACA,SACA,0BACA,qCAGF,6CA3BF,YA4BI,gDAIJ,eACE,6JAEA,iBAEE,qCAEA,4JAJF,eAKI,sCAKN,sCA/DF,eAgEI,gBACA,oDAEA,YACE,+FAGF,eAEE,6CAIJ,iBACE,iBACA,aACA,2BACA,mDAEA,UACE,cACA,mBACA,kBACA,SACA,OACA,QACA,YACA,0BACA,WACA,oDAGF,aACE,YACA,aACA,kBACA,cACA,wDAEA,aACE,WACA,YACA,SACA,kBACA,yBACA,mBACA,qCAIJ,2CArCF,YAsCI,mBACA,0BACA,YACA,mDAEA,YACE,oDAGF,UACE,YACA,CACA,sBACA,wDAEA,QACE,kBACA,2DAGF,mDAXF,YAYI,sCAKN,2CAhEF,eAiEI,sCAGF,2CApEF,cAqEI,8CAIJ,aACE,iBACA,mDAEA,gBACE,mBACA,sDAEA,cACE,iBACA,WD1kBF,gBC4kBE,gBACA,mBACA,uBACA,6BACA,4DAEA,aACE,eACA,WDplBJ,gBCslBI,gBACA,uBACA,qCAKN,4CA7BF,gBA8BI,aACA,8BACA,mBACA,mDAEA,aACE,iBACA,sDAEA,cACE,iBACA,iBACA,4DAEA,aH/lBQ,oDGsmBd,YACE,2BACA,oBACA,YACA,qEAEA,YACE,mBACA,gBACA,qCAGF,oEACE,YACE,6DAIJ,eACE,sBACA,cACA,cH3nBU,aG6nBV,+BACA,eACA,kBACA,kBACA,8DAEA,aACE,uEAGF,cACE,kEAGF,aACE,WACA,kBACA,SACA,OACA,WACA,gCACA,WACA,wBACA,yEAIA,+BACE,UACA,kFAGF,2BH3pBW,wEGiqBX,SACE,wBACA,8DAIJ,oBACE,cACA,2EAGF,cACE,cACA,4EAGF,eACE,eACA,kBACA,WDnsBJ,6CCqsBI,2DAIJ,aACE,WACA,4DAGF,eACE,8CAKN,YACE,eACA,kEAEA,eACE,gBACA,uBACA,cACA,2FAEA,4BACE,yEAGF,YACE,qDAIJ,gBACE,eACA,cH5tBY,uDG+tBZ,oBACE,cHhuBU,qBGkuBV,aACA,gBACA,8DAEA,eACE,WDpvBJ,qCC0vBF,6CAtCF,aAuCI,UACA,4CAKN,yBACE,qCAEA,0CAHF,eAII,wCAIJ,eACE,oCAGF,kBACE,mCACA,kBACA,gBACA,mBACA,qCAEA,mCAPF,eAQI,gBACA,gBACA,8DAGF,QACE,aACA,+DAEA,aACE,sFAGF,uBACE,yEAGF,aDryBU,8DC2yBV,mBACA,WD7yBE,qFCizBJ,YAEE,eACA,cHvyBc,2CG2yBhB,gBACE,iCAIJ,YACE,cACA,kDACA,qCAEA,gCALF,aAMI,+CAGF,cACE,iCAIJ,eACE,2BAGF,YACE,eACA,eACA,cACA,+BAEA,qBACE,cACA,YACA,cACA,mBACA,kBACA,qCAEA,8BARF,aASI,sCAGF,8BAZF,cAaI,sCAIJ,0BAvBF,QAwBI,6BACA,+BAEA,UACE,UACA,gBACA,gCACA,0CAEA,eACE,0CAGF,kBHn3Ba,+IGs3BX,kBAGE,WC53BZ,eACE,aAEA,oBACE,aACA,iBAIJ,eACE,cACA,oBAEA,cACE,gBACA,mBACA,wBCfF,eACE,iBACA,oBACA,eACA,cACA,qCAEA,uBAPF,iBAQI,mBACA,+BAGF,YACE,cACA,0CACA,wCAEA,aACE,WACA,YACA,wCAGF,aACE,WACA,YACA,wCAGF,aACE,WACA,YACA,kBACA,6CAEA,aACE,wCAIJ,aACE,WACA,YACA,wCAGF,aACE,WACA,YACA,qCAGF,6BAxCF,iCAyCI,+EAEA,aAEE,wCAGF,UACE,wCAGF,aACE,+EAGF,aAEE,wCAGF,UACE,sCAIJ,uCACE,aACE,sCAIJ,4JACE,YAIE,4BAKN,wBACE,gBACA,kBACA,cLnFc,6BKsFd,aACE,qBACA,6BAIJ,oBACE,cACA,wGAEA,yBAGE,mCAKF,aACE,YACA,WACA,cACA,aACA,0HAMA,YACE,oBClIR,cACE,iBACA,cNYgB,gBMVhB,mBACA,eACA,qBACA,qCAEA,mBATF,iBAUI,oBACA,uBAGF,aACE,qBACA,0BAGF,eACE,cNJiB,wBMQnB,oBACE,mBACA,kBACA,WACA,YACA,cC9BN,kBACE,mCACA,mBAEA,UACE,kBACA,gBACA,0BACA,gBLPI,uBKUJ,mBACE,CADF,8BACE,CADF,gBACE,cACA,WACA,YACA,SACA,0BACA,oBAIJ,kBPlBmB,aOoBjB,0BACA,eACA,cPVgB,iBOYhB,qBACA,gBACA,8BAEA,UACE,YACA,gBACA,sBAGF,kBACE,iCAEA,eACE,uBAIJ,cACE,SACA,UACA,gBACA,uBACA,oBACA,kBACA,oBACA,cACA,sBAGF,aPxCmB,qBO0CjB,4BAEA,yBACE,qCAKN,aAnEF,YAoEI,uBAIJ,kBACE,oBACA,yBAEA,YACE,yBACA,gBACA,eACA,cPjEgB,+BOqElB,cACE,0CAEA,eACE,sDAGF,YACE,mBACA,gDAGF,UACE,YACA,0BACA,oCAIJ,YACE,mBAKF,aP9FkB,aOmGpB,YACE,kBACA,mBPjHmB,mCOmHnB,qBAGF,YACE,kBACA,0BACA,kBACA,cP9GkB,mBOgHlB,iBAGF,eACE,eACA,cPrHkB,iBOuHlB,qBACA,gBACA,UACA,oBAEA,YACE,yBACA,gBACA,eACA,cPhIgB,0BOoIlB,eACE,CACA,kBACA,mBAGF,oBACE,CACA,mBACA,cP7IgB,qBO+IhB,mBACA,gBACA,uBACA,0EAEA,yBAGE,uBAMJ,sBACA,kBACA,mBP3KmB,mCO6KnB,cP/JqB,gBOiKrB,mBACA,sDAEA,eAEE,CAII,qXADF,eACE,yBAKN,aACE,0BACA,CAMI,wLAGF,oBAGE,mIAEA,yBACE,gCAMR,kBACE,oCAEA,gBACE,cP5Mc,8DOkNhB,iBACE,eACA,4DAGF,eACE,qBACA,iEAEA,eACE,kBAMR,YACE,CACA,eLlPM,CKoPN,cACA,cPvOkB,mBOyOlB,+BANA,iBACA,CLlPM,kCKgQN,CATA,aAGF,kBACE,CAEA,iBACA,kBACA,cACA,iBAEA,ULjQM,eKmQJ,gBACA,gBACA,mBACA,gBAGF,cACE,cP7PgB,qCOiQlB,aArBF,YAsBI,mBACA,iBAEA,cACE,aAKN,kBPvRqB,kBOyRnB,mCACA,iBAEA,qBACE,mBACA,uCAEA,YAEE,mBACA,8BACA,mBPpSe,kBOsSf,aACA,qBACA,cACA,mCACA,0EAIA,kBAGE,0BAIJ,kBP3SiB,eO6Sf,8BAGF,UACE,eACA,oBAGF,aACE,eACA,gBACA,WLnUE,mBKqUF,gBACA,uBACA,wBAEA,aP5Tc,0BOgUd,aACE,gBACA,eACA,eACA,cPpUY,0IO0Ud,ULvVE,+BK+VJ,aACE,YACA,uDAGF,oBPzViB,wCO6VjB,eACE,eAKN,YACE,yBACA,gCAEA,aACE,WACA,YACA,kBACA,kBACA,kBACA,mBACA,yBACA,4CAEA,SACE,6CAGF,SACE,6CAGF,SACE,iBAKN,UACE,0BAEA,SACE,SACA,wBAGF,eACE,0BAGF,iBACE,yBACA,cP3YgB,gBO6YhB,aACA,sCAEA,eACE,0BAIJ,cACE,sBACA,gCACA,wCAGF,eACE,wBAGF,WACE,kBACA,eACA,gBACA,WLhbI,8BKmbJ,aACE,cPvac,gBOyad,eACA,0BAIJ,SACE,iCACA,qCAGF,kCACE,YACE,sCAYJ,qIAPF,eAQI,gBACA,gBACA,iBAOJ,gBACE,qCAEA,eAHF,oBAII,uBAGF,sBACE,sCAEA,qBAHF,sBAII,sCAGF,qBAPF,UAQI,sCAGF,qBAXF,WAYI,kCAIJ,iBACE,qCAEA,gCAHF,4BAII,iEAIA,eACE,0DAGF,cACE,iBACA,oEAEA,UACE,YACA,gBACA,yFAGF,gBACE,SACA,mKAIJ,eAGE,gBAON,aPxgBkB,iCOugBpB,kBAKI,6BAEA,eACE,kBAIJ,cACE,iBACA,wCAMF,oBACE,gBACA,cP/hBiB,4JOkiBjB,yBAGE,oBAKN,kBACE,gBACA,eACA,kBACA,yBAEA,aACE,gBACA,aACA,CACA,kBACA,gBACA,uBACA,qBACA,WLnkBI,gCKqkBJ,4FAEA,yBAGE,oCAIJ,eACE,0BAGF,iBACE,gCACA,MCplBJ,+CACE,gBACA,iBAGF,eACE,aACA,cACA,qBAIA,kBACE,gBACA,4BAEA,QACE,0CAIA,kBACE,qDAEA,eACE,gDAIJ,iBACE,kBACA,sDAEA,iBACE,SACA,OACA,6BAKN,iBACE,gBACA,gDAEA,mBACE,eACA,gBACA,WNhDA,cMkDA,WACA,4EAGF,iBAEE,mDAGF,eACE,4CAGF,iBACE,QACA,OACA,qCAGF,aRjEoB,0BQmElB,gIAEA,oBAGE,0CAIJ,iBACE,CACA,iBACA,mBAKN,YACE,cACA,0BAEA,qBACE,cACA,UACA,cACA,oBAIJ,aRvFkB,sBQ0FhB,aRnGsB,yBQuGtB,iBACE,kBACA,mBACA,uBAGF,eACE,iBACA,sBAIJ,kBACE,wBAGF,aACE,eACA,eACA,qBAGF,kBACE,cRrHgB,iCQwHhB,iBACE,eACA,iBACA,gBACA,gBACA,oBAIJ,kBACE,qBAGF,eACE,CAII,0JADF,eACE,sDAMJ,YACE,4DAEA,mBACE,eACA,WNlKA,gBMoKA,gBACA,cACA,wHAGF,aAEE,sDAIJ,cACE,kBACA,mDAKF,mBACE,eACA,WNxLE,cM0LF,kBACA,qBACA,gBACA,sCAGF,cACE,mCAGF,UACE,sCAIJ,cACE,4CAEA,mBACE,eACA,WN9ME,cMgNF,gBACA,gBACA,4CAGF,kBACE,yCAGF,cACE,CADF,cACE,kDAIJ,oBACE,WACA,OACA,6BAGF,oBACE,cACA,4BAGF,kBACE,8CAEA,eACE,0BAIJ,YACE,CACA,eACA,oBACA,iCAEA,cACE,kCAGF,qBACE,eACA,cACA,eACA,oCAEA,aACE,2CAGF,eACE,6GAIJ,eAEE,qCAGF,yBA9BF,aA+BI,gBACA,kCAEA,cACE,0JAGF,kBAGE,iDAKN,iBACE,oBACA,eACA,WNlSI,cMoSJ,WACA,2CAKE,mBACE,eACA,WN5SA,qBM8SA,WACA,kBACA,gBACA,kBACA,cACA,0DAGF,iBACE,OACA,QACA,SACA,kDAKN,cACE,aACA,yBACA,kBACA,sJAGF,qBAKE,eACA,WN5UI,cM8UJ,WACA,UACA,oBACA,gBACA,mBACA,yBACA,kBACA,aACA,6RAEA,aACE,CAHF,+OAEA,aACE,CAHF,mQAEA,aACE,CAHF,sNAEA,aACE,8LAGF,eACE,oVAGF,oBACE,iOAGF,oBNnWY,oLMuWZ,iBACE,4WAGF,oBRxWsB,mBQ2WpB,6CAKF,aACE,gUAGF,oBAME,8CAGF,aACE,gBACA,cACA,eACA,8BAIJ,UACE,uBAGF,eACE,aACA,oCAEA,YACE,mBACA,qEAIJ,aAGE,WACA,SACA,kBACA,mBRlZiB,WEXb,eMgaJ,oBACA,YACA,aACA,yBACA,qBACA,kBACA,sBACA,eACA,gBACA,UACA,mBACA,kBACA,sGAEA,cACE,uFAGF,wBACE,gLAGF,wBAEE,kHAGF,wBRzboB,gGQ6bpB,kBN7bQ,kHMgcN,wBACE,sOAGF,wBAEE,qBAKN,uBACE,CADF,oBACE,CADF,eACE,sBACA,eACA,WNhdI,cMkdJ,WACA,UACA,oBACA,gBACA,wXACA,yBACA,kBACA,kBACA,mBACA,YACA,iBAGF,4BACE,oCAIA,iBACE,mCAGF,iBACE,UACA,QACA,CACA,qBACA,eACA,cRheY,oBQkeZ,oBACA,eACA,gBACA,mBACA,gBACA,yCAEA,UACE,cACA,kBACA,MACA,QACA,WACA,UACA,iEACA,4BAKN,iBACE,0CAEA,wBACE,CADF,gBACE,qCAGF,iBACE,MACA,OACA,WACA,YACA,aACA,uBACA,mBACA,8BACA,kBACA,iBACA,gBACA,YACA,8CAEA,iBACE,6HAGE,UN9hBF,aMwiBR,aACE,CACA,kBACA,eACA,gBAGF,kBACE,cRniBkB,kBQqiBlB,kBACA,mBACA,kBACA,uBAEA,qCACE,iCACA,cNxjBY,sBM4jBd,mCACE,+BACA,cN7jBQ,kBMikBV,oBACE,cRvjBgB,qBQyjBhB,wBAEA,UNxkBI,0BM0kBF,kBAIJ,kBACE,4BAGF,SACE,sBACA,cACA,WACA,SACA,aACA,gDACA,mBRxlBiB,WEDb,eM4lBJ,SACA,8CAEA,QACE,iHAGF,mBAGE,kCAGF,kBACE,uBAIJ,eACE,CAII,oKADF,eACE,0DAKN,eAzEF,eA0EI,eAIJ,eACE,kBACA,gBAEA,aRpnBkB,qBQsnBhB,sBAEA,yBACE,YAKN,eACE,mBACA,eACA,eAEA,oBACE,kBACA,cAGF,aRjpBwB,yBQmpBtB,qBACA,gBACA,2DAEA,aAGE,8BAKN,kBAEE,cRxpBkB,oCQ2pBlB,cACE,mBACA,kBACA,4CAGF,aR/pBqB,gBQiqBnB,CAII,mUADF,eACE,0DAKN,6BAtBF,eAuBI,cAIJ,YACE,eACA,uBACA,UAGF,aACE,gBNrsBM,YMusBN,qBACA,mCACA,qBACA,cAEA,aACE,SACA,iBAIJ,kBACE,cRpsBqB,WQssBrB,sBAEA,aACE,eACA,eAKF,kBACE,sBAEA,eACE,CAII,+JADF,eACE,4CASR,qBACE,8BACA,WNjvBI,qCMmvBJ,oCACA,kBACA,aACA,mBACA,gDAEA,UNzvBI,0BM2vBF,oLAEA,oBAGE,0DAIJ,eACE,cACA,kBACA,CAII,yYADF,eACE,kEAIJ,eACE,oBAMR,YACE,eACA,mBACA,4DAEA,aAEE,6BAIA,wBACA,cACA,sBAIJ,iBACE,cR3xBkB,0BQ8xBlB,iBACE,oBAIJ,eACE,mBACA,uBAEA,cACE,WNrzBI,kBMuzBJ,mBACA,SACA,UACA,4BAGF,aACE,eAIJ,aN/zBc,0SMy0BZ,+CACE,aAIJ,kBACE,yBACA,kBACA,aACA,mBACA,kBACA,kBACA,QACA,mCACA,sBAEA,aACE,8BAGF,sBACE,SACA,aACA,eACA,gDACA,oBAGF,aACE,WACA,oBACA,gBACA,eACA,CACA,oBACA,WACA,iCACA,oBAGF,oBNn3Bc,gBMq3BZ,2BAEA,kBNv3BY,gBMy3BV,oBAKN,kBACE,6BAEA,wBACE,mBACA,eACA,aACA,4BAGF,kBACE,aACA,OACA,sBACA,cACA,cACA,gCAEA,iBACE,YACA,iBACA,kBACA,UACA,8BAGF,qBACE,qCAIJ,kBACE,gCAGF,wBACE,mCACA,kBACA,kBACA,kBACA,kBACA,sCAEA,wBACE,WACA,cACA,YACA,SACA,kBACA,MACA,UACA,yBAIJ,sBACE,aACA,mBACA,SC17BF,aACE,qBACA,cACA,mCACA,qCAEA,QANF,eAOI,8EAMA,kBACE,YAKN,YACE,kBACA,mBACA,0BACA,gBAEA,aACE,WACA,YACA,SACA,oBACA,CADA,8BACA,CADA,gBACA,0BACA,qCAGF,WAfF,YAgBI,sCAGF,WAnBF,YAoBI,aAIJ,iBACE,aACA,aACA,2BACA,mBACA,mBACA,0BACA,qCAEA,WATF,eAUI,qBAGF,aACE,WACA,YACA,gBACA,wBAEA,UACE,YACA,cACA,SACA,kBACA,mBACA,oBACA,CADA,8BACA,CADA,gBACA,0BAIJ,gBACE,gBACA,iCAEA,cACE,WP7EA,gBO+EA,gBACA,uBACA,+BAGF,aACE,eACA,cTzEY,gBS2EZ,gBACA,uBACA,aAMR,cACE,kBACA,gBACA,6GAEA,cAME,WP3GI,gBO6GJ,qBACA,iBACA,qBACA,sBAGF,ePnHM,oBOqHJ,WTtHI,eSwHJ,cACA,kBAGF,cACE,uCAGF,wBAEE,cTlHmB,oBSsHrB,UACE,eACA,wBAEA,oBACE,iBACA,oBAIJ,WACE,gBACA,wBAEA,oBACE,gBACA,uBAIJ,cACE,cACA,qCAGF,YA9DF,iBA+DI,mBAEA,YACE,uCAGF,oBAEE,gBAKN,kBT3KqB,mCS6KnB,cTzJiB,eS2JjB,gBACA,kBACA,aACA,uBACA,mBACA,eACA,kBACA,aACA,gBACA,2BAEA,yBACE,yBAGF,qBACE,gBACA,yCAIJ,oBAEE,gBACA,eACA,kBACA,eACA,iBACA,gBACA,cT1MwB,sCS4MxB,sCACA,6DAEA,aPjNc,sCOmNZ,kCACA,qDAGF,aACE,sCACA,kCACA,0BAIJ,eACE,UACA,wBACA,gBACA,CADA,YACA,CACA,iCACA,CADA,uBACA,CADA,kBACA,eACA,iBACA,6BAEA,YACE,gCACA,yDAGF,qBAEE,aACA,kBACA,gBACA,gBACA,mBACA,uBACA,6BAGF,eACE,YACA,cACA,cT7OmB,6BS+OnB,6BAGF,aACE,cTrPgB,4BSyPlB,aTlQwB,qBSoQtB,qGAEA,yBAGE,oCAIJ,qCACE,iCACA,sCAEA,aPpRY,gBOsRV,0CAGF,aPzRY,wCO8Rd,eACE,wCAIJ,UACE,0BAIA,aT5RkB,4BS+RhB,aTzSsB,qBS2SpB,qGAEA,yBAGE,iCAIJ,UPvTI,gBOyTF,wBAIJ,eACE,kBChUJ,kCACE,kBACA,gBACA,mBACA,8BAEA,yBACE,qCAGF,iBAVF,eAWI,gBACA,gBACA,6BAGF,eACE,SACA,gBACA,gFAEA,yBAEE,sCAIJ,UACE,yBAGF,kBV5BmB,6GU+BjB,sBAGE,CAHF,cAGE,8IAIA,eAGE,0BACA,iJAKF,yBAGE,kLAIA,iBAGE,qCAKN,4GACE,yBAGE,uCAKN,kBACE,qBAIJ,WACE,eACA,mBVpEmB,WEXb,oBQkFN,iBACA,YACA,iBACA,SACA,yBAEA,UACE,YACA,sBACA,iBACA,UR5FI,gFQgGN,kBAGE,qNAKA,kBVtGoB,4IU8GpB,kBR9GQ,qCQqHV,wBACE,YACE,0DAOJ,YACE,uCAGF,2BACE,gBACA,uDAEA,SACE,SACA,yDAGF,eACE,yDAGF,gBACE,iBACA,mFAGF,UACE,qMAGF,eAGE,iCC/JN,u+KACE,uCAEA,u+KACE,0CAIJ,u+KACE,WCTF,gCACE,4CACA,kBAGF,mBACE,sBACA,oBACA,gBACA,kBACA,cAGF,aACE,eACA,iBACA,cZHmB,SYKnB,uBACA,UACA,eACA,wCAEA,yBAEE,uBAGF,aZxBsB,eY0BpB,SAIJ,wBZrBqB,YYuBnB,kBACA,sBACA,WVpCM,eUsCN,qBACA,oBACA,eACA,gBACA,YACA,iBACA,iBACA,gBACA,eACA,kBACA,kBACA,yBACA,qBACA,uBACA,2BACA,mBACA,WACA,4CAEA,wBAGE,4BACA,sBAGF,eACE,mFAEA,wBVjEQ,gBUqEN,mCAIJ,wBZzEsB,eY4EpB,2BAGF,QACE,wDAGF,mBAGE,yGAGF,cAIE,iBACA,YACA,oBACA,iBACA,4BAGF,UZvGM,mBAGgB,qGYwGpB,wBAGE,8BAIJ,kBVnFsB,2GUsFpB,wBAGE,0BAIJ,aZ9GkB,uBYgHhB,iBACA,yBACA,+FAEA,oBAGE,cACA,mCAGF,UACE,uBAIJ,aACE,WACA,kBAIJ,YACE,cACA,kBACA,cAGF,oBACE,UACA,cZ1IoB,SY4IpB,kBACA,uBACA,eACA,2BACA,2CACA,2DAEA,aAGE,uCACA,4BACA,2CACA,oBAGF,qCACE,uBAGF,aACE,6BACA,eACA,qBAGF,aZnLwB,gCYuLxB,QACE,uEAGF,mBAGE,uBAGF,aZjLmB,sFYoLjB,aAGE,oCACA,6BAGF,kCACE,gCAGF,aACE,6BACA,8BAGF,aZpNsB,uCYuNpB,aACE,wBAKN,sBACE,0BACA,yBACA,kBACA,YACA,8BAEA,yBACE,mBAKN,aZ1NqB,SY4NnB,kBACA,uBACA,eACA,gBACA,eACA,cACA,iBACA,UACA,2BACA,2CACA,0EAEA,aAGE,oCACA,4BACA,2CACA,yBAGF,kCACE,4BAGF,aACE,6BACA,eACA,0BAGF,aZ3QwB,qCY+QxB,QACE,sFAGF,mBAGE,CAKF,0BADF,iBAUE,CATA,WAGF,WACE,cACA,qBACA,QACA,SAEA,+BAEA,kBAEE,mBACA,oBACA,kBACA,mBACA,iBAKF,WACE,eAIJ,YACE,iCAGE,mBACA,eAEA,gBACA,wCAEA,aZhUsB,sDYoUtB,YACE,2CAGF,oBACE,kBACA,yBACA,sBACA,WACA,YACA,cACA,kBACA,SACA,kBACA,sBACA,kDAEA,oBZrVoB,yDY4VxB,UZjWM,mBYmWJ,mBZhWoB,oCYkWpB,iBACA,kBACA,eACA,gBACA,6CAEA,UZ3WI,gBY6WF,CAII,kRADF,eACE,wCAKN,aZjWiB,gBYmWf,0BACA,yIAEA,oBAGE,sCAKN,iBACE,MACA,QACA,kDAGF,iBACE,mGAGF,iBAGE,WACA,8BAGF,QACE,wBACA,UACA,qDAEA,WACE,mBACA,UACA,mFAIJ,aAEE,sBACA,WACA,SACA,WZraI,gBECA,aUuaJ,oBACA,eACA,gBACA,SACA,UACA,yIAEA,aZhac,CY8Zd,sHAEA,aZhac,CY8Zd,8HAEA,aZhac,CY8Zd,4GAEA,aZhac,+FYoad,SACE,qCAGF,kFAvBF,cAwBI,sCAIJ,iBACE,+CAGF,gBACE,0BACA,iBACA,mBACA,YACA,qBACA,kEAEA,SACE,qCAGF,8CAZF,sBAaI,gBACA,2DAIJ,iBACE,SACA,kDAGF,qBACE,aACA,kBACA,SACA,WACA,WACA,sCACA,mBZ1dsB,0BY4dtB,WZheI,eYkeJ,YACA,6FAEA,aACE,wDAIJ,YACE,eACA,kBACA,yPAEA,kBAIE,wGAIJ,YAGE,mBACA,mBACA,2BACA,iBACA,eACA,oCAGF,6BACE,0CAEA,aACE,gBACA,uBACA,mBACA,2CAGF,eACE,0CAGF,aACE,iBACA,gBACA,uBACA,mBACA,8EAIJ,aAEE,iBACA,WACA,YACA,2DAGF,aZ5gBmB,wCYghBnB,UZriBM,oBYuiBJ,eACA,gBVviBI,sEU0iBJ,eACE,uEAGF,YACE,mBACA,YACA,eACA,8DAGF,UACE,cACA,WACA,uEAEA,iFACE,aACA,uBACA,8BACA,UACA,4BACA,oFAEA,aACE,cZpjBa,eYsjBb,gBACA,aACA,oBACA,6QAEA,UAGE,8EAIJ,SACE,0EAIJ,iBACE,UACA,SACA,OACA,QACA,sBACA,gFACA,aACA,UACA,4BACA,mFAEA,sBACE,cZplBa,SYslBb,UACA,SACA,WACA,oBACA,eACA,gBACA,yFAEA,UV7mBF,8GUinBE,WACE,cZnmBW,CEff,oGUinBE,WACE,cZnmBW,CEff,wGUinBE,WACE,cZnmBW,CEff,+FUinBE,WACE,cZnmBW,iFYwmBf,SACE,wEAKN,iBACE,sBV/nBE,wBUioBF,sBACA,4BACA,aACA,WACA,gBACA,8CAIJ,YACE,mBACA,0BACA,aACA,8BACA,cACA,qEAEA,YACE,uGAEA,gBACE,qGAGF,YACE,6IAEA,aACE,2IAGF,gBACE,0HAKN,sBAEE,cACA,0EAGF,iBACE,iBACA,sCAIJ,YACE,yBACA,YACA,cACA,4EAEA,eACE,iBACA,oBAKN,cACE,kDACA,eACA,gBACA,cZ9qBmB,4CYirBnB,aVlsBY,kCUusBd,2CACE,WC7sBF,8DDktBE,sBACA,CADA,kBACA,wBACA,WACA,YACA,eAEA,UACE,kBAIJ,iBACE,mBACA,mBZ3tBsB,aY6tBtB,gBACA,gBACA,cACA,0BAGF,iBACE,gBACA,0BAGF,WACE,iBACA,gCAGF,UZhvBQ,cYkvBN,eACA,iBACA,gBACA,mBACA,qBACA,kCAGF,UACE,iBACA,+BAGF,cACE,4CAGF,iBAEE,eACA,iBACA,qBACA,gBACA,gBACA,uBACA,gBACA,WV3wBM,wDU8wBN,SACE,wGAGF,kBACE,sJAEA,oBACE,gEAIJ,UACE,YACA,gBACA,oDAGF,cACE,iBACA,sBACA,CADA,gCACA,CADA,kBACA,gDAGF,kBACE,qBACA,sEAEA,eACE,gDAIJ,aVnyBc,qBUqyBZ,4DAEA,yBACE,oEAEA,aACE,4EAKF,oBACE,sFAEA,yBACE,wDAKN,aZvzBc,8EY4zBhB,aACE,0GAGF,kBZ7zBoB,sHYg0BlB,kBACE,qBACA,8IAGF,QACE,0XAGF,mBAGE,0FAIJ,YACE,wJAEA,aACE,+BAKN,oBACE,gBACA,yCAEA,UACE,YACA,gBACA,iCAGF,kBACE,qBACA,4CAEA,eACE,iCAIJ,aZ92BqB,qBYg3BnB,uCAEA,yBACE,+CAIA,oBACE,oDAEA,yBACE,gDAKN,aACE,6CAKN,gBACE,oCAGF,aACE,eACA,iBACA,cACA,SACA,uBACA,CACA,eACA,qBACA,oFAEA,yBAEE,gCAIJ,oBACE,kBACA,uBACA,SACA,WZ/6BM,gBYi7BN,eACA,cACA,yBACA,iBACA,eACA,sBACA,4BAGF,aZ36BkB,SY66BhB,kBACA,kBACA,oBACA,SACA,aACA,sBACA,WACA,WACA,gCACA,+BAGF,UACE,kBACA,kBAIA,SACE,mBACA,wCAEA,kBACE,8CAEA,sBACE,iFAIJ,kBAEE,SAMJ,yBACA,kBACA,gBACA,gCACA,eACA,UAaA,mCACA,CADA,0BACA,wDAZA,QARF,kBAWI,0BAGF,GACE,aACA,WALA,gBAGF,GACE,aACA,uDAMF,cAEE,kCAGF,kBACE,4BACA,sCAIA,aZ5+Be,qCYg/Bf,UZtgCI,6BY0gCJ,aZp/Be,CAtBX,kEYkhCJ,UZlhCI,kCYqhCF,aZhhCoB,gEYohCpB,UVxhCE,mBFEgB,sEY0hChB,kBACE,+CAQR,sBACE,qEAEA,aACE,qDAKN,aZhiCkB,YYmiChB,eACA,uBAGF,aZviCkB,qCY2iClB,aACE,eACA,mBACA,eAGF,cACE,mBAGF,+BACE,aACA,6CAEA,uBACE,OACA,gBACA,4DAEA,eACE,8DAGF,SACE,mBACA,qHAGF,cAEE,gBACA,4EAGF,cACE,0BAKN,kBACE,aACA,cACA,uBACA,aACA,kBAGF,gBACE,cZ5lCgB,CY8lChB,iBACA,eACA,kBACA,+CAEA,aZnmCgB,uBYumChB,aACE,gBACA,uBACA,qBAIJ,kBACE,aACA,eACA,8BAEA,mBACE,kBACA,mBACA,yDAEA,gBACE,qCAGF,oBACE,WACA,eACA,gBACA,cZ7nCgB,4BYmoCtB,iBACE,8BAGF,cACE,cACA,uCAGF,aACE,aACA,mBACA,uBACA,kBACA,kBAGF,kBACE,kBACA,wBAEA,YACE,eACA,8BACA,uBACA,uFAEA,SAEE,mCAIJ,cACE,iBACA,6CAEA,UACE,YACA,gBACA,kEAGF,gBACE,gBACA,+DAIJ,cAEE,wBAIJ,eACE,cZ9rCgB,eYgsChB,iBACA,8BAGF,kBACE,6BACA,gCACA,aACA,mBACA,eACA,wBAGF,aACE,qBACA,uDAGF,oBAEE,gBACA,eACA,gBACA,2BAGF,UZzuCQ,eY2uCN,6BAEA,aZxtCmB,SY6tCrB,YACE,gCACA,8BAEA,aACE,cACA,WVvvCI,qBUyvCJ,eACA,gBACA,kBAIJ,YACE,iBAGF,WACE,aACA,mBACA,UAGF,YACE,gCACA,kBAEA,SACE,gBACA,2CAEA,aACE,iCAIJ,aACE,cACA,cZ3wCgB,gBY6wChB,qBACA,eACA,mBAIJ,YACE,0BAGF,UACE,iBACA,kBACA,kBAGF,iBE3yCE,iCACA,wBACA,4BACA,kBF0yCA,yBAEA,oBACE,sBACA,iBACA,4BAGF,iBErzCA,iCACA,wBACA,4BACA,kBFozCE,gBACA,kBACA,gCAEA,UACE,kBACA,sBACA,mCAGF,aACE,kBACA,QACA,SACA,+BACA,WVr0CE,6BUu0CF,gBACA,eACA,oBAKN,cACE,0BAGF,UACuB,sCE30CrB,+BF60CA,iBEt1CA,iCACA,wBACA,4BACA,WFq1CuB,sCE/0CvB,kCFk1CA,iBE31CA,iCACA,wBACA,4BACA,WF01CuB,sCEp1CvB,kBFs1CE,SACA,QACA,UACA,wBAIJ,WACE,aACA,mBACA,sBAGF,YACE,6BACA,cZ/1CgB,6BYk2ChB,eACE,CAII,kMADF,eACE,wBAKN,eACE,cACA,0BACA,yFAEA,oBAGE,sBAKN,4BACE,gCACA,iBACA,gBACA,cACA,aACA,+BAGF,YACE,4CAEA,qBACE,oFAIA,QACE,WACA,uDAGF,WACE,iBACA,gBACA,WACA,4BAKN,YACE,cACA,iBACA,kBACA,2BAGF,oBACE,gBACA,cACA,+BACA,eACA,oCACA,kCAEA,+BACE,gCAGF,aACE,yBACA,eACA,cZ/6CgB,kCYm7ClB,aACE,eACA,gBACA,WVn8CI,CUw8CA,2NADF,eACE,oBAMR,iBACE,mDAEA,aACE,mBACA,gBACA,4BAIJ,UACE,kBACA,6JAGF,oBAME,4DAKA,UVx+CM,kBU8+CN,UACE,iKAQF,yBACE,+BAIJ,aACE,gBACA,uBACA,0DAGF,aAEE,sCAGF,kBACE,gCAGF,aZ5/CuB,cY8/CrB,iBACA,mBACA,gBACA,2EAEA,aAEE,uBACA,gBACA,uCAGF,cACE,WV1hDI,kCU+hDR,UACE,kBACA,iBAGF,WACE,UACA,kBACA,SACA,WACA,iBAGF,UACE,kBACA,OACA,MACA,YACA,eACA,CZpiDgB,gHY8iDhB,aZ9iDgB,wBYkjDhB,UACE,wCAGF,kBVtiDsB,WF/BhB,8CYykDJ,kBACE,qBACA,wBAKN,oBACE,gBACA,eACA,cZrkDkB,eYukDlB,iBACA,kBACA,4BAEA,aZplDwB,6BYwlDxB,cACE,gBACA,uBACA,uCAIJ,UACE,kBACA,CVjmDU,mEUwmDZ,aVxmDY,uBU4mDZ,aV7mDc,4DUmnDV,4CACE,CADF,oCACE,8DAKF,6CACE,CADF,qCACE,6BAKN,aACE,gBACA,qBACA,mCAEA,UVvoDM,0BUyoDJ,8BAIJ,WACE,eAGF,aACE,eACA,gBACA,uBACA,mBACA,qBAGF,eACE,wBAGF,cACE,+DAKA,yBACE,eAIJ,iBACE,WACA,YACA,aACA,mBACA,uBACA,sBACA,6CAEA,cV9nD4B,eAEC,0DU+nD3B,sBACA,CADA,gCACA,CADA,kBACA,4BAGF,iBACE,qEAGF,YACE,iBAIJ,iBACE,WACA,YACA,aACA,mBACA,uBACA,qBAEA,cVtpD4B,eAEC,WUupD3B,YACA,sBACA,CADA,gCACA,CADA,kBACA,iBAIJ,YACE,aACA,mBACA,cACA,eACA,cZ1sDkB,wBY6sDlB,aZ3sDqB,mBY+sDrB,aACE,4BAGF,oBACE,0CAGF,iBACE,6DAEA,iBACE,oBACA,qCACA,UACA,4EAGF,mBACE,gCACA,UACA,0BAKN,aACE,gBACA,iBACA,gBACA,gBACA,kCAGF,aACE,gBACA,gBACA,uBACA,+BAGF,aACE,qBACA,WAGF,oBACE,oBAGF,YACE,kBACA,2BAGF,+BACE,mBACA,SACA,gBAGF,kBZxxD0B,cY0xDxB,kBACA,uCACA,aACA,mBAEA,eACE,qBAGF,yBACE,oBAGF,yBACE,uBAGF,sBACE,sBAGF,sBACE,uBAIJ,iBACE,QACA,SACA,2BACA,4BAEA,UACE,gBACA,2BACA,0BZ7zDsB,2BYi0DxB,WACE,iBACA,uBACA,yBZp0DsB,8BYw0DxB,QACE,iBACA,uBACA,4BZ30DsB,6BY+0DxB,SACE,gBACA,2BACA,2BZl1DsB,wBYw1DxB,cACE,iBACA,cACA,iBACA,sBACA,qBACA,mBZ91DsB,WAJlB,gBYq2DJ,uBACA,mBACA,yFAEA,kBZ71DiB,cAIE,UY81DjB,sCAKN,aACE,iBACA,gBACA,QACA,gBACA,aACA,yCAEA,eACE,mBZx3DsB,cY03DtB,kBACA,mCACA,gBACA,kBACA,sDAGF,OACE,wDAIA,UACE,8CAIJ,cACE,iBACA,cACA,iBACA,sBACA,qBACA,mBZj5DsB,WAJlB,gBYw5DJ,uBACA,mBACA,oDAEA,SACE,oDAGF,kBZp5DiB,cAIE,iBYu5DvB,qBACE,eAGF,YACE,cACA,mBACA,2BACA,gBACA,kBACA,4BAEA,iBACE,uBAGF,YACE,uBACA,WACA,YACA,iBACA,6BAEA,WACE,gBACA,oBACA,aACA,yBACA,gBACA,oCAEA,0BACE,oCAGF,cACE,YACA,oBACA,YACA,6BAIJ,qBACE,WACA,gBACA,cACA,aACA,sBACA,qCAEA,4BARF,cASI,qBAMR,kBACE,wBACA,CADA,eACA,MACA,UACA,cACA,qCAEA,mBAPF,gBAQI,+BAGF,eACE,qCAEA,6BAHF,kBAII,gKAMJ,WAIE,mCAIJ,YACE,mBACA,uBACA,YACA,SAGF,WACE,kBACA,sBACA,aACA,sBACA,qBAEA,kBZ1gEmB,8BY4gEjB,+BACA,KAIJ,aACE,CACA,qBACA,WACA,YACA,aAJA,YAYA,CARA,QAGF,WACE,sBACA,CACA,qBACA,kBACA,cAGF,aACE,cACA,sBACA,cZxhEkB,qBY0hElB,kBACA,eACA,oCACA,iBAGF,aAEE,gBACA,qCAGF,cACE,SACE,iBAGF,aAEE,CAEA,gBACA,yCAEA,iBACE,uCAGF,kBACE,qDAKF,gBAEE,kBACA,YAKN,qBACE,aACA,mBACA,cACA,gBACA,iBAGF,aACE,cACA,CACA,sBACA,WV7lEM,qBU+lEN,kBACA,eACA,gBACA,gCACA,2BACA,mDACA,qBAEA,eACE,eACA,qCAMA,mEAHF,kBAII,4BACA,yBAIJ,+BACE,cZlnEsB,sBYsnExB,eACE,aACA,qCAIJ,qBAEI,cACE,wBAKN,qBACE,WACA,YACA,cACA,6DAEA,UAEE,YACA,UACA,wCAGF,YACE,cACA,kDACA,qCAEA,uCALF,aAMI,yCAIJ,eACE,oCAGF,YACE,uDAGF,cACE,sCAGF,gBACE,eACA,CACA,2BACA,yCAGF,QACE,mCAGF,gBACE,yBAEA,kCAHF,eAII,sCAIJ,sBACE,gBACA,sCAGF,uCACE,YACE,iKAEA,eAGE,6CAIJ,gBACE,2EAGF,YAEE,kGAGF,gBACE,+BAGF,2BACE,gBACA,uCAEA,SACE,SACA,wCAGF,eACE,wCAGF,gBACE,iBACA,qDAGF,UACE,gLAGF,eAIE,gCAIJ,iBACE,6CAEA,cACE,8CAKF,gBACE,iBACA,6DAGF,UACE,CAIA,yFAGF,eACE,8DAGF,gBACE,kBACA,0BAMR,cACE,aACA,uBACA,mBACA,gBACA,iBACA,iBACA,gBACA,mBACA,WVpyEM,kBUsyEN,eACA,iBACA,qBACA,sCACA,4FAEA,kBAGE,qCAIJ,UACE,UACE,uDAGF,kCACE,4DAGF,kBAGE,yBAGF,aACE,iBAGF,eAEE,sCAIJ,2CACE,YACE,sCAOA,sEAGF,YACE,uCAIJ,0CACE,YACE,uCAIJ,UACE,YACE,mBAIJ,iBACE,yBAEA,iBACE,SACA,UACA,mBZp2EiB,yBYs2EjB,gBACA,kBACA,eACA,gBACA,iBACA,WVt3EI,mDU23ER,oBACE,gBAGF,WACE,gBACA,aACA,sBACA,yBACA,kBACA,gCAEA,gBACE,oBACA,cACA,gBACA,6BAGF,sBACE,8BAGF,MACE,kBACA,aACA,sBACA,iBACA,oBACA,oBACA,mDAGF,eACE,sBV75EI,0BU+5EJ,cACA,gDAGF,iBACE,gDAGF,WACE,mBAIJ,eACE,mBACA,yBACA,gBACA,aACA,sBACA,qBAEA,aACE,sBAGF,aACE,SACA,CACA,4BACA,cACA,qDAHA,sBAOA,gBAMF,WACA,kBAGA,+BANF,qBACE,UACA,CAEA,eACA,aAiBA,CAhBA,eAGF,iBACE,MACA,OACA,mBACA,CAGA,qBACA,CACA,eACA,WACA,YACA,kBACA,uBAEA,kBZ59EmB,0BYi+ErB,u1BACE,OACA,gBACA,aACA,8BAEA,aACE,sBACA,CADA,4DACA,CADA,kBACA,+BACA,CADA,2BACA,UACA,YACA,oBACA,eACA,yBACA,CADA,qBACA,CADA,oBACA,CADA,gBACA,sCAGF,yBAjBF,aAkBI,iBAIJ,kBACE,eACA,gBACA,iBAGF,aACE,eACA,mBACA,mBACA,aACA,mBACA,kBACA,mBAEA,iCACE,yBAEA,kBACE,mCACA,aAKN,iBACE,kBACA,cACA,iCACA,mCAEA,eACE,yBAGF,YAVF,cAWI,oBAGF,YACE,sBACA,qBAGF,aACE,kBACA,iBACA,yBAKF,uBADF,YAEI,sBAIJ,qBACE,WACA,mBACA,cZhjFwB,eYkjFxB,cACA,eACA,oBACA,SACA,iBACA,aACA,SACA,UACA,UACA,2BAEA,yBACE,6BAIJ,kBACE,SACA,oBACA,cZrkFwB,eYukFxB,mBACA,eACA,kBACA,UACA,mCAEA,yBACE,wCAGF,kBACE,2BAIJ,oBACE,iBACA,2BAGF,iBACE,kCAGF,cACE,cACA,eACA,aACA,kBACA,QACA,UACA,eAGF,oBACE,kBACA,eACA,6BACA,SACA,UACA,yBACA,CADA,qBACA,CADA,oBACA,CADA,gBACA,0CACA,wCACA,iCAGF,QACE,mBACA,WACA,YACA,gBACA,UACA,kBACA,UACA,yBAGF,kBACE,WACA,wBACA,qBAGF,UACE,YACA,UACA,mBACA,yBZ7oFmB,qCY+oFnB,sEAGF,wBACE,4CAGF,wBZ5oFqB,+EYgpFrB,wBACE,2BAGF,iBACE,WACA,YACA,MACA,SACA,gBACA,mBACA,cACA,SACA,UACA,6BACA,CAKA,uEAFF,SACE,6BAeA,CAdA,sBAGF,iBACE,WACA,YACA,MACA,SACA,gBACA,mBACA,cACA,WAGA,8CAGF,SACE,qBAGF,iBACE,QACA,SACA,WACA,YACA,yBACA,kBACA,yBACA,sBACA,yBACA,sCACA,4CAGF,SACE,qBZxsFmB,cY4sFrB,kBACE,WVxtFM,cU0tFN,eACA,aACA,qBACA,2DAEA,kBAGE,oBAGF,SACE,2BAGF,sBACE,cZvuFsB,kGY0uFtB,sBAGE,WVhvFE,kCUovFJ,aZzuFiB,oBY+uFrB,oBACE,iBACA,qBAGF,oBACE,kBACA,CACA,gBACA,CZlwFmB,eYqwFnB,iBACA,wCANA,cACA,CACA,eACA,mBAaA,CAVA,mBZtwFmB,aAaH,iBY+vFhB,CAEA,wBACA,eACA,yDAGF,kBZnxFqB,cYyxFrB,aACE,kBAGF,aZhxFkB,cYkxFhB,8BACA,+BACA,4EAEA,0BAGE,CAHF,uBAGE,CAHF,kBAGE,kDAMA,sBACA,YACA,wDAEA,kBACE,8DAGF,cACE,sDAGF,cACE,0DAEA,aZ9yFY,0BYgzFV,sDAIJ,oBACE,cZtzFc,sMYyzFd,yBAGE,oDAKN,aZh0FgB,0BYs0FhB,aACE,UACA,mCACA,CADA,0BACA,gBACA,6BAEA,cACE,yBACA,cZ/0Fc,aYi1Fd,gBACA,gCACA,sCAGF,oDACE,YACE,uCAIJ,oDACE,YACE,uCAIJ,yBA3BF,YA4BI,yCAGF,eACE,aACA,iDAEA,aZ12Fc,qBYi3FpB,eACE,gBACA,2BAEA,iBACE,aACA,wBAGF,kBACE,yBAGF,oBACE,gBACA,yBACA,yBACA,eAIJ,aACE,sBACA,WACA,SACA,WZx5FM,gBECA,aU05FN,oBACA,eACA,gBACA,SACA,UACA,kBACA,qBAEA,SACE,qCAGF,cAnBF,cAoBI,oDAIJ,uBACE,YACA,6CACA,uBACA,sBACA,WACA,0DAEA,sBACE,0DAKJ,uBACE,2BACA,gDAGF,aZ76FsB,6BY+6FpB,uDAGF,aZ/7F0B,cYm8F1B,YACE,eACA,yBACA,kBACA,cZ77FgB,gBY+7FhB,qBACA,gBACA,uBAEA,QACE,OACA,kBACA,QACA,MAIA,iDAHA,YACA,uBACA,mBAUE,CATF,0BAEA,yBACE,kBACA,iBACA,cAIA,sDAGF,cAEE,cZx9FiB,uBY09FjB,SACA,cACA,qBACA,eACA,iBACA,sMAEA,UVh/FE,yBUu/FJ,cACE,kBACA,YACA,eAKN,cACE,qBAEA,kBACE,oBAIJ,cACE,cACA,qBACA,WACA,YACA,SACA,2BAIA,UACE,YACA,qBAIJ,aACE,gBACA,kBACA,cZ7gGkB,gBY+gGlB,uBACA,mBACA,qBACA,uBAGF,aACE,gBACA,2BACA,2BAGF,aZ3hGoB,oBY+hGpB,aACE,eACA,eACA,gBACA,uBACA,mBACA,qBAGF,cACE,mBACA,kBACA,yBAEA,cACE,kBACA,yBACA,QACA,SACA,+BACA,yBAIJ,aACE,6CAEA,UACE,mDAGF,yBACE,6CAGF,mBACE,sBAIJ,oBACE,kCAEA,QACE,4CAIA,oBACA,0CAGF,kBACE,0CAGF,aACE,6BAIJ,wBACE,2BAGF,yBACE,cACA,SACA,WACA,YACA,oBACA,CADA,8BACA,CADA,gBACA,sBACA,wBACA,YAGF,aACE,cZ3mGgB,6BY6mGhB,SACA,kBACA,kBACA,oBACA,SACA,aACA,sBACA,WACA,WACA,qBACA,kBAEA,kBACE,WAIJ,+BACE,yBAGF,iBACE,eACA,gBACA,cZroGgB,mBAbG,eYqpGnB,aACA,cACA,sBACA,mBACA,uBACA,aACA,qEAGE,aAEE,WACA,aACA,SACA,yCAIJ,gBACE,gCAGF,eACE,uCAEA,aACE,mBACA,cZnqGY,qCYuqGd,cACE,gBACA,yBAKN,iBACE,cACA,UACA,gCAEA,sCACE,uCAEA,aACE,WACA,kBACA,aACA,OACA,QACA,cACA,UACA,oBACA,YACA,UACA,gFACA,wCAIJ,SACE,kBACA,gBAIJ,YACE,eACA,mBACA,cACA,eACA,kBACA,UACA,UACA,gBACA,2BACA,4BACA,uBAEA,QACE,SACA,yBACA,cACA,uBACA,aACA,gBACA,uBACA,gBACA,mBACA,OACA,4CAGF,aZjvGwB,4CYsvGtB,aZtvGsB,yCYwvGpB,4CAIJ,SAEE,yBAIJ,WACE,aACA,uBAGF,kBACE,iCAGF,iBACE,wBAGF,kBACE,SACA,cZxwGkB,eY0wGlB,eACA,eACA,8BAEA,aACE,CAKA,kEAEA,UVnyGI,mBUqyGF,6BAKN,eACE,gBACA,gBACA,cZhyGkB,0DYkyGlB,UACA,UACA,kBACA,uCAEA,YACE,WACA,uCAGF,iBACE,gCAGF,QACE,uBACA,SACA,6BACA,cACA,mCAIJ,kBACE,aACA,mCAIA,aZ/zGkB,0BYi0GhB,gCAIJ,WACE,4DAEA,cACE,uEAEA,eACE,WAKN,oBACE,UACA,oBACA,kBACA,cACA,SACA,uBACA,eACA,sBAGF,oBACE,iBACA,oBAGF,aZh2GkB,eYk2GhB,gBACA,yBACA,iBACA,kBACA,QACA,SACA,+BACA,yBAEA,aACE,WACA,CACA,0BACA,oBACA,mBACA,4BAIJ,iBACE,QACA,SACA,+BACA,WACA,YACA,sBACA,6BACA,CACA,wBACA,kBACA,2CAGF,2EACE,CADF,mEACE,8CAGF,4EACE,CADF,oEACE,qCAGF,GACE,sBACE,KAGF,2BACE,KAGF,2BACE,KAGF,yBACE,IAGF,wBACE,EArBF,4BAGF,GACE,sBACE,KAGF,2BACE,KAGF,2BACE,KAGF,yBACE,IAGF,wBACE,uCAIJ,GACE,wBACE,KAGF,0BACE,KAGF,2BACE,KAGF,uBACE,IAGF,sBACE,EAtBA,6BAIJ,GACE,wBACE,KAGF,0BACE,KAGF,2BACE,KAGF,uBACE,IAGF,sBACE,mCAIJ,GACE,OACE,SACA,yBACA,KAGF,wBACE,KAGF,UACE,YACA,6BACA,kBACA,UACA,IAGF,UACE,YACA,eACA,UACA,6BACA,EA5BA,yBAIJ,GACE,OACE,SACA,yBACA,KAGF,wBACE,KAGF,UACE,YACA,6BACA,kBACA,UACA,IAGF,UACE,YACA,eACA,UACA,6BACA,kCAIJ,GACE,gBACA,aACA,aAPE,wBAIJ,GACE,gBACA,aACA,gCAGF,kBACE,gBVz+GM,WACA,eU2+GN,aACA,sBACA,YACA,uBACA,eACA,kBACA,kBACA,YACA,gBAGF,eVv/GQ,cFcY,SY4+GlB,UACA,WACA,YACA,kBACA,wBACA,CADA,oBACA,CADA,eACA,iEAEA,SAGE,cACA,yBAIJ,aACE,eACA,yBAGF,aACE,eACA,gBACA,iBAGF,KACE,OACA,WACA,YACA,kBACA,YACA,2BAEA,aACE,SACA,QACA,WACA,YACA,6BAGF,mBACE,yBAGF,YACE,0BAGF,aACE,uBACA,WACA,YACA,SACA,iCAEA,oBACE,0BACA,kBACA,iBACA,WVtjHE,gBUwjHF,eACA,+LAMA,yBACE,mEAKF,yBACE,6BAMR,kBACE,iBAGF,kBACE,6BACA,gCACA,aACA,mBACA,eACA,kDAGF,aAEE,kBACA,yBAGF,kBACE,aACA,2BAGF,aZvlHoB,eYylHlB,cACA,gBACA,mBACA,kDAIA,kBACE,oDAIA,SEtmHF,sBACA,WACA,SACA,gBACA,oBACA,mBdhBmB,cAYD,ecOlB,SACA,+EFgmHI,aACE,CEjmHN,qEFgmHI,aACE,CEjmHN,yEFgmHI,aACE,CEjmHN,gEFgmHI,aACE,sEAGF,QACE,yLAGF,mBAGE,0DAGF,kBACE,qCAGF,mDArBF,cAsBI,yDAIJ,aZ9nHc,iBYgoHZ,eACA,4DAGF,gBACE,wDAGF,kBACE,gEAEA,cACE,iNAEA,kBAGE,cACA,gHAKN,aZxpHgB,0HY6pHhB,cAEE,gBACA,cZ/pHY,kZYkqHZ,aAGE,gEAIJ,wBACE,iDAGF,eV3rHI,kBY0BN,CAEA,eACA,cdRiB,uCcUjB,UF8pHI,mBZ1rHoB,oDc8BxB,wBACE,cdbe,ecef,gBACA,mBACA,oDAGF,aACE,oDAGF,kBACE,oDAGF,eACE,WdnDI,sDYksHJ,WACE,mDAGF,UZtsHI,kBYwsHF,eACA,8HAEA,kBAEE,iCAON,kBACE,mBAIJ,UVxtHQ,kBU0tHN,cACA,mBACA,sBV7tHM,yBU+tHN,eACA,gBACA,YACA,kBACA,WACA,yBAEA,SACE,iBAIJ,aACE,iBACA,wBAGF,aZluHoB,qBYouHlB,mBACA,gBACA,sBACA,6EAGF,aZzuHkB,mBAbG,kBY2vHnB,aACA,eACA,gBACA,eACA,aACA,cACA,mBACA,uBACA,yBAEA,4EAfF,cAgBI,6FAGF,eACE,mFAGF,aZ1wHwB,qBY4wHtB,qGAEA,yBACE,uCAKN,kBACE,aACA,eAGF,qBACE,8BAGF,GACE,kBACE,2CACA,CADA,kCACA,KAGF,oBACE,0CACA,CADA,iCACA,KAGF,oBACE,2CACA,CADA,kCACA,KAGF,oBACE,0CACA,CADA,iCACA,KAGF,kBACE,2CACA,CADA,kCACA,EA1BF,qBAGF,GACE,kBACE,2CACA,CADA,kCACA,KAGF,oBACE,0CACA,CADA,iCACA,KAGF,oBACE,2CACA,CADA,kCACA,KAGF,oBACE,0CACA,CADA,iCACA,KAGF,kBACE,2CACA,CADA,kCACA,mCAIJ,8BACE,2DACA,CADA,kDACA,iCAGF,MACE,sBAEE,0BACA,KAGF,sBACE,aAGF,uBAGE,aAGF,sBAGE,KAGF,uBACE,KAGF,sBACE,EA/BF,wBAGF,MACE,sBAEE,0BACA,KAGF,sBACE,aAGF,uBAGE,aAGF,sBAGE,KAGF,uBACE,KAGF,sBACE,kCAIJ,yBACE,8EACA,CADA,qEACA,8BAGF,eVt2HQ,kBUw2HN,sCACA,kBACA,eACA,UACA,iDAEA,2BACE,2DAGF,UACE,mCAIJ,iBACE,SACA,WACA,eACA,yCAGF,iBACE,UACA,SACA,UACA,gBVl4HM,kBUo4HN,sCACA,gBACA,gDAEA,aACE,eACA,SACA,gBACA,uBACA,iKAEA,+BAGE,2DAIJ,WACE,wBAKF,2BACE,cAIJ,kBACE,0BACA,aACA,YACA,uBACA,OACA,UACA,kBACA,MACA,kBACA,WACA,aACA,gBAEA,mBACE,oBAIJ,WACE,aACA,aACA,sBACA,kBACA,YACA,0BAGF,iBACE,MACA,QACA,SACA,OACA,WACA,kBACA,mBZn8HmB,kCYq8HnB,uBAGF,MACE,aACA,mBACA,uBACA,cZ97HqB,eYg8HrB,gBACA,0BACA,kBACA,kBAGF,YACE,cZl8HmB,gBYo8HnB,aACA,sBAEA,cACE,kBACA,uBAGF,cACE,yBACA,gBACA,cACA,0BAIJ,aACE,4BAGF,UACE,WACA,kBACA,mBVj9HsB,kBUm9HtB,eACA,2BAGF,iBACE,OACA,MACA,WACA,mBZ9+HmB,kBYg/HnB,eAGF,aACE,wBACA,UACA,eACA,0CAEA,mBAEE,mBAGF,8BACE,CADF,sBACE,WACA,cACA,SACA,WACA,YACA,CAQE,6GAKN,SACE,oBACA,CADA,WACA,6BAGF,iBACE,gBVliIM,uCUoiIN,kBACA,iBACA,gBACA,iCAEA,yBACE,oCAGF,sBACE,2BAIJ,UZnjIQ,aYqjIN,eACA,aACA,kEAEA,kBZ7iImB,WEXb,UU4jIJ,CV5jII,4RUikIF,UVjkIE,wCUukIN,kBACE,iCAIJ,YACE,mBACA,uBACA,kBACA,oCAGF,aACE,cZhkImB,2CYmkInB,eACE,cACA,WZ1lII,CY+lIA,wQADF,eACE,mDAON,eVrmIM,0BUumIJ,qCACA,gEAEA,eACE,0DAGF,kBZnmIiB,uEYsmIf,UVjnIE,uDUunIN,yBACE,sDAGF,aACE,sCACA,SAIJ,iBACE,gBAGF,SEznIE,sBACA,WACA,SACA,gBACA,oBACA,mBdhBmB,cAYD,ecOlB,SACA,cFmnIA,CACA,2BACA,iBACA,eACA,2CAEA,aACE,CAHF,iCAEA,aACE,CAHF,qCAEA,aACE,CAHF,4BAEA,aACE,kCAGF,QACE,6EAGF,mBAGE,sBAGF,kBACE,qCAGF,eA3BF,cA4BI,kCAKF,QACE,qDAGF,mBAEE,mBAGF,iBACE,SACA,WACA,UACA,qBACA,UACA,0BACA,sCACA,eACA,WACA,YACA,cZ3qImB,eY6qInB,oBACA,0BAEA,mBACE,WACA,0BAIJ,uBACE,iCAEA,mBACE,uBACA,gCAIJ,QACE,uBACA,cZ/rIkB,eYisIlB,uCAEA,uBACE,sCAGF,aACE,yBAKN,aZhtIkB,mBYktIhB,aACA,gBACA,eACA,eACA,6BAEA,oBACE,iBACA,0BAIJ,iBACE,6BAEA,kBACE,gCACA,eACA,aACA,aACA,gBACA,eACA,cZxuIc,iCY2uId,oBACE,iBACA,8FAIJ,eAEE,0BAIJ,aACE,aACA,cZxvIqB,qBY0vIrB,+FAEA,aAGE,0BACA,uBAIJ,YACE,cZvwIkB,kBYywIlB,aAGF,iBACE,8BACA,oBACA,aACA,sBAGF,cACE,MACA,OACA,QACA,SACA,0BACA,wBAGF,cACE,MACA,OACA,WACA,YACA,aACA,sBACA,mBACA,uBACA,2BACA,aACA,oBACA,yBACA,CADA,qBACA,CADA,oBACA,CADA,gBACA,oBAGF,mBACE,aACA,aACA,yBAGF,eACE,iBACA,yBAGF,UACE,cAGF,UACE,YACA,kBACA,qCAEA,UACE,YACA,aACA,mBACA,uBACA,2CAEA,cVjyI0B,eAEC,CU2yI7B,8CALF,iBACE,MACA,OACA,QACA,SAYA,CAXA,yBAQA,mBACA,8BACA,oBACA,4BAEA,mBACE,0DAGF,SACE,4DAEA,mBACE,mBAKN,yBACE,sBACA,SACA,WV73IM,eU+3IN,aACA,mBACA,eACA,cACA,cACA,kBACA,kBACA,MACA,SACA,yBAGF,MACE,0BAGF,OACE,CASA,4CANF,UACE,kBACA,kBACA,OACA,YACA,oBAUA,6BAEA,WACE,sBAGF,mBACE,qBACA,gBACA,cZx6IsB,mFY26ItB,yBAGE,wBAKN,oBACE,sBAGF,qBV17IQ,YU47IN,WACA,kBACA,YACA,UACA,SACA,YACA,8BAGF,wBZj8I0B,qBYq8I1B,iBACE,UACA,QACA,YACA,6CAGF,kBZ78I0B,WAJlB,kBYs9IN,gBACA,aACA,sBACA,oBAGF,WACE,WACA,gBACA,iBACA,kBACA,wBAEA,iBACE,MACA,OACA,WACA,YACA,sBACA,aACA,aACA,CAGA,YACA,UACA,yBACA,CADA,qBACA,CADA,oBACA,CADA,gBACA,2CANA,qBACA,mBACA,uBAaF,CATE,mBAIJ,YACE,CAGA,iBACA,mDAGF,aAEE,mBACA,aACA,aACA,2DAEA,cACE,uLAGF,aZn/ImB,SYs/IjB,eACA,gBACA,kBACA,oBACA,YACA,aACA,kBACA,6BACA,+mBAEA,aAGE,yBACA,qiBAGF,UZ5hJI,qwDYgiJF,aAGE,sBAMR,sBACE,eAGF,iBACE,eACA,mBACA,sBAEA,eACE,WZnjJI,kBYqjJJ,yBACA,eACA,qBAGF,kBZxjJmB,cAcE,gBY6iJnB,aACA,kBACA,kBAIJ,oBACE,eACA,gBACA,iBACA,wFAGF,kBAME,WZhlJM,kBYklJN,gBACA,eACA,YACA,kBACA,sBACA,4NAEA,aACE,eACA,mBACA,wLAGF,WACE,UACA,kBACA,SACA,WACA,kRAGF,UACE,wBAKF,eV5mJM,CFGkB,gBY4mJtB,oBACA,iEVhnJI,2BFGkB,yBYqnJ1B,iBACE,aACA,iCAEA,wBACE,CADF,qBACE,CADF,oBACE,CADF,gBACE,gBACA,2GAIJ,YAIE,8BACA,mBZpoJwB,aYsoJxB,iBACA,2HAEA,aACE,iBACA,cZ1nJiB,mBY4nJjB,2IAGF,aACE,6BAIJ,cACE,2BAGF,WACE,eACA,0BAGF,gBAEE,sDAGF,qBAEE,eAGF,UACE,gBACA,0BAGF,YACE,6BACA,qCAEA,yBAJF,cAKI,gBACA,iDAIJ,qBAEE,UACA,qCAEA,+CALF,UAMI,sDAIJ,aAEE,gBACA,gBACA,gBACA,kBACA,2FAEA,aZxsJwB,iLY4sJxB,UZjtJM,qCYstJN,oDAjBF,eAkBI,sCAKF,4BADF,eAEI,yBAIJ,YACE,+BACA,gBACA,0BAEA,cACE,iBACA,mBACA,sCAGF,aACE,sBACA,WACA,CACA,UZhvJI,gBECA,aUkvJJ,oBACA,eACA,YACA,CACA,SACA,kBACA,yBACA,iBACA,gBACA,gBACA,4CAEA,wBACE,+CAGF,eVlwJI,yBUowJF,mBACA,kBACA,6DAEA,QACE,gBACA,gBACA,mEAEA,QACE,0DAIJ,UZnxJE,oBYqxJA,eACA,gBVrxJA,+CU0xJJ,YACE,8BACA,mBACA,4CAIJ,aACE,WZnyJI,eYqyJJ,gBACA,mBACA,wCAGF,eACE,mBACA,+CAEA,UZ9yJI,eYgzJF,qCAIJ,uBAnFF,YAoFI,eACA,QACA,wCAEA,iBACE,iBAKN,eACE,eACA,wBAEA,eACE,iBACA,2CAGF,eACE,mBAGF,eACE,cACA,gBACA,+BAEA,4BACE,4BAGF,QACE,oCAIA,UZ11JE,aY41JA,kBACA,eACA,mBACA,qBACA,8EAEA,eAEE,yWAOA,kBZ/1JW,WEXb,uDUi3JA,iBACE,oMAUR,aACE,iIAIJ,4BAIE,cZj3JmB,eYm3JnB,gBACA,6cAEA,aAGE,6BACA,qGAIJ,YAIE,eACA,iIAEA,eACE,CAII,w1BADF,eACE,sDAMR,iBAEE,oDAKA,eACE,0DAGF,eACE,mBACA,aACA,mBACA,wEAEA,UZt7JI,CYw7JF,gBACA,uBAKN,YACE,2CAEA,QACE,WACA,cAIJ,wBZl8J0B,WYo8JxB,kBACA,MACA,OACA,aACA,6BAGF,aACE,kBACA,WVj9JM,0BUm9JN,WACA,SACA,gBACA,kBACA,eACA,gBACA,UACA,oBACA,WACA,4BACA,iBACA,wDAKE,SACE,uBAKN,eACE,6BAEA,UACE,kBAIJ,YACE,eACA,yBACA,kBACA,gBACA,gBACA,wBAEA,aACE,cZ5+Jc,iBY8+Jd,eACA,+BACA,aACA,sBACA,mBACA,uBACA,eACA,4BAEA,aACE,wBAIJ,eACE,CACA,qBACA,aACA,sBACA,uBACA,2BAEA,aACE,cACA,0BAGF,oBACE,cZ1gKY,gBY4gKZ,gCAEA,yBACE,0BAKN,QACE,eACA,iDAEA,SACE,cACA,8BAGF,aZ7hKc,gBYqiKhB,cACA,CACA,iBACA,CACA,UACA,qCANF,qBACE,CACA,eACA,CACA,iBAYA,CAVA,qBAGF,QACE,CACA,aACA,WACA,CACA,iBAEA,qEAGE,cACE,MACA,gCAKN,cACE,cACA,qBACA,cZhkKqB,kBYkkKrB,UACA,mEAEA,WAEE,WACA,CAIA,2DADF,mBACE,CADF,8BACE,CADF,gBV3lKM,CU4lKJ,wBAIJ,UACE,YACA,CACA,iBACA,MACA,OACA,UACA,gBVvmKM,iCU0mKN,YACE,sBAIJ,WACE,gBACA,kBACA,WACA,qCAGF,cACE,YACA,oBACA,CADA,8BACA,CADA,gBACA,kBACA,QACA,2BACA,WACA,UACA,sCAGF,0BACE,2BACA,gBACA,kBACA,qKAMA,WAEE,mFAGF,WACE,eAKJ,qBACE,kBACA,mBACA,kBACA,oBACA,cACA,wBAEA,eACE,YACA,yBAGF,cACE,kBACA,gBACA,gCAEA,UACE,cACA,kBACA,6BACA,WACA,SACA,OACA,oBACA,qCAIJ,oCACE,iCAGF,wBACE,uCAIA,mBACA,mBACA,6BACA,0BACA,eAIJ,eACE,kBACA,gBVvsKM,eUysKN,kBACA,sBACA,cACA,wBAEA,eACE,sBACA,qBAGF,SACE,qBAGF,eACE,gBACA,UACA,0BAGF,oBACE,sBACA,SACA,gCAEA,wBACE,0BACA,qBACA,sBACA,UACA,4BAKF,qBACE,CADF,gCACE,CADF,kBACE,kBACA,QACA,2BACA,yBAIJ,iBACE,UACA,SACA,OACA,QACA,sBACA,iFACA,eACA,UACA,4BACA,gCAEA,SACE,6EAKF,iBAEE,wBAIJ,YACE,kBACA,MACA,OACA,WACA,YACA,UACA,SACA,gBVpxKI,cFcY,gBYywKhB,oBACA,+BAEA,aACE,oBACA,8GAEA,aAGE,+BAIJ,aACE,eACA,kCAGF,aACE,eACA,gBACA,4BAIJ,YACE,8BACA,oBACA,0DAEA,aACE,wBAIJ,cACE,mBACA,gBACA,uBACA,oCAGE,cACE,qCAKF,eACE,+BAIJ,sBACE,iBACA,eACA,SACA,0BACA,8GAEA,UVn1KE,+EU21KN,cAGE,gBACA,6BAGF,UVl2KM,iBUo2KJ,yBAGF,oBACE,aACA,mDAGF,UV52KM,uBUi3KN,cACE,YACA,eACA,8BAEA,UACE,WACA,+BAOA,6DANA,iBACA,cACA,kBACA,WACA,UACA,YAWA,CAVA,+BASA,kBACA,+BAGF,iBACE,UACA,kBACA,WACA,YACA,YACA,UACA,4BACA,mBACA,sCACA,oBACA,qBAIJ,gBACE,uBAEA,oBACE,eACA,gBACA,WVj6KE,sFUo6KF,yBAGE,qBAKN,cACE,YACA,kBACA,4BAEA,UACE,WACA,+BACA,kBACA,cACA,kBACA,WACA,SACA,2DAGF,aAEE,kBACA,WACA,kBACA,SACA,mBACA,6BAGF,6BACE,6BAGF,iBACE,UACA,UACA,kBACA,WACA,YACA,QACA,iBACA,4BACA,mBACA,sCACA,oBACA,CAGE,yFAKF,SACE,6GAQF,gBACE,oBACA,kBAON,UACE,cACA,+BACA,0BAEA,UACE,qCAGF,iBATF,QAUI,mBAIJ,qBACE,mBACA,uBAEA,YACE,kBACA,mBACA,gBACA,2BAEA,aACE,WACA,YACA,SACA,oBACA,CADA,8BACA,CADA,gBACA,uBAIJ,YACE,mBACA,mBACA,aACA,6BAEA,aACE,aACA,mBACA,qBACA,gBACA,qCAGF,UACE,eACA,cACA,+BAGF,aACE,WACA,YACA,gBACA,mCAEA,UACE,YACA,cACA,SACA,kBACA,mBACA,oBACA,CADA,8BACA,CADA,gBACA,qCAIJ,gBACE,gBACA,4CAEA,cACE,WV3jLF,gBU6jLE,gBACA,uBACA,0CAGF,aACE,eACA,cZvjLU,gBYyjLV,gBACA,uBACA,yBAKN,kBZ5kLiB,aY8kLf,mBACA,uBACA,gDAEA,YACE,cACA,eACA,mDAGF,qBACE,kBACA,gCACA,WACA,gBACA,mBACA,gBACA,uBACA,qDAEA,YACE,iEAEA,cACE,sDAIJ,YACE,6BAOV,YACE,eACA,gBACA,wBAGF,QACE,sBACA,cACA,kBACA,kBACA,gBACA,WACA,+BAEA,iBACE,QACA,SACA,+BACA,eACA,sDAIJ,kBAEE,gCACA,eACA,aACA,cACA,oEAEA,kBACE,SACA,SACA,6HAGF,aAEE,cACA,cZ/oLgB,eYipLhB,eACA,gBACA,kBACA,qBACA,kBACA,WACA,mBACA,yJAEA,aZxpLmB,qWY2pLjB,aAEE,WACA,kBACA,SACA,SACA,QACA,SACA,2BACA,CAEA,4CACA,CADA,kBACA,CADA,wBACA,iLAGF,WACE,6CACA,8GAKN,kBACE,gCACA,qSAKI,YACE,iSAGF,4CACE,cAOV,kBZltLqB,sBYqtLnB,iBACE,4BAGF,aACE,eAIJ,cACE,kBACA,qBACA,cACA,iBACA,eACA,mBACA,gBACA,uBACA,eACA,oEAEA,YAEE,sBAGF,oBACE,kBACA,yBACA,sBACA,WACA,YACA,cACA,kBACA,SACA,kBACA,sBACA,8BAEA,oBACE,mBACA,2BAKN,eACE,gBAGF,eVxwLQ,kBY0BN,CACA,sBACA,gBACA,cdRiB,uCcUjB,mBAEA,wBACE,cdbe,ecef,gBACA,mBACA,mBAGF,aACE,mBAGF,kBACE,mBAGF,eACE,WdnDI,UY6wLR,iBACE,cAEA,WACE,WACA,sCACA,CADA,6BACA,cAGF,cACE,iBACA,cZxwLmB,gBY0wLnB,gBAEA,aZvxLsB,0BYyxLpB,sBAEA,oBACE,4BAMR,GACE,cACA,eACA,WATM,mBAMR,GACE,cACA,eACA,qEAGF,kBAIE,sBAEE,8BACA,iBAGF,0BACE,kCACA,+BAIA,qDACE,uEACA,+CAGF,sBACE,8BACA,6DAIA,6BACE,6CACA,4EAIF,6BACE,6CACA,+CAOJ,gBAEE,+BAGF,gBACE,6CAEA,0BACE,wDAGF,eACE,6DAGF,iBACE,iBACA,2EAIA,mBACE,UACA,gCACA,WACA,0FAGF,mBACE,UACA,oCACA,eAOV,UACE,eACA,gBACA,iBAEA,YACE,gBACA,eACA,kBACA,sCAGF,YACE,4CAEA,kBACE,yDAGF,SACE,sBACA,cACA,WACA,SACA,aACA,gDACA,mBZt5Le,WEDb,eU05LF,CACA,eACA,kBACA,2EAEA,QACE,wMAGF,mBAGE,+DAGF,kBACE,qCAGF,wDA7BF,cA8BI,4DAIJ,WACE,eACA,gBACA,SACA,kBACA,sBAMJ,sBACA,mBACA,6BACA,gCACA,+BAEA,iBACE,iBACA,cZv7Lc,CY07Ld,eACA,eACA,oCAEA,aACE,gBACA,uBACA,oCAIJ,UACE,kBACA,uDAGF,iBACE,qDAGF,eACE,qBAKF,wBACA,aACA,2BACA,mBACA,mBACA,2BAEA,aACE,iCAEA,UACE,uCAEA,SACE,kCAKN,aACE,cACA,mBAIJ,cACE,kBACA,MACA,OACA,WACA,YACA,0BACA,cAGF,kBZpgMqB,sBYsgMnB,kBACA,uCACA,YACA,gBACA,qCAEA,aARF,SASI,kBAGF,cACE,mBACA,gBACA,eACA,kBACA,0BACA,6BAGF,WACE,6BAGF,yBACE,sCAEA,uBACE,uCACA,wBACA,wBAIJ,eACE,kDAIA,oBACE,+BAIJ,cACE,sBAGF,eACE,aAIJ,kBZ1jMqB,sBY4jMnB,kBACA,uCACA,YACA,gBACA,qCAEA,YARF,SASI,uBAGF,kBACE,oBAGF,kBACE,YACA,0BACA,gBACA,mBAGF,YACE,gCACA,4BAGF,YACE,iCAGF,aACE,gBACA,qBACA,eACA,aACA,cAIJ,iBACE,YACA,gBACA,YACA,aACA,uBACA,mBACA,gBV5mMM,yDU+mMN,aAGE,gBACA,WACA,YACA,SACA,sBACA,CADA,gCACA,CADA,kBACA,gBVvnMI,uBU2nMN,iBACE,YACA,aACA,+BACA,iEACA,kBACA,wCACA,uBAGF,iBACE,WACA,YACA,MACA,OACA,uBAGF,iBACE,YACA,WACA,UACA,YACA,4BACA,6BAEA,UACE,8BAGF,UVxpMI,eU0pMF,gBACA,cACA,kBACA,2BAGF,iBACE,mCACA,qCAIJ,oCACE,eAEE,uBAGF,YACE,4BAKN,aZrqMoB,eYuqMlB,gBACA,gBACA,kBACA,qBACA,6BAEA,kBACE,wCAEA,eACE,6BAIJ,aACE,0BACA,mCAEA,oBACE,kBAKN,eACE,2BAEA,UACE,8FAEA,8BAEE,CAFF,sBAEE,wBAIJ,iBACE,SACA,UACA,yBAGF,eACE,aACA,kBACA,mBACA,6BAEA,mBACE,CADF,8BACE,CADF,gBACE,cACA,WACA,YACA,SACA,uBAIJ,iBACE,mBACA,YACA,gCACA,+BAEA,aACE,cACA,WACA,iBACA,gDAEA,kBACE,yBACA,wBAKN,YACE,uBACA,gBACA,iBACA,iCAEA,YACE,mBACA,iBACA,gBACA,8CAEA,wBACE,kBACA,uBACA,YACA,yCAGF,YACE,8BAIJ,WACE,4CAEA,kBACE,wCAGF,UACE,YACA,iCAGF,cACE,iBACA,WVtyMA,gBUwyMA,gBACA,mBACA,uBACA,uCAEA,aACE,eACA,cZlyMU,gBYoyMV,gBACA,uBACA,gCAKN,aACE,uBAIJ,eACE,cACA,iDAGE,qBACA,WVn0ME,gDUu0MJ,QACE,6BACA,kDAEA,aACE,yEAGF,uBACE,4DAGF,aVl1MU,yBUw1Md,cACE,gCAEA,cACE,cZh1Mc,eYk1Md,kCAEA,oBACE,cZr1MY,qBYu1MZ,iBACA,gBACA,yCAEA,eACE,WVz2MF,iBUk3MN,aZp2MgB,mBYs2Md,gCACA,gBACA,aACA,eACA,eACA,qBAEA,oBACE,iBACA,eAIJ,YACE,mBACA,aACA,gCACA,0BAEA,eACE,qBAGF,aACE,cZ93MY,gBYg4MZ,uBACA,mBACA,4BAEA,eACE,uBAGF,aZz4Mc,qBY24MZ,eACA,gBACA,cACA,gBACA,uBACA,mBACA,qGAKE,yBACE,wBAMR,aACE,eACA,iBACA,gBACA,iBACA,mBACA,gBACA,cZl6MiB,0BYs6MnB,aACE,WACA,2CAEA,mCACE,yBACA,0CAGF,wBACE,eAMR,YACE,gCACA,CACA,iBACA,qBAEA,kBACE,UACA,uBAGF,aACE,CACA,sBACA,kBACA,eACA,uBAGF,oBACE,mBZr9MsB,kBYu9MtB,cACA,eACA,wBACA,wBAGF,aACE,CACA,0BACA,gBACA,8BAEA,eACE,aACA,2BACA,8BACA,uCAGF,cACE,cZl+Mc,kBYo+Md,+BAGF,aZv+MgB,eYy+Md,mBACA,gBACA,uBACA,kBACA,gBACA,YACA,iCAEA,UV9/ME,qBUggNA,oHAEA,yBAGE,0BAKN,qBACE,uBAIJ,kBACE,6BAEA,kBACE,oDAGF,eACE,6DAGF,UV1hNI,gBUgiNR,kBACE,eACA,aACA,qBACA,0BAEA,WACE,cACA,qCAEA,yBAJF,YAKI,4BAIJ,wBACE,cACA,kBACA,qCAEA,0BALF,UAMI,uBAIJ,qBACE,WACA,aACA,kBACA,eACA,iBACA,qBACA,gBACA,gBACA,gBACA,aACA,sBACA,6BAEA,aACE,gBACA,mBACA,mBACA,8BAGF,iBACE,SACA,WACA,cACA,mBZ9kNoB,kBYglNpB,cACA,eACA,4BAIJ,YACE,cZ9kNgB,kBYglNhB,WACA,QACA,mDAIJ,YACE,oDAGF,UACE,gBAGF,YACE,eACA,mBACA,gBACA,iBACA,wBACA,sBAEA,aACE,mBACA,SACA,kBACA,WACA,eACA,yBACA,CADA,qBACA,CADA,oBACA,CADA,gBACA,cACA,aACA,mBACA,2BACA,2CACA,6BAEA,aACE,aACA,WACA,YACA,iCAEA,aACE,SACA,WACA,YACA,eACA,gBACA,sBACA,sBACA,CADA,gCACA,CADA,kBACA,6BAIJ,aACE,cACA,eACA,gBACA,kBACA,gBACA,cZ5oNc,mFYgpNhB,kBAGE,4BACA,2CACA,wGAEA,aACE,6BAIJ,0BACE,2CACA,yBACA,yDAEA,aACE,uCAKN,UACE,oCAGF,WACE,8BAGF,aZ/qNkB,SYirNhB,eACA,WACA,cACA,cACA,YACA,aACA,mBACA,WACA,2BACA,2CACA,2GAEA,SAGE,cACA,4BACA,2CACA,qCAKF,SACE,OGxtNN,eACE,eACA,UAEA,kBACE,kBACA,cAGF,iBACE,cACA,mBACA,WACA,aACA,sBAEA,kBfHiB,eeQnB,iBACE,aACA,cACA,iBACA,eACA,gBACA,qBAEA,oBACE,qBACA,yBACA,4BACA,oEAGF,YAEE,kCAGF,aACE,gCAGF,aACE,sBACA,WACA,eACA,WfhDE,UekDF,oBACA,gBblDE,yBaoDF,kBACA,iBACA,sCAEA,oBfpDoB,0BeyDtB,cACE,wBAGF,YACE,mBACA,iBACA,cAIJ,oBACE,kBACA,yBACA,sBACA,WACA,YACA,cACA,kBACA,SACA,kBACA,sBACA,gBACA,mBACA,cACA,uBAEA,iBACE,qBAGF,oBb3FY,8EagGZ,oBAGE,iBACA,gCAGF,mBACE,SACA,wCAGF,mBAEE,eAIJ,oBACE,WACA,gBACA,cACA,cAGF,aACE,qBACA,oBAEA,cACE,eAIJ,eACE,mBACA,cfvHc,ae2HhB,cACE,uBACA,UACA,SACA,SACA,cfhIc,0BekId,kBACA,mBAEA,oBACE,sCAGF,qCAEE,eAIJ,WACE,eACA,kBACA,eACA,6BAIJ,4BACE,gCAEA,YACE,2CAGF,4BACE,aACA,aACA,mBACA,mGAEA,YAEE,+GAEA,oBflLoB,sDewLxB,cACE,gBACA,iBACA,YACA,oBACA,cfhLkB,sCemLlB,gCAGF,YACE,mBACA,8CAEA,aACE,wBACA,iBACA,oCAIJ,uBACE,CADF,oBACE,CADF,eACE,sBACA,eACA,WftNI,qBewNJ,WACA,UACA,oBACA,qXACA,yBACA,kBACA,CACA,yBACA,mDAGF,aACE,cAIJ,afzNkB,qBe4NhB,+BACE,6BAEA,6BACE,eChPN,k1BACE,aACA,sBACA,aACA,UACA,yBAGF,YACE,OACA,sBACA,yBACA,2BAEA,MACE,iBACA,qCAIJ,gBACE,YACE,cCtBJ,cACE,qBACA,WjBDM,2BiBIN,qBAEE,iBACA,+BAGF,WACE,iBAIJ,sBACE,6BAEA,uBACE,2BACA,4BACA,mBjBjBsB,4BiBqBxB,oBACE,8BACA,+BACA,aACA,qBAIJ,YACE,8BACA,cACA,cjBfmB,ciBiBnB,oBAGF,iBACE,OACA,kBACA,iBACA,gBACA,8BACA,eACA,0BAEA,aACE,6BAIJ,ajBlD0B,mCiBqDxB,aACE,oDAGF,WACE,wBAIJ,iBACE,YACA,OACA,WACA,WACA,yBjBnEwB,uBiBwExB,oBACE,WACA,eACA,yBAGF,iBACE,gBACA,oBAIJ,iBACE,aACA,gBACA,kBACA,gBf5FM,sBe8FN,sGAEA,+BAEE,oBAKF,2BACA,gBfxGM,0Be2GN,cACE,gBACA,gBACA,oBACA,cACA,WACA,gCACA,WjBnHI,yBiBqHJ,kBACA,4CAEA,QACE,2GAGF,mBAGE,wCAKN,cACE,6CAEA,SACE,kBACA,kBACA,qDAGF,SACE,WACA,kBACA,MACA,OACA,WACA,YACA,sCACA,mBACA,4BAIJ,SACE,kBACA,wBACA,gBACA,MACA,iCAEA,aACE,WACA,gBACA,gBACA,gBfpKI,mBeyKR,iBACE,qBACA,YACA,wBAEA,UACE,YACA,wBAIJ,cACE,kBACA,iBACA,cjBlKiB,mDiBqKjB,YACE,qDAGF,eACE,uDAGF,YACE,qBAIJ,YACE,YCrMF,qBACE,iBANc,cAQd,kBACA,sCAEA,WANF,UAOI,eACA,mBAIJ,iDACE,eACA,gBACA,gBACA,qBACA,clBPkB,oBkBUlB,alBnBwB,0BkBqBtB,6EAEA,oBAGE,wCAIJ,alBrBkB,oBkB0BlB,YACE,oBACA,+BAEA,eACE,yBAIJ,eACE,clBlCmB,qBkBsCrB,iBACE,clBvCmB,uBkB2CrB,eACE,mBACA,kBACA,kBACA,yHAGF,4CAME,mBACA,oBACA,gBACA,clB3DmB,qBkB+DrB,aACE,qBAGF,gBACE,qBAGF,eACE,qBAGF,gBACE,yCAGF,aAEE,qBAGF,eACE,qBAGF,kBACE,yCAMA,iBACA,iBACA,yDAEA,2BACE,yDAGF,2BACE,qBAIJ,UACE,SACA,SACA,gCACA,eACA,4BAEA,UACE,SACA,wBAIJ,UACE,yBACA,8BACA,CADA,iBACA,gBACA,mBACA,iEAEA,+BAEE,cACA,kBACA,gBACA,gBACA,clBxIc,iCkB4IhB,uBACE,gBACA,gBACA,clB9IY,qDkBkJd,WAEE,iBACA,kBACA,qBACA,mEAEA,SACE,kBACA,iFAEA,gBACE,kBACA,6EAGF,iBACE,SACA,UACA,mBACA,gBACA,uBACA,+BAMR,YACE,oBAIJ,kBACE,eACA,mCAEA,iBACE,oBACA,8BAGF,YACE,8BACA,eACA,6BAGF,UACE,kDACA,eACA,iBACA,WhBpNI,iBgBsNJ,kBACA,qEAEA,aAEE,6CAIA,alBhNiB,oCkBqNnB,4CACE,gBACA,eACA,iBACA,qCAGF,4BA3BF,iBA4BI,4BAIJ,iBACE,YACA,sBACA,mBACA,CACA,sBACA,0BACA,QACA,aACA,yCAEA,4CACE,eACA,iBACA,gBACA,clBlPc,mBkBoPd,mBACA,gCACA,uBACA,mBACA,gBACA,wFAEA,eAEE,cACA,2CAGF,oBACE,2BAKN,iBACE,mCAEA,UACE,YACA,CACA,kBACA,uCAEA,aACE,WACA,YACA,mBACA,iCAIJ,cACE,mCAEA,aACE,WhBzSA,qBgB2SA,uDAGE,yBACE,2CAKN,aACE,clBxSY,kCkBgTlB,iDAEE,CACA,eACA,eACA,iBACA,mBACA,clBvTgB,sCkB0ThB,alBnUsB,0BkBqUpB,kBAIJ,cACE,SACA,UACA,gBACA,uBACA,oBACA,kBACA,oBACA,cACA,kBAGF,4CACE,eACA,iBACA,gBACA,mBACA,clB/UmB,wBkBkVnB,iDACE,cACA,eACA,gBACA,cACA,kBAIJ,4CACE,eACA,iBACA,gBACA,mBACA,clBhWmB,kBkBqWnB,clBrWmB,mCkBoWrB,4CACE,CACA,gBACA,gBACA,mBACA,clBzWmB,kBkB8WnB,clB9WmB,kBkBuXnB,clBvXmB,mCkBsXrB,4CACE,CACA,gBACA,gBACA,mBACA,clB3XmB,kBkBgYnB,clBhYmB,mCkBwYrB,gBAEE,mDAEA,2BACE,mDAGF,2BACE,kBAIJ,eACE,kBAGF,kBACE,yCAGF,cAEE,kBAGF,UACE,SACA,SACA,4CACA,cACA,yBAEA,UACE,SACA,iDAIJ,YAEE,+BAGF,kBlBlcmB,kBkBocjB,kBACA,gBACA,sBACA,oCAEA,UACE,aACA,2BACA,iBACA,8BACA,mBACA,uDAGF,YACE,yBACA,qBACA,mFAEA,aACE,eACA,qCAGF,sDAVF,UAWI,8BACA,6CAIJ,MACE,sBACA,qCAEA,2CAJF,YAKI,sBAKN,iBACE,yBAEA,WACE,WACA,uBACA,4BAIJ,iBACE,mBACA,uCAEA,eACE,mCAGF,eACE,cACA,qCAGF,eACE,UACA,mDAEA,kBACE,aACA,iBACA,0FAKE,oBACE,gFAIJ,cACE,qDAIJ,aACE,cACA,6CAGF,UACE,YACA,0BACA,mDAGF,cACE,4DAEA,cACE,qCAKN,oCACE,eACE,sCAIJ,2BA7DF,iBA8DI,mFAIJ,qBAGE,mBlB3jBiB,kBkB6jBjB,kCACA,uBAGF,YACE,kBACA,WACA,YACA,2BAEA,YACE,WACA,uCAKF,YACE,eACA,mBACA,mBACA,qCAGF,sCACE,kBACE,uCAIJ,alB7kBmB,qCkBilBnB,eACE,WhBjmBE,gBgBmmBF,2CAEA,alBxlBc,gDkB2lBZ,alBzlBe,+CkB+lBnB,eACE,qBAIJ,kBACE,yBAEA,aACE,SACA,eACA,YACA,kBACA,qCAIJ,gDAEI,kBACE,yCAGF,eACE,gBACA,WACA,kBACA,uDAEA,iBACE,sCAMR,8BACE,aACE,uCAEA,gBACE,sDAGF,kBACE,6EAIJ,aAEE,qBAIJ,WACE,UAIJ,mBACE,qCAEA,SAHF,eAII,kBAGF,YACE,uBACA,mBACA,aACA,qBAEA,ShBvrBI,YgByrBF,qCAGF,gBAXF,SAYI,mBACA,sBAIJ,eACE,uBACA,gBACA,gBACA,uBAGF,eACE,gBACA,0BAEA,YACE,yBACA,gBACA,eACA,clBpsBc,6BkBwsBhB,eACE,iBACA,+BAGF,kBlBztBiB,akB2tBf,0BACA,aACA,uCAEA,YACE,gCAIJ,cACE,gBACA,uDAEA,YACE,mBACA,iDAGF,UACE,YACA,0BACA,gCAIJ,YACE,uCAEA,4CACE,eACA,gBACA,cACA,qCAGF,cACE,clBnvBY,uFkByvBlB,eACE,cASA,ClBnwBgB,2CkBgwBhB,iBACA,CACA,kBACA,gBAGF,eACE,cACA,aACA,kDACA,cACA,qCAEA,eAPF,oCAQI,cACA,8BAEA,UACE,aACA,sBACA,0CAEA,OACE,cACA,2CAGF,YACE,mBACA,QACA,cACA,qCAIJ,UACE,2BAGF,eACE,sCAIJ,eAtCF,UAuCI,6BAEA,aACE,gBACA,gBACA,2GAEA,eAGE,uFAIJ,+BAGE,2BAGF,YACE,gCAEA,eACE,qEAEA,eAEE,gBACA,2CAGF,eACE,SAQZ,iBACE,qBACA,iBAGF,aACE,kBACA,aACA,UACA,YACA,clB32BsB,qBkB62BtB,eACA,qCAEA,gBAVF,eAWI,WACA,gBACA,clBv2Bc,SmBhBlB,UACE,eACA,iBACA,yBACA,qBAEA,WAEE,iBACA,mBACA,6BACA,gBACA,mBACA,oBAGF,qBACE,gCACA,aACA,gBACA,oBAGF,eACE,qEAGF,kBnBxBmB,UmB6BnB,anB1BwB,0BmB4BtB,gBAEA,oBACE,eAIJ,eACE,CAII,4HADF,eACE,+FAOF,sBAEE,yFAKF,YAEE,gCAMJ,kBnBjEiB,6BmBmEf,gCACA,4CAEA,qBACE,8BACA,2CAGF,uBACE,+BACA,0BAKN,qBACE,gBAIJ,aACE,mBACA,MAGF,+CACE,0BAGF,sBACE,SACA,aACA,8CAGF,oBAEE,qBACA,iBACA,eACA,cnB/FkB,gBmBiGlB,0DAEA,UjBhHM,wDiBoHN,eACE,iBACA,sEAGF,cACE,yCAKF,YAEE,yDAEA,qBACE,iBACA,eACA,gBACA,qEAEA,cACE,2EAGF,YACE,mBACA,uFAEA,YACE,qHAOJ,sBACA,cACA,uBAIJ,wBACE,mBnB/JiB,sBmBiKjB,YACA,mBACA,gCAEA,gBACE,mBACA,oBAIJ,YACE,yBACA,aACA,mBnB9KiB,gCmBiLjB,aACE,gBACA,mBAIJ,wBACE,aACA,mBACA,qCAEA,wCACE,4BACE,0BAIJ,kBACE,iCAGF,kBnBtMiB,uCmByMf,kBACE,4BAIJ,gBACE,oBACA,sCAEA,SACE,wCAGF,YACE,mBACA,mCAGF,aACE,aACA,uBACA,mBACA,kBACA,6CAEA,UACE,YACA,kCAIJ,aACE,mCAGF,aACE,iBACA,cnBlOY,gBmBoOZ,mCAIJ,QACE,WACA,qCAEA,sBACE,gBACA,qCAOJ,4FAFF,YAGI,gCAIJ,aACE,uCAEA,iBACE,sCAGF,eACE,4BAIJ,wBACE,aACA,gBACA,qCAEA,2BALF,4BAMI,sCAIJ,+CACE,YACE,iBC7RN,YACE,uBACA,WACA,iBACA,iCAEA,gBACE,gBACA,oBACA,cACA,wCAEA,YACE,yBACA,mBpBfe,YoBiBf,yBAIJ,WAvBc,UAyBZ,oBACA,iCAEA,YACE,mBACA,YACA,uCAEA,aACE,yCAEA,oBACE,aACA,2CAGF,SlBxCA,YkB0CE,kBACA,YACA,uCAIJ,aACE,cpBpCY,qBoBsCZ,cACA,eACA,aACA,0HAIA,kBAGE,+BAKN,aACE,iBACA,YACA,aACA,qCAGF,sCACE,YACE,6BAIJ,eACE,0BACA,gBACA,mBACA,qCAEA,2BANF,eAOI,+BAGF,aACE,aACA,cpB9EY,qBoBgFZ,0BACA,2CACA,0BACA,mBACA,gBACA,uBACA,mCAEA,gBACE,oCAGF,UlBzGA,yBkB2GE,0BACA,2CACA,uCAGF,kBACE,sBACA,+BAIJ,kBACE,wBACA,SACA,iCAEA,QACE,kBACA,6DAIJ,UlBjIE,yBFWa,gBoByHb,gBACA,mEAEA,wBACE,6DAKN,yBACE,iCAIJ,qBACE,WACA,gBApJY,cAsJZ,sCAGF,uCACE,YACE,iCAGF,WA/JY,cAiKV,sCAIJ,gCACE,UACE,0BAMF,2BACA,qCAEA,wBALF,cAMI,CACA,sBACA,kCAGF,YACE,oBAEA,gCACA,0BAEA,eAEA,mBACA,8BACA,mCAEA,eACE,kBACA,yCAGF,mBACE,4DAEA,eACE,qCAIJ,gCAzBF,eA0BI,iBACA,6BAIJ,apBrMmB,eoBuMjB,iBACA,gBACA,qCAEA,2BANF,eAOI,6BAIJ,apBhNmB,eoBkNjB,iBACA,gBACA,mBACA,4BAGF,wBACE,eACA,gBACA,cpB7Nc,mBoB+Nd,kBACA,gCACA,4BAGF,cACE,cpBnOiB,iBoBqOjB,gBACA,0CAGF,UlBxPI,gBkB0PF,uFAGF,eAEE,gEAGF,aACE,4CAGF,cACE,gBACA,WlBxQE,oBkB0QF,iBACA,gBACA,gBACA,2BAGF,cACE,iBACA,cpBnQiB,mBoBqQjB,kCAEA,UlBtRE,gBkBwRA,CAII,2NADF,eACE,4BAMR,UACE,SACA,SACA,4CACA,cACA,mCAEA,UACE,SACA,qCAKN,eA9SF,aA+SI,iCAEA,YACE,yBAGF,UACE,UACA,YACA,iCAEA,YACE,4BAGF,YACE,8DAGF,eAEE,gCACA,gBACA,0EAEA,eACE,+BAIJ,eACE,6DAGF,2BpBxUe,YoB+UrB,UACE,SACA,cACA,WACA,sDAKA,apBtVkB,0DoByVhB,apBlWsB,4DoBuWxB,alB1Wc,gBkB4WZ,4DAGF,alB9WU,gBkBgXR,0DAGF,apBvWgB,gBoByWd,0DAGF,alBtXU,gBkBwXR,UAIJ,YACE,eACA,yBAEA,aACE,qBACA,oCAEA,kBACE,4BAGF,cACE,gBACA,+BAEA,oBACE,iBACA,gCAIJ,eACE,yBACA,eACA,CAII,iNADF,eACE,6CAKN,aACE,mBACA,2BAGF,oBACE,cpB3Zc,qBoB6Zd,yBACA,eACA,gBACA,gCACA,iCAEA,UlBhbE,gCkBkbA,oCAGF,apBjboB,gCoBmblB,CAkBJ,gBAIJ,aACE,iBACA,eACA,sBAGF,aACE,eACA,cACA,wBAEA,aACE,kBAIJ,YACE,eACA,mBACA,wBAGF,YACE,WACA,sBACA,aACA,+BAEA,aACE,qBACA,gBACA,eACA,iBACA,cpB/dmB,CoBoef,4MADF,eACE,sCAKN,aACE,gCAIJ,YAEE,mBACA,kEAEA,UACE,kBACA,4BACA,gFAEA,iBACE,kDAKN,aAEE,aACA,sBACA,4EAEA,cACE,WACA,kBACA,mBACA,uEAIJ,cAEE,iBAGF,YACE,eACA,kBACA,2CAEA,kBACE,eACA,8BAGF,kBACE,+CAGF,gBACE,uDAEA,gBACE,mBACA,YACA,YAKN,kBACE,eACA,cAEA,apBzjBwB,qBoB2jBtB,oBAEA,yBACE,SAKN,aACE,YAGF,gBACE,eACA,mBpB5kBmB,gCoB8kBnB,uBAEA,eACE,oBAGF,YACE,2BACA,mBACA,cpB3kBgB,eoB6kBhB,eACA,oBAGF,iBACE,4BAEA,aACE,SACA,kBACA,WACA,YACA,qBAIJ,2BACE,mBAGF,oBACE,uBAGF,apBpmBgB,sDoBwmBhB,apBvmBqB,qBoB2mBnB,gBACA,yDAIJ,oBAIE,cpBpnBqB,iGoBunBrB,eACE,yIAIA,4BACE,cACA,iIAGF,8BACE,CADF,sBACE,WACA,sBAKN,YAEE,mBACA,sCAEA,aACE,CACA,gBACA,kBACA,0DAIA,8BACE,CADF,sBACE,WACA,gBAKN,kBACE,8BACA,yBAEA,yBlB9qBc,yBkBkrBd,yBACE,wBAGF,yBlBnrBU,wBkBwrBR,2BACA,eACA,iBACA,4BACA,kBACA,gBACA,0BAEA,apBvrBgB,uBoB6rBhB,wBACA,qBAGF,apBhsBgB,coBqsBlB,kBpBltBqB,kBoBotBnB,mBACA,uBAEA,YACE,8BACA,mBACA,aACA,gCAEA,SACE,SACA,gDAEA,aACE,8BAIJ,aACE,gBACA,cpB5tBc,yBoB8tBd,iBACA,gCAEA,aACE,qBACA,iHAEA,aAGE,mCAIJ,alBvvBM,6BkB8vBR,YACE,2BACA,6BACA,mCAEA,kBACE,gFAGF,YAEE,cACA,sBACA,YACA,cpBjwBY,mLoBowBZ,kBAEE,gBACA,uBACA,sCAIJ,aACE,6BACA,4CAEA,apB/wBU,iBoBixBR,gBACA,wCAIJ,aACE,sBACA,WACA,aACA,qBACA,cpB5xBY,WoBmyBpB,kBAGE,0BAFA,eACA,uBASA,CARA,eAGF,oBACE,gBACA,CAEA,qBACA,oBAGF,YACE,eACA,CACA,kBACA,wBAEA,qBACE,cACA,mBACA,aACA,0FAGF,kBAEE,kBACA,YACA,6CAGF,QACE,SACA,+CAEA,aACE,sEAGF,uBACE,yDAGF,alB71BY,8CkBk2Bd,qBACE,aACA,WlBr2BI,ckB02BR,iBACE,qBAGF,wBACE,kBACA,2BAEA,cACE,mBpBl3BiB,gCoBo3BjB,kCAEA,cACE,cACA,gBACA,eACA,gBACA,cpB72BiB,qBoB+2BjB,mBACA,uHAEA,UlBj4BE,iCkBw4BJ,cACE,cpB33BY,uCoB+3Bd,YACE,8BACA,mBACA,sCAGF,eACE,sBCt5BN,YACE,eACA,CACA,kBACA,0BAEA,qBACE,iBACA,cACA,mBACA,yDAEA,YAEE,mBACA,kBACA,sBACA,YACA,4BAGF,oBACE,cACA,cACA,qGAEA,kBAGE,sDAKN,iBAEE,gBACA,eACA,iBACA,WnBrCI,6CmBuCJ,mBACA,iBACA,4BAGF,cACE,6BAGF,cACE,crBpCgB,kBqBsChB,gBACA,qBAIJ,YACE,eACA,cACA,yBAEA,gBACE,mBACA,6BAEA,aACE,sCAIJ,arBnEwB,gBqBqEtB,qBACA,UC3EJ,aACE,gCAEA,gBACE,eACA,mBACA,+BAGF,cACE,iBACA,8CAGF,aACE,kBACA,wBAGF,gBACE,iCAGF,aACE,kBACA,uCAGF,oBACE,gDAGF,SACE,YACA,8BAGF,cACE,iBACA,mEAGF,aACE,kBACA,2DAGF,cAEE,gBACA,mFAGF,cACE,gBACA,mCAGF,aACE,iBACA,yBAGF,kBACE,kBACA,4BAGF,UACE,UACA,wBAGF,aACE,kCAGF,MACE,WACA,cACA,mBACA,2CAGF,aACE,iBACA,0CAGF,gBACE,eACA,mCAGF,WACE,sCAGF,gBACE,gBACA,yCAGF,UACE,iCAGF,aACE,iBACA,0BAGF,SACE,WACA,0DAGF,iBAEE,mBACA,4GAGF,iBAEE,gBACA,uCAGF,kBACE,eACA,2BAGF,aACE,kBACA,wCAGF,SACE,YACA,yDAGF,SACE,WACA,CAKA,oFAGF,UACE,OACA,uGAGF,UAEE,uCAIA,cACE,iBACA,kEAEA,cACE,gBACA,qCAKN,WACE,eACA,iBACA,uCAGF,WACE,sCAGF,aACE,kBACA,0CAGF,gBACE,eACA,uDAGF,gBACE,2CAGF,cACE,iBACA,YACA,yEAGF,aAEE,iBACA,iBAGF,wBACE,iBAGF,SACE,oBACA,yBAGF,aACE,8EAGF,cAEE,gBACA,oDAGF,cACE,mBACA,gEAGF,iBACE,gBACA,CAMA,8KAGF,SACE,QACA,yDAGF,kBACE,eACA,uDAGF,kBACE,gBACA,qDAGF,SACE,QACA,8FAGF,cAEE,mBACA,4CAGF,UACE,SACA,kDAEA,UACE,OACA,kEACA,8BAIJ,sXACE,uCAGF,gBAEE,kCAGF,cACE,iBACA,gDAGF,UACE,UACA,gEAGF,aACE,uDAGF,WACE,WACA,uDAGF,UACE,WACA,uDAGF,UACE,WACA,kDAGF,MACE,0CAGF,iBACE,yBACA,qDAGF,cACE,iBACA,qCAGF,kCACE,gBAEE,kBACA,2DAEA,gBACE,mBACA,uEAKF,gBAEE,kBACA,gFAKN,cAEE,gBACA,6CAKE,eACE,eACA,sDAIJ,aACE,kBACA,4DAKF,cACE,gBACA,8DAGF,gBACE,eACA,mCAIJ,aACE,kBACA,iBACA,kCAGF,WACE,mCAGF,WACE,oCAGF,cACE,gBACA,gFAGF,cACE,mBACA,+DAGF,SACE,QACA,kkEC7ZJ,kIACE,CADF,sIACE,qBACA,2GCEQ,SACE,CDHV,iGCEQ,SACE,CDHV,qGCEQ,SACE,CDHV,4FCEQ,SACE,mJAQZ,aAME,0BACA,mMAEA,oBACE,iOAGF,yBACE,CAKE,0zCAIJ,oBAGE,uUAGF,axB3BqB,qBwB6BnB,oCAIJ,yBACE,6HAEA,oBAGE,4BAIJ,yBACE,qGAEA,oBAGE,eAIJ,axBvDoB,yEwB2DpB,+BACE,0D","file":"skins/vanilla/contrast/common.css","sourcesContent":["html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,em,img,ins,kbd,q,s,samp,small,strike,strong,sub,sup,tt,var,b,u,i,center,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td,article,aside,canvas,details,embed,figure,figcaption,footer,header,hgroup,menu,nav,output,ruby,section,summary,time,mark,audio,video{margin:0;padding:0;border:0;font-size:100%;font:inherit;vertical-align:baseline}article,aside,details,figcaption,figure,footer,header,hgroup,menu,nav,section{display:block}body{line-height:1}ol,ul{list-style:none}blockquote,q{quotes:none}blockquote:before,blockquote:after,q:before,q:after{content:\"\";content:none}table{border-collapse:collapse;border-spacing:0}html{scrollbar-color:#313543 rgba(0,0,0,.1)}::-webkit-scrollbar{width:12px;height:12px}::-webkit-scrollbar-thumb{background:#313543;border:0px none #fff;border-radius:50px}::-webkit-scrollbar-thumb:hover{background:#353a49}::-webkit-scrollbar-thumb:active{background:#313543}::-webkit-scrollbar-track{border:0px none #fff;border-radius:0;background:rgba(0,0,0,.1)}::-webkit-scrollbar-track:hover{background:#282c37}::-webkit-scrollbar-track:active{background:#282c37}::-webkit-scrollbar-corner{background:transparent}body{font-family:\"mastodon-font-sans-serif\",sans-serif;background:#191b22;font-size:13px;line-height:18px;font-weight:400;color:#fff;text-rendering:optimizelegibility;font-feature-settings:\"kern\";text-size-adjust:none;-webkit-tap-highlight-color:rgba(0,0,0,0);-webkit-tap-highlight-color:transparent}body.system-font{font-family:system-ui,-apple-system,BlinkMacSystemFont,\"Segoe UI\",\"Oxygen\",\"Ubuntu\",\"Cantarell\",\"Fira Sans\",\"Droid Sans\",\"Helvetica Neue\",\"mastodon-font-sans-serif\",sans-serif}body.app-body{padding:0}body.app-body.layout-single-column{height:auto;min-height:100vh;overflow-y:scroll}body.app-body.layout-multiple-columns{position:absolute;width:100%;height:100%}body.app-body.with-modals--active{overflow-y:hidden}body.lighter{background:#282c37}body.with-modals{overflow-x:hidden;overflow-y:scroll}body.with-modals--active{overflow-y:hidden}body.player{text-align:center}body.embed{background:#313543;margin:0;padding-bottom:0}body.embed .container{position:absolute;width:100%;height:100%;overflow:hidden}body.admin{background:#1f232b;padding:0}body.error{position:absolute;text-align:center;color:#dde3ec;background:#282c37;width:100%;height:100%;padding:0;display:flex;justify-content:center;align-items:center}body.error .dialog{vertical-align:middle;margin:20px}body.error .dialog__illustration img{display:block;max-width:470px;width:100%;height:auto;margin-top:-120px}body.error .dialog h1{font-size:20px;line-height:28px;font-weight:400}button{font-family:inherit;cursor:pointer}button:focus{outline:none}.app-holder,.app-holder>div,.app-holder>noscript{display:flex;width:100%;align-items:center;justify-content:center;outline:0 !important}.app-holder>noscript{height:100vh}.layout-single-column .app-holder,.layout-single-column .app-holder>div{min-height:100vh}.layout-multiple-columns .app-holder,.layout-multiple-columns .app-holder>div{height:100%}.error-boundary,.app-holder noscript{flex-direction:column;font-size:16px;font-weight:400;line-height:1.7;color:#e25169;text-align:center}.error-boundary>div,.app-holder noscript>div{max-width:500px}.error-boundary p,.app-holder noscript p{margin-bottom:.85em}.error-boundary p:last-child,.app-holder noscript p:last-child{margin-bottom:0}.error-boundary a,.app-holder noscript a{color:#2b90d9}.error-boundary a:hover,.error-boundary a:focus,.error-boundary a:active,.app-holder noscript a:hover,.app-holder noscript a:focus,.app-holder noscript a:active{text-decoration:none}.error-boundary__footer,.app-holder noscript__footer{color:#c2cede;font-size:13px}.error-boundary__footer a,.app-holder noscript__footer a{color:#c2cede}.error-boundary button,.app-holder noscript button{display:inline;border:0;background:transparent;color:#c2cede;font:inherit;padding:0;margin:0;line-height:inherit;cursor:pointer;outline:0;transition:color 300ms linear;text-decoration:underline}.error-boundary button:hover,.error-boundary button:focus,.error-boundary button:active,.app-holder noscript button:hover,.app-holder noscript button:focus,.app-holder noscript button:active{text-decoration:none}.error-boundary button.copied,.app-holder noscript button.copied{color:#79bd9a;transition:none}.container-alt{width:700px;margin:0 auto;margin-top:40px}@media screen and (max-width: 740px){.container-alt{width:100%;margin:0}}.logo-container{margin:100px auto 50px}@media screen and (max-width: 500px){.logo-container{margin:40px auto 0}}.logo-container h1{display:flex;justify-content:center;align-items:center}.logo-container h1 svg{fill:#fff;height:42px;margin-right:10px}.logo-container h1 a{display:flex;justify-content:center;align-items:center;color:#fff;text-decoration:none;outline:0;padding:12px 16px;line-height:32px;font-family:\"mastodon-font-display\",sans-serif;font-weight:500;font-size:14px}.compose-standalone .compose-form{width:400px;margin:0 auto;padding:20px 0;margin-top:40px;box-sizing:border-box}@media screen and (max-width: 400px){.compose-standalone .compose-form{width:100%;margin-top:0;padding:20px}}.account-header{width:400px;margin:0 auto;display:flex;font-size:13px;line-height:18px;box-sizing:border-box;padding:20px 0;padding-bottom:0;margin-bottom:-30px;margin-top:40px}@media screen and (max-width: 440px){.account-header{width:100%;margin:0;margin-bottom:10px;padding:20px;padding-bottom:0}}.account-header .avatar{width:40px;height:40px;margin-right:8px}.account-header .avatar img{width:100%;height:100%;display:block;margin:0;border-radius:4px}.account-header .name{flex:1 1 auto;color:#ecf0f4;width:calc(100% - 88px)}.account-header .name .username{display:block;font-weight:500;text-overflow:ellipsis;overflow:hidden}.account-header .logout-link{display:block;font-size:32px;line-height:40px;margin-left:8px}.grid-3{display:grid;grid-gap:10px;grid-template-columns:3fr 1fr;grid-auto-columns:25%;grid-auto-rows:max-content}.grid-3 .column-0{grid-column:1/3;grid-row:1}.grid-3 .column-1{grid-column:1;grid-row:2}.grid-3 .column-2{grid-column:2;grid-row:2}.grid-3 .column-3{grid-column:1/3;grid-row:3}@media screen and (max-width: 415px){.grid-3{grid-gap:0;grid-template-columns:minmax(0, 100%)}.grid-3 .column-0{grid-column:1}.grid-3 .column-1{grid-column:1;grid-row:3}.grid-3 .column-2{grid-column:1;grid-row:2}.grid-3 .column-3{grid-column:1;grid-row:4}}.grid-4{display:grid;grid-gap:10px;grid-template-columns:repeat(4, minmax(0, 1fr));grid-auto-columns:25%;grid-auto-rows:max-content}.grid-4 .column-0{grid-column:1/5;grid-row:1}.grid-4 .column-1{grid-column:1/4;grid-row:2}.grid-4 .column-2{grid-column:4;grid-row:2}.grid-4 .column-3{grid-column:2/5;grid-row:3}.grid-4 .column-4{grid-column:1;grid-row:3}.grid-4 .landing-page__call-to-action{min-height:100%}.grid-4 .flash-message{margin-bottom:10px}@media screen and (max-width: 738px){.grid-4{grid-template-columns:minmax(0, 50%) minmax(0, 50%)}.grid-4 .landing-page__call-to-action{padding:20px;display:flex;align-items:center;justify-content:center}.grid-4 .row__information-board{width:100%;justify-content:center;align-items:center}.grid-4 .row__mascot{display:none}}@media screen and (max-width: 415px){.grid-4{grid-gap:0;grid-template-columns:minmax(0, 100%)}.grid-4 .column-0{grid-column:1}.grid-4 .column-1{grid-column:1;grid-row:3}.grid-4 .column-2{grid-column:1;grid-row:2}.grid-4 .column-3{grid-column:1;grid-row:5}.grid-4 .column-4{grid-column:1;grid-row:4}}@media screen and (max-width: 415px){.public-layout{padding-top:48px}}.public-layout .container{max-width:960px}@media screen and (max-width: 415px){.public-layout .container{padding:0}}.public-layout .header{background:#393f4f;box-shadow:0 0 15px rgba(0,0,0,.2);border-radius:4px;height:48px;margin:10px 0;display:flex;align-items:stretch;justify-content:center;flex-wrap:nowrap;overflow:hidden}@media screen and (max-width: 415px){.public-layout .header{position:fixed;width:100%;top:0;left:0;margin:0;border-radius:0;box-shadow:none;z-index:110}}.public-layout .header>div{flex:1 1 33.3%;min-height:1px}.public-layout .header .nav-left{display:flex;align-items:stretch;justify-content:flex-start;flex-wrap:nowrap}.public-layout .header .nav-center{display:flex;align-items:stretch;justify-content:center;flex-wrap:nowrap}.public-layout .header .nav-right{display:flex;align-items:stretch;justify-content:flex-end;flex-wrap:nowrap}.public-layout .header .brand{display:block;padding:15px}.public-layout .header .brand svg{display:block;height:18px;width:auto;position:relative;bottom:-2px;fill:#fff}@media screen and (max-width: 415px){.public-layout .header .brand svg{height:20px}}.public-layout .header .brand:hover,.public-layout .header .brand:focus,.public-layout .header .brand:active{background:#42485a}.public-layout .header .nav-link{display:flex;align-items:center;padding:0 1rem;font-size:12px;font-weight:500;text-decoration:none;color:#dde3ec;white-space:nowrap;text-align:center}.public-layout .header .nav-link:hover,.public-layout .header .nav-link:focus,.public-layout .header .nav-link:active{text-decoration:underline;color:#fff}@media screen and (max-width: 550px){.public-layout .header .nav-link.optional{display:none}}.public-layout .header .nav-button{background:#4a5266;margin:8px;margin-left:0;border-radius:4px}.public-layout .header .nav-button:hover,.public-layout .header .nav-button:focus,.public-layout .header .nav-button:active{text-decoration:none;background:#535b72}.public-layout .grid{display:grid;grid-gap:10px;grid-template-columns:minmax(300px, 3fr) minmax(298px, 1fr);grid-auto-columns:25%;grid-auto-rows:max-content}.public-layout .grid .column-0{grid-row:1;grid-column:1}.public-layout .grid .column-1{grid-row:1;grid-column:2}@media screen and (max-width: 600px){.public-layout .grid{grid-template-columns:100%;grid-gap:0}.public-layout .grid .column-1{display:none}}.public-layout .directory__card{border-radius:4px}@media screen and (max-width: 415px){.public-layout .directory__card{border-radius:0}}@media screen and (max-width: 415px){.public-layout .page-header{border-bottom:0}}.public-layout .public-account-header{overflow:hidden;margin-bottom:10px;box-shadow:0 0 15px rgba(0,0,0,.2)}.public-layout .public-account-header.inactive{opacity:.5}.public-layout .public-account-header.inactive .public-account-header__image,.public-layout .public-account-header.inactive .avatar{filter:grayscale(100%)}.public-layout .public-account-header.inactive .logo-button{background-color:#ecf0f4}.public-layout .public-account-header__image{border-radius:4px 4px 0 0;overflow:hidden;height:300px;position:relative;background:#0e1014}.public-layout .public-account-header__image::after{content:\"\";display:block;position:absolute;width:100%;height:100%;box-shadow:inset 0 -1px 1px 1px rgba(0,0,0,.15);top:0;left:0}.public-layout .public-account-header__image img{object-fit:cover;display:block;width:100%;height:100%;margin:0;border-radius:4px 4px 0 0}@media screen and (max-width: 600px){.public-layout .public-account-header__image{height:200px}}.public-layout .public-account-header--no-bar{margin-bottom:0}.public-layout .public-account-header--no-bar .public-account-header__image,.public-layout .public-account-header--no-bar .public-account-header__image img{border-radius:4px}@media screen and (max-width: 415px){.public-layout .public-account-header--no-bar .public-account-header__image,.public-layout .public-account-header--no-bar .public-account-header__image img{border-radius:0}}@media screen and (max-width: 415px){.public-layout .public-account-header{margin-bottom:0;box-shadow:none}.public-layout .public-account-header__image::after{display:none}.public-layout .public-account-header__image,.public-layout .public-account-header__image img{border-radius:0}}.public-layout .public-account-header__bar{position:relative;margin-top:-80px;display:flex;justify-content:flex-start}.public-layout .public-account-header__bar::before{content:\"\";display:block;background:#313543;position:absolute;bottom:0;left:0;right:0;height:60px;border-radius:0 0 4px 4px;z-index:-1}.public-layout .public-account-header__bar .avatar{display:block;width:120px;height:120px;padding-left:16px;flex:0 0 auto}.public-layout .public-account-header__bar .avatar img{display:block;width:100%;height:100%;margin:0;border-radius:50%;border:4px solid #313543;background:#17191f}@media screen and (max-width: 600px){.public-layout .public-account-header__bar{margin-top:0;background:#313543;border-radius:0 0 4px 4px;padding:5px}.public-layout .public-account-header__bar::before{display:none}.public-layout .public-account-header__bar .avatar{width:48px;height:48px;padding:7px 0;padding-left:10px}.public-layout .public-account-header__bar .avatar img{border:0;border-radius:4px}}@media screen and (max-width: 600px)and (max-width: 360px){.public-layout .public-account-header__bar .avatar{display:none}}@media screen and (max-width: 415px){.public-layout .public-account-header__bar{border-radius:0}}@media screen and (max-width: 600px){.public-layout .public-account-header__bar{flex-wrap:wrap}}.public-layout .public-account-header__tabs{flex:1 1 auto;margin-left:20px}.public-layout .public-account-header__tabs__name{padding-top:20px;padding-bottom:8px}.public-layout .public-account-header__tabs__name h1{font-size:20px;line-height:27px;color:#fff;font-weight:500;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;text-shadow:1px 1px 1px #000}.public-layout .public-account-header__tabs__name h1 small{display:block;font-size:14px;color:#fff;font-weight:400;overflow:hidden;text-overflow:ellipsis}@media screen and (max-width: 600px){.public-layout .public-account-header__tabs{margin-left:15px;display:flex;justify-content:space-between;align-items:center}.public-layout .public-account-header__tabs__name{padding-top:0;padding-bottom:0}.public-layout .public-account-header__tabs__name h1{font-size:16px;line-height:24px;text-shadow:none}.public-layout .public-account-header__tabs__name h1 small{color:#dde3ec}}.public-layout .public-account-header__tabs__tabs{display:flex;justify-content:flex-start;align-items:stretch;height:58px}.public-layout .public-account-header__tabs__tabs .details-counters{display:flex;flex-direction:row;min-width:300px}@media screen and (max-width: 600px){.public-layout .public-account-header__tabs__tabs .details-counters{display:none}}.public-layout .public-account-header__tabs__tabs .counter{min-width:33.3%;box-sizing:border-box;flex:0 0 auto;color:#dde3ec;padding:10px;border-right:1px solid #313543;cursor:default;text-align:center;position:relative}.public-layout .public-account-header__tabs__tabs .counter a{display:block}.public-layout .public-account-header__tabs__tabs .counter:last-child{border-right:0}.public-layout .public-account-header__tabs__tabs .counter::after{display:block;content:\"\";position:absolute;bottom:0;left:0;width:100%;border-bottom:4px solid #9baec8;opacity:.5;transition:all 400ms ease}.public-layout .public-account-header__tabs__tabs .counter.active::after{border-bottom:4px solid #2b90d9;opacity:1}.public-layout .public-account-header__tabs__tabs .counter.active.inactive::after{border-bottom-color:#ecf0f4}.public-layout .public-account-header__tabs__tabs .counter:hover::after{opacity:1;transition-duration:100ms}.public-layout .public-account-header__tabs__tabs .counter a{text-decoration:none;color:inherit}.public-layout .public-account-header__tabs__tabs .counter .counter-label{font-size:12px;display:block}.public-layout .public-account-header__tabs__tabs .counter .counter-number{font-weight:500;font-size:18px;margin-bottom:5px;color:#fff;font-family:\"mastodon-font-display\",sans-serif}.public-layout .public-account-header__tabs__tabs .spacer{flex:1 1 auto;height:1px}.public-layout .public-account-header__tabs__tabs__buttons{padding:7px 8px}.public-layout .public-account-header__extra{display:none;margin-top:4px}.public-layout .public-account-header__extra .public-account-bio{border-radius:0;box-shadow:none;background:transparent;margin:0 -5px}.public-layout .public-account-header__extra .public-account-bio .account__header__fields{border-top:1px solid #42485a}.public-layout .public-account-header__extra .public-account-bio .roles{display:none}.public-layout .public-account-header__extra__links{margin-top:-15px;font-size:14px;color:#dde3ec}.public-layout .public-account-header__extra__links a{display:inline-block;color:#dde3ec;text-decoration:none;padding:15px;font-weight:500}.public-layout .public-account-header__extra__links a strong{font-weight:700;color:#fff}@media screen and (max-width: 600px){.public-layout .public-account-header__extra{display:block;flex:100%}}.public-layout .account__section-headline{border-radius:4px 4px 0 0}@media screen and (max-width: 415px){.public-layout .account__section-headline{border-radius:0}}.public-layout .detailed-status__meta{margin-top:25px}.public-layout .public-account-bio{background:#393f4f;box-shadow:0 0 15px rgba(0,0,0,.2);border-radius:4px;overflow:hidden;margin-bottom:10px}@media screen and (max-width: 415px){.public-layout .public-account-bio{box-shadow:none;margin-bottom:0;border-radius:0}}.public-layout .public-account-bio .account__header__fields{margin:0;border-top:0}.public-layout .public-account-bio .account__header__fields a{color:#4e79df}.public-layout .public-account-bio .account__header__fields dl:first-child .verified{border-radius:0 4px 0 0}.public-layout .public-account-bio .account__header__fields .verified a{color:#79bd9a}.public-layout .public-account-bio .account__header__content{padding:20px;padding-bottom:0;color:#fff}.public-layout .public-account-bio__extra,.public-layout .public-account-bio .roles{padding:20px;font-size:14px;color:#dde3ec}.public-layout .public-account-bio .roles{padding-bottom:0}.public-layout .directory__list{display:grid;grid-gap:10px;grid-template-columns:minmax(0, 50%) minmax(0, 50%)}@media screen and (max-width: 415px){.public-layout .directory__list{display:block}}.public-layout .directory__list .icon-button{font-size:18px}.public-layout .directory__card{margin-bottom:0}.public-layout .card-grid{display:flex;flex-wrap:wrap;min-width:100%;margin:0 -5px}.public-layout .card-grid>div{box-sizing:border-box;flex:1 0 auto;width:300px;padding:0 5px;margin-bottom:10px;max-width:33.333%}@media screen and (max-width: 900px){.public-layout .card-grid>div{max-width:50%}}@media screen and (max-width: 600px){.public-layout .card-grid>div{max-width:100%}}@media screen and (max-width: 415px){.public-layout .card-grid{margin:0;border-top:1px solid #393f4f}.public-layout .card-grid>div{width:100%;padding:0;margin-bottom:0;border-bottom:1px solid #393f4f}.public-layout .card-grid>div:last-child{border-bottom:0}.public-layout .card-grid>div .card__bar{background:#282c37}.public-layout .card-grid>div .card__bar:hover,.public-layout .card-grid>div .card__bar:active,.public-layout .card-grid>div .card__bar:focus{background:#313543}}.no-list{list-style:none}.no-list li{display:inline-block;margin:0 5px}.recovery-codes{list-style:none;margin:0 auto}.recovery-codes li{font-size:125%;line-height:1.5;letter-spacing:1px}.public-layout .footer{text-align:left;padding-top:20px;padding-bottom:60px;font-size:12px;color:#737d99}@media screen and (max-width: 415px){.public-layout .footer{padding-left:20px;padding-right:20px}}.public-layout .footer .grid{display:grid;grid-gap:10px;grid-template-columns:1fr 1fr 2fr 1fr 1fr}.public-layout .footer .grid .column-0{grid-column:1;grid-row:1;min-width:0}.public-layout .footer .grid .column-1{grid-column:2;grid-row:1;min-width:0}.public-layout .footer .grid .column-2{grid-column:3;grid-row:1;min-width:0;text-align:center}.public-layout .footer .grid .column-2 h4 a{color:#737d99}.public-layout .footer .grid .column-3{grid-column:4;grid-row:1;min-width:0}.public-layout .footer .grid .column-4{grid-column:5;grid-row:1;min-width:0}@media screen and (max-width: 690px){.public-layout .footer .grid{grid-template-columns:1fr 2fr 1fr}.public-layout .footer .grid .column-0,.public-layout .footer .grid .column-1{grid-column:1}.public-layout .footer .grid .column-1{grid-row:2}.public-layout .footer .grid .column-2{grid-column:2}.public-layout .footer .grid .column-3,.public-layout .footer .grid .column-4{grid-column:3}.public-layout .footer .grid .column-4{grid-row:2}}@media screen and (max-width: 600px){.public-layout .footer .grid .column-1{display:block}}@media screen and (max-width: 415px){.public-layout .footer .grid .column-0,.public-layout .footer .grid .column-1,.public-layout .footer .grid .column-3,.public-layout .footer .grid .column-4{display:none}}.public-layout .footer h4{text-transform:uppercase;font-weight:700;margin-bottom:8px;color:#dde3ec}.public-layout .footer h4 a{color:inherit;text-decoration:none}.public-layout .footer ul a{text-decoration:none;color:#737d99}.public-layout .footer ul a:hover,.public-layout .footer ul a:active,.public-layout .footer ul a:focus{text-decoration:underline}.public-layout .footer .brand svg{display:block;height:36px;width:auto;margin:0 auto;fill:#737d99}.public-layout .footer .brand:hover svg,.public-layout .footer .brand:focus svg,.public-layout .footer .brand:active svg{fill:#7f88a2}.compact-header h1{font-size:24px;line-height:28px;color:#dde3ec;font-weight:500;margin-bottom:20px;padding:0 10px;word-wrap:break-word}@media screen and (max-width: 740px){.compact-header h1{text-align:center;padding:20px 10px 0}}.compact-header h1 a{color:inherit;text-decoration:none}.compact-header h1 small{font-weight:400;color:#ecf0f4}.compact-header h1 img{display:inline-block;margin-bottom:-5px;margin-right:15px;width:36px;height:36px}.hero-widget{margin-bottom:10px;box-shadow:0 0 15px rgba(0,0,0,.2)}.hero-widget__img{width:100%;position:relative;overflow:hidden;border-radius:4px 4px 0 0;background:#000}.hero-widget__img img{object-fit:cover;display:block;width:100%;height:100%;margin:0;border-radius:4px 4px 0 0}.hero-widget__text{background:#282c37;padding:20px;border-radius:0 0 4px 4px;font-size:15px;color:#dde3ec;line-height:20px;word-wrap:break-word;font-weight:400}.hero-widget__text .emojione{width:20px;height:20px;margin:-3px 0 0}.hero-widget__text p{margin-bottom:20px}.hero-widget__text p:last-child{margin-bottom:0}.hero-widget__text em{display:inline;margin:0;padding:0;font-weight:700;background:transparent;font-family:inherit;font-size:inherit;line-height:inherit;color:#fefefe}.hero-widget__text a{color:#ecf0f4;text-decoration:none}.hero-widget__text a:hover{text-decoration:underline}@media screen and (max-width: 415px){.hero-widget{display:none}}.endorsements-widget{margin-bottom:10px;padding-bottom:10px}.endorsements-widget h4{padding:10px;text-transform:uppercase;font-weight:700;font-size:13px;color:#dde3ec}.endorsements-widget .account{padding:10px 0}.endorsements-widget .account:last-child{border-bottom:0}.endorsements-widget .account .account__display-name{display:flex;align-items:center}.endorsements-widget .account .account__avatar{width:44px;height:44px;background-size:44px 44px}.endorsements-widget .trends__item{padding:10px}.trends-widget h4{color:#dde3ec}.box-widget{padding:20px;border-radius:4px;background:#282c37;box-shadow:0 0 15px rgba(0,0,0,.2)}.placeholder-widget{padding:16px;border-radius:4px;border:2px dashed #c2cede;text-align:center;color:#dde3ec;margin-bottom:10px}.contact-widget{min-height:100%;font-size:15px;color:#dde3ec;line-height:20px;word-wrap:break-word;font-weight:400;padding:0}.contact-widget h4{padding:10px;text-transform:uppercase;font-weight:700;font-size:13px;color:#dde3ec}.contact-widget .account{border-bottom:0;padding:10px 0;padding-top:5px}.contact-widget>a{display:inline-block;padding:10px;padding-top:0;color:#dde3ec;text-decoration:none;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.contact-widget>a:hover,.contact-widget>a:focus,.contact-widget>a:active{text-decoration:underline}.moved-account-widget{padding:15px;padding-bottom:20px;border-radius:4px;background:#282c37;box-shadow:0 0 15px rgba(0,0,0,.2);color:#ecf0f4;font-weight:400;margin-bottom:10px}.moved-account-widget strong,.moved-account-widget a{font-weight:500}.moved-account-widget strong:lang(ja),.moved-account-widget a:lang(ja){font-weight:700}.moved-account-widget strong:lang(ko),.moved-account-widget a:lang(ko){font-weight:700}.moved-account-widget strong:lang(zh-CN),.moved-account-widget a:lang(zh-CN){font-weight:700}.moved-account-widget strong:lang(zh-HK),.moved-account-widget a:lang(zh-HK){font-weight:700}.moved-account-widget strong:lang(zh-TW),.moved-account-widget a:lang(zh-TW){font-weight:700}.moved-account-widget a{color:inherit;text-decoration:underline}.moved-account-widget a.mention{text-decoration:none}.moved-account-widget a.mention span{text-decoration:none}.moved-account-widget a.mention:focus,.moved-account-widget a.mention:hover,.moved-account-widget a.mention:active{text-decoration:none}.moved-account-widget a.mention:focus span,.moved-account-widget a.mention:hover span,.moved-account-widget a.mention:active span{text-decoration:underline}.moved-account-widget__message{margin-bottom:15px}.moved-account-widget__message .fa{margin-right:5px;color:#dde3ec}.moved-account-widget__card .detailed-status__display-avatar{position:relative;cursor:pointer}.moved-account-widget__card .detailed-status__display-name{margin-bottom:0;text-decoration:none}.moved-account-widget__card .detailed-status__display-name span{font-weight:400}.memoriam-widget{padding:20px;border-radius:4px;background:#000;box-shadow:0 0 15px rgba(0,0,0,.2);font-size:14px;color:#dde3ec;margin-bottom:10px}.page-header{background:#393f4f;box-shadow:0 0 15px rgba(0,0,0,.2);border-radius:4px;padding:60px 15px;text-align:center;margin:10px 0}.page-header h1{color:#fff;font-size:36px;line-height:1.1;font-weight:700;margin-bottom:10px}.page-header p{font-size:15px;color:#dde3ec}@media screen and (max-width: 415px){.page-header{margin-top:0;background:#313543}.page-header h1{font-size:24px}}.directory{background:#282c37;border-radius:4px;box-shadow:0 0 15px rgba(0,0,0,.2)}.directory__tag{box-sizing:border-box;margin-bottom:10px}.directory__tag>a,.directory__tag>div{display:flex;align-items:center;justify-content:space-between;background:#282c37;border-radius:4px;padding:15px;text-decoration:none;color:inherit;box-shadow:0 0 15px rgba(0,0,0,.2)}.directory__tag>a:hover,.directory__tag>a:active,.directory__tag>a:focus{background:#393f4f}.directory__tag.active>a{background:#2b5fd9;cursor:default}.directory__tag.disabled>div{opacity:.5;cursor:default}.directory__tag h4{flex:1 1 auto;font-size:18px;font-weight:700;color:#fff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.directory__tag h4 .fa{color:#dde3ec}.directory__tag h4 small{display:block;font-weight:400;font-size:15px;margin-top:8px;color:#dde3ec}.directory__tag.active h4,.directory__tag.active h4 .fa,.directory__tag.active h4 small,.directory__tag.active h4 .trends__item__current{color:#fff}.directory__tag .avatar-stack{flex:0 0 auto;width:120px}.directory__tag.active .avatar-stack .account__avatar{border-color:#2b5fd9}.directory__tag .trends__item__current{padding-right:0}.avatar-stack{display:flex;justify-content:flex-end}.avatar-stack .account__avatar{flex:0 0 auto;width:36px;height:36px;border-radius:50%;position:relative;margin-left:-10px;background:#17191f;border:2px solid #282c37}.avatar-stack .account__avatar:nth-child(1){z-index:1}.avatar-stack .account__avatar:nth-child(2){z-index:2}.avatar-stack .account__avatar:nth-child(3){z-index:3}.accounts-table{width:100%}.accounts-table .account{padding:0;border:0}.accounts-table strong{font-weight:700}.accounts-table thead th{text-align:center;text-transform:uppercase;color:#dde3ec;font-weight:700;padding:10px}.accounts-table thead th:first-child{text-align:left}.accounts-table tbody td{padding:15px 0;vertical-align:middle;border-bottom:1px solid #393f4f}.accounts-table tbody tr:last-child td{border-bottom:0}.accounts-table__count{width:120px;text-align:center;font-size:15px;font-weight:500;color:#fff}.accounts-table__count small{display:block;color:#dde3ec;font-weight:400;font-size:14px}.accounts-table__comment{width:50%;vertical-align:initial !important}@media screen and (max-width: 415px){.accounts-table tbody td.optional{display:none}}@media screen and (max-width: 415px){.moved-account-widget,.memoriam-widget,.box-widget,.contact-widget,.landing-page__information.contact-widget,.directory,.page-header{margin-bottom:0;box-shadow:none;border-radius:0}}.statuses-grid{min-height:600px}@media screen and (max-width: 640px){.statuses-grid{width:100% !important}}.statuses-grid__item{width:313.3333333333px}@media screen and (max-width: 1255px){.statuses-grid__item{width:306.6666666667px}}@media screen and (max-width: 640px){.statuses-grid__item{width:100%}}@media screen and (max-width: 415px){.statuses-grid__item{width:100vw}}.statuses-grid .detailed-status{border-radius:4px}@media screen and (max-width: 415px){.statuses-grid .detailed-status{border-top:1px solid #4a5266}}.statuses-grid .detailed-status.compact .detailed-status__meta{margin-top:15px}.statuses-grid .detailed-status.compact .status__content{font-size:15px;line-height:20px}.statuses-grid .detailed-status.compact .status__content .emojione{width:20px;height:20px;margin:-3px 0 0}.statuses-grid .detailed-status.compact .status__content .status__content__spoiler-link{line-height:20px;margin:0}.statuses-grid .detailed-status.compact .media-gallery,.statuses-grid .detailed-status.compact .status-card,.statuses-grid .detailed-status.compact .video-player{margin-top:15px}.notice-widget{margin-bottom:10px;color:#dde3ec}.notice-widget p{margin-bottom:10px}.notice-widget p:last-child{margin-bottom:0}.notice-widget a{font-size:14px;line-height:20px}.notice-widget a,.placeholder-widget a{text-decoration:none;font-weight:500;color:#2b5fd9}.notice-widget a:hover,.notice-widget a:focus,.notice-widget a:active,.placeholder-widget a:hover,.placeholder-widget a:focus,.placeholder-widget a:active{text-decoration:underline}.table-of-contents{background:#1f232b;min-height:100%;font-size:14px;border-radius:4px}.table-of-contents li a{display:block;font-weight:500;padding:15px;overflow:hidden;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-decoration:none;color:#fff;border-bottom:1px solid #313543}.table-of-contents li a:hover,.table-of-contents li a:focus,.table-of-contents li a:active{text-decoration:underline}.table-of-contents li:last-child a{border-bottom:0}.table-of-contents li ul{padding-left:20px;border-bottom:1px solid #313543}code{font-family:\"mastodon-font-monospace\",monospace;font-weight:400}.form-container{max-width:400px;padding:20px;margin:0 auto}.simple_form .input{margin-bottom:15px;overflow:hidden}.simple_form .input.hidden{margin:0}.simple_form .input.radio_buttons .radio{margin-bottom:15px}.simple_form .input.radio_buttons .radio:last-child{margin-bottom:0}.simple_form .input.radio_buttons .radio>label{position:relative;padding-left:28px}.simple_form .input.radio_buttons .radio>label input{position:absolute;top:-2px;left:0}.simple_form .input.boolean{position:relative;margin-bottom:0}.simple_form .input.boolean .label_input>label{font-family:inherit;font-size:14px;padding-top:5px;color:#fff;display:block;width:auto}.simple_form .input.boolean .label_input,.simple_form .input.boolean .hint{padding-left:28px}.simple_form .input.boolean .label_input__wrapper{position:static}.simple_form .input.boolean label.checkbox{position:absolute;top:2px;left:0}.simple_form .input.boolean label a{color:#2b90d9;text-decoration:underline}.simple_form .input.boolean label a:hover,.simple_form .input.boolean label a:active,.simple_form .input.boolean label a:focus{text-decoration:none}.simple_form .input.boolean .recommended{position:absolute;margin:0 4px;margin-top:-2px}.simple_form .row{display:flex;margin:0 -5px}.simple_form .row .input{box-sizing:border-box;flex:1 1 auto;width:50%;padding:0 5px}.simple_form .hint{color:#dde3ec}.simple_form .hint a{color:#2b90d9}.simple_form .hint code{border-radius:3px;padding:.2em .4em;background:#0e1014}.simple_form .hint li{list-style:disc;margin-left:18px}.simple_form ul.hint{margin-bottom:15px}.simple_form span.hint{display:block;font-size:12px;margin-top:4px}.simple_form p.hint{margin-bottom:15px;color:#dde3ec}.simple_form p.hint.subtle-hint{text-align:center;font-size:12px;line-height:18px;margin-top:15px;margin-bottom:0}.simple_form .card{margin-bottom:15px}.simple_form strong{font-weight:500}.simple_form strong:lang(ja){font-weight:700}.simple_form strong:lang(ko){font-weight:700}.simple_form strong:lang(zh-CN){font-weight:700}.simple_form strong:lang(zh-HK){font-weight:700}.simple_form strong:lang(zh-TW){font-weight:700}.simple_form .input.with_floating_label .label_input{display:flex}.simple_form .input.with_floating_label .label_input>label{font-family:inherit;font-size:14px;color:#fff;font-weight:500;min-width:150px;flex:0 0 auto}.simple_form .input.with_floating_label .label_input input,.simple_form .input.with_floating_label .label_input select{flex:1 1 auto}.simple_form .input.with_floating_label.select .hint{margin-top:6px;margin-left:150px}.simple_form .input.with_label .label_input>label{font-family:inherit;font-size:14px;color:#fff;display:block;margin-bottom:8px;word-wrap:break-word;font-weight:500}.simple_form .input.with_label .hint{margin-top:6px}.simple_form .input.with_label ul{flex:390px}.simple_form .input.with_block_label{max-width:none}.simple_form .input.with_block_label>label{font-family:inherit;font-size:16px;color:#fff;display:block;font-weight:500;padding-top:5px}.simple_form .input.with_block_label .hint{margin-bottom:15px}.simple_form .input.with_block_label ul{columns:2}.simple_form .input.datetime .label_input select{display:inline-block;width:auto;flex:0}.simple_form .required abbr{text-decoration:none;color:#e87487}.simple_form .fields-group{margin-bottom:25px}.simple_form .fields-group .input:last-child{margin-bottom:0}.simple_form .fields-row{display:flex;margin:0 -10px;padding-top:5px;margin-bottom:25px}.simple_form .fields-row .input{max-width:none}.simple_form .fields-row__column{box-sizing:border-box;padding:0 10px;flex:1 1 auto;min-height:1px}.simple_form .fields-row__column-6{max-width:50%}.simple_form .fields-row__column .actions{margin-top:27px}.simple_form .fields-row .fields-group:last-child,.simple_form .fields-row .fields-row__column.fields-group{margin-bottom:0}@media screen and (max-width: 600px){.simple_form .fields-row{display:block;margin-bottom:0}.simple_form .fields-row__column{max-width:none}.simple_form .fields-row .fields-group:last-child,.simple_form .fields-row .fields-row__column.fields-group,.simple_form .fields-row .fields-row__column{margin-bottom:25px}}.simple_form .input.radio_buttons .radio label{margin-bottom:5px;font-family:inherit;font-size:14px;color:#fff;display:block;width:auto}.simple_form .check_boxes .checkbox label{font-family:inherit;font-size:14px;color:#fff;display:inline-block;width:auto;position:relative;padding-top:5px;padding-left:25px;flex:1 1 auto}.simple_form .check_boxes .checkbox input[type=checkbox]{position:absolute;left:0;top:5px;margin:0}.simple_form .input.static .label_input__wrapper{font-size:16px;padding:10px;border:1px solid #c2cede;border-radius:4px}.simple_form input[type=text],.simple_form input[type=number],.simple_form input[type=email],.simple_form input[type=password],.simple_form textarea{box-sizing:border-box;font-size:16px;color:#fff;display:block;width:100%;outline:0;font-family:inherit;resize:vertical;background:#131419;border:1px solid #0a0b0e;border-radius:4px;padding:10px}.simple_form input[type=text]::placeholder,.simple_form input[type=number]::placeholder,.simple_form input[type=email]::placeholder,.simple_form input[type=password]::placeholder,.simple_form textarea::placeholder{color:#eaeef3}.simple_form input[type=text]:invalid,.simple_form input[type=number]:invalid,.simple_form input[type=email]:invalid,.simple_form input[type=password]:invalid,.simple_form textarea:invalid{box-shadow:none}.simple_form input[type=text]:focus:invalid:not(:placeholder-shown),.simple_form input[type=number]:focus:invalid:not(:placeholder-shown),.simple_form input[type=email]:focus:invalid:not(:placeholder-shown),.simple_form input[type=password]:focus:invalid:not(:placeholder-shown),.simple_form textarea:focus:invalid:not(:placeholder-shown){border-color:#e87487}.simple_form input[type=text]:required:valid,.simple_form input[type=number]:required:valid,.simple_form input[type=email]:required:valid,.simple_form input[type=password]:required:valid,.simple_form textarea:required:valid{border-color:#79bd9a}.simple_form input[type=text]:hover,.simple_form input[type=number]:hover,.simple_form input[type=email]:hover,.simple_form input[type=password]:hover,.simple_form textarea:hover{border-color:#000}.simple_form input[type=text]:active,.simple_form input[type=text]:focus,.simple_form input[type=number]:active,.simple_form input[type=number]:focus,.simple_form input[type=email]:active,.simple_form input[type=email]:focus,.simple_form input[type=password]:active,.simple_form input[type=password]:focus,.simple_form textarea:active,.simple_form textarea:focus{border-color:#2b90d9;background:#17191f}.simple_form .input.field_with_errors label{color:#e87487}.simple_form .input.field_with_errors input[type=text],.simple_form .input.field_with_errors input[type=number],.simple_form .input.field_with_errors input[type=email],.simple_form .input.field_with_errors input[type=password],.simple_form .input.field_with_errors textarea,.simple_form .input.field_with_errors select{border-color:#e87487}.simple_form .input.field_with_errors .error{display:block;font-weight:500;color:#e87487;margin-top:4px}.simple_form .input.disabled{opacity:.5}.simple_form .actions{margin-top:30px;display:flex}.simple_form .actions.actions--top{margin-top:0;margin-bottom:30px}.simple_form button,.simple_form .button,.simple_form .block-button{display:block;width:100%;border:0;border-radius:4px;background:#2b5fd9;color:#fff;font-size:18px;line-height:inherit;height:auto;padding:10px;text-transform:uppercase;text-decoration:none;text-align:center;box-sizing:border-box;cursor:pointer;font-weight:500;outline:0;margin-bottom:10px;margin-right:10px}.simple_form button:last-child,.simple_form .button:last-child,.simple_form .block-button:last-child{margin-right:0}.simple_form button:hover,.simple_form .button:hover,.simple_form .block-button:hover{background-color:#416fdd}.simple_form button:active,.simple_form button:focus,.simple_form .button:active,.simple_form .button:focus,.simple_form .block-button:active,.simple_form .block-button:focus{background-color:#2454c7}.simple_form button:disabled:hover,.simple_form .button:disabled:hover,.simple_form .block-button:disabled:hover{background-color:#9baec8}.simple_form button.negative,.simple_form .button.negative,.simple_form .block-button.negative{background:#df405a}.simple_form button.negative:hover,.simple_form .button.negative:hover,.simple_form .block-button.negative:hover{background-color:#e3566d}.simple_form button.negative:active,.simple_form button.negative:focus,.simple_form .button.negative:active,.simple_form .button.negative:focus,.simple_form .block-button.negative:active,.simple_form .block-button.negative:focus{background-color:#db2a47}.simple_form select{appearance:none;box-sizing:border-box;font-size:16px;color:#fff;display:block;width:100%;outline:0;font-family:inherit;resize:vertical;background:#131419 url(\"data:image/svg+xml;utf8,\") no-repeat right 8px center/auto 16px;border:1px solid #0a0b0e;border-radius:4px;padding-left:10px;padding-right:30px;height:41px}.simple_form h4{margin-bottom:15px !important}.simple_form .label_input__wrapper{position:relative}.simple_form .label_input__append{position:absolute;right:3px;top:1px;padding:10px;padding-bottom:9px;font-size:16px;color:#c2cede;font-family:inherit;pointer-events:none;cursor:default;max-width:140px;white-space:nowrap;overflow:hidden}.simple_form .label_input__append::after{content:\"\";display:block;position:absolute;top:0;right:0;bottom:1px;width:5px;background-image:linear-gradient(to right, rgba(19, 20, 25, 0), #131419)}.simple_form__overlay-area{position:relative}.simple_form__overlay-area__blurred form{filter:blur(2px)}.simple_form__overlay-area__overlay{position:absolute;top:0;left:0;width:100%;height:100%;display:flex;justify-content:center;align-items:center;background:rgba(40,44,55,.65);border-radius:4px;margin-left:-4px;margin-top:-4px;padding:4px}.simple_form__overlay-area__overlay__content{text-align:center}.simple_form__overlay-area__overlay__content.rich-formatting,.simple_form__overlay-area__overlay__content.rich-formatting p{color:#fff}.block-icon{display:block;margin:0 auto;margin-bottom:10px;font-size:24px}.flash-message{background:#393f4f;color:#dde3ec;border-radius:4px;padding:15px 10px;margin-bottom:30px;text-align:center}.flash-message.notice{border:1px solid rgba(121,189,154,.5);background:rgba(121,189,154,.25);color:#79bd9a}.flash-message.alert{border:1px solid rgba(223,64,90,.5);background:rgba(223,64,90,.25);color:#df405a}.flash-message a{display:inline-block;color:#dde3ec;text-decoration:none}.flash-message a:hover{color:#fff;text-decoration:underline}.flash-message p{margin-bottom:15px}.flash-message .oauth-code{outline:0;box-sizing:border-box;display:block;width:100%;border:0;padding:10px;font-family:\"mastodon-font-monospace\",monospace;background:#282c37;color:#fff;font-size:14px;margin:0}.flash-message .oauth-code::-moz-focus-inner{border:0}.flash-message .oauth-code::-moz-focus-inner,.flash-message .oauth-code:focus,.flash-message .oauth-code:active{outline:0 !important}.flash-message .oauth-code:focus{background:#313543}.flash-message strong{font-weight:500}.flash-message strong:lang(ja){font-weight:700}.flash-message strong:lang(ko){font-weight:700}.flash-message strong:lang(zh-CN){font-weight:700}.flash-message strong:lang(zh-HK){font-weight:700}.flash-message strong:lang(zh-TW){font-weight:700}@media screen and (max-width: 740px)and (min-width: 441px){.flash-message{margin-top:40px}}.form-footer{margin-top:30px;text-align:center}.form-footer a{color:#dde3ec;text-decoration:none}.form-footer a:hover{text-decoration:underline}.quick-nav{list-style:none;margin-bottom:25px;font-size:14px}.quick-nav li{display:inline-block;margin-right:10px}.quick-nav a{color:#2b90d9;text-transform:uppercase;text-decoration:none;font-weight:700}.quick-nav a:hover,.quick-nav a:focus,.quick-nav a:active{color:#4ea2df}.oauth-prompt,.follow-prompt{margin-bottom:30px;color:#dde3ec}.oauth-prompt h2,.follow-prompt h2{font-size:16px;margin-bottom:30px;text-align:center}.oauth-prompt strong,.follow-prompt strong{color:#ecf0f4;font-weight:500}.oauth-prompt strong:lang(ja),.follow-prompt strong:lang(ja){font-weight:700}.oauth-prompt strong:lang(ko),.follow-prompt strong:lang(ko){font-weight:700}.oauth-prompt strong:lang(zh-CN),.follow-prompt strong:lang(zh-CN){font-weight:700}.oauth-prompt strong:lang(zh-HK),.follow-prompt strong:lang(zh-HK){font-weight:700}.oauth-prompt strong:lang(zh-TW),.follow-prompt strong:lang(zh-TW){font-weight:700}@media screen and (max-width: 740px)and (min-width: 441px){.oauth-prompt,.follow-prompt{margin-top:40px}}.qr-wrapper{display:flex;flex-wrap:wrap;align-items:flex-start}.qr-code{flex:0 0 auto;background:#fff;padding:4px;margin:0 10px 20px 0;box-shadow:0 0 15px rgba(0,0,0,.2);display:inline-block}.qr-code svg{display:block;margin:0}.qr-alternative{margin-bottom:20px;color:#ecf0f4;flex:150px}.qr-alternative samp{display:block;font-size:14px}.table-form p{margin-bottom:15px}.table-form p strong{font-weight:500}.table-form p strong:lang(ja){font-weight:700}.table-form p strong:lang(ko){font-weight:700}.table-form p strong:lang(zh-CN){font-weight:700}.table-form p strong:lang(zh-HK){font-weight:700}.table-form p strong:lang(zh-TW){font-weight:700}.simple_form .warning,.table-form .warning{box-sizing:border-box;background:rgba(223,64,90,.5);color:#fff;text-shadow:1px 1px 0 rgba(0,0,0,.3);box-shadow:0 2px 6px rgba(0,0,0,.4);border-radius:4px;padding:10px;margin-bottom:15px}.simple_form .warning a,.table-form .warning a{color:#fff;text-decoration:underline}.simple_form .warning a:hover,.simple_form .warning a:focus,.simple_form .warning a:active,.table-form .warning a:hover,.table-form .warning a:focus,.table-form .warning a:active{text-decoration:none}.simple_form .warning strong,.table-form .warning strong{font-weight:600;display:block;margin-bottom:5px}.simple_form .warning strong:lang(ja),.table-form .warning strong:lang(ja){font-weight:700}.simple_form .warning strong:lang(ko),.table-form .warning strong:lang(ko){font-weight:700}.simple_form .warning strong:lang(zh-CN),.table-form .warning strong:lang(zh-CN){font-weight:700}.simple_form .warning strong:lang(zh-HK),.table-form .warning strong:lang(zh-HK){font-weight:700}.simple_form .warning strong:lang(zh-TW),.table-form .warning strong:lang(zh-TW){font-weight:700}.simple_form .warning strong .fa,.table-form .warning strong .fa{font-weight:400}.action-pagination{display:flex;flex-wrap:wrap;align-items:center}.action-pagination .actions,.action-pagination .pagination{flex:1 1 auto}.action-pagination .actions{padding:30px 0;padding-right:20px;flex:0 0 auto}.post-follow-actions{text-align:center;color:#dde3ec}.post-follow-actions div{margin-bottom:4px}.alternative-login{margin-top:20px;margin-bottom:20px}.alternative-login h4{font-size:16px;color:#fff;text-align:center;margin-bottom:20px;border:0;padding:0}.alternative-login .button{display:block}.scope-danger{color:#ff5050}.form_admin_settings_site_short_description textarea,.form_admin_settings_site_description textarea,.form_admin_settings_site_extended_description textarea,.form_admin_settings_site_terms textarea,.form_admin_settings_custom_css textarea,.form_admin_settings_closed_registrations_message textarea{font-family:\"mastodon-font-monospace\",monospace}.input-copy{background:#131419;border:1px solid #0a0b0e;border-radius:4px;display:flex;align-items:center;padding-right:4px;position:relative;top:1px;transition:border-color 300ms linear}.input-copy__wrapper{flex:1 1 auto}.input-copy input[type=text]{background:transparent;border:0;padding:10px;font-size:14px;font-family:\"mastodon-font-monospace\",monospace}.input-copy button{flex:0 0 auto;margin:4px;text-transform:none;font-weight:400;font-size:14px;padding:7px 18px;padding-bottom:6px;width:auto;transition:background 300ms linear}.input-copy.copied{border-color:#79bd9a;transition:none}.input-copy.copied button{background:#79bd9a;transition:none}.connection-prompt{margin-bottom:25px}.connection-prompt .fa-link{background-color:#1f232b;border-radius:100%;font-size:24px;padding:10px}.connection-prompt__column{align-items:center;display:flex;flex:1;flex-direction:column;flex-shrink:1;max-width:50%}.connection-prompt__column-sep{align-self:center;flex-grow:0;overflow:visible;position:relative;z-index:1}.connection-prompt__column p{word-break:break-word}.connection-prompt .account__avatar{margin-bottom:20px}.connection-prompt__connection{background-color:#393f4f;box-shadow:0 0 15px rgba(0,0,0,.2);border-radius:4px;padding:25px 10px;position:relative;text-align:center}.connection-prompt__connection::after{background-color:#1f232b;content:\"\";display:block;height:100%;left:50%;position:absolute;top:0;width:1px}.connection-prompt__row{align-items:flex-start;display:flex;flex-direction:row}.card>a{display:block;text-decoration:none;color:inherit;box-shadow:0 0 15px rgba(0,0,0,.2)}@media screen and (max-width: 415px){.card>a{box-shadow:none}}.card>a:hover .card__bar,.card>a:active .card__bar,.card>a:focus .card__bar{background:#393f4f}.card__img{height:130px;position:relative;background:#0e1014;border-radius:4px 4px 0 0}.card__img img{display:block;width:100%;height:100%;margin:0;object-fit:cover;border-radius:4px 4px 0 0}@media screen and (max-width: 600px){.card__img{height:200px}}@media screen and (max-width: 415px){.card__img{display:none}}.card__bar{position:relative;padding:15px;display:flex;justify-content:flex-start;align-items:center;background:#313543;border-radius:0 0 4px 4px}@media screen and (max-width: 415px){.card__bar{border-radius:0}}.card__bar .avatar{flex:0 0 auto;width:48px;height:48px;padding-top:2px}.card__bar .avatar img{width:100%;height:100%;display:block;margin:0;border-radius:4px;background:#17191f;object-fit:cover}.card__bar .display-name{margin-left:15px;text-align:left}.card__bar .display-name strong{font-size:15px;color:#fff;font-weight:500;overflow:hidden;text-overflow:ellipsis}.card__bar .display-name span{display:block;font-size:14px;color:#dde3ec;font-weight:400;overflow:hidden;text-overflow:ellipsis}.pagination{padding:30px 0;text-align:center;overflow:hidden}.pagination a,.pagination .current,.pagination .newer,.pagination .older,.pagination .page,.pagination .gap{font-size:14px;color:#fff;font-weight:500;display:inline-block;padding:6px 10px;text-decoration:none}.pagination .current{background:#fff;border-radius:100px;color:#000;cursor:default;margin:0 10px}.pagination .gap{cursor:default}.pagination .older,.pagination .newer{text-transform:uppercase;color:#ecf0f4}.pagination .older{float:left;padding-left:0}.pagination .older .fa{display:inline-block;margin-right:5px}.pagination .newer{float:right;padding-right:0}.pagination .newer .fa{display:inline-block;margin-left:5px}.pagination .disabled{cursor:default;color:#1a1a1a}@media screen and (max-width: 700px){.pagination{padding:30px 20px}.pagination .page{display:none}.pagination .newer,.pagination .older{display:inline-block}}.nothing-here{background:#282c37;box-shadow:0 0 15px rgba(0,0,0,.2);color:#364861;font-size:14px;font-weight:500;text-align:center;display:flex;justify-content:center;align-items:center;cursor:default;border-radius:4px;padding:20px;min-height:30vh}.nothing-here--under-tabs{border-radius:0 0 4px 4px}.nothing-here--flexible{box-sizing:border-box;min-height:100%}.account-role,.simple_form .recommended{display:inline-block;padding:4px 6px;cursor:default;border-radius:3px;font-size:12px;line-height:12px;font-weight:500;color:#d9e1e8;background-color:rgba(217,225,232,.1);border:1px solid rgba(217,225,232,.5)}.account-role.moderator,.simple_form .recommended.moderator{color:#79bd9a;background-color:rgba(121,189,154,.1);border-color:rgba(121,189,154,.5)}.account-role.admin,.simple_form .recommended.admin{color:#e87487;background-color:rgba(232,116,135,.1);border-color:rgba(232,116,135,.5)}.account__header__fields{max-width:100vw;padding:0;margin:15px -15px -15px;border:0 none;border-top:1px solid #42485a;border-bottom:1px solid #42485a;font-size:14px;line-height:20px}.account__header__fields dl{display:flex;border-bottom:1px solid #42485a}.account__header__fields dt,.account__header__fields dd{box-sizing:border-box;padding:14px;text-align:center;max-height:48px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.account__header__fields dt{font-weight:500;width:120px;flex:0 0 auto;color:#ecf0f4;background:rgba(23,25,31,.5)}.account__header__fields dd{flex:1 1 auto;color:#dde3ec}.account__header__fields a{color:#2b90d9;text-decoration:none}.account__header__fields a:hover,.account__header__fields a:focus,.account__header__fields a:active{text-decoration:underline}.account__header__fields .verified{border:1px solid rgba(121,189,154,.5);background:rgba(121,189,154,.25)}.account__header__fields .verified a{color:#79bd9a;font-weight:500}.account__header__fields .verified__mark{color:#79bd9a}.account__header__fields dl:last-child{border-bottom:0}.directory__tag .trends__item__current{width:auto}.pending-account__header{color:#dde3ec}.pending-account__header a{color:#d9e1e8;text-decoration:none}.pending-account__header a:hover,.pending-account__header a:active,.pending-account__header a:focus{text-decoration:underline}.pending-account__header strong{color:#fff;font-weight:700}.pending-account__body{margin-top:10px}.activity-stream{box-shadow:0 0 15px rgba(0,0,0,.2);border-radius:4px;overflow:hidden;margin-bottom:10px}.activity-stream--under-tabs{border-radius:0 0 4px 4px}@media screen and (max-width: 415px){.activity-stream{margin-bottom:0;border-radius:0;box-shadow:none}}.activity-stream--headless{border-radius:0;margin:0;box-shadow:none}.activity-stream--headless .detailed-status,.activity-stream--headless .status{border-radius:0 !important}.activity-stream div[data-component]{width:100%}.activity-stream .entry{background:#282c37}.activity-stream .entry .detailed-status,.activity-stream .entry .status,.activity-stream .entry .load-more{animation:none}.activity-stream .entry:last-child .detailed-status,.activity-stream .entry:last-child .status,.activity-stream .entry:last-child .load-more{border-bottom:0;border-radius:0 0 4px 4px}.activity-stream .entry:first-child .detailed-status,.activity-stream .entry:first-child .status,.activity-stream .entry:first-child .load-more{border-radius:4px 4px 0 0}.activity-stream .entry:first-child:last-child .detailed-status,.activity-stream .entry:first-child:last-child .status,.activity-stream .entry:first-child:last-child .load-more{border-radius:4px}@media screen and (max-width: 740px){.activity-stream .entry .detailed-status,.activity-stream .entry .status,.activity-stream .entry .load-more{border-radius:0 !important}}.activity-stream--highlighted .entry{background:#393f4f}.button.logo-button{flex:0 auto;font-size:14px;background:#2b5fd9;color:#fff;text-transform:none;line-height:36px;height:auto;padding:3px 15px;border:0}.button.logo-button svg{width:20px;height:auto;vertical-align:middle;margin-right:5px;fill:#fff}.button.logo-button:active,.button.logo-button:focus,.button.logo-button:hover{background:#5680e1}.button.logo-button:disabled:active,.button.logo-button:disabled:focus,.button.logo-button:disabled:hover,.button.logo-button.disabled:active,.button.logo-button.disabled:focus,.button.logo-button.disabled:hover{background:#9baec8}.button.logo-button.button--destructive:active,.button.logo-button.button--destructive:focus,.button.logo-button.button--destructive:hover{background:#df405a}@media screen and (max-width: 415px){.button.logo-button svg{display:none}}.embed .detailed-status,.public-layout .detailed-status{padding:15px}.embed .status,.public-layout .status{padding:15px 15px 15px 78px;min-height:50px}.embed .status__avatar,.public-layout .status__avatar{left:15px;top:17px}.embed .status__content,.public-layout .status__content{padding-top:5px}.embed .status__prepend,.public-layout .status__prepend{margin-left:78px;padding-top:15px}.embed .status__prepend-icon-wrapper,.public-layout .status__prepend-icon-wrapper{left:-32px}.embed .status .media-gallery,.embed .status__action-bar,.embed .status .video-player,.public-layout .status .media-gallery,.public-layout .status__action-bar,.public-layout .status .video-player{margin-top:10px}button.icon-button i.fa-retweet{background-image:url(\"data:image/svg+xml;utf8,\")}button.icon-button i.fa-retweet:hover{background-image:url(\"data:image/svg+xml;utf8,\")}button.icon-button.disabled i.fa-retweet{background-image:url(\"data:image/svg+xml;utf8,\")}.app-body{-webkit-overflow-scrolling:touch;-ms-overflow-style:-ms-autohiding-scrollbar}.animated-number{display:inline-flex;flex-direction:column;align-items:stretch;overflow:hidden;position:relative}.link-button{display:block;font-size:15px;line-height:20px;color:#2b5fd9;border:0;background:transparent;padding:0;cursor:pointer}.link-button:hover,.link-button:active{text-decoration:underline}.link-button:disabled{color:#9baec8;cursor:default}.button{background-color:#2b5fd9;border:10px none;border-radius:4px;box-sizing:border-box;color:#fff;cursor:pointer;display:inline-block;font-family:inherit;font-size:14px;font-weight:500;height:36px;letter-spacing:0;line-height:36px;overflow:hidden;padding:0 16px;position:relative;text-align:center;text-transform:uppercase;text-decoration:none;text-overflow:ellipsis;transition:all 100ms ease-in;white-space:nowrap;width:auto}.button:active,.button:focus,.button:hover{background-color:#5680e1;transition:all 200ms ease-out}.button--destructive{transition:none}.button--destructive:active,.button--destructive:focus,.button--destructive:hover{background-color:#df405a;transition:none}.button:disabled,.button.disabled{background-color:#9baec8;cursor:default}.button::-moz-focus-inner{border:0}.button::-moz-focus-inner,.button:focus,.button:active{outline:0 !important}.button.button-primary,.button.button-alternative,.button.button-secondary,.button.button-alternative-2{font-size:16px;line-height:36px;height:auto;text-transform:none;padding:4px 16px}.button.button-alternative{color:#000;background:#9baec8}.button.button-alternative:active,.button.button-alternative:focus,.button.button-alternative:hover{background-color:#a8b9cf}.button.button-alternative-2{background:#606984}.button.button-alternative-2:active,.button.button-alternative-2:focus,.button.button-alternative-2:hover{background-color:#687390}.button.button-secondary{color:#dde3ec;background:transparent;padding:3px 15px;border:1px solid #9baec8}.button.button-secondary:active,.button.button-secondary:focus,.button.button-secondary:hover{border-color:#a8b9cf;color:#eaeef3}.button.button-secondary:disabled{opacity:.5}.button.button--block{display:block;width:100%}.column__wrapper{display:flex;flex:1 1 auto;position:relative}.icon-button{display:inline-block;padding:0;color:#8d9ac2;border:0;border-radius:4px;background:transparent;cursor:pointer;transition:all 100ms ease-in;transition-property:background-color,color}.icon-button:hover,.icon-button:active,.icon-button:focus{color:#a4afce;background-color:rgba(141,154,194,.15);transition:all 200ms ease-out;transition-property:background-color,color}.icon-button:focus{background-color:rgba(141,154,194,.3)}.icon-button.disabled{color:#6274ab;background-color:transparent;cursor:default}.icon-button.active{color:#2b90d9}.icon-button::-moz-focus-inner{border:0}.icon-button::-moz-focus-inner,.icon-button:focus,.icon-button:active{outline:0 !important}.icon-button.inverted{color:#1b1e25}.icon-button.inverted:hover,.icon-button.inverted:active,.icon-button.inverted:focus{color:#0c0d11;background-color:rgba(27,30,37,.15)}.icon-button.inverted:focus{background-color:rgba(27,30,37,.3)}.icon-button.inverted.disabled{color:#2a2e3a;background-color:transparent}.icon-button.inverted.active{color:#2b90d9}.icon-button.inverted.active.disabled{color:#63ade3}.icon-button.overlayed{box-sizing:content-box;background:rgba(0,0,0,.6);color:rgba(255,255,255,.7);border-radius:4px;padding:2px}.icon-button.overlayed:hover{background:rgba(0,0,0,.9)}.text-icon-button{color:#1b1e25;border:0;border-radius:4px;background:transparent;cursor:pointer;font-weight:600;font-size:11px;padding:0 3px;line-height:27px;outline:0;transition:all 100ms ease-in;transition-property:background-color,color}.text-icon-button:hover,.text-icon-button:active,.text-icon-button:focus{color:#0c0d11;background-color:rgba(27,30,37,.15);transition:all 200ms ease-out;transition-property:background-color,color}.text-icon-button:focus{background-color:rgba(27,30,37,.3)}.text-icon-button.disabled{color:#464d60;background-color:transparent;cursor:default}.text-icon-button.active{color:#2b90d9}.text-icon-button::-moz-focus-inner{border:0}.text-icon-button::-moz-focus-inner,.text-icon-button:focus,.text-icon-button:active{outline:0 !important}.dropdown-menu{position:absolute}.invisible{font-size:0;line-height:0;display:inline-block;width:0;height:0;position:absolute}.invisible img,.invisible svg{margin:0 !important;border:0 !important;padding:0 !important;width:0 !important;height:0 !important}.ellipsis::after{content:\"…\"}.compose-form{padding:10px}.compose-form__sensitive-button{padding:10px;padding-top:0;font-size:14px;font-weight:500}.compose-form__sensitive-button.active{color:#2b90d9}.compose-form__sensitive-button input[type=checkbox]{display:none}.compose-form__sensitive-button .checkbox{display:inline-block;position:relative;border:1px solid #9baec8;box-sizing:border-box;width:18px;height:18px;flex:0 0 auto;margin-right:10px;top:-1px;border-radius:4px;vertical-align:middle}.compose-form__sensitive-button .checkbox.active{border-color:#2b90d9;background:#2b90d9}.compose-form .compose-form__warning{color:#000;margin-bottom:10px;background:#9baec8;box-shadow:0 2px 6px rgba(0,0,0,.3);padding:8px 10px;border-radius:4px;font-size:13px;font-weight:400}.compose-form .compose-form__warning strong{color:#000;font-weight:500}.compose-form .compose-form__warning strong:lang(ja){font-weight:700}.compose-form .compose-form__warning strong:lang(ko){font-weight:700}.compose-form .compose-form__warning strong:lang(zh-CN){font-weight:700}.compose-form .compose-form__warning strong:lang(zh-HK){font-weight:700}.compose-form .compose-form__warning strong:lang(zh-TW){font-weight:700}.compose-form .compose-form__warning a{color:#1b1e25;font-weight:500;text-decoration:underline}.compose-form .compose-form__warning a:hover,.compose-form .compose-form__warning a:active,.compose-form .compose-form__warning a:focus{text-decoration:none}.compose-form .emoji-picker-dropdown{position:absolute;top:0;right:0}.compose-form .compose-form__autosuggest-wrapper{position:relative}.compose-form .autosuggest-textarea,.compose-form .autosuggest-input,.compose-form .spoiler-input{position:relative;width:100%}.compose-form .spoiler-input{height:0;transform-origin:bottom;opacity:0}.compose-form .spoiler-input.spoiler-input--visible{height:36px;margin-bottom:11px;opacity:1}.compose-form .autosuggest-textarea__textarea,.compose-form .spoiler-input__input{display:block;box-sizing:border-box;width:100%;margin:0;color:#000;background:#fff;padding:10px;font-family:inherit;font-size:14px;resize:vertical;border:0;outline:0}.compose-form .autosuggest-textarea__textarea::placeholder,.compose-form .spoiler-input__input::placeholder{color:#c2cede}.compose-form .autosuggest-textarea__textarea:focus,.compose-form .spoiler-input__input:focus{outline:0}@media screen and (max-width: 600px){.compose-form .autosuggest-textarea__textarea,.compose-form .spoiler-input__input{font-size:16px}}.compose-form .spoiler-input__input{border-radius:4px}.compose-form .autosuggest-textarea__textarea{min-height:100px;border-radius:4px 4px 0 0;padding-bottom:0;padding-right:32px;resize:none;scrollbar-color:initial}.compose-form .autosuggest-textarea__textarea::-webkit-scrollbar{all:unset}@media screen and (max-width: 600px){.compose-form .autosuggest-textarea__textarea{height:100px !important;resize:vertical}}.compose-form .autosuggest-textarea__suggestions-wrapper{position:relative;height:0}.compose-form .autosuggest-textarea__suggestions{box-sizing:border-box;display:none;position:absolute;top:100%;width:100%;z-index:99;box-shadow:4px 4px 6px rgba(0,0,0,.4);background:#d9e1e8;border-radius:0 0 4px 4px;color:#000;font-size:14px;padding:6px}.compose-form .autosuggest-textarea__suggestions.autosuggest-textarea__suggestions--visible{display:block}.compose-form .autosuggest-textarea__suggestions__item{padding:10px;cursor:pointer;border-radius:4px}.compose-form .autosuggest-textarea__suggestions__item:hover,.compose-form .autosuggest-textarea__suggestions__item:focus,.compose-form .autosuggest-textarea__suggestions__item:active,.compose-form .autosuggest-textarea__suggestions__item.selected{background:#b9c8d5}.compose-form .autosuggest-account,.compose-form .autosuggest-emoji,.compose-form .autosuggest-hashtag{display:flex;flex-direction:row;align-items:center;justify-content:flex-start;line-height:18px;font-size:14px}.compose-form .autosuggest-hashtag{justify-content:space-between}.compose-form .autosuggest-hashtag__name{flex:1 1 auto;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.compose-form .autosuggest-hashtag strong{font-weight:500}.compose-form .autosuggest-hashtag__uses{flex:0 0 auto;text-align:right;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.compose-form .autosuggest-account-icon,.compose-form .autosuggest-emoji img{display:block;margin-right:8px;width:16px;height:16px}.compose-form .autosuggest-account .display-name__account{color:#1b1e25}.compose-form .compose-form__modifiers{color:#000;font-family:inherit;font-size:14px;background:#fff}.compose-form .compose-form__modifiers .compose-form__upload-wrapper{overflow:hidden}.compose-form .compose-form__modifiers .compose-form__uploads-wrapper{display:flex;flex-direction:row;padding:5px;flex-wrap:wrap}.compose-form .compose-form__modifiers .compose-form__upload{flex:1 1 0;min-width:40%;margin:5px}.compose-form .compose-form__modifiers .compose-form__upload__actions{background:linear-gradient(180deg, rgba(0, 0, 0, 0.8) 0, rgba(0, 0, 0, 0.35) 80%, transparent);display:flex;align-items:flex-start;justify-content:space-between;opacity:0;transition:opacity .1s ease}.compose-form .compose-form__modifiers .compose-form__upload__actions .icon-button{flex:0 1 auto;color:#ecf0f4;font-size:14px;font-weight:500;padding:10px;font-family:inherit}.compose-form .compose-form__modifiers .compose-form__upload__actions .icon-button:hover,.compose-form .compose-form__modifiers .compose-form__upload__actions .icon-button:focus,.compose-form .compose-form__modifiers .compose-form__upload__actions .icon-button:active{color:#fff}.compose-form .compose-form__modifiers .compose-form__upload__actions.active{opacity:1}.compose-form .compose-form__modifiers .compose-form__upload-description{position:absolute;z-index:2;bottom:0;left:0;right:0;box-sizing:border-box;background:linear-gradient(0deg, rgba(0, 0, 0, 0.8) 0, rgba(0, 0, 0, 0.35) 80%, transparent);padding:10px;opacity:0;transition:opacity .1s ease}.compose-form .compose-form__modifiers .compose-form__upload-description textarea{background:transparent;color:#ecf0f4;border:0;padding:0;margin:0;width:100%;font-family:inherit;font-size:14px;font-weight:500}.compose-form .compose-form__modifiers .compose-form__upload-description textarea:focus{color:#fff}.compose-form .compose-form__modifiers .compose-form__upload-description textarea::placeholder{opacity:.75;color:#ecf0f4}.compose-form .compose-form__modifiers .compose-form__upload-description.active{opacity:1}.compose-form .compose-form__modifiers .compose-form__upload-thumbnail{border-radius:4px;background-color:#000;background-position:center;background-size:cover;background-repeat:no-repeat;height:140px;width:100%;overflow:hidden}.compose-form .compose-form__buttons-wrapper{padding:10px;background:#ebebeb;border-radius:0 0 4px 4px;display:flex;justify-content:space-between;flex:0 0 auto}.compose-form .compose-form__buttons-wrapper .compose-form__buttons{display:flex}.compose-form .compose-form__buttons-wrapper .compose-form__buttons .compose-form__upload-button-icon{line-height:27px}.compose-form .compose-form__buttons-wrapper .compose-form__buttons .compose-form__sensitive-button{display:none}.compose-form .compose-form__buttons-wrapper .compose-form__buttons .compose-form__sensitive-button.compose-form__sensitive-button--visible{display:block}.compose-form .compose-form__buttons-wrapper .compose-form__buttons .compose-form__sensitive-button .compose-form__sensitive-button__icon{line-height:27px}.compose-form .compose-form__buttons-wrapper .icon-button,.compose-form .compose-form__buttons-wrapper .text-icon-button{box-sizing:content-box;padding:0 3px}.compose-form .compose-form__buttons-wrapper .character-counter__wrapper{align-self:center;margin-right:4px}.compose-form .compose-form__publish{display:flex;justify-content:flex-end;min-width:0;flex:0 0 auto}.compose-form .compose-form__publish .compose-form__publish-button-wrapper{overflow:hidden;padding-top:10px}.character-counter{cursor:default;font-family:\"mastodon-font-sans-serif\",sans-serif;font-size:14px;font-weight:600;color:#1b1e25}.character-counter.character-counter--over{color:#ff5050}.no-reduce-motion .spoiler-input{transition:height .4s ease,opacity .4s ease}.emojione{font-size:inherit;vertical-align:middle;object-fit:contain;margin:-0.2ex .15em .2ex;width:16px;height:16px}.emojione img{width:auto}.reply-indicator{border-radius:4px;margin-bottom:10px;background:#9baec8;padding:10px;min-height:23px;overflow-y:auto;flex:0 2 auto}.reply-indicator__header{margin-bottom:5px;overflow:hidden}.reply-indicator__cancel{float:right;line-height:24px}.reply-indicator__display-name{color:#000;display:block;max-width:100%;line-height:24px;overflow:hidden;padding-right:25px;text-decoration:none}.reply-indicator__display-avatar{float:left;margin-right:5px}.status__content--with-action{cursor:pointer}.status__content,.reply-indicator__content{position:relative;font-size:15px;line-height:20px;word-wrap:break-word;font-weight:400;overflow:hidden;text-overflow:ellipsis;padding-top:2px;color:#fff}.status__content:focus,.reply-indicator__content:focus{outline:0}.status__content.status__content--with-spoiler,.reply-indicator__content.status__content--with-spoiler{white-space:normal}.status__content.status__content--with-spoiler .status__content__text,.reply-indicator__content.status__content--with-spoiler .status__content__text{white-space:pre-wrap}.status__content .emojione,.reply-indicator__content .emojione{width:20px;height:20px;margin:-3px 0 0}.status__content img,.reply-indicator__content img{max-width:100%;max-height:400px;object-fit:contain}.status__content p,.reply-indicator__content p{margin-bottom:20px;white-space:pre-wrap}.status__content p:last-child,.reply-indicator__content p:last-child{margin-bottom:0}.status__content a,.reply-indicator__content a{color:#d8a070;text-decoration:none}.status__content a:hover,.reply-indicator__content a:hover{text-decoration:underline}.status__content a:hover .fa,.reply-indicator__content a:hover .fa{color:#dae1ea}.status__content a.mention:hover,.reply-indicator__content a.mention:hover{text-decoration:none}.status__content a.mention:hover span,.reply-indicator__content a.mention:hover span{text-decoration:underline}.status__content a .fa,.reply-indicator__content a .fa{color:#c2cede}.status__content a.unhandled-link,.reply-indicator__content a.unhandled-link{color:#4e79df}.status__content .status__content__spoiler-link,.reply-indicator__content .status__content__spoiler-link{background:#8d9ac2}.status__content .status__content__spoiler-link:hover,.reply-indicator__content .status__content__spoiler-link:hover{background:#a4afce;text-decoration:none}.status__content .status__content__spoiler-link::-moz-focus-inner,.reply-indicator__content .status__content__spoiler-link::-moz-focus-inner{border:0}.status__content .status__content__spoiler-link::-moz-focus-inner,.status__content .status__content__spoiler-link:focus,.status__content .status__content__spoiler-link:active,.reply-indicator__content .status__content__spoiler-link::-moz-focus-inner,.reply-indicator__content .status__content__spoiler-link:focus,.reply-indicator__content .status__content__spoiler-link:active{outline:0 !important}.status__content .status__content__text,.reply-indicator__content .status__content__text{display:none}.status__content .status__content__text.status__content__text--visible,.reply-indicator__content .status__content__text.status__content__text--visible{display:block}.announcements__item__content{word-wrap:break-word;overflow-y:auto}.announcements__item__content .emojione{width:20px;height:20px;margin:-3px 0 0}.announcements__item__content p{margin-bottom:10px;white-space:pre-wrap}.announcements__item__content p:last-child{margin-bottom:0}.announcements__item__content a{color:#ecf0f4;text-decoration:none}.announcements__item__content a:hover{text-decoration:underline}.announcements__item__content a.mention:hover{text-decoration:none}.announcements__item__content a.mention:hover span{text-decoration:underline}.announcements__item__content a.unhandled-link{color:#4e79df}.status__content.status__content--collapsed{max-height:300px}.status__content__read-more-button{display:block;font-size:15px;line-height:20px;color:#4e79df;border:0;background:transparent;padding:0;padding-top:8px;text-decoration:none}.status__content__read-more-button:hover,.status__content__read-more-button:active{text-decoration:underline}.status__content__spoiler-link{display:inline-block;border-radius:2px;background:transparent;border:0;color:#000;font-weight:700;font-size:11px;padding:0 6px;text-transform:uppercase;line-height:20px;cursor:pointer;vertical-align:middle}.status__wrapper--filtered{color:#c2cede;border:0;font-size:inherit;text-align:center;line-height:inherit;margin:0;padding:15px;box-sizing:border-box;width:100%;clear:both;border-bottom:1px solid #393f4f}.status__prepend-icon-wrapper{left:-26px;position:absolute}.focusable:focus{outline:0;background:#313543}.focusable:focus .status.status-direct{background:#42485a}.focusable:focus .status.status-direct.muted{background:transparent}.focusable:focus .detailed-status,.focusable:focus .detailed-status__action-bar{background:#393f4f}.status{padding:8px 10px;padding-left:68px;position:relative;min-height:54px;border-bottom:1px solid #393f4f;cursor:default;opacity:1;animation:fade 150ms linear}@supports(-ms-overflow-style: -ms-autohiding-scrollbar){.status{padding-right:26px}}@keyframes fade{0%{opacity:0}100%{opacity:1}}.status .video-player,.status .audio-player{margin-top:8px}.status.status-direct:not(.read){background:#393f4f;border-bottom-color:#42485a}.status.light .status__relative-time{color:#364861}.status.light .status__display-name{color:#000}.status.light .display-name{color:#364861}.status.light .display-name strong{color:#000}.status.light .status__content{color:#000}.status.light .status__content a{color:#2b90d9}.status.light .status__content a.status__content__spoiler-link{color:#fff;background:#9baec8}.status.light .status__content a.status__content__spoiler-link:hover{background:#b5c3d6}.notification-favourite .status.status-direct{background:transparent}.notification-favourite .status.status-direct .icon-button.disabled{color:#b8c0d9}.status__relative-time,.notification__relative_time{color:#c2cede;float:right;font-size:14px}.status__display-name{color:#c2cede}.status__info .status__display-name{display:block;max-width:100%;padding-right:25px}.status__info{font-size:15px}.status-check-box{border-bottom:1px solid #d9e1e8;display:flex}.status-check-box .status-check-box__status{margin:10px 0 10px 10px;flex:1;overflow:hidden}.status-check-box .status-check-box__status .media-gallery{max-width:250px}.status-check-box .status-check-box__status .status__content{padding:0;white-space:normal}.status-check-box .status-check-box__status .video-player,.status-check-box .status-check-box__status .audio-player{margin-top:8px;max-width:250px}.status-check-box .status-check-box__status .media-gallery__item-thumbnail{cursor:default}.status-check-box-toggle{align-items:center;display:flex;flex:0 0 auto;justify-content:center;padding:10px}.status__prepend{margin-left:68px;color:#c2cede;padding:8px 0;padding-bottom:2px;font-size:14px;position:relative}.status__prepend .status__display-name strong{color:#c2cede}.status__prepend>span{display:block;overflow:hidden;text-overflow:ellipsis}.status__action-bar{align-items:center;display:flex;margin-top:8px}.status__action-bar__counter{display:inline-flex;margin-right:11px;align-items:center}.status__action-bar__counter .status__action-bar-button{margin-right:4px}.status__action-bar__counter__label{display:inline-block;width:14px;font-size:12px;font-weight:500;color:#8d9ac2}.status__action-bar-button{margin-right:18px}.status__action-bar-dropdown{height:23.15px;width:23.15px}.detailed-status__action-bar-dropdown{flex:1 1 auto;display:flex;align-items:center;justify-content:center;position:relative}.detailed-status{background:#313543;padding:14px 10px}.detailed-status--flex{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-start}.detailed-status--flex .status__content,.detailed-status--flex .detailed-status__meta{flex:100%}.detailed-status .status__content{font-size:19px;line-height:24px}.detailed-status .status__content .emojione{width:24px;height:24px;margin:-1px 0 0}.detailed-status .status__content .status__content__spoiler-link{line-height:24px;margin:-1px 0 0}.detailed-status .video-player,.detailed-status .audio-player{margin-top:8px}.detailed-status__meta{margin-top:15px;color:#c2cede;font-size:14px;line-height:18px}.detailed-status__action-bar{background:#313543;border-top:1px solid #393f4f;border-bottom:1px solid #393f4f;display:flex;flex-direction:row;padding:10px 0}.detailed-status__link{color:inherit;text-decoration:none}.detailed-status__favorites,.detailed-status__reblogs{display:inline-block;font-weight:500;font-size:12px;margin-left:6px}.reply-indicator__content{color:#000;font-size:14px}.reply-indicator__content a{color:#1b1e25}.domain{padding:10px;border-bottom:1px solid #393f4f}.domain .domain__domain-name{flex:1 1 auto;display:block;color:#fff;text-decoration:none;font-size:14px;font-weight:500}.domain__wrapper{display:flex}.domain_buttons{height:18px;padding:10px;white-space:nowrap}.account{padding:10px;border-bottom:1px solid #393f4f}.account.compact{padding:0;border-bottom:0}.account.compact .account__avatar-wrapper{margin-left:0}.account .account__display-name{flex:1 1 auto;display:block;color:#dde3ec;overflow:hidden;text-decoration:none;font-size:14px}.account__wrapper{display:flex}.account__avatar-wrapper{float:left;margin-left:12px;margin-right:12px}.account__avatar{border-radius:4px;background:transparent no-repeat;background-position:50%;background-clip:padding-box;position:relative}.account__avatar-inline{display:inline-block;vertical-align:middle;margin-right:5px}.account__avatar-composite{border-radius:4px;background:transparent no-repeat;background-position:50%;background-clip:padding-box;border-radius:50%;overflow:hidden;position:relative}.account__avatar-composite>div{float:left;position:relative;box-sizing:border-box}.account__avatar-composite__label{display:block;position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);color:#fff;text-shadow:1px 1px 2px #000;font-weight:700;font-size:15px}a .account__avatar{cursor:pointer}.account__avatar-overlay{width:48px;height:48px;background-size:48px 48px}.account__avatar-overlay-base{border-radius:4px;background:transparent no-repeat;background-position:50%;background-clip:padding-box;width:36px;height:36px;background-size:36px 36px}.account__avatar-overlay-overlay{border-radius:4px;background:transparent no-repeat;background-position:50%;background-clip:padding-box;width:24px;height:24px;background-size:24px 24px;position:absolute;bottom:0;right:0;z-index:1}.account__relationship{height:18px;padding:10px;white-space:nowrap}.account__disclaimer{padding:10px;border-top:1px solid #393f4f;color:#c2cede}.account__disclaimer strong{font-weight:500}.account__disclaimer strong:lang(ja){font-weight:700}.account__disclaimer strong:lang(ko){font-weight:700}.account__disclaimer strong:lang(zh-CN){font-weight:700}.account__disclaimer strong:lang(zh-HK){font-weight:700}.account__disclaimer strong:lang(zh-TW){font-weight:700}.account__disclaimer a{font-weight:500;color:inherit;text-decoration:underline}.account__disclaimer a:hover,.account__disclaimer a:focus,.account__disclaimer a:active{text-decoration:none}.account__action-bar{border-top:1px solid #393f4f;border-bottom:1px solid #393f4f;line-height:36px;overflow:hidden;flex:0 0 auto;display:flex}.account__action-bar-dropdown{padding:10px}.account__action-bar-dropdown .icon-button{vertical-align:middle}.account__action-bar-dropdown .dropdown--active .dropdown__content.dropdown__right{left:6px;right:initial}.account__action-bar-dropdown .dropdown--active::after{bottom:initial;margin-left:11px;margin-top:-7px;right:initial}.account__action-bar-links{display:flex;flex:1 1 auto;line-height:18px;text-align:center}.account__action-bar__tab{text-decoration:none;overflow:hidden;flex:0 1 100%;border-right:1px solid #393f4f;padding:10px 0;border-bottom:4px solid transparent}.account__action-bar__tab.active{border-bottom:4px solid #2b5fd9}.account__action-bar__tab>span{display:block;text-transform:uppercase;font-size:11px;color:#dde3ec}.account__action-bar__tab strong{display:block;font-size:15px;font-weight:500;color:#fff}.account__action-bar__tab strong:lang(ja){font-weight:700}.account__action-bar__tab strong:lang(ko){font-weight:700}.account__action-bar__tab strong:lang(zh-CN){font-weight:700}.account__action-bar__tab strong:lang(zh-HK){font-weight:700}.account__action-bar__tab strong:lang(zh-TW){font-weight:700}.account-authorize{padding:14px 10px}.account-authorize .detailed-status__display-name{display:block;margin-bottom:15px;overflow:hidden}.account-authorize__avatar{float:left;margin-right:10px}.status__display-name,.status__relative-time,.detailed-status__display-name,.detailed-status__datetime,.detailed-status__application,.account__display-name{text-decoration:none}.status__display-name strong,.account__display-name strong{color:#fff}.muted .emojione{opacity:.5}.status__display-name:hover strong,.reply-indicator__display-name:hover strong,.detailed-status__display-name:hover strong,a.account__display-name:hover strong{text-decoration:underline}.account__display-name strong{display:block;overflow:hidden;text-overflow:ellipsis}.detailed-status__application,.detailed-status__datetime{color:inherit}.detailed-status .button.logo-button{margin-bottom:15px}.detailed-status__display-name{color:#ecf0f4;display:block;line-height:24px;margin-bottom:15px;overflow:hidden}.detailed-status__display-name strong,.detailed-status__display-name span{display:block;text-overflow:ellipsis;overflow:hidden}.detailed-status__display-name strong{font-size:16px;color:#fff}.detailed-status__display-avatar{float:left;margin-right:10px}.status__avatar{height:48px;left:10px;position:absolute;top:10px;width:48px}.status__expand{width:68px;position:absolute;left:0;top:0;height:100%;cursor:pointer}.muted .status__content,.muted .status__content p,.muted .status__content a{color:#c2cede}.muted .status__display-name strong{color:#c2cede}.muted .status__avatar{opacity:.5}.muted a.status__content__spoiler-link{background:#606984;color:#000}.muted a.status__content__spoiler-link:hover{background:#707b97;text-decoration:none}.notification__message{margin:0 10px 0 68px;padding:8px 0 0;cursor:default;color:#dde3ec;font-size:15px;line-height:22px;position:relative}.notification__message .fa{color:#2b90d9}.notification__message>span{display:inline;overflow:hidden;text-overflow:ellipsis}.notification__favourite-icon-wrapper{left:-26px;position:absolute}.notification__favourite-icon-wrapper .star-icon{color:#ca8f04}.star-icon.active{color:#ca8f04}.bookmark-icon.active{color:#ff5050}.no-reduce-motion .icon-button.star-icon.activate>.fa-star{animation:spring-rotate-in 1s linear}.no-reduce-motion .icon-button.star-icon.deactivate>.fa-star{animation:spring-rotate-out 1s linear}.notification__display-name{color:inherit;font-weight:500;text-decoration:none}.notification__display-name:hover{color:#fff;text-decoration:underline}.notification__relative_time{float:right}.display-name{display:block;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.display-name__html{font-weight:500}.display-name__account{font-size:14px}.status__relative-time:hover,.detailed-status__datetime:hover{text-decoration:underline}.image-loader{position:relative;width:100%;height:100%;display:flex;align-items:center;justify-content:center;flex-direction:column}.image-loader .image-loader__preview-canvas{max-width:100%;max-height:80%;background:url(\"~images/void.png\") repeat;object-fit:contain}.image-loader .loading-bar{position:relative}.image-loader.image-loader--amorphous .image-loader__preview-canvas{display:none}.zoomable-image{position:relative;width:100%;height:100%;display:flex;align-items:center;justify-content:center}.zoomable-image img{max-width:100%;max-height:80%;width:auto;height:auto;object-fit:contain}.navigation-bar{padding:10px;display:flex;align-items:center;flex-shrink:0;cursor:default;color:#dde3ec}.navigation-bar strong{color:#ecf0f4}.navigation-bar a{color:inherit}.navigation-bar .permalink{text-decoration:none}.navigation-bar .navigation-bar__actions{position:relative}.navigation-bar .navigation-bar__actions .icon-button.close{position:absolute;pointer-events:none;transform:scale(0, 1) translate(-100%, 0);opacity:0}.navigation-bar .navigation-bar__actions .compose__action-bar .icon-button{pointer-events:auto;transform:scale(1, 1) translate(0, 0);opacity:1}.navigation-bar__profile{flex:1 1 auto;margin-left:8px;line-height:20px;margin-top:-1px;overflow:hidden}.navigation-bar__profile-account{display:block;font-weight:500;overflow:hidden;text-overflow:ellipsis}.navigation-bar__profile-edit{color:inherit;text-decoration:none}.dropdown{display:inline-block}.dropdown__content{display:none;position:absolute}.dropdown-menu__separator{border-bottom:1px solid #c0cdd9;margin:5px 7px 6px;height:0}.dropdown-menu{background:#d9e1e8;padding:4px 0;border-radius:4px;box-shadow:2px 4px 15px rgba(0,0,0,.4);z-index:9999}.dropdown-menu ul{list-style:none}.dropdown-menu.left{transform-origin:100% 50%}.dropdown-menu.top{transform-origin:50% 100%}.dropdown-menu.bottom{transform-origin:50% 0}.dropdown-menu.right{transform-origin:0 50%}.dropdown-menu__arrow{position:absolute;width:0;height:0;border:0 solid transparent}.dropdown-menu__arrow.left{right:-5px;margin-top:-5px;border-width:5px 0 5px 5px;border-left-color:#d9e1e8}.dropdown-menu__arrow.top{bottom:-5px;margin-left:-7px;border-width:5px 7px 0;border-top-color:#d9e1e8}.dropdown-menu__arrow.bottom{top:-5px;margin-left:-7px;border-width:0 7px 5px;border-bottom-color:#d9e1e8}.dropdown-menu__arrow.right{left:-5px;margin-top:-5px;border-width:5px 5px 5px 0;border-right-color:#d9e1e8}.dropdown-menu__item a{font-size:13px;line-height:18px;display:block;padding:4px 14px;box-sizing:border-box;text-decoration:none;background:#d9e1e8;color:#000;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dropdown-menu__item a:focus,.dropdown-menu__item a:hover,.dropdown-menu__item a:active{background:#2b5fd9;color:#ecf0f4;outline:0}.dropdown--active .dropdown__content{display:block;line-height:18px;max-width:311px;right:0;text-align:left;z-index:9999}.dropdown--active .dropdown__content>ul{list-style:none;background:#d9e1e8;padding:4px 0;border-radius:4px;box-shadow:0 0 15px rgba(0,0,0,.4);min-width:140px;position:relative}.dropdown--active .dropdown__content.dropdown__right{right:0}.dropdown--active .dropdown__content.dropdown__left>ul{left:-98px}.dropdown--active .dropdown__content>ul>li>a{font-size:13px;line-height:18px;display:block;padding:4px 14px;box-sizing:border-box;text-decoration:none;background:#d9e1e8;color:#000;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dropdown--active .dropdown__content>ul>li>a:focus{outline:0}.dropdown--active .dropdown__content>ul>li>a:hover{background:#2b5fd9;color:#ecf0f4}.dropdown__icon{vertical-align:middle}.columns-area{display:flex;flex:1 1 auto;flex-direction:row;justify-content:flex-start;overflow-x:auto;position:relative}.columns-area.unscrollable{overflow-x:hidden}.columns-area__panels{display:flex;justify-content:center;width:100%;height:100%;min-height:100vh}.columns-area__panels__pane{height:100%;overflow:hidden;pointer-events:none;display:flex;justify-content:flex-end;min-width:285px}.columns-area__panels__pane--start{justify-content:flex-start}.columns-area__panels__pane__inner{position:fixed;width:285px;pointer-events:auto;height:100%}.columns-area__panels__main{box-sizing:border-box;width:100%;max-width:600px;flex:0 0 auto;display:flex;flex-direction:column}@media screen and (min-width: 415px){.columns-area__panels__main{padding:0 10px}}.tabs-bar__wrapper{background:#17191f;position:sticky;top:0;z-index:2;padding-top:0}@media screen and (min-width: 415px){.tabs-bar__wrapper{padding-top:10px}}.tabs-bar__wrapper .tabs-bar{margin-bottom:0}@media screen and (min-width: 415px){.tabs-bar__wrapper .tabs-bar{margin-bottom:10px}}.react-swipeable-view-container,.react-swipeable-view-container .columns-area,.react-swipeable-view-container .drawer,.react-swipeable-view-container .column{height:100%}.react-swipeable-view-container>*{display:flex;align-items:center;justify-content:center;height:100%}.column{width:350px;position:relative;box-sizing:border-box;display:flex;flex-direction:column}.column>.scrollable{background:#282c37;border-bottom-left-radius:2px;border-bottom-right-radius:2px}.ui{flex:0 0 auto;display:flex;flex-direction:column;width:100%;height:100%}.drawer{width:330px;box-sizing:border-box;display:flex;flex-direction:column;overflow-y:hidden}.drawer__tab{display:block;flex:1 1 auto;padding:15px 5px 13px;color:#dde3ec;text-decoration:none;text-align:center;font-size:16px;border-bottom:2px solid transparent}.column,.drawer{flex:1 1 auto;overflow:hidden}@media screen and (min-width: 631px){.columns-area{padding:0}.column,.drawer{flex:0 0 auto;padding:10px;padding-left:5px;padding-right:5px}.column:first-child,.drawer:first-child{padding-left:10px}.column:last-child,.drawer:last-child{padding-right:10px}.columns-area>div .column,.columns-area>div .drawer{padding-left:5px;padding-right:5px}}.tabs-bar{box-sizing:border-box;display:flex;background:#393f4f;flex:0 0 auto;overflow-y:auto}.tabs-bar__link{display:block;flex:1 1 auto;padding:15px 10px;padding-bottom:13px;color:#fff;text-decoration:none;text-align:center;font-size:14px;font-weight:500;border-bottom:2px solid #393f4f;transition:all 50ms linear;transition-property:border-bottom,background,color}.tabs-bar__link .fa{font-weight:400;font-size:16px}@media screen and (min-width: 631px){.tabs-bar__link:hover,.tabs-bar__link:focus,.tabs-bar__link:active{background:#464d60;border-bottom-color:#464d60}}.tabs-bar__link.active{border-bottom:2px solid #2b90d9;color:#2b90d9}.tabs-bar__link span{margin-left:5px;display:none}@media screen and (min-width: 600px){.tabs-bar__link span{display:inline}}.columns-area--mobile{flex-direction:column;width:100%;height:100%;margin:0 auto}.columns-area--mobile .column,.columns-area--mobile .drawer{width:100%;height:100%;padding:0}.columns-area--mobile .directory__list{display:grid;grid-gap:10px;grid-template-columns:minmax(0, 50%) minmax(0, 50%)}@media screen and (max-width: 415px){.columns-area--mobile .directory__list{display:block}}.columns-area--mobile .directory__card{margin-bottom:0}.columns-area--mobile .filter-form{display:flex}.columns-area--mobile .autosuggest-textarea__textarea{font-size:16px}.columns-area--mobile .search__input{line-height:18px;font-size:16px;padding:15px;padding-right:30px}.columns-area--mobile .search__icon .fa{top:15px}.columns-area--mobile .scrollable{overflow:visible}@supports(display: grid){.columns-area--mobile .scrollable{contain:content}}@media screen and (min-width: 415px){.columns-area--mobile{padding:10px 0;padding-top:0}}@media screen and (min-width: 630px){.columns-area--mobile .detailed-status{padding:15px}.columns-area--mobile .detailed-status .media-gallery,.columns-area--mobile .detailed-status .video-player,.columns-area--mobile .detailed-status .audio-player{margin-top:15px}.columns-area--mobile .account__header__bar{padding:5px 10px}.columns-area--mobile .navigation-bar,.columns-area--mobile .compose-form{padding:15px}.columns-area--mobile .compose-form .compose-form__publish .compose-form__publish-button-wrapper{padding-top:15px}.columns-area--mobile .status{padding:15px 15px 15px 78px;min-height:50px}.columns-area--mobile .status__avatar{left:15px;top:17px}.columns-area--mobile .status__content{padding-top:5px}.columns-area--mobile .status__prepend{margin-left:78px;padding-top:15px}.columns-area--mobile .status__prepend-icon-wrapper{left:-32px}.columns-area--mobile .status .media-gallery,.columns-area--mobile .status__action-bar,.columns-area--mobile .status .video-player,.columns-area--mobile .status .audio-player{margin-top:10px}.columns-area--mobile .account{padding:15px 10px}.columns-area--mobile .account__header__bio{margin:0 -10px}.columns-area--mobile .notification__message{margin-left:78px;padding-top:15px}.columns-area--mobile .notification__favourite-icon-wrapper{left:-32px}.columns-area--mobile .notification .status{padding-top:8px}.columns-area--mobile .notification .account{padding-top:8px}.columns-area--mobile .notification .account__avatar-wrapper{margin-left:17px;margin-right:15px}}.floating-action-button{position:fixed;display:flex;justify-content:center;align-items:center;width:3.9375rem;height:3.9375rem;bottom:1.3125rem;right:1.3125rem;background:#2558d0;color:#fff;border-radius:50%;font-size:21px;line-height:21px;text-decoration:none;box-shadow:2px 3px 9px rgba(0,0,0,.4)}.floating-action-button:hover,.floating-action-button:focus,.floating-action-button:active{background:#4976de}@media screen and (min-width: 415px){.tabs-bar{width:100%}.react-swipeable-view-container .columns-area--mobile{height:calc(100% - 10px) !important}.getting-started__wrapper,.getting-started__trends,.search{margin-bottom:10px}.getting-started__panel{margin:10px 0}.column,.drawer{min-width:330px}}@media screen and (max-width: 895px){.columns-area__panels__pane--compositional{display:none}}@media screen and (min-width: 895px){.floating-action-button,.tabs-bar__link.optional{display:none}.search-page .search{display:none}}@media screen and (max-width: 1190px){.columns-area__panels__pane--navigational{display:none}}@media screen and (min-width: 1190px){.tabs-bar{display:none}}.icon-with-badge{position:relative}.icon-with-badge__badge{position:absolute;left:9px;top:-13px;background:#2b5fd9;border:2px solid #393f4f;padding:1px 6px;border-radius:6px;font-size:10px;font-weight:500;line-height:14px;color:#fff}.column-link--transparent .icon-with-badge__badge{border-color:#17191f}.compose-panel{width:285px;margin-top:10px;display:flex;flex-direction:column;height:calc(100% - 10px);overflow-y:hidden}.compose-panel .navigation-bar{padding-top:20px;padding-bottom:20px;flex:0 1 48px;min-height:20px}.compose-panel .flex-spacer{background:transparent}.compose-panel .compose-form{flex:1;overflow-y:hidden;display:flex;flex-direction:column;min-height:310px;padding-bottom:71px;margin-bottom:-71px}.compose-panel .compose-form__autosuggest-wrapper{overflow-y:auto;background-color:#fff;border-radius:4px 4px 0 0;flex:0 1 auto}.compose-panel .autosuggest-textarea__textarea{overflow-y:hidden}.compose-panel .compose-form__upload-thumbnail{height:80px}.navigation-panel{margin-top:10px;margin-bottom:10px;height:calc(100% - 20px);overflow-y:auto;display:flex;flex-direction:column}.navigation-panel>a{flex:0 0 auto}.navigation-panel hr{flex:0 0 auto;border:0;background:transparent;border-top:1px solid #313543;margin:10px 0}.navigation-panel .flex-spacer{background:transparent}.drawer__pager{box-sizing:border-box;padding:0;flex-grow:1;position:relative;overflow:hidden;display:flex}.drawer__inner{position:absolute;top:0;left:0;background:#444b5d;box-sizing:border-box;padding:0;display:flex;flex-direction:column;overflow:hidden;overflow-y:auto;width:100%;height:100%;border-radius:2px}.drawer__inner.darker{background:#282c37}.drawer__inner__mastodon{background:#444b5d url('data:image/svg+xml;utf8,') no-repeat bottom/100% auto;flex:1;min-height:47px;display:none}.drawer__inner__mastodon>img{display:block;object-fit:contain;object-position:bottom left;width:85%;height:100%;pointer-events:none;user-drag:none;user-select:none}@media screen and (min-height: 640px){.drawer__inner__mastodon{display:block}}.pseudo-drawer{background:#444b5d;font-size:13px;text-align:left}.drawer__header{flex:0 0 auto;font-size:16px;background:#393f4f;margin-bottom:10px;display:flex;flex-direction:row;border-radius:2px}.drawer__header a{transition:background 100ms ease-in}.drawer__header a:hover{background:#2e3340;transition:background 200ms ease-out}.scrollable{overflow-y:scroll;overflow-x:hidden;flex:1 1 auto;-webkit-overflow-scrolling:touch}.scrollable.optionally-scrollable{overflow-y:auto}@supports(display: grid){.scrollable{contain:strict}}.scrollable--flex{display:flex;flex-direction:column}.scrollable__append{flex:1 1 auto;position:relative;min-height:120px}@supports(display: grid){.scrollable.fullscreen{contain:none}}.column-back-button{box-sizing:border-box;width:100%;background:#313543;color:#2b90d9;cursor:pointer;flex:0 0 auto;font-size:16px;line-height:inherit;border:0;text-align:unset;padding:15px;margin:0;z-index:3;outline:0}.column-back-button:hover{text-decoration:underline}.column-header__back-button{background:#313543;border:0;font-family:inherit;color:#2b90d9;cursor:pointer;white-space:nowrap;font-size:16px;padding:0 5px 0 0;z-index:3}.column-header__back-button:hover{text-decoration:underline}.column-header__back-button:last-child{padding:0 15px 0 0}.column-back-button__icon{display:inline-block;margin-right:5px}.column-back-button--slim{position:relative}.column-back-button--slim-button{cursor:pointer;flex:0 0 auto;font-size:16px;padding:15px;position:absolute;right:0;top:-48px}.react-toggle{display:inline-block;position:relative;cursor:pointer;background-color:transparent;border:0;padding:0;user-select:none;-webkit-tap-highlight-color:rgba(0,0,0,0);-webkit-tap-highlight-color:transparent}.react-toggle-screenreader-only{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.react-toggle--disabled{cursor:not-allowed;opacity:.5;transition:opacity .25s}.react-toggle-track{width:50px;height:24px;padding:0;border-radius:30px;background-color:#282c37;transition:background-color .2s ease}.react-toggle:hover:not(.react-toggle--disabled) .react-toggle-track{background-color:#131419}.react-toggle--checked .react-toggle-track{background-color:#2b5fd9}.react-toggle--checked:hover:not(.react-toggle--disabled) .react-toggle-track{background-color:#5680e1}.react-toggle-track-check{position:absolute;width:14px;height:10px;top:0;bottom:0;margin-top:auto;margin-bottom:auto;line-height:0;left:8px;opacity:0;transition:opacity .25s ease}.react-toggle--checked .react-toggle-track-check{opacity:1;transition:opacity .25s ease}.react-toggle-track-x{position:absolute;width:10px;height:10px;top:0;bottom:0;margin-top:auto;margin-bottom:auto;line-height:0;right:10px;opacity:1;transition:opacity .25s ease}.react-toggle--checked .react-toggle-track-x{opacity:0}.react-toggle-thumb{position:absolute;top:1px;left:1px;width:22px;height:22px;border:1px solid #282c37;border-radius:50%;background-color:#fafafa;box-sizing:border-box;transition:all .25s ease;transition-property:border-color,left}.react-toggle--checked .react-toggle-thumb{left:27px;border-color:#2b5fd9}.column-link{background:#393f4f;color:#fff;display:block;font-size:16px;padding:15px;text-decoration:none}.column-link:hover,.column-link:focus,.column-link:active{background:#404657}.column-link:focus{outline:0}.column-link--transparent{background:transparent;color:#d9e1e8}.column-link--transparent:hover,.column-link--transparent:focus,.column-link--transparent:active{background:transparent;color:#fff}.column-link--transparent.active{color:#2b5fd9}.column-link__icon{display:inline-block;margin-right:5px}.column-link__badge{display:inline-block;border-radius:4px;font-size:12px;line-height:19px;font-weight:500;background:#282c37;padding:4px 8px;margin:-6px 10px}.column-subheading{background:#282c37;color:#c2cede;padding:8px 20px;font-size:12px;font-weight:500;text-transform:uppercase;cursor:default}.getting-started__wrapper,.getting-started,.flex-spacer{background:#282c37}.flex-spacer{flex:1 1 auto}.getting-started{color:#c2cede;overflow:auto;border-bottom-left-radius:2px;border-bottom-right-radius:2px}.getting-started__wrapper,.getting-started__panel,.getting-started__footer{height:min-content}.getting-started__panel,.getting-started__footer{padding:10px;padding-top:20px;flex-grow:0}.getting-started__panel ul,.getting-started__footer ul{margin-bottom:10px}.getting-started__panel ul li,.getting-started__footer ul li{display:inline}.getting-started__panel p,.getting-started__footer p{font-size:13px}.getting-started__panel p a,.getting-started__footer p a{color:#c2cede;text-decoration:underline}.getting-started__panel a,.getting-started__footer a{text-decoration:none;color:#dde3ec}.getting-started__panel a:hover,.getting-started__panel a:focus,.getting-started__panel a:active,.getting-started__footer a:hover,.getting-started__footer a:focus,.getting-started__footer a:active{text-decoration:underline}.getting-started__wrapper,.getting-started__footer{color:#c2cede}.getting-started__trends{flex:0 1 auto;opacity:1;animation:fade 150ms linear;margin-top:10px}.getting-started__trends h4{font-size:12px;text-transform:uppercase;color:#dde3ec;padding:10px;font-weight:500;border-bottom:1px solid #393f4f}@media screen and (max-height: 810px){.getting-started__trends .trends__item:nth-child(3){display:none}}@media screen and (max-height: 720px){.getting-started__trends .trends__item:nth-child(2){display:none}}@media screen and (max-height: 670px){.getting-started__trends{display:none}}.getting-started__trends .trends__item{border-bottom:0;padding:10px}.getting-started__trends .trends__item__current{color:#dde3ec}.keyboard-shortcuts{padding:8px 0 0;overflow:hidden}.keyboard-shortcuts thead{position:absolute;left:-9999px}.keyboard-shortcuts td{padding:0 10px 8px}.keyboard-shortcuts kbd{display:inline-block;padding:3px 5px;background-color:#393f4f;border:1px solid #1f232b}.setting-text{display:block;box-sizing:border-box;width:100%;margin:0;color:#000;background:#fff;padding:10px;font-family:inherit;font-size:14px;resize:vertical;border:0;outline:0;border-radius:4px}.setting-text:focus{outline:0}@media screen and (max-width: 600px){.setting-text{font-size:16px}}.no-reduce-motion button.icon-button i.fa-retweet{background-position:0 0;height:19px;transition:background-position .9s steps(10);transition-duration:0s;vertical-align:middle;width:22px}.no-reduce-motion button.icon-button i.fa-retweet::before{display:none !important}.no-reduce-motion button.icon-button.active i.fa-retweet{transition-duration:.9s;background-position:0 100%}.reduce-motion button.icon-button i.fa-retweet{color:#8d9ac2;transition:color 100ms ease-in}.reduce-motion button.icon-button.active i.fa-retweet{color:#2b90d9}.status-card{display:flex;font-size:14px;border:1px solid #393f4f;border-radius:4px;color:#c2cede;margin-top:14px;text-decoration:none;overflow:hidden}.status-card__actions{bottom:0;left:0;position:absolute;right:0;top:0;display:flex;justify-content:center;align-items:center}.status-card__actions>div{background:rgba(0,0,0,.6);border-radius:8px;padding:12px 9px;flex:0 0 auto;display:flex;justify-content:center;align-items:center}.status-card__actions button,.status-card__actions a{display:inline;color:#ecf0f4;background:transparent;border:0;padding:0 8px;text-decoration:none;font-size:18px;line-height:18px}.status-card__actions button:hover,.status-card__actions button:active,.status-card__actions button:focus,.status-card__actions a:hover,.status-card__actions a:active,.status-card__actions a:focus{color:#fff}.status-card__actions a{font-size:19px;position:relative;bottom:-1px}a.status-card{cursor:pointer}a.status-card:hover{background:#393f4f}.status-card-photo{cursor:zoom-in;display:block;text-decoration:none;width:100%;height:auto;margin:0}.status-card-video iframe{width:100%;height:100%}.status-card__title{display:block;font-weight:500;margin-bottom:5px;color:#dde3ec;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-decoration:none}.status-card__content{flex:1 1 auto;overflow:hidden;padding:14px 14px 14px 8px}.status-card__description{color:#dde3ec}.status-card__host{display:block;margin-top:5px;font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.status-card__image{flex:0 0 100px;background:#393f4f;position:relative}.status-card__image>.fa{font-size:21px;position:absolute;transform-origin:50% 50%;top:50%;left:50%;transform:translate(-50%, -50%)}.status-card.horizontal{display:block}.status-card.horizontal .status-card__image{width:100%}.status-card.horizontal .status-card__image-image{border-radius:4px 4px 0 0}.status-card.horizontal .status-card__title{white-space:inherit}.status-card.compact{border-color:#313543}.status-card.compact.interactive{border:0}.status-card.compact .status-card__content{padding:8px;padding-top:10px}.status-card.compact .status-card__title{white-space:nowrap}.status-card.compact .status-card__image{flex:0 0 60px}a.status-card.compact:hover{background-color:#313543}.status-card__image-image{border-radius:4px 0 0 4px;display:block;margin:0;width:100%;height:100%;object-fit:cover;background-size:cover;background-position:center center}.load-more{display:block;color:#c2cede;background-color:transparent;border:0;font-size:inherit;text-align:center;line-height:inherit;margin:0;padding:15px;box-sizing:border-box;width:100%;clear:both;text-decoration:none}.load-more:hover{background:#2c313d}.load-gap{border-bottom:1px solid #393f4f}.regeneration-indicator{text-align:center;font-size:16px;font-weight:500;color:#c2cede;background:#282c37;cursor:default;display:flex;flex:1 1 auto;flex-direction:column;align-items:center;justify-content:center;padding:20px}.regeneration-indicator__figure,.regeneration-indicator__figure img{display:block;width:auto;height:160px;margin:0}.regeneration-indicator--without-header{padding-top:68px}.regeneration-indicator__label{margin-top:30px}.regeneration-indicator__label strong{display:block;margin-bottom:10px;color:#c2cede}.regeneration-indicator__label span{font-size:15px;font-weight:400}.column-header__wrapper{position:relative;flex:0 0 auto;z-index:1}.column-header__wrapper.active{box-shadow:0 1px 0 rgba(43,144,217,.3)}.column-header__wrapper.active::before{display:block;content:\"\";position:absolute;bottom:-13px;left:0;right:0;margin:0 auto;width:60%;pointer-events:none;height:28px;z-index:1;background:radial-gradient(ellipse, rgba(43, 95, 217, 0.23) 0%, rgba(43, 95, 217, 0) 60%)}.column-header__wrapper .announcements{z-index:1;position:relative}.column-header{display:flex;font-size:16px;background:#313543;flex:0 0 auto;cursor:pointer;position:relative;z-index:2;outline:0;overflow:hidden;border-top-left-radius:2px;border-top-right-radius:2px}.column-header>button{margin:0;border:0;padding:15px 0 15px 15px;color:inherit;background:transparent;font:inherit;text-align:left;text-overflow:ellipsis;overflow:hidden;white-space:nowrap;flex:1}.column-header>.column-header__back-button{color:#2b90d9}.column-header.active .column-header__icon{color:#2b90d9;text-shadow:0 0 10px rgba(43,144,217,.4)}.column-header:focus,.column-header:active{outline:0}.column-header__buttons{height:48px;display:flex}.column-header__links{margin-bottom:14px}.column-header__links .text-btn{margin-right:10px}.column-header__button{background:#313543;border:0;color:#dde3ec;cursor:pointer;font-size:16px;padding:0 15px}.column-header__button:hover{color:#f4f6f9}.column-header__button.active{color:#fff;background:#393f4f}.column-header__button.active:hover{color:#fff;background:#393f4f}.column-header__collapsible{max-height:70vh;overflow:hidden;overflow-y:auto;color:#dde3ec;transition:max-height 150ms ease-in-out,opacity 300ms linear;opacity:1;z-index:1;position:relative}.column-header__collapsible.collapsed{max-height:0;opacity:.5}.column-header__collapsible.animating{overflow-y:hidden}.column-header__collapsible hr{height:0;background:transparent;border:0;border-top:1px solid #42485a;margin:10px 0}.column-header__collapsible-inner{background:#393f4f;padding:15px}.column-header__setting-btn:hover{color:#dde3ec;text-decoration:underline}.column-header__setting-arrows{float:right}.column-header__setting-arrows .column-header__setting-btn{padding:0 10px}.column-header__setting-arrows .column-header__setting-btn:last-child{padding-right:0}.text-btn{display:inline-block;padding:0;font-family:inherit;font-size:inherit;color:inherit;border:0;background:transparent;cursor:pointer}.column-header__icon{display:inline-block;margin-right:5px}.loading-indicator{color:#c2cede;font-size:12px;font-weight:400;text-transform:uppercase;overflow:visible;position:absolute;top:50%;left:50%;transform:translate(-50%, -50%)}.loading-indicator span{display:block;float:left;margin-left:50%;transform:translateX(-50%);margin:82px 0 0 50%;white-space:nowrap}.loading-indicator__figure{position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);width:42px;height:42px;box-sizing:border-box;background-color:transparent;border:0 solid #606984;border-width:6px;border-radius:50%}.no-reduce-motion .loading-indicator span{animation:loader-label 1.15s infinite cubic-bezier(0.215, 0.61, 0.355, 1)}.no-reduce-motion .loading-indicator__figure{animation:loader-figure 1.15s infinite cubic-bezier(0.215, 0.61, 0.355, 1)}@keyframes spring-rotate-in{0%{transform:rotate(0deg)}30%{transform:rotate(-484.8deg)}60%{transform:rotate(-316.7deg)}90%{transform:rotate(-375deg)}100%{transform:rotate(-360deg)}}@keyframes spring-rotate-out{0%{transform:rotate(-360deg)}30%{transform:rotate(124.8deg)}60%{transform:rotate(-43.27deg)}90%{transform:rotate(15deg)}100%{transform:rotate(0deg)}}@keyframes loader-figure{0%{width:0;height:0;background-color:#606984}29%{background-color:#606984}30%{width:42px;height:42px;background-color:transparent;border-width:21px;opacity:1}100%{width:42px;height:42px;border-width:0;opacity:0;background-color:transparent}}@keyframes loader-label{0%{opacity:.25}30%{opacity:1}100%{opacity:.25}}.video-error-cover{align-items:center;background:#000;color:#fff;cursor:pointer;display:flex;flex-direction:column;height:100%;justify-content:center;margin-top:8px;position:relative;text-align:center;z-index:100}.media-spoiler{background:#000;color:#dde3ec;border:0;padding:0;width:100%;height:100%;border-radius:4px;appearance:none}.media-spoiler:hover,.media-spoiler:active,.media-spoiler:focus{padding:0;color:#f7f9fb}.media-spoiler__warning{display:block;font-size:14px}.media-spoiler__trigger{display:block;font-size:11px;font-weight:700}.spoiler-button{top:0;left:0;width:100%;height:100%;position:absolute;z-index:100}.spoiler-button--minified{display:block;left:4px;top:4px;width:auto;height:auto}.spoiler-button--click-thru{pointer-events:none}.spoiler-button--hidden{display:none}.spoiler-button__overlay{display:block;background:transparent;width:100%;height:100%;border:0}.spoiler-button__overlay__label{display:inline-block;background:rgba(0,0,0,.5);border-radius:8px;padding:8px 12px;color:#fff;font-weight:500;font-size:14px}.spoiler-button__overlay:hover .spoiler-button__overlay__label,.spoiler-button__overlay:focus .spoiler-button__overlay__label,.spoiler-button__overlay:active .spoiler-button__overlay__label{background:rgba(0,0,0,.8)}.spoiler-button__overlay:disabled .spoiler-button__overlay__label{background:rgba(0,0,0,.5)}.modal-container--preloader{background:#393f4f}.account--panel{background:#313543;border-top:1px solid #393f4f;border-bottom:1px solid #393f4f;display:flex;flex-direction:row;padding:10px 0}.account--panel__button,.detailed-status__button{flex:1 1 auto;text-align:center}.column-settings__outer{background:#393f4f;padding:15px}.column-settings__section{color:#dde3ec;cursor:default;display:block;font-weight:500;margin-bottom:10px}.column-settings__hashtags .column-settings__row{margin-bottom:15px}.column-settings__hashtags .column-select__control{outline:0;box-sizing:border-box;width:100%;border:0;box-shadow:none;font-family:inherit;background:#282c37;color:#dde3ec;font-size:14px;margin:0}.column-settings__hashtags .column-select__control::placeholder{color:#eaeef3}.column-settings__hashtags .column-select__control::-moz-focus-inner{border:0}.column-settings__hashtags .column-select__control::-moz-focus-inner,.column-settings__hashtags .column-select__control:focus,.column-settings__hashtags .column-select__control:active{outline:0 !important}.column-settings__hashtags .column-select__control:focus{background:#313543}@media screen and (max-width: 600px){.column-settings__hashtags .column-select__control{font-size:16px}}.column-settings__hashtags .column-select__placeholder{color:#c2cede;padding-left:2px;font-size:12px}.column-settings__hashtags .column-select__value-container{padding-left:6px}.column-settings__hashtags .column-select__multi-value{background:#393f4f}.column-settings__hashtags .column-select__multi-value__remove{cursor:pointer}.column-settings__hashtags .column-select__multi-value__remove:hover,.column-settings__hashtags .column-select__multi-value__remove:active,.column-settings__hashtags .column-select__multi-value__remove:focus{background:#42485a;color:#eaeef3}.column-settings__hashtags .column-select__multi-value__label,.column-settings__hashtags .column-select__input{color:#dde3ec}.column-settings__hashtags .column-select__clear-indicator,.column-settings__hashtags .column-select__dropdown-indicator{cursor:pointer;transition:none;color:#c2cede}.column-settings__hashtags .column-select__clear-indicator:hover,.column-settings__hashtags .column-select__clear-indicator:active,.column-settings__hashtags .column-select__clear-indicator:focus,.column-settings__hashtags .column-select__dropdown-indicator:hover,.column-settings__hashtags .column-select__dropdown-indicator:active,.column-settings__hashtags .column-select__dropdown-indicator:focus{color:#d0d9e5}.column-settings__hashtags .column-select__indicator-separator{background-color:#393f4f}.column-settings__hashtags .column-select__menu{background:#fff;border-radius:4px;padding:10px 14px;padding-bottom:14px;margin-top:10px;color:#364861;box-shadow:2px 4px 15px rgba(0,0,0,.4);padding:0;background:#d9e1e8}.column-settings__hashtags .column-select__menu h4{text-transform:uppercase;color:#364861;font-size:13px;font-weight:500;margin-bottom:10px}.column-settings__hashtags .column-select__menu li{padding:4px 0}.column-settings__hashtags .column-select__menu ul{margin-bottom:10px}.column-settings__hashtags .column-select__menu em{font-weight:500;color:#000}.column-settings__hashtags .column-select__menu-list{padding:6px}.column-settings__hashtags .column-select__option{color:#000;border-radius:4px;font-size:14px}.column-settings__hashtags .column-select__option--is-focused,.column-settings__hashtags .column-select__option--is-selected{background:#b9c8d5}.column-settings__row .text-btn{margin-bottom:15px}.relationship-tag{color:#fff;margin-bottom:4px;display:block;vertical-align:top;background-color:#000;text-transform:uppercase;font-size:11px;font-weight:500;padding:4px;border-radius:4px;opacity:.7}.relationship-tag:hover{opacity:1}.setting-toggle{display:block;line-height:24px}.setting-toggle__label{color:#dde3ec;display:inline-block;margin-bottom:14px;margin-left:8px;vertical-align:middle}.empty-column-indicator,.error-column,.follow_requests-unlocked_explanation{color:#c2cede;background:#282c37;text-align:center;padding:20px;font-size:15px;font-weight:400;cursor:default;display:flex;flex:1 1 auto;align-items:center;justify-content:center}@supports(display: grid){.empty-column-indicator,.error-column,.follow_requests-unlocked_explanation{contain:strict}}.empty-column-indicator>span,.error-column>span,.follow_requests-unlocked_explanation>span{max-width:400px}.empty-column-indicator a,.error-column a,.follow_requests-unlocked_explanation a{color:#2b90d9;text-decoration:none}.empty-column-indicator a:hover,.error-column a:hover,.follow_requests-unlocked_explanation a:hover{text-decoration:underline}.follow_requests-unlocked_explanation{background:#1f232b;contain:initial}.error-column{flex-direction:column}@keyframes heartbeat{from{transform:scale(1);animation-timing-function:ease-out}10%{transform:scale(0.91);animation-timing-function:ease-in}17%{transform:scale(0.98);animation-timing-function:ease-out}33%{transform:scale(0.87);animation-timing-function:ease-in}45%{transform:scale(1);animation-timing-function:ease-out}}.no-reduce-motion .pulse-loading{transform-origin:center center;animation:heartbeat 1.5s ease-in-out infinite both}@keyframes shake-bottom{0%,100%{transform:rotate(0deg);transform-origin:50% 100%}10%{transform:rotate(2deg)}20%,40%,60%{transform:rotate(-4deg)}30%,50%,70%{transform:rotate(4deg)}80%{transform:rotate(-2deg)}90%{transform:rotate(2deg)}}.no-reduce-motion .shake-bottom{transform-origin:50% 100%;animation:shake-bottom .8s cubic-bezier(0.455, 0.03, 0.515, 0.955) 2s 2 both}.emoji-picker-dropdown__menu{background:#fff;position:absolute;box-shadow:4px 4px 6px rgba(0,0,0,.4);border-radius:4px;margin-top:5px;z-index:2}.emoji-picker-dropdown__menu .emoji-mart-scroll{transition:opacity 200ms ease}.emoji-picker-dropdown__menu.selecting .emoji-mart-scroll{opacity:.5}.emoji-picker-dropdown__modifiers{position:absolute;top:60px;right:11px;cursor:pointer}.emoji-picker-dropdown__modifiers__menu{position:absolute;z-index:4;top:-4px;left:-8px;background:#fff;border-radius:4px;box-shadow:1px 2px 6px rgba(0,0,0,.2);overflow:hidden}.emoji-picker-dropdown__modifiers__menu button{display:block;cursor:pointer;border:0;padding:4px 8px;background:transparent}.emoji-picker-dropdown__modifiers__menu button:hover,.emoji-picker-dropdown__modifiers__menu button:focus,.emoji-picker-dropdown__modifiers__menu button:active{background:rgba(217,225,232,.4)}.emoji-picker-dropdown__modifiers__menu .emoji-mart-emoji{height:22px}.emoji-mart-emoji span{background-repeat:no-repeat}.upload-area{align-items:center;background:rgba(0,0,0,.8);display:flex;height:100%;justify-content:center;left:0;opacity:0;position:absolute;top:0;visibility:hidden;width:100%;z-index:2000}.upload-area *{pointer-events:none}.upload-area__drop{width:320px;height:160px;display:flex;box-sizing:border-box;position:relative;padding:8px}.upload-area__background{position:absolute;top:0;right:0;bottom:0;left:0;z-index:-1;border-radius:4px;background:#282c37;box-shadow:0 0 5px rgba(0,0,0,.2)}.upload-area__content{flex:1;display:flex;align-items:center;justify-content:center;color:#ecf0f4;font-size:18px;font-weight:500;border:2px dashed #606984;border-radius:4px}.upload-progress{padding:10px;color:#1b1e25;overflow:hidden;display:flex}.upload-progress .fa{font-size:34px;margin-right:10px}.upload-progress span{font-size:12px;text-transform:uppercase;font-weight:500;display:block}.upload-progess__message{flex:1 1 auto}.upload-progress__backdrop{width:100%;height:6px;border-radius:6px;background:#606984;position:relative;margin-top:5px}.upload-progress__tracker{position:absolute;left:0;top:0;height:6px;background:#2b5fd9;border-radius:6px}.emoji-button{display:block;padding:5px 5px 2px 2px;outline:0;cursor:pointer}.emoji-button:active,.emoji-button:focus{outline:0 !important}.emoji-button img{filter:grayscale(100%);opacity:.8;display:block;margin:0;width:22px;height:22px}.emoji-button:hover img,.emoji-button:active img,.emoji-button:focus img{opacity:1;filter:none}.dropdown--active .emoji-button img{opacity:1;filter:none}.privacy-dropdown__dropdown{position:absolute;background:#fff;box-shadow:2px 4px 15px rgba(0,0,0,.4);border-radius:4px;margin-left:40px;overflow:hidden}.privacy-dropdown__dropdown.top{transform-origin:50% 100%}.privacy-dropdown__dropdown.bottom{transform-origin:50% 0}.privacy-dropdown__option{color:#000;padding:10px;cursor:pointer;display:flex}.privacy-dropdown__option:hover,.privacy-dropdown__option.active{background:#2b5fd9;color:#fff;outline:0}.privacy-dropdown__option:hover .privacy-dropdown__option__content,.privacy-dropdown__option.active .privacy-dropdown__option__content{color:#fff}.privacy-dropdown__option:hover .privacy-dropdown__option__content strong,.privacy-dropdown__option.active .privacy-dropdown__option__content strong{color:#fff}.privacy-dropdown__option.active:hover{background:#3c6cdc}.privacy-dropdown__option__icon{display:flex;align-items:center;justify-content:center;margin-right:10px}.privacy-dropdown__option__content{flex:1 1 auto;color:#1b1e25}.privacy-dropdown__option__content strong{font-weight:500;display:block;color:#000}.privacy-dropdown__option__content strong:lang(ja){font-weight:700}.privacy-dropdown__option__content strong:lang(ko){font-weight:700}.privacy-dropdown__option__content strong:lang(zh-CN){font-weight:700}.privacy-dropdown__option__content strong:lang(zh-HK){font-weight:700}.privacy-dropdown__option__content strong:lang(zh-TW){font-weight:700}.privacy-dropdown.active .privacy-dropdown__value{background:#fff;border-radius:4px 4px 0 0;box-shadow:0 -4px 4px rgba(0,0,0,.1)}.privacy-dropdown.active .privacy-dropdown__value .icon-button{transition:none}.privacy-dropdown.active .privacy-dropdown__value.active{background:#2b5fd9}.privacy-dropdown.active .privacy-dropdown__value.active .icon-button{color:#fff}.privacy-dropdown.active.top .privacy-dropdown__value{border-radius:0 0 4px 4px}.privacy-dropdown.active .privacy-dropdown__dropdown{display:block;box-shadow:2px 4px 6px rgba(0,0,0,.1)}.search{position:relative}.search__input{outline:0;box-sizing:border-box;width:100%;border:0;box-shadow:none;font-family:inherit;background:#282c37;color:#dde3ec;font-size:14px;margin:0;display:block;padding:15px;padding-right:30px;line-height:18px;font-size:16px}.search__input::placeholder{color:#eaeef3}.search__input::-moz-focus-inner{border:0}.search__input::-moz-focus-inner,.search__input:focus,.search__input:active{outline:0 !important}.search__input:focus{background:#313543}@media screen and (max-width: 600px){.search__input{font-size:16px}}.search__icon::-moz-focus-inner{border:0}.search__icon::-moz-focus-inner,.search__icon:focus{outline:0 !important}.search__icon .fa{position:absolute;top:16px;right:10px;z-index:2;display:inline-block;opacity:0;transition:all 100ms linear;transition-property:transform,opacity;font-size:18px;width:18px;height:18px;color:#ecf0f4;cursor:default;pointer-events:none}.search__icon .fa.active{pointer-events:auto;opacity:.3}.search__icon .fa-search{transform:rotate(90deg)}.search__icon .fa-search.active{pointer-events:none;transform:rotate(0deg)}.search__icon .fa-times-circle{top:17px;transform:rotate(0deg);color:#8d9ac2;cursor:pointer}.search__icon .fa-times-circle.active{transform:rotate(90deg)}.search__icon .fa-times-circle:hover{color:#a4afce}.search-results__header{color:#c2cede;background:#2c313d;padding:15px;font-weight:500;font-size:16px;cursor:default}.search-results__header .fa{display:inline-block;margin-right:5px}.search-results__section{margin-bottom:5px}.search-results__section h5{background:#1f232b;border-bottom:1px solid #393f4f;cursor:default;display:flex;padding:15px;font-weight:500;font-size:16px;color:#c2cede}.search-results__section h5 .fa{display:inline-block;margin-right:5px}.search-results__section .account:last-child,.search-results__section>div:last-child .status{border-bottom:0}.search-results__hashtag{display:block;padding:10px;color:#ecf0f4;text-decoration:none}.search-results__hashtag:hover,.search-results__hashtag:active,.search-results__hashtag:focus{color:#f9fafb;text-decoration:underline}.search-results__info{padding:20px;color:#dde3ec;text-align:center}.modal-root{position:relative;transition:opacity .3s linear;will-change:opacity;z-index:9999}.modal-root__overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.7)}.modal-root__container{position:fixed;top:0;left:0;width:100%;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;align-content:space-around;z-index:9999;pointer-events:none;user-select:none}.modal-root__modal{pointer-events:auto;display:flex;z-index:9999}.video-modal__container{max-width:100vw;max-height:100vh}.audio-modal__container{width:50vw}.media-modal{width:100%;height:100%;position:relative}.media-modal .extended-video-player{width:100%;height:100%;display:flex;align-items:center;justify-content:center}.media-modal .extended-video-player video{max-width:100%;max-height:80%}.media-modal__closer{position:absolute;top:0;left:0;right:0;bottom:0}.media-modal__navigation{position:absolute;top:0;left:0;right:0;bottom:0;pointer-events:none;transition:opacity .3s linear;will-change:opacity}.media-modal__navigation *{pointer-events:auto}.media-modal__navigation.media-modal__navigation--hidden{opacity:0}.media-modal__navigation.media-modal__navigation--hidden *{pointer-events:none}.media-modal__nav{background:rgba(0,0,0,.5);box-sizing:border-box;border:0;color:#fff;cursor:pointer;display:flex;align-items:center;font-size:24px;height:20vmax;margin:auto 0;padding:30px 15px;position:absolute;top:0;bottom:0}.media-modal__nav--left{left:0}.media-modal__nav--right{right:0}.media-modal__pagination{width:100%;text-align:center;position:absolute;left:0;bottom:20px;pointer-events:none}.media-modal__meta{text-align:center;position:absolute;left:0;bottom:20px;width:100%;pointer-events:none}.media-modal__meta--shifted{bottom:62px}.media-modal__meta a{pointer-events:auto;text-decoration:none;font-weight:500;color:#d9e1e8}.media-modal__meta a:hover,.media-modal__meta a:focus,.media-modal__meta a:active{text-decoration:underline}.media-modal__page-dot{display:inline-block}.media-modal__button{background-color:#fff;height:12px;width:12px;border-radius:6px;margin:10px;padding:0;border:0;font-size:0}.media-modal__button--active{background-color:#2b90d9}.media-modal__close{position:absolute;right:8px;top:8px;z-index:100}.onboarding-modal,.error-modal,.embed-modal{background:#d9e1e8;color:#000;border-radius:8px;overflow:hidden;display:flex;flex-direction:column}.error-modal__body{height:80vh;width:80vw;max-width:520px;max-height:420px;position:relative}.error-modal__body>div{position:absolute;top:0;left:0;width:100%;height:100%;box-sizing:border-box;padding:25px;display:none;flex-direction:column;align-items:center;justify-content:center;display:flex;opacity:0;user-select:text}.error-modal__body{display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center}.onboarding-modal__paginator,.error-modal__footer{flex:0 0 auto;background:#c0cdd9;display:flex;padding:25px}.onboarding-modal__paginator>div,.error-modal__footer>div{min-width:33px}.onboarding-modal__paginator .onboarding-modal__nav,.onboarding-modal__paginator .error-modal__nav,.error-modal__footer .onboarding-modal__nav,.error-modal__footer .error-modal__nav{color:#1b1e25;border:0;font-size:14px;font-weight:500;padding:10px 25px;line-height:inherit;height:auto;margin:-10px;border-radius:4px;background-color:transparent}.onboarding-modal__paginator .onboarding-modal__nav:hover,.onboarding-modal__paginator .onboarding-modal__nav:focus,.onboarding-modal__paginator .onboarding-modal__nav:active,.onboarding-modal__paginator .error-modal__nav:hover,.onboarding-modal__paginator .error-modal__nav:focus,.onboarding-modal__paginator .error-modal__nav:active,.error-modal__footer .onboarding-modal__nav:hover,.error-modal__footer .onboarding-modal__nav:focus,.error-modal__footer .onboarding-modal__nav:active,.error-modal__footer .error-modal__nav:hover,.error-modal__footer .error-modal__nav:focus,.error-modal__footer .error-modal__nav:active{color:#131419;background-color:#a6b9c9}.onboarding-modal__paginator .onboarding-modal__nav.onboarding-modal__done,.onboarding-modal__paginator .onboarding-modal__nav.onboarding-modal__next,.onboarding-modal__paginator .error-modal__nav.onboarding-modal__done,.onboarding-modal__paginator .error-modal__nav.onboarding-modal__next,.error-modal__footer .onboarding-modal__nav.onboarding-modal__done,.error-modal__footer .onboarding-modal__nav.onboarding-modal__next,.error-modal__footer .error-modal__nav.onboarding-modal__done,.error-modal__footer .error-modal__nav.onboarding-modal__next{color:#000}.onboarding-modal__paginator .onboarding-modal__nav.onboarding-modal__done:hover,.onboarding-modal__paginator .onboarding-modal__nav.onboarding-modal__done:focus,.onboarding-modal__paginator .onboarding-modal__nav.onboarding-modal__done:active,.onboarding-modal__paginator .onboarding-modal__nav.onboarding-modal__next:hover,.onboarding-modal__paginator .onboarding-modal__nav.onboarding-modal__next:focus,.onboarding-modal__paginator .onboarding-modal__nav.onboarding-modal__next:active,.onboarding-modal__paginator .error-modal__nav.onboarding-modal__done:hover,.onboarding-modal__paginator .error-modal__nav.onboarding-modal__done:focus,.onboarding-modal__paginator .error-modal__nav.onboarding-modal__done:active,.onboarding-modal__paginator .error-modal__nav.onboarding-modal__next:hover,.onboarding-modal__paginator .error-modal__nav.onboarding-modal__next:focus,.onboarding-modal__paginator .error-modal__nav.onboarding-modal__next:active,.error-modal__footer .onboarding-modal__nav.onboarding-modal__done:hover,.error-modal__footer .onboarding-modal__nav.onboarding-modal__done:focus,.error-modal__footer .onboarding-modal__nav.onboarding-modal__done:active,.error-modal__footer .onboarding-modal__nav.onboarding-modal__next:hover,.error-modal__footer .onboarding-modal__nav.onboarding-modal__next:focus,.error-modal__footer .onboarding-modal__nav.onboarding-modal__next:active,.error-modal__footer .error-modal__nav.onboarding-modal__done:hover,.error-modal__footer .error-modal__nav.onboarding-modal__done:focus,.error-modal__footer .error-modal__nav.onboarding-modal__done:active,.error-modal__footer .error-modal__nav.onboarding-modal__next:hover,.error-modal__footer .error-modal__nav.onboarding-modal__next:focus,.error-modal__footer .error-modal__nav.onboarding-modal__next:active{color:#0a0a0a}.error-modal__footer{justify-content:center}.display-case{text-align:center;font-size:15px;margin-bottom:15px}.display-case__label{font-weight:500;color:#000;margin-bottom:5px;text-transform:uppercase;font-size:12px}.display-case__case{background:#282c37;color:#ecf0f4;font-weight:500;padding:10px;border-radius:4px}.onboard-sliders{display:inline-block;max-width:30px;max-height:auto;margin-left:10px}.boost-modal,.confirmation-modal,.report-modal,.actions-modal,.mute-modal,.block-modal{background:#f2f5f7;color:#000;border-radius:8px;overflow:hidden;max-width:90vw;width:480px;position:relative;flex-direction:column}.boost-modal .status__display-name,.confirmation-modal .status__display-name,.report-modal .status__display-name,.actions-modal .status__display-name,.mute-modal .status__display-name,.block-modal .status__display-name{display:block;max-width:100%;padding-right:25px}.boost-modal .status__avatar,.confirmation-modal .status__avatar,.report-modal .status__avatar,.actions-modal .status__avatar,.mute-modal .status__avatar,.block-modal .status__avatar{height:28px;left:10px;position:absolute;top:10px;width:48px}.boost-modal .status__content__spoiler-link,.confirmation-modal .status__content__spoiler-link,.report-modal .status__content__spoiler-link,.actions-modal .status__content__spoiler-link,.mute-modal .status__content__spoiler-link,.block-modal .status__content__spoiler-link{color:#fff}.actions-modal .status{background:#fff;border-bottom-color:#d9e1e8;padding-top:10px;padding-bottom:10px}.actions-modal .dropdown-menu__separator{border-bottom-color:#d9e1e8}.boost-modal__container{overflow-x:scroll;padding:10px}.boost-modal__container .status{user-select:text;border-bottom:0}.boost-modal__action-bar,.confirmation-modal__action-bar,.mute-modal__action-bar,.block-modal__action-bar{display:flex;justify-content:space-between;background:#d9e1e8;padding:10px;line-height:36px}.boost-modal__action-bar>div,.confirmation-modal__action-bar>div,.mute-modal__action-bar>div,.block-modal__action-bar>div{flex:1 1 auto;text-align:right;color:#1b1e25;padding-right:10px}.boost-modal__action-bar .button,.confirmation-modal__action-bar .button,.mute-modal__action-bar .button,.block-modal__action-bar .button{flex:0 0 auto}.boost-modal__status-header{font-size:15px}.boost-modal__status-time{float:right;font-size:14px}.mute-modal,.block-modal{line-height:24px}.mute-modal .react-toggle,.block-modal .react-toggle{vertical-align:middle}.report-modal{width:90vw;max-width:700px}.report-modal__container{display:flex;border-top:1px solid #d9e1e8}@media screen and (max-width: 480px){.report-modal__container{flex-wrap:wrap;overflow-y:auto}}.report-modal__statuses,.report-modal__comment{box-sizing:border-box;width:50%}@media screen and (max-width: 480px){.report-modal__statuses,.report-modal__comment{width:100%}}.report-modal__statuses,.focal-point-modal__content{flex:1 1 auto;min-height:20vh;max-height:80vh;overflow-y:auto;overflow-x:hidden}.report-modal__statuses .status__content a,.focal-point-modal__content .status__content a{color:#2b90d9}.report-modal__statuses .status__content,.report-modal__statuses .status__content p,.focal-point-modal__content .status__content,.focal-point-modal__content .status__content p{color:#000}@media screen and (max-width: 480px){.report-modal__statuses,.focal-point-modal__content{max-height:10vh}}@media screen and (max-width: 480px){.focal-point-modal__content{max-height:40vh}}.report-modal__comment{padding:20px;border-right:1px solid #d9e1e8;max-width:320px}.report-modal__comment p{font-size:14px;line-height:20px;margin-bottom:20px}.report-modal__comment .setting-text{display:block;box-sizing:border-box;width:100%;margin:0;color:#000;background:#fff;padding:10px;font-family:inherit;font-size:14px;resize:none;border:0;outline:0;border-radius:4px;border:1px solid #d9e1e8;min-height:100px;max-height:50vh;margin-bottom:10px}.report-modal__comment .setting-text:focus{border:1px solid #c0cdd9}.report-modal__comment .setting-text__wrapper{background:#fff;border:1px solid #d9e1e8;margin-bottom:10px;border-radius:4px}.report-modal__comment .setting-text__wrapper .setting-text{border:0;margin-bottom:0;border-radius:0}.report-modal__comment .setting-text__wrapper .setting-text:focus{border:0}.report-modal__comment .setting-text__wrapper__modifiers{color:#000;font-family:inherit;font-size:14px;background:#fff}.report-modal__comment .setting-text__toolbar{display:flex;justify-content:space-between;margin-bottom:20px}.report-modal__comment .setting-text-label{display:block;color:#000;font-size:14px;font-weight:500;margin-bottom:10px}.report-modal__comment .setting-toggle{margin-top:20px;margin-bottom:24px}.report-modal__comment .setting-toggle__label{color:#000;font-size:14px}@media screen and (max-width: 480px){.report-modal__comment{padding:10px;max-width:100%;order:2}.report-modal__comment .setting-toggle{margin-bottom:4px}}.actions-modal{max-height:80vh;max-width:80vw}.actions-modal .status{overflow-y:auto;max-height:300px}.actions-modal .actions-modal__item-label{font-weight:500}.actions-modal ul{overflow-y:auto;flex-shrink:0;max-height:80vh}.actions-modal ul.with-status{max-height:calc(80vh - 75px)}.actions-modal ul li:empty{margin:0}.actions-modal ul li:not(:empty) a{color:#000;display:flex;padding:12px 16px;font-size:15px;align-items:center;text-decoration:none}.actions-modal ul li:not(:empty) a,.actions-modal ul li:not(:empty) a button{transition:none}.actions-modal ul li:not(:empty) a.active,.actions-modal ul li:not(:empty) a.active button,.actions-modal ul li:not(:empty) a:hover,.actions-modal ul li:not(:empty) a:hover button,.actions-modal ul li:not(:empty) a:active,.actions-modal ul li:not(:empty) a:active button,.actions-modal ul li:not(:empty) a:focus,.actions-modal ul li:not(:empty) a:focus button{background:#2b5fd9;color:#fff}.actions-modal ul li:not(:empty) a button:first-child{margin-right:10px}.confirmation-modal__action-bar .confirmation-modal__secondary-button,.mute-modal__action-bar .confirmation-modal__secondary-button,.block-modal__action-bar .confirmation-modal__secondary-button{flex-shrink:1}.confirmation-modal__secondary-button,.confirmation-modal__cancel-button,.mute-modal__cancel-button,.block-modal__cancel-button{background-color:transparent;color:#1b1e25;font-size:14px;font-weight:500}.confirmation-modal__secondary-button:hover,.confirmation-modal__secondary-button:focus,.confirmation-modal__secondary-button:active,.confirmation-modal__cancel-button:hover,.confirmation-modal__cancel-button:focus,.confirmation-modal__cancel-button:active,.mute-modal__cancel-button:hover,.mute-modal__cancel-button:focus,.mute-modal__cancel-button:active,.block-modal__cancel-button:hover,.block-modal__cancel-button:focus,.block-modal__cancel-button:active{color:#131419;background-color:transparent}.confirmation-modal__container,.mute-modal__container,.block-modal__container,.report-modal__target{padding:30px;font-size:16px}.confirmation-modal__container strong,.mute-modal__container strong,.block-modal__container strong,.report-modal__target strong{font-weight:500}.confirmation-modal__container strong:lang(ja),.mute-modal__container strong:lang(ja),.block-modal__container strong:lang(ja),.report-modal__target strong:lang(ja){font-weight:700}.confirmation-modal__container strong:lang(ko),.mute-modal__container strong:lang(ko),.block-modal__container strong:lang(ko),.report-modal__target strong:lang(ko){font-weight:700}.confirmation-modal__container strong:lang(zh-CN),.mute-modal__container strong:lang(zh-CN),.block-modal__container strong:lang(zh-CN),.report-modal__target strong:lang(zh-CN){font-weight:700}.confirmation-modal__container strong:lang(zh-HK),.mute-modal__container strong:lang(zh-HK),.block-modal__container strong:lang(zh-HK),.report-modal__target strong:lang(zh-HK){font-weight:700}.confirmation-modal__container strong:lang(zh-TW),.mute-modal__container strong:lang(zh-TW),.block-modal__container strong:lang(zh-TW),.report-modal__target strong:lang(zh-TW){font-weight:700}.confirmation-modal__container,.report-modal__target{text-align:center}.block-modal__explanation,.mute-modal__explanation{margin-top:20px}.block-modal .setting-toggle,.mute-modal .setting-toggle{margin-top:20px;margin-bottom:24px;display:flex;align-items:center}.block-modal .setting-toggle__label,.mute-modal .setting-toggle__label{color:#000;margin:0;margin-left:8px}.report-modal__target{padding:15px}.report-modal__target .media-modal__close{top:14px;right:15px}.loading-bar{background-color:#2b90d9;height:3px;position:absolute;top:0;left:0;z-index:9999}.media-gallery__gifv__label{display:block;position:absolute;color:#fff;background:rgba(0,0,0,.5);bottom:6px;left:6px;padding:2px 6px;border-radius:2px;font-size:11px;font-weight:600;z-index:1;pointer-events:none;opacity:.9;transition:opacity .1s ease;line-height:18px}.media-gallery__gifv:hover .media-gallery__gifv__label{opacity:1}.media-gallery__audio{margin-top:32px}.media-gallery__audio audio{width:100%}.attachment-list{display:flex;font-size:14px;border:1px solid #393f4f;border-radius:4px;margin-top:14px;overflow:hidden}.attachment-list__icon{flex:0 0 auto;color:#c2cede;padding:8px 18px;cursor:default;border-right:1px solid #393f4f;display:flex;flex-direction:column;align-items:center;justify-content:center;font-size:26px}.attachment-list__icon .fa{display:block}.attachment-list__list{list-style:none;padding:4px 0;padding-left:8px;display:flex;flex-direction:column;justify-content:center}.attachment-list__list li{display:block;padding:4px 0}.attachment-list__list a{text-decoration:none;color:#c2cede;font-weight:500}.attachment-list__list a:hover{text-decoration:underline}.attachment-list.compact{border:0;margin-top:4px}.attachment-list.compact .attachment-list__list{padding:0;display:block}.attachment-list.compact .fa{color:#c2cede}.media-gallery{box-sizing:border-box;margin-top:8px;overflow:hidden;border-radius:4px;position:relative;width:100%}.media-gallery__item{border:0;box-sizing:border-box;display:block;float:left;position:relative;border-radius:4px;overflow:hidden}.media-gallery__item.standalone .media-gallery__item-gifv-thumbnail{transform:none;top:0}.media-gallery__item-thumbnail{cursor:zoom-in;display:block;text-decoration:none;color:#ecf0f4;position:relative;z-index:1}.media-gallery__item-thumbnail,.media-gallery__item-thumbnail img{height:100%;width:100%}.media-gallery__item-thumbnail img{object-fit:cover}.media-gallery__preview{width:100%;height:100%;object-fit:cover;position:absolute;top:0;left:0;z-index:0;background:#000}.media-gallery__preview--hidden{display:none}.media-gallery__gifv{height:100%;overflow:hidden;position:relative;width:100%}.media-gallery__item-gifv-thumbnail{cursor:zoom-in;height:100%;object-fit:cover;position:relative;top:50%;transform:translateY(-50%);width:100%;z-index:1}.media-gallery__item-thumbnail-label{clip:rect(1px 1px 1px 1px);clip:rect(1px, 1px, 1px, 1px);overflow:hidden;position:absolute}.detailed .video-player__volume__current,.detailed .video-player__volume::before,.fullscreen .video-player__volume__current,.fullscreen .video-player__volume::before{bottom:27px}.detailed .video-player__volume__handle,.fullscreen .video-player__volume__handle{bottom:23px}.audio-player{box-sizing:border-box;position:relative;background:#17191f;border-radius:4px;padding-bottom:44px;direction:ltr}.audio-player.editable{border-radius:0;height:100%}.audio-player__waveform{padding:15px 0;position:relative;overflow:hidden}.audio-player__waveform::before{content:\"\";display:block;position:absolute;border-top:1px solid #313543;width:100%;height:0;left:0;top:calc(50% + 1px)}.audio-player__progress-placeholder{background-color:rgba(78,121,223,.5)}.audio-player__wave-placeholder{background-color:#4a5266}.audio-player .video-player__controls{padding:0 15px;padding-top:10px;background:#17191f;border-top:1px solid #313543;border-radius:0 0 4px 4px}.video-player{overflow:hidden;position:relative;background:#000;max-width:100%;border-radius:4px;box-sizing:border-box;direction:ltr}.video-player.editable{border-radius:0;height:100% !important}.video-player:focus{outline:0}.video-player video{max-width:100vw;max-height:80vh;z-index:1}.video-player.fullscreen{width:100% !important;height:100% !important;margin:0}.video-player.fullscreen video{max-width:100% !important;max-height:100% !important;width:100% !important;height:100% !important;outline:0}.video-player.inline video{object-fit:contain;position:relative;top:50%;transform:translateY(-50%)}.video-player__controls{position:absolute;z-index:2;bottom:0;left:0;right:0;box-sizing:border-box;background:linear-gradient(0deg, rgba(0, 0, 0, 0.85) 0, rgba(0, 0, 0, 0.45) 60%, transparent);padding:0 15px;opacity:0;transition:opacity .1s ease}.video-player__controls.active{opacity:1}.video-player.inactive video,.video-player.inactive .video-player__controls{visibility:hidden}.video-player__spoiler{display:none;position:absolute;top:0;left:0;width:100%;height:100%;z-index:4;border:0;background:#000;color:#dde3ec;transition:none;pointer-events:none}.video-player__spoiler.active{display:block;pointer-events:auto}.video-player__spoiler.active:hover,.video-player__spoiler.active:active,.video-player__spoiler.active:focus{color:#f4f6f9}.video-player__spoiler__title{display:block;font-size:14px}.video-player__spoiler__subtitle{display:block;font-size:11px;font-weight:500}.video-player__buttons-bar{display:flex;justify-content:space-between;padding-bottom:10px}.video-player__buttons-bar .video-player__download__icon{color:inherit}.video-player__buttons{font-size:16px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.video-player__buttons.left button{padding-left:0}.video-player__buttons.right button{padding-right:0}.video-player__buttons button{background:transparent;padding:2px 10px;font-size:16px;border:0;color:rgba(255,255,255,.75)}.video-player__buttons button:active,.video-player__buttons button:hover,.video-player__buttons button:focus{color:#fff}.video-player__time-sep,.video-player__time-total,.video-player__time-current{font-size:14px;font-weight:500}.video-player__time-current{color:#fff;margin-left:60px}.video-player__time-sep{display:inline-block;margin:0 6px}.video-player__time-sep,.video-player__time-total{color:#fff}.video-player__volume{cursor:pointer;height:24px;display:inline}.video-player__volume::before{content:\"\";width:50px;background:rgba(255,255,255,.35);border-radius:4px;display:block;position:absolute;height:4px;left:70px;bottom:20px}.video-player__volume__current{display:block;position:absolute;height:4px;border-radius:4px;left:70px;bottom:20px;background:#4e79df}.video-player__volume__handle{position:absolute;z-index:3;border-radius:50%;width:12px;height:12px;bottom:16px;left:70px;transition:opacity .1s ease;background:#4e79df;box-shadow:1px 2px 6px rgba(0,0,0,.2);pointer-events:none}.video-player__link{padding:2px 10px}.video-player__link a{text-decoration:none;font-size:14px;font-weight:500;color:#fff}.video-player__link a:hover,.video-player__link a:active,.video-player__link a:focus{text-decoration:underline}.video-player__seek{cursor:pointer;height:24px;position:relative}.video-player__seek::before{content:\"\";width:100%;background:rgba(255,255,255,.35);border-radius:4px;display:block;position:absolute;height:4px;top:10px}.video-player__seek__progress,.video-player__seek__buffer{display:block;position:absolute;height:4px;border-radius:4px;top:10px;background:#4e79df}.video-player__seek__buffer{background:rgba(255,255,255,.2)}.video-player__seek__handle{position:absolute;z-index:3;opacity:0;border-radius:50%;width:12px;height:12px;top:6px;margin-left:-6px;transition:opacity .1s ease;background:#4e79df;box-shadow:1px 2px 6px rgba(0,0,0,.2);pointer-events:none}.video-player__seek__handle.active{opacity:1}.video-player__seek:hover .video-player__seek__handle{opacity:1}.video-player.detailed .video-player__buttons button,.video-player.fullscreen .video-player__buttons button{padding-top:10px;padding-bottom:10px}.directory__list{width:100%;margin:10px 0;transition:opacity 100ms ease-in}.directory__list.loading{opacity:.7}@media screen and (max-width: 415px){.directory__list{margin:0}}.directory__card{box-sizing:border-box;margin-bottom:10px}.directory__card__img{height:125px;position:relative;background:#0e1014;overflow:hidden}.directory__card__img img{display:block;width:100%;height:100%;margin:0;object-fit:cover}.directory__card__bar{display:flex;align-items:center;background:#313543;padding:10px}.directory__card__bar__name{flex:1 1 auto;display:flex;align-items:center;text-decoration:none;overflow:hidden}.directory__card__bar__relationship{width:23px;min-height:1px;flex:0 0 auto}.directory__card__bar .avatar{flex:0 0 auto;width:48px;height:48px;padding-top:2px}.directory__card__bar .avatar img{width:100%;height:100%;display:block;margin:0;border-radius:4px;background:#17191f;object-fit:cover}.directory__card__bar .display-name{margin-left:15px;text-align:left}.directory__card__bar .display-name strong{font-size:15px;color:#fff;font-weight:500;overflow:hidden;text-overflow:ellipsis}.directory__card__bar .display-name span{display:block;font-size:14px;color:#dde3ec;font-weight:400;overflow:hidden;text-overflow:ellipsis}.directory__card__extra{background:#282c37;display:flex;align-items:center;justify-content:center}.directory__card__extra .accounts-table__count{width:33.33%;flex:0 0 auto;padding:15px 0}.directory__card__extra .account__header__content{box-sizing:border-box;padding:15px 10px;border-bottom:1px solid #393f4f;width:100%;min-height:48px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.directory__card__extra .account__header__content p{display:none}.directory__card__extra .account__header__content p:first-child{display:inline}.directory__card__extra .account__header__content br{display:none}.account-gallery__container{display:flex;flex-wrap:wrap;padding:4px 2px}.account-gallery__item{border:0;box-sizing:border-box;display:block;position:relative;border-radius:4px;overflow:hidden;margin:2px}.account-gallery__item__icons{position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);font-size:24px}.notification__filter-bar,.account__section-headline{background:#1f232b;border-bottom:1px solid #393f4f;cursor:default;display:flex;flex-shrink:0}.notification__filter-bar button,.account__section-headline button{background:#1f232b;border:0;margin:0}.notification__filter-bar button,.notification__filter-bar a,.account__section-headline button,.account__section-headline a{display:block;flex:1 1 auto;color:#dde3ec;padding:15px 0;font-size:14px;font-weight:500;text-align:center;text-decoration:none;position:relative;width:100%;white-space:nowrap}.notification__filter-bar button.active,.notification__filter-bar a.active,.account__section-headline button.active,.account__section-headline a.active{color:#ecf0f4}.notification__filter-bar button.active::before,.notification__filter-bar button.active::after,.notification__filter-bar a.active::before,.notification__filter-bar a.active::after,.account__section-headline button.active::before,.account__section-headline button.active::after,.account__section-headline a.active::before,.account__section-headline a.active::after{display:block;content:\"\";position:absolute;bottom:0;left:50%;width:0;height:0;transform:translateX(-50%);border-style:solid;border-width:0 10px 10px;border-color:transparent transparent #393f4f}.notification__filter-bar button.active::after,.notification__filter-bar a.active::after,.account__section-headline button.active::after,.account__section-headline a.active::after{bottom:-1px;border-color:transparent transparent #282c37}.notification__filter-bar.directory__section-headline,.account__section-headline.directory__section-headline{background:#242731;border-bottom-color:transparent}.notification__filter-bar.directory__section-headline a.active::before,.notification__filter-bar.directory__section-headline button.active::before,.account__section-headline.directory__section-headline a.active::before,.account__section-headline.directory__section-headline button.active::before{display:none}.notification__filter-bar.directory__section-headline a.active::after,.notification__filter-bar.directory__section-headline button.active::after,.account__section-headline.directory__section-headline a.active::after,.account__section-headline.directory__section-headline button.active::after{border-color:transparent transparent #191b22}.filter-form{background:#282c37}.filter-form__column{padding:10px 15px}.filter-form .radio-button{display:block}.radio-button{font-size:14px;position:relative;display:inline-block;padding:6px 0;line-height:18px;cursor:default;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:pointer}.radio-button input[type=radio],.radio-button input[type=checkbox]{display:none}.radio-button__input{display:inline-block;position:relative;border:1px solid #9baec8;box-sizing:border-box;width:18px;height:18px;flex:0 0 auto;margin-right:10px;top:-1px;border-radius:50%;vertical-align:middle}.radio-button__input.checked{border-color:#4e79df;background:#4e79df}::-webkit-scrollbar-thumb{border-radius:0}.search-popout{background:#fff;border-radius:4px;padding:10px 14px;padding-bottom:14px;margin-top:10px;color:#364861;box-shadow:2px 4px 15px rgba(0,0,0,.4)}.search-popout h4{text-transform:uppercase;color:#364861;font-size:13px;font-weight:500;margin-bottom:10px}.search-popout li{padding:4px 0}.search-popout ul{margin-bottom:10px}.search-popout em{font-weight:500;color:#000}noscript{text-align:center}noscript img{width:200px;opacity:.5;animation:flicker 4s infinite}noscript div{font-size:14px;margin:30px auto;color:#ecf0f4;max-width:400px}noscript div a{color:#2b90d9;text-decoration:underline}noscript div a:hover{text-decoration:none}@keyframes flicker{0%{opacity:1}30%{opacity:.75}100%{opacity:1}}@media screen and (max-width: 630px)and (max-height: 400px){.tabs-bar,.search{will-change:margin-top;transition:margin-top 400ms 100ms}.navigation-bar{will-change:padding-bottom;transition:padding-bottom 400ms 100ms}.navigation-bar>a:first-child{will-change:margin-top,margin-left,margin-right,width;transition:margin-top 400ms 100ms,margin-left 400ms 500ms,margin-right 400ms 500ms}.navigation-bar>.navigation-bar__profile-edit{will-change:margin-top;transition:margin-top 400ms 100ms}.navigation-bar .navigation-bar__actions>.icon-button.close{will-change:opacity transform;transition:opacity 200ms 100ms,transform 400ms 100ms}.navigation-bar .navigation-bar__actions>.compose__action-bar .icon-button{will-change:opacity transform;transition:opacity 200ms 300ms,transform 400ms 100ms}.is-composing .tabs-bar,.is-composing .search{margin-top:-50px}.is-composing .navigation-bar{padding-bottom:0}.is-composing .navigation-bar>a:first-child{margin:-100px 10px 0 -50px}.is-composing .navigation-bar .navigation-bar__profile{padding-top:2px}.is-composing .navigation-bar .navigation-bar__profile-edit{position:absolute;margin-top:-60px}.is-composing .navigation-bar .navigation-bar__actions .icon-button.close{pointer-events:auto;opacity:1;transform:scale(1, 1) translate(0, 0);bottom:5px}.is-composing .navigation-bar .navigation-bar__actions .compose__action-bar .icon-button{pointer-events:none;opacity:0;transform:scale(0, 1) translate(100%, 0)}}.embed-modal{width:auto;max-width:80vw;max-height:80vh}.embed-modal h4{padding:30px;font-weight:500;font-size:16px;text-align:center}.embed-modal .embed-modal__container{padding:10px}.embed-modal .embed-modal__container .hint{margin-bottom:15px}.embed-modal .embed-modal__container .embed-modal__html{outline:0;box-sizing:border-box;display:block;width:100%;border:0;padding:10px;font-family:\"mastodon-font-monospace\",monospace;background:#282c37;color:#fff;font-size:14px;margin:0;margin-bottom:15px;border-radius:4px}.embed-modal .embed-modal__container .embed-modal__html::-moz-focus-inner{border:0}.embed-modal .embed-modal__container .embed-modal__html::-moz-focus-inner,.embed-modal .embed-modal__container .embed-modal__html:focus,.embed-modal .embed-modal__container .embed-modal__html:active{outline:0 !important}.embed-modal .embed-modal__container .embed-modal__html:focus{background:#313543}@media screen and (max-width: 600px){.embed-modal .embed-modal__container .embed-modal__html{font-size:16px}}.embed-modal .embed-modal__container .embed-modal__iframe{width:400px;max-width:100%;overflow:hidden;border:0;border-radius:4px}.account__moved-note{padding:14px 10px;padding-bottom:16px;background:#313543;border-top:1px solid #393f4f;border-bottom:1px solid #393f4f}.account__moved-note__message{position:relative;margin-left:58px;color:#c2cede;padding:8px 0;padding-top:0;padding-bottom:4px;font-size:14px}.account__moved-note__message>span{display:block;overflow:hidden;text-overflow:ellipsis}.account__moved-note__icon-wrapper{left:-26px;position:absolute}.account__moved-note .detailed-status__display-avatar{position:relative}.account__moved-note .detailed-status__display-name{margin-bottom:0}.column-inline-form{padding:15px;padding-right:0;display:flex;justify-content:flex-start;align-items:center;background:#313543}.column-inline-form label{flex:1 1 auto}.column-inline-form label input{width:100%}.column-inline-form label input:focus{outline:0}.column-inline-form .icon-button{flex:0 0 auto;margin:0 10px}.drawer__backdrop{cursor:pointer;position:absolute;top:0;left:0;width:100%;height:100%;background:rgba(0,0,0,.5)}.list-editor{background:#282c37;flex-direction:column;border-radius:8px;box-shadow:2px 4px 15px rgba(0,0,0,.4);width:380px;overflow:hidden}@media screen and (max-width: 420px){.list-editor{width:90%}}.list-editor h4{padding:15px 0;background:#444b5d;font-weight:500;font-size:16px;text-align:center;border-radius:8px 8px 0 0}.list-editor .drawer__pager{height:50vh}.list-editor .drawer__inner{border-radius:0 0 8px 8px}.list-editor .drawer__inner.backdrop{width:calc(100% - 60px);box-shadow:2px 4px 15px rgba(0,0,0,.4);border-radius:0 0 0 8px}.list-editor__accounts{overflow-y:auto}.list-editor .account__display-name:hover strong{text-decoration:none}.list-editor .account__avatar{cursor:default}.list-editor .search{margin-bottom:0}.list-adder{background:#282c37;flex-direction:column;border-radius:8px;box-shadow:2px 4px 15px rgba(0,0,0,.4);width:380px;overflow:hidden}@media screen and (max-width: 420px){.list-adder{width:90%}}.list-adder__account{background:#444b5d}.list-adder__lists{background:#444b5d;height:50vh;border-radius:0 0 8px 8px;overflow-y:auto}.list-adder .list{padding:10px;border-bottom:1px solid #393f4f}.list-adder .list__wrapper{display:flex}.list-adder .list__display-name{flex:1 1 auto;overflow:hidden;text-decoration:none;font-size:16px;padding:10px}.focal-point{position:relative;cursor:move;overflow:hidden;height:100%;display:flex;justify-content:center;align-items:center;background:#000}.focal-point img,.focal-point video,.focal-point canvas{display:block;max-height:80vh;width:100%;height:auto;margin:0;object-fit:contain;background:#000}.focal-point__reticle{position:absolute;width:100px;height:100px;transform:translate(-50%, -50%);background:url(\"~images/reticle.png\") no-repeat 0 0;border-radius:50%;box-shadow:0 0 0 9999em rgba(0,0,0,.35)}.focal-point__overlay{position:absolute;width:100%;height:100%;top:0;left:0}.focal-point__preview{position:absolute;bottom:10px;right:10px;z-index:2;cursor:move;transition:opacity .1s ease}.focal-point__preview:hover{opacity:.5}.focal-point__preview strong{color:#fff;font-size:14px;font-weight:500;display:block;margin-bottom:5px}.focal-point__preview div{border-radius:4px;box-shadow:0 0 14px rgba(0,0,0,.2)}@media screen and (max-width: 480px){.focal-point img,.focal-point video{max-height:100%}.focal-point__preview{display:none}}.account__header__content{color:#dde3ec;font-size:14px;font-weight:400;overflow:hidden;word-break:normal;word-wrap:break-word}.account__header__content p{margin-bottom:20px}.account__header__content p:last-child{margin-bottom:0}.account__header__content a{color:inherit;text-decoration:underline}.account__header__content a:hover{text-decoration:none}.account__header{overflow:hidden}.account__header.inactive{opacity:.5}.account__header.inactive .account__header__image,.account__header.inactive .account__avatar{filter:grayscale(100%)}.account__header__info{position:absolute;top:10px;left:10px}.account__header__image{overflow:hidden;height:145px;position:relative;background:#1f232b}.account__header__image img{object-fit:cover;display:block;width:100%;height:100%;margin:0}.account__header__bar{position:relative;background:#313543;padding:5px;border-bottom:1px solid #42485a}.account__header__bar .avatar{display:block;flex:0 0 auto;width:94px;margin-left:-2px}.account__header__bar .avatar .account__avatar{background:#17191f;border:2px solid #313543}.account__header__tabs{display:flex;align-items:flex-start;padding:7px 5px;margin-top:-55px}.account__header__tabs__buttons{display:flex;align-items:center;padding-top:55px;overflow:hidden}.account__header__tabs__buttons .icon-button{border:1px solid #42485a;border-radius:4px;box-sizing:content-box;padding:2px}.account__header__tabs__buttons .button{margin:0 8px}.account__header__tabs__name{padding:5px}.account__header__tabs__name .account-role{vertical-align:top}.account__header__tabs__name .emojione{width:22px;height:22px}.account__header__tabs__name h1{font-size:16px;line-height:24px;color:#fff;font-weight:500;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.account__header__tabs__name h1 small{display:block;font-size:14px;color:#dde3ec;font-weight:400;overflow:hidden;text-overflow:ellipsis}.account__header__tabs .spacer{flex:1 1 auto}.account__header__bio{overflow:hidden;margin:0 -5px}.account__header__bio .account__header__content{padding:20px 15px;padding-bottom:5px;color:#fff}.account__header__bio .account__header__fields{margin:0;border-top:1px solid #42485a}.account__header__bio .account__header__fields a{color:#4e79df}.account__header__bio .account__header__fields dl:first-child .verified{border-radius:0 4px 0 0}.account__header__bio .account__header__fields .verified a{color:#79bd9a}.account__header__extra{margin-top:4px}.account__header__extra__links{font-size:14px;color:#dde3ec;padding:10px 0}.account__header__extra__links a{display:inline-block;color:#dde3ec;text-decoration:none;padding:5px 10px;font-weight:500}.account__header__extra__links a strong{font-weight:700;color:#fff}.trends__header{color:#c2cede;background:#2c313d;border-bottom:1px solid #1f232b;font-weight:500;padding:15px;font-size:16px;cursor:default}.trends__header .fa{display:inline-block;margin-right:5px}.trends__item{display:flex;align-items:center;padding:15px;border-bottom:1px solid #393f4f}.trends__item:last-child{border-bottom:0}.trends__item__name{flex:1 1 auto;color:#c2cede;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.trends__item__name strong{font-weight:500}.trends__item__name a{color:#dde3ec;text-decoration:none;font-size:14px;font-weight:500;display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.trends__item__name a:hover span,.trends__item__name a:focus span,.trends__item__name a:active span{text-decoration:underline}.trends__item__current{flex:0 0 auto;font-size:24px;line-height:36px;font-weight:500;text-align:right;padding-right:15px;margin-left:5px;color:#ecf0f4}.trends__item__sparkline{flex:0 0 auto;width:50px}.trends__item__sparkline path:first-child{fill:rgba(43,144,217,.25) !important;fill-opacity:1 !important}.trends__item__sparkline path:last-child{stroke:#459ede !important}.conversation{display:flex;border-bottom:1px solid #393f4f;padding:5px;padding-bottom:0}.conversation:focus{background:#2c313d;outline:0}.conversation__avatar{flex:0 0 auto;padding:10px;padding-top:12px;position:relative;cursor:pointer}.conversation__unread{display:inline-block;background:#2b90d9;border-radius:50%;width:.625rem;height:.625rem;margin:-0.1ex .15em .1ex}.conversation__content{flex:1 1 auto;padding:10px 5px;padding-right:15px;overflow:hidden}.conversation__content__info{overflow:hidden;display:flex;flex-direction:row-reverse;justify-content:space-between}.conversation__content__relative-time{font-size:15px;color:#dde3ec;padding-left:15px}.conversation__content__names{color:#dde3ec;font-size:15px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-bottom:4px;flex-basis:90px;flex-grow:1}.conversation__content__names a{color:#fff;text-decoration:none}.conversation__content__names a:hover,.conversation__content__names a:focus,.conversation__content__names a:active{text-decoration:underline}.conversation__content a{word-break:break-word}.conversation--unread{background:#2c313d}.conversation--unread:focus{background:#313543}.conversation--unread .conversation__content__info{font-weight:700}.conversation--unread .conversation__content__relative-time{color:#fff}.announcements{background:#393f4f;font-size:13px;display:flex;align-items:flex-end}.announcements__mastodon{width:124px;flex:0 0 auto}@media screen and (max-width: 424px){.announcements__mastodon{display:none}}.announcements__container{width:calc(100% - 124px);flex:0 0 auto;position:relative}@media screen and (max-width: 424px){.announcements__container{width:100%}}.announcements__item{box-sizing:border-box;width:100%;padding:15px;position:relative;font-size:15px;line-height:20px;word-wrap:break-word;font-weight:400;max-height:50vh;overflow:hidden;display:flex;flex-direction:column}.announcements__item__range{display:block;font-weight:500;margin-bottom:10px;padding-right:18px}.announcements__item__unread{position:absolute;top:19px;right:19px;display:block;background:#2b90d9;border-radius:50%;width:.625rem;height:.625rem}.announcements__pagination{padding:15px;color:#dde3ec;position:absolute;bottom:3px;right:0}.layout-multiple-columns .announcements__mastodon{display:none}.layout-multiple-columns .announcements__container{width:100%}.reactions-bar{display:flex;flex-wrap:wrap;align-items:center;margin-top:15px;margin-left:-2px;width:calc(100% - (90px - 33px))}.reactions-bar__item{flex-shrink:0;background:#42485a;border:0;border-radius:3px;margin:2px;cursor:pointer;user-select:none;padding:0 6px;display:flex;align-items:center;transition:all 100ms ease-in;transition-property:background-color,color}.reactions-bar__item__emoji{display:block;margin:3px 0;width:16px;height:16px}.reactions-bar__item__emoji img{display:block;margin:0;width:100%;height:100%;min-width:auto;min-height:auto;vertical-align:bottom;object-fit:contain}.reactions-bar__item__count{display:block;min-width:9px;font-size:13px;font-weight:500;text-align:center;margin-left:6px;color:#dde3ec}.reactions-bar__item:hover,.reactions-bar__item:focus,.reactions-bar__item:active{background:#4a5266;transition:all 200ms ease-out;transition-property:background-color,color}.reactions-bar__item:hover__count,.reactions-bar__item:focus__count,.reactions-bar__item:active__count{color:#eaeef3}.reactions-bar__item.active{transition:all 100ms ease-in;transition-property:background-color,color;background-color:#3d4d73}.reactions-bar__item.active .reactions-bar__item__count{color:#4ea2df}.reactions-bar .emoji-picker-dropdown{margin:2px}.reactions-bar:hover .emoji-button{opacity:.85}.reactions-bar .emoji-button{color:#dde3ec;margin:0;font-size:16px;width:auto;flex-shrink:0;padding:0 6px;height:22px;display:flex;align-items:center;opacity:.5;transition:all 100ms ease-in;transition-property:background-color,color}.reactions-bar .emoji-button:hover,.reactions-bar .emoji-button:active,.reactions-bar .emoji-button:focus{opacity:1;color:#eaeef3;transition:all 200ms ease-out;transition-property:background-color,color}.reactions-bar--empty .emoji-button{padding:0}.poll{margin-top:16px;font-size:14px}.poll li{margin-bottom:10px;position:relative}.poll__chart{border-radius:4px;display:block;background:#8ba1bf;height:5px;min-width:1%}.poll__chart.leading{background:#2b5fd9}.poll__option{position:relative;display:flex;padding:6px 0;line-height:18px;cursor:default;overflow:hidden}.poll__option__text{display:inline-block;word-wrap:break-word;overflow-wrap:break-word;max-width:calc(100% - 45px - 25px)}.poll__option input[type=radio],.poll__option input[type=checkbox]{display:none}.poll__option .autossugest-input{flex:1 1 auto}.poll__option input[type=text]{display:block;box-sizing:border-box;width:100%;font-size:14px;color:#000;outline:0;font-family:inherit;background:#fff;border:1px solid #dbdbdb;border-radius:4px;padding:6px 10px}.poll__option input[type=text]:focus{border-color:#2b90d9}.poll__option.selectable{cursor:pointer}.poll__option.editable{display:flex;align-items:center;overflow:visible}.poll__input{display:inline-block;position:relative;border:1px solid #9baec8;box-sizing:border-box;width:18px;height:18px;flex:0 0 auto;margin-right:10px;top:-1px;border-radius:50%;vertical-align:middle;margin-top:auto;margin-bottom:auto;flex:0 0 18px}.poll__input.checkbox{border-radius:4px}.poll__input.active{border-color:#79bd9a;background:#79bd9a}.poll__input:active,.poll__input:focus,.poll__input:hover{border-color:#acd6c1;border-width:4px}.poll__input::-moz-focus-inner{outline:0 !important;border:0}.poll__input:focus,.poll__input:active{outline:0 !important}.poll__number{display:inline-block;width:45px;font-weight:700;flex:0 0 45px}.poll__voted{padding:0 5px;display:inline-block}.poll__voted__mark{font-size:18px}.poll__footer{padding-top:6px;padding-bottom:5px;color:#c2cede}.poll__link{display:inline;background:transparent;padding:0;margin:0;border:0;color:#c2cede;text-decoration:underline;font-size:inherit}.poll__link:hover{text-decoration:none}.poll__link:active,.poll__link:focus{background-color:rgba(194,206,222,.1)}.poll .button{height:36px;padding:0 16px;margin-right:10px;font-size:14px}.compose-form__poll-wrapper{border-top:1px solid #ebebeb}.compose-form__poll-wrapper ul{padding:10px}.compose-form__poll-wrapper .poll__footer{border-top:1px solid #ebebeb;padding:10px;display:flex;align-items:center}.compose-form__poll-wrapper .poll__footer button,.compose-form__poll-wrapper .poll__footer select{flex:1 1 50%}.compose-form__poll-wrapper .poll__footer button:focus,.compose-form__poll-wrapper .poll__footer select:focus{border-color:#2b90d9}.compose-form__poll-wrapper .button.button-secondary{font-size:14px;font-weight:400;padding:6px 10px;height:auto;line-height:inherit;color:#8d9ac2;border-color:#8d9ac2;margin-right:5px}.compose-form__poll-wrapper li{display:flex;align-items:center}.compose-form__poll-wrapper li .poll__option{flex:0 0 auto;width:calc(100% - (23px + 6px));margin-right:6px}.compose-form__poll-wrapper select{appearance:none;box-sizing:border-box;font-size:14px;color:#000;display:inline-block;width:auto;outline:0;font-family:inherit;background:#fff url(\"data:image/svg+xml;utf8,\") no-repeat right 8px center/auto 16px;border:1px solid #dbdbdb;border-radius:4px;padding:6px 10px;padding-right:30px}.compose-form__poll-wrapper .icon-button.disabled{color:#dbdbdb}.muted .poll{color:#c2cede}.muted .poll__chart{background:rgba(109,137,175,.2)}.muted .poll__chart.leading{background:rgba(43,95,217,.2)}.modal-layout{background:#282c37 url('data:image/svg+xml;utf8,') repeat-x bottom fixed;display:flex;flex-direction:column;height:100vh;padding:0}.modal-layout__mastodon{display:flex;flex:1;flex-direction:column;justify-content:flex-end}.modal-layout__mastodon>*{flex:1;max-height:235px}@media screen and (max-width: 600px){.account-header{margin-top:0}}.emoji-mart{font-size:13px;display:inline-block;color:#000}.emoji-mart,.emoji-mart *{box-sizing:border-box;line-height:1.15}.emoji-mart .emoji-mart-emoji{padding:6px}.emoji-mart-bar{border:0 solid #c0cdd9}.emoji-mart-bar:first-child{border-bottom-width:1px;border-top-left-radius:5px;border-top-right-radius:5px;background:#d9e1e8}.emoji-mart-bar:last-child{border-top-width:1px;border-bottom-left-radius:5px;border-bottom-right-radius:5px;display:none}.emoji-mart-anchors{display:flex;justify-content:space-between;padding:0 6px;color:#1b1e25;line-height:0}.emoji-mart-anchor{position:relative;flex:1;text-align:center;padding:12px 4px;overflow:hidden;transition:color .1s ease-out;cursor:pointer}.emoji-mart-anchor:hover{color:#131419}.emoji-mart-anchor-selected{color:#2b90d9}.emoji-mart-anchor-selected:hover{color:#2485cb}.emoji-mart-anchor-selected .emoji-mart-anchor-bar{bottom:-1px}.emoji-mart-anchor-bar{position:absolute;bottom:-5px;left:0;width:100%;height:4px;background-color:#2b90d9}.emoji-mart-anchors i{display:inline-block;width:100%;max-width:22px}.emoji-mart-anchors svg{fill:currentColor;max-height:18px}.emoji-mart-scroll{overflow-y:scroll;height:270px;max-height:35vh;padding:0 6px 6px;background:#fff;will-change:transform}.emoji-mart-scroll::-webkit-scrollbar-track:hover,.emoji-mart-scroll::-webkit-scrollbar-track:active{background-color:rgba(0,0,0,.3)}.emoji-mart-search{padding:10px;padding-right:45px;background:#fff}.emoji-mart-search input{font-size:14px;font-weight:400;padding:7px 9px;font-family:inherit;display:block;width:100%;background:rgba(217,225,232,.3);color:#000;border:1px solid #d9e1e8;border-radius:4px}.emoji-mart-search input::-moz-focus-inner{border:0}.emoji-mart-search input::-moz-focus-inner,.emoji-mart-search input:focus,.emoji-mart-search input:active{outline:0 !important}.emoji-mart-category .emoji-mart-emoji{cursor:pointer}.emoji-mart-category .emoji-mart-emoji span{z-index:1;position:relative;text-align:center}.emoji-mart-category .emoji-mart-emoji:hover::before{z-index:0;content:\"\";position:absolute;top:0;left:0;width:100%;height:100%;background-color:rgba(217,225,232,.7);border-radius:100%}.emoji-mart-category-label{z-index:2;position:relative;position:-webkit-sticky;position:sticky;top:0}.emoji-mart-category-label span{display:block;width:100%;font-weight:500;padding:5px 6px;background:#fff}.emoji-mart-emoji{position:relative;display:inline-block;font-size:0}.emoji-mart-emoji span{width:22px;height:22px}.emoji-mart-no-results{font-size:14px;text-align:center;padding-top:70px;color:#364861}.emoji-mart-no-results .emoji-mart-category-label{display:none}.emoji-mart-no-results .emoji-mart-no-results-label{margin-top:.2em}.emoji-mart-no-results .emoji-mart-emoji:hover::before{content:none}.emoji-mart-preview{display:none}.container{box-sizing:border-box;max-width:1235px;margin:0 auto;position:relative}@media screen and (max-width: 1255px){.container{width:100%;padding:0 10px}}.rich-formatting{font-family:\"mastodon-font-sans-serif\",sans-serif;font-size:14px;font-weight:400;line-height:1.7;word-wrap:break-word;color:#dde3ec}.rich-formatting a{color:#2b90d9;text-decoration:underline}.rich-formatting a:hover,.rich-formatting a:focus,.rich-formatting a:active{text-decoration:none}.rich-formatting p,.rich-formatting li{color:#dde3ec}.rich-formatting p{margin-top:0;margin-bottom:.85em}.rich-formatting p:last-child{margin-bottom:0}.rich-formatting strong{font-weight:700;color:#ecf0f4}.rich-formatting em{font-style:italic;color:#ecf0f4}.rich-formatting code{font-size:.85em;background:#17191f;border-radius:4px;padding:.2em .3em}.rich-formatting h1,.rich-formatting h2,.rich-formatting h3,.rich-formatting h4,.rich-formatting h5,.rich-formatting h6{font-family:\"mastodon-font-display\",sans-serif;margin-top:1.275em;margin-bottom:.85em;font-weight:500;color:#ecf0f4}.rich-formatting h1{font-size:2em}.rich-formatting h2{font-size:1.75em}.rich-formatting h3{font-size:1.5em}.rich-formatting h4{font-size:1.25em}.rich-formatting h5,.rich-formatting h6{font-size:1em}.rich-formatting ul{list-style:disc}.rich-formatting ol{list-style:decimal}.rich-formatting ul,.rich-formatting ol{margin:0;padding:0;padding-left:2em;margin-bottom:.85em}.rich-formatting ul[type=a],.rich-formatting ol[type=a]{list-style-type:lower-alpha}.rich-formatting ul[type=i],.rich-formatting ol[type=i]{list-style-type:lower-roman}.rich-formatting hr{width:100%;height:0;border:0;border-bottom:1px solid #313543;margin:1.7em 0}.rich-formatting hr.spacer{height:1px;border:0}.rich-formatting table{width:100%;border-collapse:collapse;break-inside:auto;margin-top:24px;margin-bottom:32px}.rich-formatting table thead tr,.rich-formatting table tbody tr{border-bottom:1px solid #313543;font-size:1em;line-height:1.625;font-weight:400;text-align:left;color:#dde3ec}.rich-formatting table thead tr{border-bottom-width:2px;line-height:1.5;font-weight:500;color:#c2cede}.rich-formatting table th,.rich-formatting table td{padding:8px;align-self:start;align-items:start;word-break:break-all}.rich-formatting table th.nowrap,.rich-formatting table td.nowrap{width:25%;position:relative}.rich-formatting table th.nowrap::before,.rich-formatting table td.nowrap::before{content:\" \";visibility:hidden}.rich-formatting table th.nowrap span,.rich-formatting table td.nowrap span{position:absolute;left:8px;right:8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.rich-formatting>:first-child{margin-top:0}.information-board{background:#1f232b;padding:20px 0}.information-board .container-alt{position:relative;padding-right:295px}.information-board__sections{display:flex;justify-content:space-between;flex-wrap:wrap}.information-board__section{flex:1 0 0;font-family:\"mastodon-font-sans-serif\",sans-serif;font-size:16px;line-height:28px;color:#fff;text-align:right;padding:10px 15px}.information-board__section span,.information-board__section strong{display:block}.information-board__section span:last-child{color:#ecf0f4}.information-board__section strong{font-family:\"mastodon-font-display\",sans-serif;font-weight:500;font-size:32px;line-height:48px}@media screen and (max-width: 700px){.information-board__section{text-align:center}}.information-board .panel{position:absolute;width:280px;box-sizing:border-box;background:#17191f;padding:20px;padding-top:10px;border-radius:4px 4px 0 0;right:0;bottom:-40px}.information-board .panel .panel-header{font-family:\"mastodon-font-display\",sans-serif;font-size:14px;line-height:24px;font-weight:500;color:#dde3ec;padding-bottom:5px;margin-bottom:15px;border-bottom:1px solid #313543;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.information-board .panel .panel-header a,.information-board .panel .panel-header span{font-weight:400;color:#bcc9da}.information-board .panel .panel-header a{text-decoration:none}.information-board .owner{text-align:center}.information-board .owner .avatar{width:80px;height:80px;margin:0 auto;margin-bottom:15px}.information-board .owner .avatar img{display:block;width:80px;height:80px;border-radius:48px}.information-board .owner .name{font-size:14px}.information-board .owner .name a{display:block;color:#fff;text-decoration:none}.information-board .owner .name a:hover .display_name{text-decoration:underline}.information-board .owner .name .username{display:block;color:#dde3ec}.landing-page p,.landing-page li{font-family:\"mastodon-font-sans-serif\",sans-serif;font-size:16px;font-weight:400;font-size:16px;line-height:30px;margin-bottom:12px;color:#dde3ec}.landing-page p a,.landing-page li a{color:#2b90d9;text-decoration:underline}.landing-page em{display:inline;margin:0;padding:0;font-weight:700;background:transparent;font-family:inherit;font-size:inherit;line-height:inherit;color:#fefefe}.landing-page h1{font-family:\"mastodon-font-display\",sans-serif;font-size:26px;line-height:30px;font-weight:500;margin-bottom:20px;color:#ecf0f4}.landing-page h1 small{font-family:\"mastodon-font-sans-serif\",sans-serif;display:block;font-size:18px;font-weight:400;color:#fefefe}.landing-page h2{font-family:\"mastodon-font-display\",sans-serif;font-size:22px;line-height:26px;font-weight:500;margin-bottom:20px;color:#ecf0f4}.landing-page h3{font-family:\"mastodon-font-display\",sans-serif;font-size:18px;line-height:24px;font-weight:500;margin-bottom:20px;color:#ecf0f4}.landing-page h4{font-family:\"mastodon-font-display\",sans-serif;font-size:16px;line-height:24px;font-weight:500;margin-bottom:20px;color:#ecf0f4}.landing-page h5{font-family:\"mastodon-font-display\",sans-serif;font-size:14px;line-height:24px;font-weight:500;margin-bottom:20px;color:#ecf0f4}.landing-page h6{font-family:\"mastodon-font-display\",sans-serif;font-size:12px;line-height:24px;font-weight:500;margin-bottom:20px;color:#ecf0f4}.landing-page ul,.landing-page ol{margin-left:20px}.landing-page ul[type=a],.landing-page ol[type=a]{list-style-type:lower-alpha}.landing-page ul[type=i],.landing-page ol[type=i]{list-style-type:lower-roman}.landing-page ul{list-style:disc}.landing-page ol{list-style:decimal}.landing-page li>ol,.landing-page li>ul{margin-top:6px}.landing-page hr{width:100%;height:0;border:0;border-bottom:1px solid rgba(96,105,132,.6);margin:20px 0}.landing-page hr.spacer{height:1px;border:0}.landing-page__information,.landing-page__forms{padding:20px}.landing-page__call-to-action{background:#282c37;border-radius:4px;padding:25px 40px;overflow:hidden;box-sizing:border-box}.landing-page__call-to-action .row{width:100%;display:flex;flex-direction:row-reverse;flex-wrap:nowrap;justify-content:space-between;align-items:center}.landing-page__call-to-action .row__information-board{display:flex;justify-content:flex-end;align-items:flex-end}.landing-page__call-to-action .row__information-board .information-board__section{flex:1 0 auto;padding:0 10px}@media screen and (max-width: 415px){.landing-page__call-to-action .row__information-board{width:100%;justify-content:space-between}}.landing-page__call-to-action .row__mascot{flex:1;margin:10px -50px 0 0}@media screen and (max-width: 415px){.landing-page__call-to-action .row__mascot{display:none}}.landing-page__logo{margin-right:20px}.landing-page__logo img{height:50px;width:auto;mix-blend-mode:lighten}.landing-page__information{padding:45px 40px;margin-bottom:10px}.landing-page__information:last-child{margin-bottom:0}.landing-page__information strong{font-weight:500;color:#fefefe}.landing-page__information .account{border-bottom:0;padding:0}.landing-page__information .account__display-name{align-items:center;display:flex;margin-right:5px}.landing-page__information .account div.account__display-name:hover .display-name strong{text-decoration:none}.landing-page__information .account div.account__display-name .account__avatar{cursor:default}.landing-page__information .account__avatar-wrapper{margin-left:0;flex:0 0 auto}.landing-page__information .account__avatar{width:44px;height:44px;background-size:44px 44px}.landing-page__information .account .display-name{font-size:15px}.landing-page__information .account .display-name__account{font-size:14px}@media screen and (max-width: 960px){.landing-page__information .contact{margin-top:30px}}@media screen and (max-width: 700px){.landing-page__information{padding:25px 20px}}.landing-page__information,.landing-page__forms,.landing-page #mastodon-timeline{box-sizing:border-box;background:#282c37;border-radius:4px;box-shadow:0 0 6px rgba(0,0,0,.1)}.landing-page__mascot{height:104px;position:relative;left:-40px;bottom:25px}.landing-page__mascot img{height:190px;width:auto}.landing-page__short-description .row{display:flex;flex-wrap:wrap;align-items:center;margin-bottom:40px}@media screen and (max-width: 700px){.landing-page__short-description .row{margin-bottom:20px}}.landing-page__short-description p a{color:#ecf0f4}.landing-page__short-description h1{font-weight:500;color:#fff;margin-bottom:0}.landing-page__short-description h1 small{color:#dde3ec}.landing-page__short-description h1 small span{color:#ecf0f4}.landing-page__short-description p:last-child{margin-bottom:0}.landing-page__hero{margin-bottom:10px}.landing-page__hero img{display:block;margin:0;max-width:100%;height:auto;border-radius:4px}@media screen and (max-width: 840px){.landing-page .information-board .container-alt{padding-right:20px}.landing-page .information-board .panel{position:static;margin-top:20px;width:100%;border-radius:4px}.landing-page .information-board .panel .panel-header{text-align:center}}@media screen and (max-width: 675px){.landing-page .header-wrapper{padding-top:0}.landing-page .header-wrapper.compact{padding-bottom:0}.landing-page .header-wrapper.compact .hero .heading{text-align:initial}.landing-page .header .container-alt,.landing-page .features .container-alt{display:block}}.landing-page .cta{margin:20px}.landing{margin-bottom:100px}@media screen and (max-width: 738px){.landing{margin-bottom:0}}.landing__brand{display:flex;justify-content:center;align-items:center;padding:50px}.landing__brand svg{fill:#fff;height:52px}@media screen and (max-width: 415px){.landing__brand{padding:0;margin-bottom:30px}}.landing .directory{margin-top:30px;background:transparent;box-shadow:none;border-radius:0}.landing .hero-widget{margin-top:30px;margin-bottom:0}.landing .hero-widget h4{padding:10px;text-transform:uppercase;font-weight:700;font-size:13px;color:#dde3ec}.landing .hero-widget__text{border-radius:0;padding-bottom:0}.landing .hero-widget__footer{background:#282c37;padding:10px;border-radius:0 0 4px 4px;display:flex}.landing .hero-widget__footer__column{flex:1 1 50%}.landing .hero-widget .account{padding:10px 0;border-bottom:0}.landing .hero-widget .account .account__display-name{display:flex;align-items:center}.landing .hero-widget .account .account__avatar{width:44px;height:44px;background-size:44px 44px}.landing .hero-widget__counter{padding:10px}.landing .hero-widget__counter strong{font-family:\"mastodon-font-display\",sans-serif;font-size:15px;font-weight:700;display:block}.landing .hero-widget__counter span{font-size:14px;color:#dde3ec}.landing .simple_form .user_agreement .label_input>label{font-weight:400;color:#dde3ec}.landing .simple_form p.lead{color:#dde3ec;font-size:15px;line-height:20px;font-weight:400;margin-bottom:25px}.landing__grid{max-width:960px;margin:0 auto;display:grid;grid-template-columns:minmax(0, 50%) minmax(0, 50%);grid-gap:30px}@media screen and (max-width: 738px){.landing__grid{grid-template-columns:minmax(0, 100%);grid-gap:10px}.landing__grid__column-login{grid-row:1;display:flex;flex-direction:column}.landing__grid__column-login .box-widget{order:2;flex:0 0 auto}.landing__grid__column-login .hero-widget{margin-top:0;margin-bottom:10px;order:1;flex:0 0 auto}.landing__grid__column-registration{grid-row:2}.landing__grid .directory{margin-top:10px}}@media screen and (max-width: 415px){.landing__grid{grid-gap:0}.landing__grid .hero-widget{display:block;margin-bottom:0;box-shadow:none}.landing__grid .hero-widget__img,.landing__grid .hero-widget__img img,.landing__grid .hero-widget__footer{border-radius:0}.landing__grid .hero-widget,.landing__grid .box-widget,.landing__grid .directory__tag{border-bottom:1px solid #393f4f}.landing__grid .directory{margin-top:0}.landing__grid .directory__tag{margin-bottom:0}.landing__grid .directory__tag>a,.landing__grid .directory__tag>div{border-radius:0;box-shadow:none}.landing__grid .directory__tag:last-child{border-bottom:0}}.brand{position:relative;text-decoration:none}.brand__tagline{display:block;position:absolute;bottom:-10px;left:50px;width:300px;color:#9baec8;text-decoration:none;font-size:14px}@media screen and (max-width: 415px){.brand__tagline{position:static;width:auto;margin-top:20px;color:#c2cede}}.table{width:100%;max-width:100%;border-spacing:0;border-collapse:collapse}.table th,.table td{padding:8px;line-height:18px;vertical-align:top;border-top:1px solid #282c37;text-align:left;background:#1f232b}.table>thead>tr>th{vertical-align:bottom;border-bottom:2px solid #282c37;border-top:0;font-weight:500}.table>tbody>tr>th{font-weight:500}.table>tbody>tr:nth-child(odd)>td,.table>tbody>tr:nth-child(odd)>th{background:#282c37}.table a{color:#2b90d9;text-decoration:underline}.table a:hover{text-decoration:none}.table strong{font-weight:500}.table strong:lang(ja){font-weight:700}.table strong:lang(ko){font-weight:700}.table strong:lang(zh-CN){font-weight:700}.table strong:lang(zh-HK){font-weight:700}.table strong:lang(zh-TW){font-weight:700}.table.inline-table>tbody>tr:nth-child(odd)>td,.table.inline-table>tbody>tr:nth-child(odd)>th{background:transparent}.table.inline-table>tbody>tr:first-child>td,.table.inline-table>tbody>tr:first-child>th{border-top:0}.table.batch-table>thead>tr>th{background:#282c37;border-top:1px solid #17191f;border-bottom:1px solid #17191f}.table.batch-table>thead>tr>th:first-child{border-radius:4px 0 0;border-left:1px solid #17191f}.table.batch-table>thead>tr>th:last-child{border-radius:0 4px 0 0;border-right:1px solid #17191f}.table--invites tbody td{vertical-align:middle}.table-wrapper{overflow:auto;margin-bottom:20px}samp{font-family:\"mastodon-font-monospace\",monospace}button.table-action-link{background:transparent;border:0;font:inherit}button.table-action-link,a.table-action-link{text-decoration:none;display:inline-block;margin-right:5px;padding:0 10px;color:#dde3ec;font-weight:500}button.table-action-link:hover,a.table-action-link:hover{color:#fff}button.table-action-link i.fa,a.table-action-link i.fa{font-weight:400;margin-right:5px}button.table-action-link:first-child,a.table-action-link:first-child{padding-left:0}.batch-table__toolbar,.batch-table__row{display:flex}.batch-table__toolbar__select,.batch-table__row__select{box-sizing:border-box;padding:8px 16px;cursor:pointer;min-height:100%}.batch-table__toolbar__select input,.batch-table__row__select input{margin-top:8px}.batch-table__toolbar__select--aligned,.batch-table__row__select--aligned{display:flex;align-items:center}.batch-table__toolbar__select--aligned input,.batch-table__row__select--aligned input{margin-top:0}.batch-table__toolbar__actions,.batch-table__toolbar__content,.batch-table__row__actions,.batch-table__row__content{padding:8px 0;padding-right:16px;flex:1 1 auto}.batch-table__toolbar{border:1px solid #17191f;background:#282c37;border-radius:4px 0 0;height:47px;align-items:center}.batch-table__toolbar__actions{text-align:right;padding-right:11px}.batch-table__form{padding:16px;border:1px solid #17191f;border-top:0;background:#282c37}.batch-table__form .fields-row{padding-top:0;margin-bottom:0}.batch-table__row{border:1px solid #17191f;border-top:0;background:#1f232b}@media screen and (max-width: 415px){.optional .batch-table__row:first-child{border-top:1px solid #17191f}}.batch-table__row:hover{background:#242731}.batch-table__row:nth-child(even){background:#282c37}.batch-table__row:nth-child(even):hover{background:#2c313d}.batch-table__row__content{padding-top:12px;padding-bottom:16px}.batch-table__row__content--unpadded{padding:0}.batch-table__row__content--with-image{display:flex;align-items:center}.batch-table__row__content__image{flex:0 0 auto;display:flex;justify-content:center;align-items:center;margin-right:10px}.batch-table__row__content__image .emojione{width:32px;height:32px}.batch-table__row__content__text{flex:1 1 auto}.batch-table__row__content__extra{flex:0 0 auto;text-align:right;color:#dde3ec;font-weight:500}.batch-table__row .directory__tag{margin:0;width:100%}.batch-table__row .directory__tag a{background:transparent;border-radius:0}@media screen and (max-width: 415px){.batch-table.optional .batch-table__toolbar,.batch-table.optional .batch-table__row__select{display:none}}.batch-table .status__content{padding-top:0}.batch-table .status__content summary{display:list-item}.batch-table .status__content strong{font-weight:700}.batch-table .nothing-here{border:1px solid #17191f;border-top:0;box-shadow:none}@media screen and (max-width: 415px){.batch-table .nothing-here{border-top:1px solid #17191f}}@media screen and (max-width: 870px){.batch-table .accounts-table tbody td.optional{display:none}}.admin-wrapper{display:flex;justify-content:center;width:100%;min-height:100vh}.admin-wrapper .sidebar-wrapper{min-height:100vh;overflow:hidden;pointer-events:none;flex:1 1 auto}.admin-wrapper .sidebar-wrapper__inner{display:flex;justify-content:flex-end;background:#282c37;height:100%}.admin-wrapper .sidebar{width:240px;padding:0;pointer-events:auto}.admin-wrapper .sidebar__toggle{display:none;background:#393f4f;height:48px}.admin-wrapper .sidebar__toggle__logo{flex:1 1 auto}.admin-wrapper .sidebar__toggle__logo a{display:inline-block;padding:15px}.admin-wrapper .sidebar__toggle__logo svg{fill:#fff;height:20px;position:relative;bottom:-2px}.admin-wrapper .sidebar__toggle__icon{display:block;color:#dde3ec;text-decoration:none;flex:0 0 auto;font-size:20px;padding:15px}.admin-wrapper .sidebar__toggle a:hover,.admin-wrapper .sidebar__toggle a:focus,.admin-wrapper .sidebar__toggle a:active{background:#42485a}.admin-wrapper .sidebar .logo{display:block;margin:40px auto;width:100px;height:100px}@media screen and (max-width: 600px){.admin-wrapper .sidebar>a:first-child{display:none}}.admin-wrapper .sidebar ul{list-style:none;border-radius:4px 0 0 4px;overflow:hidden;margin-bottom:20px}@media screen and (max-width: 600px){.admin-wrapper .sidebar ul{margin-bottom:0}}.admin-wrapper .sidebar ul a{display:block;padding:15px;color:#dde3ec;text-decoration:none;transition:all 200ms linear;transition-property:color,background-color;border-radius:4px 0 0 4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.admin-wrapper .sidebar ul a i.fa{margin-right:5px}.admin-wrapper .sidebar ul a:hover{color:#fff;background-color:#1d2028;transition:all 100ms linear;transition-property:color,background-color}.admin-wrapper .sidebar ul a.selected{background:#242731;border-radius:4px 0 0}.admin-wrapper .sidebar ul ul{background:#1f232b;border-radius:0 0 0 4px;margin:0}.admin-wrapper .sidebar ul ul a{border:0;padding:15px 35px}.admin-wrapper .sidebar ul .simple-navigation-active-leaf a{color:#fff;background-color:#2b5fd9;border-bottom:0;border-radius:0}.admin-wrapper .sidebar ul .simple-navigation-active-leaf a:hover{background-color:#416fdd}.admin-wrapper .sidebar>ul>.simple-navigation-active-leaf a{border-radius:4px 0 0 4px}.admin-wrapper .content-wrapper{box-sizing:border-box;width:100%;max-width:840px;flex:1 1 auto}@media screen and (max-width: 1080px){.admin-wrapper .sidebar-wrapper--empty{display:none}.admin-wrapper .sidebar-wrapper{width:240px;flex:0 0 auto}}@media screen and (max-width: 600px){.admin-wrapper .sidebar-wrapper{width:100%}}.admin-wrapper .content{padding:20px 15px;padding-top:60px;padding-left:25px}@media screen and (max-width: 600px){.admin-wrapper .content{max-width:none;padding:15px;padding-top:30px}}.admin-wrapper .content-heading{display:flex;padding-bottom:40px;border-bottom:1px solid #393f4f;margin:-15px -15px 40px 0;flex-wrap:wrap;align-items:center;justify-content:space-between}.admin-wrapper .content-heading>*{margin-top:15px;margin-right:15px}.admin-wrapper .content-heading-actions{display:inline-flex}.admin-wrapper .content-heading-actions>:not(:first-child){margin-left:5px}@media screen and (max-width: 600px){.admin-wrapper .content-heading{border-bottom:0;padding-bottom:0}}.admin-wrapper .content h2{color:#ecf0f4;font-size:24px;line-height:28px;font-weight:400}@media screen and (max-width: 600px){.admin-wrapper .content h2{font-weight:700}}.admin-wrapper .content h3{color:#ecf0f4;font-size:20px;line-height:28px;font-weight:400;margin-bottom:30px}.admin-wrapper .content h4{text-transform:uppercase;font-size:13px;font-weight:700;color:#dde3ec;padding-bottom:8px;margin-bottom:8px;border-bottom:1px solid #393f4f}.admin-wrapper .content h6{font-size:16px;color:#ecf0f4;line-height:28px;font-weight:500}.admin-wrapper .content .fields-group h6{color:#fff;font-weight:500}.admin-wrapper .content .directory__tag>a,.admin-wrapper .content .directory__tag>div{box-shadow:none}.admin-wrapper .content .directory__tag .table-action-link .fa{color:inherit}.admin-wrapper .content .directory__tag h4{font-size:18px;font-weight:700;color:#fff;text-transform:none;padding-bottom:0;margin-bottom:0;border-bottom:0}.admin-wrapper .content>p{font-size:14px;line-height:21px;color:#ecf0f4;margin-bottom:20px}.admin-wrapper .content>p strong{color:#fff;font-weight:500}.admin-wrapper .content>p strong:lang(ja){font-weight:700}.admin-wrapper .content>p strong:lang(ko){font-weight:700}.admin-wrapper .content>p strong:lang(zh-CN){font-weight:700}.admin-wrapper .content>p strong:lang(zh-HK){font-weight:700}.admin-wrapper .content>p strong:lang(zh-TW){font-weight:700}.admin-wrapper .content hr{width:100%;height:0;border:0;border-bottom:1px solid rgba(96,105,132,.6);margin:20px 0}.admin-wrapper .content hr.spacer{height:1px;border:0}@media screen and (max-width: 600px){.admin-wrapper{display:block}.admin-wrapper .sidebar-wrapper{min-height:0}.admin-wrapper .sidebar{width:100%;padding:0;height:auto}.admin-wrapper .sidebar__toggle{display:flex}.admin-wrapper .sidebar>ul{display:none}.admin-wrapper .sidebar ul a,.admin-wrapper .sidebar ul ul a{border-radius:0;border-bottom:1px solid #313543;transition:none}.admin-wrapper .sidebar ul a:hover,.admin-wrapper .sidebar ul ul a:hover{transition:none}.admin-wrapper .sidebar ul ul{border-radius:0}.admin-wrapper .sidebar ul .simple-navigation-active-leaf a{border-bottom-color:#2b5fd9}}hr.spacer{width:100%;border:0;margin:20px 0;height:1px}body .muted-hint,.admin-wrapper .content .muted-hint{color:#dde3ec}body .muted-hint a,.admin-wrapper .content .muted-hint a{color:#2b90d9}body .positive-hint,.admin-wrapper .content .positive-hint{color:#79bd9a;font-weight:500}body .negative-hint,.admin-wrapper .content .negative-hint{color:#df405a;font-weight:500}body .neutral-hint,.admin-wrapper .content .neutral-hint{color:#c2cede;font-weight:500}body .warning-hint,.admin-wrapper .content .warning-hint{color:#ca8f04;font-weight:500}.filters{display:flex;flex-wrap:wrap}.filters .filter-subset{flex:0 0 auto;margin:0 40px 20px 0}.filters .filter-subset:last-child{margin-bottom:30px}.filters .filter-subset ul{margin-top:5px;list-style:none}.filters .filter-subset ul li{display:inline-block;margin-right:5px}.filters .filter-subset strong{font-weight:500;text-transform:uppercase;font-size:12px}.filters .filter-subset strong:lang(ja){font-weight:700}.filters .filter-subset strong:lang(ko){font-weight:700}.filters .filter-subset strong:lang(zh-CN){font-weight:700}.filters .filter-subset strong:lang(zh-HK){font-weight:700}.filters .filter-subset strong:lang(zh-TW){font-weight:700}.filters .filter-subset--with-select strong{display:block;margin-bottom:10px}.filters .filter-subset a{display:inline-block;color:#dde3ec;text-decoration:none;text-transform:uppercase;font-size:12px;font-weight:500;border-bottom:2px solid #282c37}.filters .filter-subset a:hover{color:#fff;border-bottom:2px solid #333846}.filters .filter-subset a.selected{color:#2b90d9;border-bottom:2px solid #2b5fd9}.flavour-screen{display:block;margin:10px auto;max-width:100%}.flavour-description{display:block;font-size:16px;margin:10px 0}.flavour-description>p{margin:10px 0}.flavour-screen{display:block;margin:10px auto;max-width:100%}.flavour-description{display:block;font-size:16px;margin:10px 0}.flavour-description>p{margin:10px 0}.report-accounts{display:flex;flex-wrap:wrap;margin-bottom:20px}.report-accounts__item{display:flex;flex:250px;flex-direction:column;margin:0 5px}.report-accounts__item>strong{display:block;margin:0 0 10px -5px;font-weight:500;font-size:14px;line-height:18px;color:#ecf0f4}.report-accounts__item>strong:lang(ja){font-weight:700}.report-accounts__item>strong:lang(ko){font-weight:700}.report-accounts__item>strong:lang(zh-CN){font-weight:700}.report-accounts__item>strong:lang(zh-HK){font-weight:700}.report-accounts__item>strong:lang(zh-TW){font-weight:700}.report-accounts__item .account-card{flex:1 1 auto}.report-status,.account-status{display:flex;margin-bottom:10px}.report-status .activity-stream,.account-status .activity-stream{flex:2 0 0;margin-right:20px;max-width:calc(100% - 60px)}.report-status .activity-stream .entry,.account-status .activity-stream .entry{border-radius:4px}.report-status__actions,.account-status__actions{flex:0 0 auto;display:flex;flex-direction:column}.report-status__actions .icon-button,.account-status__actions .icon-button{font-size:24px;width:24px;text-align:center;margin-bottom:10px}.simple_form.new_report_note,.simple_form.new_account_moderation_note{max-width:100%}.batch-form-box{display:flex;flex-wrap:wrap;margin-bottom:5px}.batch-form-box #form_status_batch_action{margin:0 5px 5px 0;font-size:14px}.batch-form-box input.button{margin:0 5px 5px 0}.batch-form-box .media-spoiler-toggle-buttons{margin-left:auto}.batch-form-box .media-spoiler-toggle-buttons .button{overflow:visible;margin:0 0 5px 5px;float:right}.back-link{margin-bottom:10px;font-size:14px}.back-link a{color:#2b90d9;text-decoration:none}.back-link a:hover{text-decoration:underline}.spacer{flex:1 1 auto}.log-entry{line-height:20px;padding:15px 0;background:#282c37;border-bottom:1px solid #313543}.log-entry:last-child{border-bottom:0}.log-entry__header{display:flex;justify-content:flex-start;align-items:center;color:#dde3ec;font-size:14px;padding:0 10px}.log-entry__avatar{margin-right:10px}.log-entry__avatar .avatar{display:block;margin:0;border-radius:50%;width:40px;height:40px}.log-entry__content{max-width:calc(100% - 90px)}.log-entry__title{word-wrap:break-word}.log-entry__timestamp{color:#c2cede}.log-entry a,.log-entry .username,.log-entry .target{color:#ecf0f4;text-decoration:none;font-weight:500}a.name-tag,.name-tag,a.inline-name-tag,.inline-name-tag{text-decoration:none;color:#ecf0f4}a.name-tag .username,.name-tag .username,a.inline-name-tag .username,.inline-name-tag .username{font-weight:500}a.name-tag.suspended .username,.name-tag.suspended .username,a.inline-name-tag.suspended .username,.inline-name-tag.suspended .username{text-decoration:line-through;color:#e87487}a.name-tag.suspended .avatar,.name-tag.suspended .avatar,a.inline-name-tag.suspended .avatar,.inline-name-tag.suspended .avatar{filter:grayscale(100%);opacity:.8}a.name-tag,.name-tag{display:flex;align-items:center}a.name-tag .avatar,.name-tag .avatar{display:block;margin:0;margin-right:5px;border-radius:50%}a.name-tag.suspended .avatar,.name-tag.suspended .avatar{filter:grayscale(100%);opacity:.8}.speech-bubble{margin-bottom:20px;border-left:4px solid #2b5fd9}.speech-bubble.positive{border-left-color:#79bd9a}.speech-bubble.negative{border-left-color:#e87487}.speech-bubble.warning{border-left-color:#ca8f04}.speech-bubble__bubble{padding:16px;padding-left:14px;font-size:15px;line-height:20px;border-radius:4px 4px 4px 0;position:relative;font-weight:500}.speech-bubble__bubble a{color:#dde3ec}.speech-bubble__owner{padding:8px;padding-left:12px}.speech-bubble time{color:#c2cede}.report-card{background:#282c37;border-radius:4px;margin-bottom:20px}.report-card__profile{display:flex;justify-content:space-between;align-items:center;padding:15px}.report-card__profile .account{padding:0;border:0}.report-card__profile .account__avatar-wrapper{margin-left:0}.report-card__profile__stats{flex:0 0 auto;font-weight:500;color:#dde3ec;text-transform:uppercase;text-align:right}.report-card__profile__stats a{color:inherit;text-decoration:none}.report-card__profile__stats a:focus,.report-card__profile__stats a:hover,.report-card__profile__stats a:active{color:#f7f9fb}.report-card__profile__stats .red{color:#df405a}.report-card__summary__item{display:flex;justify-content:flex-start;border-top:1px solid #1f232b}.report-card__summary__item:hover{background:#2c313d}.report-card__summary__item__reported-by,.report-card__summary__item__assigned{padding:15px;flex:0 0 auto;box-sizing:border-box;width:150px;color:#dde3ec}.report-card__summary__item__reported-by,.report-card__summary__item__reported-by .username,.report-card__summary__item__assigned,.report-card__summary__item__assigned .username{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.report-card__summary__item__content{flex:1 1 auto;max-width:calc(100% - 300px)}.report-card__summary__item__content__icon{color:#c2cede;margin-right:4px;font-weight:500}.report-card__summary__item__content a{display:block;box-sizing:border-box;width:100%;padding:15px;text-decoration:none;color:#dde3ec}.one-line{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ellipsized-ip{display:inline-block;max-width:120px;overflow:hidden;text-overflow:ellipsis;vertical-align:middle}.admin-account-bio{display:flex;flex-wrap:wrap;margin:0 -5px;margin-top:20px}.admin-account-bio>div{box-sizing:border-box;padding:0 5px;margin-bottom:10px;flex:1 0 50%}.admin-account-bio .account__header__fields,.admin-account-bio .account__header__content{background:#393f4f;border-radius:4px;height:100%}.admin-account-bio .account__header__fields{margin:0;border:0}.admin-account-bio .account__header__fields a{color:#4e79df}.admin-account-bio .account__header__fields dl:first-child .verified{border-radius:0 4px 0 0}.admin-account-bio .account__header__fields .verified a{color:#79bd9a}.admin-account-bio .account__header__content{box-sizing:border-box;padding:20px;color:#fff}.center-text{text-align:center}.announcements-list{border:1px solid #313543;border-radius:4px}.announcements-list__item{padding:15px 0;background:#282c37;border-bottom:1px solid #313543}.announcements-list__item__title{padding:0 15px;display:block;font-weight:500;font-size:18px;line-height:1.5;color:#ecf0f4;text-decoration:none;margin-bottom:10px}.announcements-list__item__title:hover,.announcements-list__item__title:focus,.announcements-list__item__title:active{color:#fff}.announcements-list__item__meta{padding:0 15px;color:#c2cede}.announcements-list__item__action-bar{display:flex;justify-content:space-between;align-items:center}.announcements-list__item:last-child{border-bottom:0}.dashboard__counters{display:flex;flex-wrap:wrap;margin:0 -5px;margin-bottom:20px}.dashboard__counters>div{box-sizing:border-box;flex:0 0 33.333%;padding:0 5px;margin-bottom:10px}.dashboard__counters>div>div,.dashboard__counters>div>a{padding:20px;background:#313543;border-radius:4px;box-sizing:border-box;height:100%}.dashboard__counters>div>a{text-decoration:none;color:inherit;display:block}.dashboard__counters>div>a:hover,.dashboard__counters>div>a:focus,.dashboard__counters>div>a:active{background:#393f4f}.dashboard__counters__num,.dashboard__counters__text{text-align:center;font-weight:500;font-size:24px;line-height:21px;color:#fff;font-family:\"mastodon-font-display\",sans-serif;margin-bottom:20px;line-height:30px}.dashboard__counters__text{font-size:18px}.dashboard__counters__label{font-size:14px;color:#dde3ec;text-align:center;font-weight:500}.dashboard__widgets{display:flex;flex-wrap:wrap;margin:0 -5px}.dashboard__widgets>div{flex:0 0 33.333%;margin-bottom:20px}.dashboard__widgets>div>div{padding:0 5px}.dashboard__widgets a:not(.name-tag){color:#d9e1e8;font-weight:500;text-decoration:none}body.rtl{direction:rtl}body.rtl .column-header>button{text-align:right;padding-left:0;padding-right:15px}body.rtl .radio-button__input{margin-right:0;margin-left:10px}body.rtl .directory__card__bar .display-name{margin-left:0;margin-right:15px}body.rtl .display-name{text-align:right}body.rtl .notification__message{margin-left:0;margin-right:68px}body.rtl .drawer__inner__mastodon>img{transform:scaleX(-1)}body.rtl .notification__favourite-icon-wrapper{left:auto;right:-26px}body.rtl .landing-page__logo{margin-right:0;margin-left:20px}body.rtl .landing-page .features-list .features-list__row .visual{margin-left:0;margin-right:15px}body.rtl .column-link__icon,body.rtl .column-header__icon{margin-right:0;margin-left:5px}body.rtl .compose-form .compose-form__buttons-wrapper .character-counter__wrapper{margin-right:0;margin-left:4px}body.rtl .navigation-bar__profile{margin-left:0;margin-right:8px}body.rtl .search__input{padding-right:10px;padding-left:30px}body.rtl .search__icon .fa{right:auto;left:10px}body.rtl .columns-area{direction:rtl}body.rtl .column-header__buttons{left:0;right:auto;margin-left:0;margin-right:-15px}body.rtl .column-inline-form .icon-button{margin-left:0;margin-right:5px}body.rtl .column-header__links .text-btn{margin-left:10px;margin-right:0}body.rtl .account__avatar-wrapper{float:right}body.rtl .column-header__back-button{padding-left:5px;padding-right:0}body.rtl .column-header__setting-arrows{float:left}body.rtl .setting-toggle__label{margin-left:0;margin-right:8px}body.rtl .status__avatar{left:auto;right:10px}body.rtl .status,body.rtl .activity-stream .status.light{padding-left:10px;padding-right:68px}body.rtl .status__info .status__display-name,body.rtl .activity-stream .status.light .status__display-name{padding-left:25px;padding-right:0}body.rtl .activity-stream .pre-header{padding-right:68px;padding-left:0}body.rtl .status__prepend{margin-left:0;margin-right:68px}body.rtl .status__prepend-icon-wrapper{left:auto;right:-26px}body.rtl .activity-stream .pre-header .pre-header__icon{left:auto;right:42px}body.rtl .account__avatar-overlay-overlay{right:auto;left:0}body.rtl .column-back-button--slim-button{right:auto;left:0}body.rtl .status__relative-time,body.rtl .activity-stream .status.light .status__header .status__meta{float:left}body.rtl .status__action-bar__counter{margin-right:0;margin-left:11px}body.rtl .status__action-bar__counter .status__action-bar-button{margin-right:0;margin-left:4px}body.rtl .status__action-bar-button{float:right;margin-right:0;margin-left:18px}body.rtl .status__action-bar-dropdown{float:right}body.rtl .privacy-dropdown__dropdown{margin-left:0;margin-right:40px}body.rtl .privacy-dropdown__option__icon{margin-left:10px;margin-right:0}body.rtl .detailed-status__display-name .display-name{text-align:right}body.rtl .detailed-status__display-avatar{margin-right:0;margin-left:10px;float:right}body.rtl .detailed-status__favorites,body.rtl .detailed-status__reblogs{margin-left:0;margin-right:6px}body.rtl .fa-ul{margin-left:2.14285714em}body.rtl .fa-li{left:auto;right:-2.14285714em}body.rtl .admin-wrapper{direction:rtl}body.rtl .admin-wrapper .sidebar ul a i.fa,body.rtl a.table-action-link i.fa{margin-right:0;margin-left:5px}body.rtl .simple_form .check_boxes .checkbox label{padding-left:0;padding-right:25px}body.rtl .simple_form .input.with_label.boolean label.checkbox{padding-left:25px;padding-right:0}body.rtl .simple_form .check_boxes .checkbox input[type=checkbox],body.rtl .simple_form .input.boolean input[type=checkbox]{left:auto;right:0}body.rtl .simple_form .input.radio_buttons .radio{left:auto;right:0}body.rtl .simple_form .input.radio_buttons .radio>label{padding-right:28px;padding-left:0}body.rtl .simple_form .input-with-append .input input{padding-left:142px;padding-right:0}body.rtl .simple_form .input.boolean label.checkbox{left:auto;right:0}body.rtl .simple_form .input.boolean .label_input,body.rtl .simple_form .input.boolean .hint{padding-left:0;padding-right:28px}body.rtl .simple_form .label_input__append{right:auto;left:3px}body.rtl .simple_form .label_input__append::after{right:auto;left:0;background-image:linear-gradient(to left, rgba(19, 20, 25, 0), #131419)}body.rtl .simple_form select{background:#131419 url(\"data:image/svg+xml;utf8,\") no-repeat left 8px center/auto 16px}body.rtl .table th,body.rtl .table td{text-align:right}body.rtl .filters .filter-subset{margin-right:0;margin-left:45px}body.rtl .landing-page .header-wrapper .mascot{right:60px;left:auto}body.rtl .landing-page__call-to-action .row__information-board{direction:rtl}body.rtl .landing-page .header .hero .floats .float-1{left:-120px;right:auto}body.rtl .landing-page .header .hero .floats .float-2{left:210px;right:auto}body.rtl .landing-page .header .hero .floats .float-3{left:110px;right:auto}body.rtl .landing-page .header .links .brand img{left:0}body.rtl .landing-page .fa-external-link{padding-right:5px;padding-left:0 !important}body.rtl .landing-page .features #mastodon-timeline{margin-right:0;margin-left:30px}@media screen and (min-width: 631px){body.rtl .column,body.rtl .drawer{padding-left:5px;padding-right:5px}body.rtl .column:first-child,body.rtl .drawer:first-child{padding-left:5px;padding-right:10px}body.rtl .columns-area>div .column,body.rtl .columns-area>div .drawer{padding-left:5px;padding-right:5px}}body.rtl .columns-area--mobile .column,body.rtl .columns-area--mobile .drawer{padding-left:0;padding-right:0}body.rtl .public-layout .header .nav-button{margin-left:8px;margin-right:0}body.rtl .public-layout .public-account-header__tabs{margin-left:0;margin-right:20px}body.rtl .landing-page__information .account__display-name{margin-right:0;margin-left:5px}body.rtl .landing-page__information .account__avatar-wrapper{margin-left:12px;margin-right:0}body.rtl .card__bar .display-name{margin-left:0;margin-right:15px;text-align:right}body.rtl .fa-chevron-left::before{content:\"\"}body.rtl .fa-chevron-right::before{content:\"\"}body.rtl .column-back-button__icon{margin-right:0;margin-left:5px}body.rtl .column-header__setting-arrows .column-header__setting-btn:last-child{padding-left:0;padding-right:10px}body.rtl .simple_form .input.radio_buttons .radio>label input{left:auto;right:0}.emojione[title=\":wavy_dash:\"],.emojione[title=\":waving_black_flag:\"],.emojione[title=\":water_buffalo:\"],.emojione[title=\":video_game:\"],.emojione[title=\":video_camera:\"],.emojione[title=\":vhs:\"],.emojione[title=\":turkey:\"],.emojione[title=\":tophat:\"],.emojione[title=\":top:\"],.emojione[title=\":tm:\"],.emojione[title=\":telephone_receiver:\"],.emojione[title=\":spider:\"],.emojione[title=\":speaking_head_in_silhouette:\"],.emojione[title=\":spades:\"],.emojione[title=\":soon:\"],.emojione[title=\":registered:\"],.emojione[title=\":on:\"],.emojione[title=\":musical_score:\"],.emojione[title=\":movie_camera:\"],.emojione[title=\":mortar_board:\"],.emojione[title=\":microphone:\"],.emojione[title=\":male-guard:\"],.emojione[title=\":lower_left_fountain_pen:\"],.emojione[title=\":lower_left_ballpoint_pen:\"],.emojione[title=\":kaaba:\"],.emojione[title=\":joystick:\"],.emojione[title=\":hole:\"],.emojione[title=\":hocho:\"],.emojione[title=\":heavy_plus_sign:\"],.emojione[title=\":heavy_multiplication_x:\"],.emojione[title=\":heavy_minus_sign:\"],.emojione[title=\":heavy_dollar_sign:\"],.emojione[title=\":heavy_division_sign:\"],.emojione[title=\":heavy_check_mark:\"],.emojione[title=\":guardsman:\"],.emojione[title=\":gorilla:\"],.emojione[title=\":fried_egg:\"],.emojione[title=\":film_projector:\"],.emojione[title=\":female-guard:\"],.emojione[title=\":end:\"],.emojione[title=\":electric_plug:\"],.emojione[title=\":eight_pointed_black_star:\"],.emojione[title=\":dark_sunglasses:\"],.emojione[title=\":currency_exchange:\"],.emojione[title=\":curly_loop:\"],.emojione[title=\":copyright:\"],.emojione[title=\":clubs:\"],.emojione[title=\":camera_with_flash:\"],.emojione[title=\":camera:\"],.emojione[title=\":busts_in_silhouette:\"],.emojione[title=\":bust_in_silhouette:\"],.emojione[title=\":bowling:\"],.emojione[title=\":bomb:\"],.emojione[title=\":black_small_square:\"],.emojione[title=\":black_nib:\"],.emojione[title=\":black_medium_square:\"],.emojione[title=\":black_medium_small_square:\"],.emojione[title=\":black_large_square:\"],.emojione[title=\":black_heart:\"],.emojione[title=\":black_circle:\"],.emojione[title=\":back:\"],.emojione[title=\":ant:\"],.emojione[title=\":8ball:\"]{filter:drop-shadow(1px 1px 0 #ffffff) drop-shadow(-1px 1px 0 #ffffff) drop-shadow(1px -1px 0 #ffffff) drop-shadow(-1px -1px 0 #ffffff);transform:scale(0.71)}.compose-form .compose-form__modifiers .compose-form__upload-description input::placeholder{opacity:1}.rich-formatting a,.rich-formatting p a,.rich-formatting li a,.landing-page__short-description p a,.status__content a,.reply-indicator__content a{color:#5f86e2;text-decoration:underline}.rich-formatting a.mention,.rich-formatting p a.mention,.rich-formatting li a.mention,.landing-page__short-description p a.mention,.status__content a.mention,.reply-indicator__content a.mention{text-decoration:none}.rich-formatting a.mention span,.rich-formatting p a.mention span,.rich-formatting li a.mention span,.landing-page__short-description p a.mention span,.status__content a.mention span,.reply-indicator__content a.mention span{text-decoration:underline}.rich-formatting a.mention span:hover,.rich-formatting a.mention span:focus,.rich-formatting a.mention span:active,.rich-formatting p a.mention span:hover,.rich-formatting p a.mention span:focus,.rich-formatting p a.mention span:active,.rich-formatting li a.mention span:hover,.rich-formatting li a.mention span:focus,.rich-formatting li a.mention span:active,.landing-page__short-description p a.mention span:hover,.landing-page__short-description p a.mention span:focus,.landing-page__short-description p a.mention span:active,.status__content a.mention span:hover,.status__content a.mention span:focus,.status__content a.mention span:active,.reply-indicator__content a.mention span:hover,.reply-indicator__content a.mention span:focus,.reply-indicator__content a.mention span:active{text-decoration:none}.rich-formatting a:hover,.rich-formatting a:focus,.rich-formatting a:active,.rich-formatting p a:hover,.rich-formatting p a:focus,.rich-formatting p a:active,.rich-formatting li a:hover,.rich-formatting li a:focus,.rich-formatting li a:active,.landing-page__short-description p a:hover,.landing-page__short-description p a:focus,.landing-page__short-description p a:active,.status__content a:hover,.status__content a:focus,.status__content a:active,.reply-indicator__content a:hover,.reply-indicator__content a:focus,.reply-indicator__content a:active{text-decoration:none}.rich-formatting a.status__content__spoiler-link,.rich-formatting p a.status__content__spoiler-link,.rich-formatting li a.status__content__spoiler-link,.landing-page__short-description p a.status__content__spoiler-link,.status__content a.status__content__spoiler-link,.reply-indicator__content a.status__content__spoiler-link{color:#ecf0f4;text-decoration:none}.status__content__read-more-button{text-decoration:underline}.status__content__read-more-button:hover,.status__content__read-more-button:focus,.status__content__read-more-button:active{text-decoration:none}.getting-started__footer a{text-decoration:underline}.getting-started__footer a:hover,.getting-started__footer a:focus,.getting-started__footer a:active{text-decoration:none}.nothing-here{color:#dde3ec}.public-layout .public-account-header__tabs__tabs .counter.active::after{border-bottom:4px solid #2b5fd9}","/* http://meyerweb.com/eric/tools/css/reset/\n v2.0 | 20110126\n License: none (public domain)\n*/\n\nhtml, body, div, span, applet, object, iframe,\nh1, h2, h3, h4, h5, h6, p, blockquote, pre,\na, abbr, acronym, address, big, cite, code,\ndel, dfn, em, img, ins, kbd, q, s, samp,\nsmall, strike, strong, sub, sup, tt, var,\nb, u, i, center,\ndl, dt, dd, ol, ul, li,\nfieldset, form, label, legend,\ntable, caption, tbody, tfoot, thead, tr, th, td,\narticle, aside, canvas, details, embed,\nfigure, figcaption, footer, header, hgroup,\nmenu, nav, output, ruby, section, summary,\ntime, mark, audio, video {\n margin: 0;\n padding: 0;\n border: 0;\n font-size: 100%;\n font: inherit;\n vertical-align: baseline;\n}\n\n/* HTML5 display-role reset for older browsers */\narticle, aside, details, figcaption, figure,\nfooter, header, hgroup, menu, nav, section {\n display: block;\n}\n\nbody {\n line-height: 1;\n}\n\nol, ul {\n list-style: none;\n}\n\nblockquote, q {\n quotes: none;\n}\n\nblockquote:before, blockquote:after,\nq:before, q:after {\n content: '';\n content: none;\n}\n\ntable {\n border-collapse: collapse;\n border-spacing: 0;\n}\n\nhtml {\n scrollbar-color: lighten($ui-base-color, 4%) rgba($base-overlay-background, 0.1);\n}\n\n::-webkit-scrollbar {\n width: 12px;\n height: 12px;\n}\n\n::-webkit-scrollbar-thumb {\n background: lighten($ui-base-color, 4%);\n border: 0px none $base-border-color;\n border-radius: 50px;\n}\n\n::-webkit-scrollbar-thumb:hover {\n background: lighten($ui-base-color, 6%);\n}\n\n::-webkit-scrollbar-thumb:active {\n background: lighten($ui-base-color, 4%);\n}\n\n::-webkit-scrollbar-track {\n border: 0px none $base-border-color;\n border-radius: 0;\n background: rgba($base-overlay-background, 0.1);\n}\n\n::-webkit-scrollbar-track:hover {\n background: $ui-base-color;\n}\n\n::-webkit-scrollbar-track:active {\n background: $ui-base-color;\n}\n\n::-webkit-scrollbar-corner {\n background: transparent;\n}\n","// Dependent colors\n$black: #000000;\n\n$classic-base-color: #282c37;\n$classic-primary-color: #9baec8;\n$classic-secondary-color: #d9e1e8;\n$classic-highlight-color: #2b90d9;\n\n$ui-base-color: $classic-base-color !default;\n$ui-primary-color: $classic-primary-color !default;\n$ui-secondary-color: $classic-secondary-color !default;\n\n// Differences\n$ui-highlight-color: #2b5fd9;\n\n$darker-text-color: lighten($ui-primary-color, 20%) !default;\n$dark-text-color: lighten($ui-primary-color, 12%) !default;\n$secondary-text-color: lighten($ui-secondary-color, 6%) !default;\n$highlight-text-color: $classic-highlight-color !default;\n$action-button-color: #8d9ac2;\n\n$inverted-text-color: $black !default;\n$lighter-text-color: darken($ui-base-color, 6%) !default;\n$light-text-color: darken($ui-primary-color, 40%) !default;\n","@function hex-color($color) {\n @if type-of($color) == 'color' {\n $color: str-slice(ie-hex-str($color), 4);\n }\n\n @return '%23' + unquote($color);\n}\n\nbody {\n font-family: $font-sans-serif, sans-serif;\n background: darken($ui-base-color, 7%);\n font-size: 13px;\n line-height: 18px;\n font-weight: 400;\n color: $primary-text-color;\n text-rendering: optimizelegibility;\n font-feature-settings: \"kern\";\n text-size-adjust: none;\n -webkit-tap-highlight-color: rgba(0, 0, 0, 0);\n -webkit-tap-highlight-color: transparent;\n\n &.system-font {\n // system-ui => standard property (Chrome/Android WebView 56+, Opera 43+, Safari 11+)\n // -apple-system => Safari <11 specific\n // BlinkMacSystemFont => Chrome <56 on macOS specific\n // Segoe UI => Windows 7/8/10\n // Oxygen => KDE\n // Ubuntu => Unity/Ubuntu\n // Cantarell => GNOME\n // Fira Sans => Firefox OS\n // Droid Sans => Older Androids (<4.0)\n // Helvetica Neue => Older macOS <10.11\n // $font-sans-serif => web-font (Roboto) fallback and newer Androids (>=4.0)\n font-family: system-ui, -apple-system, BlinkMacSystemFont, \"Segoe UI\", \"Oxygen\", \"Ubuntu\", \"Cantarell\", \"Fira Sans\", \"Droid Sans\", \"Helvetica Neue\", $font-sans-serif, sans-serif;\n }\n\n &.app-body {\n padding: 0;\n\n &.layout-single-column {\n height: auto;\n min-height: 100vh;\n overflow-y: scroll;\n }\n\n &.layout-multiple-columns {\n position: absolute;\n width: 100%;\n height: 100%;\n }\n\n &.with-modals--active {\n overflow-y: hidden;\n }\n }\n\n &.lighter {\n background: $ui-base-color;\n }\n\n &.with-modals {\n overflow-x: hidden;\n overflow-y: scroll;\n\n &--active {\n overflow-y: hidden;\n }\n }\n\n &.player {\n text-align: center;\n }\n\n &.embed {\n background: lighten($ui-base-color, 4%);\n margin: 0;\n padding-bottom: 0;\n\n .container {\n position: absolute;\n width: 100%;\n height: 100%;\n overflow: hidden;\n }\n }\n\n &.admin {\n background: darken($ui-base-color, 4%);\n padding: 0;\n }\n\n &.error {\n position: absolute;\n text-align: center;\n color: $darker-text-color;\n background: $ui-base-color;\n width: 100%;\n height: 100%;\n padding: 0;\n display: flex;\n justify-content: center;\n align-items: center;\n\n .dialog {\n vertical-align: middle;\n margin: 20px;\n\n &__illustration {\n img {\n display: block;\n max-width: 470px;\n width: 100%;\n height: auto;\n margin-top: -120px;\n }\n }\n\n h1 {\n font-size: 20px;\n line-height: 28px;\n font-weight: 400;\n }\n }\n }\n}\n\nbutton {\n font-family: inherit;\n cursor: pointer;\n\n &:focus {\n outline: none;\n }\n}\n\n.app-holder {\n &,\n & > div,\n & > noscript {\n display: flex;\n width: 100%;\n align-items: center;\n justify-content: center;\n outline: 0 !important;\n }\n\n & > noscript {\n height: 100vh;\n }\n}\n\n.layout-single-column .app-holder {\n &,\n & > div {\n min-height: 100vh;\n }\n}\n\n.layout-multiple-columns .app-holder {\n &,\n & > div {\n height: 100%;\n }\n}\n\n.error-boundary,\n.app-holder noscript {\n flex-direction: column;\n font-size: 16px;\n font-weight: 400;\n line-height: 1.7;\n color: lighten($error-red, 4%);\n text-align: center;\n\n & > div {\n max-width: 500px;\n }\n\n p {\n margin-bottom: .85em;\n\n &:last-child {\n margin-bottom: 0;\n }\n }\n\n a {\n color: $highlight-text-color;\n\n &:hover,\n &:focus,\n &:active {\n text-decoration: none;\n }\n }\n\n &__footer {\n color: $dark-text-color;\n font-size: 13px;\n\n a {\n color: $dark-text-color;\n }\n }\n\n button {\n display: inline;\n border: 0;\n background: transparent;\n color: $dark-text-color;\n font: inherit;\n padding: 0;\n margin: 0;\n line-height: inherit;\n cursor: pointer;\n outline: 0;\n transition: color 300ms linear;\n text-decoration: underline;\n\n &:hover,\n &:focus,\n &:active {\n text-decoration: none;\n }\n\n &.copied {\n color: $valid-value-color;\n transition: none;\n }\n }\n}\n","// Commonly used web colors\n$black: #000000; // Black\n$white: #ffffff; // White\n$success-green: #79bd9a !default; // Padua\n$error-red: #df405a !default; // Cerise\n$warning-red: #ff5050 !default; // Sunset Orange\n$gold-star: #ca8f04 !default; // Dark Goldenrod\n\n$red-bookmark: $warning-red;\n\n// Pleroma-Dark colors\n$pleroma-bg: #121a24;\n$pleroma-fg: #182230;\n$pleroma-text: #b9b9ba;\n$pleroma-links: #d8a070;\n\n// Values from the classic Mastodon UI\n$classic-base-color: $pleroma-bg;\n$classic-primary-color: #9baec8;\n$classic-secondary-color: #d9e1e8;\n$classic-highlight-color: #d8a070;\n\n// Variables for defaults in UI\n$base-shadow-color: $black !default;\n$base-overlay-background: $black !default;\n$base-border-color: $white !default;\n$simple-background-color: $white !default;\n$valid-value-color: $success-green !default;\n$error-value-color: $error-red !default;\n\n// Tell UI to use selected colors\n$ui-base-color: $classic-base-color !default; // Darkest\n$ui-base-lighter-color: lighten($ui-base-color, 26%) !default; // Lighter darkest\n$ui-primary-color: $classic-primary-color !default; // Lighter\n$ui-secondary-color: $classic-secondary-color !default; // Lightest\n$ui-highlight-color: $classic-highlight-color !default;\n\n// Variables for texts\n$primary-text-color: $white !default;\n$darker-text-color: $ui-primary-color !default;\n$dark-text-color: $ui-base-lighter-color !default;\n$secondary-text-color: $ui-secondary-color !default;\n$highlight-text-color: $ui-highlight-color !default;\n$action-button-color: $ui-base-lighter-color !default;\n// For texts on inverted backgrounds\n$inverted-text-color: $ui-base-color !default;\n$lighter-text-color: $ui-base-lighter-color !default;\n$light-text-color: $ui-primary-color !default;\n\n// Language codes that uses CJK fonts\n$cjk-langs: ja, ko, zh-CN, zh-HK, zh-TW;\n\n// Variables for components\n$media-modal-media-max-width: 100%;\n// put margins on top and bottom of image to avoid the screen covered by image.\n$media-modal-media-max-height: 80%;\n\n$no-gap-breakpoint: 415px;\n\n$font-sans-serif: 'mastodon-font-sans-serif' !default;\n$font-display: 'mastodon-font-display' !default;\n$font-monospace: 'mastodon-font-monospace' !default;\n",".container-alt {\n width: 700px;\n margin: 0 auto;\n margin-top: 40px;\n\n @media screen and (max-width: 740px) {\n width: 100%;\n margin: 0;\n }\n}\n\n.logo-container {\n margin: 100px auto 50px;\n\n @media screen and (max-width: 500px) {\n margin: 40px auto 0;\n }\n\n h1 {\n display: flex;\n justify-content: center;\n align-items: center;\n\n svg {\n fill: $primary-text-color;\n height: 42px;\n margin-right: 10px;\n }\n\n a {\n display: flex;\n justify-content: center;\n align-items: center;\n color: $primary-text-color;\n text-decoration: none;\n outline: 0;\n padding: 12px 16px;\n line-height: 32px;\n font-family: $font-display, sans-serif;\n font-weight: 500;\n font-size: 14px;\n }\n }\n}\n\n.compose-standalone {\n .compose-form {\n width: 400px;\n margin: 0 auto;\n padding: 20px 0;\n margin-top: 40px;\n box-sizing: border-box;\n\n @media screen and (max-width: 400px) {\n width: 100%;\n margin-top: 0;\n padding: 20px;\n }\n }\n}\n\n.account-header {\n width: 400px;\n margin: 0 auto;\n display: flex;\n font-size: 13px;\n line-height: 18px;\n box-sizing: border-box;\n padding: 20px 0;\n padding-bottom: 0;\n margin-bottom: -30px;\n margin-top: 40px;\n\n @media screen and (max-width: 440px) {\n width: 100%;\n margin: 0;\n margin-bottom: 10px;\n padding: 20px;\n padding-bottom: 0;\n }\n\n .avatar {\n width: 40px;\n height: 40px;\n margin-right: 8px;\n\n img {\n width: 100%;\n height: 100%;\n display: block;\n margin: 0;\n border-radius: 4px;\n }\n }\n\n .name {\n flex: 1 1 auto;\n color: $secondary-text-color;\n width: calc(100% - 88px);\n\n .username {\n display: block;\n font-weight: 500;\n text-overflow: ellipsis;\n overflow: hidden;\n }\n }\n\n .logout-link {\n display: block;\n font-size: 32px;\n line-height: 40px;\n margin-left: 8px;\n }\n}\n\n.grid-3 {\n display: grid;\n grid-gap: 10px;\n grid-template-columns: 3fr 1fr;\n grid-auto-columns: 25%;\n grid-auto-rows: max-content;\n\n .column-0 {\n grid-column: 1 / 3;\n grid-row: 1;\n }\n\n .column-1 {\n grid-column: 1;\n grid-row: 2;\n }\n\n .column-2 {\n grid-column: 2;\n grid-row: 2;\n }\n\n .column-3 {\n grid-column: 1 / 3;\n grid-row: 3;\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n grid-gap: 0;\n grid-template-columns: minmax(0, 100%);\n\n .column-0 {\n grid-column: 1;\n }\n\n .column-1 {\n grid-column: 1;\n grid-row: 3;\n }\n\n .column-2 {\n grid-column: 1;\n grid-row: 2;\n }\n\n .column-3 {\n grid-column: 1;\n grid-row: 4;\n }\n }\n}\n\n.grid-4 {\n display: grid;\n grid-gap: 10px;\n grid-template-columns: repeat(4, minmax(0, 1fr));\n grid-auto-columns: 25%;\n grid-auto-rows: max-content;\n\n .column-0 {\n grid-column: 1 / 5;\n grid-row: 1;\n }\n\n .column-1 {\n grid-column: 1 / 4;\n grid-row: 2;\n }\n\n .column-2 {\n grid-column: 4;\n grid-row: 2;\n }\n\n .column-3 {\n grid-column: 2 / 5;\n grid-row: 3;\n }\n\n .column-4 {\n grid-column: 1;\n grid-row: 3;\n }\n\n .landing-page__call-to-action {\n min-height: 100%;\n }\n\n .flash-message {\n margin-bottom: 10px;\n }\n\n @media screen and (max-width: 738px) {\n grid-template-columns: minmax(0, 50%) minmax(0, 50%);\n\n .landing-page__call-to-action {\n padding: 20px;\n display: flex;\n align-items: center;\n justify-content: center;\n }\n\n .row__information-board {\n width: 100%;\n justify-content: center;\n align-items: center;\n }\n\n .row__mascot {\n display: none;\n }\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n grid-gap: 0;\n grid-template-columns: minmax(0, 100%);\n\n .column-0 {\n grid-column: 1;\n }\n\n .column-1 {\n grid-column: 1;\n grid-row: 3;\n }\n\n .column-2 {\n grid-column: 1;\n grid-row: 2;\n }\n\n .column-3 {\n grid-column: 1;\n grid-row: 5;\n }\n\n .column-4 {\n grid-column: 1;\n grid-row: 4;\n }\n }\n}\n\n.public-layout {\n @media screen and (max-width: $no-gap-breakpoint) {\n padding-top: 48px;\n }\n\n .container {\n max-width: 960px;\n\n @media screen and (max-width: $no-gap-breakpoint) {\n padding: 0;\n }\n }\n\n .header {\n background: lighten($ui-base-color, 8%);\n box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);\n border-radius: 4px;\n height: 48px;\n margin: 10px 0;\n display: flex;\n align-items: stretch;\n justify-content: center;\n flex-wrap: nowrap;\n overflow: hidden;\n\n @media screen and (max-width: $no-gap-breakpoint) {\n position: fixed;\n width: 100%;\n top: 0;\n left: 0;\n margin: 0;\n border-radius: 0;\n box-shadow: none;\n z-index: 110;\n }\n\n & > div {\n flex: 1 1 33.3%;\n min-height: 1px;\n }\n\n .nav-left {\n display: flex;\n align-items: stretch;\n justify-content: flex-start;\n flex-wrap: nowrap;\n }\n\n .nav-center {\n display: flex;\n align-items: stretch;\n justify-content: center;\n flex-wrap: nowrap;\n }\n\n .nav-right {\n display: flex;\n align-items: stretch;\n justify-content: flex-end;\n flex-wrap: nowrap;\n }\n\n .brand {\n display: block;\n padding: 15px;\n\n svg {\n display: block;\n height: 18px;\n width: auto;\n position: relative;\n bottom: -2px;\n fill: $primary-text-color;\n\n @media screen and (max-width: $no-gap-breakpoint) {\n height: 20px;\n }\n }\n\n &:hover,\n &:focus,\n &:active {\n background: lighten($ui-base-color, 12%);\n }\n }\n\n .nav-link {\n display: flex;\n align-items: center;\n padding: 0 1rem;\n font-size: 12px;\n font-weight: 500;\n text-decoration: none;\n color: $darker-text-color;\n white-space: nowrap;\n text-align: center;\n\n &:hover,\n &:focus,\n &:active {\n text-decoration: underline;\n color: $primary-text-color;\n }\n\n @media screen and (max-width: 550px) {\n &.optional {\n display: none;\n }\n }\n }\n\n .nav-button {\n background: lighten($ui-base-color, 16%);\n margin: 8px;\n margin-left: 0;\n border-radius: 4px;\n\n &:hover,\n &:focus,\n &:active {\n text-decoration: none;\n background: lighten($ui-base-color, 20%);\n }\n }\n }\n\n $no-columns-breakpoint: 600px;\n\n .grid {\n display: grid;\n grid-gap: 10px;\n grid-template-columns: minmax(300px, 3fr) minmax(298px, 1fr);\n grid-auto-columns: 25%;\n grid-auto-rows: max-content;\n\n .column-0 {\n grid-row: 1;\n grid-column: 1;\n }\n\n .column-1 {\n grid-row: 1;\n grid-column: 2;\n }\n\n @media screen and (max-width: $no-columns-breakpoint) {\n grid-template-columns: 100%;\n grid-gap: 0;\n\n .column-1 {\n display: none;\n }\n }\n }\n\n .directory__card {\n border-radius: 4px;\n\n @media screen and (max-width: $no-gap-breakpoint) {\n border-radius: 0;\n }\n }\n\n .page-header {\n @media screen and (max-width: $no-gap-breakpoint) {\n border-bottom: 0;\n }\n }\n\n .public-account-header {\n overflow: hidden;\n margin-bottom: 10px;\n box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);\n\n &.inactive {\n opacity: 0.5;\n\n .public-account-header__image,\n .avatar {\n filter: grayscale(100%);\n }\n\n .logo-button {\n background-color: $secondary-text-color;\n }\n }\n\n &__image {\n border-radius: 4px 4px 0 0;\n overflow: hidden;\n height: 300px;\n position: relative;\n background: darken($ui-base-color, 12%);\n\n &::after {\n content: \"\";\n display: block;\n position: absolute;\n width: 100%;\n height: 100%;\n box-shadow: inset 0 -1px 1px 1px rgba($base-shadow-color, 0.15);\n top: 0;\n left: 0;\n }\n\n img {\n object-fit: cover;\n display: block;\n width: 100%;\n height: 100%;\n margin: 0;\n border-radius: 4px 4px 0 0;\n }\n\n @media screen and (max-width: 600px) {\n height: 200px;\n }\n }\n\n &--no-bar {\n margin-bottom: 0;\n\n .public-account-header__image,\n .public-account-header__image img {\n border-radius: 4px;\n\n @media screen and (max-width: $no-gap-breakpoint) {\n border-radius: 0;\n }\n }\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n margin-bottom: 0;\n box-shadow: none;\n\n &__image::after {\n display: none;\n }\n\n &__image,\n &__image img {\n border-radius: 0;\n }\n }\n\n &__bar {\n position: relative;\n margin-top: -80px;\n display: flex;\n justify-content: flex-start;\n\n &::before {\n content: \"\";\n display: block;\n background: lighten($ui-base-color, 4%);\n position: absolute;\n bottom: 0;\n left: 0;\n right: 0;\n height: 60px;\n border-radius: 0 0 4px 4px;\n z-index: -1;\n }\n\n .avatar {\n display: block;\n width: 120px;\n height: 120px;\n padding-left: 20px - 4px;\n flex: 0 0 auto;\n\n img {\n display: block;\n width: 100%;\n height: 100%;\n margin: 0;\n border-radius: 50%;\n border: 4px solid lighten($ui-base-color, 4%);\n background: darken($ui-base-color, 8%);\n }\n }\n\n @media screen and (max-width: 600px) {\n margin-top: 0;\n background: lighten($ui-base-color, 4%);\n border-radius: 0 0 4px 4px;\n padding: 5px;\n\n &::before {\n display: none;\n }\n\n .avatar {\n width: 48px;\n height: 48px;\n padding: 7px 0;\n padding-left: 10px;\n\n img {\n border: 0;\n border-radius: 4px;\n }\n\n @media screen and (max-width: 360px) {\n display: none;\n }\n }\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n border-radius: 0;\n }\n\n @media screen and (max-width: $no-columns-breakpoint) {\n flex-wrap: wrap;\n }\n }\n\n &__tabs {\n flex: 1 1 auto;\n margin-left: 20px;\n\n &__name {\n padding-top: 20px;\n padding-bottom: 8px;\n\n h1 {\n font-size: 20px;\n line-height: 18px * 1.5;\n color: $primary-text-color;\n font-weight: 500;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n text-shadow: 1px 1px 1px $base-shadow-color;\n\n small {\n display: block;\n font-size: 14px;\n color: $primary-text-color;\n font-weight: 400;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n }\n }\n\n @media screen and (max-width: 600px) {\n margin-left: 15px;\n display: flex;\n justify-content: space-between;\n align-items: center;\n\n &__name {\n padding-top: 0;\n padding-bottom: 0;\n\n h1 {\n font-size: 16px;\n line-height: 24px;\n text-shadow: none;\n\n small {\n color: $darker-text-color;\n }\n }\n }\n }\n\n &__tabs {\n display: flex;\n justify-content: flex-start;\n align-items: stretch;\n height: 58px;\n\n .details-counters {\n display: flex;\n flex-direction: row;\n min-width: 300px;\n }\n\n @media screen and (max-width: $no-columns-breakpoint) {\n .details-counters {\n display: none;\n }\n }\n\n .counter {\n min-width: 33.3%;\n box-sizing: border-box;\n flex: 0 0 auto;\n color: $darker-text-color;\n padding: 10px;\n border-right: 1px solid lighten($ui-base-color, 4%);\n cursor: default;\n text-align: center;\n position: relative;\n\n a {\n display: block;\n }\n\n &:last-child {\n border-right: 0;\n }\n\n &::after {\n display: block;\n content: \"\";\n position: absolute;\n bottom: 0;\n left: 0;\n width: 100%;\n border-bottom: 4px solid $ui-primary-color;\n opacity: 0.5;\n transition: all 400ms ease;\n }\n\n &.active {\n &::after {\n border-bottom: 4px solid $highlight-text-color;\n opacity: 1;\n }\n\n &.inactive::after {\n border-bottom-color: $secondary-text-color;\n }\n }\n\n &:hover {\n &::after {\n opacity: 1;\n transition-duration: 100ms;\n }\n }\n\n a {\n text-decoration: none;\n color: inherit;\n }\n\n .counter-label {\n font-size: 12px;\n display: block;\n }\n\n .counter-number {\n font-weight: 500;\n font-size: 18px;\n margin-bottom: 5px;\n color: $primary-text-color;\n font-family: $font-display, sans-serif;\n }\n }\n\n .spacer {\n flex: 1 1 auto;\n height: 1px;\n }\n\n &__buttons {\n padding: 7px 8px;\n }\n }\n }\n\n &__extra {\n display: none;\n margin-top: 4px;\n\n .public-account-bio {\n border-radius: 0;\n box-shadow: none;\n background: transparent;\n margin: 0 -5px;\n\n .account__header__fields {\n border-top: 1px solid lighten($ui-base-color, 12%);\n }\n\n .roles {\n display: none;\n }\n }\n\n &__links {\n margin-top: -15px;\n font-size: 14px;\n color: $darker-text-color;\n\n a {\n display: inline-block;\n color: $darker-text-color;\n text-decoration: none;\n padding: 15px;\n font-weight: 500;\n\n strong {\n font-weight: 700;\n color: $primary-text-color;\n }\n }\n }\n\n @media screen and (max-width: $no-columns-breakpoint) {\n display: block;\n flex: 100%;\n }\n }\n }\n\n .account__section-headline {\n border-radius: 4px 4px 0 0;\n\n @media screen and (max-width: $no-gap-breakpoint) {\n border-radius: 0;\n }\n }\n\n .detailed-status__meta {\n margin-top: 25px;\n }\n\n .public-account-bio {\n background: lighten($ui-base-color, 8%);\n box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);\n border-radius: 4px;\n overflow: hidden;\n margin-bottom: 10px;\n\n @media screen and (max-width: $no-gap-breakpoint) {\n box-shadow: none;\n margin-bottom: 0;\n border-radius: 0;\n }\n\n .account__header__fields {\n margin: 0;\n border-top: 0;\n\n a {\n color: lighten($ui-highlight-color, 8%);\n }\n\n dl:first-child .verified {\n border-radius: 0 4px 0 0;\n }\n\n .verified a {\n color: $valid-value-color;\n }\n }\n\n .account__header__content {\n padding: 20px;\n padding-bottom: 0;\n color: $primary-text-color;\n }\n\n &__extra,\n .roles {\n padding: 20px;\n font-size: 14px;\n color: $darker-text-color;\n }\n\n .roles {\n padding-bottom: 0;\n }\n }\n\n .directory__list {\n display: grid;\n grid-gap: 10px;\n grid-template-columns: minmax(0, 50%) minmax(0, 50%);\n\n @media screen and (max-width: $no-gap-breakpoint) {\n display: block;\n }\n\n .icon-button {\n font-size: 18px;\n }\n }\n\n .directory__card {\n margin-bottom: 0;\n }\n\n .card-grid {\n display: flex;\n flex-wrap: wrap;\n min-width: 100%;\n margin: 0 -5px;\n\n & > div {\n box-sizing: border-box;\n flex: 1 0 auto;\n width: 300px;\n padding: 0 5px;\n margin-bottom: 10px;\n max-width: 33.333%;\n\n @media screen and (max-width: 900px) {\n max-width: 50%;\n }\n\n @media screen and (max-width: 600px) {\n max-width: 100%;\n }\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n margin: 0;\n border-top: 1px solid lighten($ui-base-color, 8%);\n\n & > div {\n width: 100%;\n padding: 0;\n margin-bottom: 0;\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n\n &:last-child {\n border-bottom: 0;\n }\n\n .card__bar {\n background: $ui-base-color;\n\n &:hover,\n &:active,\n &:focus {\n background: lighten($ui-base-color, 4%);\n }\n }\n }\n }\n }\n}\n",".no-list {\n list-style: none;\n\n li {\n display: inline-block;\n margin: 0 5px;\n }\n}\n\n.recovery-codes {\n list-style: none;\n margin: 0 auto;\n\n li {\n font-size: 125%;\n line-height: 1.5;\n letter-spacing: 1px;\n }\n}\n",".public-layout {\n .footer {\n text-align: left;\n padding-top: 20px;\n padding-bottom: 60px;\n font-size: 12px;\n color: lighten($ui-base-color, 34%);\n\n @media screen and (max-width: $no-gap-breakpoint) {\n padding-left: 20px;\n padding-right: 20px;\n }\n\n .grid {\n display: grid;\n grid-gap: 10px;\n grid-template-columns: 1fr 1fr 2fr 1fr 1fr;\n\n .column-0 {\n grid-column: 1;\n grid-row: 1;\n min-width: 0;\n }\n\n .column-1 {\n grid-column: 2;\n grid-row: 1;\n min-width: 0;\n }\n\n .column-2 {\n grid-column: 3;\n grid-row: 1;\n min-width: 0;\n text-align: center;\n\n h4 a {\n color: lighten($ui-base-color, 34%);\n }\n }\n\n .column-3 {\n grid-column: 4;\n grid-row: 1;\n min-width: 0;\n }\n\n .column-4 {\n grid-column: 5;\n grid-row: 1;\n min-width: 0;\n }\n\n @media screen and (max-width: 690px) {\n grid-template-columns: 1fr 2fr 1fr;\n\n .column-0,\n .column-1 {\n grid-column: 1;\n }\n\n .column-1 {\n grid-row: 2;\n }\n\n .column-2 {\n grid-column: 2;\n }\n\n .column-3,\n .column-4 {\n grid-column: 3;\n }\n\n .column-4 {\n grid-row: 2;\n }\n }\n\n @media screen and (max-width: 600px) {\n .column-1 {\n display: block;\n }\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n .column-0,\n .column-1,\n .column-3,\n .column-4 {\n display: none;\n }\n }\n }\n\n h4 {\n text-transform: uppercase;\n font-weight: 700;\n margin-bottom: 8px;\n color: $darker-text-color;\n\n a {\n color: inherit;\n text-decoration: none;\n }\n }\n\n ul a {\n text-decoration: none;\n color: lighten($ui-base-color, 34%);\n\n &:hover,\n &:active,\n &:focus {\n text-decoration: underline;\n }\n }\n\n .brand {\n svg {\n display: block;\n height: 36px;\n width: auto;\n margin: 0 auto;\n fill: lighten($ui-base-color, 34%);\n }\n\n &:hover,\n &:focus,\n &:active {\n svg {\n fill: lighten($ui-base-color, 38%);\n }\n }\n }\n }\n}\n",".compact-header {\n h1 {\n font-size: 24px;\n line-height: 28px;\n color: $darker-text-color;\n font-weight: 500;\n margin-bottom: 20px;\n padding: 0 10px;\n word-wrap: break-word;\n\n @media screen and (max-width: 740px) {\n text-align: center;\n padding: 20px 10px 0;\n }\n\n a {\n color: inherit;\n text-decoration: none;\n }\n\n small {\n font-weight: 400;\n color: $secondary-text-color;\n }\n\n img {\n display: inline-block;\n margin-bottom: -5px;\n margin-right: 15px;\n width: 36px;\n height: 36px;\n }\n }\n}\n",".hero-widget {\n margin-bottom: 10px;\n box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);\n\n &__img {\n width: 100%;\n position: relative;\n overflow: hidden;\n border-radius: 4px 4px 0 0;\n background: $base-shadow-color;\n\n img {\n object-fit: cover;\n display: block;\n width: 100%;\n height: 100%;\n margin: 0;\n border-radius: 4px 4px 0 0;\n }\n }\n\n &__text {\n background: $ui-base-color;\n padding: 20px;\n border-radius: 0 0 4px 4px;\n font-size: 15px;\n color: $darker-text-color;\n line-height: 20px;\n word-wrap: break-word;\n font-weight: 400;\n\n .emojione {\n width: 20px;\n height: 20px;\n margin: -3px 0 0;\n }\n\n p {\n margin-bottom: 20px;\n\n &:last-child {\n margin-bottom: 0;\n }\n }\n\n em {\n display: inline;\n margin: 0;\n padding: 0;\n font-weight: 700;\n background: transparent;\n font-family: inherit;\n font-size: inherit;\n line-height: inherit;\n color: lighten($darker-text-color, 10%);\n }\n\n a {\n color: $secondary-text-color;\n text-decoration: none;\n\n &:hover {\n text-decoration: underline;\n }\n }\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n display: none;\n }\n}\n\n.endorsements-widget {\n margin-bottom: 10px;\n padding-bottom: 10px;\n\n h4 {\n padding: 10px;\n text-transform: uppercase;\n font-weight: 700;\n font-size: 13px;\n color: $darker-text-color;\n }\n\n .account {\n padding: 10px 0;\n\n &:last-child {\n border-bottom: 0;\n }\n\n .account__display-name {\n display: flex;\n align-items: center;\n }\n\n .account__avatar {\n width: 44px;\n height: 44px;\n background-size: 44px 44px;\n }\n }\n\n .trends__item {\n padding: 10px;\n }\n}\n\n.trends-widget {\n h4 {\n color: $darker-text-color;\n }\n}\n\n.box-widget {\n padding: 20px;\n border-radius: 4px;\n background: $ui-base-color;\n box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);\n}\n\n.placeholder-widget {\n padding: 16px;\n border-radius: 4px;\n border: 2px dashed $dark-text-color;\n text-align: center;\n color: $darker-text-color;\n margin-bottom: 10px;\n}\n\n.contact-widget {\n min-height: 100%;\n font-size: 15px;\n color: $darker-text-color;\n line-height: 20px;\n word-wrap: break-word;\n font-weight: 400;\n padding: 0;\n\n h4 {\n padding: 10px;\n text-transform: uppercase;\n font-weight: 700;\n font-size: 13px;\n color: $darker-text-color;\n }\n\n .account {\n border-bottom: 0;\n padding: 10px 0;\n padding-top: 5px;\n }\n\n & > a {\n display: inline-block;\n padding: 10px;\n padding-top: 0;\n color: $darker-text-color;\n text-decoration: none;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n\n &:hover,\n &:focus,\n &:active {\n text-decoration: underline;\n }\n }\n}\n\n.moved-account-widget {\n padding: 15px;\n padding-bottom: 20px;\n border-radius: 4px;\n background: $ui-base-color;\n box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);\n color: $secondary-text-color;\n font-weight: 400;\n margin-bottom: 10px;\n\n strong,\n a {\n font-weight: 500;\n\n @each $lang in $cjk-langs {\n &:lang(#{$lang}) {\n font-weight: 700;\n }\n }\n }\n\n a {\n color: inherit;\n text-decoration: underline;\n\n &.mention {\n text-decoration: none;\n\n span {\n text-decoration: none;\n }\n\n &:focus,\n &:hover,\n &:active {\n text-decoration: none;\n\n span {\n text-decoration: underline;\n }\n }\n }\n }\n\n &__message {\n margin-bottom: 15px;\n\n .fa {\n margin-right: 5px;\n color: $darker-text-color;\n }\n }\n\n &__card {\n .detailed-status__display-avatar {\n position: relative;\n cursor: pointer;\n }\n\n .detailed-status__display-name {\n margin-bottom: 0;\n text-decoration: none;\n\n span {\n font-weight: 400;\n }\n }\n }\n}\n\n.memoriam-widget {\n padding: 20px;\n border-radius: 4px;\n background: $base-shadow-color;\n box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);\n font-size: 14px;\n color: $darker-text-color;\n margin-bottom: 10px;\n}\n\n.page-header {\n background: lighten($ui-base-color, 8%);\n box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);\n border-radius: 4px;\n padding: 60px 15px;\n text-align: center;\n margin: 10px 0;\n\n h1 {\n color: $primary-text-color;\n font-size: 36px;\n line-height: 1.1;\n font-weight: 700;\n margin-bottom: 10px;\n }\n\n p {\n font-size: 15px;\n color: $darker-text-color;\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n margin-top: 0;\n background: lighten($ui-base-color, 4%);\n\n h1 {\n font-size: 24px;\n }\n }\n}\n\n.directory {\n background: $ui-base-color;\n border-radius: 4px;\n box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);\n\n &__tag {\n box-sizing: border-box;\n margin-bottom: 10px;\n\n & > a,\n & > div {\n display: flex;\n align-items: center;\n justify-content: space-between;\n background: $ui-base-color;\n border-radius: 4px;\n padding: 15px;\n text-decoration: none;\n color: inherit;\n box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);\n }\n\n & > a {\n &:hover,\n &:active,\n &:focus {\n background: lighten($ui-base-color, 8%);\n }\n }\n\n &.active > a {\n background: $ui-highlight-color;\n cursor: default;\n }\n\n &.disabled > div {\n opacity: 0.5;\n cursor: default;\n }\n\n h4 {\n flex: 1 1 auto;\n font-size: 18px;\n font-weight: 700;\n color: $primary-text-color;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n\n .fa {\n color: $darker-text-color;\n }\n\n small {\n display: block;\n font-weight: 400;\n font-size: 15px;\n margin-top: 8px;\n color: $darker-text-color;\n }\n }\n\n &.active h4 {\n &,\n .fa,\n small,\n .trends__item__current {\n color: $primary-text-color;\n }\n }\n\n .avatar-stack {\n flex: 0 0 auto;\n width: (36px + 4px) * 3;\n }\n\n &.active .avatar-stack .account__avatar {\n border-color: $ui-highlight-color;\n }\n\n .trends__item__current {\n padding-right: 0;\n }\n }\n}\n\n.avatar-stack {\n display: flex;\n justify-content: flex-end;\n\n .account__avatar {\n flex: 0 0 auto;\n width: 36px;\n height: 36px;\n border-radius: 50%;\n position: relative;\n margin-left: -10px;\n background: darken($ui-base-color, 8%);\n border: 2px solid $ui-base-color;\n\n &:nth-child(1) {\n z-index: 1;\n }\n\n &:nth-child(2) {\n z-index: 2;\n }\n\n &:nth-child(3) {\n z-index: 3;\n }\n }\n}\n\n.accounts-table {\n width: 100%;\n\n .account {\n padding: 0;\n border: 0;\n }\n\n strong {\n font-weight: 700;\n }\n\n thead th {\n text-align: center;\n text-transform: uppercase;\n color: $darker-text-color;\n font-weight: 700;\n padding: 10px;\n\n &:first-child {\n text-align: left;\n }\n }\n\n tbody td {\n padding: 15px 0;\n vertical-align: middle;\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n }\n\n tbody tr:last-child td {\n border-bottom: 0;\n }\n\n &__count {\n width: 120px;\n text-align: center;\n font-size: 15px;\n font-weight: 500;\n color: $primary-text-color;\n\n small {\n display: block;\n color: $darker-text-color;\n font-weight: 400;\n font-size: 14px;\n }\n }\n\n &__comment {\n width: 50%;\n vertical-align: initial !important;\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n tbody td.optional {\n display: none;\n }\n }\n}\n\n.moved-account-widget,\n.memoriam-widget,\n.box-widget,\n.contact-widget,\n.landing-page__information.contact-widget,\n.directory,\n.page-header {\n @media screen and (max-width: $no-gap-breakpoint) {\n margin-bottom: 0;\n box-shadow: none;\n border-radius: 0;\n }\n}\n\n$maximum-width: 1235px;\n$fluid-breakpoint: $maximum-width + 20px;\n\n.statuses-grid {\n min-height: 600px;\n\n @media screen and (max-width: 640px) {\n width: 100% !important; // Masonry layout is unnecessary at this width\n }\n\n &__item {\n width: (960px - 20px) / 3;\n\n @media screen and (max-width: $fluid-breakpoint) {\n width: (940px - 20px) / 3;\n }\n\n @media screen and (max-width: 640px) {\n width: 100%;\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n width: 100vw;\n }\n }\n\n .detailed-status {\n border-radius: 4px;\n\n @media screen and (max-width: $no-gap-breakpoint) {\n border-top: 1px solid lighten($ui-base-color, 16%);\n }\n\n &.compact {\n .detailed-status__meta {\n margin-top: 15px;\n }\n\n .status__content {\n font-size: 15px;\n line-height: 20px;\n\n .emojione {\n width: 20px;\n height: 20px;\n margin: -3px 0 0;\n }\n\n .status__content__spoiler-link {\n line-height: 20px;\n margin: 0;\n }\n }\n\n .media-gallery,\n .status-card,\n .video-player {\n margin-top: 15px;\n }\n }\n }\n}\n\n.notice-widget {\n margin-bottom: 10px;\n color: $darker-text-color;\n\n p {\n margin-bottom: 10px;\n\n &:last-child {\n margin-bottom: 0;\n }\n }\n\n a {\n font-size: 14px;\n line-height: 20px;\n }\n}\n\n.notice-widget,\n.placeholder-widget {\n a {\n text-decoration: none;\n font-weight: 500;\n color: $ui-highlight-color;\n\n &:hover,\n &:focus,\n &:active {\n text-decoration: underline;\n }\n }\n}\n\n.table-of-contents {\n background: darken($ui-base-color, 4%);\n min-height: 100%;\n font-size: 14px;\n border-radius: 4px;\n\n li a {\n display: block;\n font-weight: 500;\n padding: 15px;\n overflow: hidden;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n text-decoration: none;\n color: $primary-text-color;\n border-bottom: 1px solid lighten($ui-base-color, 4%);\n\n &:hover,\n &:focus,\n &:active {\n text-decoration: underline;\n }\n }\n\n li:last-child a {\n border-bottom: 0;\n }\n\n li ul {\n padding-left: 20px;\n border-bottom: 1px solid lighten($ui-base-color, 4%);\n }\n}\n","$no-columns-breakpoint: 600px;\n\ncode {\n font-family: $font-monospace, monospace;\n font-weight: 400;\n}\n\n.form-container {\n max-width: 400px;\n padding: 20px;\n margin: 0 auto;\n}\n\n.simple_form {\n .input {\n margin-bottom: 15px;\n overflow: hidden;\n\n &.hidden {\n margin: 0;\n }\n\n &.radio_buttons {\n .radio {\n margin-bottom: 15px;\n\n &:last-child {\n margin-bottom: 0;\n }\n }\n\n .radio > label {\n position: relative;\n padding-left: 28px;\n\n input {\n position: absolute;\n top: -2px;\n left: 0;\n }\n }\n }\n\n &.boolean {\n position: relative;\n margin-bottom: 0;\n\n .label_input > label {\n font-family: inherit;\n font-size: 14px;\n padding-top: 5px;\n color: $primary-text-color;\n display: block;\n width: auto;\n }\n\n .label_input,\n .hint {\n padding-left: 28px;\n }\n\n .label_input__wrapper {\n position: static;\n }\n\n label.checkbox {\n position: absolute;\n top: 2px;\n left: 0;\n }\n\n label a {\n color: $highlight-text-color;\n text-decoration: underline;\n\n &:hover,\n &:active,\n &:focus {\n text-decoration: none;\n }\n }\n\n .recommended {\n position: absolute;\n margin: 0 4px;\n margin-top: -2px;\n }\n }\n }\n\n .row {\n display: flex;\n margin: 0 -5px;\n\n .input {\n box-sizing: border-box;\n flex: 1 1 auto;\n width: 50%;\n padding: 0 5px;\n }\n }\n\n .hint {\n color: $darker-text-color;\n\n a {\n color: $highlight-text-color;\n }\n\n code {\n border-radius: 3px;\n padding: 0.2em 0.4em;\n background: darken($ui-base-color, 12%);\n }\n\n li {\n list-style: disc;\n margin-left: 18px;\n }\n }\n\n ul.hint {\n margin-bottom: 15px;\n }\n\n span.hint {\n display: block;\n font-size: 12px;\n margin-top: 4px;\n }\n\n p.hint {\n margin-bottom: 15px;\n color: $darker-text-color;\n\n &.subtle-hint {\n text-align: center;\n font-size: 12px;\n line-height: 18px;\n margin-top: 15px;\n margin-bottom: 0;\n }\n }\n\n .card {\n margin-bottom: 15px;\n }\n\n strong {\n font-weight: 500;\n\n @each $lang in $cjk-langs {\n &:lang(#{$lang}) {\n font-weight: 700;\n }\n }\n }\n\n .input.with_floating_label {\n .label_input {\n display: flex;\n\n & > label {\n font-family: inherit;\n font-size: 14px;\n color: $primary-text-color;\n font-weight: 500;\n min-width: 150px;\n flex: 0 0 auto;\n }\n\n input,\n select {\n flex: 1 1 auto;\n }\n }\n\n &.select .hint {\n margin-top: 6px;\n margin-left: 150px;\n }\n }\n\n .input.with_label {\n .label_input > label {\n font-family: inherit;\n font-size: 14px;\n color: $primary-text-color;\n display: block;\n margin-bottom: 8px;\n word-wrap: break-word;\n font-weight: 500;\n }\n\n .hint {\n margin-top: 6px;\n }\n\n ul {\n flex: 390px;\n }\n }\n\n .input.with_block_label {\n max-width: none;\n\n & > label {\n font-family: inherit;\n font-size: 16px;\n color: $primary-text-color;\n display: block;\n font-weight: 500;\n padding-top: 5px;\n }\n\n .hint {\n margin-bottom: 15px;\n }\n\n ul {\n columns: 2;\n }\n }\n\n .input.datetime .label_input select {\n display: inline-block;\n width: auto;\n flex: 0;\n }\n\n .required abbr {\n text-decoration: none;\n color: lighten($error-value-color, 12%);\n }\n\n .fields-group {\n margin-bottom: 25px;\n\n .input:last-child {\n margin-bottom: 0;\n }\n }\n\n .fields-row {\n display: flex;\n margin: 0 -10px;\n padding-top: 5px;\n margin-bottom: 25px;\n\n .input {\n max-width: none;\n }\n\n &__column {\n box-sizing: border-box;\n padding: 0 10px;\n flex: 1 1 auto;\n min-height: 1px;\n\n &-6 {\n max-width: 50%;\n }\n\n .actions {\n margin-top: 27px;\n }\n }\n\n .fields-group:last-child,\n .fields-row__column.fields-group {\n margin-bottom: 0;\n }\n\n @media screen and (max-width: $no-columns-breakpoint) {\n display: block;\n margin-bottom: 0;\n\n &__column {\n max-width: none;\n }\n\n .fields-group:last-child,\n .fields-row__column.fields-group,\n .fields-row__column {\n margin-bottom: 25px;\n }\n }\n }\n\n .input.radio_buttons .radio label {\n margin-bottom: 5px;\n font-family: inherit;\n font-size: 14px;\n color: $primary-text-color;\n display: block;\n width: auto;\n }\n\n .check_boxes {\n .checkbox {\n label {\n font-family: inherit;\n font-size: 14px;\n color: $primary-text-color;\n display: inline-block;\n width: auto;\n position: relative;\n padding-top: 5px;\n padding-left: 25px;\n flex: 1 1 auto;\n }\n\n input[type=checkbox] {\n position: absolute;\n left: 0;\n top: 5px;\n margin: 0;\n }\n }\n }\n\n .input.static .label_input__wrapper {\n font-size: 16px;\n padding: 10px;\n border: 1px solid $dark-text-color;\n border-radius: 4px;\n }\n\n input[type=text],\n input[type=number],\n input[type=email],\n input[type=password],\n textarea {\n box-sizing: border-box;\n font-size: 16px;\n color: $primary-text-color;\n display: block;\n width: 100%;\n outline: 0;\n font-family: inherit;\n resize: vertical;\n background: darken($ui-base-color, 10%);\n border: 1px solid darken($ui-base-color, 14%);\n border-radius: 4px;\n padding: 10px;\n\n &::placeholder {\n color: lighten($darker-text-color, 4%);\n }\n\n &:invalid {\n box-shadow: none;\n }\n\n &:focus:invalid:not(:placeholder-shown) {\n border-color: lighten($error-red, 12%);\n }\n\n &:required:valid {\n border-color: $valid-value-color;\n }\n\n &:hover {\n border-color: darken($ui-base-color, 20%);\n }\n\n &:active,\n &:focus {\n border-color: $highlight-text-color;\n background: darken($ui-base-color, 8%);\n }\n }\n\n .input.field_with_errors {\n label {\n color: lighten($error-red, 12%);\n }\n\n input[type=text],\n input[type=number],\n input[type=email],\n input[type=password],\n textarea,\n select {\n border-color: lighten($error-red, 12%);\n }\n\n .error {\n display: block;\n font-weight: 500;\n color: lighten($error-red, 12%);\n margin-top: 4px;\n }\n }\n\n .input.disabled {\n opacity: 0.5;\n }\n\n .actions {\n margin-top: 30px;\n display: flex;\n\n &.actions--top {\n margin-top: 0;\n margin-bottom: 30px;\n }\n }\n\n button,\n .button,\n .block-button {\n display: block;\n width: 100%;\n border: 0;\n border-radius: 4px;\n background: $ui-highlight-color;\n color: $primary-text-color;\n font-size: 18px;\n line-height: inherit;\n height: auto;\n padding: 10px;\n text-transform: uppercase;\n text-decoration: none;\n text-align: center;\n box-sizing: border-box;\n cursor: pointer;\n font-weight: 500;\n outline: 0;\n margin-bottom: 10px;\n margin-right: 10px;\n\n &:last-child {\n margin-right: 0;\n }\n\n &:hover {\n background-color: lighten($ui-highlight-color, 5%);\n }\n\n &:active,\n &:focus {\n background-color: darken($ui-highlight-color, 5%);\n }\n\n &:disabled:hover {\n background-color: $ui-primary-color;\n }\n\n &.negative {\n background: $error-value-color;\n\n &:hover {\n background-color: lighten($error-value-color, 5%);\n }\n\n &:active,\n &:focus {\n background-color: darken($error-value-color, 5%);\n }\n }\n }\n\n select {\n appearance: none;\n box-sizing: border-box;\n font-size: 16px;\n color: $primary-text-color;\n display: block;\n width: 100%;\n outline: 0;\n font-family: inherit;\n resize: vertical;\n background: darken($ui-base-color, 10%) url(\"data:image/svg+xml;utf8,\") no-repeat right 8px center / auto 16px;\n border: 1px solid darken($ui-base-color, 14%);\n border-radius: 4px;\n padding-left: 10px;\n padding-right: 30px;\n height: 41px;\n }\n\n h4 {\n margin-bottom: 15px !important;\n }\n\n .label_input {\n &__wrapper {\n position: relative;\n }\n\n &__append {\n position: absolute;\n right: 3px;\n top: 1px;\n padding: 10px;\n padding-bottom: 9px;\n font-size: 16px;\n color: $dark-text-color;\n font-family: inherit;\n pointer-events: none;\n cursor: default;\n max-width: 140px;\n white-space: nowrap;\n overflow: hidden;\n\n &::after {\n content: '';\n display: block;\n position: absolute;\n top: 0;\n right: 0;\n bottom: 1px;\n width: 5px;\n background-image: linear-gradient(to right, rgba(darken($ui-base-color, 10%), 0), darken($ui-base-color, 10%));\n }\n }\n }\n\n &__overlay-area {\n position: relative;\n\n &__blurred form {\n filter: blur(2px);\n }\n\n &__overlay {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n display: flex;\n justify-content: center;\n align-items: center;\n background: rgba($ui-base-color, 0.65);\n border-radius: 4px;\n margin-left: -4px;\n margin-top: -4px;\n padding: 4px;\n\n &__content {\n text-align: center;\n\n &.rich-formatting {\n &,\n p {\n color: $primary-text-color;\n }\n }\n }\n }\n }\n}\n\n.block-icon {\n display: block;\n margin: 0 auto;\n margin-bottom: 10px;\n font-size: 24px;\n}\n\n.flash-message {\n background: lighten($ui-base-color, 8%);\n color: $darker-text-color;\n border-radius: 4px;\n padding: 15px 10px;\n margin-bottom: 30px;\n text-align: center;\n\n &.notice {\n border: 1px solid rgba($valid-value-color, 0.5);\n background: rgba($valid-value-color, 0.25);\n color: $valid-value-color;\n }\n\n &.alert {\n border: 1px solid rgba($error-value-color, 0.5);\n background: rgba($error-value-color, 0.25);\n color: $error-value-color;\n }\n\n a {\n display: inline-block;\n color: $darker-text-color;\n text-decoration: none;\n\n &:hover {\n color: $primary-text-color;\n text-decoration: underline;\n }\n }\n\n p {\n margin-bottom: 15px;\n }\n\n .oauth-code {\n outline: 0;\n box-sizing: border-box;\n display: block;\n width: 100%;\n border: 0;\n padding: 10px;\n font-family: $font-monospace, monospace;\n background: $ui-base-color;\n color: $primary-text-color;\n font-size: 14px;\n margin: 0;\n\n &::-moz-focus-inner {\n border: 0;\n }\n\n &::-moz-focus-inner,\n &:focus,\n &:active {\n outline: 0 !important;\n }\n\n &:focus {\n background: lighten($ui-base-color, 4%);\n }\n }\n\n strong {\n font-weight: 500;\n\n @each $lang in $cjk-langs {\n &:lang(#{$lang}) {\n font-weight: 700;\n }\n }\n }\n\n @media screen and (max-width: 740px) and (min-width: 441px) {\n margin-top: 40px;\n }\n}\n\n.form-footer {\n margin-top: 30px;\n text-align: center;\n\n a {\n color: $darker-text-color;\n text-decoration: none;\n\n &:hover {\n text-decoration: underline;\n }\n }\n}\n\n.quick-nav {\n list-style: none;\n margin-bottom: 25px;\n font-size: 14px;\n\n li {\n display: inline-block;\n margin-right: 10px;\n }\n\n a {\n color: $highlight-text-color;\n text-transform: uppercase;\n text-decoration: none;\n font-weight: 700;\n\n &:hover,\n &:focus,\n &:active {\n color: lighten($highlight-text-color, 8%);\n }\n }\n}\n\n.oauth-prompt,\n.follow-prompt {\n margin-bottom: 30px;\n color: $darker-text-color;\n\n h2 {\n font-size: 16px;\n margin-bottom: 30px;\n text-align: center;\n }\n\n strong {\n color: $secondary-text-color;\n font-weight: 500;\n\n @each $lang in $cjk-langs {\n &:lang(#{$lang}) {\n font-weight: 700;\n }\n }\n }\n\n @media screen and (max-width: 740px) and (min-width: 441px) {\n margin-top: 40px;\n }\n}\n\n.qr-wrapper {\n display: flex;\n flex-wrap: wrap;\n align-items: flex-start;\n}\n\n.qr-code {\n flex: 0 0 auto;\n background: $simple-background-color;\n padding: 4px;\n margin: 0 10px 20px 0;\n box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);\n display: inline-block;\n\n svg {\n display: block;\n margin: 0;\n }\n}\n\n.qr-alternative {\n margin-bottom: 20px;\n color: $secondary-text-color;\n flex: 150px;\n\n samp {\n display: block;\n font-size: 14px;\n }\n}\n\n.table-form {\n p {\n margin-bottom: 15px;\n\n strong {\n font-weight: 500;\n\n @each $lang in $cjk-langs {\n &:lang(#{$lang}) {\n font-weight: 700;\n }\n }\n }\n }\n}\n\n.simple_form,\n.table-form {\n .warning {\n box-sizing: border-box;\n background: rgba($error-value-color, 0.5);\n color: $primary-text-color;\n text-shadow: 1px 1px 0 rgba($base-shadow-color, 0.3);\n box-shadow: 0 2px 6px rgba($base-shadow-color, 0.4);\n border-radius: 4px;\n padding: 10px;\n margin-bottom: 15px;\n\n a {\n color: $primary-text-color;\n text-decoration: underline;\n\n &:hover,\n &:focus,\n &:active {\n text-decoration: none;\n }\n }\n\n strong {\n font-weight: 600;\n display: block;\n margin-bottom: 5px;\n\n @each $lang in $cjk-langs {\n &:lang(#{$lang}) {\n font-weight: 700;\n }\n }\n\n .fa {\n font-weight: 400;\n }\n }\n }\n}\n\n.action-pagination {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n\n .actions,\n .pagination {\n flex: 1 1 auto;\n }\n\n .actions {\n padding: 30px 0;\n padding-right: 20px;\n flex: 0 0 auto;\n }\n}\n\n.post-follow-actions {\n text-align: center;\n color: $darker-text-color;\n\n div {\n margin-bottom: 4px;\n }\n}\n\n.alternative-login {\n margin-top: 20px;\n margin-bottom: 20px;\n\n h4 {\n font-size: 16px;\n color: $primary-text-color;\n text-align: center;\n margin-bottom: 20px;\n border: 0;\n padding: 0;\n }\n\n .button {\n display: block;\n }\n}\n\n.scope-danger {\n color: $warning-red;\n}\n\n.form_admin_settings_site_short_description,\n.form_admin_settings_site_description,\n.form_admin_settings_site_extended_description,\n.form_admin_settings_site_terms,\n.form_admin_settings_custom_css,\n.form_admin_settings_closed_registrations_message {\n textarea {\n font-family: $font-monospace, monospace;\n }\n}\n\n.input-copy {\n background: darken($ui-base-color, 10%);\n border: 1px solid darken($ui-base-color, 14%);\n border-radius: 4px;\n display: flex;\n align-items: center;\n padding-right: 4px;\n position: relative;\n top: 1px;\n transition: border-color 300ms linear;\n\n &__wrapper {\n flex: 1 1 auto;\n }\n\n input[type=text] {\n background: transparent;\n border: 0;\n padding: 10px;\n font-size: 14px;\n font-family: $font-monospace, monospace;\n }\n\n button {\n flex: 0 0 auto;\n margin: 4px;\n text-transform: none;\n font-weight: 400;\n font-size: 14px;\n padding: 7px 18px;\n padding-bottom: 6px;\n width: auto;\n transition: background 300ms linear;\n }\n\n &.copied {\n border-color: $valid-value-color;\n transition: none;\n\n button {\n background: $valid-value-color;\n transition: none;\n }\n }\n}\n\n.connection-prompt {\n margin-bottom: 25px;\n\n .fa-link {\n background-color: darken($ui-base-color, 4%);\n border-radius: 100%;\n font-size: 24px;\n padding: 10px;\n }\n\n &__column {\n align-items: center;\n display: flex;\n flex: 1;\n flex-direction: column;\n flex-shrink: 1;\n max-width: 50%;\n\n &-sep {\n align-self: center;\n flex-grow: 0;\n overflow: visible;\n position: relative;\n z-index: 1;\n }\n\n p {\n word-break: break-word;\n }\n }\n\n .account__avatar {\n margin-bottom: 20px;\n }\n\n &__connection {\n background-color: lighten($ui-base-color, 8%);\n box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);\n border-radius: 4px;\n padding: 25px 10px;\n position: relative;\n text-align: center;\n\n &::after {\n background-color: darken($ui-base-color, 4%);\n content: '';\n display: block;\n height: 100%;\n left: 50%;\n position: absolute;\n top: 0;\n width: 1px;\n }\n }\n\n &__row {\n align-items: flex-start;\n display: flex;\n flex-direction: row;\n }\n}\n",".card {\n & > a {\n display: block;\n text-decoration: none;\n color: inherit;\n box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);\n\n @media screen and (max-width: $no-gap-breakpoint) {\n box-shadow: none;\n }\n\n &:hover,\n &:active,\n &:focus {\n .card__bar {\n background: lighten($ui-base-color, 8%);\n }\n }\n }\n\n &__img {\n height: 130px;\n position: relative;\n background: darken($ui-base-color, 12%);\n border-radius: 4px 4px 0 0;\n\n img {\n display: block;\n width: 100%;\n height: 100%;\n margin: 0;\n object-fit: cover;\n border-radius: 4px 4px 0 0;\n }\n\n @media screen and (max-width: 600px) {\n height: 200px;\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n display: none;\n }\n }\n\n &__bar {\n position: relative;\n padding: 15px;\n display: flex;\n justify-content: flex-start;\n align-items: center;\n background: lighten($ui-base-color, 4%);\n border-radius: 0 0 4px 4px;\n\n @media screen and (max-width: $no-gap-breakpoint) {\n border-radius: 0;\n }\n\n .avatar {\n flex: 0 0 auto;\n width: 48px;\n height: 48px;\n padding-top: 2px;\n\n img {\n width: 100%;\n height: 100%;\n display: block;\n margin: 0;\n border-radius: 4px;\n background: darken($ui-base-color, 8%);\n object-fit: cover;\n }\n }\n\n .display-name {\n margin-left: 15px;\n text-align: left;\n\n strong {\n font-size: 15px;\n color: $primary-text-color;\n font-weight: 500;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n span {\n display: block;\n font-size: 14px;\n color: $darker-text-color;\n font-weight: 400;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n }\n }\n}\n\n.pagination {\n padding: 30px 0;\n text-align: center;\n overflow: hidden;\n\n a,\n .current,\n .newer,\n .older,\n .page,\n .gap {\n font-size: 14px;\n color: $primary-text-color;\n font-weight: 500;\n display: inline-block;\n padding: 6px 10px;\n text-decoration: none;\n }\n\n .current {\n background: $simple-background-color;\n border-radius: 100px;\n color: $inverted-text-color;\n cursor: default;\n margin: 0 10px;\n }\n\n .gap {\n cursor: default;\n }\n\n .older,\n .newer {\n text-transform: uppercase;\n color: $secondary-text-color;\n }\n\n .older {\n float: left;\n padding-left: 0;\n\n .fa {\n display: inline-block;\n margin-right: 5px;\n }\n }\n\n .newer {\n float: right;\n padding-right: 0;\n\n .fa {\n display: inline-block;\n margin-left: 5px;\n }\n }\n\n .disabled {\n cursor: default;\n color: lighten($inverted-text-color, 10%);\n }\n\n @media screen and (max-width: 700px) {\n padding: 30px 20px;\n\n .page {\n display: none;\n }\n\n .newer,\n .older {\n display: inline-block;\n }\n }\n}\n\n.nothing-here {\n background: $ui-base-color;\n box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);\n color: $light-text-color;\n font-size: 14px;\n font-weight: 500;\n text-align: center;\n display: flex;\n justify-content: center;\n align-items: center;\n cursor: default;\n border-radius: 4px;\n padding: 20px;\n min-height: 30vh;\n\n &--under-tabs {\n border-radius: 0 0 4px 4px;\n }\n\n &--flexible {\n box-sizing: border-box;\n min-height: 100%;\n }\n}\n\n.account-role,\n.simple_form .recommended {\n display: inline-block;\n padding: 4px 6px;\n cursor: default;\n border-radius: 3px;\n font-size: 12px;\n line-height: 12px;\n font-weight: 500;\n color: $ui-secondary-color;\n background-color: rgba($ui-secondary-color, 0.1);\n border: 1px solid rgba($ui-secondary-color, 0.5);\n\n &.moderator {\n color: $success-green;\n background-color: rgba($success-green, 0.1);\n border-color: rgba($success-green, 0.5);\n }\n\n &.admin {\n color: lighten($error-red, 12%);\n background-color: rgba(lighten($error-red, 12%), 0.1);\n border-color: rgba(lighten($error-red, 12%), 0.5);\n }\n}\n\n.account__header__fields {\n max-width: 100vw;\n padding: 0;\n margin: 15px -15px -15px;\n border: 0 none;\n border-top: 1px solid lighten($ui-base-color, 12%);\n border-bottom: 1px solid lighten($ui-base-color, 12%);\n font-size: 14px;\n line-height: 20px;\n\n dl {\n display: flex;\n border-bottom: 1px solid lighten($ui-base-color, 12%);\n }\n\n dt,\n dd {\n box-sizing: border-box;\n padding: 14px;\n text-align: center;\n max-height: 48px;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n }\n\n dt {\n font-weight: 500;\n width: 120px;\n flex: 0 0 auto;\n color: $secondary-text-color;\n background: rgba(darken($ui-base-color, 8%), 0.5);\n }\n\n dd {\n flex: 1 1 auto;\n color: $darker-text-color;\n }\n\n a {\n color: $highlight-text-color;\n text-decoration: none;\n\n &:hover,\n &:focus,\n &:active {\n text-decoration: underline;\n }\n }\n\n .verified {\n border: 1px solid rgba($valid-value-color, 0.5);\n background: rgba($valid-value-color, 0.25);\n\n a {\n color: $valid-value-color;\n font-weight: 500;\n }\n\n &__mark {\n color: $valid-value-color;\n }\n }\n\n dl:last-child {\n border-bottom: 0;\n }\n}\n\n.directory__tag .trends__item__current {\n width: auto;\n}\n\n.pending-account {\n &__header {\n color: $darker-text-color;\n\n a {\n color: $ui-secondary-color;\n text-decoration: none;\n\n &:hover,\n &:active,\n &:focus {\n text-decoration: underline;\n }\n }\n\n strong {\n color: $primary-text-color;\n font-weight: 700;\n }\n }\n\n &__body {\n margin-top: 10px;\n }\n}\n",".activity-stream {\n box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);\n border-radius: 4px;\n overflow: hidden;\n margin-bottom: 10px;\n\n &--under-tabs {\n border-radius: 0 0 4px 4px;\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n margin-bottom: 0;\n border-radius: 0;\n box-shadow: none;\n }\n\n &--headless {\n border-radius: 0;\n margin: 0;\n box-shadow: none;\n\n .detailed-status,\n .status {\n border-radius: 0 !important;\n }\n }\n\n div[data-component] {\n width: 100%;\n }\n\n .entry {\n background: $ui-base-color;\n\n .detailed-status,\n .status,\n .load-more {\n animation: none;\n }\n\n &:last-child {\n .detailed-status,\n .status,\n .load-more {\n border-bottom: 0;\n border-radius: 0 0 4px 4px;\n }\n }\n\n &:first-child {\n .detailed-status,\n .status,\n .load-more {\n border-radius: 4px 4px 0 0;\n }\n\n &:last-child {\n .detailed-status,\n .status,\n .load-more {\n border-radius: 4px;\n }\n }\n }\n\n @media screen and (max-width: 740px) {\n .detailed-status,\n .status,\n .load-more {\n border-radius: 0 !important;\n }\n }\n }\n\n &--highlighted .entry {\n background: lighten($ui-base-color, 8%);\n }\n}\n\n.button.logo-button {\n flex: 0 auto;\n font-size: 14px;\n background: $ui-highlight-color;\n color: $primary-text-color;\n text-transform: none;\n line-height: 36px;\n height: auto;\n padding: 3px 15px;\n border: 0;\n\n svg {\n width: 20px;\n height: auto;\n vertical-align: middle;\n margin-right: 5px;\n fill: $primary-text-color;\n }\n\n &:active,\n &:focus,\n &:hover {\n background: lighten($ui-highlight-color, 10%);\n }\n\n &:disabled,\n &.disabled {\n &:active,\n &:focus,\n &:hover {\n background: $ui-primary-color;\n }\n }\n\n &.button--destructive {\n &:active,\n &:focus,\n &:hover {\n background: $error-red;\n }\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n svg {\n display: none;\n }\n }\n}\n\n.embed,\n.public-layout {\n .detailed-status {\n padding: 15px;\n }\n\n .status {\n padding: 15px 15px 15px (48px + 15px * 2);\n min-height: 48px + 2px;\n\n &__avatar {\n left: 15px;\n top: 17px;\n }\n\n &__content {\n padding-top: 5px;\n }\n\n &__prepend {\n margin-left: 48px + 15px * 2;\n padding-top: 15px;\n }\n\n &__prepend-icon-wrapper {\n left: -32px;\n }\n\n .media-gallery,\n &__action-bar,\n .video-player {\n margin-top: 10px;\n }\n }\n}\n","button.icon-button i.fa-retweet {\n background-image: url(\"data:image/svg+xml;utf8,\");\n\n &:hover {\n background-image: url(\"data:image/svg+xml;utf8,\");\n }\n}\n\nbutton.icon-button.disabled i.fa-retweet {\n background-image: url(\"data:image/svg+xml;utf8,\");\n}\n",".app-body {\n -webkit-overflow-scrolling: touch;\n -ms-overflow-style: -ms-autohiding-scrollbar;\n}\n\n.animated-number {\n display: inline-flex;\n flex-direction: column;\n align-items: stretch;\n overflow: hidden;\n position: relative;\n}\n\n.link-button {\n display: block;\n font-size: 15px;\n line-height: 20px;\n color: $ui-highlight-color;\n border: 0;\n background: transparent;\n padding: 0;\n cursor: pointer;\n\n &:hover,\n &:active {\n text-decoration: underline;\n }\n\n &:disabled {\n color: $ui-primary-color;\n cursor: default;\n }\n}\n\n.button {\n background-color: $ui-highlight-color;\n border: 10px none;\n border-radius: 4px;\n box-sizing: border-box;\n color: $primary-text-color;\n cursor: pointer;\n display: inline-block;\n font-family: inherit;\n font-size: 14px;\n font-weight: 500;\n height: 36px;\n letter-spacing: 0;\n line-height: 36px;\n overflow: hidden;\n padding: 0 16px;\n position: relative;\n text-align: center;\n text-transform: uppercase;\n text-decoration: none;\n text-overflow: ellipsis;\n transition: all 100ms ease-in;\n white-space: nowrap;\n width: auto;\n\n &:active,\n &:focus,\n &:hover {\n background-color: lighten($ui-highlight-color, 10%);\n transition: all 200ms ease-out;\n }\n\n &--destructive {\n transition: none;\n\n &:active,\n &:focus,\n &:hover {\n background-color: $error-red;\n transition: none;\n }\n }\n\n &:disabled,\n &.disabled {\n background-color: $ui-primary-color;\n cursor: default;\n }\n\n &::-moz-focus-inner {\n border: 0;\n }\n\n &::-moz-focus-inner,\n &:focus,\n &:active {\n outline: 0 !important;\n }\n\n &.button-primary,\n &.button-alternative,\n &.button-secondary,\n &.button-alternative-2 {\n font-size: 16px;\n line-height: 36px;\n height: auto;\n text-transform: none;\n padding: 4px 16px;\n }\n\n &.button-alternative {\n color: $inverted-text-color;\n background: $ui-primary-color;\n\n &:active,\n &:focus,\n &:hover {\n background-color: lighten($ui-primary-color, 4%);\n }\n }\n\n &.button-alternative-2 {\n background: $ui-base-lighter-color;\n\n &:active,\n &:focus,\n &:hover {\n background-color: lighten($ui-base-lighter-color, 4%);\n }\n }\n\n &.button-secondary {\n color: $darker-text-color;\n background: transparent;\n padding: 3px 15px;\n border: 1px solid $ui-primary-color;\n\n &:active,\n &:focus,\n &:hover {\n border-color: lighten($ui-primary-color, 4%);\n color: lighten($darker-text-color, 4%);\n }\n\n &:disabled {\n opacity: 0.5;\n }\n }\n\n &.button--block {\n display: block;\n width: 100%;\n }\n}\n\n.column__wrapper {\n display: flex;\n flex: 1 1 auto;\n position: relative;\n}\n\n.icon-button {\n display: inline-block;\n padding: 0;\n color: $action-button-color;\n border: 0;\n border-radius: 4px;\n background: transparent;\n cursor: pointer;\n transition: all 100ms ease-in;\n transition-property: background-color, color;\n\n &:hover,\n &:active,\n &:focus {\n color: lighten($action-button-color, 7%);\n background-color: rgba($action-button-color, 0.15);\n transition: all 200ms ease-out;\n transition-property: background-color, color;\n }\n\n &:focus {\n background-color: rgba($action-button-color, 0.3);\n }\n\n &.disabled {\n color: darken($action-button-color, 13%);\n background-color: transparent;\n cursor: default;\n }\n\n &.active {\n color: $highlight-text-color;\n }\n\n &::-moz-focus-inner {\n border: 0;\n }\n\n &::-moz-focus-inner,\n &:focus,\n &:active {\n outline: 0 !important;\n }\n\n &.inverted {\n color: $lighter-text-color;\n\n &:hover,\n &:active,\n &:focus {\n color: darken($lighter-text-color, 7%);\n background-color: rgba($lighter-text-color, 0.15);\n }\n\n &:focus {\n background-color: rgba($lighter-text-color, 0.3);\n }\n\n &.disabled {\n color: lighten($lighter-text-color, 7%);\n background-color: transparent;\n }\n\n &.active {\n color: $highlight-text-color;\n\n &.disabled {\n color: lighten($highlight-text-color, 13%);\n }\n }\n }\n\n &.overlayed {\n box-sizing: content-box;\n background: rgba($base-overlay-background, 0.6);\n color: rgba($primary-text-color, 0.7);\n border-radius: 4px;\n padding: 2px;\n\n &:hover {\n background: rgba($base-overlay-background, 0.9);\n }\n }\n}\n\n.text-icon-button {\n color: $lighter-text-color;\n border: 0;\n border-radius: 4px;\n background: transparent;\n cursor: pointer;\n font-weight: 600;\n font-size: 11px;\n padding: 0 3px;\n line-height: 27px;\n outline: 0;\n transition: all 100ms ease-in;\n transition-property: background-color, color;\n\n &:hover,\n &:active,\n &:focus {\n color: darken($lighter-text-color, 7%);\n background-color: rgba($lighter-text-color, 0.15);\n transition: all 200ms ease-out;\n transition-property: background-color, color;\n }\n\n &:focus {\n background-color: rgba($lighter-text-color, 0.3);\n }\n\n &.disabled {\n color: lighten($lighter-text-color, 20%);\n background-color: transparent;\n cursor: default;\n }\n\n &.active {\n color: $highlight-text-color;\n }\n\n &::-moz-focus-inner {\n border: 0;\n }\n\n &::-moz-focus-inner,\n &:focus,\n &:active {\n outline: 0 !important;\n }\n}\n\n.dropdown-menu {\n position: absolute;\n}\n\n.invisible {\n font-size: 0;\n line-height: 0;\n display: inline-block;\n width: 0;\n height: 0;\n position: absolute;\n\n img,\n svg {\n margin: 0 !important;\n border: 0 !important;\n padding: 0 !important;\n width: 0 !important;\n height: 0 !important;\n }\n}\n\n.ellipsis {\n &::after {\n content: \"…\";\n }\n}\n\n.compose-form {\n padding: 10px;\n\n &__sensitive-button {\n padding: 10px;\n padding-top: 0;\n\n font-size: 14px;\n font-weight: 500;\n\n &.active {\n color: $highlight-text-color;\n }\n\n input[type=checkbox] {\n display: none;\n }\n\n .checkbox {\n display: inline-block;\n position: relative;\n border: 1px solid $ui-primary-color;\n box-sizing: border-box;\n width: 18px;\n height: 18px;\n flex: 0 0 auto;\n margin-right: 10px;\n top: -1px;\n border-radius: 4px;\n vertical-align: middle;\n\n &.active {\n border-color: $highlight-text-color;\n background: $highlight-text-color;\n }\n }\n }\n\n .compose-form__warning {\n color: $inverted-text-color;\n margin-bottom: 10px;\n background: $ui-primary-color;\n box-shadow: 0 2px 6px rgba($base-shadow-color, 0.3);\n padding: 8px 10px;\n border-radius: 4px;\n font-size: 13px;\n font-weight: 400;\n\n strong {\n color: $inverted-text-color;\n font-weight: 500;\n\n @each $lang in $cjk-langs {\n &:lang(#{$lang}) {\n font-weight: 700;\n }\n }\n }\n\n a {\n color: $lighter-text-color;\n font-weight: 500;\n text-decoration: underline;\n\n &:hover,\n &:active,\n &:focus {\n text-decoration: none;\n }\n }\n }\n\n .emoji-picker-dropdown {\n position: absolute;\n top: 0;\n right: 0;\n }\n\n .compose-form__autosuggest-wrapper {\n position: relative;\n }\n\n .autosuggest-textarea,\n .autosuggest-input,\n .spoiler-input {\n position: relative;\n width: 100%;\n }\n\n .spoiler-input {\n height: 0;\n transform-origin: bottom;\n opacity: 0;\n\n &.spoiler-input--visible {\n height: 36px;\n margin-bottom: 11px;\n opacity: 1;\n }\n }\n\n .autosuggest-textarea__textarea,\n .spoiler-input__input {\n display: block;\n box-sizing: border-box;\n width: 100%;\n margin: 0;\n color: $inverted-text-color;\n background: $simple-background-color;\n padding: 10px;\n font-family: inherit;\n font-size: 14px;\n resize: vertical;\n border: 0;\n outline: 0;\n\n &::placeholder {\n color: $dark-text-color;\n }\n\n &:focus {\n outline: 0;\n }\n\n @media screen and (max-width: 600px) {\n font-size: 16px;\n }\n }\n\n .spoiler-input__input {\n border-radius: 4px;\n }\n\n .autosuggest-textarea__textarea {\n min-height: 100px;\n border-radius: 4px 4px 0 0;\n padding-bottom: 0;\n padding-right: 10px + 22px;\n resize: none;\n scrollbar-color: initial;\n\n &::-webkit-scrollbar {\n all: unset;\n }\n\n @media screen and (max-width: 600px) {\n height: 100px !important; // prevent auto-resize textarea\n resize: vertical;\n }\n }\n\n .autosuggest-textarea__suggestions-wrapper {\n position: relative;\n height: 0;\n }\n\n .autosuggest-textarea__suggestions {\n box-sizing: border-box;\n display: none;\n position: absolute;\n top: 100%;\n width: 100%;\n z-index: 99;\n box-shadow: 4px 4px 6px rgba($base-shadow-color, 0.4);\n background: $ui-secondary-color;\n border-radius: 0 0 4px 4px;\n color: $inverted-text-color;\n font-size: 14px;\n padding: 6px;\n\n &.autosuggest-textarea__suggestions--visible {\n display: block;\n }\n }\n\n .autosuggest-textarea__suggestions__item {\n padding: 10px;\n cursor: pointer;\n border-radius: 4px;\n\n &:hover,\n &:focus,\n &:active,\n &.selected {\n background: darken($ui-secondary-color, 10%);\n }\n }\n\n .autosuggest-account,\n .autosuggest-emoji,\n .autosuggest-hashtag {\n display: flex;\n flex-direction: row;\n align-items: center;\n justify-content: flex-start;\n line-height: 18px;\n font-size: 14px;\n }\n\n .autosuggest-hashtag {\n justify-content: space-between;\n\n &__name {\n flex: 1 1 auto;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n\n strong {\n font-weight: 500;\n }\n\n &__uses {\n flex: 0 0 auto;\n text-align: right;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n }\n\n .autosuggest-account-icon,\n .autosuggest-emoji img {\n display: block;\n margin-right: 8px;\n width: 16px;\n height: 16px;\n }\n\n .autosuggest-account .display-name__account {\n color: $lighter-text-color;\n }\n\n .compose-form__modifiers {\n color: $inverted-text-color;\n font-family: inherit;\n font-size: 14px;\n background: $simple-background-color;\n\n .compose-form__upload-wrapper {\n overflow: hidden;\n }\n\n .compose-form__uploads-wrapper {\n display: flex;\n flex-direction: row;\n padding: 5px;\n flex-wrap: wrap;\n }\n\n .compose-form__upload {\n flex: 1 1 0;\n min-width: 40%;\n margin: 5px;\n\n &__actions {\n background: linear-gradient(180deg, rgba($base-shadow-color, 0.8) 0, rgba($base-shadow-color, 0.35) 80%, transparent);\n display: flex;\n align-items: flex-start;\n justify-content: space-between;\n opacity: 0;\n transition: opacity .1s ease;\n\n .icon-button {\n flex: 0 1 auto;\n color: $secondary-text-color;\n font-size: 14px;\n font-weight: 500;\n padding: 10px;\n font-family: inherit;\n\n &:hover,\n &:focus,\n &:active {\n color: lighten($secondary-text-color, 7%);\n }\n }\n\n &.active {\n opacity: 1;\n }\n }\n\n &-description {\n position: absolute;\n z-index: 2;\n bottom: 0;\n left: 0;\n right: 0;\n box-sizing: border-box;\n background: linear-gradient(0deg, rgba($base-shadow-color, 0.8) 0, rgba($base-shadow-color, 0.35) 80%, transparent);\n padding: 10px;\n opacity: 0;\n transition: opacity .1s ease;\n\n textarea {\n background: transparent;\n color: $secondary-text-color;\n border: 0;\n padding: 0;\n margin: 0;\n width: 100%;\n font-family: inherit;\n font-size: 14px;\n font-weight: 500;\n\n &:focus {\n color: $white;\n }\n\n &::placeholder {\n opacity: 0.75;\n color: $secondary-text-color;\n }\n }\n\n &.active {\n opacity: 1;\n }\n }\n }\n\n .compose-form__upload-thumbnail {\n border-radius: 4px;\n background-color: $base-shadow-color;\n background-position: center;\n background-size: cover;\n background-repeat: no-repeat;\n height: 140px;\n width: 100%;\n overflow: hidden;\n }\n }\n\n .compose-form__buttons-wrapper {\n padding: 10px;\n background: darken($simple-background-color, 8%);\n border-radius: 0 0 4px 4px;\n display: flex;\n justify-content: space-between;\n flex: 0 0 auto;\n\n .compose-form__buttons {\n display: flex;\n\n .compose-form__upload-button-icon {\n line-height: 27px;\n }\n\n .compose-form__sensitive-button {\n display: none;\n\n &.compose-form__sensitive-button--visible {\n display: block;\n }\n\n .compose-form__sensitive-button__icon {\n line-height: 27px;\n }\n }\n }\n\n .icon-button,\n .text-icon-button {\n box-sizing: content-box;\n padding: 0 3px;\n }\n\n .character-counter__wrapper {\n align-self: center;\n margin-right: 4px;\n }\n }\n\n .compose-form__publish {\n display: flex;\n justify-content: flex-end;\n min-width: 0;\n flex: 0 0 auto;\n\n .compose-form__publish-button-wrapper {\n overflow: hidden;\n padding-top: 10px;\n }\n }\n}\n\n.character-counter {\n cursor: default;\n font-family: $font-sans-serif, sans-serif;\n font-size: 14px;\n font-weight: 600;\n color: $lighter-text-color;\n\n &.character-counter--over {\n color: $warning-red;\n }\n}\n\n.no-reduce-motion .spoiler-input {\n transition: height 0.4s ease, opacity 0.4s ease;\n}\n\n.emojione {\n font-size: inherit;\n vertical-align: middle;\n object-fit: contain;\n margin: -.2ex .15em .2ex;\n width: 16px;\n height: 16px;\n\n img {\n width: auto;\n }\n}\n\n.reply-indicator {\n border-radius: 4px;\n margin-bottom: 10px;\n background: $ui-primary-color;\n padding: 10px;\n min-height: 23px;\n overflow-y: auto;\n flex: 0 2 auto;\n}\n\n.reply-indicator__header {\n margin-bottom: 5px;\n overflow: hidden;\n}\n\n.reply-indicator__cancel {\n float: right;\n line-height: 24px;\n}\n\n.reply-indicator__display-name {\n color: $inverted-text-color;\n display: block;\n max-width: 100%;\n line-height: 24px;\n overflow: hidden;\n padding-right: 25px;\n text-decoration: none;\n}\n\n.reply-indicator__display-avatar {\n float: left;\n margin-right: 5px;\n}\n\n.status__content--with-action {\n cursor: pointer;\n}\n\n.status__content,\n.reply-indicator__content {\n position: relative;\n font-size: 15px;\n line-height: 20px;\n word-wrap: break-word;\n font-weight: 400;\n overflow: hidden;\n text-overflow: ellipsis;\n padding-top: 2px;\n color: $primary-text-color;\n\n &:focus {\n outline: 0;\n }\n\n &.status__content--with-spoiler {\n white-space: normal;\n\n .status__content__text {\n white-space: pre-wrap;\n }\n }\n\n .emojione {\n width: 20px;\n height: 20px;\n margin: -3px 0 0;\n }\n\n img {\n max-width: 100%;\n max-height: 400px;\n object-fit: contain;\n }\n\n p {\n margin-bottom: 20px;\n white-space: pre-wrap;\n\n &:last-child {\n margin-bottom: 0;\n }\n }\n\n a {\n color: $pleroma-links;\n text-decoration: none;\n\n &:hover {\n text-decoration: underline;\n\n .fa {\n color: lighten($dark-text-color, 7%);\n }\n }\n\n &.mention {\n &:hover {\n text-decoration: none;\n\n span {\n text-decoration: underline;\n }\n }\n }\n\n .fa {\n color: $dark-text-color;\n }\n }\n\n a.unhandled-link {\n color: lighten($ui-highlight-color, 8%);\n }\n\n .status__content__spoiler-link {\n background: $action-button-color;\n\n &:hover {\n background: lighten($action-button-color, 7%);\n text-decoration: none;\n }\n\n &::-moz-focus-inner {\n border: 0;\n }\n\n &::-moz-focus-inner,\n &:focus,\n &:active {\n outline: 0 !important;\n }\n }\n\n .status__content__text {\n display: none;\n\n &.status__content__text--visible {\n display: block;\n }\n }\n}\n\n.announcements__item__content {\n word-wrap: break-word;\n overflow-y: auto;\n\n .emojione {\n width: 20px;\n height: 20px;\n margin: -3px 0 0;\n }\n\n p {\n margin-bottom: 10px;\n white-space: pre-wrap;\n\n &:last-child {\n margin-bottom: 0;\n }\n }\n\n a {\n color: $secondary-text-color;\n text-decoration: none;\n\n &:hover {\n text-decoration: underline;\n }\n\n &.mention {\n &:hover {\n text-decoration: none;\n\n span {\n text-decoration: underline;\n }\n }\n }\n\n &.unhandled-link {\n color: lighten($ui-highlight-color, 8%);\n }\n }\n}\n\n.status__content.status__content--collapsed {\n max-height: 20px * 15; // 15 lines is roughly above 500 characters\n}\n\n.status__content__read-more-button {\n display: block;\n font-size: 15px;\n line-height: 20px;\n color: lighten($ui-highlight-color, 8%);\n border: 0;\n background: transparent;\n padding: 0;\n padding-top: 8px;\n text-decoration: none;\n\n &:hover,\n &:active {\n text-decoration: underline;\n }\n}\n\n.status__content__spoiler-link {\n display: inline-block;\n border-radius: 2px;\n background: transparent;\n border: 0;\n color: $inverted-text-color;\n font-weight: 700;\n font-size: 11px;\n padding: 0 6px;\n text-transform: uppercase;\n line-height: 20px;\n cursor: pointer;\n vertical-align: middle;\n}\n\n.status__wrapper--filtered {\n color: $dark-text-color;\n border: 0;\n font-size: inherit;\n text-align: center;\n line-height: inherit;\n margin: 0;\n padding: 15px;\n box-sizing: border-box;\n width: 100%;\n clear: both;\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n}\n\n.status__prepend-icon-wrapper {\n left: -26px;\n position: absolute;\n}\n\n.focusable {\n &:focus {\n outline: 0;\n background: lighten($ui-base-color, 4%);\n\n .status.status-direct {\n background: lighten($ui-base-color, 12%);\n\n &.muted {\n background: transparent;\n }\n }\n\n .detailed-status,\n .detailed-status__action-bar {\n background: lighten($ui-base-color, 8%);\n }\n }\n}\n\n.status {\n padding: 8px 10px;\n padding-left: 68px;\n position: relative;\n min-height: 54px;\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n cursor: default;\n\n @supports (-ms-overflow-style: -ms-autohiding-scrollbar) {\n // Add margin to avoid Edge auto-hiding scrollbar appearing over content.\n // On Edge 16 this is 16px and Edge <=15 it's 12px, so aim for 16px.\n padding-right: 26px; // 10px + 16px\n }\n\n @keyframes fade {\n 0% { opacity: 0; }\n 100% { opacity: 1; }\n }\n\n opacity: 1;\n animation: fade 150ms linear;\n\n .video-player,\n .audio-player {\n margin-top: 8px;\n }\n\n &.status-direct:not(.read) {\n background: lighten($ui-base-color, 8%);\n border-bottom-color: lighten($ui-base-color, 12%);\n }\n\n &.light {\n .status__relative-time {\n color: $light-text-color;\n }\n\n .status__display-name {\n color: $inverted-text-color;\n }\n\n .display-name {\n color: $light-text-color;\n\n strong {\n color: $inverted-text-color;\n }\n }\n\n .status__content {\n color: $inverted-text-color;\n\n a {\n color: $highlight-text-color;\n }\n\n a.status__content__spoiler-link {\n color: $primary-text-color;\n background: $ui-primary-color;\n\n &:hover {\n background: lighten($ui-primary-color, 8%);\n }\n }\n }\n }\n}\n\n.notification-favourite {\n .status.status-direct {\n background: transparent;\n\n .icon-button.disabled {\n color: lighten($action-button-color, 13%);\n }\n }\n}\n\n.status__relative-time,\n.notification__relative_time {\n color: $dark-text-color;\n float: right;\n font-size: 14px;\n}\n\n.status__display-name {\n color: $dark-text-color;\n}\n\n.status__info .status__display-name {\n display: block;\n max-width: 100%;\n padding-right: 25px;\n}\n\n.status__info {\n font-size: 15px;\n}\n\n.status-check-box {\n border-bottom: 1px solid $ui-secondary-color;\n display: flex;\n\n .status-check-box__status {\n margin: 10px 0 10px 10px;\n flex: 1;\n overflow: hidden;\n\n .media-gallery {\n max-width: 250px;\n }\n\n .status__content {\n padding: 0;\n white-space: normal;\n }\n\n .video-player,\n .audio-player {\n margin-top: 8px;\n max-width: 250px;\n }\n\n .media-gallery__item-thumbnail {\n cursor: default;\n }\n }\n}\n\n.status-check-box-toggle {\n align-items: center;\n display: flex;\n flex: 0 0 auto;\n justify-content: center;\n padding: 10px;\n}\n\n.status__prepend {\n margin-left: 68px;\n color: $dark-text-color;\n padding: 8px 0;\n padding-bottom: 2px;\n font-size: 14px;\n position: relative;\n\n .status__display-name strong {\n color: $dark-text-color;\n }\n\n > span {\n display: block;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n}\n\n.status__action-bar {\n align-items: center;\n display: flex;\n margin-top: 8px;\n\n &__counter {\n display: inline-flex;\n margin-right: 11px;\n align-items: center;\n\n .status__action-bar-button {\n margin-right: 4px;\n }\n\n &__label {\n display: inline-block;\n width: 14px;\n font-size: 12px;\n font-weight: 500;\n color: $action-button-color;\n }\n }\n}\n\n.status__action-bar-button {\n margin-right: 18px;\n}\n\n.status__action-bar-dropdown {\n height: 23.15px;\n width: 23.15px;\n}\n\n.detailed-status__action-bar-dropdown {\n flex: 1 1 auto;\n display: flex;\n align-items: center;\n justify-content: center;\n position: relative;\n}\n\n.detailed-status {\n background: lighten($ui-base-color, 4%);\n padding: 14px 10px;\n\n &--flex {\n display: flex;\n flex-wrap: wrap;\n justify-content: space-between;\n align-items: flex-start;\n\n .status__content,\n .detailed-status__meta {\n flex: 100%;\n }\n }\n\n .status__content {\n font-size: 19px;\n line-height: 24px;\n\n .emojione {\n width: 24px;\n height: 24px;\n margin: -1px 0 0;\n }\n\n .status__content__spoiler-link {\n line-height: 24px;\n margin: -1px 0 0;\n }\n }\n\n .video-player,\n .audio-player {\n margin-top: 8px;\n }\n}\n\n.detailed-status__meta {\n margin-top: 15px;\n color: $dark-text-color;\n font-size: 14px;\n line-height: 18px;\n}\n\n.detailed-status__action-bar {\n background: lighten($ui-base-color, 4%);\n border-top: 1px solid lighten($ui-base-color, 8%);\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n display: flex;\n flex-direction: row;\n padding: 10px 0;\n}\n\n.detailed-status__link {\n color: inherit;\n text-decoration: none;\n}\n\n.detailed-status__favorites,\n.detailed-status__reblogs {\n display: inline-block;\n font-weight: 500;\n font-size: 12px;\n margin-left: 6px;\n}\n\n.reply-indicator__content {\n color: $inverted-text-color;\n font-size: 14px;\n\n a {\n color: $lighter-text-color;\n }\n}\n\n.domain {\n padding: 10px;\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n\n .domain__domain-name {\n flex: 1 1 auto;\n display: block;\n color: $primary-text-color;\n text-decoration: none;\n font-size: 14px;\n font-weight: 500;\n }\n}\n\n.domain__wrapper {\n display: flex;\n}\n\n.domain_buttons {\n height: 18px;\n padding: 10px;\n white-space: nowrap;\n}\n\n.account {\n padding: 10px;\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n\n &.compact {\n padding: 0;\n border-bottom: 0;\n\n .account__avatar-wrapper {\n margin-left: 0;\n }\n }\n\n .account__display-name {\n flex: 1 1 auto;\n display: block;\n color: $darker-text-color;\n overflow: hidden;\n text-decoration: none;\n font-size: 14px;\n }\n}\n\n.account__wrapper {\n display: flex;\n}\n\n.account__avatar-wrapper {\n float: left;\n margin-left: 12px;\n margin-right: 12px;\n}\n\n.account__avatar {\n @include avatar-radius;\n position: relative;\n\n &-inline {\n display: inline-block;\n vertical-align: middle;\n margin-right: 5px;\n }\n\n &-composite {\n @include avatar-radius;\n border-radius: 50%;\n overflow: hidden;\n position: relative;\n\n & > div {\n float: left;\n position: relative;\n box-sizing: border-box;\n }\n\n &__label {\n display: block;\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n color: $primary-text-color;\n text-shadow: 1px 1px 2px $base-shadow-color;\n font-weight: 700;\n font-size: 15px;\n }\n }\n}\n\na .account__avatar {\n cursor: pointer;\n}\n\n.account__avatar-overlay {\n @include avatar-size(48px);\n\n &-base {\n @include avatar-radius;\n @include avatar-size(36px);\n }\n\n &-overlay {\n @include avatar-radius;\n @include avatar-size(24px);\n\n position: absolute;\n bottom: 0;\n right: 0;\n z-index: 1;\n }\n}\n\n.account__relationship {\n height: 18px;\n padding: 10px;\n white-space: nowrap;\n}\n\n.account__disclaimer {\n padding: 10px;\n border-top: 1px solid lighten($ui-base-color, 8%);\n color: $dark-text-color;\n\n strong {\n font-weight: 500;\n\n @each $lang in $cjk-langs {\n &:lang(#{$lang}) {\n font-weight: 700;\n }\n }\n }\n\n a {\n font-weight: 500;\n color: inherit;\n text-decoration: underline;\n\n &:hover,\n &:focus,\n &:active {\n text-decoration: none;\n }\n }\n}\n\n.account__action-bar {\n border-top: 1px solid lighten($ui-base-color, 8%);\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n line-height: 36px;\n overflow: hidden;\n flex: 0 0 auto;\n display: flex;\n}\n\n.account__action-bar-dropdown {\n padding: 10px;\n\n .icon-button {\n vertical-align: middle;\n }\n\n .dropdown--active {\n .dropdown__content.dropdown__right {\n left: 6px;\n right: initial;\n }\n\n &::after {\n bottom: initial;\n margin-left: 11px;\n margin-top: -7px;\n right: initial;\n }\n }\n}\n\n.account__action-bar-links {\n display: flex;\n flex: 1 1 auto;\n line-height: 18px;\n text-align: center;\n}\n\n.account__action-bar__tab {\n text-decoration: none;\n overflow: hidden;\n flex: 0 1 100%;\n border-right: 1px solid lighten($ui-base-color, 8%);\n padding: 10px 0;\n border-bottom: 4px solid transparent;\n\n &.active {\n border-bottom: 4px solid $ui-highlight-color;\n }\n\n & > span {\n display: block;\n text-transform: uppercase;\n font-size: 11px;\n color: $darker-text-color;\n }\n\n strong {\n display: block;\n font-size: 15px;\n font-weight: 500;\n color: $primary-text-color;\n\n @each $lang in $cjk-langs {\n &:lang(#{$lang}) {\n font-weight: 700;\n }\n }\n }\n}\n\n.account-authorize {\n padding: 14px 10px;\n\n .detailed-status__display-name {\n display: block;\n margin-bottom: 15px;\n overflow: hidden;\n }\n}\n\n.account-authorize__avatar {\n float: left;\n margin-right: 10px;\n}\n\n.status__display-name,\n.status__relative-time,\n.detailed-status__display-name,\n.detailed-status__datetime,\n.detailed-status__application,\n.account__display-name {\n text-decoration: none;\n}\n\n.status__display-name,\n.account__display-name {\n strong {\n color: $primary-text-color;\n }\n}\n\n.muted {\n .emojione {\n opacity: 0.5;\n }\n}\n\n.status__display-name,\n.reply-indicator__display-name,\n.detailed-status__display-name,\na.account__display-name {\n &:hover strong {\n text-decoration: underline;\n }\n}\n\n.account__display-name strong {\n display: block;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n.detailed-status__application,\n.detailed-status__datetime {\n color: inherit;\n}\n\n.detailed-status .button.logo-button {\n margin-bottom: 15px;\n}\n\n.detailed-status__display-name {\n color: $secondary-text-color;\n display: block;\n line-height: 24px;\n margin-bottom: 15px;\n overflow: hidden;\n\n strong,\n span {\n display: block;\n text-overflow: ellipsis;\n overflow: hidden;\n }\n\n strong {\n font-size: 16px;\n color: $primary-text-color;\n }\n}\n\n.detailed-status__display-avatar {\n float: left;\n margin-right: 10px;\n}\n\n.status__avatar {\n height: 48px;\n left: 10px;\n position: absolute;\n top: 10px;\n width: 48px;\n}\n\n.status__expand {\n width: 68px;\n position: absolute;\n left: 0;\n top: 0;\n height: 100%;\n cursor: pointer;\n}\n\n.muted {\n .status__content,\n .status__content p,\n .status__content a {\n color: $dark-text-color;\n }\n\n .status__display-name strong {\n color: $dark-text-color;\n }\n\n .status__avatar {\n opacity: 0.5;\n }\n\n a.status__content__spoiler-link {\n background: $ui-base-lighter-color;\n color: $inverted-text-color;\n\n &:hover {\n background: lighten($ui-base-lighter-color, 7%);\n text-decoration: none;\n }\n }\n}\n\n.notification__message {\n margin: 0 10px 0 68px;\n padding: 8px 0 0;\n cursor: default;\n color: $darker-text-color;\n font-size: 15px;\n line-height: 22px;\n position: relative;\n\n .fa {\n color: $highlight-text-color;\n }\n\n > span {\n display: inline;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n}\n\n.notification__favourite-icon-wrapper {\n left: -26px;\n position: absolute;\n\n .star-icon {\n color: $gold-star;\n }\n}\n\n.star-icon.active {\n color: $gold-star;\n}\n\n.bookmark-icon.active {\n color: $red-bookmark;\n}\n\n.no-reduce-motion .icon-button.star-icon {\n &.activate {\n & > .fa-star {\n animation: spring-rotate-in 1s linear;\n }\n }\n\n &.deactivate {\n & > .fa-star {\n animation: spring-rotate-out 1s linear;\n }\n }\n}\n\n.notification__display-name {\n color: inherit;\n font-weight: 500;\n text-decoration: none;\n\n &:hover {\n color: $primary-text-color;\n text-decoration: underline;\n }\n}\n\n.notification__relative_time {\n float: right;\n}\n\n.display-name {\n display: block;\n max-width: 100%;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.display-name__html {\n font-weight: 500;\n}\n\n.display-name__account {\n font-size: 14px;\n}\n\n.status__relative-time,\n.detailed-status__datetime {\n &:hover {\n text-decoration: underline;\n }\n}\n\n.image-loader {\n position: relative;\n width: 100%;\n height: 100%;\n display: flex;\n align-items: center;\n justify-content: center;\n flex-direction: column;\n\n .image-loader__preview-canvas {\n max-width: $media-modal-media-max-width;\n max-height: $media-modal-media-max-height;\n background: url('~images/void.png') repeat;\n object-fit: contain;\n }\n\n .loading-bar {\n position: relative;\n }\n\n &.image-loader--amorphous .image-loader__preview-canvas {\n display: none;\n }\n}\n\n.zoomable-image {\n position: relative;\n width: 100%;\n height: 100%;\n display: flex;\n align-items: center;\n justify-content: center;\n\n img {\n max-width: $media-modal-media-max-width;\n max-height: $media-modal-media-max-height;\n width: auto;\n height: auto;\n object-fit: contain;\n }\n}\n\n.navigation-bar {\n padding: 10px;\n display: flex;\n align-items: center;\n flex-shrink: 0;\n cursor: default;\n color: $darker-text-color;\n\n strong {\n color: $secondary-text-color;\n }\n\n a {\n color: inherit;\n }\n\n .permalink {\n text-decoration: none;\n }\n\n .navigation-bar__actions {\n position: relative;\n\n .icon-button.close {\n position: absolute;\n pointer-events: none;\n transform: scale(0, 1) translate(-100%, 0);\n opacity: 0;\n }\n\n .compose__action-bar .icon-button {\n pointer-events: auto;\n transform: scale(1, 1) translate(0, 0);\n opacity: 1;\n }\n }\n}\n\n.navigation-bar__profile {\n flex: 1 1 auto;\n margin-left: 8px;\n line-height: 20px;\n margin-top: -1px;\n overflow: hidden;\n}\n\n.navigation-bar__profile-account {\n display: block;\n font-weight: 500;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n.navigation-bar__profile-edit {\n color: inherit;\n text-decoration: none;\n}\n\n.dropdown {\n display: inline-block;\n}\n\n.dropdown__content {\n display: none;\n position: absolute;\n}\n\n.dropdown-menu__separator {\n border-bottom: 1px solid darken($ui-secondary-color, 8%);\n margin: 5px 7px 6px;\n height: 0;\n}\n\n.dropdown-menu {\n background: $ui-secondary-color;\n padding: 4px 0;\n border-radius: 4px;\n box-shadow: 2px 4px 15px rgba($base-shadow-color, 0.4);\n z-index: 9999;\n\n ul {\n list-style: none;\n }\n\n &.left {\n transform-origin: 100% 50%;\n }\n\n &.top {\n transform-origin: 50% 100%;\n }\n\n &.bottom {\n transform-origin: 50% 0;\n }\n\n &.right {\n transform-origin: 0 50%;\n }\n}\n\n.dropdown-menu__arrow {\n position: absolute;\n width: 0;\n height: 0;\n border: 0 solid transparent;\n\n &.left {\n right: -5px;\n margin-top: -5px;\n border-width: 5px 0 5px 5px;\n border-left-color: $ui-secondary-color;\n }\n\n &.top {\n bottom: -5px;\n margin-left: -7px;\n border-width: 5px 7px 0;\n border-top-color: $ui-secondary-color;\n }\n\n &.bottom {\n top: -5px;\n margin-left: -7px;\n border-width: 0 7px 5px;\n border-bottom-color: $ui-secondary-color;\n }\n\n &.right {\n left: -5px;\n margin-top: -5px;\n border-width: 5px 5px 5px 0;\n border-right-color: $ui-secondary-color;\n }\n}\n\n.dropdown-menu__item {\n a {\n font-size: 13px;\n line-height: 18px;\n display: block;\n padding: 4px 14px;\n box-sizing: border-box;\n text-decoration: none;\n background: $ui-secondary-color;\n color: $inverted-text-color;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n\n &:focus,\n &:hover,\n &:active {\n background: $ui-highlight-color;\n color: $secondary-text-color;\n outline: 0;\n }\n }\n}\n\n.dropdown--active .dropdown__content {\n display: block;\n line-height: 18px;\n max-width: 311px;\n right: 0;\n text-align: left;\n z-index: 9999;\n\n & > ul {\n list-style: none;\n background: $ui-secondary-color;\n padding: 4px 0;\n border-radius: 4px;\n box-shadow: 0 0 15px rgba($base-shadow-color, 0.4);\n min-width: 140px;\n position: relative;\n }\n\n &.dropdown__right {\n right: 0;\n }\n\n &.dropdown__left {\n & > ul {\n left: -98px;\n }\n }\n\n & > ul > li > a {\n font-size: 13px;\n line-height: 18px;\n display: block;\n padding: 4px 14px;\n box-sizing: border-box;\n text-decoration: none;\n background: $ui-secondary-color;\n color: $inverted-text-color;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n\n &:focus {\n outline: 0;\n }\n\n &:hover {\n background: $ui-highlight-color;\n color: $secondary-text-color;\n }\n }\n}\n\n.dropdown__icon {\n vertical-align: middle;\n}\n\n.columns-area {\n display: flex;\n flex: 1 1 auto;\n flex-direction: row;\n justify-content: flex-start;\n overflow-x: auto;\n position: relative;\n\n &.unscrollable {\n overflow-x: hidden;\n }\n\n &__panels {\n display: flex;\n justify-content: center;\n width: 100%;\n height: 100%;\n min-height: 100vh;\n\n &__pane {\n height: 100%;\n overflow: hidden;\n pointer-events: none;\n display: flex;\n justify-content: flex-end;\n min-width: 285px;\n\n &--start {\n justify-content: flex-start;\n }\n\n &__inner {\n position: fixed;\n width: 285px;\n pointer-events: auto;\n height: 100%;\n }\n }\n\n &__main {\n box-sizing: border-box;\n width: 100%;\n max-width: 600px;\n flex: 0 0 auto;\n display: flex;\n flex-direction: column;\n\n @media screen and (min-width: $no-gap-breakpoint) {\n padding: 0 10px;\n }\n }\n }\n}\n\n.tabs-bar__wrapper {\n background: darken($ui-base-color, 8%);\n position: sticky;\n top: 0;\n z-index: 2;\n padding-top: 0;\n\n @media screen and (min-width: $no-gap-breakpoint) {\n padding-top: 10px;\n }\n\n .tabs-bar {\n margin-bottom: 0;\n\n @media screen and (min-width: $no-gap-breakpoint) {\n margin-bottom: 10px;\n }\n }\n}\n\n.react-swipeable-view-container {\n &,\n .columns-area,\n .drawer,\n .column {\n height: 100%;\n }\n}\n\n.react-swipeable-view-container > * {\n display: flex;\n align-items: center;\n justify-content: center;\n height: 100%;\n}\n\n.column {\n width: 350px;\n position: relative;\n box-sizing: border-box;\n display: flex;\n flex-direction: column;\n\n > .scrollable {\n background: $ui-base-color;\n border-bottom-left-radius: 2px;\n border-bottom-right-radius: 2px;\n }\n}\n\n.ui {\n flex: 0 0 auto;\n display: flex;\n flex-direction: column;\n width: 100%;\n height: 100%;\n}\n\n.drawer {\n width: 330px;\n box-sizing: border-box;\n display: flex;\n flex-direction: column;\n overflow-y: hidden;\n}\n\n.drawer__tab {\n display: block;\n flex: 1 1 auto;\n padding: 15px 5px 13px;\n color: $darker-text-color;\n text-decoration: none;\n text-align: center;\n font-size: 16px;\n border-bottom: 2px solid transparent;\n}\n\n.column,\n.drawer {\n flex: 1 1 auto;\n overflow: hidden;\n}\n\n@media screen and (min-width: 631px) {\n .columns-area {\n padding: 0;\n }\n\n .column,\n .drawer {\n flex: 0 0 auto;\n padding: 10px;\n padding-left: 5px;\n padding-right: 5px;\n\n &:first-child {\n padding-left: 10px;\n }\n\n &:last-child {\n padding-right: 10px;\n }\n }\n\n .columns-area > div {\n .column,\n .drawer {\n padding-left: 5px;\n padding-right: 5px;\n }\n }\n}\n\n.tabs-bar {\n box-sizing: border-box;\n display: flex;\n background: lighten($ui-base-color, 8%);\n flex: 0 0 auto;\n overflow-y: auto;\n}\n\n.tabs-bar__link {\n display: block;\n flex: 1 1 auto;\n padding: 15px 10px;\n padding-bottom: 13px;\n color: $primary-text-color;\n text-decoration: none;\n text-align: center;\n font-size: 14px;\n font-weight: 500;\n border-bottom: 2px solid lighten($ui-base-color, 8%);\n transition: all 50ms linear;\n transition-property: border-bottom, background, color;\n\n .fa {\n font-weight: 400;\n font-size: 16px;\n }\n\n &:hover,\n &:focus,\n &:active {\n @media screen and (min-width: 631px) {\n background: lighten($ui-base-color, 14%);\n border-bottom-color: lighten($ui-base-color, 14%);\n }\n }\n\n &.active {\n border-bottom: 2px solid $highlight-text-color;\n color: $highlight-text-color;\n }\n\n span {\n margin-left: 5px;\n display: none;\n }\n}\n\n@media screen and (min-width: 600px) {\n .tabs-bar__link {\n span {\n display: inline;\n }\n }\n}\n\n.columns-area--mobile {\n flex-direction: column;\n width: 100%;\n height: 100%;\n margin: 0 auto;\n\n .column,\n .drawer {\n width: 100%;\n height: 100%;\n padding: 0;\n }\n\n .directory__list {\n display: grid;\n grid-gap: 10px;\n grid-template-columns: minmax(0, 50%) minmax(0, 50%);\n\n @media screen and (max-width: $no-gap-breakpoint) {\n display: block;\n }\n }\n\n .directory__card {\n margin-bottom: 0;\n }\n\n .filter-form {\n display: flex;\n }\n\n .autosuggest-textarea__textarea {\n font-size: 16px;\n }\n\n .search__input {\n line-height: 18px;\n font-size: 16px;\n padding: 15px;\n padding-right: 30px;\n }\n\n .search__icon .fa {\n top: 15px;\n }\n\n .scrollable {\n overflow: visible;\n\n @supports(display: grid) {\n contain: content;\n }\n }\n\n @media screen and (min-width: $no-gap-breakpoint) {\n padding: 10px 0;\n padding-top: 0;\n }\n\n @media screen and (min-width: 630px) {\n .detailed-status {\n padding: 15px;\n\n .media-gallery,\n .video-player,\n .audio-player {\n margin-top: 15px;\n }\n }\n\n .account__header__bar {\n padding: 5px 10px;\n }\n\n .navigation-bar,\n .compose-form {\n padding: 15px;\n }\n\n .compose-form .compose-form__publish .compose-form__publish-button-wrapper {\n padding-top: 15px;\n }\n\n .status {\n padding: 15px 15px 15px (48px + 15px * 2);\n min-height: 48px + 2px;\n\n &__avatar {\n left: 15px;\n top: 17px;\n }\n\n &__content {\n padding-top: 5px;\n }\n\n &__prepend {\n margin-left: 48px + 15px * 2;\n padding-top: 15px;\n }\n\n &__prepend-icon-wrapper {\n left: -32px;\n }\n\n .media-gallery,\n &__action-bar,\n .video-player,\n .audio-player {\n margin-top: 10px;\n }\n }\n\n .account {\n padding: 15px 10px;\n\n &__header__bio {\n margin: 0 -10px;\n }\n }\n\n .notification {\n &__message {\n margin-left: 48px + 15px * 2;\n padding-top: 15px;\n }\n\n &__favourite-icon-wrapper {\n left: -32px;\n }\n\n .status {\n padding-top: 8px;\n }\n\n .account {\n padding-top: 8px;\n }\n\n .account__avatar-wrapper {\n margin-left: 17px;\n margin-right: 15px;\n }\n }\n }\n}\n\n.floating-action-button {\n position: fixed;\n display: flex;\n justify-content: center;\n align-items: center;\n width: 3.9375rem;\n height: 3.9375rem;\n bottom: 1.3125rem;\n right: 1.3125rem;\n background: darken($ui-highlight-color, 3%);\n color: $white;\n border-radius: 50%;\n font-size: 21px;\n line-height: 21px;\n text-decoration: none;\n box-shadow: 2px 3px 9px rgba($base-shadow-color, 0.4);\n\n &:hover,\n &:focus,\n &:active {\n background: lighten($ui-highlight-color, 7%);\n }\n}\n\n@media screen and (min-width: $no-gap-breakpoint) {\n .tabs-bar {\n width: 100%;\n }\n\n .react-swipeable-view-container .columns-area--mobile {\n height: calc(100% - 10px) !important;\n }\n\n .getting-started__wrapper,\n .getting-started__trends,\n .search {\n margin-bottom: 10px;\n }\n\n .getting-started__panel {\n margin: 10px 0;\n }\n\n .column,\n .drawer {\n min-width: 330px;\n }\n}\n\n@media screen and (max-width: 600px + (285px * 1) + (10px * 1)) {\n .columns-area__panels__pane--compositional {\n display: none;\n }\n}\n\n@media screen and (min-width: 600px + (285px * 1) + (10px * 1)) {\n .floating-action-button,\n .tabs-bar__link.optional {\n display: none;\n }\n\n .search-page .search {\n display: none;\n }\n}\n\n@media screen and (max-width: 600px + (285px * 2) + (10px * 2)) {\n .columns-area__panels__pane--navigational {\n display: none;\n }\n}\n\n@media screen and (min-width: 600px + (285px * 2) + (10px * 2)) {\n .tabs-bar {\n display: none;\n }\n}\n\n.icon-with-badge {\n position: relative;\n\n &__badge {\n position: absolute;\n left: 9px;\n top: -13px;\n background: $ui-highlight-color;\n border: 2px solid lighten($ui-base-color, 8%);\n padding: 1px 6px;\n border-radius: 6px;\n font-size: 10px;\n font-weight: 500;\n line-height: 14px;\n color: $primary-text-color;\n }\n}\n\n.column-link--transparent .icon-with-badge__badge {\n border-color: darken($ui-base-color, 8%);\n}\n\n.compose-panel {\n width: 285px;\n margin-top: 10px;\n display: flex;\n flex-direction: column;\n height: calc(100% - 10px);\n overflow-y: hidden;\n\n .navigation-bar {\n padding-top: 20px;\n padding-bottom: 20px;\n flex: 0 1 48px;\n min-height: 20px;\n }\n\n .flex-spacer {\n background: transparent;\n }\n\n .compose-form {\n flex: 1;\n overflow-y: hidden;\n display: flex;\n flex-direction: column;\n min-height: 310px;\n padding-bottom: 71px;\n margin-bottom: -71px;\n }\n\n .compose-form__autosuggest-wrapper {\n overflow-y: auto;\n background-color: $white;\n border-radius: 4px 4px 0 0;\n flex: 0 1 auto;\n }\n\n .autosuggest-textarea__textarea {\n overflow-y: hidden;\n }\n\n .compose-form__upload-thumbnail {\n height: 80px;\n }\n}\n\n.navigation-panel {\n margin-top: 10px;\n margin-bottom: 10px;\n height: calc(100% - 20px);\n overflow-y: auto;\n display: flex;\n flex-direction: column;\n\n & > a {\n flex: 0 0 auto;\n }\n\n hr {\n flex: 0 0 auto;\n border: 0;\n background: transparent;\n border-top: 1px solid lighten($ui-base-color, 4%);\n margin: 10px 0;\n }\n\n .flex-spacer {\n background: transparent;\n }\n}\n\n.drawer__pager {\n box-sizing: border-box;\n padding: 0;\n flex-grow: 1;\n position: relative;\n overflow: hidden;\n display: flex;\n}\n\n.drawer__inner {\n position: absolute;\n top: 0;\n left: 0;\n background: lighten($ui-base-color, 13%);\n box-sizing: border-box;\n padding: 0;\n display: flex;\n flex-direction: column;\n overflow: hidden;\n overflow-y: auto;\n width: 100%;\n height: 100%;\n border-radius: 2px;\n\n &.darker {\n background: $ui-base-color;\n }\n}\n\n.drawer__inner__mastodon {\n background: lighten($ui-base-color, 13%) url('data:image/svg+xml;utf8,') no-repeat bottom / 100% auto;\n flex: 1;\n min-height: 47px;\n display: none;\n\n > img {\n display: block;\n object-fit: contain;\n object-position: bottom left;\n width: 85%;\n height: 100%;\n pointer-events: none;\n user-drag: none;\n user-select: none;\n }\n\n @media screen and (min-height: 640px) {\n display: block;\n }\n}\n\n.pseudo-drawer {\n background: lighten($ui-base-color, 13%);\n font-size: 13px;\n text-align: left;\n}\n\n.drawer__header {\n flex: 0 0 auto;\n font-size: 16px;\n background: lighten($ui-base-color, 8%);\n margin-bottom: 10px;\n display: flex;\n flex-direction: row;\n border-radius: 2px;\n\n a {\n transition: background 100ms ease-in;\n\n &:hover {\n background: lighten($ui-base-color, 3%);\n transition: background 200ms ease-out;\n }\n }\n}\n\n.scrollable {\n overflow-y: scroll;\n overflow-x: hidden;\n flex: 1 1 auto;\n -webkit-overflow-scrolling: touch;\n\n &.optionally-scrollable {\n overflow-y: auto;\n }\n\n @supports(display: grid) { // hack to fix Chrome <57\n contain: strict;\n }\n\n &--flex {\n display: flex;\n flex-direction: column;\n }\n\n &__append {\n flex: 1 1 auto;\n position: relative;\n min-height: 120px;\n }\n}\n\n.scrollable.fullscreen {\n @supports(display: grid) { // hack to fix Chrome <57\n contain: none;\n }\n}\n\n.column-back-button {\n box-sizing: border-box;\n width: 100%;\n background: lighten($ui-base-color, 4%);\n color: $highlight-text-color;\n cursor: pointer;\n flex: 0 0 auto;\n font-size: 16px;\n line-height: inherit;\n border: 0;\n text-align: unset;\n padding: 15px;\n margin: 0;\n z-index: 3;\n outline: 0;\n\n &:hover {\n text-decoration: underline;\n }\n}\n\n.column-header__back-button {\n background: lighten($ui-base-color, 4%);\n border: 0;\n font-family: inherit;\n color: $highlight-text-color;\n cursor: pointer;\n white-space: nowrap;\n font-size: 16px;\n padding: 0 5px 0 0;\n z-index: 3;\n\n &:hover {\n text-decoration: underline;\n }\n\n &:last-child {\n padding: 0 15px 0 0;\n }\n}\n\n.column-back-button__icon {\n display: inline-block;\n margin-right: 5px;\n}\n\n.column-back-button--slim {\n position: relative;\n}\n\n.column-back-button--slim-button {\n cursor: pointer;\n flex: 0 0 auto;\n font-size: 16px;\n padding: 15px;\n position: absolute;\n right: 0;\n top: -48px;\n}\n\n.react-toggle {\n display: inline-block;\n position: relative;\n cursor: pointer;\n background-color: transparent;\n border: 0;\n padding: 0;\n user-select: none;\n -webkit-tap-highlight-color: rgba($base-overlay-background, 0);\n -webkit-tap-highlight-color: transparent;\n}\n\n.react-toggle-screenreader-only {\n border: 0;\n clip: rect(0 0 0 0);\n height: 1px;\n margin: -1px;\n overflow: hidden;\n padding: 0;\n position: absolute;\n width: 1px;\n}\n\n.react-toggle--disabled {\n cursor: not-allowed;\n opacity: 0.5;\n transition: opacity 0.25s;\n}\n\n.react-toggle-track {\n width: 50px;\n height: 24px;\n padding: 0;\n border-radius: 30px;\n background-color: $ui-base-color;\n transition: background-color 0.2s ease;\n}\n\n.react-toggle:hover:not(.react-toggle--disabled) .react-toggle-track {\n background-color: darken($ui-base-color, 10%);\n}\n\n.react-toggle--checked .react-toggle-track {\n background-color: $ui-highlight-color;\n}\n\n.react-toggle--checked:hover:not(.react-toggle--disabled) .react-toggle-track {\n background-color: lighten($ui-highlight-color, 10%);\n}\n\n.react-toggle-track-check {\n position: absolute;\n width: 14px;\n height: 10px;\n top: 0;\n bottom: 0;\n margin-top: auto;\n margin-bottom: auto;\n line-height: 0;\n left: 8px;\n opacity: 0;\n transition: opacity 0.25s ease;\n}\n\n.react-toggle--checked .react-toggle-track-check {\n opacity: 1;\n transition: opacity 0.25s ease;\n}\n\n.react-toggle-track-x {\n position: absolute;\n width: 10px;\n height: 10px;\n top: 0;\n bottom: 0;\n margin-top: auto;\n margin-bottom: auto;\n line-height: 0;\n right: 10px;\n opacity: 1;\n transition: opacity 0.25s ease;\n}\n\n.react-toggle--checked .react-toggle-track-x {\n opacity: 0;\n}\n\n.react-toggle-thumb {\n position: absolute;\n top: 1px;\n left: 1px;\n width: 22px;\n height: 22px;\n border: 1px solid $ui-base-color;\n border-radius: 50%;\n background-color: darken($simple-background-color, 2%);\n box-sizing: border-box;\n transition: all 0.25s ease;\n transition-property: border-color, left;\n}\n\n.react-toggle--checked .react-toggle-thumb {\n left: 27px;\n border-color: $ui-highlight-color;\n}\n\n.column-link {\n background: lighten($ui-base-color, 8%);\n color: $primary-text-color;\n display: block;\n font-size: 16px;\n padding: 15px;\n text-decoration: none;\n\n &:hover,\n &:focus,\n &:active {\n background: lighten($ui-base-color, 11%);\n }\n\n &:focus {\n outline: 0;\n }\n\n &--transparent {\n background: transparent;\n color: $ui-secondary-color;\n\n &:hover,\n &:focus,\n &:active {\n background: transparent;\n color: $primary-text-color;\n }\n\n &.active {\n color: $ui-highlight-color;\n }\n }\n}\n\n.column-link__icon {\n display: inline-block;\n margin-right: 5px;\n}\n\n.column-link__badge {\n display: inline-block;\n border-radius: 4px;\n font-size: 12px;\n line-height: 19px;\n font-weight: 500;\n background: $ui-base-color;\n padding: 4px 8px;\n margin: -6px 10px;\n}\n\n.column-subheading {\n background: $ui-base-color;\n color: $dark-text-color;\n padding: 8px 20px;\n font-size: 12px;\n font-weight: 500;\n text-transform: uppercase;\n cursor: default;\n}\n\n.getting-started__wrapper,\n.getting-started,\n.flex-spacer {\n background: $ui-base-color;\n}\n\n.flex-spacer {\n flex: 1 1 auto;\n}\n\n.getting-started {\n color: $dark-text-color;\n overflow: auto;\n border-bottom-left-radius: 2px;\n border-bottom-right-radius: 2px;\n\n &__wrapper,\n &__panel,\n &__footer {\n height: min-content;\n }\n\n &__panel,\n &__footer\n {\n padding: 10px;\n padding-top: 20px;\n flex-grow: 0;\n\n ul {\n margin-bottom: 10px;\n }\n\n ul li {\n display: inline;\n }\n\n p {\n font-size: 13px;\n\n a {\n color: $dark-text-color;\n text-decoration: underline;\n }\n }\n\n a {\n text-decoration: none;\n color: $darker-text-color;\n\n &:hover,\n &:focus,\n &:active {\n text-decoration: underline;\n }\n }\n }\n\n &__wrapper,\n &__footer\n {\n color: $dark-text-color;\n }\n\n &__trends {\n flex: 0 1 auto;\n opacity: 1;\n animation: fade 150ms linear;\n margin-top: 10px;\n\n h4 {\n font-size: 12px;\n text-transform: uppercase;\n color: $darker-text-color;\n padding: 10px;\n font-weight: 500;\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n }\n\n @media screen and (max-height: 810px) {\n .trends__item:nth-child(3) {\n display: none;\n }\n }\n\n @media screen and (max-height: 720px) {\n .trends__item:nth-child(2) {\n display: none;\n }\n }\n\n @media screen and (max-height: 670px) {\n display: none;\n }\n\n .trends__item {\n border-bottom: 0;\n padding: 10px;\n\n &__current {\n color: $darker-text-color;\n }\n }\n }\n}\n\n.keyboard-shortcuts {\n padding: 8px 0 0;\n overflow: hidden;\n\n thead {\n position: absolute;\n left: -9999px;\n }\n\n td {\n padding: 0 10px 8px;\n }\n\n kbd {\n display: inline-block;\n padding: 3px 5px;\n background-color: lighten($ui-base-color, 8%);\n border: 1px solid darken($ui-base-color, 4%);\n }\n}\n\n.setting-text {\n display: block;\n box-sizing: border-box;\n width: 100%;\n margin: 0;\n color: $inverted-text-color;\n background: $simple-background-color;\n padding: 10px;\n font-family: inherit;\n font-size: 14px;\n resize: vertical;\n border: 0;\n outline: 0;\n border-radius: 4px;\n\n &:focus {\n outline: 0;\n }\n\n @media screen and (max-width: 600px) {\n font-size: 16px;\n }\n}\n\n.no-reduce-motion button.icon-button i.fa-retweet {\n background-position: 0 0;\n height: 19px;\n transition: background-position 0.9s steps(10);\n transition-duration: 0s;\n vertical-align: middle;\n width: 22px;\n\n &::before {\n display: none !important;\n }\n\n}\n\n.no-reduce-motion button.icon-button.active i.fa-retweet {\n transition-duration: 0.9s;\n background-position: 0 100%;\n}\n\n.reduce-motion button.icon-button i.fa-retweet {\n color: $action-button-color;\n transition: color 100ms ease-in;\n}\n\n.reduce-motion button.icon-button.active i.fa-retweet {\n color: $highlight-text-color;\n}\n\n.status-card {\n display: flex;\n font-size: 14px;\n border: 1px solid lighten($ui-base-color, 8%);\n border-radius: 4px;\n color: $dark-text-color;\n margin-top: 14px;\n text-decoration: none;\n overflow: hidden;\n\n &__actions {\n bottom: 0;\n left: 0;\n position: absolute;\n right: 0;\n top: 0;\n display: flex;\n justify-content: center;\n align-items: center;\n\n & > div {\n background: rgba($base-shadow-color, 0.6);\n border-radius: 8px;\n padding: 12px 9px;\n flex: 0 0 auto;\n display: flex;\n justify-content: center;\n align-items: center;\n }\n\n button,\n a {\n display: inline;\n color: $secondary-text-color;\n background: transparent;\n border: 0;\n padding: 0 8px;\n text-decoration: none;\n font-size: 18px;\n line-height: 18px;\n\n &:hover,\n &:active,\n &:focus {\n color: $primary-text-color;\n }\n }\n\n a {\n font-size: 19px;\n position: relative;\n bottom: -1px;\n }\n }\n}\n\na.status-card {\n cursor: pointer;\n\n &:hover {\n background: lighten($ui-base-color, 8%);\n }\n}\n\n.status-card-photo {\n cursor: zoom-in;\n display: block;\n text-decoration: none;\n width: 100%;\n height: auto;\n margin: 0;\n}\n\n.status-card-video {\n iframe {\n width: 100%;\n height: 100%;\n }\n}\n\n.status-card__title {\n display: block;\n font-weight: 500;\n margin-bottom: 5px;\n color: $darker-text-color;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n text-decoration: none;\n}\n\n.status-card__content {\n flex: 1 1 auto;\n overflow: hidden;\n padding: 14px 14px 14px 8px;\n}\n\n.status-card__description {\n color: $darker-text-color;\n}\n\n.status-card__host {\n display: block;\n margin-top: 5px;\n font-size: 13px;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.status-card__image {\n flex: 0 0 100px;\n background: lighten($ui-base-color, 8%);\n position: relative;\n\n & > .fa {\n font-size: 21px;\n position: absolute;\n transform-origin: 50% 50%;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n }\n}\n\n.status-card.horizontal {\n display: block;\n\n .status-card__image {\n width: 100%;\n }\n\n .status-card__image-image {\n border-radius: 4px 4px 0 0;\n }\n\n .status-card__title {\n white-space: inherit;\n }\n}\n\n.status-card.compact {\n border-color: lighten($ui-base-color, 4%);\n\n &.interactive {\n border: 0;\n }\n\n .status-card__content {\n padding: 8px;\n padding-top: 10px;\n }\n\n .status-card__title {\n white-space: nowrap;\n }\n\n .status-card__image {\n flex: 0 0 60px;\n }\n}\n\na.status-card.compact:hover {\n background-color: lighten($ui-base-color, 4%);\n}\n\n.status-card__image-image {\n border-radius: 4px 0 0 4px;\n display: block;\n margin: 0;\n width: 100%;\n height: 100%;\n object-fit: cover;\n background-size: cover;\n background-position: center center;\n}\n\n.load-more {\n display: block;\n color: $dark-text-color;\n background-color: transparent;\n border: 0;\n font-size: inherit;\n text-align: center;\n line-height: inherit;\n margin: 0;\n padding: 15px;\n box-sizing: border-box;\n width: 100%;\n clear: both;\n text-decoration: none;\n\n &:hover {\n background: lighten($ui-base-color, 2%);\n }\n}\n\n.load-gap {\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n}\n\n.regeneration-indicator {\n text-align: center;\n font-size: 16px;\n font-weight: 500;\n color: $dark-text-color;\n background: $ui-base-color;\n cursor: default;\n display: flex;\n flex: 1 1 auto;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n padding: 20px;\n\n &__figure {\n &,\n img {\n display: block;\n width: auto;\n height: 160px;\n margin: 0;\n }\n }\n\n &--without-header {\n padding-top: 20px + 48px;\n }\n\n &__label {\n margin-top: 30px;\n\n strong {\n display: block;\n margin-bottom: 10px;\n color: $dark-text-color;\n }\n\n span {\n font-size: 15px;\n font-weight: 400;\n }\n }\n}\n\n.column-header__wrapper {\n position: relative;\n flex: 0 0 auto;\n z-index: 1;\n\n &.active {\n box-shadow: 0 1px 0 rgba($highlight-text-color, 0.3);\n\n &::before {\n display: block;\n content: \"\";\n position: absolute;\n bottom: -13px;\n left: 0;\n right: 0;\n margin: 0 auto;\n width: 60%;\n pointer-events: none;\n height: 28px;\n z-index: 1;\n background: radial-gradient(ellipse, rgba($ui-highlight-color, 0.23) 0%, rgba($ui-highlight-color, 0) 60%);\n }\n }\n\n .announcements {\n z-index: 1;\n position: relative;\n }\n}\n\n.column-header {\n display: flex;\n font-size: 16px;\n background: lighten($ui-base-color, 4%);\n flex: 0 0 auto;\n cursor: pointer;\n position: relative;\n z-index: 2;\n outline: 0;\n overflow: hidden;\n border-top-left-radius: 2px;\n border-top-right-radius: 2px;\n\n & > button {\n margin: 0;\n border: 0;\n padding: 15px 0 15px 15px;\n color: inherit;\n background: transparent;\n font: inherit;\n text-align: left;\n text-overflow: ellipsis;\n overflow: hidden;\n white-space: nowrap;\n flex: 1;\n }\n\n & > .column-header__back-button {\n color: $highlight-text-color;\n }\n\n &.active {\n .column-header__icon {\n color: $highlight-text-color;\n text-shadow: 0 0 10px rgba($highlight-text-color, 0.4);\n }\n }\n\n &:focus,\n &:active {\n outline: 0;\n }\n}\n\n.column-header__buttons {\n height: 48px;\n display: flex;\n}\n\n.column-header__links {\n margin-bottom: 14px;\n}\n\n.column-header__links .text-btn {\n margin-right: 10px;\n}\n\n.column-header__button {\n background: lighten($ui-base-color, 4%);\n border: 0;\n color: $darker-text-color;\n cursor: pointer;\n font-size: 16px;\n padding: 0 15px;\n\n &:hover {\n color: lighten($darker-text-color, 7%);\n }\n\n &.active {\n color: $primary-text-color;\n background: lighten($ui-base-color, 8%);\n\n &:hover {\n color: $primary-text-color;\n background: lighten($ui-base-color, 8%);\n }\n }\n}\n\n.column-header__collapsible {\n max-height: 70vh;\n overflow: hidden;\n overflow-y: auto;\n color: $darker-text-color;\n transition: max-height 150ms ease-in-out, opacity 300ms linear;\n opacity: 1;\n z-index: 1;\n position: relative;\n\n &.collapsed {\n max-height: 0;\n opacity: 0.5;\n }\n\n &.animating {\n overflow-y: hidden;\n }\n\n hr {\n height: 0;\n background: transparent;\n border: 0;\n border-top: 1px solid lighten($ui-base-color, 12%);\n margin: 10px 0;\n }\n}\n\n.column-header__collapsible-inner {\n background: lighten($ui-base-color, 8%);\n padding: 15px;\n}\n\n.column-header__setting-btn {\n &:hover {\n color: $darker-text-color;\n text-decoration: underline;\n }\n}\n\n.column-header__setting-arrows {\n float: right;\n\n .column-header__setting-btn {\n padding: 0 10px;\n\n &:last-child {\n padding-right: 0;\n }\n }\n}\n\n.text-btn {\n display: inline-block;\n padding: 0;\n font-family: inherit;\n font-size: inherit;\n color: inherit;\n border: 0;\n background: transparent;\n cursor: pointer;\n}\n\n.column-header__icon {\n display: inline-block;\n margin-right: 5px;\n}\n\n.loading-indicator {\n color: $dark-text-color;\n font-size: 12px;\n font-weight: 400;\n text-transform: uppercase;\n overflow: visible;\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n\n span {\n display: block;\n float: left;\n margin-left: 50%;\n transform: translateX(-50%);\n margin: 82px 0 0 50%;\n white-space: nowrap;\n }\n}\n\n.loading-indicator__figure {\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n width: 42px;\n height: 42px;\n box-sizing: border-box;\n background-color: transparent;\n border: 0 solid lighten($ui-base-color, 26%);\n border-width: 6px;\n border-radius: 50%;\n}\n\n.no-reduce-motion .loading-indicator span {\n animation: loader-label 1.15s infinite cubic-bezier(0.215, 0.61, 0.355, 1);\n}\n\n.no-reduce-motion .loading-indicator__figure {\n animation: loader-figure 1.15s infinite cubic-bezier(0.215, 0.61, 0.355, 1);\n}\n\n@keyframes spring-rotate-in {\n 0% {\n transform: rotate(0deg);\n }\n\n 30% {\n transform: rotate(-484.8deg);\n }\n\n 60% {\n transform: rotate(-316.7deg);\n }\n\n 90% {\n transform: rotate(-375deg);\n }\n\n 100% {\n transform: rotate(-360deg);\n }\n}\n\n@keyframes spring-rotate-out {\n 0% {\n transform: rotate(-360deg);\n }\n\n 30% {\n transform: rotate(124.8deg);\n }\n\n 60% {\n transform: rotate(-43.27deg);\n }\n\n 90% {\n transform: rotate(15deg);\n }\n\n 100% {\n transform: rotate(0deg);\n }\n}\n\n@keyframes loader-figure {\n 0% {\n width: 0;\n height: 0;\n background-color: lighten($ui-base-color, 26%);\n }\n\n 29% {\n background-color: lighten($ui-base-color, 26%);\n }\n\n 30% {\n width: 42px;\n height: 42px;\n background-color: transparent;\n border-width: 21px;\n opacity: 1;\n }\n\n 100% {\n width: 42px;\n height: 42px;\n border-width: 0;\n opacity: 0;\n background-color: transparent;\n }\n}\n\n@keyframes loader-label {\n 0% { opacity: 0.25; }\n 30% { opacity: 1; }\n 100% { opacity: 0.25; }\n}\n\n.video-error-cover {\n align-items: center;\n background: $base-overlay-background;\n color: $primary-text-color;\n cursor: pointer;\n display: flex;\n flex-direction: column;\n height: 100%;\n justify-content: center;\n margin-top: 8px;\n position: relative;\n text-align: center;\n z-index: 100;\n}\n\n.media-spoiler {\n background: $base-overlay-background;\n color: $darker-text-color;\n border: 0;\n padding: 0;\n width: 100%;\n height: 100%;\n border-radius: 4px;\n appearance: none;\n\n &:hover,\n &:active,\n &:focus {\n padding: 0;\n color: lighten($darker-text-color, 8%);\n }\n}\n\n.media-spoiler__warning {\n display: block;\n font-size: 14px;\n}\n\n.media-spoiler__trigger {\n display: block;\n font-size: 11px;\n font-weight: 700;\n}\n\n.spoiler-button {\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n position: absolute;\n z-index: 100;\n\n &--minified {\n display: block;\n left: 4px;\n top: 4px;\n width: auto;\n height: auto;\n }\n\n &--click-thru {\n pointer-events: none;\n }\n\n &--hidden {\n display: none;\n }\n\n &__overlay {\n display: block;\n background: transparent;\n width: 100%;\n height: 100%;\n border: 0;\n\n &__label {\n display: inline-block;\n background: rgba($base-overlay-background, 0.5);\n border-radius: 8px;\n padding: 8px 12px;\n color: $primary-text-color;\n font-weight: 500;\n font-size: 14px;\n }\n\n &:hover,\n &:focus,\n &:active {\n .spoiler-button__overlay__label {\n background: rgba($base-overlay-background, 0.8);\n }\n }\n\n &:disabled {\n .spoiler-button__overlay__label {\n background: rgba($base-overlay-background, 0.5);\n }\n }\n }\n}\n\n.modal-container--preloader {\n background: lighten($ui-base-color, 8%);\n}\n\n.account--panel {\n background: lighten($ui-base-color, 4%);\n border-top: 1px solid lighten($ui-base-color, 8%);\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n display: flex;\n flex-direction: row;\n padding: 10px 0;\n}\n\n.account--panel__button,\n.detailed-status__button {\n flex: 1 1 auto;\n text-align: center;\n}\n\n.column-settings__outer {\n background: lighten($ui-base-color, 8%);\n padding: 15px;\n}\n\n.column-settings__section {\n color: $darker-text-color;\n cursor: default;\n display: block;\n font-weight: 500;\n margin-bottom: 10px;\n}\n\n.column-settings__hashtags {\n .column-settings__row {\n margin-bottom: 15px;\n }\n\n .column-select {\n &__control {\n @include search-input;\n\n &::placeholder {\n color: lighten($darker-text-color, 4%);\n }\n\n &::-moz-focus-inner {\n border: 0;\n }\n\n &::-moz-focus-inner,\n &:focus,\n &:active {\n outline: 0 !important;\n }\n\n &:focus {\n background: lighten($ui-base-color, 4%);\n }\n\n @media screen and (max-width: 600px) {\n font-size: 16px;\n }\n }\n\n &__placeholder {\n color: $dark-text-color;\n padding-left: 2px;\n font-size: 12px;\n }\n\n &__value-container {\n padding-left: 6px;\n }\n\n &__multi-value {\n background: lighten($ui-base-color, 8%);\n\n &__remove {\n cursor: pointer;\n\n &:hover,\n &:active,\n &:focus {\n background: lighten($ui-base-color, 12%);\n color: lighten($darker-text-color, 4%);\n }\n }\n }\n\n &__multi-value__label,\n &__input {\n color: $darker-text-color;\n }\n\n &__clear-indicator,\n &__dropdown-indicator {\n cursor: pointer;\n transition: none;\n color: $dark-text-color;\n\n &:hover,\n &:active,\n &:focus {\n color: lighten($dark-text-color, 4%);\n }\n }\n\n &__indicator-separator {\n background-color: lighten($ui-base-color, 8%);\n }\n\n &__menu {\n @include search-popout;\n padding: 0;\n background: $ui-secondary-color;\n }\n\n &__menu-list {\n padding: 6px;\n }\n\n &__option {\n color: $inverted-text-color;\n border-radius: 4px;\n font-size: 14px;\n\n &--is-focused,\n &--is-selected {\n background: darken($ui-secondary-color, 10%);\n }\n }\n }\n}\n\n.column-settings__row {\n .text-btn {\n margin-bottom: 15px;\n }\n}\n\n.relationship-tag {\n color: $primary-text-color;\n margin-bottom: 4px;\n display: block;\n vertical-align: top;\n background-color: $base-overlay-background;\n text-transform: uppercase;\n font-size: 11px;\n font-weight: 500;\n padding: 4px;\n border-radius: 4px;\n opacity: 0.7;\n\n &:hover {\n opacity: 1;\n }\n}\n\n.setting-toggle {\n display: block;\n line-height: 24px;\n}\n\n.setting-toggle__label {\n color: $darker-text-color;\n display: inline-block;\n margin-bottom: 14px;\n margin-left: 8px;\n vertical-align: middle;\n}\n\n.empty-column-indicator,\n.error-column,\n.follow_requests-unlocked_explanation {\n color: $dark-text-color;\n background: $ui-base-color;\n text-align: center;\n padding: 20px;\n font-size: 15px;\n font-weight: 400;\n cursor: default;\n display: flex;\n flex: 1 1 auto;\n align-items: center;\n justify-content: center;\n\n @supports(display: grid) { // hack to fix Chrome <57\n contain: strict;\n }\n\n & > span {\n max-width: 400px;\n }\n\n a {\n color: $highlight-text-color;\n text-decoration: none;\n\n &:hover {\n text-decoration: underline;\n }\n }\n}\n\n.follow_requests-unlocked_explanation {\n background: darken($ui-base-color, 4%);\n contain: initial;\n}\n\n.error-column {\n flex-direction: column;\n}\n\n@keyframes heartbeat {\n from {\n transform: scale(1);\n animation-timing-function: ease-out;\n }\n\n 10% {\n transform: scale(0.91);\n animation-timing-function: ease-in;\n }\n\n 17% {\n transform: scale(0.98);\n animation-timing-function: ease-out;\n }\n\n 33% {\n transform: scale(0.87);\n animation-timing-function: ease-in;\n }\n\n 45% {\n transform: scale(1);\n animation-timing-function: ease-out;\n }\n}\n\n.no-reduce-motion .pulse-loading {\n transform-origin: center center;\n animation: heartbeat 1.5s ease-in-out infinite both;\n}\n\n@keyframes shake-bottom {\n 0%,\n 100% {\n transform: rotate(0deg);\n transform-origin: 50% 100%;\n }\n\n 10% {\n transform: rotate(2deg);\n }\n\n 20%,\n 40%,\n 60% {\n transform: rotate(-4deg);\n }\n\n 30%,\n 50%,\n 70% {\n transform: rotate(4deg);\n }\n\n 80% {\n transform: rotate(-2deg);\n }\n\n 90% {\n transform: rotate(2deg);\n }\n}\n\n.no-reduce-motion .shake-bottom {\n transform-origin: 50% 100%;\n animation: shake-bottom 0.8s cubic-bezier(0.455, 0.03, 0.515, 0.955) 2s 2 both;\n}\n\n.emoji-picker-dropdown__menu {\n background: $simple-background-color;\n position: absolute;\n box-shadow: 4px 4px 6px rgba($base-shadow-color, 0.4);\n border-radius: 4px;\n margin-top: 5px;\n z-index: 2;\n\n .emoji-mart-scroll {\n transition: opacity 200ms ease;\n }\n\n &.selecting .emoji-mart-scroll {\n opacity: 0.5;\n }\n}\n\n.emoji-picker-dropdown__modifiers {\n position: absolute;\n top: 60px;\n right: 11px;\n cursor: pointer;\n}\n\n.emoji-picker-dropdown__modifiers__menu {\n position: absolute;\n z-index: 4;\n top: -4px;\n left: -8px;\n background: $simple-background-color;\n border-radius: 4px;\n box-shadow: 1px 2px 6px rgba($base-shadow-color, 0.2);\n overflow: hidden;\n\n button {\n display: block;\n cursor: pointer;\n border: 0;\n padding: 4px 8px;\n background: transparent;\n\n &:hover,\n &:focus,\n &:active {\n background: rgba($ui-secondary-color, 0.4);\n }\n }\n\n .emoji-mart-emoji {\n height: 22px;\n }\n}\n\n.emoji-mart-emoji {\n span {\n background-repeat: no-repeat;\n }\n}\n\n.upload-area {\n align-items: center;\n background: rgba($base-overlay-background, 0.8);\n display: flex;\n height: 100%;\n justify-content: center;\n left: 0;\n opacity: 0;\n position: absolute;\n top: 0;\n visibility: hidden;\n width: 100%;\n z-index: 2000;\n\n * {\n pointer-events: none;\n }\n}\n\n.upload-area__drop {\n width: 320px;\n height: 160px;\n display: flex;\n box-sizing: border-box;\n position: relative;\n padding: 8px;\n}\n\n.upload-area__background {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: -1;\n border-radius: 4px;\n background: $ui-base-color;\n box-shadow: 0 0 5px rgba($base-shadow-color, 0.2);\n}\n\n.upload-area__content {\n flex: 1;\n display: flex;\n align-items: center;\n justify-content: center;\n color: $secondary-text-color;\n font-size: 18px;\n font-weight: 500;\n border: 2px dashed $ui-base-lighter-color;\n border-radius: 4px;\n}\n\n.upload-progress {\n padding: 10px;\n color: $lighter-text-color;\n overflow: hidden;\n display: flex;\n\n .fa {\n font-size: 34px;\n margin-right: 10px;\n }\n\n span {\n font-size: 12px;\n text-transform: uppercase;\n font-weight: 500;\n display: block;\n }\n}\n\n.upload-progess__message {\n flex: 1 1 auto;\n}\n\n.upload-progress__backdrop {\n width: 100%;\n height: 6px;\n border-radius: 6px;\n background: $ui-base-lighter-color;\n position: relative;\n margin-top: 5px;\n}\n\n.upload-progress__tracker {\n position: absolute;\n left: 0;\n top: 0;\n height: 6px;\n background: $ui-highlight-color;\n border-radius: 6px;\n}\n\n.emoji-button {\n display: block;\n padding: 5px 5px 2px 2px;\n outline: 0;\n cursor: pointer;\n\n &:active,\n &:focus {\n outline: 0 !important;\n }\n\n img {\n filter: grayscale(100%);\n opacity: 0.8;\n display: block;\n margin: 0;\n width: 22px;\n height: 22px;\n }\n\n &:hover,\n &:active,\n &:focus {\n img {\n opacity: 1;\n filter: none;\n }\n }\n}\n\n.dropdown--active .emoji-button img {\n opacity: 1;\n filter: none;\n}\n\n.privacy-dropdown__dropdown {\n position: absolute;\n background: $simple-background-color;\n box-shadow: 2px 4px 15px rgba($base-shadow-color, 0.4);\n border-radius: 4px;\n margin-left: 40px;\n overflow: hidden;\n\n &.top {\n transform-origin: 50% 100%;\n }\n\n &.bottom {\n transform-origin: 50% 0;\n }\n}\n\n.privacy-dropdown__option {\n color: $inverted-text-color;\n padding: 10px;\n cursor: pointer;\n display: flex;\n\n &:hover,\n &.active {\n background: $ui-highlight-color;\n color: $primary-text-color;\n outline: 0;\n\n .privacy-dropdown__option__content {\n color: $primary-text-color;\n\n strong {\n color: $primary-text-color;\n }\n }\n }\n\n &.active:hover {\n background: lighten($ui-highlight-color, 4%);\n }\n}\n\n.privacy-dropdown__option__icon {\n display: flex;\n align-items: center;\n justify-content: center;\n margin-right: 10px;\n}\n\n.privacy-dropdown__option__content {\n flex: 1 1 auto;\n color: $lighter-text-color;\n\n strong {\n font-weight: 500;\n display: block;\n color: $inverted-text-color;\n\n @each $lang in $cjk-langs {\n &:lang(#{$lang}) {\n font-weight: 700;\n }\n }\n }\n}\n\n.privacy-dropdown.active {\n .privacy-dropdown__value {\n background: $simple-background-color;\n border-radius: 4px 4px 0 0;\n box-shadow: 0 -4px 4px rgba($base-shadow-color, 0.1);\n\n .icon-button {\n transition: none;\n }\n\n &.active {\n background: $ui-highlight-color;\n\n .icon-button {\n color: $primary-text-color;\n }\n }\n }\n\n &.top .privacy-dropdown__value {\n border-radius: 0 0 4px 4px;\n }\n\n .privacy-dropdown__dropdown {\n display: block;\n box-shadow: 2px 4px 6px rgba($base-shadow-color, 0.1);\n }\n}\n\n.search {\n position: relative;\n}\n\n.search__input {\n @include search-input;\n\n display: block;\n padding: 15px;\n padding-right: 30px;\n line-height: 18px;\n font-size: 16px;\n\n &::placeholder {\n color: lighten($darker-text-color, 4%);\n }\n\n &::-moz-focus-inner {\n border: 0;\n }\n\n &::-moz-focus-inner,\n &:focus,\n &:active {\n outline: 0 !important;\n }\n\n &:focus {\n background: lighten($ui-base-color, 4%);\n }\n\n @media screen and (max-width: 600px) {\n font-size: 16px;\n }\n}\n\n.search__icon {\n &::-moz-focus-inner {\n border: 0;\n }\n\n &::-moz-focus-inner,\n &:focus {\n outline: 0 !important;\n }\n\n .fa {\n position: absolute;\n top: 16px;\n right: 10px;\n z-index: 2;\n display: inline-block;\n opacity: 0;\n transition: all 100ms linear;\n transition-property: transform, opacity;\n font-size: 18px;\n width: 18px;\n height: 18px;\n color: $secondary-text-color;\n cursor: default;\n pointer-events: none;\n\n &.active {\n pointer-events: auto;\n opacity: 0.3;\n }\n }\n\n .fa-search {\n transform: rotate(90deg);\n\n &.active {\n pointer-events: none;\n transform: rotate(0deg);\n }\n }\n\n .fa-times-circle {\n top: 17px;\n transform: rotate(0deg);\n color: $action-button-color;\n cursor: pointer;\n\n &.active {\n transform: rotate(90deg);\n }\n\n &:hover {\n color: lighten($action-button-color, 7%);\n }\n }\n}\n\n.search-results__header {\n color: $dark-text-color;\n background: lighten($ui-base-color, 2%);\n padding: 15px;\n font-weight: 500;\n font-size: 16px;\n cursor: default;\n\n .fa {\n display: inline-block;\n margin-right: 5px;\n }\n}\n\n.search-results__section {\n margin-bottom: 5px;\n\n h5 {\n background: darken($ui-base-color, 4%);\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n cursor: default;\n display: flex;\n padding: 15px;\n font-weight: 500;\n font-size: 16px;\n color: $dark-text-color;\n\n .fa {\n display: inline-block;\n margin-right: 5px;\n }\n }\n\n .account:last-child,\n & > div:last-child .status {\n border-bottom: 0;\n }\n}\n\n.search-results__hashtag {\n display: block;\n padding: 10px;\n color: $secondary-text-color;\n text-decoration: none;\n\n &:hover,\n &:active,\n &:focus {\n color: lighten($secondary-text-color, 4%);\n text-decoration: underline;\n }\n}\n\n.search-results__info {\n padding: 20px;\n color: $darker-text-color;\n text-align: center;\n}\n\n.modal-root {\n position: relative;\n transition: opacity 0.3s linear;\n will-change: opacity;\n z-index: 9999;\n}\n\n.modal-root__overlay {\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background: rgba($base-overlay-background, 0.7);\n}\n\n.modal-root__container {\n position: fixed;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n align-content: space-around;\n z-index: 9999;\n pointer-events: none;\n user-select: none;\n}\n\n.modal-root__modal {\n pointer-events: auto;\n display: flex;\n z-index: 9999;\n}\n\n.video-modal__container {\n max-width: 100vw;\n max-height: 100vh;\n}\n\n.audio-modal__container {\n width: 50vw;\n}\n\n.media-modal {\n width: 100%;\n height: 100%;\n position: relative;\n\n .extended-video-player {\n width: 100%;\n height: 100%;\n display: flex;\n align-items: center;\n justify-content: center;\n\n video {\n max-width: $media-modal-media-max-width;\n max-height: $media-modal-media-max-height;\n }\n }\n}\n\n.media-modal__closer {\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n}\n\n.media-modal__navigation {\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n pointer-events: none;\n transition: opacity 0.3s linear;\n will-change: opacity;\n\n * {\n pointer-events: auto;\n }\n\n &.media-modal__navigation--hidden {\n opacity: 0;\n\n * {\n pointer-events: none;\n }\n }\n}\n\n.media-modal__nav {\n background: rgba($base-overlay-background, 0.5);\n box-sizing: border-box;\n border: 0;\n color: $primary-text-color;\n cursor: pointer;\n display: flex;\n align-items: center;\n font-size: 24px;\n height: 20vmax;\n margin: auto 0;\n padding: 30px 15px;\n position: absolute;\n top: 0;\n bottom: 0;\n}\n\n.media-modal__nav--left {\n left: 0;\n}\n\n.media-modal__nav--right {\n right: 0;\n}\n\n.media-modal__pagination {\n width: 100%;\n text-align: center;\n position: absolute;\n left: 0;\n bottom: 20px;\n pointer-events: none;\n}\n\n.media-modal__meta {\n text-align: center;\n position: absolute;\n left: 0;\n bottom: 20px;\n width: 100%;\n pointer-events: none;\n\n &--shifted {\n bottom: 62px;\n }\n\n a {\n pointer-events: auto;\n text-decoration: none;\n font-weight: 500;\n color: $ui-secondary-color;\n\n &:hover,\n &:focus,\n &:active {\n text-decoration: underline;\n }\n }\n}\n\n.media-modal__page-dot {\n display: inline-block;\n}\n\n.media-modal__button {\n background-color: $primary-text-color;\n height: 12px;\n width: 12px;\n border-radius: 6px;\n margin: 10px;\n padding: 0;\n border: 0;\n font-size: 0;\n}\n\n.media-modal__button--active {\n background-color: $highlight-text-color;\n}\n\n.media-modal__close {\n position: absolute;\n right: 8px;\n top: 8px;\n z-index: 100;\n}\n\n.onboarding-modal,\n.error-modal,\n.embed-modal {\n background: $ui-secondary-color;\n color: $inverted-text-color;\n border-radius: 8px;\n overflow: hidden;\n display: flex;\n flex-direction: column;\n}\n\n.error-modal__body {\n height: 80vh;\n width: 80vw;\n max-width: 520px;\n max-height: 420px;\n position: relative;\n\n & > div {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n box-sizing: border-box;\n padding: 25px;\n display: none;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n display: flex;\n opacity: 0;\n user-select: text;\n }\n}\n\n.error-modal__body {\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n text-align: center;\n}\n\n.onboarding-modal__paginator,\n.error-modal__footer {\n flex: 0 0 auto;\n background: darken($ui-secondary-color, 8%);\n display: flex;\n padding: 25px;\n\n & > div {\n min-width: 33px;\n }\n\n .onboarding-modal__nav,\n .error-modal__nav {\n color: $lighter-text-color;\n border: 0;\n font-size: 14px;\n font-weight: 500;\n padding: 10px 25px;\n line-height: inherit;\n height: auto;\n margin: -10px;\n border-radius: 4px;\n background-color: transparent;\n\n &:hover,\n &:focus,\n &:active {\n color: darken($lighter-text-color, 4%);\n background-color: darken($ui-secondary-color, 16%);\n }\n\n &.onboarding-modal__done,\n &.onboarding-modal__next {\n color: $inverted-text-color;\n\n &:hover,\n &:focus,\n &:active {\n color: lighten($inverted-text-color, 4%);\n }\n }\n }\n}\n\n.error-modal__footer {\n justify-content: center;\n}\n\n.display-case {\n text-align: center;\n font-size: 15px;\n margin-bottom: 15px;\n\n &__label {\n font-weight: 500;\n color: $inverted-text-color;\n margin-bottom: 5px;\n text-transform: uppercase;\n font-size: 12px;\n }\n\n &__case {\n background: $ui-base-color;\n color: $secondary-text-color;\n font-weight: 500;\n padding: 10px;\n border-radius: 4px;\n }\n}\n\n.onboard-sliders {\n display: inline-block;\n max-width: 30px;\n max-height: auto;\n margin-left: 10px;\n}\n\n.boost-modal,\n.confirmation-modal,\n.report-modal,\n.actions-modal,\n.mute-modal,\n.block-modal {\n background: lighten($ui-secondary-color, 8%);\n color: $inverted-text-color;\n border-radius: 8px;\n overflow: hidden;\n max-width: 90vw;\n width: 480px;\n position: relative;\n flex-direction: column;\n\n .status__display-name {\n display: block;\n max-width: 100%;\n padding-right: 25px;\n }\n\n .status__avatar {\n height: 28px;\n left: 10px;\n position: absolute;\n top: 10px;\n width: 48px;\n }\n\n .status__content__spoiler-link {\n color: lighten($secondary-text-color, 8%);\n }\n}\n\n.actions-modal {\n .status {\n background: $white;\n border-bottom-color: $ui-secondary-color;\n padding-top: 10px;\n padding-bottom: 10px;\n }\n\n .dropdown-menu__separator {\n border-bottom-color: $ui-secondary-color;\n }\n}\n\n.boost-modal__container {\n overflow-x: scroll;\n padding: 10px;\n\n .status {\n user-select: text;\n border-bottom: 0;\n }\n}\n\n.boost-modal__action-bar,\n.confirmation-modal__action-bar,\n.mute-modal__action-bar,\n.block-modal__action-bar {\n display: flex;\n justify-content: space-between;\n background: $ui-secondary-color;\n padding: 10px;\n line-height: 36px;\n\n & > div {\n flex: 1 1 auto;\n text-align: right;\n color: $lighter-text-color;\n padding-right: 10px;\n }\n\n .button {\n flex: 0 0 auto;\n }\n}\n\n.boost-modal__status-header {\n font-size: 15px;\n}\n\n.boost-modal__status-time {\n float: right;\n font-size: 14px;\n}\n\n.mute-modal,\n.block-modal {\n line-height: 24px;\n}\n\n.mute-modal .react-toggle,\n.block-modal .react-toggle {\n vertical-align: middle;\n}\n\n.report-modal {\n width: 90vw;\n max-width: 700px;\n}\n\n.report-modal__container {\n display: flex;\n border-top: 1px solid $ui-secondary-color;\n\n @media screen and (max-width: 480px) {\n flex-wrap: wrap;\n overflow-y: auto;\n }\n}\n\n.report-modal__statuses,\n.report-modal__comment {\n box-sizing: border-box;\n width: 50%;\n\n @media screen and (max-width: 480px) {\n width: 100%;\n }\n}\n\n.report-modal__statuses,\n.focal-point-modal__content {\n flex: 1 1 auto;\n min-height: 20vh;\n max-height: 80vh;\n overflow-y: auto;\n overflow-x: hidden;\n\n .status__content a {\n color: $highlight-text-color;\n }\n\n .status__content,\n .status__content p {\n color: $inverted-text-color;\n }\n\n @media screen and (max-width: 480px) {\n max-height: 10vh;\n }\n}\n\n.focal-point-modal__content {\n @media screen and (max-width: 480px) {\n max-height: 40vh;\n }\n}\n\n.report-modal__comment {\n padding: 20px;\n border-right: 1px solid $ui-secondary-color;\n max-width: 320px;\n\n p {\n font-size: 14px;\n line-height: 20px;\n margin-bottom: 20px;\n }\n\n .setting-text {\n display: block;\n box-sizing: border-box;\n width: 100%;\n margin: 0;\n color: $inverted-text-color;\n background: $white;\n padding: 10px;\n font-family: inherit;\n font-size: 14px;\n resize: none;\n border: 0;\n outline: 0;\n border-radius: 4px;\n border: 1px solid $ui-secondary-color;\n min-height: 100px;\n max-height: 50vh;\n margin-bottom: 10px;\n\n &:focus {\n border: 1px solid darken($ui-secondary-color, 8%);\n }\n\n &__wrapper {\n background: $white;\n border: 1px solid $ui-secondary-color;\n margin-bottom: 10px;\n border-radius: 4px;\n\n .setting-text {\n border: 0;\n margin-bottom: 0;\n border-radius: 0;\n\n &:focus {\n border: 0;\n }\n }\n\n &__modifiers {\n color: $inverted-text-color;\n font-family: inherit;\n font-size: 14px;\n background: $white;\n }\n }\n\n &__toolbar {\n display: flex;\n justify-content: space-between;\n margin-bottom: 20px;\n }\n }\n\n .setting-text-label {\n display: block;\n color: $inverted-text-color;\n font-size: 14px;\n font-weight: 500;\n margin-bottom: 10px;\n }\n\n .setting-toggle {\n margin-top: 20px;\n margin-bottom: 24px;\n\n &__label {\n color: $inverted-text-color;\n font-size: 14px;\n }\n }\n\n @media screen and (max-width: 480px) {\n padding: 10px;\n max-width: 100%;\n order: 2;\n\n .setting-toggle {\n margin-bottom: 4px;\n }\n }\n}\n\n.actions-modal {\n max-height: 80vh;\n max-width: 80vw;\n\n .status {\n overflow-y: auto;\n max-height: 300px;\n }\n\n .actions-modal__item-label {\n font-weight: 500;\n }\n\n ul {\n overflow-y: auto;\n flex-shrink: 0;\n max-height: 80vh;\n\n &.with-status {\n max-height: calc(80vh - 75px);\n }\n\n li:empty {\n margin: 0;\n }\n\n li:not(:empty) {\n a {\n color: $inverted-text-color;\n display: flex;\n padding: 12px 16px;\n font-size: 15px;\n align-items: center;\n text-decoration: none;\n\n &,\n button {\n transition: none;\n }\n\n &.active,\n &:hover,\n &:active,\n &:focus {\n &,\n button {\n background: $ui-highlight-color;\n color: $primary-text-color;\n }\n }\n\n button:first-child {\n margin-right: 10px;\n }\n }\n }\n }\n}\n\n.confirmation-modal__action-bar,\n.mute-modal__action-bar,\n.block-modal__action-bar {\n .confirmation-modal__secondary-button {\n flex-shrink: 1;\n }\n}\n\n.confirmation-modal__secondary-button,\n.confirmation-modal__cancel-button,\n.mute-modal__cancel-button,\n.block-modal__cancel-button {\n background-color: transparent;\n color: $lighter-text-color;\n font-size: 14px;\n font-weight: 500;\n\n &:hover,\n &:focus,\n &:active {\n color: darken($lighter-text-color, 4%);\n background-color: transparent;\n }\n}\n\n.confirmation-modal__container,\n.mute-modal__container,\n.block-modal__container,\n.report-modal__target {\n padding: 30px;\n font-size: 16px;\n\n strong {\n font-weight: 500;\n\n @each $lang in $cjk-langs {\n &:lang(#{$lang}) {\n font-weight: 700;\n }\n }\n }\n}\n\n.confirmation-modal__container,\n.report-modal__target {\n text-align: center;\n}\n\n.block-modal,\n.mute-modal {\n &__explanation {\n margin-top: 20px;\n }\n\n .setting-toggle {\n margin-top: 20px;\n margin-bottom: 24px;\n display: flex;\n align-items: center;\n\n &__label {\n color: $inverted-text-color;\n margin: 0;\n margin-left: 8px;\n }\n }\n}\n\n.report-modal__target {\n padding: 15px;\n\n .media-modal__close {\n top: 14px;\n right: 15px;\n }\n}\n\n.loading-bar {\n background-color: $highlight-text-color;\n height: 3px;\n position: absolute;\n top: 0;\n left: 0;\n z-index: 9999;\n}\n\n.media-gallery__gifv__label {\n display: block;\n position: absolute;\n color: $primary-text-color;\n background: rgba($base-overlay-background, 0.5);\n bottom: 6px;\n left: 6px;\n padding: 2px 6px;\n border-radius: 2px;\n font-size: 11px;\n font-weight: 600;\n z-index: 1;\n pointer-events: none;\n opacity: 0.9;\n transition: opacity 0.1s ease;\n line-height: 18px;\n}\n\n.media-gallery__gifv {\n &:hover {\n .media-gallery__gifv__label {\n opacity: 1;\n }\n }\n}\n\n.media-gallery__audio {\n margin-top: 32px;\n\n audio {\n width: 100%;\n }\n}\n\n.attachment-list {\n display: flex;\n font-size: 14px;\n border: 1px solid lighten($ui-base-color, 8%);\n border-radius: 4px;\n margin-top: 14px;\n overflow: hidden;\n\n &__icon {\n flex: 0 0 auto;\n color: $dark-text-color;\n padding: 8px 18px;\n cursor: default;\n border-right: 1px solid lighten($ui-base-color, 8%);\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n font-size: 26px;\n\n .fa {\n display: block;\n }\n }\n\n &__list {\n list-style: none;\n padding: 4px 0;\n padding-left: 8px;\n display: flex;\n flex-direction: column;\n justify-content: center;\n\n li {\n display: block;\n padding: 4px 0;\n }\n\n a {\n text-decoration: none;\n color: $dark-text-color;\n font-weight: 500;\n\n &:hover {\n text-decoration: underline;\n }\n }\n }\n\n &.compact {\n border: 0;\n margin-top: 4px;\n\n .attachment-list__list {\n padding: 0;\n display: block;\n }\n\n .fa {\n color: $dark-text-color;\n }\n }\n}\n\n/* Media Gallery */\n.media-gallery {\n box-sizing: border-box;\n margin-top: 8px;\n overflow: hidden;\n border-radius: 4px;\n position: relative;\n width: 100%;\n}\n\n.media-gallery__item {\n border: 0;\n box-sizing: border-box;\n display: block;\n float: left;\n position: relative;\n border-radius: 4px;\n overflow: hidden;\n\n &.standalone {\n .media-gallery__item-gifv-thumbnail {\n transform: none;\n top: 0;\n }\n }\n}\n\n.media-gallery__item-thumbnail {\n cursor: zoom-in;\n display: block;\n text-decoration: none;\n color: $secondary-text-color;\n position: relative;\n z-index: 1;\n\n &,\n img {\n height: 100%;\n width: 100%;\n }\n\n img {\n object-fit: cover;\n }\n}\n\n.media-gallery__preview {\n width: 100%;\n height: 100%;\n object-fit: cover;\n position: absolute;\n top: 0;\n left: 0;\n z-index: 0;\n background: $base-overlay-background;\n\n &--hidden {\n display: none;\n }\n}\n\n.media-gallery__gifv {\n height: 100%;\n overflow: hidden;\n position: relative;\n width: 100%;\n}\n\n.media-gallery__item-gifv-thumbnail {\n cursor: zoom-in;\n height: 100%;\n object-fit: cover;\n position: relative;\n top: 50%;\n transform: translateY(-50%);\n width: 100%;\n z-index: 1;\n}\n\n.media-gallery__item-thumbnail-label {\n clip: rect(1px 1px 1px 1px); /* IE6, IE7 */\n clip: rect(1px, 1px, 1px, 1px);\n overflow: hidden;\n position: absolute;\n}\n/* End Media Gallery */\n\n.detailed,\n.fullscreen {\n .video-player__volume__current,\n .video-player__volume::before {\n bottom: 27px;\n }\n\n .video-player__volume__handle {\n bottom: 23px;\n }\n\n}\n\n.audio-player {\n box-sizing: border-box;\n position: relative;\n background: darken($ui-base-color, 8%);\n border-radius: 4px;\n padding-bottom: 44px;\n direction: ltr;\n\n &.editable {\n border-radius: 0;\n height: 100%;\n }\n\n &__waveform {\n padding: 15px 0;\n position: relative;\n overflow: hidden;\n\n &::before {\n content: \"\";\n display: block;\n position: absolute;\n border-top: 1px solid lighten($ui-base-color, 4%);\n width: 100%;\n height: 0;\n left: 0;\n top: calc(50% + 1px);\n }\n }\n\n &__progress-placeholder {\n background-color: rgba(lighten($ui-highlight-color, 8%), 0.5);\n }\n\n &__wave-placeholder {\n background-color: lighten($ui-base-color, 16%);\n }\n\n .video-player__controls {\n padding: 0 15px;\n padding-top: 10px;\n background: darken($ui-base-color, 8%);\n border-top: 1px solid lighten($ui-base-color, 4%);\n border-radius: 0 0 4px 4px;\n }\n}\n\n.video-player {\n overflow: hidden;\n position: relative;\n background: $base-shadow-color;\n max-width: 100%;\n border-radius: 4px;\n box-sizing: border-box;\n direction: ltr;\n\n &.editable {\n border-radius: 0;\n height: 100% !important;\n }\n\n &:focus {\n outline: 0;\n }\n\n video {\n max-width: 100vw;\n max-height: 80vh;\n z-index: 1;\n }\n\n &.fullscreen {\n width: 100% !important;\n height: 100% !important;\n margin: 0;\n\n video {\n max-width: 100% !important;\n max-height: 100% !important;\n width: 100% !important;\n height: 100% !important;\n outline: 0;\n }\n }\n\n &.inline {\n video {\n object-fit: contain;\n position: relative;\n top: 50%;\n transform: translateY(-50%);\n }\n }\n\n &__controls {\n position: absolute;\n z-index: 2;\n bottom: 0;\n left: 0;\n right: 0;\n box-sizing: border-box;\n background: linear-gradient(0deg, rgba($base-shadow-color, 0.85) 0, rgba($base-shadow-color, 0.45) 60%, transparent);\n padding: 0 15px;\n opacity: 0;\n transition: opacity .1s ease;\n\n &.active {\n opacity: 1;\n }\n }\n\n &.inactive {\n video,\n .video-player__controls {\n visibility: hidden;\n }\n }\n\n &__spoiler {\n display: none;\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n z-index: 4;\n border: 0;\n background: $base-overlay-background;\n color: $darker-text-color;\n transition: none;\n pointer-events: none;\n\n &.active {\n display: block;\n pointer-events: auto;\n\n &:hover,\n &:active,\n &:focus {\n color: lighten($darker-text-color, 7%);\n }\n }\n\n &__title {\n display: block;\n font-size: 14px;\n }\n\n &__subtitle {\n display: block;\n font-size: 11px;\n font-weight: 500;\n }\n }\n\n &__buttons-bar {\n display: flex;\n justify-content: space-between;\n padding-bottom: 10px;\n\n .video-player__download__icon {\n color: inherit;\n }\n }\n\n &__buttons {\n font-size: 16px;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n\n &.left {\n button {\n padding-left: 0;\n }\n }\n\n &.right {\n button {\n padding-right: 0;\n }\n }\n\n button {\n background: transparent;\n padding: 2px 10px;\n font-size: 16px;\n border: 0;\n color: rgba($white, 0.75);\n\n &:active,\n &:hover,\n &:focus {\n color: $white;\n }\n }\n }\n\n &__time-sep,\n &__time-total,\n &__time-current {\n font-size: 14px;\n font-weight: 500;\n }\n\n &__time-current {\n color: $white;\n margin-left: 60px;\n }\n\n &__time-sep {\n display: inline-block;\n margin: 0 6px;\n }\n\n &__time-sep,\n &__time-total {\n color: $white;\n }\n\n &__volume {\n cursor: pointer;\n height: 24px;\n display: inline;\n\n &::before {\n content: \"\";\n width: 50px;\n background: rgba($white, 0.35);\n border-radius: 4px;\n display: block;\n position: absolute;\n height: 4px;\n left: 70px;\n bottom: 20px;\n }\n\n &__current {\n display: block;\n position: absolute;\n height: 4px;\n border-radius: 4px;\n left: 70px;\n bottom: 20px;\n background: lighten($ui-highlight-color, 8%);\n }\n\n &__handle {\n position: absolute;\n z-index: 3;\n border-radius: 50%;\n width: 12px;\n height: 12px;\n bottom: 16px;\n left: 70px;\n transition: opacity .1s ease;\n background: lighten($ui-highlight-color, 8%);\n box-shadow: 1px 2px 6px rgba($base-shadow-color, 0.2);\n pointer-events: none;\n }\n }\n\n &__link {\n padding: 2px 10px;\n\n a {\n text-decoration: none;\n font-size: 14px;\n font-weight: 500;\n color: $white;\n\n &:hover,\n &:active,\n &:focus {\n text-decoration: underline;\n }\n }\n }\n\n &__seek {\n cursor: pointer;\n height: 24px;\n position: relative;\n\n &::before {\n content: \"\";\n width: 100%;\n background: rgba($white, 0.35);\n border-radius: 4px;\n display: block;\n position: absolute;\n height: 4px;\n top: 10px;\n }\n\n &__progress,\n &__buffer {\n display: block;\n position: absolute;\n height: 4px;\n border-radius: 4px;\n top: 10px;\n background: lighten($ui-highlight-color, 8%);\n }\n\n &__buffer {\n background: rgba($white, 0.2);\n }\n\n &__handle {\n position: absolute;\n z-index: 3;\n opacity: 0;\n border-radius: 50%;\n width: 12px;\n height: 12px;\n top: 6px;\n margin-left: -6px;\n transition: opacity .1s ease;\n background: lighten($ui-highlight-color, 8%);\n box-shadow: 1px 2px 6px rgba($base-shadow-color, 0.2);\n pointer-events: none;\n\n &.active {\n opacity: 1;\n }\n }\n\n &:hover {\n .video-player__seek__handle {\n opacity: 1;\n }\n }\n }\n\n &.detailed,\n &.fullscreen {\n .video-player__buttons {\n button {\n padding-top: 10px;\n padding-bottom: 10px;\n }\n }\n }\n}\n\n.directory {\n &__list {\n width: 100%;\n margin: 10px 0;\n transition: opacity 100ms ease-in;\n\n &.loading {\n opacity: 0.7;\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n margin: 0;\n }\n }\n\n &__card {\n box-sizing: border-box;\n margin-bottom: 10px;\n\n &__img {\n height: 125px;\n position: relative;\n background: darken($ui-base-color, 12%);\n overflow: hidden;\n\n img {\n display: block;\n width: 100%;\n height: 100%;\n margin: 0;\n object-fit: cover;\n }\n }\n\n &__bar {\n display: flex;\n align-items: center;\n background: lighten($ui-base-color, 4%);\n padding: 10px;\n\n &__name {\n flex: 1 1 auto;\n display: flex;\n align-items: center;\n text-decoration: none;\n overflow: hidden;\n }\n\n &__relationship {\n width: 23px;\n min-height: 1px;\n flex: 0 0 auto;\n }\n\n .avatar {\n flex: 0 0 auto;\n width: 48px;\n height: 48px;\n padding-top: 2px;\n\n img {\n width: 100%;\n height: 100%;\n display: block;\n margin: 0;\n border-radius: 4px;\n background: darken($ui-base-color, 8%);\n object-fit: cover;\n }\n }\n\n .display-name {\n margin-left: 15px;\n text-align: left;\n\n strong {\n font-size: 15px;\n color: $primary-text-color;\n font-weight: 500;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n span {\n display: block;\n font-size: 14px;\n color: $darker-text-color;\n font-weight: 400;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n }\n }\n\n &__extra {\n background: $ui-base-color;\n display: flex;\n align-items: center;\n justify-content: center;\n\n .accounts-table__count {\n width: 33.33%;\n flex: 0 0 auto;\n padding: 15px 0;\n }\n\n .account__header__content {\n box-sizing: border-box;\n padding: 15px 10px;\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n width: 100%;\n min-height: 18px + 30px;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n\n p {\n display: none;\n\n &:first-child {\n display: inline;\n }\n }\n\n br {\n display: none;\n }\n }\n }\n }\n}\n\n.account-gallery__container {\n display: flex;\n flex-wrap: wrap;\n padding: 4px 2px;\n}\n\n.account-gallery__item {\n border: 0;\n box-sizing: border-box;\n display: block;\n position: relative;\n border-radius: 4px;\n overflow: hidden;\n margin: 2px;\n\n &__icons {\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n font-size: 24px;\n }\n}\n\n.notification__filter-bar,\n.account__section-headline {\n background: darken($ui-base-color, 4%);\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n cursor: default;\n display: flex;\n flex-shrink: 0;\n\n button {\n background: darken($ui-base-color, 4%);\n border: 0;\n margin: 0;\n }\n\n button,\n a {\n display: block;\n flex: 1 1 auto;\n color: $darker-text-color;\n padding: 15px 0;\n font-size: 14px;\n font-weight: 500;\n text-align: center;\n text-decoration: none;\n position: relative;\n width: 100%;\n white-space: nowrap;\n\n &.active {\n color: $secondary-text-color;\n\n &::before,\n &::after {\n display: block;\n content: \"\";\n position: absolute;\n bottom: 0;\n left: 50%;\n width: 0;\n height: 0;\n transform: translateX(-50%);\n border-style: solid;\n border-width: 0 10px 10px;\n border-color: transparent transparent lighten($ui-base-color, 8%);\n }\n\n &::after {\n bottom: -1px;\n border-color: transparent transparent $ui-base-color;\n }\n }\n }\n\n &.directory__section-headline {\n background: darken($ui-base-color, 2%);\n border-bottom-color: transparent;\n\n a,\n button {\n &.active {\n &::before {\n display: none;\n }\n\n &::after {\n border-color: transparent transparent darken($ui-base-color, 7%);\n }\n }\n }\n }\n}\n\n.filter-form {\n background: $ui-base-color;\n\n &__column {\n padding: 10px 15px;\n }\n\n .radio-button {\n display: block;\n }\n}\n\n.radio-button {\n font-size: 14px;\n position: relative;\n display: inline-block;\n padding: 6px 0;\n line-height: 18px;\n cursor: default;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n cursor: pointer;\n\n input[type=radio],\n input[type=checkbox] {\n display: none;\n }\n\n &__input {\n display: inline-block;\n position: relative;\n border: 1px solid $ui-primary-color;\n box-sizing: border-box;\n width: 18px;\n height: 18px;\n flex: 0 0 auto;\n margin-right: 10px;\n top: -1px;\n border-radius: 50%;\n vertical-align: middle;\n\n &.checked {\n border-color: lighten($ui-highlight-color, 8%);\n background: lighten($ui-highlight-color, 8%);\n }\n }\n}\n\n::-webkit-scrollbar-thumb {\n border-radius: 0;\n}\n\n.search-popout {\n @include search-popout;\n}\n\nnoscript {\n text-align: center;\n\n img {\n width: 200px;\n opacity: 0.5;\n animation: flicker 4s infinite;\n }\n\n div {\n font-size: 14px;\n margin: 30px auto;\n color: $secondary-text-color;\n max-width: 400px;\n\n a {\n color: $highlight-text-color;\n text-decoration: underline;\n\n &:hover {\n text-decoration: none;\n }\n }\n }\n}\n\n@keyframes flicker {\n 0% { opacity: 1; }\n 30% { opacity: 0.75; }\n 100% { opacity: 1; }\n}\n\n@media screen and (max-width: 630px) and (max-height: 400px) {\n $duration: 400ms;\n $delay: 100ms;\n\n .tabs-bar,\n .search {\n will-change: margin-top;\n transition: margin-top $duration $delay;\n }\n\n .navigation-bar {\n will-change: padding-bottom;\n transition: padding-bottom $duration $delay;\n }\n\n .navigation-bar {\n & > a:first-child {\n will-change: margin-top, margin-left, margin-right, width;\n transition: margin-top $duration $delay, margin-left $duration ($duration + $delay), margin-right $duration ($duration + $delay);\n }\n\n & > .navigation-bar__profile-edit {\n will-change: margin-top;\n transition: margin-top $duration $delay;\n }\n\n .navigation-bar__actions {\n & > .icon-button.close {\n will-change: opacity transform;\n transition: opacity $duration * 0.5 $delay,\n transform $duration $delay;\n }\n\n & > .compose__action-bar .icon-button {\n will-change: opacity transform;\n transition: opacity $duration * 0.5 $delay + $duration * 0.5,\n transform $duration $delay;\n }\n }\n }\n\n .is-composing {\n .tabs-bar,\n .search {\n margin-top: -50px;\n }\n\n .navigation-bar {\n padding-bottom: 0;\n\n & > a:first-child {\n margin: -100px 10px 0 -50px;\n }\n\n .navigation-bar__profile {\n padding-top: 2px;\n }\n\n .navigation-bar__profile-edit {\n position: absolute;\n margin-top: -60px;\n }\n\n .navigation-bar__actions {\n .icon-button.close {\n pointer-events: auto;\n opacity: 1;\n transform: scale(1, 1) translate(0, 0);\n bottom: 5px;\n }\n\n .compose__action-bar .icon-button {\n pointer-events: none;\n opacity: 0;\n transform: scale(0, 1) translate(100%, 0);\n }\n }\n }\n }\n}\n\n.embed-modal {\n width: auto;\n max-width: 80vw;\n max-height: 80vh;\n\n h4 {\n padding: 30px;\n font-weight: 500;\n font-size: 16px;\n text-align: center;\n }\n\n .embed-modal__container {\n padding: 10px;\n\n .hint {\n margin-bottom: 15px;\n }\n\n .embed-modal__html {\n outline: 0;\n box-sizing: border-box;\n display: block;\n width: 100%;\n border: 0;\n padding: 10px;\n font-family: $font-monospace, monospace;\n background: $ui-base-color;\n color: $primary-text-color;\n font-size: 14px;\n margin: 0;\n margin-bottom: 15px;\n border-radius: 4px;\n\n &::-moz-focus-inner {\n border: 0;\n }\n\n &::-moz-focus-inner,\n &:focus,\n &:active {\n outline: 0 !important;\n }\n\n &:focus {\n background: lighten($ui-base-color, 4%);\n }\n\n @media screen and (max-width: 600px) {\n font-size: 16px;\n }\n }\n\n .embed-modal__iframe {\n width: 400px;\n max-width: 100%;\n overflow: hidden;\n border: 0;\n border-radius: 4px;\n }\n }\n}\n\n.account__moved-note {\n padding: 14px 10px;\n padding-bottom: 16px;\n background: lighten($ui-base-color, 4%);\n border-top: 1px solid lighten($ui-base-color, 8%);\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n\n &__message {\n position: relative;\n margin-left: 58px;\n color: $dark-text-color;\n padding: 8px 0;\n padding-top: 0;\n padding-bottom: 4px;\n font-size: 14px;\n\n > span {\n display: block;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n }\n\n &__icon-wrapper {\n left: -26px;\n position: absolute;\n }\n\n .detailed-status__display-avatar {\n position: relative;\n }\n\n .detailed-status__display-name {\n margin-bottom: 0;\n }\n}\n\n.column-inline-form {\n padding: 15px;\n padding-right: 0;\n display: flex;\n justify-content: flex-start;\n align-items: center;\n background: lighten($ui-base-color, 4%);\n\n label {\n flex: 1 1 auto;\n\n input {\n width: 100%;\n\n &:focus {\n outline: 0;\n }\n }\n }\n\n .icon-button {\n flex: 0 0 auto;\n margin: 0 10px;\n }\n}\n\n.drawer__backdrop {\n cursor: pointer;\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n background: rgba($base-overlay-background, 0.5);\n}\n\n.list-editor {\n background: $ui-base-color;\n flex-direction: column;\n border-radius: 8px;\n box-shadow: 2px 4px 15px rgba($base-shadow-color, 0.4);\n width: 380px;\n overflow: hidden;\n\n @media screen and (max-width: 420px) {\n width: 90%;\n }\n\n h4 {\n padding: 15px 0;\n background: lighten($ui-base-color, 13%);\n font-weight: 500;\n font-size: 16px;\n text-align: center;\n border-radius: 8px 8px 0 0;\n }\n\n .drawer__pager {\n height: 50vh;\n }\n\n .drawer__inner {\n border-radius: 0 0 8px 8px;\n\n &.backdrop {\n width: calc(100% - 60px);\n box-shadow: 2px 4px 15px rgba($base-shadow-color, 0.4);\n border-radius: 0 0 0 8px;\n }\n }\n\n &__accounts {\n overflow-y: auto;\n }\n\n .account__display-name {\n &:hover strong {\n text-decoration: none;\n }\n }\n\n .account__avatar {\n cursor: default;\n }\n\n .search {\n margin-bottom: 0;\n }\n}\n\n.list-adder {\n background: $ui-base-color;\n flex-direction: column;\n border-radius: 8px;\n box-shadow: 2px 4px 15px rgba($base-shadow-color, 0.4);\n width: 380px;\n overflow: hidden;\n\n @media screen and (max-width: 420px) {\n width: 90%;\n }\n\n &__account {\n background: lighten($ui-base-color, 13%);\n }\n\n &__lists {\n background: lighten($ui-base-color, 13%);\n height: 50vh;\n border-radius: 0 0 8px 8px;\n overflow-y: auto;\n }\n\n .list {\n padding: 10px;\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n }\n\n .list__wrapper {\n display: flex;\n }\n\n .list__display-name {\n flex: 1 1 auto;\n overflow: hidden;\n text-decoration: none;\n font-size: 16px;\n padding: 10px;\n }\n}\n\n.focal-point {\n position: relative;\n cursor: move;\n overflow: hidden;\n height: 100%;\n display: flex;\n justify-content: center;\n align-items: center;\n background: $base-shadow-color;\n\n img,\n video,\n canvas {\n display: block;\n max-height: 80vh;\n width: 100%;\n height: auto;\n margin: 0;\n object-fit: contain;\n background: $base-shadow-color;\n }\n\n &__reticle {\n position: absolute;\n width: 100px;\n height: 100px;\n transform: translate(-50%, -50%);\n background: url('~images/reticle.png') no-repeat 0 0;\n border-radius: 50%;\n box-shadow: 0 0 0 9999em rgba($base-shadow-color, 0.35);\n }\n\n &__overlay {\n position: absolute;\n width: 100%;\n height: 100%;\n top: 0;\n left: 0;\n }\n\n &__preview {\n position: absolute;\n bottom: 10px;\n right: 10px;\n z-index: 2;\n cursor: move;\n transition: opacity 0.1s ease;\n\n &:hover {\n opacity: 0.5;\n }\n\n strong {\n color: $primary-text-color;\n font-size: 14px;\n font-weight: 500;\n display: block;\n margin-bottom: 5px;\n }\n\n div {\n border-radius: 4px;\n box-shadow: 0 0 14px rgba($base-shadow-color, 0.2);\n }\n }\n\n @media screen and (max-width: 480px) {\n img,\n video {\n max-height: 100%;\n }\n\n &__preview {\n display: none;\n }\n }\n}\n\n.account__header__content {\n color: $darker-text-color;\n font-size: 14px;\n font-weight: 400;\n overflow: hidden;\n word-break: normal;\n word-wrap: break-word;\n\n p {\n margin-bottom: 20px;\n\n &:last-child {\n margin-bottom: 0;\n }\n }\n\n a {\n color: inherit;\n text-decoration: underline;\n\n &:hover {\n text-decoration: none;\n }\n }\n}\n\n.account__header {\n overflow: hidden;\n\n &.inactive {\n opacity: 0.5;\n\n .account__header__image,\n .account__avatar {\n filter: grayscale(100%);\n }\n }\n\n &__info {\n position: absolute;\n top: 10px;\n left: 10px;\n }\n\n &__image {\n overflow: hidden;\n height: 145px;\n position: relative;\n background: darken($ui-base-color, 4%);\n\n img {\n object-fit: cover;\n display: block;\n width: 100%;\n height: 100%;\n margin: 0;\n }\n }\n\n &__bar {\n position: relative;\n background: lighten($ui-base-color, 4%);\n padding: 5px;\n border-bottom: 1px solid lighten($ui-base-color, 12%);\n\n .avatar {\n display: block;\n flex: 0 0 auto;\n width: 94px;\n margin-left: -2px;\n\n .account__avatar {\n background: darken($ui-base-color, 8%);\n border: 2px solid lighten($ui-base-color, 4%);\n }\n }\n }\n\n &__tabs {\n display: flex;\n align-items: flex-start;\n padding: 7px 5px;\n margin-top: -55px;\n\n &__buttons {\n display: flex;\n align-items: center;\n padding-top: 55px;\n overflow: hidden;\n\n .icon-button {\n border: 1px solid lighten($ui-base-color, 12%);\n border-radius: 4px;\n box-sizing: content-box;\n padding: 2px;\n }\n\n .button {\n margin: 0 8px;\n }\n }\n\n &__name {\n padding: 5px;\n\n .account-role {\n vertical-align: top;\n }\n\n .emojione {\n width: 22px;\n height: 22px;\n }\n\n h1 {\n font-size: 16px;\n line-height: 24px;\n color: $primary-text-color;\n font-weight: 500;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n\n small {\n display: block;\n font-size: 14px;\n color: $darker-text-color;\n font-weight: 400;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n }\n }\n\n .spacer {\n flex: 1 1 auto;\n }\n }\n\n &__bio {\n overflow: hidden;\n margin: 0 -5px;\n\n .account__header__content {\n padding: 20px 15px;\n padding-bottom: 5px;\n color: $primary-text-color;\n }\n\n .account__header__fields {\n margin: 0;\n border-top: 1px solid lighten($ui-base-color, 12%);\n\n a {\n color: lighten($ui-highlight-color, 8%);\n }\n\n dl:first-child .verified {\n border-radius: 0 4px 0 0;\n }\n\n .verified a {\n color: $valid-value-color;\n }\n }\n }\n\n &__extra {\n margin-top: 4px;\n\n &__links {\n font-size: 14px;\n color: $darker-text-color;\n padding: 10px 0;\n\n a {\n display: inline-block;\n color: $darker-text-color;\n text-decoration: none;\n padding: 5px 10px;\n font-weight: 500;\n\n strong {\n font-weight: 700;\n color: $primary-text-color;\n }\n }\n }\n }\n}\n\n.trends {\n &__header {\n color: $dark-text-color;\n background: lighten($ui-base-color, 2%);\n border-bottom: 1px solid darken($ui-base-color, 4%);\n font-weight: 500;\n padding: 15px;\n font-size: 16px;\n cursor: default;\n\n .fa {\n display: inline-block;\n margin-right: 5px;\n }\n }\n\n &__item {\n display: flex;\n align-items: center;\n padding: 15px;\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n\n &:last-child {\n border-bottom: 0;\n }\n\n &__name {\n flex: 1 1 auto;\n color: $dark-text-color;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n\n strong {\n font-weight: 500;\n }\n\n a {\n color: $darker-text-color;\n text-decoration: none;\n font-size: 14px;\n font-weight: 500;\n display: block;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n\n &:hover,\n &:focus,\n &:active {\n span {\n text-decoration: underline;\n }\n }\n }\n }\n\n &__current {\n flex: 0 0 auto;\n font-size: 24px;\n line-height: 36px;\n font-weight: 500;\n text-align: right;\n padding-right: 15px;\n margin-left: 5px;\n color: $secondary-text-color;\n }\n\n &__sparkline {\n flex: 0 0 auto;\n width: 50px;\n\n path:first-child {\n fill: rgba($highlight-text-color, 0.25) !important;\n fill-opacity: 1 !important;\n }\n\n path:last-child {\n stroke: lighten($highlight-text-color, 6%) !important;\n }\n }\n }\n}\n\n.conversation {\n display: flex;\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n padding: 5px;\n padding-bottom: 0;\n\n &:focus {\n background: lighten($ui-base-color, 2%);\n outline: 0;\n }\n\n &__avatar {\n flex: 0 0 auto;\n padding: 10px;\n padding-top: 12px;\n position: relative;\n cursor: pointer;\n }\n\n &__unread {\n display: inline-block;\n background: $highlight-text-color;\n border-radius: 50%;\n width: 0.625rem;\n height: 0.625rem;\n margin: -.1ex .15em .1ex;\n }\n\n &__content {\n flex: 1 1 auto;\n padding: 10px 5px;\n padding-right: 15px;\n overflow: hidden;\n\n &__info {\n overflow: hidden;\n display: flex;\n flex-direction: row-reverse;\n justify-content: space-between;\n }\n\n &__relative-time {\n font-size: 15px;\n color: $darker-text-color;\n padding-left: 15px;\n }\n\n &__names {\n color: $darker-text-color;\n font-size: 15px;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n margin-bottom: 4px;\n flex-basis: 90px;\n flex-grow: 1;\n\n a {\n color: $primary-text-color;\n text-decoration: none;\n\n &:hover,\n &:focus,\n &:active {\n text-decoration: underline;\n }\n }\n }\n\n a {\n word-break: break-word;\n }\n }\n\n &--unread {\n background: lighten($ui-base-color, 2%);\n\n &:focus {\n background: lighten($ui-base-color, 4%);\n }\n\n .conversation__content__info {\n font-weight: 700;\n }\n\n .conversation__content__relative-time {\n color: $primary-text-color;\n }\n }\n}\n\n.announcements {\n background: lighten($ui-base-color, 8%);\n font-size: 13px;\n display: flex;\n align-items: flex-end;\n\n &__mastodon {\n width: 124px;\n flex: 0 0 auto;\n\n @media screen and (max-width: 124px + 300px) {\n display: none;\n }\n }\n\n &__container {\n width: calc(100% - 124px);\n flex: 0 0 auto;\n position: relative;\n\n @media screen and (max-width: 124px + 300px) {\n width: 100%;\n }\n }\n\n &__item {\n box-sizing: border-box;\n width: 100%;\n padding: 15px;\n position: relative;\n font-size: 15px;\n line-height: 20px;\n word-wrap: break-word;\n font-weight: 400;\n max-height: 50vh;\n overflow: hidden;\n display: flex;\n flex-direction: column;\n\n &__range {\n display: block;\n font-weight: 500;\n margin-bottom: 10px;\n padding-right: 18px;\n }\n\n &__unread {\n position: absolute;\n top: 19px;\n right: 19px;\n display: block;\n background: $highlight-text-color;\n border-radius: 50%;\n width: 0.625rem;\n height: 0.625rem;\n }\n }\n\n &__pagination {\n padding: 15px;\n color: $darker-text-color;\n position: absolute;\n bottom: 3px;\n right: 0;\n }\n}\n\n.layout-multiple-columns .announcements__mastodon {\n display: none;\n}\n\n.layout-multiple-columns .announcements__container {\n width: 100%;\n}\n\n.reactions-bar {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n margin-top: 15px;\n margin-left: -2px;\n width: calc(100% - (90px - 33px));\n\n &__item {\n flex-shrink: 0;\n background: lighten($ui-base-color, 12%);\n border: 0;\n border-radius: 3px;\n margin: 2px;\n cursor: pointer;\n user-select: none;\n padding: 0 6px;\n display: flex;\n align-items: center;\n transition: all 100ms ease-in;\n transition-property: background-color, color;\n\n &__emoji {\n display: block;\n margin: 3px 0;\n width: 16px;\n height: 16px;\n\n img {\n display: block;\n margin: 0;\n width: 100%;\n height: 100%;\n min-width: auto;\n min-height: auto;\n vertical-align: bottom;\n object-fit: contain;\n }\n }\n\n &__count {\n display: block;\n min-width: 9px;\n font-size: 13px;\n font-weight: 500;\n text-align: center;\n margin-left: 6px;\n color: $darker-text-color;\n }\n\n &:hover,\n &:focus,\n &:active {\n background: lighten($ui-base-color, 16%);\n transition: all 200ms ease-out;\n transition-property: background-color, color;\n\n &__count {\n color: lighten($darker-text-color, 4%);\n }\n }\n\n &.active {\n transition: all 100ms ease-in;\n transition-property: background-color, color;\n background-color: mix(lighten($ui-base-color, 12%), $ui-highlight-color, 80%);\n\n .reactions-bar__item__count {\n color: lighten($highlight-text-color, 8%);\n }\n }\n }\n\n .emoji-picker-dropdown {\n margin: 2px;\n }\n\n &:hover .emoji-button {\n opacity: 0.85;\n }\n\n .emoji-button {\n color: $darker-text-color;\n margin: 0;\n font-size: 16px;\n width: auto;\n flex-shrink: 0;\n padding: 0 6px;\n height: 22px;\n display: flex;\n align-items: center;\n opacity: 0.5;\n transition: all 100ms ease-in;\n transition-property: background-color, color;\n\n &:hover,\n &:active,\n &:focus {\n opacity: 1;\n color: lighten($darker-text-color, 4%);\n transition: all 200ms ease-out;\n transition-property: background-color, color;\n }\n }\n\n &--empty {\n .emoji-button {\n padding: 0;\n }\n }\n}\n",null,"@mixin avatar-radius {\n border-radius: 4px;\n background: transparent no-repeat;\n background-position: 50%;\n background-clip: padding-box;\n}\n\n@mixin avatar-size($size: 48px) {\n width: $size;\n height: $size;\n background-size: $size $size;\n}\n\n@mixin search-input {\n outline: 0;\n box-sizing: border-box;\n width: 100%;\n border: 0;\n box-shadow: none;\n font-family: inherit;\n background: $ui-base-color;\n color: $darker-text-color;\n font-size: 14px;\n margin: 0;\n}\n\n@mixin search-popout {\n background: $simple-background-color;\n border-radius: 4px;\n padding: 10px 14px;\n padding-bottom: 14px;\n margin-top: 10px;\n color: $light-text-color;\n box-shadow: 2px 4px 15px rgba($base-shadow-color, 0.4);\n\n h4 {\n text-transform: uppercase;\n color: $light-text-color;\n font-size: 13px;\n font-weight: 500;\n margin-bottom: 10px;\n }\n\n li {\n padding: 4px 0;\n }\n\n ul {\n margin-bottom: 10px;\n }\n\n em {\n font-weight: 500;\n color: $inverted-text-color;\n }\n}\n",".poll {\n margin-top: 16px;\n font-size: 14px;\n\n li {\n margin-bottom: 10px;\n position: relative;\n }\n\n &__chart {\n border-radius: 4px;\n display: block;\n background: darken($ui-primary-color, 5%);\n height: 5px;\n min-width: 1%;\n\n &.leading {\n background: $ui-highlight-color;\n }\n }\n\n &__option {\n position: relative;\n display: flex;\n padding: 6px 0;\n line-height: 18px;\n cursor: default;\n overflow: hidden;\n\n &__text {\n display: inline-block;\n word-wrap: break-word;\n overflow-wrap: break-word;\n max-width: calc(100% - 45px - 25px);\n }\n\n input[type=radio],\n input[type=checkbox] {\n display: none;\n }\n\n .autossugest-input {\n flex: 1 1 auto;\n }\n\n input[type=text] {\n display: block;\n box-sizing: border-box;\n width: 100%;\n font-size: 14px;\n color: $inverted-text-color;\n outline: 0;\n font-family: inherit;\n background: $simple-background-color;\n border: 1px solid darken($simple-background-color, 14%);\n border-radius: 4px;\n padding: 6px 10px;\n\n &:focus {\n border-color: $highlight-text-color;\n }\n }\n\n &.selectable {\n cursor: pointer;\n }\n\n &.editable {\n display: flex;\n align-items: center;\n overflow: visible;\n }\n }\n\n &__input {\n display: inline-block;\n position: relative;\n border: 1px solid $ui-primary-color;\n box-sizing: border-box;\n width: 18px;\n height: 18px;\n flex: 0 0 auto;\n margin-right: 10px;\n top: -1px;\n border-radius: 50%;\n vertical-align: middle;\n margin-top: auto;\n margin-bottom: auto;\n flex: 0 0 18px;\n\n &.checkbox {\n border-radius: 4px;\n }\n\n &.active {\n border-color: $valid-value-color;\n background: $valid-value-color;\n }\n\n &:active,\n &:focus,\n &:hover {\n border-color: lighten($valid-value-color, 15%);\n border-width: 4px;\n }\n\n &::-moz-focus-inner {\n outline: 0 !important;\n border: 0;\n }\n\n &:focus,\n &:active {\n outline: 0 !important;\n }\n }\n\n &__number {\n display: inline-block;\n width: 45px;\n font-weight: 700;\n flex: 0 0 45px;\n }\n\n &__voted {\n padding: 0 5px;\n display: inline-block;\n\n &__mark {\n font-size: 18px;\n }\n }\n\n &__footer {\n padding-top: 6px;\n padding-bottom: 5px;\n color: $dark-text-color;\n }\n\n &__link {\n display: inline;\n background: transparent;\n padding: 0;\n margin: 0;\n border: 0;\n color: $dark-text-color;\n text-decoration: underline;\n font-size: inherit;\n\n &:hover {\n text-decoration: none;\n }\n\n &:active,\n &:focus {\n background-color: rgba($dark-text-color, .1);\n }\n }\n\n .button {\n height: 36px;\n padding: 0 16px;\n margin-right: 10px;\n font-size: 14px;\n }\n}\n\n.compose-form__poll-wrapper {\n border-top: 1px solid darken($simple-background-color, 8%);\n\n ul {\n padding: 10px;\n }\n\n .poll__footer {\n border-top: 1px solid darken($simple-background-color, 8%);\n padding: 10px;\n display: flex;\n align-items: center;\n\n button,\n select {\n flex: 1 1 50%;\n\n &:focus {\n border-color: $highlight-text-color;\n }\n }\n }\n\n .button.button-secondary {\n font-size: 14px;\n font-weight: 400;\n padding: 6px 10px;\n height: auto;\n line-height: inherit;\n color: $action-button-color;\n border-color: $action-button-color;\n margin-right: 5px;\n }\n\n li {\n display: flex;\n align-items: center;\n\n .poll__option {\n flex: 0 0 auto;\n width: calc(100% - (23px + 6px));\n margin-right: 6px;\n }\n }\n\n select {\n appearance: none;\n box-sizing: border-box;\n font-size: 14px;\n color: $inverted-text-color;\n display: inline-block;\n width: auto;\n outline: 0;\n font-family: inherit;\n background: $simple-background-color url(\"data:image/svg+xml;utf8,\") no-repeat right 8px center / auto 16px;\n border: 1px solid darken($simple-background-color, 14%);\n border-radius: 4px;\n padding: 6px 10px;\n padding-right: 30px;\n }\n\n .icon-button.disabled {\n color: darken($simple-background-color, 14%);\n }\n}\n\n.muted .poll {\n color: $dark-text-color;\n\n &__chart {\n background: rgba(darken($ui-primary-color, 14%), 0.2);\n\n &.leading {\n background: rgba($ui-highlight-color, 0.2);\n }\n }\n}\n",".modal-layout {\n background: $ui-base-color url('data:image/svg+xml;utf8,') repeat-x bottom fixed;\n display: flex;\n flex-direction: column;\n height: 100vh;\n padding: 0;\n}\n\n.modal-layout__mastodon {\n display: flex;\n flex: 1;\n flex-direction: column;\n justify-content: flex-end;\n\n > * {\n flex: 1;\n max-height: 235px;\n }\n}\n\n@media screen and (max-width: 600px) {\n .account-header {\n margin-top: 0;\n }\n}\n",".emoji-mart {\n font-size: 13px;\n display: inline-block;\n color: $inverted-text-color;\n\n &,\n * {\n box-sizing: border-box;\n line-height: 1.15;\n }\n\n .emoji-mart-emoji {\n padding: 6px;\n }\n}\n\n.emoji-mart-bar {\n border: 0 solid darken($ui-secondary-color, 8%);\n\n &:first-child {\n border-bottom-width: 1px;\n border-top-left-radius: 5px;\n border-top-right-radius: 5px;\n background: $ui-secondary-color;\n }\n\n &:last-child {\n border-top-width: 1px;\n border-bottom-left-radius: 5px;\n border-bottom-right-radius: 5px;\n display: none;\n }\n}\n\n.emoji-mart-anchors {\n display: flex;\n justify-content: space-between;\n padding: 0 6px;\n color: $lighter-text-color;\n line-height: 0;\n}\n\n.emoji-mart-anchor {\n position: relative;\n flex: 1;\n text-align: center;\n padding: 12px 4px;\n overflow: hidden;\n transition: color .1s ease-out;\n cursor: pointer;\n\n &:hover {\n color: darken($lighter-text-color, 4%);\n }\n}\n\n.emoji-mart-anchor-selected {\n color: $highlight-text-color;\n\n &:hover {\n color: darken($highlight-text-color, 4%);\n }\n\n .emoji-mart-anchor-bar {\n bottom: -1px;\n }\n}\n\n.emoji-mart-anchor-bar {\n position: absolute;\n bottom: -5px;\n left: 0;\n width: 100%;\n height: 4px;\n background-color: $highlight-text-color;\n}\n\n.emoji-mart-anchors {\n i {\n display: inline-block;\n width: 100%;\n max-width: 22px;\n }\n\n svg {\n fill: currentColor;\n max-height: 18px;\n }\n}\n\n.emoji-mart-scroll {\n overflow-y: scroll;\n height: 270px;\n max-height: 35vh;\n padding: 0 6px 6px;\n background: $simple-background-color;\n will-change: transform;\n\n &::-webkit-scrollbar-track:hover,\n &::-webkit-scrollbar-track:active {\n background-color: rgba($base-overlay-background, 0.3);\n }\n}\n\n.emoji-mart-search {\n padding: 10px;\n padding-right: 45px;\n background: $simple-background-color;\n\n input {\n font-size: 14px;\n font-weight: 400;\n padding: 7px 9px;\n font-family: inherit;\n display: block;\n width: 100%;\n background: rgba($ui-secondary-color, 0.3);\n color: $inverted-text-color;\n border: 1px solid $ui-secondary-color;\n border-radius: 4px;\n\n &::-moz-focus-inner {\n border: 0;\n }\n\n &::-moz-focus-inner,\n &:focus,\n &:active {\n outline: 0 !important;\n }\n }\n}\n\n.emoji-mart-category .emoji-mart-emoji {\n cursor: pointer;\n\n span {\n z-index: 1;\n position: relative;\n text-align: center;\n }\n\n &:hover::before {\n z-index: 0;\n content: \"\";\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n background-color: rgba($ui-secondary-color, 0.7);\n border-radius: 100%;\n }\n}\n\n.emoji-mart-category-label {\n z-index: 2;\n position: relative;\n position: -webkit-sticky;\n position: sticky;\n top: 0;\n\n span {\n display: block;\n width: 100%;\n font-weight: 500;\n padding: 5px 6px;\n background: $simple-background-color;\n }\n}\n\n.emoji-mart-emoji {\n position: relative;\n display: inline-block;\n font-size: 0;\n\n span {\n width: 22px;\n height: 22px;\n }\n}\n\n.emoji-mart-no-results {\n font-size: 14px;\n text-align: center;\n padding-top: 70px;\n color: $light-text-color;\n\n .emoji-mart-category-label {\n display: none;\n }\n\n .emoji-mart-no-results-label {\n margin-top: .2em;\n }\n\n .emoji-mart-emoji:hover::before {\n content: none;\n }\n}\n\n.emoji-mart-preview {\n display: none;\n}\n","$maximum-width: 1235px;\n$fluid-breakpoint: $maximum-width + 20px;\n$column-breakpoint: 700px;\n$small-breakpoint: 960px;\n\n.container {\n box-sizing: border-box;\n max-width: $maximum-width;\n margin: 0 auto;\n position: relative;\n\n @media screen and (max-width: $fluid-breakpoint) {\n width: 100%;\n padding: 0 10px;\n }\n}\n\n.rich-formatting {\n font-family: $font-sans-serif, sans-serif;\n font-size: 14px;\n font-weight: 400;\n line-height: 1.7;\n word-wrap: break-word;\n color: $darker-text-color;\n\n a {\n color: $highlight-text-color;\n text-decoration: underline;\n\n &:hover,\n &:focus,\n &:active {\n text-decoration: none;\n }\n }\n\n p,\n li {\n color: $darker-text-color;\n }\n\n p {\n margin-top: 0;\n margin-bottom: .85em;\n\n &:last-child {\n margin-bottom: 0;\n }\n }\n\n strong {\n font-weight: 700;\n color: $secondary-text-color;\n }\n\n em {\n font-style: italic;\n color: $secondary-text-color;\n }\n\n code {\n font-size: 0.85em;\n background: darken($ui-base-color, 8%);\n border-radius: 4px;\n padding: 0.2em 0.3em;\n }\n\n h1,\n h2,\n h3,\n h4,\n h5,\n h6 {\n font-family: $font-display, sans-serif;\n margin-top: 1.275em;\n margin-bottom: .85em;\n font-weight: 500;\n color: $secondary-text-color;\n }\n\n h1 {\n font-size: 2em;\n }\n\n h2 {\n font-size: 1.75em;\n }\n\n h3 {\n font-size: 1.5em;\n }\n\n h4 {\n font-size: 1.25em;\n }\n\n h5,\n h6 {\n font-size: 1em;\n }\n\n ul {\n list-style: disc;\n }\n\n ol {\n list-style: decimal;\n }\n\n ul,\n ol {\n margin: 0;\n padding: 0;\n padding-left: 2em;\n margin-bottom: 0.85em;\n\n &[type='a'] {\n list-style-type: lower-alpha;\n }\n\n &[type='i'] {\n list-style-type: lower-roman;\n }\n }\n\n hr {\n width: 100%;\n height: 0;\n border: 0;\n border-bottom: 1px solid lighten($ui-base-color, 4%);\n margin: 1.7em 0;\n\n &.spacer {\n height: 1px;\n border: 0;\n }\n }\n\n table {\n width: 100%;\n border-collapse: collapse;\n break-inside: auto;\n margin-top: 24px;\n margin-bottom: 32px;\n\n thead tr,\n tbody tr {\n border-bottom: 1px solid lighten($ui-base-color, 4%);\n font-size: 1em;\n line-height: 1.625;\n font-weight: 400;\n text-align: left;\n color: $darker-text-color;\n }\n\n thead tr {\n border-bottom-width: 2px;\n line-height: 1.5;\n font-weight: 500;\n color: $dark-text-color;\n }\n\n th,\n td {\n padding: 8px;\n align-self: start;\n align-items: start;\n word-break: break-all;\n\n &.nowrap {\n width: 25%;\n position: relative;\n\n &::before {\n content: ' ';\n visibility: hidden;\n }\n\n span {\n position: absolute;\n left: 8px;\n right: 8px;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n }\n }\n }\n\n & > :first-child {\n margin-top: 0;\n }\n}\n\n.information-board {\n background: darken($ui-base-color, 4%);\n padding: 20px 0;\n\n .container-alt {\n position: relative;\n padding-right: 280px + 15px;\n }\n\n &__sections {\n display: flex;\n justify-content: space-between;\n flex-wrap: wrap;\n }\n\n &__section {\n flex: 1 0 0;\n font-family: $font-sans-serif, sans-serif;\n font-size: 16px;\n line-height: 28px;\n color: $primary-text-color;\n text-align: right;\n padding: 10px 15px;\n\n span,\n strong {\n display: block;\n }\n\n span {\n &:last-child {\n color: $secondary-text-color;\n }\n }\n\n strong {\n font-family: $font-display, sans-serif;\n font-weight: 500;\n font-size: 32px;\n line-height: 48px;\n }\n\n @media screen and (max-width: $column-breakpoint) {\n text-align: center;\n }\n }\n\n .panel {\n position: absolute;\n width: 280px;\n box-sizing: border-box;\n background: darken($ui-base-color, 8%);\n padding: 20px;\n padding-top: 10px;\n border-radius: 4px 4px 0 0;\n right: 0;\n bottom: -40px;\n\n .panel-header {\n font-family: $font-display, sans-serif;\n font-size: 14px;\n line-height: 24px;\n font-weight: 500;\n color: $darker-text-color;\n padding-bottom: 5px;\n margin-bottom: 15px;\n border-bottom: 1px solid lighten($ui-base-color, 4%);\n text-overflow: ellipsis;\n white-space: nowrap;\n overflow: hidden;\n\n a,\n span {\n font-weight: 400;\n color: darken($darker-text-color, 10%);\n }\n\n a {\n text-decoration: none;\n }\n }\n }\n\n .owner {\n text-align: center;\n\n .avatar {\n width: 80px;\n height: 80px;\n margin: 0 auto;\n margin-bottom: 15px;\n\n img {\n display: block;\n width: 80px;\n height: 80px;\n border-radius: 48px;\n }\n }\n\n .name {\n font-size: 14px;\n\n a {\n display: block;\n color: $primary-text-color;\n text-decoration: none;\n\n &:hover {\n .display_name {\n text-decoration: underline;\n }\n }\n }\n\n .username {\n display: block;\n color: $darker-text-color;\n }\n }\n }\n}\n\n.landing-page {\n p,\n li {\n font-family: $font-sans-serif, sans-serif;\n font-size: 16px;\n font-weight: 400;\n font-size: 16px;\n line-height: 30px;\n margin-bottom: 12px;\n color: $darker-text-color;\n\n a {\n color: $highlight-text-color;\n text-decoration: underline;\n }\n }\n\n em {\n display: inline;\n margin: 0;\n padding: 0;\n font-weight: 700;\n background: transparent;\n font-family: inherit;\n font-size: inherit;\n line-height: inherit;\n color: lighten($darker-text-color, 10%);\n }\n\n h1 {\n font-family: $font-display, sans-serif;\n font-size: 26px;\n line-height: 30px;\n font-weight: 500;\n margin-bottom: 20px;\n color: $secondary-text-color;\n\n small {\n font-family: $font-sans-serif, sans-serif;\n display: block;\n font-size: 18px;\n font-weight: 400;\n color: lighten($darker-text-color, 10%);\n }\n }\n\n h2 {\n font-family: $font-display, sans-serif;\n font-size: 22px;\n line-height: 26px;\n font-weight: 500;\n margin-bottom: 20px;\n color: $secondary-text-color;\n }\n\n h3 {\n font-family: $font-display, sans-serif;\n font-size: 18px;\n line-height: 24px;\n font-weight: 500;\n margin-bottom: 20px;\n color: $secondary-text-color;\n }\n\n h4 {\n font-family: $font-display, sans-serif;\n font-size: 16px;\n line-height: 24px;\n font-weight: 500;\n margin-bottom: 20px;\n color: $secondary-text-color;\n }\n\n h5 {\n font-family: $font-display, sans-serif;\n font-size: 14px;\n line-height: 24px;\n font-weight: 500;\n margin-bottom: 20px;\n color: $secondary-text-color;\n }\n\n h6 {\n font-family: $font-display, sans-serif;\n font-size: 12px;\n line-height: 24px;\n font-weight: 500;\n margin-bottom: 20px;\n color: $secondary-text-color;\n }\n\n ul,\n ol {\n margin-left: 20px;\n\n &[type='a'] {\n list-style-type: lower-alpha;\n }\n\n &[type='i'] {\n list-style-type: lower-roman;\n }\n }\n\n ul {\n list-style: disc;\n }\n\n ol {\n list-style: decimal;\n }\n\n li > ol,\n li > ul {\n margin-top: 6px;\n }\n\n hr {\n width: 100%;\n height: 0;\n border: 0;\n border-bottom: 1px solid rgba($ui-base-lighter-color, .6);\n margin: 20px 0;\n\n &.spacer {\n height: 1px;\n border: 0;\n }\n }\n\n &__information,\n &__forms {\n padding: 20px;\n }\n\n &__call-to-action {\n background: $ui-base-color;\n border-radius: 4px;\n padding: 25px 40px;\n overflow: hidden;\n box-sizing: border-box;\n\n .row {\n width: 100%;\n display: flex;\n flex-direction: row-reverse;\n flex-wrap: nowrap;\n justify-content: space-between;\n align-items: center;\n }\n\n .row__information-board {\n display: flex;\n justify-content: flex-end;\n align-items: flex-end;\n\n .information-board__section {\n flex: 1 0 auto;\n padding: 0 10px;\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n width: 100%;\n justify-content: space-between;\n }\n }\n\n .row__mascot {\n flex: 1;\n margin: 10px -50px 0 0;\n\n @media screen and (max-width: $no-gap-breakpoint) {\n display: none;\n }\n }\n }\n\n &__logo {\n margin-right: 20px;\n\n img {\n height: 50px;\n width: auto;\n mix-blend-mode: lighten;\n }\n }\n\n &__information {\n padding: 45px 40px;\n margin-bottom: 10px;\n\n &:last-child {\n margin-bottom: 0;\n }\n\n strong {\n font-weight: 500;\n color: lighten($darker-text-color, 10%);\n }\n\n .account {\n border-bottom: 0;\n padding: 0;\n\n &__display-name {\n align-items: center;\n display: flex;\n margin-right: 5px;\n }\n\n div.account__display-name {\n &:hover {\n .display-name strong {\n text-decoration: none;\n }\n }\n\n .account__avatar {\n cursor: default;\n }\n }\n\n &__avatar-wrapper {\n margin-left: 0;\n flex: 0 0 auto;\n }\n\n &__avatar {\n width: 44px;\n height: 44px;\n background-size: 44px 44px;\n }\n\n .display-name {\n font-size: 15px;\n\n &__account {\n font-size: 14px;\n }\n }\n }\n\n @media screen and (max-width: $small-breakpoint) {\n .contact {\n margin-top: 30px;\n }\n }\n\n @media screen and (max-width: $column-breakpoint) {\n padding: 25px 20px;\n }\n }\n\n &__information,\n &__forms,\n #mastodon-timeline {\n box-sizing: border-box;\n background: $ui-base-color;\n border-radius: 4px;\n box-shadow: 0 0 6px rgba($black, 0.1);\n }\n\n &__mascot {\n height: 104px;\n position: relative;\n left: -40px;\n bottom: 25px;\n\n img {\n height: 190px;\n width: auto;\n }\n }\n\n &__short-description {\n .row {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n margin-bottom: 40px;\n }\n\n @media screen and (max-width: $column-breakpoint) {\n .row {\n margin-bottom: 20px;\n }\n }\n\n p a {\n color: $secondary-text-color;\n }\n\n h1 {\n font-weight: 500;\n color: $primary-text-color;\n margin-bottom: 0;\n\n small {\n color: $darker-text-color;\n\n span {\n color: $secondary-text-color;\n }\n }\n }\n\n p:last-child {\n margin-bottom: 0;\n }\n }\n\n &__hero {\n margin-bottom: 10px;\n\n img {\n display: block;\n margin: 0;\n max-width: 100%;\n height: auto;\n border-radius: 4px;\n }\n }\n\n @media screen and (max-width: 840px) {\n .information-board {\n .container-alt {\n padding-right: 20px;\n }\n\n .panel {\n position: static;\n margin-top: 20px;\n width: 100%;\n border-radius: 4px;\n\n .panel-header {\n text-align: center;\n }\n }\n }\n }\n\n @media screen and (max-width: 675px) {\n .header-wrapper {\n padding-top: 0;\n\n &.compact {\n padding-bottom: 0;\n }\n\n &.compact .hero .heading {\n text-align: initial;\n }\n }\n\n .header .container-alt,\n .features .container-alt {\n display: block;\n }\n }\n\n .cta {\n margin: 20px;\n }\n}\n\n.landing {\n margin-bottom: 100px;\n\n @media screen and (max-width: 738px) {\n margin-bottom: 0;\n }\n\n &__brand {\n display: flex;\n justify-content: center;\n align-items: center;\n padding: 50px;\n\n svg {\n fill: $primary-text-color;\n height: 52px;\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n padding: 0;\n margin-bottom: 30px;\n }\n }\n\n .directory {\n margin-top: 30px;\n background: transparent;\n box-shadow: none;\n border-radius: 0;\n }\n\n .hero-widget {\n margin-top: 30px;\n margin-bottom: 0;\n\n h4 {\n padding: 10px;\n text-transform: uppercase;\n font-weight: 700;\n font-size: 13px;\n color: $darker-text-color;\n }\n\n &__text {\n border-radius: 0;\n padding-bottom: 0;\n }\n\n &__footer {\n background: $ui-base-color;\n padding: 10px;\n border-radius: 0 0 4px 4px;\n display: flex;\n\n &__column {\n flex: 1 1 50%;\n }\n }\n\n .account {\n padding: 10px 0;\n border-bottom: 0;\n\n .account__display-name {\n display: flex;\n align-items: center;\n }\n\n .account__avatar {\n width: 44px;\n height: 44px;\n background-size: 44px 44px;\n }\n }\n\n &__counter {\n padding: 10px;\n\n strong {\n font-family: $font-display, sans-serif;\n font-size: 15px;\n font-weight: 700;\n display: block;\n }\n\n span {\n font-size: 14px;\n color: $darker-text-color;\n }\n }\n }\n\n .simple_form .user_agreement .label_input > label {\n font-weight: 400;\n color: $darker-text-color;\n }\n\n .simple_form p.lead {\n color: $darker-text-color;\n font-size: 15px;\n line-height: 20px;\n font-weight: 400;\n margin-bottom: 25px;\n }\n\n &__grid {\n max-width: 960px;\n margin: 0 auto;\n display: grid;\n grid-template-columns: minmax(0, 50%) minmax(0, 50%);\n grid-gap: 30px;\n\n @media screen and (max-width: 738px) {\n grid-template-columns: minmax(0, 100%);\n grid-gap: 10px;\n\n &__column-login {\n grid-row: 1;\n display: flex;\n flex-direction: column;\n\n .box-widget {\n order: 2;\n flex: 0 0 auto;\n }\n\n .hero-widget {\n margin-top: 0;\n margin-bottom: 10px;\n order: 1;\n flex: 0 0 auto;\n }\n }\n\n &__column-registration {\n grid-row: 2;\n }\n\n .directory {\n margin-top: 10px;\n }\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n grid-gap: 0;\n\n .hero-widget {\n display: block;\n margin-bottom: 0;\n box-shadow: none;\n\n &__img,\n &__img img,\n &__footer {\n border-radius: 0;\n }\n }\n\n .hero-widget,\n .box-widget,\n .directory__tag {\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n }\n\n .directory {\n margin-top: 0;\n\n &__tag {\n margin-bottom: 0;\n\n & > a,\n & > div {\n border-radius: 0;\n box-shadow: none;\n }\n\n &:last-child {\n border-bottom: 0;\n }\n }\n }\n }\n }\n}\n\n.brand {\n position: relative;\n text-decoration: none;\n}\n\n.brand__tagline {\n display: block;\n position: absolute;\n bottom: -10px;\n left: 50px;\n width: 300px;\n color: $ui-primary-color;\n text-decoration: none;\n font-size: 14px;\n\n @media screen and (max-width: $no-gap-breakpoint) {\n position: static;\n width: auto;\n margin-top: 20px;\n color: $dark-text-color;\n }\n}\n\n",".table {\n width: 100%;\n max-width: 100%;\n border-spacing: 0;\n border-collapse: collapse;\n\n th,\n td {\n padding: 8px;\n line-height: 18px;\n vertical-align: top;\n border-top: 1px solid $ui-base-color;\n text-align: left;\n background: darken($ui-base-color, 4%);\n }\n\n & > thead > tr > th {\n vertical-align: bottom;\n border-bottom: 2px solid $ui-base-color;\n border-top: 0;\n font-weight: 500;\n }\n\n & > tbody > tr > th {\n font-weight: 500;\n }\n\n & > tbody > tr:nth-child(odd) > td,\n & > tbody > tr:nth-child(odd) > th {\n background: $ui-base-color;\n }\n\n a {\n color: $highlight-text-color;\n text-decoration: underline;\n\n &:hover {\n text-decoration: none;\n }\n }\n\n strong {\n font-weight: 500;\n\n @each $lang in $cjk-langs {\n &:lang(#{$lang}) {\n font-weight: 700;\n }\n }\n }\n\n &.inline-table {\n & > tbody > tr:nth-child(odd) {\n & > td,\n & > th {\n background: transparent;\n }\n }\n\n & > tbody > tr:first-child {\n & > td,\n & > th {\n border-top: 0;\n }\n }\n }\n\n &.batch-table {\n & > thead > tr > th {\n background: $ui-base-color;\n border-top: 1px solid darken($ui-base-color, 8%);\n border-bottom: 1px solid darken($ui-base-color, 8%);\n\n &:first-child {\n border-radius: 4px 0 0;\n border-left: 1px solid darken($ui-base-color, 8%);\n }\n\n &:last-child {\n border-radius: 0 4px 0 0;\n border-right: 1px solid darken($ui-base-color, 8%);\n }\n }\n }\n\n &--invites tbody td {\n vertical-align: middle;\n }\n}\n\n.table-wrapper {\n overflow: auto;\n margin-bottom: 20px;\n}\n\nsamp {\n font-family: $font-monospace, monospace;\n}\n\nbutton.table-action-link {\n background: transparent;\n border: 0;\n font: inherit;\n}\n\nbutton.table-action-link,\na.table-action-link {\n text-decoration: none;\n display: inline-block;\n margin-right: 5px;\n padding: 0 10px;\n color: $darker-text-color;\n font-weight: 500;\n\n &:hover {\n color: $primary-text-color;\n }\n\n i.fa {\n font-weight: 400;\n margin-right: 5px;\n }\n\n &:first-child {\n padding-left: 0;\n }\n}\n\n.batch-table {\n &__toolbar,\n &__row {\n display: flex;\n\n &__select {\n box-sizing: border-box;\n padding: 8px 16px;\n cursor: pointer;\n min-height: 100%;\n\n input {\n margin-top: 8px;\n }\n\n &--aligned {\n display: flex;\n align-items: center;\n\n input {\n margin-top: 0;\n }\n }\n }\n\n &__actions,\n &__content {\n padding: 8px 0;\n padding-right: 16px;\n flex: 1 1 auto;\n }\n }\n\n &__toolbar {\n border: 1px solid darken($ui-base-color, 8%);\n background: $ui-base-color;\n border-radius: 4px 0 0;\n height: 47px;\n align-items: center;\n\n &__actions {\n text-align: right;\n padding-right: 16px - 5px;\n }\n }\n\n &__form {\n padding: 16px;\n border: 1px solid darken($ui-base-color, 8%);\n border-top: 0;\n background: $ui-base-color;\n\n .fields-row {\n padding-top: 0;\n margin-bottom: 0;\n }\n }\n\n &__row {\n border: 1px solid darken($ui-base-color, 8%);\n border-top: 0;\n background: darken($ui-base-color, 4%);\n\n @media screen and (max-width: $no-gap-breakpoint) {\n .optional &:first-child {\n border-top: 1px solid darken($ui-base-color, 8%);\n }\n }\n\n &:hover {\n background: darken($ui-base-color, 2%);\n }\n\n &:nth-child(even) {\n background: $ui-base-color;\n\n &:hover {\n background: lighten($ui-base-color, 2%);\n }\n }\n\n &__content {\n padding-top: 12px;\n padding-bottom: 16px;\n\n &--unpadded {\n padding: 0;\n }\n\n &--with-image {\n display: flex;\n align-items: center;\n }\n\n &__image {\n flex: 0 0 auto;\n display: flex;\n justify-content: center;\n align-items: center;\n margin-right: 10px;\n\n .emojione {\n width: 32px;\n height: 32px;\n }\n }\n\n &__text {\n flex: 1 1 auto;\n }\n\n &__extra {\n flex: 0 0 auto;\n text-align: right;\n color: $darker-text-color;\n font-weight: 500;\n }\n }\n\n .directory__tag {\n margin: 0;\n width: 100%;\n\n a {\n background: transparent;\n border-radius: 0;\n }\n }\n }\n\n &.optional .batch-table__toolbar,\n &.optional .batch-table__row__select {\n @media screen and (max-width: $no-gap-breakpoint) {\n display: none;\n }\n }\n\n .status__content {\n padding-top: 0;\n\n summary {\n display: list-item;\n }\n\n strong {\n font-weight: 700;\n }\n }\n\n .nothing-here {\n border: 1px solid darken($ui-base-color, 8%);\n border-top: 0;\n box-shadow: none;\n\n @media screen and (max-width: $no-gap-breakpoint) {\n border-top: 1px solid darken($ui-base-color, 8%);\n }\n }\n\n @media screen and (max-width: 870px) {\n .accounts-table tbody td.optional {\n display: none;\n }\n }\n}\n","$no-columns-breakpoint: 600px;\n$sidebar-width: 240px;\n$content-width: 840px;\n\n.admin-wrapper {\n display: flex;\n justify-content: center;\n width: 100%;\n min-height: 100vh;\n\n .sidebar-wrapper {\n min-height: 100vh;\n overflow: hidden;\n pointer-events: none;\n flex: 1 1 auto;\n\n &__inner {\n display: flex;\n justify-content: flex-end;\n background: $ui-base-color;\n height: 100%;\n }\n }\n\n .sidebar {\n width: $sidebar-width;\n padding: 0;\n pointer-events: auto;\n\n &__toggle {\n display: none;\n background: lighten($ui-base-color, 8%);\n height: 48px;\n\n &__logo {\n flex: 1 1 auto;\n\n a {\n display: inline-block;\n padding: 15px;\n }\n\n svg {\n fill: $primary-text-color;\n height: 20px;\n position: relative;\n bottom: -2px;\n }\n }\n\n &__icon {\n display: block;\n color: $darker-text-color;\n text-decoration: none;\n flex: 0 0 auto;\n font-size: 20px;\n padding: 15px;\n }\n\n a {\n &:hover,\n &:focus,\n &:active {\n background: lighten($ui-base-color, 12%);\n }\n }\n }\n\n .logo {\n display: block;\n margin: 40px auto;\n width: 100px;\n height: 100px;\n }\n\n @media screen and (max-width: $no-columns-breakpoint) {\n & > a:first-child {\n display: none;\n }\n }\n\n ul {\n list-style: none;\n border-radius: 4px 0 0 4px;\n overflow: hidden;\n margin-bottom: 20px;\n\n @media screen and (max-width: $no-columns-breakpoint) {\n margin-bottom: 0;\n }\n\n a {\n display: block;\n padding: 15px;\n color: $darker-text-color;\n text-decoration: none;\n transition: all 200ms linear;\n transition-property: color, background-color;\n border-radius: 4px 0 0 4px;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n\n i.fa {\n margin-right: 5px;\n }\n\n &:hover {\n color: $primary-text-color;\n background-color: darken($ui-base-color, 5%);\n transition: all 100ms linear;\n transition-property: color, background-color;\n }\n\n &.selected {\n background: darken($ui-base-color, 2%);\n border-radius: 4px 0 0;\n }\n }\n\n ul {\n background: darken($ui-base-color, 4%);\n border-radius: 0 0 0 4px;\n margin: 0;\n\n a {\n border: 0;\n padding: 15px 35px;\n }\n }\n\n .simple-navigation-active-leaf a {\n color: $primary-text-color;\n background-color: $ui-highlight-color;\n border-bottom: 0;\n border-radius: 0;\n\n &:hover {\n background-color: lighten($ui-highlight-color, 5%);\n }\n }\n }\n\n & > ul > .simple-navigation-active-leaf a {\n border-radius: 4px 0 0 4px;\n }\n }\n\n .content-wrapper {\n box-sizing: border-box;\n width: 100%;\n max-width: $content-width;\n flex: 1 1 auto;\n }\n\n @media screen and (max-width: $content-width + $sidebar-width) {\n .sidebar-wrapper--empty {\n display: none;\n }\n\n .sidebar-wrapper {\n width: $sidebar-width;\n flex: 0 0 auto;\n }\n }\n\n @media screen and (max-width: $no-columns-breakpoint) {\n .sidebar-wrapper {\n width: 100%;\n }\n }\n\n .content {\n padding: 20px 15px;\n padding-top: 60px;\n padding-left: 25px;\n\n @media screen and (max-width: $no-columns-breakpoint) {\n max-width: none;\n padding: 15px;\n padding-top: 30px;\n }\n\n &-heading {\n display: flex;\n\n padding-bottom: 40px;\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n\n margin: -15px -15px 40px 0;\n\n flex-wrap: wrap;\n align-items: center;\n justify-content: space-between;\n\n & > * {\n margin-top: 15px;\n margin-right: 15px;\n }\n\n &-actions {\n display: inline-flex;\n\n & > :not(:first-child) {\n margin-left: 5px;\n }\n }\n\n @media screen and (max-width: $no-columns-breakpoint) {\n border-bottom: 0;\n padding-bottom: 0;\n }\n }\n\n h2 {\n color: $secondary-text-color;\n font-size: 24px;\n line-height: 28px;\n font-weight: 400;\n\n @media screen and (max-width: $no-columns-breakpoint) {\n font-weight: 700;\n }\n }\n\n h3 {\n color: $secondary-text-color;\n font-size: 20px;\n line-height: 28px;\n font-weight: 400;\n margin-bottom: 30px;\n }\n\n h4 {\n text-transform: uppercase;\n font-size: 13px;\n font-weight: 700;\n color: $darker-text-color;\n padding-bottom: 8px;\n margin-bottom: 8px;\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n }\n\n h6 {\n font-size: 16px;\n color: $secondary-text-color;\n line-height: 28px;\n font-weight: 500;\n }\n\n .fields-group h6 {\n color: $primary-text-color;\n font-weight: 500;\n }\n\n .directory__tag > a,\n .directory__tag > div {\n box-shadow: none;\n }\n\n .directory__tag .table-action-link .fa {\n color: inherit;\n }\n\n .directory__tag h4 {\n font-size: 18px;\n font-weight: 700;\n color: $primary-text-color;\n text-transform: none;\n padding-bottom: 0;\n margin-bottom: 0;\n border-bottom: 0;\n }\n\n & > p {\n font-size: 14px;\n line-height: 21px;\n color: $secondary-text-color;\n margin-bottom: 20px;\n\n strong {\n color: $primary-text-color;\n font-weight: 500;\n\n @each $lang in $cjk-langs {\n &:lang(#{$lang}) {\n font-weight: 700;\n }\n }\n }\n }\n\n hr {\n width: 100%;\n height: 0;\n border: 0;\n border-bottom: 1px solid rgba($ui-base-lighter-color, .6);\n margin: 20px 0;\n\n &.spacer {\n height: 1px;\n border: 0;\n }\n }\n }\n\n @media screen and (max-width: $no-columns-breakpoint) {\n display: block;\n\n .sidebar-wrapper {\n min-height: 0;\n }\n\n .sidebar {\n width: 100%;\n padding: 0;\n height: auto;\n\n &__toggle {\n display: flex;\n }\n\n & > ul {\n display: none;\n }\n\n ul a,\n ul ul a {\n border-radius: 0;\n border-bottom: 1px solid lighten($ui-base-color, 4%);\n transition: none;\n\n &:hover {\n transition: none;\n }\n }\n\n ul ul {\n border-radius: 0;\n }\n\n ul .simple-navigation-active-leaf a {\n border-bottom-color: $ui-highlight-color;\n }\n }\n }\n}\n\nhr.spacer {\n width: 100%;\n border: 0;\n margin: 20px 0;\n height: 1px;\n}\n\nbody,\n.admin-wrapper .content {\n .muted-hint {\n color: $darker-text-color;\n\n a {\n color: $highlight-text-color;\n }\n }\n\n .positive-hint {\n color: $valid-value-color;\n font-weight: 500;\n }\n\n .negative-hint {\n color: $error-value-color;\n font-weight: 500;\n }\n\n .neutral-hint {\n color: $dark-text-color;\n font-weight: 500;\n }\n\n .warning-hint {\n color: $gold-star;\n font-weight: 500;\n }\n}\n\n.filters {\n display: flex;\n flex-wrap: wrap;\n\n .filter-subset {\n flex: 0 0 auto;\n margin: 0 40px 20px 0;\n\n &:last-child {\n margin-bottom: 30px;\n }\n\n ul {\n margin-top: 5px;\n list-style: none;\n\n li {\n display: inline-block;\n margin-right: 5px;\n }\n }\n\n strong {\n font-weight: 500;\n text-transform: uppercase;\n font-size: 12px;\n\n @each $lang in $cjk-langs {\n &:lang(#{$lang}) {\n font-weight: 700;\n }\n }\n }\n\n &--with-select strong {\n display: block;\n margin-bottom: 10px;\n }\n\n a {\n display: inline-block;\n color: $darker-text-color;\n text-decoration: none;\n text-transform: uppercase;\n font-size: 12px;\n font-weight: 500;\n border-bottom: 2px solid $ui-base-color;\n\n &:hover {\n color: $primary-text-color;\n border-bottom: 2px solid lighten($ui-base-color, 5%);\n }\n\n &.selected {\n color: $highlight-text-color;\n border-bottom: 2px solid $ui-highlight-color;\n }\n }\n }\n}\n\n.flavour-screen {\n display: block;\n margin: 10px auto;\n max-width: 100%;\n}\n\n.flavour-description {\n display: block;\n font-size: 16px;\n margin: 10px 0;\n\n & > p {\n margin: 10px 0;\n }\n}\n\n.flavour-screen {\n display: block;\n margin: 10px auto;\n max-width: 100%;\n}\n\n.flavour-description {\n display: block;\n font-size: 16px;\n margin: 10px 0;\n\n & > p {\n margin: 10px 0;\n }\n}\n\n.report-accounts {\n display: flex;\n flex-wrap: wrap;\n margin-bottom: 20px;\n}\n\n.report-accounts__item {\n display: flex;\n flex: 250px;\n flex-direction: column;\n margin: 0 5px;\n\n & > strong {\n display: block;\n margin: 0 0 10px -5px;\n font-weight: 500;\n font-size: 14px;\n line-height: 18px;\n color: $secondary-text-color;\n\n @each $lang in $cjk-langs {\n &:lang(#{$lang}) {\n font-weight: 700;\n }\n }\n }\n\n .account-card {\n flex: 1 1 auto;\n }\n}\n\n.report-status,\n.account-status {\n display: flex;\n margin-bottom: 10px;\n\n .activity-stream {\n flex: 2 0 0;\n margin-right: 20px;\n max-width: calc(100% - 60px);\n\n .entry {\n border-radius: 4px;\n }\n }\n}\n\n.report-status__actions,\n.account-status__actions {\n flex: 0 0 auto;\n display: flex;\n flex-direction: column;\n\n .icon-button {\n font-size: 24px;\n width: 24px;\n text-align: center;\n margin-bottom: 10px;\n }\n}\n\n.simple_form.new_report_note,\n.simple_form.new_account_moderation_note {\n max-width: 100%;\n}\n\n.batch-form-box {\n display: flex;\n flex-wrap: wrap;\n margin-bottom: 5px;\n\n #form_status_batch_action {\n margin: 0 5px 5px 0;\n font-size: 14px;\n }\n\n input.button {\n margin: 0 5px 5px 0;\n }\n\n .media-spoiler-toggle-buttons {\n margin-left: auto;\n\n .button {\n overflow: visible;\n margin: 0 0 5px 5px;\n float: right;\n }\n }\n}\n\n.back-link {\n margin-bottom: 10px;\n font-size: 14px;\n\n a {\n color: $highlight-text-color;\n text-decoration: none;\n\n &:hover {\n text-decoration: underline;\n }\n }\n}\n\n.spacer {\n flex: 1 1 auto;\n}\n\n.log-entry {\n line-height: 20px;\n padding: 15px 0;\n background: $ui-base-color;\n border-bottom: 1px solid lighten($ui-base-color, 4%);\n\n &:last-child {\n border-bottom: 0;\n }\n\n &__header {\n display: flex;\n justify-content: flex-start;\n align-items: center;\n color: $darker-text-color;\n font-size: 14px;\n padding: 0 10px;\n }\n\n &__avatar {\n margin-right: 10px;\n\n .avatar {\n display: block;\n margin: 0;\n border-radius: 50%;\n width: 40px;\n height: 40px;\n }\n }\n\n &__content {\n max-width: calc(100% - 90px);\n }\n\n &__title {\n word-wrap: break-word;\n }\n\n &__timestamp {\n color: $dark-text-color;\n }\n\n a,\n .username,\n .target {\n color: $secondary-text-color;\n text-decoration: none;\n font-weight: 500;\n }\n}\n\na.name-tag,\n.name-tag,\na.inline-name-tag,\n.inline-name-tag {\n text-decoration: none;\n color: $secondary-text-color;\n\n .username {\n font-weight: 500;\n }\n\n &.suspended {\n .username {\n text-decoration: line-through;\n color: lighten($error-red, 12%);\n }\n\n .avatar {\n filter: grayscale(100%);\n opacity: 0.8;\n }\n }\n}\n\na.name-tag,\n.name-tag {\n display: flex;\n align-items: center;\n\n .avatar {\n display: block;\n margin: 0;\n margin-right: 5px;\n border-radius: 50%;\n }\n\n &.suspended {\n .avatar {\n filter: grayscale(100%);\n opacity: 0.8;\n }\n }\n}\n\n.speech-bubble {\n margin-bottom: 20px;\n border-left: 4px solid $ui-highlight-color;\n\n &.positive {\n border-left-color: $success-green;\n }\n\n &.negative {\n border-left-color: lighten($error-red, 12%);\n }\n\n &.warning {\n border-left-color: $gold-star;\n }\n\n &__bubble {\n padding: 16px;\n padding-left: 14px;\n font-size: 15px;\n line-height: 20px;\n border-radius: 4px 4px 4px 0;\n position: relative;\n font-weight: 500;\n\n a {\n color: $darker-text-color;\n }\n }\n\n &__owner {\n padding: 8px;\n padding-left: 12px;\n }\n\n time {\n color: $dark-text-color;\n }\n}\n\n.report-card {\n background: $ui-base-color;\n border-radius: 4px;\n margin-bottom: 20px;\n\n &__profile {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 15px;\n\n .account {\n padding: 0;\n border: 0;\n\n &__avatar-wrapper {\n margin-left: 0;\n }\n }\n\n &__stats {\n flex: 0 0 auto;\n font-weight: 500;\n color: $darker-text-color;\n text-transform: uppercase;\n text-align: right;\n\n a {\n color: inherit;\n text-decoration: none;\n\n &:focus,\n &:hover,\n &:active {\n color: lighten($darker-text-color, 8%);\n }\n }\n\n .red {\n color: $error-value-color;\n }\n }\n }\n\n &__summary {\n &__item {\n display: flex;\n justify-content: flex-start;\n border-top: 1px solid darken($ui-base-color, 4%);\n\n &:hover {\n background: lighten($ui-base-color, 2%);\n }\n\n &__reported-by,\n &__assigned {\n padding: 15px;\n flex: 0 0 auto;\n box-sizing: border-box;\n width: 150px;\n color: $darker-text-color;\n\n &,\n .username {\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n }\n\n &__content {\n flex: 1 1 auto;\n max-width: calc(100% - 300px);\n\n &__icon {\n color: $dark-text-color;\n margin-right: 4px;\n font-weight: 500;\n }\n }\n\n &__content a {\n display: block;\n box-sizing: border-box;\n width: 100%;\n padding: 15px;\n text-decoration: none;\n color: $darker-text-color;\n }\n }\n }\n}\n\n.one-line {\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n.ellipsized-ip {\n display: inline-block;\n max-width: 120px;\n overflow: hidden;\n text-overflow: ellipsis;\n vertical-align: middle;\n}\n\n.admin-account-bio {\n display: flex;\n flex-wrap: wrap;\n margin: 0 -5px;\n margin-top: 20px;\n\n > div {\n box-sizing: border-box;\n padding: 0 5px;\n margin-bottom: 10px;\n flex: 1 0 50%;\n }\n\n .account__header__fields,\n .account__header__content {\n background: lighten($ui-base-color, 8%);\n border-radius: 4px;\n height: 100%;\n }\n\n .account__header__fields {\n margin: 0;\n border: 0;\n\n a {\n color: lighten($ui-highlight-color, 8%);\n }\n\n dl:first-child .verified {\n border-radius: 0 4px 0 0;\n }\n\n .verified a {\n color: $valid-value-color;\n }\n }\n\n .account__header__content {\n box-sizing: border-box;\n padding: 20px;\n color: $primary-text-color;\n }\n}\n\n.center-text {\n text-align: center;\n}\n\n.announcements-list {\n border: 1px solid lighten($ui-base-color, 4%);\n border-radius: 4px;\n\n &__item {\n padding: 15px 0;\n background: $ui-base-color;\n border-bottom: 1px solid lighten($ui-base-color, 4%);\n\n &__title {\n padding: 0 15px;\n display: block;\n font-weight: 500;\n font-size: 18px;\n line-height: 1.5;\n color: $secondary-text-color;\n text-decoration: none;\n margin-bottom: 10px;\n\n &:hover,\n &:focus,\n &:active {\n color: $primary-text-color;\n }\n }\n\n &__meta {\n padding: 0 15px;\n color: $dark-text-color;\n }\n\n &__action-bar {\n display: flex;\n justify-content: space-between;\n align-items: center;\n }\n\n &:last-child {\n border-bottom: 0;\n }\n }\n}\n",".dashboard__counters {\n display: flex;\n flex-wrap: wrap;\n margin: 0 -5px;\n margin-bottom: 20px;\n\n & > div {\n box-sizing: border-box;\n flex: 0 0 33.333%;\n padding: 0 5px;\n margin-bottom: 10px;\n\n & > div,\n & > a {\n padding: 20px;\n background: lighten($ui-base-color, 4%);\n border-radius: 4px;\n box-sizing: border-box;\n height: 100%;\n }\n\n & > a {\n text-decoration: none;\n color: inherit;\n display: block;\n\n &:hover,\n &:focus,\n &:active {\n background: lighten($ui-base-color, 8%);\n }\n }\n }\n\n &__num,\n &__text {\n text-align: center;\n font-weight: 500;\n font-size: 24px;\n line-height: 21px;\n color: $primary-text-color;\n font-family: $font-display, sans-serif;\n margin-bottom: 20px;\n line-height: 30px;\n }\n\n &__text {\n font-size: 18px;\n }\n\n &__label {\n font-size: 14px;\n color: $darker-text-color;\n text-align: center;\n font-weight: 500;\n }\n}\n\n.dashboard__widgets {\n display: flex;\n flex-wrap: wrap;\n margin: 0 -5px;\n\n & > div {\n flex: 0 0 33.333%;\n margin-bottom: 20px;\n\n & > div {\n padding: 0 5px;\n }\n }\n\n a:not(.name-tag) {\n color: $ui-secondary-color;\n font-weight: 500;\n text-decoration: none;\n }\n}\n","body.rtl {\n direction: rtl;\n\n .column-header > button {\n text-align: right;\n padding-left: 0;\n padding-right: 15px;\n }\n\n .radio-button__input {\n margin-right: 0;\n margin-left: 10px;\n }\n\n .directory__card__bar .display-name {\n margin-left: 0;\n margin-right: 15px;\n }\n\n .display-name {\n text-align: right;\n }\n\n .notification__message {\n margin-left: 0;\n margin-right: 68px;\n }\n\n .drawer__inner__mastodon > img {\n transform: scaleX(-1);\n }\n\n .notification__favourite-icon-wrapper {\n left: auto;\n right: -26px;\n }\n\n .landing-page__logo {\n margin-right: 0;\n margin-left: 20px;\n }\n\n .landing-page .features-list .features-list__row .visual {\n margin-left: 0;\n margin-right: 15px;\n }\n\n .column-link__icon,\n .column-header__icon {\n margin-right: 0;\n margin-left: 5px;\n }\n\n .compose-form .compose-form__buttons-wrapper .character-counter__wrapper {\n margin-right: 0;\n margin-left: 4px;\n }\n\n .navigation-bar__profile {\n margin-left: 0;\n margin-right: 8px;\n }\n\n .search__input {\n padding-right: 10px;\n padding-left: 30px;\n }\n\n .search__icon .fa {\n right: auto;\n left: 10px;\n }\n\n .columns-area {\n direction: rtl;\n }\n\n .column-header__buttons {\n left: 0;\n right: auto;\n margin-left: 0;\n margin-right: -15px;\n }\n\n .column-inline-form .icon-button {\n margin-left: 0;\n margin-right: 5px;\n }\n\n .column-header__links .text-btn {\n margin-left: 10px;\n margin-right: 0;\n }\n\n .account__avatar-wrapper {\n float: right;\n }\n\n .column-header__back-button {\n padding-left: 5px;\n padding-right: 0;\n }\n\n .column-header__setting-arrows {\n float: left;\n }\n\n .setting-toggle__label {\n margin-left: 0;\n margin-right: 8px;\n }\n\n .status__avatar {\n left: auto;\n right: 10px;\n }\n\n .status,\n .activity-stream .status.light {\n padding-left: 10px;\n padding-right: 68px;\n }\n\n .status__info .status__display-name,\n .activity-stream .status.light .status__display-name {\n padding-left: 25px;\n padding-right: 0;\n }\n\n .activity-stream .pre-header {\n padding-right: 68px;\n padding-left: 0;\n }\n\n .status__prepend {\n margin-left: 0;\n margin-right: 68px;\n }\n\n .status__prepend-icon-wrapper {\n left: auto;\n right: -26px;\n }\n\n .activity-stream .pre-header .pre-header__icon {\n left: auto;\n right: 42px;\n }\n\n .account__avatar-overlay-overlay {\n right: auto;\n left: 0;\n }\n\n .column-back-button--slim-button {\n right: auto;\n left: 0;\n }\n\n .status__relative-time,\n .activity-stream .status.light .status__header .status__meta {\n float: left;\n }\n\n .status__action-bar {\n &__counter {\n margin-right: 0;\n margin-left: 11px;\n\n .status__action-bar-button {\n margin-right: 0;\n margin-left: 4px;\n }\n }\n }\n\n .status__action-bar-button {\n float: right;\n margin-right: 0;\n margin-left: 18px;\n }\n\n .status__action-bar-dropdown {\n float: right;\n }\n\n .privacy-dropdown__dropdown {\n margin-left: 0;\n margin-right: 40px;\n }\n\n .privacy-dropdown__option__icon {\n margin-left: 10px;\n margin-right: 0;\n }\n\n .detailed-status__display-name .display-name {\n text-align: right;\n }\n\n .detailed-status__display-avatar {\n margin-right: 0;\n margin-left: 10px;\n float: right;\n }\n\n .detailed-status__favorites,\n .detailed-status__reblogs {\n margin-left: 0;\n margin-right: 6px;\n }\n\n .fa-ul {\n margin-left: 2.14285714em;\n }\n\n .fa-li {\n left: auto;\n right: -2.14285714em;\n }\n\n .admin-wrapper {\n direction: rtl;\n }\n\n .admin-wrapper .sidebar ul a i.fa,\n a.table-action-link i.fa {\n margin-right: 0;\n margin-left: 5px;\n }\n\n .simple_form .check_boxes .checkbox label {\n padding-left: 0;\n padding-right: 25px;\n }\n\n .simple_form .input.with_label.boolean label.checkbox {\n padding-left: 25px;\n padding-right: 0;\n }\n\n .simple_form .check_boxes .checkbox input[type=\"checkbox\"],\n .simple_form .input.boolean input[type=\"checkbox\"] {\n left: auto;\n right: 0;\n }\n\n .simple_form .input.radio_buttons .radio {\n left: auto;\n right: 0;\n }\n\n .simple_form .input.radio_buttons .radio > label {\n padding-right: 28px;\n padding-left: 0;\n }\n\n .simple_form .input-with-append .input input {\n padding-left: 142px;\n padding-right: 0;\n }\n\n .simple_form .input.boolean label.checkbox {\n left: auto;\n right: 0;\n }\n\n .simple_form .input.boolean .label_input,\n .simple_form .input.boolean .hint {\n padding-left: 0;\n padding-right: 28px;\n }\n\n .simple_form .label_input__append {\n right: auto;\n left: 3px;\n\n &::after {\n right: auto;\n left: 0;\n background-image: linear-gradient(to left, rgba(darken($ui-base-color, 10%), 0), darken($ui-base-color, 10%));\n }\n }\n\n .simple_form select {\n background: darken($ui-base-color, 10%) url(\"data:image/svg+xml;utf8,\") no-repeat left 8px center / auto 16px;\n }\n\n .table th,\n .table td {\n text-align: right;\n }\n\n .filters .filter-subset {\n margin-right: 0;\n margin-left: 45px;\n }\n\n .landing-page .header-wrapper .mascot {\n right: 60px;\n left: auto;\n }\n\n .landing-page__call-to-action .row__information-board {\n direction: rtl;\n }\n\n .landing-page .header .hero .floats .float-1 {\n left: -120px;\n right: auto;\n }\n\n .landing-page .header .hero .floats .float-2 {\n left: 210px;\n right: auto;\n }\n\n .landing-page .header .hero .floats .float-3 {\n left: 110px;\n right: auto;\n }\n\n .landing-page .header .links .brand img {\n left: 0;\n }\n\n .landing-page .fa-external-link {\n padding-right: 5px;\n padding-left: 0 !important;\n }\n\n .landing-page .features #mastodon-timeline {\n margin-right: 0;\n margin-left: 30px;\n }\n\n @media screen and (min-width: 631px) {\n .column,\n .drawer {\n padding-left: 5px;\n padding-right: 5px;\n\n &:first-child {\n padding-left: 5px;\n padding-right: 10px;\n }\n }\n\n .columns-area > div {\n .column,\n .drawer {\n padding-left: 5px;\n padding-right: 5px;\n }\n }\n }\n\n .columns-area--mobile .column,\n .columns-area--mobile .drawer {\n padding-left: 0;\n padding-right: 0;\n }\n\n .public-layout {\n .header {\n .nav-button {\n margin-left: 8px;\n margin-right: 0;\n }\n }\n\n .public-account-header__tabs {\n margin-left: 0;\n margin-right: 20px;\n }\n }\n\n .landing-page__information {\n .account__display-name {\n margin-right: 0;\n margin-left: 5px;\n }\n\n .account__avatar-wrapper {\n margin-left: 12px;\n margin-right: 0;\n }\n }\n\n .card__bar .display-name {\n margin-left: 0;\n margin-right: 15px;\n text-align: right;\n }\n\n .fa-chevron-left::before {\n content: \"\\F054\";\n }\n\n .fa-chevron-right::before {\n content: \"\\F053\";\n }\n\n .column-back-button__icon {\n margin-right: 0;\n margin-left: 5px;\n }\n\n .column-header__setting-arrows .column-header__setting-btn:last-child {\n padding-left: 0;\n padding-right: 10px;\n }\n\n .simple_form .input.radio_buttons .radio > label input {\n left: auto;\n right: 0;\n }\n}\n","$black-emojis: '8ball' 'ant' 'back' 'black_circle' 'black_heart' 'black_large_square' 'black_medium_small_square' 'black_medium_square' 'black_nib' 'black_small_square' 'bomb' 'bowling' 'bust_in_silhouette' 'busts_in_silhouette' 'camera' 'camera_with_flash' 'clubs' 'copyright' 'curly_loop' 'currency_exchange' 'dark_sunglasses' 'eight_pointed_black_star' 'electric_plug' 'end' 'female-guard' 'film_projector' 'fried_egg' 'gorilla' 'guardsman' 'heavy_check_mark' 'heavy_division_sign' 'heavy_dollar_sign' 'heavy_minus_sign' 'heavy_multiplication_x' 'heavy_plus_sign' 'hocho' 'hole' 'joystick' 'kaaba' 'lower_left_ballpoint_pen' 'lower_left_fountain_pen' 'male-guard' 'microphone' 'mortar_board' 'movie_camera' 'musical_score' 'on' 'registered' 'soon' 'spades' 'speaking_head_in_silhouette' 'spider' 'telephone_receiver' 'tm' 'top' 'tophat' 'turkey' 'vhs' 'video_camera' 'video_game' 'water_buffalo' 'waving_black_flag' 'wavy_dash';\n\n%white-emoji-outline {\n filter: drop-shadow(1px 1px 0 $white) drop-shadow(-1px 1px 0 $white) drop-shadow(1px -1px 0 $white) drop-shadow(-1px -1px 0 $white);\n transform: scale(.71);\n}\n\n.emojione {\n @each $emoji in $black-emojis {\n &[title=':#{$emoji}:'] {\n @extend %white-emoji-outline;\n }\n }\n}\n","// components.scss\n.compose-form {\n .compose-form__modifiers {\n .compose-form__upload {\n &-description {\n input {\n &::placeholder {\n opacity: 1;\n }\n }\n }\n }\n }\n}\n\n.rich-formatting a,\n.rich-formatting p a,\n.rich-formatting li a,\n.landing-page__short-description p a,\n.status__content a,\n.reply-indicator__content a {\n color: lighten($ui-highlight-color, 12%);\n text-decoration: underline;\n\n &.mention {\n text-decoration: none;\n }\n\n &.mention span {\n text-decoration: underline;\n\n &:hover,\n &:focus,\n &:active {\n text-decoration: none;\n }\n }\n\n &:hover,\n &:focus,\n &:active {\n text-decoration: none;\n }\n\n &.status__content__spoiler-link {\n color: $secondary-text-color;\n text-decoration: none;\n }\n}\n\n.status__content__read-more-button {\n text-decoration: underline;\n\n &:hover,\n &:focus,\n &:active {\n text-decoration: none;\n }\n}\n\n.getting-started__footer a {\n text-decoration: underline;\n\n &:hover,\n &:focus,\n &:active {\n text-decoration: none;\n }\n}\n\n.nothing-here {\n color: $darker-text-color;\n}\n\n.public-layout .public-account-header__tabs__tabs .counter.active::after {\n border-bottom: 4px solid $ui-highlight-color;\n}\n"],"sourceRoot":""} \ No newline at end of file diff --git a/priv/static/packs/skins/vanilla/contrast/common.js b/priv/static/packs/skins/vanilla/contrast/common.js deleted file mode 100644 index ba45e450a..000000000 Binary files a/priv/static/packs/skins/vanilla/contrast/common.js and /dev/null differ diff --git a/priv/static/packs/skins/vanilla/contrast/common.js.map b/priv/static/packs/skins/vanilla/contrast/common.js.map deleted file mode 100644 index 2464757dd..000000000 Binary files a/priv/static/packs/skins/vanilla/contrast/common.js.map and /dev/null differ diff --git a/priv/static/packs/skins/vanilla/mastodon-light/common.css b/priv/static/packs/skins/vanilla/mastodon-light/common.css deleted file mode 100644 index c2fdf30b8..000000000 Binary files a/priv/static/packs/skins/vanilla/mastodon-light/common.css and /dev/null differ diff --git a/priv/static/packs/skins/vanilla/mastodon-light/common.css.map b/priv/static/packs/skins/vanilla/mastodon-light/common.css.map deleted file mode 100644 index f22d72ddd..000000000 --- a/priv/static/packs/skins/vanilla/mastodon-light/common.css.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["webpack:///common.scss","webpack:///./app/javascript/styles/mastodon/reset.scss","webpack:///./app/javascript/styles/mastodon-light/variables.scss","webpack:///./app/javascript/styles/mastodon/basics.scss","webpack:///./app/javascript/styles/mastodon/containers.scss","webpack:///./app/javascript/styles/mastodon/lists.scss","webpack:///./app/javascript/styles/mastodon/footer.scss","webpack:///./app/javascript/styles/mastodon/compact_header.scss","webpack:///./app/javascript/styles/mastodon/widgets.scss","webpack:///./app/javascript/styles/mastodon/variables.scss","webpack:///./app/javascript/styles/mastodon/forms.scss","webpack:///./app/javascript/styles/mastodon/accounts.scss","webpack:///./app/javascript/styles/mastodon/statuses.scss","webpack:///./app/javascript/styles/mastodon/boost.scss","webpack:///./app/javascript/styles/mastodon/components.scss","webpack:///","webpack:///./app/javascript/styles/mastodon/_mixins.scss","webpack:///./app/javascript/styles/mastodon/polls.scss","webpack:///./app/javascript/styles/mastodon/modal.scss","webpack:///./app/javascript/styles/mastodon/emoji_picker.scss","webpack:///./app/javascript/styles/mastodon/about.scss","webpack:///./app/javascript/styles/mastodon/tables.scss","webpack:///./app/javascript/styles/mastodon/admin.scss","webpack:///./app/javascript/styles/mastodon/dashboard.scss","webpack:///./app/javascript/styles/mastodon/rtl.scss","webpack:///./app/javascript/styles/mastodon/accessibility.scss","webpack:///./app/javascript/styles/mastodon-light/diff.scss"],"names":[],"mappings":"AAAA,2ZCKA,QAaE,UACA,SACA,eACA,aACA,wBACA,+EAIF,aAEE,MAGF,aACE,OAGF,eACE,cAGF,WACE,qDAGF,UAEE,aACA,OAGF,wBACE,iBACA,MAGF,0CACE,qBAGF,UACE,YACA,2BAGF,kBACE,cACA,mBACA,iCAGF,kBACE,kCAGF,kBACE,2BAGF,aACE,gBACA,8BACA,CC3EwB,iEDkF1B,kBClF0B,4BDsF1B,sBACE,MErFF,iDACE,mBACA,eACA,iBACA,gBACA,WDZM,kCCcN,6BACA,8BACA,CADA,0BACA,CADA,qBACA,0CACA,wCACA,kBAEA,iKAYE,eAGF,SACE,oCAEA,WACE,iBACA,kBACA,uCAGF,iBACE,WACA,YACA,mCAGF,iBACE,cAIJ,kBDlDwB,kBCsDxB,iBACE,kBACA,0BAEA,iBACE,aAIJ,iBACE,YAGF,kBACE,SACA,iBACA,uBAEA,iBACE,WACA,YACA,gBACA,YAIJ,kBACE,UACA,YAGF,iBACE,kBACA,cDzFiB,mBAEK,WC0FtB,YACA,UACA,aACA,uBACA,mBACA,oBAEA,qBACE,YACA,sCAGE,aACE,gBACA,WACA,YACA,kBACA,uBAIJ,cACE,iBACA,gBACA,QAMR,mBACE,eACA,cAEA,YACE,kDAKF,YAGE,WACA,mBACA,uBACA,oBACA,sBAGF,YACE,yEAKF,gBAEE,+EAKF,WAEE,sCAIJ,qBAEE,eACA,gBACA,gBACA,cACA,kBACA,8CAEA,eACE,0CAGF,mBACE,gEAEA,eACE,0CAIJ,aDvKmB,kKC0KjB,oBAGE,sDAIJ,aD7KgB,eC+Kd,0DAEA,aDjLc,oDCsLhB,cACE,SACA,uBACA,cDzLc,aC2Ld,UACA,SACA,oBACA,eACA,UACA,4BACA,0BACA,gMAEA,oBAGE,kEAGF,aDvNY,gBCyNV,gBCnON,WACE,CACA,kBACA,qCAEA,eALF,UAMI,SACA,kBAIJ,sBACE,qCAEA,gBAHF,kBAII,qBAGF,YACE,uBACA,mBACA,wBAEA,SFtBI,YEwBF,kBACA,sBAGF,YACE,uBACA,mBACA,WF/BE,qBEiCF,UACA,kBACA,iBACA,6CACA,gBACA,eACA,mCAMJ,WACE,CACA,cACA,mBACA,sBACA,qCAEA,kCAPF,UAQI,aACA,aACA,kBAKN,WACE,CACA,YACA,eACA,iBACA,sBACA,CACA,gBACA,CACA,sBACA,qCAEA,gBAZF,UAaI,CACA,eACA,CACA,mBACA,0BAGF,UACE,YACA,iBACA,6BAEA,UACE,YACA,cACA,SACA,kBACA,uBAIJ,aACE,cF5FiB,wBE8FjB,iCAEA,aACE,gBACA,uBACA,gBACA,8BAIJ,aACE,eACA,iBACA,gBACA,SAIJ,YACE,cACA,8BACA,sBACA,mCACA,CADA,0BACA,mBAEA,eACE,WACA,mBAGF,aACE,WACA,mBAGF,aACE,WACA,mBAGF,eACE,WACA,qCAGF,QA3BF,UA4BI,qCACA,mBAEA,aACE,mBAGF,aACE,WACA,mBAGF,aACE,WACA,mBAGF,aACE,WACA,UAKN,YACE,cACA,8CACA,sBACA,mCACA,CADA,0BACA,mBAEA,eACE,WACA,mBAGF,eACE,WACA,mBAGF,aACE,WACA,mBAGF,eACE,WACA,mBAGF,aACE,WACA,uCAGF,eACE,wBAGF,kBACE,qCAGF,QAxCF,iDAyCI,uCAEA,YACE,aACA,mBACA,uBACA,iCAGF,UACE,uBACA,mBACA,sBAGF,YACE,sCAIJ,QA7DF,UA8DI,qCACA,mBAEA,aACE,mBAGF,aACE,WACA,mBAGF,aACE,WACA,mBAGF,aACE,WACA,mBAGF,aACE,WACA,sCAMJ,eADF,gBAEI,4BAGF,eACE,qCAEA,0BAHF,SAII,yBAIJ,kBACE,mCACA,kBACA,YACA,cACA,aACA,oBACA,uBACA,iBACA,gBACA,qCAEA,uBAZF,cAaI,WACA,MACA,OACA,SACA,gBACA,gBACA,YACA,6BAGF,cACE,eACA,kCAGF,YACE,oBACA,2BACA,iBACA,oCAGF,YACE,oBACA,uBACA,iBACA,mCAGF,YACE,oBACA,yBACA,iBACA,+BAGF,aACE,aACA,mCAEA,aACE,YACA,WACA,kBACA,YACA,UFzUA,qCE4UA,kCARF,WASI,+GAIJ,kBAGE,kCAIJ,YACE,mBACA,eACA,eACA,gBACA,qBACA,cF3Ve,mBE6Vf,kBACA,uHAEA,yBAGE,WFtWA,qCE0WF,0CACE,YACE,qCAKN,kBACE,CACA,oBACA,kBACA,6HAEA,oBAGE,mBACA,sBAON,YACE,cACA,0DACA,sBACA,mCACA,CADA,0BACA,gCAEA,UACE,cACA,gCAGF,UACE,cACA,qCAGF,qBAjBF,0BAkBI,WACA,gCAEA,YACE,kCAKN,iBACE,qCAEA,gCAHF,eAII,sCAKF,4BADF,eAEI,wCAIJ,eACE,mBACA,mCACA,gDAEA,UACE,qIAEA,8BAEE,CAFF,sBAEE,6DAGF,wBFrbe,8CE0bjB,yBACE,gBACA,aACA,kBACA,gBACA,oDAEA,UACE,cACA,kBACA,WACA,YACA,gDACA,MACA,OACA,kDAGF,mBACE,CADF,8BACE,CADF,gBACE,cACA,WACA,YACA,SACA,0BACA,qCAGF,6CA3BF,YA4BI,gDAIJ,eACE,6JAEA,iBAEE,qCAEA,4JAJF,eAKI,sCAKN,sCA/DF,eAgEI,gBACA,oDAEA,YACE,+FAGF,eAEE,6CAIJ,iBACE,iBACA,aACA,2BACA,mDAEA,UACE,cACA,mBACA,kBACA,SACA,OACA,QACA,YACA,0BACA,WACA,oDAGF,aACE,YACA,aACA,kBACA,cACA,wDAEA,aACE,WACA,YACA,SACA,kBACA,yBACA,mBACA,qCAIJ,2CArCF,YAsCI,mBACA,0BACA,YACA,mDAEA,YACE,oDAGF,UACE,YACA,CACA,sBACA,wDAEA,QACE,kBACA,2DAGF,mDAXF,YAYI,sCAKN,2CAhEF,eAiEI,sCAGF,2CApEF,cAqEI,8CAIJ,aACE,iBACA,mDAEA,gBACE,mBACA,sDAEA,cACE,iBACA,WF3kBF,gBE6kBE,gBACA,mBACA,uBACA,6BACA,4DAEA,aACE,eACA,WFrlBJ,gBEulBI,gBACA,uBACA,qCAKN,4CA7BF,gBA8BI,aACA,8BACA,mBACA,mDAEA,aACE,iBACA,sDAEA,cACE,iBACA,iBACA,4DAEA,aF1mBS,oDEinBf,YACE,2BACA,oBACA,YACA,qEAEA,YACE,mBACA,gBACA,qCAGF,oEACE,YACE,6DAIJ,eACE,sBACA,cACA,cFtoBW,aEwoBX,+BACA,eACA,kBACA,kBACA,8DAEA,aACE,uEAGF,cACE,kEAGF,aACE,WACA,kBACA,SACA,OACA,WACA,gCACA,WACA,wBACA,yEAIA,+BACE,UACA,kFAGF,2BFxqBS,wEE8qBT,SACE,wBACA,8DAIJ,oBACE,cACA,2EAGF,cACE,cACA,4EAGF,eACE,eACA,kBACA,WFpsBJ,6CEssBI,2DAIJ,aACE,WACA,4DAGF,eACE,8CAKN,YACE,eACA,kEAEA,eACE,gBACA,uBACA,cACA,2FAEA,4BACE,yEAGF,YACE,qDAIJ,gBACE,eACA,cFvuBa,uDE0uBb,oBACE,cF3uBW,qBE6uBX,aACA,gBACA,8DAEA,eACE,WFrvBJ,qCE2vBF,6CAtCF,aAuCI,UACA,4CAKN,yBACE,qCAEA,0CAHF,eAII,wCAIJ,eACE,oCAGF,kBACE,mCACA,kBACA,gBACA,mBACA,qCAEA,mCAPF,eAQI,gBACA,gBACA,8DAGF,QACE,aACA,+DAEA,aACE,sFAGF,uBACE,yEAGF,aF9xBU,8DEoyBV,mBACA,WF9yBE,qFEkzBJ,YAEE,eACA,cFlzBe,2CEszBjB,gBACE,iCAIJ,YACE,cACA,kDACA,qCAEA,gCALF,aAMI,+CAGF,cACE,iCAIJ,eACE,2BAGF,YACE,eACA,eACA,cACA,+BAEA,qBACE,cACA,YACA,cACA,mBACA,kBACA,qCAEA,8BARF,aASI,sCAGF,8BAZF,cAaI,sCAIJ,0BAvBF,QAwBI,6BACA,+BAEA,UACE,UACA,gBACA,gCACA,0CAEA,eACE,0CAGF,kBFh3BkB,+IEm3BhB,kBAGE,WC53BZ,eACE,aAEA,oBACE,aACA,iBAIJ,eACE,cACA,oBAEA,cACE,gBACA,mBACA,wBCfF,eACE,iBACA,oBACA,eACA,cACA,qCAEA,uBAPF,iBAQI,mBACA,+BAGF,YACE,cACA,0CACA,wCAEA,aACE,WACA,YACA,wCAGF,aACE,WACA,YACA,wCAGF,aACE,WACA,YACA,kBACA,6CAEA,aACE,wCAIJ,aACE,WACA,YACA,wCAGF,aACE,WACA,YACA,qCAGF,6BAxCF,iCAyCI,+EAEA,aAEE,wCAGF,UACE,wCAGF,aACE,+EAGF,aAEE,wCAGF,UACE,sCAIJ,uCACE,aACE,sCAIJ,4JACE,YAIE,4BAKN,wBACE,gBACA,kBACA,cJ9Fe,6BIiGf,aACE,qBACA,6BAIJ,oBACE,cACA,wGAEA,yBAGE,mCAKF,aACE,YACA,WACA,cACA,aACA,0HAMA,YACE,oBClIR,cACE,iBACA,cACA,gBACA,mBACA,eACA,qBACA,qCAEA,mBATF,iBAUI,oBACA,uBAGF,aACE,qBACA,0BAGF,eACE,cLjBe,wBKqBjB,oBACE,mBACA,kBACA,WACA,YACA,cC9BN,kBACE,mCACA,mBAEA,UACE,kBACA,gBACA,0BACA,gBCPI,uBDUJ,mBACE,CADF,8BACE,CADF,gBACE,cACA,WACA,YACA,SACA,0BACA,oBAIJ,kBNfwB,aMiBtB,0BACA,eACA,cNrBiB,iBMuBjB,qBACA,gBACA,8BAEA,UACE,YACA,gBACA,sBAGF,kBACE,iCAEA,eACE,uBAIJ,cACE,SACA,UACA,gBACA,uBACA,oBACA,kBACA,oBACA,cACA,sBAGF,aNrDiB,qBMuDf,4BAEA,yBACE,qCAKN,aAnEF,YAoEI,uBAIJ,kBACE,oBACA,yBAEA,YACE,yBACA,gBACA,eACA,cN5EiB,+BMgFnB,cACE,0CAEA,eACE,sDAGF,YACE,mBACA,gDAGF,UACE,YACA,0BACA,oCAIJ,YACE,mBAKF,aNzGmB,aM8GrB,YACE,kBACA,mBN9GwB,mCMgHxB,qBAGF,YACE,kBACA,0BACA,kBACA,cNzHmB,mBM2HnB,iBAGF,eACE,eACA,cNhImB,iBMkInB,qBACA,gBACA,UACA,oBAEA,YACE,yBACA,gBACA,eACA,cN3IiB,0BM+InB,eACE,CACA,kBACA,mBAGF,oBACE,CACA,mBACA,cNxJiB,qBM0JjB,mBACA,gBACA,uBACA,0EAEA,yBAGE,uBAMJ,sBACA,kBACA,mBNxKwB,mCM0KxB,cN5KmB,gBM8KnB,mBACA,sDAEA,eAEE,CAII,qXADF,eACE,yBAKN,aACE,0BACA,CAMI,wLAGF,oBAGE,mIAEA,yBACE,gCAMR,kBACE,oCAEA,gBACE,cNvNe,8DM6NjB,iBACE,eACA,4DAGF,eACE,qBACA,iEAEA,eACE,kBAMR,YACE,CACA,eClPM,CDoPN,cACA,cNlPmB,mBMoPnB,+BANA,iBACA,CClPM,kCDgQN,CATA,aAGF,kBACE,CAEA,iBACA,kBACA,cACA,iBAEA,UNlQM,eMoQJ,gBACA,gBACA,mBACA,gBAGF,cACE,cNxQiB,qCM4QnB,aArBF,YAsBI,mBACA,iBAEA,cACE,aAKN,kBNpR0B,kBMsRxB,mCACA,iBAEA,qBACE,mBACA,uCAEA,YAEE,mBACA,8BACA,mBNjSoB,kBMmSpB,aACA,qBACA,cACA,mCACA,0EAIA,kBAGE,0BAIJ,kBNrSiB,eMuSf,8BAGF,UACE,eACA,oBAGF,aACE,eACA,gBACA,WNpUE,mBMsUF,gBACA,uBACA,wBAEA,aNvUe,0BM2Uf,aACE,gBACA,eACA,eACA,cN/Ua,0IMqVf,UNxVE,+BMgWJ,aACE,YACA,uDAGF,oBNnViB,wCMuVjB,eACE,eAKN,YACE,yBACA,gCAEA,aACE,WACA,YACA,kBACA,kBACA,kBACA,mBACA,yBACA,4CAEA,SACE,6CAGF,SACE,6CAGF,SACE,iBAKN,UACE,0BAEA,SACE,SACA,wBAGF,eACE,0BAGF,iBACE,yBACA,cNtZiB,gBMwZjB,aACA,sCAEA,eACE,0BAIJ,cACE,sBACA,gCACA,wCAGF,eACE,wBAGF,WACE,kBACA,eACA,gBACA,WNjbI,8BMobJ,aACE,cNlbe,gBMobf,eACA,0BAIJ,SACE,iCACA,qCAGF,kCACE,YACE,sCAYJ,qIAPF,eAQI,gBACA,gBACA,iBAOJ,gBACE,qCAEA,eAHF,oBAII,uBAGF,sBACE,sCAEA,qBAHF,sBAII,sCAGF,qBAPF,UAQI,sCAGF,qBAXF,WAYI,kCAIJ,iBACE,qCAEA,gCAHF,4BAII,iEAIA,eACE,0DAGF,cACE,iBACA,oEAEA,UACE,YACA,gBACA,yFAGF,gBACE,SACA,mKAIJ,eAGE,gBAON,aNnhBmB,iCMkhBrB,kBAKI,6BAEA,eACE,kBAIJ,cACE,iBACA,wCAMF,oBACE,gBACA,cNzhBiB,4JM4hBjB,yBAGE,oBAKN,kBACE,gBACA,eACA,kBACA,yBAEA,aACE,gBACA,aACA,CACA,kBACA,gBACA,uBACA,qBACA,WNpkBI,gCMskBJ,4FAEA,yBAGE,oCAIJ,eACE,0BAGF,iBACE,gCACA,MEplBJ,+CACE,gBACA,iBAGF,eACE,aACA,cACA,qBAIA,kBACE,gBACA,4BAEA,QACE,0CAIA,kBACE,qDAEA,eACE,gDAIJ,iBACE,kBACA,sDAEA,iBACE,SACA,OACA,6BAKN,iBACE,gBACA,gDAEA,mBACE,eACA,gBACA,WRjDA,cQmDA,WACA,4EAGF,iBAEE,mDAGF,eACE,4CAGF,iBACE,QACA,OACA,qCAGF,aRpDe,0BQsDb,gIAEA,oBAGE,0CAIJ,iBACE,CACA,iBACA,mBAKN,YACE,cACA,0BAEA,qBACE,cACA,UACA,cACA,oBAIJ,aRlGmB,sBQqGjB,aRtFiB,yBQ0FjB,iBACE,kBACA,gBACA,uBAGF,eACE,iBACA,sBAIJ,kBACE,wBAGF,aACE,eACA,eACA,qBAGF,kBACE,cRhIiB,iCQmIjB,iBACE,eACA,iBACA,gBACA,gBACA,oBAIJ,kBACE,qBAGF,eACE,CAII,0JADF,eACE,sDAMJ,YACE,4DAEA,mBACE,eACA,WRnKA,gBQqKA,gBACA,cACA,wHAGF,aAEE,sDAIJ,cACE,kBACA,mDAKF,mBACE,eACA,WRzLE,cQ2LF,kBACA,qBACA,gBACA,sCAGF,cACE,mCAGF,UACE,sCAIJ,cACE,4CAEA,mBACE,eACA,WR/ME,cQiNF,gBACA,gBACA,4CAGF,kBACE,yCAGF,cACE,CADF,cACE,kDAIJ,oBACE,WACA,OACA,6BAGF,oBACE,cACA,4BAGF,kBACE,8CAEA,eACE,0BAIJ,YACE,CACA,eACA,oBACA,iCAEA,cACE,kCAGF,qBACE,eACA,cACA,eACA,oCAEA,aACE,2CAGF,eACE,6GAIJ,eAEE,qCAGF,yBA9BF,aA+BI,gBACA,kCAEA,cACE,0JAGF,kBAGE,iDAKN,iBACE,oBACA,eACA,WRnSI,cQqSJ,WACA,2CAKE,mBACE,eACA,WR7SA,qBQ+SA,WACA,kBACA,gBACA,kBACA,cACA,0DAGF,iBACE,OACA,QACA,SACA,kDAKN,cACE,aACA,yBACA,kBACA,sJAGF,qBAKE,eACA,WR7UI,cQ+UJ,WACA,UACA,oBACA,gBACA,mBACA,sBACA,kBACA,aACA,6RAEA,aACE,CAHF,+OAEA,aACE,CAHF,mQAEA,aACE,CAHF,sNAEA,aACE,8LAGF,eACE,oVAGF,oBACE,iOAGF,oBR5VY,oLQgWZ,iBACE,4WAGF,oBR3ViB,mBQ8Vf,6CAKF,aACE,gUAGF,oBAME,8CAGF,aACE,gBACA,cACA,eACA,8BAIJ,UACE,uBAGF,eACE,aACA,oCAEA,YACE,mBACA,qEAIJ,aAGE,WACA,SACA,kBACA,mBR5YiB,WAlBb,eQiaJ,oBACA,YACA,aACA,yBACA,qBACA,kBACA,sBACA,eACA,gBACA,UACA,mBACA,kBACA,sGAEA,cACE,uFAGF,wBACE,gLAGF,wBAEE,kHAGF,wBR5ae,gGQgbf,kBD7bQ,kHCgcN,wBACE,sOAGF,wBAEE,qBAKN,uBACE,CADF,oBACE,CADF,eACE,sBACA,eACA,WRjdI,cQmdJ,WACA,UACA,oBACA,gBACA,wXACA,sBACA,kBACA,kBACA,mBACA,YACA,iBAGF,4BACE,oCAIA,iBACE,mCAGF,iBACE,UACA,QACA,CACA,qBACA,eACA,cRzdY,oBQ2dZ,oBACA,eACA,gBACA,mBACA,gBACA,yCAEA,UACE,cACA,kBACA,MACA,QACA,WACA,UACA,oEACA,4BAKN,iBACE,0CAEA,wBACE,CADF,gBACE,qCAGF,iBACE,MACA,OACA,WACA,YACA,aACA,uBACA,mBACA,iCACA,kBACA,iBACA,gBACA,YACA,8CAEA,iBACE,6HAGE,UR/hBF,aQyiBR,aACE,CACA,kBACA,eACA,gBAGF,kBACE,cR9iBmB,kBQgjBnB,kBACA,mBACA,kBACA,uBAEA,mCACE,+BACA,cRjjBY,sBQqjBd,mCACE,+BACA,cD7jBQ,kBCikBV,oBACE,cRlkBiB,qBQokBjB,wBAEA,URzkBI,0BQ2kBF,kBAIJ,kBACE,4BAGF,SACE,sBACA,cACA,WACA,SACA,aACA,gDACA,mBRrlBsB,WALlB,eQ6lBJ,SACA,8CAEA,QACE,iHAGF,mBAGE,kCAGF,kBACE,uBAIJ,eACE,CAII,oKADF,eACE,0DAKN,eAzEF,eA0EI,eAIJ,eACE,kBACA,gBAEA,aR/nBmB,qBQioBjB,sBAEA,yBACE,YAKN,eACE,mBACA,eACA,eAEA,oBACE,kBACA,cAGF,aRpoBmB,yBQsoBjB,qBACA,gBACA,2DAEA,aAGE,8BAKN,kBAEE,cRnqBmB,oCQsqBnB,cACE,mBACA,kBACA,4CAGF,aR5qBmB,gBQ8qBjB,CAII,mUADF,eACE,0DAKN,6BAtBF,eAuBI,cAIJ,YACE,eACA,uBACA,UAGF,aACE,gBDrsBM,YCusBN,qBACA,mCACA,qBACA,cAEA,aACE,SACA,iBAIJ,kBACE,cRjtBmB,WQmtBnB,sBAEA,aACE,eACA,eAKF,kBACE,sBAEA,eACE,CAII,+JADF,eACE,4CASR,qBACE,CACA,URlvBI,qCQovBJ,oCACA,kBACA,aACA,mBACA,gDAEA,UR1vBI,0BQ4vBF,oLAEA,oBAGE,0DAIJ,eACE,cACA,kBACA,CAII,yYADF,eACE,kEAIJ,eACE,oBAMR,YACE,eACA,mBACA,4DAEA,aAEE,6BAIA,wBACA,cACA,sBAIJ,iBACE,cRtyBmB,0BQyyBnB,iBACE,oBAIJ,eACE,mBACA,uBAEA,cACE,WRtzBI,kBQwzBJ,mBACA,SACA,UACA,4BAGF,aACE,eAIJ,aD/zBc,0SCy0BZ,+CACE,aAIJ,kBACE,sBACA,kBACA,aACA,mBACA,kBACA,kBACA,QACA,mCACA,sBAEA,aACE,8BAGF,sBACE,SACA,aACA,eACA,gDACA,oBAGF,aACE,WACA,oBACA,gBACA,eACA,CACA,oBACA,WACA,iCACA,oBAGF,oBR52Bc,gBQ82BZ,2BAEA,kBRh3BY,gBQk3BV,oBAKN,kBACE,6BAEA,wBACE,mBACA,eACA,aACA,4BAGF,kBACE,aACA,OACA,sBACA,cACA,cACA,gCAEA,iBACE,YACA,iBACA,kBACA,UACA,8BAGF,qBACE,qCAIJ,kBACE,gCAGF,wBACE,mCACA,kBACA,kBACA,kBACA,kBACA,sCAEA,wBACE,WACA,cACA,YACA,SACA,kBACA,MACA,UACA,yBAIJ,sBACE,aACA,mBACA,SC17BF,aACE,qBACA,cACA,mCACA,qCAEA,QANF,eAOI,8EAMA,kBACE,YAKN,YACE,kBACA,gBACA,0BACA,gBAEA,aACE,WACA,YACA,SACA,oBACA,CADA,8BACA,CADA,gBACA,0BACA,qCAGF,WAfF,YAgBI,sCAGF,WAnBF,YAoBI,aAIJ,iBACE,aACA,aACA,2BACA,mBACA,mBACA,0BACA,qCAEA,WATF,eAUI,qBAGF,aACE,WACA,YACA,gBACA,wBAEA,UACE,YACA,cACA,SACA,kBACA,mBACA,oBACA,CADA,8BACA,CADA,gBACA,0BAIJ,gBACE,gBACA,iCAEA,cACE,WT9EA,gBSgFA,gBACA,uBACA,+BAGF,aACE,eACA,cTpFa,gBSsFb,gBACA,uBACA,aAMR,cACE,kBACA,gBACA,6GAEA,cAME,WT5GI,gBS8GJ,qBACA,iBACA,qBACA,sBAGF,eFnHM,oBEqHJ,WTtHI,eSwHJ,cACA,kBAGF,cACE,uCAGF,wBAEE,cT/HiB,oBSmInB,UACE,eACA,wBAEA,oBACE,iBACA,oBAIJ,WACE,gBACA,wBAEA,oBACE,gBACA,uBAIJ,cACE,WACA,qCAGF,YA9DF,iBA+DI,mBAEA,YACE,uCAGF,oBAEE,gBAKN,kBTxK0B,mCS0KxB,cTpJiB,eSsJjB,gBACA,kBACA,aACA,uBACA,mBACA,eACA,kBACA,aACA,gBACA,2BAEA,yBACE,yBAGF,qBACE,gBACA,yCAIJ,oBAEE,gBACA,eACA,kBACA,eACA,iBACA,gBACA,cT3MmB,mCS6MnB,mCACA,6DAEA,aT1Mc,oCS4MZ,gCACA,qDAGF,aACE,oCACA,gCACA,0BAIJ,eACE,UACA,wBACA,gBACA,CADA,YACA,CACA,iCACA,CADA,uBACA,CADA,kBACA,eACA,iBACA,6BAEA,YACE,gCACA,yDAGF,qBAEE,aACA,kBACA,gBACA,gBACA,mBACA,uBACA,6BAGF,eACE,YACA,cACA,cT1PiB,gCS4PjB,6BAGF,aACE,cThQiB,4BSoQnB,aTrPmB,qBSuPjB,qGAEA,yBAGE,oCAIJ,mCACE,+BACA,sCAEA,aT7QY,gBS+QV,0CAGF,aTlRY,wCSuRd,eACE,wCAIJ,UACE,0BAIA,aTvSmB,4BS0SjB,aT1SiB,qBS4Sf,qGAEA,yBAGE,iCAIJ,UTxTI,gBS0TF,wBAIJ,eACE,kBChUJ,kCACE,kBACA,gBACA,mBACA,8BAEA,yBACE,qCAGF,iBAVF,eAWI,gBACA,gBACA,6BAGF,eACE,SACA,gBACA,gFAEA,yBAEE,sCAIJ,UACE,yBAGF,kBVzBwB,6GU4BtB,sBAGE,CAHF,cAGE,8IAIA,eAGE,0BACA,iJAKF,yBAGE,kLAIA,iBAGE,qCAKN,4GACE,yBAGE,uCAKN,kBACE,qBAIJ,WACE,eACA,mBV9DmB,WAlBb,oBUmFN,iBACA,YACA,iBACA,SACA,yBAEA,UACE,YACA,sBACA,iBACA,UV7FI,gFUiGN,kBAGE,qNAKA,kBVzFe,4IUiGf,kBH9GQ,qCGqHV,wBACE,YACE,0DAOJ,YACE,uCAGF,2BACE,gBACA,uDAEA,SACE,SACA,yDAGF,eACE,yDAGF,gBACE,iBACA,mFAGF,UACE,qMAGF,eAGE,iCC/JN,u+KACE,uCAEA,u+KACE,0CAIJ,u+KACE,WCTF,gCACE,4CACA,kBAGF,mBACE,sBACA,oBACA,gBACA,kBACA,cAGF,aACE,eACA,iBACA,cZGmB,SYDnB,uBACA,UACA,eACA,wCAEA,yBAEE,uBAGF,aZXiB,eYaf,SAIJ,wBZfqB,YYiBnB,kBACA,sBACA,WZrCM,eYuCN,qBACA,oBACA,eACA,gBACA,YACA,iBACA,iBACA,gBACA,eACA,kBACA,kBACA,yBACA,qBACA,uBACA,2BACA,mBACA,WACA,4CAEA,wBAGE,4BACA,sBAGF,eACE,mFAEA,wBLjEQ,gBKqEN,mCAIJ,wBZ5DiB,eY+Df,2BAGF,QACE,wDAGF,mBAGE,yGAGF,cAIE,iBACA,YACA,oBACA,iBACA,4BAGF,UZvGM,mBAgBW,qGY2Ff,wBAGE,8BAIJ,kBZnGsB,2GYsGpB,wBAGE,0BAIJ,aZzHmB,uBY2HjB,iBACA,yBACA,+FAEA,oBAGE,cACA,mCAGF,UACE,uBAIJ,aACE,WACA,kBAIJ,YACE,cACA,kBACA,cAGF,oBACE,UACA,cZrIoB,SYuIpB,kBACA,uBACA,eACA,2BACA,2CACA,2DAEA,aAGE,sCACA,4BACA,2CACA,oBAGF,oCACE,uBAGF,aACE,6BACA,eACA,qBAGF,aZtKmB,gCY0KnB,QACE,uEAGF,mBAGE,uBAGF,aZnMmB,sFYsMjB,aAGE,oCACA,6BAGF,kCACE,gCAGF,aACE,6BACA,8BAGF,aZvMiB,uCY0Mf,aACE,wBAKN,sBACE,8BACA,qBACA,kBACA,YACA,8BAEA,6BACE,mBAKN,aZ5OqB,SY8OnB,kBACA,uBACA,eACA,gBACA,eACA,cACA,iBACA,UACA,2BACA,2CACA,0EAEA,aAGE,oCACA,4BACA,2CACA,yBAGF,kCACE,4BAGF,UACE,6BACA,eACA,0BAGF,aZ9PmB,qCYkQnB,QACE,sFAGF,mBAGE,CAKF,0BADF,iBAUE,CATA,WAGF,WACE,cACA,qBACA,QACA,SAEA,+BAEA,kBAEE,mBACA,oBACA,kBACA,mBACA,iBAKF,WACE,eAIJ,YACE,iCAGE,mBACA,eAEA,gBACA,wCAEA,aZnTiB,sDYuTjB,YACE,2CAGF,oBACE,kBACA,yBACA,sBACA,WACA,YACA,cACA,kBACA,SACA,kBACA,sBACA,kDAEA,oBZxUe,yDY+UnB,UZjWM,mBYmWJ,mBZnVe,oCYqVf,iBACA,kBACA,eACA,gBACA,6CAEA,UZ3WI,gBY6WF,CAII,kRADF,eACE,wCAKN,aZnXiB,gBYqXf,0BACA,yIAEA,oBAGE,sCAKN,iBACE,MACA,QACA,kDAGF,iBACE,mGAGF,iBAGE,WACA,8BAGF,QACE,wBACA,UACA,qDAEA,WACE,mBACA,UACA,mFAIJ,aAEE,sBACA,WACA,SACA,WZraI,gBOCA,aKuaJ,oBACA,eACA,gBACA,SACA,UACA,yIAEA,aZzZc,CYuZd,sHAEA,aZzZc,CYuZd,8HAEA,aZzZc,CYuZd,4GAEA,aZzZc,+FY6Zd,SACE,qCAGF,kFAvBF,cAwBI,sCAIJ,iBACE,+CAGF,gBACE,0BACA,iBACA,mBACA,YACA,qBACA,kEAEA,SACE,qCAGF,8CAZF,sBAaI,gBACA,2DAIJ,iBACE,SACA,kDAGF,qBACE,aACA,kBACA,SACA,WACA,WACA,sCACA,mBZ3diB,0BY6djB,WZheI,eYkeJ,YACA,6FAEA,aACE,wDAIJ,YACE,eACA,kBACA,yPAEA,kBAIE,wGAIJ,YAGE,mBACA,mBACA,2BACA,iBACA,eACA,oCAGF,6BACE,0CAEA,aACE,gBACA,uBACA,mBACA,2CAGF,eACE,0CAGF,aACE,iBACA,gBACA,uBACA,mBACA,8EAIJ,aAEE,iBACA,WACA,YACA,2DAGF,aZ9hBmB,wCYkiBnB,UZriBM,oBYuiBJ,eACA,gBLviBI,sEK0iBJ,eACE,uEAGF,YACE,mBACA,YACA,eACA,8DAGF,UACE,cACA,WACA,uEAEA,iFACE,aACA,uBACA,8BACA,UACA,4BACA,oFAEA,aACE,cZjkBW,eYmkBX,gBACA,aACA,oBACA,6QAEA,aAGE,8EAIJ,SACE,0EAIJ,iBACE,UACA,SACA,OACA,QACA,sBACA,gFACA,aACA,UACA,4BACA,mFAEA,sBACE,cZjmBW,SYmmBX,UACA,SACA,WACA,oBACA,eACA,gBACA,yFAEA,UL7mBF,8GKinBE,WACE,cZhnBS,COFb,oGKinBE,WACE,cZhnBS,COFb,wGKinBE,WACE,cZhnBS,COFb,+FKinBE,WACE,cZhnBS,iFYqnBb,SACE,wEAKN,iBACE,sBL/nBE,wBKioBF,sBACA,4BACA,aACA,WACA,gBACA,8CAIJ,YACE,gBACA,0BACA,aACA,8BACA,cACA,qEAEA,YACE,uGAEA,gBACE,qGAGF,YACE,6IAEA,aACE,2IAGF,gBACE,0HAKN,sBAEE,cACA,0EAGF,iBACE,iBACA,sCAIJ,YACE,yBACA,YACA,cACA,4EAEA,eACE,iBACA,oBAKN,cACE,kDACA,eACA,gBACA,cZhsBmB,4CYmsBnB,aLlsBY,kCKusBd,2CACE,WC7sBF,8DDktBE,sBACA,CADA,kBACA,wBACA,WACA,YACA,eAEA,UACE,kBAIJ,iBACE,mBACA,mBZ9sBiB,aYgtBjB,gBACA,gBACA,cACA,0BAGF,iBACE,gBACA,0BAGF,WACE,iBACA,gCAGF,UZhvBQ,cYkvBN,eACA,iBACA,gBACA,mBACA,qBACA,kCAGF,UACE,iBACA,+BAGF,cACE,4CAGF,iBAEE,eACA,iBACA,qBACA,gBACA,gBACA,uBACA,gBACA,WZ5wBM,wDY+wBN,SACE,wGAGF,kBACE,sJAEA,oBACE,gEAIJ,UACE,YACA,gBACA,oDAGF,cACE,iBACA,sBACA,CADA,gCACA,CADA,kBACA,gDAGF,kBACE,qBACA,sEAEA,eACE,gDAIJ,aLnyBc,qBKqyBZ,4DAEA,yBACE,oEAEA,aACE,4EAKF,oBACE,sFAEA,yBACE,wDAKN,aZhzBc,8EYqzBhB,aACE,0GAGF,kBZxzBoB,sHY2zBlB,kBACE,qBACA,8IAGF,QACE,0XAGF,mBAGE,0FAIJ,YACE,wJAEA,aACE,+BAKN,oBACE,gBACA,yCAEA,UACE,YACA,gBACA,iCAGF,kBACE,qBACA,4CAEA,eACE,iCAIJ,aZ33BmB,qBY63BjB,uCAEA,yBACE,+CAIA,oBACE,oDAEA,yBACE,gDAKN,aACE,6CAKN,gBACE,oCAGF,aACE,eACA,iBACA,cACA,SACA,uBACA,CACA,eACA,qBACA,oFAEA,yBAEE,gCAIJ,oBACE,kBACA,uBACA,SACA,WZ/6BM,gBYi7BN,eACA,cACA,yBACA,iBACA,eACA,sBACA,4BAGF,aZp6BkB,SYs6BhB,kBACA,kBACA,oBACA,SACA,aACA,sBACA,WACA,WACA,gCACA,+BAGF,UACE,kBACA,kBAIA,SACE,mBACA,wCAEA,kBACE,8CAEA,sBACE,iFAIJ,kBAEE,SAMJ,yBACA,kBACA,gBACA,gCACA,eACA,UAaA,mCACA,CADA,0BACA,wDAZA,QARF,kBAWI,0BAGF,GACE,aACA,WALA,gBAGF,GACE,aACA,uDAMF,cAEE,kCAGF,kBACE,4BACA,sCAIA,aZv+Be,qCY2+Bf,UZtgCI,6BY0gCJ,aZ/+Be,CA3BX,kEYkhCJ,UZlhCI,kCYqhCF,aZngCe,gEYugCf,UZzhCE,mBAgBW,sEY6gCX,kBACE,+CAQR,sBACE,qEAEA,aACE,qDAKN,aZzhCkB,YY4hChB,eACA,uBAGF,aZhiCkB,qCYoiClB,aACE,eACA,mBACA,eAGF,cACE,mBAGF,+BACE,aACA,6CAEA,uBACE,OACA,gBACA,4DAEA,eACE,8DAGF,SACE,mBACA,qHAGF,cAEE,gBACA,4EAGF,cACE,0BAKN,kBACE,aACA,cACA,uBACA,aACA,kBAGF,gBACE,cZrlCgB,CYulChB,iBACA,eACA,kBACA,+CAEA,aZ5lCgB,uBYgmChB,aACE,gBACA,uBACA,qBAIJ,kBACE,aACA,eACA,8BAEA,mBACE,kBACA,mBACA,yDAEA,gBACE,qCAGF,oBACE,WACA,eACA,gBACA,cZxnCgB,4BY8nCtB,iBACE,8BAGF,cACE,cACA,uCAGF,aACE,aACA,mBACA,uBACA,kBACA,kBAGF,kBACE,kBACA,wBAEA,YACE,eACA,8BACA,uBACA,uFAEA,SAEE,mCAIJ,cACE,iBACA,6CAEA,UACE,YACA,gBACA,kEAGF,gBACE,gBACA,+DAIJ,cAEE,wBAIJ,eACE,cZvrCgB,eYyrChB,iBACA,8BAGF,kBACE,6BACA,gCACA,aACA,mBACA,eACA,wBAGF,aACE,qBACA,uDAGF,oBAEE,gBACA,eACA,gBACA,2BAGF,UZzuCQ,eY2uCN,6BAEA,aZ1uCmB,SY+uCrB,YACE,gCACA,8BAEA,aACE,cACA,WZxvCI,qBY0vCJ,eACA,gBACA,kBAIJ,YACE,iBAGF,WACE,aACA,mBACA,UAGF,YACE,gCACA,kBAEA,SACE,gBACA,2CAEA,aACE,iCAIJ,aACE,cACA,cZtxCiB,gBYwxCjB,qBACA,eACA,mBAIJ,YACE,0BAGF,UACE,iBACA,kBACA,kBAGF,iBE3yCE,iCACA,wBACA,4BACA,kBF0yCA,yBAEA,oBACE,sBACA,iBACA,4BAGF,iBErzCA,iCACA,wBACA,4BACA,kBFozCE,gBACA,kBACA,gCAEA,UACE,kBACA,sBACA,mCAGF,aACE,kBACA,QACA,SACA,+BACA,WZt0CE,6BYw0CF,gBACA,eACA,oBAKN,cACE,0BAGF,UACuB,sCE30CrB,+BF60CA,iBEt1CA,iCACA,wBACA,4BACA,WFq1CuB,sCE/0CvB,kCFk1CA,iBE31CA,iCACA,wBACA,4BACA,WF01CuB,sCEp1CvB,kBFs1CE,SACA,QACA,UACA,wBAIJ,WACE,aACA,mBACA,sBAGF,YACE,6BACA,cZx1CgB,6BY21ChB,eACE,CAII,kMADF,eACE,wBAKN,eACE,cACA,0BACA,yFAEA,oBAGE,sBAKN,4BACE,gCACA,iBACA,gBACA,cACA,aACA,+BAGF,YACE,4CAEA,qBACE,oFAIA,QACE,WACA,uDAGF,WACE,iBACA,gBACA,WACA,4BAKN,YACE,cACA,iBACA,kBACA,2BAGF,oBACE,gBACA,cACA,+BACA,eACA,oCACA,kCAEA,+BACE,gCAGF,aACE,yBACA,eACA,cZ17CiB,kCY87CnB,aACE,eACA,gBACA,WZp8CI,CYy8CA,2NADF,eACE,oBAMR,iBACE,mDAEA,aACE,mBACA,gBACA,4BAIJ,UACE,kBACA,6JAGF,oBAME,4DAKA,UZz+CM,kBY++CN,UACE,iKAQF,yBACE,+BAIJ,aACE,gBACA,uBACA,0DAGF,aAEE,sCAGF,kBACE,gCAGF,aZzgDqB,cY2gDnB,iBACA,mBACA,gBACA,2EAEA,aAEE,uBACA,gBACA,uCAGF,cACE,WZ3hDI,kCYgiDR,UACE,kBACA,iBAGF,WACE,UACA,kBACA,SACA,WACA,iBAGF,UACE,kBACA,OACA,MACA,YACA,eACA,CZ7hDgB,gHYuiDhB,aZviDgB,wBY2iDhB,UACE,wCAGF,kBZtjDsB,WAfhB,8CYykDJ,kBACE,qBACA,wBAKN,oBACE,gBACA,eACA,cZhlDmB,eYklDnB,iBACA,kBACA,4BAEA,aZvkDmB,6BY2kDnB,cACE,gBACA,uBACA,uCAIJ,UACE,kBACA,CLjmDU,mEKwmDZ,aLxmDY,uBK4mDZ,aL7mDc,4DKmnDV,4CACE,CADF,oCACE,8DAKF,6CACE,CADF,qCACE,6BAKN,aACE,gBACA,qBACA,mCAEA,UZxoDM,0BY0oDJ,8BAIJ,WACE,eAGF,aACE,eACA,gBACA,uBACA,mBACA,qBAGF,eACE,wBAGF,cACE,+DAKA,yBACE,eAIJ,iBACE,WACA,YACA,aACA,mBACA,uBACA,sBACA,6CAEA,cL9nD4B,eAEC,0DK+nD3B,sBACA,CADA,gCACA,CADA,kBACA,4BAGF,iBACE,qEAGF,YACE,iBAIJ,iBACE,WACA,YACA,aACA,mBACA,uBACA,qBAEA,cLtpD4B,eAEC,WKupD3B,YACA,sBACA,CADA,gCACA,CADA,kBACA,iBAIJ,YACE,aACA,mBACA,cACA,eACA,cZrtDmB,wBYwtDnB,aZxtDmB,mBY4tDnB,aACE,4BAGF,oBACE,0CAGF,iBACE,6DAEA,iBACE,oBACA,qCACA,UACA,4EAGF,mBACE,gCACA,UACA,0BAKN,aACE,gBACA,iBACA,gBACA,gBACA,kCAGF,aACE,gBACA,gBACA,uBACA,+BAGF,aACE,qBACA,WAGF,oBACE,oBAGF,YACE,kBACA,2BAGF,+BACE,mBACA,SACA,gBAGF,kBZzxDqB,cY2xDnB,kBACA,uCACA,aACA,mBAEA,eACE,qBAGF,yBACE,oBAGF,yBACE,uBAGF,sBACE,sBAGF,sBACE,uBAIJ,iBACE,QACA,SACA,2BACA,4BAEA,UACE,gBACA,2BACA,0BZ9zDiB,2BYk0DnB,WACE,iBACA,uBACA,yBZr0DiB,8BYy0DnB,QACE,iBACA,uBACA,4BZ50DiB,6BYg1DnB,SACE,gBACA,2BACA,2BZn1DiB,wBYy1DnB,cACE,iBACA,cACA,iBACA,sBACA,qBACA,mBZ/1DiB,WAHb,gBYq2DJ,uBACA,mBACA,yFAEA,kBZv1DiB,cAfA,UY22Df,sCAKN,aACE,iBACA,gBACA,QACA,gBACA,aACA,yCAEA,eACE,mBZz3DiB,cY23DjB,kBACA,mCACA,gBACA,kBACA,sDAGF,OACE,wDAIA,UACE,8CAIJ,cACE,iBACA,cACA,iBACA,sBACA,qBACA,mBZl5DiB,WAHb,gBYw5DJ,uBACA,mBACA,oDAEA,SACE,oDAGF,kBZ94DiB,cAfA,iBYo6DrB,qBACE,eAGF,YACE,cACA,mBACA,2BACA,gBACA,kBACA,4BAEA,iBACE,uBAGF,YACE,uBACA,WACA,YACA,iBACA,6BAEA,WACE,gBACA,oBACA,aACA,yBACA,gBACA,oCAEA,0BACE,oCAGF,cACE,YACA,oBACA,YACA,6BAIJ,qBACE,WACA,gBACA,cACA,aACA,sBACA,qCAEA,4BARF,cASI,qBAMR,kBACE,wBACA,CADA,eACA,MACA,UACA,cACA,qCAEA,mBAPF,gBAQI,+BAGF,eACE,qCAEA,6BAHF,kBAII,gKAMJ,WAIE,mCAIJ,YACE,mBACA,uBACA,YACA,SAGF,WACE,kBACA,sBACA,aACA,sBACA,qBAEA,kBZvgEwB,8BYygEtB,+BACA,KAIJ,aACE,CACA,qBACA,WACA,YACA,aAJA,YAYA,CARA,QAGF,WACE,sBACA,CACA,qBACA,kBACA,cAGF,aACE,cACA,sBACA,cZniEmB,qBYqiEnB,kBACA,eACA,oCACA,iBAGF,aAEE,gBACA,qCAGF,cACE,SACE,iBAGF,aAEE,CAEA,gBACA,yCAEA,iBACE,uCAGF,kBACE,qDAKF,gBAEE,kBACA,YAKN,qBACE,aACA,mBACA,cACA,gBACA,iBAGF,aACE,cACA,CACA,sBACA,WZ9lEM,qBYgmEN,kBACA,eACA,gBACA,gCACA,2BACA,mDACA,qBAEA,eACE,eACA,qCAMA,mEAHF,kBAII,4BACA,yBAIJ,+BACE,cZrmEiB,sBYymEnB,eACE,aACA,qCAIJ,qBAEI,cACE,wBAKN,qBACE,WACA,YACA,cACA,6DAEA,UAEE,YACA,UACA,wCAGF,YACE,cACA,kDACA,qCAEA,uCALF,aAMI,yCAIJ,eACE,oCAGF,YACE,uDAGF,cACE,sCAGF,gBACE,eACA,CACA,2BACA,yCAGF,QACE,mCAGF,gBACE,yBAEA,kCAHF,eAII,sCAIJ,sBACE,gBACA,sCAGF,uCACE,YACE,iKAEA,eAGE,6CAIJ,gBACE,2EAGF,YAEE,kGAGF,gBACE,+BAGF,2BACE,gBACA,uCAEA,SACE,SACA,wCAGF,eACE,wCAGF,gBACE,iBACA,qDAGF,UACE,gLAGF,eAIE,gCAIJ,iBACE,6CAEA,cACE,8CAKF,gBACE,iBACA,6DAGF,UACE,CAIA,yFAGF,eACE,8DAGF,gBACE,kBACA,0BAMR,cACE,aACA,uBACA,mBACA,gBACA,iBACA,iBACA,gBACA,mBACA,WLpyEM,kBKsyEN,eACA,iBACA,qBACA,sCACA,4FAEA,kBAGE,qCAIJ,UACE,UACE,uDAGF,kCACE,4DAGF,kBAGE,yBAGF,aACE,iBAGF,eAEE,sCAIJ,2CACE,YACE,sCAOA,sEAGF,YACE,uCAIJ,0CACE,YACE,uCAIJ,UACE,YACE,mBAIJ,iBACE,yBAEA,iBACE,SACA,UACA,mBZ91EiB,yBYg2EjB,gBACA,kBACA,eACA,gBACA,iBACA,WZv3EI,mDY43ER,oBACE,gBAGF,WACE,gBACA,aACA,sBACA,yBACA,kBACA,gCAEA,gBACE,oBACA,cACA,gBACA,6BAGF,sBACE,8BAGF,MACE,kBACA,aACA,sBACA,iBACA,oBACA,oBACA,mDAGF,eACE,sBL75EI,0BK+5EJ,cACA,gDAGF,iBACE,gDAGF,WACE,mBAIJ,eACE,mBACA,yBACA,gBACA,aACA,sBACA,qBAEA,aACE,sBAGF,aACE,SACA,CACA,4BACA,cACA,qDAHA,sBAOA,gBAMF,WACA,kBAGA,+BANF,qBACE,UACA,CAEA,eACA,aAiBA,CAhBA,eAGF,iBACE,MACA,OACA,mBACA,CAGA,qBACA,CACA,eACA,WACA,YACA,kBACA,uBAEA,kBZz9EwB,0BY89E1B,u1BACE,OACA,gBACA,aACA,8BAEA,aACE,sBACA,CADA,4DACA,CADA,kBACA,+BACA,CADA,2BACA,UACA,YACA,oBACA,eACA,yBACA,CADA,qBACA,CADA,oBACA,CADA,gBACA,sCAGF,yBAjBF,aAkBI,iBAIJ,kBACE,eACA,gBACA,iBAGF,aACE,eACA,mBACA,mBACA,aACA,mBACA,kBACA,mBAEA,iCACE,yBAEA,kBACE,mCACA,aAKN,iBACE,kBACA,cACA,iCACA,mCAEA,eACE,yBAGF,YAVF,cAWI,oBAGF,YACE,sBACA,qBAGF,aACE,kBACA,iBACA,yBAKF,uBADF,YAEI,sBAIJ,qBACE,WACA,mBACA,cZniFmB,eYqiFnB,cACA,eACA,oBACA,SACA,iBACA,aACA,SACA,UACA,UACA,2BAEA,yBACE,6BAIJ,kBACE,SACA,oBACA,cZxjFmB,eY0jFnB,mBACA,eACA,kBACA,UACA,mCAEA,yBACE,wCAGF,kBACE,2BAIJ,oBACE,iBACA,2BAGF,iBACE,kCAGF,cACE,cACA,eACA,aACA,kBACA,QACA,UACA,eAGF,oBACE,kBACA,eACA,6BACA,SACA,UACA,yBACA,CADA,qBACA,CADA,oBACA,CADA,gBACA,gDACA,wCACA,iCAGF,QACE,mBACA,WACA,YACA,gBACA,UACA,kBACA,UACA,yBAGF,kBACE,WACA,wBACA,qBAGF,UACE,YACA,UACA,mBACA,yBZ1oFwB,qCY4oFxB,sEAGF,wBACE,4CAGF,wBZtoFqB,+EY0oFrB,wBACE,2BAGF,iBACE,WACA,YACA,MACA,SACA,gBACA,mBACA,cACA,SACA,UACA,6BACA,CAKA,uEAFF,SACE,6BAeA,CAdA,sBAGF,iBACE,WACA,YACA,MACA,SACA,gBACA,mBACA,cACA,WAGA,8CAGF,SACE,qBAGF,iBACE,QACA,SACA,WACA,YACA,yBACA,kBACA,sBACA,sBACA,yBACA,sCACA,4CAGF,SACE,qBZlsFmB,cYssFrB,kBACE,WZztFM,cY2tFN,eACA,aACA,qBACA,2DAEA,kBAGE,oBAGF,SACE,2BAGF,sBACE,cZxuFiB,kGY2uFjB,sBAGE,WZjvFE,kCYqvFJ,aZnuFiB,oBYyuFrB,oBACE,iBACA,qBAGF,oBACE,kBACA,CACA,gBACA,CZ/vFwB,eYkwFxB,iBACA,wCANA,cACA,CACA,eACA,mBAaA,CAVA,mBZnwFwB,aAiBR,iBYwvFhB,CAEA,wBACA,eACA,yDAGF,kBZhxF0B,cYsxF1B,aACE,kBAGF,aZzwFkB,cY2wFhB,8BACA,+BACA,4EAEA,0BAGE,CAHF,uBAGE,CAHF,kBAGE,kDAMA,sBACA,YACA,wDAEA,kBACE,8DAGF,cACE,sDAGF,cACE,0DAEA,aZvyFY,0BYyyFV,sDAIJ,oBACE,cZj0Fe,sMYo0Ff,yBAGE,oDAKN,aZzzFgB,0BY+zFhB,aACE,UACA,mCACA,CADA,0BACA,gBACA,6BAEA,cACE,yBACA,cZ11Fe,aY41Ff,gBACA,gCACA,sCAGF,oDACE,YACE,uCAIJ,oDACE,YACE,uCAIJ,yBA3BF,YA4BI,yCAGF,eACE,aACA,iDAEA,aZr3Fe,qBY43FrB,eACE,gBACA,2BAEA,iBACE,aACA,wBAGF,kBACE,yBAGF,oBACE,gBACA,yBACA,yBACA,eAIJ,aACE,sBACA,WACA,SACA,WZx5FM,gBOCA,aK05FN,oBACA,eACA,gBACA,SACA,UACA,kBACA,qBAEA,SACE,qCAGF,cAnBF,cAoBI,oDAIJ,uBACE,YACA,6CACA,uBACA,sBACA,WACA,0DAEA,sBACE,0DAKJ,uBACE,2BACA,gDAGF,aZx6FsB,6BY06FpB,uDAGF,aZl7FqB,cYs7FrB,YACE,eACA,yBACA,kBACA,cZt7FgB,gBYw7FhB,qBACA,gBACA,uBAEA,QACE,OACA,kBACA,QACA,MAIA,iDAHA,YACA,uBACA,mBAUE,CATF,0BAEA,yBACE,kBACA,iBACA,cAIA,sDAGF,cAEE,cZr+Fe,uBYu+Ff,SACA,cACA,qBACA,eACA,iBACA,sMAEA,UZj/FE,yBYw/FJ,cACE,kBACA,YACA,eAKN,cACE,qBAEA,kBACE,oBAIJ,cACE,cACA,qBACA,WACA,YACA,SACA,2BAIA,UACE,YACA,qBAIJ,aACE,gBACA,kBACA,cZxhGmB,gBY0hGnB,uBACA,mBACA,qBACA,uBAGF,aACE,gBACA,2BACA,2BAGF,aZtiGqB,oBY0iGrB,aACE,eACA,eACA,gBACA,uBACA,mBACA,qBAGF,cACE,mBACA,kBACA,yBAEA,cACE,kBACA,yBACA,QACA,SACA,+BACA,yBAIJ,aACE,6CAEA,UACE,mDAGF,yBACE,6CAGF,mBACE,sBAIJ,oBACE,kCAEA,QACE,4CAIA,oBACA,0CAGF,kBACE,0CAGF,aACE,6BAIJ,wBACE,2BAGF,yBACE,cACA,SACA,WACA,YACA,oBACA,CADA,8BACA,CADA,gBACA,sBACA,wBACA,YAGF,aACE,cZpmGgB,6BYsmGhB,SACA,kBACA,kBACA,oBACA,SACA,aACA,sBACA,WACA,WACA,qBACA,kBAEA,kBACE,WAIJ,+BACE,yBAGF,iBACE,eACA,gBACA,cZ9nGgB,mBAjBQ,eYkpGxB,aACA,cACA,sBACA,mBACA,uBACA,aACA,qEAGE,aAEE,WACA,aACA,SACA,yCAIJ,gBACE,gCAGF,eACE,uCAEA,aACE,mBACA,cZ5pGY,qCYgqGd,cACE,gBACA,yBAKN,iBACE,cACA,UACA,gCAEA,sCACE,uCAEA,aACE,WACA,kBACA,aACA,OACA,QACA,cACA,UACA,oBACA,YACA,UACA,kFACA,wCAIJ,SACE,kBACA,gBAIJ,YACE,eACA,mBACA,cACA,eACA,kBACA,UACA,UACA,gBACA,2BACA,4BACA,uBAEA,QACE,SACA,yBACA,cACA,uBACA,aACA,gBACA,uBACA,gBACA,mBACA,OACA,4CAGF,aZpuGmB,4CYyuGjB,aZzuGiB,yCY2uGf,4CAIJ,SAEE,yBAIJ,WACE,aACA,uBAGF,kBACE,iCAGF,iBACE,wBAGF,kBACE,SACA,cZnxGmB,eYqxGnB,eACA,eACA,8BAEA,aACE,CAKA,kEAEA,UZpyGI,mBYsyGF,6BAKN,eACE,gBACA,gBACA,cZ3yGmB,0DY6yGnB,UACA,UACA,kBACA,uCAEA,YACE,WACA,uCAGF,iBACE,gCAGF,QACE,uBACA,SACA,6BACA,cACA,mCAIJ,kBACE,aACA,mCAIA,aZ10GmB,0BY40GjB,gCAIJ,WACE,4DAEA,cACE,uEAEA,eACE,WAKN,oBACE,UACA,oBACA,kBACA,cACA,SACA,uBACA,eACA,sBAGF,oBACE,iBACA,oBAGF,aZz1GkB,eY21GhB,gBACA,yBACA,iBACA,kBACA,QACA,SACA,+BACA,yBAEA,aACE,WACA,CACA,0BACA,oBACA,mBACA,4BAIJ,iBACE,QACA,SACA,+BACA,WACA,YACA,sBACA,6BACA,CACA,wBACA,kBACA,2CAGF,2EACE,CADF,mEACE,8CAGF,4EACE,CADF,oEACE,qCAGF,GACE,sBACE,KAGF,2BACE,KAGF,2BACE,KAGF,yBACE,IAGF,wBACE,EArBF,4BAGF,GACE,sBACE,KAGF,2BACE,KAGF,2BACE,KAGF,yBACE,IAGF,wBACE,uCAIJ,GACE,wBACE,KAGF,0BACE,KAGF,2BACE,KAGF,uBACE,IAGF,sBACE,EAtBA,6BAIJ,GACE,wBACE,KAGF,0BACE,KAGF,2BACE,KAGF,uBACE,IAGF,sBACE,mCAIJ,GACE,OACE,SACA,yBACA,KAGF,wBACE,KAGF,UACE,YACA,6BACA,kBACA,UACA,IAGF,UACE,YACA,eACA,UACA,6BACA,EA5BA,yBAIJ,GACE,OACE,SACA,yBACA,KAGF,wBACE,KAGF,UACE,YACA,6BACA,kBACA,UACA,IAGF,UACE,YACA,eACA,UACA,6BACA,kCAIJ,GACE,gBACA,aACA,aAPE,wBAIJ,GACE,gBACA,aACA,gCAGF,kBACE,gBZx+GM,WADA,eY4+GN,aACA,sBACA,YACA,uBACA,eACA,kBACA,kBACA,YACA,gBAGF,eZt/GQ,cAEa,SYu/GnB,UACA,WACA,YACA,kBACA,wBACA,CADA,oBACA,CADA,eACA,iEAEA,SAGE,cACA,yBAIJ,aACE,eACA,yBAGF,aACE,eACA,gBACA,iBAGF,KACE,OACA,WACA,YACA,kBACA,YACA,2BAEA,aACE,SACA,QACA,WACA,YACA,6BAGF,mBACE,yBAGF,YACE,0BAGF,aACE,uBACA,WACA,YACA,SACA,iCAEA,oBACE,8BACA,kBACA,iBACA,WZvjHE,gBYyjHF,eACA,+LAMA,6BACE,mEAKF,6BACE,6BAMR,kBACE,iBAGF,kBACE,6BACA,gCACA,aACA,mBACA,eACA,kDAGF,aAEE,kBACA,yBAGF,kBACE,aACA,2BAGF,aZlmHqB,eYomHnB,cACA,gBACA,mBACA,kDAIA,kBACE,oDAIA,SEtmHF,sBACA,WACA,SACA,gBACA,oBACA,mBdbwB,cAFL,eckBnB,SACA,+EFgmHI,aACE,CEjmHN,qEFgmHI,aACE,CEjmHN,yEFgmHI,aACE,CEjmHN,gEFgmHI,aACE,sEAGF,QACE,yLAGF,mBAGE,0DAGF,kBACE,qCAGF,mDArBF,cAsBI,yDAIJ,aZvnHc,iBYynHZ,eACA,4DAGF,gBACE,wDAGF,kBACE,gEAEA,cACE,iNAEA,kBAGE,cACA,gHAKN,aZnqHiB,0HYwqHjB,cAEE,gBACA,cZxpHY,kZY2pHZ,aAGE,gEAIJ,wBACE,iDAGF,eL3rHI,kBO0BN,CAEA,eACA,cdHiB,uCcKjB,UF8pHI,mBZ3rHe,oDc+BnB,wBACE,cdRe,ecUf,gBACA,mBACA,oDAGF,aACE,oDAGF,kBACE,oDAGF,eACE,WdnDI,sDYksHJ,WACE,mDAGF,UZtsHI,kBYwsHF,eACA,8HAEA,kBAEE,iCAON,kBACE,mBAIJ,UZztHQ,kBY2tHN,cACA,mBACA,sBZ5tHM,yBY8tHN,eACA,gBACA,YACA,kBACA,WACA,yBAEA,SACE,iBAIJ,aACE,iBACA,wBAGF,aZ7uHqB,qBY+uHnB,mBACA,gBACA,sBACA,6EAGF,aZluHkB,mBAjBQ,kBYwvHxB,aACA,eACA,gBACA,eACA,aACA,cACA,mBACA,uBACA,yBAEA,4EAfF,cAgBI,6FAGF,eACE,mFAGF,aZ7vHmB,qBY+vHjB,qGAEA,yBACE,uCAKN,kBACE,aACA,eAGF,qBACE,8BAGF,GACE,kBACE,2CACA,CADA,kCACA,KAGF,oBACE,0CACA,CADA,iCACA,KAGF,oBACE,2CACA,CADA,kCACA,KAGF,oBACE,0CACA,CADA,iCACA,KAGF,kBACE,2CACA,CADA,kCACA,EA1BF,qBAGF,GACE,kBACE,2CACA,CADA,kCACA,KAGF,oBACE,0CACA,CADA,iCACA,KAGF,oBACE,2CACA,CADA,kCACA,KAGF,oBACE,0CACA,CADA,iCACA,KAGF,kBACE,2CACA,CADA,kCACA,mCAIJ,8BACE,2DACA,CADA,kDACA,iCAGF,MACE,sBAEE,0BACA,KAGF,sBACE,aAGF,uBAGE,aAGF,sBAGE,KAGF,uBACE,KAGF,sBACE,EA/BF,wBAGF,MACE,sBAEE,0BACA,KAGF,sBACE,aAGF,uBAGE,aAGF,sBAGE,KAGF,uBACE,KAGF,sBACE,kCAIJ,yBACE,8EACA,CADA,qEACA,8BAGF,eLt2HQ,kBKw2HN,sCACA,kBACA,eACA,UACA,iDAEA,2BACE,2DAGF,UACE,mCAIJ,iBACE,SACA,WACA,eACA,yCAGF,iBACE,UACA,SACA,UACA,gBLl4HM,kBKo4HN,sCACA,gBACA,gDAEA,aACE,eACA,SACA,gBACA,uBACA,iKAEA,4BAGE,2DAIJ,WACE,wBAKF,2BACE,cAIJ,kBACE,8BACA,aACA,YACA,uBACA,OACA,UACA,kBACA,MACA,kBACA,WACA,aACA,gBAEA,mBACE,oBAIJ,WACE,aACA,aACA,sBACA,kBACA,YACA,0BAGF,iBACE,MACA,QACA,SACA,OACA,WACA,kBACA,mBZh8HwB,kCYk8HxB,uBAGF,MACE,aACA,mBACA,uBACA,cZ38HmB,eY68HnB,gBACA,0BACA,kBACA,kBAGF,YACE,cZp9HmB,gBYs9HnB,aACA,sBAEA,cACE,kBACA,uBAGF,cACE,yBACA,gBACA,cACA,0BAIJ,aACE,4BAGF,UACE,WACA,kBACA,mBZj+HsB,kBYm+HtB,eACA,2BAGF,iBACE,OACA,MACA,WACA,mBZx+HmB,kBY0+HnB,eAGF,aACE,wBACA,UACA,eACA,0CAEA,mBAEE,mBAGF,8BACE,CADF,sBACE,WACA,cACA,SACA,WACA,YACA,CAQE,6GAKN,SACE,oBACA,CADA,WACA,6BAGF,iBACE,gBLliIM,uCKoiIN,kBACA,iBACA,gBACA,iCAEA,yBACE,oCAGF,sBACE,2BAIJ,UZnjIQ,aYqjIN,eACA,aACA,kEAEA,kBZviImB,WAlBb,UY6jIJ,CZ7jII,4RYkkIF,UZlkIE,wCYwkIN,kBACE,iCAIJ,YACE,mBACA,uBACA,kBACA,oCAGF,aACE,cZllImB,2CYqlInB,eACE,cACA,WZ1lII,CY+lIA,wQADF,eACE,mDAON,eLrmIM,0BKumIJ,qCACA,gEAEA,eACE,0DAGF,kBZ7lIiB,uEYgmIf,UZlnIE,uDYwnIN,yBACE,sDAGF,aACE,sCACA,SAIJ,iBACE,gBAGF,SEznIE,sBACA,WACA,SACA,gBACA,oBACA,mBdbwB,cAFL,eckBnB,SACA,cFmnIA,CACA,2BACA,iBACA,eACA,2CAEA,aACE,CAHF,iCAEA,aACE,CAHF,qCAEA,aACE,CAHF,4BAEA,aACE,kCAGF,QACE,6EAGF,mBAGE,sBAGF,kBACE,qCAGF,eA3BF,cA4BI,kCAKF,QACE,qDAGF,mBAEE,mBAGF,iBACE,SACA,WACA,UACA,qBACA,UACA,0BACA,sCACA,eACA,WACA,YACA,cZxrIiB,eY0rIjB,oBACA,0BAEA,mBACE,WACA,0BAIJ,uBACE,iCAEA,mBACE,uBACA,gCAIJ,QACE,uBACA,cZ1rIkB,eY4rIlB,uCAEA,uBACE,sCAGF,aACE,yBAKN,aZzsIkB,mBY2sIhB,aACA,gBACA,eACA,eACA,6BAEA,oBACE,iBACA,0BAIJ,iBACE,6BAEA,kBACE,gCACA,eACA,aACA,aACA,gBACA,eACA,cZjuIc,iCYouId,oBACE,iBACA,8FAIJ,eAEE,0BAIJ,aACE,aACA,cZrwImB,qBYuwInB,+FAEA,aAGE,0BACA,uBAIJ,YACE,cZlxImB,kBYoxInB,aAGF,iBACE,8BACA,oBACA,aACA,sBAGF,cACE,MACA,OACA,QACA,SACA,8BACA,wBAGF,cACE,MACA,OACA,WACA,YACA,aACA,sBACA,mBACA,uBACA,2BACA,aACA,oBACA,yBACA,CADA,qBACA,CADA,oBACA,CADA,gBACA,oBAGF,mBACE,aACA,aACA,yBAGF,eACE,iBACA,yBAGF,UACE,cAGF,UACE,YACA,kBACA,qCAEA,UACE,YACA,aACA,mBACA,uBACA,2CAEA,cLjyI0B,eAEC,CK2yI7B,8CALF,iBACE,MACA,OACA,QACA,SAYA,CAXA,yBAQA,mBACA,8BACA,oBACA,4BAEA,mBACE,0DAGF,SACE,4DAEA,mBACE,mBAKN,6BACE,sBACA,SACA,WZ93IM,eYg4IN,aACA,mBACA,eACA,cACA,cACA,kBACA,kBACA,MACA,SACA,yBAGF,MACE,0BAGF,OACE,CASA,4CANF,UACE,kBACA,kBACA,OACA,YACA,oBAUA,6BAEA,WACE,sBAGF,mBACE,qBACA,gBACA,cZz6IiB,mFY46IjB,yBAGE,wBAKN,oBACE,sBAGF,qBZ37IQ,YY67IN,WACA,kBACA,YACA,UACA,SACA,YACA,8BAGF,wBZp7IqB,qBYw7IrB,iBACE,UACA,QACA,YACA,6CAGF,kBZ98IqB,WAHb,kBYs9IN,gBACA,aACA,sBACA,oBAGF,WACE,WACA,gBACA,iBACA,kBACA,wBAEA,iBACE,MACA,OACA,WACA,YACA,sBACA,aACA,aACA,CAGA,YACA,UACA,yBACA,CADA,qBACA,CADA,oBACA,CADA,gBACA,2CANA,qBACA,mBACA,uBAaF,CATE,mBAIJ,YACE,CAGA,iBACA,mDAGF,aAEE,mBACA,aACA,aACA,2DAEA,cACE,uLAGF,aZrgJmB,SYwgJjB,eACA,gBACA,kBACA,oBACA,YACA,aACA,kBACA,6BACA,+mBAEA,aAGE,yBACA,CZzhJE,wyEYgiJF,UAGE,sBAMR,sBACE,eAGF,iBACE,eACA,mBACA,sBAEA,eACE,WZnjJI,kBYqjJJ,yBACA,eACA,qBAGF,kBZrjJwB,cAFL,gBY0jJjB,aACA,kBACA,kBAIJ,oBACE,eACA,gBACA,iBACA,wFAGF,kBAME,WZhlJM,kBYklJN,gBACA,eACA,YACA,kBACA,sBACA,4NAEA,aACE,eACA,mBACA,wLAGF,WACE,UACA,kBACA,SACA,WACA,kRAGF,aACE,wBAKF,eL5mJM,CPEa,gBY6mJjB,oBACA,iELhnJI,2BPEa,yBYsnJrB,iBACE,aACA,iCAEA,wBACE,CADF,qBACE,CADF,oBACE,CADF,gBACE,gBACA,2GAIJ,YAIE,8BACA,mBZroJmB,aYuoJnB,iBACA,2HAEA,aACE,iBACA,cZ5oJiB,mBY8oJjB,2IAGF,aACE,6BAIJ,cACE,2BAGF,WACE,eACA,0BAGF,gBAEE,sDAGF,qBAEE,eAGF,UACE,gBACA,0BAGF,YACE,6BACA,qCAEA,yBAJF,cAKI,gBACA,iDAIJ,qBAEE,UACA,qCAEA,+CALF,UAMI,sDAIJ,aAEE,gBACA,gBACA,gBACA,kBACA,2FAEA,aZ3rJmB,iLY+rJnB,UZjtJM,qCYstJN,oDAjBF,eAkBI,sCAKF,4BADF,eAEI,yBAIJ,YACE,+BACA,gBACA,0BAEA,cACE,iBACA,mBACA,sCAGF,aACE,sBACA,WACA,CACA,UZhvJI,gBOCA,aKkvJJ,oBACA,eACA,YACA,CACA,SACA,kBACA,yBACA,iBACA,gBACA,gBACA,4CAEA,wBACE,+CAGF,eLlwJI,yBKowJF,mBACA,kBACA,6DAEA,QACE,gBACA,gBACA,mEAEA,QACE,0DAIJ,UZnxJE,oBYqxJA,eACA,gBLrxJA,+CK0xJJ,YACE,8BACA,mBACA,4CAIJ,aACE,WZnyJI,eYqyJJ,gBACA,mBACA,wCAGF,eACE,mBACA,+CAEA,UZ9yJI,eYgzJF,qCAIJ,uBAnFF,YAoFI,eACA,QACA,wCAEA,iBACE,iBAKN,eACE,eACA,wBAEA,eACE,iBACA,2CAGF,eACE,mBAGF,eACE,cACA,gBACA,+BAEA,4BACE,4BAGF,QACE,oCAIA,UZ11JE,aY41JA,kBACA,eACA,mBACA,qBACA,8EAEA,eAEE,yWAOA,kBZz1JW,WAlBb,uDYk3JA,iBACE,oMAUR,aACE,iIAIJ,4BAIE,cZn4JmB,eYq4JnB,gBACA,6cAEA,aAGE,6BACA,qGAIJ,YAIE,eACA,iIAEA,eACE,CAII,w1BADF,eACE,sDAMR,iBAEE,oDAKA,eACE,0DAGF,eACE,mBACA,aACA,mBACA,wEAEA,UZt7JI,CYw7JF,gBACA,uBAKN,YACE,2CAEA,QACE,WACA,cAIJ,wBZr7JqB,WYu7JnB,kBACA,MACA,OACA,aACA,6BAGF,aACE,kBACA,WZl9JM,8BYo9JN,WACA,SACA,gBACA,kBACA,eACA,gBACA,UACA,oBACA,WACA,4BACA,iBACA,wDAKE,SACE,uBAKN,eACE,6BAEA,UACE,kBAIJ,YACE,eACA,yBACA,kBACA,gBACA,gBACA,wBAEA,aACE,cZr+Jc,iBYu+Jd,eACA,+BACA,aACA,sBACA,mBACA,uBACA,eACA,4BAEA,aACE,wBAIJ,eACE,CACA,qBACA,aACA,sBACA,uBACA,2BAEA,aACE,cACA,0BAGF,oBACE,cZngKY,gBYqgKZ,gCAEA,yBACE,0BAKN,QACE,eACA,iDAEA,SACE,cACA,8BAGF,aZthKc,gBY8hKhB,cACA,CACA,iBACA,CACA,UACA,qCANF,qBACE,CACA,eACA,CACA,iBAYA,CAVA,qBAGF,QACE,CACA,aACA,WACA,CACA,iBAEA,qEAGE,cACE,MACA,gCAKN,cACE,cACA,qBACA,cZ7kKmB,kBY+kKnB,UACA,mEAEA,WAEE,WACA,CAIA,2DADF,mBACE,CADF,8BACE,CADF,gBZ1lKM,CY2lKJ,wBAIJ,UACE,YACA,CACA,iBACA,MACA,OACA,UACA,gBZtmKM,iCYymKN,YACE,sBAIJ,WACE,gBACA,kBACA,WACA,qCAGF,cACE,YACA,oBACA,CADA,8BACA,CADA,gBACA,kBACA,QACA,2BACA,WACA,UACA,sCAGF,0BACE,2BACA,gBACA,kBACA,qKAMA,WAEE,mFAGF,WACE,eAKJ,qBACE,kBACA,mBACA,kBACA,oBACA,cACA,wBAEA,eACE,YACA,yBAGF,cACE,kBACA,gBACA,gCAEA,UACE,cACA,kBACA,6BACA,WACA,SACA,OACA,oBACA,qCAIJ,oCACE,iCAGF,wBACE,uCAIA,mBACA,mBACA,6BACA,0BACA,eAIJ,eACE,kBACA,gBLvsKM,eKysKN,kBACA,sBACA,cACA,wBAEA,eACE,sBACA,qBAGF,SACE,qBAGF,eACE,gBACA,UACA,0BAGF,oBACE,sBACA,SACA,gCAEA,wBACE,0BACA,qBACA,sBACA,UACA,4BAKF,qBACE,CADF,gCACE,CADF,kBACE,kBACA,QACA,2BACA,yBAIJ,iBACE,UACA,SACA,OACA,QACA,sBACA,iFACA,eACA,UACA,4BACA,gCAEA,SACE,6EAKF,iBAEE,wBAIJ,YACE,kBACA,MACA,OACA,WACA,YACA,UACA,SACA,gBZnxKI,cAEa,gBYoxKjB,oBACA,+BAEA,aACE,oBACA,8GAEA,aAGE,+BAIJ,aACE,eACA,kCAGF,aACE,eACA,gBACA,4BAIJ,YACE,8BACA,oBACA,0DAEA,aACE,wBAIJ,cACE,mBACA,gBACA,uBACA,oCAGE,cACE,qCAKF,eACE,+BAIJ,sBACE,iBACA,eACA,SACA,0BACA,8GAEA,ULn1KE,+EK21KN,cAGE,gBACA,6BAGF,ULl2KM,iBKo2KJ,yBAGF,oBACE,aACA,mDAGF,UL52KM,uBKi3KN,cACE,YACA,eACA,8BAEA,UACE,WACA,+BAOA,6DANA,iBACA,cACA,kBACA,WACA,UACA,YAWA,CAVA,+BASA,kBACA,+BAGF,iBACE,UACA,kBACA,WACA,YACA,YACA,UACA,4BACA,mBACA,sCACA,oBACA,qBAIJ,gBACE,uBAEA,oBACE,eACA,gBACA,WLj6KE,sFKo6KF,yBAGE,qBAKN,cACE,YACA,kBACA,4BAEA,UACE,WACA,+BACA,kBACA,cACA,kBACA,WACA,SACA,2DAGF,aAEE,kBACA,WACA,kBACA,SACA,mBACA,6BAGF,6BACE,6BAGF,iBACE,UACA,UACA,kBACA,WACA,YACA,QACA,iBACA,4BACA,mBACA,sCACA,oBACA,CAGE,yFAKF,SACE,6GAQF,gBACE,oBACA,kBAON,UACE,cACA,+BACA,0BAEA,UACE,qCAGF,iBATF,QAUI,mBAIJ,qBACE,mBACA,uBAEA,YACE,kBACA,gBACA,gBACA,2BAEA,aACE,WACA,YACA,SACA,oBACA,CADA,8BACA,CADA,gBACA,uBAIJ,YACE,mBACA,mBACA,aACA,6BAEA,aACE,aACA,mBACA,qBACA,gBACA,qCAGF,UACE,eACA,cACA,+BAGF,aACE,WACA,YACA,gBACA,mCAEA,UACE,YACA,cACA,SACA,kBACA,mBACA,oBACA,CADA,8BACA,CADA,gBACA,qCAIJ,gBACE,gBACA,4CAEA,cACE,WZ5jLF,gBY8jLE,gBACA,uBACA,0CAGF,aACE,eACA,cZlkLW,gBYokLX,gBACA,uBACA,yBAKN,kBZzkLsB,aY2kLpB,mBACA,uBACA,gDAEA,YACE,cACA,eACA,mDAGF,qBACE,kBACA,gCACA,WACA,gBACA,mBACA,gBACA,uBACA,qDAEA,YACE,iEAEA,cACE,sDAIJ,YACE,6BAOV,YACE,eACA,gBACA,wBAGF,QACE,sBACA,cACA,kBACA,kBACA,gBACA,WACA,+BAEA,iBACE,QACA,SACA,+BACA,eACA,sDAIJ,kBAEE,gCACA,eACA,aACA,cACA,oEAEA,kBACE,SACA,SACA,6HAGF,aAEE,cACA,cZ1pLiB,eY4pLjB,eACA,gBACA,kBACA,qBACA,kBACA,WACA,mBACA,yJAEA,aZrqLiB,qWYwqLf,aAEE,WACA,kBACA,SACA,SACA,QACA,SACA,2BACA,CAEA,4CACA,CADA,kBACA,CADA,wBACA,iLAGF,WACE,6CACA,8GAKN,kBACE,gCACA,qSAKI,YACE,iSAGF,4CACE,cAOV,kBZ/sL0B,sBYktLxB,iBACE,4BAGF,aACE,eAIJ,cACE,kBACA,qBACA,cACA,iBACA,eACA,mBACA,gBACA,uBACA,eACA,oEAEA,YAEE,sBAGF,oBACE,kBACA,yBACA,sBACA,WACA,YACA,cACA,kBACA,SACA,kBACA,sBACA,8BAEA,oBACE,mBACA,2BAKN,eACE,gBAGF,eLxwLQ,kBO0BN,CACA,sBACA,gBACA,cdHiB,uCcKjB,mBAEA,wBACE,cdRe,ecUf,gBACA,mBACA,mBAGF,aACE,mBAGF,kBACE,mBAGF,eACE,WdnDI,UY6wLR,iBACE,cAEA,WACE,WACA,sCACA,CADA,6BACA,cAGF,cACE,iBACA,cZrxLiB,gBYuxLjB,gBAEA,aZ1wLiB,0BY4wLf,sBAEA,oBACE,4BAMR,GACE,cACA,eACA,WATM,mBAMR,GACE,cACA,eACA,qEAGF,kBAIE,sBAEE,8BACA,iBAGF,0BACE,kCACA,+BAIA,qDACE,uEACA,+CAGF,sBACE,8BACA,6DAIA,6BACE,6CACA,4EAIF,6BACE,6CACA,+CAOJ,gBAEE,+BAGF,gBACE,6CAEA,0BACE,wDAGF,eACE,6DAGF,iBACE,iBACA,2EAIA,mBACE,UACA,gCACA,WACA,0FAGF,mBACE,UACA,oCACA,eAOV,UACE,eACA,gBACA,iBAEA,YACE,gBACA,eACA,kBACA,sCAGF,YACE,4CAEA,kBACE,yDAGF,SACE,sBACA,cACA,WACA,SACA,aACA,gDACA,mBZn5LoB,WALlB,eY25LF,CACA,eACA,kBACA,2EAEA,QACE,wMAGF,mBAGE,+DAGF,kBACE,qCAGF,wDA7BF,cA8BI,4DAIJ,WACE,eACA,gBACA,SACA,kBACA,sBAMJ,sBACA,mBACA,6BACA,gCACA,+BAEA,iBACE,iBACA,cZh7Lc,CYm7Ld,eACA,eACA,oCAEA,aACE,gBACA,uBACA,oCAIJ,UACE,kBACA,uDAGF,iBACE,qDAGF,eACE,qBAKF,wBACA,aACA,2BACA,mBACA,mBACA,2BAEA,aACE,iCAEA,UACE,uCAEA,SACE,kCAKN,aACE,cACA,mBAIJ,cACE,kBACA,MACA,OACA,WACA,YACA,8BACA,cAGF,kBZjgM0B,sBYmgMxB,kBACA,uCACA,YACA,gBACA,qCAEA,aARF,SASI,kBAGF,cACE,mBACA,gBACA,eACA,kBACA,0BACA,6BAGF,WACE,6BAGF,yBACE,sCAEA,uBACE,uCACA,wBACA,wBAIJ,eACE,kDAIA,oBACE,+BAIJ,cACE,sBAGF,eACE,aAIJ,kBZvjM0B,sBYyjMxB,kBACA,uCACA,YACA,gBACA,qCAEA,YARF,SASI,uBAGF,kBACE,oBAGF,kBACE,YACA,0BACA,gBACA,mBAGF,YACE,gCACA,4BAGF,YACE,iCAGF,aACE,gBACA,qBACA,eACA,aACA,cAIJ,iBACE,YACA,gBACA,YACA,aACA,uBACA,mBACA,gBL5mMM,yDK+mMN,aAGE,gBACA,WACA,YACA,SACA,sBACA,CADA,gCACA,CADA,kBACA,gBLvnMI,uBK2nMN,iBACE,YACA,aACA,+BACA,iEACA,kBACA,wCACA,uBAGF,iBACE,WACA,YACA,MACA,OACA,uBAGF,iBACE,YACA,WACA,UACA,YACA,4BACA,6BAEA,UACE,8BAGF,UZzpMI,eY2pMF,gBACA,cACA,kBACA,2BAGF,iBACE,mCACA,qCAIJ,oCACE,eAEE,uBAGF,YACE,4BAKN,aZhrMqB,eYkrMnB,gBACA,gBACA,kBACA,qBACA,6BAEA,kBACE,wCAEA,eACE,6BAIJ,aACE,0BACA,mCAEA,oBACE,kBAKN,eACE,2BAEA,UACE,8FAEA,8BAEE,CAFF,sBAEE,wBAIJ,iBACE,SACA,UACA,yBAGF,eACE,aACA,kBACA,mBACA,6BAEA,mBACE,CADF,8BACE,CADF,gBACE,cACA,WACA,YACA,SACA,uBAIJ,iBACE,mBACA,YACA,gCACA,+BAEA,aACE,cACA,WACA,iBACA,gDAEA,kBACE,yBACA,wBAKN,YACE,uBACA,gBACA,iBACA,iCAEA,YACE,mBACA,iBACA,gBACA,8CAEA,wBACE,kBACA,uBACA,YACA,yCAGF,YACE,8BAIJ,WACE,4CAEA,kBACE,wCAGF,UACE,YACA,iCAGF,cACE,iBACA,WZvyMA,gBYyyMA,gBACA,mBACA,uBACA,uCAEA,aACE,eACA,cZ7yMW,gBY+yMX,gBACA,uBACA,gCAKN,aACE,uBAIJ,eACE,cACA,iDAGE,qBACA,WZp0ME,gDYw0MJ,QACE,6BACA,kDAEA,aACE,yEAGF,uBACE,4DAGF,aZ30MU,yBYi1Md,cACE,gCAEA,cACE,cZ31Me,eY61Mf,kCAEA,oBACE,cZh2Ma,qBYk2Mb,iBACA,gBACA,yCAEA,eACE,WZ12MF,iBYm3MN,aZ71MgB,mBY+1Md,gCACA,gBACA,aACA,eACA,eACA,qBAEA,oBACE,iBACA,eAIJ,YACE,mBACA,aACA,gCACA,0BAEA,eACE,qBAGF,aACE,cZv3MY,gBYy3MZ,uBACA,mBACA,4BAEA,eACE,uBAGF,aZp5Me,qBYs5Mb,eACA,gBACA,cACA,gBACA,uBACA,mBACA,qGAKE,yBACE,wBAMR,aACE,eACA,iBACA,gBACA,iBACA,mBACA,gBACA,cZ/6Me,0BYm7MjB,aACE,WACA,2CAEA,mCACE,yBACA,0CAGF,wBACE,eAMR,YACE,gCACA,CACA,iBACA,qBAEA,kBACE,UACA,uBAGF,aACE,CACA,sBACA,kBACA,eACA,uBAGF,oBACE,mBZx8MiB,kBY08MjB,cACA,eACA,wBACA,wBAGF,aACE,CACA,0BACA,gBACA,8BAEA,eACE,aACA,2BACA,8BACA,uCAGF,cACE,cZ7+Me,kBY++Mf,+BAGF,aZl/MiB,eYo/Mf,mBACA,gBACA,uBACA,kBACA,gBACA,YACA,iCAEA,UZ//ME,qBYigNA,oHAEA,yBAGE,0BAKN,qBACE,uBAIJ,kBACE,6BAEA,kBACE,oDAGF,eACE,6DAGF,UZ3hNI,gBYiiNR,kBACE,eACA,aACA,qBACA,0BAEA,WACE,cACA,qCAEA,yBAJF,YAKI,4BAIJ,wBACE,cACA,kBACA,qCAEA,0BALF,UAMI,uBAIJ,qBACE,WACA,aACA,kBACA,eACA,iBACA,qBACA,gBACA,gBACA,gBACA,aACA,sBACA,6BAEA,aACE,gBACA,mBACA,mBACA,8BAGF,iBACE,SACA,WACA,cACA,mBZjkNe,kBYmkNf,cACA,eACA,4BAIJ,YACE,cZzlNiB,kBY2lNjB,WACA,QACA,mDAIJ,YACE,oDAGF,UACE,gBAGF,YACE,eACA,mBACA,gBACA,iBACA,wBACA,sBAEA,aACE,mBACA,SACA,kBACA,WACA,eACA,yBACA,CADA,qBACA,CADA,oBACA,CADA,gBACA,cACA,aACA,mBACA,2BACA,2CACA,6BAEA,aACE,aACA,WACA,YACA,iCAEA,aACE,SACA,WACA,YACA,eACA,gBACA,sBACA,sBACA,CADA,gCACA,CADA,kBACA,6BAIJ,aACE,cACA,eACA,gBACA,kBACA,gBACA,cZvpNe,mFY2pNjB,kBAGE,4BACA,2CACA,wGAEA,aACE,6BAIJ,0BACE,2CACA,yBACA,yDAEA,aACE,uCAKN,UACE,oCAGF,WACE,8BAGF,aZ1rNmB,SY4rNjB,eACA,WACA,cACA,cACA,YACA,aACA,mBACA,WACA,2BACA,2CACA,2GAEA,SAGE,cACA,4BACA,2CACA,qCAKF,SACE,OGxtNN,eACE,eACA,UAEA,kBACE,kBACA,cAGF,iBACE,cACA,mBACA,WACA,aACA,sBAEA,kBfGiB,eeEnB,iBACE,aACA,cACA,iBACA,eACA,gBACA,qBAEA,oBACE,qBACA,yBACA,4BACA,oEAGF,YAEE,kCAGF,aACE,gCAGF,aACE,sBACA,WACA,eACA,WfhDE,UekDF,oBACA,gBRlDE,sBQoDF,kBACA,iBACA,sCAEA,oBfvCe,0Be4CjB,cACE,wBAGF,YACE,mBACA,iBACA,cAIJ,oBACE,kBACA,yBACA,sBACA,WACA,YACA,cACA,kBACA,SACA,kBACA,sBACA,gBACA,mBACA,cACA,uBAEA,iBACE,qBAGF,oBfpFY,8EeyFZ,oBAGE,iBACA,gCAGF,mBACE,SACA,wCAGF,mBAEE,eAIJ,oBACE,WACA,gBACA,cACA,cAGF,aACE,qBACA,oBAEA,cACE,eAIJ,eACE,mBACA,cfhHc,aeoHhB,cACE,uBACA,UACA,SACA,SACA,cfzHc,0Be2Hd,kBACA,mBAEA,oBACE,sCAGF,kCAEE,eAIJ,WACE,eACA,kBACA,eACA,6BAIJ,yBACE,gCAEA,YACE,2CAGF,yBACE,aACA,aACA,mBACA,mGAEA,YAEE,+GAEA,oBfrKe,sDe2KnB,cACE,gBACA,iBACA,YACA,oBACA,cf3KkB,sCe8KlB,gCAGF,YACE,mBACA,8CAEA,aACE,wBACA,iBACA,oCAIJ,uBACE,CADF,oBACE,CADF,eACE,sBACA,eACA,WftNI,qBewNJ,WACA,UACA,oBACA,qXACA,sBACA,kBACA,CACA,yBACA,mDAGF,UACE,cAIJ,aflNkB,qBeqNhB,+BACE,6BAEA,8BACE,eChPN,k1BACE,aACA,sBACA,aACA,UACA,yBAGF,YACE,OACA,sBACA,yBACA,2BAEA,MACE,iBACA,qCAIJ,gBACE,YACE,cCtBJ,cACE,qBACA,WjBDM,2BiBIN,qBAEE,iBACA,+BAGF,WACE,iBAIJ,sBACE,6BAEA,uBACE,2BACA,4BACA,mBjBlBiB,4BiBsBnB,oBACE,8BACA,+BACA,aACA,qBAIJ,YACE,8BACA,cACA,cjBjCmB,ciBmCnB,oBAGF,iBACE,OACA,kBACA,iBACA,gBACA,8BACA,eACA,0BAEA,aACE,6BAIJ,ajBrCqB,mCiBwCnB,aACE,oDAGF,WACE,wBAIJ,iBACE,YACA,OACA,WACA,WACA,yBjBtDmB,uBiB2DnB,oBACE,WACA,eACA,yBAGF,iBACE,gBACA,oBAIJ,iBACE,aACA,gBACA,kBACA,gBV5FM,sBU8FN,sGAEA,mCAEE,oBAKF,2BACA,gBVxGM,0BU2GN,cACE,gBACA,gBACA,oBACA,cACA,WACA,6BACA,WjBnHI,yBiBqHJ,kBACA,4CAEA,QACE,2GAGF,mBAGE,wCAKN,cACE,6CAEA,SACE,kBACA,kBACA,qDAGF,SACE,WACA,kBACA,MACA,OACA,WACA,YACA,mCACA,mBACA,4BAIJ,SACE,kBACA,wBACA,gBACA,MACA,iCAEA,aACE,WACA,gBACA,gBACA,gBVpKI,mBUyKR,iBACE,qBACA,YACA,wBAEA,UACE,YACA,wBAIJ,cACE,kBACA,iBACA,cjB7JiB,mDiBgKjB,YACE,qDAGF,eACE,uDAGF,YACE,qBAIJ,YACE,YCrMF,qBACE,iBANc,cAQd,kBACA,sCAEA,WANF,UAOI,eACA,mBAIJ,iDACE,eACA,gBACA,gBACA,qBACA,clBlBmB,oBkBqBnB,alBNmB,0BkBQjB,6EAEA,oBAGE,wCAIJ,alBhCmB,oBkBqCnB,YACE,oBACA,+BAEA,eACE,yBAIJ,eACE,clB/CiB,qBkBmDnB,iBACE,clBpDiB,uBkBwDnB,eACE,mBACA,kBACA,kBACA,yHAGF,4CAME,mBACA,oBACA,gBACA,clBxEiB,qBkB4EnB,aACE,qBAGF,gBACE,qBAGF,eACE,qBAGF,gBACE,yCAGF,aAEE,qBAGF,eACE,qBAGF,kBACE,yCAMA,iBACA,iBACA,yDAEA,2BACE,yDAGF,2BACE,qBAIJ,UACE,SACA,SACA,gCACA,eACA,4BAEA,UACE,SACA,wBAIJ,UACE,yBACA,8BACA,CADA,iBACA,gBACA,mBACA,iEAEA,+BAEE,cACA,kBACA,gBACA,gBACA,clBnJe,iCkBuJjB,uBACE,gBACA,gBACA,clBvIY,qDkB2Id,WAEE,iBACA,kBACA,qBACA,mEAEA,SACE,kBACA,iFAEA,gBACE,kBACA,6EAGF,iBACE,SACA,UACA,mBACA,gBACA,uBACA,+BAMR,YACE,oBAIJ,kBACE,eACA,mCAEA,iBACE,oBACA,8BAGF,YACE,8BACA,eACA,6BAGF,UACE,kDACA,eACA,iBACA,WlBrNI,iBkBuNJ,kBACA,qEAEA,aAEE,6CAIA,alB7Ne,oCkBkOjB,4CACE,gBACA,eACA,iBACA,qCAGF,4BA3BF,iBA4BI,4BAIJ,iBACE,YACA,sBACA,mBACA,CACA,sBACA,0BACA,QACA,aACA,yCAEA,4CACE,eACA,iBACA,gBACA,clB7Pe,mBkB+Pf,mBACA,gCACA,uBACA,mBACA,gBACA,wFAEA,eAEE,cACA,2CAGF,oBACE,2BAKN,iBACE,mCAEA,UACE,YACA,CACA,kBACA,uCAEA,aACE,WACA,YACA,mBACA,iCAIJ,cACE,mCAEA,aACE,WlB1SA,qBkB4SA,uDAGE,yBACE,2CAKN,aACE,clBnTa,kCkB2TnB,iDAEE,CACA,eACA,eACA,iBACA,mBACA,clBlUiB,sCkBqUjB,alBtTiB,0BkBwTf,kBAIJ,cACE,SACA,UACA,gBACA,uBACA,oBACA,kBACA,oBACA,cACA,kBAGF,4CACE,eACA,iBACA,gBACA,mBACA,clB5ViB,wBkB+VjB,iDACE,cACA,eACA,gBACA,cACA,kBAIJ,4CACE,eACA,iBACA,gBACA,mBACA,clB7WiB,kBkBkXjB,clBlXiB,mCkBiXnB,4CACE,CACA,gBACA,gBACA,mBACA,clBtXiB,kBkB2XjB,clB3XiB,kBkBoYjB,clBpYiB,mCkBmYnB,4CACE,CACA,gBACA,gBACA,mBACA,clBxYiB,kBkB6YjB,clB7YiB,mCkBqZnB,gBAEE,mDAEA,2BACE,mDAGF,2BACE,kBAIJ,eACE,kBAGF,kBACE,yCAGF,cAEE,kBAGF,UACE,SACA,SACA,6CACA,cACA,yBAEA,UACE,SACA,iDAIJ,YAEE,+BAGF,kBlB/bwB,kBkBictB,kBACA,gBACA,sBACA,oCAEA,UACE,aACA,2BACA,iBACA,8BACA,mBACA,uDAGF,YACE,yBACA,qBACA,mFAEA,aACE,eACA,qCAGF,sDAVF,UAWI,8BACA,6CAIJ,MACE,sBACA,qCAEA,2CAJF,YAKI,sBAKN,iBACE,yBAEA,WACE,WACA,uBACA,4BAIJ,iBACE,mBACA,uCAEA,eACE,mCAGF,eACE,cACA,qCAGF,eACE,UACA,mDAEA,kBACE,aACA,iBACA,0FAKE,oBACE,gFAIJ,cACE,qDAIJ,aACE,cACA,6CAGF,UACE,YACA,0BACA,mDAGF,cACE,4DAEA,cACE,qCAKN,oCACE,eACE,sCAIJ,2BA7DF,iBA8DI,mFAIJ,qBAGE,mBlBxjBsB,kBkB0jBtB,kCACA,uBAGF,YACE,kBACA,WACA,YACA,2BAEA,YACE,WACA,uCAKF,YACE,eACA,mBACA,mBACA,qCAGF,sCACE,kBACE,uCAIJ,alB1lBiB,qCkB8lBjB,eACE,WlBlmBE,gBkBomBF,ClBjmBe,yFkBsmBb,alBtmBa,+CkB4mBjB,eACE,qBAIJ,kBACE,yBAEA,aACE,SACA,eACA,YACA,kBACA,qCAIJ,gDAEI,kBACE,yCAGF,eACE,gBACA,WACA,kBACA,uDAEA,iBACE,sCAMR,8BACE,aACE,uCAEA,gBACE,sDAGF,kBACE,6EAIJ,aAEE,qBAIJ,WACE,UAIJ,mBACE,qCAEA,SAHF,eAII,kBAGF,YACE,uBACA,mBACA,aACA,qBAEA,SlBxrBI,YkB0rBF,qCAGF,gBAXF,SAYI,mBACA,sBAIJ,eACE,uBACA,gBACA,gBACA,uBAGF,eACE,gBACA,0BAEA,YACE,yBACA,gBACA,eACA,clB/sBe,6BkBmtBjB,eACE,iBACA,+BAGF,kBlBttBsB,akBwtBpB,0BACA,aACA,uCAEA,YACE,gCAIJ,cACE,gBACA,uDAEA,YACE,mBACA,iDAGF,UACE,YACA,0BACA,gCAIJ,YACE,uCAEA,4CACE,eACA,gBACA,cACA,qCAGF,cACE,clB9vBa,uFkBowBnB,eACE,cASA,ClB9wBiB,2CkB2wBjB,iBACA,CACA,kBACA,gBAGF,eACE,cACA,aACA,kDACA,cACA,qCAEA,eAPF,oCAQI,cACA,8BAEA,UACE,aACA,sBACA,0CAEA,OACE,cACA,2CAGF,YACE,mBACA,QACA,cACA,qCAIJ,UACE,2BAGF,eACE,sCAIJ,eAtCF,UAuCI,6BAEA,aACE,gBACA,gBACA,2GAEA,eAGE,uFAIJ,+BAGE,2BAGF,YACE,gCAEA,eACE,qEAEA,eAEE,gBACA,2CAGF,eACE,SAQZ,iBACE,qBACA,iBAGF,aACE,kBACA,aACA,UACA,YACA,clB91BiB,qBkBg2BjB,eACA,qCAEA,gBAVF,eAWI,WACA,gBACA,clBh2Bc,SmBvBlB,UACE,eACA,iBACA,yBACA,qBAEA,WAEE,iBACA,mBACA,6BACA,gBACA,mBACA,oBAGF,qBACE,gCACA,aACA,gBACA,oBAGF,eACE,qEAGF,kBnBrBwB,UmB0BxB,anBbmB,0BmBejB,gBAEA,oBACE,eAIJ,eACE,CAII,4HADF,eACE,+FAOF,sBAEE,yFAKF,YAEE,gCAMJ,kBnB9DsB,6BmBgEpB,gCACA,4CAEA,qBACE,8BACA,2CAGF,uBACE,+BACA,0BAKN,qBACE,gBAIJ,aACE,mBACA,MAGF,+CACE,0BAGF,sBACE,SACA,aACA,8CAGF,oBAEE,qBACA,iBACA,eACA,cnB1GmB,gBmB4GnB,0DAEA,UnBjHM,wDmBqHN,eACE,iBACA,sEAGF,cACE,yCAKF,YAEE,yDAEA,qBACE,iBACA,eACA,gBACA,qEAEA,cACE,2EAGF,YACE,mBACA,uFAEA,YACE,qHAOJ,sBACA,cACA,uBAIJ,wBACE,mBnB5JsB,sBmB8JtB,YACA,mBACA,gCAEA,gBACE,mBACA,oBAIJ,YACE,yBACA,aACA,mBnB3KsB,gCmB8KtB,aACE,gBACA,mBAIJ,wBACE,aACA,mBACA,qCAEA,wCACE,4BACE,0BAIJ,kBACE,iCAGF,kBnBnMsB,uCmBsMpB,kBACE,4BAIJ,gBACE,oBACA,sCAEA,SACE,wCAGF,YACE,mBACA,mCAGF,aACE,aACA,uBACA,mBACA,kBACA,6CAEA,UACE,YACA,kCAIJ,aACE,mCAGF,aACE,iBACA,cnB7Oa,gBmB+Ob,mCAIJ,QACE,WACA,qCAEA,sBACE,gBACA,qCAOJ,4FAFF,YAGI,gCAIJ,aACE,uCAEA,iBACE,sCAGF,eACE,4BAIJ,wBACE,aACA,gBACA,qCAEA,2BALF,4BAMI,sCAIJ,+CACE,YACE,iBC7RN,YACE,uBACA,WACA,iBACA,iCAEA,gBACE,gBACA,oBACA,cACA,wCAEA,YACE,yBACA,mBpBZoB,YoBcpB,yBAIJ,WAvBc,UAyBZ,oBACA,iCAEA,YACE,mBACA,YACA,uCAEA,aACE,yCAEA,oBACE,aACA,2CAGF,SpBzCA,YoB2CE,kBACA,YACA,uCAIJ,aACE,cpB/Ca,qBoBiDb,cACA,eACA,aACA,0HAIA,kBAGE,+BAKN,aACE,iBACA,YACA,aACA,qCAGF,sCACE,YACE,6BAIJ,eACE,0BACA,gBACA,mBACA,qCAEA,2BANF,eAOI,+BAGF,aACE,aACA,cpBzFa,qBoB2Fb,0BACA,2CACA,0BACA,mBACA,gBACA,uBACA,mCAEA,gBACE,oCAGF,UpB1GA,yBoB4GE,0BACA,2CACA,uCAGF,kBACE,sBACA,+BAIJ,kBACE,wBACA,SACA,iCAEA,QACE,kBACA,6DAIJ,UpBlIE,yBAkBa,gBoBmHb,gBACA,mEAEA,wBACE,6DAKN,yBACE,iCAIJ,qBACE,WACA,gBApJY,cAsJZ,sCAGF,uCACE,YACE,iCAGF,WA/JY,cAiKV,sCAIJ,gCACE,UACE,0BAMF,2BACA,qCAEA,wBALF,cAMI,CACA,sBACA,kCAGF,YACE,oBAEA,gCACA,0BAEA,eAEA,mBACA,8BACA,mCAEA,eACE,kBACA,yCAGF,mBACE,4DAEA,eACE,qCAIJ,gCAzBF,eA0BI,iBACA,6BAIJ,apBlNiB,eoBoNf,iBACA,gBACA,qCAEA,2BANF,eAOI,6BAIJ,apB7NiB,eoB+Nf,iBACA,gBACA,mBACA,4BAGF,wBACE,eACA,gBACA,cpBxOe,mBoB0Of,kBACA,gCACA,4BAGF,cACE,cpBhPe,iBoBkPf,gBACA,0CAGF,UpBzPI,gBoB2PF,uFAGF,eAEE,gEAGF,aACE,4CAGF,cACE,gBACA,WpBzQE,oBoB2QF,iBACA,gBACA,gBACA,2BAGF,cACE,iBACA,cpBhRe,mBoBkRf,kCAEA,UpBvRE,gBoByRA,CAII,2NADF,eACE,4BAMR,UACE,SACA,SACA,6CACA,cACA,mCAEA,UACE,SACA,qCAKN,eA9SF,aA+SI,iCAEA,YACE,yBAGF,UACE,UACA,YACA,iCAEA,YACE,4BAGF,YACE,8DAGF,eAEE,gCACA,gBACA,0EAEA,eACE,+BAIJ,eACE,6DAGF,2BpBlUe,YoByUrB,UACE,SACA,cACA,WACA,sDAKA,apBjWmB,0DoBoWjB,apBrViB,4DoB0VnB,apBnWc,gBoBqWZ,4DAGF,ab9WU,gBagXR,0DAGF,apBhWgB,gBoBkWd,0DAGF,abtXU,gBawXR,UAIJ,YACE,eACA,yBAEA,aACE,qBACA,oCAEA,kBACE,4BAGF,cACE,gBACA,+BAEA,oBACE,iBACA,gCAIJ,eACE,yBACA,eACA,CAII,iNADF,eACE,6CAKN,aACE,mBACA,2BAGF,oBACE,cpBtae,qBoBwaf,yBACA,eACA,gBACA,gCACA,iCAEA,UpBjbE,gCoBmbA,oCAGF,apBpae,gCoBsab,CAkBJ,gBAIJ,aACE,iBACA,eACA,sBAGF,aACE,eACA,cACA,wBAEA,aACE,kBAIJ,YACE,eACA,mBACA,wBAGF,YACE,WACA,sBACA,aACA,+BAEA,aACE,qBACA,gBACA,eACA,iBACA,cpB5eiB,CoBifb,4MADF,eACE,sCAKN,aACE,gCAIJ,YAEE,mBACA,kEAEA,UACE,kBACA,4BACA,gFAEA,iBACE,kDAKN,aAEE,aACA,sBACA,4EAEA,cACE,WACA,kBACA,mBACA,uEAIJ,cAEE,iBAGF,YACE,eACA,kBACA,2CAEA,kBACE,eACA,8BAGF,kBACE,+CAGF,gBACE,uDAEA,gBACE,mBACA,YACA,YAKN,kBACE,eACA,cAEA,apB5iBmB,qBoB8iBjB,oBAEA,yBACE,SAKN,aACE,YAGF,gBACE,eACA,mBpBzkBwB,gCoB2kBxB,uBAEA,eACE,oBAGF,YACE,2BACA,mBACA,cpBtlBiB,eoBwlBjB,eACA,oBAGF,iBACE,4BAEA,aACE,SACA,kBACA,WACA,YACA,qBAIJ,2BACE,mBAGF,oBACE,uBAGF,apB7lBgB,sDoBimBhB,apBpnBmB,qBoBwnBjB,gBACA,yDAIJ,oBAIE,cpBjoBmB,iGoBooBnB,eACE,yIAIA,4BACE,cACA,iIAGF,8BACE,CADF,sBACE,WACA,sBAKN,YAEE,mBACA,sCAEA,aACE,CACA,gBACA,kBACA,0DAIA,8BACE,CADF,sBACE,WACA,gBAKN,kBACE,8BACA,yBAEA,yBpBvqBc,yBoB2qBd,yBACE,wBAGF,yBbnrBU,wBawrBR,2BACA,eACA,iBACA,4BACA,kBACA,gBACA,0BAEA,apBlsBiB,uBoBwsBjB,wBACA,qBAGF,apBzrBgB,coB8rBlB,kBpB/sB0B,kBoBitBxB,mBACA,uBAEA,YACE,8BACA,mBACA,aACA,gCAEA,SACE,SACA,gDAEA,aACE,8BAIJ,aACE,gBACA,cpBvuBe,yBoByuBf,iBACA,gCAEA,aACE,qBACA,iHAEA,aAGE,mCAIJ,abvvBM,6Ba8vBR,YACE,2BACA,6BACA,mCAEA,kBACE,gFAGF,YAEE,cACA,sBACA,YACA,cpB5wBa,mLoB+wBb,kBAEE,gBACA,uBACA,sCAIJ,aACE,6BACA,4CAEA,apBxwBU,iBoB0wBR,gBACA,wCAIJ,aACE,sBACA,WACA,aACA,qBACA,cpBvyBa,WoB8yBrB,kBAGE,0BAFA,eACA,uBASA,CARA,eAGF,oBACE,gBACA,CAEA,qBACA,oBAGF,YACE,eACA,CACA,kBACA,wBAEA,qBACE,cACA,mBACA,aACA,0FAGF,kBAEE,kBACA,YACA,6CAGF,QACE,SACA,+CAEA,aACE,sEAGF,uBACE,yDAGF,apBt1BY,8CoB21Bd,qBACE,aACA,WpBt2BI,coB22BR,iBACE,qBAGF,wBACE,kBACA,2BAEA,cACE,mBpB/2BsB,gCoBi3BtB,kCAEA,cACE,cACA,gBACA,eACA,gBACA,cpB13Be,qBoB43Bf,mBACA,uHAEA,UpBl4BE,iCoBy4BJ,cACE,cpBp3BY,uCoBw3Bd,YACE,8BACA,mBACA,sCAGF,eACE,sBCt5BN,YACE,eACA,CACA,kBACA,0BAEA,qBACE,iBACA,cACA,mBACA,yDAEA,YAEE,mBACA,kBACA,sBACA,YACA,4BAGF,oBACE,cACA,cACA,qGAEA,kBAGE,sDAKN,iBAEE,gBACA,eACA,iBACA,WrBtCI,6CqBwCJ,mBACA,iBACA,4BAGF,cACE,6BAGF,cACE,crB/CiB,kBqBiDjB,gBACA,qBAIJ,YACE,eACA,cACA,yBAEA,gBACE,mBACA,6BAEA,aACE,sCAIJ,arBpEmB,gBqBsEjB,qBACA,UC3EJ,aACE,gCAEA,gBACE,eACA,mBACA,+BAGF,cACE,iBACA,8CAGF,aACE,kBACA,wBAGF,gBACE,iCAGF,aACE,kBACA,uCAGF,oBACE,gDAGF,SACE,YACA,8BAGF,cACE,iBACA,mEAGF,aACE,kBACA,2DAGF,cAEE,gBACA,mFAGF,cACE,gBACA,mCAGF,aACE,iBACA,yBAGF,kBACE,kBACA,4BAGF,UACE,UACA,wBAGF,aACE,kCAGF,MACE,WACA,cACA,mBACA,2CAGF,aACE,iBACA,0CAGF,gBACE,eACA,mCAGF,WACE,sCAGF,gBACE,gBACA,yCAGF,UACE,iCAGF,aACE,iBACA,0BAGF,SACE,WACA,0DAGF,iBAEE,mBACA,4GAGF,iBAEE,gBACA,uCAGF,kBACE,eACA,2BAGF,aACE,kBACA,wCAGF,SACE,YACA,yDAGF,SACE,WACA,CAKA,oFAGF,UACE,OACA,uGAGF,UAEE,uCAIA,cACE,iBACA,kEAEA,cACE,gBACA,qCAKN,WACE,eACA,iBACA,uCAGF,WACE,sCAGF,aACE,kBACA,0CAGF,gBACE,eACA,uDAGF,gBACE,2CAGF,cACE,iBACA,YACA,yEAGF,aAEE,iBACA,iBAGF,wBACE,iBAGF,SACE,oBACA,yBAGF,aACE,8EAGF,cAEE,gBACA,oDAGF,cACE,mBACA,gEAGF,iBACE,gBACA,CAMA,8KAGF,SACE,QACA,yDAGF,kBACE,eACA,uDAGF,kBACE,gBACA,qDAGF,SACE,QACA,8FAGF,cAEE,mBACA,4CAGF,UACE,SACA,kDAEA,UACE,OACA,qEACA,8BAIJ,sXACE,uCAGF,gBAEE,kCAGF,cACE,iBACA,gDAGF,UACE,UACA,gEAGF,aACE,uDAGF,WACE,WACA,uDAGF,UACE,WACA,uDAGF,UACE,WACA,kDAGF,MACE,0CAGF,iBACE,yBACA,qDAGF,cACE,iBACA,qCAGF,kCACE,gBAEE,kBACA,2DAEA,gBACE,mBACA,uEAKF,gBAEE,kBACA,gFAKN,cAEE,gBACA,6CAKE,eACE,eACA,sDAIJ,aACE,kBACA,4DAKF,cACE,gBACA,8DAGF,gBACE,eACA,mCAIJ,aACE,kBACA,iBACA,kCAGF,WACE,mCAGF,WACE,oCAGF,cACE,gBACA,gFAGF,cACE,mBACA,+DAGF,SACE,QACA,kkEC7ZJ,kIACE,CADF,sIACE,qBACA,MCDF,6CACE,CjBFM,qCiBSN,UjBTM,sDiBcR,wBAEE,sMAEA,UjBlBM,gGiB0BR,ejB1BQ,yBiBgCN,aACA,uBAGF,kBACE,oCAGF,ejBxCQ,gCiB2CN,8BAGF,sBACE,iBACA,kBACA,qCAGF,wBAEE,oCAGF,ejBzDQ,yBiB4DN,qCAEA,mCALF,YAMI,+DAGF,SACE,QACA,gIAIJ,ejBxEQ,+BiBgFR,axB/DqB,8GwBkEnB,axBlEmB,gBOjBb,gDiB2FR,iBjB3FQ,4BiB+FR,axB7FqB,0BwB+FnB,iIAGF,aAIE,6cAEA,UxB3GM,oBwBkHR,kBACE,gCACA,wDAKA,ejBxHM,gCiB0HJ,4MAEA,kBxBxHsB,kCwBgI1B,4BACE,gCACA,qCAEA,iCAJF,YAKI,uUAIJ,wBAYE,qCAIA,eADF,YAEI,gBACA,sCAIJ,YACE,gBACA,oCAGF,oXACE,uEAGF,wBAEE,2BAGF,wBACE,aACA,8CAGF,kBxBlL0B,yBwBoLxB,aACA,gCAGF,ejB5LQ,yBiB+LN,0BAGF,o1BACE,oFAME,aACE,6QAEA,UjB5ME,gFiBmNJ,aACE,2GAEA,aACE,CAHF,iGAEA,aACE,CAHF,qGAEA,aACE,CAHF,4FAEA,aACE,CAMJ,8FAGF,kBACE,yPAIA,kBAIE,iBAKN,oBACE,6BAEA,kBACE,0BAIJ,+BACE,qBxBnPwB,kBwBwP1B,kBxBxP0B,uBwB4P1B,kBACE,wCAGF,kBACE,+CAGF,ejBxQQ,0GiB8QR,kBxB1Q0B,sHwB8QxB,kBACE,uCAKJ,kBxBpR0B,uEwByR1B,UjB7RQ,0BiBiSR,wBxB7R0B,gBwBkS1B,ejBtSQ,4BiB0SJ,sBjB1SI,2BiB8SJ,qBjB9SI,8BiBkTJ,wBjBlTI,6BiBsTJ,uBjBtTI,wBiB4TJ,ejB5TI,cPEa,85BwBkUrB,UjBpUQ,2BiB4VR,2BACE,uNAIF,ejBjWQ,yBiB6WN,wBAGF,0BACE,0BAGF,wBACE,mCAGF,kBACE,yBACA,aACA,8BAGF,UjB9XQ,6JiBkYR,kBAME,+2DAIE,qBAGE,qBAKN,ejBpZQ,yDiBwZR,ejBxZQ,yBiB0ZN,+DAEA,oBACE,gBjB7ZI,qBiBkaR,kBxBhaqB,sEwBoarB,kBACE,4FAGF,kBACE,uCAIF,UxBhbQ,gBOCA,WiBqbR,ejBrbQ,yBiBubN,gBACA,qCAEA,UALF,YAMI,kBAGF,mBACE,wBACA,4BACA,oEAEA,kBxB/bsB,yFwBscpB,sBAGE,4BxB5ba,uBwBocrB,exBrdQ,4BwBudN,kMAGF,ejB1dQ,yBiBoeN,qCAEA,iMAZF,aAaI,eACA,aACA,8BAIJ,YACE,gBACA,oLASE,oBACE,+BAKN,ejB9fQ,yBiBggBN,aACA,qCAEA,8BALF,QAMI,kBAIJ,axBtgBqB,0EwB2gBnB,kBxBzgBwB,qCwB+gBxB,kBAPF,QAQI,sDAIJ,oBxBvgBqB,mVwB2gBnB,UjB5hBM,mMiBoiBN,kBxBnhBmB,oEwB2hBnB,oBAGE,kBAIJ,wBACE,8BAEA,YACE,yBAGF,exB1jBM,0HwB6jBJ,2BAGE,CxBjkBE,oGwB2kBF,UxB3kBE,0DwBqlBF,axBllBe,2CwBwlBf,UxB3lBE,6CwBgmBJ,axB7lBiB,6DwBimBjB,UxBpmBI,4CwB4mBN,eACE,8BACA,iBACA,oDxB7lBiB,awBmmBjB,yFAHF,oBxBhmBmB,qCwBymBnB,CxBzmBmB,2HwBmnBnB,axBnnBmB,qBwBwnBrB,UjBzoBQ,yBiB4oBN,SjB5oBM,2CiBkpBN,wBACE,qCAEA,0CAHF,YAII,kGAIJ,eAGE,sEAGF,exBhqBM,yBwBmqBJ,wBAGF,kBxBlqBwB,yBwBoqBtB,qCAEA,uBAJF,QAKI,+GAIA,kBAGE,8CAMJ,kBACE,oDAEA,eACE,mDAKF,exBjsBE,yBwBmsBA,aACA,wDAGF,iBxBvsBE,qCwB2sBF,2CAXF,exBhsBI,yBwB6sBA,aACA,kHAMA,UjBptBA,qCiBwtBE,gHAJF,UxBrtBA,mEwBiuBF,QACE,2FAGF,oBACE,yFAMR,yCAEE,0PAGF,eAaE,sKAGF,UxBjwBQ,0D","file":"skins/vanilla/mastodon-light/common.css","sourcesContent":["html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,em,img,ins,kbd,q,s,samp,small,strike,strong,sub,sup,tt,var,b,u,i,center,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td,article,aside,canvas,details,embed,figure,figcaption,footer,header,hgroup,menu,nav,output,ruby,section,summary,time,mark,audio,video{margin:0;padding:0;border:0;font-size:100%;font:inherit;vertical-align:baseline}article,aside,details,figcaption,figure,footer,header,hgroup,menu,nav,section{display:block}body{line-height:1}ol,ul{list-style:none}blockquote,q{quotes:none}blockquote:before,blockquote:after,q:before,q:after{content:\"\";content:none}table{border-collapse:collapse;border-spacing:0}html{scrollbar-color:#ccd7e0 rgba(255,255,255,.1)}::-webkit-scrollbar{width:12px;height:12px}::-webkit-scrollbar-thumb{background:#ccd7e0;border:0px none #fff;border-radius:50px}::-webkit-scrollbar-thumb:hover{background:#c6d2dc}::-webkit-scrollbar-thumb:active{background:#ccd7e0}::-webkit-scrollbar-track{border:0px none #fff;border-radius:0;background:rgba(255,255,255,.1)}::-webkit-scrollbar-track:hover{background:#d9e1e8}::-webkit-scrollbar-track:active{background:#d9e1e8}::-webkit-scrollbar-corner{background:transparent}body{font-family:\"mastodon-font-sans-serif\",sans-serif;background:#eff3f5;font-size:13px;line-height:18px;font-weight:400;color:#000;text-rendering:optimizelegibility;font-feature-settings:\"kern\";text-size-adjust:none;-webkit-tap-highlight-color:rgba(0,0,0,0);-webkit-tap-highlight-color:transparent}body.system-font{font-family:system-ui,-apple-system,BlinkMacSystemFont,\"Segoe UI\",\"Oxygen\",\"Ubuntu\",\"Cantarell\",\"Fira Sans\",\"Droid Sans\",\"Helvetica Neue\",\"mastodon-font-sans-serif\",sans-serif}body.app-body{padding:0}body.app-body.layout-single-column{height:auto;min-height:100vh;overflow-y:scroll}body.app-body.layout-multiple-columns{position:absolute;width:100%;height:100%}body.app-body.with-modals--active{overflow-y:hidden}body.lighter{background:#d9e1e8}body.with-modals{overflow-x:hidden;overflow-y:scroll}body.with-modals--active{overflow-y:hidden}body.player{text-align:center}body.embed{background:#ccd7e0;margin:0;padding-bottom:0}body.embed .container{position:absolute;width:100%;height:100%;overflow:hidden}body.admin{background:#e6ebf0;padding:0}body.error{position:absolute;text-align:center;color:#282c37;background:#d9e1e8;width:100%;height:100%;padding:0;display:flex;justify-content:center;align-items:center}body.error .dialog{vertical-align:middle;margin:20px}body.error .dialog__illustration img{display:block;max-width:470px;width:100%;height:auto;margin-top:-120px}body.error .dialog h1{font-size:20px;line-height:28px;font-weight:400}button{font-family:inherit;cursor:pointer}button:focus{outline:none}.app-holder,.app-holder>div,.app-holder>noscript{display:flex;width:100%;align-items:center;justify-content:center;outline:0 !important}.app-holder>noscript{height:100vh}.layout-single-column .app-holder,.layout-single-column .app-holder>div{min-height:100vh}.layout-multiple-columns .app-holder,.layout-multiple-columns .app-holder>div{height:100%}.error-boundary,.app-holder noscript{flex-direction:column;font-size:16px;font-weight:400;line-height:1.7;color:#dc2f4b;text-align:center}.error-boundary>div,.app-holder noscript>div{max-width:500px}.error-boundary p,.app-holder noscript p{margin-bottom:.85em}.error-boundary p:last-child,.app-holder noscript p:last-child{margin-bottom:0}.error-boundary a,.app-holder noscript a{color:#2b90d9}.error-boundary a:hover,.error-boundary a:focus,.error-boundary a:active,.app-holder noscript a:hover,.app-holder noscript a:focus,.app-holder noscript a:active{text-decoration:none}.error-boundary__footer,.app-holder noscript__footer{color:#444b5d;font-size:13px}.error-boundary__footer a,.app-holder noscript__footer a{color:#444b5d}.error-boundary button,.app-holder noscript button{display:inline;border:0;background:transparent;color:#444b5d;font:inherit;padding:0;margin:0;line-height:inherit;cursor:pointer;outline:0;transition:color 300ms linear;text-decoration:underline}.error-boundary button:hover,.error-boundary button:focus,.error-boundary button:active,.app-holder noscript button:hover,.app-holder noscript button:focus,.app-holder noscript button:active{text-decoration:none}.error-boundary button.copied,.app-holder noscript button.copied{color:#4a905f;transition:none}.container-alt{width:700px;margin:0 auto;margin-top:40px}@media screen and (max-width: 740px){.container-alt{width:100%;margin:0}}.logo-container{margin:100px auto 50px}@media screen and (max-width: 500px){.logo-container{margin:40px auto 0}}.logo-container h1{display:flex;justify-content:center;align-items:center}.logo-container h1 svg{fill:#000;height:42px;margin-right:10px}.logo-container h1 a{display:flex;justify-content:center;align-items:center;color:#000;text-decoration:none;outline:0;padding:12px 16px;line-height:32px;font-family:\"mastodon-font-display\",sans-serif;font-weight:500;font-size:14px}.compose-standalone .compose-form{width:400px;margin:0 auto;padding:20px 0;margin-top:40px;box-sizing:border-box}@media screen and (max-width: 400px){.compose-standalone .compose-form{width:100%;margin-top:0;padding:20px}}.account-header{width:400px;margin:0 auto;display:flex;font-size:13px;line-height:18px;box-sizing:border-box;padding:20px 0;padding-bottom:0;margin-bottom:-30px;margin-top:40px}@media screen and (max-width: 440px){.account-header{width:100%;margin:0;margin-bottom:10px;padding:20px;padding-bottom:0}}.account-header .avatar{width:40px;height:40px;margin-right:8px}.account-header .avatar img{width:100%;height:100%;display:block;margin:0;border-radius:4px}.account-header .name{flex:1 1 auto;color:#282c37;width:calc(100% - 88px)}.account-header .name .username{display:block;font-weight:500;text-overflow:ellipsis;overflow:hidden}.account-header .logout-link{display:block;font-size:32px;line-height:40px;margin-left:8px}.grid-3{display:grid;grid-gap:10px;grid-template-columns:3fr 1fr;grid-auto-columns:25%;grid-auto-rows:max-content}.grid-3 .column-0{grid-column:1/3;grid-row:1}.grid-3 .column-1{grid-column:1;grid-row:2}.grid-3 .column-2{grid-column:2;grid-row:2}.grid-3 .column-3{grid-column:1/3;grid-row:3}@media screen and (max-width: 415px){.grid-3{grid-gap:0;grid-template-columns:minmax(0, 100%)}.grid-3 .column-0{grid-column:1}.grid-3 .column-1{grid-column:1;grid-row:3}.grid-3 .column-2{grid-column:1;grid-row:2}.grid-3 .column-3{grid-column:1;grid-row:4}}.grid-4{display:grid;grid-gap:10px;grid-template-columns:repeat(4, minmax(0, 1fr));grid-auto-columns:25%;grid-auto-rows:max-content}.grid-4 .column-0{grid-column:1/5;grid-row:1}.grid-4 .column-1{grid-column:1/4;grid-row:2}.grid-4 .column-2{grid-column:4;grid-row:2}.grid-4 .column-3{grid-column:2/5;grid-row:3}.grid-4 .column-4{grid-column:1;grid-row:3}.grid-4 .landing-page__call-to-action{min-height:100%}.grid-4 .flash-message{margin-bottom:10px}@media screen and (max-width: 738px){.grid-4{grid-template-columns:minmax(0, 50%) minmax(0, 50%)}.grid-4 .landing-page__call-to-action{padding:20px;display:flex;align-items:center;justify-content:center}.grid-4 .row__information-board{width:100%;justify-content:center;align-items:center}.grid-4 .row__mascot{display:none}}@media screen and (max-width: 415px){.grid-4{grid-gap:0;grid-template-columns:minmax(0, 100%)}.grid-4 .column-0{grid-column:1}.grid-4 .column-1{grid-column:1;grid-row:3}.grid-4 .column-2{grid-column:1;grid-row:2}.grid-4 .column-3{grid-column:1;grid-row:5}.grid-4 .column-4{grid-column:1;grid-row:4}}@media screen and (max-width: 415px){.public-layout{padding-top:48px}}.public-layout .container{max-width:960px}@media screen and (max-width: 415px){.public-layout .container{padding:0}}.public-layout .header{background:#c0cdd9;box-shadow:0 0 15px rgba(0,0,0,.2);border-radius:4px;height:48px;margin:10px 0;display:flex;align-items:stretch;justify-content:center;flex-wrap:nowrap;overflow:hidden}@media screen and (max-width: 415px){.public-layout .header{position:fixed;width:100%;top:0;left:0;margin:0;border-radius:0;box-shadow:none;z-index:110}}.public-layout .header>div{flex:1 1 33.3%;min-height:1px}.public-layout .header .nav-left{display:flex;align-items:stretch;justify-content:flex-start;flex-wrap:nowrap}.public-layout .header .nav-center{display:flex;align-items:stretch;justify-content:center;flex-wrap:nowrap}.public-layout .header .nav-right{display:flex;align-items:stretch;justify-content:flex-end;flex-wrap:nowrap}.public-layout .header .brand{display:block;padding:15px}.public-layout .header .brand svg{display:block;height:18px;width:auto;position:relative;bottom:-2px;fill:#000}@media screen and (max-width: 415px){.public-layout .header .brand svg{height:20px}}.public-layout .header .brand:hover,.public-layout .header .brand:focus,.public-layout .header .brand:active{background:#b3c3d1}.public-layout .header .nav-link{display:flex;align-items:center;padding:0 1rem;font-size:12px;font-weight:500;text-decoration:none;color:#282c37;white-space:nowrap;text-align:center}.public-layout .header .nav-link:hover,.public-layout .header .nav-link:focus,.public-layout .header .nav-link:active{text-decoration:underline;color:#000}@media screen and (max-width: 550px){.public-layout .header .nav-link.optional{display:none}}.public-layout .header .nav-button{background:#a6b9c9;margin:8px;margin-left:0;border-radius:4px}.public-layout .header .nav-button:hover,.public-layout .header .nav-button:focus,.public-layout .header .nav-button:active{text-decoration:none;background:#99afc2}.public-layout .grid{display:grid;grid-gap:10px;grid-template-columns:minmax(300px, 3fr) minmax(298px, 1fr);grid-auto-columns:25%;grid-auto-rows:max-content}.public-layout .grid .column-0{grid-row:1;grid-column:1}.public-layout .grid .column-1{grid-row:1;grid-column:2}@media screen and (max-width: 600px){.public-layout .grid{grid-template-columns:100%;grid-gap:0}.public-layout .grid .column-1{display:none}}.public-layout .directory__card{border-radius:4px}@media screen and (max-width: 415px){.public-layout .directory__card{border-radius:0}}@media screen and (max-width: 415px){.public-layout .page-header{border-bottom:0}}.public-layout .public-account-header{overflow:hidden;margin-bottom:10px;box-shadow:0 0 15px rgba(0,0,0,.2)}.public-layout .public-account-header.inactive{opacity:.5}.public-layout .public-account-header.inactive .public-account-header__image,.public-layout .public-account-header.inactive .avatar{filter:grayscale(100%)}.public-layout .public-account-header.inactive .logo-button{background-color:#282c37}.public-layout .public-account-header__image{border-radius:4px 4px 0 0;overflow:hidden;height:300px;position:relative;background:#fff}.public-layout .public-account-header__image::after{content:\"\";display:block;position:absolute;width:100%;height:100%;box-shadow:inset 0 -1px 1px 1px rgba(0,0,0,.15);top:0;left:0}.public-layout .public-account-header__image img{object-fit:cover;display:block;width:100%;height:100%;margin:0;border-radius:4px 4px 0 0}@media screen and (max-width: 600px){.public-layout .public-account-header__image{height:200px}}.public-layout .public-account-header--no-bar{margin-bottom:0}.public-layout .public-account-header--no-bar .public-account-header__image,.public-layout .public-account-header--no-bar .public-account-header__image img{border-radius:4px}@media screen and (max-width: 415px){.public-layout .public-account-header--no-bar .public-account-header__image,.public-layout .public-account-header--no-bar .public-account-header__image img{border-radius:0}}@media screen and (max-width: 415px){.public-layout .public-account-header{margin-bottom:0;box-shadow:none}.public-layout .public-account-header__image::after{display:none}.public-layout .public-account-header__image,.public-layout .public-account-header__image img{border-radius:0}}.public-layout .public-account-header__bar{position:relative;margin-top:-80px;display:flex;justify-content:flex-start}.public-layout .public-account-header__bar::before{content:\"\";display:block;background:#ccd7e0;position:absolute;bottom:0;left:0;right:0;height:60px;border-radius:0 0 4px 4px;z-index:-1}.public-layout .public-account-header__bar .avatar{display:block;width:120px;height:120px;padding-left:16px;flex:0 0 auto}.public-layout .public-account-header__bar .avatar img{display:block;width:100%;height:100%;margin:0;border-radius:50%;border:4px solid #ccd7e0;background:#f2f5f7}@media screen and (max-width: 600px){.public-layout .public-account-header__bar{margin-top:0;background:#ccd7e0;border-radius:0 0 4px 4px;padding:5px}.public-layout .public-account-header__bar::before{display:none}.public-layout .public-account-header__bar .avatar{width:48px;height:48px;padding:7px 0;padding-left:10px}.public-layout .public-account-header__bar .avatar img{border:0;border-radius:4px}}@media screen and (max-width: 600px)and (max-width: 360px){.public-layout .public-account-header__bar .avatar{display:none}}@media screen and (max-width: 415px){.public-layout .public-account-header__bar{border-radius:0}}@media screen and (max-width: 600px){.public-layout .public-account-header__bar{flex-wrap:wrap}}.public-layout .public-account-header__tabs{flex:1 1 auto;margin-left:20px}.public-layout .public-account-header__tabs__name{padding-top:20px;padding-bottom:8px}.public-layout .public-account-header__tabs__name h1{font-size:20px;line-height:27px;color:#000;font-weight:500;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;text-shadow:1px 1px 1px #000}.public-layout .public-account-header__tabs__name h1 small{display:block;font-size:14px;color:#000;font-weight:400;overflow:hidden;text-overflow:ellipsis}@media screen and (max-width: 600px){.public-layout .public-account-header__tabs{margin-left:15px;display:flex;justify-content:space-between;align-items:center}.public-layout .public-account-header__tabs__name{padding-top:0;padding-bottom:0}.public-layout .public-account-header__tabs__name h1{font-size:16px;line-height:24px;text-shadow:none}.public-layout .public-account-header__tabs__name h1 small{color:#282c37}}.public-layout .public-account-header__tabs__tabs{display:flex;justify-content:flex-start;align-items:stretch;height:58px}.public-layout .public-account-header__tabs__tabs .details-counters{display:flex;flex-direction:row;min-width:300px}@media screen and (max-width: 600px){.public-layout .public-account-header__tabs__tabs .details-counters{display:none}}.public-layout .public-account-header__tabs__tabs .counter{min-width:33.3%;box-sizing:border-box;flex:0 0 auto;color:#282c37;padding:10px;border-right:1px solid #ccd7e0;cursor:default;text-align:center;position:relative}.public-layout .public-account-header__tabs__tabs .counter a{display:block}.public-layout .public-account-header__tabs__tabs .counter:last-child{border-right:0}.public-layout .public-account-header__tabs__tabs .counter::after{display:block;content:\"\";position:absolute;bottom:0;left:0;width:100%;border-bottom:4px solid #9bcbed;opacity:.5;transition:all 400ms ease}.public-layout .public-account-header__tabs__tabs .counter.active::after{border-bottom:4px solid #2b90d9;opacity:1}.public-layout .public-account-header__tabs__tabs .counter.active.inactive::after{border-bottom-color:#282c37}.public-layout .public-account-header__tabs__tabs .counter:hover::after{opacity:1;transition-duration:100ms}.public-layout .public-account-header__tabs__tabs .counter a{text-decoration:none;color:inherit}.public-layout .public-account-header__tabs__tabs .counter .counter-label{font-size:12px;display:block}.public-layout .public-account-header__tabs__tabs .counter .counter-number{font-weight:500;font-size:18px;margin-bottom:5px;color:#000;font-family:\"mastodon-font-display\",sans-serif}.public-layout .public-account-header__tabs__tabs .spacer{flex:1 1 auto;height:1px}.public-layout .public-account-header__tabs__tabs__buttons{padding:7px 8px}.public-layout .public-account-header__extra{display:none;margin-top:4px}.public-layout .public-account-header__extra .public-account-bio{border-radius:0;box-shadow:none;background:transparent;margin:0 -5px}.public-layout .public-account-header__extra .public-account-bio .account__header__fields{border-top:1px solid #b3c3d1}.public-layout .public-account-header__extra .public-account-bio .roles{display:none}.public-layout .public-account-header__extra__links{margin-top:-15px;font-size:14px;color:#282c37}.public-layout .public-account-header__extra__links a{display:inline-block;color:#282c37;text-decoration:none;padding:15px;font-weight:500}.public-layout .public-account-header__extra__links a strong{font-weight:700;color:#000}@media screen and (max-width: 600px){.public-layout .public-account-header__extra{display:block;flex:100%}}.public-layout .account__section-headline{border-radius:4px 4px 0 0}@media screen and (max-width: 415px){.public-layout .account__section-headline{border-radius:0}}.public-layout .detailed-status__meta{margin-top:25px}.public-layout .public-account-bio{background:#c0cdd9;box-shadow:0 0 15px rgba(0,0,0,.2);border-radius:4px;overflow:hidden;margin-bottom:10px}@media screen and (max-width: 415px){.public-layout .public-account-bio{box-shadow:none;margin-bottom:0;border-radius:0}}.public-layout .public-account-bio .account__header__fields{margin:0;border-top:0}.public-layout .public-account-bio .account__header__fields a{color:#217aba}.public-layout .public-account-bio .account__header__fields dl:first-child .verified{border-radius:0 4px 0 0}.public-layout .public-account-bio .account__header__fields .verified a{color:#4a905f}.public-layout .public-account-bio .account__header__content{padding:20px;padding-bottom:0;color:#000}.public-layout .public-account-bio__extra,.public-layout .public-account-bio .roles{padding:20px;font-size:14px;color:#282c37}.public-layout .public-account-bio .roles{padding-bottom:0}.public-layout .directory__list{display:grid;grid-gap:10px;grid-template-columns:minmax(0, 50%) minmax(0, 50%)}@media screen and (max-width: 415px){.public-layout .directory__list{display:block}}.public-layout .directory__list .icon-button{font-size:18px}.public-layout .directory__card{margin-bottom:0}.public-layout .card-grid{display:flex;flex-wrap:wrap;min-width:100%;margin:0 -5px}.public-layout .card-grid>div{box-sizing:border-box;flex:1 0 auto;width:300px;padding:0 5px;margin-bottom:10px;max-width:33.333%}@media screen and (max-width: 900px){.public-layout .card-grid>div{max-width:50%}}@media screen and (max-width: 600px){.public-layout .card-grid>div{max-width:100%}}@media screen and (max-width: 415px){.public-layout .card-grid{margin:0;border-top:1px solid #c0cdd9}.public-layout .card-grid>div{width:100%;padding:0;margin-bottom:0;border-bottom:1px solid #c0cdd9}.public-layout .card-grid>div:last-child{border-bottom:0}.public-layout .card-grid>div .card__bar{background:#d9e1e8}.public-layout .card-grid>div .card__bar:hover,.public-layout .card-grid>div .card__bar:active,.public-layout .card-grid>div .card__bar:focus{background:#ccd7e0}}.no-list{list-style:none}.no-list li{display:inline-block;margin:0 5px}.recovery-codes{list-style:none;margin:0 auto}.recovery-codes li{font-size:125%;line-height:1.5;letter-spacing:1px}.public-layout .footer{text-align:left;padding-top:20px;padding-bottom:60px;font-size:12px;color:#6d8ca7}@media screen and (max-width: 415px){.public-layout .footer{padding-left:20px;padding-right:20px}}.public-layout .footer .grid{display:grid;grid-gap:10px;grid-template-columns:1fr 1fr 2fr 1fr 1fr}.public-layout .footer .grid .column-0{grid-column:1;grid-row:1;min-width:0}.public-layout .footer .grid .column-1{grid-column:2;grid-row:1;min-width:0}.public-layout .footer .grid .column-2{grid-column:3;grid-row:1;min-width:0;text-align:center}.public-layout .footer .grid .column-2 h4 a{color:#6d8ca7}.public-layout .footer .grid .column-3{grid-column:4;grid-row:1;min-width:0}.public-layout .footer .grid .column-4{grid-column:5;grid-row:1;min-width:0}@media screen and (max-width: 690px){.public-layout .footer .grid{grid-template-columns:1fr 2fr 1fr}.public-layout .footer .grid .column-0,.public-layout .footer .grid .column-1{grid-column:1}.public-layout .footer .grid .column-1{grid-row:2}.public-layout .footer .grid .column-2{grid-column:2}.public-layout .footer .grid .column-3,.public-layout .footer .grid .column-4{grid-column:3}.public-layout .footer .grid .column-4{grid-row:2}}@media screen and (max-width: 600px){.public-layout .footer .grid .column-1{display:block}}@media screen and (max-width: 415px){.public-layout .footer .grid .column-0,.public-layout .footer .grid .column-1,.public-layout .footer .grid .column-3,.public-layout .footer .grid .column-4{display:none}}.public-layout .footer h4{text-transform:uppercase;font-weight:700;margin-bottom:8px;color:#282c37}.public-layout .footer h4 a{color:inherit;text-decoration:none}.public-layout .footer ul a{text-decoration:none;color:#6d8ca7}.public-layout .footer ul a:hover,.public-layout .footer ul a:active,.public-layout .footer ul a:focus{text-decoration:underline}.public-layout .footer .brand svg{display:block;height:36px;width:auto;margin:0 auto;fill:#6d8ca7}.public-layout .footer .brand:hover svg,.public-layout .footer .brand:focus svg,.public-layout .footer .brand:active svg{fill:#60829f}.compact-header h1{font-size:24px;line-height:28px;color:#282c37;font-weight:500;margin-bottom:20px;padding:0 10px;word-wrap:break-word}@media screen and (max-width: 740px){.compact-header h1{text-align:center;padding:20px 10px 0}}.compact-header h1 a{color:inherit;text-decoration:none}.compact-header h1 small{font-weight:400;color:#282c37}.compact-header h1 img{display:inline-block;margin-bottom:-5px;margin-right:15px;width:36px;height:36px}.hero-widget{margin-bottom:10px;box-shadow:0 0 15px rgba(0,0,0,.2)}.hero-widget__img{width:100%;position:relative;overflow:hidden;border-radius:4px 4px 0 0;background:#000}.hero-widget__img img{object-fit:cover;display:block;width:100%;height:100%;margin:0;border-radius:4px 4px 0 0}.hero-widget__text{background:#d9e1e8;padding:20px;border-radius:0 0 4px 4px;font-size:15px;color:#282c37;line-height:20px;word-wrap:break-word;font-weight:400}.hero-widget__text .emojione{width:20px;height:20px;margin:-3px 0 0}.hero-widget__text p{margin-bottom:20px}.hero-widget__text p:last-child{margin-bottom:0}.hero-widget__text em{display:inline;margin:0;padding:0;font-weight:700;background:transparent;font-family:inherit;font-size:inherit;line-height:inherit;color:#131419}.hero-widget__text a{color:#282c37;text-decoration:none}.hero-widget__text a:hover{text-decoration:underline}@media screen and (max-width: 415px){.hero-widget{display:none}}.endorsements-widget{margin-bottom:10px;padding-bottom:10px}.endorsements-widget h4{padding:10px;text-transform:uppercase;font-weight:700;font-size:13px;color:#282c37}.endorsements-widget .account{padding:10px 0}.endorsements-widget .account:last-child{border-bottom:0}.endorsements-widget .account .account__display-name{display:flex;align-items:center}.endorsements-widget .account .account__avatar{width:44px;height:44px;background-size:44px 44px}.endorsements-widget .trends__item{padding:10px}.trends-widget h4{color:#282c37}.box-widget{padding:20px;border-radius:4px;background:#d9e1e8;box-shadow:0 0 15px rgba(0,0,0,.2)}.placeholder-widget{padding:16px;border-radius:4px;border:2px dashed #444b5d;text-align:center;color:#282c37;margin-bottom:10px}.contact-widget{min-height:100%;font-size:15px;color:#282c37;line-height:20px;word-wrap:break-word;font-weight:400;padding:0}.contact-widget h4{padding:10px;text-transform:uppercase;font-weight:700;font-size:13px;color:#282c37}.contact-widget .account{border-bottom:0;padding:10px 0;padding-top:5px}.contact-widget>a{display:inline-block;padding:10px;padding-top:0;color:#282c37;text-decoration:none;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.contact-widget>a:hover,.contact-widget>a:focus,.contact-widget>a:active{text-decoration:underline}.moved-account-widget{padding:15px;padding-bottom:20px;border-radius:4px;background:#d9e1e8;box-shadow:0 0 15px rgba(0,0,0,.2);color:#282c37;font-weight:400;margin-bottom:10px}.moved-account-widget strong,.moved-account-widget a{font-weight:500}.moved-account-widget strong:lang(ja),.moved-account-widget a:lang(ja){font-weight:700}.moved-account-widget strong:lang(ko),.moved-account-widget a:lang(ko){font-weight:700}.moved-account-widget strong:lang(zh-CN),.moved-account-widget a:lang(zh-CN){font-weight:700}.moved-account-widget strong:lang(zh-HK),.moved-account-widget a:lang(zh-HK){font-weight:700}.moved-account-widget strong:lang(zh-TW),.moved-account-widget a:lang(zh-TW){font-weight:700}.moved-account-widget a{color:inherit;text-decoration:underline}.moved-account-widget a.mention{text-decoration:none}.moved-account-widget a.mention span{text-decoration:none}.moved-account-widget a.mention:focus,.moved-account-widget a.mention:hover,.moved-account-widget a.mention:active{text-decoration:none}.moved-account-widget a.mention:focus span,.moved-account-widget a.mention:hover span,.moved-account-widget a.mention:active span{text-decoration:underline}.moved-account-widget__message{margin-bottom:15px}.moved-account-widget__message .fa{margin-right:5px;color:#282c37}.moved-account-widget__card .detailed-status__display-avatar{position:relative;cursor:pointer}.moved-account-widget__card .detailed-status__display-name{margin-bottom:0;text-decoration:none}.moved-account-widget__card .detailed-status__display-name span{font-weight:400}.memoriam-widget{padding:20px;border-radius:4px;background:#000;box-shadow:0 0 15px rgba(0,0,0,.2);font-size:14px;color:#282c37;margin-bottom:10px}.page-header{background:#c0cdd9;box-shadow:0 0 15px rgba(0,0,0,.2);border-radius:4px;padding:60px 15px;text-align:center;margin:10px 0}.page-header h1{color:#000;font-size:36px;line-height:1.1;font-weight:700;margin-bottom:10px}.page-header p{font-size:15px;color:#282c37}@media screen and (max-width: 415px){.page-header{margin-top:0;background:#ccd7e0}.page-header h1{font-size:24px}}.directory{background:#d9e1e8;border-radius:4px;box-shadow:0 0 15px rgba(0,0,0,.2)}.directory__tag{box-sizing:border-box;margin-bottom:10px}.directory__tag>a,.directory__tag>div{display:flex;align-items:center;justify-content:space-between;background:#d9e1e8;border-radius:4px;padding:15px;text-decoration:none;color:inherit;box-shadow:0 0 15px rgba(0,0,0,.2)}.directory__tag>a:hover,.directory__tag>a:active,.directory__tag>a:focus{background:#c0cdd9}.directory__tag.active>a{background:#2b90d9;cursor:default}.directory__tag.disabled>div{opacity:.5;cursor:default}.directory__tag h4{flex:1 1 auto;font-size:18px;font-weight:700;color:#000;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.directory__tag h4 .fa{color:#282c37}.directory__tag h4 small{display:block;font-weight:400;font-size:15px;margin-top:8px;color:#282c37}.directory__tag.active h4,.directory__tag.active h4 .fa,.directory__tag.active h4 small,.directory__tag.active h4 .trends__item__current{color:#000}.directory__tag .avatar-stack{flex:0 0 auto;width:120px}.directory__tag.active .avatar-stack .account__avatar{border-color:#2b90d9}.directory__tag .trends__item__current{padding-right:0}.avatar-stack{display:flex;justify-content:flex-end}.avatar-stack .account__avatar{flex:0 0 auto;width:36px;height:36px;border-radius:50%;position:relative;margin-left:-10px;background:#f2f5f7;border:2px solid #d9e1e8}.avatar-stack .account__avatar:nth-child(1){z-index:1}.avatar-stack .account__avatar:nth-child(2){z-index:2}.avatar-stack .account__avatar:nth-child(3){z-index:3}.accounts-table{width:100%}.accounts-table .account{padding:0;border:0}.accounts-table strong{font-weight:700}.accounts-table thead th{text-align:center;text-transform:uppercase;color:#282c37;font-weight:700;padding:10px}.accounts-table thead th:first-child{text-align:left}.accounts-table tbody td{padding:15px 0;vertical-align:middle;border-bottom:1px solid #c0cdd9}.accounts-table tbody tr:last-child td{border-bottom:0}.accounts-table__count{width:120px;text-align:center;font-size:15px;font-weight:500;color:#000}.accounts-table__count small{display:block;color:#282c37;font-weight:400;font-size:14px}.accounts-table__comment{width:50%;vertical-align:initial !important}@media screen and (max-width: 415px){.accounts-table tbody td.optional{display:none}}@media screen and (max-width: 415px){.moved-account-widget,.memoriam-widget,.box-widget,.contact-widget,.landing-page__information.contact-widget,.directory,.page-header{margin-bottom:0;box-shadow:none;border-radius:0}}.statuses-grid{min-height:600px}@media screen and (max-width: 640px){.statuses-grid{width:100% !important}}.statuses-grid__item{width:313.3333333333px}@media screen and (max-width: 1255px){.statuses-grid__item{width:306.6666666667px}}@media screen and (max-width: 640px){.statuses-grid__item{width:100%}}@media screen and (max-width: 415px){.statuses-grid__item{width:100vw}}.statuses-grid .detailed-status{border-radius:4px}@media screen and (max-width: 415px){.statuses-grid .detailed-status{border-top:1px solid #a6b9c9}}.statuses-grid .detailed-status.compact .detailed-status__meta{margin-top:15px}.statuses-grid .detailed-status.compact .status__content{font-size:15px;line-height:20px}.statuses-grid .detailed-status.compact .status__content .emojione{width:20px;height:20px;margin:-3px 0 0}.statuses-grid .detailed-status.compact .status__content .status__content__spoiler-link{line-height:20px;margin:0}.statuses-grid .detailed-status.compact .media-gallery,.statuses-grid .detailed-status.compact .status-card,.statuses-grid .detailed-status.compact .video-player{margin-top:15px}.notice-widget{margin-bottom:10px;color:#282c37}.notice-widget p{margin-bottom:10px}.notice-widget p:last-child{margin-bottom:0}.notice-widget a{font-size:14px;line-height:20px}.notice-widget a,.placeholder-widget a{text-decoration:none;font-weight:500;color:#2b90d9}.notice-widget a:hover,.notice-widget a:focus,.notice-widget a:active,.placeholder-widget a:hover,.placeholder-widget a:focus,.placeholder-widget a:active{text-decoration:underline}.table-of-contents{background:#e6ebf0;min-height:100%;font-size:14px;border-radius:4px}.table-of-contents li a{display:block;font-weight:500;padding:15px;overflow:hidden;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-decoration:none;color:#000;border-bottom:1px solid #ccd7e0}.table-of-contents li a:hover,.table-of-contents li a:focus,.table-of-contents li a:active{text-decoration:underline}.table-of-contents li:last-child a{border-bottom:0}.table-of-contents li ul{padding-left:20px;border-bottom:1px solid #ccd7e0}code{font-family:\"mastodon-font-monospace\",monospace;font-weight:400}.form-container{max-width:400px;padding:20px;margin:0 auto}.simple_form .input{margin-bottom:15px;overflow:hidden}.simple_form .input.hidden{margin:0}.simple_form .input.radio_buttons .radio{margin-bottom:15px}.simple_form .input.radio_buttons .radio:last-child{margin-bottom:0}.simple_form .input.radio_buttons .radio>label{position:relative;padding-left:28px}.simple_form .input.radio_buttons .radio>label input{position:absolute;top:-2px;left:0}.simple_form .input.boolean{position:relative;margin-bottom:0}.simple_form .input.boolean .label_input>label{font-family:inherit;font-size:14px;padding-top:5px;color:#000;display:block;width:auto}.simple_form .input.boolean .label_input,.simple_form .input.boolean .hint{padding-left:28px}.simple_form .input.boolean .label_input__wrapper{position:static}.simple_form .input.boolean label.checkbox{position:absolute;top:2px;left:0}.simple_form .input.boolean label a{color:#2b90d9;text-decoration:underline}.simple_form .input.boolean label a:hover,.simple_form .input.boolean label a:active,.simple_form .input.boolean label a:focus{text-decoration:none}.simple_form .input.boolean .recommended{position:absolute;margin:0 4px;margin-top:-2px}.simple_form .row{display:flex;margin:0 -5px}.simple_form .row .input{box-sizing:border-box;flex:1 1 auto;width:50%;padding:0 5px}.simple_form .hint{color:#282c37}.simple_form .hint a{color:#2b90d9}.simple_form .hint code{border-radius:3px;padding:.2em .4em;background:#fff}.simple_form .hint li{list-style:disc;margin-left:18px}.simple_form ul.hint{margin-bottom:15px}.simple_form span.hint{display:block;font-size:12px;margin-top:4px}.simple_form p.hint{margin-bottom:15px;color:#282c37}.simple_form p.hint.subtle-hint{text-align:center;font-size:12px;line-height:18px;margin-top:15px;margin-bottom:0}.simple_form .card{margin-bottom:15px}.simple_form strong{font-weight:500}.simple_form strong:lang(ja){font-weight:700}.simple_form strong:lang(ko){font-weight:700}.simple_form strong:lang(zh-CN){font-weight:700}.simple_form strong:lang(zh-HK){font-weight:700}.simple_form strong:lang(zh-TW){font-weight:700}.simple_form .input.with_floating_label .label_input{display:flex}.simple_form .input.with_floating_label .label_input>label{font-family:inherit;font-size:14px;color:#000;font-weight:500;min-width:150px;flex:0 0 auto}.simple_form .input.with_floating_label .label_input input,.simple_form .input.with_floating_label .label_input select{flex:1 1 auto}.simple_form .input.with_floating_label.select .hint{margin-top:6px;margin-left:150px}.simple_form .input.with_label .label_input>label{font-family:inherit;font-size:14px;color:#000;display:block;margin-bottom:8px;word-wrap:break-word;font-weight:500}.simple_form .input.with_label .hint{margin-top:6px}.simple_form .input.with_label ul{flex:390px}.simple_form .input.with_block_label{max-width:none}.simple_form .input.with_block_label>label{font-family:inherit;font-size:16px;color:#000;display:block;font-weight:500;padding-top:5px}.simple_form .input.with_block_label .hint{margin-bottom:15px}.simple_form .input.with_block_label ul{columns:2}.simple_form .input.datetime .label_input select{display:inline-block;width:auto;flex:0}.simple_form .required abbr{text-decoration:none;color:#c1203b}.simple_form .fields-group{margin-bottom:25px}.simple_form .fields-group .input:last-child{margin-bottom:0}.simple_form .fields-row{display:flex;margin:0 -10px;padding-top:5px;margin-bottom:25px}.simple_form .fields-row .input{max-width:none}.simple_form .fields-row__column{box-sizing:border-box;padding:0 10px;flex:1 1 auto;min-height:1px}.simple_form .fields-row__column-6{max-width:50%}.simple_form .fields-row__column .actions{margin-top:27px}.simple_form .fields-row .fields-group:last-child,.simple_form .fields-row .fields-row__column.fields-group{margin-bottom:0}@media screen and (max-width: 600px){.simple_form .fields-row{display:block;margin-bottom:0}.simple_form .fields-row__column{max-width:none}.simple_form .fields-row .fields-group:last-child,.simple_form .fields-row .fields-row__column.fields-group,.simple_form .fields-row .fields-row__column{margin-bottom:25px}}.simple_form .input.radio_buttons .radio label{margin-bottom:5px;font-family:inherit;font-size:14px;color:#000;display:block;width:auto}.simple_form .check_boxes .checkbox label{font-family:inherit;font-size:14px;color:#000;display:inline-block;width:auto;position:relative;padding-top:5px;padding-left:25px;flex:1 1 auto}.simple_form .check_boxes .checkbox input[type=checkbox]{position:absolute;left:0;top:5px;margin:0}.simple_form .input.static .label_input__wrapper{font-size:16px;padding:10px;border:1px solid #444b5d;border-radius:4px}.simple_form input[type=text],.simple_form input[type=number],.simple_form input[type=email],.simple_form input[type=password],.simple_form textarea{box-sizing:border-box;font-size:16px;color:#000;display:block;width:100%;outline:0;font-family:inherit;resize:vertical;background:#f9fafb;border:1px solid #fff;border-radius:4px;padding:10px}.simple_form input[type=text]::placeholder,.simple_form input[type=number]::placeholder,.simple_form input[type=email]::placeholder,.simple_form input[type=password]::placeholder,.simple_form textarea::placeholder{color:#1f232b}.simple_form input[type=text]:invalid,.simple_form input[type=number]:invalid,.simple_form input[type=email]:invalid,.simple_form input[type=password]:invalid,.simple_form textarea:invalid{box-shadow:none}.simple_form input[type=text]:focus:invalid:not(:placeholder-shown),.simple_form input[type=number]:focus:invalid:not(:placeholder-shown),.simple_form input[type=email]:focus:invalid:not(:placeholder-shown),.simple_form input[type=password]:focus:invalid:not(:placeholder-shown),.simple_form textarea:focus:invalid:not(:placeholder-shown){border-color:#c1203b}.simple_form input[type=text]:required:valid,.simple_form input[type=number]:required:valid,.simple_form input[type=email]:required:valid,.simple_form input[type=password]:required:valid,.simple_form textarea:required:valid{border-color:#4a905f}.simple_form input[type=text]:hover,.simple_form input[type=number]:hover,.simple_form input[type=email]:hover,.simple_form input[type=password]:hover,.simple_form textarea:hover{border-color:#fff}.simple_form input[type=text]:active,.simple_form input[type=text]:focus,.simple_form input[type=number]:active,.simple_form input[type=number]:focus,.simple_form input[type=email]:active,.simple_form input[type=email]:focus,.simple_form input[type=password]:active,.simple_form input[type=password]:focus,.simple_form textarea:active,.simple_form textarea:focus{border-color:#2b90d9;background:#f2f5f7}.simple_form .input.field_with_errors label{color:#c1203b}.simple_form .input.field_with_errors input[type=text],.simple_form .input.field_with_errors input[type=number],.simple_form .input.field_with_errors input[type=email],.simple_form .input.field_with_errors input[type=password],.simple_form .input.field_with_errors textarea,.simple_form .input.field_with_errors select{border-color:#c1203b}.simple_form .input.field_with_errors .error{display:block;font-weight:500;color:#c1203b;margin-top:4px}.simple_form .input.disabled{opacity:.5}.simple_form .actions{margin-top:30px;display:flex}.simple_form .actions.actions--top{margin-top:0;margin-bottom:30px}.simple_form button,.simple_form .button,.simple_form .block-button{display:block;width:100%;border:0;border-radius:4px;background:#2b90d9;color:#000;font-size:18px;line-height:inherit;height:auto;padding:10px;text-transform:uppercase;text-decoration:none;text-align:center;box-sizing:border-box;cursor:pointer;font-weight:500;outline:0;margin-bottom:10px;margin-right:10px}.simple_form button:last-child,.simple_form .button:last-child,.simple_form .block-button:last-child{margin-right:0}.simple_form button:hover,.simple_form .button:hover,.simple_form .block-button:hover{background-color:#2482c7}.simple_form button:active,.simple_form button:focus,.simple_form .button:active,.simple_form .button:focus,.simple_form .block-button:active,.simple_form .block-button:focus{background-color:#419bdd}.simple_form button:disabled:hover,.simple_form .button:disabled:hover,.simple_form .block-button:disabled:hover{background-color:#9bcbed}.simple_form button.negative,.simple_form .button.negative,.simple_form .block-button.negative{background:#df405a}.simple_form button.negative:hover,.simple_form .button.negative:hover,.simple_form .block-button.negative:hover{background-color:#db2a47}.simple_form button.negative:active,.simple_form button.negative:focus,.simple_form .button.negative:active,.simple_form .button.negative:focus,.simple_form .block-button.negative:active,.simple_form .block-button.negative:focus{background-color:#e3566d}.simple_form select{appearance:none;box-sizing:border-box;font-size:16px;color:#000;display:block;width:100%;outline:0;font-family:inherit;resize:vertical;background:#f9fafb url(\"data:image/svg+xml;utf8,\") no-repeat right 8px center/auto 16px;border:1px solid #fff;border-radius:4px;padding-left:10px;padding-right:30px;height:41px}.simple_form h4{margin-bottom:15px !important}.simple_form .label_input__wrapper{position:relative}.simple_form .label_input__append{position:absolute;right:3px;top:1px;padding:10px;padding-bottom:9px;font-size:16px;color:#444b5d;font-family:inherit;pointer-events:none;cursor:default;max-width:140px;white-space:nowrap;overflow:hidden}.simple_form .label_input__append::after{content:\"\";display:block;position:absolute;top:0;right:0;bottom:1px;width:5px;background-image:linear-gradient(to right, rgba(249, 250, 251, 0), #f9fafb)}.simple_form__overlay-area{position:relative}.simple_form__overlay-area__blurred form{filter:blur(2px)}.simple_form__overlay-area__overlay{position:absolute;top:0;left:0;width:100%;height:100%;display:flex;justify-content:center;align-items:center;background:rgba(217,225,232,.65);border-radius:4px;margin-left:-4px;margin-top:-4px;padding:4px}.simple_form__overlay-area__overlay__content{text-align:center}.simple_form__overlay-area__overlay__content.rich-formatting,.simple_form__overlay-area__overlay__content.rich-formatting p{color:#000}.block-icon{display:block;margin:0 auto;margin-bottom:10px;font-size:24px}.flash-message{background:#c0cdd9;color:#282c37;border-radius:4px;padding:15px 10px;margin-bottom:30px;text-align:center}.flash-message.notice{border:1px solid rgba(74,144,95,.5);background:rgba(74,144,95,.25);color:#4a905f}.flash-message.alert{border:1px solid rgba(223,64,90,.5);background:rgba(223,64,90,.25);color:#df405a}.flash-message a{display:inline-block;color:#282c37;text-decoration:none}.flash-message a:hover{color:#000;text-decoration:underline}.flash-message p{margin-bottom:15px}.flash-message .oauth-code{outline:0;box-sizing:border-box;display:block;width:100%;border:0;padding:10px;font-family:\"mastodon-font-monospace\",monospace;background:#d9e1e8;color:#000;font-size:14px;margin:0}.flash-message .oauth-code::-moz-focus-inner{border:0}.flash-message .oauth-code::-moz-focus-inner,.flash-message .oauth-code:focus,.flash-message .oauth-code:active{outline:0 !important}.flash-message .oauth-code:focus{background:#ccd7e0}.flash-message strong{font-weight:500}.flash-message strong:lang(ja){font-weight:700}.flash-message strong:lang(ko){font-weight:700}.flash-message strong:lang(zh-CN){font-weight:700}.flash-message strong:lang(zh-HK){font-weight:700}.flash-message strong:lang(zh-TW){font-weight:700}@media screen and (max-width: 740px)and (min-width: 441px){.flash-message{margin-top:40px}}.form-footer{margin-top:30px;text-align:center}.form-footer a{color:#282c37;text-decoration:none}.form-footer a:hover{text-decoration:underline}.quick-nav{list-style:none;margin-bottom:25px;font-size:14px}.quick-nav li{display:inline-block;margin-right:10px}.quick-nav a{color:#2b90d9;text-transform:uppercase;text-decoration:none;font-weight:700}.quick-nav a:hover,.quick-nav a:focus,.quick-nav a:active{color:#217aba}.oauth-prompt,.follow-prompt{margin-bottom:30px;color:#282c37}.oauth-prompt h2,.follow-prompt h2{font-size:16px;margin-bottom:30px;text-align:center}.oauth-prompt strong,.follow-prompt strong{color:#282c37;font-weight:500}.oauth-prompt strong:lang(ja),.follow-prompt strong:lang(ja){font-weight:700}.oauth-prompt strong:lang(ko),.follow-prompt strong:lang(ko){font-weight:700}.oauth-prompt strong:lang(zh-CN),.follow-prompt strong:lang(zh-CN){font-weight:700}.oauth-prompt strong:lang(zh-HK),.follow-prompt strong:lang(zh-HK){font-weight:700}.oauth-prompt strong:lang(zh-TW),.follow-prompt strong:lang(zh-TW){font-weight:700}@media screen and (max-width: 740px)and (min-width: 441px){.oauth-prompt,.follow-prompt{margin-top:40px}}.qr-wrapper{display:flex;flex-wrap:wrap;align-items:flex-start}.qr-code{flex:0 0 auto;background:#fff;padding:4px;margin:0 10px 20px 0;box-shadow:0 0 15px rgba(0,0,0,.2);display:inline-block}.qr-code svg{display:block;margin:0}.qr-alternative{margin-bottom:20px;color:#282c37;flex:150px}.qr-alternative samp{display:block;font-size:14px}.table-form p{margin-bottom:15px}.table-form p strong{font-weight:500}.table-form p strong:lang(ja){font-weight:700}.table-form p strong:lang(ko){font-weight:700}.table-form p strong:lang(zh-CN){font-weight:700}.table-form p strong:lang(zh-HK){font-weight:700}.table-form p strong:lang(zh-TW){font-weight:700}.simple_form .warning,.table-form .warning{box-sizing:border-box;background:rgba(223,64,90,.5);color:#000;text-shadow:1px 1px 0 rgba(0,0,0,.3);box-shadow:0 2px 6px rgba(0,0,0,.4);border-radius:4px;padding:10px;margin-bottom:15px}.simple_form .warning a,.table-form .warning a{color:#000;text-decoration:underline}.simple_form .warning a:hover,.simple_form .warning a:focus,.simple_form .warning a:active,.table-form .warning a:hover,.table-form .warning a:focus,.table-form .warning a:active{text-decoration:none}.simple_form .warning strong,.table-form .warning strong{font-weight:600;display:block;margin-bottom:5px}.simple_form .warning strong:lang(ja),.table-form .warning strong:lang(ja){font-weight:700}.simple_form .warning strong:lang(ko),.table-form .warning strong:lang(ko){font-weight:700}.simple_form .warning strong:lang(zh-CN),.table-form .warning strong:lang(zh-CN){font-weight:700}.simple_form .warning strong:lang(zh-HK),.table-form .warning strong:lang(zh-HK){font-weight:700}.simple_form .warning strong:lang(zh-TW),.table-form .warning strong:lang(zh-TW){font-weight:700}.simple_form .warning strong .fa,.table-form .warning strong .fa{font-weight:400}.action-pagination{display:flex;flex-wrap:wrap;align-items:center}.action-pagination .actions,.action-pagination .pagination{flex:1 1 auto}.action-pagination .actions{padding:30px 0;padding-right:20px;flex:0 0 auto}.post-follow-actions{text-align:center;color:#282c37}.post-follow-actions div{margin-bottom:4px}.alternative-login{margin-top:20px;margin-bottom:20px}.alternative-login h4{font-size:16px;color:#000;text-align:center;margin-bottom:20px;border:0;padding:0}.alternative-login .button{display:block}.scope-danger{color:#ff5050}.form_admin_settings_site_short_description textarea,.form_admin_settings_site_description textarea,.form_admin_settings_site_extended_description textarea,.form_admin_settings_site_terms textarea,.form_admin_settings_custom_css textarea,.form_admin_settings_closed_registrations_message textarea{font-family:\"mastodon-font-monospace\",monospace}.input-copy{background:#f9fafb;border:1px solid #fff;border-radius:4px;display:flex;align-items:center;padding-right:4px;position:relative;top:1px;transition:border-color 300ms linear}.input-copy__wrapper{flex:1 1 auto}.input-copy input[type=text]{background:transparent;border:0;padding:10px;font-size:14px;font-family:\"mastodon-font-monospace\",monospace}.input-copy button{flex:0 0 auto;margin:4px;text-transform:none;font-weight:400;font-size:14px;padding:7px 18px;padding-bottom:6px;width:auto;transition:background 300ms linear}.input-copy.copied{border-color:#4a905f;transition:none}.input-copy.copied button{background:#4a905f;transition:none}.connection-prompt{margin-bottom:25px}.connection-prompt .fa-link{background-color:#e6ebf0;border-radius:100%;font-size:24px;padding:10px}.connection-prompt__column{align-items:center;display:flex;flex:1;flex-direction:column;flex-shrink:1;max-width:50%}.connection-prompt__column-sep{align-self:center;flex-grow:0;overflow:visible;position:relative;z-index:1}.connection-prompt__column p{word-break:break-word}.connection-prompt .account__avatar{margin-bottom:20px}.connection-prompt__connection{background-color:#c0cdd9;box-shadow:0 0 15px rgba(0,0,0,.2);border-radius:4px;padding:25px 10px;position:relative;text-align:center}.connection-prompt__connection::after{background-color:#e6ebf0;content:\"\";display:block;height:100%;left:50%;position:absolute;top:0;width:1px}.connection-prompt__row{align-items:flex-start;display:flex;flex-direction:row}.card>a{display:block;text-decoration:none;color:inherit;box-shadow:0 0 15px rgba(0,0,0,.2)}@media screen and (max-width: 415px){.card>a{box-shadow:none}}.card>a:hover .card__bar,.card>a:active .card__bar,.card>a:focus .card__bar{background:#c0cdd9}.card__img{height:130px;position:relative;background:#fff;border-radius:4px 4px 0 0}.card__img img{display:block;width:100%;height:100%;margin:0;object-fit:cover;border-radius:4px 4px 0 0}@media screen and (max-width: 600px){.card__img{height:200px}}@media screen and (max-width: 415px){.card__img{display:none}}.card__bar{position:relative;padding:15px;display:flex;justify-content:flex-start;align-items:center;background:#ccd7e0;border-radius:0 0 4px 4px}@media screen and (max-width: 415px){.card__bar{border-radius:0}}.card__bar .avatar{flex:0 0 auto;width:48px;height:48px;padding-top:2px}.card__bar .avatar img{width:100%;height:100%;display:block;margin:0;border-radius:4px;background:#f2f5f7;object-fit:cover}.card__bar .display-name{margin-left:15px;text-align:left}.card__bar .display-name strong{font-size:15px;color:#000;font-weight:500;overflow:hidden;text-overflow:ellipsis}.card__bar .display-name span{display:block;font-size:14px;color:#282c37;font-weight:400;overflow:hidden;text-overflow:ellipsis}.pagination{padding:30px 0;text-align:center;overflow:hidden}.pagination a,.pagination .current,.pagination .newer,.pagination .older,.pagination .page,.pagination .gap{font-size:14px;color:#000;font-weight:500;display:inline-block;padding:6px 10px;text-decoration:none}.pagination .current{background:#fff;border-radius:100px;color:#000;cursor:default;margin:0 10px}.pagination .gap{cursor:default}.pagination .older,.pagination .newer{text-transform:uppercase;color:#282c37}.pagination .older{float:left;padding-left:0}.pagination .older .fa{display:inline-block;margin-right:5px}.pagination .newer{float:right;padding-right:0}.pagination .newer .fa{display:inline-block;margin-left:5px}.pagination .disabled{cursor:default;color:#000}@media screen and (max-width: 700px){.pagination{padding:30px 20px}.pagination .page{display:none}.pagination .newer,.pagination .older{display:inline-block}}.nothing-here{background:#d9e1e8;box-shadow:0 0 15px rgba(0,0,0,.2);color:#444b5d;font-size:14px;font-weight:500;text-align:center;display:flex;justify-content:center;align-items:center;cursor:default;border-radius:4px;padding:20px;min-height:30vh}.nothing-here--under-tabs{border-radius:0 0 4px 4px}.nothing-here--flexible{box-sizing:border-box;min-height:100%}.account-role,.simple_form .recommended{display:inline-block;padding:4px 6px;cursor:default;border-radius:3px;font-size:12px;line-height:12px;font-weight:500;color:#282c37;background-color:rgba(40,44,55,.1);border:1px solid rgba(40,44,55,.5)}.account-role.moderator,.simple_form .recommended.moderator{color:#4a905f;background-color:rgba(74,144,95,.1);border-color:rgba(74,144,95,.5)}.account-role.admin,.simple_form .recommended.admin{color:#c1203b;background-color:rgba(193,32,59,.1);border-color:rgba(193,32,59,.5)}.account__header__fields{max-width:100vw;padding:0;margin:15px -15px -15px;border:0 none;border-top:1px solid #b3c3d1;border-bottom:1px solid #b3c3d1;font-size:14px;line-height:20px}.account__header__fields dl{display:flex;border-bottom:1px solid #b3c3d1}.account__header__fields dt,.account__header__fields dd{box-sizing:border-box;padding:14px;text-align:center;max-height:48px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.account__header__fields dt{font-weight:500;width:120px;flex:0 0 auto;color:#282c37;background:rgba(242,245,247,.5)}.account__header__fields dd{flex:1 1 auto;color:#282c37}.account__header__fields a{color:#2b90d9;text-decoration:none}.account__header__fields a:hover,.account__header__fields a:focus,.account__header__fields a:active{text-decoration:underline}.account__header__fields .verified{border:1px solid rgba(74,144,95,.5);background:rgba(74,144,95,.25)}.account__header__fields .verified a{color:#4a905f;font-weight:500}.account__header__fields .verified__mark{color:#4a905f}.account__header__fields dl:last-child{border-bottom:0}.directory__tag .trends__item__current{width:auto}.pending-account__header{color:#282c37}.pending-account__header a{color:#282c37;text-decoration:none}.pending-account__header a:hover,.pending-account__header a:active,.pending-account__header a:focus{text-decoration:underline}.pending-account__header strong{color:#000;font-weight:700}.pending-account__body{margin-top:10px}.activity-stream{box-shadow:0 0 15px rgba(0,0,0,.2);border-radius:4px;overflow:hidden;margin-bottom:10px}.activity-stream--under-tabs{border-radius:0 0 4px 4px}@media screen and (max-width: 415px){.activity-stream{margin-bottom:0;border-radius:0;box-shadow:none}}.activity-stream--headless{border-radius:0;margin:0;box-shadow:none}.activity-stream--headless .detailed-status,.activity-stream--headless .status{border-radius:0 !important}.activity-stream div[data-component]{width:100%}.activity-stream .entry{background:#d9e1e8}.activity-stream .entry .detailed-status,.activity-stream .entry .status,.activity-stream .entry .load-more{animation:none}.activity-stream .entry:last-child .detailed-status,.activity-stream .entry:last-child .status,.activity-stream .entry:last-child .load-more{border-bottom:0;border-radius:0 0 4px 4px}.activity-stream .entry:first-child .detailed-status,.activity-stream .entry:first-child .status,.activity-stream .entry:first-child .load-more{border-radius:4px 4px 0 0}.activity-stream .entry:first-child:last-child .detailed-status,.activity-stream .entry:first-child:last-child .status,.activity-stream .entry:first-child:last-child .load-more{border-radius:4px}@media screen and (max-width: 740px){.activity-stream .entry .detailed-status,.activity-stream .entry .status,.activity-stream .entry .load-more{border-radius:0 !important}}.activity-stream--highlighted .entry{background:#c0cdd9}.button.logo-button{flex:0 auto;font-size:14px;background:#2b90d9;color:#000;text-transform:none;line-height:36px;height:auto;padding:3px 15px;border:0}.button.logo-button svg{width:20px;height:auto;vertical-align:middle;margin-right:5px;fill:#000}.button.logo-button:active,.button.logo-button:focus,.button.logo-button:hover{background:#2074b1}.button.logo-button:disabled:active,.button.logo-button:disabled:focus,.button.logo-button:disabled:hover,.button.logo-button.disabled:active,.button.logo-button.disabled:focus,.button.logo-button.disabled:hover{background:#9bcbed}.button.logo-button.button--destructive:active,.button.logo-button.button--destructive:focus,.button.logo-button.button--destructive:hover{background:#df405a}@media screen and (max-width: 415px){.button.logo-button svg{display:none}}.embed .detailed-status,.public-layout .detailed-status{padding:15px}.embed .status,.public-layout .status{padding:15px 15px 15px 78px;min-height:50px}.embed .status__avatar,.public-layout .status__avatar{left:15px;top:17px}.embed .status__content,.public-layout .status__content{padding-top:5px}.embed .status__prepend,.public-layout .status__prepend{margin-left:78px;padding-top:15px}.embed .status__prepend-icon-wrapper,.public-layout .status__prepend-icon-wrapper{left:-32px}.embed .status .media-gallery,.embed .status__action-bar,.embed .status .video-player,.public-layout .status .media-gallery,.public-layout .status__action-bar,.public-layout .status .video-player{margin-top:10px}button.icon-button i.fa-retweet{background-image:url(\"data:image/svg+xml;utf8,\")}button.icon-button i.fa-retweet:hover{background-image:url(\"data:image/svg+xml;utf8,\")}button.icon-button.disabled i.fa-retweet{background-image:url(\"data:image/svg+xml;utf8,\")}.app-body{-webkit-overflow-scrolling:touch;-ms-overflow-style:-ms-autohiding-scrollbar}.animated-number{display:inline-flex;flex-direction:column;align-items:stretch;overflow:hidden;position:relative}.link-button{display:block;font-size:15px;line-height:20px;color:#2b90d9;border:0;background:transparent;padding:0;cursor:pointer}.link-button:hover,.link-button:active{text-decoration:underline}.link-button:disabled{color:#9bcbed;cursor:default}.button{background-color:#2b90d9;border:10px none;border-radius:4px;box-sizing:border-box;color:#000;cursor:pointer;display:inline-block;font-family:inherit;font-size:14px;font-weight:500;height:36px;letter-spacing:0;line-height:36px;overflow:hidden;padding:0 16px;position:relative;text-align:center;text-transform:uppercase;text-decoration:none;text-overflow:ellipsis;transition:all 100ms ease-in;white-space:nowrap;width:auto}.button:active,.button:focus,.button:hover{background-color:#2074b1;transition:all 200ms ease-out}.button--destructive{transition:none}.button--destructive:active,.button--destructive:focus,.button--destructive:hover{background-color:#df405a;transition:none}.button:disabled,.button.disabled{background-color:#9bcbed;cursor:default}.button::-moz-focus-inner{border:0}.button::-moz-focus-inner,.button:focus,.button:active{outline:0 !important}.button.button-primary,.button.button-alternative,.button.button-secondary,.button.button-alternative-2{font-size:16px;line-height:36px;height:auto;text-transform:none;padding:4px 16px}.button.button-alternative{color:#000;background:#9bcbed}.button.button-alternative:active,.button.button-alternative:focus,.button.button-alternative:hover{background-color:#8ac2ea}.button.button-alternative-2{background:#b0c0cf}.button.button-alternative-2:active,.button.button-alternative-2:focus,.button.button-alternative-2:hover{background-color:#a3b6c7}.button.button-secondary{color:#282c37;background:transparent;padding:3px 15px;border:1px solid #9bcbed}.button.button-secondary:active,.button.button-secondary:focus,.button.button-secondary:hover{border-color:#8ac2ea;color:#1f232b}.button.button-secondary:disabled{opacity:.5}.button.button--block{display:block;width:100%}.column__wrapper{display:flex;flex:1 1 auto;position:relative}.icon-button{display:inline-block;padding:0;color:#606984;border:0;border-radius:4px;background:transparent;cursor:pointer;transition:all 100ms ease-in;transition-property:background-color,color}.icon-button:hover,.icon-button:active,.icon-button:focus{color:#51596f;background-color:rgba(96,105,132,.15);transition:all 200ms ease-out;transition-property:background-color,color}.icon-button:focus{background-color:rgba(96,105,132,.3)}.icon-button.disabled{color:#828ba4;background-color:transparent;cursor:default}.icon-button.active{color:#2b90d9}.icon-button::-moz-focus-inner{border:0}.icon-button::-moz-focus-inner,.icon-button:focus,.icon-button:active{outline:0 !important}.icon-button.inverted{color:#282c37}.icon-button.inverted:hover,.icon-button.inverted:active,.icon-button.inverted:focus{color:#373d4c;background-color:rgba(40,44,55,.15)}.icon-button.inverted:focus{background-color:rgba(40,44,55,.3)}.icon-button.inverted.disabled{color:#191b22;background-color:transparent}.icon-button.inverted.active{color:#2b90d9}.icon-button.inverted.active.disabled{color:#1d6ca4}.icon-button.overlayed{box-sizing:content-box;background:rgba(255,255,255,.6);color:rgba(0,0,0,.7);border-radius:4px;padding:2px}.icon-button.overlayed:hover{background:rgba(255,255,255,.9)}.text-icon-button{color:#282c37;border:0;border-radius:4px;background:transparent;cursor:pointer;font-weight:600;font-size:11px;padding:0 3px;line-height:27px;outline:0;transition:all 100ms ease-in;transition-property:background-color,color}.text-icon-button:hover,.text-icon-button:active,.text-icon-button:focus{color:#373d4c;background-color:rgba(40,44,55,.15);transition:all 200ms ease-out;transition-property:background-color,color}.text-icon-button:focus{background-color:rgba(40,44,55,.3)}.text-icon-button.disabled{color:#000;background-color:transparent;cursor:default}.text-icon-button.active{color:#2b90d9}.text-icon-button::-moz-focus-inner{border:0}.text-icon-button::-moz-focus-inner,.text-icon-button:focus,.text-icon-button:active{outline:0 !important}.dropdown-menu{position:absolute}.invisible{font-size:0;line-height:0;display:inline-block;width:0;height:0;position:absolute}.invisible img,.invisible svg{margin:0 !important;border:0 !important;padding:0 !important;width:0 !important;height:0 !important}.ellipsis::after{content:\"…\"}.compose-form{padding:10px}.compose-form__sensitive-button{padding:10px;padding-top:0;font-size:14px;font-weight:500}.compose-form__sensitive-button.active{color:#2b90d9}.compose-form__sensitive-button input[type=checkbox]{display:none}.compose-form__sensitive-button .checkbox{display:inline-block;position:relative;border:1px solid #9bcbed;box-sizing:border-box;width:18px;height:18px;flex:0 0 auto;margin-right:10px;top:-1px;border-radius:4px;vertical-align:middle}.compose-form__sensitive-button .checkbox.active{border-color:#2b90d9;background:#2b90d9}.compose-form .compose-form__warning{color:#000;margin-bottom:10px;background:#9bcbed;box-shadow:0 2px 6px rgba(0,0,0,.3);padding:8px 10px;border-radius:4px;font-size:13px;font-weight:400}.compose-form .compose-form__warning strong{color:#000;font-weight:500}.compose-form .compose-form__warning strong:lang(ja){font-weight:700}.compose-form .compose-form__warning strong:lang(ko){font-weight:700}.compose-form .compose-form__warning strong:lang(zh-CN){font-weight:700}.compose-form .compose-form__warning strong:lang(zh-HK){font-weight:700}.compose-form .compose-form__warning strong:lang(zh-TW){font-weight:700}.compose-form .compose-form__warning a{color:#282c37;font-weight:500;text-decoration:underline}.compose-form .compose-form__warning a:hover,.compose-form .compose-form__warning a:active,.compose-form .compose-form__warning a:focus{text-decoration:none}.compose-form .emoji-picker-dropdown{position:absolute;top:0;right:0}.compose-form .compose-form__autosuggest-wrapper{position:relative}.compose-form .autosuggest-textarea,.compose-form .autosuggest-input,.compose-form .spoiler-input{position:relative;width:100%}.compose-form .spoiler-input{height:0;transform-origin:bottom;opacity:0}.compose-form .spoiler-input.spoiler-input--visible{height:36px;margin-bottom:11px;opacity:1}.compose-form .autosuggest-textarea__textarea,.compose-form .spoiler-input__input{display:block;box-sizing:border-box;width:100%;margin:0;color:#000;background:#fff;padding:10px;font-family:inherit;font-size:14px;resize:vertical;border:0;outline:0}.compose-form .autosuggest-textarea__textarea::placeholder,.compose-form .spoiler-input__input::placeholder{color:#444b5d}.compose-form .autosuggest-textarea__textarea:focus,.compose-form .spoiler-input__input:focus{outline:0}@media screen and (max-width: 600px){.compose-form .autosuggest-textarea__textarea,.compose-form .spoiler-input__input{font-size:16px}}.compose-form .spoiler-input__input{border-radius:4px}.compose-form .autosuggest-textarea__textarea{min-height:100px;border-radius:4px 4px 0 0;padding-bottom:0;padding-right:32px;resize:none;scrollbar-color:initial}.compose-form .autosuggest-textarea__textarea::-webkit-scrollbar{all:unset}@media screen and (max-width: 600px){.compose-form .autosuggest-textarea__textarea{height:100px !important;resize:vertical}}.compose-form .autosuggest-textarea__suggestions-wrapper{position:relative;height:0}.compose-form .autosuggest-textarea__suggestions{box-sizing:border-box;display:none;position:absolute;top:100%;width:100%;z-index:99;box-shadow:4px 4px 6px rgba(0,0,0,.4);background:#282c37;border-radius:0 0 4px 4px;color:#000;font-size:14px;padding:6px}.compose-form .autosuggest-textarea__suggestions.autosuggest-textarea__suggestions--visible{display:block}.compose-form .autosuggest-textarea__suggestions__item{padding:10px;cursor:pointer;border-radius:4px}.compose-form .autosuggest-textarea__suggestions__item:hover,.compose-form .autosuggest-textarea__suggestions__item:focus,.compose-form .autosuggest-textarea__suggestions__item:active,.compose-form .autosuggest-textarea__suggestions__item.selected{background:#3d4455}.compose-form .autosuggest-account,.compose-form .autosuggest-emoji,.compose-form .autosuggest-hashtag{display:flex;flex-direction:row;align-items:center;justify-content:flex-start;line-height:18px;font-size:14px}.compose-form .autosuggest-hashtag{justify-content:space-between}.compose-form .autosuggest-hashtag__name{flex:1 1 auto;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.compose-form .autosuggest-hashtag strong{font-weight:500}.compose-form .autosuggest-hashtag__uses{flex:0 0 auto;text-align:right;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.compose-form .autosuggest-account-icon,.compose-form .autosuggest-emoji img{display:block;margin-right:8px;width:16px;height:16px}.compose-form .autosuggest-account .display-name__account{color:#282c37}.compose-form .compose-form__modifiers{color:#000;font-family:inherit;font-size:14px;background:#fff}.compose-form .compose-form__modifiers .compose-form__upload-wrapper{overflow:hidden}.compose-form .compose-form__modifiers .compose-form__uploads-wrapper{display:flex;flex-direction:row;padding:5px;flex-wrap:wrap}.compose-form .compose-form__modifiers .compose-form__upload{flex:1 1 0;min-width:40%;margin:5px}.compose-form .compose-form__modifiers .compose-form__upload__actions{background:linear-gradient(180deg, rgba(0, 0, 0, 0.8) 0, rgba(0, 0, 0, 0.35) 80%, transparent);display:flex;align-items:flex-start;justify-content:space-between;opacity:0;transition:opacity .1s ease}.compose-form .compose-form__modifiers .compose-form__upload__actions .icon-button{flex:0 1 auto;color:#282c37;font-size:14px;font-weight:500;padding:10px;font-family:inherit}.compose-form .compose-form__modifiers .compose-form__upload__actions .icon-button:hover,.compose-form .compose-form__modifiers .compose-form__upload__actions .icon-button:focus,.compose-form .compose-form__modifiers .compose-form__upload__actions .icon-button:active{color:#191b22}.compose-form .compose-form__modifiers .compose-form__upload__actions.active{opacity:1}.compose-form .compose-form__modifiers .compose-form__upload-description{position:absolute;z-index:2;bottom:0;left:0;right:0;box-sizing:border-box;background:linear-gradient(0deg, rgba(0, 0, 0, 0.8) 0, rgba(0, 0, 0, 0.35) 80%, transparent);padding:10px;opacity:0;transition:opacity .1s ease}.compose-form .compose-form__modifiers .compose-form__upload-description textarea{background:transparent;color:#282c37;border:0;padding:0;margin:0;width:100%;font-family:inherit;font-size:14px;font-weight:500}.compose-form .compose-form__modifiers .compose-form__upload-description textarea:focus{color:#fff}.compose-form .compose-form__modifiers .compose-form__upload-description textarea::placeholder{opacity:.75;color:#282c37}.compose-form .compose-form__modifiers .compose-form__upload-description.active{opacity:1}.compose-form .compose-form__modifiers .compose-form__upload-thumbnail{border-radius:4px;background-color:#000;background-position:center;background-size:cover;background-repeat:no-repeat;height:140px;width:100%;overflow:hidden}.compose-form .compose-form__buttons-wrapper{padding:10px;background:#fff;border-radius:0 0 4px 4px;display:flex;justify-content:space-between;flex:0 0 auto}.compose-form .compose-form__buttons-wrapper .compose-form__buttons{display:flex}.compose-form .compose-form__buttons-wrapper .compose-form__buttons .compose-form__upload-button-icon{line-height:27px}.compose-form .compose-form__buttons-wrapper .compose-form__buttons .compose-form__sensitive-button{display:none}.compose-form .compose-form__buttons-wrapper .compose-form__buttons .compose-form__sensitive-button.compose-form__sensitive-button--visible{display:block}.compose-form .compose-form__buttons-wrapper .compose-form__buttons .compose-form__sensitive-button .compose-form__sensitive-button__icon{line-height:27px}.compose-form .compose-form__buttons-wrapper .icon-button,.compose-form .compose-form__buttons-wrapper .text-icon-button{box-sizing:content-box;padding:0 3px}.compose-form .compose-form__buttons-wrapper .character-counter__wrapper{align-self:center;margin-right:4px}.compose-form .compose-form__publish{display:flex;justify-content:flex-end;min-width:0;flex:0 0 auto}.compose-form .compose-form__publish .compose-form__publish-button-wrapper{overflow:hidden;padding-top:10px}.character-counter{cursor:default;font-family:\"mastodon-font-sans-serif\",sans-serif;font-size:14px;font-weight:600;color:#282c37}.character-counter.character-counter--over{color:#ff5050}.no-reduce-motion .spoiler-input{transition:height .4s ease,opacity .4s ease}.emojione{font-size:inherit;vertical-align:middle;object-fit:contain;margin:-0.2ex .15em .2ex;width:16px;height:16px}.emojione img{width:auto}.reply-indicator{border-radius:4px;margin-bottom:10px;background:#9bcbed;padding:10px;min-height:23px;overflow-y:auto;flex:0 2 auto}.reply-indicator__header{margin-bottom:5px;overflow:hidden}.reply-indicator__cancel{float:right;line-height:24px}.reply-indicator__display-name{color:#000;display:block;max-width:100%;line-height:24px;overflow:hidden;padding-right:25px;text-decoration:none}.reply-indicator__display-avatar{float:left;margin-right:5px}.status__content--with-action{cursor:pointer}.status__content,.reply-indicator__content{position:relative;font-size:15px;line-height:20px;word-wrap:break-word;font-weight:400;overflow:hidden;text-overflow:ellipsis;padding-top:2px;color:#000}.status__content:focus,.reply-indicator__content:focus{outline:0}.status__content.status__content--with-spoiler,.reply-indicator__content.status__content--with-spoiler{white-space:normal}.status__content.status__content--with-spoiler .status__content__text,.reply-indicator__content.status__content--with-spoiler .status__content__text{white-space:pre-wrap}.status__content .emojione,.reply-indicator__content .emojione{width:20px;height:20px;margin:-3px 0 0}.status__content img,.reply-indicator__content img{max-width:100%;max-height:400px;object-fit:contain}.status__content p,.reply-indicator__content p{margin-bottom:20px;white-space:pre-wrap}.status__content p:last-child,.reply-indicator__content p:last-child{margin-bottom:0}.status__content a,.reply-indicator__content a{color:#d8a070;text-decoration:none}.status__content a:hover,.reply-indicator__content a:hover{text-decoration:underline}.status__content a:hover .fa,.reply-indicator__content a:hover .fa{color:#353a48}.status__content a.mention:hover,.reply-indicator__content a.mention:hover{text-decoration:none}.status__content a.mention:hover span,.reply-indicator__content a.mention:hover span{text-decoration:underline}.status__content a .fa,.reply-indicator__content a .fa{color:#444b5d}.status__content a.unhandled-link,.reply-indicator__content a.unhandled-link{color:#217aba}.status__content .status__content__spoiler-link,.reply-indicator__content .status__content__spoiler-link{background:#606984}.status__content .status__content__spoiler-link:hover,.reply-indicator__content .status__content__spoiler-link:hover{background:#51596f;text-decoration:none}.status__content .status__content__spoiler-link::-moz-focus-inner,.reply-indicator__content .status__content__spoiler-link::-moz-focus-inner{border:0}.status__content .status__content__spoiler-link::-moz-focus-inner,.status__content .status__content__spoiler-link:focus,.status__content .status__content__spoiler-link:active,.reply-indicator__content .status__content__spoiler-link::-moz-focus-inner,.reply-indicator__content .status__content__spoiler-link:focus,.reply-indicator__content .status__content__spoiler-link:active{outline:0 !important}.status__content .status__content__text,.reply-indicator__content .status__content__text{display:none}.status__content .status__content__text.status__content__text--visible,.reply-indicator__content .status__content__text.status__content__text--visible{display:block}.announcements__item__content{word-wrap:break-word;overflow-y:auto}.announcements__item__content .emojione{width:20px;height:20px;margin:-3px 0 0}.announcements__item__content p{margin-bottom:10px;white-space:pre-wrap}.announcements__item__content p:last-child{margin-bottom:0}.announcements__item__content a{color:#282c37;text-decoration:none}.announcements__item__content a:hover{text-decoration:underline}.announcements__item__content a.mention:hover{text-decoration:none}.announcements__item__content a.mention:hover span{text-decoration:underline}.announcements__item__content a.unhandled-link{color:#217aba}.status__content.status__content--collapsed{max-height:300px}.status__content__read-more-button{display:block;font-size:15px;line-height:20px;color:#217aba;border:0;background:transparent;padding:0;padding-top:8px;text-decoration:none}.status__content__read-more-button:hover,.status__content__read-more-button:active{text-decoration:underline}.status__content__spoiler-link{display:inline-block;border-radius:2px;background:transparent;border:0;color:#000;font-weight:700;font-size:11px;padding:0 6px;text-transform:uppercase;line-height:20px;cursor:pointer;vertical-align:middle}.status__wrapper--filtered{color:#444b5d;border:0;font-size:inherit;text-align:center;line-height:inherit;margin:0;padding:15px;box-sizing:border-box;width:100%;clear:both;border-bottom:1px solid #c0cdd9}.status__prepend-icon-wrapper{left:-26px;position:absolute}.focusable:focus{outline:0;background:#ccd7e0}.focusable:focus .status.status-direct{background:#b3c3d1}.focusable:focus .status.status-direct.muted{background:transparent}.focusable:focus .detailed-status,.focusable:focus .detailed-status__action-bar{background:#c0cdd9}.status{padding:8px 10px;padding-left:68px;position:relative;min-height:54px;border-bottom:1px solid #c0cdd9;cursor:default;opacity:1;animation:fade 150ms linear}@supports(-ms-overflow-style: -ms-autohiding-scrollbar){.status{padding-right:26px}}@keyframes fade{0%{opacity:0}100%{opacity:1}}.status .video-player,.status .audio-player{margin-top:8px}.status.status-direct:not(.read){background:#c0cdd9;border-bottom-color:#b3c3d1}.status.light .status__relative-time{color:#444b5d}.status.light .status__display-name{color:#000}.status.light .display-name{color:#444b5d}.status.light .display-name strong{color:#000}.status.light .status__content{color:#000}.status.light .status__content a{color:#2b90d9}.status.light .status__content a.status__content__spoiler-link{color:#000;background:#9bcbed}.status.light .status__content a.status__content__spoiler-link:hover{background:#78b9e7}.notification-favourite .status.status-direct{background:transparent}.notification-favourite .status.status-direct .icon-button.disabled{color:#444a5e}.status__relative-time,.notification__relative_time{color:#444b5d;float:right;font-size:14px}.status__display-name{color:#444b5d}.status__info .status__display-name{display:block;max-width:100%;padding-right:25px}.status__info{font-size:15px}.status-check-box{border-bottom:1px solid #282c37;display:flex}.status-check-box .status-check-box__status{margin:10px 0 10px 10px;flex:1;overflow:hidden}.status-check-box .status-check-box__status .media-gallery{max-width:250px}.status-check-box .status-check-box__status .status__content{padding:0;white-space:normal}.status-check-box .status-check-box__status .video-player,.status-check-box .status-check-box__status .audio-player{margin-top:8px;max-width:250px}.status-check-box .status-check-box__status .media-gallery__item-thumbnail{cursor:default}.status-check-box-toggle{align-items:center;display:flex;flex:0 0 auto;justify-content:center;padding:10px}.status__prepend{margin-left:68px;color:#444b5d;padding:8px 0;padding-bottom:2px;font-size:14px;position:relative}.status__prepend .status__display-name strong{color:#444b5d}.status__prepend>span{display:block;overflow:hidden;text-overflow:ellipsis}.status__action-bar{align-items:center;display:flex;margin-top:8px}.status__action-bar__counter{display:inline-flex;margin-right:11px;align-items:center}.status__action-bar__counter .status__action-bar-button{margin-right:4px}.status__action-bar__counter__label{display:inline-block;width:14px;font-size:12px;font-weight:500;color:#606984}.status__action-bar-button{margin-right:18px}.status__action-bar-dropdown{height:23.15px;width:23.15px}.detailed-status__action-bar-dropdown{flex:1 1 auto;display:flex;align-items:center;justify-content:center;position:relative}.detailed-status{background:#ccd7e0;padding:14px 10px}.detailed-status--flex{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-start}.detailed-status--flex .status__content,.detailed-status--flex .detailed-status__meta{flex:100%}.detailed-status .status__content{font-size:19px;line-height:24px}.detailed-status .status__content .emojione{width:24px;height:24px;margin:-1px 0 0}.detailed-status .status__content .status__content__spoiler-link{line-height:24px;margin:-1px 0 0}.detailed-status .video-player,.detailed-status .audio-player{margin-top:8px}.detailed-status__meta{margin-top:15px;color:#444b5d;font-size:14px;line-height:18px}.detailed-status__action-bar{background:#ccd7e0;border-top:1px solid #c0cdd9;border-bottom:1px solid #c0cdd9;display:flex;flex-direction:row;padding:10px 0}.detailed-status__link{color:inherit;text-decoration:none}.detailed-status__favorites,.detailed-status__reblogs{display:inline-block;font-weight:500;font-size:12px;margin-left:6px}.reply-indicator__content{color:#000;font-size:14px}.reply-indicator__content a{color:#282c37}.domain{padding:10px;border-bottom:1px solid #c0cdd9}.domain .domain__domain-name{flex:1 1 auto;display:block;color:#000;text-decoration:none;font-size:14px;font-weight:500}.domain__wrapper{display:flex}.domain_buttons{height:18px;padding:10px;white-space:nowrap}.account{padding:10px;border-bottom:1px solid #c0cdd9}.account.compact{padding:0;border-bottom:0}.account.compact .account__avatar-wrapper{margin-left:0}.account .account__display-name{flex:1 1 auto;display:block;color:#282c37;overflow:hidden;text-decoration:none;font-size:14px}.account__wrapper{display:flex}.account__avatar-wrapper{float:left;margin-left:12px;margin-right:12px}.account__avatar{border-radius:4px;background:transparent no-repeat;background-position:50%;background-clip:padding-box;position:relative}.account__avatar-inline{display:inline-block;vertical-align:middle;margin-right:5px}.account__avatar-composite{border-radius:4px;background:transparent no-repeat;background-position:50%;background-clip:padding-box;border-radius:50%;overflow:hidden;position:relative}.account__avatar-composite>div{float:left;position:relative;box-sizing:border-box}.account__avatar-composite__label{display:block;position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);color:#000;text-shadow:1px 1px 2px #000;font-weight:700;font-size:15px}a .account__avatar{cursor:pointer}.account__avatar-overlay{width:48px;height:48px;background-size:48px 48px}.account__avatar-overlay-base{border-radius:4px;background:transparent no-repeat;background-position:50%;background-clip:padding-box;width:36px;height:36px;background-size:36px 36px}.account__avatar-overlay-overlay{border-radius:4px;background:transparent no-repeat;background-position:50%;background-clip:padding-box;width:24px;height:24px;background-size:24px 24px;position:absolute;bottom:0;right:0;z-index:1}.account__relationship{height:18px;padding:10px;white-space:nowrap}.account__disclaimer{padding:10px;border-top:1px solid #c0cdd9;color:#444b5d}.account__disclaimer strong{font-weight:500}.account__disclaimer strong:lang(ja){font-weight:700}.account__disclaimer strong:lang(ko){font-weight:700}.account__disclaimer strong:lang(zh-CN){font-weight:700}.account__disclaimer strong:lang(zh-HK){font-weight:700}.account__disclaimer strong:lang(zh-TW){font-weight:700}.account__disclaimer a{font-weight:500;color:inherit;text-decoration:underline}.account__disclaimer a:hover,.account__disclaimer a:focus,.account__disclaimer a:active{text-decoration:none}.account__action-bar{border-top:1px solid #c0cdd9;border-bottom:1px solid #c0cdd9;line-height:36px;overflow:hidden;flex:0 0 auto;display:flex}.account__action-bar-dropdown{padding:10px}.account__action-bar-dropdown .icon-button{vertical-align:middle}.account__action-bar-dropdown .dropdown--active .dropdown__content.dropdown__right{left:6px;right:initial}.account__action-bar-dropdown .dropdown--active::after{bottom:initial;margin-left:11px;margin-top:-7px;right:initial}.account__action-bar-links{display:flex;flex:1 1 auto;line-height:18px;text-align:center}.account__action-bar__tab{text-decoration:none;overflow:hidden;flex:0 1 100%;border-right:1px solid #c0cdd9;padding:10px 0;border-bottom:4px solid transparent}.account__action-bar__tab.active{border-bottom:4px solid #2b90d9}.account__action-bar__tab>span{display:block;text-transform:uppercase;font-size:11px;color:#282c37}.account__action-bar__tab strong{display:block;font-size:15px;font-weight:500;color:#000}.account__action-bar__tab strong:lang(ja){font-weight:700}.account__action-bar__tab strong:lang(ko){font-weight:700}.account__action-bar__tab strong:lang(zh-CN){font-weight:700}.account__action-bar__tab strong:lang(zh-HK){font-weight:700}.account__action-bar__tab strong:lang(zh-TW){font-weight:700}.account-authorize{padding:14px 10px}.account-authorize .detailed-status__display-name{display:block;margin-bottom:15px;overflow:hidden}.account-authorize__avatar{float:left;margin-right:10px}.status__display-name,.status__relative-time,.detailed-status__display-name,.detailed-status__datetime,.detailed-status__application,.account__display-name{text-decoration:none}.status__display-name strong,.account__display-name strong{color:#000}.muted .emojione{opacity:.5}.status__display-name:hover strong,.reply-indicator__display-name:hover strong,.detailed-status__display-name:hover strong,a.account__display-name:hover strong{text-decoration:underline}.account__display-name strong{display:block;overflow:hidden;text-overflow:ellipsis}.detailed-status__application,.detailed-status__datetime{color:inherit}.detailed-status .button.logo-button{margin-bottom:15px}.detailed-status__display-name{color:#282c37;display:block;line-height:24px;margin-bottom:15px;overflow:hidden}.detailed-status__display-name strong,.detailed-status__display-name span{display:block;text-overflow:ellipsis;overflow:hidden}.detailed-status__display-name strong{font-size:16px;color:#000}.detailed-status__display-avatar{float:left;margin-right:10px}.status__avatar{height:48px;left:10px;position:absolute;top:10px;width:48px}.status__expand{width:68px;position:absolute;left:0;top:0;height:100%;cursor:pointer}.muted .status__content,.muted .status__content p,.muted .status__content a{color:#444b5d}.muted .status__display-name strong{color:#444b5d}.muted .status__avatar{opacity:.5}.muted a.status__content__spoiler-link{background:#b0c0cf;color:#000}.muted a.status__content__spoiler-link:hover{background:#9aaec2;text-decoration:none}.notification__message{margin:0 10px 0 68px;padding:8px 0 0;cursor:default;color:#282c37;font-size:15px;line-height:22px;position:relative}.notification__message .fa{color:#2b90d9}.notification__message>span{display:inline;overflow:hidden;text-overflow:ellipsis}.notification__favourite-icon-wrapper{left:-26px;position:absolute}.notification__favourite-icon-wrapper .star-icon{color:#ca8f04}.star-icon.active{color:#ca8f04}.bookmark-icon.active{color:#ff5050}.no-reduce-motion .icon-button.star-icon.activate>.fa-star{animation:spring-rotate-in 1s linear}.no-reduce-motion .icon-button.star-icon.deactivate>.fa-star{animation:spring-rotate-out 1s linear}.notification__display-name{color:inherit;font-weight:500;text-decoration:none}.notification__display-name:hover{color:#000;text-decoration:underline}.notification__relative_time{float:right}.display-name{display:block;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.display-name__html{font-weight:500}.display-name__account{font-size:14px}.status__relative-time:hover,.detailed-status__datetime:hover{text-decoration:underline}.image-loader{position:relative;width:100%;height:100%;display:flex;align-items:center;justify-content:center;flex-direction:column}.image-loader .image-loader__preview-canvas{max-width:100%;max-height:80%;background:url(\"~images/void.png\") repeat;object-fit:contain}.image-loader .loading-bar{position:relative}.image-loader.image-loader--amorphous .image-loader__preview-canvas{display:none}.zoomable-image{position:relative;width:100%;height:100%;display:flex;align-items:center;justify-content:center}.zoomable-image img{max-width:100%;max-height:80%;width:auto;height:auto;object-fit:contain}.navigation-bar{padding:10px;display:flex;align-items:center;flex-shrink:0;cursor:default;color:#282c37}.navigation-bar strong{color:#282c37}.navigation-bar a{color:inherit}.navigation-bar .permalink{text-decoration:none}.navigation-bar .navigation-bar__actions{position:relative}.navigation-bar .navigation-bar__actions .icon-button.close{position:absolute;pointer-events:none;transform:scale(0, 1) translate(-100%, 0);opacity:0}.navigation-bar .navigation-bar__actions .compose__action-bar .icon-button{pointer-events:auto;transform:scale(1, 1) translate(0, 0);opacity:1}.navigation-bar__profile{flex:1 1 auto;margin-left:8px;line-height:20px;margin-top:-1px;overflow:hidden}.navigation-bar__profile-account{display:block;font-weight:500;overflow:hidden;text-overflow:ellipsis}.navigation-bar__profile-edit{color:inherit;text-decoration:none}.dropdown{display:inline-block}.dropdown__content{display:none;position:absolute}.dropdown-menu__separator{border-bottom:1px solid #393f4f;margin:5px 7px 6px;height:0}.dropdown-menu{background:#282c37;padding:4px 0;border-radius:4px;box-shadow:2px 4px 15px rgba(0,0,0,.4);z-index:9999}.dropdown-menu ul{list-style:none}.dropdown-menu.left{transform-origin:100% 50%}.dropdown-menu.top{transform-origin:50% 100%}.dropdown-menu.bottom{transform-origin:50% 0}.dropdown-menu.right{transform-origin:0 50%}.dropdown-menu__arrow{position:absolute;width:0;height:0;border:0 solid transparent}.dropdown-menu__arrow.left{right:-5px;margin-top:-5px;border-width:5px 0 5px 5px;border-left-color:#282c37}.dropdown-menu__arrow.top{bottom:-5px;margin-left:-7px;border-width:5px 7px 0;border-top-color:#282c37}.dropdown-menu__arrow.bottom{top:-5px;margin-left:-7px;border-width:0 7px 5px;border-bottom-color:#282c37}.dropdown-menu__arrow.right{left:-5px;margin-top:-5px;border-width:5px 5px 5px 0;border-right-color:#282c37}.dropdown-menu__item a{font-size:13px;line-height:18px;display:block;padding:4px 14px;box-sizing:border-box;text-decoration:none;background:#282c37;color:#000;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dropdown-menu__item a:focus,.dropdown-menu__item a:hover,.dropdown-menu__item a:active{background:#2b90d9;color:#282c37;outline:0}.dropdown--active .dropdown__content{display:block;line-height:18px;max-width:311px;right:0;text-align:left;z-index:9999}.dropdown--active .dropdown__content>ul{list-style:none;background:#282c37;padding:4px 0;border-radius:4px;box-shadow:0 0 15px rgba(0,0,0,.4);min-width:140px;position:relative}.dropdown--active .dropdown__content.dropdown__right{right:0}.dropdown--active .dropdown__content.dropdown__left>ul{left:-98px}.dropdown--active .dropdown__content>ul>li>a{font-size:13px;line-height:18px;display:block;padding:4px 14px;box-sizing:border-box;text-decoration:none;background:#282c37;color:#000;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dropdown--active .dropdown__content>ul>li>a:focus{outline:0}.dropdown--active .dropdown__content>ul>li>a:hover{background:#2b90d9;color:#282c37}.dropdown__icon{vertical-align:middle}.columns-area{display:flex;flex:1 1 auto;flex-direction:row;justify-content:flex-start;overflow-x:auto;position:relative}.columns-area.unscrollable{overflow-x:hidden}.columns-area__panels{display:flex;justify-content:center;width:100%;height:100%;min-height:100vh}.columns-area__panels__pane{height:100%;overflow:hidden;pointer-events:none;display:flex;justify-content:flex-end;min-width:285px}.columns-area__panels__pane--start{justify-content:flex-start}.columns-area__panels__pane__inner{position:fixed;width:285px;pointer-events:auto;height:100%}.columns-area__panels__main{box-sizing:border-box;width:100%;max-width:600px;flex:0 0 auto;display:flex;flex-direction:column}@media screen and (min-width: 415px){.columns-area__panels__main{padding:0 10px}}.tabs-bar__wrapper{background:#f2f5f7;position:sticky;top:0;z-index:2;padding-top:0}@media screen and (min-width: 415px){.tabs-bar__wrapper{padding-top:10px}}.tabs-bar__wrapper .tabs-bar{margin-bottom:0}@media screen and (min-width: 415px){.tabs-bar__wrapper .tabs-bar{margin-bottom:10px}}.react-swipeable-view-container,.react-swipeable-view-container .columns-area,.react-swipeable-view-container .drawer,.react-swipeable-view-container .column{height:100%}.react-swipeable-view-container>*{display:flex;align-items:center;justify-content:center;height:100%}.column{width:350px;position:relative;box-sizing:border-box;display:flex;flex-direction:column}.column>.scrollable{background:#d9e1e8;border-bottom-left-radius:2px;border-bottom-right-radius:2px}.ui{flex:0 0 auto;display:flex;flex-direction:column;width:100%;height:100%}.drawer{width:330px;box-sizing:border-box;display:flex;flex-direction:column;overflow-y:hidden}.drawer__tab{display:block;flex:1 1 auto;padding:15px 5px 13px;color:#282c37;text-decoration:none;text-align:center;font-size:16px;border-bottom:2px solid transparent}.column,.drawer{flex:1 1 auto;overflow:hidden}@media screen and (min-width: 631px){.columns-area{padding:0}.column,.drawer{flex:0 0 auto;padding:10px;padding-left:5px;padding-right:5px}.column:first-child,.drawer:first-child{padding-left:10px}.column:last-child,.drawer:last-child{padding-right:10px}.columns-area>div .column,.columns-area>div .drawer{padding-left:5px;padding-right:5px}}.tabs-bar{box-sizing:border-box;display:flex;background:#c0cdd9;flex:0 0 auto;overflow-y:auto}.tabs-bar__link{display:block;flex:1 1 auto;padding:15px 10px;padding-bottom:13px;color:#000;text-decoration:none;text-align:center;font-size:14px;font-weight:500;border-bottom:2px solid #c0cdd9;transition:all 50ms linear;transition-property:border-bottom,background,color}.tabs-bar__link .fa{font-weight:400;font-size:16px}@media screen and (min-width: 631px){.tabs-bar__link:hover,.tabs-bar__link:focus,.tabs-bar__link:active{background:#adbecd;border-bottom-color:#adbecd}}.tabs-bar__link.active{border-bottom:2px solid #2b90d9;color:#2b90d9}.tabs-bar__link span{margin-left:5px;display:none}@media screen and (min-width: 600px){.tabs-bar__link span{display:inline}}.columns-area--mobile{flex-direction:column;width:100%;height:100%;margin:0 auto}.columns-area--mobile .column,.columns-area--mobile .drawer{width:100%;height:100%;padding:0}.columns-area--mobile .directory__list{display:grid;grid-gap:10px;grid-template-columns:minmax(0, 50%) minmax(0, 50%)}@media screen and (max-width: 415px){.columns-area--mobile .directory__list{display:block}}.columns-area--mobile .directory__card{margin-bottom:0}.columns-area--mobile .filter-form{display:flex}.columns-area--mobile .autosuggest-textarea__textarea{font-size:16px}.columns-area--mobile .search__input{line-height:18px;font-size:16px;padding:15px;padding-right:30px}.columns-area--mobile .search__icon .fa{top:15px}.columns-area--mobile .scrollable{overflow:visible}@supports(display: grid){.columns-area--mobile .scrollable{contain:content}}@media screen and (min-width: 415px){.columns-area--mobile{padding:10px 0;padding-top:0}}@media screen and (min-width: 630px){.columns-area--mobile .detailed-status{padding:15px}.columns-area--mobile .detailed-status .media-gallery,.columns-area--mobile .detailed-status .video-player,.columns-area--mobile .detailed-status .audio-player{margin-top:15px}.columns-area--mobile .account__header__bar{padding:5px 10px}.columns-area--mobile .navigation-bar,.columns-area--mobile .compose-form{padding:15px}.columns-area--mobile .compose-form .compose-form__publish .compose-form__publish-button-wrapper{padding-top:15px}.columns-area--mobile .status{padding:15px 15px 15px 78px;min-height:50px}.columns-area--mobile .status__avatar{left:15px;top:17px}.columns-area--mobile .status__content{padding-top:5px}.columns-area--mobile .status__prepend{margin-left:78px;padding-top:15px}.columns-area--mobile .status__prepend-icon-wrapper{left:-32px}.columns-area--mobile .status .media-gallery,.columns-area--mobile .status__action-bar,.columns-area--mobile .status .video-player,.columns-area--mobile .status .audio-player{margin-top:10px}.columns-area--mobile .account{padding:15px 10px}.columns-area--mobile .account__header__bio{margin:0 -10px}.columns-area--mobile .notification__message{margin-left:78px;padding-top:15px}.columns-area--mobile .notification__favourite-icon-wrapper{left:-32px}.columns-area--mobile .notification .status{padding-top:8px}.columns-area--mobile .notification .account{padding-top:8px}.columns-area--mobile .notification .account__avatar-wrapper{margin-left:17px;margin-right:15px}}.floating-action-button{position:fixed;display:flex;justify-content:center;align-items:center;width:3.9375rem;height:3.9375rem;bottom:1.3125rem;right:1.3125rem;background:#3897db;color:#fff;border-radius:50%;font-size:21px;line-height:21px;text-decoration:none;box-shadow:2px 3px 9px rgba(0,0,0,.4)}.floating-action-button:hover,.floating-action-button:focus,.floating-action-button:active{background:#227dbe}@media screen and (min-width: 415px){.tabs-bar{width:100%}.react-swipeable-view-container .columns-area--mobile{height:calc(100% - 10px) !important}.getting-started__wrapper,.getting-started__trends,.search{margin-bottom:10px}.getting-started__panel{margin:10px 0}.column,.drawer{min-width:330px}}@media screen and (max-width: 895px){.columns-area__panels__pane--compositional{display:none}}@media screen and (min-width: 895px){.floating-action-button,.tabs-bar__link.optional{display:none}.search-page .search{display:none}}@media screen and (max-width: 1190px){.columns-area__panels__pane--navigational{display:none}}@media screen and (min-width: 1190px){.tabs-bar{display:none}}.icon-with-badge{position:relative}.icon-with-badge__badge{position:absolute;left:9px;top:-13px;background:#2b90d9;border:2px solid #c0cdd9;padding:1px 6px;border-radius:6px;font-size:10px;font-weight:500;line-height:14px;color:#000}.column-link--transparent .icon-with-badge__badge{border-color:#f2f5f7}.compose-panel{width:285px;margin-top:10px;display:flex;flex-direction:column;height:calc(100% - 10px);overflow-y:hidden}.compose-panel .navigation-bar{padding-top:20px;padding-bottom:20px;flex:0 1 48px;min-height:20px}.compose-panel .flex-spacer{background:transparent}.compose-panel .compose-form{flex:1;overflow-y:hidden;display:flex;flex-direction:column;min-height:310px;padding-bottom:71px;margin-bottom:-71px}.compose-panel .compose-form__autosuggest-wrapper{overflow-y:auto;background-color:#fff;border-radius:4px 4px 0 0;flex:0 1 auto}.compose-panel .autosuggest-textarea__textarea{overflow-y:hidden}.compose-panel .compose-form__upload-thumbnail{height:80px}.navigation-panel{margin-top:10px;margin-bottom:10px;height:calc(100% - 20px);overflow-y:auto;display:flex;flex-direction:column}.navigation-panel>a{flex:0 0 auto}.navigation-panel hr{flex:0 0 auto;border:0;background:transparent;border-top:1px solid #ccd7e0;margin:10px 0}.navigation-panel .flex-spacer{background:transparent}.drawer__pager{box-sizing:border-box;padding:0;flex-grow:1;position:relative;overflow:hidden;display:flex}.drawer__inner{position:absolute;top:0;left:0;background:#b0c0cf;box-sizing:border-box;padding:0;display:flex;flex-direction:column;overflow:hidden;overflow-y:auto;width:100%;height:100%;border-radius:2px}.drawer__inner.darker{background:#d9e1e8}.drawer__inner__mastodon{background:#b0c0cf url('data:image/svg+xml;utf8,') no-repeat bottom/100% auto;flex:1;min-height:47px;display:none}.drawer__inner__mastodon>img{display:block;object-fit:contain;object-position:bottom left;width:85%;height:100%;pointer-events:none;user-drag:none;user-select:none}@media screen and (min-height: 640px){.drawer__inner__mastodon{display:block}}.pseudo-drawer{background:#b0c0cf;font-size:13px;text-align:left}.drawer__header{flex:0 0 auto;font-size:16px;background:#c0cdd9;margin-bottom:10px;display:flex;flex-direction:row;border-radius:2px}.drawer__header a{transition:background 100ms ease-in}.drawer__header a:hover{background:#cfd9e2;transition:background 200ms ease-out}.scrollable{overflow-y:scroll;overflow-x:hidden;flex:1 1 auto;-webkit-overflow-scrolling:touch}.scrollable.optionally-scrollable{overflow-y:auto}@supports(display: grid){.scrollable{contain:strict}}.scrollable--flex{display:flex;flex-direction:column}.scrollable__append{flex:1 1 auto;position:relative;min-height:120px}@supports(display: grid){.scrollable.fullscreen{contain:none}}.column-back-button{box-sizing:border-box;width:100%;background:#ccd7e0;color:#2b90d9;cursor:pointer;flex:0 0 auto;font-size:16px;line-height:inherit;border:0;text-align:unset;padding:15px;margin:0;z-index:3;outline:0}.column-back-button:hover{text-decoration:underline}.column-header__back-button{background:#ccd7e0;border:0;font-family:inherit;color:#2b90d9;cursor:pointer;white-space:nowrap;font-size:16px;padding:0 5px 0 0;z-index:3}.column-header__back-button:hover{text-decoration:underline}.column-header__back-button:last-child{padding:0 15px 0 0}.column-back-button__icon{display:inline-block;margin-right:5px}.column-back-button--slim{position:relative}.column-back-button--slim-button{cursor:pointer;flex:0 0 auto;font-size:16px;padding:15px;position:absolute;right:0;top:-48px}.react-toggle{display:inline-block;position:relative;cursor:pointer;background-color:transparent;border:0;padding:0;user-select:none;-webkit-tap-highlight-color:rgba(255,255,255,0);-webkit-tap-highlight-color:transparent}.react-toggle-screenreader-only{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.react-toggle--disabled{cursor:not-allowed;opacity:.5;transition:opacity .25s}.react-toggle-track{width:50px;height:24px;padding:0;border-radius:30px;background-color:#d9e1e8;transition:background-color .2s ease}.react-toggle:hover:not(.react-toggle--disabled) .react-toggle-track{background-color:#f9fafb}.react-toggle--checked .react-toggle-track{background-color:#2b90d9}.react-toggle--checked:hover:not(.react-toggle--disabled) .react-toggle-track{background-color:#2074b1}.react-toggle-track-check{position:absolute;width:14px;height:10px;top:0;bottom:0;margin-top:auto;margin-bottom:auto;line-height:0;left:8px;opacity:0;transition:opacity .25s ease}.react-toggle--checked .react-toggle-track-check{opacity:1;transition:opacity .25s ease}.react-toggle-track-x{position:absolute;width:10px;height:10px;top:0;bottom:0;margin-top:auto;margin-bottom:auto;line-height:0;right:10px;opacity:1;transition:opacity .25s ease}.react-toggle--checked .react-toggle-track-x{opacity:0}.react-toggle-thumb{position:absolute;top:1px;left:1px;width:22px;height:22px;border:1px solid #d9e1e8;border-radius:50%;background-color:#fff;box-sizing:border-box;transition:all .25s ease;transition-property:border-color,left}.react-toggle--checked .react-toggle-thumb{left:27px;border-color:#2b90d9}.column-link{background:#c0cdd9;color:#000;display:block;font-size:16px;padding:15px;text-decoration:none}.column-link:hover,.column-link:focus,.column-link:active{background:#b6c5d3}.column-link:focus{outline:0}.column-link--transparent{background:transparent;color:#282c37}.column-link--transparent:hover,.column-link--transparent:focus,.column-link--transparent:active{background:transparent;color:#000}.column-link--transparent.active{color:#2b90d9}.column-link__icon{display:inline-block;margin-right:5px}.column-link__badge{display:inline-block;border-radius:4px;font-size:12px;line-height:19px;font-weight:500;background:#d9e1e8;padding:4px 8px;margin:-6px 10px}.column-subheading{background:#d9e1e8;color:#444b5d;padding:8px 20px;font-size:12px;font-weight:500;text-transform:uppercase;cursor:default}.getting-started__wrapper,.getting-started,.flex-spacer{background:#d9e1e8}.flex-spacer{flex:1 1 auto}.getting-started{color:#444b5d;overflow:auto;border-bottom-left-radius:2px;border-bottom-right-radius:2px}.getting-started__wrapper,.getting-started__panel,.getting-started__footer{height:min-content}.getting-started__panel,.getting-started__footer{padding:10px;padding-top:20px;flex-grow:0}.getting-started__panel ul,.getting-started__footer ul{margin-bottom:10px}.getting-started__panel ul li,.getting-started__footer ul li{display:inline}.getting-started__panel p,.getting-started__footer p{font-size:13px}.getting-started__panel p a,.getting-started__footer p a{color:#444b5d;text-decoration:underline}.getting-started__panel a,.getting-started__footer a{text-decoration:none;color:#282c37}.getting-started__panel a:hover,.getting-started__panel a:focus,.getting-started__panel a:active,.getting-started__footer a:hover,.getting-started__footer a:focus,.getting-started__footer a:active{text-decoration:underline}.getting-started__wrapper,.getting-started__footer{color:#444b5d}.getting-started__trends{flex:0 1 auto;opacity:1;animation:fade 150ms linear;margin-top:10px}.getting-started__trends h4{font-size:12px;text-transform:uppercase;color:#282c37;padding:10px;font-weight:500;border-bottom:1px solid #c0cdd9}@media screen and (max-height: 810px){.getting-started__trends .trends__item:nth-child(3){display:none}}@media screen and (max-height: 720px){.getting-started__trends .trends__item:nth-child(2){display:none}}@media screen and (max-height: 670px){.getting-started__trends{display:none}}.getting-started__trends .trends__item{border-bottom:0;padding:10px}.getting-started__trends .trends__item__current{color:#282c37}.keyboard-shortcuts{padding:8px 0 0;overflow:hidden}.keyboard-shortcuts thead{position:absolute;left:-9999px}.keyboard-shortcuts td{padding:0 10px 8px}.keyboard-shortcuts kbd{display:inline-block;padding:3px 5px;background-color:#c0cdd9;border:1px solid #e6ebf0}.setting-text{display:block;box-sizing:border-box;width:100%;margin:0;color:#000;background:#fff;padding:10px;font-family:inherit;font-size:14px;resize:vertical;border:0;outline:0;border-radius:4px}.setting-text:focus{outline:0}@media screen and (max-width: 600px){.setting-text{font-size:16px}}.no-reduce-motion button.icon-button i.fa-retweet{background-position:0 0;height:19px;transition:background-position .9s steps(10);transition-duration:0s;vertical-align:middle;width:22px}.no-reduce-motion button.icon-button i.fa-retweet::before{display:none !important}.no-reduce-motion button.icon-button.active i.fa-retweet{transition-duration:.9s;background-position:0 100%}.reduce-motion button.icon-button i.fa-retweet{color:#606984;transition:color 100ms ease-in}.reduce-motion button.icon-button.active i.fa-retweet{color:#2b90d9}.status-card{display:flex;font-size:14px;border:1px solid #c0cdd9;border-radius:4px;color:#444b5d;margin-top:14px;text-decoration:none;overflow:hidden}.status-card__actions{bottom:0;left:0;position:absolute;right:0;top:0;display:flex;justify-content:center;align-items:center}.status-card__actions>div{background:rgba(0,0,0,.6);border-radius:8px;padding:12px 9px;flex:0 0 auto;display:flex;justify-content:center;align-items:center}.status-card__actions button,.status-card__actions a{display:inline;color:#282c37;background:transparent;border:0;padding:0 8px;text-decoration:none;font-size:18px;line-height:18px}.status-card__actions button:hover,.status-card__actions button:active,.status-card__actions button:focus,.status-card__actions a:hover,.status-card__actions a:active,.status-card__actions a:focus{color:#000}.status-card__actions a{font-size:19px;position:relative;bottom:-1px}a.status-card{cursor:pointer}a.status-card:hover{background:#c0cdd9}.status-card-photo{cursor:zoom-in;display:block;text-decoration:none;width:100%;height:auto;margin:0}.status-card-video iframe{width:100%;height:100%}.status-card__title{display:block;font-weight:500;margin-bottom:5px;color:#282c37;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-decoration:none}.status-card__content{flex:1 1 auto;overflow:hidden;padding:14px 14px 14px 8px}.status-card__description{color:#282c37}.status-card__host{display:block;margin-top:5px;font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.status-card__image{flex:0 0 100px;background:#c0cdd9;position:relative}.status-card__image>.fa{font-size:21px;position:absolute;transform-origin:50% 50%;top:50%;left:50%;transform:translate(-50%, -50%)}.status-card.horizontal{display:block}.status-card.horizontal .status-card__image{width:100%}.status-card.horizontal .status-card__image-image{border-radius:4px 4px 0 0}.status-card.horizontal .status-card__title{white-space:inherit}.status-card.compact{border-color:#ccd7e0}.status-card.compact.interactive{border:0}.status-card.compact .status-card__content{padding:8px;padding-top:10px}.status-card.compact .status-card__title{white-space:nowrap}.status-card.compact .status-card__image{flex:0 0 60px}a.status-card.compact:hover{background-color:#ccd7e0}.status-card__image-image{border-radius:4px 0 0 4px;display:block;margin:0;width:100%;height:100%;object-fit:cover;background-size:cover;background-position:center center}.load-more{display:block;color:#444b5d;background-color:transparent;border:0;font-size:inherit;text-align:center;line-height:inherit;margin:0;padding:15px;box-sizing:border-box;width:100%;clear:both;text-decoration:none}.load-more:hover{background:#d3dce4}.load-gap{border-bottom:1px solid #c0cdd9}.regeneration-indicator{text-align:center;font-size:16px;font-weight:500;color:#444b5d;background:#d9e1e8;cursor:default;display:flex;flex:1 1 auto;flex-direction:column;align-items:center;justify-content:center;padding:20px}.regeneration-indicator__figure,.regeneration-indicator__figure img{display:block;width:auto;height:160px;margin:0}.regeneration-indicator--without-header{padding-top:68px}.regeneration-indicator__label{margin-top:30px}.regeneration-indicator__label strong{display:block;margin-bottom:10px;color:#444b5d}.regeneration-indicator__label span{font-size:15px;font-weight:400}.column-header__wrapper{position:relative;flex:0 0 auto;z-index:1}.column-header__wrapper.active{box-shadow:0 1px 0 rgba(43,144,217,.3)}.column-header__wrapper.active::before{display:block;content:\"\";position:absolute;bottom:-13px;left:0;right:0;margin:0 auto;width:60%;pointer-events:none;height:28px;z-index:1;background:radial-gradient(ellipse, rgba(43, 144, 217, 0.23) 0%, rgba(43, 144, 217, 0) 60%)}.column-header__wrapper .announcements{z-index:1;position:relative}.column-header{display:flex;font-size:16px;background:#ccd7e0;flex:0 0 auto;cursor:pointer;position:relative;z-index:2;outline:0;overflow:hidden;border-top-left-radius:2px;border-top-right-radius:2px}.column-header>button{margin:0;border:0;padding:15px 0 15px 15px;color:inherit;background:transparent;font:inherit;text-align:left;text-overflow:ellipsis;overflow:hidden;white-space:nowrap;flex:1}.column-header>.column-header__back-button{color:#2b90d9}.column-header.active .column-header__icon{color:#2b90d9;text-shadow:0 0 10px rgba(43,144,217,.4)}.column-header:focus,.column-header:active{outline:0}.column-header__buttons{height:48px;display:flex}.column-header__links{margin-bottom:14px}.column-header__links .text-btn{margin-right:10px}.column-header__button{background:#ccd7e0;border:0;color:#282c37;cursor:pointer;font-size:16px;padding:0 15px}.column-header__button:hover{color:#191b22}.column-header__button.active{color:#000;background:#c0cdd9}.column-header__button.active:hover{color:#000;background:#c0cdd9}.column-header__collapsible{max-height:70vh;overflow:hidden;overflow-y:auto;color:#282c37;transition:max-height 150ms ease-in-out,opacity 300ms linear;opacity:1;z-index:1;position:relative}.column-header__collapsible.collapsed{max-height:0;opacity:.5}.column-header__collapsible.animating{overflow-y:hidden}.column-header__collapsible hr{height:0;background:transparent;border:0;border-top:1px solid #b3c3d1;margin:10px 0}.column-header__collapsible-inner{background:#c0cdd9;padding:15px}.column-header__setting-btn:hover{color:#282c37;text-decoration:underline}.column-header__setting-arrows{float:right}.column-header__setting-arrows .column-header__setting-btn{padding:0 10px}.column-header__setting-arrows .column-header__setting-btn:last-child{padding-right:0}.text-btn{display:inline-block;padding:0;font-family:inherit;font-size:inherit;color:inherit;border:0;background:transparent;cursor:pointer}.column-header__icon{display:inline-block;margin-right:5px}.loading-indicator{color:#444b5d;font-size:12px;font-weight:400;text-transform:uppercase;overflow:visible;position:absolute;top:50%;left:50%;transform:translate(-50%, -50%)}.loading-indicator span{display:block;float:left;margin-left:50%;transform:translateX(-50%);margin:82px 0 0 50%;white-space:nowrap}.loading-indicator__figure{position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);width:42px;height:42px;box-sizing:border-box;background-color:transparent;border:0 solid #86a0b6;border-width:6px;border-radius:50%}.no-reduce-motion .loading-indicator span{animation:loader-label 1.15s infinite cubic-bezier(0.215, 0.61, 0.355, 1)}.no-reduce-motion .loading-indicator__figure{animation:loader-figure 1.15s infinite cubic-bezier(0.215, 0.61, 0.355, 1)}@keyframes spring-rotate-in{0%{transform:rotate(0deg)}30%{transform:rotate(-484.8deg)}60%{transform:rotate(-316.7deg)}90%{transform:rotate(-375deg)}100%{transform:rotate(-360deg)}}@keyframes spring-rotate-out{0%{transform:rotate(-360deg)}30%{transform:rotate(124.8deg)}60%{transform:rotate(-43.27deg)}90%{transform:rotate(15deg)}100%{transform:rotate(0deg)}}@keyframes loader-figure{0%{width:0;height:0;background-color:#86a0b6}29%{background-color:#86a0b6}30%{width:42px;height:42px;background-color:transparent;border-width:21px;opacity:1}100%{width:42px;height:42px;border-width:0;opacity:0;background-color:transparent}}@keyframes loader-label{0%{opacity:.25}30%{opacity:1}100%{opacity:.25}}.video-error-cover{align-items:center;background:#fff;color:#000;cursor:pointer;display:flex;flex-direction:column;height:100%;justify-content:center;margin-top:8px;position:relative;text-align:center;z-index:100}.media-spoiler{background:#fff;color:#282c37;border:0;padding:0;width:100%;height:100%;border-radius:4px;appearance:none}.media-spoiler:hover,.media-spoiler:active,.media-spoiler:focus{padding:0;color:#17191f}.media-spoiler__warning{display:block;font-size:14px}.media-spoiler__trigger{display:block;font-size:11px;font-weight:700}.spoiler-button{top:0;left:0;width:100%;height:100%;position:absolute;z-index:100}.spoiler-button--minified{display:block;left:4px;top:4px;width:auto;height:auto}.spoiler-button--click-thru{pointer-events:none}.spoiler-button--hidden{display:none}.spoiler-button__overlay{display:block;background:transparent;width:100%;height:100%;border:0}.spoiler-button__overlay__label{display:inline-block;background:rgba(255,255,255,.5);border-radius:8px;padding:8px 12px;color:#000;font-weight:500;font-size:14px}.spoiler-button__overlay:hover .spoiler-button__overlay__label,.spoiler-button__overlay:focus .spoiler-button__overlay__label,.spoiler-button__overlay:active .spoiler-button__overlay__label{background:rgba(255,255,255,.8)}.spoiler-button__overlay:disabled .spoiler-button__overlay__label{background:rgba(255,255,255,.5)}.modal-container--preloader{background:#c0cdd9}.account--panel{background:#ccd7e0;border-top:1px solid #c0cdd9;border-bottom:1px solid #c0cdd9;display:flex;flex-direction:row;padding:10px 0}.account--panel__button,.detailed-status__button{flex:1 1 auto;text-align:center}.column-settings__outer{background:#c0cdd9;padding:15px}.column-settings__section{color:#282c37;cursor:default;display:block;font-weight:500;margin-bottom:10px}.column-settings__hashtags .column-settings__row{margin-bottom:15px}.column-settings__hashtags .column-select__control{outline:0;box-sizing:border-box;width:100%;border:0;box-shadow:none;font-family:inherit;background:#d9e1e8;color:#282c37;font-size:14px;margin:0}.column-settings__hashtags .column-select__control::placeholder{color:#1f232b}.column-settings__hashtags .column-select__control::-moz-focus-inner{border:0}.column-settings__hashtags .column-select__control::-moz-focus-inner,.column-settings__hashtags .column-select__control:focus,.column-settings__hashtags .column-select__control:active{outline:0 !important}.column-settings__hashtags .column-select__control:focus{background:#ccd7e0}@media screen and (max-width: 600px){.column-settings__hashtags .column-select__control{font-size:16px}}.column-settings__hashtags .column-select__placeholder{color:#444b5d;padding-left:2px;font-size:12px}.column-settings__hashtags .column-select__value-container{padding-left:6px}.column-settings__hashtags .column-select__multi-value{background:#c0cdd9}.column-settings__hashtags .column-select__multi-value__remove{cursor:pointer}.column-settings__hashtags .column-select__multi-value__remove:hover,.column-settings__hashtags .column-select__multi-value__remove:active,.column-settings__hashtags .column-select__multi-value__remove:focus{background:#b3c3d1;color:#1f232b}.column-settings__hashtags .column-select__multi-value__label,.column-settings__hashtags .column-select__input{color:#282c37}.column-settings__hashtags .column-select__clear-indicator,.column-settings__hashtags .column-select__dropdown-indicator{cursor:pointer;transition:none;color:#444b5d}.column-settings__hashtags .column-select__clear-indicator:hover,.column-settings__hashtags .column-select__clear-indicator:active,.column-settings__hashtags .column-select__clear-indicator:focus,.column-settings__hashtags .column-select__dropdown-indicator:hover,.column-settings__hashtags .column-select__dropdown-indicator:active,.column-settings__hashtags .column-select__dropdown-indicator:focus{color:#3b4151}.column-settings__hashtags .column-select__indicator-separator{background-color:#c0cdd9}.column-settings__hashtags .column-select__menu{background:#fff;border-radius:4px;padding:10px 14px;padding-bottom:14px;margin-top:10px;color:#444b5d;box-shadow:2px 4px 15px rgba(0,0,0,.4);padding:0;background:#282c37}.column-settings__hashtags .column-select__menu h4{text-transform:uppercase;color:#444b5d;font-size:13px;font-weight:500;margin-bottom:10px}.column-settings__hashtags .column-select__menu li{padding:4px 0}.column-settings__hashtags .column-select__menu ul{margin-bottom:10px}.column-settings__hashtags .column-select__menu em{font-weight:500;color:#000}.column-settings__hashtags .column-select__menu-list{padding:6px}.column-settings__hashtags .column-select__option{color:#000;border-radius:4px;font-size:14px}.column-settings__hashtags .column-select__option--is-focused,.column-settings__hashtags .column-select__option--is-selected{background:#3d4455}.column-settings__row .text-btn{margin-bottom:15px}.relationship-tag{color:#000;margin-bottom:4px;display:block;vertical-align:top;background-color:#fff;text-transform:uppercase;font-size:11px;font-weight:500;padding:4px;border-radius:4px;opacity:.7}.relationship-tag:hover{opacity:1}.setting-toggle{display:block;line-height:24px}.setting-toggle__label{color:#282c37;display:inline-block;margin-bottom:14px;margin-left:8px;vertical-align:middle}.empty-column-indicator,.error-column,.follow_requests-unlocked_explanation{color:#444b5d;background:#d9e1e8;text-align:center;padding:20px;font-size:15px;font-weight:400;cursor:default;display:flex;flex:1 1 auto;align-items:center;justify-content:center}@supports(display: grid){.empty-column-indicator,.error-column,.follow_requests-unlocked_explanation{contain:strict}}.empty-column-indicator>span,.error-column>span,.follow_requests-unlocked_explanation>span{max-width:400px}.empty-column-indicator a,.error-column a,.follow_requests-unlocked_explanation a{color:#2b90d9;text-decoration:none}.empty-column-indicator a:hover,.error-column a:hover,.follow_requests-unlocked_explanation a:hover{text-decoration:underline}.follow_requests-unlocked_explanation{background:#e6ebf0;contain:initial}.error-column{flex-direction:column}@keyframes heartbeat{from{transform:scale(1);animation-timing-function:ease-out}10%{transform:scale(0.91);animation-timing-function:ease-in}17%{transform:scale(0.98);animation-timing-function:ease-out}33%{transform:scale(0.87);animation-timing-function:ease-in}45%{transform:scale(1);animation-timing-function:ease-out}}.no-reduce-motion .pulse-loading{transform-origin:center center;animation:heartbeat 1.5s ease-in-out infinite both}@keyframes shake-bottom{0%,100%{transform:rotate(0deg);transform-origin:50% 100%}10%{transform:rotate(2deg)}20%,40%,60%{transform:rotate(-4deg)}30%,50%,70%{transform:rotate(4deg)}80%{transform:rotate(-2deg)}90%{transform:rotate(2deg)}}.no-reduce-motion .shake-bottom{transform-origin:50% 100%;animation:shake-bottom .8s cubic-bezier(0.455, 0.03, 0.515, 0.955) 2s 2 both}.emoji-picker-dropdown__menu{background:#fff;position:absolute;box-shadow:4px 4px 6px rgba(0,0,0,.4);border-radius:4px;margin-top:5px;z-index:2}.emoji-picker-dropdown__menu .emoji-mart-scroll{transition:opacity 200ms ease}.emoji-picker-dropdown__menu.selecting .emoji-mart-scroll{opacity:.5}.emoji-picker-dropdown__modifiers{position:absolute;top:60px;right:11px;cursor:pointer}.emoji-picker-dropdown__modifiers__menu{position:absolute;z-index:4;top:-4px;left:-8px;background:#fff;border-radius:4px;box-shadow:1px 2px 6px rgba(0,0,0,.2);overflow:hidden}.emoji-picker-dropdown__modifiers__menu button{display:block;cursor:pointer;border:0;padding:4px 8px;background:transparent}.emoji-picker-dropdown__modifiers__menu button:hover,.emoji-picker-dropdown__modifiers__menu button:focus,.emoji-picker-dropdown__modifiers__menu button:active{background:rgba(40,44,55,.4)}.emoji-picker-dropdown__modifiers__menu .emoji-mart-emoji{height:22px}.emoji-mart-emoji span{background-repeat:no-repeat}.upload-area{align-items:center;background:rgba(255,255,255,.8);display:flex;height:100%;justify-content:center;left:0;opacity:0;position:absolute;top:0;visibility:hidden;width:100%;z-index:2000}.upload-area *{pointer-events:none}.upload-area__drop{width:320px;height:160px;display:flex;box-sizing:border-box;position:relative;padding:8px}.upload-area__background{position:absolute;top:0;right:0;bottom:0;left:0;z-index:-1;border-radius:4px;background:#d9e1e8;box-shadow:0 0 5px rgba(0,0,0,.2)}.upload-area__content{flex:1;display:flex;align-items:center;justify-content:center;color:#282c37;font-size:18px;font-weight:500;border:2px dashed #b0c0cf;border-radius:4px}.upload-progress{padding:10px;color:#282c37;overflow:hidden;display:flex}.upload-progress .fa{font-size:34px;margin-right:10px}.upload-progress span{font-size:12px;text-transform:uppercase;font-weight:500;display:block}.upload-progess__message{flex:1 1 auto}.upload-progress__backdrop{width:100%;height:6px;border-radius:6px;background:#b0c0cf;position:relative;margin-top:5px}.upload-progress__tracker{position:absolute;left:0;top:0;height:6px;background:#2b90d9;border-radius:6px}.emoji-button{display:block;padding:5px 5px 2px 2px;outline:0;cursor:pointer}.emoji-button:active,.emoji-button:focus{outline:0 !important}.emoji-button img{filter:grayscale(100%);opacity:.8;display:block;margin:0;width:22px;height:22px}.emoji-button:hover img,.emoji-button:active img,.emoji-button:focus img{opacity:1;filter:none}.dropdown--active .emoji-button img{opacity:1;filter:none}.privacy-dropdown__dropdown{position:absolute;background:#fff;box-shadow:2px 4px 15px rgba(0,0,0,.4);border-radius:4px;margin-left:40px;overflow:hidden}.privacy-dropdown__dropdown.top{transform-origin:50% 100%}.privacy-dropdown__dropdown.bottom{transform-origin:50% 0}.privacy-dropdown__option{color:#000;padding:10px;cursor:pointer;display:flex}.privacy-dropdown__option:hover,.privacy-dropdown__option.active{background:#2b90d9;color:#000;outline:0}.privacy-dropdown__option:hover .privacy-dropdown__option__content,.privacy-dropdown__option.active .privacy-dropdown__option__content{color:#000}.privacy-dropdown__option:hover .privacy-dropdown__option__content strong,.privacy-dropdown__option.active .privacy-dropdown__option__content strong{color:#000}.privacy-dropdown__option.active:hover{background:#2485cb}.privacy-dropdown__option__icon{display:flex;align-items:center;justify-content:center;margin-right:10px}.privacy-dropdown__option__content{flex:1 1 auto;color:#282c37}.privacy-dropdown__option__content strong{font-weight:500;display:block;color:#000}.privacy-dropdown__option__content strong:lang(ja){font-weight:700}.privacy-dropdown__option__content strong:lang(ko){font-weight:700}.privacy-dropdown__option__content strong:lang(zh-CN){font-weight:700}.privacy-dropdown__option__content strong:lang(zh-HK){font-weight:700}.privacy-dropdown__option__content strong:lang(zh-TW){font-weight:700}.privacy-dropdown.active .privacy-dropdown__value{background:#fff;border-radius:4px 4px 0 0;box-shadow:0 -4px 4px rgba(0,0,0,.1)}.privacy-dropdown.active .privacy-dropdown__value .icon-button{transition:none}.privacy-dropdown.active .privacy-dropdown__value.active{background:#2b90d9}.privacy-dropdown.active .privacy-dropdown__value.active .icon-button{color:#000}.privacy-dropdown.active.top .privacy-dropdown__value{border-radius:0 0 4px 4px}.privacy-dropdown.active .privacy-dropdown__dropdown{display:block;box-shadow:2px 4px 6px rgba(0,0,0,.1)}.search{position:relative}.search__input{outline:0;box-sizing:border-box;width:100%;border:0;box-shadow:none;font-family:inherit;background:#d9e1e8;color:#282c37;font-size:14px;margin:0;display:block;padding:15px;padding-right:30px;line-height:18px;font-size:16px}.search__input::placeholder{color:#1f232b}.search__input::-moz-focus-inner{border:0}.search__input::-moz-focus-inner,.search__input:focus,.search__input:active{outline:0 !important}.search__input:focus{background:#ccd7e0}@media screen and (max-width: 600px){.search__input{font-size:16px}}.search__icon::-moz-focus-inner{border:0}.search__icon::-moz-focus-inner,.search__icon:focus{outline:0 !important}.search__icon .fa{position:absolute;top:16px;right:10px;z-index:2;display:inline-block;opacity:0;transition:all 100ms linear;transition-property:transform,opacity;font-size:18px;width:18px;height:18px;color:#282c37;cursor:default;pointer-events:none}.search__icon .fa.active{pointer-events:auto;opacity:.3}.search__icon .fa-search{transform:rotate(90deg)}.search__icon .fa-search.active{pointer-events:none;transform:rotate(0deg)}.search__icon .fa-times-circle{top:17px;transform:rotate(0deg);color:#606984;cursor:pointer}.search__icon .fa-times-circle.active{transform:rotate(90deg)}.search__icon .fa-times-circle:hover{color:#51596f}.search-results__header{color:#444b5d;background:#d3dce4;padding:15px;font-weight:500;font-size:16px;cursor:default}.search-results__header .fa{display:inline-block;margin-right:5px}.search-results__section{margin-bottom:5px}.search-results__section h5{background:#e6ebf0;border-bottom:1px solid #c0cdd9;cursor:default;display:flex;padding:15px;font-weight:500;font-size:16px;color:#444b5d}.search-results__section h5 .fa{display:inline-block;margin-right:5px}.search-results__section .account:last-child,.search-results__section>div:last-child .status{border-bottom:0}.search-results__hashtag{display:block;padding:10px;color:#282c37;text-decoration:none}.search-results__hashtag:hover,.search-results__hashtag:active,.search-results__hashtag:focus{color:#1f232b;text-decoration:underline}.search-results__info{padding:20px;color:#282c37;text-align:center}.modal-root{position:relative;transition:opacity .3s linear;will-change:opacity;z-index:9999}.modal-root__overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(255,255,255,.7)}.modal-root__container{position:fixed;top:0;left:0;width:100%;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;align-content:space-around;z-index:9999;pointer-events:none;user-select:none}.modal-root__modal{pointer-events:auto;display:flex;z-index:9999}.video-modal__container{max-width:100vw;max-height:100vh}.audio-modal__container{width:50vw}.media-modal{width:100%;height:100%;position:relative}.media-modal .extended-video-player{width:100%;height:100%;display:flex;align-items:center;justify-content:center}.media-modal .extended-video-player video{max-width:100%;max-height:80%}.media-modal__closer{position:absolute;top:0;left:0;right:0;bottom:0}.media-modal__navigation{position:absolute;top:0;left:0;right:0;bottom:0;pointer-events:none;transition:opacity .3s linear;will-change:opacity}.media-modal__navigation *{pointer-events:auto}.media-modal__navigation.media-modal__navigation--hidden{opacity:0}.media-modal__navigation.media-modal__navigation--hidden *{pointer-events:none}.media-modal__nav{background:rgba(255,255,255,.5);box-sizing:border-box;border:0;color:#000;cursor:pointer;display:flex;align-items:center;font-size:24px;height:20vmax;margin:auto 0;padding:30px 15px;position:absolute;top:0;bottom:0}.media-modal__nav--left{left:0}.media-modal__nav--right{right:0}.media-modal__pagination{width:100%;text-align:center;position:absolute;left:0;bottom:20px;pointer-events:none}.media-modal__meta{text-align:center;position:absolute;left:0;bottom:20px;width:100%;pointer-events:none}.media-modal__meta--shifted{bottom:62px}.media-modal__meta a{pointer-events:auto;text-decoration:none;font-weight:500;color:#282c37}.media-modal__meta a:hover,.media-modal__meta a:focus,.media-modal__meta a:active{text-decoration:underline}.media-modal__page-dot{display:inline-block}.media-modal__button{background-color:#000;height:12px;width:12px;border-radius:6px;margin:10px;padding:0;border:0;font-size:0}.media-modal__button--active{background-color:#2b90d9}.media-modal__close{position:absolute;right:8px;top:8px;z-index:100}.onboarding-modal,.error-modal,.embed-modal{background:#282c37;color:#000;border-radius:8px;overflow:hidden;display:flex;flex-direction:column}.error-modal__body{height:80vh;width:80vw;max-width:520px;max-height:420px;position:relative}.error-modal__body>div{position:absolute;top:0;left:0;width:100%;height:100%;box-sizing:border-box;padding:25px;display:none;flex-direction:column;align-items:center;justify-content:center;display:flex;opacity:0;user-select:text}.error-modal__body{display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center}.onboarding-modal__paginator,.error-modal__footer{flex:0 0 auto;background:#393f4f;display:flex;padding:25px}.onboarding-modal__paginator>div,.error-modal__footer>div{min-width:33px}.onboarding-modal__paginator .onboarding-modal__nav,.onboarding-modal__paginator .error-modal__nav,.error-modal__footer .onboarding-modal__nav,.error-modal__footer .error-modal__nav{color:#282c37;border:0;font-size:14px;font-weight:500;padding:10px 25px;line-height:inherit;height:auto;margin:-10px;border-radius:4px;background-color:transparent}.onboarding-modal__paginator .onboarding-modal__nav:hover,.onboarding-modal__paginator .onboarding-modal__nav:focus,.onboarding-modal__paginator .onboarding-modal__nav:active,.onboarding-modal__paginator .error-modal__nav:hover,.onboarding-modal__paginator .error-modal__nav:focus,.onboarding-modal__paginator .error-modal__nav:active,.error-modal__footer .onboarding-modal__nav:hover,.error-modal__footer .onboarding-modal__nav:focus,.error-modal__footer .onboarding-modal__nav:active,.error-modal__footer .error-modal__nav:hover,.error-modal__footer .error-modal__nav:focus,.error-modal__footer .error-modal__nav:active{color:#313543;background-color:#4a5266}.onboarding-modal__paginator .onboarding-modal__nav.onboarding-modal__done,.onboarding-modal__paginator .onboarding-modal__nav.onboarding-modal__next,.onboarding-modal__paginator .error-modal__nav.onboarding-modal__done,.onboarding-modal__paginator .error-modal__nav.onboarding-modal__next,.error-modal__footer .onboarding-modal__nav.onboarding-modal__done,.error-modal__footer .onboarding-modal__nav.onboarding-modal__next,.error-modal__footer .error-modal__nav.onboarding-modal__done,.error-modal__footer .error-modal__nav.onboarding-modal__next{color:#000}.onboarding-modal__paginator .onboarding-modal__nav.onboarding-modal__done:hover,.onboarding-modal__paginator .onboarding-modal__nav.onboarding-modal__done:focus,.onboarding-modal__paginator .onboarding-modal__nav.onboarding-modal__done:active,.onboarding-modal__paginator .onboarding-modal__nav.onboarding-modal__next:hover,.onboarding-modal__paginator .onboarding-modal__nav.onboarding-modal__next:focus,.onboarding-modal__paginator .onboarding-modal__nav.onboarding-modal__next:active,.onboarding-modal__paginator .error-modal__nav.onboarding-modal__done:hover,.onboarding-modal__paginator .error-modal__nav.onboarding-modal__done:focus,.onboarding-modal__paginator .error-modal__nav.onboarding-modal__done:active,.onboarding-modal__paginator .error-modal__nav.onboarding-modal__next:hover,.onboarding-modal__paginator .error-modal__nav.onboarding-modal__next:focus,.onboarding-modal__paginator .error-modal__nav.onboarding-modal__next:active,.error-modal__footer .onboarding-modal__nav.onboarding-modal__done:hover,.error-modal__footer .onboarding-modal__nav.onboarding-modal__done:focus,.error-modal__footer .onboarding-modal__nav.onboarding-modal__done:active,.error-modal__footer .onboarding-modal__nav.onboarding-modal__next:hover,.error-modal__footer .onboarding-modal__nav.onboarding-modal__next:focus,.error-modal__footer .onboarding-modal__nav.onboarding-modal__next:active,.error-modal__footer .error-modal__nav.onboarding-modal__done:hover,.error-modal__footer .error-modal__nav.onboarding-modal__done:focus,.error-modal__footer .error-modal__nav.onboarding-modal__done:active,.error-modal__footer .error-modal__nav.onboarding-modal__next:hover,.error-modal__footer .error-modal__nav.onboarding-modal__next:focus,.error-modal__footer .error-modal__nav.onboarding-modal__next:active{color:#000}.error-modal__footer{justify-content:center}.display-case{text-align:center;font-size:15px;margin-bottom:15px}.display-case__label{font-weight:500;color:#000;margin-bottom:5px;text-transform:uppercase;font-size:12px}.display-case__case{background:#d9e1e8;color:#282c37;font-weight:500;padding:10px;border-radius:4px}.onboard-sliders{display:inline-block;max-width:30px;max-height:auto;margin-left:10px}.boost-modal,.confirmation-modal,.report-modal,.actions-modal,.mute-modal,.block-modal{background:#17191f;color:#000;border-radius:8px;overflow:hidden;max-width:90vw;width:480px;position:relative;flex-direction:column}.boost-modal .status__display-name,.confirmation-modal .status__display-name,.report-modal .status__display-name,.actions-modal .status__display-name,.mute-modal .status__display-name,.block-modal .status__display-name{display:block;max-width:100%;padding-right:25px}.boost-modal .status__avatar,.confirmation-modal .status__avatar,.report-modal .status__avatar,.actions-modal .status__avatar,.mute-modal .status__avatar,.block-modal .status__avatar{height:28px;left:10px;position:absolute;top:10px;width:48px}.boost-modal .status__content__spoiler-link,.confirmation-modal .status__content__spoiler-link,.report-modal .status__content__spoiler-link,.actions-modal .status__content__spoiler-link,.mute-modal .status__content__spoiler-link,.block-modal .status__content__spoiler-link{color:#17191f}.actions-modal .status{background:#fff;border-bottom-color:#282c37;padding-top:10px;padding-bottom:10px}.actions-modal .dropdown-menu__separator{border-bottom-color:#282c37}.boost-modal__container{overflow-x:scroll;padding:10px}.boost-modal__container .status{user-select:text;border-bottom:0}.boost-modal__action-bar,.confirmation-modal__action-bar,.mute-modal__action-bar,.block-modal__action-bar{display:flex;justify-content:space-between;background:#282c37;padding:10px;line-height:36px}.boost-modal__action-bar>div,.confirmation-modal__action-bar>div,.mute-modal__action-bar>div,.block-modal__action-bar>div{flex:1 1 auto;text-align:right;color:#282c37;padding-right:10px}.boost-modal__action-bar .button,.confirmation-modal__action-bar .button,.mute-modal__action-bar .button,.block-modal__action-bar .button{flex:0 0 auto}.boost-modal__status-header{font-size:15px}.boost-modal__status-time{float:right;font-size:14px}.mute-modal,.block-modal{line-height:24px}.mute-modal .react-toggle,.block-modal .react-toggle{vertical-align:middle}.report-modal{width:90vw;max-width:700px}.report-modal__container{display:flex;border-top:1px solid #282c37}@media screen and (max-width: 480px){.report-modal__container{flex-wrap:wrap;overflow-y:auto}}.report-modal__statuses,.report-modal__comment{box-sizing:border-box;width:50%}@media screen and (max-width: 480px){.report-modal__statuses,.report-modal__comment{width:100%}}.report-modal__statuses,.focal-point-modal__content{flex:1 1 auto;min-height:20vh;max-height:80vh;overflow-y:auto;overflow-x:hidden}.report-modal__statuses .status__content a,.focal-point-modal__content .status__content a{color:#2b90d9}.report-modal__statuses .status__content,.report-modal__statuses .status__content p,.focal-point-modal__content .status__content,.focal-point-modal__content .status__content p{color:#000}@media screen and (max-width: 480px){.report-modal__statuses,.focal-point-modal__content{max-height:10vh}}@media screen and (max-width: 480px){.focal-point-modal__content{max-height:40vh}}.report-modal__comment{padding:20px;border-right:1px solid #282c37;max-width:320px}.report-modal__comment p{font-size:14px;line-height:20px;margin-bottom:20px}.report-modal__comment .setting-text{display:block;box-sizing:border-box;width:100%;margin:0;color:#000;background:#fff;padding:10px;font-family:inherit;font-size:14px;resize:none;border:0;outline:0;border-radius:4px;border:1px solid #282c37;min-height:100px;max-height:50vh;margin-bottom:10px}.report-modal__comment .setting-text:focus{border:1px solid #393f4f}.report-modal__comment .setting-text__wrapper{background:#fff;border:1px solid #282c37;margin-bottom:10px;border-radius:4px}.report-modal__comment .setting-text__wrapper .setting-text{border:0;margin-bottom:0;border-radius:0}.report-modal__comment .setting-text__wrapper .setting-text:focus{border:0}.report-modal__comment .setting-text__wrapper__modifiers{color:#000;font-family:inherit;font-size:14px;background:#fff}.report-modal__comment .setting-text__toolbar{display:flex;justify-content:space-between;margin-bottom:20px}.report-modal__comment .setting-text-label{display:block;color:#000;font-size:14px;font-weight:500;margin-bottom:10px}.report-modal__comment .setting-toggle{margin-top:20px;margin-bottom:24px}.report-modal__comment .setting-toggle__label{color:#000;font-size:14px}@media screen and (max-width: 480px){.report-modal__comment{padding:10px;max-width:100%;order:2}.report-modal__comment .setting-toggle{margin-bottom:4px}}.actions-modal{max-height:80vh;max-width:80vw}.actions-modal .status{overflow-y:auto;max-height:300px}.actions-modal .actions-modal__item-label{font-weight:500}.actions-modal ul{overflow-y:auto;flex-shrink:0;max-height:80vh}.actions-modal ul.with-status{max-height:calc(80vh - 75px)}.actions-modal ul li:empty{margin:0}.actions-modal ul li:not(:empty) a{color:#000;display:flex;padding:12px 16px;font-size:15px;align-items:center;text-decoration:none}.actions-modal ul li:not(:empty) a,.actions-modal ul li:not(:empty) a button{transition:none}.actions-modal ul li:not(:empty) a.active,.actions-modal ul li:not(:empty) a.active button,.actions-modal ul li:not(:empty) a:hover,.actions-modal ul li:not(:empty) a:hover button,.actions-modal ul li:not(:empty) a:active,.actions-modal ul li:not(:empty) a:active button,.actions-modal ul li:not(:empty) a:focus,.actions-modal ul li:not(:empty) a:focus button{background:#2b90d9;color:#000}.actions-modal ul li:not(:empty) a button:first-child{margin-right:10px}.confirmation-modal__action-bar .confirmation-modal__secondary-button,.mute-modal__action-bar .confirmation-modal__secondary-button,.block-modal__action-bar .confirmation-modal__secondary-button{flex-shrink:1}.confirmation-modal__secondary-button,.confirmation-modal__cancel-button,.mute-modal__cancel-button,.block-modal__cancel-button{background-color:transparent;color:#282c37;font-size:14px;font-weight:500}.confirmation-modal__secondary-button:hover,.confirmation-modal__secondary-button:focus,.confirmation-modal__secondary-button:active,.confirmation-modal__cancel-button:hover,.confirmation-modal__cancel-button:focus,.confirmation-modal__cancel-button:active,.mute-modal__cancel-button:hover,.mute-modal__cancel-button:focus,.mute-modal__cancel-button:active,.block-modal__cancel-button:hover,.block-modal__cancel-button:focus,.block-modal__cancel-button:active{color:#313543;background-color:transparent}.confirmation-modal__container,.mute-modal__container,.block-modal__container,.report-modal__target{padding:30px;font-size:16px}.confirmation-modal__container strong,.mute-modal__container strong,.block-modal__container strong,.report-modal__target strong{font-weight:500}.confirmation-modal__container strong:lang(ja),.mute-modal__container strong:lang(ja),.block-modal__container strong:lang(ja),.report-modal__target strong:lang(ja){font-weight:700}.confirmation-modal__container strong:lang(ko),.mute-modal__container strong:lang(ko),.block-modal__container strong:lang(ko),.report-modal__target strong:lang(ko){font-weight:700}.confirmation-modal__container strong:lang(zh-CN),.mute-modal__container strong:lang(zh-CN),.block-modal__container strong:lang(zh-CN),.report-modal__target strong:lang(zh-CN){font-weight:700}.confirmation-modal__container strong:lang(zh-HK),.mute-modal__container strong:lang(zh-HK),.block-modal__container strong:lang(zh-HK),.report-modal__target strong:lang(zh-HK){font-weight:700}.confirmation-modal__container strong:lang(zh-TW),.mute-modal__container strong:lang(zh-TW),.block-modal__container strong:lang(zh-TW),.report-modal__target strong:lang(zh-TW){font-weight:700}.confirmation-modal__container,.report-modal__target{text-align:center}.block-modal__explanation,.mute-modal__explanation{margin-top:20px}.block-modal .setting-toggle,.mute-modal .setting-toggle{margin-top:20px;margin-bottom:24px;display:flex;align-items:center}.block-modal .setting-toggle__label,.mute-modal .setting-toggle__label{color:#000;margin:0;margin-left:8px}.report-modal__target{padding:15px}.report-modal__target .media-modal__close{top:14px;right:15px}.loading-bar{background-color:#2b90d9;height:3px;position:absolute;top:0;left:0;z-index:9999}.media-gallery__gifv__label{display:block;position:absolute;color:#000;background:rgba(255,255,255,.5);bottom:6px;left:6px;padding:2px 6px;border-radius:2px;font-size:11px;font-weight:600;z-index:1;pointer-events:none;opacity:.9;transition:opacity .1s ease;line-height:18px}.media-gallery__gifv:hover .media-gallery__gifv__label{opacity:1}.media-gallery__audio{margin-top:32px}.media-gallery__audio audio{width:100%}.attachment-list{display:flex;font-size:14px;border:1px solid #c0cdd9;border-radius:4px;margin-top:14px;overflow:hidden}.attachment-list__icon{flex:0 0 auto;color:#444b5d;padding:8px 18px;cursor:default;border-right:1px solid #c0cdd9;display:flex;flex-direction:column;align-items:center;justify-content:center;font-size:26px}.attachment-list__icon .fa{display:block}.attachment-list__list{list-style:none;padding:4px 0;padding-left:8px;display:flex;flex-direction:column;justify-content:center}.attachment-list__list li{display:block;padding:4px 0}.attachment-list__list a{text-decoration:none;color:#444b5d;font-weight:500}.attachment-list__list a:hover{text-decoration:underline}.attachment-list.compact{border:0;margin-top:4px}.attachment-list.compact .attachment-list__list{padding:0;display:block}.attachment-list.compact .fa{color:#444b5d}.media-gallery{box-sizing:border-box;margin-top:8px;overflow:hidden;border-radius:4px;position:relative;width:100%}.media-gallery__item{border:0;box-sizing:border-box;display:block;float:left;position:relative;border-radius:4px;overflow:hidden}.media-gallery__item.standalone .media-gallery__item-gifv-thumbnail{transform:none;top:0}.media-gallery__item-thumbnail{cursor:zoom-in;display:block;text-decoration:none;color:#282c37;position:relative;z-index:1}.media-gallery__item-thumbnail,.media-gallery__item-thumbnail img{height:100%;width:100%}.media-gallery__item-thumbnail img{object-fit:cover}.media-gallery__preview{width:100%;height:100%;object-fit:cover;position:absolute;top:0;left:0;z-index:0;background:#fff}.media-gallery__preview--hidden{display:none}.media-gallery__gifv{height:100%;overflow:hidden;position:relative;width:100%}.media-gallery__item-gifv-thumbnail{cursor:zoom-in;height:100%;object-fit:cover;position:relative;top:50%;transform:translateY(-50%);width:100%;z-index:1}.media-gallery__item-thumbnail-label{clip:rect(1px 1px 1px 1px);clip:rect(1px, 1px, 1px, 1px);overflow:hidden;position:absolute}.detailed .video-player__volume__current,.detailed .video-player__volume::before,.fullscreen .video-player__volume__current,.fullscreen .video-player__volume::before{bottom:27px}.detailed .video-player__volume__handle,.fullscreen .video-player__volume__handle{bottom:23px}.audio-player{box-sizing:border-box;position:relative;background:#f2f5f7;border-radius:4px;padding-bottom:44px;direction:ltr}.audio-player.editable{border-radius:0;height:100%}.audio-player__waveform{padding:15px 0;position:relative;overflow:hidden}.audio-player__waveform::before{content:\"\";display:block;position:absolute;border-top:1px solid #ccd7e0;width:100%;height:0;left:0;top:calc(50% + 1px)}.audio-player__progress-placeholder{background-color:rgba(33,122,186,.5)}.audio-player__wave-placeholder{background-color:#a6b9c9}.audio-player .video-player__controls{padding:0 15px;padding-top:10px;background:#f2f5f7;border-top:1px solid #ccd7e0;border-radius:0 0 4px 4px}.video-player{overflow:hidden;position:relative;background:#000;max-width:100%;border-radius:4px;box-sizing:border-box;direction:ltr}.video-player.editable{border-radius:0;height:100% !important}.video-player:focus{outline:0}.video-player video{max-width:100vw;max-height:80vh;z-index:1}.video-player.fullscreen{width:100% !important;height:100% !important;margin:0}.video-player.fullscreen video{max-width:100% !important;max-height:100% !important;width:100% !important;height:100% !important;outline:0}.video-player.inline video{object-fit:contain;position:relative;top:50%;transform:translateY(-50%)}.video-player__controls{position:absolute;z-index:2;bottom:0;left:0;right:0;box-sizing:border-box;background:linear-gradient(0deg, rgba(0, 0, 0, 0.85) 0, rgba(0, 0, 0, 0.45) 60%, transparent);padding:0 15px;opacity:0;transition:opacity .1s ease}.video-player__controls.active{opacity:1}.video-player.inactive video,.video-player.inactive .video-player__controls{visibility:hidden}.video-player__spoiler{display:none;position:absolute;top:0;left:0;width:100%;height:100%;z-index:4;border:0;background:#fff;color:#282c37;transition:none;pointer-events:none}.video-player__spoiler.active{display:block;pointer-events:auto}.video-player__spoiler.active:hover,.video-player__spoiler.active:active,.video-player__spoiler.active:focus{color:#191b22}.video-player__spoiler__title{display:block;font-size:14px}.video-player__spoiler__subtitle{display:block;font-size:11px;font-weight:500}.video-player__buttons-bar{display:flex;justify-content:space-between;padding-bottom:10px}.video-player__buttons-bar .video-player__download__icon{color:inherit}.video-player__buttons{font-size:16px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.video-player__buttons.left button{padding-left:0}.video-player__buttons.right button{padding-right:0}.video-player__buttons button{background:transparent;padding:2px 10px;font-size:16px;border:0;color:rgba(255,255,255,.75)}.video-player__buttons button:active,.video-player__buttons button:hover,.video-player__buttons button:focus{color:#fff}.video-player__time-sep,.video-player__time-total,.video-player__time-current{font-size:14px;font-weight:500}.video-player__time-current{color:#fff;margin-left:60px}.video-player__time-sep{display:inline-block;margin:0 6px}.video-player__time-sep,.video-player__time-total{color:#fff}.video-player__volume{cursor:pointer;height:24px;display:inline}.video-player__volume::before{content:\"\";width:50px;background:rgba(255,255,255,.35);border-radius:4px;display:block;position:absolute;height:4px;left:70px;bottom:20px}.video-player__volume__current{display:block;position:absolute;height:4px;border-radius:4px;left:70px;bottom:20px;background:#217aba}.video-player__volume__handle{position:absolute;z-index:3;border-radius:50%;width:12px;height:12px;bottom:16px;left:70px;transition:opacity .1s ease;background:#217aba;box-shadow:1px 2px 6px rgba(0,0,0,.2);pointer-events:none}.video-player__link{padding:2px 10px}.video-player__link a{text-decoration:none;font-size:14px;font-weight:500;color:#fff}.video-player__link a:hover,.video-player__link a:active,.video-player__link a:focus{text-decoration:underline}.video-player__seek{cursor:pointer;height:24px;position:relative}.video-player__seek::before{content:\"\";width:100%;background:rgba(255,255,255,.35);border-radius:4px;display:block;position:absolute;height:4px;top:10px}.video-player__seek__progress,.video-player__seek__buffer{display:block;position:absolute;height:4px;border-radius:4px;top:10px;background:#217aba}.video-player__seek__buffer{background:rgba(255,255,255,.2)}.video-player__seek__handle{position:absolute;z-index:3;opacity:0;border-radius:50%;width:12px;height:12px;top:6px;margin-left:-6px;transition:opacity .1s ease;background:#217aba;box-shadow:1px 2px 6px rgba(0,0,0,.2);pointer-events:none}.video-player__seek__handle.active{opacity:1}.video-player__seek:hover .video-player__seek__handle{opacity:1}.video-player.detailed .video-player__buttons button,.video-player.fullscreen .video-player__buttons button{padding-top:10px;padding-bottom:10px}.directory__list{width:100%;margin:10px 0;transition:opacity 100ms ease-in}.directory__list.loading{opacity:.7}@media screen and (max-width: 415px){.directory__list{margin:0}}.directory__card{box-sizing:border-box;margin-bottom:10px}.directory__card__img{height:125px;position:relative;background:#fff;overflow:hidden}.directory__card__img img{display:block;width:100%;height:100%;margin:0;object-fit:cover}.directory__card__bar{display:flex;align-items:center;background:#ccd7e0;padding:10px}.directory__card__bar__name{flex:1 1 auto;display:flex;align-items:center;text-decoration:none;overflow:hidden}.directory__card__bar__relationship{width:23px;min-height:1px;flex:0 0 auto}.directory__card__bar .avatar{flex:0 0 auto;width:48px;height:48px;padding-top:2px}.directory__card__bar .avatar img{width:100%;height:100%;display:block;margin:0;border-radius:4px;background:#f2f5f7;object-fit:cover}.directory__card__bar .display-name{margin-left:15px;text-align:left}.directory__card__bar .display-name strong{font-size:15px;color:#000;font-weight:500;overflow:hidden;text-overflow:ellipsis}.directory__card__bar .display-name span{display:block;font-size:14px;color:#282c37;font-weight:400;overflow:hidden;text-overflow:ellipsis}.directory__card__extra{background:#d9e1e8;display:flex;align-items:center;justify-content:center}.directory__card__extra .accounts-table__count{width:33.33%;flex:0 0 auto;padding:15px 0}.directory__card__extra .account__header__content{box-sizing:border-box;padding:15px 10px;border-bottom:1px solid #c0cdd9;width:100%;min-height:48px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.directory__card__extra .account__header__content p{display:none}.directory__card__extra .account__header__content p:first-child{display:inline}.directory__card__extra .account__header__content br{display:none}.account-gallery__container{display:flex;flex-wrap:wrap;padding:4px 2px}.account-gallery__item{border:0;box-sizing:border-box;display:block;position:relative;border-radius:4px;overflow:hidden;margin:2px}.account-gallery__item__icons{position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);font-size:24px}.notification__filter-bar,.account__section-headline{background:#e6ebf0;border-bottom:1px solid #c0cdd9;cursor:default;display:flex;flex-shrink:0}.notification__filter-bar button,.account__section-headline button{background:#e6ebf0;border:0;margin:0}.notification__filter-bar button,.notification__filter-bar a,.account__section-headline button,.account__section-headline a{display:block;flex:1 1 auto;color:#282c37;padding:15px 0;font-size:14px;font-weight:500;text-align:center;text-decoration:none;position:relative;width:100%;white-space:nowrap}.notification__filter-bar button.active,.notification__filter-bar a.active,.account__section-headline button.active,.account__section-headline a.active{color:#282c37}.notification__filter-bar button.active::before,.notification__filter-bar button.active::after,.notification__filter-bar a.active::before,.notification__filter-bar a.active::after,.account__section-headline button.active::before,.account__section-headline button.active::after,.account__section-headline a.active::before,.account__section-headline a.active::after{display:block;content:\"\";position:absolute;bottom:0;left:50%;width:0;height:0;transform:translateX(-50%);border-style:solid;border-width:0 10px 10px;border-color:transparent transparent #c0cdd9}.notification__filter-bar button.active::after,.notification__filter-bar a.active::after,.account__section-headline button.active::after,.account__section-headline a.active::after{bottom:-1px;border-color:transparent transparent #d9e1e8}.notification__filter-bar.directory__section-headline,.account__section-headline.directory__section-headline{background:#dfe6ec;border-bottom-color:transparent}.notification__filter-bar.directory__section-headline a.active::before,.notification__filter-bar.directory__section-headline button.active::before,.account__section-headline.directory__section-headline a.active::before,.account__section-headline.directory__section-headline button.active::before{display:none}.notification__filter-bar.directory__section-headline a.active::after,.notification__filter-bar.directory__section-headline button.active::after,.account__section-headline.directory__section-headline a.active::after,.account__section-headline.directory__section-headline button.active::after{border-color:transparent transparent #eff3f5}.filter-form{background:#d9e1e8}.filter-form__column{padding:10px 15px}.filter-form .radio-button{display:block}.radio-button{font-size:14px;position:relative;display:inline-block;padding:6px 0;line-height:18px;cursor:default;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:pointer}.radio-button input[type=radio],.radio-button input[type=checkbox]{display:none}.radio-button__input{display:inline-block;position:relative;border:1px solid #9bcbed;box-sizing:border-box;width:18px;height:18px;flex:0 0 auto;margin-right:10px;top:-1px;border-radius:50%;vertical-align:middle}.radio-button__input.checked{border-color:#217aba;background:#217aba}::-webkit-scrollbar-thumb{border-radius:0}.search-popout{background:#fff;border-radius:4px;padding:10px 14px;padding-bottom:14px;margin-top:10px;color:#444b5d;box-shadow:2px 4px 15px rgba(0,0,0,.4)}.search-popout h4{text-transform:uppercase;color:#444b5d;font-size:13px;font-weight:500;margin-bottom:10px}.search-popout li{padding:4px 0}.search-popout ul{margin-bottom:10px}.search-popout em{font-weight:500;color:#000}noscript{text-align:center}noscript img{width:200px;opacity:.5;animation:flicker 4s infinite}noscript div{font-size:14px;margin:30px auto;color:#282c37;max-width:400px}noscript div a{color:#2b90d9;text-decoration:underline}noscript div a:hover{text-decoration:none}@keyframes flicker{0%{opacity:1}30%{opacity:.75}100%{opacity:1}}@media screen and (max-width: 630px)and (max-height: 400px){.tabs-bar,.search{will-change:margin-top;transition:margin-top 400ms 100ms}.navigation-bar{will-change:padding-bottom;transition:padding-bottom 400ms 100ms}.navigation-bar>a:first-child{will-change:margin-top,margin-left,margin-right,width;transition:margin-top 400ms 100ms,margin-left 400ms 500ms,margin-right 400ms 500ms}.navigation-bar>.navigation-bar__profile-edit{will-change:margin-top;transition:margin-top 400ms 100ms}.navigation-bar .navigation-bar__actions>.icon-button.close{will-change:opacity transform;transition:opacity 200ms 100ms,transform 400ms 100ms}.navigation-bar .navigation-bar__actions>.compose__action-bar .icon-button{will-change:opacity transform;transition:opacity 200ms 300ms,transform 400ms 100ms}.is-composing .tabs-bar,.is-composing .search{margin-top:-50px}.is-composing .navigation-bar{padding-bottom:0}.is-composing .navigation-bar>a:first-child{margin:-100px 10px 0 -50px}.is-composing .navigation-bar .navigation-bar__profile{padding-top:2px}.is-composing .navigation-bar .navigation-bar__profile-edit{position:absolute;margin-top:-60px}.is-composing .navigation-bar .navigation-bar__actions .icon-button.close{pointer-events:auto;opacity:1;transform:scale(1, 1) translate(0, 0);bottom:5px}.is-composing .navigation-bar .navigation-bar__actions .compose__action-bar .icon-button{pointer-events:none;opacity:0;transform:scale(0, 1) translate(100%, 0)}}.embed-modal{width:auto;max-width:80vw;max-height:80vh}.embed-modal h4{padding:30px;font-weight:500;font-size:16px;text-align:center}.embed-modal .embed-modal__container{padding:10px}.embed-modal .embed-modal__container .hint{margin-bottom:15px}.embed-modal .embed-modal__container .embed-modal__html{outline:0;box-sizing:border-box;display:block;width:100%;border:0;padding:10px;font-family:\"mastodon-font-monospace\",monospace;background:#d9e1e8;color:#000;font-size:14px;margin:0;margin-bottom:15px;border-radius:4px}.embed-modal .embed-modal__container .embed-modal__html::-moz-focus-inner{border:0}.embed-modal .embed-modal__container .embed-modal__html::-moz-focus-inner,.embed-modal .embed-modal__container .embed-modal__html:focus,.embed-modal .embed-modal__container .embed-modal__html:active{outline:0 !important}.embed-modal .embed-modal__container .embed-modal__html:focus{background:#ccd7e0}@media screen and (max-width: 600px){.embed-modal .embed-modal__container .embed-modal__html{font-size:16px}}.embed-modal .embed-modal__container .embed-modal__iframe{width:400px;max-width:100%;overflow:hidden;border:0;border-radius:4px}.account__moved-note{padding:14px 10px;padding-bottom:16px;background:#ccd7e0;border-top:1px solid #c0cdd9;border-bottom:1px solid #c0cdd9}.account__moved-note__message{position:relative;margin-left:58px;color:#444b5d;padding:8px 0;padding-top:0;padding-bottom:4px;font-size:14px}.account__moved-note__message>span{display:block;overflow:hidden;text-overflow:ellipsis}.account__moved-note__icon-wrapper{left:-26px;position:absolute}.account__moved-note .detailed-status__display-avatar{position:relative}.account__moved-note .detailed-status__display-name{margin-bottom:0}.column-inline-form{padding:15px;padding-right:0;display:flex;justify-content:flex-start;align-items:center;background:#ccd7e0}.column-inline-form label{flex:1 1 auto}.column-inline-form label input{width:100%}.column-inline-form label input:focus{outline:0}.column-inline-form .icon-button{flex:0 0 auto;margin:0 10px}.drawer__backdrop{cursor:pointer;position:absolute;top:0;left:0;width:100%;height:100%;background:rgba(255,255,255,.5)}.list-editor{background:#d9e1e8;flex-direction:column;border-radius:8px;box-shadow:2px 4px 15px rgba(0,0,0,.4);width:380px;overflow:hidden}@media screen and (max-width: 420px){.list-editor{width:90%}}.list-editor h4{padding:15px 0;background:#b0c0cf;font-weight:500;font-size:16px;text-align:center;border-radius:8px 8px 0 0}.list-editor .drawer__pager{height:50vh}.list-editor .drawer__inner{border-radius:0 0 8px 8px}.list-editor .drawer__inner.backdrop{width:calc(100% - 60px);box-shadow:2px 4px 15px rgba(0,0,0,.4);border-radius:0 0 0 8px}.list-editor__accounts{overflow-y:auto}.list-editor .account__display-name:hover strong{text-decoration:none}.list-editor .account__avatar{cursor:default}.list-editor .search{margin-bottom:0}.list-adder{background:#d9e1e8;flex-direction:column;border-radius:8px;box-shadow:2px 4px 15px rgba(0,0,0,.4);width:380px;overflow:hidden}@media screen and (max-width: 420px){.list-adder{width:90%}}.list-adder__account{background:#b0c0cf}.list-adder__lists{background:#b0c0cf;height:50vh;border-radius:0 0 8px 8px;overflow-y:auto}.list-adder .list{padding:10px;border-bottom:1px solid #c0cdd9}.list-adder .list__wrapper{display:flex}.list-adder .list__display-name{flex:1 1 auto;overflow:hidden;text-decoration:none;font-size:16px;padding:10px}.focal-point{position:relative;cursor:move;overflow:hidden;height:100%;display:flex;justify-content:center;align-items:center;background:#000}.focal-point img,.focal-point video,.focal-point canvas{display:block;max-height:80vh;width:100%;height:auto;margin:0;object-fit:contain;background:#000}.focal-point__reticle{position:absolute;width:100px;height:100px;transform:translate(-50%, -50%);background:url(\"~images/reticle.png\") no-repeat 0 0;border-radius:50%;box-shadow:0 0 0 9999em rgba(0,0,0,.35)}.focal-point__overlay{position:absolute;width:100%;height:100%;top:0;left:0}.focal-point__preview{position:absolute;bottom:10px;right:10px;z-index:2;cursor:move;transition:opacity .1s ease}.focal-point__preview:hover{opacity:.5}.focal-point__preview strong{color:#000;font-size:14px;font-weight:500;display:block;margin-bottom:5px}.focal-point__preview div{border-radius:4px;box-shadow:0 0 14px rgba(0,0,0,.2)}@media screen and (max-width: 480px){.focal-point img,.focal-point video{max-height:100%}.focal-point__preview{display:none}}.account__header__content{color:#282c37;font-size:14px;font-weight:400;overflow:hidden;word-break:normal;word-wrap:break-word}.account__header__content p{margin-bottom:20px}.account__header__content p:last-child{margin-bottom:0}.account__header__content a{color:inherit;text-decoration:underline}.account__header__content a:hover{text-decoration:none}.account__header{overflow:hidden}.account__header.inactive{opacity:.5}.account__header.inactive .account__header__image,.account__header.inactive .account__avatar{filter:grayscale(100%)}.account__header__info{position:absolute;top:10px;left:10px}.account__header__image{overflow:hidden;height:145px;position:relative;background:#e6ebf0}.account__header__image img{object-fit:cover;display:block;width:100%;height:100%;margin:0}.account__header__bar{position:relative;background:#ccd7e0;padding:5px;border-bottom:1px solid #b3c3d1}.account__header__bar .avatar{display:block;flex:0 0 auto;width:94px;margin-left:-2px}.account__header__bar .avatar .account__avatar{background:#f2f5f7;border:2px solid #ccd7e0}.account__header__tabs{display:flex;align-items:flex-start;padding:7px 5px;margin-top:-55px}.account__header__tabs__buttons{display:flex;align-items:center;padding-top:55px;overflow:hidden}.account__header__tabs__buttons .icon-button{border:1px solid #b3c3d1;border-radius:4px;box-sizing:content-box;padding:2px}.account__header__tabs__buttons .button{margin:0 8px}.account__header__tabs__name{padding:5px}.account__header__tabs__name .account-role{vertical-align:top}.account__header__tabs__name .emojione{width:22px;height:22px}.account__header__tabs__name h1{font-size:16px;line-height:24px;color:#000;font-weight:500;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.account__header__tabs__name h1 small{display:block;font-size:14px;color:#282c37;font-weight:400;overflow:hidden;text-overflow:ellipsis}.account__header__tabs .spacer{flex:1 1 auto}.account__header__bio{overflow:hidden;margin:0 -5px}.account__header__bio .account__header__content{padding:20px 15px;padding-bottom:5px;color:#000}.account__header__bio .account__header__fields{margin:0;border-top:1px solid #b3c3d1}.account__header__bio .account__header__fields a{color:#217aba}.account__header__bio .account__header__fields dl:first-child .verified{border-radius:0 4px 0 0}.account__header__bio .account__header__fields .verified a{color:#4a905f}.account__header__extra{margin-top:4px}.account__header__extra__links{font-size:14px;color:#282c37;padding:10px 0}.account__header__extra__links a{display:inline-block;color:#282c37;text-decoration:none;padding:5px 10px;font-weight:500}.account__header__extra__links a strong{font-weight:700;color:#000}.trends__header{color:#444b5d;background:#d3dce4;border-bottom:1px solid #e6ebf0;font-weight:500;padding:15px;font-size:16px;cursor:default}.trends__header .fa{display:inline-block;margin-right:5px}.trends__item{display:flex;align-items:center;padding:15px;border-bottom:1px solid #c0cdd9}.trends__item:last-child{border-bottom:0}.trends__item__name{flex:1 1 auto;color:#444b5d;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.trends__item__name strong{font-weight:500}.trends__item__name a{color:#282c37;text-decoration:none;font-size:14px;font-weight:500;display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.trends__item__name a:hover span,.trends__item__name a:focus span,.trends__item__name a:active span{text-decoration:underline}.trends__item__current{flex:0 0 auto;font-size:24px;line-height:36px;font-weight:500;text-align:right;padding-right:15px;margin-left:5px;color:#282c37}.trends__item__sparkline{flex:0 0 auto;width:50px}.trends__item__sparkline path:first-child{fill:rgba(43,144,217,.25) !important;fill-opacity:1 !important}.trends__item__sparkline path:last-child{stroke:#2380c3 !important}.conversation{display:flex;border-bottom:1px solid #c0cdd9;padding:5px;padding-bottom:0}.conversation:focus{background:#d3dce4;outline:0}.conversation__avatar{flex:0 0 auto;padding:10px;padding-top:12px;position:relative;cursor:pointer}.conversation__unread{display:inline-block;background:#2b90d9;border-radius:50%;width:.625rem;height:.625rem;margin:-0.1ex .15em .1ex}.conversation__content{flex:1 1 auto;padding:10px 5px;padding-right:15px;overflow:hidden}.conversation__content__info{overflow:hidden;display:flex;flex-direction:row-reverse;justify-content:space-between}.conversation__content__relative-time{font-size:15px;color:#282c37;padding-left:15px}.conversation__content__names{color:#282c37;font-size:15px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-bottom:4px;flex-basis:90px;flex-grow:1}.conversation__content__names a{color:#000;text-decoration:none}.conversation__content__names a:hover,.conversation__content__names a:focus,.conversation__content__names a:active{text-decoration:underline}.conversation__content a{word-break:break-word}.conversation--unread{background:#d3dce4}.conversation--unread:focus{background:#ccd7e0}.conversation--unread .conversation__content__info{font-weight:700}.conversation--unread .conversation__content__relative-time{color:#000}.announcements{background:#c0cdd9;font-size:13px;display:flex;align-items:flex-end}.announcements__mastodon{width:124px;flex:0 0 auto}@media screen and (max-width: 424px){.announcements__mastodon{display:none}}.announcements__container{width:calc(100% - 124px);flex:0 0 auto;position:relative}@media screen and (max-width: 424px){.announcements__container{width:100%}}.announcements__item{box-sizing:border-box;width:100%;padding:15px;position:relative;font-size:15px;line-height:20px;word-wrap:break-word;font-weight:400;max-height:50vh;overflow:hidden;display:flex;flex-direction:column}.announcements__item__range{display:block;font-weight:500;margin-bottom:10px;padding-right:18px}.announcements__item__unread{position:absolute;top:19px;right:19px;display:block;background:#2b90d9;border-radius:50%;width:.625rem;height:.625rem}.announcements__pagination{padding:15px;color:#282c37;position:absolute;bottom:3px;right:0}.layout-multiple-columns .announcements__mastodon{display:none}.layout-multiple-columns .announcements__container{width:100%}.reactions-bar{display:flex;flex-wrap:wrap;align-items:center;margin-top:15px;margin-left:-2px;width:calc(100% - (90px - 33px))}.reactions-bar__item{flex-shrink:0;background:#b3c3d1;border:0;border-radius:3px;margin:2px;cursor:pointer;user-select:none;padding:0 6px;display:flex;align-items:center;transition:all 100ms ease-in;transition-property:background-color,color}.reactions-bar__item__emoji{display:block;margin:3px 0;width:16px;height:16px}.reactions-bar__item__emoji img{display:block;margin:0;width:100%;height:100%;min-width:auto;min-height:auto;vertical-align:bottom;object-fit:contain}.reactions-bar__item__count{display:block;min-width:9px;font-size:13px;font-weight:500;text-align:center;margin-left:6px;color:#282c37}.reactions-bar__item:hover,.reactions-bar__item:focus,.reactions-bar__item:active{background:#a6b9c9;transition:all 200ms ease-out;transition-property:background-color,color}.reactions-bar__item:hover__count,.reactions-bar__item:focus__count,.reactions-bar__item:active__count{color:#1f232b}.reactions-bar__item.active{transition:all 100ms ease-in;transition-property:background-color,color;background-color:#98b9d3}.reactions-bar__item.active .reactions-bar__item__count{color:#217aba}.reactions-bar .emoji-picker-dropdown{margin:2px}.reactions-bar:hover .emoji-button{opacity:.85}.reactions-bar .emoji-button{color:#282c37;margin:0;font-size:16px;width:auto;flex-shrink:0;padding:0 6px;height:22px;display:flex;align-items:center;opacity:.5;transition:all 100ms ease-in;transition-property:background-color,color}.reactions-bar .emoji-button:hover,.reactions-bar .emoji-button:active,.reactions-bar .emoji-button:focus{opacity:1;color:#1f232b;transition:all 200ms ease-out;transition-property:background-color,color}.reactions-bar--empty .emoji-button{padding:0}.poll{margin-top:16px;font-size:14px}.poll li{margin-bottom:10px;position:relative}.poll__chart{border-radius:4px;display:block;background:#b1d6f1;height:5px;min-width:1%}.poll__chart.leading{background:#2b90d9}.poll__option{position:relative;display:flex;padding:6px 0;line-height:18px;cursor:default;overflow:hidden}.poll__option__text{display:inline-block;word-wrap:break-word;overflow-wrap:break-word;max-width:calc(100% - 45px - 25px)}.poll__option input[type=radio],.poll__option input[type=checkbox]{display:none}.poll__option .autossugest-input{flex:1 1 auto}.poll__option input[type=text]{display:block;box-sizing:border-box;width:100%;font-size:14px;color:#000;outline:0;font-family:inherit;background:#fff;border:1px solid #fff;border-radius:4px;padding:6px 10px}.poll__option input[type=text]:focus{border-color:#2b90d9}.poll__option.selectable{cursor:pointer}.poll__option.editable{display:flex;align-items:center;overflow:visible}.poll__input{display:inline-block;position:relative;border:1px solid #9bcbed;box-sizing:border-box;width:18px;height:18px;flex:0 0 auto;margin-right:10px;top:-1px;border-radius:50%;vertical-align:middle;margin-top:auto;margin-bottom:auto;flex:0 0 18px}.poll__input.checkbox{border-radius:4px}.poll__input.active{border-color:#4a905f;background:#4a905f}.poll__input:active,.poll__input:focus,.poll__input:hover{border-color:#305d3d;border-width:4px}.poll__input::-moz-focus-inner{outline:0 !important;border:0}.poll__input:focus,.poll__input:active{outline:0 !important}.poll__number{display:inline-block;width:45px;font-weight:700;flex:0 0 45px}.poll__voted{padding:0 5px;display:inline-block}.poll__voted__mark{font-size:18px}.poll__footer{padding-top:6px;padding-bottom:5px;color:#444b5d}.poll__link{display:inline;background:transparent;padding:0;margin:0;border:0;color:#444b5d;text-decoration:underline;font-size:inherit}.poll__link:hover{text-decoration:none}.poll__link:active,.poll__link:focus{background-color:rgba(68,75,93,.1)}.poll .button{height:36px;padding:0 16px;margin-right:10px;font-size:14px}.compose-form__poll-wrapper{border-top:1px solid #fff}.compose-form__poll-wrapper ul{padding:10px}.compose-form__poll-wrapper .poll__footer{border-top:1px solid #fff;padding:10px;display:flex;align-items:center}.compose-form__poll-wrapper .poll__footer button,.compose-form__poll-wrapper .poll__footer select{flex:1 1 50%}.compose-form__poll-wrapper .poll__footer button:focus,.compose-form__poll-wrapper .poll__footer select:focus{border-color:#2b90d9}.compose-form__poll-wrapper .button.button-secondary{font-size:14px;font-weight:400;padding:6px 10px;height:auto;line-height:inherit;color:#606984;border-color:#606984;margin-right:5px}.compose-form__poll-wrapper li{display:flex;align-items:center}.compose-form__poll-wrapper li .poll__option{flex:0 0 auto;width:calc(100% - (23px + 6px));margin-right:6px}.compose-form__poll-wrapper select{appearance:none;box-sizing:border-box;font-size:14px;color:#000;display:inline-block;width:auto;outline:0;font-family:inherit;background:#fff url(\"data:image/svg+xml;utf8,\") no-repeat right 8px center/auto 16px;border:1px solid #fff;border-radius:4px;padding:6px 10px;padding-right:30px}.compose-form__poll-wrapper .icon-button.disabled{color:#fff}.muted .poll{color:#444b5d}.muted .poll__chart{background:rgba(216,234,248,.2)}.muted .poll__chart.leading{background:rgba(43,144,217,.2)}.modal-layout{background:#d9e1e8 url('data:image/svg+xml;utf8,') repeat-x bottom fixed;display:flex;flex-direction:column;height:100vh;padding:0}.modal-layout__mastodon{display:flex;flex:1;flex-direction:column;justify-content:flex-end}.modal-layout__mastodon>*{flex:1;max-height:235px}@media screen and (max-width: 600px){.account-header{margin-top:0}}.emoji-mart{font-size:13px;display:inline-block;color:#000}.emoji-mart,.emoji-mart *{box-sizing:border-box;line-height:1.15}.emoji-mart .emoji-mart-emoji{padding:6px}.emoji-mart-bar{border:0 solid #393f4f}.emoji-mart-bar:first-child{border-bottom-width:1px;border-top-left-radius:5px;border-top-right-radius:5px;background:#282c37}.emoji-mart-bar:last-child{border-top-width:1px;border-bottom-left-radius:5px;border-bottom-right-radius:5px;display:none}.emoji-mart-anchors{display:flex;justify-content:space-between;padding:0 6px;color:#282c37;line-height:0}.emoji-mart-anchor{position:relative;flex:1;text-align:center;padding:12px 4px;overflow:hidden;transition:color .1s ease-out;cursor:pointer}.emoji-mart-anchor:hover{color:#313543}.emoji-mart-anchor-selected{color:#2b90d9}.emoji-mart-anchor-selected:hover{color:#3c99dc}.emoji-mart-anchor-selected .emoji-mart-anchor-bar{bottom:-1px}.emoji-mart-anchor-bar{position:absolute;bottom:-5px;left:0;width:100%;height:4px;background-color:#2b90d9}.emoji-mart-anchors i{display:inline-block;width:100%;max-width:22px}.emoji-mart-anchors svg{fill:currentColor;max-height:18px}.emoji-mart-scroll{overflow-y:scroll;height:270px;max-height:35vh;padding:0 6px 6px;background:#fff;will-change:transform}.emoji-mart-scroll::-webkit-scrollbar-track:hover,.emoji-mart-scroll::-webkit-scrollbar-track:active{background-color:rgba(255,255,255,.3)}.emoji-mart-search{padding:10px;padding-right:45px;background:#fff}.emoji-mart-search input{font-size:14px;font-weight:400;padding:7px 9px;font-family:inherit;display:block;width:100%;background:rgba(40,44,55,.3);color:#000;border:1px solid #282c37;border-radius:4px}.emoji-mart-search input::-moz-focus-inner{border:0}.emoji-mart-search input::-moz-focus-inner,.emoji-mart-search input:focus,.emoji-mart-search input:active{outline:0 !important}.emoji-mart-category .emoji-mart-emoji{cursor:pointer}.emoji-mart-category .emoji-mart-emoji span{z-index:1;position:relative;text-align:center}.emoji-mart-category .emoji-mart-emoji:hover::before{z-index:0;content:\"\";position:absolute;top:0;left:0;width:100%;height:100%;background-color:rgba(40,44,55,.7);border-radius:100%}.emoji-mart-category-label{z-index:2;position:relative;position:-webkit-sticky;position:sticky;top:0}.emoji-mart-category-label span{display:block;width:100%;font-weight:500;padding:5px 6px;background:#fff}.emoji-mart-emoji{position:relative;display:inline-block;font-size:0}.emoji-mart-emoji span{width:22px;height:22px}.emoji-mart-no-results{font-size:14px;text-align:center;padding-top:70px;color:#444b5d}.emoji-mart-no-results .emoji-mart-category-label{display:none}.emoji-mart-no-results .emoji-mart-no-results-label{margin-top:.2em}.emoji-mart-no-results .emoji-mart-emoji:hover::before{content:none}.emoji-mart-preview{display:none}.container{box-sizing:border-box;max-width:1235px;margin:0 auto;position:relative}@media screen and (max-width: 1255px){.container{width:100%;padding:0 10px}}.rich-formatting{font-family:\"mastodon-font-sans-serif\",sans-serif;font-size:14px;font-weight:400;line-height:1.7;word-wrap:break-word;color:#282c37}.rich-formatting a{color:#2b90d9;text-decoration:underline}.rich-formatting a:hover,.rich-formatting a:focus,.rich-formatting a:active{text-decoration:none}.rich-formatting p,.rich-formatting li{color:#282c37}.rich-formatting p{margin-top:0;margin-bottom:.85em}.rich-formatting p:last-child{margin-bottom:0}.rich-formatting strong{font-weight:700;color:#282c37}.rich-formatting em{font-style:italic;color:#282c37}.rich-formatting code{font-size:.85em;background:#f2f5f7;border-radius:4px;padding:.2em .3em}.rich-formatting h1,.rich-formatting h2,.rich-formatting h3,.rich-formatting h4,.rich-formatting h5,.rich-formatting h6{font-family:\"mastodon-font-display\",sans-serif;margin-top:1.275em;margin-bottom:.85em;font-weight:500;color:#282c37}.rich-formatting h1{font-size:2em}.rich-formatting h2{font-size:1.75em}.rich-formatting h3{font-size:1.5em}.rich-formatting h4{font-size:1.25em}.rich-formatting h5,.rich-formatting h6{font-size:1em}.rich-formatting ul{list-style:disc}.rich-formatting ol{list-style:decimal}.rich-formatting ul,.rich-formatting ol{margin:0;padding:0;padding-left:2em;margin-bottom:.85em}.rich-formatting ul[type=a],.rich-formatting ol[type=a]{list-style-type:lower-alpha}.rich-formatting ul[type=i],.rich-formatting ol[type=i]{list-style-type:lower-roman}.rich-formatting hr{width:100%;height:0;border:0;border-bottom:1px solid #ccd7e0;margin:1.7em 0}.rich-formatting hr.spacer{height:1px;border:0}.rich-formatting table{width:100%;border-collapse:collapse;break-inside:auto;margin-top:24px;margin-bottom:32px}.rich-formatting table thead tr,.rich-formatting table tbody tr{border-bottom:1px solid #ccd7e0;font-size:1em;line-height:1.625;font-weight:400;text-align:left;color:#282c37}.rich-formatting table thead tr{border-bottom-width:2px;line-height:1.5;font-weight:500;color:#444b5d}.rich-formatting table th,.rich-formatting table td{padding:8px;align-self:start;align-items:start;word-break:break-all}.rich-formatting table th.nowrap,.rich-formatting table td.nowrap{width:25%;position:relative}.rich-formatting table th.nowrap::before,.rich-formatting table td.nowrap::before{content:\" \";visibility:hidden}.rich-formatting table th.nowrap span,.rich-formatting table td.nowrap span{position:absolute;left:8px;right:8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.rich-formatting>:first-child{margin-top:0}.information-board{background:#e6ebf0;padding:20px 0}.information-board .container-alt{position:relative;padding-right:295px}.information-board__sections{display:flex;justify-content:space-between;flex-wrap:wrap}.information-board__section{flex:1 0 0;font-family:\"mastodon-font-sans-serif\",sans-serif;font-size:16px;line-height:28px;color:#000;text-align:right;padding:10px 15px}.information-board__section span,.information-board__section strong{display:block}.information-board__section span:last-child{color:#282c37}.information-board__section strong{font-family:\"mastodon-font-display\",sans-serif;font-weight:500;font-size:32px;line-height:48px}@media screen and (max-width: 700px){.information-board__section{text-align:center}}.information-board .panel{position:absolute;width:280px;box-sizing:border-box;background:#f2f5f7;padding:20px;padding-top:10px;border-radius:4px 4px 0 0;right:0;bottom:-40px}.information-board .panel .panel-header{font-family:\"mastodon-font-display\",sans-serif;font-size:14px;line-height:24px;font-weight:500;color:#282c37;padding-bottom:5px;margin-bottom:15px;border-bottom:1px solid #ccd7e0;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.information-board .panel .panel-header a,.information-board .panel .panel-header span{font-weight:400;color:#3d4455}.information-board .panel .panel-header a{text-decoration:none}.information-board .owner{text-align:center}.information-board .owner .avatar{width:80px;height:80px;margin:0 auto;margin-bottom:15px}.information-board .owner .avatar img{display:block;width:80px;height:80px;border-radius:48px}.information-board .owner .name{font-size:14px}.information-board .owner .name a{display:block;color:#000;text-decoration:none}.information-board .owner .name a:hover .display_name{text-decoration:underline}.information-board .owner .name .username{display:block;color:#282c37}.landing-page p,.landing-page li{font-family:\"mastodon-font-sans-serif\",sans-serif;font-size:16px;font-weight:400;font-size:16px;line-height:30px;margin-bottom:12px;color:#282c37}.landing-page p a,.landing-page li a{color:#2b90d9;text-decoration:underline}.landing-page em{display:inline;margin:0;padding:0;font-weight:700;background:transparent;font-family:inherit;font-size:inherit;line-height:inherit;color:#131419}.landing-page h1{font-family:\"mastodon-font-display\",sans-serif;font-size:26px;line-height:30px;font-weight:500;margin-bottom:20px;color:#282c37}.landing-page h1 small{font-family:\"mastodon-font-sans-serif\",sans-serif;display:block;font-size:18px;font-weight:400;color:#131419}.landing-page h2{font-family:\"mastodon-font-display\",sans-serif;font-size:22px;line-height:26px;font-weight:500;margin-bottom:20px;color:#282c37}.landing-page h3{font-family:\"mastodon-font-display\",sans-serif;font-size:18px;line-height:24px;font-weight:500;margin-bottom:20px;color:#282c37}.landing-page h4{font-family:\"mastodon-font-display\",sans-serif;font-size:16px;line-height:24px;font-weight:500;margin-bottom:20px;color:#282c37}.landing-page h5{font-family:\"mastodon-font-display\",sans-serif;font-size:14px;line-height:24px;font-weight:500;margin-bottom:20px;color:#282c37}.landing-page h6{font-family:\"mastodon-font-display\",sans-serif;font-size:12px;line-height:24px;font-weight:500;margin-bottom:20px;color:#282c37}.landing-page ul,.landing-page ol{margin-left:20px}.landing-page ul[type=a],.landing-page ol[type=a]{list-style-type:lower-alpha}.landing-page ul[type=i],.landing-page ol[type=i]{list-style-type:lower-roman}.landing-page ul{list-style:disc}.landing-page ol{list-style:decimal}.landing-page li>ol,.landing-page li>ul{margin-top:6px}.landing-page hr{width:100%;height:0;border:0;border-bottom:1px solid rgba(176,192,207,.6);margin:20px 0}.landing-page hr.spacer{height:1px;border:0}.landing-page__information,.landing-page__forms{padding:20px}.landing-page__call-to-action{background:#d9e1e8;border-radius:4px;padding:25px 40px;overflow:hidden;box-sizing:border-box}.landing-page__call-to-action .row{width:100%;display:flex;flex-direction:row-reverse;flex-wrap:nowrap;justify-content:space-between;align-items:center}.landing-page__call-to-action .row__information-board{display:flex;justify-content:flex-end;align-items:flex-end}.landing-page__call-to-action .row__information-board .information-board__section{flex:1 0 auto;padding:0 10px}@media screen and (max-width: 415px){.landing-page__call-to-action .row__information-board{width:100%;justify-content:space-between}}.landing-page__call-to-action .row__mascot{flex:1;margin:10px -50px 0 0}@media screen and (max-width: 415px){.landing-page__call-to-action .row__mascot{display:none}}.landing-page__logo{margin-right:20px}.landing-page__logo img{height:50px;width:auto;mix-blend-mode:lighten}.landing-page__information{padding:45px 40px;margin-bottom:10px}.landing-page__information:last-child{margin-bottom:0}.landing-page__information strong{font-weight:500;color:#131419}.landing-page__information .account{border-bottom:0;padding:0}.landing-page__information .account__display-name{align-items:center;display:flex;margin-right:5px}.landing-page__information .account div.account__display-name:hover .display-name strong{text-decoration:none}.landing-page__information .account div.account__display-name .account__avatar{cursor:default}.landing-page__information .account__avatar-wrapper{margin-left:0;flex:0 0 auto}.landing-page__information .account__avatar{width:44px;height:44px;background-size:44px 44px}.landing-page__information .account .display-name{font-size:15px}.landing-page__information .account .display-name__account{font-size:14px}@media screen and (max-width: 960px){.landing-page__information .contact{margin-top:30px}}@media screen and (max-width: 700px){.landing-page__information{padding:25px 20px}}.landing-page__information,.landing-page__forms,.landing-page #mastodon-timeline{box-sizing:border-box;background:#d9e1e8;border-radius:4px;box-shadow:0 0 6px rgba(0,0,0,.1)}.landing-page__mascot{height:104px;position:relative;left:-40px;bottom:25px}.landing-page__mascot img{height:190px;width:auto}.landing-page__short-description .row{display:flex;flex-wrap:wrap;align-items:center;margin-bottom:40px}@media screen and (max-width: 700px){.landing-page__short-description .row{margin-bottom:20px}}.landing-page__short-description p a{color:#282c37}.landing-page__short-description h1{font-weight:500;color:#000;margin-bottom:0}.landing-page__short-description h1 small{color:#282c37}.landing-page__short-description h1 small span{color:#282c37}.landing-page__short-description p:last-child{margin-bottom:0}.landing-page__hero{margin-bottom:10px}.landing-page__hero img{display:block;margin:0;max-width:100%;height:auto;border-radius:4px}@media screen and (max-width: 840px){.landing-page .information-board .container-alt{padding-right:20px}.landing-page .information-board .panel{position:static;margin-top:20px;width:100%;border-radius:4px}.landing-page .information-board .panel .panel-header{text-align:center}}@media screen and (max-width: 675px){.landing-page .header-wrapper{padding-top:0}.landing-page .header-wrapper.compact{padding-bottom:0}.landing-page .header-wrapper.compact .hero .heading{text-align:initial}.landing-page .header .container-alt,.landing-page .features .container-alt{display:block}}.landing-page .cta{margin:20px}.landing{margin-bottom:100px}@media screen and (max-width: 738px){.landing{margin-bottom:0}}.landing__brand{display:flex;justify-content:center;align-items:center;padding:50px}.landing__brand svg{fill:#000;height:52px}@media screen and (max-width: 415px){.landing__brand{padding:0;margin-bottom:30px}}.landing .directory{margin-top:30px;background:transparent;box-shadow:none;border-radius:0}.landing .hero-widget{margin-top:30px;margin-bottom:0}.landing .hero-widget h4{padding:10px;text-transform:uppercase;font-weight:700;font-size:13px;color:#282c37}.landing .hero-widget__text{border-radius:0;padding-bottom:0}.landing .hero-widget__footer{background:#d9e1e8;padding:10px;border-radius:0 0 4px 4px;display:flex}.landing .hero-widget__footer__column{flex:1 1 50%}.landing .hero-widget .account{padding:10px 0;border-bottom:0}.landing .hero-widget .account .account__display-name{display:flex;align-items:center}.landing .hero-widget .account .account__avatar{width:44px;height:44px;background-size:44px 44px}.landing .hero-widget__counter{padding:10px}.landing .hero-widget__counter strong{font-family:\"mastodon-font-display\",sans-serif;font-size:15px;font-weight:700;display:block}.landing .hero-widget__counter span{font-size:14px;color:#282c37}.landing .simple_form .user_agreement .label_input>label{font-weight:400;color:#282c37}.landing .simple_form p.lead{color:#282c37;font-size:15px;line-height:20px;font-weight:400;margin-bottom:25px}.landing__grid{max-width:960px;margin:0 auto;display:grid;grid-template-columns:minmax(0, 50%) minmax(0, 50%);grid-gap:30px}@media screen and (max-width: 738px){.landing__grid{grid-template-columns:minmax(0, 100%);grid-gap:10px}.landing__grid__column-login{grid-row:1;display:flex;flex-direction:column}.landing__grid__column-login .box-widget{order:2;flex:0 0 auto}.landing__grid__column-login .hero-widget{margin-top:0;margin-bottom:10px;order:1;flex:0 0 auto}.landing__grid__column-registration{grid-row:2}.landing__grid .directory{margin-top:10px}}@media screen and (max-width: 415px){.landing__grid{grid-gap:0}.landing__grid .hero-widget{display:block;margin-bottom:0;box-shadow:none}.landing__grid .hero-widget__img,.landing__grid .hero-widget__img img,.landing__grid .hero-widget__footer{border-radius:0}.landing__grid .hero-widget,.landing__grid .box-widget,.landing__grid .directory__tag{border-bottom:1px solid #c0cdd9}.landing__grid .directory{margin-top:0}.landing__grid .directory__tag{margin-bottom:0}.landing__grid .directory__tag>a,.landing__grid .directory__tag>div{border-radius:0;box-shadow:none}.landing__grid .directory__tag:last-child{border-bottom:0}}.brand{position:relative;text-decoration:none}.brand__tagline{display:block;position:absolute;bottom:-10px;left:50px;width:300px;color:#9bcbed;text-decoration:none;font-size:14px}@media screen and (max-width: 415px){.brand__tagline{position:static;width:auto;margin-top:20px;color:#444b5d}}.table{width:100%;max-width:100%;border-spacing:0;border-collapse:collapse}.table th,.table td{padding:8px;line-height:18px;vertical-align:top;border-top:1px solid #d9e1e8;text-align:left;background:#e6ebf0}.table>thead>tr>th{vertical-align:bottom;border-bottom:2px solid #d9e1e8;border-top:0;font-weight:500}.table>tbody>tr>th{font-weight:500}.table>tbody>tr:nth-child(odd)>td,.table>tbody>tr:nth-child(odd)>th{background:#d9e1e8}.table a{color:#2b90d9;text-decoration:underline}.table a:hover{text-decoration:none}.table strong{font-weight:500}.table strong:lang(ja){font-weight:700}.table strong:lang(ko){font-weight:700}.table strong:lang(zh-CN){font-weight:700}.table strong:lang(zh-HK){font-weight:700}.table strong:lang(zh-TW){font-weight:700}.table.inline-table>tbody>tr:nth-child(odd)>td,.table.inline-table>tbody>tr:nth-child(odd)>th{background:transparent}.table.inline-table>tbody>tr:first-child>td,.table.inline-table>tbody>tr:first-child>th{border-top:0}.table.batch-table>thead>tr>th{background:#d9e1e8;border-top:1px solid #f2f5f7;border-bottom:1px solid #f2f5f7}.table.batch-table>thead>tr>th:first-child{border-radius:4px 0 0;border-left:1px solid #f2f5f7}.table.batch-table>thead>tr>th:last-child{border-radius:0 4px 0 0;border-right:1px solid #f2f5f7}.table--invites tbody td{vertical-align:middle}.table-wrapper{overflow:auto;margin-bottom:20px}samp{font-family:\"mastodon-font-monospace\",monospace}button.table-action-link{background:transparent;border:0;font:inherit}button.table-action-link,a.table-action-link{text-decoration:none;display:inline-block;margin-right:5px;padding:0 10px;color:#282c37;font-weight:500}button.table-action-link:hover,a.table-action-link:hover{color:#000}button.table-action-link i.fa,a.table-action-link i.fa{font-weight:400;margin-right:5px}button.table-action-link:first-child,a.table-action-link:first-child{padding-left:0}.batch-table__toolbar,.batch-table__row{display:flex}.batch-table__toolbar__select,.batch-table__row__select{box-sizing:border-box;padding:8px 16px;cursor:pointer;min-height:100%}.batch-table__toolbar__select input,.batch-table__row__select input{margin-top:8px}.batch-table__toolbar__select--aligned,.batch-table__row__select--aligned{display:flex;align-items:center}.batch-table__toolbar__select--aligned input,.batch-table__row__select--aligned input{margin-top:0}.batch-table__toolbar__actions,.batch-table__toolbar__content,.batch-table__row__actions,.batch-table__row__content{padding:8px 0;padding-right:16px;flex:1 1 auto}.batch-table__toolbar{border:1px solid #f2f5f7;background:#d9e1e8;border-radius:4px 0 0;height:47px;align-items:center}.batch-table__toolbar__actions{text-align:right;padding-right:11px}.batch-table__form{padding:16px;border:1px solid #f2f5f7;border-top:0;background:#d9e1e8}.batch-table__form .fields-row{padding-top:0;margin-bottom:0}.batch-table__row{border:1px solid #f2f5f7;border-top:0;background:#e6ebf0}@media screen and (max-width: 415px){.optional .batch-table__row:first-child{border-top:1px solid #f2f5f7}}.batch-table__row:hover{background:#dfe6ec}.batch-table__row:nth-child(even){background:#d9e1e8}.batch-table__row:nth-child(even):hover{background:#d3dce4}.batch-table__row__content{padding-top:12px;padding-bottom:16px}.batch-table__row__content--unpadded{padding:0}.batch-table__row__content--with-image{display:flex;align-items:center}.batch-table__row__content__image{flex:0 0 auto;display:flex;justify-content:center;align-items:center;margin-right:10px}.batch-table__row__content__image .emojione{width:32px;height:32px}.batch-table__row__content__text{flex:1 1 auto}.batch-table__row__content__extra{flex:0 0 auto;text-align:right;color:#282c37;font-weight:500}.batch-table__row .directory__tag{margin:0;width:100%}.batch-table__row .directory__tag a{background:transparent;border-radius:0}@media screen and (max-width: 415px){.batch-table.optional .batch-table__toolbar,.batch-table.optional .batch-table__row__select{display:none}}.batch-table .status__content{padding-top:0}.batch-table .status__content summary{display:list-item}.batch-table .status__content strong{font-weight:700}.batch-table .nothing-here{border:1px solid #f2f5f7;border-top:0;box-shadow:none}@media screen and (max-width: 415px){.batch-table .nothing-here{border-top:1px solid #f2f5f7}}@media screen and (max-width: 870px){.batch-table .accounts-table tbody td.optional{display:none}}.admin-wrapper{display:flex;justify-content:center;width:100%;min-height:100vh}.admin-wrapper .sidebar-wrapper{min-height:100vh;overflow:hidden;pointer-events:none;flex:1 1 auto}.admin-wrapper .sidebar-wrapper__inner{display:flex;justify-content:flex-end;background:#d9e1e8;height:100%}.admin-wrapper .sidebar{width:240px;padding:0;pointer-events:auto}.admin-wrapper .sidebar__toggle{display:none;background:#c0cdd9;height:48px}.admin-wrapper .sidebar__toggle__logo{flex:1 1 auto}.admin-wrapper .sidebar__toggle__logo a{display:inline-block;padding:15px}.admin-wrapper .sidebar__toggle__logo svg{fill:#000;height:20px;position:relative;bottom:-2px}.admin-wrapper .sidebar__toggle__icon{display:block;color:#282c37;text-decoration:none;flex:0 0 auto;font-size:20px;padding:15px}.admin-wrapper .sidebar__toggle a:hover,.admin-wrapper .sidebar__toggle a:focus,.admin-wrapper .sidebar__toggle a:active{background:#b3c3d1}.admin-wrapper .sidebar .logo{display:block;margin:40px auto;width:100px;height:100px}@media screen and (max-width: 600px){.admin-wrapper .sidebar>a:first-child{display:none}}.admin-wrapper .sidebar ul{list-style:none;border-radius:4px 0 0 4px;overflow:hidden;margin-bottom:20px}@media screen and (max-width: 600px){.admin-wrapper .sidebar ul{margin-bottom:0}}.admin-wrapper .sidebar ul a{display:block;padding:15px;color:#282c37;text-decoration:none;transition:all 200ms linear;transition-property:color,background-color;border-radius:4px 0 0 4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.admin-wrapper .sidebar ul a i.fa{margin-right:5px}.admin-wrapper .sidebar ul a:hover{color:#000;background-color:#e9eef2;transition:all 100ms linear;transition-property:color,background-color}.admin-wrapper .sidebar ul a.selected{background:#dfe6ec;border-radius:4px 0 0}.admin-wrapper .sidebar ul ul{background:#e6ebf0;border-radius:0 0 0 4px;margin:0}.admin-wrapper .sidebar ul ul a{border:0;padding:15px 35px}.admin-wrapper .sidebar ul .simple-navigation-active-leaf a{color:#000;background-color:#2b90d9;border-bottom:0;border-radius:0}.admin-wrapper .sidebar ul .simple-navigation-active-leaf a:hover{background-color:#2482c7}.admin-wrapper .sidebar>ul>.simple-navigation-active-leaf a{border-radius:4px 0 0 4px}.admin-wrapper .content-wrapper{box-sizing:border-box;width:100%;max-width:840px;flex:1 1 auto}@media screen and (max-width: 1080px){.admin-wrapper .sidebar-wrapper--empty{display:none}.admin-wrapper .sidebar-wrapper{width:240px;flex:0 0 auto}}@media screen and (max-width: 600px){.admin-wrapper .sidebar-wrapper{width:100%}}.admin-wrapper .content{padding:20px 15px;padding-top:60px;padding-left:25px}@media screen and (max-width: 600px){.admin-wrapper .content{max-width:none;padding:15px;padding-top:30px}}.admin-wrapper .content-heading{display:flex;padding-bottom:40px;border-bottom:1px solid #c0cdd9;margin:-15px -15px 40px 0;flex-wrap:wrap;align-items:center;justify-content:space-between}.admin-wrapper .content-heading>*{margin-top:15px;margin-right:15px}.admin-wrapper .content-heading-actions{display:inline-flex}.admin-wrapper .content-heading-actions>:not(:first-child){margin-left:5px}@media screen and (max-width: 600px){.admin-wrapper .content-heading{border-bottom:0;padding-bottom:0}}.admin-wrapper .content h2{color:#282c37;font-size:24px;line-height:28px;font-weight:400}@media screen and (max-width: 600px){.admin-wrapper .content h2{font-weight:700}}.admin-wrapper .content h3{color:#282c37;font-size:20px;line-height:28px;font-weight:400;margin-bottom:30px}.admin-wrapper .content h4{text-transform:uppercase;font-size:13px;font-weight:700;color:#282c37;padding-bottom:8px;margin-bottom:8px;border-bottom:1px solid #c0cdd9}.admin-wrapper .content h6{font-size:16px;color:#282c37;line-height:28px;font-weight:500}.admin-wrapper .content .fields-group h6{color:#000;font-weight:500}.admin-wrapper .content .directory__tag>a,.admin-wrapper .content .directory__tag>div{box-shadow:none}.admin-wrapper .content .directory__tag .table-action-link .fa{color:inherit}.admin-wrapper .content .directory__tag h4{font-size:18px;font-weight:700;color:#000;text-transform:none;padding-bottom:0;margin-bottom:0;border-bottom:0}.admin-wrapper .content>p{font-size:14px;line-height:21px;color:#282c37;margin-bottom:20px}.admin-wrapper .content>p strong{color:#000;font-weight:500}.admin-wrapper .content>p strong:lang(ja){font-weight:700}.admin-wrapper .content>p strong:lang(ko){font-weight:700}.admin-wrapper .content>p strong:lang(zh-CN){font-weight:700}.admin-wrapper .content>p strong:lang(zh-HK){font-weight:700}.admin-wrapper .content>p strong:lang(zh-TW){font-weight:700}.admin-wrapper .content hr{width:100%;height:0;border:0;border-bottom:1px solid rgba(176,192,207,.6);margin:20px 0}.admin-wrapper .content hr.spacer{height:1px;border:0}@media screen and (max-width: 600px){.admin-wrapper{display:block}.admin-wrapper .sidebar-wrapper{min-height:0}.admin-wrapper .sidebar{width:100%;padding:0;height:auto}.admin-wrapper .sidebar__toggle{display:flex}.admin-wrapper .sidebar>ul{display:none}.admin-wrapper .sidebar ul a,.admin-wrapper .sidebar ul ul a{border-radius:0;border-bottom:1px solid #ccd7e0;transition:none}.admin-wrapper .sidebar ul a:hover,.admin-wrapper .sidebar ul ul a:hover{transition:none}.admin-wrapper .sidebar ul ul{border-radius:0}.admin-wrapper .sidebar ul .simple-navigation-active-leaf a{border-bottom-color:#2b90d9}}hr.spacer{width:100%;border:0;margin:20px 0;height:1px}body .muted-hint,.admin-wrapper .content .muted-hint{color:#282c37}body .muted-hint a,.admin-wrapper .content .muted-hint a{color:#2b90d9}body .positive-hint,.admin-wrapper .content .positive-hint{color:#4a905f;font-weight:500}body .negative-hint,.admin-wrapper .content .negative-hint{color:#df405a;font-weight:500}body .neutral-hint,.admin-wrapper .content .neutral-hint{color:#444b5d;font-weight:500}body .warning-hint,.admin-wrapper .content .warning-hint{color:#ca8f04;font-weight:500}.filters{display:flex;flex-wrap:wrap}.filters .filter-subset{flex:0 0 auto;margin:0 40px 20px 0}.filters .filter-subset:last-child{margin-bottom:30px}.filters .filter-subset ul{margin-top:5px;list-style:none}.filters .filter-subset ul li{display:inline-block;margin-right:5px}.filters .filter-subset strong{font-weight:500;text-transform:uppercase;font-size:12px}.filters .filter-subset strong:lang(ja){font-weight:700}.filters .filter-subset strong:lang(ko){font-weight:700}.filters .filter-subset strong:lang(zh-CN){font-weight:700}.filters .filter-subset strong:lang(zh-HK){font-weight:700}.filters .filter-subset strong:lang(zh-TW){font-weight:700}.filters .filter-subset--with-select strong{display:block;margin-bottom:10px}.filters .filter-subset a{display:inline-block;color:#282c37;text-decoration:none;text-transform:uppercase;font-size:12px;font-weight:500;border-bottom:2px solid #d9e1e8}.filters .filter-subset a:hover{color:#000;border-bottom:2px solid #c9d4de}.filters .filter-subset a.selected{color:#2b90d9;border-bottom:2px solid #2b90d9}.flavour-screen{display:block;margin:10px auto;max-width:100%}.flavour-description{display:block;font-size:16px;margin:10px 0}.flavour-description>p{margin:10px 0}.flavour-screen{display:block;margin:10px auto;max-width:100%}.flavour-description{display:block;font-size:16px;margin:10px 0}.flavour-description>p{margin:10px 0}.report-accounts{display:flex;flex-wrap:wrap;margin-bottom:20px}.report-accounts__item{display:flex;flex:250px;flex-direction:column;margin:0 5px}.report-accounts__item>strong{display:block;margin:0 0 10px -5px;font-weight:500;font-size:14px;line-height:18px;color:#282c37}.report-accounts__item>strong:lang(ja){font-weight:700}.report-accounts__item>strong:lang(ko){font-weight:700}.report-accounts__item>strong:lang(zh-CN){font-weight:700}.report-accounts__item>strong:lang(zh-HK){font-weight:700}.report-accounts__item>strong:lang(zh-TW){font-weight:700}.report-accounts__item .account-card{flex:1 1 auto}.report-status,.account-status{display:flex;margin-bottom:10px}.report-status .activity-stream,.account-status .activity-stream{flex:2 0 0;margin-right:20px;max-width:calc(100% - 60px)}.report-status .activity-stream .entry,.account-status .activity-stream .entry{border-radius:4px}.report-status__actions,.account-status__actions{flex:0 0 auto;display:flex;flex-direction:column}.report-status__actions .icon-button,.account-status__actions .icon-button{font-size:24px;width:24px;text-align:center;margin-bottom:10px}.simple_form.new_report_note,.simple_form.new_account_moderation_note{max-width:100%}.batch-form-box{display:flex;flex-wrap:wrap;margin-bottom:5px}.batch-form-box #form_status_batch_action{margin:0 5px 5px 0;font-size:14px}.batch-form-box input.button{margin:0 5px 5px 0}.batch-form-box .media-spoiler-toggle-buttons{margin-left:auto}.batch-form-box .media-spoiler-toggle-buttons .button{overflow:visible;margin:0 0 5px 5px;float:right}.back-link{margin-bottom:10px;font-size:14px}.back-link a{color:#2b90d9;text-decoration:none}.back-link a:hover{text-decoration:underline}.spacer{flex:1 1 auto}.log-entry{line-height:20px;padding:15px 0;background:#d9e1e8;border-bottom:1px solid #ccd7e0}.log-entry:last-child{border-bottom:0}.log-entry__header{display:flex;justify-content:flex-start;align-items:center;color:#282c37;font-size:14px;padding:0 10px}.log-entry__avatar{margin-right:10px}.log-entry__avatar .avatar{display:block;margin:0;border-radius:50%;width:40px;height:40px}.log-entry__content{max-width:calc(100% - 90px)}.log-entry__title{word-wrap:break-word}.log-entry__timestamp{color:#444b5d}.log-entry a,.log-entry .username,.log-entry .target{color:#282c37;text-decoration:none;font-weight:500}a.name-tag,.name-tag,a.inline-name-tag,.inline-name-tag{text-decoration:none;color:#282c37}a.name-tag .username,.name-tag .username,a.inline-name-tag .username,.inline-name-tag .username{font-weight:500}a.name-tag.suspended .username,.name-tag.suspended .username,a.inline-name-tag.suspended .username,.inline-name-tag.suspended .username{text-decoration:line-through;color:#c1203b}a.name-tag.suspended .avatar,.name-tag.suspended .avatar,a.inline-name-tag.suspended .avatar,.inline-name-tag.suspended .avatar{filter:grayscale(100%);opacity:.8}a.name-tag,.name-tag{display:flex;align-items:center}a.name-tag .avatar,.name-tag .avatar{display:block;margin:0;margin-right:5px;border-radius:50%}a.name-tag.suspended .avatar,.name-tag.suspended .avatar{filter:grayscale(100%);opacity:.8}.speech-bubble{margin-bottom:20px;border-left:4px solid #2b90d9}.speech-bubble.positive{border-left-color:#4a905f}.speech-bubble.negative{border-left-color:#c1203b}.speech-bubble.warning{border-left-color:#ca8f04}.speech-bubble__bubble{padding:16px;padding-left:14px;font-size:15px;line-height:20px;border-radius:4px 4px 4px 0;position:relative;font-weight:500}.speech-bubble__bubble a{color:#282c37}.speech-bubble__owner{padding:8px;padding-left:12px}.speech-bubble time{color:#444b5d}.report-card{background:#d9e1e8;border-radius:4px;margin-bottom:20px}.report-card__profile{display:flex;justify-content:space-between;align-items:center;padding:15px}.report-card__profile .account{padding:0;border:0}.report-card__profile .account__avatar-wrapper{margin-left:0}.report-card__profile__stats{flex:0 0 auto;font-weight:500;color:#282c37;text-transform:uppercase;text-align:right}.report-card__profile__stats a{color:inherit;text-decoration:none}.report-card__profile__stats a:focus,.report-card__profile__stats a:hover,.report-card__profile__stats a:active{color:#17191f}.report-card__profile__stats .red{color:#df405a}.report-card__summary__item{display:flex;justify-content:flex-start;border-top:1px solid #e6ebf0}.report-card__summary__item:hover{background:#d3dce4}.report-card__summary__item__reported-by,.report-card__summary__item__assigned{padding:15px;flex:0 0 auto;box-sizing:border-box;width:150px;color:#282c37}.report-card__summary__item__reported-by,.report-card__summary__item__reported-by .username,.report-card__summary__item__assigned,.report-card__summary__item__assigned .username{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.report-card__summary__item__content{flex:1 1 auto;max-width:calc(100% - 300px)}.report-card__summary__item__content__icon{color:#444b5d;margin-right:4px;font-weight:500}.report-card__summary__item__content a{display:block;box-sizing:border-box;width:100%;padding:15px;text-decoration:none;color:#282c37}.one-line{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ellipsized-ip{display:inline-block;max-width:120px;overflow:hidden;text-overflow:ellipsis;vertical-align:middle}.admin-account-bio{display:flex;flex-wrap:wrap;margin:0 -5px;margin-top:20px}.admin-account-bio>div{box-sizing:border-box;padding:0 5px;margin-bottom:10px;flex:1 0 50%}.admin-account-bio .account__header__fields,.admin-account-bio .account__header__content{background:#c0cdd9;border-radius:4px;height:100%}.admin-account-bio .account__header__fields{margin:0;border:0}.admin-account-bio .account__header__fields a{color:#217aba}.admin-account-bio .account__header__fields dl:first-child .verified{border-radius:0 4px 0 0}.admin-account-bio .account__header__fields .verified a{color:#4a905f}.admin-account-bio .account__header__content{box-sizing:border-box;padding:20px;color:#000}.center-text{text-align:center}.announcements-list{border:1px solid #ccd7e0;border-radius:4px}.announcements-list__item{padding:15px 0;background:#d9e1e8;border-bottom:1px solid #ccd7e0}.announcements-list__item__title{padding:0 15px;display:block;font-weight:500;font-size:18px;line-height:1.5;color:#282c37;text-decoration:none;margin-bottom:10px}.announcements-list__item__title:hover,.announcements-list__item__title:focus,.announcements-list__item__title:active{color:#000}.announcements-list__item__meta{padding:0 15px;color:#444b5d}.announcements-list__item__action-bar{display:flex;justify-content:space-between;align-items:center}.announcements-list__item:last-child{border-bottom:0}.dashboard__counters{display:flex;flex-wrap:wrap;margin:0 -5px;margin-bottom:20px}.dashboard__counters>div{box-sizing:border-box;flex:0 0 33.333%;padding:0 5px;margin-bottom:10px}.dashboard__counters>div>div,.dashboard__counters>div>a{padding:20px;background:#ccd7e0;border-radius:4px;box-sizing:border-box;height:100%}.dashboard__counters>div>a{text-decoration:none;color:inherit;display:block}.dashboard__counters>div>a:hover,.dashboard__counters>div>a:focus,.dashboard__counters>div>a:active{background:#c0cdd9}.dashboard__counters__num,.dashboard__counters__text{text-align:center;font-weight:500;font-size:24px;line-height:21px;color:#000;font-family:\"mastodon-font-display\",sans-serif;margin-bottom:20px;line-height:30px}.dashboard__counters__text{font-size:18px}.dashboard__counters__label{font-size:14px;color:#282c37;text-align:center;font-weight:500}.dashboard__widgets{display:flex;flex-wrap:wrap;margin:0 -5px}.dashboard__widgets>div{flex:0 0 33.333%;margin-bottom:20px}.dashboard__widgets>div>div{padding:0 5px}.dashboard__widgets a:not(.name-tag){color:#282c37;font-weight:500;text-decoration:none}body.rtl{direction:rtl}body.rtl .column-header>button{text-align:right;padding-left:0;padding-right:15px}body.rtl .radio-button__input{margin-right:0;margin-left:10px}body.rtl .directory__card__bar .display-name{margin-left:0;margin-right:15px}body.rtl .display-name{text-align:right}body.rtl .notification__message{margin-left:0;margin-right:68px}body.rtl .drawer__inner__mastodon>img{transform:scaleX(-1)}body.rtl .notification__favourite-icon-wrapper{left:auto;right:-26px}body.rtl .landing-page__logo{margin-right:0;margin-left:20px}body.rtl .landing-page .features-list .features-list__row .visual{margin-left:0;margin-right:15px}body.rtl .column-link__icon,body.rtl .column-header__icon{margin-right:0;margin-left:5px}body.rtl .compose-form .compose-form__buttons-wrapper .character-counter__wrapper{margin-right:0;margin-left:4px}body.rtl .navigation-bar__profile{margin-left:0;margin-right:8px}body.rtl .search__input{padding-right:10px;padding-left:30px}body.rtl .search__icon .fa{right:auto;left:10px}body.rtl .columns-area{direction:rtl}body.rtl .column-header__buttons{left:0;right:auto;margin-left:0;margin-right:-15px}body.rtl .column-inline-form .icon-button{margin-left:0;margin-right:5px}body.rtl .column-header__links .text-btn{margin-left:10px;margin-right:0}body.rtl .account__avatar-wrapper{float:right}body.rtl .column-header__back-button{padding-left:5px;padding-right:0}body.rtl .column-header__setting-arrows{float:left}body.rtl .setting-toggle__label{margin-left:0;margin-right:8px}body.rtl .status__avatar{left:auto;right:10px}body.rtl .status,body.rtl .activity-stream .status.light{padding-left:10px;padding-right:68px}body.rtl .status__info .status__display-name,body.rtl .activity-stream .status.light .status__display-name{padding-left:25px;padding-right:0}body.rtl .activity-stream .pre-header{padding-right:68px;padding-left:0}body.rtl .status__prepend{margin-left:0;margin-right:68px}body.rtl .status__prepend-icon-wrapper{left:auto;right:-26px}body.rtl .activity-stream .pre-header .pre-header__icon{left:auto;right:42px}body.rtl .account__avatar-overlay-overlay{right:auto;left:0}body.rtl .column-back-button--slim-button{right:auto;left:0}body.rtl .status__relative-time,body.rtl .activity-stream .status.light .status__header .status__meta{float:left}body.rtl .status__action-bar__counter{margin-right:0;margin-left:11px}body.rtl .status__action-bar__counter .status__action-bar-button{margin-right:0;margin-left:4px}body.rtl .status__action-bar-button{float:right;margin-right:0;margin-left:18px}body.rtl .status__action-bar-dropdown{float:right}body.rtl .privacy-dropdown__dropdown{margin-left:0;margin-right:40px}body.rtl .privacy-dropdown__option__icon{margin-left:10px;margin-right:0}body.rtl .detailed-status__display-name .display-name{text-align:right}body.rtl .detailed-status__display-avatar{margin-right:0;margin-left:10px;float:right}body.rtl .detailed-status__favorites,body.rtl .detailed-status__reblogs{margin-left:0;margin-right:6px}body.rtl .fa-ul{margin-left:2.14285714em}body.rtl .fa-li{left:auto;right:-2.14285714em}body.rtl .admin-wrapper{direction:rtl}body.rtl .admin-wrapper .sidebar ul a i.fa,body.rtl a.table-action-link i.fa{margin-right:0;margin-left:5px}body.rtl .simple_form .check_boxes .checkbox label{padding-left:0;padding-right:25px}body.rtl .simple_form .input.with_label.boolean label.checkbox{padding-left:25px;padding-right:0}body.rtl .simple_form .check_boxes .checkbox input[type=checkbox],body.rtl .simple_form .input.boolean input[type=checkbox]{left:auto;right:0}body.rtl .simple_form .input.radio_buttons .radio{left:auto;right:0}body.rtl .simple_form .input.radio_buttons .radio>label{padding-right:28px;padding-left:0}body.rtl .simple_form .input-with-append .input input{padding-left:142px;padding-right:0}body.rtl .simple_form .input.boolean label.checkbox{left:auto;right:0}body.rtl .simple_form .input.boolean .label_input,body.rtl .simple_form .input.boolean .hint{padding-left:0;padding-right:28px}body.rtl .simple_form .label_input__append{right:auto;left:3px}body.rtl .simple_form .label_input__append::after{right:auto;left:0;background-image:linear-gradient(to left, rgba(249, 250, 251, 0), #f9fafb)}body.rtl .simple_form select{background:#f9fafb url(\"data:image/svg+xml;utf8,\") no-repeat left 8px center/auto 16px}body.rtl .table th,body.rtl .table td{text-align:right}body.rtl .filters .filter-subset{margin-right:0;margin-left:45px}body.rtl .landing-page .header-wrapper .mascot{right:60px;left:auto}body.rtl .landing-page__call-to-action .row__information-board{direction:rtl}body.rtl .landing-page .header .hero .floats .float-1{left:-120px;right:auto}body.rtl .landing-page .header .hero .floats .float-2{left:210px;right:auto}body.rtl .landing-page .header .hero .floats .float-3{left:110px;right:auto}body.rtl .landing-page .header .links .brand img{left:0}body.rtl .landing-page .fa-external-link{padding-right:5px;padding-left:0 !important}body.rtl .landing-page .features #mastodon-timeline{margin-right:0;margin-left:30px}@media screen and (min-width: 631px){body.rtl .column,body.rtl .drawer{padding-left:5px;padding-right:5px}body.rtl .column:first-child,body.rtl .drawer:first-child{padding-left:5px;padding-right:10px}body.rtl .columns-area>div .column,body.rtl .columns-area>div .drawer{padding-left:5px;padding-right:5px}}body.rtl .columns-area--mobile .column,body.rtl .columns-area--mobile .drawer{padding-left:0;padding-right:0}body.rtl .public-layout .header .nav-button{margin-left:8px;margin-right:0}body.rtl .public-layout .public-account-header__tabs{margin-left:0;margin-right:20px}body.rtl .landing-page__information .account__display-name{margin-right:0;margin-left:5px}body.rtl .landing-page__information .account__avatar-wrapper{margin-left:12px;margin-right:0}body.rtl .card__bar .display-name{margin-left:0;margin-right:15px;text-align:right}body.rtl .fa-chevron-left::before{content:\"\"}body.rtl .fa-chevron-right::before{content:\"\"}body.rtl .column-back-button__icon{margin-right:0;margin-left:5px}body.rtl .column-header__setting-arrows .column-header__setting-btn:last-child{padding-left:0;padding-right:10px}body.rtl .simple_form .input.radio_buttons .radio>label input{left:auto;right:0}.emojione[title=\":wavy_dash:\"],.emojione[title=\":waving_black_flag:\"],.emojione[title=\":water_buffalo:\"],.emojione[title=\":video_game:\"],.emojione[title=\":video_camera:\"],.emojione[title=\":vhs:\"],.emojione[title=\":turkey:\"],.emojione[title=\":tophat:\"],.emojione[title=\":top:\"],.emojione[title=\":tm:\"],.emojione[title=\":telephone_receiver:\"],.emojione[title=\":spider:\"],.emojione[title=\":speaking_head_in_silhouette:\"],.emojione[title=\":spades:\"],.emojione[title=\":soon:\"],.emojione[title=\":registered:\"],.emojione[title=\":on:\"],.emojione[title=\":musical_score:\"],.emojione[title=\":movie_camera:\"],.emojione[title=\":mortar_board:\"],.emojione[title=\":microphone:\"],.emojione[title=\":male-guard:\"],.emojione[title=\":lower_left_fountain_pen:\"],.emojione[title=\":lower_left_ballpoint_pen:\"],.emojione[title=\":kaaba:\"],.emojione[title=\":joystick:\"],.emojione[title=\":hole:\"],.emojione[title=\":hocho:\"],.emojione[title=\":heavy_plus_sign:\"],.emojione[title=\":heavy_multiplication_x:\"],.emojione[title=\":heavy_minus_sign:\"],.emojione[title=\":heavy_dollar_sign:\"],.emojione[title=\":heavy_division_sign:\"],.emojione[title=\":heavy_check_mark:\"],.emojione[title=\":guardsman:\"],.emojione[title=\":gorilla:\"],.emojione[title=\":fried_egg:\"],.emojione[title=\":film_projector:\"],.emojione[title=\":female-guard:\"],.emojione[title=\":end:\"],.emojione[title=\":electric_plug:\"],.emojione[title=\":eight_pointed_black_star:\"],.emojione[title=\":dark_sunglasses:\"],.emojione[title=\":currency_exchange:\"],.emojione[title=\":curly_loop:\"],.emojione[title=\":copyright:\"],.emojione[title=\":clubs:\"],.emojione[title=\":camera_with_flash:\"],.emojione[title=\":camera:\"],.emojione[title=\":busts_in_silhouette:\"],.emojione[title=\":bust_in_silhouette:\"],.emojione[title=\":bowling:\"],.emojione[title=\":bomb:\"],.emojione[title=\":black_small_square:\"],.emojione[title=\":black_nib:\"],.emojione[title=\":black_medium_square:\"],.emojione[title=\":black_medium_small_square:\"],.emojione[title=\":black_large_square:\"],.emojione[title=\":black_heart:\"],.emojione[title=\":black_circle:\"],.emojione[title=\":back:\"],.emojione[title=\":ant:\"],.emojione[title=\":8ball:\"]{filter:drop-shadow(1px 1px 0 #ffffff) drop-shadow(-1px 1px 0 #ffffff) drop-shadow(1px -1px 0 #ffffff) drop-shadow(-1px -1px 0 #ffffff);transform:scale(0.71)}html{scrollbar-color:#d9e1e8 rgba(217,225,232,.25)}.button{color:#fff}.button.button-alternative-2{color:#fff}.status-card__actions button,.status-card__actions a{color:rgba(255,255,255,.8)}.status-card__actions button:hover,.status-card__actions button:active,.status-card__actions button:focus,.status-card__actions a:hover,.status-card__actions a:active,.status-card__actions a:focus{color:#fff}.column>.scrollable,.getting-started,.column-inline-form,.error-column,.regeneration-indicator{background:#fff;border:1px solid #c0cdd9;border-top:0}.directory__card__img{background:#b3c3d1}.filter-form,.directory__card__bar{background:#fff;border-bottom:1px solid #c0cdd9}.scrollable .directory__list{width:calc(100% + 2px);margin-left:-1px;margin-right:-1px}.directory__card,.table-of-contents{border:1px solid #c0cdd9}.column-back-button,.column-header{background:#fff;border:1px solid #c0cdd9}@media screen and (max-width: 415px){.column-back-button,.column-header{border-top:0}}.column-back-button--slim-button,.column-header--slim-button{top:-50px;right:0}.column-header__back-button,.column-header__button,.column-header__button.active,.account__header__bar,.directory__card__extra{background:#fff}.column-header__button.active{color:#2b90d9}.column-header__button.active:hover,.column-header__button.active:active,.column-header__button.active:focus{color:#2b90d9;background:#fff}.account__header__bar .avatar .account__avatar{border-color:#fff}.getting-started__footer a{color:#282c37;text-decoration:underline}.confirmation-modal__secondary-button,.confirmation-modal__cancel-button,.mute-modal__cancel-button,.block-modal__cancel-button{color:#86a0b6}.confirmation-modal__secondary-button:hover,.confirmation-modal__secondary-button:focus,.confirmation-modal__secondary-button:active,.confirmation-modal__cancel-button:hover,.confirmation-modal__cancel-button:focus,.confirmation-modal__cancel-button:active,.mute-modal__cancel-button:hover,.mute-modal__cancel-button:focus,.mute-modal__cancel-button:active,.block-modal__cancel-button:hover,.block-modal__cancel-button:focus,.block-modal__cancel-button:active{color:#000}.column-subheading{background:#e6ebf0;border-bottom:1px solid #c0cdd9}.getting-started .column-link,.scrollable .column-link{background:#fff;border-bottom:1px solid #c0cdd9}.getting-started .column-link:hover,.getting-started .column-link:active,.getting-started .column-link:focus,.scrollable .column-link:hover,.scrollable .column-link:active,.scrollable .column-link:focus{background:#d9e1e8}.getting-started .navigation-bar{border-top:1px solid #c0cdd9;border-bottom:1px solid #c0cdd9}@media screen and (max-width: 415px){.getting-started .navigation-bar{border-top:0}}.compose-form__autosuggest-wrapper,.poll__option input[type=text],.compose-form .spoiler-input__input,.compose-form__poll-wrapper select,.search__input,.setting-text,.box-widget input[type=text],.box-widget input[type=email],.box-widget input[type=password],.box-widget textarea,.statuses-grid .detailed-status,.audio-player{border:1px solid #c0cdd9}@media screen and (max-width: 415px){.search__input{border-top:0;border-bottom:0}}.list-editor .search .search__input{border-top:0;border-bottom:0}.compose-form__poll-wrapper select{background:#fff url(\"data:image/svg+xml;utf8,\") no-repeat right 8px center/auto 16px}.compose-form__poll-wrapper,.compose-form__poll-wrapper .poll__footer{border-top-color:#c0cdd9}.notification__filter-bar{border:1px solid #c0cdd9;border-top:0}.compose-form .compose-form__buttons-wrapper{background:#d9e1e8;border:1px solid #c0cdd9;border-top:0}.drawer__header,.drawer__inner{background:#fff;border:1px solid #c0cdd9}.drawer__inner__mastodon{background:#fff url('data:image/svg+xml;utf8,') no-repeat bottom/100% auto}.compose-form .compose-form__modifiers .compose-form__upload__actions .icon-button{color:#ededed}.compose-form .compose-form__modifiers .compose-form__upload__actions .icon-button:active,.compose-form .compose-form__modifiers .compose-form__upload__actions .icon-button:focus,.compose-form .compose-form__modifiers .compose-form__upload__actions .icon-button:hover{color:#fff}.compose-form .compose-form__modifiers .compose-form__upload-description input{color:#ededed}.compose-form .compose-form__modifiers .compose-form__upload-description input::placeholder{color:#ededed}.compose-form .compose-form__buttons-wrapper{background:#ecf0f4}.compose-form .autosuggest-textarea__suggestions{background:#ecf0f4}.compose-form .autosuggest-textarea__suggestions__item:hover,.compose-form .autosuggest-textarea__suggestions__item:focus,.compose-form .autosuggest-textarea__suggestions__item:active,.compose-form .autosuggest-textarea__suggestions__item.selected{background:#ccd7e0}.emoji-mart-bar{border-color:#ccd7e0}.emoji-mart-bar:first-child{background:#ecf0f4}.emoji-mart-search input{background:rgba(217,225,232,.3);border-color:#d9e1e8}.focusable:focus{background:#d9e1e8}.status.status-direct{background:#ccd7e0}.focusable:focus .status.status-direct{background:#c0cdd9}.detailed-status,.detailed-status__action-bar{background:#fff}.reply-indicator__content .status__content__spoiler-link,.status__content .status__content__spoiler-link{background:#d9e1e8}.reply-indicator__content .status__content__spoiler-link:hover,.status__content .status__content__spoiler-link:hover{background:#ccd7e0}.media-spoiler,.video-player__spoiler{background:#d9e1e8}.privacy-dropdown.active .privacy-dropdown__value.active .icon-button{color:#fff}.account-gallery__item a{background-color:#d9e1e8}.dropdown-menu{background:#fff}.dropdown-menu__arrow.left{border-left-color:#fff}.dropdown-menu__arrow.top{border-top-color:#fff}.dropdown-menu__arrow.bottom{border-bottom-color:#fff}.dropdown-menu__arrow.right{border-right-color:#fff}.dropdown-menu__item a{background:#fff;color:#282c37}.privacy-dropdown__option.active,.privacy-dropdown__option:hover,.privacy-dropdown__option.active .privacy-dropdown__option__content,.privacy-dropdown__option.active .privacy-dropdown__option__content strong,.privacy-dropdown__option:hover .privacy-dropdown__option__content,.privacy-dropdown__option:hover .privacy-dropdown__option__content strong,.dropdown-menu__item a:active,.dropdown-menu__item a:focus,.dropdown-menu__item a:hover,.actions-modal ul li:not(:empty) a.active,.actions-modal ul li:not(:empty) a.active button,.actions-modal ul li:not(:empty) a:active,.actions-modal ul li:not(:empty) a:active button,.actions-modal ul li:not(:empty) a:focus,.actions-modal ul li:not(:empty) a:focus button,.actions-modal ul li:not(:empty) a:hover,.actions-modal ul li:not(:empty) a:hover button,.admin-wrapper .sidebar ul .simple-navigation-active-leaf a,.simple_form .block-button,.simple_form .button,.simple_form button{color:#fff}.dropdown-menu__separator{border-bottom-color:#ccd7e0}.actions-modal,.boost-modal,.confirmation-modal,.mute-modal,.block-modal,.report-modal,.embed-modal,.error-modal,.onboarding-modal,.report-modal__comment .setting-text__wrapper,.report-modal__comment .setting-text{background:#fff;border:1px solid #c0cdd9}.report-modal__comment{border-right-color:#c0cdd9}.report-modal__container{border-top-color:#c0cdd9}.column-header__collapsible-inner{background:#e6ebf0;border:1px solid #c0cdd9;border-top:0}.focal-point__preview strong{color:#fff}.boost-modal__action-bar,.confirmation-modal__action-bar,.mute-modal__action-bar,.block-modal__action-bar,.onboarding-modal__paginator,.error-modal__footer{background:#ecf0f4}.boost-modal__action-bar .onboarding-modal__nav:hover,.boost-modal__action-bar .onboarding-modal__nav:focus,.boost-modal__action-bar .onboarding-modal__nav:active,.boost-modal__action-bar .error-modal__nav:hover,.boost-modal__action-bar .error-modal__nav:focus,.boost-modal__action-bar .error-modal__nav:active,.confirmation-modal__action-bar .onboarding-modal__nav:hover,.confirmation-modal__action-bar .onboarding-modal__nav:focus,.confirmation-modal__action-bar .onboarding-modal__nav:active,.confirmation-modal__action-bar .error-modal__nav:hover,.confirmation-modal__action-bar .error-modal__nav:focus,.confirmation-modal__action-bar .error-modal__nav:active,.mute-modal__action-bar .onboarding-modal__nav:hover,.mute-modal__action-bar .onboarding-modal__nav:focus,.mute-modal__action-bar .onboarding-modal__nav:active,.mute-modal__action-bar .error-modal__nav:hover,.mute-modal__action-bar .error-modal__nav:focus,.mute-modal__action-bar .error-modal__nav:active,.block-modal__action-bar .onboarding-modal__nav:hover,.block-modal__action-bar .onboarding-modal__nav:focus,.block-modal__action-bar .onboarding-modal__nav:active,.block-modal__action-bar .error-modal__nav:hover,.block-modal__action-bar .error-modal__nav:focus,.block-modal__action-bar .error-modal__nav:active,.onboarding-modal__paginator .onboarding-modal__nav:hover,.onboarding-modal__paginator .onboarding-modal__nav:focus,.onboarding-modal__paginator .onboarding-modal__nav:active,.onboarding-modal__paginator .error-modal__nav:hover,.onboarding-modal__paginator .error-modal__nav:focus,.onboarding-modal__paginator .error-modal__nav:active,.error-modal__footer .onboarding-modal__nav:hover,.error-modal__footer .onboarding-modal__nav:focus,.error-modal__footer .onboarding-modal__nav:active,.error-modal__footer .error-modal__nav:hover,.error-modal__footer .error-modal__nav:focus,.error-modal__footer .error-modal__nav:active{background-color:#fff}.display-case__case{background:#fff}.embed-modal .embed-modal__container .embed-modal__html{background:#fff;border:1px solid #c0cdd9}.embed-modal .embed-modal__container .embed-modal__html:focus{border-color:#b3c3d1;background:#fff}.react-toggle-track{background:#282c37}.react-toggle:hover:not(.react-toggle--disabled) .react-toggle-track{background:#3d4455}.react-toggle.react-toggle--checked:hover:not(.react-toggle--disabled) .react-toggle-track{background:#2074b1}.empty-column-indicator,.error-column{color:#000;background:#fff}.tabs-bar{background:#fff;border:1px solid #c0cdd9;border-bottom:0}@media screen and (max-width: 415px){.tabs-bar{border-top:0}}.tabs-bar__link{padding-bottom:14px;border-bottom-width:1px;border-bottom-color:#c0cdd9}.tabs-bar__link:hover,.tabs-bar__link:active,.tabs-bar__link:focus{background:#d9e1e8}.tabs-bar__link.active:hover,.tabs-bar__link.active:active,.tabs-bar__link.active:focus{background:transparent;border-bottom-color:#2b90d9}.activity-stream-tabs{background:#fff;border-bottom-color:#c0cdd9}.box-widget,.nothing-here,.page-header,.directory__tag>a,.directory__tag>div,.landing-page__call-to-action,.contact-widget,.landing .hero-widget__text,.landing-page__information.contact-widget{background:#fff;border:1px solid #c0cdd9}@media screen and (max-width: 415px){.box-widget,.nothing-here,.page-header,.directory__tag>a,.directory__tag>div,.landing-page__call-to-action,.contact-widget,.landing .hero-widget__text,.landing-page__information.contact-widget{border-left:0;border-right:0;border-top:0}}.landing .hero-widget__text{border-top:0;border-bottom:0}.simple_form input[type=text]:hover,.simple_form input[type=number]:hover,.simple_form input[type=email]:hover,.simple_form input[type=password]:hover,.simple_form textarea:hover{border-color:#b3c3d1}.landing .hero-widget__footer{background:#fff;border:1px solid #c0cdd9;border-top:0}@media screen and (max-width: 415px){.landing .hero-widget__footer{border:0}}.brand__tagline{color:#282c37}.directory__tag>a:hover,.directory__tag>a:active,.directory__tag>a:focus{background:#d9e1e8}@media screen and (max-width: 415px){.directory__tag>a{border:0}}.directory__tag.active>a,.directory__tag.active>div{border-color:#2b90d9}.directory__tag.active>a,.directory__tag.active>a h4,.directory__tag.active>a h4 small,.directory__tag.active>a .fa,.directory__tag.active>a .trends__item__current,.directory__tag.active>div,.directory__tag.active>div h4,.directory__tag.active>div h4 small,.directory__tag.active>div .fa,.directory__tag.active>div .trends__item__current{color:#fff}.directory__tag.active>a:hover,.directory__tag.active>a:active,.directory__tag.active>a:focus,.directory__tag.active>div:hover,.directory__tag.active>div:active,.directory__tag.active>div:focus{background:#2b90d9}.batch-table__toolbar,.batch-table__row,.batch-table .nothing-here{border-color:#c0cdd9}.activity-stream{border:1px solid #c0cdd9}.activity-stream--under-tabs{border-top:0}.activity-stream .entry{background:#fff}.activity-stream .entry .detailed-status.light,.activity-stream .entry .more.light,.activity-stream .entry .status.light{border-bottom-color:#c0cdd9}.activity-stream .status.light .status__content{color:#000}.activity-stream .status.light .display-name strong{color:#000}.accounts-grid .account-grid-card .controls .icon-button{color:#282c37}.accounts-grid .account-grid-card .name a{color:#000}.accounts-grid .account-grid-card .username{color:#282c37}.accounts-grid .account-grid-card .account__header__content{color:#000}.simple_form .warning,.table-form .warning{box-shadow:none;background:rgba(223,64,90,.5);text-shadow:none}.simple_form .recommended,.table-form .recommended{border-color:#2b90d9;color:#2b90d9;background-color:rgba(43,144,217,.1)}.compose-form .compose-form__warning{border-color:#2b90d9;background-color:rgba(43,144,217,.1)}.compose-form .compose-form__warning,.compose-form .compose-form__warning a{color:#2b90d9}.status__content a,.reply-indicator__content a{color:#2b90d9}.button.logo-button{color:#fff}.button.logo-button svg{fill:#fff}.public-layout .account__section-headline{border:1px solid #c0cdd9}@media screen and (max-width: 415px){.public-layout .account__section-headline{border-top:0}}.public-layout .header,.public-layout .public-account-header,.public-layout .public-account-bio{box-shadow:none}.public-layout .public-account-bio,.public-layout .hero-widget__text{background:#fff;border:1px solid #c0cdd9}.public-layout .header{background:#d9e1e8;border:1px solid #c0cdd9}@media screen and (max-width: 415px){.public-layout .header{border:0}}.public-layout .header .brand:hover,.public-layout .header .brand:focus,.public-layout .header .brand:active{background:#ccd7e0}.public-layout .public-account-header__image{background:#b3c3d1}.public-layout .public-account-header__image::after{box-shadow:none}.public-layout .public-account-header__bar::before{background:#fff;border:1px solid #c0cdd9;border-top:0}.public-layout .public-account-header__bar .avatar img{border-color:#fff}@media screen and (max-width: 600px){.public-layout .public-account-header__bar{background:#fff;border:1px solid #c0cdd9;border-top:0}}.public-layout .public-account-header__tabs__name h1,.public-layout .public-account-header__tabs__name h1 small{color:#fff}@media screen and (max-width: 600px){.public-layout .public-account-header__tabs__name h1,.public-layout .public-account-header__tabs__name h1 small{color:#000}}.public-layout .public-account-header__extra .public-account-bio{border:0}.public-layout .public-account-header__extra .public-account-bio .account__header__fields{border-color:#c0cdd9}.notification__filter-bar button.active::after,.account__section-headline a.active::after{border-color:transparent transparent #fff}.hero-widget,.box-widget,.contact-widget,.landing-page__information.contact-widget,.moved-account-widget,.memoriam-widget,.activity-stream,.nothing-here,.directory__tag>a,.directory__tag>div,.card>a,.page-header,.compose-form .compose-form__warning{box-shadow:none}.audio-player .video-player__controls button,.audio-player .video-player__time-sep,.audio-player .video-player__time-current,.audio-player .video-player__time-total{color:#000}","/* http://meyerweb.com/eric/tools/css/reset/\n v2.0 | 20110126\n License: none (public domain)\n*/\n\nhtml, body, div, span, applet, object, iframe,\nh1, h2, h3, h4, h5, h6, p, blockquote, pre,\na, abbr, acronym, address, big, cite, code,\ndel, dfn, em, img, ins, kbd, q, s, samp,\nsmall, strike, strong, sub, sup, tt, var,\nb, u, i, center,\ndl, dt, dd, ol, ul, li,\nfieldset, form, label, legend,\ntable, caption, tbody, tfoot, thead, tr, th, td,\narticle, aside, canvas, details, embed,\nfigure, figcaption, footer, header, hgroup,\nmenu, nav, output, ruby, section, summary,\ntime, mark, audio, video {\n margin: 0;\n padding: 0;\n border: 0;\n font-size: 100%;\n font: inherit;\n vertical-align: baseline;\n}\n\n/* HTML5 display-role reset for older browsers */\narticle, aside, details, figcaption, figure,\nfooter, header, hgroup, menu, nav, section {\n display: block;\n}\n\nbody {\n line-height: 1;\n}\n\nol, ul {\n list-style: none;\n}\n\nblockquote, q {\n quotes: none;\n}\n\nblockquote:before, blockquote:after,\nq:before, q:after {\n content: '';\n content: none;\n}\n\ntable {\n border-collapse: collapse;\n border-spacing: 0;\n}\n\nhtml {\n scrollbar-color: lighten($ui-base-color, 4%) rgba($base-overlay-background, 0.1);\n}\n\n::-webkit-scrollbar {\n width: 12px;\n height: 12px;\n}\n\n::-webkit-scrollbar-thumb {\n background: lighten($ui-base-color, 4%);\n border: 0px none $base-border-color;\n border-radius: 50px;\n}\n\n::-webkit-scrollbar-thumb:hover {\n background: lighten($ui-base-color, 6%);\n}\n\n::-webkit-scrollbar-thumb:active {\n background: lighten($ui-base-color, 4%);\n}\n\n::-webkit-scrollbar-track {\n border: 0px none $base-border-color;\n border-radius: 0;\n background: rgba($base-overlay-background, 0.1);\n}\n\n::-webkit-scrollbar-track:hover {\n background: $ui-base-color;\n}\n\n::-webkit-scrollbar-track:active {\n background: $ui-base-color;\n}\n\n::-webkit-scrollbar-corner {\n background: transparent;\n}\n","// Dependent colors\n$black: #000000;\n$white: #ffffff;\n\n$classic-base-color: #282c37;\n$classic-primary-color: #9baec8;\n$classic-secondary-color: #d9e1e8;\n$classic-highlight-color: #2b90d9;\n\n// Differences\n$success-green: lighten(#3c754d, 8%);\n\n$base-overlay-background: $white !default;\n$valid-value-color: $success-green !default;\n\n$ui-base-color: $classic-secondary-color !default;\n$ui-base-lighter-color: #b0c0cf;\n$ui-primary-color: #9bcbed;\n$ui-secondary-color: $classic-base-color !default;\n$ui-highlight-color: #2b90d9;\n\n$primary-text-color: $black !default;\n$darker-text-color: $classic-base-color !default;\n$dark-text-color: #444b5d;\n$action-button-color: #606984;\n\n$inverted-text-color: $black !default;\n$lighter-text-color: $classic-base-color !default;\n$light-text-color: #444b5d;\n\n//Newly added colors\n$account-background-color: $white !default;\n\n//Invert darkened and lightened colors\n@function darken($color, $amount) {\n @return hsl(hue($color), saturation($color), lightness($color) + $amount);\n}\n\n@function lighten($color, $amount) {\n @return hsl(hue($color), saturation($color), lightness($color) - $amount);\n}\n","@function hex-color($color) {\n @if type-of($color) == 'color' {\n $color: str-slice(ie-hex-str($color), 4);\n }\n\n @return '%23' + unquote($color);\n}\n\nbody {\n font-family: $font-sans-serif, sans-serif;\n background: darken($ui-base-color, 7%);\n font-size: 13px;\n line-height: 18px;\n font-weight: 400;\n color: $primary-text-color;\n text-rendering: optimizelegibility;\n font-feature-settings: \"kern\";\n text-size-adjust: none;\n -webkit-tap-highlight-color: rgba(0, 0, 0, 0);\n -webkit-tap-highlight-color: transparent;\n\n &.system-font {\n // system-ui => standard property (Chrome/Android WebView 56+, Opera 43+, Safari 11+)\n // -apple-system => Safari <11 specific\n // BlinkMacSystemFont => Chrome <56 on macOS specific\n // Segoe UI => Windows 7/8/10\n // Oxygen => KDE\n // Ubuntu => Unity/Ubuntu\n // Cantarell => GNOME\n // Fira Sans => Firefox OS\n // Droid Sans => Older Androids (<4.0)\n // Helvetica Neue => Older macOS <10.11\n // $font-sans-serif => web-font (Roboto) fallback and newer Androids (>=4.0)\n font-family: system-ui, -apple-system, BlinkMacSystemFont, \"Segoe UI\", \"Oxygen\", \"Ubuntu\", \"Cantarell\", \"Fira Sans\", \"Droid Sans\", \"Helvetica Neue\", $font-sans-serif, sans-serif;\n }\n\n &.app-body {\n padding: 0;\n\n &.layout-single-column {\n height: auto;\n min-height: 100vh;\n overflow-y: scroll;\n }\n\n &.layout-multiple-columns {\n position: absolute;\n width: 100%;\n height: 100%;\n }\n\n &.with-modals--active {\n overflow-y: hidden;\n }\n }\n\n &.lighter {\n background: $ui-base-color;\n }\n\n &.with-modals {\n overflow-x: hidden;\n overflow-y: scroll;\n\n &--active {\n overflow-y: hidden;\n }\n }\n\n &.player {\n text-align: center;\n }\n\n &.embed {\n background: lighten($ui-base-color, 4%);\n margin: 0;\n padding-bottom: 0;\n\n .container {\n position: absolute;\n width: 100%;\n height: 100%;\n overflow: hidden;\n }\n }\n\n &.admin {\n background: darken($ui-base-color, 4%);\n padding: 0;\n }\n\n &.error {\n position: absolute;\n text-align: center;\n color: $darker-text-color;\n background: $ui-base-color;\n width: 100%;\n height: 100%;\n padding: 0;\n display: flex;\n justify-content: center;\n align-items: center;\n\n .dialog {\n vertical-align: middle;\n margin: 20px;\n\n &__illustration {\n img {\n display: block;\n max-width: 470px;\n width: 100%;\n height: auto;\n margin-top: -120px;\n }\n }\n\n h1 {\n font-size: 20px;\n line-height: 28px;\n font-weight: 400;\n }\n }\n }\n}\n\nbutton {\n font-family: inherit;\n cursor: pointer;\n\n &:focus {\n outline: none;\n }\n}\n\n.app-holder {\n &,\n & > div,\n & > noscript {\n display: flex;\n width: 100%;\n align-items: center;\n justify-content: center;\n outline: 0 !important;\n }\n\n & > noscript {\n height: 100vh;\n }\n}\n\n.layout-single-column .app-holder {\n &,\n & > div {\n min-height: 100vh;\n }\n}\n\n.layout-multiple-columns .app-holder {\n &,\n & > div {\n height: 100%;\n }\n}\n\n.error-boundary,\n.app-holder noscript {\n flex-direction: column;\n font-size: 16px;\n font-weight: 400;\n line-height: 1.7;\n color: lighten($error-red, 4%);\n text-align: center;\n\n & > div {\n max-width: 500px;\n }\n\n p {\n margin-bottom: .85em;\n\n &:last-child {\n margin-bottom: 0;\n }\n }\n\n a {\n color: $highlight-text-color;\n\n &:hover,\n &:focus,\n &:active {\n text-decoration: none;\n }\n }\n\n &__footer {\n color: $dark-text-color;\n font-size: 13px;\n\n a {\n color: $dark-text-color;\n }\n }\n\n button {\n display: inline;\n border: 0;\n background: transparent;\n color: $dark-text-color;\n font: inherit;\n padding: 0;\n margin: 0;\n line-height: inherit;\n cursor: pointer;\n outline: 0;\n transition: color 300ms linear;\n text-decoration: underline;\n\n &:hover,\n &:focus,\n &:active {\n text-decoration: none;\n }\n\n &.copied {\n color: $valid-value-color;\n transition: none;\n }\n }\n}\n",".container-alt {\n width: 700px;\n margin: 0 auto;\n margin-top: 40px;\n\n @media screen and (max-width: 740px) {\n width: 100%;\n margin: 0;\n }\n}\n\n.logo-container {\n margin: 100px auto 50px;\n\n @media screen and (max-width: 500px) {\n margin: 40px auto 0;\n }\n\n h1 {\n display: flex;\n justify-content: center;\n align-items: center;\n\n svg {\n fill: $primary-text-color;\n height: 42px;\n margin-right: 10px;\n }\n\n a {\n display: flex;\n justify-content: center;\n align-items: center;\n color: $primary-text-color;\n text-decoration: none;\n outline: 0;\n padding: 12px 16px;\n line-height: 32px;\n font-family: $font-display, sans-serif;\n font-weight: 500;\n font-size: 14px;\n }\n }\n}\n\n.compose-standalone {\n .compose-form {\n width: 400px;\n margin: 0 auto;\n padding: 20px 0;\n margin-top: 40px;\n box-sizing: border-box;\n\n @media screen and (max-width: 400px) {\n width: 100%;\n margin-top: 0;\n padding: 20px;\n }\n }\n}\n\n.account-header {\n width: 400px;\n margin: 0 auto;\n display: flex;\n font-size: 13px;\n line-height: 18px;\n box-sizing: border-box;\n padding: 20px 0;\n padding-bottom: 0;\n margin-bottom: -30px;\n margin-top: 40px;\n\n @media screen and (max-width: 440px) {\n width: 100%;\n margin: 0;\n margin-bottom: 10px;\n padding: 20px;\n padding-bottom: 0;\n }\n\n .avatar {\n width: 40px;\n height: 40px;\n margin-right: 8px;\n\n img {\n width: 100%;\n height: 100%;\n display: block;\n margin: 0;\n border-radius: 4px;\n }\n }\n\n .name {\n flex: 1 1 auto;\n color: $secondary-text-color;\n width: calc(100% - 88px);\n\n .username {\n display: block;\n font-weight: 500;\n text-overflow: ellipsis;\n overflow: hidden;\n }\n }\n\n .logout-link {\n display: block;\n font-size: 32px;\n line-height: 40px;\n margin-left: 8px;\n }\n}\n\n.grid-3 {\n display: grid;\n grid-gap: 10px;\n grid-template-columns: 3fr 1fr;\n grid-auto-columns: 25%;\n grid-auto-rows: max-content;\n\n .column-0 {\n grid-column: 1 / 3;\n grid-row: 1;\n }\n\n .column-1 {\n grid-column: 1;\n grid-row: 2;\n }\n\n .column-2 {\n grid-column: 2;\n grid-row: 2;\n }\n\n .column-3 {\n grid-column: 1 / 3;\n grid-row: 3;\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n grid-gap: 0;\n grid-template-columns: minmax(0, 100%);\n\n .column-0 {\n grid-column: 1;\n }\n\n .column-1 {\n grid-column: 1;\n grid-row: 3;\n }\n\n .column-2 {\n grid-column: 1;\n grid-row: 2;\n }\n\n .column-3 {\n grid-column: 1;\n grid-row: 4;\n }\n }\n}\n\n.grid-4 {\n display: grid;\n grid-gap: 10px;\n grid-template-columns: repeat(4, minmax(0, 1fr));\n grid-auto-columns: 25%;\n grid-auto-rows: max-content;\n\n .column-0 {\n grid-column: 1 / 5;\n grid-row: 1;\n }\n\n .column-1 {\n grid-column: 1 / 4;\n grid-row: 2;\n }\n\n .column-2 {\n grid-column: 4;\n grid-row: 2;\n }\n\n .column-3 {\n grid-column: 2 / 5;\n grid-row: 3;\n }\n\n .column-4 {\n grid-column: 1;\n grid-row: 3;\n }\n\n .landing-page__call-to-action {\n min-height: 100%;\n }\n\n .flash-message {\n margin-bottom: 10px;\n }\n\n @media screen and (max-width: 738px) {\n grid-template-columns: minmax(0, 50%) minmax(0, 50%);\n\n .landing-page__call-to-action {\n padding: 20px;\n display: flex;\n align-items: center;\n justify-content: center;\n }\n\n .row__information-board {\n width: 100%;\n justify-content: center;\n align-items: center;\n }\n\n .row__mascot {\n display: none;\n }\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n grid-gap: 0;\n grid-template-columns: minmax(0, 100%);\n\n .column-0 {\n grid-column: 1;\n }\n\n .column-1 {\n grid-column: 1;\n grid-row: 3;\n }\n\n .column-2 {\n grid-column: 1;\n grid-row: 2;\n }\n\n .column-3 {\n grid-column: 1;\n grid-row: 5;\n }\n\n .column-4 {\n grid-column: 1;\n grid-row: 4;\n }\n }\n}\n\n.public-layout {\n @media screen and (max-width: $no-gap-breakpoint) {\n padding-top: 48px;\n }\n\n .container {\n max-width: 960px;\n\n @media screen and (max-width: $no-gap-breakpoint) {\n padding: 0;\n }\n }\n\n .header {\n background: lighten($ui-base-color, 8%);\n box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);\n border-radius: 4px;\n height: 48px;\n margin: 10px 0;\n display: flex;\n align-items: stretch;\n justify-content: center;\n flex-wrap: nowrap;\n overflow: hidden;\n\n @media screen and (max-width: $no-gap-breakpoint) {\n position: fixed;\n width: 100%;\n top: 0;\n left: 0;\n margin: 0;\n border-radius: 0;\n box-shadow: none;\n z-index: 110;\n }\n\n & > div {\n flex: 1 1 33.3%;\n min-height: 1px;\n }\n\n .nav-left {\n display: flex;\n align-items: stretch;\n justify-content: flex-start;\n flex-wrap: nowrap;\n }\n\n .nav-center {\n display: flex;\n align-items: stretch;\n justify-content: center;\n flex-wrap: nowrap;\n }\n\n .nav-right {\n display: flex;\n align-items: stretch;\n justify-content: flex-end;\n flex-wrap: nowrap;\n }\n\n .brand {\n display: block;\n padding: 15px;\n\n svg {\n display: block;\n height: 18px;\n width: auto;\n position: relative;\n bottom: -2px;\n fill: $primary-text-color;\n\n @media screen and (max-width: $no-gap-breakpoint) {\n height: 20px;\n }\n }\n\n &:hover,\n &:focus,\n &:active {\n background: lighten($ui-base-color, 12%);\n }\n }\n\n .nav-link {\n display: flex;\n align-items: center;\n padding: 0 1rem;\n font-size: 12px;\n font-weight: 500;\n text-decoration: none;\n color: $darker-text-color;\n white-space: nowrap;\n text-align: center;\n\n &:hover,\n &:focus,\n &:active {\n text-decoration: underline;\n color: $primary-text-color;\n }\n\n @media screen and (max-width: 550px) {\n &.optional {\n display: none;\n }\n }\n }\n\n .nav-button {\n background: lighten($ui-base-color, 16%);\n margin: 8px;\n margin-left: 0;\n border-radius: 4px;\n\n &:hover,\n &:focus,\n &:active {\n text-decoration: none;\n background: lighten($ui-base-color, 20%);\n }\n }\n }\n\n $no-columns-breakpoint: 600px;\n\n .grid {\n display: grid;\n grid-gap: 10px;\n grid-template-columns: minmax(300px, 3fr) minmax(298px, 1fr);\n grid-auto-columns: 25%;\n grid-auto-rows: max-content;\n\n .column-0 {\n grid-row: 1;\n grid-column: 1;\n }\n\n .column-1 {\n grid-row: 1;\n grid-column: 2;\n }\n\n @media screen and (max-width: $no-columns-breakpoint) {\n grid-template-columns: 100%;\n grid-gap: 0;\n\n .column-1 {\n display: none;\n }\n }\n }\n\n .directory__card {\n border-radius: 4px;\n\n @media screen and (max-width: $no-gap-breakpoint) {\n border-radius: 0;\n }\n }\n\n .page-header {\n @media screen and (max-width: $no-gap-breakpoint) {\n border-bottom: 0;\n }\n }\n\n .public-account-header {\n overflow: hidden;\n margin-bottom: 10px;\n box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);\n\n &.inactive {\n opacity: 0.5;\n\n .public-account-header__image,\n .avatar {\n filter: grayscale(100%);\n }\n\n .logo-button {\n background-color: $secondary-text-color;\n }\n }\n\n &__image {\n border-radius: 4px 4px 0 0;\n overflow: hidden;\n height: 300px;\n position: relative;\n background: darken($ui-base-color, 12%);\n\n &::after {\n content: \"\";\n display: block;\n position: absolute;\n width: 100%;\n height: 100%;\n box-shadow: inset 0 -1px 1px 1px rgba($base-shadow-color, 0.15);\n top: 0;\n left: 0;\n }\n\n img {\n object-fit: cover;\n display: block;\n width: 100%;\n height: 100%;\n margin: 0;\n border-radius: 4px 4px 0 0;\n }\n\n @media screen and (max-width: 600px) {\n height: 200px;\n }\n }\n\n &--no-bar {\n margin-bottom: 0;\n\n .public-account-header__image,\n .public-account-header__image img {\n border-radius: 4px;\n\n @media screen and (max-width: $no-gap-breakpoint) {\n border-radius: 0;\n }\n }\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n margin-bottom: 0;\n box-shadow: none;\n\n &__image::after {\n display: none;\n }\n\n &__image,\n &__image img {\n border-radius: 0;\n }\n }\n\n &__bar {\n position: relative;\n margin-top: -80px;\n display: flex;\n justify-content: flex-start;\n\n &::before {\n content: \"\";\n display: block;\n background: lighten($ui-base-color, 4%);\n position: absolute;\n bottom: 0;\n left: 0;\n right: 0;\n height: 60px;\n border-radius: 0 0 4px 4px;\n z-index: -1;\n }\n\n .avatar {\n display: block;\n width: 120px;\n height: 120px;\n padding-left: 20px - 4px;\n flex: 0 0 auto;\n\n img {\n display: block;\n width: 100%;\n height: 100%;\n margin: 0;\n border-radius: 50%;\n border: 4px solid lighten($ui-base-color, 4%);\n background: darken($ui-base-color, 8%);\n }\n }\n\n @media screen and (max-width: 600px) {\n margin-top: 0;\n background: lighten($ui-base-color, 4%);\n border-radius: 0 0 4px 4px;\n padding: 5px;\n\n &::before {\n display: none;\n }\n\n .avatar {\n width: 48px;\n height: 48px;\n padding: 7px 0;\n padding-left: 10px;\n\n img {\n border: 0;\n border-radius: 4px;\n }\n\n @media screen and (max-width: 360px) {\n display: none;\n }\n }\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n border-radius: 0;\n }\n\n @media screen and (max-width: $no-columns-breakpoint) {\n flex-wrap: wrap;\n }\n }\n\n &__tabs {\n flex: 1 1 auto;\n margin-left: 20px;\n\n &__name {\n padding-top: 20px;\n padding-bottom: 8px;\n\n h1 {\n font-size: 20px;\n line-height: 18px * 1.5;\n color: $primary-text-color;\n font-weight: 500;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n text-shadow: 1px 1px 1px $base-shadow-color;\n\n small {\n display: block;\n font-size: 14px;\n color: $primary-text-color;\n font-weight: 400;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n }\n }\n\n @media screen and (max-width: 600px) {\n margin-left: 15px;\n display: flex;\n justify-content: space-between;\n align-items: center;\n\n &__name {\n padding-top: 0;\n padding-bottom: 0;\n\n h1 {\n font-size: 16px;\n line-height: 24px;\n text-shadow: none;\n\n small {\n color: $darker-text-color;\n }\n }\n }\n }\n\n &__tabs {\n display: flex;\n justify-content: flex-start;\n align-items: stretch;\n height: 58px;\n\n .details-counters {\n display: flex;\n flex-direction: row;\n min-width: 300px;\n }\n\n @media screen and (max-width: $no-columns-breakpoint) {\n .details-counters {\n display: none;\n }\n }\n\n .counter {\n min-width: 33.3%;\n box-sizing: border-box;\n flex: 0 0 auto;\n color: $darker-text-color;\n padding: 10px;\n border-right: 1px solid lighten($ui-base-color, 4%);\n cursor: default;\n text-align: center;\n position: relative;\n\n a {\n display: block;\n }\n\n &:last-child {\n border-right: 0;\n }\n\n &::after {\n display: block;\n content: \"\";\n position: absolute;\n bottom: 0;\n left: 0;\n width: 100%;\n border-bottom: 4px solid $ui-primary-color;\n opacity: 0.5;\n transition: all 400ms ease;\n }\n\n &.active {\n &::after {\n border-bottom: 4px solid $highlight-text-color;\n opacity: 1;\n }\n\n &.inactive::after {\n border-bottom-color: $secondary-text-color;\n }\n }\n\n &:hover {\n &::after {\n opacity: 1;\n transition-duration: 100ms;\n }\n }\n\n a {\n text-decoration: none;\n color: inherit;\n }\n\n .counter-label {\n font-size: 12px;\n display: block;\n }\n\n .counter-number {\n font-weight: 500;\n font-size: 18px;\n margin-bottom: 5px;\n color: $primary-text-color;\n font-family: $font-display, sans-serif;\n }\n }\n\n .spacer {\n flex: 1 1 auto;\n height: 1px;\n }\n\n &__buttons {\n padding: 7px 8px;\n }\n }\n }\n\n &__extra {\n display: none;\n margin-top: 4px;\n\n .public-account-bio {\n border-radius: 0;\n box-shadow: none;\n background: transparent;\n margin: 0 -5px;\n\n .account__header__fields {\n border-top: 1px solid lighten($ui-base-color, 12%);\n }\n\n .roles {\n display: none;\n }\n }\n\n &__links {\n margin-top: -15px;\n font-size: 14px;\n color: $darker-text-color;\n\n a {\n display: inline-block;\n color: $darker-text-color;\n text-decoration: none;\n padding: 15px;\n font-weight: 500;\n\n strong {\n font-weight: 700;\n color: $primary-text-color;\n }\n }\n }\n\n @media screen and (max-width: $no-columns-breakpoint) {\n display: block;\n flex: 100%;\n }\n }\n }\n\n .account__section-headline {\n border-radius: 4px 4px 0 0;\n\n @media screen and (max-width: $no-gap-breakpoint) {\n border-radius: 0;\n }\n }\n\n .detailed-status__meta {\n margin-top: 25px;\n }\n\n .public-account-bio {\n background: lighten($ui-base-color, 8%);\n box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);\n border-radius: 4px;\n overflow: hidden;\n margin-bottom: 10px;\n\n @media screen and (max-width: $no-gap-breakpoint) {\n box-shadow: none;\n margin-bottom: 0;\n border-radius: 0;\n }\n\n .account__header__fields {\n margin: 0;\n border-top: 0;\n\n a {\n color: lighten($ui-highlight-color, 8%);\n }\n\n dl:first-child .verified {\n border-radius: 0 4px 0 0;\n }\n\n .verified a {\n color: $valid-value-color;\n }\n }\n\n .account__header__content {\n padding: 20px;\n padding-bottom: 0;\n color: $primary-text-color;\n }\n\n &__extra,\n .roles {\n padding: 20px;\n font-size: 14px;\n color: $darker-text-color;\n }\n\n .roles {\n padding-bottom: 0;\n }\n }\n\n .directory__list {\n display: grid;\n grid-gap: 10px;\n grid-template-columns: minmax(0, 50%) minmax(0, 50%);\n\n @media screen and (max-width: $no-gap-breakpoint) {\n display: block;\n }\n\n .icon-button {\n font-size: 18px;\n }\n }\n\n .directory__card {\n margin-bottom: 0;\n }\n\n .card-grid {\n display: flex;\n flex-wrap: wrap;\n min-width: 100%;\n margin: 0 -5px;\n\n & > div {\n box-sizing: border-box;\n flex: 1 0 auto;\n width: 300px;\n padding: 0 5px;\n margin-bottom: 10px;\n max-width: 33.333%;\n\n @media screen and (max-width: 900px) {\n max-width: 50%;\n }\n\n @media screen and (max-width: 600px) {\n max-width: 100%;\n }\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n margin: 0;\n border-top: 1px solid lighten($ui-base-color, 8%);\n\n & > div {\n width: 100%;\n padding: 0;\n margin-bottom: 0;\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n\n &:last-child {\n border-bottom: 0;\n }\n\n .card__bar {\n background: $ui-base-color;\n\n &:hover,\n &:active,\n &:focus {\n background: lighten($ui-base-color, 4%);\n }\n }\n }\n }\n }\n}\n",".no-list {\n list-style: none;\n\n li {\n display: inline-block;\n margin: 0 5px;\n }\n}\n\n.recovery-codes {\n list-style: none;\n margin: 0 auto;\n\n li {\n font-size: 125%;\n line-height: 1.5;\n letter-spacing: 1px;\n }\n}\n",".public-layout {\n .footer {\n text-align: left;\n padding-top: 20px;\n padding-bottom: 60px;\n font-size: 12px;\n color: lighten($ui-base-color, 34%);\n\n @media screen and (max-width: $no-gap-breakpoint) {\n padding-left: 20px;\n padding-right: 20px;\n }\n\n .grid {\n display: grid;\n grid-gap: 10px;\n grid-template-columns: 1fr 1fr 2fr 1fr 1fr;\n\n .column-0 {\n grid-column: 1;\n grid-row: 1;\n min-width: 0;\n }\n\n .column-1 {\n grid-column: 2;\n grid-row: 1;\n min-width: 0;\n }\n\n .column-2 {\n grid-column: 3;\n grid-row: 1;\n min-width: 0;\n text-align: center;\n\n h4 a {\n color: lighten($ui-base-color, 34%);\n }\n }\n\n .column-3 {\n grid-column: 4;\n grid-row: 1;\n min-width: 0;\n }\n\n .column-4 {\n grid-column: 5;\n grid-row: 1;\n min-width: 0;\n }\n\n @media screen and (max-width: 690px) {\n grid-template-columns: 1fr 2fr 1fr;\n\n .column-0,\n .column-1 {\n grid-column: 1;\n }\n\n .column-1 {\n grid-row: 2;\n }\n\n .column-2 {\n grid-column: 2;\n }\n\n .column-3,\n .column-4 {\n grid-column: 3;\n }\n\n .column-4 {\n grid-row: 2;\n }\n }\n\n @media screen and (max-width: 600px) {\n .column-1 {\n display: block;\n }\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n .column-0,\n .column-1,\n .column-3,\n .column-4 {\n display: none;\n }\n }\n }\n\n h4 {\n text-transform: uppercase;\n font-weight: 700;\n margin-bottom: 8px;\n color: $darker-text-color;\n\n a {\n color: inherit;\n text-decoration: none;\n }\n }\n\n ul a {\n text-decoration: none;\n color: lighten($ui-base-color, 34%);\n\n &:hover,\n &:active,\n &:focus {\n text-decoration: underline;\n }\n }\n\n .brand {\n svg {\n display: block;\n height: 36px;\n width: auto;\n margin: 0 auto;\n fill: lighten($ui-base-color, 34%);\n }\n\n &:hover,\n &:focus,\n &:active {\n svg {\n fill: lighten($ui-base-color, 38%);\n }\n }\n }\n }\n}\n",".compact-header {\n h1 {\n font-size: 24px;\n line-height: 28px;\n color: $darker-text-color;\n font-weight: 500;\n margin-bottom: 20px;\n padding: 0 10px;\n word-wrap: break-word;\n\n @media screen and (max-width: 740px) {\n text-align: center;\n padding: 20px 10px 0;\n }\n\n a {\n color: inherit;\n text-decoration: none;\n }\n\n small {\n font-weight: 400;\n color: $secondary-text-color;\n }\n\n img {\n display: inline-block;\n margin-bottom: -5px;\n margin-right: 15px;\n width: 36px;\n height: 36px;\n }\n }\n}\n",".hero-widget {\n margin-bottom: 10px;\n box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);\n\n &__img {\n width: 100%;\n position: relative;\n overflow: hidden;\n border-radius: 4px 4px 0 0;\n background: $base-shadow-color;\n\n img {\n object-fit: cover;\n display: block;\n width: 100%;\n height: 100%;\n margin: 0;\n border-radius: 4px 4px 0 0;\n }\n }\n\n &__text {\n background: $ui-base-color;\n padding: 20px;\n border-radius: 0 0 4px 4px;\n font-size: 15px;\n color: $darker-text-color;\n line-height: 20px;\n word-wrap: break-word;\n font-weight: 400;\n\n .emojione {\n width: 20px;\n height: 20px;\n margin: -3px 0 0;\n }\n\n p {\n margin-bottom: 20px;\n\n &:last-child {\n margin-bottom: 0;\n }\n }\n\n em {\n display: inline;\n margin: 0;\n padding: 0;\n font-weight: 700;\n background: transparent;\n font-family: inherit;\n font-size: inherit;\n line-height: inherit;\n color: lighten($darker-text-color, 10%);\n }\n\n a {\n color: $secondary-text-color;\n text-decoration: none;\n\n &:hover {\n text-decoration: underline;\n }\n }\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n display: none;\n }\n}\n\n.endorsements-widget {\n margin-bottom: 10px;\n padding-bottom: 10px;\n\n h4 {\n padding: 10px;\n text-transform: uppercase;\n font-weight: 700;\n font-size: 13px;\n color: $darker-text-color;\n }\n\n .account {\n padding: 10px 0;\n\n &:last-child {\n border-bottom: 0;\n }\n\n .account__display-name {\n display: flex;\n align-items: center;\n }\n\n .account__avatar {\n width: 44px;\n height: 44px;\n background-size: 44px 44px;\n }\n }\n\n .trends__item {\n padding: 10px;\n }\n}\n\n.trends-widget {\n h4 {\n color: $darker-text-color;\n }\n}\n\n.box-widget {\n padding: 20px;\n border-radius: 4px;\n background: $ui-base-color;\n box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);\n}\n\n.placeholder-widget {\n padding: 16px;\n border-radius: 4px;\n border: 2px dashed $dark-text-color;\n text-align: center;\n color: $darker-text-color;\n margin-bottom: 10px;\n}\n\n.contact-widget {\n min-height: 100%;\n font-size: 15px;\n color: $darker-text-color;\n line-height: 20px;\n word-wrap: break-word;\n font-weight: 400;\n padding: 0;\n\n h4 {\n padding: 10px;\n text-transform: uppercase;\n font-weight: 700;\n font-size: 13px;\n color: $darker-text-color;\n }\n\n .account {\n border-bottom: 0;\n padding: 10px 0;\n padding-top: 5px;\n }\n\n & > a {\n display: inline-block;\n padding: 10px;\n padding-top: 0;\n color: $darker-text-color;\n text-decoration: none;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n\n &:hover,\n &:focus,\n &:active {\n text-decoration: underline;\n }\n }\n}\n\n.moved-account-widget {\n padding: 15px;\n padding-bottom: 20px;\n border-radius: 4px;\n background: $ui-base-color;\n box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);\n color: $secondary-text-color;\n font-weight: 400;\n margin-bottom: 10px;\n\n strong,\n a {\n font-weight: 500;\n\n @each $lang in $cjk-langs {\n &:lang(#{$lang}) {\n font-weight: 700;\n }\n }\n }\n\n a {\n color: inherit;\n text-decoration: underline;\n\n &.mention {\n text-decoration: none;\n\n span {\n text-decoration: none;\n }\n\n &:focus,\n &:hover,\n &:active {\n text-decoration: none;\n\n span {\n text-decoration: underline;\n }\n }\n }\n }\n\n &__message {\n margin-bottom: 15px;\n\n .fa {\n margin-right: 5px;\n color: $darker-text-color;\n }\n }\n\n &__card {\n .detailed-status__display-avatar {\n position: relative;\n cursor: pointer;\n }\n\n .detailed-status__display-name {\n margin-bottom: 0;\n text-decoration: none;\n\n span {\n font-weight: 400;\n }\n }\n }\n}\n\n.memoriam-widget {\n padding: 20px;\n border-radius: 4px;\n background: $base-shadow-color;\n box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);\n font-size: 14px;\n color: $darker-text-color;\n margin-bottom: 10px;\n}\n\n.page-header {\n background: lighten($ui-base-color, 8%);\n box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);\n border-radius: 4px;\n padding: 60px 15px;\n text-align: center;\n margin: 10px 0;\n\n h1 {\n color: $primary-text-color;\n font-size: 36px;\n line-height: 1.1;\n font-weight: 700;\n margin-bottom: 10px;\n }\n\n p {\n font-size: 15px;\n color: $darker-text-color;\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n margin-top: 0;\n background: lighten($ui-base-color, 4%);\n\n h1 {\n font-size: 24px;\n }\n }\n}\n\n.directory {\n background: $ui-base-color;\n border-radius: 4px;\n box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);\n\n &__tag {\n box-sizing: border-box;\n margin-bottom: 10px;\n\n & > a,\n & > div {\n display: flex;\n align-items: center;\n justify-content: space-between;\n background: $ui-base-color;\n border-radius: 4px;\n padding: 15px;\n text-decoration: none;\n color: inherit;\n box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);\n }\n\n & > a {\n &:hover,\n &:active,\n &:focus {\n background: lighten($ui-base-color, 8%);\n }\n }\n\n &.active > a {\n background: $ui-highlight-color;\n cursor: default;\n }\n\n &.disabled > div {\n opacity: 0.5;\n cursor: default;\n }\n\n h4 {\n flex: 1 1 auto;\n font-size: 18px;\n font-weight: 700;\n color: $primary-text-color;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n\n .fa {\n color: $darker-text-color;\n }\n\n small {\n display: block;\n font-weight: 400;\n font-size: 15px;\n margin-top: 8px;\n color: $darker-text-color;\n }\n }\n\n &.active h4 {\n &,\n .fa,\n small,\n .trends__item__current {\n color: $primary-text-color;\n }\n }\n\n .avatar-stack {\n flex: 0 0 auto;\n width: (36px + 4px) * 3;\n }\n\n &.active .avatar-stack .account__avatar {\n border-color: $ui-highlight-color;\n }\n\n .trends__item__current {\n padding-right: 0;\n }\n }\n}\n\n.avatar-stack {\n display: flex;\n justify-content: flex-end;\n\n .account__avatar {\n flex: 0 0 auto;\n width: 36px;\n height: 36px;\n border-radius: 50%;\n position: relative;\n margin-left: -10px;\n background: darken($ui-base-color, 8%);\n border: 2px solid $ui-base-color;\n\n &:nth-child(1) {\n z-index: 1;\n }\n\n &:nth-child(2) {\n z-index: 2;\n }\n\n &:nth-child(3) {\n z-index: 3;\n }\n }\n}\n\n.accounts-table {\n width: 100%;\n\n .account {\n padding: 0;\n border: 0;\n }\n\n strong {\n font-weight: 700;\n }\n\n thead th {\n text-align: center;\n text-transform: uppercase;\n color: $darker-text-color;\n font-weight: 700;\n padding: 10px;\n\n &:first-child {\n text-align: left;\n }\n }\n\n tbody td {\n padding: 15px 0;\n vertical-align: middle;\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n }\n\n tbody tr:last-child td {\n border-bottom: 0;\n }\n\n &__count {\n width: 120px;\n text-align: center;\n font-size: 15px;\n font-weight: 500;\n color: $primary-text-color;\n\n small {\n display: block;\n color: $darker-text-color;\n font-weight: 400;\n font-size: 14px;\n }\n }\n\n &__comment {\n width: 50%;\n vertical-align: initial !important;\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n tbody td.optional {\n display: none;\n }\n }\n}\n\n.moved-account-widget,\n.memoriam-widget,\n.box-widget,\n.contact-widget,\n.landing-page__information.contact-widget,\n.directory,\n.page-header {\n @media screen and (max-width: $no-gap-breakpoint) {\n margin-bottom: 0;\n box-shadow: none;\n border-radius: 0;\n }\n}\n\n$maximum-width: 1235px;\n$fluid-breakpoint: $maximum-width + 20px;\n\n.statuses-grid {\n min-height: 600px;\n\n @media screen and (max-width: 640px) {\n width: 100% !important; // Masonry layout is unnecessary at this width\n }\n\n &__item {\n width: (960px - 20px) / 3;\n\n @media screen and (max-width: $fluid-breakpoint) {\n width: (940px - 20px) / 3;\n }\n\n @media screen and (max-width: 640px) {\n width: 100%;\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n width: 100vw;\n }\n }\n\n .detailed-status {\n border-radius: 4px;\n\n @media screen and (max-width: $no-gap-breakpoint) {\n border-top: 1px solid lighten($ui-base-color, 16%);\n }\n\n &.compact {\n .detailed-status__meta {\n margin-top: 15px;\n }\n\n .status__content {\n font-size: 15px;\n line-height: 20px;\n\n .emojione {\n width: 20px;\n height: 20px;\n margin: -3px 0 0;\n }\n\n .status__content__spoiler-link {\n line-height: 20px;\n margin: 0;\n }\n }\n\n .media-gallery,\n .status-card,\n .video-player {\n margin-top: 15px;\n }\n }\n }\n}\n\n.notice-widget {\n margin-bottom: 10px;\n color: $darker-text-color;\n\n p {\n margin-bottom: 10px;\n\n &:last-child {\n margin-bottom: 0;\n }\n }\n\n a {\n font-size: 14px;\n line-height: 20px;\n }\n}\n\n.notice-widget,\n.placeholder-widget {\n a {\n text-decoration: none;\n font-weight: 500;\n color: $ui-highlight-color;\n\n &:hover,\n &:focus,\n &:active {\n text-decoration: underline;\n }\n }\n}\n\n.table-of-contents {\n background: darken($ui-base-color, 4%);\n min-height: 100%;\n font-size: 14px;\n border-radius: 4px;\n\n li a {\n display: block;\n font-weight: 500;\n padding: 15px;\n overflow: hidden;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n text-decoration: none;\n color: $primary-text-color;\n border-bottom: 1px solid lighten($ui-base-color, 4%);\n\n &:hover,\n &:focus,\n &:active {\n text-decoration: underline;\n }\n }\n\n li:last-child a {\n border-bottom: 0;\n }\n\n li ul {\n padding-left: 20px;\n border-bottom: 1px solid lighten($ui-base-color, 4%);\n }\n}\n","// Commonly used web colors\n$black: #000000; // Black\n$white: #ffffff; // White\n$success-green: #79bd9a !default; // Padua\n$error-red: #df405a !default; // Cerise\n$warning-red: #ff5050 !default; // Sunset Orange\n$gold-star: #ca8f04 !default; // Dark Goldenrod\n\n$red-bookmark: $warning-red;\n\n// Pleroma-Dark colors\n$pleroma-bg: #121a24;\n$pleroma-fg: #182230;\n$pleroma-text: #b9b9ba;\n$pleroma-links: #d8a070;\n\n// Values from the classic Mastodon UI\n$classic-base-color: $pleroma-bg;\n$classic-primary-color: #9baec8;\n$classic-secondary-color: #d9e1e8;\n$classic-highlight-color: #d8a070;\n\n// Variables for defaults in UI\n$base-shadow-color: $black !default;\n$base-overlay-background: $black !default;\n$base-border-color: $white !default;\n$simple-background-color: $white !default;\n$valid-value-color: $success-green !default;\n$error-value-color: $error-red !default;\n\n// Tell UI to use selected colors\n$ui-base-color: $classic-base-color !default; // Darkest\n$ui-base-lighter-color: lighten($ui-base-color, 26%) !default; // Lighter darkest\n$ui-primary-color: $classic-primary-color !default; // Lighter\n$ui-secondary-color: $classic-secondary-color !default; // Lightest\n$ui-highlight-color: $classic-highlight-color !default;\n\n// Variables for texts\n$primary-text-color: $white !default;\n$darker-text-color: $ui-primary-color !default;\n$dark-text-color: $ui-base-lighter-color !default;\n$secondary-text-color: $ui-secondary-color !default;\n$highlight-text-color: $ui-highlight-color !default;\n$action-button-color: $ui-base-lighter-color !default;\n// For texts on inverted backgrounds\n$inverted-text-color: $ui-base-color !default;\n$lighter-text-color: $ui-base-lighter-color !default;\n$light-text-color: $ui-primary-color !default;\n\n// Language codes that uses CJK fonts\n$cjk-langs: ja, ko, zh-CN, zh-HK, zh-TW;\n\n// Variables for components\n$media-modal-media-max-width: 100%;\n// put margins on top and bottom of image to avoid the screen covered by image.\n$media-modal-media-max-height: 80%;\n\n$no-gap-breakpoint: 415px;\n\n$font-sans-serif: 'mastodon-font-sans-serif' !default;\n$font-display: 'mastodon-font-display' !default;\n$font-monospace: 'mastodon-font-monospace' !default;\n","$no-columns-breakpoint: 600px;\n\ncode {\n font-family: $font-monospace, monospace;\n font-weight: 400;\n}\n\n.form-container {\n max-width: 400px;\n padding: 20px;\n margin: 0 auto;\n}\n\n.simple_form {\n .input {\n margin-bottom: 15px;\n overflow: hidden;\n\n &.hidden {\n margin: 0;\n }\n\n &.radio_buttons {\n .radio {\n margin-bottom: 15px;\n\n &:last-child {\n margin-bottom: 0;\n }\n }\n\n .radio > label {\n position: relative;\n padding-left: 28px;\n\n input {\n position: absolute;\n top: -2px;\n left: 0;\n }\n }\n }\n\n &.boolean {\n position: relative;\n margin-bottom: 0;\n\n .label_input > label {\n font-family: inherit;\n font-size: 14px;\n padding-top: 5px;\n color: $primary-text-color;\n display: block;\n width: auto;\n }\n\n .label_input,\n .hint {\n padding-left: 28px;\n }\n\n .label_input__wrapper {\n position: static;\n }\n\n label.checkbox {\n position: absolute;\n top: 2px;\n left: 0;\n }\n\n label a {\n color: $highlight-text-color;\n text-decoration: underline;\n\n &:hover,\n &:active,\n &:focus {\n text-decoration: none;\n }\n }\n\n .recommended {\n position: absolute;\n margin: 0 4px;\n margin-top: -2px;\n }\n }\n }\n\n .row {\n display: flex;\n margin: 0 -5px;\n\n .input {\n box-sizing: border-box;\n flex: 1 1 auto;\n width: 50%;\n padding: 0 5px;\n }\n }\n\n .hint {\n color: $darker-text-color;\n\n a {\n color: $highlight-text-color;\n }\n\n code {\n border-radius: 3px;\n padding: 0.2em 0.4em;\n background: darken($ui-base-color, 12%);\n }\n\n li {\n list-style: disc;\n margin-left: 18px;\n }\n }\n\n ul.hint {\n margin-bottom: 15px;\n }\n\n span.hint {\n display: block;\n font-size: 12px;\n margin-top: 4px;\n }\n\n p.hint {\n margin-bottom: 15px;\n color: $darker-text-color;\n\n &.subtle-hint {\n text-align: center;\n font-size: 12px;\n line-height: 18px;\n margin-top: 15px;\n margin-bottom: 0;\n }\n }\n\n .card {\n margin-bottom: 15px;\n }\n\n strong {\n font-weight: 500;\n\n @each $lang in $cjk-langs {\n &:lang(#{$lang}) {\n font-weight: 700;\n }\n }\n }\n\n .input.with_floating_label {\n .label_input {\n display: flex;\n\n & > label {\n font-family: inherit;\n font-size: 14px;\n color: $primary-text-color;\n font-weight: 500;\n min-width: 150px;\n flex: 0 0 auto;\n }\n\n input,\n select {\n flex: 1 1 auto;\n }\n }\n\n &.select .hint {\n margin-top: 6px;\n margin-left: 150px;\n }\n }\n\n .input.with_label {\n .label_input > label {\n font-family: inherit;\n font-size: 14px;\n color: $primary-text-color;\n display: block;\n margin-bottom: 8px;\n word-wrap: break-word;\n font-weight: 500;\n }\n\n .hint {\n margin-top: 6px;\n }\n\n ul {\n flex: 390px;\n }\n }\n\n .input.with_block_label {\n max-width: none;\n\n & > label {\n font-family: inherit;\n font-size: 16px;\n color: $primary-text-color;\n display: block;\n font-weight: 500;\n padding-top: 5px;\n }\n\n .hint {\n margin-bottom: 15px;\n }\n\n ul {\n columns: 2;\n }\n }\n\n .input.datetime .label_input select {\n display: inline-block;\n width: auto;\n flex: 0;\n }\n\n .required abbr {\n text-decoration: none;\n color: lighten($error-value-color, 12%);\n }\n\n .fields-group {\n margin-bottom: 25px;\n\n .input:last-child {\n margin-bottom: 0;\n }\n }\n\n .fields-row {\n display: flex;\n margin: 0 -10px;\n padding-top: 5px;\n margin-bottom: 25px;\n\n .input {\n max-width: none;\n }\n\n &__column {\n box-sizing: border-box;\n padding: 0 10px;\n flex: 1 1 auto;\n min-height: 1px;\n\n &-6 {\n max-width: 50%;\n }\n\n .actions {\n margin-top: 27px;\n }\n }\n\n .fields-group:last-child,\n .fields-row__column.fields-group {\n margin-bottom: 0;\n }\n\n @media screen and (max-width: $no-columns-breakpoint) {\n display: block;\n margin-bottom: 0;\n\n &__column {\n max-width: none;\n }\n\n .fields-group:last-child,\n .fields-row__column.fields-group,\n .fields-row__column {\n margin-bottom: 25px;\n }\n }\n }\n\n .input.radio_buttons .radio label {\n margin-bottom: 5px;\n font-family: inherit;\n font-size: 14px;\n color: $primary-text-color;\n display: block;\n width: auto;\n }\n\n .check_boxes {\n .checkbox {\n label {\n font-family: inherit;\n font-size: 14px;\n color: $primary-text-color;\n display: inline-block;\n width: auto;\n position: relative;\n padding-top: 5px;\n padding-left: 25px;\n flex: 1 1 auto;\n }\n\n input[type=checkbox] {\n position: absolute;\n left: 0;\n top: 5px;\n margin: 0;\n }\n }\n }\n\n .input.static .label_input__wrapper {\n font-size: 16px;\n padding: 10px;\n border: 1px solid $dark-text-color;\n border-radius: 4px;\n }\n\n input[type=text],\n input[type=number],\n input[type=email],\n input[type=password],\n textarea {\n box-sizing: border-box;\n font-size: 16px;\n color: $primary-text-color;\n display: block;\n width: 100%;\n outline: 0;\n font-family: inherit;\n resize: vertical;\n background: darken($ui-base-color, 10%);\n border: 1px solid darken($ui-base-color, 14%);\n border-radius: 4px;\n padding: 10px;\n\n &::placeholder {\n color: lighten($darker-text-color, 4%);\n }\n\n &:invalid {\n box-shadow: none;\n }\n\n &:focus:invalid:not(:placeholder-shown) {\n border-color: lighten($error-red, 12%);\n }\n\n &:required:valid {\n border-color: $valid-value-color;\n }\n\n &:hover {\n border-color: darken($ui-base-color, 20%);\n }\n\n &:active,\n &:focus {\n border-color: $highlight-text-color;\n background: darken($ui-base-color, 8%);\n }\n }\n\n .input.field_with_errors {\n label {\n color: lighten($error-red, 12%);\n }\n\n input[type=text],\n input[type=number],\n input[type=email],\n input[type=password],\n textarea,\n select {\n border-color: lighten($error-red, 12%);\n }\n\n .error {\n display: block;\n font-weight: 500;\n color: lighten($error-red, 12%);\n margin-top: 4px;\n }\n }\n\n .input.disabled {\n opacity: 0.5;\n }\n\n .actions {\n margin-top: 30px;\n display: flex;\n\n &.actions--top {\n margin-top: 0;\n margin-bottom: 30px;\n }\n }\n\n button,\n .button,\n .block-button {\n display: block;\n width: 100%;\n border: 0;\n border-radius: 4px;\n background: $ui-highlight-color;\n color: $primary-text-color;\n font-size: 18px;\n line-height: inherit;\n height: auto;\n padding: 10px;\n text-transform: uppercase;\n text-decoration: none;\n text-align: center;\n box-sizing: border-box;\n cursor: pointer;\n font-weight: 500;\n outline: 0;\n margin-bottom: 10px;\n margin-right: 10px;\n\n &:last-child {\n margin-right: 0;\n }\n\n &:hover {\n background-color: lighten($ui-highlight-color, 5%);\n }\n\n &:active,\n &:focus {\n background-color: darken($ui-highlight-color, 5%);\n }\n\n &:disabled:hover {\n background-color: $ui-primary-color;\n }\n\n &.negative {\n background: $error-value-color;\n\n &:hover {\n background-color: lighten($error-value-color, 5%);\n }\n\n &:active,\n &:focus {\n background-color: darken($error-value-color, 5%);\n }\n }\n }\n\n select {\n appearance: none;\n box-sizing: border-box;\n font-size: 16px;\n color: $primary-text-color;\n display: block;\n width: 100%;\n outline: 0;\n font-family: inherit;\n resize: vertical;\n background: darken($ui-base-color, 10%) url(\"data:image/svg+xml;utf8,\") no-repeat right 8px center / auto 16px;\n border: 1px solid darken($ui-base-color, 14%);\n border-radius: 4px;\n padding-left: 10px;\n padding-right: 30px;\n height: 41px;\n }\n\n h4 {\n margin-bottom: 15px !important;\n }\n\n .label_input {\n &__wrapper {\n position: relative;\n }\n\n &__append {\n position: absolute;\n right: 3px;\n top: 1px;\n padding: 10px;\n padding-bottom: 9px;\n font-size: 16px;\n color: $dark-text-color;\n font-family: inherit;\n pointer-events: none;\n cursor: default;\n max-width: 140px;\n white-space: nowrap;\n overflow: hidden;\n\n &::after {\n content: '';\n display: block;\n position: absolute;\n top: 0;\n right: 0;\n bottom: 1px;\n width: 5px;\n background-image: linear-gradient(to right, rgba(darken($ui-base-color, 10%), 0), darken($ui-base-color, 10%));\n }\n }\n }\n\n &__overlay-area {\n position: relative;\n\n &__blurred form {\n filter: blur(2px);\n }\n\n &__overlay {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n display: flex;\n justify-content: center;\n align-items: center;\n background: rgba($ui-base-color, 0.65);\n border-radius: 4px;\n margin-left: -4px;\n margin-top: -4px;\n padding: 4px;\n\n &__content {\n text-align: center;\n\n &.rich-formatting {\n &,\n p {\n color: $primary-text-color;\n }\n }\n }\n }\n }\n}\n\n.block-icon {\n display: block;\n margin: 0 auto;\n margin-bottom: 10px;\n font-size: 24px;\n}\n\n.flash-message {\n background: lighten($ui-base-color, 8%);\n color: $darker-text-color;\n border-radius: 4px;\n padding: 15px 10px;\n margin-bottom: 30px;\n text-align: center;\n\n &.notice {\n border: 1px solid rgba($valid-value-color, 0.5);\n background: rgba($valid-value-color, 0.25);\n color: $valid-value-color;\n }\n\n &.alert {\n border: 1px solid rgba($error-value-color, 0.5);\n background: rgba($error-value-color, 0.25);\n color: $error-value-color;\n }\n\n a {\n display: inline-block;\n color: $darker-text-color;\n text-decoration: none;\n\n &:hover {\n color: $primary-text-color;\n text-decoration: underline;\n }\n }\n\n p {\n margin-bottom: 15px;\n }\n\n .oauth-code {\n outline: 0;\n box-sizing: border-box;\n display: block;\n width: 100%;\n border: 0;\n padding: 10px;\n font-family: $font-monospace, monospace;\n background: $ui-base-color;\n color: $primary-text-color;\n font-size: 14px;\n margin: 0;\n\n &::-moz-focus-inner {\n border: 0;\n }\n\n &::-moz-focus-inner,\n &:focus,\n &:active {\n outline: 0 !important;\n }\n\n &:focus {\n background: lighten($ui-base-color, 4%);\n }\n }\n\n strong {\n font-weight: 500;\n\n @each $lang in $cjk-langs {\n &:lang(#{$lang}) {\n font-weight: 700;\n }\n }\n }\n\n @media screen and (max-width: 740px) and (min-width: 441px) {\n margin-top: 40px;\n }\n}\n\n.form-footer {\n margin-top: 30px;\n text-align: center;\n\n a {\n color: $darker-text-color;\n text-decoration: none;\n\n &:hover {\n text-decoration: underline;\n }\n }\n}\n\n.quick-nav {\n list-style: none;\n margin-bottom: 25px;\n font-size: 14px;\n\n li {\n display: inline-block;\n margin-right: 10px;\n }\n\n a {\n color: $highlight-text-color;\n text-transform: uppercase;\n text-decoration: none;\n font-weight: 700;\n\n &:hover,\n &:focus,\n &:active {\n color: lighten($highlight-text-color, 8%);\n }\n }\n}\n\n.oauth-prompt,\n.follow-prompt {\n margin-bottom: 30px;\n color: $darker-text-color;\n\n h2 {\n font-size: 16px;\n margin-bottom: 30px;\n text-align: center;\n }\n\n strong {\n color: $secondary-text-color;\n font-weight: 500;\n\n @each $lang in $cjk-langs {\n &:lang(#{$lang}) {\n font-weight: 700;\n }\n }\n }\n\n @media screen and (max-width: 740px) and (min-width: 441px) {\n margin-top: 40px;\n }\n}\n\n.qr-wrapper {\n display: flex;\n flex-wrap: wrap;\n align-items: flex-start;\n}\n\n.qr-code {\n flex: 0 0 auto;\n background: $simple-background-color;\n padding: 4px;\n margin: 0 10px 20px 0;\n box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);\n display: inline-block;\n\n svg {\n display: block;\n margin: 0;\n }\n}\n\n.qr-alternative {\n margin-bottom: 20px;\n color: $secondary-text-color;\n flex: 150px;\n\n samp {\n display: block;\n font-size: 14px;\n }\n}\n\n.table-form {\n p {\n margin-bottom: 15px;\n\n strong {\n font-weight: 500;\n\n @each $lang in $cjk-langs {\n &:lang(#{$lang}) {\n font-weight: 700;\n }\n }\n }\n }\n}\n\n.simple_form,\n.table-form {\n .warning {\n box-sizing: border-box;\n background: rgba($error-value-color, 0.5);\n color: $primary-text-color;\n text-shadow: 1px 1px 0 rgba($base-shadow-color, 0.3);\n box-shadow: 0 2px 6px rgba($base-shadow-color, 0.4);\n border-radius: 4px;\n padding: 10px;\n margin-bottom: 15px;\n\n a {\n color: $primary-text-color;\n text-decoration: underline;\n\n &:hover,\n &:focus,\n &:active {\n text-decoration: none;\n }\n }\n\n strong {\n font-weight: 600;\n display: block;\n margin-bottom: 5px;\n\n @each $lang in $cjk-langs {\n &:lang(#{$lang}) {\n font-weight: 700;\n }\n }\n\n .fa {\n font-weight: 400;\n }\n }\n }\n}\n\n.action-pagination {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n\n .actions,\n .pagination {\n flex: 1 1 auto;\n }\n\n .actions {\n padding: 30px 0;\n padding-right: 20px;\n flex: 0 0 auto;\n }\n}\n\n.post-follow-actions {\n text-align: center;\n color: $darker-text-color;\n\n div {\n margin-bottom: 4px;\n }\n}\n\n.alternative-login {\n margin-top: 20px;\n margin-bottom: 20px;\n\n h4 {\n font-size: 16px;\n color: $primary-text-color;\n text-align: center;\n margin-bottom: 20px;\n border: 0;\n padding: 0;\n }\n\n .button {\n display: block;\n }\n}\n\n.scope-danger {\n color: $warning-red;\n}\n\n.form_admin_settings_site_short_description,\n.form_admin_settings_site_description,\n.form_admin_settings_site_extended_description,\n.form_admin_settings_site_terms,\n.form_admin_settings_custom_css,\n.form_admin_settings_closed_registrations_message {\n textarea {\n font-family: $font-monospace, monospace;\n }\n}\n\n.input-copy {\n background: darken($ui-base-color, 10%);\n border: 1px solid darken($ui-base-color, 14%);\n border-radius: 4px;\n display: flex;\n align-items: center;\n padding-right: 4px;\n position: relative;\n top: 1px;\n transition: border-color 300ms linear;\n\n &__wrapper {\n flex: 1 1 auto;\n }\n\n input[type=text] {\n background: transparent;\n border: 0;\n padding: 10px;\n font-size: 14px;\n font-family: $font-monospace, monospace;\n }\n\n button {\n flex: 0 0 auto;\n margin: 4px;\n text-transform: none;\n font-weight: 400;\n font-size: 14px;\n padding: 7px 18px;\n padding-bottom: 6px;\n width: auto;\n transition: background 300ms linear;\n }\n\n &.copied {\n border-color: $valid-value-color;\n transition: none;\n\n button {\n background: $valid-value-color;\n transition: none;\n }\n }\n}\n\n.connection-prompt {\n margin-bottom: 25px;\n\n .fa-link {\n background-color: darken($ui-base-color, 4%);\n border-radius: 100%;\n font-size: 24px;\n padding: 10px;\n }\n\n &__column {\n align-items: center;\n display: flex;\n flex: 1;\n flex-direction: column;\n flex-shrink: 1;\n max-width: 50%;\n\n &-sep {\n align-self: center;\n flex-grow: 0;\n overflow: visible;\n position: relative;\n z-index: 1;\n }\n\n p {\n word-break: break-word;\n }\n }\n\n .account__avatar {\n margin-bottom: 20px;\n }\n\n &__connection {\n background-color: lighten($ui-base-color, 8%);\n box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);\n border-radius: 4px;\n padding: 25px 10px;\n position: relative;\n text-align: center;\n\n &::after {\n background-color: darken($ui-base-color, 4%);\n content: '';\n display: block;\n height: 100%;\n left: 50%;\n position: absolute;\n top: 0;\n width: 1px;\n }\n }\n\n &__row {\n align-items: flex-start;\n display: flex;\n flex-direction: row;\n }\n}\n",".card {\n & > a {\n display: block;\n text-decoration: none;\n color: inherit;\n box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);\n\n @media screen and (max-width: $no-gap-breakpoint) {\n box-shadow: none;\n }\n\n &:hover,\n &:active,\n &:focus {\n .card__bar {\n background: lighten($ui-base-color, 8%);\n }\n }\n }\n\n &__img {\n height: 130px;\n position: relative;\n background: darken($ui-base-color, 12%);\n border-radius: 4px 4px 0 0;\n\n img {\n display: block;\n width: 100%;\n height: 100%;\n margin: 0;\n object-fit: cover;\n border-radius: 4px 4px 0 0;\n }\n\n @media screen and (max-width: 600px) {\n height: 200px;\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n display: none;\n }\n }\n\n &__bar {\n position: relative;\n padding: 15px;\n display: flex;\n justify-content: flex-start;\n align-items: center;\n background: lighten($ui-base-color, 4%);\n border-radius: 0 0 4px 4px;\n\n @media screen and (max-width: $no-gap-breakpoint) {\n border-radius: 0;\n }\n\n .avatar {\n flex: 0 0 auto;\n width: 48px;\n height: 48px;\n padding-top: 2px;\n\n img {\n width: 100%;\n height: 100%;\n display: block;\n margin: 0;\n border-radius: 4px;\n background: darken($ui-base-color, 8%);\n object-fit: cover;\n }\n }\n\n .display-name {\n margin-left: 15px;\n text-align: left;\n\n strong {\n font-size: 15px;\n color: $primary-text-color;\n font-weight: 500;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n span {\n display: block;\n font-size: 14px;\n color: $darker-text-color;\n font-weight: 400;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n }\n }\n}\n\n.pagination {\n padding: 30px 0;\n text-align: center;\n overflow: hidden;\n\n a,\n .current,\n .newer,\n .older,\n .page,\n .gap {\n font-size: 14px;\n color: $primary-text-color;\n font-weight: 500;\n display: inline-block;\n padding: 6px 10px;\n text-decoration: none;\n }\n\n .current {\n background: $simple-background-color;\n border-radius: 100px;\n color: $inverted-text-color;\n cursor: default;\n margin: 0 10px;\n }\n\n .gap {\n cursor: default;\n }\n\n .older,\n .newer {\n text-transform: uppercase;\n color: $secondary-text-color;\n }\n\n .older {\n float: left;\n padding-left: 0;\n\n .fa {\n display: inline-block;\n margin-right: 5px;\n }\n }\n\n .newer {\n float: right;\n padding-right: 0;\n\n .fa {\n display: inline-block;\n margin-left: 5px;\n }\n }\n\n .disabled {\n cursor: default;\n color: lighten($inverted-text-color, 10%);\n }\n\n @media screen and (max-width: 700px) {\n padding: 30px 20px;\n\n .page {\n display: none;\n }\n\n .newer,\n .older {\n display: inline-block;\n }\n }\n}\n\n.nothing-here {\n background: $ui-base-color;\n box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);\n color: $light-text-color;\n font-size: 14px;\n font-weight: 500;\n text-align: center;\n display: flex;\n justify-content: center;\n align-items: center;\n cursor: default;\n border-radius: 4px;\n padding: 20px;\n min-height: 30vh;\n\n &--under-tabs {\n border-radius: 0 0 4px 4px;\n }\n\n &--flexible {\n box-sizing: border-box;\n min-height: 100%;\n }\n}\n\n.account-role,\n.simple_form .recommended {\n display: inline-block;\n padding: 4px 6px;\n cursor: default;\n border-radius: 3px;\n font-size: 12px;\n line-height: 12px;\n font-weight: 500;\n color: $ui-secondary-color;\n background-color: rgba($ui-secondary-color, 0.1);\n border: 1px solid rgba($ui-secondary-color, 0.5);\n\n &.moderator {\n color: $success-green;\n background-color: rgba($success-green, 0.1);\n border-color: rgba($success-green, 0.5);\n }\n\n &.admin {\n color: lighten($error-red, 12%);\n background-color: rgba(lighten($error-red, 12%), 0.1);\n border-color: rgba(lighten($error-red, 12%), 0.5);\n }\n}\n\n.account__header__fields {\n max-width: 100vw;\n padding: 0;\n margin: 15px -15px -15px;\n border: 0 none;\n border-top: 1px solid lighten($ui-base-color, 12%);\n border-bottom: 1px solid lighten($ui-base-color, 12%);\n font-size: 14px;\n line-height: 20px;\n\n dl {\n display: flex;\n border-bottom: 1px solid lighten($ui-base-color, 12%);\n }\n\n dt,\n dd {\n box-sizing: border-box;\n padding: 14px;\n text-align: center;\n max-height: 48px;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n }\n\n dt {\n font-weight: 500;\n width: 120px;\n flex: 0 0 auto;\n color: $secondary-text-color;\n background: rgba(darken($ui-base-color, 8%), 0.5);\n }\n\n dd {\n flex: 1 1 auto;\n color: $darker-text-color;\n }\n\n a {\n color: $highlight-text-color;\n text-decoration: none;\n\n &:hover,\n &:focus,\n &:active {\n text-decoration: underline;\n }\n }\n\n .verified {\n border: 1px solid rgba($valid-value-color, 0.5);\n background: rgba($valid-value-color, 0.25);\n\n a {\n color: $valid-value-color;\n font-weight: 500;\n }\n\n &__mark {\n color: $valid-value-color;\n }\n }\n\n dl:last-child {\n border-bottom: 0;\n }\n}\n\n.directory__tag .trends__item__current {\n width: auto;\n}\n\n.pending-account {\n &__header {\n color: $darker-text-color;\n\n a {\n color: $ui-secondary-color;\n text-decoration: none;\n\n &:hover,\n &:active,\n &:focus {\n text-decoration: underline;\n }\n }\n\n strong {\n color: $primary-text-color;\n font-weight: 700;\n }\n }\n\n &__body {\n margin-top: 10px;\n }\n}\n",".activity-stream {\n box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);\n border-radius: 4px;\n overflow: hidden;\n margin-bottom: 10px;\n\n &--under-tabs {\n border-radius: 0 0 4px 4px;\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n margin-bottom: 0;\n border-radius: 0;\n box-shadow: none;\n }\n\n &--headless {\n border-radius: 0;\n margin: 0;\n box-shadow: none;\n\n .detailed-status,\n .status {\n border-radius: 0 !important;\n }\n }\n\n div[data-component] {\n width: 100%;\n }\n\n .entry {\n background: $ui-base-color;\n\n .detailed-status,\n .status,\n .load-more {\n animation: none;\n }\n\n &:last-child {\n .detailed-status,\n .status,\n .load-more {\n border-bottom: 0;\n border-radius: 0 0 4px 4px;\n }\n }\n\n &:first-child {\n .detailed-status,\n .status,\n .load-more {\n border-radius: 4px 4px 0 0;\n }\n\n &:last-child {\n .detailed-status,\n .status,\n .load-more {\n border-radius: 4px;\n }\n }\n }\n\n @media screen and (max-width: 740px) {\n .detailed-status,\n .status,\n .load-more {\n border-radius: 0 !important;\n }\n }\n }\n\n &--highlighted .entry {\n background: lighten($ui-base-color, 8%);\n }\n}\n\n.button.logo-button {\n flex: 0 auto;\n font-size: 14px;\n background: $ui-highlight-color;\n color: $primary-text-color;\n text-transform: none;\n line-height: 36px;\n height: auto;\n padding: 3px 15px;\n border: 0;\n\n svg {\n width: 20px;\n height: auto;\n vertical-align: middle;\n margin-right: 5px;\n fill: $primary-text-color;\n }\n\n &:active,\n &:focus,\n &:hover {\n background: lighten($ui-highlight-color, 10%);\n }\n\n &:disabled,\n &.disabled {\n &:active,\n &:focus,\n &:hover {\n background: $ui-primary-color;\n }\n }\n\n &.button--destructive {\n &:active,\n &:focus,\n &:hover {\n background: $error-red;\n }\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n svg {\n display: none;\n }\n }\n}\n\n.embed,\n.public-layout {\n .detailed-status {\n padding: 15px;\n }\n\n .status {\n padding: 15px 15px 15px (48px + 15px * 2);\n min-height: 48px + 2px;\n\n &__avatar {\n left: 15px;\n top: 17px;\n }\n\n &__content {\n padding-top: 5px;\n }\n\n &__prepend {\n margin-left: 48px + 15px * 2;\n padding-top: 15px;\n }\n\n &__prepend-icon-wrapper {\n left: -32px;\n }\n\n .media-gallery,\n &__action-bar,\n .video-player {\n margin-top: 10px;\n }\n }\n}\n","button.icon-button i.fa-retweet {\n background-image: url(\"data:image/svg+xml;utf8,\");\n\n &:hover {\n background-image: url(\"data:image/svg+xml;utf8,\");\n }\n}\n\nbutton.icon-button.disabled i.fa-retweet {\n background-image: url(\"data:image/svg+xml;utf8,\");\n}\n",".app-body {\n -webkit-overflow-scrolling: touch;\n -ms-overflow-style: -ms-autohiding-scrollbar;\n}\n\n.animated-number {\n display: inline-flex;\n flex-direction: column;\n align-items: stretch;\n overflow: hidden;\n position: relative;\n}\n\n.link-button {\n display: block;\n font-size: 15px;\n line-height: 20px;\n color: $ui-highlight-color;\n border: 0;\n background: transparent;\n padding: 0;\n cursor: pointer;\n\n &:hover,\n &:active {\n text-decoration: underline;\n }\n\n &:disabled {\n color: $ui-primary-color;\n cursor: default;\n }\n}\n\n.button {\n background-color: $ui-highlight-color;\n border: 10px none;\n border-radius: 4px;\n box-sizing: border-box;\n color: $primary-text-color;\n cursor: pointer;\n display: inline-block;\n font-family: inherit;\n font-size: 14px;\n font-weight: 500;\n height: 36px;\n letter-spacing: 0;\n line-height: 36px;\n overflow: hidden;\n padding: 0 16px;\n position: relative;\n text-align: center;\n text-transform: uppercase;\n text-decoration: none;\n text-overflow: ellipsis;\n transition: all 100ms ease-in;\n white-space: nowrap;\n width: auto;\n\n &:active,\n &:focus,\n &:hover {\n background-color: lighten($ui-highlight-color, 10%);\n transition: all 200ms ease-out;\n }\n\n &--destructive {\n transition: none;\n\n &:active,\n &:focus,\n &:hover {\n background-color: $error-red;\n transition: none;\n }\n }\n\n &:disabled,\n &.disabled {\n background-color: $ui-primary-color;\n cursor: default;\n }\n\n &::-moz-focus-inner {\n border: 0;\n }\n\n &::-moz-focus-inner,\n &:focus,\n &:active {\n outline: 0 !important;\n }\n\n &.button-primary,\n &.button-alternative,\n &.button-secondary,\n &.button-alternative-2 {\n font-size: 16px;\n line-height: 36px;\n height: auto;\n text-transform: none;\n padding: 4px 16px;\n }\n\n &.button-alternative {\n color: $inverted-text-color;\n background: $ui-primary-color;\n\n &:active,\n &:focus,\n &:hover {\n background-color: lighten($ui-primary-color, 4%);\n }\n }\n\n &.button-alternative-2 {\n background: $ui-base-lighter-color;\n\n &:active,\n &:focus,\n &:hover {\n background-color: lighten($ui-base-lighter-color, 4%);\n }\n }\n\n &.button-secondary {\n color: $darker-text-color;\n background: transparent;\n padding: 3px 15px;\n border: 1px solid $ui-primary-color;\n\n &:active,\n &:focus,\n &:hover {\n border-color: lighten($ui-primary-color, 4%);\n color: lighten($darker-text-color, 4%);\n }\n\n &:disabled {\n opacity: 0.5;\n }\n }\n\n &.button--block {\n display: block;\n width: 100%;\n }\n}\n\n.column__wrapper {\n display: flex;\n flex: 1 1 auto;\n position: relative;\n}\n\n.icon-button {\n display: inline-block;\n padding: 0;\n color: $action-button-color;\n border: 0;\n border-radius: 4px;\n background: transparent;\n cursor: pointer;\n transition: all 100ms ease-in;\n transition-property: background-color, color;\n\n &:hover,\n &:active,\n &:focus {\n color: lighten($action-button-color, 7%);\n background-color: rgba($action-button-color, 0.15);\n transition: all 200ms ease-out;\n transition-property: background-color, color;\n }\n\n &:focus {\n background-color: rgba($action-button-color, 0.3);\n }\n\n &.disabled {\n color: darken($action-button-color, 13%);\n background-color: transparent;\n cursor: default;\n }\n\n &.active {\n color: $highlight-text-color;\n }\n\n &::-moz-focus-inner {\n border: 0;\n }\n\n &::-moz-focus-inner,\n &:focus,\n &:active {\n outline: 0 !important;\n }\n\n &.inverted {\n color: $lighter-text-color;\n\n &:hover,\n &:active,\n &:focus {\n color: darken($lighter-text-color, 7%);\n background-color: rgba($lighter-text-color, 0.15);\n }\n\n &:focus {\n background-color: rgba($lighter-text-color, 0.3);\n }\n\n &.disabled {\n color: lighten($lighter-text-color, 7%);\n background-color: transparent;\n }\n\n &.active {\n color: $highlight-text-color;\n\n &.disabled {\n color: lighten($highlight-text-color, 13%);\n }\n }\n }\n\n &.overlayed {\n box-sizing: content-box;\n background: rgba($base-overlay-background, 0.6);\n color: rgba($primary-text-color, 0.7);\n border-radius: 4px;\n padding: 2px;\n\n &:hover {\n background: rgba($base-overlay-background, 0.9);\n }\n }\n}\n\n.text-icon-button {\n color: $lighter-text-color;\n border: 0;\n border-radius: 4px;\n background: transparent;\n cursor: pointer;\n font-weight: 600;\n font-size: 11px;\n padding: 0 3px;\n line-height: 27px;\n outline: 0;\n transition: all 100ms ease-in;\n transition-property: background-color, color;\n\n &:hover,\n &:active,\n &:focus {\n color: darken($lighter-text-color, 7%);\n background-color: rgba($lighter-text-color, 0.15);\n transition: all 200ms ease-out;\n transition-property: background-color, color;\n }\n\n &:focus {\n background-color: rgba($lighter-text-color, 0.3);\n }\n\n &.disabled {\n color: lighten($lighter-text-color, 20%);\n background-color: transparent;\n cursor: default;\n }\n\n &.active {\n color: $highlight-text-color;\n }\n\n &::-moz-focus-inner {\n border: 0;\n }\n\n &::-moz-focus-inner,\n &:focus,\n &:active {\n outline: 0 !important;\n }\n}\n\n.dropdown-menu {\n position: absolute;\n}\n\n.invisible {\n font-size: 0;\n line-height: 0;\n display: inline-block;\n width: 0;\n height: 0;\n position: absolute;\n\n img,\n svg {\n margin: 0 !important;\n border: 0 !important;\n padding: 0 !important;\n width: 0 !important;\n height: 0 !important;\n }\n}\n\n.ellipsis {\n &::after {\n content: \"…\";\n }\n}\n\n.compose-form {\n padding: 10px;\n\n &__sensitive-button {\n padding: 10px;\n padding-top: 0;\n\n font-size: 14px;\n font-weight: 500;\n\n &.active {\n color: $highlight-text-color;\n }\n\n input[type=checkbox] {\n display: none;\n }\n\n .checkbox {\n display: inline-block;\n position: relative;\n border: 1px solid $ui-primary-color;\n box-sizing: border-box;\n width: 18px;\n height: 18px;\n flex: 0 0 auto;\n margin-right: 10px;\n top: -1px;\n border-radius: 4px;\n vertical-align: middle;\n\n &.active {\n border-color: $highlight-text-color;\n background: $highlight-text-color;\n }\n }\n }\n\n .compose-form__warning {\n color: $inverted-text-color;\n margin-bottom: 10px;\n background: $ui-primary-color;\n box-shadow: 0 2px 6px rgba($base-shadow-color, 0.3);\n padding: 8px 10px;\n border-radius: 4px;\n font-size: 13px;\n font-weight: 400;\n\n strong {\n color: $inverted-text-color;\n font-weight: 500;\n\n @each $lang in $cjk-langs {\n &:lang(#{$lang}) {\n font-weight: 700;\n }\n }\n }\n\n a {\n color: $lighter-text-color;\n font-weight: 500;\n text-decoration: underline;\n\n &:hover,\n &:active,\n &:focus {\n text-decoration: none;\n }\n }\n }\n\n .emoji-picker-dropdown {\n position: absolute;\n top: 0;\n right: 0;\n }\n\n .compose-form__autosuggest-wrapper {\n position: relative;\n }\n\n .autosuggest-textarea,\n .autosuggest-input,\n .spoiler-input {\n position: relative;\n width: 100%;\n }\n\n .spoiler-input {\n height: 0;\n transform-origin: bottom;\n opacity: 0;\n\n &.spoiler-input--visible {\n height: 36px;\n margin-bottom: 11px;\n opacity: 1;\n }\n }\n\n .autosuggest-textarea__textarea,\n .spoiler-input__input {\n display: block;\n box-sizing: border-box;\n width: 100%;\n margin: 0;\n color: $inverted-text-color;\n background: $simple-background-color;\n padding: 10px;\n font-family: inherit;\n font-size: 14px;\n resize: vertical;\n border: 0;\n outline: 0;\n\n &::placeholder {\n color: $dark-text-color;\n }\n\n &:focus {\n outline: 0;\n }\n\n @media screen and (max-width: 600px) {\n font-size: 16px;\n }\n }\n\n .spoiler-input__input {\n border-radius: 4px;\n }\n\n .autosuggest-textarea__textarea {\n min-height: 100px;\n border-radius: 4px 4px 0 0;\n padding-bottom: 0;\n padding-right: 10px + 22px;\n resize: none;\n scrollbar-color: initial;\n\n &::-webkit-scrollbar {\n all: unset;\n }\n\n @media screen and (max-width: 600px) {\n height: 100px !important; // prevent auto-resize textarea\n resize: vertical;\n }\n }\n\n .autosuggest-textarea__suggestions-wrapper {\n position: relative;\n height: 0;\n }\n\n .autosuggest-textarea__suggestions {\n box-sizing: border-box;\n display: none;\n position: absolute;\n top: 100%;\n width: 100%;\n z-index: 99;\n box-shadow: 4px 4px 6px rgba($base-shadow-color, 0.4);\n background: $ui-secondary-color;\n border-radius: 0 0 4px 4px;\n color: $inverted-text-color;\n font-size: 14px;\n padding: 6px;\n\n &.autosuggest-textarea__suggestions--visible {\n display: block;\n }\n }\n\n .autosuggest-textarea__suggestions__item {\n padding: 10px;\n cursor: pointer;\n border-radius: 4px;\n\n &:hover,\n &:focus,\n &:active,\n &.selected {\n background: darken($ui-secondary-color, 10%);\n }\n }\n\n .autosuggest-account,\n .autosuggest-emoji,\n .autosuggest-hashtag {\n display: flex;\n flex-direction: row;\n align-items: center;\n justify-content: flex-start;\n line-height: 18px;\n font-size: 14px;\n }\n\n .autosuggest-hashtag {\n justify-content: space-between;\n\n &__name {\n flex: 1 1 auto;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n\n strong {\n font-weight: 500;\n }\n\n &__uses {\n flex: 0 0 auto;\n text-align: right;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n }\n\n .autosuggest-account-icon,\n .autosuggest-emoji img {\n display: block;\n margin-right: 8px;\n width: 16px;\n height: 16px;\n }\n\n .autosuggest-account .display-name__account {\n color: $lighter-text-color;\n }\n\n .compose-form__modifiers {\n color: $inverted-text-color;\n font-family: inherit;\n font-size: 14px;\n background: $simple-background-color;\n\n .compose-form__upload-wrapper {\n overflow: hidden;\n }\n\n .compose-form__uploads-wrapper {\n display: flex;\n flex-direction: row;\n padding: 5px;\n flex-wrap: wrap;\n }\n\n .compose-form__upload {\n flex: 1 1 0;\n min-width: 40%;\n margin: 5px;\n\n &__actions {\n background: linear-gradient(180deg, rgba($base-shadow-color, 0.8) 0, rgba($base-shadow-color, 0.35) 80%, transparent);\n display: flex;\n align-items: flex-start;\n justify-content: space-between;\n opacity: 0;\n transition: opacity .1s ease;\n\n .icon-button {\n flex: 0 1 auto;\n color: $secondary-text-color;\n font-size: 14px;\n font-weight: 500;\n padding: 10px;\n font-family: inherit;\n\n &:hover,\n &:focus,\n &:active {\n color: lighten($secondary-text-color, 7%);\n }\n }\n\n &.active {\n opacity: 1;\n }\n }\n\n &-description {\n position: absolute;\n z-index: 2;\n bottom: 0;\n left: 0;\n right: 0;\n box-sizing: border-box;\n background: linear-gradient(0deg, rgba($base-shadow-color, 0.8) 0, rgba($base-shadow-color, 0.35) 80%, transparent);\n padding: 10px;\n opacity: 0;\n transition: opacity .1s ease;\n\n textarea {\n background: transparent;\n color: $secondary-text-color;\n border: 0;\n padding: 0;\n margin: 0;\n width: 100%;\n font-family: inherit;\n font-size: 14px;\n font-weight: 500;\n\n &:focus {\n color: $white;\n }\n\n &::placeholder {\n opacity: 0.75;\n color: $secondary-text-color;\n }\n }\n\n &.active {\n opacity: 1;\n }\n }\n }\n\n .compose-form__upload-thumbnail {\n border-radius: 4px;\n background-color: $base-shadow-color;\n background-position: center;\n background-size: cover;\n background-repeat: no-repeat;\n height: 140px;\n width: 100%;\n overflow: hidden;\n }\n }\n\n .compose-form__buttons-wrapper {\n padding: 10px;\n background: darken($simple-background-color, 8%);\n border-radius: 0 0 4px 4px;\n display: flex;\n justify-content: space-between;\n flex: 0 0 auto;\n\n .compose-form__buttons {\n display: flex;\n\n .compose-form__upload-button-icon {\n line-height: 27px;\n }\n\n .compose-form__sensitive-button {\n display: none;\n\n &.compose-form__sensitive-button--visible {\n display: block;\n }\n\n .compose-form__sensitive-button__icon {\n line-height: 27px;\n }\n }\n }\n\n .icon-button,\n .text-icon-button {\n box-sizing: content-box;\n padding: 0 3px;\n }\n\n .character-counter__wrapper {\n align-self: center;\n margin-right: 4px;\n }\n }\n\n .compose-form__publish {\n display: flex;\n justify-content: flex-end;\n min-width: 0;\n flex: 0 0 auto;\n\n .compose-form__publish-button-wrapper {\n overflow: hidden;\n padding-top: 10px;\n }\n }\n}\n\n.character-counter {\n cursor: default;\n font-family: $font-sans-serif, sans-serif;\n font-size: 14px;\n font-weight: 600;\n color: $lighter-text-color;\n\n &.character-counter--over {\n color: $warning-red;\n }\n}\n\n.no-reduce-motion .spoiler-input {\n transition: height 0.4s ease, opacity 0.4s ease;\n}\n\n.emojione {\n font-size: inherit;\n vertical-align: middle;\n object-fit: contain;\n margin: -.2ex .15em .2ex;\n width: 16px;\n height: 16px;\n\n img {\n width: auto;\n }\n}\n\n.reply-indicator {\n border-radius: 4px;\n margin-bottom: 10px;\n background: $ui-primary-color;\n padding: 10px;\n min-height: 23px;\n overflow-y: auto;\n flex: 0 2 auto;\n}\n\n.reply-indicator__header {\n margin-bottom: 5px;\n overflow: hidden;\n}\n\n.reply-indicator__cancel {\n float: right;\n line-height: 24px;\n}\n\n.reply-indicator__display-name {\n color: $inverted-text-color;\n display: block;\n max-width: 100%;\n line-height: 24px;\n overflow: hidden;\n padding-right: 25px;\n text-decoration: none;\n}\n\n.reply-indicator__display-avatar {\n float: left;\n margin-right: 5px;\n}\n\n.status__content--with-action {\n cursor: pointer;\n}\n\n.status__content,\n.reply-indicator__content {\n position: relative;\n font-size: 15px;\n line-height: 20px;\n word-wrap: break-word;\n font-weight: 400;\n overflow: hidden;\n text-overflow: ellipsis;\n padding-top: 2px;\n color: $primary-text-color;\n\n &:focus {\n outline: 0;\n }\n\n &.status__content--with-spoiler {\n white-space: normal;\n\n .status__content__text {\n white-space: pre-wrap;\n }\n }\n\n .emojione {\n width: 20px;\n height: 20px;\n margin: -3px 0 0;\n }\n\n img {\n max-width: 100%;\n max-height: 400px;\n object-fit: contain;\n }\n\n p {\n margin-bottom: 20px;\n white-space: pre-wrap;\n\n &:last-child {\n margin-bottom: 0;\n }\n }\n\n a {\n color: $pleroma-links;\n text-decoration: none;\n\n &:hover {\n text-decoration: underline;\n\n .fa {\n color: lighten($dark-text-color, 7%);\n }\n }\n\n &.mention {\n &:hover {\n text-decoration: none;\n\n span {\n text-decoration: underline;\n }\n }\n }\n\n .fa {\n color: $dark-text-color;\n }\n }\n\n a.unhandled-link {\n color: lighten($ui-highlight-color, 8%);\n }\n\n .status__content__spoiler-link {\n background: $action-button-color;\n\n &:hover {\n background: lighten($action-button-color, 7%);\n text-decoration: none;\n }\n\n &::-moz-focus-inner {\n border: 0;\n }\n\n &::-moz-focus-inner,\n &:focus,\n &:active {\n outline: 0 !important;\n }\n }\n\n .status__content__text {\n display: none;\n\n &.status__content__text--visible {\n display: block;\n }\n }\n}\n\n.announcements__item__content {\n word-wrap: break-word;\n overflow-y: auto;\n\n .emojione {\n width: 20px;\n height: 20px;\n margin: -3px 0 0;\n }\n\n p {\n margin-bottom: 10px;\n white-space: pre-wrap;\n\n &:last-child {\n margin-bottom: 0;\n }\n }\n\n a {\n color: $secondary-text-color;\n text-decoration: none;\n\n &:hover {\n text-decoration: underline;\n }\n\n &.mention {\n &:hover {\n text-decoration: none;\n\n span {\n text-decoration: underline;\n }\n }\n }\n\n &.unhandled-link {\n color: lighten($ui-highlight-color, 8%);\n }\n }\n}\n\n.status__content.status__content--collapsed {\n max-height: 20px * 15; // 15 lines is roughly above 500 characters\n}\n\n.status__content__read-more-button {\n display: block;\n font-size: 15px;\n line-height: 20px;\n color: lighten($ui-highlight-color, 8%);\n border: 0;\n background: transparent;\n padding: 0;\n padding-top: 8px;\n text-decoration: none;\n\n &:hover,\n &:active {\n text-decoration: underline;\n }\n}\n\n.status__content__spoiler-link {\n display: inline-block;\n border-radius: 2px;\n background: transparent;\n border: 0;\n color: $inverted-text-color;\n font-weight: 700;\n font-size: 11px;\n padding: 0 6px;\n text-transform: uppercase;\n line-height: 20px;\n cursor: pointer;\n vertical-align: middle;\n}\n\n.status__wrapper--filtered {\n color: $dark-text-color;\n border: 0;\n font-size: inherit;\n text-align: center;\n line-height: inherit;\n margin: 0;\n padding: 15px;\n box-sizing: border-box;\n width: 100%;\n clear: both;\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n}\n\n.status__prepend-icon-wrapper {\n left: -26px;\n position: absolute;\n}\n\n.focusable {\n &:focus {\n outline: 0;\n background: lighten($ui-base-color, 4%);\n\n .status.status-direct {\n background: lighten($ui-base-color, 12%);\n\n &.muted {\n background: transparent;\n }\n }\n\n .detailed-status,\n .detailed-status__action-bar {\n background: lighten($ui-base-color, 8%);\n }\n }\n}\n\n.status {\n padding: 8px 10px;\n padding-left: 68px;\n position: relative;\n min-height: 54px;\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n cursor: default;\n\n @supports (-ms-overflow-style: -ms-autohiding-scrollbar) {\n // Add margin to avoid Edge auto-hiding scrollbar appearing over content.\n // On Edge 16 this is 16px and Edge <=15 it's 12px, so aim for 16px.\n padding-right: 26px; // 10px + 16px\n }\n\n @keyframes fade {\n 0% { opacity: 0; }\n 100% { opacity: 1; }\n }\n\n opacity: 1;\n animation: fade 150ms linear;\n\n .video-player,\n .audio-player {\n margin-top: 8px;\n }\n\n &.status-direct:not(.read) {\n background: lighten($ui-base-color, 8%);\n border-bottom-color: lighten($ui-base-color, 12%);\n }\n\n &.light {\n .status__relative-time {\n color: $light-text-color;\n }\n\n .status__display-name {\n color: $inverted-text-color;\n }\n\n .display-name {\n color: $light-text-color;\n\n strong {\n color: $inverted-text-color;\n }\n }\n\n .status__content {\n color: $inverted-text-color;\n\n a {\n color: $highlight-text-color;\n }\n\n a.status__content__spoiler-link {\n color: $primary-text-color;\n background: $ui-primary-color;\n\n &:hover {\n background: lighten($ui-primary-color, 8%);\n }\n }\n }\n }\n}\n\n.notification-favourite {\n .status.status-direct {\n background: transparent;\n\n .icon-button.disabled {\n color: lighten($action-button-color, 13%);\n }\n }\n}\n\n.status__relative-time,\n.notification__relative_time {\n color: $dark-text-color;\n float: right;\n font-size: 14px;\n}\n\n.status__display-name {\n color: $dark-text-color;\n}\n\n.status__info .status__display-name {\n display: block;\n max-width: 100%;\n padding-right: 25px;\n}\n\n.status__info {\n font-size: 15px;\n}\n\n.status-check-box {\n border-bottom: 1px solid $ui-secondary-color;\n display: flex;\n\n .status-check-box__status {\n margin: 10px 0 10px 10px;\n flex: 1;\n overflow: hidden;\n\n .media-gallery {\n max-width: 250px;\n }\n\n .status__content {\n padding: 0;\n white-space: normal;\n }\n\n .video-player,\n .audio-player {\n margin-top: 8px;\n max-width: 250px;\n }\n\n .media-gallery__item-thumbnail {\n cursor: default;\n }\n }\n}\n\n.status-check-box-toggle {\n align-items: center;\n display: flex;\n flex: 0 0 auto;\n justify-content: center;\n padding: 10px;\n}\n\n.status__prepend {\n margin-left: 68px;\n color: $dark-text-color;\n padding: 8px 0;\n padding-bottom: 2px;\n font-size: 14px;\n position: relative;\n\n .status__display-name strong {\n color: $dark-text-color;\n }\n\n > span {\n display: block;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n}\n\n.status__action-bar {\n align-items: center;\n display: flex;\n margin-top: 8px;\n\n &__counter {\n display: inline-flex;\n margin-right: 11px;\n align-items: center;\n\n .status__action-bar-button {\n margin-right: 4px;\n }\n\n &__label {\n display: inline-block;\n width: 14px;\n font-size: 12px;\n font-weight: 500;\n color: $action-button-color;\n }\n }\n}\n\n.status__action-bar-button {\n margin-right: 18px;\n}\n\n.status__action-bar-dropdown {\n height: 23.15px;\n width: 23.15px;\n}\n\n.detailed-status__action-bar-dropdown {\n flex: 1 1 auto;\n display: flex;\n align-items: center;\n justify-content: center;\n position: relative;\n}\n\n.detailed-status {\n background: lighten($ui-base-color, 4%);\n padding: 14px 10px;\n\n &--flex {\n display: flex;\n flex-wrap: wrap;\n justify-content: space-between;\n align-items: flex-start;\n\n .status__content,\n .detailed-status__meta {\n flex: 100%;\n }\n }\n\n .status__content {\n font-size: 19px;\n line-height: 24px;\n\n .emojione {\n width: 24px;\n height: 24px;\n margin: -1px 0 0;\n }\n\n .status__content__spoiler-link {\n line-height: 24px;\n margin: -1px 0 0;\n }\n }\n\n .video-player,\n .audio-player {\n margin-top: 8px;\n }\n}\n\n.detailed-status__meta {\n margin-top: 15px;\n color: $dark-text-color;\n font-size: 14px;\n line-height: 18px;\n}\n\n.detailed-status__action-bar {\n background: lighten($ui-base-color, 4%);\n border-top: 1px solid lighten($ui-base-color, 8%);\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n display: flex;\n flex-direction: row;\n padding: 10px 0;\n}\n\n.detailed-status__link {\n color: inherit;\n text-decoration: none;\n}\n\n.detailed-status__favorites,\n.detailed-status__reblogs {\n display: inline-block;\n font-weight: 500;\n font-size: 12px;\n margin-left: 6px;\n}\n\n.reply-indicator__content {\n color: $inverted-text-color;\n font-size: 14px;\n\n a {\n color: $lighter-text-color;\n }\n}\n\n.domain {\n padding: 10px;\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n\n .domain__domain-name {\n flex: 1 1 auto;\n display: block;\n color: $primary-text-color;\n text-decoration: none;\n font-size: 14px;\n font-weight: 500;\n }\n}\n\n.domain__wrapper {\n display: flex;\n}\n\n.domain_buttons {\n height: 18px;\n padding: 10px;\n white-space: nowrap;\n}\n\n.account {\n padding: 10px;\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n\n &.compact {\n padding: 0;\n border-bottom: 0;\n\n .account__avatar-wrapper {\n margin-left: 0;\n }\n }\n\n .account__display-name {\n flex: 1 1 auto;\n display: block;\n color: $darker-text-color;\n overflow: hidden;\n text-decoration: none;\n font-size: 14px;\n }\n}\n\n.account__wrapper {\n display: flex;\n}\n\n.account__avatar-wrapper {\n float: left;\n margin-left: 12px;\n margin-right: 12px;\n}\n\n.account__avatar {\n @include avatar-radius;\n position: relative;\n\n &-inline {\n display: inline-block;\n vertical-align: middle;\n margin-right: 5px;\n }\n\n &-composite {\n @include avatar-radius;\n border-radius: 50%;\n overflow: hidden;\n position: relative;\n\n & > div {\n float: left;\n position: relative;\n box-sizing: border-box;\n }\n\n &__label {\n display: block;\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n color: $primary-text-color;\n text-shadow: 1px 1px 2px $base-shadow-color;\n font-weight: 700;\n font-size: 15px;\n }\n }\n}\n\na .account__avatar {\n cursor: pointer;\n}\n\n.account__avatar-overlay {\n @include avatar-size(48px);\n\n &-base {\n @include avatar-radius;\n @include avatar-size(36px);\n }\n\n &-overlay {\n @include avatar-radius;\n @include avatar-size(24px);\n\n position: absolute;\n bottom: 0;\n right: 0;\n z-index: 1;\n }\n}\n\n.account__relationship {\n height: 18px;\n padding: 10px;\n white-space: nowrap;\n}\n\n.account__disclaimer {\n padding: 10px;\n border-top: 1px solid lighten($ui-base-color, 8%);\n color: $dark-text-color;\n\n strong {\n font-weight: 500;\n\n @each $lang in $cjk-langs {\n &:lang(#{$lang}) {\n font-weight: 700;\n }\n }\n }\n\n a {\n font-weight: 500;\n color: inherit;\n text-decoration: underline;\n\n &:hover,\n &:focus,\n &:active {\n text-decoration: none;\n }\n }\n}\n\n.account__action-bar {\n border-top: 1px solid lighten($ui-base-color, 8%);\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n line-height: 36px;\n overflow: hidden;\n flex: 0 0 auto;\n display: flex;\n}\n\n.account__action-bar-dropdown {\n padding: 10px;\n\n .icon-button {\n vertical-align: middle;\n }\n\n .dropdown--active {\n .dropdown__content.dropdown__right {\n left: 6px;\n right: initial;\n }\n\n &::after {\n bottom: initial;\n margin-left: 11px;\n margin-top: -7px;\n right: initial;\n }\n }\n}\n\n.account__action-bar-links {\n display: flex;\n flex: 1 1 auto;\n line-height: 18px;\n text-align: center;\n}\n\n.account__action-bar__tab {\n text-decoration: none;\n overflow: hidden;\n flex: 0 1 100%;\n border-right: 1px solid lighten($ui-base-color, 8%);\n padding: 10px 0;\n border-bottom: 4px solid transparent;\n\n &.active {\n border-bottom: 4px solid $ui-highlight-color;\n }\n\n & > span {\n display: block;\n text-transform: uppercase;\n font-size: 11px;\n color: $darker-text-color;\n }\n\n strong {\n display: block;\n font-size: 15px;\n font-weight: 500;\n color: $primary-text-color;\n\n @each $lang in $cjk-langs {\n &:lang(#{$lang}) {\n font-weight: 700;\n }\n }\n }\n}\n\n.account-authorize {\n padding: 14px 10px;\n\n .detailed-status__display-name {\n display: block;\n margin-bottom: 15px;\n overflow: hidden;\n }\n}\n\n.account-authorize__avatar {\n float: left;\n margin-right: 10px;\n}\n\n.status__display-name,\n.status__relative-time,\n.detailed-status__display-name,\n.detailed-status__datetime,\n.detailed-status__application,\n.account__display-name {\n text-decoration: none;\n}\n\n.status__display-name,\n.account__display-name {\n strong {\n color: $primary-text-color;\n }\n}\n\n.muted {\n .emojione {\n opacity: 0.5;\n }\n}\n\n.status__display-name,\n.reply-indicator__display-name,\n.detailed-status__display-name,\na.account__display-name {\n &:hover strong {\n text-decoration: underline;\n }\n}\n\n.account__display-name strong {\n display: block;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n.detailed-status__application,\n.detailed-status__datetime {\n color: inherit;\n}\n\n.detailed-status .button.logo-button {\n margin-bottom: 15px;\n}\n\n.detailed-status__display-name {\n color: $secondary-text-color;\n display: block;\n line-height: 24px;\n margin-bottom: 15px;\n overflow: hidden;\n\n strong,\n span {\n display: block;\n text-overflow: ellipsis;\n overflow: hidden;\n }\n\n strong {\n font-size: 16px;\n color: $primary-text-color;\n }\n}\n\n.detailed-status__display-avatar {\n float: left;\n margin-right: 10px;\n}\n\n.status__avatar {\n height: 48px;\n left: 10px;\n position: absolute;\n top: 10px;\n width: 48px;\n}\n\n.status__expand {\n width: 68px;\n position: absolute;\n left: 0;\n top: 0;\n height: 100%;\n cursor: pointer;\n}\n\n.muted {\n .status__content,\n .status__content p,\n .status__content a {\n color: $dark-text-color;\n }\n\n .status__display-name strong {\n color: $dark-text-color;\n }\n\n .status__avatar {\n opacity: 0.5;\n }\n\n a.status__content__spoiler-link {\n background: $ui-base-lighter-color;\n color: $inverted-text-color;\n\n &:hover {\n background: lighten($ui-base-lighter-color, 7%);\n text-decoration: none;\n }\n }\n}\n\n.notification__message {\n margin: 0 10px 0 68px;\n padding: 8px 0 0;\n cursor: default;\n color: $darker-text-color;\n font-size: 15px;\n line-height: 22px;\n position: relative;\n\n .fa {\n color: $highlight-text-color;\n }\n\n > span {\n display: inline;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n}\n\n.notification__favourite-icon-wrapper {\n left: -26px;\n position: absolute;\n\n .star-icon {\n color: $gold-star;\n }\n}\n\n.star-icon.active {\n color: $gold-star;\n}\n\n.bookmark-icon.active {\n color: $red-bookmark;\n}\n\n.no-reduce-motion .icon-button.star-icon {\n &.activate {\n & > .fa-star {\n animation: spring-rotate-in 1s linear;\n }\n }\n\n &.deactivate {\n & > .fa-star {\n animation: spring-rotate-out 1s linear;\n }\n }\n}\n\n.notification__display-name {\n color: inherit;\n font-weight: 500;\n text-decoration: none;\n\n &:hover {\n color: $primary-text-color;\n text-decoration: underline;\n }\n}\n\n.notification__relative_time {\n float: right;\n}\n\n.display-name {\n display: block;\n max-width: 100%;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.display-name__html {\n font-weight: 500;\n}\n\n.display-name__account {\n font-size: 14px;\n}\n\n.status__relative-time,\n.detailed-status__datetime {\n &:hover {\n text-decoration: underline;\n }\n}\n\n.image-loader {\n position: relative;\n width: 100%;\n height: 100%;\n display: flex;\n align-items: center;\n justify-content: center;\n flex-direction: column;\n\n .image-loader__preview-canvas {\n max-width: $media-modal-media-max-width;\n max-height: $media-modal-media-max-height;\n background: url('~images/void.png') repeat;\n object-fit: contain;\n }\n\n .loading-bar {\n position: relative;\n }\n\n &.image-loader--amorphous .image-loader__preview-canvas {\n display: none;\n }\n}\n\n.zoomable-image {\n position: relative;\n width: 100%;\n height: 100%;\n display: flex;\n align-items: center;\n justify-content: center;\n\n img {\n max-width: $media-modal-media-max-width;\n max-height: $media-modal-media-max-height;\n width: auto;\n height: auto;\n object-fit: contain;\n }\n}\n\n.navigation-bar {\n padding: 10px;\n display: flex;\n align-items: center;\n flex-shrink: 0;\n cursor: default;\n color: $darker-text-color;\n\n strong {\n color: $secondary-text-color;\n }\n\n a {\n color: inherit;\n }\n\n .permalink {\n text-decoration: none;\n }\n\n .navigation-bar__actions {\n position: relative;\n\n .icon-button.close {\n position: absolute;\n pointer-events: none;\n transform: scale(0, 1) translate(-100%, 0);\n opacity: 0;\n }\n\n .compose__action-bar .icon-button {\n pointer-events: auto;\n transform: scale(1, 1) translate(0, 0);\n opacity: 1;\n }\n }\n}\n\n.navigation-bar__profile {\n flex: 1 1 auto;\n margin-left: 8px;\n line-height: 20px;\n margin-top: -1px;\n overflow: hidden;\n}\n\n.navigation-bar__profile-account {\n display: block;\n font-weight: 500;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n.navigation-bar__profile-edit {\n color: inherit;\n text-decoration: none;\n}\n\n.dropdown {\n display: inline-block;\n}\n\n.dropdown__content {\n display: none;\n position: absolute;\n}\n\n.dropdown-menu__separator {\n border-bottom: 1px solid darken($ui-secondary-color, 8%);\n margin: 5px 7px 6px;\n height: 0;\n}\n\n.dropdown-menu {\n background: $ui-secondary-color;\n padding: 4px 0;\n border-radius: 4px;\n box-shadow: 2px 4px 15px rgba($base-shadow-color, 0.4);\n z-index: 9999;\n\n ul {\n list-style: none;\n }\n\n &.left {\n transform-origin: 100% 50%;\n }\n\n &.top {\n transform-origin: 50% 100%;\n }\n\n &.bottom {\n transform-origin: 50% 0;\n }\n\n &.right {\n transform-origin: 0 50%;\n }\n}\n\n.dropdown-menu__arrow {\n position: absolute;\n width: 0;\n height: 0;\n border: 0 solid transparent;\n\n &.left {\n right: -5px;\n margin-top: -5px;\n border-width: 5px 0 5px 5px;\n border-left-color: $ui-secondary-color;\n }\n\n &.top {\n bottom: -5px;\n margin-left: -7px;\n border-width: 5px 7px 0;\n border-top-color: $ui-secondary-color;\n }\n\n &.bottom {\n top: -5px;\n margin-left: -7px;\n border-width: 0 7px 5px;\n border-bottom-color: $ui-secondary-color;\n }\n\n &.right {\n left: -5px;\n margin-top: -5px;\n border-width: 5px 5px 5px 0;\n border-right-color: $ui-secondary-color;\n }\n}\n\n.dropdown-menu__item {\n a {\n font-size: 13px;\n line-height: 18px;\n display: block;\n padding: 4px 14px;\n box-sizing: border-box;\n text-decoration: none;\n background: $ui-secondary-color;\n color: $inverted-text-color;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n\n &:focus,\n &:hover,\n &:active {\n background: $ui-highlight-color;\n color: $secondary-text-color;\n outline: 0;\n }\n }\n}\n\n.dropdown--active .dropdown__content {\n display: block;\n line-height: 18px;\n max-width: 311px;\n right: 0;\n text-align: left;\n z-index: 9999;\n\n & > ul {\n list-style: none;\n background: $ui-secondary-color;\n padding: 4px 0;\n border-radius: 4px;\n box-shadow: 0 0 15px rgba($base-shadow-color, 0.4);\n min-width: 140px;\n position: relative;\n }\n\n &.dropdown__right {\n right: 0;\n }\n\n &.dropdown__left {\n & > ul {\n left: -98px;\n }\n }\n\n & > ul > li > a {\n font-size: 13px;\n line-height: 18px;\n display: block;\n padding: 4px 14px;\n box-sizing: border-box;\n text-decoration: none;\n background: $ui-secondary-color;\n color: $inverted-text-color;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n\n &:focus {\n outline: 0;\n }\n\n &:hover {\n background: $ui-highlight-color;\n color: $secondary-text-color;\n }\n }\n}\n\n.dropdown__icon {\n vertical-align: middle;\n}\n\n.columns-area {\n display: flex;\n flex: 1 1 auto;\n flex-direction: row;\n justify-content: flex-start;\n overflow-x: auto;\n position: relative;\n\n &.unscrollable {\n overflow-x: hidden;\n }\n\n &__panels {\n display: flex;\n justify-content: center;\n width: 100%;\n height: 100%;\n min-height: 100vh;\n\n &__pane {\n height: 100%;\n overflow: hidden;\n pointer-events: none;\n display: flex;\n justify-content: flex-end;\n min-width: 285px;\n\n &--start {\n justify-content: flex-start;\n }\n\n &__inner {\n position: fixed;\n width: 285px;\n pointer-events: auto;\n height: 100%;\n }\n }\n\n &__main {\n box-sizing: border-box;\n width: 100%;\n max-width: 600px;\n flex: 0 0 auto;\n display: flex;\n flex-direction: column;\n\n @media screen and (min-width: $no-gap-breakpoint) {\n padding: 0 10px;\n }\n }\n }\n}\n\n.tabs-bar__wrapper {\n background: darken($ui-base-color, 8%);\n position: sticky;\n top: 0;\n z-index: 2;\n padding-top: 0;\n\n @media screen and (min-width: $no-gap-breakpoint) {\n padding-top: 10px;\n }\n\n .tabs-bar {\n margin-bottom: 0;\n\n @media screen and (min-width: $no-gap-breakpoint) {\n margin-bottom: 10px;\n }\n }\n}\n\n.react-swipeable-view-container {\n &,\n .columns-area,\n .drawer,\n .column {\n height: 100%;\n }\n}\n\n.react-swipeable-view-container > * {\n display: flex;\n align-items: center;\n justify-content: center;\n height: 100%;\n}\n\n.column {\n width: 350px;\n position: relative;\n box-sizing: border-box;\n display: flex;\n flex-direction: column;\n\n > .scrollable {\n background: $ui-base-color;\n border-bottom-left-radius: 2px;\n border-bottom-right-radius: 2px;\n }\n}\n\n.ui {\n flex: 0 0 auto;\n display: flex;\n flex-direction: column;\n width: 100%;\n height: 100%;\n}\n\n.drawer {\n width: 330px;\n box-sizing: border-box;\n display: flex;\n flex-direction: column;\n overflow-y: hidden;\n}\n\n.drawer__tab {\n display: block;\n flex: 1 1 auto;\n padding: 15px 5px 13px;\n color: $darker-text-color;\n text-decoration: none;\n text-align: center;\n font-size: 16px;\n border-bottom: 2px solid transparent;\n}\n\n.column,\n.drawer {\n flex: 1 1 auto;\n overflow: hidden;\n}\n\n@media screen and (min-width: 631px) {\n .columns-area {\n padding: 0;\n }\n\n .column,\n .drawer {\n flex: 0 0 auto;\n padding: 10px;\n padding-left: 5px;\n padding-right: 5px;\n\n &:first-child {\n padding-left: 10px;\n }\n\n &:last-child {\n padding-right: 10px;\n }\n }\n\n .columns-area > div {\n .column,\n .drawer {\n padding-left: 5px;\n padding-right: 5px;\n }\n }\n}\n\n.tabs-bar {\n box-sizing: border-box;\n display: flex;\n background: lighten($ui-base-color, 8%);\n flex: 0 0 auto;\n overflow-y: auto;\n}\n\n.tabs-bar__link {\n display: block;\n flex: 1 1 auto;\n padding: 15px 10px;\n padding-bottom: 13px;\n color: $primary-text-color;\n text-decoration: none;\n text-align: center;\n font-size: 14px;\n font-weight: 500;\n border-bottom: 2px solid lighten($ui-base-color, 8%);\n transition: all 50ms linear;\n transition-property: border-bottom, background, color;\n\n .fa {\n font-weight: 400;\n font-size: 16px;\n }\n\n &:hover,\n &:focus,\n &:active {\n @media screen and (min-width: 631px) {\n background: lighten($ui-base-color, 14%);\n border-bottom-color: lighten($ui-base-color, 14%);\n }\n }\n\n &.active {\n border-bottom: 2px solid $highlight-text-color;\n color: $highlight-text-color;\n }\n\n span {\n margin-left: 5px;\n display: none;\n }\n}\n\n@media screen and (min-width: 600px) {\n .tabs-bar__link {\n span {\n display: inline;\n }\n }\n}\n\n.columns-area--mobile {\n flex-direction: column;\n width: 100%;\n height: 100%;\n margin: 0 auto;\n\n .column,\n .drawer {\n width: 100%;\n height: 100%;\n padding: 0;\n }\n\n .directory__list {\n display: grid;\n grid-gap: 10px;\n grid-template-columns: minmax(0, 50%) minmax(0, 50%);\n\n @media screen and (max-width: $no-gap-breakpoint) {\n display: block;\n }\n }\n\n .directory__card {\n margin-bottom: 0;\n }\n\n .filter-form {\n display: flex;\n }\n\n .autosuggest-textarea__textarea {\n font-size: 16px;\n }\n\n .search__input {\n line-height: 18px;\n font-size: 16px;\n padding: 15px;\n padding-right: 30px;\n }\n\n .search__icon .fa {\n top: 15px;\n }\n\n .scrollable {\n overflow: visible;\n\n @supports(display: grid) {\n contain: content;\n }\n }\n\n @media screen and (min-width: $no-gap-breakpoint) {\n padding: 10px 0;\n padding-top: 0;\n }\n\n @media screen and (min-width: 630px) {\n .detailed-status {\n padding: 15px;\n\n .media-gallery,\n .video-player,\n .audio-player {\n margin-top: 15px;\n }\n }\n\n .account__header__bar {\n padding: 5px 10px;\n }\n\n .navigation-bar,\n .compose-form {\n padding: 15px;\n }\n\n .compose-form .compose-form__publish .compose-form__publish-button-wrapper {\n padding-top: 15px;\n }\n\n .status {\n padding: 15px 15px 15px (48px + 15px * 2);\n min-height: 48px + 2px;\n\n &__avatar {\n left: 15px;\n top: 17px;\n }\n\n &__content {\n padding-top: 5px;\n }\n\n &__prepend {\n margin-left: 48px + 15px * 2;\n padding-top: 15px;\n }\n\n &__prepend-icon-wrapper {\n left: -32px;\n }\n\n .media-gallery,\n &__action-bar,\n .video-player,\n .audio-player {\n margin-top: 10px;\n }\n }\n\n .account {\n padding: 15px 10px;\n\n &__header__bio {\n margin: 0 -10px;\n }\n }\n\n .notification {\n &__message {\n margin-left: 48px + 15px * 2;\n padding-top: 15px;\n }\n\n &__favourite-icon-wrapper {\n left: -32px;\n }\n\n .status {\n padding-top: 8px;\n }\n\n .account {\n padding-top: 8px;\n }\n\n .account__avatar-wrapper {\n margin-left: 17px;\n margin-right: 15px;\n }\n }\n }\n}\n\n.floating-action-button {\n position: fixed;\n display: flex;\n justify-content: center;\n align-items: center;\n width: 3.9375rem;\n height: 3.9375rem;\n bottom: 1.3125rem;\n right: 1.3125rem;\n background: darken($ui-highlight-color, 3%);\n color: $white;\n border-radius: 50%;\n font-size: 21px;\n line-height: 21px;\n text-decoration: none;\n box-shadow: 2px 3px 9px rgba($base-shadow-color, 0.4);\n\n &:hover,\n &:focus,\n &:active {\n background: lighten($ui-highlight-color, 7%);\n }\n}\n\n@media screen and (min-width: $no-gap-breakpoint) {\n .tabs-bar {\n width: 100%;\n }\n\n .react-swipeable-view-container .columns-area--mobile {\n height: calc(100% - 10px) !important;\n }\n\n .getting-started__wrapper,\n .getting-started__trends,\n .search {\n margin-bottom: 10px;\n }\n\n .getting-started__panel {\n margin: 10px 0;\n }\n\n .column,\n .drawer {\n min-width: 330px;\n }\n}\n\n@media screen and (max-width: 600px + (285px * 1) + (10px * 1)) {\n .columns-area__panels__pane--compositional {\n display: none;\n }\n}\n\n@media screen and (min-width: 600px + (285px * 1) + (10px * 1)) {\n .floating-action-button,\n .tabs-bar__link.optional {\n display: none;\n }\n\n .search-page .search {\n display: none;\n }\n}\n\n@media screen and (max-width: 600px + (285px * 2) + (10px * 2)) {\n .columns-area__panels__pane--navigational {\n display: none;\n }\n}\n\n@media screen and (min-width: 600px + (285px * 2) + (10px * 2)) {\n .tabs-bar {\n display: none;\n }\n}\n\n.icon-with-badge {\n position: relative;\n\n &__badge {\n position: absolute;\n left: 9px;\n top: -13px;\n background: $ui-highlight-color;\n border: 2px solid lighten($ui-base-color, 8%);\n padding: 1px 6px;\n border-radius: 6px;\n font-size: 10px;\n font-weight: 500;\n line-height: 14px;\n color: $primary-text-color;\n }\n}\n\n.column-link--transparent .icon-with-badge__badge {\n border-color: darken($ui-base-color, 8%);\n}\n\n.compose-panel {\n width: 285px;\n margin-top: 10px;\n display: flex;\n flex-direction: column;\n height: calc(100% - 10px);\n overflow-y: hidden;\n\n .navigation-bar {\n padding-top: 20px;\n padding-bottom: 20px;\n flex: 0 1 48px;\n min-height: 20px;\n }\n\n .flex-spacer {\n background: transparent;\n }\n\n .compose-form {\n flex: 1;\n overflow-y: hidden;\n display: flex;\n flex-direction: column;\n min-height: 310px;\n padding-bottom: 71px;\n margin-bottom: -71px;\n }\n\n .compose-form__autosuggest-wrapper {\n overflow-y: auto;\n background-color: $white;\n border-radius: 4px 4px 0 0;\n flex: 0 1 auto;\n }\n\n .autosuggest-textarea__textarea {\n overflow-y: hidden;\n }\n\n .compose-form__upload-thumbnail {\n height: 80px;\n }\n}\n\n.navigation-panel {\n margin-top: 10px;\n margin-bottom: 10px;\n height: calc(100% - 20px);\n overflow-y: auto;\n display: flex;\n flex-direction: column;\n\n & > a {\n flex: 0 0 auto;\n }\n\n hr {\n flex: 0 0 auto;\n border: 0;\n background: transparent;\n border-top: 1px solid lighten($ui-base-color, 4%);\n margin: 10px 0;\n }\n\n .flex-spacer {\n background: transparent;\n }\n}\n\n.drawer__pager {\n box-sizing: border-box;\n padding: 0;\n flex-grow: 1;\n position: relative;\n overflow: hidden;\n display: flex;\n}\n\n.drawer__inner {\n position: absolute;\n top: 0;\n left: 0;\n background: lighten($ui-base-color, 13%);\n box-sizing: border-box;\n padding: 0;\n display: flex;\n flex-direction: column;\n overflow: hidden;\n overflow-y: auto;\n width: 100%;\n height: 100%;\n border-radius: 2px;\n\n &.darker {\n background: $ui-base-color;\n }\n}\n\n.drawer__inner__mastodon {\n background: lighten($ui-base-color, 13%) url('data:image/svg+xml;utf8,') no-repeat bottom / 100% auto;\n flex: 1;\n min-height: 47px;\n display: none;\n\n > img {\n display: block;\n object-fit: contain;\n object-position: bottom left;\n width: 85%;\n height: 100%;\n pointer-events: none;\n user-drag: none;\n user-select: none;\n }\n\n @media screen and (min-height: 640px) {\n display: block;\n }\n}\n\n.pseudo-drawer {\n background: lighten($ui-base-color, 13%);\n font-size: 13px;\n text-align: left;\n}\n\n.drawer__header {\n flex: 0 0 auto;\n font-size: 16px;\n background: lighten($ui-base-color, 8%);\n margin-bottom: 10px;\n display: flex;\n flex-direction: row;\n border-radius: 2px;\n\n a {\n transition: background 100ms ease-in;\n\n &:hover {\n background: lighten($ui-base-color, 3%);\n transition: background 200ms ease-out;\n }\n }\n}\n\n.scrollable {\n overflow-y: scroll;\n overflow-x: hidden;\n flex: 1 1 auto;\n -webkit-overflow-scrolling: touch;\n\n &.optionally-scrollable {\n overflow-y: auto;\n }\n\n @supports(display: grid) { // hack to fix Chrome <57\n contain: strict;\n }\n\n &--flex {\n display: flex;\n flex-direction: column;\n }\n\n &__append {\n flex: 1 1 auto;\n position: relative;\n min-height: 120px;\n }\n}\n\n.scrollable.fullscreen {\n @supports(display: grid) { // hack to fix Chrome <57\n contain: none;\n }\n}\n\n.column-back-button {\n box-sizing: border-box;\n width: 100%;\n background: lighten($ui-base-color, 4%);\n color: $highlight-text-color;\n cursor: pointer;\n flex: 0 0 auto;\n font-size: 16px;\n line-height: inherit;\n border: 0;\n text-align: unset;\n padding: 15px;\n margin: 0;\n z-index: 3;\n outline: 0;\n\n &:hover {\n text-decoration: underline;\n }\n}\n\n.column-header__back-button {\n background: lighten($ui-base-color, 4%);\n border: 0;\n font-family: inherit;\n color: $highlight-text-color;\n cursor: pointer;\n white-space: nowrap;\n font-size: 16px;\n padding: 0 5px 0 0;\n z-index: 3;\n\n &:hover {\n text-decoration: underline;\n }\n\n &:last-child {\n padding: 0 15px 0 0;\n }\n}\n\n.column-back-button__icon {\n display: inline-block;\n margin-right: 5px;\n}\n\n.column-back-button--slim {\n position: relative;\n}\n\n.column-back-button--slim-button {\n cursor: pointer;\n flex: 0 0 auto;\n font-size: 16px;\n padding: 15px;\n position: absolute;\n right: 0;\n top: -48px;\n}\n\n.react-toggle {\n display: inline-block;\n position: relative;\n cursor: pointer;\n background-color: transparent;\n border: 0;\n padding: 0;\n user-select: none;\n -webkit-tap-highlight-color: rgba($base-overlay-background, 0);\n -webkit-tap-highlight-color: transparent;\n}\n\n.react-toggle-screenreader-only {\n border: 0;\n clip: rect(0 0 0 0);\n height: 1px;\n margin: -1px;\n overflow: hidden;\n padding: 0;\n position: absolute;\n width: 1px;\n}\n\n.react-toggle--disabled {\n cursor: not-allowed;\n opacity: 0.5;\n transition: opacity 0.25s;\n}\n\n.react-toggle-track {\n width: 50px;\n height: 24px;\n padding: 0;\n border-radius: 30px;\n background-color: $ui-base-color;\n transition: background-color 0.2s ease;\n}\n\n.react-toggle:hover:not(.react-toggle--disabled) .react-toggle-track {\n background-color: darken($ui-base-color, 10%);\n}\n\n.react-toggle--checked .react-toggle-track {\n background-color: $ui-highlight-color;\n}\n\n.react-toggle--checked:hover:not(.react-toggle--disabled) .react-toggle-track {\n background-color: lighten($ui-highlight-color, 10%);\n}\n\n.react-toggle-track-check {\n position: absolute;\n width: 14px;\n height: 10px;\n top: 0;\n bottom: 0;\n margin-top: auto;\n margin-bottom: auto;\n line-height: 0;\n left: 8px;\n opacity: 0;\n transition: opacity 0.25s ease;\n}\n\n.react-toggle--checked .react-toggle-track-check {\n opacity: 1;\n transition: opacity 0.25s ease;\n}\n\n.react-toggle-track-x {\n position: absolute;\n width: 10px;\n height: 10px;\n top: 0;\n bottom: 0;\n margin-top: auto;\n margin-bottom: auto;\n line-height: 0;\n right: 10px;\n opacity: 1;\n transition: opacity 0.25s ease;\n}\n\n.react-toggle--checked .react-toggle-track-x {\n opacity: 0;\n}\n\n.react-toggle-thumb {\n position: absolute;\n top: 1px;\n left: 1px;\n width: 22px;\n height: 22px;\n border: 1px solid $ui-base-color;\n border-radius: 50%;\n background-color: darken($simple-background-color, 2%);\n box-sizing: border-box;\n transition: all 0.25s ease;\n transition-property: border-color, left;\n}\n\n.react-toggle--checked .react-toggle-thumb {\n left: 27px;\n border-color: $ui-highlight-color;\n}\n\n.column-link {\n background: lighten($ui-base-color, 8%);\n color: $primary-text-color;\n display: block;\n font-size: 16px;\n padding: 15px;\n text-decoration: none;\n\n &:hover,\n &:focus,\n &:active {\n background: lighten($ui-base-color, 11%);\n }\n\n &:focus {\n outline: 0;\n }\n\n &--transparent {\n background: transparent;\n color: $ui-secondary-color;\n\n &:hover,\n &:focus,\n &:active {\n background: transparent;\n color: $primary-text-color;\n }\n\n &.active {\n color: $ui-highlight-color;\n }\n }\n}\n\n.column-link__icon {\n display: inline-block;\n margin-right: 5px;\n}\n\n.column-link__badge {\n display: inline-block;\n border-radius: 4px;\n font-size: 12px;\n line-height: 19px;\n font-weight: 500;\n background: $ui-base-color;\n padding: 4px 8px;\n margin: -6px 10px;\n}\n\n.column-subheading {\n background: $ui-base-color;\n color: $dark-text-color;\n padding: 8px 20px;\n font-size: 12px;\n font-weight: 500;\n text-transform: uppercase;\n cursor: default;\n}\n\n.getting-started__wrapper,\n.getting-started,\n.flex-spacer {\n background: $ui-base-color;\n}\n\n.flex-spacer {\n flex: 1 1 auto;\n}\n\n.getting-started {\n color: $dark-text-color;\n overflow: auto;\n border-bottom-left-radius: 2px;\n border-bottom-right-radius: 2px;\n\n &__wrapper,\n &__panel,\n &__footer {\n height: min-content;\n }\n\n &__panel,\n &__footer\n {\n padding: 10px;\n padding-top: 20px;\n flex-grow: 0;\n\n ul {\n margin-bottom: 10px;\n }\n\n ul li {\n display: inline;\n }\n\n p {\n font-size: 13px;\n\n a {\n color: $dark-text-color;\n text-decoration: underline;\n }\n }\n\n a {\n text-decoration: none;\n color: $darker-text-color;\n\n &:hover,\n &:focus,\n &:active {\n text-decoration: underline;\n }\n }\n }\n\n &__wrapper,\n &__footer\n {\n color: $dark-text-color;\n }\n\n &__trends {\n flex: 0 1 auto;\n opacity: 1;\n animation: fade 150ms linear;\n margin-top: 10px;\n\n h4 {\n font-size: 12px;\n text-transform: uppercase;\n color: $darker-text-color;\n padding: 10px;\n font-weight: 500;\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n }\n\n @media screen and (max-height: 810px) {\n .trends__item:nth-child(3) {\n display: none;\n }\n }\n\n @media screen and (max-height: 720px) {\n .trends__item:nth-child(2) {\n display: none;\n }\n }\n\n @media screen and (max-height: 670px) {\n display: none;\n }\n\n .trends__item {\n border-bottom: 0;\n padding: 10px;\n\n &__current {\n color: $darker-text-color;\n }\n }\n }\n}\n\n.keyboard-shortcuts {\n padding: 8px 0 0;\n overflow: hidden;\n\n thead {\n position: absolute;\n left: -9999px;\n }\n\n td {\n padding: 0 10px 8px;\n }\n\n kbd {\n display: inline-block;\n padding: 3px 5px;\n background-color: lighten($ui-base-color, 8%);\n border: 1px solid darken($ui-base-color, 4%);\n }\n}\n\n.setting-text {\n display: block;\n box-sizing: border-box;\n width: 100%;\n margin: 0;\n color: $inverted-text-color;\n background: $simple-background-color;\n padding: 10px;\n font-family: inherit;\n font-size: 14px;\n resize: vertical;\n border: 0;\n outline: 0;\n border-radius: 4px;\n\n &:focus {\n outline: 0;\n }\n\n @media screen and (max-width: 600px) {\n font-size: 16px;\n }\n}\n\n.no-reduce-motion button.icon-button i.fa-retweet {\n background-position: 0 0;\n height: 19px;\n transition: background-position 0.9s steps(10);\n transition-duration: 0s;\n vertical-align: middle;\n width: 22px;\n\n &::before {\n display: none !important;\n }\n\n}\n\n.no-reduce-motion button.icon-button.active i.fa-retweet {\n transition-duration: 0.9s;\n background-position: 0 100%;\n}\n\n.reduce-motion button.icon-button i.fa-retweet {\n color: $action-button-color;\n transition: color 100ms ease-in;\n}\n\n.reduce-motion button.icon-button.active i.fa-retweet {\n color: $highlight-text-color;\n}\n\n.status-card {\n display: flex;\n font-size: 14px;\n border: 1px solid lighten($ui-base-color, 8%);\n border-radius: 4px;\n color: $dark-text-color;\n margin-top: 14px;\n text-decoration: none;\n overflow: hidden;\n\n &__actions {\n bottom: 0;\n left: 0;\n position: absolute;\n right: 0;\n top: 0;\n display: flex;\n justify-content: center;\n align-items: center;\n\n & > div {\n background: rgba($base-shadow-color, 0.6);\n border-radius: 8px;\n padding: 12px 9px;\n flex: 0 0 auto;\n display: flex;\n justify-content: center;\n align-items: center;\n }\n\n button,\n a {\n display: inline;\n color: $secondary-text-color;\n background: transparent;\n border: 0;\n padding: 0 8px;\n text-decoration: none;\n font-size: 18px;\n line-height: 18px;\n\n &:hover,\n &:active,\n &:focus {\n color: $primary-text-color;\n }\n }\n\n a {\n font-size: 19px;\n position: relative;\n bottom: -1px;\n }\n }\n}\n\na.status-card {\n cursor: pointer;\n\n &:hover {\n background: lighten($ui-base-color, 8%);\n }\n}\n\n.status-card-photo {\n cursor: zoom-in;\n display: block;\n text-decoration: none;\n width: 100%;\n height: auto;\n margin: 0;\n}\n\n.status-card-video {\n iframe {\n width: 100%;\n height: 100%;\n }\n}\n\n.status-card__title {\n display: block;\n font-weight: 500;\n margin-bottom: 5px;\n color: $darker-text-color;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n text-decoration: none;\n}\n\n.status-card__content {\n flex: 1 1 auto;\n overflow: hidden;\n padding: 14px 14px 14px 8px;\n}\n\n.status-card__description {\n color: $darker-text-color;\n}\n\n.status-card__host {\n display: block;\n margin-top: 5px;\n font-size: 13px;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.status-card__image {\n flex: 0 0 100px;\n background: lighten($ui-base-color, 8%);\n position: relative;\n\n & > .fa {\n font-size: 21px;\n position: absolute;\n transform-origin: 50% 50%;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n }\n}\n\n.status-card.horizontal {\n display: block;\n\n .status-card__image {\n width: 100%;\n }\n\n .status-card__image-image {\n border-radius: 4px 4px 0 0;\n }\n\n .status-card__title {\n white-space: inherit;\n }\n}\n\n.status-card.compact {\n border-color: lighten($ui-base-color, 4%);\n\n &.interactive {\n border: 0;\n }\n\n .status-card__content {\n padding: 8px;\n padding-top: 10px;\n }\n\n .status-card__title {\n white-space: nowrap;\n }\n\n .status-card__image {\n flex: 0 0 60px;\n }\n}\n\na.status-card.compact:hover {\n background-color: lighten($ui-base-color, 4%);\n}\n\n.status-card__image-image {\n border-radius: 4px 0 0 4px;\n display: block;\n margin: 0;\n width: 100%;\n height: 100%;\n object-fit: cover;\n background-size: cover;\n background-position: center center;\n}\n\n.load-more {\n display: block;\n color: $dark-text-color;\n background-color: transparent;\n border: 0;\n font-size: inherit;\n text-align: center;\n line-height: inherit;\n margin: 0;\n padding: 15px;\n box-sizing: border-box;\n width: 100%;\n clear: both;\n text-decoration: none;\n\n &:hover {\n background: lighten($ui-base-color, 2%);\n }\n}\n\n.load-gap {\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n}\n\n.regeneration-indicator {\n text-align: center;\n font-size: 16px;\n font-weight: 500;\n color: $dark-text-color;\n background: $ui-base-color;\n cursor: default;\n display: flex;\n flex: 1 1 auto;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n padding: 20px;\n\n &__figure {\n &,\n img {\n display: block;\n width: auto;\n height: 160px;\n margin: 0;\n }\n }\n\n &--without-header {\n padding-top: 20px + 48px;\n }\n\n &__label {\n margin-top: 30px;\n\n strong {\n display: block;\n margin-bottom: 10px;\n color: $dark-text-color;\n }\n\n span {\n font-size: 15px;\n font-weight: 400;\n }\n }\n}\n\n.column-header__wrapper {\n position: relative;\n flex: 0 0 auto;\n z-index: 1;\n\n &.active {\n box-shadow: 0 1px 0 rgba($highlight-text-color, 0.3);\n\n &::before {\n display: block;\n content: \"\";\n position: absolute;\n bottom: -13px;\n left: 0;\n right: 0;\n margin: 0 auto;\n width: 60%;\n pointer-events: none;\n height: 28px;\n z-index: 1;\n background: radial-gradient(ellipse, rgba($ui-highlight-color, 0.23) 0%, rgba($ui-highlight-color, 0) 60%);\n }\n }\n\n .announcements {\n z-index: 1;\n position: relative;\n }\n}\n\n.column-header {\n display: flex;\n font-size: 16px;\n background: lighten($ui-base-color, 4%);\n flex: 0 0 auto;\n cursor: pointer;\n position: relative;\n z-index: 2;\n outline: 0;\n overflow: hidden;\n border-top-left-radius: 2px;\n border-top-right-radius: 2px;\n\n & > button {\n margin: 0;\n border: 0;\n padding: 15px 0 15px 15px;\n color: inherit;\n background: transparent;\n font: inherit;\n text-align: left;\n text-overflow: ellipsis;\n overflow: hidden;\n white-space: nowrap;\n flex: 1;\n }\n\n & > .column-header__back-button {\n color: $highlight-text-color;\n }\n\n &.active {\n .column-header__icon {\n color: $highlight-text-color;\n text-shadow: 0 0 10px rgba($highlight-text-color, 0.4);\n }\n }\n\n &:focus,\n &:active {\n outline: 0;\n }\n}\n\n.column-header__buttons {\n height: 48px;\n display: flex;\n}\n\n.column-header__links {\n margin-bottom: 14px;\n}\n\n.column-header__links .text-btn {\n margin-right: 10px;\n}\n\n.column-header__button {\n background: lighten($ui-base-color, 4%);\n border: 0;\n color: $darker-text-color;\n cursor: pointer;\n font-size: 16px;\n padding: 0 15px;\n\n &:hover {\n color: lighten($darker-text-color, 7%);\n }\n\n &.active {\n color: $primary-text-color;\n background: lighten($ui-base-color, 8%);\n\n &:hover {\n color: $primary-text-color;\n background: lighten($ui-base-color, 8%);\n }\n }\n}\n\n.column-header__collapsible {\n max-height: 70vh;\n overflow: hidden;\n overflow-y: auto;\n color: $darker-text-color;\n transition: max-height 150ms ease-in-out, opacity 300ms linear;\n opacity: 1;\n z-index: 1;\n position: relative;\n\n &.collapsed {\n max-height: 0;\n opacity: 0.5;\n }\n\n &.animating {\n overflow-y: hidden;\n }\n\n hr {\n height: 0;\n background: transparent;\n border: 0;\n border-top: 1px solid lighten($ui-base-color, 12%);\n margin: 10px 0;\n }\n}\n\n.column-header__collapsible-inner {\n background: lighten($ui-base-color, 8%);\n padding: 15px;\n}\n\n.column-header__setting-btn {\n &:hover {\n color: $darker-text-color;\n text-decoration: underline;\n }\n}\n\n.column-header__setting-arrows {\n float: right;\n\n .column-header__setting-btn {\n padding: 0 10px;\n\n &:last-child {\n padding-right: 0;\n }\n }\n}\n\n.text-btn {\n display: inline-block;\n padding: 0;\n font-family: inherit;\n font-size: inherit;\n color: inherit;\n border: 0;\n background: transparent;\n cursor: pointer;\n}\n\n.column-header__icon {\n display: inline-block;\n margin-right: 5px;\n}\n\n.loading-indicator {\n color: $dark-text-color;\n font-size: 12px;\n font-weight: 400;\n text-transform: uppercase;\n overflow: visible;\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n\n span {\n display: block;\n float: left;\n margin-left: 50%;\n transform: translateX(-50%);\n margin: 82px 0 0 50%;\n white-space: nowrap;\n }\n}\n\n.loading-indicator__figure {\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n width: 42px;\n height: 42px;\n box-sizing: border-box;\n background-color: transparent;\n border: 0 solid lighten($ui-base-color, 26%);\n border-width: 6px;\n border-radius: 50%;\n}\n\n.no-reduce-motion .loading-indicator span {\n animation: loader-label 1.15s infinite cubic-bezier(0.215, 0.61, 0.355, 1);\n}\n\n.no-reduce-motion .loading-indicator__figure {\n animation: loader-figure 1.15s infinite cubic-bezier(0.215, 0.61, 0.355, 1);\n}\n\n@keyframes spring-rotate-in {\n 0% {\n transform: rotate(0deg);\n }\n\n 30% {\n transform: rotate(-484.8deg);\n }\n\n 60% {\n transform: rotate(-316.7deg);\n }\n\n 90% {\n transform: rotate(-375deg);\n }\n\n 100% {\n transform: rotate(-360deg);\n }\n}\n\n@keyframes spring-rotate-out {\n 0% {\n transform: rotate(-360deg);\n }\n\n 30% {\n transform: rotate(124.8deg);\n }\n\n 60% {\n transform: rotate(-43.27deg);\n }\n\n 90% {\n transform: rotate(15deg);\n }\n\n 100% {\n transform: rotate(0deg);\n }\n}\n\n@keyframes loader-figure {\n 0% {\n width: 0;\n height: 0;\n background-color: lighten($ui-base-color, 26%);\n }\n\n 29% {\n background-color: lighten($ui-base-color, 26%);\n }\n\n 30% {\n width: 42px;\n height: 42px;\n background-color: transparent;\n border-width: 21px;\n opacity: 1;\n }\n\n 100% {\n width: 42px;\n height: 42px;\n border-width: 0;\n opacity: 0;\n background-color: transparent;\n }\n}\n\n@keyframes loader-label {\n 0% { opacity: 0.25; }\n 30% { opacity: 1; }\n 100% { opacity: 0.25; }\n}\n\n.video-error-cover {\n align-items: center;\n background: $base-overlay-background;\n color: $primary-text-color;\n cursor: pointer;\n display: flex;\n flex-direction: column;\n height: 100%;\n justify-content: center;\n margin-top: 8px;\n position: relative;\n text-align: center;\n z-index: 100;\n}\n\n.media-spoiler {\n background: $base-overlay-background;\n color: $darker-text-color;\n border: 0;\n padding: 0;\n width: 100%;\n height: 100%;\n border-radius: 4px;\n appearance: none;\n\n &:hover,\n &:active,\n &:focus {\n padding: 0;\n color: lighten($darker-text-color, 8%);\n }\n}\n\n.media-spoiler__warning {\n display: block;\n font-size: 14px;\n}\n\n.media-spoiler__trigger {\n display: block;\n font-size: 11px;\n font-weight: 700;\n}\n\n.spoiler-button {\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n position: absolute;\n z-index: 100;\n\n &--minified {\n display: block;\n left: 4px;\n top: 4px;\n width: auto;\n height: auto;\n }\n\n &--click-thru {\n pointer-events: none;\n }\n\n &--hidden {\n display: none;\n }\n\n &__overlay {\n display: block;\n background: transparent;\n width: 100%;\n height: 100%;\n border: 0;\n\n &__label {\n display: inline-block;\n background: rgba($base-overlay-background, 0.5);\n border-radius: 8px;\n padding: 8px 12px;\n color: $primary-text-color;\n font-weight: 500;\n font-size: 14px;\n }\n\n &:hover,\n &:focus,\n &:active {\n .spoiler-button__overlay__label {\n background: rgba($base-overlay-background, 0.8);\n }\n }\n\n &:disabled {\n .spoiler-button__overlay__label {\n background: rgba($base-overlay-background, 0.5);\n }\n }\n }\n}\n\n.modal-container--preloader {\n background: lighten($ui-base-color, 8%);\n}\n\n.account--panel {\n background: lighten($ui-base-color, 4%);\n border-top: 1px solid lighten($ui-base-color, 8%);\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n display: flex;\n flex-direction: row;\n padding: 10px 0;\n}\n\n.account--panel__button,\n.detailed-status__button {\n flex: 1 1 auto;\n text-align: center;\n}\n\n.column-settings__outer {\n background: lighten($ui-base-color, 8%);\n padding: 15px;\n}\n\n.column-settings__section {\n color: $darker-text-color;\n cursor: default;\n display: block;\n font-weight: 500;\n margin-bottom: 10px;\n}\n\n.column-settings__hashtags {\n .column-settings__row {\n margin-bottom: 15px;\n }\n\n .column-select {\n &__control {\n @include search-input;\n\n &::placeholder {\n color: lighten($darker-text-color, 4%);\n }\n\n &::-moz-focus-inner {\n border: 0;\n }\n\n &::-moz-focus-inner,\n &:focus,\n &:active {\n outline: 0 !important;\n }\n\n &:focus {\n background: lighten($ui-base-color, 4%);\n }\n\n @media screen and (max-width: 600px) {\n font-size: 16px;\n }\n }\n\n &__placeholder {\n color: $dark-text-color;\n padding-left: 2px;\n font-size: 12px;\n }\n\n &__value-container {\n padding-left: 6px;\n }\n\n &__multi-value {\n background: lighten($ui-base-color, 8%);\n\n &__remove {\n cursor: pointer;\n\n &:hover,\n &:active,\n &:focus {\n background: lighten($ui-base-color, 12%);\n color: lighten($darker-text-color, 4%);\n }\n }\n }\n\n &__multi-value__label,\n &__input {\n color: $darker-text-color;\n }\n\n &__clear-indicator,\n &__dropdown-indicator {\n cursor: pointer;\n transition: none;\n color: $dark-text-color;\n\n &:hover,\n &:active,\n &:focus {\n color: lighten($dark-text-color, 4%);\n }\n }\n\n &__indicator-separator {\n background-color: lighten($ui-base-color, 8%);\n }\n\n &__menu {\n @include search-popout;\n padding: 0;\n background: $ui-secondary-color;\n }\n\n &__menu-list {\n padding: 6px;\n }\n\n &__option {\n color: $inverted-text-color;\n border-radius: 4px;\n font-size: 14px;\n\n &--is-focused,\n &--is-selected {\n background: darken($ui-secondary-color, 10%);\n }\n }\n }\n}\n\n.column-settings__row {\n .text-btn {\n margin-bottom: 15px;\n }\n}\n\n.relationship-tag {\n color: $primary-text-color;\n margin-bottom: 4px;\n display: block;\n vertical-align: top;\n background-color: $base-overlay-background;\n text-transform: uppercase;\n font-size: 11px;\n font-weight: 500;\n padding: 4px;\n border-radius: 4px;\n opacity: 0.7;\n\n &:hover {\n opacity: 1;\n }\n}\n\n.setting-toggle {\n display: block;\n line-height: 24px;\n}\n\n.setting-toggle__label {\n color: $darker-text-color;\n display: inline-block;\n margin-bottom: 14px;\n margin-left: 8px;\n vertical-align: middle;\n}\n\n.empty-column-indicator,\n.error-column,\n.follow_requests-unlocked_explanation {\n color: $dark-text-color;\n background: $ui-base-color;\n text-align: center;\n padding: 20px;\n font-size: 15px;\n font-weight: 400;\n cursor: default;\n display: flex;\n flex: 1 1 auto;\n align-items: center;\n justify-content: center;\n\n @supports(display: grid) { // hack to fix Chrome <57\n contain: strict;\n }\n\n & > span {\n max-width: 400px;\n }\n\n a {\n color: $highlight-text-color;\n text-decoration: none;\n\n &:hover {\n text-decoration: underline;\n }\n }\n}\n\n.follow_requests-unlocked_explanation {\n background: darken($ui-base-color, 4%);\n contain: initial;\n}\n\n.error-column {\n flex-direction: column;\n}\n\n@keyframes heartbeat {\n from {\n transform: scale(1);\n animation-timing-function: ease-out;\n }\n\n 10% {\n transform: scale(0.91);\n animation-timing-function: ease-in;\n }\n\n 17% {\n transform: scale(0.98);\n animation-timing-function: ease-out;\n }\n\n 33% {\n transform: scale(0.87);\n animation-timing-function: ease-in;\n }\n\n 45% {\n transform: scale(1);\n animation-timing-function: ease-out;\n }\n}\n\n.no-reduce-motion .pulse-loading {\n transform-origin: center center;\n animation: heartbeat 1.5s ease-in-out infinite both;\n}\n\n@keyframes shake-bottom {\n 0%,\n 100% {\n transform: rotate(0deg);\n transform-origin: 50% 100%;\n }\n\n 10% {\n transform: rotate(2deg);\n }\n\n 20%,\n 40%,\n 60% {\n transform: rotate(-4deg);\n }\n\n 30%,\n 50%,\n 70% {\n transform: rotate(4deg);\n }\n\n 80% {\n transform: rotate(-2deg);\n }\n\n 90% {\n transform: rotate(2deg);\n }\n}\n\n.no-reduce-motion .shake-bottom {\n transform-origin: 50% 100%;\n animation: shake-bottom 0.8s cubic-bezier(0.455, 0.03, 0.515, 0.955) 2s 2 both;\n}\n\n.emoji-picker-dropdown__menu {\n background: $simple-background-color;\n position: absolute;\n box-shadow: 4px 4px 6px rgba($base-shadow-color, 0.4);\n border-radius: 4px;\n margin-top: 5px;\n z-index: 2;\n\n .emoji-mart-scroll {\n transition: opacity 200ms ease;\n }\n\n &.selecting .emoji-mart-scroll {\n opacity: 0.5;\n }\n}\n\n.emoji-picker-dropdown__modifiers {\n position: absolute;\n top: 60px;\n right: 11px;\n cursor: pointer;\n}\n\n.emoji-picker-dropdown__modifiers__menu {\n position: absolute;\n z-index: 4;\n top: -4px;\n left: -8px;\n background: $simple-background-color;\n border-radius: 4px;\n box-shadow: 1px 2px 6px rgba($base-shadow-color, 0.2);\n overflow: hidden;\n\n button {\n display: block;\n cursor: pointer;\n border: 0;\n padding: 4px 8px;\n background: transparent;\n\n &:hover,\n &:focus,\n &:active {\n background: rgba($ui-secondary-color, 0.4);\n }\n }\n\n .emoji-mart-emoji {\n height: 22px;\n }\n}\n\n.emoji-mart-emoji {\n span {\n background-repeat: no-repeat;\n }\n}\n\n.upload-area {\n align-items: center;\n background: rgba($base-overlay-background, 0.8);\n display: flex;\n height: 100%;\n justify-content: center;\n left: 0;\n opacity: 0;\n position: absolute;\n top: 0;\n visibility: hidden;\n width: 100%;\n z-index: 2000;\n\n * {\n pointer-events: none;\n }\n}\n\n.upload-area__drop {\n width: 320px;\n height: 160px;\n display: flex;\n box-sizing: border-box;\n position: relative;\n padding: 8px;\n}\n\n.upload-area__background {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: -1;\n border-radius: 4px;\n background: $ui-base-color;\n box-shadow: 0 0 5px rgba($base-shadow-color, 0.2);\n}\n\n.upload-area__content {\n flex: 1;\n display: flex;\n align-items: center;\n justify-content: center;\n color: $secondary-text-color;\n font-size: 18px;\n font-weight: 500;\n border: 2px dashed $ui-base-lighter-color;\n border-radius: 4px;\n}\n\n.upload-progress {\n padding: 10px;\n color: $lighter-text-color;\n overflow: hidden;\n display: flex;\n\n .fa {\n font-size: 34px;\n margin-right: 10px;\n }\n\n span {\n font-size: 12px;\n text-transform: uppercase;\n font-weight: 500;\n display: block;\n }\n}\n\n.upload-progess__message {\n flex: 1 1 auto;\n}\n\n.upload-progress__backdrop {\n width: 100%;\n height: 6px;\n border-radius: 6px;\n background: $ui-base-lighter-color;\n position: relative;\n margin-top: 5px;\n}\n\n.upload-progress__tracker {\n position: absolute;\n left: 0;\n top: 0;\n height: 6px;\n background: $ui-highlight-color;\n border-radius: 6px;\n}\n\n.emoji-button {\n display: block;\n padding: 5px 5px 2px 2px;\n outline: 0;\n cursor: pointer;\n\n &:active,\n &:focus {\n outline: 0 !important;\n }\n\n img {\n filter: grayscale(100%);\n opacity: 0.8;\n display: block;\n margin: 0;\n width: 22px;\n height: 22px;\n }\n\n &:hover,\n &:active,\n &:focus {\n img {\n opacity: 1;\n filter: none;\n }\n }\n}\n\n.dropdown--active .emoji-button img {\n opacity: 1;\n filter: none;\n}\n\n.privacy-dropdown__dropdown {\n position: absolute;\n background: $simple-background-color;\n box-shadow: 2px 4px 15px rgba($base-shadow-color, 0.4);\n border-radius: 4px;\n margin-left: 40px;\n overflow: hidden;\n\n &.top {\n transform-origin: 50% 100%;\n }\n\n &.bottom {\n transform-origin: 50% 0;\n }\n}\n\n.privacy-dropdown__option {\n color: $inverted-text-color;\n padding: 10px;\n cursor: pointer;\n display: flex;\n\n &:hover,\n &.active {\n background: $ui-highlight-color;\n color: $primary-text-color;\n outline: 0;\n\n .privacy-dropdown__option__content {\n color: $primary-text-color;\n\n strong {\n color: $primary-text-color;\n }\n }\n }\n\n &.active:hover {\n background: lighten($ui-highlight-color, 4%);\n }\n}\n\n.privacy-dropdown__option__icon {\n display: flex;\n align-items: center;\n justify-content: center;\n margin-right: 10px;\n}\n\n.privacy-dropdown__option__content {\n flex: 1 1 auto;\n color: $lighter-text-color;\n\n strong {\n font-weight: 500;\n display: block;\n color: $inverted-text-color;\n\n @each $lang in $cjk-langs {\n &:lang(#{$lang}) {\n font-weight: 700;\n }\n }\n }\n}\n\n.privacy-dropdown.active {\n .privacy-dropdown__value {\n background: $simple-background-color;\n border-radius: 4px 4px 0 0;\n box-shadow: 0 -4px 4px rgba($base-shadow-color, 0.1);\n\n .icon-button {\n transition: none;\n }\n\n &.active {\n background: $ui-highlight-color;\n\n .icon-button {\n color: $primary-text-color;\n }\n }\n }\n\n &.top .privacy-dropdown__value {\n border-radius: 0 0 4px 4px;\n }\n\n .privacy-dropdown__dropdown {\n display: block;\n box-shadow: 2px 4px 6px rgba($base-shadow-color, 0.1);\n }\n}\n\n.search {\n position: relative;\n}\n\n.search__input {\n @include search-input;\n\n display: block;\n padding: 15px;\n padding-right: 30px;\n line-height: 18px;\n font-size: 16px;\n\n &::placeholder {\n color: lighten($darker-text-color, 4%);\n }\n\n &::-moz-focus-inner {\n border: 0;\n }\n\n &::-moz-focus-inner,\n &:focus,\n &:active {\n outline: 0 !important;\n }\n\n &:focus {\n background: lighten($ui-base-color, 4%);\n }\n\n @media screen and (max-width: 600px) {\n font-size: 16px;\n }\n}\n\n.search__icon {\n &::-moz-focus-inner {\n border: 0;\n }\n\n &::-moz-focus-inner,\n &:focus {\n outline: 0 !important;\n }\n\n .fa {\n position: absolute;\n top: 16px;\n right: 10px;\n z-index: 2;\n display: inline-block;\n opacity: 0;\n transition: all 100ms linear;\n transition-property: transform, opacity;\n font-size: 18px;\n width: 18px;\n height: 18px;\n color: $secondary-text-color;\n cursor: default;\n pointer-events: none;\n\n &.active {\n pointer-events: auto;\n opacity: 0.3;\n }\n }\n\n .fa-search {\n transform: rotate(90deg);\n\n &.active {\n pointer-events: none;\n transform: rotate(0deg);\n }\n }\n\n .fa-times-circle {\n top: 17px;\n transform: rotate(0deg);\n color: $action-button-color;\n cursor: pointer;\n\n &.active {\n transform: rotate(90deg);\n }\n\n &:hover {\n color: lighten($action-button-color, 7%);\n }\n }\n}\n\n.search-results__header {\n color: $dark-text-color;\n background: lighten($ui-base-color, 2%);\n padding: 15px;\n font-weight: 500;\n font-size: 16px;\n cursor: default;\n\n .fa {\n display: inline-block;\n margin-right: 5px;\n }\n}\n\n.search-results__section {\n margin-bottom: 5px;\n\n h5 {\n background: darken($ui-base-color, 4%);\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n cursor: default;\n display: flex;\n padding: 15px;\n font-weight: 500;\n font-size: 16px;\n color: $dark-text-color;\n\n .fa {\n display: inline-block;\n margin-right: 5px;\n }\n }\n\n .account:last-child,\n & > div:last-child .status {\n border-bottom: 0;\n }\n}\n\n.search-results__hashtag {\n display: block;\n padding: 10px;\n color: $secondary-text-color;\n text-decoration: none;\n\n &:hover,\n &:active,\n &:focus {\n color: lighten($secondary-text-color, 4%);\n text-decoration: underline;\n }\n}\n\n.search-results__info {\n padding: 20px;\n color: $darker-text-color;\n text-align: center;\n}\n\n.modal-root {\n position: relative;\n transition: opacity 0.3s linear;\n will-change: opacity;\n z-index: 9999;\n}\n\n.modal-root__overlay {\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background: rgba($base-overlay-background, 0.7);\n}\n\n.modal-root__container {\n position: fixed;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n align-content: space-around;\n z-index: 9999;\n pointer-events: none;\n user-select: none;\n}\n\n.modal-root__modal {\n pointer-events: auto;\n display: flex;\n z-index: 9999;\n}\n\n.video-modal__container {\n max-width: 100vw;\n max-height: 100vh;\n}\n\n.audio-modal__container {\n width: 50vw;\n}\n\n.media-modal {\n width: 100%;\n height: 100%;\n position: relative;\n\n .extended-video-player {\n width: 100%;\n height: 100%;\n display: flex;\n align-items: center;\n justify-content: center;\n\n video {\n max-width: $media-modal-media-max-width;\n max-height: $media-modal-media-max-height;\n }\n }\n}\n\n.media-modal__closer {\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n}\n\n.media-modal__navigation {\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n pointer-events: none;\n transition: opacity 0.3s linear;\n will-change: opacity;\n\n * {\n pointer-events: auto;\n }\n\n &.media-modal__navigation--hidden {\n opacity: 0;\n\n * {\n pointer-events: none;\n }\n }\n}\n\n.media-modal__nav {\n background: rgba($base-overlay-background, 0.5);\n box-sizing: border-box;\n border: 0;\n color: $primary-text-color;\n cursor: pointer;\n display: flex;\n align-items: center;\n font-size: 24px;\n height: 20vmax;\n margin: auto 0;\n padding: 30px 15px;\n position: absolute;\n top: 0;\n bottom: 0;\n}\n\n.media-modal__nav--left {\n left: 0;\n}\n\n.media-modal__nav--right {\n right: 0;\n}\n\n.media-modal__pagination {\n width: 100%;\n text-align: center;\n position: absolute;\n left: 0;\n bottom: 20px;\n pointer-events: none;\n}\n\n.media-modal__meta {\n text-align: center;\n position: absolute;\n left: 0;\n bottom: 20px;\n width: 100%;\n pointer-events: none;\n\n &--shifted {\n bottom: 62px;\n }\n\n a {\n pointer-events: auto;\n text-decoration: none;\n font-weight: 500;\n color: $ui-secondary-color;\n\n &:hover,\n &:focus,\n &:active {\n text-decoration: underline;\n }\n }\n}\n\n.media-modal__page-dot {\n display: inline-block;\n}\n\n.media-modal__button {\n background-color: $primary-text-color;\n height: 12px;\n width: 12px;\n border-radius: 6px;\n margin: 10px;\n padding: 0;\n border: 0;\n font-size: 0;\n}\n\n.media-modal__button--active {\n background-color: $highlight-text-color;\n}\n\n.media-modal__close {\n position: absolute;\n right: 8px;\n top: 8px;\n z-index: 100;\n}\n\n.onboarding-modal,\n.error-modal,\n.embed-modal {\n background: $ui-secondary-color;\n color: $inverted-text-color;\n border-radius: 8px;\n overflow: hidden;\n display: flex;\n flex-direction: column;\n}\n\n.error-modal__body {\n height: 80vh;\n width: 80vw;\n max-width: 520px;\n max-height: 420px;\n position: relative;\n\n & > div {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n box-sizing: border-box;\n padding: 25px;\n display: none;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n display: flex;\n opacity: 0;\n user-select: text;\n }\n}\n\n.error-modal__body {\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n text-align: center;\n}\n\n.onboarding-modal__paginator,\n.error-modal__footer {\n flex: 0 0 auto;\n background: darken($ui-secondary-color, 8%);\n display: flex;\n padding: 25px;\n\n & > div {\n min-width: 33px;\n }\n\n .onboarding-modal__nav,\n .error-modal__nav {\n color: $lighter-text-color;\n border: 0;\n font-size: 14px;\n font-weight: 500;\n padding: 10px 25px;\n line-height: inherit;\n height: auto;\n margin: -10px;\n border-radius: 4px;\n background-color: transparent;\n\n &:hover,\n &:focus,\n &:active {\n color: darken($lighter-text-color, 4%);\n background-color: darken($ui-secondary-color, 16%);\n }\n\n &.onboarding-modal__done,\n &.onboarding-modal__next {\n color: $inverted-text-color;\n\n &:hover,\n &:focus,\n &:active {\n color: lighten($inverted-text-color, 4%);\n }\n }\n }\n}\n\n.error-modal__footer {\n justify-content: center;\n}\n\n.display-case {\n text-align: center;\n font-size: 15px;\n margin-bottom: 15px;\n\n &__label {\n font-weight: 500;\n color: $inverted-text-color;\n margin-bottom: 5px;\n text-transform: uppercase;\n font-size: 12px;\n }\n\n &__case {\n background: $ui-base-color;\n color: $secondary-text-color;\n font-weight: 500;\n padding: 10px;\n border-radius: 4px;\n }\n}\n\n.onboard-sliders {\n display: inline-block;\n max-width: 30px;\n max-height: auto;\n margin-left: 10px;\n}\n\n.boost-modal,\n.confirmation-modal,\n.report-modal,\n.actions-modal,\n.mute-modal,\n.block-modal {\n background: lighten($ui-secondary-color, 8%);\n color: $inverted-text-color;\n border-radius: 8px;\n overflow: hidden;\n max-width: 90vw;\n width: 480px;\n position: relative;\n flex-direction: column;\n\n .status__display-name {\n display: block;\n max-width: 100%;\n padding-right: 25px;\n }\n\n .status__avatar {\n height: 28px;\n left: 10px;\n position: absolute;\n top: 10px;\n width: 48px;\n }\n\n .status__content__spoiler-link {\n color: lighten($secondary-text-color, 8%);\n }\n}\n\n.actions-modal {\n .status {\n background: $white;\n border-bottom-color: $ui-secondary-color;\n padding-top: 10px;\n padding-bottom: 10px;\n }\n\n .dropdown-menu__separator {\n border-bottom-color: $ui-secondary-color;\n }\n}\n\n.boost-modal__container {\n overflow-x: scroll;\n padding: 10px;\n\n .status {\n user-select: text;\n border-bottom: 0;\n }\n}\n\n.boost-modal__action-bar,\n.confirmation-modal__action-bar,\n.mute-modal__action-bar,\n.block-modal__action-bar {\n display: flex;\n justify-content: space-between;\n background: $ui-secondary-color;\n padding: 10px;\n line-height: 36px;\n\n & > div {\n flex: 1 1 auto;\n text-align: right;\n color: $lighter-text-color;\n padding-right: 10px;\n }\n\n .button {\n flex: 0 0 auto;\n }\n}\n\n.boost-modal__status-header {\n font-size: 15px;\n}\n\n.boost-modal__status-time {\n float: right;\n font-size: 14px;\n}\n\n.mute-modal,\n.block-modal {\n line-height: 24px;\n}\n\n.mute-modal .react-toggle,\n.block-modal .react-toggle {\n vertical-align: middle;\n}\n\n.report-modal {\n width: 90vw;\n max-width: 700px;\n}\n\n.report-modal__container {\n display: flex;\n border-top: 1px solid $ui-secondary-color;\n\n @media screen and (max-width: 480px) {\n flex-wrap: wrap;\n overflow-y: auto;\n }\n}\n\n.report-modal__statuses,\n.report-modal__comment {\n box-sizing: border-box;\n width: 50%;\n\n @media screen and (max-width: 480px) {\n width: 100%;\n }\n}\n\n.report-modal__statuses,\n.focal-point-modal__content {\n flex: 1 1 auto;\n min-height: 20vh;\n max-height: 80vh;\n overflow-y: auto;\n overflow-x: hidden;\n\n .status__content a {\n color: $highlight-text-color;\n }\n\n .status__content,\n .status__content p {\n color: $inverted-text-color;\n }\n\n @media screen and (max-width: 480px) {\n max-height: 10vh;\n }\n}\n\n.focal-point-modal__content {\n @media screen and (max-width: 480px) {\n max-height: 40vh;\n }\n}\n\n.report-modal__comment {\n padding: 20px;\n border-right: 1px solid $ui-secondary-color;\n max-width: 320px;\n\n p {\n font-size: 14px;\n line-height: 20px;\n margin-bottom: 20px;\n }\n\n .setting-text {\n display: block;\n box-sizing: border-box;\n width: 100%;\n margin: 0;\n color: $inverted-text-color;\n background: $white;\n padding: 10px;\n font-family: inherit;\n font-size: 14px;\n resize: none;\n border: 0;\n outline: 0;\n border-radius: 4px;\n border: 1px solid $ui-secondary-color;\n min-height: 100px;\n max-height: 50vh;\n margin-bottom: 10px;\n\n &:focus {\n border: 1px solid darken($ui-secondary-color, 8%);\n }\n\n &__wrapper {\n background: $white;\n border: 1px solid $ui-secondary-color;\n margin-bottom: 10px;\n border-radius: 4px;\n\n .setting-text {\n border: 0;\n margin-bottom: 0;\n border-radius: 0;\n\n &:focus {\n border: 0;\n }\n }\n\n &__modifiers {\n color: $inverted-text-color;\n font-family: inherit;\n font-size: 14px;\n background: $white;\n }\n }\n\n &__toolbar {\n display: flex;\n justify-content: space-between;\n margin-bottom: 20px;\n }\n }\n\n .setting-text-label {\n display: block;\n color: $inverted-text-color;\n font-size: 14px;\n font-weight: 500;\n margin-bottom: 10px;\n }\n\n .setting-toggle {\n margin-top: 20px;\n margin-bottom: 24px;\n\n &__label {\n color: $inverted-text-color;\n font-size: 14px;\n }\n }\n\n @media screen and (max-width: 480px) {\n padding: 10px;\n max-width: 100%;\n order: 2;\n\n .setting-toggle {\n margin-bottom: 4px;\n }\n }\n}\n\n.actions-modal {\n max-height: 80vh;\n max-width: 80vw;\n\n .status {\n overflow-y: auto;\n max-height: 300px;\n }\n\n .actions-modal__item-label {\n font-weight: 500;\n }\n\n ul {\n overflow-y: auto;\n flex-shrink: 0;\n max-height: 80vh;\n\n &.with-status {\n max-height: calc(80vh - 75px);\n }\n\n li:empty {\n margin: 0;\n }\n\n li:not(:empty) {\n a {\n color: $inverted-text-color;\n display: flex;\n padding: 12px 16px;\n font-size: 15px;\n align-items: center;\n text-decoration: none;\n\n &,\n button {\n transition: none;\n }\n\n &.active,\n &:hover,\n &:active,\n &:focus {\n &,\n button {\n background: $ui-highlight-color;\n color: $primary-text-color;\n }\n }\n\n button:first-child {\n margin-right: 10px;\n }\n }\n }\n }\n}\n\n.confirmation-modal__action-bar,\n.mute-modal__action-bar,\n.block-modal__action-bar {\n .confirmation-modal__secondary-button {\n flex-shrink: 1;\n }\n}\n\n.confirmation-modal__secondary-button,\n.confirmation-modal__cancel-button,\n.mute-modal__cancel-button,\n.block-modal__cancel-button {\n background-color: transparent;\n color: $lighter-text-color;\n font-size: 14px;\n font-weight: 500;\n\n &:hover,\n &:focus,\n &:active {\n color: darken($lighter-text-color, 4%);\n background-color: transparent;\n }\n}\n\n.confirmation-modal__container,\n.mute-modal__container,\n.block-modal__container,\n.report-modal__target {\n padding: 30px;\n font-size: 16px;\n\n strong {\n font-weight: 500;\n\n @each $lang in $cjk-langs {\n &:lang(#{$lang}) {\n font-weight: 700;\n }\n }\n }\n}\n\n.confirmation-modal__container,\n.report-modal__target {\n text-align: center;\n}\n\n.block-modal,\n.mute-modal {\n &__explanation {\n margin-top: 20px;\n }\n\n .setting-toggle {\n margin-top: 20px;\n margin-bottom: 24px;\n display: flex;\n align-items: center;\n\n &__label {\n color: $inverted-text-color;\n margin: 0;\n margin-left: 8px;\n }\n }\n}\n\n.report-modal__target {\n padding: 15px;\n\n .media-modal__close {\n top: 14px;\n right: 15px;\n }\n}\n\n.loading-bar {\n background-color: $highlight-text-color;\n height: 3px;\n position: absolute;\n top: 0;\n left: 0;\n z-index: 9999;\n}\n\n.media-gallery__gifv__label {\n display: block;\n position: absolute;\n color: $primary-text-color;\n background: rgba($base-overlay-background, 0.5);\n bottom: 6px;\n left: 6px;\n padding: 2px 6px;\n border-radius: 2px;\n font-size: 11px;\n font-weight: 600;\n z-index: 1;\n pointer-events: none;\n opacity: 0.9;\n transition: opacity 0.1s ease;\n line-height: 18px;\n}\n\n.media-gallery__gifv {\n &:hover {\n .media-gallery__gifv__label {\n opacity: 1;\n }\n }\n}\n\n.media-gallery__audio {\n margin-top: 32px;\n\n audio {\n width: 100%;\n }\n}\n\n.attachment-list {\n display: flex;\n font-size: 14px;\n border: 1px solid lighten($ui-base-color, 8%);\n border-radius: 4px;\n margin-top: 14px;\n overflow: hidden;\n\n &__icon {\n flex: 0 0 auto;\n color: $dark-text-color;\n padding: 8px 18px;\n cursor: default;\n border-right: 1px solid lighten($ui-base-color, 8%);\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n font-size: 26px;\n\n .fa {\n display: block;\n }\n }\n\n &__list {\n list-style: none;\n padding: 4px 0;\n padding-left: 8px;\n display: flex;\n flex-direction: column;\n justify-content: center;\n\n li {\n display: block;\n padding: 4px 0;\n }\n\n a {\n text-decoration: none;\n color: $dark-text-color;\n font-weight: 500;\n\n &:hover {\n text-decoration: underline;\n }\n }\n }\n\n &.compact {\n border: 0;\n margin-top: 4px;\n\n .attachment-list__list {\n padding: 0;\n display: block;\n }\n\n .fa {\n color: $dark-text-color;\n }\n }\n}\n\n/* Media Gallery */\n.media-gallery {\n box-sizing: border-box;\n margin-top: 8px;\n overflow: hidden;\n border-radius: 4px;\n position: relative;\n width: 100%;\n}\n\n.media-gallery__item {\n border: 0;\n box-sizing: border-box;\n display: block;\n float: left;\n position: relative;\n border-radius: 4px;\n overflow: hidden;\n\n &.standalone {\n .media-gallery__item-gifv-thumbnail {\n transform: none;\n top: 0;\n }\n }\n}\n\n.media-gallery__item-thumbnail {\n cursor: zoom-in;\n display: block;\n text-decoration: none;\n color: $secondary-text-color;\n position: relative;\n z-index: 1;\n\n &,\n img {\n height: 100%;\n width: 100%;\n }\n\n img {\n object-fit: cover;\n }\n}\n\n.media-gallery__preview {\n width: 100%;\n height: 100%;\n object-fit: cover;\n position: absolute;\n top: 0;\n left: 0;\n z-index: 0;\n background: $base-overlay-background;\n\n &--hidden {\n display: none;\n }\n}\n\n.media-gallery__gifv {\n height: 100%;\n overflow: hidden;\n position: relative;\n width: 100%;\n}\n\n.media-gallery__item-gifv-thumbnail {\n cursor: zoom-in;\n height: 100%;\n object-fit: cover;\n position: relative;\n top: 50%;\n transform: translateY(-50%);\n width: 100%;\n z-index: 1;\n}\n\n.media-gallery__item-thumbnail-label {\n clip: rect(1px 1px 1px 1px); /* IE6, IE7 */\n clip: rect(1px, 1px, 1px, 1px);\n overflow: hidden;\n position: absolute;\n}\n/* End Media Gallery */\n\n.detailed,\n.fullscreen {\n .video-player__volume__current,\n .video-player__volume::before {\n bottom: 27px;\n }\n\n .video-player__volume__handle {\n bottom: 23px;\n }\n\n}\n\n.audio-player {\n box-sizing: border-box;\n position: relative;\n background: darken($ui-base-color, 8%);\n border-radius: 4px;\n padding-bottom: 44px;\n direction: ltr;\n\n &.editable {\n border-radius: 0;\n height: 100%;\n }\n\n &__waveform {\n padding: 15px 0;\n position: relative;\n overflow: hidden;\n\n &::before {\n content: \"\";\n display: block;\n position: absolute;\n border-top: 1px solid lighten($ui-base-color, 4%);\n width: 100%;\n height: 0;\n left: 0;\n top: calc(50% + 1px);\n }\n }\n\n &__progress-placeholder {\n background-color: rgba(lighten($ui-highlight-color, 8%), 0.5);\n }\n\n &__wave-placeholder {\n background-color: lighten($ui-base-color, 16%);\n }\n\n .video-player__controls {\n padding: 0 15px;\n padding-top: 10px;\n background: darken($ui-base-color, 8%);\n border-top: 1px solid lighten($ui-base-color, 4%);\n border-radius: 0 0 4px 4px;\n }\n}\n\n.video-player {\n overflow: hidden;\n position: relative;\n background: $base-shadow-color;\n max-width: 100%;\n border-radius: 4px;\n box-sizing: border-box;\n direction: ltr;\n\n &.editable {\n border-radius: 0;\n height: 100% !important;\n }\n\n &:focus {\n outline: 0;\n }\n\n video {\n max-width: 100vw;\n max-height: 80vh;\n z-index: 1;\n }\n\n &.fullscreen {\n width: 100% !important;\n height: 100% !important;\n margin: 0;\n\n video {\n max-width: 100% !important;\n max-height: 100% !important;\n width: 100% !important;\n height: 100% !important;\n outline: 0;\n }\n }\n\n &.inline {\n video {\n object-fit: contain;\n position: relative;\n top: 50%;\n transform: translateY(-50%);\n }\n }\n\n &__controls {\n position: absolute;\n z-index: 2;\n bottom: 0;\n left: 0;\n right: 0;\n box-sizing: border-box;\n background: linear-gradient(0deg, rgba($base-shadow-color, 0.85) 0, rgba($base-shadow-color, 0.45) 60%, transparent);\n padding: 0 15px;\n opacity: 0;\n transition: opacity .1s ease;\n\n &.active {\n opacity: 1;\n }\n }\n\n &.inactive {\n video,\n .video-player__controls {\n visibility: hidden;\n }\n }\n\n &__spoiler {\n display: none;\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n z-index: 4;\n border: 0;\n background: $base-overlay-background;\n color: $darker-text-color;\n transition: none;\n pointer-events: none;\n\n &.active {\n display: block;\n pointer-events: auto;\n\n &:hover,\n &:active,\n &:focus {\n color: lighten($darker-text-color, 7%);\n }\n }\n\n &__title {\n display: block;\n font-size: 14px;\n }\n\n &__subtitle {\n display: block;\n font-size: 11px;\n font-weight: 500;\n }\n }\n\n &__buttons-bar {\n display: flex;\n justify-content: space-between;\n padding-bottom: 10px;\n\n .video-player__download__icon {\n color: inherit;\n }\n }\n\n &__buttons {\n font-size: 16px;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n\n &.left {\n button {\n padding-left: 0;\n }\n }\n\n &.right {\n button {\n padding-right: 0;\n }\n }\n\n button {\n background: transparent;\n padding: 2px 10px;\n font-size: 16px;\n border: 0;\n color: rgba($white, 0.75);\n\n &:active,\n &:hover,\n &:focus {\n color: $white;\n }\n }\n }\n\n &__time-sep,\n &__time-total,\n &__time-current {\n font-size: 14px;\n font-weight: 500;\n }\n\n &__time-current {\n color: $white;\n margin-left: 60px;\n }\n\n &__time-sep {\n display: inline-block;\n margin: 0 6px;\n }\n\n &__time-sep,\n &__time-total {\n color: $white;\n }\n\n &__volume {\n cursor: pointer;\n height: 24px;\n display: inline;\n\n &::before {\n content: \"\";\n width: 50px;\n background: rgba($white, 0.35);\n border-radius: 4px;\n display: block;\n position: absolute;\n height: 4px;\n left: 70px;\n bottom: 20px;\n }\n\n &__current {\n display: block;\n position: absolute;\n height: 4px;\n border-radius: 4px;\n left: 70px;\n bottom: 20px;\n background: lighten($ui-highlight-color, 8%);\n }\n\n &__handle {\n position: absolute;\n z-index: 3;\n border-radius: 50%;\n width: 12px;\n height: 12px;\n bottom: 16px;\n left: 70px;\n transition: opacity .1s ease;\n background: lighten($ui-highlight-color, 8%);\n box-shadow: 1px 2px 6px rgba($base-shadow-color, 0.2);\n pointer-events: none;\n }\n }\n\n &__link {\n padding: 2px 10px;\n\n a {\n text-decoration: none;\n font-size: 14px;\n font-weight: 500;\n color: $white;\n\n &:hover,\n &:active,\n &:focus {\n text-decoration: underline;\n }\n }\n }\n\n &__seek {\n cursor: pointer;\n height: 24px;\n position: relative;\n\n &::before {\n content: \"\";\n width: 100%;\n background: rgba($white, 0.35);\n border-radius: 4px;\n display: block;\n position: absolute;\n height: 4px;\n top: 10px;\n }\n\n &__progress,\n &__buffer {\n display: block;\n position: absolute;\n height: 4px;\n border-radius: 4px;\n top: 10px;\n background: lighten($ui-highlight-color, 8%);\n }\n\n &__buffer {\n background: rgba($white, 0.2);\n }\n\n &__handle {\n position: absolute;\n z-index: 3;\n opacity: 0;\n border-radius: 50%;\n width: 12px;\n height: 12px;\n top: 6px;\n margin-left: -6px;\n transition: opacity .1s ease;\n background: lighten($ui-highlight-color, 8%);\n box-shadow: 1px 2px 6px rgba($base-shadow-color, 0.2);\n pointer-events: none;\n\n &.active {\n opacity: 1;\n }\n }\n\n &:hover {\n .video-player__seek__handle {\n opacity: 1;\n }\n }\n }\n\n &.detailed,\n &.fullscreen {\n .video-player__buttons {\n button {\n padding-top: 10px;\n padding-bottom: 10px;\n }\n }\n }\n}\n\n.directory {\n &__list {\n width: 100%;\n margin: 10px 0;\n transition: opacity 100ms ease-in;\n\n &.loading {\n opacity: 0.7;\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n margin: 0;\n }\n }\n\n &__card {\n box-sizing: border-box;\n margin-bottom: 10px;\n\n &__img {\n height: 125px;\n position: relative;\n background: darken($ui-base-color, 12%);\n overflow: hidden;\n\n img {\n display: block;\n width: 100%;\n height: 100%;\n margin: 0;\n object-fit: cover;\n }\n }\n\n &__bar {\n display: flex;\n align-items: center;\n background: lighten($ui-base-color, 4%);\n padding: 10px;\n\n &__name {\n flex: 1 1 auto;\n display: flex;\n align-items: center;\n text-decoration: none;\n overflow: hidden;\n }\n\n &__relationship {\n width: 23px;\n min-height: 1px;\n flex: 0 0 auto;\n }\n\n .avatar {\n flex: 0 0 auto;\n width: 48px;\n height: 48px;\n padding-top: 2px;\n\n img {\n width: 100%;\n height: 100%;\n display: block;\n margin: 0;\n border-radius: 4px;\n background: darken($ui-base-color, 8%);\n object-fit: cover;\n }\n }\n\n .display-name {\n margin-left: 15px;\n text-align: left;\n\n strong {\n font-size: 15px;\n color: $primary-text-color;\n font-weight: 500;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n span {\n display: block;\n font-size: 14px;\n color: $darker-text-color;\n font-weight: 400;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n }\n }\n\n &__extra {\n background: $ui-base-color;\n display: flex;\n align-items: center;\n justify-content: center;\n\n .accounts-table__count {\n width: 33.33%;\n flex: 0 0 auto;\n padding: 15px 0;\n }\n\n .account__header__content {\n box-sizing: border-box;\n padding: 15px 10px;\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n width: 100%;\n min-height: 18px + 30px;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n\n p {\n display: none;\n\n &:first-child {\n display: inline;\n }\n }\n\n br {\n display: none;\n }\n }\n }\n }\n}\n\n.account-gallery__container {\n display: flex;\n flex-wrap: wrap;\n padding: 4px 2px;\n}\n\n.account-gallery__item {\n border: 0;\n box-sizing: border-box;\n display: block;\n position: relative;\n border-radius: 4px;\n overflow: hidden;\n margin: 2px;\n\n &__icons {\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n font-size: 24px;\n }\n}\n\n.notification__filter-bar,\n.account__section-headline {\n background: darken($ui-base-color, 4%);\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n cursor: default;\n display: flex;\n flex-shrink: 0;\n\n button {\n background: darken($ui-base-color, 4%);\n border: 0;\n margin: 0;\n }\n\n button,\n a {\n display: block;\n flex: 1 1 auto;\n color: $darker-text-color;\n padding: 15px 0;\n font-size: 14px;\n font-weight: 500;\n text-align: center;\n text-decoration: none;\n position: relative;\n width: 100%;\n white-space: nowrap;\n\n &.active {\n color: $secondary-text-color;\n\n &::before,\n &::after {\n display: block;\n content: \"\";\n position: absolute;\n bottom: 0;\n left: 50%;\n width: 0;\n height: 0;\n transform: translateX(-50%);\n border-style: solid;\n border-width: 0 10px 10px;\n border-color: transparent transparent lighten($ui-base-color, 8%);\n }\n\n &::after {\n bottom: -1px;\n border-color: transparent transparent $ui-base-color;\n }\n }\n }\n\n &.directory__section-headline {\n background: darken($ui-base-color, 2%);\n border-bottom-color: transparent;\n\n a,\n button {\n &.active {\n &::before {\n display: none;\n }\n\n &::after {\n border-color: transparent transparent darken($ui-base-color, 7%);\n }\n }\n }\n }\n}\n\n.filter-form {\n background: $ui-base-color;\n\n &__column {\n padding: 10px 15px;\n }\n\n .radio-button {\n display: block;\n }\n}\n\n.radio-button {\n font-size: 14px;\n position: relative;\n display: inline-block;\n padding: 6px 0;\n line-height: 18px;\n cursor: default;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n cursor: pointer;\n\n input[type=radio],\n input[type=checkbox] {\n display: none;\n }\n\n &__input {\n display: inline-block;\n position: relative;\n border: 1px solid $ui-primary-color;\n box-sizing: border-box;\n width: 18px;\n height: 18px;\n flex: 0 0 auto;\n margin-right: 10px;\n top: -1px;\n border-radius: 50%;\n vertical-align: middle;\n\n &.checked {\n border-color: lighten($ui-highlight-color, 8%);\n background: lighten($ui-highlight-color, 8%);\n }\n }\n}\n\n::-webkit-scrollbar-thumb {\n border-radius: 0;\n}\n\n.search-popout {\n @include search-popout;\n}\n\nnoscript {\n text-align: center;\n\n img {\n width: 200px;\n opacity: 0.5;\n animation: flicker 4s infinite;\n }\n\n div {\n font-size: 14px;\n margin: 30px auto;\n color: $secondary-text-color;\n max-width: 400px;\n\n a {\n color: $highlight-text-color;\n text-decoration: underline;\n\n &:hover {\n text-decoration: none;\n }\n }\n }\n}\n\n@keyframes flicker {\n 0% { opacity: 1; }\n 30% { opacity: 0.75; }\n 100% { opacity: 1; }\n}\n\n@media screen and (max-width: 630px) and (max-height: 400px) {\n $duration: 400ms;\n $delay: 100ms;\n\n .tabs-bar,\n .search {\n will-change: margin-top;\n transition: margin-top $duration $delay;\n }\n\n .navigation-bar {\n will-change: padding-bottom;\n transition: padding-bottom $duration $delay;\n }\n\n .navigation-bar {\n & > a:first-child {\n will-change: margin-top, margin-left, margin-right, width;\n transition: margin-top $duration $delay, margin-left $duration ($duration + $delay), margin-right $duration ($duration + $delay);\n }\n\n & > .navigation-bar__profile-edit {\n will-change: margin-top;\n transition: margin-top $duration $delay;\n }\n\n .navigation-bar__actions {\n & > .icon-button.close {\n will-change: opacity transform;\n transition: opacity $duration * 0.5 $delay,\n transform $duration $delay;\n }\n\n & > .compose__action-bar .icon-button {\n will-change: opacity transform;\n transition: opacity $duration * 0.5 $delay + $duration * 0.5,\n transform $duration $delay;\n }\n }\n }\n\n .is-composing {\n .tabs-bar,\n .search {\n margin-top: -50px;\n }\n\n .navigation-bar {\n padding-bottom: 0;\n\n & > a:first-child {\n margin: -100px 10px 0 -50px;\n }\n\n .navigation-bar__profile {\n padding-top: 2px;\n }\n\n .navigation-bar__profile-edit {\n position: absolute;\n margin-top: -60px;\n }\n\n .navigation-bar__actions {\n .icon-button.close {\n pointer-events: auto;\n opacity: 1;\n transform: scale(1, 1) translate(0, 0);\n bottom: 5px;\n }\n\n .compose__action-bar .icon-button {\n pointer-events: none;\n opacity: 0;\n transform: scale(0, 1) translate(100%, 0);\n }\n }\n }\n }\n}\n\n.embed-modal {\n width: auto;\n max-width: 80vw;\n max-height: 80vh;\n\n h4 {\n padding: 30px;\n font-weight: 500;\n font-size: 16px;\n text-align: center;\n }\n\n .embed-modal__container {\n padding: 10px;\n\n .hint {\n margin-bottom: 15px;\n }\n\n .embed-modal__html {\n outline: 0;\n box-sizing: border-box;\n display: block;\n width: 100%;\n border: 0;\n padding: 10px;\n font-family: $font-monospace, monospace;\n background: $ui-base-color;\n color: $primary-text-color;\n font-size: 14px;\n margin: 0;\n margin-bottom: 15px;\n border-radius: 4px;\n\n &::-moz-focus-inner {\n border: 0;\n }\n\n &::-moz-focus-inner,\n &:focus,\n &:active {\n outline: 0 !important;\n }\n\n &:focus {\n background: lighten($ui-base-color, 4%);\n }\n\n @media screen and (max-width: 600px) {\n font-size: 16px;\n }\n }\n\n .embed-modal__iframe {\n width: 400px;\n max-width: 100%;\n overflow: hidden;\n border: 0;\n border-radius: 4px;\n }\n }\n}\n\n.account__moved-note {\n padding: 14px 10px;\n padding-bottom: 16px;\n background: lighten($ui-base-color, 4%);\n border-top: 1px solid lighten($ui-base-color, 8%);\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n\n &__message {\n position: relative;\n margin-left: 58px;\n color: $dark-text-color;\n padding: 8px 0;\n padding-top: 0;\n padding-bottom: 4px;\n font-size: 14px;\n\n > span {\n display: block;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n }\n\n &__icon-wrapper {\n left: -26px;\n position: absolute;\n }\n\n .detailed-status__display-avatar {\n position: relative;\n }\n\n .detailed-status__display-name {\n margin-bottom: 0;\n }\n}\n\n.column-inline-form {\n padding: 15px;\n padding-right: 0;\n display: flex;\n justify-content: flex-start;\n align-items: center;\n background: lighten($ui-base-color, 4%);\n\n label {\n flex: 1 1 auto;\n\n input {\n width: 100%;\n\n &:focus {\n outline: 0;\n }\n }\n }\n\n .icon-button {\n flex: 0 0 auto;\n margin: 0 10px;\n }\n}\n\n.drawer__backdrop {\n cursor: pointer;\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n background: rgba($base-overlay-background, 0.5);\n}\n\n.list-editor {\n background: $ui-base-color;\n flex-direction: column;\n border-radius: 8px;\n box-shadow: 2px 4px 15px rgba($base-shadow-color, 0.4);\n width: 380px;\n overflow: hidden;\n\n @media screen and (max-width: 420px) {\n width: 90%;\n }\n\n h4 {\n padding: 15px 0;\n background: lighten($ui-base-color, 13%);\n font-weight: 500;\n font-size: 16px;\n text-align: center;\n border-radius: 8px 8px 0 0;\n }\n\n .drawer__pager {\n height: 50vh;\n }\n\n .drawer__inner {\n border-radius: 0 0 8px 8px;\n\n &.backdrop {\n width: calc(100% - 60px);\n box-shadow: 2px 4px 15px rgba($base-shadow-color, 0.4);\n border-radius: 0 0 0 8px;\n }\n }\n\n &__accounts {\n overflow-y: auto;\n }\n\n .account__display-name {\n &:hover strong {\n text-decoration: none;\n }\n }\n\n .account__avatar {\n cursor: default;\n }\n\n .search {\n margin-bottom: 0;\n }\n}\n\n.list-adder {\n background: $ui-base-color;\n flex-direction: column;\n border-radius: 8px;\n box-shadow: 2px 4px 15px rgba($base-shadow-color, 0.4);\n width: 380px;\n overflow: hidden;\n\n @media screen and (max-width: 420px) {\n width: 90%;\n }\n\n &__account {\n background: lighten($ui-base-color, 13%);\n }\n\n &__lists {\n background: lighten($ui-base-color, 13%);\n height: 50vh;\n border-radius: 0 0 8px 8px;\n overflow-y: auto;\n }\n\n .list {\n padding: 10px;\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n }\n\n .list__wrapper {\n display: flex;\n }\n\n .list__display-name {\n flex: 1 1 auto;\n overflow: hidden;\n text-decoration: none;\n font-size: 16px;\n padding: 10px;\n }\n}\n\n.focal-point {\n position: relative;\n cursor: move;\n overflow: hidden;\n height: 100%;\n display: flex;\n justify-content: center;\n align-items: center;\n background: $base-shadow-color;\n\n img,\n video,\n canvas {\n display: block;\n max-height: 80vh;\n width: 100%;\n height: auto;\n margin: 0;\n object-fit: contain;\n background: $base-shadow-color;\n }\n\n &__reticle {\n position: absolute;\n width: 100px;\n height: 100px;\n transform: translate(-50%, -50%);\n background: url('~images/reticle.png') no-repeat 0 0;\n border-radius: 50%;\n box-shadow: 0 0 0 9999em rgba($base-shadow-color, 0.35);\n }\n\n &__overlay {\n position: absolute;\n width: 100%;\n height: 100%;\n top: 0;\n left: 0;\n }\n\n &__preview {\n position: absolute;\n bottom: 10px;\n right: 10px;\n z-index: 2;\n cursor: move;\n transition: opacity 0.1s ease;\n\n &:hover {\n opacity: 0.5;\n }\n\n strong {\n color: $primary-text-color;\n font-size: 14px;\n font-weight: 500;\n display: block;\n margin-bottom: 5px;\n }\n\n div {\n border-radius: 4px;\n box-shadow: 0 0 14px rgba($base-shadow-color, 0.2);\n }\n }\n\n @media screen and (max-width: 480px) {\n img,\n video {\n max-height: 100%;\n }\n\n &__preview {\n display: none;\n }\n }\n}\n\n.account__header__content {\n color: $darker-text-color;\n font-size: 14px;\n font-weight: 400;\n overflow: hidden;\n word-break: normal;\n word-wrap: break-word;\n\n p {\n margin-bottom: 20px;\n\n &:last-child {\n margin-bottom: 0;\n }\n }\n\n a {\n color: inherit;\n text-decoration: underline;\n\n &:hover {\n text-decoration: none;\n }\n }\n}\n\n.account__header {\n overflow: hidden;\n\n &.inactive {\n opacity: 0.5;\n\n .account__header__image,\n .account__avatar {\n filter: grayscale(100%);\n }\n }\n\n &__info {\n position: absolute;\n top: 10px;\n left: 10px;\n }\n\n &__image {\n overflow: hidden;\n height: 145px;\n position: relative;\n background: darken($ui-base-color, 4%);\n\n img {\n object-fit: cover;\n display: block;\n width: 100%;\n height: 100%;\n margin: 0;\n }\n }\n\n &__bar {\n position: relative;\n background: lighten($ui-base-color, 4%);\n padding: 5px;\n border-bottom: 1px solid lighten($ui-base-color, 12%);\n\n .avatar {\n display: block;\n flex: 0 0 auto;\n width: 94px;\n margin-left: -2px;\n\n .account__avatar {\n background: darken($ui-base-color, 8%);\n border: 2px solid lighten($ui-base-color, 4%);\n }\n }\n }\n\n &__tabs {\n display: flex;\n align-items: flex-start;\n padding: 7px 5px;\n margin-top: -55px;\n\n &__buttons {\n display: flex;\n align-items: center;\n padding-top: 55px;\n overflow: hidden;\n\n .icon-button {\n border: 1px solid lighten($ui-base-color, 12%);\n border-radius: 4px;\n box-sizing: content-box;\n padding: 2px;\n }\n\n .button {\n margin: 0 8px;\n }\n }\n\n &__name {\n padding: 5px;\n\n .account-role {\n vertical-align: top;\n }\n\n .emojione {\n width: 22px;\n height: 22px;\n }\n\n h1 {\n font-size: 16px;\n line-height: 24px;\n color: $primary-text-color;\n font-weight: 500;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n\n small {\n display: block;\n font-size: 14px;\n color: $darker-text-color;\n font-weight: 400;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n }\n }\n\n .spacer {\n flex: 1 1 auto;\n }\n }\n\n &__bio {\n overflow: hidden;\n margin: 0 -5px;\n\n .account__header__content {\n padding: 20px 15px;\n padding-bottom: 5px;\n color: $primary-text-color;\n }\n\n .account__header__fields {\n margin: 0;\n border-top: 1px solid lighten($ui-base-color, 12%);\n\n a {\n color: lighten($ui-highlight-color, 8%);\n }\n\n dl:first-child .verified {\n border-radius: 0 4px 0 0;\n }\n\n .verified a {\n color: $valid-value-color;\n }\n }\n }\n\n &__extra {\n margin-top: 4px;\n\n &__links {\n font-size: 14px;\n color: $darker-text-color;\n padding: 10px 0;\n\n a {\n display: inline-block;\n color: $darker-text-color;\n text-decoration: none;\n padding: 5px 10px;\n font-weight: 500;\n\n strong {\n font-weight: 700;\n color: $primary-text-color;\n }\n }\n }\n }\n}\n\n.trends {\n &__header {\n color: $dark-text-color;\n background: lighten($ui-base-color, 2%);\n border-bottom: 1px solid darken($ui-base-color, 4%);\n font-weight: 500;\n padding: 15px;\n font-size: 16px;\n cursor: default;\n\n .fa {\n display: inline-block;\n margin-right: 5px;\n }\n }\n\n &__item {\n display: flex;\n align-items: center;\n padding: 15px;\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n\n &:last-child {\n border-bottom: 0;\n }\n\n &__name {\n flex: 1 1 auto;\n color: $dark-text-color;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n\n strong {\n font-weight: 500;\n }\n\n a {\n color: $darker-text-color;\n text-decoration: none;\n font-size: 14px;\n font-weight: 500;\n display: block;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n\n &:hover,\n &:focus,\n &:active {\n span {\n text-decoration: underline;\n }\n }\n }\n }\n\n &__current {\n flex: 0 0 auto;\n font-size: 24px;\n line-height: 36px;\n font-weight: 500;\n text-align: right;\n padding-right: 15px;\n margin-left: 5px;\n color: $secondary-text-color;\n }\n\n &__sparkline {\n flex: 0 0 auto;\n width: 50px;\n\n path:first-child {\n fill: rgba($highlight-text-color, 0.25) !important;\n fill-opacity: 1 !important;\n }\n\n path:last-child {\n stroke: lighten($highlight-text-color, 6%) !important;\n }\n }\n }\n}\n\n.conversation {\n display: flex;\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n padding: 5px;\n padding-bottom: 0;\n\n &:focus {\n background: lighten($ui-base-color, 2%);\n outline: 0;\n }\n\n &__avatar {\n flex: 0 0 auto;\n padding: 10px;\n padding-top: 12px;\n position: relative;\n cursor: pointer;\n }\n\n &__unread {\n display: inline-block;\n background: $highlight-text-color;\n border-radius: 50%;\n width: 0.625rem;\n height: 0.625rem;\n margin: -.1ex .15em .1ex;\n }\n\n &__content {\n flex: 1 1 auto;\n padding: 10px 5px;\n padding-right: 15px;\n overflow: hidden;\n\n &__info {\n overflow: hidden;\n display: flex;\n flex-direction: row-reverse;\n justify-content: space-between;\n }\n\n &__relative-time {\n font-size: 15px;\n color: $darker-text-color;\n padding-left: 15px;\n }\n\n &__names {\n color: $darker-text-color;\n font-size: 15px;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n margin-bottom: 4px;\n flex-basis: 90px;\n flex-grow: 1;\n\n a {\n color: $primary-text-color;\n text-decoration: none;\n\n &:hover,\n &:focus,\n &:active {\n text-decoration: underline;\n }\n }\n }\n\n a {\n word-break: break-word;\n }\n }\n\n &--unread {\n background: lighten($ui-base-color, 2%);\n\n &:focus {\n background: lighten($ui-base-color, 4%);\n }\n\n .conversation__content__info {\n font-weight: 700;\n }\n\n .conversation__content__relative-time {\n color: $primary-text-color;\n }\n }\n}\n\n.announcements {\n background: lighten($ui-base-color, 8%);\n font-size: 13px;\n display: flex;\n align-items: flex-end;\n\n &__mastodon {\n width: 124px;\n flex: 0 0 auto;\n\n @media screen and (max-width: 124px + 300px) {\n display: none;\n }\n }\n\n &__container {\n width: calc(100% - 124px);\n flex: 0 0 auto;\n position: relative;\n\n @media screen and (max-width: 124px + 300px) {\n width: 100%;\n }\n }\n\n &__item {\n box-sizing: border-box;\n width: 100%;\n padding: 15px;\n position: relative;\n font-size: 15px;\n line-height: 20px;\n word-wrap: break-word;\n font-weight: 400;\n max-height: 50vh;\n overflow: hidden;\n display: flex;\n flex-direction: column;\n\n &__range {\n display: block;\n font-weight: 500;\n margin-bottom: 10px;\n padding-right: 18px;\n }\n\n &__unread {\n position: absolute;\n top: 19px;\n right: 19px;\n display: block;\n background: $highlight-text-color;\n border-radius: 50%;\n width: 0.625rem;\n height: 0.625rem;\n }\n }\n\n &__pagination {\n padding: 15px;\n color: $darker-text-color;\n position: absolute;\n bottom: 3px;\n right: 0;\n }\n}\n\n.layout-multiple-columns .announcements__mastodon {\n display: none;\n}\n\n.layout-multiple-columns .announcements__container {\n width: 100%;\n}\n\n.reactions-bar {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n margin-top: 15px;\n margin-left: -2px;\n width: calc(100% - (90px - 33px));\n\n &__item {\n flex-shrink: 0;\n background: lighten($ui-base-color, 12%);\n border: 0;\n border-radius: 3px;\n margin: 2px;\n cursor: pointer;\n user-select: none;\n padding: 0 6px;\n display: flex;\n align-items: center;\n transition: all 100ms ease-in;\n transition-property: background-color, color;\n\n &__emoji {\n display: block;\n margin: 3px 0;\n width: 16px;\n height: 16px;\n\n img {\n display: block;\n margin: 0;\n width: 100%;\n height: 100%;\n min-width: auto;\n min-height: auto;\n vertical-align: bottom;\n object-fit: contain;\n }\n }\n\n &__count {\n display: block;\n min-width: 9px;\n font-size: 13px;\n font-weight: 500;\n text-align: center;\n margin-left: 6px;\n color: $darker-text-color;\n }\n\n &:hover,\n &:focus,\n &:active {\n background: lighten($ui-base-color, 16%);\n transition: all 200ms ease-out;\n transition-property: background-color, color;\n\n &__count {\n color: lighten($darker-text-color, 4%);\n }\n }\n\n &.active {\n transition: all 100ms ease-in;\n transition-property: background-color, color;\n background-color: mix(lighten($ui-base-color, 12%), $ui-highlight-color, 80%);\n\n .reactions-bar__item__count {\n color: lighten($highlight-text-color, 8%);\n }\n }\n }\n\n .emoji-picker-dropdown {\n margin: 2px;\n }\n\n &:hover .emoji-button {\n opacity: 0.85;\n }\n\n .emoji-button {\n color: $darker-text-color;\n margin: 0;\n font-size: 16px;\n width: auto;\n flex-shrink: 0;\n padding: 0 6px;\n height: 22px;\n display: flex;\n align-items: center;\n opacity: 0.5;\n transition: all 100ms ease-in;\n transition-property: background-color, color;\n\n &:hover,\n &:active,\n &:focus {\n opacity: 1;\n color: lighten($darker-text-color, 4%);\n transition: all 200ms ease-out;\n transition-property: background-color, color;\n }\n }\n\n &--empty {\n .emoji-button {\n padding: 0;\n }\n }\n}\n",null,"@mixin avatar-radius {\n border-radius: 4px;\n background: transparent no-repeat;\n background-position: 50%;\n background-clip: padding-box;\n}\n\n@mixin avatar-size($size: 48px) {\n width: $size;\n height: $size;\n background-size: $size $size;\n}\n\n@mixin search-input {\n outline: 0;\n box-sizing: border-box;\n width: 100%;\n border: 0;\n box-shadow: none;\n font-family: inherit;\n background: $ui-base-color;\n color: $darker-text-color;\n font-size: 14px;\n margin: 0;\n}\n\n@mixin search-popout {\n background: $simple-background-color;\n border-radius: 4px;\n padding: 10px 14px;\n padding-bottom: 14px;\n margin-top: 10px;\n color: $light-text-color;\n box-shadow: 2px 4px 15px rgba($base-shadow-color, 0.4);\n\n h4 {\n text-transform: uppercase;\n color: $light-text-color;\n font-size: 13px;\n font-weight: 500;\n margin-bottom: 10px;\n }\n\n li {\n padding: 4px 0;\n }\n\n ul {\n margin-bottom: 10px;\n }\n\n em {\n font-weight: 500;\n color: $inverted-text-color;\n }\n}\n",".poll {\n margin-top: 16px;\n font-size: 14px;\n\n li {\n margin-bottom: 10px;\n position: relative;\n }\n\n &__chart {\n border-radius: 4px;\n display: block;\n background: darken($ui-primary-color, 5%);\n height: 5px;\n min-width: 1%;\n\n &.leading {\n background: $ui-highlight-color;\n }\n }\n\n &__option {\n position: relative;\n display: flex;\n padding: 6px 0;\n line-height: 18px;\n cursor: default;\n overflow: hidden;\n\n &__text {\n display: inline-block;\n word-wrap: break-word;\n overflow-wrap: break-word;\n max-width: calc(100% - 45px - 25px);\n }\n\n input[type=radio],\n input[type=checkbox] {\n display: none;\n }\n\n .autossugest-input {\n flex: 1 1 auto;\n }\n\n input[type=text] {\n display: block;\n box-sizing: border-box;\n width: 100%;\n font-size: 14px;\n color: $inverted-text-color;\n outline: 0;\n font-family: inherit;\n background: $simple-background-color;\n border: 1px solid darken($simple-background-color, 14%);\n border-radius: 4px;\n padding: 6px 10px;\n\n &:focus {\n border-color: $highlight-text-color;\n }\n }\n\n &.selectable {\n cursor: pointer;\n }\n\n &.editable {\n display: flex;\n align-items: center;\n overflow: visible;\n }\n }\n\n &__input {\n display: inline-block;\n position: relative;\n border: 1px solid $ui-primary-color;\n box-sizing: border-box;\n width: 18px;\n height: 18px;\n flex: 0 0 auto;\n margin-right: 10px;\n top: -1px;\n border-radius: 50%;\n vertical-align: middle;\n margin-top: auto;\n margin-bottom: auto;\n flex: 0 0 18px;\n\n &.checkbox {\n border-radius: 4px;\n }\n\n &.active {\n border-color: $valid-value-color;\n background: $valid-value-color;\n }\n\n &:active,\n &:focus,\n &:hover {\n border-color: lighten($valid-value-color, 15%);\n border-width: 4px;\n }\n\n &::-moz-focus-inner {\n outline: 0 !important;\n border: 0;\n }\n\n &:focus,\n &:active {\n outline: 0 !important;\n }\n }\n\n &__number {\n display: inline-block;\n width: 45px;\n font-weight: 700;\n flex: 0 0 45px;\n }\n\n &__voted {\n padding: 0 5px;\n display: inline-block;\n\n &__mark {\n font-size: 18px;\n }\n }\n\n &__footer {\n padding-top: 6px;\n padding-bottom: 5px;\n color: $dark-text-color;\n }\n\n &__link {\n display: inline;\n background: transparent;\n padding: 0;\n margin: 0;\n border: 0;\n color: $dark-text-color;\n text-decoration: underline;\n font-size: inherit;\n\n &:hover {\n text-decoration: none;\n }\n\n &:active,\n &:focus {\n background-color: rgba($dark-text-color, .1);\n }\n }\n\n .button {\n height: 36px;\n padding: 0 16px;\n margin-right: 10px;\n font-size: 14px;\n }\n}\n\n.compose-form__poll-wrapper {\n border-top: 1px solid darken($simple-background-color, 8%);\n\n ul {\n padding: 10px;\n }\n\n .poll__footer {\n border-top: 1px solid darken($simple-background-color, 8%);\n padding: 10px;\n display: flex;\n align-items: center;\n\n button,\n select {\n flex: 1 1 50%;\n\n &:focus {\n border-color: $highlight-text-color;\n }\n }\n }\n\n .button.button-secondary {\n font-size: 14px;\n font-weight: 400;\n padding: 6px 10px;\n height: auto;\n line-height: inherit;\n color: $action-button-color;\n border-color: $action-button-color;\n margin-right: 5px;\n }\n\n li {\n display: flex;\n align-items: center;\n\n .poll__option {\n flex: 0 0 auto;\n width: calc(100% - (23px + 6px));\n margin-right: 6px;\n }\n }\n\n select {\n appearance: none;\n box-sizing: border-box;\n font-size: 14px;\n color: $inverted-text-color;\n display: inline-block;\n width: auto;\n outline: 0;\n font-family: inherit;\n background: $simple-background-color url(\"data:image/svg+xml;utf8,\") no-repeat right 8px center / auto 16px;\n border: 1px solid darken($simple-background-color, 14%);\n border-radius: 4px;\n padding: 6px 10px;\n padding-right: 30px;\n }\n\n .icon-button.disabled {\n color: darken($simple-background-color, 14%);\n }\n}\n\n.muted .poll {\n color: $dark-text-color;\n\n &__chart {\n background: rgba(darken($ui-primary-color, 14%), 0.2);\n\n &.leading {\n background: rgba($ui-highlight-color, 0.2);\n }\n }\n}\n",".modal-layout {\n background: $ui-base-color url('data:image/svg+xml;utf8,') repeat-x bottom fixed;\n display: flex;\n flex-direction: column;\n height: 100vh;\n padding: 0;\n}\n\n.modal-layout__mastodon {\n display: flex;\n flex: 1;\n flex-direction: column;\n justify-content: flex-end;\n\n > * {\n flex: 1;\n max-height: 235px;\n }\n}\n\n@media screen and (max-width: 600px) {\n .account-header {\n margin-top: 0;\n }\n}\n",".emoji-mart {\n font-size: 13px;\n display: inline-block;\n color: $inverted-text-color;\n\n &,\n * {\n box-sizing: border-box;\n line-height: 1.15;\n }\n\n .emoji-mart-emoji {\n padding: 6px;\n }\n}\n\n.emoji-mart-bar {\n border: 0 solid darken($ui-secondary-color, 8%);\n\n &:first-child {\n border-bottom-width: 1px;\n border-top-left-radius: 5px;\n border-top-right-radius: 5px;\n background: $ui-secondary-color;\n }\n\n &:last-child {\n border-top-width: 1px;\n border-bottom-left-radius: 5px;\n border-bottom-right-radius: 5px;\n display: none;\n }\n}\n\n.emoji-mart-anchors {\n display: flex;\n justify-content: space-between;\n padding: 0 6px;\n color: $lighter-text-color;\n line-height: 0;\n}\n\n.emoji-mart-anchor {\n position: relative;\n flex: 1;\n text-align: center;\n padding: 12px 4px;\n overflow: hidden;\n transition: color .1s ease-out;\n cursor: pointer;\n\n &:hover {\n color: darken($lighter-text-color, 4%);\n }\n}\n\n.emoji-mart-anchor-selected {\n color: $highlight-text-color;\n\n &:hover {\n color: darken($highlight-text-color, 4%);\n }\n\n .emoji-mart-anchor-bar {\n bottom: -1px;\n }\n}\n\n.emoji-mart-anchor-bar {\n position: absolute;\n bottom: -5px;\n left: 0;\n width: 100%;\n height: 4px;\n background-color: $highlight-text-color;\n}\n\n.emoji-mart-anchors {\n i {\n display: inline-block;\n width: 100%;\n max-width: 22px;\n }\n\n svg {\n fill: currentColor;\n max-height: 18px;\n }\n}\n\n.emoji-mart-scroll {\n overflow-y: scroll;\n height: 270px;\n max-height: 35vh;\n padding: 0 6px 6px;\n background: $simple-background-color;\n will-change: transform;\n\n &::-webkit-scrollbar-track:hover,\n &::-webkit-scrollbar-track:active {\n background-color: rgba($base-overlay-background, 0.3);\n }\n}\n\n.emoji-mart-search {\n padding: 10px;\n padding-right: 45px;\n background: $simple-background-color;\n\n input {\n font-size: 14px;\n font-weight: 400;\n padding: 7px 9px;\n font-family: inherit;\n display: block;\n width: 100%;\n background: rgba($ui-secondary-color, 0.3);\n color: $inverted-text-color;\n border: 1px solid $ui-secondary-color;\n border-radius: 4px;\n\n &::-moz-focus-inner {\n border: 0;\n }\n\n &::-moz-focus-inner,\n &:focus,\n &:active {\n outline: 0 !important;\n }\n }\n}\n\n.emoji-mart-category .emoji-mart-emoji {\n cursor: pointer;\n\n span {\n z-index: 1;\n position: relative;\n text-align: center;\n }\n\n &:hover::before {\n z-index: 0;\n content: \"\";\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n background-color: rgba($ui-secondary-color, 0.7);\n border-radius: 100%;\n }\n}\n\n.emoji-mart-category-label {\n z-index: 2;\n position: relative;\n position: -webkit-sticky;\n position: sticky;\n top: 0;\n\n span {\n display: block;\n width: 100%;\n font-weight: 500;\n padding: 5px 6px;\n background: $simple-background-color;\n }\n}\n\n.emoji-mart-emoji {\n position: relative;\n display: inline-block;\n font-size: 0;\n\n span {\n width: 22px;\n height: 22px;\n }\n}\n\n.emoji-mart-no-results {\n font-size: 14px;\n text-align: center;\n padding-top: 70px;\n color: $light-text-color;\n\n .emoji-mart-category-label {\n display: none;\n }\n\n .emoji-mart-no-results-label {\n margin-top: .2em;\n }\n\n .emoji-mart-emoji:hover::before {\n content: none;\n }\n}\n\n.emoji-mart-preview {\n display: none;\n}\n","$maximum-width: 1235px;\n$fluid-breakpoint: $maximum-width + 20px;\n$column-breakpoint: 700px;\n$small-breakpoint: 960px;\n\n.container {\n box-sizing: border-box;\n max-width: $maximum-width;\n margin: 0 auto;\n position: relative;\n\n @media screen and (max-width: $fluid-breakpoint) {\n width: 100%;\n padding: 0 10px;\n }\n}\n\n.rich-formatting {\n font-family: $font-sans-serif, sans-serif;\n font-size: 14px;\n font-weight: 400;\n line-height: 1.7;\n word-wrap: break-word;\n color: $darker-text-color;\n\n a {\n color: $highlight-text-color;\n text-decoration: underline;\n\n &:hover,\n &:focus,\n &:active {\n text-decoration: none;\n }\n }\n\n p,\n li {\n color: $darker-text-color;\n }\n\n p {\n margin-top: 0;\n margin-bottom: .85em;\n\n &:last-child {\n margin-bottom: 0;\n }\n }\n\n strong {\n font-weight: 700;\n color: $secondary-text-color;\n }\n\n em {\n font-style: italic;\n color: $secondary-text-color;\n }\n\n code {\n font-size: 0.85em;\n background: darken($ui-base-color, 8%);\n border-radius: 4px;\n padding: 0.2em 0.3em;\n }\n\n h1,\n h2,\n h3,\n h4,\n h5,\n h6 {\n font-family: $font-display, sans-serif;\n margin-top: 1.275em;\n margin-bottom: .85em;\n font-weight: 500;\n color: $secondary-text-color;\n }\n\n h1 {\n font-size: 2em;\n }\n\n h2 {\n font-size: 1.75em;\n }\n\n h3 {\n font-size: 1.5em;\n }\n\n h4 {\n font-size: 1.25em;\n }\n\n h5,\n h6 {\n font-size: 1em;\n }\n\n ul {\n list-style: disc;\n }\n\n ol {\n list-style: decimal;\n }\n\n ul,\n ol {\n margin: 0;\n padding: 0;\n padding-left: 2em;\n margin-bottom: 0.85em;\n\n &[type='a'] {\n list-style-type: lower-alpha;\n }\n\n &[type='i'] {\n list-style-type: lower-roman;\n }\n }\n\n hr {\n width: 100%;\n height: 0;\n border: 0;\n border-bottom: 1px solid lighten($ui-base-color, 4%);\n margin: 1.7em 0;\n\n &.spacer {\n height: 1px;\n border: 0;\n }\n }\n\n table {\n width: 100%;\n border-collapse: collapse;\n break-inside: auto;\n margin-top: 24px;\n margin-bottom: 32px;\n\n thead tr,\n tbody tr {\n border-bottom: 1px solid lighten($ui-base-color, 4%);\n font-size: 1em;\n line-height: 1.625;\n font-weight: 400;\n text-align: left;\n color: $darker-text-color;\n }\n\n thead tr {\n border-bottom-width: 2px;\n line-height: 1.5;\n font-weight: 500;\n color: $dark-text-color;\n }\n\n th,\n td {\n padding: 8px;\n align-self: start;\n align-items: start;\n word-break: break-all;\n\n &.nowrap {\n width: 25%;\n position: relative;\n\n &::before {\n content: ' ';\n visibility: hidden;\n }\n\n span {\n position: absolute;\n left: 8px;\n right: 8px;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n }\n }\n }\n\n & > :first-child {\n margin-top: 0;\n }\n}\n\n.information-board {\n background: darken($ui-base-color, 4%);\n padding: 20px 0;\n\n .container-alt {\n position: relative;\n padding-right: 280px + 15px;\n }\n\n &__sections {\n display: flex;\n justify-content: space-between;\n flex-wrap: wrap;\n }\n\n &__section {\n flex: 1 0 0;\n font-family: $font-sans-serif, sans-serif;\n font-size: 16px;\n line-height: 28px;\n color: $primary-text-color;\n text-align: right;\n padding: 10px 15px;\n\n span,\n strong {\n display: block;\n }\n\n span {\n &:last-child {\n color: $secondary-text-color;\n }\n }\n\n strong {\n font-family: $font-display, sans-serif;\n font-weight: 500;\n font-size: 32px;\n line-height: 48px;\n }\n\n @media screen and (max-width: $column-breakpoint) {\n text-align: center;\n }\n }\n\n .panel {\n position: absolute;\n width: 280px;\n box-sizing: border-box;\n background: darken($ui-base-color, 8%);\n padding: 20px;\n padding-top: 10px;\n border-radius: 4px 4px 0 0;\n right: 0;\n bottom: -40px;\n\n .panel-header {\n font-family: $font-display, sans-serif;\n font-size: 14px;\n line-height: 24px;\n font-weight: 500;\n color: $darker-text-color;\n padding-bottom: 5px;\n margin-bottom: 15px;\n border-bottom: 1px solid lighten($ui-base-color, 4%);\n text-overflow: ellipsis;\n white-space: nowrap;\n overflow: hidden;\n\n a,\n span {\n font-weight: 400;\n color: darken($darker-text-color, 10%);\n }\n\n a {\n text-decoration: none;\n }\n }\n }\n\n .owner {\n text-align: center;\n\n .avatar {\n width: 80px;\n height: 80px;\n margin: 0 auto;\n margin-bottom: 15px;\n\n img {\n display: block;\n width: 80px;\n height: 80px;\n border-radius: 48px;\n }\n }\n\n .name {\n font-size: 14px;\n\n a {\n display: block;\n color: $primary-text-color;\n text-decoration: none;\n\n &:hover {\n .display_name {\n text-decoration: underline;\n }\n }\n }\n\n .username {\n display: block;\n color: $darker-text-color;\n }\n }\n }\n}\n\n.landing-page {\n p,\n li {\n font-family: $font-sans-serif, sans-serif;\n font-size: 16px;\n font-weight: 400;\n font-size: 16px;\n line-height: 30px;\n margin-bottom: 12px;\n color: $darker-text-color;\n\n a {\n color: $highlight-text-color;\n text-decoration: underline;\n }\n }\n\n em {\n display: inline;\n margin: 0;\n padding: 0;\n font-weight: 700;\n background: transparent;\n font-family: inherit;\n font-size: inherit;\n line-height: inherit;\n color: lighten($darker-text-color, 10%);\n }\n\n h1 {\n font-family: $font-display, sans-serif;\n font-size: 26px;\n line-height: 30px;\n font-weight: 500;\n margin-bottom: 20px;\n color: $secondary-text-color;\n\n small {\n font-family: $font-sans-serif, sans-serif;\n display: block;\n font-size: 18px;\n font-weight: 400;\n color: lighten($darker-text-color, 10%);\n }\n }\n\n h2 {\n font-family: $font-display, sans-serif;\n font-size: 22px;\n line-height: 26px;\n font-weight: 500;\n margin-bottom: 20px;\n color: $secondary-text-color;\n }\n\n h3 {\n font-family: $font-display, sans-serif;\n font-size: 18px;\n line-height: 24px;\n font-weight: 500;\n margin-bottom: 20px;\n color: $secondary-text-color;\n }\n\n h4 {\n font-family: $font-display, sans-serif;\n font-size: 16px;\n line-height: 24px;\n font-weight: 500;\n margin-bottom: 20px;\n color: $secondary-text-color;\n }\n\n h5 {\n font-family: $font-display, sans-serif;\n font-size: 14px;\n line-height: 24px;\n font-weight: 500;\n margin-bottom: 20px;\n color: $secondary-text-color;\n }\n\n h6 {\n font-family: $font-display, sans-serif;\n font-size: 12px;\n line-height: 24px;\n font-weight: 500;\n margin-bottom: 20px;\n color: $secondary-text-color;\n }\n\n ul,\n ol {\n margin-left: 20px;\n\n &[type='a'] {\n list-style-type: lower-alpha;\n }\n\n &[type='i'] {\n list-style-type: lower-roman;\n }\n }\n\n ul {\n list-style: disc;\n }\n\n ol {\n list-style: decimal;\n }\n\n li > ol,\n li > ul {\n margin-top: 6px;\n }\n\n hr {\n width: 100%;\n height: 0;\n border: 0;\n border-bottom: 1px solid rgba($ui-base-lighter-color, .6);\n margin: 20px 0;\n\n &.spacer {\n height: 1px;\n border: 0;\n }\n }\n\n &__information,\n &__forms {\n padding: 20px;\n }\n\n &__call-to-action {\n background: $ui-base-color;\n border-radius: 4px;\n padding: 25px 40px;\n overflow: hidden;\n box-sizing: border-box;\n\n .row {\n width: 100%;\n display: flex;\n flex-direction: row-reverse;\n flex-wrap: nowrap;\n justify-content: space-between;\n align-items: center;\n }\n\n .row__information-board {\n display: flex;\n justify-content: flex-end;\n align-items: flex-end;\n\n .information-board__section {\n flex: 1 0 auto;\n padding: 0 10px;\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n width: 100%;\n justify-content: space-between;\n }\n }\n\n .row__mascot {\n flex: 1;\n margin: 10px -50px 0 0;\n\n @media screen and (max-width: $no-gap-breakpoint) {\n display: none;\n }\n }\n }\n\n &__logo {\n margin-right: 20px;\n\n img {\n height: 50px;\n width: auto;\n mix-blend-mode: lighten;\n }\n }\n\n &__information {\n padding: 45px 40px;\n margin-bottom: 10px;\n\n &:last-child {\n margin-bottom: 0;\n }\n\n strong {\n font-weight: 500;\n color: lighten($darker-text-color, 10%);\n }\n\n .account {\n border-bottom: 0;\n padding: 0;\n\n &__display-name {\n align-items: center;\n display: flex;\n margin-right: 5px;\n }\n\n div.account__display-name {\n &:hover {\n .display-name strong {\n text-decoration: none;\n }\n }\n\n .account__avatar {\n cursor: default;\n }\n }\n\n &__avatar-wrapper {\n margin-left: 0;\n flex: 0 0 auto;\n }\n\n &__avatar {\n width: 44px;\n height: 44px;\n background-size: 44px 44px;\n }\n\n .display-name {\n font-size: 15px;\n\n &__account {\n font-size: 14px;\n }\n }\n }\n\n @media screen and (max-width: $small-breakpoint) {\n .contact {\n margin-top: 30px;\n }\n }\n\n @media screen and (max-width: $column-breakpoint) {\n padding: 25px 20px;\n }\n }\n\n &__information,\n &__forms,\n #mastodon-timeline {\n box-sizing: border-box;\n background: $ui-base-color;\n border-radius: 4px;\n box-shadow: 0 0 6px rgba($black, 0.1);\n }\n\n &__mascot {\n height: 104px;\n position: relative;\n left: -40px;\n bottom: 25px;\n\n img {\n height: 190px;\n width: auto;\n }\n }\n\n &__short-description {\n .row {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n margin-bottom: 40px;\n }\n\n @media screen and (max-width: $column-breakpoint) {\n .row {\n margin-bottom: 20px;\n }\n }\n\n p a {\n color: $secondary-text-color;\n }\n\n h1 {\n font-weight: 500;\n color: $primary-text-color;\n margin-bottom: 0;\n\n small {\n color: $darker-text-color;\n\n span {\n color: $secondary-text-color;\n }\n }\n }\n\n p:last-child {\n margin-bottom: 0;\n }\n }\n\n &__hero {\n margin-bottom: 10px;\n\n img {\n display: block;\n margin: 0;\n max-width: 100%;\n height: auto;\n border-radius: 4px;\n }\n }\n\n @media screen and (max-width: 840px) {\n .information-board {\n .container-alt {\n padding-right: 20px;\n }\n\n .panel {\n position: static;\n margin-top: 20px;\n width: 100%;\n border-radius: 4px;\n\n .panel-header {\n text-align: center;\n }\n }\n }\n }\n\n @media screen and (max-width: 675px) {\n .header-wrapper {\n padding-top: 0;\n\n &.compact {\n padding-bottom: 0;\n }\n\n &.compact .hero .heading {\n text-align: initial;\n }\n }\n\n .header .container-alt,\n .features .container-alt {\n display: block;\n }\n }\n\n .cta {\n margin: 20px;\n }\n}\n\n.landing {\n margin-bottom: 100px;\n\n @media screen and (max-width: 738px) {\n margin-bottom: 0;\n }\n\n &__brand {\n display: flex;\n justify-content: center;\n align-items: center;\n padding: 50px;\n\n svg {\n fill: $primary-text-color;\n height: 52px;\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n padding: 0;\n margin-bottom: 30px;\n }\n }\n\n .directory {\n margin-top: 30px;\n background: transparent;\n box-shadow: none;\n border-radius: 0;\n }\n\n .hero-widget {\n margin-top: 30px;\n margin-bottom: 0;\n\n h4 {\n padding: 10px;\n text-transform: uppercase;\n font-weight: 700;\n font-size: 13px;\n color: $darker-text-color;\n }\n\n &__text {\n border-radius: 0;\n padding-bottom: 0;\n }\n\n &__footer {\n background: $ui-base-color;\n padding: 10px;\n border-radius: 0 0 4px 4px;\n display: flex;\n\n &__column {\n flex: 1 1 50%;\n }\n }\n\n .account {\n padding: 10px 0;\n border-bottom: 0;\n\n .account__display-name {\n display: flex;\n align-items: center;\n }\n\n .account__avatar {\n width: 44px;\n height: 44px;\n background-size: 44px 44px;\n }\n }\n\n &__counter {\n padding: 10px;\n\n strong {\n font-family: $font-display, sans-serif;\n font-size: 15px;\n font-weight: 700;\n display: block;\n }\n\n span {\n font-size: 14px;\n color: $darker-text-color;\n }\n }\n }\n\n .simple_form .user_agreement .label_input > label {\n font-weight: 400;\n color: $darker-text-color;\n }\n\n .simple_form p.lead {\n color: $darker-text-color;\n font-size: 15px;\n line-height: 20px;\n font-weight: 400;\n margin-bottom: 25px;\n }\n\n &__grid {\n max-width: 960px;\n margin: 0 auto;\n display: grid;\n grid-template-columns: minmax(0, 50%) minmax(0, 50%);\n grid-gap: 30px;\n\n @media screen and (max-width: 738px) {\n grid-template-columns: minmax(0, 100%);\n grid-gap: 10px;\n\n &__column-login {\n grid-row: 1;\n display: flex;\n flex-direction: column;\n\n .box-widget {\n order: 2;\n flex: 0 0 auto;\n }\n\n .hero-widget {\n margin-top: 0;\n margin-bottom: 10px;\n order: 1;\n flex: 0 0 auto;\n }\n }\n\n &__column-registration {\n grid-row: 2;\n }\n\n .directory {\n margin-top: 10px;\n }\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n grid-gap: 0;\n\n .hero-widget {\n display: block;\n margin-bottom: 0;\n box-shadow: none;\n\n &__img,\n &__img img,\n &__footer {\n border-radius: 0;\n }\n }\n\n .hero-widget,\n .box-widget,\n .directory__tag {\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n }\n\n .directory {\n margin-top: 0;\n\n &__tag {\n margin-bottom: 0;\n\n & > a,\n & > div {\n border-radius: 0;\n box-shadow: none;\n }\n\n &:last-child {\n border-bottom: 0;\n }\n }\n }\n }\n }\n}\n\n.brand {\n position: relative;\n text-decoration: none;\n}\n\n.brand__tagline {\n display: block;\n position: absolute;\n bottom: -10px;\n left: 50px;\n width: 300px;\n color: $ui-primary-color;\n text-decoration: none;\n font-size: 14px;\n\n @media screen and (max-width: $no-gap-breakpoint) {\n position: static;\n width: auto;\n margin-top: 20px;\n color: $dark-text-color;\n }\n}\n\n",".table {\n width: 100%;\n max-width: 100%;\n border-spacing: 0;\n border-collapse: collapse;\n\n th,\n td {\n padding: 8px;\n line-height: 18px;\n vertical-align: top;\n border-top: 1px solid $ui-base-color;\n text-align: left;\n background: darken($ui-base-color, 4%);\n }\n\n & > thead > tr > th {\n vertical-align: bottom;\n border-bottom: 2px solid $ui-base-color;\n border-top: 0;\n font-weight: 500;\n }\n\n & > tbody > tr > th {\n font-weight: 500;\n }\n\n & > tbody > tr:nth-child(odd) > td,\n & > tbody > tr:nth-child(odd) > th {\n background: $ui-base-color;\n }\n\n a {\n color: $highlight-text-color;\n text-decoration: underline;\n\n &:hover {\n text-decoration: none;\n }\n }\n\n strong {\n font-weight: 500;\n\n @each $lang in $cjk-langs {\n &:lang(#{$lang}) {\n font-weight: 700;\n }\n }\n }\n\n &.inline-table {\n & > tbody > tr:nth-child(odd) {\n & > td,\n & > th {\n background: transparent;\n }\n }\n\n & > tbody > tr:first-child {\n & > td,\n & > th {\n border-top: 0;\n }\n }\n }\n\n &.batch-table {\n & > thead > tr > th {\n background: $ui-base-color;\n border-top: 1px solid darken($ui-base-color, 8%);\n border-bottom: 1px solid darken($ui-base-color, 8%);\n\n &:first-child {\n border-radius: 4px 0 0;\n border-left: 1px solid darken($ui-base-color, 8%);\n }\n\n &:last-child {\n border-radius: 0 4px 0 0;\n border-right: 1px solid darken($ui-base-color, 8%);\n }\n }\n }\n\n &--invites tbody td {\n vertical-align: middle;\n }\n}\n\n.table-wrapper {\n overflow: auto;\n margin-bottom: 20px;\n}\n\nsamp {\n font-family: $font-monospace, monospace;\n}\n\nbutton.table-action-link {\n background: transparent;\n border: 0;\n font: inherit;\n}\n\nbutton.table-action-link,\na.table-action-link {\n text-decoration: none;\n display: inline-block;\n margin-right: 5px;\n padding: 0 10px;\n color: $darker-text-color;\n font-weight: 500;\n\n &:hover {\n color: $primary-text-color;\n }\n\n i.fa {\n font-weight: 400;\n margin-right: 5px;\n }\n\n &:first-child {\n padding-left: 0;\n }\n}\n\n.batch-table {\n &__toolbar,\n &__row {\n display: flex;\n\n &__select {\n box-sizing: border-box;\n padding: 8px 16px;\n cursor: pointer;\n min-height: 100%;\n\n input {\n margin-top: 8px;\n }\n\n &--aligned {\n display: flex;\n align-items: center;\n\n input {\n margin-top: 0;\n }\n }\n }\n\n &__actions,\n &__content {\n padding: 8px 0;\n padding-right: 16px;\n flex: 1 1 auto;\n }\n }\n\n &__toolbar {\n border: 1px solid darken($ui-base-color, 8%);\n background: $ui-base-color;\n border-radius: 4px 0 0;\n height: 47px;\n align-items: center;\n\n &__actions {\n text-align: right;\n padding-right: 16px - 5px;\n }\n }\n\n &__form {\n padding: 16px;\n border: 1px solid darken($ui-base-color, 8%);\n border-top: 0;\n background: $ui-base-color;\n\n .fields-row {\n padding-top: 0;\n margin-bottom: 0;\n }\n }\n\n &__row {\n border: 1px solid darken($ui-base-color, 8%);\n border-top: 0;\n background: darken($ui-base-color, 4%);\n\n @media screen and (max-width: $no-gap-breakpoint) {\n .optional &:first-child {\n border-top: 1px solid darken($ui-base-color, 8%);\n }\n }\n\n &:hover {\n background: darken($ui-base-color, 2%);\n }\n\n &:nth-child(even) {\n background: $ui-base-color;\n\n &:hover {\n background: lighten($ui-base-color, 2%);\n }\n }\n\n &__content {\n padding-top: 12px;\n padding-bottom: 16px;\n\n &--unpadded {\n padding: 0;\n }\n\n &--with-image {\n display: flex;\n align-items: center;\n }\n\n &__image {\n flex: 0 0 auto;\n display: flex;\n justify-content: center;\n align-items: center;\n margin-right: 10px;\n\n .emojione {\n width: 32px;\n height: 32px;\n }\n }\n\n &__text {\n flex: 1 1 auto;\n }\n\n &__extra {\n flex: 0 0 auto;\n text-align: right;\n color: $darker-text-color;\n font-weight: 500;\n }\n }\n\n .directory__tag {\n margin: 0;\n width: 100%;\n\n a {\n background: transparent;\n border-radius: 0;\n }\n }\n }\n\n &.optional .batch-table__toolbar,\n &.optional .batch-table__row__select {\n @media screen and (max-width: $no-gap-breakpoint) {\n display: none;\n }\n }\n\n .status__content {\n padding-top: 0;\n\n summary {\n display: list-item;\n }\n\n strong {\n font-weight: 700;\n }\n }\n\n .nothing-here {\n border: 1px solid darken($ui-base-color, 8%);\n border-top: 0;\n box-shadow: none;\n\n @media screen and (max-width: $no-gap-breakpoint) {\n border-top: 1px solid darken($ui-base-color, 8%);\n }\n }\n\n @media screen and (max-width: 870px) {\n .accounts-table tbody td.optional {\n display: none;\n }\n }\n}\n","$no-columns-breakpoint: 600px;\n$sidebar-width: 240px;\n$content-width: 840px;\n\n.admin-wrapper {\n display: flex;\n justify-content: center;\n width: 100%;\n min-height: 100vh;\n\n .sidebar-wrapper {\n min-height: 100vh;\n overflow: hidden;\n pointer-events: none;\n flex: 1 1 auto;\n\n &__inner {\n display: flex;\n justify-content: flex-end;\n background: $ui-base-color;\n height: 100%;\n }\n }\n\n .sidebar {\n width: $sidebar-width;\n padding: 0;\n pointer-events: auto;\n\n &__toggle {\n display: none;\n background: lighten($ui-base-color, 8%);\n height: 48px;\n\n &__logo {\n flex: 1 1 auto;\n\n a {\n display: inline-block;\n padding: 15px;\n }\n\n svg {\n fill: $primary-text-color;\n height: 20px;\n position: relative;\n bottom: -2px;\n }\n }\n\n &__icon {\n display: block;\n color: $darker-text-color;\n text-decoration: none;\n flex: 0 0 auto;\n font-size: 20px;\n padding: 15px;\n }\n\n a {\n &:hover,\n &:focus,\n &:active {\n background: lighten($ui-base-color, 12%);\n }\n }\n }\n\n .logo {\n display: block;\n margin: 40px auto;\n width: 100px;\n height: 100px;\n }\n\n @media screen and (max-width: $no-columns-breakpoint) {\n & > a:first-child {\n display: none;\n }\n }\n\n ul {\n list-style: none;\n border-radius: 4px 0 0 4px;\n overflow: hidden;\n margin-bottom: 20px;\n\n @media screen and (max-width: $no-columns-breakpoint) {\n margin-bottom: 0;\n }\n\n a {\n display: block;\n padding: 15px;\n color: $darker-text-color;\n text-decoration: none;\n transition: all 200ms linear;\n transition-property: color, background-color;\n border-radius: 4px 0 0 4px;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n\n i.fa {\n margin-right: 5px;\n }\n\n &:hover {\n color: $primary-text-color;\n background-color: darken($ui-base-color, 5%);\n transition: all 100ms linear;\n transition-property: color, background-color;\n }\n\n &.selected {\n background: darken($ui-base-color, 2%);\n border-radius: 4px 0 0;\n }\n }\n\n ul {\n background: darken($ui-base-color, 4%);\n border-radius: 0 0 0 4px;\n margin: 0;\n\n a {\n border: 0;\n padding: 15px 35px;\n }\n }\n\n .simple-navigation-active-leaf a {\n color: $primary-text-color;\n background-color: $ui-highlight-color;\n border-bottom: 0;\n border-radius: 0;\n\n &:hover {\n background-color: lighten($ui-highlight-color, 5%);\n }\n }\n }\n\n & > ul > .simple-navigation-active-leaf a {\n border-radius: 4px 0 0 4px;\n }\n }\n\n .content-wrapper {\n box-sizing: border-box;\n width: 100%;\n max-width: $content-width;\n flex: 1 1 auto;\n }\n\n @media screen and (max-width: $content-width + $sidebar-width) {\n .sidebar-wrapper--empty {\n display: none;\n }\n\n .sidebar-wrapper {\n width: $sidebar-width;\n flex: 0 0 auto;\n }\n }\n\n @media screen and (max-width: $no-columns-breakpoint) {\n .sidebar-wrapper {\n width: 100%;\n }\n }\n\n .content {\n padding: 20px 15px;\n padding-top: 60px;\n padding-left: 25px;\n\n @media screen and (max-width: $no-columns-breakpoint) {\n max-width: none;\n padding: 15px;\n padding-top: 30px;\n }\n\n &-heading {\n display: flex;\n\n padding-bottom: 40px;\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n\n margin: -15px -15px 40px 0;\n\n flex-wrap: wrap;\n align-items: center;\n justify-content: space-between;\n\n & > * {\n margin-top: 15px;\n margin-right: 15px;\n }\n\n &-actions {\n display: inline-flex;\n\n & > :not(:first-child) {\n margin-left: 5px;\n }\n }\n\n @media screen and (max-width: $no-columns-breakpoint) {\n border-bottom: 0;\n padding-bottom: 0;\n }\n }\n\n h2 {\n color: $secondary-text-color;\n font-size: 24px;\n line-height: 28px;\n font-weight: 400;\n\n @media screen and (max-width: $no-columns-breakpoint) {\n font-weight: 700;\n }\n }\n\n h3 {\n color: $secondary-text-color;\n font-size: 20px;\n line-height: 28px;\n font-weight: 400;\n margin-bottom: 30px;\n }\n\n h4 {\n text-transform: uppercase;\n font-size: 13px;\n font-weight: 700;\n color: $darker-text-color;\n padding-bottom: 8px;\n margin-bottom: 8px;\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n }\n\n h6 {\n font-size: 16px;\n color: $secondary-text-color;\n line-height: 28px;\n font-weight: 500;\n }\n\n .fields-group h6 {\n color: $primary-text-color;\n font-weight: 500;\n }\n\n .directory__tag > a,\n .directory__tag > div {\n box-shadow: none;\n }\n\n .directory__tag .table-action-link .fa {\n color: inherit;\n }\n\n .directory__tag h4 {\n font-size: 18px;\n font-weight: 700;\n color: $primary-text-color;\n text-transform: none;\n padding-bottom: 0;\n margin-bottom: 0;\n border-bottom: 0;\n }\n\n & > p {\n font-size: 14px;\n line-height: 21px;\n color: $secondary-text-color;\n margin-bottom: 20px;\n\n strong {\n color: $primary-text-color;\n font-weight: 500;\n\n @each $lang in $cjk-langs {\n &:lang(#{$lang}) {\n font-weight: 700;\n }\n }\n }\n }\n\n hr {\n width: 100%;\n height: 0;\n border: 0;\n border-bottom: 1px solid rgba($ui-base-lighter-color, .6);\n margin: 20px 0;\n\n &.spacer {\n height: 1px;\n border: 0;\n }\n }\n }\n\n @media screen and (max-width: $no-columns-breakpoint) {\n display: block;\n\n .sidebar-wrapper {\n min-height: 0;\n }\n\n .sidebar {\n width: 100%;\n padding: 0;\n height: auto;\n\n &__toggle {\n display: flex;\n }\n\n & > ul {\n display: none;\n }\n\n ul a,\n ul ul a {\n border-radius: 0;\n border-bottom: 1px solid lighten($ui-base-color, 4%);\n transition: none;\n\n &:hover {\n transition: none;\n }\n }\n\n ul ul {\n border-radius: 0;\n }\n\n ul .simple-navigation-active-leaf a {\n border-bottom-color: $ui-highlight-color;\n }\n }\n }\n}\n\nhr.spacer {\n width: 100%;\n border: 0;\n margin: 20px 0;\n height: 1px;\n}\n\nbody,\n.admin-wrapper .content {\n .muted-hint {\n color: $darker-text-color;\n\n a {\n color: $highlight-text-color;\n }\n }\n\n .positive-hint {\n color: $valid-value-color;\n font-weight: 500;\n }\n\n .negative-hint {\n color: $error-value-color;\n font-weight: 500;\n }\n\n .neutral-hint {\n color: $dark-text-color;\n font-weight: 500;\n }\n\n .warning-hint {\n color: $gold-star;\n font-weight: 500;\n }\n}\n\n.filters {\n display: flex;\n flex-wrap: wrap;\n\n .filter-subset {\n flex: 0 0 auto;\n margin: 0 40px 20px 0;\n\n &:last-child {\n margin-bottom: 30px;\n }\n\n ul {\n margin-top: 5px;\n list-style: none;\n\n li {\n display: inline-block;\n margin-right: 5px;\n }\n }\n\n strong {\n font-weight: 500;\n text-transform: uppercase;\n font-size: 12px;\n\n @each $lang in $cjk-langs {\n &:lang(#{$lang}) {\n font-weight: 700;\n }\n }\n }\n\n &--with-select strong {\n display: block;\n margin-bottom: 10px;\n }\n\n a {\n display: inline-block;\n color: $darker-text-color;\n text-decoration: none;\n text-transform: uppercase;\n font-size: 12px;\n font-weight: 500;\n border-bottom: 2px solid $ui-base-color;\n\n &:hover {\n color: $primary-text-color;\n border-bottom: 2px solid lighten($ui-base-color, 5%);\n }\n\n &.selected {\n color: $highlight-text-color;\n border-bottom: 2px solid $ui-highlight-color;\n }\n }\n }\n}\n\n.flavour-screen {\n display: block;\n margin: 10px auto;\n max-width: 100%;\n}\n\n.flavour-description {\n display: block;\n font-size: 16px;\n margin: 10px 0;\n\n & > p {\n margin: 10px 0;\n }\n}\n\n.flavour-screen {\n display: block;\n margin: 10px auto;\n max-width: 100%;\n}\n\n.flavour-description {\n display: block;\n font-size: 16px;\n margin: 10px 0;\n\n & > p {\n margin: 10px 0;\n }\n}\n\n.report-accounts {\n display: flex;\n flex-wrap: wrap;\n margin-bottom: 20px;\n}\n\n.report-accounts__item {\n display: flex;\n flex: 250px;\n flex-direction: column;\n margin: 0 5px;\n\n & > strong {\n display: block;\n margin: 0 0 10px -5px;\n font-weight: 500;\n font-size: 14px;\n line-height: 18px;\n color: $secondary-text-color;\n\n @each $lang in $cjk-langs {\n &:lang(#{$lang}) {\n font-weight: 700;\n }\n }\n }\n\n .account-card {\n flex: 1 1 auto;\n }\n}\n\n.report-status,\n.account-status {\n display: flex;\n margin-bottom: 10px;\n\n .activity-stream {\n flex: 2 0 0;\n margin-right: 20px;\n max-width: calc(100% - 60px);\n\n .entry {\n border-radius: 4px;\n }\n }\n}\n\n.report-status__actions,\n.account-status__actions {\n flex: 0 0 auto;\n display: flex;\n flex-direction: column;\n\n .icon-button {\n font-size: 24px;\n width: 24px;\n text-align: center;\n margin-bottom: 10px;\n }\n}\n\n.simple_form.new_report_note,\n.simple_form.new_account_moderation_note {\n max-width: 100%;\n}\n\n.batch-form-box {\n display: flex;\n flex-wrap: wrap;\n margin-bottom: 5px;\n\n #form_status_batch_action {\n margin: 0 5px 5px 0;\n font-size: 14px;\n }\n\n input.button {\n margin: 0 5px 5px 0;\n }\n\n .media-spoiler-toggle-buttons {\n margin-left: auto;\n\n .button {\n overflow: visible;\n margin: 0 0 5px 5px;\n float: right;\n }\n }\n}\n\n.back-link {\n margin-bottom: 10px;\n font-size: 14px;\n\n a {\n color: $highlight-text-color;\n text-decoration: none;\n\n &:hover {\n text-decoration: underline;\n }\n }\n}\n\n.spacer {\n flex: 1 1 auto;\n}\n\n.log-entry {\n line-height: 20px;\n padding: 15px 0;\n background: $ui-base-color;\n border-bottom: 1px solid lighten($ui-base-color, 4%);\n\n &:last-child {\n border-bottom: 0;\n }\n\n &__header {\n display: flex;\n justify-content: flex-start;\n align-items: center;\n color: $darker-text-color;\n font-size: 14px;\n padding: 0 10px;\n }\n\n &__avatar {\n margin-right: 10px;\n\n .avatar {\n display: block;\n margin: 0;\n border-radius: 50%;\n width: 40px;\n height: 40px;\n }\n }\n\n &__content {\n max-width: calc(100% - 90px);\n }\n\n &__title {\n word-wrap: break-word;\n }\n\n &__timestamp {\n color: $dark-text-color;\n }\n\n a,\n .username,\n .target {\n color: $secondary-text-color;\n text-decoration: none;\n font-weight: 500;\n }\n}\n\na.name-tag,\n.name-tag,\na.inline-name-tag,\n.inline-name-tag {\n text-decoration: none;\n color: $secondary-text-color;\n\n .username {\n font-weight: 500;\n }\n\n &.suspended {\n .username {\n text-decoration: line-through;\n color: lighten($error-red, 12%);\n }\n\n .avatar {\n filter: grayscale(100%);\n opacity: 0.8;\n }\n }\n}\n\na.name-tag,\n.name-tag {\n display: flex;\n align-items: center;\n\n .avatar {\n display: block;\n margin: 0;\n margin-right: 5px;\n border-radius: 50%;\n }\n\n &.suspended {\n .avatar {\n filter: grayscale(100%);\n opacity: 0.8;\n }\n }\n}\n\n.speech-bubble {\n margin-bottom: 20px;\n border-left: 4px solid $ui-highlight-color;\n\n &.positive {\n border-left-color: $success-green;\n }\n\n &.negative {\n border-left-color: lighten($error-red, 12%);\n }\n\n &.warning {\n border-left-color: $gold-star;\n }\n\n &__bubble {\n padding: 16px;\n padding-left: 14px;\n font-size: 15px;\n line-height: 20px;\n border-radius: 4px 4px 4px 0;\n position: relative;\n font-weight: 500;\n\n a {\n color: $darker-text-color;\n }\n }\n\n &__owner {\n padding: 8px;\n padding-left: 12px;\n }\n\n time {\n color: $dark-text-color;\n }\n}\n\n.report-card {\n background: $ui-base-color;\n border-radius: 4px;\n margin-bottom: 20px;\n\n &__profile {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 15px;\n\n .account {\n padding: 0;\n border: 0;\n\n &__avatar-wrapper {\n margin-left: 0;\n }\n }\n\n &__stats {\n flex: 0 0 auto;\n font-weight: 500;\n color: $darker-text-color;\n text-transform: uppercase;\n text-align: right;\n\n a {\n color: inherit;\n text-decoration: none;\n\n &:focus,\n &:hover,\n &:active {\n color: lighten($darker-text-color, 8%);\n }\n }\n\n .red {\n color: $error-value-color;\n }\n }\n }\n\n &__summary {\n &__item {\n display: flex;\n justify-content: flex-start;\n border-top: 1px solid darken($ui-base-color, 4%);\n\n &:hover {\n background: lighten($ui-base-color, 2%);\n }\n\n &__reported-by,\n &__assigned {\n padding: 15px;\n flex: 0 0 auto;\n box-sizing: border-box;\n width: 150px;\n color: $darker-text-color;\n\n &,\n .username {\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n }\n\n &__content {\n flex: 1 1 auto;\n max-width: calc(100% - 300px);\n\n &__icon {\n color: $dark-text-color;\n margin-right: 4px;\n font-weight: 500;\n }\n }\n\n &__content a {\n display: block;\n box-sizing: border-box;\n width: 100%;\n padding: 15px;\n text-decoration: none;\n color: $darker-text-color;\n }\n }\n }\n}\n\n.one-line {\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n.ellipsized-ip {\n display: inline-block;\n max-width: 120px;\n overflow: hidden;\n text-overflow: ellipsis;\n vertical-align: middle;\n}\n\n.admin-account-bio {\n display: flex;\n flex-wrap: wrap;\n margin: 0 -5px;\n margin-top: 20px;\n\n > div {\n box-sizing: border-box;\n padding: 0 5px;\n margin-bottom: 10px;\n flex: 1 0 50%;\n }\n\n .account__header__fields,\n .account__header__content {\n background: lighten($ui-base-color, 8%);\n border-radius: 4px;\n height: 100%;\n }\n\n .account__header__fields {\n margin: 0;\n border: 0;\n\n a {\n color: lighten($ui-highlight-color, 8%);\n }\n\n dl:first-child .verified {\n border-radius: 0 4px 0 0;\n }\n\n .verified a {\n color: $valid-value-color;\n }\n }\n\n .account__header__content {\n box-sizing: border-box;\n padding: 20px;\n color: $primary-text-color;\n }\n}\n\n.center-text {\n text-align: center;\n}\n\n.announcements-list {\n border: 1px solid lighten($ui-base-color, 4%);\n border-radius: 4px;\n\n &__item {\n padding: 15px 0;\n background: $ui-base-color;\n border-bottom: 1px solid lighten($ui-base-color, 4%);\n\n &__title {\n padding: 0 15px;\n display: block;\n font-weight: 500;\n font-size: 18px;\n line-height: 1.5;\n color: $secondary-text-color;\n text-decoration: none;\n margin-bottom: 10px;\n\n &:hover,\n &:focus,\n &:active {\n color: $primary-text-color;\n }\n }\n\n &__meta {\n padding: 0 15px;\n color: $dark-text-color;\n }\n\n &__action-bar {\n display: flex;\n justify-content: space-between;\n align-items: center;\n }\n\n &:last-child {\n border-bottom: 0;\n }\n }\n}\n",".dashboard__counters {\n display: flex;\n flex-wrap: wrap;\n margin: 0 -5px;\n margin-bottom: 20px;\n\n & > div {\n box-sizing: border-box;\n flex: 0 0 33.333%;\n padding: 0 5px;\n margin-bottom: 10px;\n\n & > div,\n & > a {\n padding: 20px;\n background: lighten($ui-base-color, 4%);\n border-radius: 4px;\n box-sizing: border-box;\n height: 100%;\n }\n\n & > a {\n text-decoration: none;\n color: inherit;\n display: block;\n\n &:hover,\n &:focus,\n &:active {\n background: lighten($ui-base-color, 8%);\n }\n }\n }\n\n &__num,\n &__text {\n text-align: center;\n font-weight: 500;\n font-size: 24px;\n line-height: 21px;\n color: $primary-text-color;\n font-family: $font-display, sans-serif;\n margin-bottom: 20px;\n line-height: 30px;\n }\n\n &__text {\n font-size: 18px;\n }\n\n &__label {\n font-size: 14px;\n color: $darker-text-color;\n text-align: center;\n font-weight: 500;\n }\n}\n\n.dashboard__widgets {\n display: flex;\n flex-wrap: wrap;\n margin: 0 -5px;\n\n & > div {\n flex: 0 0 33.333%;\n margin-bottom: 20px;\n\n & > div {\n padding: 0 5px;\n }\n }\n\n a:not(.name-tag) {\n color: $ui-secondary-color;\n font-weight: 500;\n text-decoration: none;\n }\n}\n","body.rtl {\n direction: rtl;\n\n .column-header > button {\n text-align: right;\n padding-left: 0;\n padding-right: 15px;\n }\n\n .radio-button__input {\n margin-right: 0;\n margin-left: 10px;\n }\n\n .directory__card__bar .display-name {\n margin-left: 0;\n margin-right: 15px;\n }\n\n .display-name {\n text-align: right;\n }\n\n .notification__message {\n margin-left: 0;\n margin-right: 68px;\n }\n\n .drawer__inner__mastodon > img {\n transform: scaleX(-1);\n }\n\n .notification__favourite-icon-wrapper {\n left: auto;\n right: -26px;\n }\n\n .landing-page__logo {\n margin-right: 0;\n margin-left: 20px;\n }\n\n .landing-page .features-list .features-list__row .visual {\n margin-left: 0;\n margin-right: 15px;\n }\n\n .column-link__icon,\n .column-header__icon {\n margin-right: 0;\n margin-left: 5px;\n }\n\n .compose-form .compose-form__buttons-wrapper .character-counter__wrapper {\n margin-right: 0;\n margin-left: 4px;\n }\n\n .navigation-bar__profile {\n margin-left: 0;\n margin-right: 8px;\n }\n\n .search__input {\n padding-right: 10px;\n padding-left: 30px;\n }\n\n .search__icon .fa {\n right: auto;\n left: 10px;\n }\n\n .columns-area {\n direction: rtl;\n }\n\n .column-header__buttons {\n left: 0;\n right: auto;\n margin-left: 0;\n margin-right: -15px;\n }\n\n .column-inline-form .icon-button {\n margin-left: 0;\n margin-right: 5px;\n }\n\n .column-header__links .text-btn {\n margin-left: 10px;\n margin-right: 0;\n }\n\n .account__avatar-wrapper {\n float: right;\n }\n\n .column-header__back-button {\n padding-left: 5px;\n padding-right: 0;\n }\n\n .column-header__setting-arrows {\n float: left;\n }\n\n .setting-toggle__label {\n margin-left: 0;\n margin-right: 8px;\n }\n\n .status__avatar {\n left: auto;\n right: 10px;\n }\n\n .status,\n .activity-stream .status.light {\n padding-left: 10px;\n padding-right: 68px;\n }\n\n .status__info .status__display-name,\n .activity-stream .status.light .status__display-name {\n padding-left: 25px;\n padding-right: 0;\n }\n\n .activity-stream .pre-header {\n padding-right: 68px;\n padding-left: 0;\n }\n\n .status__prepend {\n margin-left: 0;\n margin-right: 68px;\n }\n\n .status__prepend-icon-wrapper {\n left: auto;\n right: -26px;\n }\n\n .activity-stream .pre-header .pre-header__icon {\n left: auto;\n right: 42px;\n }\n\n .account__avatar-overlay-overlay {\n right: auto;\n left: 0;\n }\n\n .column-back-button--slim-button {\n right: auto;\n left: 0;\n }\n\n .status__relative-time,\n .activity-stream .status.light .status__header .status__meta {\n float: left;\n }\n\n .status__action-bar {\n &__counter {\n margin-right: 0;\n margin-left: 11px;\n\n .status__action-bar-button {\n margin-right: 0;\n margin-left: 4px;\n }\n }\n }\n\n .status__action-bar-button {\n float: right;\n margin-right: 0;\n margin-left: 18px;\n }\n\n .status__action-bar-dropdown {\n float: right;\n }\n\n .privacy-dropdown__dropdown {\n margin-left: 0;\n margin-right: 40px;\n }\n\n .privacy-dropdown__option__icon {\n margin-left: 10px;\n margin-right: 0;\n }\n\n .detailed-status__display-name .display-name {\n text-align: right;\n }\n\n .detailed-status__display-avatar {\n margin-right: 0;\n margin-left: 10px;\n float: right;\n }\n\n .detailed-status__favorites,\n .detailed-status__reblogs {\n margin-left: 0;\n margin-right: 6px;\n }\n\n .fa-ul {\n margin-left: 2.14285714em;\n }\n\n .fa-li {\n left: auto;\n right: -2.14285714em;\n }\n\n .admin-wrapper {\n direction: rtl;\n }\n\n .admin-wrapper .sidebar ul a i.fa,\n a.table-action-link i.fa {\n margin-right: 0;\n margin-left: 5px;\n }\n\n .simple_form .check_boxes .checkbox label {\n padding-left: 0;\n padding-right: 25px;\n }\n\n .simple_form .input.with_label.boolean label.checkbox {\n padding-left: 25px;\n padding-right: 0;\n }\n\n .simple_form .check_boxes .checkbox input[type=\"checkbox\"],\n .simple_form .input.boolean input[type=\"checkbox\"] {\n left: auto;\n right: 0;\n }\n\n .simple_form .input.radio_buttons .radio {\n left: auto;\n right: 0;\n }\n\n .simple_form .input.radio_buttons .radio > label {\n padding-right: 28px;\n padding-left: 0;\n }\n\n .simple_form .input-with-append .input input {\n padding-left: 142px;\n padding-right: 0;\n }\n\n .simple_form .input.boolean label.checkbox {\n left: auto;\n right: 0;\n }\n\n .simple_form .input.boolean .label_input,\n .simple_form .input.boolean .hint {\n padding-left: 0;\n padding-right: 28px;\n }\n\n .simple_form .label_input__append {\n right: auto;\n left: 3px;\n\n &::after {\n right: auto;\n left: 0;\n background-image: linear-gradient(to left, rgba(darken($ui-base-color, 10%), 0), darken($ui-base-color, 10%));\n }\n }\n\n .simple_form select {\n background: darken($ui-base-color, 10%) url(\"data:image/svg+xml;utf8,\") no-repeat left 8px center / auto 16px;\n }\n\n .table th,\n .table td {\n text-align: right;\n }\n\n .filters .filter-subset {\n margin-right: 0;\n margin-left: 45px;\n }\n\n .landing-page .header-wrapper .mascot {\n right: 60px;\n left: auto;\n }\n\n .landing-page__call-to-action .row__information-board {\n direction: rtl;\n }\n\n .landing-page .header .hero .floats .float-1 {\n left: -120px;\n right: auto;\n }\n\n .landing-page .header .hero .floats .float-2 {\n left: 210px;\n right: auto;\n }\n\n .landing-page .header .hero .floats .float-3 {\n left: 110px;\n right: auto;\n }\n\n .landing-page .header .links .brand img {\n left: 0;\n }\n\n .landing-page .fa-external-link {\n padding-right: 5px;\n padding-left: 0 !important;\n }\n\n .landing-page .features #mastodon-timeline {\n margin-right: 0;\n margin-left: 30px;\n }\n\n @media screen and (min-width: 631px) {\n .column,\n .drawer {\n padding-left: 5px;\n padding-right: 5px;\n\n &:first-child {\n padding-left: 5px;\n padding-right: 10px;\n }\n }\n\n .columns-area > div {\n .column,\n .drawer {\n padding-left: 5px;\n padding-right: 5px;\n }\n }\n }\n\n .columns-area--mobile .column,\n .columns-area--mobile .drawer {\n padding-left: 0;\n padding-right: 0;\n }\n\n .public-layout {\n .header {\n .nav-button {\n margin-left: 8px;\n margin-right: 0;\n }\n }\n\n .public-account-header__tabs {\n margin-left: 0;\n margin-right: 20px;\n }\n }\n\n .landing-page__information {\n .account__display-name {\n margin-right: 0;\n margin-left: 5px;\n }\n\n .account__avatar-wrapper {\n margin-left: 12px;\n margin-right: 0;\n }\n }\n\n .card__bar .display-name {\n margin-left: 0;\n margin-right: 15px;\n text-align: right;\n }\n\n .fa-chevron-left::before {\n content: \"\\F054\";\n }\n\n .fa-chevron-right::before {\n content: \"\\F053\";\n }\n\n .column-back-button__icon {\n margin-right: 0;\n margin-left: 5px;\n }\n\n .column-header__setting-arrows .column-header__setting-btn:last-child {\n padding-left: 0;\n padding-right: 10px;\n }\n\n .simple_form .input.radio_buttons .radio > label input {\n left: auto;\n right: 0;\n }\n}\n","$black-emojis: '8ball' 'ant' 'back' 'black_circle' 'black_heart' 'black_large_square' 'black_medium_small_square' 'black_medium_square' 'black_nib' 'black_small_square' 'bomb' 'bowling' 'bust_in_silhouette' 'busts_in_silhouette' 'camera' 'camera_with_flash' 'clubs' 'copyright' 'curly_loop' 'currency_exchange' 'dark_sunglasses' 'eight_pointed_black_star' 'electric_plug' 'end' 'female-guard' 'film_projector' 'fried_egg' 'gorilla' 'guardsman' 'heavy_check_mark' 'heavy_division_sign' 'heavy_dollar_sign' 'heavy_minus_sign' 'heavy_multiplication_x' 'heavy_plus_sign' 'hocho' 'hole' 'joystick' 'kaaba' 'lower_left_ballpoint_pen' 'lower_left_fountain_pen' 'male-guard' 'microphone' 'mortar_board' 'movie_camera' 'musical_score' 'on' 'registered' 'soon' 'spades' 'speaking_head_in_silhouette' 'spider' 'telephone_receiver' 'tm' 'top' 'tophat' 'turkey' 'vhs' 'video_camera' 'video_game' 'water_buffalo' 'waving_black_flag' 'wavy_dash';\n\n%white-emoji-outline {\n filter: drop-shadow(1px 1px 0 $white) drop-shadow(-1px 1px 0 $white) drop-shadow(1px -1px 0 $white) drop-shadow(-1px -1px 0 $white);\n transform: scale(.71);\n}\n\n.emojione {\n @each $emoji in $black-emojis {\n &[title=':#{$emoji}:'] {\n @extend %white-emoji-outline;\n }\n }\n}\n","// Notes!\n// Sass color functions, \"darken\" and \"lighten\" are automatically replaced.\n\nhtml {\n scrollbar-color: $ui-base-color rgba($ui-base-color, 0.25);\n}\n\n// Change the colors of button texts\n.button {\n color: $white;\n\n &.button-alternative-2 {\n color: $white;\n }\n}\n\n.status-card__actions button,\n.status-card__actions a {\n color: rgba($white, 0.8);\n\n &:hover,\n &:active,\n &:focus {\n color: $white;\n }\n}\n\n// Change default background colors of columns\n.column > .scrollable,\n.getting-started,\n.column-inline-form,\n.error-column,\n.regeneration-indicator {\n background: $white;\n border: 1px solid lighten($ui-base-color, 8%);\n border-top: 0;\n}\n\n.directory__card__img {\n background: lighten($ui-base-color, 12%);\n}\n\n.filter-form,\n.directory__card__bar {\n background: $white;\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n}\n\n.scrollable .directory__list {\n width: calc(100% + 2px);\n margin-left: -1px;\n margin-right: -1px;\n}\n\n.directory__card,\n.table-of-contents {\n border: 1px solid lighten($ui-base-color, 8%);\n}\n\n.column-back-button,\n.column-header {\n background: $white;\n border: 1px solid lighten($ui-base-color, 8%);\n\n @media screen and (max-width: $no-gap-breakpoint) {\n border-top: 0;\n }\n\n &--slim-button {\n top: -50px;\n right: 0;\n }\n}\n\n.column-header__back-button,\n.column-header__button,\n.column-header__button.active,\n.account__header__bar,\n.directory__card__extra {\n background: $white;\n}\n\n.column-header__button.active {\n color: $ui-highlight-color;\n\n &:hover,\n &:active,\n &:focus {\n color: $ui-highlight-color;\n background: $white;\n }\n}\n\n.account__header__bar .avatar .account__avatar {\n border-color: $white;\n}\n\n.getting-started__footer a {\n color: $ui-secondary-color;\n text-decoration: underline;\n}\n\n.confirmation-modal__secondary-button,\n.confirmation-modal__cancel-button,\n.mute-modal__cancel-button,\n.block-modal__cancel-button {\n color: lighten($ui-base-color, 26%);\n\n &:hover,\n &:focus,\n &:active {\n color: $primary-text-color;\n }\n}\n\n.column-subheading {\n background: darken($ui-base-color, 4%);\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n}\n\n.getting-started,\n.scrollable {\n .column-link {\n background: $white;\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n\n &:hover,\n &:active,\n &:focus {\n background: $ui-base-color;\n }\n }\n}\n\n.getting-started .navigation-bar {\n border-top: 1px solid lighten($ui-base-color, 8%);\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n\n @media screen and (max-width: $no-gap-breakpoint) {\n border-top: 0;\n }\n}\n\n.compose-form__autosuggest-wrapper,\n.poll__option input[type=\"text\"],\n.compose-form .spoiler-input__input,\n.compose-form__poll-wrapper select,\n.search__input,\n.setting-text,\n.box-widget input[type=\"text\"],\n.box-widget input[type=\"email\"],\n.box-widget input[type=\"password\"],\n.box-widget textarea,\n.statuses-grid .detailed-status,\n.audio-player {\n border: 1px solid lighten($ui-base-color, 8%);\n}\n\n.search__input {\n @media screen and (max-width: $no-gap-breakpoint) {\n border-top: 0;\n border-bottom: 0;\n }\n}\n\n.list-editor .search .search__input {\n border-top: 0;\n border-bottom: 0;\n}\n\n.compose-form__poll-wrapper select {\n background: $simple-background-color url(\"data:image/svg+xml;utf8,\") no-repeat right 8px center / auto 16px;\n}\n\n.compose-form__poll-wrapper,\n.compose-form__poll-wrapper .poll__footer {\n border-top-color: lighten($ui-base-color, 8%);\n}\n\n.notification__filter-bar {\n border: 1px solid lighten($ui-base-color, 8%);\n border-top: 0;\n}\n\n.compose-form .compose-form__buttons-wrapper {\n background: $ui-base-color;\n border: 1px solid lighten($ui-base-color, 8%);\n border-top: 0;\n}\n\n.drawer__header,\n.drawer__inner {\n background: $white;\n border: 1px solid lighten($ui-base-color, 8%);\n}\n\n.drawer__inner__mastodon {\n background: $white url('data:image/svg+xml;utf8,') no-repeat bottom / 100% auto;\n}\n\n// Change the colors used in compose-form\n.compose-form {\n .compose-form__modifiers {\n .compose-form__upload__actions .icon-button {\n color: lighten($white, 7%);\n\n &:active,\n &:focus,\n &:hover {\n color: $white;\n }\n }\n\n .compose-form__upload-description input {\n color: lighten($white, 7%);\n\n &::placeholder {\n color: lighten($white, 7%);\n }\n }\n }\n\n .compose-form__buttons-wrapper {\n background: darken($ui-base-color, 6%);\n }\n\n .autosuggest-textarea__suggestions {\n background: darken($ui-base-color, 6%);\n }\n\n .autosuggest-textarea__suggestions__item {\n &:hover,\n &:focus,\n &:active,\n &.selected {\n background: lighten($ui-base-color, 4%);\n }\n }\n}\n\n.emoji-mart-bar {\n border-color: lighten($ui-base-color, 4%);\n\n &:first-child {\n background: darken($ui-base-color, 6%);\n }\n}\n\n.emoji-mart-search input {\n background: rgba($ui-base-color, 0.3);\n border-color: $ui-base-color;\n}\n\n// Change the background colors of statuses\n.focusable:focus {\n background: $ui-base-color;\n}\n\n.status.status-direct {\n background: lighten($ui-base-color, 4%);\n}\n\n.focusable:focus .status.status-direct {\n background: lighten($ui-base-color, 8%);\n}\n\n.detailed-status,\n.detailed-status__action-bar {\n background: $white;\n}\n\n// Change the background colors of status__content__spoiler-link\n.reply-indicator__content .status__content__spoiler-link,\n.status__content .status__content__spoiler-link {\n background: $ui-base-color;\n\n &:hover {\n background: lighten($ui-base-color, 4%);\n }\n}\n\n// Change the background colors of media and video spoilers\n.media-spoiler,\n.video-player__spoiler {\n background: $ui-base-color;\n}\n\n.privacy-dropdown.active .privacy-dropdown__value.active .icon-button {\n color: $white;\n}\n\n.account-gallery__item a {\n background-color: $ui-base-color;\n}\n\n// Change the colors used in the dropdown menu\n.dropdown-menu {\n background: $white;\n\n &__arrow {\n &.left {\n border-left-color: $white;\n }\n\n &.top {\n border-top-color: $white;\n }\n\n &.bottom {\n border-bottom-color: $white;\n }\n\n &.right {\n border-right-color: $white;\n }\n }\n\n &__item {\n a {\n background: $white;\n color: $darker-text-color;\n }\n }\n}\n\n// Change the text colors on inverted background\n.privacy-dropdown__option.active,\n.privacy-dropdown__option:hover,\n.privacy-dropdown__option.active .privacy-dropdown__option__content,\n.privacy-dropdown__option.active .privacy-dropdown__option__content strong,\n.privacy-dropdown__option:hover .privacy-dropdown__option__content,\n.privacy-dropdown__option:hover .privacy-dropdown__option__content strong,\n.dropdown-menu__item a:active,\n.dropdown-menu__item a:focus,\n.dropdown-menu__item a:hover,\n.actions-modal ul li:not(:empty) a.active,\n.actions-modal ul li:not(:empty) a.active button,\n.actions-modal ul li:not(:empty) a:active,\n.actions-modal ul li:not(:empty) a:active button,\n.actions-modal ul li:not(:empty) a:focus,\n.actions-modal ul li:not(:empty) a:focus button,\n.actions-modal ul li:not(:empty) a:hover,\n.actions-modal ul li:not(:empty) a:hover button,\n.admin-wrapper .sidebar ul .simple-navigation-active-leaf a,\n.simple_form .block-button,\n.simple_form .button,\n.simple_form button {\n color: $white;\n}\n\n.dropdown-menu__separator {\n border-bottom-color: lighten($ui-base-color, 4%);\n}\n\n// Change the background colors of modals\n.actions-modal,\n.boost-modal,\n.confirmation-modal,\n.mute-modal,\n.block-modal,\n.report-modal,\n.embed-modal,\n.error-modal,\n.onboarding-modal,\n.report-modal__comment .setting-text__wrapper,\n.report-modal__comment .setting-text {\n background: $white;\n border: 1px solid lighten($ui-base-color, 8%);\n}\n\n.report-modal__comment {\n border-right-color: lighten($ui-base-color, 8%);\n}\n\n.report-modal__container {\n border-top-color: lighten($ui-base-color, 8%);\n}\n\n.column-header__collapsible-inner {\n background: darken($ui-base-color, 4%);\n border: 1px solid lighten($ui-base-color, 8%);\n border-top: 0;\n}\n\n.focal-point__preview strong {\n color: $white;\n}\n\n.boost-modal__action-bar,\n.confirmation-modal__action-bar,\n.mute-modal__action-bar,\n.block-modal__action-bar,\n.onboarding-modal__paginator,\n.error-modal__footer {\n background: darken($ui-base-color, 6%);\n\n .onboarding-modal__nav,\n .error-modal__nav {\n &:hover,\n &:focus,\n &:active {\n background-color: darken($ui-base-color, 12%);\n }\n }\n}\n\n.display-case__case {\n background: $white;\n}\n\n.embed-modal .embed-modal__container .embed-modal__html {\n background: $white;\n border: 1px solid lighten($ui-base-color, 8%);\n\n &:focus {\n border-color: lighten($ui-base-color, 12%);\n background: $white;\n }\n}\n\n.react-toggle-track {\n background: $ui-secondary-color;\n}\n\n.react-toggle:hover:not(.react-toggle--disabled) .react-toggle-track {\n background: darken($ui-secondary-color, 10%);\n}\n\n.react-toggle.react-toggle--checked:hover:not(.react-toggle--disabled) .react-toggle-track {\n background: lighten($ui-highlight-color, 10%);\n}\n\n// Change the default color used for the text in an empty column or on the error column\n.empty-column-indicator,\n.error-column {\n color: $primary-text-color;\n background: $white;\n}\n\n.tabs-bar {\n background: $white;\n border: 1px solid lighten($ui-base-color, 8%);\n border-bottom: 0;\n\n @media screen and (max-width: $no-gap-breakpoint) {\n border-top: 0;\n }\n\n &__link {\n padding-bottom: 14px;\n border-bottom-width: 1px;\n border-bottom-color: lighten($ui-base-color, 8%);\n\n &:hover,\n &:active,\n &:focus {\n background: $ui-base-color;\n }\n\n &.active {\n &:hover,\n &:active,\n &:focus {\n background: transparent;\n border-bottom-color: $ui-highlight-color;\n }\n }\n }\n}\n\n// Change the default colors used on some parts of the profile pages\n.activity-stream-tabs {\n background: $account-background-color;\n border-bottom-color: lighten($ui-base-color, 8%);\n}\n\n.box-widget,\n.nothing-here,\n.page-header,\n.directory__tag > a,\n.directory__tag > div,\n.landing-page__call-to-action,\n.contact-widget,\n.landing .hero-widget__text,\n.landing-page__information.contact-widget {\n background: $white;\n border: 1px solid lighten($ui-base-color, 8%);\n\n @media screen and (max-width: $no-gap-breakpoint) {\n border-left: 0;\n border-right: 0;\n border-top: 0;\n }\n}\n\n.landing .hero-widget__text {\n border-top: 0;\n border-bottom: 0;\n}\n\n.simple_form {\n input[type=text],\n input[type=number],\n input[type=email],\n input[type=password],\n textarea {\n &:hover {\n border-color: lighten($ui-base-color, 12%);\n }\n }\n}\n\n.landing .hero-widget__footer {\n background: $white;\n border: 1px solid lighten($ui-base-color, 8%);\n border-top: 0;\n\n @media screen and (max-width: $no-gap-breakpoint) {\n border: 0;\n }\n}\n\n.brand__tagline {\n color: $ui-secondary-color;\n}\n\n.directory__tag > a {\n &:hover,\n &:active,\n &:focus {\n background: $ui-base-color;\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n border: 0;\n }\n}\n\n.directory__tag.active > a,\n.directory__tag.active > div {\n border-color: $ui-highlight-color;\n\n &,\n h4,\n h4 small,\n .fa,\n .trends__item__current {\n color: $white;\n }\n\n &:hover,\n &:active,\n &:focus {\n background: $ui-highlight-color;\n }\n}\n\n.batch-table {\n &__toolbar,\n &__row,\n .nothing-here {\n border-color: lighten($ui-base-color, 8%);\n }\n}\n\n.activity-stream {\n border: 1px solid lighten($ui-base-color, 8%);\n\n &--under-tabs {\n border-top: 0;\n }\n\n .entry {\n background: $account-background-color;\n\n .detailed-status.light,\n .more.light,\n .status.light {\n border-bottom-color: lighten($ui-base-color, 8%);\n }\n }\n\n .status.light {\n .status__content {\n color: $primary-text-color;\n }\n\n .display-name {\n strong {\n color: $primary-text-color;\n }\n }\n }\n}\n\n.accounts-grid {\n .account-grid-card {\n .controls {\n .icon-button {\n color: $darker-text-color;\n }\n }\n\n .name {\n a {\n color: $primary-text-color;\n }\n }\n\n .username {\n color: $darker-text-color;\n }\n\n .account__header__content {\n color: $primary-text-color;\n }\n }\n}\n\n.simple_form,\n.table-form {\n .warning {\n box-shadow: none;\n background: rgba($error-red, 0.5);\n text-shadow: none;\n }\n\n .recommended {\n border-color: $ui-highlight-color;\n color: $ui-highlight-color;\n background-color: rgba($ui-highlight-color, 0.1);\n }\n}\n\n.compose-form .compose-form__warning {\n border-color: $ui-highlight-color;\n background-color: rgba($ui-highlight-color, 0.1);\n\n &,\n a {\n color: $ui-highlight-color;\n }\n}\n\n.status__content,\n.reply-indicator__content {\n a {\n color: $highlight-text-color;\n }\n}\n\n.button.logo-button {\n color: $white;\n\n svg {\n fill: $white;\n }\n}\n\n.public-layout {\n .account__section-headline {\n border: 1px solid lighten($ui-base-color, 8%);\n\n @media screen and (max-width: $no-gap-breakpoint) {\n border-top: 0;\n }\n }\n\n .header,\n .public-account-header,\n .public-account-bio {\n box-shadow: none;\n }\n\n .public-account-bio,\n .hero-widget__text {\n background: $account-background-color;\n border: 1px solid lighten($ui-base-color, 8%);\n }\n\n .header {\n background: $ui-base-color;\n border: 1px solid lighten($ui-base-color, 8%);\n\n @media screen and (max-width: $no-gap-breakpoint) {\n border: 0;\n }\n\n .brand {\n &:hover,\n &:focus,\n &:active {\n background: lighten($ui-base-color, 4%);\n }\n }\n }\n\n .public-account-header {\n &__image {\n background: lighten($ui-base-color, 12%);\n\n &::after {\n box-shadow: none;\n }\n }\n\n &__bar {\n &::before {\n background: $account-background-color;\n border: 1px solid lighten($ui-base-color, 8%);\n border-top: 0;\n }\n\n .avatar img {\n border-color: $account-background-color;\n }\n\n @media screen and (max-width: $no-columns-breakpoint) {\n background: $account-background-color;\n border: 1px solid lighten($ui-base-color, 8%);\n border-top: 0;\n }\n }\n\n &__tabs {\n &__name {\n h1,\n h1 small {\n color: $white;\n\n @media screen and (max-width: $no-columns-breakpoint) {\n color: $primary-text-color;\n }\n }\n }\n }\n\n &__extra {\n .public-account-bio {\n border: 0;\n }\n\n .public-account-bio .account__header__fields {\n border-color: lighten($ui-base-color, 8%);\n }\n }\n }\n}\n\n.notification__filter-bar button.active::after,\n.account__section-headline a.active::after {\n border-color: transparent transparent $white;\n}\n\n.hero-widget,\n.box-widget,\n.contact-widget,\n.landing-page__information.contact-widget,\n.moved-account-widget,\n.memoriam-widget,\n.activity-stream,\n.nothing-here,\n.directory__tag > a,\n.directory__tag > div,\n.card > a,\n.page-header,\n.compose-form .compose-form__warning {\n box-shadow: none;\n}\n\n.audio-player .video-player__controls button,\n.audio-player .video-player__time-sep,\n.audio-player .video-player__time-current,\n.audio-player .video-player__time-total {\n color: $primary-text-color;\n}\n"],"sourceRoot":""} \ No newline at end of file diff --git a/priv/static/packs/skins/vanilla/mastodon-light/common.js b/priv/static/packs/skins/vanilla/mastodon-light/common.js deleted file mode 100644 index 18bbb7f3b..000000000 Binary files a/priv/static/packs/skins/vanilla/mastodon-light/common.js and /dev/null differ diff --git a/priv/static/packs/skins/vanilla/mastodon-light/common.js.map b/priv/static/packs/skins/vanilla/mastodon-light/common.js.map deleted file mode 100644 index 1730e2ceb..000000000 Binary files a/priv/static/packs/skins/vanilla/mastodon-light/common.js.map and /dev/null differ diff --git a/priv/static/packs/skins/vanilla/win95/common.css b/priv/static/packs/skins/vanilla/win95/common.css deleted file mode 100644 index 9e1c6e9e0..000000000 Binary files a/priv/static/packs/skins/vanilla/win95/common.css and /dev/null differ diff --git a/priv/static/packs/skins/vanilla/win95/common.css.map b/priv/static/packs/skins/vanilla/win95/common.css.map deleted file mode 100644 index 74f240491..000000000 --- a/priv/static/packs/skins/vanilla/win95/common.css.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["webpack:///common.scss","webpack:///./app/javascript/styles/win95.scss","webpack:///./app/javascript/styles/mastodon/reset.scss","webpack:///./app/javascript/styles/mastodon/variables.scss","webpack:///./app/javascript/styles/mastodon/basics.scss","webpack:///./app/javascript/styles/mastodon/containers.scss","webpack:///./app/javascript/styles/mastodon/lists.scss","webpack:///./app/javascript/styles/mastodon/footer.scss","webpack:///./app/javascript/styles/mastodon/compact_header.scss","webpack:///./app/javascript/styles/mastodon/widgets.scss","webpack:///./app/javascript/styles/mastodon/forms.scss","webpack:///./app/javascript/styles/mastodon/accounts.scss","webpack:///./app/javascript/styles/mastodon/statuses.scss","webpack:///./app/javascript/styles/mastodon/boost.scss","webpack:///./app/javascript/styles/mastodon/components.scss","webpack:///","webpack:///./app/javascript/styles/mastodon/_mixins.scss","webpack:///./app/javascript/styles/mastodon/polls.scss","webpack:///./app/javascript/styles/mastodon/modal.scss","webpack:///./app/javascript/styles/mastodon/emoji_picker.scss","webpack:///./app/javascript/styles/mastodon/about.scss","webpack:///./app/javascript/styles/mastodon/tables.scss","webpack:///./app/javascript/styles/mastodon/admin.scss","webpack:///./app/javascript/styles/mastodon/dashboard.scss","webpack:///./app/javascript/styles/mastodon/rtl.scss","webpack:///./app/javascript/styles/mastodon/accessibility.scss"],"names":[],"mappings":"AAAA,WCwEA,wBACE,+DACA,4ZCrEF,QAaE,UACA,SACA,eACA,aACA,wBACA,+EAIF,aAEE,MAGF,aACE,OAGF,eACE,cAGF,WACE,qDAGF,UAEE,aACA,OAGF,wBACE,iBACA,MAGF,sCACE,qBAGF,UACE,YACA,2BAGF,kBACE,cACA,mBACA,iCAGF,kBACE,kCAGF,kBACE,2BAGF,aACE,gBACA,0BACA,CCtEW,iED6Eb,kBC7Ea,4BDiFb,sBACE,MErFF,iDACE,mBACA,CACA,gBACA,gBACA,WDXM,kCCaN,6BACA,8BACA,CADA,0BACA,CADA,qBACA,0CACA,wCACA,kBAEA,iKAYE,eAGF,SACE,oCAEA,WACE,iBACA,kBACA,uCAGF,iBACE,WACA,YACA,mCAGF,iBACE,cAIJ,kBD7CW,kBCiDX,iBACE,kBACA,0BAEA,iBACE,aAIJ,iBACE,YAGF,kBACE,SACA,iBACA,uBAEA,iBACE,WACA,YACA,gBACA,YAIJ,kBACE,UACA,YAGF,iBACE,kBACA,cD3EoB,mBAPX,WCqFT,YACA,UACA,aACA,uBACA,mBACA,oBAEA,qBACE,YACA,sCAGE,aACE,gBACA,WACA,YACA,kBACA,uBAIJ,cACE,iBACA,gBACA,QAMR,mBACE,eACA,cAEA,YACE,kDAKF,YAGE,WACA,mBACA,uBACA,oBACA,sBAGF,YACE,yEAKF,gBAEE,+EAKF,WAEE,sCAIJ,qBAEE,eACA,gBACA,gBACA,cACA,kBACA,8CAEA,eACE,0CAGF,mBACE,gEAEA,eACE,0CAIJ,aHlLoB,kKGqLlB,oBAGE,sDAIJ,aH9LgB,eGgMd,0DAEA,aHlMc,oDGuMhB,cACE,SACA,uBACA,cH1Mc,aG4Md,UACA,SACA,oBACA,eACA,UACA,4BACA,0BACA,gMAEA,oBAGE,kEAGF,aD9NY,gBCgOV,gBCnON,WACE,CACA,kBACA,qCAEA,eALF,UAMI,SACA,kBAIJ,sBACE,qCAEA,gBAHF,kBAII,qBAGF,YACE,uBACA,mBACA,wBAEA,SFrBI,YEuBF,kBACA,sBAGF,YACE,uBACA,mBACA,WF9BE,qBEgCF,UACA,kBACA,iBACA,6CACA,gBACA,eACA,mCAMJ,WACE,CACA,cACA,mBACA,sBACA,qCAEA,kCAPF,UAQI,aACA,aACA,kBAKN,WACE,CACA,YACA,eACA,iBACA,sBACA,CACA,gBACA,CACA,sBACA,qCAEA,gBAZF,UAaI,CACA,eACA,CACA,mBACA,0BAGF,UACE,YACA,iBACA,6BAEA,UACE,YACA,cACA,SACA,kBACA,uBAIJ,aACE,cF7EsB,wBE+EtB,iCAEA,aACE,gBACA,uBACA,gBACA,8BAIJ,aACE,eACA,iBACA,gBACA,SAIJ,YACE,cACA,8BACA,sBACA,mCACA,CADA,0BACA,mBAEA,eACE,WACA,mBAGF,aACE,WACA,mBAGF,aACE,WACA,mBAGF,eACE,WACA,qCAGF,QA3BF,UA4BI,qCACA,mBAEA,aACE,mBAGF,aACE,WACA,mBAGF,aACE,WACA,mBAGF,aACE,WACA,UAKN,YACE,cACA,8CACA,sBACA,mCACA,CADA,0BACA,mBAEA,eACE,WACA,mBAGF,eACE,WACA,mBAGF,aACE,WACA,mBAGF,eACE,WACA,mBAGF,aACE,WACA,uCAGF,eACE,wBAGF,kBACE,qCAGF,QAxCF,iDAyCI,uCAEA,YACE,aACA,mBACA,uBACA,iCAGF,UACE,uBACA,mBACA,sBAGF,YACE,sCAIJ,QA7DF,UA8DI,qCACA,mBAEA,aACE,mBAGF,aACE,WACA,mBAGF,aACE,WACA,mBAGF,aACE,WACA,mBAGF,aACE,WACA,sCAMJ,eADF,gBAEI,4BAGF,eACE,qCAEA,0BAHF,SAII,yBAIJ,kBACE,mCACA,kBACA,YACA,cACA,aACA,oBACA,uBACA,iBACA,gBACA,qCAEA,uBAZF,cAaI,WACA,MACA,OACA,SACA,gBACA,gBACA,YACA,6BAGF,cACE,eACA,kCAGF,YACE,oBACA,2BACA,iBACA,oCAGF,YACE,oBACA,uBACA,iBACA,mCAGF,YACE,oBACA,yBACA,iBACA,+BAGF,aACE,aACA,mCAEA,aACE,YACA,WACA,kBACA,YACA,UFxUA,qCE2UA,kCARF,WASI,+GAIJ,kBAGE,kCAIJ,YACE,mBACA,eACA,eACA,gBACA,qBACA,cF7UkB,mBE+UlB,kBACA,uHAEA,yBAGE,WFrWA,qCEyWF,0CACE,YACE,qCAKN,kBACE,CACA,oBACA,kBACA,6HAEA,oBAGE,mBACA,sBAON,YACE,cACA,0DACA,sBACA,mCACA,CADA,0BACA,gCAEA,UACE,cACA,gCAGF,UACE,cACA,qCAGF,qBAjBF,0BAkBI,WACA,gCAEA,YACE,kCAKN,iBACE,qCAEA,gCAHF,eAII,sCAKF,4BADF,eAEI,wCAIJ,eACE,mBACA,mCACA,gDAEA,UACE,qIAEA,8BAEE,CAFF,sBAEE,6DAGF,wBFtaoB,8CE2atB,yBACE,gBACA,aACA,kBACA,gBACA,oDAEA,UACE,cACA,kBACA,WACA,YACA,gDACA,MACA,OACA,kDAGF,mBACE,CADF,8BACE,CADF,gBACE,cACA,WACA,YACA,SACA,0BACA,qCAGF,6CA3BF,YA4BI,gDAIJ,eACE,6JAEA,iBAEE,qCAEA,4JAJF,eAKI,sCAKN,sCA/DF,eAgEI,gBACA,oDAEA,YACE,+FAGF,eAEE,6CAIJ,iBACE,iBACA,aACA,2BACA,mDAEA,UACE,cACA,mBACA,kBACA,SACA,OACA,QACA,YACA,0BACA,WACA,oDAGF,aACE,YACA,aACA,kBACA,cACA,wDAEA,aACE,WACA,YACA,SACA,kBACA,yBACA,mBACA,qCAIJ,2CArCF,YAsCI,mBACA,0BACA,YACA,mDAEA,YACE,oDAGF,UACE,YACA,CACA,sBACA,wDAEA,QACE,kBACA,2DAGF,mDAXF,YAYI,sCAKN,2CAhEF,eAiEI,sCAGF,2CApEF,cAqEI,8CAIJ,aACE,iBACA,mDAEA,gBACE,mBACA,sDAEA,cACE,iBACA,WF1kBF,gBE4kBE,gBACA,mBACA,uBACA,6BACA,4DAEA,aACE,eACA,WFplBJ,gBEslBI,gBACA,uBACA,qCAKN,4CA7BF,gBA8BI,aACA,8BACA,mBACA,mDAEA,aACE,iBACA,sDAEA,cACE,iBACA,iBACA,4DAEA,aF5lBY,oDEmmBlB,YACE,2BACA,oBACA,YACA,qEAEA,YACE,mBACA,gBACA,qCAGF,oEACE,YACE,6DAIJ,eACE,sBACA,cACA,cFxnBc,aE0nBd,+BACA,eACA,kBACA,kBACA,8DAEA,aACE,uEAGF,cACE,kEAGF,aACE,WACA,kBACA,SACA,OACA,WACA,gCACA,WACA,wBACA,yEAIA,+BACE,UACA,kFAGF,2BFzpBc,wEE+pBd,SACE,wBACA,8DAIJ,oBACE,cACA,2EAGF,cACE,cACA,4EAGF,eACE,eACA,kBACA,WFnsBJ,6CEqsBI,2DAIJ,aACE,WACA,4DAGF,eACE,8CAKN,YACE,eACA,kEAEA,eACE,gBACA,uBACA,cACA,2FAEA,4BACE,yEAGF,YACE,qDAIJ,gBACE,eACA,cFztBgB,uDE4tBhB,oBACE,cF7tBc,qBE+tBd,aACA,gBACA,8DAEA,eACE,WFpvBJ,qCE0vBF,6CAtCF,aAuCI,UACA,4CAKN,yBACE,qCAEA,0CAHF,eAII,wCAIJ,eACE,oCAGF,kBACE,mCACA,kBACA,gBACA,mBACA,qCAEA,mCAPF,eAQI,gBACA,gBACA,8DAGF,QACE,aACA,+DAEA,aACE,sFAGF,uBACE,yEAGF,aFryBU,8DE2yBV,mBACA,WF7yBE,qFEizBJ,YAEE,eACA,cFpyBkB,2CEwyBpB,gBACE,iCAIJ,YACE,cACA,kDACA,qCAEA,gCALF,aAMI,+CAGF,cACE,iCAIJ,eACE,2BAGF,YACE,eACA,eACA,cACA,+BAEA,qBACE,cACA,YACA,cACA,mBACA,kBACA,qCAEA,8BARF,aASI,sCAGF,8BAZF,cAaI,sCAIJ,0BAvBF,QAwBI,6BACA,+BAEA,UACE,UACA,gBACA,gCACA,0CAEA,eACE,0CAGF,kBF32BK,+IE82BH,kBAGE,WC53BZ,eACE,aAEA,oBACE,aACA,iBAIJ,eACE,cACA,oBAEA,cACE,gBACA,mBACA,wBCfF,eACE,iBACA,oBACA,eACA,cACA,qCAEA,uBAPF,iBAQI,mBACA,+BAGF,YACE,cACA,0CACA,wCAEA,aACE,WACA,YACA,wCAGF,aACE,WACA,YACA,wCAGF,aACE,WACA,YACA,kBACA,6CAEA,aACE,wCAIJ,aACE,WACA,YACA,wCAGF,aACE,WACA,YACA,qCAGF,6BAxCF,iCAyCI,+EAEA,aAEE,wCAGF,UACE,wCAGF,aACE,+EAGF,aAEE,wCAGF,UACE,sCAIJ,uCACE,aACE,sCAIJ,4JACE,YAIE,4BAKN,wBACE,gBACA,kBACA,cJhFkB,6BImFlB,aACE,qBACA,6BAIJ,oBACE,cACA,wGAEA,yBAGE,mCAKF,aACE,YACA,WACA,cACA,aACA,0HAMA,YACE,oBClIR,cACE,iBACA,cLeoB,gBKbpB,mBACA,eACA,qBACA,qCAEA,mBATF,iBAUI,oBACA,uBAGF,aACE,qBACA,0BAGF,eACE,cLFoB,wBKMtB,oBACE,mBACA,kBACA,WACA,YACA,cC9BN,kBACE,mCACA,mBAEA,UACE,kBACA,gBACA,0BACA,gBNPI,uBMUJ,mBACE,CADF,8BACE,CADF,gBACE,cACA,WACA,YACA,SACA,0BACA,oBAIJ,kBNVW,aMYT,0BACA,eACA,cNPoB,iBMSpB,qBACA,gBACA,8BAEA,UACE,YACA,gBACA,sBAGF,kBACE,iCAEA,eACE,uBAIJ,cACE,SACA,UACA,gBACA,uBACA,oBACA,kBACA,oBACA,cACA,sBAGF,aNtCsB,qBMwCpB,4BAEA,yBACE,qCAKN,aAnEF,YAoEI,uBAIJ,kBACE,oBACA,yBAEA,YACE,yBACA,gBACA,eACA,cN9DoB,+BMkEtB,cACE,0CAEA,eACE,sDAGF,YACE,mBACA,gDAGF,UACE,YACA,0BACA,oCAIJ,YACE,mBAKF,aN3FsB,aMgGxB,YACE,kBACA,mBNzGW,mCM2GX,qBAGF,YACE,kBACA,0BACA,kBACA,cN3GsB,mBM6GtB,iBAGF,eACE,eACA,cNlHsB,iBMoHtB,qBACA,gBACA,UACA,oBAEA,YACE,yBACA,gBACA,eACA,cN7HoB,0BMiItB,eACE,CACA,kBACA,mBAGF,oBACE,CACA,mBACA,cN1IoB,qBM4IpB,mBACA,gBACA,uBACA,0EAEA,yBAGE,uBAMJ,sBACA,kBACA,mBNnKW,mCMqKX,cN7JwB,gBM+JxB,mBACA,sDAEA,eAEE,CAII,qXADF,eACE,yBAKN,aACE,0BACA,CAMI,wLAGF,oBAGE,mIAEA,yBACE,gCAMR,kBACE,oCAEA,gBACE,cNzMkB,8DM+MpB,iBACE,eACA,4DAGF,eACE,qBACA,iEAEA,eACE,kBAMR,YACE,CACA,eNlPM,CMoPN,cACA,cNpOsB,mBMsOtB,+BANA,iBACA,CNlPM,kCMgQN,CATA,aAGF,kBACE,CAEA,iBACA,kBACA,cACA,iBAEA,UNjQM,eMmQJ,gBACA,gBACA,mBACA,gBAGF,cACE,cN1PoB,qCM8PtB,aArBF,YAsBI,mBACA,iBAEA,cACE,aAKN,kBN/Qa,kBMiRX,mCACA,iBAEA,qBACE,mBACA,uCAEA,YAEE,mBACA,8BACA,mBN5RO,kBM8RP,aACA,qBACA,cACA,mCACA,0EAIA,kBAGE,0BAIJ,kBRhTkB,eQkThB,8BAGF,UACE,eACA,oBAGF,aACE,eACA,gBACA,WNnUE,mBMqUF,gBACA,uBACA,wBAEA,aNzTkB,0BM6TlB,aACE,gBACA,eACA,eACA,cNjUgB,0IMuUlB,UNvVE,+BM+VJ,aACE,YACA,uDAGF,oBR9VkB,wCQkWlB,eACE,eAKN,YACE,yBACA,gCAEA,aACE,WACA,YACA,kBACA,kBACA,kBACA,mBACA,yBACA,4CAEA,SACE,6CAGF,SACE,6CAGF,SACE,iBAKN,UACE,0BAEA,SACE,SACA,wBAGF,eACE,0BAGF,iBACE,yBACA,cNxYoB,gBM0YpB,aACA,sCAEA,eACE,0BAIJ,cACE,sBACA,gCACA,wCAGF,eACE,wBAGF,WACE,kBACA,eACA,gBACA,WNhbI,8BMmbJ,aACE,cNpakB,gBMsalB,eACA,0BAIJ,SACE,iCACA,qCAGF,kCACE,YACE,sCAYJ,qIAPF,eAQI,gBACA,gBACA,iBAOJ,gBACE,qCAEA,eAHF,oBAII,uBAGF,sBACE,sCAEA,qBAHF,sBAII,sCAGF,qBAPF,UAQI,sCAGF,qBAXF,WAYI,kCAIJ,iBACE,qCAEA,gCAHF,4BAII,iEAIA,eACE,0DAGF,cACE,iBACA,oEAEA,UACE,YACA,gBACA,yFAGF,gBACE,SACA,mKAIJ,eAGE,gBAON,aNrgBsB,iCMogBxB,kBAKI,6BAEA,eACE,kBAIJ,cACE,iBACA,wCAMF,oBACE,gBACA,cRpiBkB,4JQuiBlB,yBAGE,oBAKN,kBACE,gBACA,eACA,kBACA,yBAEA,aACE,gBACA,aACA,CACA,kBACA,gBACA,uBACA,qBACA,WNnkBI,gCMqkBJ,4FAEA,yBAGE,oCAIJ,eACE,0BAGF,iBACE,gCACA,MCplBJ,+CACE,gBACA,iBAGF,eACE,aACA,cACA,qBAIA,kBACE,gBACA,4BAEA,QACE,0CAIA,kBACE,qDAEA,eACE,gDAIJ,iBACE,kBACA,sDAEA,iBACE,SACA,OACA,6BAKN,iBACE,gBACA,gDAEA,mBACE,eACA,gBACA,WPhDA,cOkDA,WACA,4EAGF,iBAEE,mDAGF,eACE,4CAGF,iBACE,QACA,OACA,qCAGF,aT/DgB,0BSiEd,gIAEA,oBAGE,0CAIJ,iBACE,CACA,iBACA,mBAKN,YACE,cACA,0BAEA,qBACE,cACA,UACA,cACA,oBAIJ,aPpFsB,sBOuFpB,aTjGkB,yBSqGlB,iBACE,kBACA,gBACA,uBAGF,eACE,iBACA,sBAIJ,kBACE,wBAGF,aACE,eACA,eACA,qBAGF,kBACE,cPlHoB,iCOqHpB,iBACE,eACA,iBACA,gBACA,gBACA,oBAIJ,kBACE,qBAGF,eACE,CAII,0JADF,eACE,sDAMJ,YACE,4DAEA,mBACE,eACA,WPlKA,gBOoKA,gBACA,cACA,wHAGF,aAEE,sDAIJ,cACE,kBACA,mDAKF,mBACE,eACA,WPxLE,cO0LF,kBACA,qBACA,gBACA,sCAGF,cACE,mCAGF,UACE,sCAIJ,cACE,4CAEA,mBACE,eACA,WP9ME,cOgNF,gBACA,gBACA,4CAGF,kBACE,yCAGF,cACE,CADF,cACE,kDAIJ,oBACE,WACA,OACA,6BAGF,oBACE,cACA,4BAGF,kBACE,8CAEA,eACE,0BAIJ,YACE,CACA,eACA,oBACA,iCAEA,cACE,kCAGF,qBACE,eACA,cACA,eACA,oCAEA,aACE,2CAGF,eACE,6GAIJ,eAEE,qCAGF,yBA9BF,aA+BI,gBACA,kCAEA,cACE,0JAGF,kBAGE,iDAKN,iBACE,oBACA,eACA,WPlSI,cOoSJ,WACA,2CAKE,mBACE,eACA,WP5SA,qBO8SA,WACA,kBACA,gBACA,kBACA,cACA,0DAGF,iBACE,OACA,QACA,SACA,kDAKN,cACE,aACA,yBACA,kBACA,sJAGF,qBAKE,eACA,WP5UI,cO8UJ,WACA,UACA,oBACA,gBACA,mBACA,sBACA,kBACA,aACA,6RAEA,aACE,CAHF,+OAEA,aACE,CAHF,mQAEA,aACE,CAHF,sNAEA,aACE,8LAGF,eACE,oVAGF,oBACE,iOAGF,oBPnWY,oLOuWZ,iBACE,4WAGF,oBTtWkB,mBSyWhB,6CAKF,aACE,gUAGF,oBAME,8CAGF,aACE,gBACA,cACA,eACA,8BAIJ,UACE,uBAGF,eACE,aACA,oCAEA,YACE,mBACA,qEAIJ,aAGE,WACA,SACA,kBACA,mBTvZkB,WENd,eOgaJ,oBACA,YACA,aACA,yBACA,qBACA,kBACA,sBACA,eACA,gBACA,UACA,mBACA,kBACA,sGAEA,cACE,uFAGF,qBACE,gLAGF,qBAEE,kHAGF,wBP3aoB,gGO+apB,kBP7bQ,kHOgcN,wBACE,sOAGF,wBAEE,qBAKN,uBACE,CADF,oBACE,CADF,eACE,sBACA,eACA,WPhdI,cOkdJ,WACA,UACA,oBACA,gBACA,wXACA,sBACA,kBACA,kBACA,mBACA,YACA,iBAGF,4BACE,oCAIA,iBACE,mCAGF,iBACE,UACA,QACA,CACA,qBACA,eACA,cT1eY,oBS4eZ,oBACA,eACA,gBACA,mBACA,gBACA,yCAEA,UACE,cACA,kBACA,MACA,QACA,WACA,UACA,8DACA,4BAKN,iBACE,0CAEA,wBACE,CADF,gBACE,qCAGF,iBACE,MACA,OACA,WACA,YACA,aACA,uBACA,mBACA,8BACA,kBACA,iBACA,gBACA,YACA,8CAEA,iBACE,6HAGE,UP9hBF,aOwiBR,aACE,CACA,kBACA,eACA,gBAGF,kBACE,cPhiBsB,kBOkiBtB,kBACA,mBACA,kBACA,uBAEA,qCACE,iCACA,cPxjBY,sBO4jBd,mCACE,+BACA,cP7jBQ,kBOikBV,oBACE,cPpjBoB,qBOsjBpB,wBAEA,UPxkBI,0BO0kBF,kBAIJ,kBACE,4BAGF,SACE,sBACA,cACA,WACA,SACA,aACA,gDACA,mBPhlBS,WATL,eO4lBJ,SACA,8CAEA,QACE,iHAGF,mBAGE,kCAGF,kBACE,uBAIJ,eACE,CAII,oKADF,eACE,0DAKN,eAzEF,eA0EI,eAIJ,eACE,kBACA,gBAEA,aPjnBsB,qBOmnBpB,sBAEA,yBACE,YAKN,eACE,mBACA,eACA,eAEA,oBACE,kBACA,cAGF,aT/oBoB,yBSipBlB,qBACA,gBACA,2DAEA,aAGE,8BAKN,kBAEE,cPrpBsB,oCOwpBtB,cACE,mBACA,kBACA,4CAGF,aP7pBwB,gBO+pBtB,CAII,mUADF,eACE,0DAKN,6BAtBF,eAuBI,cAIJ,YACE,eACA,uBACA,UAGF,aACE,gBPrsBM,YOusBN,qBACA,mCACA,qBACA,cAEA,aACE,SACA,iBAIJ,kBACE,cPlsBwB,WOosBxB,sBAEA,aACE,eACA,eAKF,kBACE,sBAEA,eACE,CAII,+JADF,eACE,4CASR,qBACE,8BACA,WPjvBI,qCOmvBJ,oCACA,kBACA,aACA,mBACA,gDAEA,UAEE,oLAEA,oBAGE,0DAIJ,eACE,cACA,kBACA,CAII,yYADF,eACE,kEAIJ,eACE,oBAMR,YACE,eACA,mBACA,4DAEA,aAEE,6BAIA,wBACA,cACA,sBAIJ,iBACE,cPxxBsB,0BO2xBtB,iBACE,oBAIJ,eACE,mBACA,uBAEA,cACE,WPrzBI,kBOuzBJ,mBACA,SACA,UACA,4BAGF,aACE,eAIJ,aP/zBc,0SOy0BZ,+CACE,aAIJ,kBACE,sBACA,kBACA,aACA,mBACA,kBACA,kBACA,QACA,mCACA,sBAEA,aACE,8BAGF,sBACE,SACA,aACA,eACA,gDACA,oBAGF,aACE,WACA,oBACA,gBACA,eACA,CACA,oBACA,WACA,iCACA,oBAGF,oBPn3Bc,gBOq3BZ,2BAEA,kBPv3BY,gBOy3BV,oBAKN,kBACE,6BAEA,wBACE,mBACA,eACA,aACA,4BAGF,kBACE,aACA,OACA,sBACA,cACA,cACA,gCAEA,iBACE,YACA,iBACA,kBACA,UACA,8BAGF,qBACE,qCAIJ,kBACE,gCAGF,wBACE,mCACA,kBACA,kBACA,kBACA,kBACA,sCAEA,wBACE,WACA,cACA,YACA,SACA,kBACA,MACA,UACA,yBAIJ,sBACE,aACA,mBACA,SC17BF,aACE,qBACA,cACA,mCACA,qCAEA,QANF,eAOI,8EAMA,kBACE,YAKN,YACE,kBACA,gBACA,0BACA,gBAEA,aACE,WACA,YACA,SACA,oBACA,CADA,8BACA,CADA,gBACA,0BACA,qCAGF,WAfF,YAgBI,sCAGF,WAnBF,YAoBI,aAIJ,iBACE,aACA,aACA,2BACA,mBACA,mBACA,0BACA,qCAEA,WATF,eAUI,qBAGF,aACE,WACA,YACA,gBACA,wBAEA,UACE,YACA,cACA,SACA,kBACA,mBACA,oBACA,CADA,8BACA,CADA,gBACA,0BAIJ,gBACE,gBACA,iCAEA,cACE,WR7EA,gBQ+EA,gBACA,uBACA,+BAGF,aACE,eACA,cRtEgB,gBQwEhB,gBACA,uBACA,aAMR,cACE,kBACA,gBACA,6GAEA,cAME,WR3GI,gBQ6GJ,qBACA,iBACA,qBACA,sBAGF,eRnHM,oBQqHJ,cR5GS,eQ8GT,cACA,kBAGF,cACE,uCAGF,wBAEE,cRhHsB,oBQoHxB,UACE,eACA,wBAEA,oBACE,iBACA,oBAIJ,WACE,gBACA,wBAEA,oBACE,gBACA,uBAIJ,cACE,cACA,qCAGF,YA9DF,iBA+DI,mBAEA,YACE,uCAGF,oBAEE,gBAKN,kBRnKa,mCQqKX,cR9JsB,eQgKtB,gBACA,kBACA,aACA,uBACA,mBACA,eACA,kBACA,aACA,gBACA,2BAEA,yBACE,yBAGF,qBACE,gBACA,yCAIJ,oBAEE,gBACA,eACA,kBACA,eACA,iBACA,gBACA,cR5LwB,sCQ8LxB,sCACA,6DAEA,aRjNc,sCQmNZ,kCACA,qDAGF,aACE,sCACA,kCACA,0BAIJ,eACE,UACA,wBACA,gBACA,CADA,YACA,CACA,iCACA,CADA,uBACA,CADA,kBACA,eACA,iBACA,6BAEA,YACE,gCACA,yDAGF,qBAEE,aACA,kBACA,gBACA,gBACA,mBACA,uBACA,6BAGF,eACE,YACA,cACA,cR3OsB,0BQ6OtB,6BAGF,aACE,cRlPoB,4BQsPtB,aVhQoB,qBUkQlB,qGAEA,yBAGE,oCAIJ,qCACE,iCACA,sCAEA,aRpRY,gBQsRV,0CAGF,aRzRY,wCQ8Rd,eACE,wCAIJ,UACE,0BAIA,aRzRsB,4BQ4RpB,aR3RsB,qBQ6RpB,qGAEA,yBAGE,iCAIJ,URvTI,gBQyTF,wBAIJ,eACE,kBChUJ,kCACE,kBACA,gBACA,mBACA,8BAEA,yBACE,qCAGF,iBAVF,eAWI,gBACA,gBACA,6BAGF,eACE,SACA,gBACA,gFAEA,yBAEE,sCAIJ,UACE,yBAGF,kBTpBW,6GSuBT,sBAGE,CAHF,cAGE,8IAIA,eAGE,0BACA,iJAKF,yBAGE,kLAIA,iBAGE,qCAKN,4GACE,yBAGE,uCAKN,kBACE,qBAIJ,WACE,eACA,mBXzEoB,WENd,oBSkFN,iBACA,YACA,iBACA,SACA,yBAEA,UACE,YACA,sBACA,iBACA,UT5FI,gFSgGN,kBAGE,qNAKA,kBTxFoB,4ISgGpB,kBT9GQ,qCSqHV,wBACE,YACE,0DAOJ,YACE,uCAGF,2BACE,gBACA,uDAEA,SACE,SACA,yDAGF,eACE,yDAGF,gBACE,iBACA,mFAGF,UACE,qMAGF,eAGE,iCC/JN,u+KACE,uCAEA,u+KACE,0CAIJ,u+KACE,WCTF,gCACE,4CACA,kBAGF,mBACE,sBACA,oBACA,gBACA,kBACA,cAGF,aACE,eACA,iBACA,cbRoB,SaUpB,uBACA,UACA,eACA,wCAEA,yBAEE,uBAGF,aXVsB,eWYpB,SAIJ,wBb1BsB,Ya4BpB,kBACA,sBACA,WXpCM,eWsCN,qBACA,oBACA,eACA,gBACA,YACA,iBACA,iBACA,gBACA,eACA,kBACA,kBACA,yBACA,qBACA,uBACA,2BACA,mBACA,WACA,4CAEA,wBAGE,4BACA,sBAGF,eACE,mFAEA,wBXjEQ,gBWqEN,mCAIJ,wBX3DsB,eW8DpB,2BAGF,QACE,wDAGF,mBAGE,yGAGF,cAIE,iBACA,YACA,oBACA,iBACA,4BAGF,aX7FW,mBAOW,qGW0FpB,wBAGE,8BAIJ,kBb7GgB,2GagHd,wBAGE,0BAIJ,aX3GsB,uBW6GpB,iBACA,yBACA,+FAEA,oBAGE,cACA,mCAGF,UACE,uBAIJ,aACE,WACA,kBAIJ,YACE,cACA,kBACA,cAGF,oBACE,CACA,abvJgB,SayJhB,kBACA,uBACA,eACA,2BACA,2CACA,2DAEA,aAGE,oCACA,4BACA,2CACA,oBAGF,kCACE,uBAGF,aACE,6BACA,eACA,qBAGF,abjLoB,gCaqLpB,QACE,uEAGF,mBAGE,uBAGF,abjMgB,sFaoMd,aAGE,oCACA,6BAGF,kCACE,gCAGF,aACE,6BACA,8BAGF,ablNkB,uCaqNhB,aACE,wBAKN,sBACE,0BACA,yBACA,kBACA,YACA,8BAEA,yBACE,mBbrOY,Qa4OhB,kBACA,uBACA,eACA,gBACA,eACA,cACA,iBACA,UACA,2BACA,2CACA,0EAEA,aAGE,oCACA,4BACA,2CACA,yBAGF,kCACE,4BAGF,aACE,6BACA,eACA,0BAGF,abzQoB,qCa6QpB,QACE,sFAGF,mBAGE,CAKF,0BADF,iBAUE,CATA,WAGF,WACE,cACA,qBACA,QACA,SAEA,+BAEA,kBAEE,mBACA,oBACA,kBACA,mBACA,iBAKF,WACE,eAIJ,YACE,iCAGE,mBACA,eAEA,gBACA,wCAEA,ab9TkB,sDakUlB,YACE,2CAGF,oBACE,kBACA,yBACA,sBACA,WACA,YACA,cACA,kBACA,SACA,kBACA,sBACA,kDAEA,oBbnVgB,yDa0VpB,aXvVW,mBWyVT,mBXlVoB,oCWoVpB,iBACA,kBACA,eACA,gBACA,6CAEA,aXjWS,gBWmWP,CAII,kRADF,eACE,wCAKN,abjXc,gBamXZ,0BACA,yIAEA,oBAGE,sCAKN,iBACE,MACA,QACA,kDAGF,iBACE,mGAGF,iBAGE,WACA,8BAGF,QACE,wBACA,UACA,qDAEA,WACE,mBACA,UACA,mFAIJ,aAEE,sBACA,WACA,SACA,cX3ZS,gBATL,aWuaJ,oBACA,eACA,gBACA,SACA,UACA,yIAEA,ab1ac,Cawad,sHAEA,ab1ac,Cawad,8HAEA,ab1ac,Cawad,4GAEA,ab1ac,+Fa8ad,SACE,qCAGF,kFAvBF,cAwBI,sCAIJ,iBACE,+CAGF,gBACE,0BACA,iBACA,mBACA,YACA,qBACA,kEAEA,SACE,qCAGF,8CAZF,sBAaI,gBACA,2DAIJ,iBACE,SACA,kDAGF,qBACE,aACA,kBACA,SACA,WACA,WACA,sCACA,mBX5csB,0BW8ctB,cXtdS,eWwdT,YACA,6FAEA,aACE,wDAIJ,YACE,eACA,kBACA,yPAEA,kBAIE,wGAIJ,YAGE,mBACA,mBACA,2BACA,iBACA,eACA,oCAGF,6BACE,0CAEA,aACE,gBACA,uBACA,mBACA,2CAGF,eACE,0CAGF,aACE,iBACA,gBACA,uBACA,mBACA,8EAIJ,aAEE,iBACA,WACA,YACA,2DAGF,ab5hBgB,wCagiBhB,aX3hBW,oBW6hBT,eACA,gBXviBI,sEW0iBJ,eACE,uEAGF,YACE,mBACA,YACA,eACA,8DAGF,UACE,cACA,WACA,uEAEA,iFACE,aACA,uBACA,8BACA,UACA,4BACA,oFAEA,aACE,cXljBgB,eWojBhB,gBACA,aACA,oBACA,6QAEA,aAGE,8EAIJ,SACE,0EAIJ,iBACE,UACA,SACA,OACA,QACA,sBACA,gFACA,aACA,UACA,4BACA,mFAEA,sBACE,cXllBgB,SWolBhB,UACA,SACA,WACA,oBACA,eACA,gBACA,yFAEA,UX7mBF,8GWinBE,WACE,cXjmBc,CAjBlB,oGWinBE,WACE,cXjmBc,CAjBlB,wGWinBE,WACE,cXjmBc,CAjBlB,+FWinBE,WACE,cXjmBc,iFWsmBlB,SACE,wEAKN,iBACE,sBX/nBE,wBWioBF,sBACA,4BACA,aACA,WACA,gBACA,8CAIJ,YACE,mBACA,0BACA,aACA,8BACA,cACA,qEAEA,YACE,uGAEA,gBACE,qGAGF,YACE,6IAEA,aACE,2IAGF,gBACE,0HAKN,sBAEE,cACA,0EAGF,iBACE,iBACA,sCAIJ,YACE,yBACA,YACA,cACA,4EAEA,eACE,iBACA,oBAKN,cACE,kDACA,eACA,gBACA,cb9rBgB,4CaisBhB,aXlsBY,kCWusBd,2CACE,WC7sBF,8DDktBE,sBACA,CADA,kBACA,wBACA,WACA,YACA,eAEA,UACE,kBAIJ,iBACE,mBACA,mBX7sBsB,aW+sBtB,gBACA,gBACA,cACA,0BAGF,iBACE,gBACA,0BAGF,WACE,iBACA,gCAGF,aXtuBa,cWwuBX,eACA,iBACA,gBACA,mBACA,qBACA,kCAGF,UACE,iBACA,+BAGF,cACE,4CAGF,iBAEE,eACA,iBACA,qBACA,gBACA,gBACA,uBACA,gBACA,WX3wBM,wDW8wBN,SACE,wGAGF,kBACE,sJAEA,oBACE,gEAIJ,UACE,YACA,gBACA,oDAGF,cACE,iBACA,sBACA,CADA,gCACA,CADA,kBACA,gDAGF,kBACE,qBACA,sEAEA,eACE,gDAIJ,aXnyBc,qBWqyBZ,4DAEA,yBACE,oEAEA,aACE,4EAKF,oBACE,sFAEA,yBACE,wDAKN,abj0Bc,8Eas0BhB,aACE,0GAGF,kBb10BgB,sHa60Bd,kBACE,qBACA,8IAGF,QACE,0XAGF,mBAGE,0FAIJ,YACE,wJAEA,aACE,+BAKN,oBACE,gBACA,yCAEA,UACE,YACA,gBACA,iCAGF,kBACE,qBACA,4CAEA,eACE,iCAIJ,aX52BwB,qBW82BtB,uCAEA,yBACE,+CAIA,oBACE,oDAEA,yBACE,gDAKN,aACE,6CAKN,gBACE,oCAGF,aACE,eACA,iBACA,cACA,SACA,uBACA,CACA,eACA,qBACA,oFAEA,yBAEE,gCAIJ,oBACE,kBACA,uBACA,SACA,cXr6BW,gBWu6BX,eACA,cACA,yBACA,iBACA,eACA,sBACA,4BAGF,abr7BkB,Sau7BhB,kBACA,kBACA,oBACA,SACA,aACA,sBACA,WACA,WACA,gCACA,+BAGF,UACE,kBACA,kBAIA,SACE,mBACA,wCAEA,kBACE,8CAEA,sBACE,iFAIJ,kBAEE,SAMJ,yBACA,kBACA,gBACA,gCACA,eACA,UAaA,mCACA,CADA,0BACA,wDAZA,QARF,kBAWI,0BAGF,GACE,aACA,WALA,gBAGF,GACE,aACA,uDAMF,cAEE,kCAGF,kBACE,4BACA,sCAIA,aXj/BoB,qCWq/BpB,aX5/BS,6BWggCT,aXz/BoB,CAPX,kEWwgCT,aXxgCS,kCW2gCP,ab9gCgB,gEakhChB,UXxhCE,mBAgBgB,sEW4gChB,kBACE,+CAQR,sBACE,qEAEA,aACE,qDAKN,ab1iCkB,Ya6iChB,eACA,uBAGF,abjjCkB,qCaqjClB,aACE,eACA,mBACA,eAGF,cACE,mBAGF,+BACE,aACA,6CAEA,uBACE,OACA,gBACA,4DAEA,eACE,8DAGF,SACE,mBACA,qHAGF,cAEE,gBACA,4EAGF,cACE,0BAKN,kBACE,aACA,cACA,uBACA,aACA,kBAGF,gBACE,cbtmCgB,CawmChB,iBACA,eACA,kBACA,+CAEA,ab7mCgB,uBainChB,aACE,gBACA,uBACA,qBAIJ,kBACE,aACA,eACA,8BAEA,mBACE,kBACA,mBACA,yDAEA,gBACE,qCAGF,oBACE,WACA,eACA,gBACA,cb1oCY,4BagpClB,iBACE,8BAGF,cACE,cACA,uCAGF,aACE,aACA,mBACA,uBACA,kBACA,kBAGF,kBACE,kBACA,wBAEA,YACE,eACA,8BACA,uBACA,uFAEA,SAEE,mCAIJ,cACE,iBACA,6CAEA,UACE,YACA,gBACA,kEAGF,gBACE,gBACA,+DAIJ,cAEE,wBAIJ,eACE,cbxsCgB,ea0sChB,iBACA,8BAGF,kBACE,6BACA,gCACA,aACA,mBACA,eACA,wBAGF,aACE,qBACA,uDAGF,oBAEE,gBACA,eACA,gBACA,2BAGF,aX/tCa,eWiuCX,6BAEA,abxuCgB,Sa6uClB,YACE,gCACA,8BAEA,aACE,cACA,WXvvCI,qBWyvCJ,eACA,gBACA,kBAIJ,YACE,iBAGF,WACE,aACA,mBACA,UAGF,YACE,gCACA,kBAEA,SACE,gBACA,2CAEA,aACE,iCAIJ,aACE,cACA,cXxwCoB,gBW0wCpB,qBACA,eACA,mBAIJ,YACE,0BAGF,UACE,iBACA,kBACA,kBAGF,iBE3yCE,iCACA,wBACA,4BACA,kBF0yCA,yBAEA,oBACE,sBACA,iBACA,4BAGF,iBErzCA,iCACA,wBACA,4BACA,kBFozCE,gBACA,kBACA,gCAEA,UACE,kBACA,sBACA,mCAGF,aACE,kBACA,QACA,SACA,+BACA,WXr0CE,6BWu0CF,gBACA,eACA,oBAKN,cACE,0BAGF,UACuB,sCE30CrB,+BF60CA,iBEt1CA,iCACA,wBACA,4BACA,WFq1CuB,sCE/0CvB,kCFk1CA,iBE31CA,iCACA,wBACA,4BACA,WF01CuB,sCEp1CvB,kBFs1CE,SACA,QACA,UACA,wBAIJ,WACE,aACA,mBACA,sBAGF,YACE,6BACA,cbz2CgB,6Ba42ChB,eACE,CAII,kMADF,eACE,wBAKN,eACE,cACA,0BACA,yFAEA,oBAGE,sBAKN,4BACE,gCACA,iBACA,gBACA,cACA,aACA,+BAGF,YACE,4CAEA,qBACE,oFAIA,QACE,WACA,uDAGF,WACE,iBACA,gBACA,WACA,4BAKN,YACE,cACA,iBACA,kBACA,2BAGF,oBACE,gBACA,cACA,+BACA,eACA,oCACA,kCAEA,+BACE,gCAGF,aACE,yBACA,eACA,cX56CoB,kCWg7CtB,aACE,eACA,gBACA,WXn8CI,CWw8CA,2NADF,eACE,oBAMR,iBACE,mDAEA,aACE,mBACA,gBACA,4BAIJ,UACE,kBACA,6JAGF,oBAME,4DAKA,UXx+CM,kBW8+CN,UACE,iKAQF,yBACE,+BAIJ,aACE,gBACA,uBACA,0DAGF,aAEE,sCAGF,kBACE,gCAGF,aX1/C0B,cW4/CxB,iBACA,mBACA,gBACA,2EAEA,aAEE,uBACA,gBACA,uCAGF,cACE,WX1hDI,kCW+hDR,UACE,kBACA,iBAGF,WACE,UACA,kBACA,SACA,WACA,iBAGF,UACE,kBACA,OACA,MACA,YACA,eACA,Cb9iDgB,gHawjDhB,abxjDgB,wBa4jDhB,UACE,wCAGF,kBbhkDgB,cEKL,8CW+jDT,kBACE,qBACA,wBAKN,oBACE,gBACA,eACA,cXlkDsB,eWokDtB,iBACA,kBACA,4BAEA,abllDoB,6BaslDpB,cACE,gBACA,uBACA,uCAIJ,UACE,kBACA,CXjmDU,mEWwmDZ,aXxmDY,uBW4mDZ,aX7mDc,4DWmnDV,4CACE,CADF,oCACE,8DAKF,6CACE,CADF,qCACE,6BAKN,aACE,gBACA,qBACA,mCAEA,UXvoDM,0BWyoDJ,8BAIJ,WACE,eAGF,aACE,eACA,gBACA,uBACA,mBACA,qBAGF,eACE,wBAGF,cACE,+DAKA,yBACE,eAIJ,iBACE,WACA,YACA,aACA,mBACA,uBACA,sBACA,6CAEA,cX9nD4B,eAEC,0DW+nD3B,sBACA,CADA,gCACA,CADA,kBACA,4BAGF,iBACE,qEAGF,YACE,iBAIJ,iBACE,WACA,YACA,aACA,mBACA,uBACA,qBAEA,cXtpD4B,eAEC,WWupD3B,YACA,sBACA,CADA,gCACA,CADA,kBACA,iBAIJ,YACE,aACA,mBACA,cACA,eACA,cXvsDsB,wBW0sDtB,aXzsDwB,mBW6sDxB,aACE,4BAGF,oBACE,0CAGF,iBACE,6DAEA,iBACE,oBACA,qCACA,UACA,4EAGF,mBACE,gCACA,UACA,0BAKN,aACE,gBACA,iBACA,gBACA,gBACA,kCAGF,aACE,gBACA,gBACA,uBACA,+BAGF,aACE,qBACA,WAGF,oBACE,oBAGF,YACE,kBACA,2BAGF,+BACE,mBACA,SACA,gBAGF,kBX1wD0B,cW4wDxB,kBACA,uCACA,aACA,mBAEA,eACE,qBAGF,yBACE,oBAGF,yBACE,uBAGF,sBACE,sBAGF,sBACE,uBAIJ,iBACE,QACA,SACA,2BACA,4BAEA,UACE,gBACA,2BACA,0BX/yDsB,2BWmzDxB,WACE,iBACA,uBACA,yBXtzDsB,8BW0zDxB,QACE,iBACA,uBACA,4BX7zDsB,6BWi0DxB,SACE,gBACA,2BACA,2BXp0DsB,wBW00DxB,cACE,iBACA,cACA,iBACA,sBACA,qBACA,mBXh1DsB,cARb,gBW21DT,uBACA,mBACA,yFAEA,kBbl2DkB,cEWI,UW41DpB,sCAKN,aACE,iBACA,gBACA,QACA,gBACA,aACA,yCAEA,eACE,mBX12DsB,cW42DtB,kBACA,mCACA,gBACA,kBACA,sDAGF,OACE,wDAIA,UACE,8CAIJ,cACE,iBACA,cACA,iBACA,sBACA,qBACA,mBXn4DsB,cARb,gBW84DT,uBACA,mBACA,oDAEA,SACE,oDAGF,kBbz5DkB,cEWI,iBWq5D1B,qBACE,eAGF,YACE,cACA,mBACA,2BACA,gBACA,kBACA,4BAEA,iBACE,uBAGF,YACE,uBACA,WACA,YACA,iBACA,6BAEA,WACE,gBACA,oBACA,aACA,yBACA,gBACA,oCAEA,0BACE,oCAGF,cACE,YACA,oBACA,YACA,6BAIJ,qBACE,WACA,gBACA,cACA,aACA,sBACA,qCAEA,4BARF,cASI,qBAMR,kBACE,wBACA,CADA,eACA,MACA,UACA,cACA,qCAEA,mBAPF,gBAQI,+BAGF,eACE,qCAEA,6BAHF,kBAII,gKAMJ,WAIE,mCAIJ,YACE,mBACA,uBACA,YACA,SAGF,WACE,kBACA,sBACA,aACA,sBACA,qBAEA,kBXlgEW,8BWogET,+BACA,KAIJ,aACE,CACA,qBACA,WACA,YACA,aAJA,YAYA,CARA,QAGF,WACE,sBACA,CACA,qBACA,kBACA,cAGF,aACE,cACA,sBACA,cXrhEsB,qBWuhEtB,kBACA,eACA,oCACA,iBAGF,aAEE,gBACA,qCAGF,cACE,SACE,iBAGF,aAEE,CAEA,gBACA,yCAEA,iBACE,uCAGF,kBACE,qDAKF,gBAEE,kBACA,YAKN,qBACE,aACA,mBACA,cACA,gBACA,iBAGF,aACE,cACA,CACA,sBACA,WX7lEM,qBW+lEN,kBACA,eACA,gBACA,gCACA,2BACA,mDACA,qBAEA,eACE,eACA,qCAMA,mEAHF,kBAII,4BACA,yBAIJ,+BACE,cbhnEkB,sBaonEpB,eACE,aACA,qCAIJ,qBAEI,cACE,wBAKN,qBACE,WACA,YACA,cACA,6DAEA,UAEE,YACA,UACA,wCAGF,YACE,cACA,kDACA,qCAEA,uCALF,aAMI,yCAIJ,eACE,oCAGF,YACE,uDAGF,cACE,sCAGF,gBACE,eACA,CACA,2BACA,yCAGF,QACE,mCAGF,gBACE,yBAEA,kCAHF,eAII,sCAIJ,sBACE,gBACA,sCAGF,uCACE,YACE,iKAEA,eAGE,6CAIJ,gBACE,2EAGF,YAEE,kGAGF,gBACE,+BAGF,2BACE,gBACA,uCAEA,SACE,SACA,wCAGF,eACE,wCAGF,gBACE,iBACA,qDAGF,UACE,gLAGF,eAIE,gCAIJ,iBACE,6CAEA,cACE,8CAKF,gBACE,iBACA,6DAGF,UACE,CAIA,yFAGF,eACE,8DAGF,gBACE,kBACA,0BAMR,cACE,aACA,uBACA,mBACA,gBACA,iBACA,iBACA,gBACA,mBACA,WXpyEM,kBWsyEN,eACA,iBACA,qBACA,sCACA,4FAEA,kBAGE,qCAIJ,UACE,UACE,uDAGF,kCACE,4DAGF,kBAGE,yBAGF,aACE,iBAGF,eAEE,sCAIJ,2CACE,YACE,sCAOA,sEAGF,YACE,uCAIJ,0CACE,YACE,uCAIJ,UACE,YACE,mBAIJ,iBACE,yBAEA,iBACE,SACA,UACA,mBbz2EkB,yBa22ElB,gBACA,kBACA,eACA,gBACA,iBACA,WXt3EI,mDW23ER,oBACE,gBAGF,WACE,gBACA,aACA,sBACA,yBACA,kBACA,gCAEA,gBACE,oBACA,cACA,gBACA,6BAGF,sBACE,8BAGF,MACE,kBACA,aACA,sBACA,iBACA,oBACA,oBACA,mDAGF,eACE,sBX75EI,0BW+5EJ,cACA,gDAGF,iBACE,gDAGF,WACE,mBAIJ,eACE,mBACA,yBACA,gBACA,aACA,sBACA,qBAEA,aACE,sBAGF,aACE,SACA,CACA,4BACA,cACA,qDAHA,sBAOA,gBAMF,WACA,kBAGA,+BANF,qBACE,UACA,CAEA,eACA,aAiBA,CAhBA,eAGF,iBACE,MACA,OACA,mBACA,CAGA,qBACA,CACA,eACA,WACA,YACA,kBACA,uBAEA,kBXp9EW,0BWy9Eb,u1BACE,OACA,gBACA,aACA,8BAEA,aACE,sBACA,CADA,4DACA,CADA,kBACA,+BACA,CADA,2BACA,UACA,YACA,oBACA,eACA,yBACA,CADA,qBACA,CADA,oBACA,CADA,gBACA,sCAGF,yBAjBF,aAkBI,iBAIJ,kBACE,eACA,gBACA,iBAGF,aACE,eACA,mBACA,mBACA,aACA,mBACA,kBACA,mBAEA,iCACE,yBAEA,kBACE,mCACA,aAKN,iBACE,kBACA,cACA,iCACA,mCAEA,eACE,yBAGF,YAVF,cAWI,oBAGF,YACE,sBACA,qBAGF,aACE,kBACA,iBACA,yBAKF,uBADF,YAEI,sBAIJ,qBACE,WACA,mBACA,cb9iFoB,eagjFpB,cACA,eACA,oBACA,SACA,iBACA,aACA,SACA,UACA,UACA,2BAEA,yBACE,6BAIJ,kBACE,SACA,oBACA,cbnkFoB,eaqkFpB,mBACA,eACA,kBACA,UACA,mCAEA,yBACE,wCAGF,kBACE,2BAIJ,oBACE,iBACA,2BAGF,iBACE,kCAGF,cACE,cACA,eACA,aACA,CACA,OACA,UACA,eAGF,oBACE,kBACA,eACA,6BACA,SACA,UACA,yBACA,CADA,qBACA,CADA,oBACA,CADA,gBACA,0CACA,wCACA,iCAGF,QACE,mBACA,WACA,YACA,gBACA,UACA,kBACA,UACA,yBAGF,kBACE,WACA,wBACA,qBAGF,UACE,YACA,UACA,mBACA,yBXroFW,qCWuoFX,sEAGF,wBACE,4CAGF,wBbjpFsB,+EaqpFtB,wBACE,2BAGF,iBACE,WACA,YACA,MACA,SACA,gBACA,mBACA,cACA,SACA,UACA,6BACA,CAKA,uEAFF,SACE,6BAeA,CAdA,sBAGF,iBACE,WACA,YACA,MACA,SACA,gBACA,mBACA,cACA,WAGA,8CAGF,SACE,qBAGF,iBACE,QACA,SACA,WACA,YACA,yBACA,kBACA,yBACA,sBACA,yBACA,sCACA,4CAGF,SACE,qBb7sFoB,caitFtB,kBACE,WXxtFM,cW0tFN,eACA,aACA,qBACA,2DAEA,kBAGE,oBAGF,SACE,2BAGF,sBACE,cXztFsB,kGW4tFtB,sBAGE,WXhvFE,kCWovFJ,ab9uFkB,oBaovFtB,oBACE,iBACA,qBAGF,oBACE,kBACA,CACA,gBACA,CX1vFW,eW6vFX,iBACA,wCANA,cACA,CACA,eACA,mBAaA,CAVA,mBX9vFW,aFLK,iBaywFhB,CAEA,wBACA,eACA,yDAGF,kBX3wFa,cWixFb,aACE,kBAGF,ab1xFkB,ca4xFhB,8BACA,+BACA,4EAEA,0BAGE,CAHF,uBAGE,CAHF,kBAGE,kDAMA,sBACA,YACA,wDAEA,kBACE,8DAGF,cACE,sDAGF,cACE,0DAEA,abxzFY,0Ba0zFV,sDAIJ,oBACE,cXnzFkB,sMWszFlB,yBAGE,oDAKN,ab10FgB,0Bag1FhB,aACE,UACA,mCACA,CADA,0BACA,gBACA,6BAEA,cACE,yBACA,cX50FkB,aW80FlB,gBACA,gCACA,sCAGF,oDACE,YACE,uCAIJ,oDACE,YACE,uCAIJ,yBA3BF,YA4BI,yCAGF,eACE,aACA,iDAEA,aXv2FkB,qBW82FxB,eACE,gBACA,2BAEA,iBACE,aACA,wBAGF,kBACE,yBAGF,oBACE,gBACA,yBACA,yBACA,eAIJ,aACE,sBACA,WACA,SACA,cX94FW,gBATL,aW05FN,oBACA,eACA,gBACA,SACA,UACA,kBACA,qBAEA,SACE,qCAGF,cAnBF,cAoBI,oDAIJ,uBACE,YACA,6CACA,uBACA,sBACA,WACA,0DAEA,sBACE,0DAKJ,uBACE,2BACA,gDAGF,ab17FkB,6Ba47FhB,uDAGF,ab77FsB,cai8FtB,YACE,eACA,yBACA,kBACA,cbv8FgB,gBay8FhB,qBACA,gBACA,uBAEA,QACE,OACA,kBACA,QACA,MAIA,iDAHA,YACA,uBACA,mBAUE,CATF,0BAEA,yBACE,kBACA,iBACA,cAIA,sDAGF,cAEE,cXt9FoB,uBWw9FpB,SACA,cACA,qBACA,eACA,iBACA,sMAEA,UXh/FE,yBWu/FJ,cACE,kBACA,YACA,eAKN,cACE,qBAEA,kBACE,oBAIJ,cACE,cACA,qBACA,WACA,YACA,SACA,2BAIA,UACE,YACA,qBAIJ,aACE,gBACA,kBACA,cX1gGsB,gBW4gGtB,uBACA,mBACA,qBACA,uBAGF,aACE,gBACA,2BACA,2BAGF,aXxhGwB,oBW4hGxB,aACE,eACA,eACA,gBACA,uBACA,mBACA,qBAGF,cACE,mBACA,kBACA,yBAEA,cACE,kBACA,yBACA,QACA,SACA,+BACA,yBAIJ,aACE,6CAEA,UACE,mDAGF,yBACE,6CAGF,mBACE,sBAIJ,oBACE,kCAEA,QACE,4CAIA,oBACA,0CAGF,kBACE,0CAGF,aACE,6BAIJ,wBACE,2BAGF,yBACE,cACA,SACA,WACA,YACA,oBACA,CADA,8BACA,CADA,gBACA,sBACA,wBACA,YAGF,aACE,cbrnGgB,6BaunGhB,SACA,kBACA,kBACA,oBACA,SACA,aACA,sBACA,WACA,WACA,qBACA,kBAEA,kBACE,WAIJ,+BACE,yBAGF,iBACE,eACA,gBACA,cb/oGgB,mBEKL,eW6oGX,aACA,cACA,sBACA,mBACA,uBACA,aACA,qEAGE,aAEE,WACA,aACA,SACA,yCAIJ,gBACE,gCAGF,eACE,uCAEA,aACE,mBACA,cb7qGY,qCairGd,cACE,gBACA,yBAKN,iBACE,cACA,UACA,gCAEA,mCACE,uCAEA,aACE,WACA,kBACA,aACA,OACA,QACA,cACA,UACA,oBACA,YACA,UACA,4EACA,wCAIJ,SACE,kBACA,gBAIJ,YACE,eACA,mBACA,cACA,eACA,kBACA,UACA,UACA,gBACA,2BACA,4BACA,uBAEA,QACE,SACA,yBACA,cACA,uBACA,aACA,gBACA,uBACA,gBACA,mBACA,OACA,4CAGF,ab/uGoB,4CaovGlB,abpvGkB,sCasvGhB,4CAIJ,SAEE,yBAIJ,WACE,aACA,uBAGF,kBACE,iCAGF,iBACE,wBAGF,kBACE,SACA,cXrwGsB,eWuwGtB,eACA,eACA,8BAEA,aACE,CAKA,kEAEA,UXnyGI,mBWqyGF,6BAKN,eACE,gBACA,gBACA,cX7xGsB,0DW+xGtB,UACA,UACA,kBACA,uCAEA,YACE,WACA,uCAGF,iBACE,gCAGF,QACE,uBACA,SACA,6BACA,cACA,mCAIJ,kBACE,aACA,mCAIA,aX5zGsB,0BW8zGpB,gCAIJ,WACE,4DAEA,cACE,uEAEA,eACE,WAKN,oBACE,UACA,oBACA,kBACA,cACA,SACA,uBACA,eACA,sBAGF,oBACE,iBACA,oBAGF,ab12GkB,ea42GhB,gBACA,yBACA,iBACA,kBACA,QACA,SACA,+BACA,yBAEA,aACE,WACA,CACA,0BACA,oBACA,mBACA,4BAIJ,iBACE,QACA,SACA,+BACA,WACA,YACA,sBACA,6BACA,CACA,wBACA,kBACA,2CAGF,2EACE,CADF,mEACE,8CAGF,4EACE,CADF,oEACE,qCAGF,GACE,sBACE,KAGF,2BACE,KAGF,2BACE,KAGF,yBACE,IAGF,wBACE,EArBF,4BAGF,GACE,sBACE,KAGF,2BACE,KAGF,2BACE,KAGF,yBACE,IAGF,wBACE,uCAIJ,GACE,wBACE,KAGF,0BACE,KAGF,2BACE,KAGF,uBACE,IAGF,sBACE,EAtBA,6BAIJ,GACE,wBACE,KAGF,0BACE,KAGF,2BACE,KAGF,uBACE,IAGF,sBACE,mCAIJ,GACE,OACE,SACA,yBACA,KAGF,wBACE,KAGF,UACE,YACA,6BACA,kBACA,UACA,IAGF,UACE,YACA,eACA,UACA,6BACA,EA5BA,yBAIJ,GACE,OACE,SACA,yBACA,KAGF,wBACE,KAGF,UACE,YACA,6BACA,kBACA,UACA,IAGF,UACE,YACA,eACA,UACA,6BACA,kCAIJ,GACE,gBACA,aACA,aAPE,wBAIJ,GACE,gBACA,aACA,gCAGF,kBACE,gBXz+GM,WACA,eW2+GN,aACA,sBACA,YACA,uBACA,eACA,kBACA,kBACA,YACA,gBAGF,eXv/GQ,cAiBgB,SWy+GtB,UACA,WACA,YACA,kBACA,wBACA,CADA,oBACA,CADA,eACA,iEAEA,SAGE,cACA,yBAIJ,aACE,eACA,yBAGF,aACE,eACA,gBACA,iBAGF,KACE,OACA,WACA,YACA,kBACA,YACA,2BAEA,aACE,SACA,QACA,WACA,YACA,6BAGF,mBACE,yBAGF,YACE,0BAGF,aACE,uBACA,WACA,YACA,SACA,iCAEA,oBACE,0BACA,kBACA,iBACA,WXtjHE,gBWwjHF,eACA,+LAMA,yBACE,mEAKF,yBACE,6BAMR,kBACE,iBAGF,kBACE,6BACA,gCACA,aACA,mBACA,eACA,kDAGF,aAEE,kBACA,yBAGF,kBACE,aACA,2BAGF,aXplHwB,eWslHtB,cACA,gBACA,mBACA,kDAIA,kBACE,oDAIA,SEtmHF,sBACA,WACA,SACA,gBACA,oBACA,mBbRW,cAOW,eaItB,SACA,+EFgmHI,aACE,CEjmHN,qEFgmHI,aACE,CEjmHN,yEFgmHI,aACE,CEjmHN,gEFgmHI,aACE,sEAGF,QACE,yLAGF,mBAGE,0DAGF,kBACE,qCAGF,mDArBF,cAsBI,yDAIJ,abxoHc,iBa0oHZ,eACA,4DAGF,gBACE,wDAGF,kBACE,gEAEA,cACE,iNAEA,kBAGE,cACA,gHAKN,aXrpHoB,0HW0pHpB,cAEE,gBACA,cbzqHY,kZa4qHZ,aAGE,gEAIJ,wBACE,iDAGF,eX3rHI,kBa0BN,CAEA,eACA,cbbsB,uCaetB,UF8pHI,mBX5qHoB,oDagBxB,wBACE,cblBoB,eaoBpB,gBACA,mBACA,oDAGF,aACE,oDAGF,kBACE,oDAGF,eACE,cbzCS,sDWwrHT,WACE,mDAGF,aX5rHS,kBW8rHP,eACA,8HAEA,kBAEE,iCAON,kBACE,mBAIJ,UXxtHQ,kBW0tHN,cACA,mBACA,sBX7tHM,yBW+tHN,eACA,gBACA,YACA,kBACA,WACA,yBAEA,SACE,iBAIJ,aACE,iBACA,wBAGF,aX/tHwB,qBWiuHtB,mBACA,gBACA,sBACA,6EAGF,abnvHkB,mBEKL,kBWmvHX,aACA,eACA,gBACA,eACA,aACA,cACA,mBACA,uBACA,yBAEA,4EAfF,cAgBI,6FAGF,eACE,mFAGF,abxwHoB,qBa0wHlB,qGAEA,yBACE,uCAKN,kBACE,aACA,eAGF,qBACE,8BAGF,GACE,kBACE,2CACA,CADA,kCACA,KAGF,oBACE,0CACA,CADA,iCACA,KAGF,oBACE,2CACA,CADA,kCACA,KAGF,oBACE,0CACA,CADA,iCACA,KAGF,kBACE,2CACA,CADA,kCACA,EA1BF,qBAGF,GACE,kBACE,2CACA,CADA,kCACA,KAGF,oBACE,0CACA,CADA,iCACA,KAGF,oBACE,2CACA,CADA,kCACA,KAGF,oBACE,0CACA,CADA,iCACA,KAGF,kBACE,2CACA,CADA,kCACA,mCAIJ,8BACE,2DACA,CADA,kDACA,iCAGF,MACE,sBAEE,0BACA,KAGF,sBACE,aAGF,uBAGE,aAGF,sBAGE,KAGF,uBACE,KAGF,sBACE,EA/BF,wBAGF,MACE,sBAEE,0BACA,KAGF,sBACE,aAGF,uBAGE,aAGF,sBAGE,KAGF,uBACE,KAGF,sBACE,kCAIJ,yBACE,8EACA,CADA,qEACA,8BAGF,eXt2HQ,kBWw2HN,sCACA,kBACA,eAEA,iDAEA,2BACE,2DAGF,UACE,mCAIJ,iBACE,SACA,WACA,eACA,yCAGF,iBACE,UACA,SACA,UACA,gBXl4HM,kBWo4HN,sCACA,gBACA,gDAEA,aACE,eACA,SACA,gBACA,uBACA,iKAEA,+BAGE,2DAIJ,WACE,wBAKF,2BACE,cAIJ,kBACE,0BACA,aACA,YACA,uBACA,OACA,UACA,kBACA,MACA,kBACA,WACA,aACA,gBAEA,mBACE,oBAIJ,WACE,aACA,aACA,sBACA,kBACA,YACA,0BAGF,iBACE,MACA,QACA,SACA,OACA,WACA,kBACA,mBX37HW,kCW67HX,uBAGF,MACE,aACA,mBACA,uBACA,cX57HwB,eW87HxB,gBACA,0BACA,kBACA,kBAGF,YACE,cbl9HgB,gBao9HhB,aACA,sBAEA,cACE,kBACA,uBAGF,cACE,yBACA,gBACA,cACA,0BAIJ,aACE,4BAGF,UACE,WACA,kBACA,mBb3+HgB,kBa6+HhB,eACA,2BAGF,iBACE,OACA,MACA,WACA,mBbn/HoB,kBaq/HpB,eAGF,aACE,wBACA,UACA,eACA,0CAEA,mBAEE,mBAGF,8BACE,CADF,sBACE,WACA,cACA,SACA,WACA,YACA,CAQE,6GAKN,SACE,oBACA,CADA,WACA,6BAGF,iBACE,gBXliIM,uCWoiIN,kBACA,iBACA,gBACA,iCAEA,yBACE,oCAGF,sBACE,2BAIJ,aXziIa,aW2iIX,eACA,aACA,kEAEA,kBbljIoB,WENd,UW4jIJ,CX5jII,4RWikIF,UXjkIE,wCWukIN,kBACE,iCAIJ,YACE,mBACA,uBACA,kBACA,oCAGF,aACE,cbhlIgB,2CamlIhB,eACE,cACA,cXhlIS,CWqlIL,wQADF,eACE,mDAON,eXrmIM,0BWumIJ,qCACA,gEAEA,eACE,0DAGF,kBbxmIkB,uEa2mIhB,UXjnIE,uDWunIN,yBACE,sDAGF,aACE,sCACA,SAIJ,iBACE,gBAGF,SEznIE,sBACA,WACA,SACA,gBACA,oBACA,mBbRW,cAOW,eaItB,SACA,cFmnIA,CACA,2BACA,iBACA,eACA,2CAEA,aACE,CAHF,iCAEA,aACE,CAHF,qCAEA,aACE,CAHF,4BAEA,aACE,kCAGF,QACE,6EAGF,mBAGE,sBAGF,kBACE,qCAGF,eA3BF,cA4BI,kCAKF,QACE,qDAGF,mBAEE,mBAGF,iBACE,SACA,WACA,UACA,qBACA,UACA,0BACA,sCACA,eACA,WACA,YACA,cXzqIsB,eW2qItB,oBACA,0BAEA,mBACE,WACA,0BAIJ,uBACE,iCAEA,mBACE,uBACA,gCAIJ,QACE,uBACA,cb5sIc,ea8sId,uCAEA,uBACE,sCAGF,aACE,yBAKN,ab1tIkB,mBa4tIhB,aACA,gBACA,eACA,eACA,6BAEA,oBACE,iBACA,0BAIJ,iBACE,6BAEA,kBACE,gCACA,eACA,aACA,aACA,gBACA,eACA,cblvIc,iCaqvId,oBACE,iBACA,8FAIJ,eAEE,0BAIJ,aACE,aACA,cXtvIwB,qBWwvIxB,+FAEA,aAGE,0BACA,uBAIJ,YACE,cXpwIsB,kBWswItB,aAGF,iBACE,8BACA,oBACA,aACA,sBAGF,cACE,MACA,OACA,QACA,SACA,0BACA,wBAGF,cACE,MACA,OACA,WACA,YACA,aACA,sBACA,mBACA,uBACA,2BACA,aACA,oBACA,yBACA,CADA,qBACA,CADA,oBACA,CADA,gBACA,oBAGF,mBACE,aACA,aACA,yBAGF,eACE,iBACA,yBAGF,UACE,cAGF,UACE,YACA,kBACA,qCAEA,UACE,YACA,aACA,mBACA,uBACA,2CAEA,cXjyI0B,eAEC,CW2yI7B,8CALF,iBACE,MACA,OACA,QACA,SAYA,CAXA,yBAQA,mBACA,8BACA,oBACA,4BAEA,mBACE,0DAGF,SACE,4DAEA,mBACE,mBAKN,yBACE,sBACA,SACA,WX73IM,eW+3IN,aACA,mBACA,eACA,cACA,cACA,kBACA,kBACA,MACA,SACA,yBAGF,MACE,0BAGF,OACE,CASA,4CANF,UACE,kBACA,kBACA,OACA,YACA,oBAUA,6BAEA,WACE,sBAGF,mBACE,qBACA,gBACA,cX15IsB,mFW65ItB,yBAGE,wBAKN,oBACE,sBAGF,qBX17IQ,YW47IN,WACA,kBACA,YACA,UACA,SACA,YACA,8BAGF,wBb/7IsB,qBam8ItB,iBACE,UACA,QACA,YACA,6CAGF,kBX/7I0B,cARb,kBW48IX,gBACA,aACA,sBACA,oBAGF,WACE,WACA,gBACA,iBACA,kBACA,wBAEA,iBACE,MACA,OACA,WACA,YACA,sBACA,aACA,aACA,CAGA,YACA,UACA,yBACA,CADA,qBACA,CADA,oBACA,CADA,gBACA,2CANA,qBACA,mBACA,uBAaF,CATE,mBAIJ,YACE,CAGA,iBACA,mDAGF,aAEE,mBACA,aACA,aACA,2DAEA,cACE,uLAGF,abngJgB,SasgJd,eACA,gBACA,kBACA,oBACA,YACA,aACA,kBACA,6BACA,+mBAEA,aAGE,yBACA,qiBAGF,aXlhJS,qwDWshJP,aAGE,sBAMR,sBACE,eAGF,iBACE,eACA,mBACA,sBAEA,eACE,cXziJS,kBW2iJT,yBACA,eACA,qBAGF,kBXhjJW,cAQa,gBW2iJtB,aACA,kBACA,kBAIJ,oBACE,eACA,gBACA,iBACA,wFAGF,kBAME,cXtkJW,kBWwkJX,gBACA,eACA,YACA,kBACA,sBACA,4NAEA,aACE,eACA,mBACA,wLAGF,WACE,UACA,kBACA,SACA,WACA,kRAGF,aACE,wBAKF,eX5mJM,CAiBkB,gBW8lJtB,oBACA,iEXhnJI,2BAiBkB,yBWumJ1B,iBACE,aACA,iCAEA,wBACE,CADF,qBACE,CADF,oBACE,CADF,gBACE,gBACA,2GAIJ,YAIE,8BACA,mBXtnJwB,aWwnJxB,iBACA,2HAEA,aACE,iBACA,cb1oJc,mBa4oJd,2IAGF,aACE,6BAIJ,cACE,2BAGF,WACE,eACA,0BAGF,gBAEE,sDAGF,qBAEE,eAGF,UACE,gBACA,0BAGF,YACE,6BACA,qCAEA,yBAJF,cAKI,gBACA,iDAIJ,qBAEE,UACA,qCAEA,+CALF,UAMI,sDAIJ,aAEE,gBACA,gBACA,gBACA,kBACA,2FAEA,abtsJoB,iLa0sJpB,aXvsJW,qCW4sJX,oDAjBF,eAkBI,sCAKF,4BADF,eAEI,yBAIJ,YACE,+BACA,gBACA,0BAEA,cACE,iBACA,mBACA,sCAGF,aACE,sBACA,WACA,CACA,aXtuJS,gBATL,aWkvJJ,oBACA,eACA,YACA,CACA,SACA,kBACA,yBACA,iBACA,gBACA,gBACA,4CAEA,wBACE,+CAGF,eXlwJI,yBWowJF,mBACA,kBACA,6DAEA,QACE,gBACA,gBACA,mEAEA,QACE,0DAIJ,aXzwJO,oBW2wJL,eACA,gBXrxJA,+CW0xJJ,YACE,8BACA,mBACA,4CAIJ,aACE,cXzxJS,eW2xJT,gBACA,mBACA,wCAGF,eACE,mBACA,+CAEA,aXpyJS,eWsyJP,qCAIJ,uBAnFF,YAoFI,eACA,QACA,wCAEA,iBACE,iBAKN,eACE,eACA,wBAEA,eACE,iBACA,2CAGF,eACE,mBAGF,eACE,cACA,gBACA,+BAEA,4BACE,4BAGF,QACE,oCAIA,aXh1JO,aWk1JL,kBACA,eACA,mBACA,qBACA,8EAEA,eAEE,yWAOA,kBbp2JY,WENd,uDWi3JA,iBACE,oMAUR,aACE,iIAIJ,4BAIE,cbj4JgB,eam4JhB,gBACA,6cAEA,aAGE,6BACA,qGAIJ,YAIE,eACA,iIAEA,eACE,CAII,w1BADF,eACE,sDAMR,iBAEE,oDAKA,eACE,0DAGF,eACE,mBACA,aACA,mBACA,wEAEA,aX56JS,CW86JP,gBACA,uBAKN,YACE,2CAEA,QACE,WACA,cAIJ,wBbh8JsB,Wak8JpB,kBACA,MACA,OACA,aACA,6BAGF,aACE,kBACA,WXj9JM,0BWm9JN,WACA,SACA,gBACA,kBACA,eACA,gBACA,UACA,oBACA,WACA,4BACA,iBACA,wDAKE,SACE,uBAKN,eACE,6BAEA,UACE,kBAIJ,YACE,eACA,yBACA,kBACA,gBACA,gBACA,wBAEA,aACE,cbt/Jc,iBaw/Jd,eACA,+BACA,aACA,sBACA,mBACA,uBACA,eACA,4BAEA,aACE,wBAIJ,eACE,CACA,qBACA,aACA,sBACA,uBACA,2BAEA,aACE,cACA,0BAGF,oBACE,cbphKY,gBashKZ,gCAEA,yBACE,0BAKN,QACE,eACA,iDAEA,SACE,cACA,8BAGF,abviKc,gBa+iKhB,cACA,CACA,iBACA,CACA,UACA,qCANF,qBACE,CACA,eACA,CACA,iBAYA,CAVA,qBAGF,QACE,CACA,aACA,WACA,CACA,iBAEA,qEAGE,cACE,MACA,gCAKN,cACE,cACA,qBACA,cX9jKwB,kBWgkKxB,UACA,mEAEA,WAEE,WACA,CAIA,2DADF,mBACE,CADF,8BACE,CADF,gBX3lKM,CW4lKJ,wBAIJ,UACE,YACA,CACA,iBACA,MACA,OACA,UACA,gBXvmKM,iCW0mKN,YACE,sBAIJ,WACE,gBACA,kBACA,WACA,qCAGF,cACE,YACA,oBACA,CADA,8BACA,CADA,gBACA,kBACA,QACA,2BACA,WACA,UACA,sCAGF,0BACE,2BACA,gBACA,kBACA,qKAMA,WAEE,mFAGF,WACE,eAKJ,qBACE,kBACA,mBACA,kBACA,oBACA,cACA,wBAEA,eACE,YACA,yBAGF,cACE,kBACA,gBACA,gCAEA,UACE,cACA,kBACA,6BACA,WACA,SACA,OACA,oBACA,qCAIJ,iCACE,iCAGF,wBACE,uCAIA,mBACA,mBACA,6BACA,0BACA,eAIJ,eACE,kBACA,gBXvsKM,eWysKN,kBACA,sBACA,cACA,wBAEA,eACE,sBACA,qBAGF,SACE,qBAGF,eACE,gBACA,UACA,0BAGF,oBACE,sBACA,SACA,gCAEA,wBACE,0BACA,qBACA,sBACA,UACA,4BAKF,qBACE,CADF,gCACE,CADF,kBACE,kBACA,QACA,2BACA,yBAIJ,iBACE,UACA,SACA,OACA,QACA,sBACA,iFACA,eACA,UACA,4BACA,gCAEA,SACE,6EAKF,iBAEE,wBAIJ,YACE,kBACA,MACA,OACA,WACA,YACA,UACA,SACA,gBXpxKI,cAiBgB,gBWswKpB,oBACA,+BAEA,aACE,oBACA,8GAEA,aAGE,+BAIJ,aACE,eACA,kCAGF,aACE,eACA,gBACA,4BAIJ,YACE,8BACA,oBACA,0DAEA,aACE,wBAIJ,cACE,mBACA,gBACA,uBACA,oCAGE,cACE,qCAKF,eACE,+BAIJ,sBACE,iBACA,eACA,SACA,0BACA,8GAEA,UXn1KE,+EW21KN,cAGE,gBACA,6BAGF,UXl2KM,iBWo2KJ,yBAGF,oBACE,aACA,mDAGF,UX52KM,uBWi3KN,cACE,YACA,eACA,8BAEA,UACE,WACA,+BAOA,6DANA,iBACA,cACA,kBACA,WACA,UACA,YAWA,CAVA,+BASA,kBACA,+BAGF,iBACE,UACA,kBACA,WACA,YACA,YACA,UACA,4BACA,mBACA,sCACA,oBACA,qBAIJ,gBACE,uBAEA,oBACE,eACA,gBACA,WXj6KE,sFWo6KF,yBAGE,qBAKN,cACE,YACA,kBACA,4BAEA,UACE,WACA,+BACA,kBACA,cACA,kBACA,WACA,SACA,2DAGF,aAEE,kBACA,WACA,kBACA,SACA,mBACA,6BAGF,6BACE,6BAGF,iBACE,UACA,UACA,kBACA,WACA,YACA,QACA,iBACA,4BACA,mBACA,sCACA,oBACA,CAGE,yFAKF,SACE,6GAQF,gBACE,oBACA,kBAON,UACE,cACA,+BACA,0BAEA,UACE,qCAGF,iBATF,QAUI,mBAIJ,qBACE,mBACA,uBAEA,YACE,kBACA,gBACA,gBACA,2BAEA,aACE,WACA,YACA,SACA,oBACA,CADA,8BACA,CADA,gBACA,uBAIJ,YACE,mBACA,mBACA,aACA,6BAEA,aACE,aACA,mBACA,qBACA,gBACA,qCAGF,UACE,eACA,cACA,+BAGF,aACE,WACA,YACA,gBACA,mCAEA,UACE,YACA,cACA,SACA,kBACA,mBACA,oBACA,CADA,8BACA,CADA,gBACA,qCAIJ,gBACE,gBACA,4CAEA,cACE,WX3jLF,gBW6jLE,gBACA,uBACA,0CAGF,aACE,eACA,cXpjLc,gBWsjLd,gBACA,uBACA,yBAKN,kBXpkLS,aWskLP,mBACA,uBACA,gDAEA,YACE,cACA,eACA,mDAGF,qBACE,kBACA,gCACA,WACA,gBACA,mBACA,gBACA,uBACA,qDAEA,YACE,iEAEA,cACE,sDAIJ,YACE,6BAOV,YACE,eACA,gBACA,wBAGF,QACE,sBACA,cACA,kBACA,kBACA,gBACA,WACA,+BAEA,iBACE,QACA,SACA,+BACA,eACA,sDAIJ,kBAEE,gCACA,eACA,aACA,cACA,oEAEA,kBACE,SACA,SACA,6HAGF,aAEE,cACA,cX5oLoB,eW8oLpB,eACA,gBACA,kBACA,qBACA,kBACA,WACA,mBACA,yJAEA,aXtpLsB,qWWypLpB,aAEE,WACA,kBACA,SACA,SACA,QACA,SACA,2BACA,CAEA,4CACA,CADA,kBACA,CADA,wBACA,iLAGF,WACE,6CACA,8GAKN,kBACE,gCACA,qSAKI,YACE,iSAGF,4CACE,cAOV,kBX1sLa,sBW6sLX,iBACE,4BAGF,aACE,eAIJ,cACE,kBACA,qBACA,cACA,iBACA,eACA,mBACA,gBACA,uBACA,eACA,oEAEA,YAEE,sBAGF,oBACE,kBACA,yBACA,sBACA,WACA,YACA,cACA,kBACA,SACA,kBACA,sBACA,8BAEA,oBACE,mBACA,2BAKN,eACE,gBAGF,eXxwLQ,kBa0BN,CACA,sBACA,gBACA,cbbsB,uCaetB,mBAEA,wBACE,cblBoB,eaoBpB,gBACA,mBACA,mBAGF,aACE,mBAGF,kBACE,mBAGF,eACE,cbzCS,UWmwLb,iBACE,cAEA,WACE,WACA,sCACA,CADA,6BACA,cAGF,cACE,iBACA,cXtwLsB,gBWwwLtB,gBAEA,abrxLkB,0BauxLhB,sBAEA,oBACE,4BAMR,GACE,cACA,eACA,WATM,mBAMR,GACE,cACA,eACA,qEAGF,kBAIE,sBAEE,8BACA,iBAGF,0BACE,kCACA,+BAIA,qDACE,uEACA,+CAGF,sBACE,8BACA,6DAIA,6BACE,6CACA,4EAIF,6BACE,6CACA,+CAOJ,gBAEE,+BAGF,gBACE,6CAEA,0BACE,wDAGF,eACE,6DAGF,iBACE,iBACA,2EAIA,mBACE,UACA,gCACA,WACA,0FAGF,mBACE,UACA,oCACA,eAOV,UACE,eACA,gBACA,iBAEA,YACE,gBACA,eACA,kBACA,sCAGF,YACE,4CAEA,kBACE,yDAGF,SACE,sBACA,cACA,WACA,SACA,aACA,gDACA,mBX94LO,WATL,eW05LF,CACA,eACA,kBACA,2EAEA,QACE,wMAGF,mBAGE,+DAGF,kBACE,qCAGF,wDA7BF,cA8BI,4DAIJ,WACE,eACA,gBACA,SACA,kBACA,sBAMJ,sBACA,mBACA,6BACA,gCACA,+BAEA,iBACE,iBACA,cbj8Lc,Cao8Ld,eACA,eACA,oCAEA,aACE,gBACA,uBACA,oCAIJ,UACE,kBACA,uDAGF,iBACE,qDAGF,eACE,qBAKF,wBACA,aACA,2BACA,mBACA,mBACA,2BAEA,aACE,iCAEA,UACE,uCAEA,SACE,kCAKN,aACE,cACA,mBAIJ,cACE,kBACA,MACA,OACA,WACA,YACA,0BACA,cAGF,kBX5/La,sBW8/LX,kBACA,uCACA,YACA,gBACA,qCAEA,aARF,SASI,kBAGF,cACE,mBACA,gBACA,eACA,kBACA,0BACA,6BAGF,WACE,6BAGF,yBACE,sCAEA,uBACE,uCACA,wBACA,wBAIJ,eACE,kDAIA,oBACE,+BAIJ,cACE,sBAGF,eACE,aAIJ,kBXljMa,sBWojMX,kBACA,uCACA,YACA,gBACA,qCAEA,YARF,SASI,uBAGF,kBACE,oBAGF,kBACE,YACA,0BACA,gBACA,mBAGF,YACE,gCACA,4BAGF,YACE,iCAGF,aACE,gBACA,qBACA,eACA,aACA,cAIJ,iBACE,YACA,gBACA,YACA,aACA,uBACA,mBACA,gBX5mMM,yDW+mMN,aAGE,gBACA,WACA,YACA,SACA,sBACA,CADA,gCACA,CADA,kBACA,gBXvnMI,uBW2nMN,iBACE,YACA,aACA,+BACA,iEACA,kBACA,wCACA,uBAGF,iBACE,WACA,YACA,MACA,OACA,uBAGF,iBACE,YACA,WACA,UACA,YACA,4BACA,6BAEA,UACE,8BAGF,UXxpMI,eW0pMF,gBACA,cACA,kBACA,2BAGF,iBACE,mCACA,qCAIJ,oCACE,eAEE,uBAGF,YACE,4BAKN,aXlqMwB,eWoqMtB,gBACA,gBACA,kBACA,qBACA,6BAEA,kBACE,wCAEA,eACE,6BAIJ,aACE,0BACA,mCAEA,oBACE,kBAKN,eACE,2BAEA,UACE,8FAEA,8BAEE,CAFF,sBAEE,wBAIJ,iBACE,SACA,UACA,yBAGF,eACE,aACA,kBACA,mBACA,6BAEA,mBACE,CADF,8BACE,CADF,gBACE,cACA,WACA,YACA,SACA,uBAIJ,iBACE,mBACA,YACA,gCACA,+BAEA,aACE,cACA,WACA,iBACA,gDAEA,kBACE,yBACA,wBAKN,YACE,uBACA,gBACA,iBACA,iCAEA,YACE,mBACA,iBACA,gBACA,8CAEA,wBACE,kBACA,uBACA,YACA,yCAGF,YACE,8BAIJ,WACE,4CAEA,kBACE,wCAGF,UACE,YACA,iCAGF,cACE,iBACA,WXtyMA,gBWwyMA,gBACA,mBACA,uBACA,uCAEA,aACE,eACA,cX/xMc,gBWiyMd,gBACA,uBACA,gCAKN,aACE,uBAIJ,eACE,cACA,iDAGE,qBACA,WXn0ME,gDWu0MJ,QACE,6BACA,kDAEA,aACE,yEAGF,uBACE,4DAGF,aXl1MU,yBWw1Md,cACE,gCAEA,cACE,cX70MkB,eW+0MlB,kCAEA,oBACE,cXl1MgB,qBWo1MhB,iBACA,gBACA,yCAEA,eACE,WXz2MF,iBWk3MN,ab92MgB,mBag3Md,gCACA,gBACA,aACA,eACA,eACA,qBAEA,oBACE,iBACA,eAIJ,YACE,mBACA,aACA,gCACA,0BAEA,eACE,qBAGF,aACE,cbx4MY,gBa04MZ,uBACA,mBACA,4BAEA,eACE,uBAGF,aXt4MkB,qBWw4MhB,eACA,gBACA,cACA,gBACA,uBACA,mBACA,qGAKE,yBACE,wBAMR,aACE,eACA,iBACA,gBACA,iBACA,mBACA,gBACA,cXh6MoB,0BWo6MtB,aACE,WACA,2CAEA,gCACE,yBACA,0CAGF,wBACE,eAMR,YACE,gCACA,CACA,iBACA,qBAEA,kBACE,UACA,uBAGF,aACE,CACA,sBACA,kBACA,eACA,uBAGF,oBACE,mBbn9MkB,kBaq9MlB,cACA,eACA,wBACA,wBAGF,aACE,CACA,0BACA,gBACA,8BAEA,eACE,aACA,2BACA,8BACA,uCAGF,cACE,cX/9MkB,kBWi+MlB,+BAGF,aXp+MoB,eWs+MlB,mBACA,gBACA,uBACA,kBACA,gBACA,YACA,iCAEA,UX9/ME,qBWggNA,oHAEA,yBAGE,0BAKN,qBACE,uBAIJ,kBACE,6BAEA,kBACE,oDAGF,eACE,6DAGF,UX1hNI,gBWgiNR,kBACE,eACA,aACA,qBACA,0BAEA,WACE,cACA,qCAEA,yBAJF,YAKI,4BAIJ,wBACE,cACA,kBACA,qCAEA,0BALF,UAMI,uBAIJ,qBACE,WACA,aACA,kBACA,eACA,iBACA,qBACA,gBACA,gBACA,gBACA,aACA,sBACA,6BAEA,aACE,gBACA,mBACA,mBACA,8BAGF,iBACE,SACA,WACA,cACA,mBb5kNgB,kBa8kNhB,cACA,eACA,4BAIJ,YACE,cX3kNoB,kBW6kNpB,WACA,QACA,mDAIJ,YACE,oDAGF,UACE,gBAGF,YACE,eACA,mBACA,gBACA,iBACA,wBACA,sBAEA,aACE,mBACA,SACA,kBACA,WACA,eACA,yBACA,CADA,qBACA,CADA,oBACA,CADA,gBACA,cACA,aACA,mBACA,2BACA,2CACA,6BAEA,aACE,aACA,WACA,YACA,iCAEA,aACE,SACA,WACA,YACA,eACA,gBACA,sBACA,sBACA,CADA,gCACA,CADA,kBACA,6BAIJ,aACE,cACA,eACA,gBACA,kBACA,gBACA,cXzoNkB,mFW6oNpB,kBAGE,4BACA,2CACA,wGAEA,aACE,6BAIJ,0BACE,2CACA,yBACA,yDAEA,aACE,uCAKN,UACE,oCAGF,WACE,8BAGF,aX5qNsB,SW8qNpB,eACA,WACA,cACA,cACA,YACA,aACA,mBACA,WACA,2BACA,2CACA,2GAEA,SAGE,cACA,4BACA,2CACA,qCAKF,SACE,OGxtNN,eACE,eACA,UAEA,kBACE,kBACA,cAGF,iBACE,cACA,mBACA,WACA,aACA,sBAEA,kBhBRkB,egBapB,iBACE,aACA,cACA,iBACA,eACA,gBACA,qBAEA,oBACE,qBACA,yBACA,4BACA,oEAGF,YAEE,kCAGF,aACE,gCAGF,aACE,sBACA,WACA,eACA,cdtCO,UcwCP,oBACA,gBdlDE,yBcoDF,kBACA,iBACA,sCAEA,oBhBlDgB,0BgBuDlB,cACE,wBAGF,YACE,mBACA,iBACA,cAIJ,oBACE,kBACA,yBACA,sBACA,WACA,YACA,cACA,kBACA,SACA,kBACA,sBACA,gBACA,mBACA,cACA,uBAEA,iBACE,qBAGF,oBd3FY,8EcgGZ,oBAGE,iBACA,gCAGF,mBACE,SACA,wCAGF,mBAEE,eAIJ,oBACE,WACA,gBACA,cACA,cAGF,aACE,qBACA,oBAEA,cACE,eAIJ,eACE,mBACA,chBjIc,agBqIhB,cACE,uBACA,UACA,SACA,SACA,chB1Ic,0BgB4Id,kBACA,mBAEA,oBACE,sCAGF,kCAEE,eAIJ,WACE,eACA,kBACA,eACA,6BAIJ,4BACE,gCAEA,YACE,2CAGF,4BACE,aACA,aACA,mBACA,mGAEA,YAEE,+GAEA,oBhBhLgB,sDgBsLpB,cACE,gBACA,iBACA,YACA,oBACA,chB7Lc,sCgBgMd,gCAGF,YACE,mBACA,8CAEA,aACE,wBACA,iBACA,oCAIJ,uBACE,CADF,oBACE,CADF,eACE,sBACA,eACA,cd5MS,qBc8MT,WACA,UACA,oBACA,qXACA,yBACA,kBACA,CACA,yBACA,mDAGF,aACE,cAIJ,ahBnOkB,qBgBsOhB,+BACE,6BAEA,2BACE,eChPN,k1BACE,aACA,sBACA,aACA,UACA,yBAGF,YACE,OACA,sBACA,yBACA,2BAEA,MACE,iBACA,qCAIJ,gBACE,YACE,cCtBJ,cACE,qBACA,chBSW,2BgBNX,qBAEE,iBACA,+BAGF,WACE,iBAIJ,sBACE,6BAEA,uBACE,2BACA,4BACA,mBhBHsB,4BgBOxB,oBACE,8BACA,+BACA,aACA,qBAIJ,YACE,8BACA,cACA,clB/BgB,ckBiChB,oBAGF,iBACE,OACA,kBACA,iBACA,gBACA,8BACA,eACA,0BAEA,aACE,6BAIJ,alBhDsB,mCkBmDpB,aACE,oDAGF,WACE,wBAIJ,iBACE,YACA,OACA,WACA,WACA,yBlBjEoB,uBkBsEpB,oBACE,WACA,eACA,yBAGF,iBACE,gBACA,oBAIJ,iBACE,aACA,gBACA,kBACA,gBhB5FM,sBgB8FN,sGAEA,+BAEE,oBAKF,2BACA,gBhBxGM,0BgB2GN,cACE,gBACA,gBACA,oBACA,cACA,WACA,gCACA,chBzGS,yBgB2GT,kBACA,4CAEA,QACE,2GAGF,mBAGE,wCAKN,cACE,6CAEA,SACE,kBACA,kBACA,qDAGF,SACE,WACA,kBACA,MACA,OACA,WACA,YACA,sCACA,mBACA,4BAIJ,SACE,kBACA,wBACA,gBACA,MACA,iCAEA,aACE,WACA,gBACA,gBACA,gBhBpKI,mBgByKR,iBACE,qBACA,YACA,wBAEA,UACE,YACA,wBAIJ,cACE,kBACA,iBACA,chBvKsB,mDgB0KtB,YACE,qDAGF,eACE,uDAGF,YACE,qBAIJ,YACE,YCrMF,qBACE,iBANc,cAQd,kBACA,sCAEA,WANF,UAOI,eACA,mBAIJ,iDACE,eACA,gBACA,gBACA,qBACA,cjBJsB,oBiBOtB,anBjBoB,0BmBmBlB,6EAEA,oBAGE,wCAIJ,ajBlBsB,oBiBuBtB,YACE,oBACA,+BAEA,eACE,yBAIJ,eACE,cjBhCsB,qBiBoCxB,iBACE,cjBrCsB,uBiByCxB,eACE,mBACA,kBACA,kBACA,yHAGF,4CAME,mBACA,oBACA,gBACA,cjBzDsB,qBiB6DxB,aACE,qBAGF,gBACE,qBAGF,eACE,qBAGF,gBACE,yCAGF,aAEE,qBAGF,eACE,qBAGF,kBACE,yCAMA,iBACA,iBACA,yDAEA,2BACE,yDAGF,2BACE,qBAIJ,UACE,SACA,SACA,gCACA,eACA,4BAEA,UACE,SACA,wBAIJ,UACE,yBACA,8BACA,CADA,iBACA,gBACA,mBACA,iEAEA,+BAEE,cACA,kBACA,gBACA,gBACA,cjBrIkB,iCiByIpB,uBACE,gBACA,gBACA,cnBxJY,qDmB4Jd,WAEE,iBACA,kBACA,qBACA,mEAEA,SACE,kBACA,iFAEA,gBACE,kBACA,6EAGF,iBACE,SACA,UACA,mBACA,gBACA,uBACA,+BAMR,YACE,oBAIJ,kBACE,eACA,mCAEA,iBACE,oBACA,8BAGF,YACE,8BACA,eACA,6BAGF,UACE,kDACA,eACA,iBACA,WjBpNI,iBiBsNJ,kBACA,qEAEA,aAEE,6CAIA,ajB9MoB,oCiBmNtB,4CACE,gBACA,eACA,iBACA,qCAGF,4BA3BF,iBA4BI,4BAIJ,iBACE,YACA,sBACA,mBACA,CACA,sBACA,0BACA,QACA,aACA,yCAEA,4CACE,eACA,iBACA,gBACA,cjB/OkB,mBiBiPlB,mBACA,gCACA,uBACA,mBACA,gBACA,wFAEA,eAEE,cACA,2CAGF,oBACE,2BAKN,iBACE,mCAEA,UACE,YACA,CACA,kBACA,uCAEA,aACE,WACA,YACA,mBACA,iCAIJ,cACE,mCAEA,aACE,WjBzSA,qBiB2SA,uDAGE,yBACE,2CAKN,aACE,cjBrSgB,kCiB6StB,iDAEE,CACA,eACA,eACA,iBACA,mBACA,cjBpToB,sCiBuTpB,anBjUkB,0BmBmUhB,kBAIJ,cACE,SACA,UACA,gBACA,uBACA,oBACA,kBACA,oBACA,cACA,kBAGF,4CACE,eACA,iBACA,gBACA,mBACA,cjB7UsB,wBiBgVtB,iDACE,cACA,eACA,gBACA,cACA,kBAIJ,4CACE,eACA,iBACA,gBACA,mBACA,cjB9VsB,kBiBmWtB,cjBnWsB,mCiBkWxB,4CACE,CACA,gBACA,gBACA,mBACA,cjBvWsB,kBiB4WtB,cjB5WsB,kBiBqXtB,cjBrXsB,mCiBoXxB,4CACE,CACA,gBACA,gBACA,mBACA,cjBzXsB,kBiB8XtB,cjB9XsB,mCiBsYxB,gBAEE,mDAEA,2BACE,mDAGF,2BACE,kBAIJ,eACE,kBAGF,kBACE,yCAGF,cAEE,kBAGF,UACE,SACA,SACA,0CACA,cACA,yBAEA,UACE,SACA,iDAIJ,YAEE,+BAGF,kBjB1bW,kBiB4bT,kBACA,gBACA,sBACA,oCAEA,UACE,aACA,2BACA,iBACA,8BACA,mBACA,uDAGF,YACE,yBACA,qBACA,mFAEA,aACE,eACA,qCAGF,sDAVF,UAWI,8BACA,6CAIJ,MACE,sBACA,qCAEA,2CAJF,YAKI,sBAKN,iBACE,yBAEA,WACE,WACA,uBACA,4BAIJ,iBACE,mBACA,uCAEA,eACE,mCAGF,eACE,cACA,qCAGF,eACE,UACA,mDAEA,kBACE,aACA,iBACA,0FAKE,oBACE,gFAIJ,cACE,qDAIJ,aACE,cACA,6CAGF,UACE,YACA,0BACA,mDAGF,cACE,4DAEA,cACE,qCAKN,oCACE,eACE,sCAIJ,2BA7DF,iBA8DI,mFAIJ,qBAGE,mBjBnjBS,kBiBqjBT,kCACA,uBAGF,YACE,kBACA,WACA,YACA,2BAEA,YACE,WACA,uCAKF,YACE,eACA,mBACA,mBACA,qCAGF,sCACE,kBACE,uCAIJ,ajB3kBsB,qCiB+kBtB,eACE,WjBjmBE,gBiBmmBF,2CAEA,ajBrlBkB,gDiBwlBhB,ajBvlBkB,+CiB6lBtB,eACE,qBAIJ,kBACE,yBAEA,aACE,SACA,eACA,YACA,kBACA,qCAIJ,gDAEI,kBACE,yCAGF,eACE,gBACA,WACA,kBACA,uDAEA,iBACE,sCAMR,8BACE,aACE,uCAEA,gBACE,sDAGF,kBACE,6EAIJ,aAEE,qBAIJ,WACE,UAIJ,mBACE,qCAEA,SAHF,eAII,kBAGF,YACE,uBACA,mBACA,aACA,qBAEA,SjBvrBI,YiByrBF,qCAGF,gBAXF,SAYI,mBACA,sBAIJ,eACE,uBACA,gBACA,gBACA,uBAGF,eACE,gBACA,0BAEA,YACE,yBACA,gBACA,eACA,cjBjsBkB,6BiBqsBpB,eACE,iBACA,+BAGF,kBjBjtBS,aiBmtBP,0BACA,aACA,uCAEA,YACE,gCAIJ,cACE,gBACA,uDAEA,YACE,mBACA,iDAGF,UACE,YACA,0BACA,gCAIJ,YACE,uCAEA,4CACE,eACA,gBACA,cACA,qCAGF,cACE,cjBhvBgB,uFiBsvBtB,eACE,cASA,CjBhwBoB,2CiB6vBpB,iBACA,CACA,kBACA,gBAGF,eACE,cACA,aACA,kDACA,cACA,qCAEA,eAPF,oCAQI,cACA,8BAEA,UACE,aACA,sBACA,0CAEA,OACE,cACA,2CAGF,YACE,mBACA,QACA,cACA,qCAIJ,UACE,2BAGF,eACE,sCAIJ,eAtCF,UAuCI,6BAEA,aACE,gBACA,gBACA,2GAEA,eAGE,uFAIJ,+BAGE,2BAGF,YACE,gCAEA,eACE,qEAEA,eAEE,gBACA,2CAGF,eACE,SAQZ,iBACE,qBACA,iBAGF,aACE,kBACA,aACA,UACA,YACA,cjB71BsB,qBiB+1BtB,eACA,qCAEA,gBAVF,eAWI,WACA,gBACA,cnBj3Bc,SoBNlB,UACE,eACA,iBACA,yBACA,qBAEA,WAEE,iBACA,mBACA,6BACA,gBACA,mBACA,oBAGF,qBACE,gCACA,aACA,gBACA,oBAGF,eACE,qEAGF,kBlBhBW,UkBqBX,apBxBoB,0BoB0BlB,gBAEA,oBACE,eAIJ,eACE,CAII,4HADF,eACE,+FAOF,sBAEE,yFAKF,YAEE,gCAMJ,kBlBzDS,6BkB2DP,gCACA,4CAEA,qBACE,8BACA,2CAGF,uBACE,+BACA,0BAKN,qBACE,gBAIJ,aACE,mBACA,MAGF,+CACE,0BAGF,sBACE,SACA,aACA,8CAGF,oBAEE,qBACA,iBACA,eACA,clB5FsB,gBkB8FtB,0DAEA,UlBhHM,wDkBoHN,eACE,iBACA,sEAGF,cACE,yCAKF,YAEE,yDAEA,qBACE,iBACA,eACA,gBACA,qEAEA,cACE,2EAGF,YACE,mBACA,uFAEA,YACE,qHAOJ,sBACA,cACA,uBAIJ,wBACE,mBlBvJS,sBkByJT,YACA,mBACA,gCAEA,gBACE,mBACA,oBAIJ,YACE,yBACA,aACA,mBlBtKS,gCkByKT,aACE,gBACA,mBAIJ,wBACE,aACA,mBACA,qCAEA,wCACE,4BACE,0BAIJ,kBACE,iCAGF,kBlB9LS,uCkBiMP,kBACE,4BAIJ,gBACE,oBACA,sCAEA,SACE,wCAGF,YACE,mBACA,mCAGF,aACE,aACA,uBACA,mBACA,kBACA,6CAEA,UACE,YACA,kCAIJ,aACE,mCAGF,aACE,iBACA,clB/NgB,gBkBiOhB,mCAIJ,QACE,WACA,qCAEA,sBACE,gBACA,qCAOJ,4FAFF,YAGI,gCAIJ,aACE,uCAEA,iBACE,sCAGF,eACE,4BAIJ,wBACE,aACA,gBACA,qCAEA,2BALF,4BAMI,sCAIJ,+CACE,YACE,iBC7RN,YACE,uBACA,WACA,iBACA,iCAEA,gBACE,gBACA,oBACA,cACA,wCAEA,YACE,yBACA,mBnBPO,YmBSP,yBAIJ,WAvBc,UAyBZ,oBACA,iCAEA,YACE,mBACA,YACA,uCAEA,aACE,yCAEA,oBACE,aACA,2CAGF,SnBxCA,YmB0CE,kBACA,YACA,uCAIJ,aACE,cnBjCgB,qBmBmChB,cACA,eACA,aACA,0HAIA,kBAGE,+BAKN,aACE,iBACA,YACA,aACA,qCAGF,sCACE,YACE,6BAIJ,eACE,0BACA,gBACA,mBACA,qCAEA,2BANF,eAOI,+BAGF,aACE,aACA,cnB3EgB,qBmB6EhB,0BACA,2CACA,0BACA,mBACA,gBACA,uBACA,mCAEA,gBACE,oCAGF,UnBzGA,yBmB2GE,0BACA,2CACA,uCAGF,kBACE,sBACA,+BAIJ,kBACE,wBACA,SACA,iCAEA,QACE,kBACA,6DAIJ,UnBjIE,yBFMc,gBqB8Hd,gBACA,mEAEA,qBACE,6DAKN,yBACE,iCAKF,UACA,gBAEA,sCAGF,uCACE,YACE,iCAGF,WA/JY,cAiKV,sCAIJ,gCACE,UACE,0BAMF,2BACA,qCAEA,wBALF,cAMI,CACA,sBACA,kCAGF,YACE,oBAEA,gCACA,0BAEA,eAEA,mBACA,8BACA,mCAEA,eACE,kBACA,yCAGF,mBACE,4DAEA,eACE,qCAIJ,gCAzBF,eA0BI,iBACA,6BAIJ,anBnMsB,emBqMpB,iBACA,gBACA,qCAEA,2BANF,eAOI,6BAIJ,anB9MsB,emBgNpB,iBACA,gBACA,mBACA,4BAGF,wBACE,eACA,gBACA,cnB1NkB,mBmB4NlB,kBACA,gCACA,4BAGF,cACE,cnBjOoB,iBmBmOpB,gBACA,0CAGF,UnBxPI,gBmB0PF,uFAGF,eAEE,gEAGF,aACE,4CAGF,cACE,gBACA,WnBxQE,oBmB0QF,iBACA,gBACA,gBACA,2BAGF,cACE,iBACA,cnBjQoB,mBmBmQpB,kCAEA,UnBtRE,gBmBwRA,CAII,2NADF,eACE,4BAMR,UACE,SACA,SACA,0CACA,cACA,mCAEA,UACE,SACA,qCAKN,eA9SF,aA+SI,iCAEA,YACE,yBAGF,UACE,UACA,YACA,iCAEA,YACE,4BAGF,YACE,8DAGF,eAEE,gCACA,gBACA,0EAEA,eACE,+BAIJ,eACE,6DAGF,2BrB7UgB,YqBoVtB,UACE,SACA,cACA,WACA,sDAKA,anBnVsB,0DmBsVpB,arBhWkB,4DqBqWpB,anB1Wc,gBmB4WZ,4DAGF,anB9WU,gBmBgXR,0DAGF,arBjXgB,gBqBmXd,0DAGF,anBtXU,gBmBwXR,UAIJ,YACE,eACA,yBAEA,aACE,qBACA,oCAEA,kBACE,4BAGF,cACE,gBACA,+BAEA,oBACE,iBACA,gCAIJ,eACE,yBACA,eACA,CAII,iNADF,eACE,6CAKN,aACE,mBACA,2BAGF,oBACE,cnBxZkB,qBmB0ZlB,yBACA,eACA,gBACA,gCACA,iCAEA,UnBhbE,gCmBkbA,oCAGF,arB/agB,gCqBibd,CAkBJ,gBAIJ,aACE,iBACA,eACA,sBAGF,aACE,eACA,cACA,wBAEA,aACE,kBAIJ,YACE,eACA,mBACA,wBAGF,YACE,WACA,sBACA,aACA,+BAEA,aACE,qBACA,gBACA,eACA,iBACA,cnB7dsB,CmBkelB,4MADF,eACE,sCAKN,aACE,gCAIJ,YAEE,mBACA,kEAEA,UACE,kBACA,4BACA,gFAEA,iBACE,kDAKN,aAEE,aACA,sBACA,4EAEA,cACE,WACA,kBACA,mBACA,uEAIJ,cAEE,iBAGF,YACE,eACA,kBACA,2CAEA,kBACE,eACA,8BAGF,kBACE,+CAGF,gBACE,uDAEA,gBACE,mBACA,YACA,YAKN,kBACE,eACA,cAEA,arBvjBoB,qBqByjBlB,oBAEA,yBACE,SAKN,aACE,YAGF,gBACE,eACA,mBnBpkBW,gCmBskBX,uBAEA,eACE,oBAGF,YACE,2BACA,mBACA,cnBxkBoB,emB0kBpB,eACA,oBAGF,iBACE,4BAEA,aACE,SACA,kBACA,WACA,YACA,qBAIJ,2BACE,mBAGF,oBACE,uBAGF,arB9mBgB,sDqBknBhB,anBrmBwB,qBmBymBtB,gBACA,yDAIJ,oBAIE,cnBlnBwB,iGmBqnBxB,eACE,yIAIA,4BACE,cACA,iIAGF,8BACE,CADF,sBACE,WACA,sBAKN,YAEE,mBACA,sCAEA,aACE,CACA,gBACA,kBACA,0DAIA,8BACE,CADF,sBACE,WACA,gBAKN,kBACE,8BACA,yBAEA,yBnB9qBc,yBmBkrBd,yBACE,wBAGF,yBnBnrBU,wBmBwrBR,2BACA,eACA,iBACA,4BACA,kBACA,gBACA,0BAEA,anBprBoB,uBmB0rBpB,wBACA,qBAGF,arB1sBgB,cqB+sBlB,kBnB1sBa,kBmB4sBX,mBACA,uBAEA,YACE,8BACA,mBACA,aACA,gCAEA,SACE,SACA,gDAEA,aACE,8BAIJ,aACE,gBACA,cnBztBkB,yBmB2tBlB,iBACA,gCAEA,aACE,qBACA,iHAEA,aAGE,mCAIJ,anBvvBM,6BmB8vBR,YACE,2BACA,6BACA,mCAEA,kBACE,gFAGF,YAEE,cACA,sBACA,YACA,cnB9vBgB,mLmBiwBhB,kBAEE,gBACA,uBACA,sCAIJ,aACE,6BACA,4CAEA,arBzxBU,iBqB2xBR,gBACA,wCAIJ,aACE,sBACA,WACA,aACA,qBACA,cnBzxBgB,WmBgyBxB,kBAGE,0BAFA,eACA,uBASA,CARA,eAGF,oBACE,gBACA,CAEA,qBACA,oBAGF,YACE,eACA,CACA,kBACA,wBAEA,qBACE,cACA,mBACA,aACA,0FAGF,kBAEE,kBACA,YACA,6CAGF,QACE,SACA,+CAEA,aACE,sEAGF,uBACE,yDAGF,anB71BY,8CmBk2Bd,qBACE,aACA,WnBr2BI,cmB02BR,iBACE,qBAGF,wBACE,kBACA,2BAEA,cACE,mBnB12BS,gCmB42BT,kCAEA,cACE,cACA,gBACA,eACA,gBACA,cnB32BoB,qBmB62BpB,mBACA,uHAEA,UnBj4BE,iCmBw4BJ,cACE,crBr4BY,uCqBy4Bd,YACE,8BACA,mBACA,sCAGF,eACE,sBCt5BN,YACE,eACA,CACA,kBACA,0BAEA,qBACE,iBACA,cACA,mBACA,yDAEA,YAEE,mBACA,kBACA,sBACA,YACA,4BAGF,oBACE,cACA,cACA,qGAEA,kBAGE,sDAKN,iBAEE,gBACA,eACA,iBACA,WpBrCI,6CoBuCJ,mBACA,iBACA,4BAGF,cACE,6BAGF,cACE,cpBjCoB,kBoBmCpB,gBACA,qBAIJ,YACE,eACA,cACA,yBAEA,gBACE,mBACA,6BAEA,aACE,sCAIJ,apBrDwB,gBoBuDtB,qBACA,UC3EJ,aACE,gCAEA,gBACE,eACA,mBACA,+BAGF,cACE,iBACA,8CAGF,aACE,kBACA,wBAGF,gBACE,iCAGF,aACE,kBACA,uCAGF,oBACE,gDAGF,SACE,YACA,8BAGF,cACE,iBACA,mEAGF,aACE,kBACA,2DAGF,cAEE,gBACA,mFAGF,cACE,gBACA,mCAGF,aACE,iBACA,yBAGF,kBACE,kBACA,4BAGF,UACE,UACA,wBAGF,aACE,kCAGF,MACE,WACA,cACA,mBACA,2CAGF,aACE,iBACA,0CAGF,gBACE,eACA,mCAGF,WACE,sCAGF,gBACE,gBACA,yCAGF,UACE,iCAGF,aACE,iBACA,0BAGF,SACE,WACA,0DAGF,iBAEE,mBACA,4GAGF,iBAEE,gBACA,uCAGF,kBACE,eACA,2BAGF,aACE,kBACA,wCAGF,SACE,YACA,yDAGF,SACE,WACA,CAKA,oFAGF,UACE,OACA,uGAGF,UAEE,uCAIA,cACE,iBACA,kEAEA,cACE,gBACA,qCAKN,WACE,eACA,iBACA,uCAGF,WACE,sCAGF,aACE,kBACA,0CAGF,gBACE,eACA,uDAGF,gBACE,2CAGF,cACE,iBACA,YACA,yEAGF,aAEE,iBACA,iBAGF,wBACE,iBAGF,SACE,oBACA,yBAGF,aACE,8EAGF,cAEE,gBACA,oDAGF,cACE,mBACA,gEAGF,iBACE,gBACA,CAMA,8KAGF,SACE,QACA,yDAGF,kBACE,eACA,uDAGF,kBACE,gBACA,qDAGF,SACE,QACA,8FAGF,cAEE,mBACA,4CAGF,UACE,SACA,kDAEA,UACE,OACA,+DACA,8BAIJ,sXACE,uCAGF,gBAEE,kCAGF,cACE,iBACA,gDAGF,UACE,UACA,gEAGF,aACE,uDAGF,WACE,WACA,uDAGF,UACE,WACA,uDAGF,UACE,WACA,kDAGF,MACE,0CAGF,iBACE,yBACA,qDAGF,cACE,iBACA,qCAGF,kCACE,gBAEE,kBACA,2DAEA,gBACE,mBACA,uEAKF,gBAEE,kBACA,gFAKN,cAEE,gBACA,6CAKE,eACE,eACA,sDAIJ,aACE,kBACA,4DAKF,cACE,gBACA,8DAGF,gBACE,eACA,mCAIJ,aACE,kBACA,iBACA,kCAGF,WACE,mCAGF,WACE,oCAGF,cACE,gBACA,gFAGF,cACE,mBACA,+DAGF,SACE,QACA,kkEC7ZJ,kIACE,CADF,sIACE,qBACA,sCxB6EF,QACE,qBACE,gBACA,SAGF,SACE,gBACA,gBACA,+BAIJ,eAEE,sBACA,kBACA,gBACA,kBACA,kCACA,4BACA,gEAGF,gBAEE,uBACA,2BACA,qBAGF,eACE,UACA,wDAGF,qBAEE,sBACA,MAKF,cACE,oDACA,WACA,kCAGF,eAGE,cAGF,UACE,sBACA,WAGF,kBAzIW,sGAmBT,gBAIA,YAqHA,iBAGF,UACE,CAEA,oBACA,CADA,mBACA,CADA,4BACA,WACA,YACA,wBAGF,qGA7GE,eAIA,gBACA,WA0GA,mCAGF,eACE,WACA,gBACA,eACA,UACA,cACA,kBACA,QACA,4BAGF,iBACE,0BACA,YACA,cA3KS,yDA8KT,4BACA,uBACA,4BACA,yBACA,wBAGF,gBACE,eACA,mBAvLS,eA2LX,aACI,YACA,kBAEA,YACA,UACA,YACA,aACA,iGACA,4BACA,iCACA,UACA,gBAGJ,eACE,UACA,6BAGF,SACE,SAGF,gBACE,qBAGF,kBAvNW,CAcT,eACA,6CA2MA,CA3MA,kBA2MA,CA3MA,sBA2MA,CAMA,uCAHF,UACE,gBACA,mBAYA,CAXA,eAGF,WACE,eACA,CAvNA,eACA,6CAyNA,CAzNA,kBAyNA,CAzNA,sBAyNA,CAEA,oBACA,gCAGF,kBA3OsB,uCA+OtB,YACE,uBAEF,gBACE,mBAnPoB,4CAuPtB,UACE,yBAGF,eACE,eACA,wBAGF,kBAnQW,WAqQT,cACA,eACA,gBACA,cACA,eACA,sGAvPA,gBAIA,8BAsPA,UACE,mEAIJ,qGAvOE,eAIA,gBACA,yBAoOA,6BAMA,eACA,eAIA,iDARF,kBAvRW,WAyRT,YACA,CAEA,qGAzQA,gBAIA,eAuQA,gBAUA,kCAGF,iBACE,UACA,UACA,gBACA,eACA,cACA,2BAGF,cACE,gBACA,6BAGF,8BACE,gCACA,mCAGF,kBA9TW,WAgUT,oCAGF,UACE,oDAGF,yBACE,kBACA,kBACA,YACA,qBAGF,wBA9UW,CAcT,eACA,CAkUA,4CACA,CADA,kBACA,CADA,kBACA,2BAGF,UACE,gBACA,eACA,kBACA,UACA,SACA,yBA3VS,qBA6VT,cACA,gBACA,6CAGF,UACE,gBACA,kCAGF,WACE,iCAEF,WACE,iBAGF,gBACE,mCAIA,qBACA,CAvVA,4CACA,CADA,kBACA,CADA,gBACA,gBACA,WAwVA,YACA,sEAGF,qBACE,yCAGF,QACE,iBACA,kDAGF,SACE,qCAGF,YACE,mCAGF,eACE,aACA,WAGF,wBAjZW,sGAmBT,gBAIA,YA6XA,iBAGF,oBACE,WACA,CAzWA,+BA4WF,qGAjXE,eAIA,gBAsXA,CArXA,cAgXF,UACE,sBACA,CAlXA,cAoXA,YACA,+FAGF,UAEE,gCACA,CAIA,iIAGF,gBACE,oBAGF,wBAtbW,WAwbT,sGAraA,gBAIA,wBAqaF,0lBACE,wBAEA,uCAGF,kBAlcW,WAqcT,kBAGF,yBACE,WACA,SAraA,4CACA,CADA,kBACA,CADA,gBACA,gBACA,sBAwaA,CACA,mBACA,mBACA,uBAGF,wBArdW,kBAydX,cACE,uEAGF,aAEE,qBAGF,qBACE,kBACA,YACA,UACA,mBAteS,uBAweT,CAEA,eACA,iCACA,8BACA,iBACA,sCAGF,qBACE,4BAGF,WACE,8BAGF,gBACE,kBACA,2CAEA,cACE,kCAGJ,UACE,CAlgBS,+DAugBT,kBAvgBS,4DA2gBT,eACE,wBACA,gCAIJ,iBACE,oDAGF,cACE,kBAGF,eACE,4BACA,WACA,0BACA,YACA,gCAGF,aACE,uCAGF,UACE,gBACA,0GAlgBA,4CACA,CADA,kBACA,CADA,gBACA,gBACA,uBAugBA,CAvgBA,cAugBA,6CACA,CADA,oCACA,8BAGF,wBAljBW,SAojBT,iCACA,kBACA,mBACA,iBACA,cAEF,kBA1jBW,CAaT,4CACA,CADA,kBACA,CADA,gBACA,gBACA,UA8iBA,iBAGA,0HAFA,aAIE,qBAriBF,4CACA,CADA,kBACA,CADA,gBACA,gBACA,kCA2iBF,kBACE,eACA,sDAGF,sBAEE,YACA,CEjlBU,2IFslBV,aEtlBU,0BF2lBZ,kBA5lBW,CAaT,4CACA,CADA,kBACA,CADA,gBACA,gBACA,mBAglBA,iCAlkBA,4CACA,CADA,kBACA,CADA,gBACA,gBACA,mBAukBF,aArmBkB,uCAymBlB,gBACE,sBACA,mBACA,0BAGF,aACE,uCAGF,gBACE,mBACA,cAGF,eACE,gBACA,sBACA,WACA,oBAGF,qBACE,qBAGF,UACE,0BACA,gBACA,YAGF,UACE,gBACA,CA5oBS,qGAmBT,gBAIA,CAwnBA,eACA,6BAJA,kBA5oBS,CAuBT,UA6nBE,2BAIJ,UACC,4DAGD,UACE,gBACA,iCAGF,UACE,UAGF,gCACE,0GAGF,kBAzqBW,sGAmBT,gBAIA,sHAupBF,kBA9qBW,wHAkrBX,qGAvoBE,eAIA,gBACA,gDAsoBF,UACE,eAGF,yBACE,WACA,wBAGF,UACE,eACA,6BAGF,eACE,iBAGF,kBAxsBW,CAaT,+BACA,gBACA,qBA4rBA,gBACA,mBACA,6CACA,CADA,+BACA,CADA,gBACA,cAGF,UACE,sGA/rBA,gBAIA,YA6rBA,WACA,cACA,iCAGF,eACE,WACA,gBACA,eACA,UACA,cACA,kBACA,QACA,0BAIF,iBACE,iBACA,WACA,YACA,cAzuBS,yDA4uBT,4BACA,uBACA,4BACA,yBACA,yBAGF,4BACE,qCAGF,8YACE,4BACA,uBACA,4BACA,yBACA,iBACA,SAOF,kBApwBW,CAswBT,WACA,iCACA,CACA,oBACA,CADA,iCACA,CADA,sBACA,gBACA,eAIA,UACA,CA3uBA,4CACA,CADA,kBACA,CADA,gBACA,gBACA,oCAuuBF,qBAOE,gBAGF,gBACE,WACA,gBACA,sBAvxBqB,sBAyxBrB,mBAEA,UACE,oBACA,gBACA,yBAIJ,wBAtyBW,WAwyBT,iCACA,0BAGF,UACE,sOAGF,wBA7yBsB,WAkzBpB,mBAGF,UACE,0BAEA,SACE,yBAGF,UACE,sCAIJ,wBAp0BW,CAu0BT,yBACA,CADA,2BACA,iBAGF,UACE,wBAGF,UACE,gBACA,mFA5yBA,4CACA,CADA,kBACA,CADA,gBACA,gBACA,+CAmzBF,eACE,gCAGF,eACE,gCACA,mBACA,+BAGF,6BACE,+BACA,8CAGF,wBAz2BW,0BA22BT,eACA,gBACA,wBAGF,wBAh3BW,gBAk3BT,iBACA,kCAGF,8BACE,4HAGF,kBA13BW,uEA+3BX,aA93BkB,mDAk4BlB,kBAn4BW,iBAs4BT,yGAGF,kBAt4BsB,4LA24BtB,gBAKE,WACA,sGAj4BA,gBAIA,mBAvBS,oCAy5BX,UACE,2CAGF,eACE,+BAGF,cACE,gBACA,cACA,kBACA,UACA,yBAt6BS,eAw6BT,cACA,wBAGF,iBACE,iBACA,0BACA,yBA/6BS,WAi7BT,0BAGF,UACE,+BAGF,UACE,0BACA,iDA75BA,4CACA,CADA,kBACA,CADA,gBACA,gBACA,mBAg6BA,cACA,iCAGF,eACE,0BACA,yBAr8BS,YAu8BT,sBACA,8CAGF,cACE,gBACA,2BACA,qDAGF,WACE,eACA,gBACA,WACA,gDAGF,YACE,8BAGF,SACE,2BAGF,gBACE,gBACA,yBAl+BS,sBAo+BT,uBACA,6BAIF,UACE,sBACA,CACA,qGAj8BA,eAIA,gBACA,qCAg8BF,gCACE,qCAGF,UACE,gBACA,kBAGF,wBAz/BW,kBA2/BT,0BACA,SA5/BS,qGAmBT,CAIA,eA2+BA,WACA,gBACA,sDALF,wBA//BW,gBA0gCT,qGA/9BA,eAIA,gBACA,kBA89BA,UACE,8BACA,yBAEA,qGA//BF,gBAIA,kBAkgCF,wBAzhCW,sGA2CT,CAIA,eACA,eA4+BA,yBAGF,eACE,WACA,gBACA,eACA,UACA,kBACA,cACA,kBACA,UACA,kBAGF,iBACE,iBACA,WACA,YACA,cA/iCS,+YAkjCT,4BACA,uBACA,4BACA,yBACA,oBAGF,wBAzjCW,WA2jCT,iCACA,oBACA,eACA,cAGF,4BACE,WACA,oBACA,wBAjkCoB,WAmkClB,8CAKF,WACE,SACA,UACA,wCAMA,iBACA,qFAJF,yBACE,4BACA,6BAOE,0CAGF,WACE,WACA,CAMJ,4FACA,yDAGA,wGACA,yDAGA,wEACA,yDAGA,gFACA,yDAGA,sEACA,0DAGA,0FACA,0DAGA,gGACA,0DAGA,wEACA,0DAGA,sEACA,0DAGA,4FACA,0DAGA,wEACA,0DAGA,8EACA,mFAGF,YACE,kCAGF,qBACE,gBACA,eACA,WACA,iBACA,kBACA,mBACA,OAEA,aACA,cACA,kBACA,yBACA,WACA,YACA,CAIA,wBACA,0BACA,2BAjqCA,4CACA,CADA,kBACA,CADA,gBACA,gBACA,yBAfS,yCAsrCX,YACE,yBAGF,wBA1rCW,kBA8rCX,wBACE,4CAGF,UACE,6BAGF,yBACE,WACA,YACA,iBAGF,wBA5sCW,SA8sCT,8BACA,8CAGF,UACE,YACA,gCAGF,UACE,gBACA,kCAGF,UACE,sBAGF,YACE,2BAGF,yBACE,kCAGF,qGA7rCE,eAIA,gBACA,wDA4rCF,eAxuCuB,gBA2uCrB,sBACA,iBACA,kBAGF,4BACE,yBAGF,YACE,gCAGF,UACE,sGAltCA,eAIA,gBACA,8CAitCF,sBACE,oDAGF,sBACE,WACA,0BACA,0CAGF,oBAGE,2FAGF,UACE,4GAGF,qBAII,qBACA,sBACA,yCAGJ,eACI,8BAGJ,iBACI,SACA,iDAGJ,iBACI,SACA,mCAGJ,kBACI,uBAGJ,iBACI,0BAGJ,iBACI,kBAGJ,iBACI,0BAGJ,iBACI,SACA,2GAGJ,qGA9yCE,gBAIA,mBAvBS,2FAu0CX,sBAIE,cACA,mBAz0CoB,WA20CpB,gBACA,iBACA,qBAGF,4BACE,0CAGF,eACE,gBACA,oFAGF,kBA51CW,iBA81CT,sDAGF,kBA91CsB,WAg2CpB,gBACA,YACA,eACA,gBACA,CAKE,+RAEA,UAGE,CAj0CJ,gMAo0CE,qGAz0CF,eAIA,gBACA,uHA00CF,eAEE,WA50CA,2CAi1CF,oQAEE,uBAGF,iBACE,MACA,wBACA,WACA,yBAv4CoB,eAy4CpB,gBACA,WACA,WACA,cACA,CACA,wBACA,sBACA,gBAGF,iBACE,mBAv5CS,sGAmBT,gBAIA,WAm4CA,YACA,iBACA,WACA,iBACA,sBACA,gBACA,sCAGF,eACE,UACE,YACA,kBACA,sCAIJ,eACE,WACE,YACA,0BACA,SACA,kCAIJ,eACE,YACA,cACA,WACA,iCAGF,aACE,wBACA,CAh7CA,4CACA,CADA,kBACA,CADA,gBACA,gBACA,kBAg7CA,iBACA,kBACA,mBACA,sBACA,yBAGF,wBAt8CW,WAw8CT,eACA,gBACA,sBACA,kBACA,yBAGF,eACE,mBAh9CS,WAk9CT,WACA,YACA,oBACA,+BAGF,iBACE,QACA,SACA,WACA,YACA,SACA,4BAGF,kBAj+CW,CAm+CT,gBACA,WACA,+BAEA,oBACE,4EAEA,WAEE,2BACA,sCAt9CJ,UA69CI,wEAJF,iBACE,sGA99CJ,gBAIA,CA49CI,WASA,CARA,kCAGF,oBACE,CAEA,SAEA,iCAGF,oBACE,qIA58CJ,gBAMA,2BACA,4BACA,gBAs8CI,SACA,WACA,wBACA,0CAEA,kBAvgDK,WAygDH,gBACA,mBACA,uCAGF,kBA9gDK,WAghDH,kCAIJ,uBACE,uBACA,kBACA,UACA,SACA,UACA,qCAEA,kBA5hDK,qBA8hDH,wBACA,uCAEA,kBAjiDG,qIAoDT,gBAMA,2BACA,4BACA,WAw+CQ,gBACA,kBACA,UACA,gDAEA,kBAziDC,WA2iDC,mBACA,gBACA,kBACA,iBACA,kBACA,kBACA,UACA,4DAEA,aACE,sDAGF,sBACE,WACA,6CAIJ,kBA9jDC,WAgkDC,sCAQZ,iCACE,gBACE,yBAGF,mBACE,sCAIJ,iCACE,eACE,yBAKE,gBACA,WACA,YACA,iCAEF,aACE,WACA,0BACA,iBAKN,qBAlmDuB,WAomDrB,sBACA,gBACA,kBACA,MACA,OACA,WACA,sBAGF,qBACE,CA7kDA,4CACA,CADA,kBACA,CADA,gBACA,gBACA,weA+kDF,UAeE,qEAGF,qBAEE,sJAGF,UAKE,sBACA,CA9mDA,4CACA,CADA,kBACA,CADA,gBACA,gBACA,4WA+mDA,qBACE,qEAIJ,kBA3pDW,sGAmBT,gBAIA,WA0oDA,gBACA,uFAEA,kBApqDS,4CAyqDX,eArqDuB,WAwqDrB,iBACA,kBACA,sBACA,gDAEA,UACE,0BACA,gGAIJ,kBAvrDW,yBA8rDX,yBACE,YACA,kCAGF,UACE,sBACA,kBACA,CAIA,4CACA,CADA,kBACA,CADA,gBACA,WACA,YACA,qBACA,sBACA,iBACA,2CAGF,qBACE,gCACA,8FAGF,UAGE,kCACA,ooB","file":"skins/vanilla/win95/common.css","sourcesContent":["@font-face{font-family:\"premillenium\";src:url(\"~fonts/premillenium/MSSansSerif.ttf\") format(\"truetype\")}html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,em,img,ins,kbd,q,s,samp,small,strike,strong,sub,sup,tt,var,b,u,i,center,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td,article,aside,canvas,details,embed,figure,figcaption,footer,header,hgroup,menu,nav,output,ruby,section,summary,time,mark,audio,video{margin:0;padding:0;border:0;font-size:100%;font:inherit;vertical-align:baseline}article,aside,details,figcaption,figure,footer,header,hgroup,menu,nav,section{display:block}body{line-height:1}ol,ul{list-style:none}blockquote,q{quotes:none}blockquote:before,blockquote:after,q:before,q:after{content:\"\";content:none}table{border-collapse:collapse;border-spacing:0}html{scrollbar-color:#192432 rgba(0,0,0,.1)}::-webkit-scrollbar{width:12px;height:12px}::-webkit-scrollbar-thumb{background:#192432;border:0px none #fff;border-radius:50px}::-webkit-scrollbar-thumb:hover{background:#1c2938}::-webkit-scrollbar-thumb:active{background:#192432}::-webkit-scrollbar-track{border:0px none #fff;border-radius:0;background:rgba(0,0,0,.1)}::-webkit-scrollbar-track:hover{background:#121a24}::-webkit-scrollbar-track:active{background:#121a24}::-webkit-scrollbar-corner{background:transparent}body{font-family:\"mastodon-font-sans-serif\",sans-serif;background:#06090c;font-size:13px;line-height:18px;font-weight:400;color:#fff;text-rendering:optimizelegibility;font-feature-settings:\"kern\";text-size-adjust:none;-webkit-tap-highlight-color:rgba(0,0,0,0);-webkit-tap-highlight-color:transparent}body.system-font{font-family:system-ui,-apple-system,BlinkMacSystemFont,\"Segoe UI\",\"Oxygen\",\"Ubuntu\",\"Cantarell\",\"Fira Sans\",\"Droid Sans\",\"Helvetica Neue\",\"mastodon-font-sans-serif\",sans-serif}body.app-body{padding:0}body.app-body.layout-single-column{height:auto;min-height:100vh;overflow-y:scroll}body.app-body.layout-multiple-columns{position:absolute;width:100%;height:100%}body.app-body.with-modals--active{overflow-y:hidden}body.lighter{background:#121a24}body.with-modals{overflow-x:hidden;overflow-y:scroll}body.with-modals--active{overflow-y:hidden}body.player{text-align:center}body.embed{background:#192432;margin:0;padding-bottom:0}body.embed .container{position:absolute;width:100%;height:100%;overflow:hidden}body.admin{background:#0b1016;padding:0}body.error{position:absolute;text-align:center;color:#9baec8;background:#121a24;width:100%;height:100%;padding:0;display:flex;justify-content:center;align-items:center}body.error .dialog{vertical-align:middle;margin:20px}body.error .dialog__illustration img{display:block;max-width:470px;width:100%;height:auto;margin-top:-120px}body.error .dialog h1{font-size:20px;line-height:28px;font-weight:400}button{font-family:inherit;cursor:pointer}button:focus{outline:none}.app-holder,.app-holder>div,.app-holder>noscript{display:flex;width:100%;align-items:center;justify-content:center;outline:0 !important}.app-holder>noscript{height:100vh}.layout-single-column .app-holder,.layout-single-column .app-holder>div{min-height:100vh}.layout-multiple-columns .app-holder,.layout-multiple-columns .app-holder>div{height:100%}.error-boundary,.app-holder noscript{flex-direction:column;font-size:16px;font-weight:400;line-height:1.7;color:#e25169;text-align:center}.error-boundary>div,.app-holder noscript>div{max-width:500px}.error-boundary p,.app-holder noscript p{margin-bottom:.85em}.error-boundary p:last-child,.app-holder noscript p:last-child{margin-bottom:0}.error-boundary a,.app-holder noscript a{color:#00007f}.error-boundary a:hover,.error-boundary a:focus,.error-boundary a:active,.app-holder noscript a:hover,.app-holder noscript a:focus,.app-holder noscript a:active{text-decoration:none}.error-boundary__footer,.app-holder noscript__footer{color:#404040;font-size:13px}.error-boundary__footer a,.app-holder noscript__footer a{color:#404040}.error-boundary button,.app-holder noscript button{display:inline;border:0;background:transparent;color:#404040;font:inherit;padding:0;margin:0;line-height:inherit;cursor:pointer;outline:0;transition:color 300ms linear;text-decoration:underline}.error-boundary button:hover,.error-boundary button:focus,.error-boundary button:active,.app-holder noscript button:hover,.app-holder noscript button:focus,.app-holder noscript button:active{text-decoration:none}.error-boundary button.copied,.app-holder noscript button.copied{color:#79bd9a;transition:none}.container-alt{width:700px;margin:0 auto;margin-top:40px}@media screen and (max-width: 740px){.container-alt{width:100%;margin:0}}.logo-container{margin:100px auto 50px}@media screen and (max-width: 500px){.logo-container{margin:40px auto 0}}.logo-container h1{display:flex;justify-content:center;align-items:center}.logo-container h1 svg{fill:#fff;height:42px;margin-right:10px}.logo-container h1 a{display:flex;justify-content:center;align-items:center;color:#fff;text-decoration:none;outline:0;padding:12px 16px;line-height:32px;font-family:\"mastodon-font-display\",sans-serif;font-weight:500;font-size:14px}.compose-standalone .compose-form{width:400px;margin:0 auto;padding:20px 0;margin-top:40px;box-sizing:border-box}@media screen and (max-width: 400px){.compose-standalone .compose-form{width:100%;margin-top:0;padding:20px}}.account-header{width:400px;margin:0 auto;display:flex;font-size:13px;line-height:18px;box-sizing:border-box;padding:20px 0;padding-bottom:0;margin-bottom:-30px;margin-top:40px}@media screen and (max-width: 440px){.account-header{width:100%;margin:0;margin-bottom:10px;padding:20px;padding-bottom:0}}.account-header .avatar{width:40px;height:40px;margin-right:8px}.account-header .avatar img{width:100%;height:100%;display:block;margin:0;border-radius:4px}.account-header .name{flex:1 1 auto;color:#d9e1e8;width:calc(100% - 88px)}.account-header .name .username{display:block;font-weight:500;text-overflow:ellipsis;overflow:hidden}.account-header .logout-link{display:block;font-size:32px;line-height:40px;margin-left:8px}.grid-3{display:grid;grid-gap:10px;grid-template-columns:3fr 1fr;grid-auto-columns:25%;grid-auto-rows:max-content}.grid-3 .column-0{grid-column:1/3;grid-row:1}.grid-3 .column-1{grid-column:1;grid-row:2}.grid-3 .column-2{grid-column:2;grid-row:2}.grid-3 .column-3{grid-column:1/3;grid-row:3}@media screen and (max-width: 415px){.grid-3{grid-gap:0;grid-template-columns:minmax(0, 100%)}.grid-3 .column-0{grid-column:1}.grid-3 .column-1{grid-column:1;grid-row:3}.grid-3 .column-2{grid-column:1;grid-row:2}.grid-3 .column-3{grid-column:1;grid-row:4}}.grid-4{display:grid;grid-gap:10px;grid-template-columns:repeat(4, minmax(0, 1fr));grid-auto-columns:25%;grid-auto-rows:max-content}.grid-4 .column-0{grid-column:1/5;grid-row:1}.grid-4 .column-1{grid-column:1/4;grid-row:2}.grid-4 .column-2{grid-column:4;grid-row:2}.grid-4 .column-3{grid-column:2/5;grid-row:3}.grid-4 .column-4{grid-column:1;grid-row:3}.grid-4 .landing-page__call-to-action{min-height:100%}.grid-4 .flash-message{margin-bottom:10px}@media screen and (max-width: 738px){.grid-4{grid-template-columns:minmax(0, 50%) minmax(0, 50%)}.grid-4 .landing-page__call-to-action{padding:20px;display:flex;align-items:center;justify-content:center}.grid-4 .row__information-board{width:100%;justify-content:center;align-items:center}.grid-4 .row__mascot{display:none}}@media screen and (max-width: 415px){.grid-4{grid-gap:0;grid-template-columns:minmax(0, 100%)}.grid-4 .column-0{grid-column:1}.grid-4 .column-1{grid-column:1;grid-row:3}.grid-4 .column-2{grid-column:1;grid-row:2}.grid-4 .column-3{grid-column:1;grid-row:5}.grid-4 .column-4{grid-column:1;grid-row:4}}@media screen and (max-width: 415px){.public-layout{padding-top:48px}}.public-layout .container{max-width:960px}@media screen and (max-width: 415px){.public-layout .container{padding:0}}.public-layout .header{background:#202e3f;box-shadow:0 0 15px rgba(0,0,0,.2);border-radius:4px;height:48px;margin:10px 0;display:flex;align-items:stretch;justify-content:center;flex-wrap:nowrap;overflow:hidden}@media screen and (max-width: 415px){.public-layout .header{position:fixed;width:100%;top:0;left:0;margin:0;border-radius:0;box-shadow:none;z-index:110}}.public-layout .header>div{flex:1 1 33.3%;min-height:1px}.public-layout .header .nav-left{display:flex;align-items:stretch;justify-content:flex-start;flex-wrap:nowrap}.public-layout .header .nav-center{display:flex;align-items:stretch;justify-content:center;flex-wrap:nowrap}.public-layout .header .nav-right{display:flex;align-items:stretch;justify-content:flex-end;flex-wrap:nowrap}.public-layout .header .brand{display:block;padding:15px}.public-layout .header .brand svg{display:block;height:18px;width:auto;position:relative;bottom:-2px;fill:#fff}@media screen and (max-width: 415px){.public-layout .header .brand svg{height:20px}}.public-layout .header .brand:hover,.public-layout .header .brand:focus,.public-layout .header .brand:active{background:#26374d}.public-layout .header .nav-link{display:flex;align-items:center;padding:0 1rem;font-size:12px;font-weight:500;text-decoration:none;color:#9baec8;white-space:nowrap;text-align:center}.public-layout .header .nav-link:hover,.public-layout .header .nav-link:focus,.public-layout .header .nav-link:active{text-decoration:underline;color:#fff}@media screen and (max-width: 550px){.public-layout .header .nav-link.optional{display:none}}.public-layout .header .nav-button{background:#2d415a;margin:8px;margin-left:0;border-radius:4px}.public-layout .header .nav-button:hover,.public-layout .header .nav-button:focus,.public-layout .header .nav-button:active{text-decoration:none;background:#344b68}.public-layout .grid{display:grid;grid-gap:10px;grid-template-columns:minmax(300px, 3fr) minmax(298px, 1fr);grid-auto-columns:25%;grid-auto-rows:max-content}.public-layout .grid .column-0{grid-row:1;grid-column:1}.public-layout .grid .column-1{grid-row:1;grid-column:2}@media screen and (max-width: 600px){.public-layout .grid{grid-template-columns:100%;grid-gap:0}.public-layout .grid .column-1{display:none}}.public-layout .directory__card{border-radius:4px}@media screen and (max-width: 415px){.public-layout .directory__card{border-radius:0}}@media screen and (max-width: 415px){.public-layout .page-header{border-bottom:0}}.public-layout .public-account-header{overflow:hidden;margin-bottom:10px;box-shadow:0 0 15px rgba(0,0,0,.2)}.public-layout .public-account-header.inactive{opacity:.5}.public-layout .public-account-header.inactive .public-account-header__image,.public-layout .public-account-header.inactive .avatar{filter:grayscale(100%)}.public-layout .public-account-header.inactive .logo-button{background-color:#d9e1e8}.public-layout .public-account-header__image{border-radius:4px 4px 0 0;overflow:hidden;height:300px;position:relative;background:#000}.public-layout .public-account-header__image::after{content:\"\";display:block;position:absolute;width:100%;height:100%;box-shadow:inset 0 -1px 1px 1px rgba(0,0,0,.15);top:0;left:0}.public-layout .public-account-header__image img{object-fit:cover;display:block;width:100%;height:100%;margin:0;border-radius:4px 4px 0 0}@media screen and (max-width: 600px){.public-layout .public-account-header__image{height:200px}}.public-layout .public-account-header--no-bar{margin-bottom:0}.public-layout .public-account-header--no-bar .public-account-header__image,.public-layout .public-account-header--no-bar .public-account-header__image img{border-radius:4px}@media screen and (max-width: 415px){.public-layout .public-account-header--no-bar .public-account-header__image,.public-layout .public-account-header--no-bar .public-account-header__image img{border-radius:0}}@media screen and (max-width: 415px){.public-layout .public-account-header{margin-bottom:0;box-shadow:none}.public-layout .public-account-header__image::after{display:none}.public-layout .public-account-header__image,.public-layout .public-account-header__image img{border-radius:0}}.public-layout .public-account-header__bar{position:relative;margin-top:-80px;display:flex;justify-content:flex-start}.public-layout .public-account-header__bar::before{content:\"\";display:block;background:#192432;position:absolute;bottom:0;left:0;right:0;height:60px;border-radius:0 0 4px 4px;z-index:-1}.public-layout .public-account-header__bar .avatar{display:block;width:120px;height:120px;padding-left:16px;flex:0 0 auto}.public-layout .public-account-header__bar .avatar img{display:block;width:100%;height:100%;margin:0;border-radius:50%;border:4px solid #192432;background:#040609}@media screen and (max-width: 600px){.public-layout .public-account-header__bar{margin-top:0;background:#192432;border-radius:0 0 4px 4px;padding:5px}.public-layout .public-account-header__bar::before{display:none}.public-layout .public-account-header__bar .avatar{width:48px;height:48px;padding:7px 0;padding-left:10px}.public-layout .public-account-header__bar .avatar img{border:0;border-radius:4px}}@media screen and (max-width: 600px)and (max-width: 360px){.public-layout .public-account-header__bar .avatar{display:none}}@media screen and (max-width: 415px){.public-layout .public-account-header__bar{border-radius:0}}@media screen and (max-width: 600px){.public-layout .public-account-header__bar{flex-wrap:wrap}}.public-layout .public-account-header__tabs{flex:1 1 auto;margin-left:20px}.public-layout .public-account-header__tabs__name{padding-top:20px;padding-bottom:8px}.public-layout .public-account-header__tabs__name h1{font-size:20px;line-height:27px;color:#fff;font-weight:500;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;text-shadow:1px 1px 1px #000}.public-layout .public-account-header__tabs__name h1 small{display:block;font-size:14px;color:#fff;font-weight:400;overflow:hidden;text-overflow:ellipsis}@media screen and (max-width: 600px){.public-layout .public-account-header__tabs{margin-left:15px;display:flex;justify-content:space-between;align-items:center}.public-layout .public-account-header__tabs__name{padding-top:0;padding-bottom:0}.public-layout .public-account-header__tabs__name h1{font-size:16px;line-height:24px;text-shadow:none}.public-layout .public-account-header__tabs__name h1 small{color:#9baec8}}.public-layout .public-account-header__tabs__tabs{display:flex;justify-content:flex-start;align-items:stretch;height:58px}.public-layout .public-account-header__tabs__tabs .details-counters{display:flex;flex-direction:row;min-width:300px}@media screen and (max-width: 600px){.public-layout .public-account-header__tabs__tabs .details-counters{display:none}}.public-layout .public-account-header__tabs__tabs .counter{min-width:33.3%;box-sizing:border-box;flex:0 0 auto;color:#9baec8;padding:10px;border-right:1px solid #192432;cursor:default;text-align:center;position:relative}.public-layout .public-account-header__tabs__tabs .counter a{display:block}.public-layout .public-account-header__tabs__tabs .counter:last-child{border-right:0}.public-layout .public-account-header__tabs__tabs .counter::after{display:block;content:\"\";position:absolute;bottom:0;left:0;width:100%;border-bottom:4px solid #9baec8;opacity:.5;transition:all 400ms ease}.public-layout .public-account-header__tabs__tabs .counter.active::after{border-bottom:4px solid #00007f;opacity:1}.public-layout .public-account-header__tabs__tabs .counter.active.inactive::after{border-bottom-color:#d9e1e8}.public-layout .public-account-header__tabs__tabs .counter:hover::after{opacity:1;transition-duration:100ms}.public-layout .public-account-header__tabs__tabs .counter a{text-decoration:none;color:inherit}.public-layout .public-account-header__tabs__tabs .counter .counter-label{font-size:12px;display:block}.public-layout .public-account-header__tabs__tabs .counter .counter-number{font-weight:500;font-size:18px;margin-bottom:5px;color:#fff;font-family:\"mastodon-font-display\",sans-serif}.public-layout .public-account-header__tabs__tabs .spacer{flex:1 1 auto;height:1px}.public-layout .public-account-header__tabs__tabs__buttons{padding:7px 8px}.public-layout .public-account-header__extra{display:none;margin-top:4px}.public-layout .public-account-header__extra .public-account-bio{border-radius:0;box-shadow:none;background:transparent;margin:0 -5px}.public-layout .public-account-header__extra .public-account-bio .account__header__fields{border-top:1px solid #26374d}.public-layout .public-account-header__extra .public-account-bio .roles{display:none}.public-layout .public-account-header__extra__links{margin-top:-15px;font-size:14px;color:#9baec8}.public-layout .public-account-header__extra__links a{display:inline-block;color:#9baec8;text-decoration:none;padding:15px;font-weight:500}.public-layout .public-account-header__extra__links a strong{font-weight:700;color:#fff}@media screen and (max-width: 600px){.public-layout .public-account-header__extra{display:block;flex:100%}}.public-layout .account__section-headline{border-radius:4px 4px 0 0}@media screen and (max-width: 415px){.public-layout .account__section-headline{border-radius:0}}.public-layout .detailed-status__meta{margin-top:25px}.public-layout .public-account-bio{background:#202e3f;box-shadow:0 0 15px rgba(0,0,0,.2);border-radius:4px;overflow:hidden;margin-bottom:10px}@media screen and (max-width: 415px){.public-layout .public-account-bio{box-shadow:none;margin-bottom:0;border-radius:0}}.public-layout .public-account-bio .account__header__fields{margin:0;border-top:0}.public-layout .public-account-bio .account__header__fields a{color:#0000a8}.public-layout .public-account-bio .account__header__fields dl:first-child .verified{border-radius:0 4px 0 0}.public-layout .public-account-bio .account__header__fields .verified a{color:#79bd9a}.public-layout .public-account-bio .account__header__content{padding:20px;padding-bottom:0;color:#fff}.public-layout .public-account-bio__extra,.public-layout .public-account-bio .roles{padding:20px;font-size:14px;color:#9baec8}.public-layout .public-account-bio .roles{padding-bottom:0}.public-layout .directory__list{display:grid;grid-gap:10px;grid-template-columns:minmax(0, 50%) minmax(0, 50%)}@media screen and (max-width: 415px){.public-layout .directory__list{display:block}}.public-layout .directory__list .icon-button{font-size:18px}.public-layout .directory__card{margin-bottom:0}.public-layout .card-grid{display:flex;flex-wrap:wrap;min-width:100%;margin:0 -5px}.public-layout .card-grid>div{box-sizing:border-box;flex:1 0 auto;width:300px;padding:0 5px;margin-bottom:10px;max-width:33.333%}@media screen and (max-width: 900px){.public-layout .card-grid>div{max-width:50%}}@media screen and (max-width: 600px){.public-layout .card-grid>div{max-width:100%}}@media screen and (max-width: 415px){.public-layout .card-grid{margin:0;border-top:1px solid #202e3f}.public-layout .card-grid>div{width:100%;padding:0;margin-bottom:0;border-bottom:1px solid #202e3f}.public-layout .card-grid>div:last-child{border-bottom:0}.public-layout .card-grid>div .card__bar{background:#121a24}.public-layout .card-grid>div .card__bar:hover,.public-layout .card-grid>div .card__bar:active,.public-layout .card-grid>div .card__bar:focus{background:#192432}}.no-list{list-style:none}.no-list li{display:inline-block;margin:0 5px}.recovery-codes{list-style:none;margin:0 auto}.recovery-codes li{font-size:125%;line-height:1.5;letter-spacing:1px}.public-layout .footer{text-align:left;padding-top:20px;padding-bottom:60px;font-size:12px;color:#4c6d98}@media screen and (max-width: 415px){.public-layout .footer{padding-left:20px;padding-right:20px}}.public-layout .footer .grid{display:grid;grid-gap:10px;grid-template-columns:1fr 1fr 2fr 1fr 1fr}.public-layout .footer .grid .column-0{grid-column:1;grid-row:1;min-width:0}.public-layout .footer .grid .column-1{grid-column:2;grid-row:1;min-width:0}.public-layout .footer .grid .column-2{grid-column:3;grid-row:1;min-width:0;text-align:center}.public-layout .footer .grid .column-2 h4 a{color:#4c6d98}.public-layout .footer .grid .column-3{grid-column:4;grid-row:1;min-width:0}.public-layout .footer .grid .column-4{grid-column:5;grid-row:1;min-width:0}@media screen and (max-width: 690px){.public-layout .footer .grid{grid-template-columns:1fr 2fr 1fr}.public-layout .footer .grid .column-0,.public-layout .footer .grid .column-1{grid-column:1}.public-layout .footer .grid .column-1{grid-row:2}.public-layout .footer .grid .column-2{grid-column:2}.public-layout .footer .grid .column-3,.public-layout .footer .grid .column-4{grid-column:3}.public-layout .footer .grid .column-4{grid-row:2}}@media screen and (max-width: 600px){.public-layout .footer .grid .column-1{display:block}}@media screen and (max-width: 415px){.public-layout .footer .grid .column-0,.public-layout .footer .grid .column-1,.public-layout .footer .grid .column-3,.public-layout .footer .grid .column-4{display:none}}.public-layout .footer h4{text-transform:uppercase;font-weight:700;margin-bottom:8px;color:#9baec8}.public-layout .footer h4 a{color:inherit;text-decoration:none}.public-layout .footer ul a{text-decoration:none;color:#4c6d98}.public-layout .footer ul a:hover,.public-layout .footer ul a:active,.public-layout .footer ul a:focus{text-decoration:underline}.public-layout .footer .brand svg{display:block;height:36px;width:auto;margin:0 auto;fill:#4c6d98}.public-layout .footer .brand:hover svg,.public-layout .footer .brand:focus svg,.public-layout .footer .brand:active svg{fill:#5377a5}.compact-header h1{font-size:24px;line-height:28px;color:#9baec8;font-weight:500;margin-bottom:20px;padding:0 10px;word-wrap:break-word}@media screen and (max-width: 740px){.compact-header h1{text-align:center;padding:20px 10px 0}}.compact-header h1 a{color:inherit;text-decoration:none}.compact-header h1 small{font-weight:400;color:#d9e1e8}.compact-header h1 img{display:inline-block;margin-bottom:-5px;margin-right:15px;width:36px;height:36px}.hero-widget{margin-bottom:10px;box-shadow:0 0 15px rgba(0,0,0,.2)}.hero-widget__img{width:100%;position:relative;overflow:hidden;border-radius:4px 4px 0 0;background:#000}.hero-widget__img img{object-fit:cover;display:block;width:100%;height:100%;margin:0;border-radius:4px 4px 0 0}.hero-widget__text{background:#121a24;padding:20px;border-radius:0 0 4px 4px;font-size:15px;color:#9baec8;line-height:20px;word-wrap:break-word;font-weight:400}.hero-widget__text .emojione{width:20px;height:20px;margin:-3px 0 0}.hero-widget__text p{margin-bottom:20px}.hero-widget__text p:last-child{margin-bottom:0}.hero-widget__text em{display:inline;margin:0;padding:0;font-weight:700;background:transparent;font-family:inherit;font-size:inherit;line-height:inherit;color:#bcc9da}.hero-widget__text a{color:#d9e1e8;text-decoration:none}.hero-widget__text a:hover{text-decoration:underline}@media screen and (max-width: 415px){.hero-widget{display:none}}.endorsements-widget{margin-bottom:10px;padding-bottom:10px}.endorsements-widget h4{padding:10px;text-transform:uppercase;font-weight:700;font-size:13px;color:#9baec8}.endorsements-widget .account{padding:10px 0}.endorsements-widget .account:last-child{border-bottom:0}.endorsements-widget .account .account__display-name{display:flex;align-items:center}.endorsements-widget .account .account__avatar{width:44px;height:44px;background-size:44px 44px}.endorsements-widget .trends__item{padding:10px}.trends-widget h4{color:#9baec8}.box-widget{padding:20px;border-radius:4px;background:#121a24;box-shadow:0 0 15px rgba(0,0,0,.2)}.placeholder-widget{padding:16px;border-radius:4px;border:2px dashed #404040;text-align:center;color:#9baec8;margin-bottom:10px}.contact-widget{min-height:100%;font-size:15px;color:#9baec8;line-height:20px;word-wrap:break-word;font-weight:400;padding:0}.contact-widget h4{padding:10px;text-transform:uppercase;font-weight:700;font-size:13px;color:#9baec8}.contact-widget .account{border-bottom:0;padding:10px 0;padding-top:5px}.contact-widget>a{display:inline-block;padding:10px;padding-top:0;color:#9baec8;text-decoration:none;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.contact-widget>a:hover,.contact-widget>a:focus,.contact-widget>a:active{text-decoration:underline}.moved-account-widget{padding:15px;padding-bottom:20px;border-radius:4px;background:#121a24;box-shadow:0 0 15px rgba(0,0,0,.2);color:#d9e1e8;font-weight:400;margin-bottom:10px}.moved-account-widget strong,.moved-account-widget a{font-weight:500}.moved-account-widget strong:lang(ja),.moved-account-widget a:lang(ja){font-weight:700}.moved-account-widget strong:lang(ko),.moved-account-widget a:lang(ko){font-weight:700}.moved-account-widget strong:lang(zh-CN),.moved-account-widget a:lang(zh-CN){font-weight:700}.moved-account-widget strong:lang(zh-HK),.moved-account-widget a:lang(zh-HK){font-weight:700}.moved-account-widget strong:lang(zh-TW),.moved-account-widget a:lang(zh-TW){font-weight:700}.moved-account-widget a{color:inherit;text-decoration:underline}.moved-account-widget a.mention{text-decoration:none}.moved-account-widget a.mention span{text-decoration:none}.moved-account-widget a.mention:focus,.moved-account-widget a.mention:hover,.moved-account-widget a.mention:active{text-decoration:none}.moved-account-widget a.mention:focus span,.moved-account-widget a.mention:hover span,.moved-account-widget a.mention:active span{text-decoration:underline}.moved-account-widget__message{margin-bottom:15px}.moved-account-widget__message .fa{margin-right:5px;color:#9baec8}.moved-account-widget__card .detailed-status__display-avatar{position:relative;cursor:pointer}.moved-account-widget__card .detailed-status__display-name{margin-bottom:0;text-decoration:none}.moved-account-widget__card .detailed-status__display-name span{font-weight:400}.memoriam-widget{padding:20px;border-radius:4px;background:#000;box-shadow:0 0 15px rgba(0,0,0,.2);font-size:14px;color:#9baec8;margin-bottom:10px}.page-header{background:#202e3f;box-shadow:0 0 15px rgba(0,0,0,.2);border-radius:4px;padding:60px 15px;text-align:center;margin:10px 0}.page-header h1{color:#fff;font-size:36px;line-height:1.1;font-weight:700;margin-bottom:10px}.page-header p{font-size:15px;color:#9baec8}@media screen and (max-width: 415px){.page-header{margin-top:0;background:#192432}.page-header h1{font-size:24px}}.directory{background:#121a24;border-radius:4px;box-shadow:0 0 15px rgba(0,0,0,.2)}.directory__tag{box-sizing:border-box;margin-bottom:10px}.directory__tag>a,.directory__tag>div{display:flex;align-items:center;justify-content:space-between;background:#121a24;border-radius:4px;padding:15px;text-decoration:none;color:inherit;box-shadow:0 0 15px rgba(0,0,0,.2)}.directory__tag>a:hover,.directory__tag>a:active,.directory__tag>a:focus{background:#202e3f}.directory__tag.active>a{background:#00007f;cursor:default}.directory__tag.disabled>div{opacity:.5;cursor:default}.directory__tag h4{flex:1 1 auto;font-size:18px;font-weight:700;color:#fff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.directory__tag h4 .fa{color:#9baec8}.directory__tag h4 small{display:block;font-weight:400;font-size:15px;margin-top:8px;color:#9baec8}.directory__tag.active h4,.directory__tag.active h4 .fa,.directory__tag.active h4 small,.directory__tag.active h4 .trends__item__current{color:#fff}.directory__tag .avatar-stack{flex:0 0 auto;width:120px}.directory__tag.active .avatar-stack .account__avatar{border-color:#00007f}.directory__tag .trends__item__current{padding-right:0}.avatar-stack{display:flex;justify-content:flex-end}.avatar-stack .account__avatar{flex:0 0 auto;width:36px;height:36px;border-radius:50%;position:relative;margin-left:-10px;background:#040609;border:2px solid #121a24}.avatar-stack .account__avatar:nth-child(1){z-index:1}.avatar-stack .account__avatar:nth-child(2){z-index:2}.avatar-stack .account__avatar:nth-child(3){z-index:3}.accounts-table{width:100%}.accounts-table .account{padding:0;border:0}.accounts-table strong{font-weight:700}.accounts-table thead th{text-align:center;text-transform:uppercase;color:#9baec8;font-weight:700;padding:10px}.accounts-table thead th:first-child{text-align:left}.accounts-table tbody td{padding:15px 0;vertical-align:middle;border-bottom:1px solid #202e3f}.accounts-table tbody tr:last-child td{border-bottom:0}.accounts-table__count{width:120px;text-align:center;font-size:15px;font-weight:500;color:#fff}.accounts-table__count small{display:block;color:#9baec8;font-weight:400;font-size:14px}.accounts-table__comment{width:50%;vertical-align:initial !important}@media screen and (max-width: 415px){.accounts-table tbody td.optional{display:none}}@media screen and (max-width: 415px){.moved-account-widget,.memoriam-widget,.box-widget,.contact-widget,.landing-page__information.contact-widget,.directory,.page-header{margin-bottom:0;box-shadow:none;border-radius:0}}.statuses-grid{min-height:600px}@media screen and (max-width: 640px){.statuses-grid{width:100% !important}}.statuses-grid__item{width:313.3333333333px}@media screen and (max-width: 1255px){.statuses-grid__item{width:306.6666666667px}}@media screen and (max-width: 640px){.statuses-grid__item{width:100%}}@media screen and (max-width: 415px){.statuses-grid__item{width:100vw}}.statuses-grid .detailed-status{border-radius:4px}@media screen and (max-width: 415px){.statuses-grid .detailed-status{border-top:1px solid #2d415a}}.statuses-grid .detailed-status.compact .detailed-status__meta{margin-top:15px}.statuses-grid .detailed-status.compact .status__content{font-size:15px;line-height:20px}.statuses-grid .detailed-status.compact .status__content .emojione{width:20px;height:20px;margin:-3px 0 0}.statuses-grid .detailed-status.compact .status__content .status__content__spoiler-link{line-height:20px;margin:0}.statuses-grid .detailed-status.compact .media-gallery,.statuses-grid .detailed-status.compact .status-card,.statuses-grid .detailed-status.compact .video-player{margin-top:15px}.notice-widget{margin-bottom:10px;color:#9baec8}.notice-widget p{margin-bottom:10px}.notice-widget p:last-child{margin-bottom:0}.notice-widget a{font-size:14px;line-height:20px}.notice-widget a,.placeholder-widget a{text-decoration:none;font-weight:500;color:#00007f}.notice-widget a:hover,.notice-widget a:focus,.notice-widget a:active,.placeholder-widget a:hover,.placeholder-widget a:focus,.placeholder-widget a:active{text-decoration:underline}.table-of-contents{background:#0b1016;min-height:100%;font-size:14px;border-radius:4px}.table-of-contents li a{display:block;font-weight:500;padding:15px;overflow:hidden;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-decoration:none;color:#fff;border-bottom:1px solid #192432}.table-of-contents li a:hover,.table-of-contents li a:focus,.table-of-contents li a:active{text-decoration:underline}.table-of-contents li:last-child a{border-bottom:0}.table-of-contents li ul{padding-left:20px;border-bottom:1px solid #192432}code{font-family:\"mastodon-font-monospace\",monospace;font-weight:400}.form-container{max-width:400px;padding:20px;margin:0 auto}.simple_form .input{margin-bottom:15px;overflow:hidden}.simple_form .input.hidden{margin:0}.simple_form .input.radio_buttons .radio{margin-bottom:15px}.simple_form .input.radio_buttons .radio:last-child{margin-bottom:0}.simple_form .input.radio_buttons .radio>label{position:relative;padding-left:28px}.simple_form .input.radio_buttons .radio>label input{position:absolute;top:-2px;left:0}.simple_form .input.boolean{position:relative;margin-bottom:0}.simple_form .input.boolean .label_input>label{font-family:inherit;font-size:14px;padding-top:5px;color:#fff;display:block;width:auto}.simple_form .input.boolean .label_input,.simple_form .input.boolean .hint{padding-left:28px}.simple_form .input.boolean .label_input__wrapper{position:static}.simple_form .input.boolean label.checkbox{position:absolute;top:2px;left:0}.simple_form .input.boolean label a{color:#00007f;text-decoration:underline}.simple_form .input.boolean label a:hover,.simple_form .input.boolean label a:active,.simple_form .input.boolean label a:focus{text-decoration:none}.simple_form .input.boolean .recommended{position:absolute;margin:0 4px;margin-top:-2px}.simple_form .row{display:flex;margin:0 -5px}.simple_form .row .input{box-sizing:border-box;flex:1 1 auto;width:50%;padding:0 5px}.simple_form .hint{color:#9baec8}.simple_form .hint a{color:#00007f}.simple_form .hint code{border-radius:3px;padding:.2em .4em;background:#000}.simple_form .hint li{list-style:disc;margin-left:18px}.simple_form ul.hint{margin-bottom:15px}.simple_form span.hint{display:block;font-size:12px;margin-top:4px}.simple_form p.hint{margin-bottom:15px;color:#9baec8}.simple_form p.hint.subtle-hint{text-align:center;font-size:12px;line-height:18px;margin-top:15px;margin-bottom:0}.simple_form .card{margin-bottom:15px}.simple_form strong{font-weight:500}.simple_form strong:lang(ja){font-weight:700}.simple_form strong:lang(ko){font-weight:700}.simple_form strong:lang(zh-CN){font-weight:700}.simple_form strong:lang(zh-HK){font-weight:700}.simple_form strong:lang(zh-TW){font-weight:700}.simple_form .input.with_floating_label .label_input{display:flex}.simple_form .input.with_floating_label .label_input>label{font-family:inherit;font-size:14px;color:#fff;font-weight:500;min-width:150px;flex:0 0 auto}.simple_form .input.with_floating_label .label_input input,.simple_form .input.with_floating_label .label_input select{flex:1 1 auto}.simple_form .input.with_floating_label.select .hint{margin-top:6px;margin-left:150px}.simple_form .input.with_label .label_input>label{font-family:inherit;font-size:14px;color:#fff;display:block;margin-bottom:8px;word-wrap:break-word;font-weight:500}.simple_form .input.with_label .hint{margin-top:6px}.simple_form .input.with_label ul{flex:390px}.simple_form .input.with_block_label{max-width:none}.simple_form .input.with_block_label>label{font-family:inherit;font-size:16px;color:#fff;display:block;font-weight:500;padding-top:5px}.simple_form .input.with_block_label .hint{margin-bottom:15px}.simple_form .input.with_block_label ul{columns:2}.simple_form .input.datetime .label_input select{display:inline-block;width:auto;flex:0}.simple_form .required abbr{text-decoration:none;color:#e87487}.simple_form .fields-group{margin-bottom:25px}.simple_form .fields-group .input:last-child{margin-bottom:0}.simple_form .fields-row{display:flex;margin:0 -10px;padding-top:5px;margin-bottom:25px}.simple_form .fields-row .input{max-width:none}.simple_form .fields-row__column{box-sizing:border-box;padding:0 10px;flex:1 1 auto;min-height:1px}.simple_form .fields-row__column-6{max-width:50%}.simple_form .fields-row__column .actions{margin-top:27px}.simple_form .fields-row .fields-group:last-child,.simple_form .fields-row .fields-row__column.fields-group{margin-bottom:0}@media screen and (max-width: 600px){.simple_form .fields-row{display:block;margin-bottom:0}.simple_form .fields-row__column{max-width:none}.simple_form .fields-row .fields-group:last-child,.simple_form .fields-row .fields-row__column.fields-group,.simple_form .fields-row .fields-row__column{margin-bottom:25px}}.simple_form .input.radio_buttons .radio label{margin-bottom:5px;font-family:inherit;font-size:14px;color:#fff;display:block;width:auto}.simple_form .check_boxes .checkbox label{font-family:inherit;font-size:14px;color:#fff;display:inline-block;width:auto;position:relative;padding-top:5px;padding-left:25px;flex:1 1 auto}.simple_form .check_boxes .checkbox input[type=checkbox]{position:absolute;left:0;top:5px;margin:0}.simple_form .input.static .label_input__wrapper{font-size:16px;padding:10px;border:1px solid #404040;border-radius:4px}.simple_form input[type=text],.simple_form input[type=number],.simple_form input[type=email],.simple_form input[type=password],.simple_form textarea{box-sizing:border-box;font-size:16px;color:#fff;display:block;width:100%;outline:0;font-family:inherit;resize:vertical;background:#010102;border:1px solid #000;border-radius:4px;padding:10px}.simple_form input[type=text]::placeholder,.simple_form input[type=number]::placeholder,.simple_form input[type=email]::placeholder,.simple_form input[type=password]::placeholder,.simple_form textarea::placeholder{color:#a8b9cf}.simple_form input[type=text]:invalid,.simple_form input[type=number]:invalid,.simple_form input[type=email]:invalid,.simple_form input[type=password]:invalid,.simple_form textarea:invalid{box-shadow:none}.simple_form input[type=text]:focus:invalid:not(:placeholder-shown),.simple_form input[type=number]:focus:invalid:not(:placeholder-shown),.simple_form input[type=email]:focus:invalid:not(:placeholder-shown),.simple_form input[type=password]:focus:invalid:not(:placeholder-shown),.simple_form textarea:focus:invalid:not(:placeholder-shown){border-color:#e87487}.simple_form input[type=text]:required:valid,.simple_form input[type=number]:required:valid,.simple_form input[type=email]:required:valid,.simple_form input[type=password]:required:valid,.simple_form textarea:required:valid{border-color:#79bd9a}.simple_form input[type=text]:hover,.simple_form input[type=number]:hover,.simple_form input[type=email]:hover,.simple_form input[type=password]:hover,.simple_form textarea:hover{border-color:#000}.simple_form input[type=text]:active,.simple_form input[type=text]:focus,.simple_form input[type=number]:active,.simple_form input[type=number]:focus,.simple_form input[type=email]:active,.simple_form input[type=email]:focus,.simple_form input[type=password]:active,.simple_form input[type=password]:focus,.simple_form textarea:active,.simple_form textarea:focus{border-color:#00007f;background:#040609}.simple_form .input.field_with_errors label{color:#e87487}.simple_form .input.field_with_errors input[type=text],.simple_form .input.field_with_errors input[type=number],.simple_form .input.field_with_errors input[type=email],.simple_form .input.field_with_errors input[type=password],.simple_form .input.field_with_errors textarea,.simple_form .input.field_with_errors select{border-color:#e87487}.simple_form .input.field_with_errors .error{display:block;font-weight:500;color:#e87487;margin-top:4px}.simple_form .input.disabled{opacity:.5}.simple_form .actions{margin-top:30px;display:flex}.simple_form .actions.actions--top{margin-top:0;margin-bottom:30px}.simple_form button,.simple_form .button,.simple_form .block-button{display:block;width:100%;border:0;border-radius:4px;background:#00007f;color:#fff;font-size:18px;line-height:inherit;height:auto;padding:10px;text-transform:uppercase;text-decoration:none;text-align:center;box-sizing:border-box;cursor:pointer;font-weight:500;outline:0;margin-bottom:10px;margin-right:10px}.simple_form button:last-child,.simple_form .button:last-child,.simple_form .block-button:last-child{margin-right:0}.simple_form button:hover,.simple_form .button:hover,.simple_form .block-button:hover{background-color:#009}.simple_form button:active,.simple_form button:focus,.simple_form .button:active,.simple_form .button:focus,.simple_form .block-button:active,.simple_form .block-button:focus{background-color:#006}.simple_form button:disabled:hover,.simple_form .button:disabled:hover,.simple_form .block-button:disabled:hover{background-color:#9baec8}.simple_form button.negative,.simple_form .button.negative,.simple_form .block-button.negative{background:#df405a}.simple_form button.negative:hover,.simple_form .button.negative:hover,.simple_form .block-button.negative:hover{background-color:#e3566d}.simple_form button.negative:active,.simple_form button.negative:focus,.simple_form .button.negative:active,.simple_form .button.negative:focus,.simple_form .block-button.negative:active,.simple_form .block-button.negative:focus{background-color:#db2a47}.simple_form select{appearance:none;box-sizing:border-box;font-size:16px;color:#fff;display:block;width:100%;outline:0;font-family:inherit;resize:vertical;background:#010102 url(\"data:image/svg+xml;utf8,\") no-repeat right 8px center/auto 16px;border:1px solid #000;border-radius:4px;padding-left:10px;padding-right:30px;height:41px}.simple_form h4{margin-bottom:15px !important}.simple_form .label_input__wrapper{position:relative}.simple_form .label_input__append{position:absolute;right:3px;top:1px;padding:10px;padding-bottom:9px;font-size:16px;color:#404040;font-family:inherit;pointer-events:none;cursor:default;max-width:140px;white-space:nowrap;overflow:hidden}.simple_form .label_input__append::after{content:\"\";display:block;position:absolute;top:0;right:0;bottom:1px;width:5px;background-image:linear-gradient(to right, rgba(1, 1, 2, 0), #010102)}.simple_form__overlay-area{position:relative}.simple_form__overlay-area__blurred form{filter:blur(2px)}.simple_form__overlay-area__overlay{position:absolute;top:0;left:0;width:100%;height:100%;display:flex;justify-content:center;align-items:center;background:rgba(18,26,36,.65);border-radius:4px;margin-left:-4px;margin-top:-4px;padding:4px}.simple_form__overlay-area__overlay__content{text-align:center}.simple_form__overlay-area__overlay__content.rich-formatting,.simple_form__overlay-area__overlay__content.rich-formatting p{color:#fff}.block-icon{display:block;margin:0 auto;margin-bottom:10px;font-size:24px}.flash-message{background:#202e3f;color:#9baec8;border-radius:4px;padding:15px 10px;margin-bottom:30px;text-align:center}.flash-message.notice{border:1px solid rgba(121,189,154,.5);background:rgba(121,189,154,.25);color:#79bd9a}.flash-message.alert{border:1px solid rgba(223,64,90,.5);background:rgba(223,64,90,.25);color:#df405a}.flash-message a{display:inline-block;color:#9baec8;text-decoration:none}.flash-message a:hover{color:#fff;text-decoration:underline}.flash-message p{margin-bottom:15px}.flash-message .oauth-code{outline:0;box-sizing:border-box;display:block;width:100%;border:0;padding:10px;font-family:\"mastodon-font-monospace\",monospace;background:#121a24;color:#fff;font-size:14px;margin:0}.flash-message .oauth-code::-moz-focus-inner{border:0}.flash-message .oauth-code::-moz-focus-inner,.flash-message .oauth-code:focus,.flash-message .oauth-code:active{outline:0 !important}.flash-message .oauth-code:focus{background:#192432}.flash-message strong{font-weight:500}.flash-message strong:lang(ja){font-weight:700}.flash-message strong:lang(ko){font-weight:700}.flash-message strong:lang(zh-CN){font-weight:700}.flash-message strong:lang(zh-HK){font-weight:700}.flash-message strong:lang(zh-TW){font-weight:700}@media screen and (max-width: 740px)and (min-width: 441px){.flash-message{margin-top:40px}}.form-footer{margin-top:30px;text-align:center}.form-footer a{color:#9baec8;text-decoration:none}.form-footer a:hover{text-decoration:underline}.quick-nav{list-style:none;margin-bottom:25px;font-size:14px}.quick-nav li{display:inline-block;margin-right:10px}.quick-nav a{color:#00007f;text-transform:uppercase;text-decoration:none;font-weight:700}.quick-nav a:hover,.quick-nav a:focus,.quick-nav a:active{color:#0000a8}.oauth-prompt,.follow-prompt{margin-bottom:30px;color:#9baec8}.oauth-prompt h2,.follow-prompt h2{font-size:16px;margin-bottom:30px;text-align:center}.oauth-prompt strong,.follow-prompt strong{color:#d9e1e8;font-weight:500}.oauth-prompt strong:lang(ja),.follow-prompt strong:lang(ja){font-weight:700}.oauth-prompt strong:lang(ko),.follow-prompt strong:lang(ko){font-weight:700}.oauth-prompt strong:lang(zh-CN),.follow-prompt strong:lang(zh-CN){font-weight:700}.oauth-prompt strong:lang(zh-HK),.follow-prompt strong:lang(zh-HK){font-weight:700}.oauth-prompt strong:lang(zh-TW),.follow-prompt strong:lang(zh-TW){font-weight:700}@media screen and (max-width: 740px)and (min-width: 441px){.oauth-prompt,.follow-prompt{margin-top:40px}}.qr-wrapper{display:flex;flex-wrap:wrap;align-items:flex-start}.qr-code{flex:0 0 auto;background:#fff;padding:4px;margin:0 10px 20px 0;box-shadow:0 0 15px rgba(0,0,0,.2);display:inline-block}.qr-code svg{display:block;margin:0}.qr-alternative{margin-bottom:20px;color:#d9e1e8;flex:150px}.qr-alternative samp{display:block;font-size:14px}.table-form p{margin-bottom:15px}.table-form p strong{font-weight:500}.table-form p strong:lang(ja){font-weight:700}.table-form p strong:lang(ko){font-weight:700}.table-form p strong:lang(zh-CN){font-weight:700}.table-form p strong:lang(zh-HK){font-weight:700}.table-form p strong:lang(zh-TW){font-weight:700}.simple_form .warning,.table-form .warning{box-sizing:border-box;background:rgba(223,64,90,.5);color:#fff;text-shadow:1px 1px 0 rgba(0,0,0,.3);box-shadow:0 2px 6px rgba(0,0,0,.4);border-radius:4px;padding:10px;margin-bottom:15px}.simple_form .warning a,.table-form .warning a{color:#fff;text-decoration:underline}.simple_form .warning a:hover,.simple_form .warning a:focus,.simple_form .warning a:active,.table-form .warning a:hover,.table-form .warning a:focus,.table-form .warning a:active{text-decoration:none}.simple_form .warning strong,.table-form .warning strong{font-weight:600;display:block;margin-bottom:5px}.simple_form .warning strong:lang(ja),.table-form .warning strong:lang(ja){font-weight:700}.simple_form .warning strong:lang(ko),.table-form .warning strong:lang(ko){font-weight:700}.simple_form .warning strong:lang(zh-CN),.table-form .warning strong:lang(zh-CN){font-weight:700}.simple_form .warning strong:lang(zh-HK),.table-form .warning strong:lang(zh-HK){font-weight:700}.simple_form .warning strong:lang(zh-TW),.table-form .warning strong:lang(zh-TW){font-weight:700}.simple_form .warning strong .fa,.table-form .warning strong .fa{font-weight:400}.action-pagination{display:flex;flex-wrap:wrap;align-items:center}.action-pagination .actions,.action-pagination .pagination{flex:1 1 auto}.action-pagination .actions{padding:30px 0;padding-right:20px;flex:0 0 auto}.post-follow-actions{text-align:center;color:#9baec8}.post-follow-actions div{margin-bottom:4px}.alternative-login{margin-top:20px;margin-bottom:20px}.alternative-login h4{font-size:16px;color:#fff;text-align:center;margin-bottom:20px;border:0;padding:0}.alternative-login .button{display:block}.scope-danger{color:#ff5050}.form_admin_settings_site_short_description textarea,.form_admin_settings_site_description textarea,.form_admin_settings_site_extended_description textarea,.form_admin_settings_site_terms textarea,.form_admin_settings_custom_css textarea,.form_admin_settings_closed_registrations_message textarea{font-family:\"mastodon-font-monospace\",monospace}.input-copy{background:#010102;border:1px solid #000;border-radius:4px;display:flex;align-items:center;padding-right:4px;position:relative;top:1px;transition:border-color 300ms linear}.input-copy__wrapper{flex:1 1 auto}.input-copy input[type=text]{background:transparent;border:0;padding:10px;font-size:14px;font-family:\"mastodon-font-monospace\",monospace}.input-copy button{flex:0 0 auto;margin:4px;text-transform:none;font-weight:400;font-size:14px;padding:7px 18px;padding-bottom:6px;width:auto;transition:background 300ms linear}.input-copy.copied{border-color:#79bd9a;transition:none}.input-copy.copied button{background:#79bd9a;transition:none}.connection-prompt{margin-bottom:25px}.connection-prompt .fa-link{background-color:#0b1016;border-radius:100%;font-size:24px;padding:10px}.connection-prompt__column{align-items:center;display:flex;flex:1;flex-direction:column;flex-shrink:1;max-width:50%}.connection-prompt__column-sep{align-self:center;flex-grow:0;overflow:visible;position:relative;z-index:1}.connection-prompt__column p{word-break:break-word}.connection-prompt .account__avatar{margin-bottom:20px}.connection-prompt__connection{background-color:#202e3f;box-shadow:0 0 15px rgba(0,0,0,.2);border-radius:4px;padding:25px 10px;position:relative;text-align:center}.connection-prompt__connection::after{background-color:#0b1016;content:\"\";display:block;height:100%;left:50%;position:absolute;top:0;width:1px}.connection-prompt__row{align-items:flex-start;display:flex;flex-direction:row}.card>a{display:block;text-decoration:none;color:inherit;box-shadow:0 0 15px rgba(0,0,0,.2)}@media screen and (max-width: 415px){.card>a{box-shadow:none}}.card>a:hover .card__bar,.card>a:active .card__bar,.card>a:focus .card__bar{background:#202e3f}.card__img{height:130px;position:relative;background:#000;border-radius:4px 4px 0 0}.card__img img{display:block;width:100%;height:100%;margin:0;object-fit:cover;border-radius:4px 4px 0 0}@media screen and (max-width: 600px){.card__img{height:200px}}@media screen and (max-width: 415px){.card__img{display:none}}.card__bar{position:relative;padding:15px;display:flex;justify-content:flex-start;align-items:center;background:#192432;border-radius:0 0 4px 4px}@media screen and (max-width: 415px){.card__bar{border-radius:0}}.card__bar .avatar{flex:0 0 auto;width:48px;height:48px;padding-top:2px}.card__bar .avatar img{width:100%;height:100%;display:block;margin:0;border-radius:4px;background:#040609;object-fit:cover}.card__bar .display-name{margin-left:15px;text-align:left}.card__bar .display-name strong{font-size:15px;color:#fff;font-weight:500;overflow:hidden;text-overflow:ellipsis}.card__bar .display-name span{display:block;font-size:14px;color:#9baec8;font-weight:400;overflow:hidden;text-overflow:ellipsis}.pagination{padding:30px 0;text-align:center;overflow:hidden}.pagination a,.pagination .current,.pagination .newer,.pagination .older,.pagination .page,.pagination .gap{font-size:14px;color:#fff;font-weight:500;display:inline-block;padding:6px 10px;text-decoration:none}.pagination .current{background:#fff;border-radius:100px;color:#121a24;cursor:default;margin:0 10px}.pagination .gap{cursor:default}.pagination .older,.pagination .newer{text-transform:uppercase;color:#d9e1e8}.pagination .older{float:left;padding-left:0}.pagination .older .fa{display:inline-block;margin-right:5px}.pagination .newer{float:right;padding-right:0}.pagination .newer .fa{display:inline-block;margin-left:5px}.pagination .disabled{cursor:default;color:#233346}@media screen and (max-width: 700px){.pagination{padding:30px 20px}.pagination .page{display:none}.pagination .newer,.pagination .older{display:inline-block}}.nothing-here{background:#121a24;box-shadow:0 0 15px rgba(0,0,0,.2);color:#9baec8;font-size:14px;font-weight:500;text-align:center;display:flex;justify-content:center;align-items:center;cursor:default;border-radius:4px;padding:20px;min-height:30vh}.nothing-here--under-tabs{border-radius:0 0 4px 4px}.nothing-here--flexible{box-sizing:border-box;min-height:100%}.account-role,.simple_form .recommended{display:inline-block;padding:4px 6px;cursor:default;border-radius:3px;font-size:12px;line-height:12px;font-weight:500;color:#d9e1e8;background-color:rgba(217,225,232,.1);border:1px solid rgba(217,225,232,.5)}.account-role.moderator,.simple_form .recommended.moderator{color:#79bd9a;background-color:rgba(121,189,154,.1);border-color:rgba(121,189,154,.5)}.account-role.admin,.simple_form .recommended.admin{color:#e87487;background-color:rgba(232,116,135,.1);border-color:rgba(232,116,135,.5)}.account__header__fields{max-width:100vw;padding:0;margin:15px -15px -15px;border:0 none;border-top:1px solid #26374d;border-bottom:1px solid #26374d;font-size:14px;line-height:20px}.account__header__fields dl{display:flex;border-bottom:1px solid #26374d}.account__header__fields dt,.account__header__fields dd{box-sizing:border-box;padding:14px;text-align:center;max-height:48px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.account__header__fields dt{font-weight:500;width:120px;flex:0 0 auto;color:#d9e1e8;background:rgba(4,6,9,.5)}.account__header__fields dd{flex:1 1 auto;color:#9baec8}.account__header__fields a{color:#00007f;text-decoration:none}.account__header__fields a:hover,.account__header__fields a:focus,.account__header__fields a:active{text-decoration:underline}.account__header__fields .verified{border:1px solid rgba(121,189,154,.5);background:rgba(121,189,154,.25)}.account__header__fields .verified a{color:#79bd9a;font-weight:500}.account__header__fields .verified__mark{color:#79bd9a}.account__header__fields dl:last-child{border-bottom:0}.directory__tag .trends__item__current{width:auto}.pending-account__header{color:#9baec8}.pending-account__header a{color:#d9e1e8;text-decoration:none}.pending-account__header a:hover,.pending-account__header a:active,.pending-account__header a:focus{text-decoration:underline}.pending-account__header strong{color:#fff;font-weight:700}.pending-account__body{margin-top:10px}.activity-stream{box-shadow:0 0 15px rgba(0,0,0,.2);border-radius:4px;overflow:hidden;margin-bottom:10px}.activity-stream--under-tabs{border-radius:0 0 4px 4px}@media screen and (max-width: 415px){.activity-stream{margin-bottom:0;border-radius:0;box-shadow:none}}.activity-stream--headless{border-radius:0;margin:0;box-shadow:none}.activity-stream--headless .detailed-status,.activity-stream--headless .status{border-radius:0 !important}.activity-stream div[data-component]{width:100%}.activity-stream .entry{background:#121a24}.activity-stream .entry .detailed-status,.activity-stream .entry .status,.activity-stream .entry .load-more{animation:none}.activity-stream .entry:last-child .detailed-status,.activity-stream .entry:last-child .status,.activity-stream .entry:last-child .load-more{border-bottom:0;border-radius:0 0 4px 4px}.activity-stream .entry:first-child .detailed-status,.activity-stream .entry:first-child .status,.activity-stream .entry:first-child .load-more{border-radius:4px 4px 0 0}.activity-stream .entry:first-child:last-child .detailed-status,.activity-stream .entry:first-child:last-child .status,.activity-stream .entry:first-child:last-child .load-more{border-radius:4px}@media screen and (max-width: 740px){.activity-stream .entry .detailed-status,.activity-stream .entry .status,.activity-stream .entry .load-more{border-radius:0 !important}}.activity-stream--highlighted .entry{background:#202e3f}.button.logo-button{flex:0 auto;font-size:14px;background:#00007f;color:#fff;text-transform:none;line-height:36px;height:auto;padding:3px 15px;border:0}.button.logo-button svg{width:20px;height:auto;vertical-align:middle;margin-right:5px;fill:#fff}.button.logo-button:active,.button.logo-button:focus,.button.logo-button:hover{background:#0000b2}.button.logo-button:disabled:active,.button.logo-button:disabled:focus,.button.logo-button:disabled:hover,.button.logo-button.disabled:active,.button.logo-button.disabled:focus,.button.logo-button.disabled:hover{background:#9baec8}.button.logo-button.button--destructive:active,.button.logo-button.button--destructive:focus,.button.logo-button.button--destructive:hover{background:#df405a}@media screen and (max-width: 415px){.button.logo-button svg{display:none}}.embed .detailed-status,.public-layout .detailed-status{padding:15px}.embed .status,.public-layout .status{padding:15px 15px 15px 78px;min-height:50px}.embed .status__avatar,.public-layout .status__avatar{left:15px;top:17px}.embed .status__content,.public-layout .status__content{padding-top:5px}.embed .status__prepend,.public-layout .status__prepend{margin-left:78px;padding-top:15px}.embed .status__prepend-icon-wrapper,.public-layout .status__prepend-icon-wrapper{left:-32px}.embed .status .media-gallery,.embed .status__action-bar,.embed .status .video-player,.public-layout .status .media-gallery,.public-layout .status__action-bar,.public-layout .status .video-player{margin-top:10px}button.icon-button i.fa-retweet{background-image:url(\"data:image/svg+xml;utf8,\")}button.icon-button i.fa-retweet:hover{background-image:url(\"data:image/svg+xml;utf8,\")}button.icon-button.disabled i.fa-retweet{background-image:url(\"data:image/svg+xml;utf8,\")}.app-body{-webkit-overflow-scrolling:touch;-ms-overflow-style:-ms-autohiding-scrollbar}.animated-number{display:inline-flex;flex-direction:column;align-items:stretch;overflow:hidden;position:relative}.link-button{display:block;font-size:15px;line-height:20px;color:#00007f;border:0;background:transparent;padding:0;cursor:pointer}.link-button:hover,.link-button:active{text-decoration:underline}.link-button:disabled{color:#9baec8;cursor:default}.button{background-color:#00007f;border:10px none;border-radius:4px;box-sizing:border-box;color:#fff;cursor:pointer;display:inline-block;font-family:inherit;font-size:14px;font-weight:500;height:36px;letter-spacing:0;line-height:36px;overflow:hidden;padding:0 16px;position:relative;text-align:center;text-transform:uppercase;text-decoration:none;text-overflow:ellipsis;transition:all 100ms ease-in;white-space:nowrap;width:auto}.button:active,.button:focus,.button:hover{background-color:#0000b2;transition:all 200ms ease-out}.button--destructive{transition:none}.button--destructive:active,.button--destructive:focus,.button--destructive:hover{background-color:#df405a;transition:none}.button:disabled,.button.disabled{background-color:#9baec8;cursor:default}.button::-moz-focus-inner{border:0}.button::-moz-focus-inner,.button:focus,.button:active{outline:0 !important}.button.button-primary,.button.button-alternative,.button.button-secondary,.button.button-alternative-2{font-size:16px;line-height:36px;height:auto;text-transform:none;padding:4px 16px}.button.button-alternative{color:#121a24;background:#9baec8}.button.button-alternative:active,.button.button-alternative:focus,.button.button-alternative:hover{background-color:#a8b9cf}.button.button-alternative-2{background:#404040}.button.button-alternative-2:active,.button.button-alternative-2:focus,.button.button-alternative-2:hover{background-color:#4a4a4a}.button.button-secondary{color:#9baec8;background:transparent;padding:3px 15px;border:1px solid #9baec8}.button.button-secondary:active,.button.button-secondary:focus,.button.button-secondary:hover{border-color:#a8b9cf;color:#a8b9cf}.button.button-secondary:disabled{opacity:.5}.button.button--block{display:block;width:100%}.column__wrapper{display:flex;flex:1 1 auto;position:relative}.icon-button{display:inline-block;padding:0;color:#404040;border:0;border-radius:4px;background:transparent;cursor:pointer;transition:all 100ms ease-in;transition-property:background-color,color}.icon-button:hover,.icon-button:active,.icon-button:focus{color:#525252;background-color:rgba(64,64,64,.15);transition:all 200ms ease-out;transition-property:background-color,color}.icon-button:focus{background-color:rgba(64,64,64,.3)}.icon-button.disabled{color:#1f1f1f;background-color:transparent;cursor:default}.icon-button.active{color:#00007f}.icon-button::-moz-focus-inner{border:0}.icon-button::-moz-focus-inner,.icon-button:focus,.icon-button:active{outline:0 !important}.icon-button.inverted{color:#404040}.icon-button.inverted:hover,.icon-button.inverted:active,.icon-button.inverted:focus{color:#2e2e2e;background-color:rgba(64,64,64,.15)}.icon-button.inverted:focus{background-color:rgba(64,64,64,.3)}.icon-button.inverted.disabled{color:#525252;background-color:transparent}.icon-button.inverted.active{color:#00007f}.icon-button.inverted.active.disabled{color:#0000c1}.icon-button.overlayed{box-sizing:content-box;background:rgba(0,0,0,.6);color:rgba(255,255,255,.7);border-radius:4px;padding:2px}.icon-button.overlayed:hover{background:rgba(0,0,0,.9)}.text-icon-button{color:#404040;border:0;border-radius:4px;background:transparent;cursor:pointer;font-weight:600;font-size:11px;padding:0 3px;line-height:27px;outline:0;transition:all 100ms ease-in;transition-property:background-color,color}.text-icon-button:hover,.text-icon-button:active,.text-icon-button:focus{color:#2e2e2e;background-color:rgba(64,64,64,.15);transition:all 200ms ease-out;transition-property:background-color,color}.text-icon-button:focus{background-color:rgba(64,64,64,.3)}.text-icon-button.disabled{color:#737373;background-color:transparent;cursor:default}.text-icon-button.active{color:#00007f}.text-icon-button::-moz-focus-inner{border:0}.text-icon-button::-moz-focus-inner,.text-icon-button:focus,.text-icon-button:active{outline:0 !important}.dropdown-menu{position:absolute}.invisible{font-size:0;line-height:0;display:inline-block;width:0;height:0;position:absolute}.invisible img,.invisible svg{margin:0 !important;border:0 !important;padding:0 !important;width:0 !important;height:0 !important}.ellipsis::after{content:\"…\"}.compose-form{padding:10px}.compose-form__sensitive-button{padding:10px;padding-top:0;font-size:14px;font-weight:500}.compose-form__sensitive-button.active{color:#00007f}.compose-form__sensitive-button input[type=checkbox]{display:none}.compose-form__sensitive-button .checkbox{display:inline-block;position:relative;border:1px solid #9baec8;box-sizing:border-box;width:18px;height:18px;flex:0 0 auto;margin-right:10px;top:-1px;border-radius:4px;vertical-align:middle}.compose-form__sensitive-button .checkbox.active{border-color:#00007f;background:#00007f}.compose-form .compose-form__warning{color:#121a24;margin-bottom:10px;background:#9baec8;box-shadow:0 2px 6px rgba(0,0,0,.3);padding:8px 10px;border-radius:4px;font-size:13px;font-weight:400}.compose-form .compose-form__warning strong{color:#121a24;font-weight:500}.compose-form .compose-form__warning strong:lang(ja){font-weight:700}.compose-form .compose-form__warning strong:lang(ko){font-weight:700}.compose-form .compose-form__warning strong:lang(zh-CN){font-weight:700}.compose-form .compose-form__warning strong:lang(zh-HK){font-weight:700}.compose-form .compose-form__warning strong:lang(zh-TW){font-weight:700}.compose-form .compose-form__warning a{color:#404040;font-weight:500;text-decoration:underline}.compose-form .compose-form__warning a:hover,.compose-form .compose-form__warning a:active,.compose-form .compose-form__warning a:focus{text-decoration:none}.compose-form .emoji-picker-dropdown{position:absolute;top:0;right:0}.compose-form .compose-form__autosuggest-wrapper{position:relative}.compose-form .autosuggest-textarea,.compose-form .autosuggest-input,.compose-form .spoiler-input{position:relative;width:100%}.compose-form .spoiler-input{height:0;transform-origin:bottom;opacity:0}.compose-form .spoiler-input.spoiler-input--visible{height:36px;margin-bottom:11px;opacity:1}.compose-form .autosuggest-textarea__textarea,.compose-form .spoiler-input__input{display:block;box-sizing:border-box;width:100%;margin:0;color:#121a24;background:#fff;padding:10px;font-family:inherit;font-size:14px;resize:vertical;border:0;outline:0}.compose-form .autosuggest-textarea__textarea::placeholder,.compose-form .spoiler-input__input::placeholder{color:#404040}.compose-form .autosuggest-textarea__textarea:focus,.compose-form .spoiler-input__input:focus{outline:0}@media screen and (max-width: 600px){.compose-form .autosuggest-textarea__textarea,.compose-form .spoiler-input__input{font-size:16px}}.compose-form .spoiler-input__input{border-radius:4px}.compose-form .autosuggest-textarea__textarea{min-height:100px;border-radius:4px 4px 0 0;padding-bottom:0;padding-right:32px;resize:none;scrollbar-color:initial}.compose-form .autosuggest-textarea__textarea::-webkit-scrollbar{all:unset}@media screen and (max-width: 600px){.compose-form .autosuggest-textarea__textarea{height:100px !important;resize:vertical}}.compose-form .autosuggest-textarea__suggestions-wrapper{position:relative;height:0}.compose-form .autosuggest-textarea__suggestions{box-sizing:border-box;display:none;position:absolute;top:100%;width:100%;z-index:99;box-shadow:4px 4px 6px rgba(0,0,0,.4);background:#d9e1e8;border-radius:0 0 4px 4px;color:#121a24;font-size:14px;padding:6px}.compose-form .autosuggest-textarea__suggestions.autosuggest-textarea__suggestions--visible{display:block}.compose-form .autosuggest-textarea__suggestions__item{padding:10px;cursor:pointer;border-radius:4px}.compose-form .autosuggest-textarea__suggestions__item:hover,.compose-form .autosuggest-textarea__suggestions__item:focus,.compose-form .autosuggest-textarea__suggestions__item:active,.compose-form .autosuggest-textarea__suggestions__item.selected{background:#b9c8d5}.compose-form .autosuggest-account,.compose-form .autosuggest-emoji,.compose-form .autosuggest-hashtag{display:flex;flex-direction:row;align-items:center;justify-content:flex-start;line-height:18px;font-size:14px}.compose-form .autosuggest-hashtag{justify-content:space-between}.compose-form .autosuggest-hashtag__name{flex:1 1 auto;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.compose-form .autosuggest-hashtag strong{font-weight:500}.compose-form .autosuggest-hashtag__uses{flex:0 0 auto;text-align:right;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.compose-form .autosuggest-account-icon,.compose-form .autosuggest-emoji img{display:block;margin-right:8px;width:16px;height:16px}.compose-form .autosuggest-account .display-name__account{color:#404040}.compose-form .compose-form__modifiers{color:#121a24;font-family:inherit;font-size:14px;background:#fff}.compose-form .compose-form__modifiers .compose-form__upload-wrapper{overflow:hidden}.compose-form .compose-form__modifiers .compose-form__uploads-wrapper{display:flex;flex-direction:row;padding:5px;flex-wrap:wrap}.compose-form .compose-form__modifiers .compose-form__upload{flex:1 1 0;min-width:40%;margin:5px}.compose-form .compose-form__modifiers .compose-form__upload__actions{background:linear-gradient(180deg, rgba(0, 0, 0, 0.8) 0, rgba(0, 0, 0, 0.35) 80%, transparent);display:flex;align-items:flex-start;justify-content:space-between;opacity:0;transition:opacity .1s ease}.compose-form .compose-form__modifiers .compose-form__upload__actions .icon-button{flex:0 1 auto;color:#d9e1e8;font-size:14px;font-weight:500;padding:10px;font-family:inherit}.compose-form .compose-form__modifiers .compose-form__upload__actions .icon-button:hover,.compose-form .compose-form__modifiers .compose-form__upload__actions .icon-button:focus,.compose-form .compose-form__modifiers .compose-form__upload__actions .icon-button:active{color:#eff3f5}.compose-form .compose-form__modifiers .compose-form__upload__actions.active{opacity:1}.compose-form .compose-form__modifiers .compose-form__upload-description{position:absolute;z-index:2;bottom:0;left:0;right:0;box-sizing:border-box;background:linear-gradient(0deg, rgba(0, 0, 0, 0.8) 0, rgba(0, 0, 0, 0.35) 80%, transparent);padding:10px;opacity:0;transition:opacity .1s ease}.compose-form .compose-form__modifiers .compose-form__upload-description textarea{background:transparent;color:#d9e1e8;border:0;padding:0;margin:0;width:100%;font-family:inherit;font-size:14px;font-weight:500}.compose-form .compose-form__modifiers .compose-form__upload-description textarea:focus{color:#fff}.compose-form .compose-form__modifiers .compose-form__upload-description textarea::placeholder{opacity:.75;color:#d9e1e8}.compose-form .compose-form__modifiers .compose-form__upload-description.active{opacity:1}.compose-form .compose-form__modifiers .compose-form__upload-thumbnail{border-radius:4px;background-color:#000;background-position:center;background-size:cover;background-repeat:no-repeat;height:140px;width:100%;overflow:hidden}.compose-form .compose-form__buttons-wrapper{padding:10px;background:#ebebeb;border-radius:0 0 4px 4px;display:flex;justify-content:space-between;flex:0 0 auto}.compose-form .compose-form__buttons-wrapper .compose-form__buttons{display:flex}.compose-form .compose-form__buttons-wrapper .compose-form__buttons .compose-form__upload-button-icon{line-height:27px}.compose-form .compose-form__buttons-wrapper .compose-form__buttons .compose-form__sensitive-button{display:none}.compose-form .compose-form__buttons-wrapper .compose-form__buttons .compose-form__sensitive-button.compose-form__sensitive-button--visible{display:block}.compose-form .compose-form__buttons-wrapper .compose-form__buttons .compose-form__sensitive-button .compose-form__sensitive-button__icon{line-height:27px}.compose-form .compose-form__buttons-wrapper .icon-button,.compose-form .compose-form__buttons-wrapper .text-icon-button{box-sizing:content-box;padding:0 3px}.compose-form .compose-form__buttons-wrapper .character-counter__wrapper{align-self:center;margin-right:4px}.compose-form .compose-form__publish{display:flex;justify-content:flex-end;min-width:0;flex:0 0 auto}.compose-form .compose-form__publish .compose-form__publish-button-wrapper{overflow:hidden;padding-top:10px}.character-counter{cursor:default;font-family:\"mastodon-font-sans-serif\",sans-serif;font-size:14px;font-weight:600;color:#404040}.character-counter.character-counter--over{color:#ff5050}.no-reduce-motion .spoiler-input{transition:height .4s ease,opacity .4s ease}.emojione{font-size:inherit;vertical-align:middle;object-fit:contain;margin:-0.2ex .15em .2ex;width:16px;height:16px}.emojione img{width:auto}.reply-indicator{border-radius:4px;margin-bottom:10px;background:#9baec8;padding:10px;min-height:23px;overflow-y:auto;flex:0 2 auto}.reply-indicator__header{margin-bottom:5px;overflow:hidden}.reply-indicator__cancel{float:right;line-height:24px}.reply-indicator__display-name{color:#121a24;display:block;max-width:100%;line-height:24px;overflow:hidden;padding-right:25px;text-decoration:none}.reply-indicator__display-avatar{float:left;margin-right:5px}.status__content--with-action{cursor:pointer}.status__content,.reply-indicator__content{position:relative;font-size:15px;line-height:20px;word-wrap:break-word;font-weight:400;overflow:hidden;text-overflow:ellipsis;padding-top:2px;color:#fff}.status__content:focus,.reply-indicator__content:focus{outline:0}.status__content.status__content--with-spoiler,.reply-indicator__content.status__content--with-spoiler{white-space:normal}.status__content.status__content--with-spoiler .status__content__text,.reply-indicator__content.status__content--with-spoiler .status__content__text{white-space:pre-wrap}.status__content .emojione,.reply-indicator__content .emojione{width:20px;height:20px;margin:-3px 0 0}.status__content img,.reply-indicator__content img{max-width:100%;max-height:400px;object-fit:contain}.status__content p,.reply-indicator__content p{margin-bottom:20px;white-space:pre-wrap}.status__content p:last-child,.reply-indicator__content p:last-child{margin-bottom:0}.status__content a,.reply-indicator__content a{color:#d8a070;text-decoration:none}.status__content a:hover,.reply-indicator__content a:hover{text-decoration:underline}.status__content a:hover .fa,.reply-indicator__content a:hover .fa{color:#525252}.status__content a.mention:hover,.reply-indicator__content a.mention:hover{text-decoration:none}.status__content a.mention:hover span,.reply-indicator__content a.mention:hover span{text-decoration:underline}.status__content a .fa,.reply-indicator__content a .fa{color:#404040}.status__content a.unhandled-link,.reply-indicator__content a.unhandled-link{color:#0000a8}.status__content .status__content__spoiler-link,.reply-indicator__content .status__content__spoiler-link{background:#404040}.status__content .status__content__spoiler-link:hover,.reply-indicator__content .status__content__spoiler-link:hover{background:#525252;text-decoration:none}.status__content .status__content__spoiler-link::-moz-focus-inner,.reply-indicator__content .status__content__spoiler-link::-moz-focus-inner{border:0}.status__content .status__content__spoiler-link::-moz-focus-inner,.status__content .status__content__spoiler-link:focus,.status__content .status__content__spoiler-link:active,.reply-indicator__content .status__content__spoiler-link::-moz-focus-inner,.reply-indicator__content .status__content__spoiler-link:focus,.reply-indicator__content .status__content__spoiler-link:active{outline:0 !important}.status__content .status__content__text,.reply-indicator__content .status__content__text{display:none}.status__content .status__content__text.status__content__text--visible,.reply-indicator__content .status__content__text.status__content__text--visible{display:block}.announcements__item__content{word-wrap:break-word;overflow-y:auto}.announcements__item__content .emojione{width:20px;height:20px;margin:-3px 0 0}.announcements__item__content p{margin-bottom:10px;white-space:pre-wrap}.announcements__item__content p:last-child{margin-bottom:0}.announcements__item__content a{color:#d9e1e8;text-decoration:none}.announcements__item__content a:hover{text-decoration:underline}.announcements__item__content a.mention:hover{text-decoration:none}.announcements__item__content a.mention:hover span{text-decoration:underline}.announcements__item__content a.unhandled-link{color:#0000a8}.status__content.status__content--collapsed{max-height:300px}.status__content__read-more-button{display:block;font-size:15px;line-height:20px;color:#0000a8;border:0;background:transparent;padding:0;padding-top:8px;text-decoration:none}.status__content__read-more-button:hover,.status__content__read-more-button:active{text-decoration:underline}.status__content__spoiler-link{display:inline-block;border-radius:2px;background:transparent;border:0;color:#121a24;font-weight:700;font-size:11px;padding:0 6px;text-transform:uppercase;line-height:20px;cursor:pointer;vertical-align:middle}.status__wrapper--filtered{color:#404040;border:0;font-size:inherit;text-align:center;line-height:inherit;margin:0;padding:15px;box-sizing:border-box;width:100%;clear:both;border-bottom:1px solid #202e3f}.status__prepend-icon-wrapper{left:-26px;position:absolute}.focusable:focus{outline:0;background:#192432}.focusable:focus .status.status-direct{background:#26374d}.focusable:focus .status.status-direct.muted{background:transparent}.focusable:focus .detailed-status,.focusable:focus .detailed-status__action-bar{background:#202e3f}.status{padding:8px 10px;padding-left:68px;position:relative;min-height:54px;border-bottom:1px solid #202e3f;cursor:default;opacity:1;animation:fade 150ms linear}@supports(-ms-overflow-style: -ms-autohiding-scrollbar){.status{padding-right:26px}}@keyframes fade{0%{opacity:0}100%{opacity:1}}.status .video-player,.status .audio-player{margin-top:8px}.status.status-direct:not(.read){background:#202e3f;border-bottom-color:#26374d}.status.light .status__relative-time{color:#9baec8}.status.light .status__display-name{color:#121a24}.status.light .display-name{color:#9baec8}.status.light .display-name strong{color:#121a24}.status.light .status__content{color:#121a24}.status.light .status__content a{color:#00007f}.status.light .status__content a.status__content__spoiler-link{color:#fff;background:#9baec8}.status.light .status__content a.status__content__spoiler-link:hover{background:#b5c3d6}.notification-favourite .status.status-direct{background:transparent}.notification-favourite .status.status-direct .icon-button.disabled{color:#616161}.status__relative-time,.notification__relative_time{color:#404040;float:right;font-size:14px}.status__display-name{color:#404040}.status__info .status__display-name{display:block;max-width:100%;padding-right:25px}.status__info{font-size:15px}.status-check-box{border-bottom:1px solid #d9e1e8;display:flex}.status-check-box .status-check-box__status{margin:10px 0 10px 10px;flex:1;overflow:hidden}.status-check-box .status-check-box__status .media-gallery{max-width:250px}.status-check-box .status-check-box__status .status__content{padding:0;white-space:normal}.status-check-box .status-check-box__status .video-player,.status-check-box .status-check-box__status .audio-player{margin-top:8px;max-width:250px}.status-check-box .status-check-box__status .media-gallery__item-thumbnail{cursor:default}.status-check-box-toggle{align-items:center;display:flex;flex:0 0 auto;justify-content:center;padding:10px}.status__prepend{margin-left:68px;color:#404040;padding:8px 0;padding-bottom:2px;font-size:14px;position:relative}.status__prepend .status__display-name strong{color:#404040}.status__prepend>span{display:block;overflow:hidden;text-overflow:ellipsis}.status__action-bar{align-items:center;display:flex;margin-top:8px}.status__action-bar__counter{display:inline-flex;margin-right:11px;align-items:center}.status__action-bar__counter .status__action-bar-button{margin-right:4px}.status__action-bar__counter__label{display:inline-block;width:14px;font-size:12px;font-weight:500;color:#404040}.status__action-bar-button{margin-right:18px}.status__action-bar-dropdown{height:23.15px;width:23.15px}.detailed-status__action-bar-dropdown{flex:1 1 auto;display:flex;align-items:center;justify-content:center;position:relative}.detailed-status{background:#192432;padding:14px 10px}.detailed-status--flex{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-start}.detailed-status--flex .status__content,.detailed-status--flex .detailed-status__meta{flex:100%}.detailed-status .status__content{font-size:19px;line-height:24px}.detailed-status .status__content .emojione{width:24px;height:24px;margin:-1px 0 0}.detailed-status .status__content .status__content__spoiler-link{line-height:24px;margin:-1px 0 0}.detailed-status .video-player,.detailed-status .audio-player{margin-top:8px}.detailed-status__meta{margin-top:15px;color:#404040;font-size:14px;line-height:18px}.detailed-status__action-bar{background:#192432;border-top:1px solid #202e3f;border-bottom:1px solid #202e3f;display:flex;flex-direction:row;padding:10px 0}.detailed-status__link{color:inherit;text-decoration:none}.detailed-status__favorites,.detailed-status__reblogs{display:inline-block;font-weight:500;font-size:12px;margin-left:6px}.reply-indicator__content{color:#121a24;font-size:14px}.reply-indicator__content a{color:#404040}.domain{padding:10px;border-bottom:1px solid #202e3f}.domain .domain__domain-name{flex:1 1 auto;display:block;color:#fff;text-decoration:none;font-size:14px;font-weight:500}.domain__wrapper{display:flex}.domain_buttons{height:18px;padding:10px;white-space:nowrap}.account{padding:10px;border-bottom:1px solid #202e3f}.account.compact{padding:0;border-bottom:0}.account.compact .account__avatar-wrapper{margin-left:0}.account .account__display-name{flex:1 1 auto;display:block;color:#9baec8;overflow:hidden;text-decoration:none;font-size:14px}.account__wrapper{display:flex}.account__avatar-wrapper{float:left;margin-left:12px;margin-right:12px}.account__avatar{border-radius:4px;background:transparent no-repeat;background-position:50%;background-clip:padding-box;position:relative}.account__avatar-inline{display:inline-block;vertical-align:middle;margin-right:5px}.account__avatar-composite{border-radius:4px;background:transparent no-repeat;background-position:50%;background-clip:padding-box;border-radius:50%;overflow:hidden;position:relative}.account__avatar-composite>div{float:left;position:relative;box-sizing:border-box}.account__avatar-composite__label{display:block;position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);color:#fff;text-shadow:1px 1px 2px #000;font-weight:700;font-size:15px}a .account__avatar{cursor:pointer}.account__avatar-overlay{width:48px;height:48px;background-size:48px 48px}.account__avatar-overlay-base{border-radius:4px;background:transparent no-repeat;background-position:50%;background-clip:padding-box;width:36px;height:36px;background-size:36px 36px}.account__avatar-overlay-overlay{border-radius:4px;background:transparent no-repeat;background-position:50%;background-clip:padding-box;width:24px;height:24px;background-size:24px 24px;position:absolute;bottom:0;right:0;z-index:1}.account__relationship{height:18px;padding:10px;white-space:nowrap}.account__disclaimer{padding:10px;border-top:1px solid #202e3f;color:#404040}.account__disclaimer strong{font-weight:500}.account__disclaimer strong:lang(ja){font-weight:700}.account__disclaimer strong:lang(ko){font-weight:700}.account__disclaimer strong:lang(zh-CN){font-weight:700}.account__disclaimer strong:lang(zh-HK){font-weight:700}.account__disclaimer strong:lang(zh-TW){font-weight:700}.account__disclaimer a{font-weight:500;color:inherit;text-decoration:underline}.account__disclaimer a:hover,.account__disclaimer a:focus,.account__disclaimer a:active{text-decoration:none}.account__action-bar{border-top:1px solid #202e3f;border-bottom:1px solid #202e3f;line-height:36px;overflow:hidden;flex:0 0 auto;display:flex}.account__action-bar-dropdown{padding:10px}.account__action-bar-dropdown .icon-button{vertical-align:middle}.account__action-bar-dropdown .dropdown--active .dropdown__content.dropdown__right{left:6px;right:initial}.account__action-bar-dropdown .dropdown--active::after{bottom:initial;margin-left:11px;margin-top:-7px;right:initial}.account__action-bar-links{display:flex;flex:1 1 auto;line-height:18px;text-align:center}.account__action-bar__tab{text-decoration:none;overflow:hidden;flex:0 1 100%;border-right:1px solid #202e3f;padding:10px 0;border-bottom:4px solid transparent}.account__action-bar__tab.active{border-bottom:4px solid #00007f}.account__action-bar__tab>span{display:block;text-transform:uppercase;font-size:11px;color:#9baec8}.account__action-bar__tab strong{display:block;font-size:15px;font-weight:500;color:#fff}.account__action-bar__tab strong:lang(ja){font-weight:700}.account__action-bar__tab strong:lang(ko){font-weight:700}.account__action-bar__tab strong:lang(zh-CN){font-weight:700}.account__action-bar__tab strong:lang(zh-HK){font-weight:700}.account__action-bar__tab strong:lang(zh-TW){font-weight:700}.account-authorize{padding:14px 10px}.account-authorize .detailed-status__display-name{display:block;margin-bottom:15px;overflow:hidden}.account-authorize__avatar{float:left;margin-right:10px}.status__display-name,.status__relative-time,.detailed-status__display-name,.detailed-status__datetime,.detailed-status__application,.account__display-name{text-decoration:none}.status__display-name strong,.account__display-name strong{color:#fff}.muted .emojione{opacity:.5}.status__display-name:hover strong,.reply-indicator__display-name:hover strong,.detailed-status__display-name:hover strong,a.account__display-name:hover strong{text-decoration:underline}.account__display-name strong{display:block;overflow:hidden;text-overflow:ellipsis}.detailed-status__application,.detailed-status__datetime{color:inherit}.detailed-status .button.logo-button{margin-bottom:15px}.detailed-status__display-name{color:#d9e1e8;display:block;line-height:24px;margin-bottom:15px;overflow:hidden}.detailed-status__display-name strong,.detailed-status__display-name span{display:block;text-overflow:ellipsis;overflow:hidden}.detailed-status__display-name strong{font-size:16px;color:#fff}.detailed-status__display-avatar{float:left;margin-right:10px}.status__avatar{height:48px;left:10px;position:absolute;top:10px;width:48px}.status__expand{width:68px;position:absolute;left:0;top:0;height:100%;cursor:pointer}.muted .status__content,.muted .status__content p,.muted .status__content a{color:#404040}.muted .status__display-name strong{color:#404040}.muted .status__avatar{opacity:.5}.muted a.status__content__spoiler-link{background:#404040;color:#121a24}.muted a.status__content__spoiler-link:hover{background:#525252;text-decoration:none}.notification__message{margin:0 10px 0 68px;padding:8px 0 0;cursor:default;color:#9baec8;font-size:15px;line-height:22px;position:relative}.notification__message .fa{color:#00007f}.notification__message>span{display:inline;overflow:hidden;text-overflow:ellipsis}.notification__favourite-icon-wrapper{left:-26px;position:absolute}.notification__favourite-icon-wrapper .star-icon{color:#ca8f04}.star-icon.active{color:#ca8f04}.bookmark-icon.active{color:#ff5050}.no-reduce-motion .icon-button.star-icon.activate>.fa-star{animation:spring-rotate-in 1s linear}.no-reduce-motion .icon-button.star-icon.deactivate>.fa-star{animation:spring-rotate-out 1s linear}.notification__display-name{color:inherit;font-weight:500;text-decoration:none}.notification__display-name:hover{color:#fff;text-decoration:underline}.notification__relative_time{float:right}.display-name{display:block;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.display-name__html{font-weight:500}.display-name__account{font-size:14px}.status__relative-time:hover,.detailed-status__datetime:hover{text-decoration:underline}.image-loader{position:relative;width:100%;height:100%;display:flex;align-items:center;justify-content:center;flex-direction:column}.image-loader .image-loader__preview-canvas{max-width:100%;max-height:80%;background:url(\"~images/void.png\") repeat;object-fit:contain}.image-loader .loading-bar{position:relative}.image-loader.image-loader--amorphous .image-loader__preview-canvas{display:none}.zoomable-image{position:relative;width:100%;height:100%;display:flex;align-items:center;justify-content:center}.zoomable-image img{max-width:100%;max-height:80%;width:auto;height:auto;object-fit:contain}.navigation-bar{padding:10px;display:flex;align-items:center;flex-shrink:0;cursor:default;color:#9baec8}.navigation-bar strong{color:#d9e1e8}.navigation-bar a{color:inherit}.navigation-bar .permalink{text-decoration:none}.navigation-bar .navigation-bar__actions{position:relative}.navigation-bar .navigation-bar__actions .icon-button.close{position:absolute;pointer-events:none;transform:scale(0, 1) translate(-100%, 0);opacity:0}.navigation-bar .navigation-bar__actions .compose__action-bar .icon-button{pointer-events:auto;transform:scale(1, 1) translate(0, 0);opacity:1}.navigation-bar__profile{flex:1 1 auto;margin-left:8px;line-height:20px;margin-top:-1px;overflow:hidden}.navigation-bar__profile-account{display:block;font-weight:500;overflow:hidden;text-overflow:ellipsis}.navigation-bar__profile-edit{color:inherit;text-decoration:none}.dropdown{display:inline-block}.dropdown__content{display:none;position:absolute}.dropdown-menu__separator{border-bottom:1px solid #c0cdd9;margin:5px 7px 6px;height:0}.dropdown-menu{background:#d9e1e8;padding:4px 0;border-radius:4px;box-shadow:2px 4px 15px rgba(0,0,0,.4);z-index:9999}.dropdown-menu ul{list-style:none}.dropdown-menu.left{transform-origin:100% 50%}.dropdown-menu.top{transform-origin:50% 100%}.dropdown-menu.bottom{transform-origin:50% 0}.dropdown-menu.right{transform-origin:0 50%}.dropdown-menu__arrow{position:absolute;width:0;height:0;border:0 solid transparent}.dropdown-menu__arrow.left{right:-5px;margin-top:-5px;border-width:5px 0 5px 5px;border-left-color:#d9e1e8}.dropdown-menu__arrow.top{bottom:-5px;margin-left:-7px;border-width:5px 7px 0;border-top-color:#d9e1e8}.dropdown-menu__arrow.bottom{top:-5px;margin-left:-7px;border-width:0 7px 5px;border-bottom-color:#d9e1e8}.dropdown-menu__arrow.right{left:-5px;margin-top:-5px;border-width:5px 5px 5px 0;border-right-color:#d9e1e8}.dropdown-menu__item a{font-size:13px;line-height:18px;display:block;padding:4px 14px;box-sizing:border-box;text-decoration:none;background:#d9e1e8;color:#121a24;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dropdown-menu__item a:focus,.dropdown-menu__item a:hover,.dropdown-menu__item a:active{background:#00007f;color:#d9e1e8;outline:0}.dropdown--active .dropdown__content{display:block;line-height:18px;max-width:311px;right:0;text-align:left;z-index:9999}.dropdown--active .dropdown__content>ul{list-style:none;background:#d9e1e8;padding:4px 0;border-radius:4px;box-shadow:0 0 15px rgba(0,0,0,.4);min-width:140px;position:relative}.dropdown--active .dropdown__content.dropdown__right{right:0}.dropdown--active .dropdown__content.dropdown__left>ul{left:-98px}.dropdown--active .dropdown__content>ul>li>a{font-size:13px;line-height:18px;display:block;padding:4px 14px;box-sizing:border-box;text-decoration:none;background:#d9e1e8;color:#121a24;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dropdown--active .dropdown__content>ul>li>a:focus{outline:0}.dropdown--active .dropdown__content>ul>li>a:hover{background:#00007f;color:#d9e1e8}.dropdown__icon{vertical-align:middle}.columns-area{display:flex;flex:1 1 auto;flex-direction:row;justify-content:flex-start;overflow-x:auto;position:relative}.columns-area.unscrollable{overflow-x:hidden}.columns-area__panels{display:flex;justify-content:center;width:100%;height:100%;min-height:100vh}.columns-area__panels__pane{height:100%;overflow:hidden;pointer-events:none;display:flex;justify-content:flex-end;min-width:285px}.columns-area__panels__pane--start{justify-content:flex-start}.columns-area__panels__pane__inner{position:fixed;width:285px;pointer-events:auto;height:100%}.columns-area__panels__main{box-sizing:border-box;width:100%;max-width:600px;flex:0 0 auto;display:flex;flex-direction:column}@media screen and (min-width: 415px){.columns-area__panels__main{padding:0 10px}}.tabs-bar__wrapper{background:#040609;position:sticky;top:0;z-index:2;padding-top:0}@media screen and (min-width: 415px){.tabs-bar__wrapper{padding-top:10px}}.tabs-bar__wrapper .tabs-bar{margin-bottom:0}@media screen and (min-width: 415px){.tabs-bar__wrapper .tabs-bar{margin-bottom:10px}}.react-swipeable-view-container,.react-swipeable-view-container .columns-area,.react-swipeable-view-container .drawer,.react-swipeable-view-container .column{height:100%}.react-swipeable-view-container>*{display:flex;align-items:center;justify-content:center;height:100%}.column{width:350px;position:relative;box-sizing:border-box;display:flex;flex-direction:column}.column>.scrollable{background:#121a24;border-bottom-left-radius:2px;border-bottom-right-radius:2px}.ui{flex:0 0 auto;display:flex;flex-direction:column;width:100%;height:100%}.drawer{width:330px;box-sizing:border-box;display:flex;flex-direction:column;overflow-y:hidden}.drawer__tab{display:block;flex:1 1 auto;padding:15px 5px 13px;color:#9baec8;text-decoration:none;text-align:center;font-size:16px;border-bottom:2px solid transparent}.column,.drawer{flex:1 1 auto;overflow:hidden}@media screen and (min-width: 631px){.columns-area{padding:0}.column,.drawer{flex:0 0 auto;padding:10px;padding-left:5px;padding-right:5px}.column:first-child,.drawer:first-child{padding-left:10px}.column:last-child,.drawer:last-child{padding-right:10px}.columns-area>div .column,.columns-area>div .drawer{padding-left:5px;padding-right:5px}}.tabs-bar{box-sizing:border-box;display:flex;background:#202e3f;flex:0 0 auto;overflow-y:auto}.tabs-bar__link{display:block;flex:1 1 auto;padding:15px 10px;padding-bottom:13px;color:#fff;text-decoration:none;text-align:center;font-size:14px;font-weight:500;border-bottom:2px solid #202e3f;transition:all 50ms linear;transition-property:border-bottom,background,color}.tabs-bar__link .fa{font-weight:400;font-size:16px}@media screen and (min-width: 631px){.tabs-bar__link:hover,.tabs-bar__link:focus,.tabs-bar__link:active{background:#2a3c54;border-bottom-color:#2a3c54}}.tabs-bar__link.active{border-bottom:2px solid #00007f;color:#00007f}.tabs-bar__link span{margin-left:5px;display:none}@media screen and (min-width: 600px){.tabs-bar__link span{display:inline}}.columns-area--mobile{flex-direction:column;width:100%;height:100%;margin:0 auto}.columns-area--mobile .column,.columns-area--mobile .drawer{width:100%;height:100%;padding:0}.columns-area--mobile .directory__list{display:grid;grid-gap:10px;grid-template-columns:minmax(0, 50%) minmax(0, 50%)}@media screen and (max-width: 415px){.columns-area--mobile .directory__list{display:block}}.columns-area--mobile .directory__card{margin-bottom:0}.columns-area--mobile .filter-form{display:flex}.columns-area--mobile .autosuggest-textarea__textarea{font-size:16px}.columns-area--mobile .search__input{line-height:18px;font-size:16px;padding:15px;padding-right:30px}.columns-area--mobile .search__icon .fa{top:15px}.columns-area--mobile .scrollable{overflow:visible}@supports(display: grid){.columns-area--mobile .scrollable{contain:content}}@media screen and (min-width: 415px){.columns-area--mobile{padding:10px 0;padding-top:0}}@media screen and (min-width: 630px){.columns-area--mobile .detailed-status{padding:15px}.columns-area--mobile .detailed-status .media-gallery,.columns-area--mobile .detailed-status .video-player,.columns-area--mobile .detailed-status .audio-player{margin-top:15px}.columns-area--mobile .account__header__bar{padding:5px 10px}.columns-area--mobile .navigation-bar,.columns-area--mobile .compose-form{padding:15px}.columns-area--mobile .compose-form .compose-form__publish .compose-form__publish-button-wrapper{padding-top:15px}.columns-area--mobile .status{padding:15px 15px 15px 78px;min-height:50px}.columns-area--mobile .status__avatar{left:15px;top:17px}.columns-area--mobile .status__content{padding-top:5px}.columns-area--mobile .status__prepend{margin-left:78px;padding-top:15px}.columns-area--mobile .status__prepend-icon-wrapper{left:-32px}.columns-area--mobile .status .media-gallery,.columns-area--mobile .status__action-bar,.columns-area--mobile .status .video-player,.columns-area--mobile .status .audio-player{margin-top:10px}.columns-area--mobile .account{padding:15px 10px}.columns-area--mobile .account__header__bio{margin:0 -10px}.columns-area--mobile .notification__message{margin-left:78px;padding-top:15px}.columns-area--mobile .notification__favourite-icon-wrapper{left:-32px}.columns-area--mobile .notification .status{padding-top:8px}.columns-area--mobile .notification .account{padding-top:8px}.columns-area--mobile .notification .account__avatar-wrapper{margin-left:17px;margin-right:15px}}.floating-action-button{position:fixed;display:flex;justify-content:center;align-items:center;width:3.9375rem;height:3.9375rem;bottom:1.3125rem;right:1.3125rem;background:#000070;color:#fff;border-radius:50%;font-size:21px;line-height:21px;text-decoration:none;box-shadow:2px 3px 9px rgba(0,0,0,.4)}.floating-action-button:hover,.floating-action-button:focus,.floating-action-button:active{background:#0000a3}@media screen and (min-width: 415px){.tabs-bar{width:100%}.react-swipeable-view-container .columns-area--mobile{height:calc(100% - 10px) !important}.getting-started__wrapper,.getting-started__trends,.search{margin-bottom:10px}.getting-started__panel{margin:10px 0}.column,.drawer{min-width:330px}}@media screen and (max-width: 895px){.columns-area__panels__pane--compositional{display:none}}@media screen and (min-width: 895px){.floating-action-button,.tabs-bar__link.optional{display:none}.search-page .search{display:none}}@media screen and (max-width: 1190px){.columns-area__panels__pane--navigational{display:none}}@media screen and (min-width: 1190px){.tabs-bar{display:none}}.icon-with-badge{position:relative}.icon-with-badge__badge{position:absolute;left:9px;top:-13px;background:#00007f;border:2px solid #202e3f;padding:1px 6px;border-radius:6px;font-size:10px;font-weight:500;line-height:14px;color:#fff}.column-link--transparent .icon-with-badge__badge{border-color:#040609}.compose-panel{width:285px;margin-top:10px;display:flex;flex-direction:column;height:calc(100% - 10px);overflow-y:hidden}.compose-panel .navigation-bar{padding-top:20px;padding-bottom:20px;flex:0 1 48px;min-height:20px}.compose-panel .flex-spacer{background:transparent}.compose-panel .compose-form{flex:1;overflow-y:hidden;display:flex;flex-direction:column;min-height:310px;padding-bottom:71px;margin-bottom:-71px}.compose-panel .compose-form__autosuggest-wrapper{overflow-y:auto;background-color:#fff;border-radius:4px 4px 0 0;flex:0 1 auto}.compose-panel .autosuggest-textarea__textarea{overflow-y:hidden}.compose-panel .compose-form__upload-thumbnail{height:80px}.navigation-panel{margin-top:10px;margin-bottom:10px;height:calc(100% - 20px);overflow-y:auto;display:flex;flex-direction:column}.navigation-panel>a{flex:0 0 auto}.navigation-panel hr{flex:0 0 auto;border:0;background:transparent;border-top:1px solid #192432;margin:10px 0}.navigation-panel .flex-spacer{background:transparent}.drawer__pager{box-sizing:border-box;padding:0;flex-grow:1;position:relative;overflow:hidden;display:flex}.drawer__inner{position:absolute;top:0;left:0;background:#283a50;box-sizing:border-box;padding:0;display:flex;flex-direction:column;overflow:hidden;overflow-y:auto;width:100%;height:100%;border-radius:2px}.drawer__inner.darker{background:#121a24}.drawer__inner__mastodon{background:#283a50 url('data:image/svg+xml;utf8,') no-repeat bottom/100% auto;flex:1;min-height:47px;display:none}.drawer__inner__mastodon>img{display:block;object-fit:contain;object-position:bottom left;width:85%;height:100%;pointer-events:none;user-drag:none;user-select:none}@media screen and (min-height: 640px){.drawer__inner__mastodon{display:block}}.pseudo-drawer{background:#283a50;font-size:13px;text-align:left}.drawer__header{flex:0 0 auto;font-size:16px;background:#202e3f;margin-bottom:10px;display:flex;flex-direction:row;border-radius:2px}.drawer__header a{transition:background 100ms ease-in}.drawer__header a:hover{background:#17212e;transition:background 200ms ease-out}.scrollable{overflow-y:scroll;overflow-x:hidden;flex:1 1 auto;-webkit-overflow-scrolling:touch}.scrollable.optionally-scrollable{overflow-y:auto}@supports(display: grid){.scrollable{contain:strict}}.scrollable--flex{display:flex;flex-direction:column}.scrollable__append{flex:1 1 auto;position:relative;min-height:120px}@supports(display: grid){.scrollable.fullscreen{contain:none}}.column-back-button{box-sizing:border-box;width:100%;background:#192432;color:#00007f;cursor:pointer;flex:0 0 auto;font-size:16px;line-height:inherit;border:0;text-align:unset;padding:15px;margin:0;z-index:3;outline:0}.column-back-button:hover{text-decoration:underline}.column-header__back-button{background:#192432;border:0;font-family:inherit;color:#00007f;cursor:pointer;white-space:nowrap;font-size:16px;padding:0 5px 0 0;z-index:3}.column-header__back-button:hover{text-decoration:underline}.column-header__back-button:last-child{padding:0 15px 0 0}.column-back-button__icon{display:inline-block;margin-right:5px}.column-back-button--slim{position:relative}.column-back-button--slim-button{cursor:pointer;flex:0 0 auto;font-size:16px;padding:15px;position:absolute;right:0;top:-48px}.react-toggle{display:inline-block;position:relative;cursor:pointer;background-color:transparent;border:0;padding:0;user-select:none;-webkit-tap-highlight-color:rgba(0,0,0,0);-webkit-tap-highlight-color:transparent}.react-toggle-screenreader-only{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.react-toggle--disabled{cursor:not-allowed;opacity:.5;transition:opacity .25s}.react-toggle-track{width:50px;height:24px;padding:0;border-radius:30px;background-color:#121a24;transition:background-color .2s ease}.react-toggle:hover:not(.react-toggle--disabled) .react-toggle-track{background-color:#010102}.react-toggle--checked .react-toggle-track{background-color:#00007f}.react-toggle--checked:hover:not(.react-toggle--disabled) .react-toggle-track{background-color:#0000b2}.react-toggle-track-check{position:absolute;width:14px;height:10px;top:0;bottom:0;margin-top:auto;margin-bottom:auto;line-height:0;left:8px;opacity:0;transition:opacity .25s ease}.react-toggle--checked .react-toggle-track-check{opacity:1;transition:opacity .25s ease}.react-toggle-track-x{position:absolute;width:10px;height:10px;top:0;bottom:0;margin-top:auto;margin-bottom:auto;line-height:0;right:10px;opacity:1;transition:opacity .25s ease}.react-toggle--checked .react-toggle-track-x{opacity:0}.react-toggle-thumb{position:absolute;top:1px;left:1px;width:22px;height:22px;border:1px solid #121a24;border-radius:50%;background-color:#fafafa;box-sizing:border-box;transition:all .25s ease;transition-property:border-color,left}.react-toggle--checked .react-toggle-thumb{left:27px;border-color:#00007f}.column-link{background:#202e3f;color:#fff;display:block;font-size:16px;padding:15px;text-decoration:none}.column-link:hover,.column-link:focus,.column-link:active{background:#253549}.column-link:focus{outline:0}.column-link--transparent{background:transparent;color:#d9e1e8}.column-link--transparent:hover,.column-link--transparent:focus,.column-link--transparent:active{background:transparent;color:#fff}.column-link--transparent.active{color:#00007f}.column-link__icon{display:inline-block;margin-right:5px}.column-link__badge{display:inline-block;border-radius:4px;font-size:12px;line-height:19px;font-weight:500;background:#121a24;padding:4px 8px;margin:-6px 10px}.column-subheading{background:#121a24;color:#404040;padding:8px 20px;font-size:12px;font-weight:500;text-transform:uppercase;cursor:default}.getting-started__wrapper,.getting-started,.flex-spacer{background:#121a24}.flex-spacer{flex:1 1 auto}.getting-started{color:#404040;overflow:auto;border-bottom-left-radius:2px;border-bottom-right-radius:2px}.getting-started__wrapper,.getting-started__panel,.getting-started__footer{height:min-content}.getting-started__panel,.getting-started__footer{padding:10px;padding-top:20px;flex-grow:0}.getting-started__panel ul,.getting-started__footer ul{margin-bottom:10px}.getting-started__panel ul li,.getting-started__footer ul li{display:inline}.getting-started__panel p,.getting-started__footer p{font-size:13px}.getting-started__panel p a,.getting-started__footer p a{color:#404040;text-decoration:underline}.getting-started__panel a,.getting-started__footer a{text-decoration:none;color:#9baec8}.getting-started__panel a:hover,.getting-started__panel a:focus,.getting-started__panel a:active,.getting-started__footer a:hover,.getting-started__footer a:focus,.getting-started__footer a:active{text-decoration:underline}.getting-started__wrapper,.getting-started__footer{color:#404040}.getting-started__trends{flex:0 1 auto;opacity:1;animation:fade 150ms linear;margin-top:10px}.getting-started__trends h4{font-size:12px;text-transform:uppercase;color:#9baec8;padding:10px;font-weight:500;border-bottom:1px solid #202e3f}@media screen and (max-height: 810px){.getting-started__trends .trends__item:nth-child(3){display:none}}@media screen and (max-height: 720px){.getting-started__trends .trends__item:nth-child(2){display:none}}@media screen and (max-height: 670px){.getting-started__trends{display:none}}.getting-started__trends .trends__item{border-bottom:0;padding:10px}.getting-started__trends .trends__item__current{color:#9baec8}.keyboard-shortcuts{padding:8px 0 0;overflow:hidden}.keyboard-shortcuts thead{position:absolute;left:-9999px}.keyboard-shortcuts td{padding:0 10px 8px}.keyboard-shortcuts kbd{display:inline-block;padding:3px 5px;background-color:#202e3f;border:1px solid #0b1016}.setting-text{display:block;box-sizing:border-box;width:100%;margin:0;color:#121a24;background:#fff;padding:10px;font-family:inherit;font-size:14px;resize:vertical;border:0;outline:0;border-radius:4px}.setting-text:focus{outline:0}@media screen and (max-width: 600px){.setting-text{font-size:16px}}.no-reduce-motion button.icon-button i.fa-retweet{background-position:0 0;height:19px;transition:background-position .9s steps(10);transition-duration:0s;vertical-align:middle;width:22px}.no-reduce-motion button.icon-button i.fa-retweet::before{display:none !important}.no-reduce-motion button.icon-button.active i.fa-retweet{transition-duration:.9s;background-position:0 100%}.reduce-motion button.icon-button i.fa-retweet{color:#404040;transition:color 100ms ease-in}.reduce-motion button.icon-button.active i.fa-retweet{color:#00007f}.status-card{display:flex;font-size:14px;border:1px solid #202e3f;border-radius:4px;color:#404040;margin-top:14px;text-decoration:none;overflow:hidden}.status-card__actions{bottom:0;left:0;position:absolute;right:0;top:0;display:flex;justify-content:center;align-items:center}.status-card__actions>div{background:rgba(0,0,0,.6);border-radius:8px;padding:12px 9px;flex:0 0 auto;display:flex;justify-content:center;align-items:center}.status-card__actions button,.status-card__actions a{display:inline;color:#d9e1e8;background:transparent;border:0;padding:0 8px;text-decoration:none;font-size:18px;line-height:18px}.status-card__actions button:hover,.status-card__actions button:active,.status-card__actions button:focus,.status-card__actions a:hover,.status-card__actions a:active,.status-card__actions a:focus{color:#fff}.status-card__actions a{font-size:19px;position:relative;bottom:-1px}a.status-card{cursor:pointer}a.status-card:hover{background:#202e3f}.status-card-photo{cursor:zoom-in;display:block;text-decoration:none;width:100%;height:auto;margin:0}.status-card-video iframe{width:100%;height:100%}.status-card__title{display:block;font-weight:500;margin-bottom:5px;color:#9baec8;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-decoration:none}.status-card__content{flex:1 1 auto;overflow:hidden;padding:14px 14px 14px 8px}.status-card__description{color:#9baec8}.status-card__host{display:block;margin-top:5px;font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.status-card__image{flex:0 0 100px;background:#202e3f;position:relative}.status-card__image>.fa{font-size:21px;position:absolute;transform-origin:50% 50%;top:50%;left:50%;transform:translate(-50%, -50%)}.status-card.horizontal{display:block}.status-card.horizontal .status-card__image{width:100%}.status-card.horizontal .status-card__image-image{border-radius:4px 4px 0 0}.status-card.horizontal .status-card__title{white-space:inherit}.status-card.compact{border-color:#192432}.status-card.compact.interactive{border:0}.status-card.compact .status-card__content{padding:8px;padding-top:10px}.status-card.compact .status-card__title{white-space:nowrap}.status-card.compact .status-card__image{flex:0 0 60px}a.status-card.compact:hover{background-color:#192432}.status-card__image-image{border-radius:4px 0 0 4px;display:block;margin:0;width:100%;height:100%;object-fit:cover;background-size:cover;background-position:center center}.load-more{display:block;color:#404040;background-color:transparent;border:0;font-size:inherit;text-align:center;line-height:inherit;margin:0;padding:15px;box-sizing:border-box;width:100%;clear:both;text-decoration:none}.load-more:hover{background:#151f2b}.load-gap{border-bottom:1px solid #202e3f}.regeneration-indicator{text-align:center;font-size:16px;font-weight:500;color:#404040;background:#121a24;cursor:default;display:flex;flex:1 1 auto;flex-direction:column;align-items:center;justify-content:center;padding:20px}.regeneration-indicator__figure,.regeneration-indicator__figure img{display:block;width:auto;height:160px;margin:0}.regeneration-indicator--without-header{padding-top:68px}.regeneration-indicator__label{margin-top:30px}.regeneration-indicator__label strong{display:block;margin-bottom:10px;color:#404040}.regeneration-indicator__label span{font-size:15px;font-weight:400}.column-header__wrapper{position:relative;flex:0 0 auto;z-index:1}.column-header__wrapper.active{box-shadow:0 1px 0 rgba(0,0,127,.3)}.column-header__wrapper.active::before{display:block;content:\"\";position:absolute;bottom:-13px;left:0;right:0;margin:0 auto;width:60%;pointer-events:none;height:28px;z-index:1;background:radial-gradient(ellipse, rgba(0, 0, 127, 0.23) 0%, rgba(0, 0, 127, 0) 60%)}.column-header__wrapper .announcements{z-index:1;position:relative}.column-header{display:flex;font-size:16px;background:#192432;flex:0 0 auto;cursor:pointer;position:relative;z-index:2;outline:0;overflow:hidden;border-top-left-radius:2px;border-top-right-radius:2px}.column-header>button{margin:0;border:0;padding:15px 0 15px 15px;color:inherit;background:transparent;font:inherit;text-align:left;text-overflow:ellipsis;overflow:hidden;white-space:nowrap;flex:1}.column-header>.column-header__back-button{color:#00007f}.column-header.active .column-header__icon{color:#00007f;text-shadow:0 0 10px rgba(0,0,127,.4)}.column-header:focus,.column-header:active{outline:0}.column-header__buttons{height:48px;display:flex}.column-header__links{margin-bottom:14px}.column-header__links .text-btn{margin-right:10px}.column-header__button{background:#192432;border:0;color:#9baec8;cursor:pointer;font-size:16px;padding:0 15px}.column-header__button:hover{color:#b2c1d5}.column-header__button.active{color:#fff;background:#202e3f}.column-header__button.active:hover{color:#fff;background:#202e3f}.column-header__collapsible{max-height:70vh;overflow:hidden;overflow-y:auto;color:#9baec8;transition:max-height 150ms ease-in-out,opacity 300ms linear;opacity:1;z-index:1;position:relative}.column-header__collapsible.collapsed{max-height:0;opacity:.5}.column-header__collapsible.animating{overflow-y:hidden}.column-header__collapsible hr{height:0;background:transparent;border:0;border-top:1px solid #26374d;margin:10px 0}.column-header__collapsible-inner{background:#202e3f;padding:15px}.column-header__setting-btn:hover{color:#9baec8;text-decoration:underline}.column-header__setting-arrows{float:right}.column-header__setting-arrows .column-header__setting-btn{padding:0 10px}.column-header__setting-arrows .column-header__setting-btn:last-child{padding-right:0}.text-btn{display:inline-block;padding:0;font-family:inherit;font-size:inherit;color:inherit;border:0;background:transparent;cursor:pointer}.column-header__icon{display:inline-block;margin-right:5px}.loading-indicator{color:#404040;font-size:12px;font-weight:400;text-transform:uppercase;overflow:visible;position:absolute;top:50%;left:50%;transform:translate(-50%, -50%)}.loading-indicator span{display:block;float:left;margin-left:50%;transform:translateX(-50%);margin:82px 0 0 50%;white-space:nowrap}.loading-indicator__figure{position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);width:42px;height:42px;box-sizing:border-box;background-color:transparent;border:0 solid #3e5a7c;border-width:6px;border-radius:50%}.no-reduce-motion .loading-indicator span{animation:loader-label 1.15s infinite cubic-bezier(0.215, 0.61, 0.355, 1)}.no-reduce-motion .loading-indicator__figure{animation:loader-figure 1.15s infinite cubic-bezier(0.215, 0.61, 0.355, 1)}@keyframes spring-rotate-in{0%{transform:rotate(0deg)}30%{transform:rotate(-484.8deg)}60%{transform:rotate(-316.7deg)}90%{transform:rotate(-375deg)}100%{transform:rotate(-360deg)}}@keyframes spring-rotate-out{0%{transform:rotate(-360deg)}30%{transform:rotate(124.8deg)}60%{transform:rotate(-43.27deg)}90%{transform:rotate(15deg)}100%{transform:rotate(0deg)}}@keyframes loader-figure{0%{width:0;height:0;background-color:#3e5a7c}29%{background-color:#3e5a7c}30%{width:42px;height:42px;background-color:transparent;border-width:21px;opacity:1}100%{width:42px;height:42px;border-width:0;opacity:0;background-color:transparent}}@keyframes loader-label{0%{opacity:.25}30%{opacity:1}100%{opacity:.25}}.video-error-cover{align-items:center;background:#000;color:#fff;cursor:pointer;display:flex;flex-direction:column;height:100%;justify-content:center;margin-top:8px;position:relative;text-align:center;z-index:100}.media-spoiler{background:#000;color:#9baec8;border:0;padding:0;width:100%;height:100%;border-radius:4px;appearance:none}.media-spoiler:hover,.media-spoiler:active,.media-spoiler:focus{padding:0;color:#b5c3d6}.media-spoiler__warning{display:block;font-size:14px}.media-spoiler__trigger{display:block;font-size:11px;font-weight:700}.spoiler-button{top:0;left:0;width:100%;height:100%;position:absolute;z-index:100}.spoiler-button--minified{display:block;left:4px;top:4px;width:auto;height:auto}.spoiler-button--click-thru{pointer-events:none}.spoiler-button--hidden{display:none}.spoiler-button__overlay{display:block;background:transparent;width:100%;height:100%;border:0}.spoiler-button__overlay__label{display:inline-block;background:rgba(0,0,0,.5);border-radius:8px;padding:8px 12px;color:#fff;font-weight:500;font-size:14px}.spoiler-button__overlay:hover .spoiler-button__overlay__label,.spoiler-button__overlay:focus .spoiler-button__overlay__label,.spoiler-button__overlay:active .spoiler-button__overlay__label{background:rgba(0,0,0,.8)}.spoiler-button__overlay:disabled .spoiler-button__overlay__label{background:rgba(0,0,0,.5)}.modal-container--preloader{background:#202e3f}.account--panel{background:#192432;border-top:1px solid #202e3f;border-bottom:1px solid #202e3f;display:flex;flex-direction:row;padding:10px 0}.account--panel__button,.detailed-status__button{flex:1 1 auto;text-align:center}.column-settings__outer{background:#202e3f;padding:15px}.column-settings__section{color:#9baec8;cursor:default;display:block;font-weight:500;margin-bottom:10px}.column-settings__hashtags .column-settings__row{margin-bottom:15px}.column-settings__hashtags .column-select__control{outline:0;box-sizing:border-box;width:100%;border:0;box-shadow:none;font-family:inherit;background:#121a24;color:#9baec8;font-size:14px;margin:0}.column-settings__hashtags .column-select__control::placeholder{color:#a8b9cf}.column-settings__hashtags .column-select__control::-moz-focus-inner{border:0}.column-settings__hashtags .column-select__control::-moz-focus-inner,.column-settings__hashtags .column-select__control:focus,.column-settings__hashtags .column-select__control:active{outline:0 !important}.column-settings__hashtags .column-select__control:focus{background:#192432}@media screen and (max-width: 600px){.column-settings__hashtags .column-select__control{font-size:16px}}.column-settings__hashtags .column-select__placeholder{color:#404040;padding-left:2px;font-size:12px}.column-settings__hashtags .column-select__value-container{padding-left:6px}.column-settings__hashtags .column-select__multi-value{background:#202e3f}.column-settings__hashtags .column-select__multi-value__remove{cursor:pointer}.column-settings__hashtags .column-select__multi-value__remove:hover,.column-settings__hashtags .column-select__multi-value__remove:active,.column-settings__hashtags .column-select__multi-value__remove:focus{background:#26374d;color:#a8b9cf}.column-settings__hashtags .column-select__multi-value__label,.column-settings__hashtags .column-select__input{color:#9baec8}.column-settings__hashtags .column-select__clear-indicator,.column-settings__hashtags .column-select__dropdown-indicator{cursor:pointer;transition:none;color:#404040}.column-settings__hashtags .column-select__clear-indicator:hover,.column-settings__hashtags .column-select__clear-indicator:active,.column-settings__hashtags .column-select__clear-indicator:focus,.column-settings__hashtags .column-select__dropdown-indicator:hover,.column-settings__hashtags .column-select__dropdown-indicator:active,.column-settings__hashtags .column-select__dropdown-indicator:focus{color:#4a4a4a}.column-settings__hashtags .column-select__indicator-separator{background-color:#202e3f}.column-settings__hashtags .column-select__menu{background:#fff;border-radius:4px;padding:10px 14px;padding-bottom:14px;margin-top:10px;color:#9baec8;box-shadow:2px 4px 15px rgba(0,0,0,.4);padding:0;background:#d9e1e8}.column-settings__hashtags .column-select__menu h4{text-transform:uppercase;color:#9baec8;font-size:13px;font-weight:500;margin-bottom:10px}.column-settings__hashtags .column-select__menu li{padding:4px 0}.column-settings__hashtags .column-select__menu ul{margin-bottom:10px}.column-settings__hashtags .column-select__menu em{font-weight:500;color:#121a24}.column-settings__hashtags .column-select__menu-list{padding:6px}.column-settings__hashtags .column-select__option{color:#121a24;border-radius:4px;font-size:14px}.column-settings__hashtags .column-select__option--is-focused,.column-settings__hashtags .column-select__option--is-selected{background:#b9c8d5}.column-settings__row .text-btn{margin-bottom:15px}.relationship-tag{color:#fff;margin-bottom:4px;display:block;vertical-align:top;background-color:#000;text-transform:uppercase;font-size:11px;font-weight:500;padding:4px;border-radius:4px;opacity:.7}.relationship-tag:hover{opacity:1}.setting-toggle{display:block;line-height:24px}.setting-toggle__label{color:#9baec8;display:inline-block;margin-bottom:14px;margin-left:8px;vertical-align:middle}.empty-column-indicator,.error-column,.follow_requests-unlocked_explanation{color:#404040;background:#121a24;text-align:center;padding:20px;font-size:15px;font-weight:400;cursor:default;display:flex;flex:1 1 auto;align-items:center;justify-content:center}@supports(display: grid){.empty-column-indicator,.error-column,.follow_requests-unlocked_explanation{contain:strict}}.empty-column-indicator>span,.error-column>span,.follow_requests-unlocked_explanation>span{max-width:400px}.empty-column-indicator a,.error-column a,.follow_requests-unlocked_explanation a{color:#00007f;text-decoration:none}.empty-column-indicator a:hover,.error-column a:hover,.follow_requests-unlocked_explanation a:hover{text-decoration:underline}.follow_requests-unlocked_explanation{background:#0b1016;contain:initial}.error-column{flex-direction:column}@keyframes heartbeat{from{transform:scale(1);animation-timing-function:ease-out}10%{transform:scale(0.91);animation-timing-function:ease-in}17%{transform:scale(0.98);animation-timing-function:ease-out}33%{transform:scale(0.87);animation-timing-function:ease-in}45%{transform:scale(1);animation-timing-function:ease-out}}.no-reduce-motion .pulse-loading{transform-origin:center center;animation:heartbeat 1.5s ease-in-out infinite both}@keyframes shake-bottom{0%,100%{transform:rotate(0deg);transform-origin:50% 100%}10%{transform:rotate(2deg)}20%,40%,60%{transform:rotate(-4deg)}30%,50%,70%{transform:rotate(4deg)}80%{transform:rotate(-2deg)}90%{transform:rotate(2deg)}}.no-reduce-motion .shake-bottom{transform-origin:50% 100%;animation:shake-bottom .8s cubic-bezier(0.455, 0.03, 0.515, 0.955) 2s 2 both}.emoji-picker-dropdown__menu{background:#fff;position:absolute;box-shadow:4px 4px 6px rgba(0,0,0,.4);border-radius:4px;margin-top:5px;z-index:2}.emoji-picker-dropdown__menu .emoji-mart-scroll{transition:opacity 200ms ease}.emoji-picker-dropdown__menu.selecting .emoji-mart-scroll{opacity:.5}.emoji-picker-dropdown__modifiers{position:absolute;top:60px;right:11px;cursor:pointer}.emoji-picker-dropdown__modifiers__menu{position:absolute;z-index:4;top:-4px;left:-8px;background:#fff;border-radius:4px;box-shadow:1px 2px 6px rgba(0,0,0,.2);overflow:hidden}.emoji-picker-dropdown__modifiers__menu button{display:block;cursor:pointer;border:0;padding:4px 8px;background:transparent}.emoji-picker-dropdown__modifiers__menu button:hover,.emoji-picker-dropdown__modifiers__menu button:focus,.emoji-picker-dropdown__modifiers__menu button:active{background:rgba(217,225,232,.4)}.emoji-picker-dropdown__modifiers__menu .emoji-mart-emoji{height:22px}.emoji-mart-emoji span{background-repeat:no-repeat}.upload-area{align-items:center;background:rgba(0,0,0,.8);display:flex;height:100%;justify-content:center;left:0;opacity:0;position:absolute;top:0;visibility:hidden;width:100%;z-index:2000}.upload-area *{pointer-events:none}.upload-area__drop{width:320px;height:160px;display:flex;box-sizing:border-box;position:relative;padding:8px}.upload-area__background{position:absolute;top:0;right:0;bottom:0;left:0;z-index:-1;border-radius:4px;background:#121a24;box-shadow:0 0 5px rgba(0,0,0,.2)}.upload-area__content{flex:1;display:flex;align-items:center;justify-content:center;color:#d9e1e8;font-size:18px;font-weight:500;border:2px dashed #404040;border-radius:4px}.upload-progress{padding:10px;color:#404040;overflow:hidden;display:flex}.upload-progress .fa{font-size:34px;margin-right:10px}.upload-progress span{font-size:12px;text-transform:uppercase;font-weight:500;display:block}.upload-progess__message{flex:1 1 auto}.upload-progress__backdrop{width:100%;height:6px;border-radius:6px;background:#404040;position:relative;margin-top:5px}.upload-progress__tracker{position:absolute;left:0;top:0;height:6px;background:#00007f;border-radius:6px}.emoji-button{display:block;padding:5px 5px 2px 2px;outline:0;cursor:pointer}.emoji-button:active,.emoji-button:focus{outline:0 !important}.emoji-button img{filter:grayscale(100%);opacity:.8;display:block;margin:0;width:22px;height:22px}.emoji-button:hover img,.emoji-button:active img,.emoji-button:focus img{opacity:1;filter:none}.dropdown--active .emoji-button img{opacity:1;filter:none}.privacy-dropdown__dropdown{position:absolute;background:#fff;box-shadow:2px 4px 15px rgba(0,0,0,.4);border-radius:4px;margin-left:40px;overflow:hidden}.privacy-dropdown__dropdown.top{transform-origin:50% 100%}.privacy-dropdown__dropdown.bottom{transform-origin:50% 0}.privacy-dropdown__option{color:#121a24;padding:10px;cursor:pointer;display:flex}.privacy-dropdown__option:hover,.privacy-dropdown__option.active{background:#00007f;color:#fff;outline:0}.privacy-dropdown__option:hover .privacy-dropdown__option__content,.privacy-dropdown__option.active .privacy-dropdown__option__content{color:#fff}.privacy-dropdown__option:hover .privacy-dropdown__option__content strong,.privacy-dropdown__option.active .privacy-dropdown__option__content strong{color:#fff}.privacy-dropdown__option.active:hover{background:#000093}.privacy-dropdown__option__icon{display:flex;align-items:center;justify-content:center;margin-right:10px}.privacy-dropdown__option__content{flex:1 1 auto;color:#404040}.privacy-dropdown__option__content strong{font-weight:500;display:block;color:#121a24}.privacy-dropdown__option__content strong:lang(ja){font-weight:700}.privacy-dropdown__option__content strong:lang(ko){font-weight:700}.privacy-dropdown__option__content strong:lang(zh-CN){font-weight:700}.privacy-dropdown__option__content strong:lang(zh-HK){font-weight:700}.privacy-dropdown__option__content strong:lang(zh-TW){font-weight:700}.privacy-dropdown.active .privacy-dropdown__value{background:#fff;border-radius:4px 4px 0 0;box-shadow:0 -4px 4px rgba(0,0,0,.1)}.privacy-dropdown.active .privacy-dropdown__value .icon-button{transition:none}.privacy-dropdown.active .privacy-dropdown__value.active{background:#00007f}.privacy-dropdown.active .privacy-dropdown__value.active .icon-button{color:#fff}.privacy-dropdown.active.top .privacy-dropdown__value{border-radius:0 0 4px 4px}.privacy-dropdown.active .privacy-dropdown__dropdown{display:block;box-shadow:2px 4px 6px rgba(0,0,0,.1)}.search{position:relative}.search__input{outline:0;box-sizing:border-box;width:100%;border:0;box-shadow:none;font-family:inherit;background:#121a24;color:#9baec8;font-size:14px;margin:0;display:block;padding:15px;padding-right:30px;line-height:18px;font-size:16px}.search__input::placeholder{color:#a8b9cf}.search__input::-moz-focus-inner{border:0}.search__input::-moz-focus-inner,.search__input:focus,.search__input:active{outline:0 !important}.search__input:focus{background:#192432}@media screen and (max-width: 600px){.search__input{font-size:16px}}.search__icon::-moz-focus-inner{border:0}.search__icon::-moz-focus-inner,.search__icon:focus{outline:0 !important}.search__icon .fa{position:absolute;top:16px;right:10px;z-index:2;display:inline-block;opacity:0;transition:all 100ms linear;transition-property:transform,opacity;font-size:18px;width:18px;height:18px;color:#d9e1e8;cursor:default;pointer-events:none}.search__icon .fa.active{pointer-events:auto;opacity:.3}.search__icon .fa-search{transform:rotate(90deg)}.search__icon .fa-search.active{pointer-events:none;transform:rotate(0deg)}.search__icon .fa-times-circle{top:17px;transform:rotate(0deg);color:#404040;cursor:pointer}.search__icon .fa-times-circle.active{transform:rotate(90deg)}.search__icon .fa-times-circle:hover{color:#525252}.search-results__header{color:#404040;background:#151f2b;padding:15px;font-weight:500;font-size:16px;cursor:default}.search-results__header .fa{display:inline-block;margin-right:5px}.search-results__section{margin-bottom:5px}.search-results__section h5{background:#0b1016;border-bottom:1px solid #202e3f;cursor:default;display:flex;padding:15px;font-weight:500;font-size:16px;color:#404040}.search-results__section h5 .fa{display:inline-block;margin-right:5px}.search-results__section .account:last-child,.search-results__section>div:last-child .status{border-bottom:0}.search-results__hashtag{display:block;padding:10px;color:#d9e1e8;text-decoration:none}.search-results__hashtag:hover,.search-results__hashtag:active,.search-results__hashtag:focus{color:#e6ebf0;text-decoration:underline}.search-results__info{padding:20px;color:#9baec8;text-align:center}.modal-root{position:relative;transition:opacity .3s linear;will-change:opacity;z-index:9999}.modal-root__overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.7)}.modal-root__container{position:fixed;top:0;left:0;width:100%;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;align-content:space-around;z-index:9999;pointer-events:none;user-select:none}.modal-root__modal{pointer-events:auto;display:flex;z-index:9999}.video-modal__container{max-width:100vw;max-height:100vh}.audio-modal__container{width:50vw}.media-modal{width:100%;height:100%;position:relative}.media-modal .extended-video-player{width:100%;height:100%;display:flex;align-items:center;justify-content:center}.media-modal .extended-video-player video{max-width:100%;max-height:80%}.media-modal__closer{position:absolute;top:0;left:0;right:0;bottom:0}.media-modal__navigation{position:absolute;top:0;left:0;right:0;bottom:0;pointer-events:none;transition:opacity .3s linear;will-change:opacity}.media-modal__navigation *{pointer-events:auto}.media-modal__navigation.media-modal__navigation--hidden{opacity:0}.media-modal__navigation.media-modal__navigation--hidden *{pointer-events:none}.media-modal__nav{background:rgba(0,0,0,.5);box-sizing:border-box;border:0;color:#fff;cursor:pointer;display:flex;align-items:center;font-size:24px;height:20vmax;margin:auto 0;padding:30px 15px;position:absolute;top:0;bottom:0}.media-modal__nav--left{left:0}.media-modal__nav--right{right:0}.media-modal__pagination{width:100%;text-align:center;position:absolute;left:0;bottom:20px;pointer-events:none}.media-modal__meta{text-align:center;position:absolute;left:0;bottom:20px;width:100%;pointer-events:none}.media-modal__meta--shifted{bottom:62px}.media-modal__meta a{pointer-events:auto;text-decoration:none;font-weight:500;color:#d9e1e8}.media-modal__meta a:hover,.media-modal__meta a:focus,.media-modal__meta a:active{text-decoration:underline}.media-modal__page-dot{display:inline-block}.media-modal__button{background-color:#fff;height:12px;width:12px;border-radius:6px;margin:10px;padding:0;border:0;font-size:0}.media-modal__button--active{background-color:#00007f}.media-modal__close{position:absolute;right:8px;top:8px;z-index:100}.onboarding-modal,.error-modal,.embed-modal{background:#d9e1e8;color:#121a24;border-radius:8px;overflow:hidden;display:flex;flex-direction:column}.error-modal__body{height:80vh;width:80vw;max-width:520px;max-height:420px;position:relative}.error-modal__body>div{position:absolute;top:0;left:0;width:100%;height:100%;box-sizing:border-box;padding:25px;display:none;flex-direction:column;align-items:center;justify-content:center;display:flex;opacity:0;user-select:text}.error-modal__body{display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center}.onboarding-modal__paginator,.error-modal__footer{flex:0 0 auto;background:#c0cdd9;display:flex;padding:25px}.onboarding-modal__paginator>div,.error-modal__footer>div{min-width:33px}.onboarding-modal__paginator .onboarding-modal__nav,.onboarding-modal__paginator .error-modal__nav,.error-modal__footer .onboarding-modal__nav,.error-modal__footer .error-modal__nav{color:#404040;border:0;font-size:14px;font-weight:500;padding:10px 25px;line-height:inherit;height:auto;margin:-10px;border-radius:4px;background-color:transparent}.onboarding-modal__paginator .onboarding-modal__nav:hover,.onboarding-modal__paginator .onboarding-modal__nav:focus,.onboarding-modal__paginator .onboarding-modal__nav:active,.onboarding-modal__paginator .error-modal__nav:hover,.onboarding-modal__paginator .error-modal__nav:focus,.onboarding-modal__paginator .error-modal__nav:active,.error-modal__footer .onboarding-modal__nav:hover,.error-modal__footer .onboarding-modal__nav:focus,.error-modal__footer .onboarding-modal__nav:active,.error-modal__footer .error-modal__nav:hover,.error-modal__footer .error-modal__nav:focus,.error-modal__footer .error-modal__nav:active{color:#363636;background-color:#a6b9c9}.onboarding-modal__paginator .onboarding-modal__nav.onboarding-modal__done,.onboarding-modal__paginator .onboarding-modal__nav.onboarding-modal__next,.onboarding-modal__paginator .error-modal__nav.onboarding-modal__done,.onboarding-modal__paginator .error-modal__nav.onboarding-modal__next,.error-modal__footer .onboarding-modal__nav.onboarding-modal__done,.error-modal__footer .onboarding-modal__nav.onboarding-modal__next,.error-modal__footer .error-modal__nav.onboarding-modal__done,.error-modal__footer .error-modal__nav.onboarding-modal__next{color:#121a24}.onboarding-modal__paginator .onboarding-modal__nav.onboarding-modal__done:hover,.onboarding-modal__paginator .onboarding-modal__nav.onboarding-modal__done:focus,.onboarding-modal__paginator .onboarding-modal__nav.onboarding-modal__done:active,.onboarding-modal__paginator .onboarding-modal__nav.onboarding-modal__next:hover,.onboarding-modal__paginator .onboarding-modal__nav.onboarding-modal__next:focus,.onboarding-modal__paginator .onboarding-modal__nav.onboarding-modal__next:active,.onboarding-modal__paginator .error-modal__nav.onboarding-modal__done:hover,.onboarding-modal__paginator .error-modal__nav.onboarding-modal__done:focus,.onboarding-modal__paginator .error-modal__nav.onboarding-modal__done:active,.onboarding-modal__paginator .error-modal__nav.onboarding-modal__next:hover,.onboarding-modal__paginator .error-modal__nav.onboarding-modal__next:focus,.onboarding-modal__paginator .error-modal__nav.onboarding-modal__next:active,.error-modal__footer .onboarding-modal__nav.onboarding-modal__done:hover,.error-modal__footer .onboarding-modal__nav.onboarding-modal__done:focus,.error-modal__footer .onboarding-modal__nav.onboarding-modal__done:active,.error-modal__footer .onboarding-modal__nav.onboarding-modal__next:hover,.error-modal__footer .onboarding-modal__nav.onboarding-modal__next:focus,.error-modal__footer .onboarding-modal__nav.onboarding-modal__next:active,.error-modal__footer .error-modal__nav.onboarding-modal__done:hover,.error-modal__footer .error-modal__nav.onboarding-modal__done:focus,.error-modal__footer .error-modal__nav.onboarding-modal__done:active,.error-modal__footer .error-modal__nav.onboarding-modal__next:hover,.error-modal__footer .error-modal__nav.onboarding-modal__next:focus,.error-modal__footer .error-modal__nav.onboarding-modal__next:active{color:#192432}.error-modal__footer{justify-content:center}.display-case{text-align:center;font-size:15px;margin-bottom:15px}.display-case__label{font-weight:500;color:#121a24;margin-bottom:5px;text-transform:uppercase;font-size:12px}.display-case__case{background:#121a24;color:#d9e1e8;font-weight:500;padding:10px;border-radius:4px}.onboard-sliders{display:inline-block;max-width:30px;max-height:auto;margin-left:10px}.boost-modal,.confirmation-modal,.report-modal,.actions-modal,.mute-modal,.block-modal{background:#f2f5f7;color:#121a24;border-radius:8px;overflow:hidden;max-width:90vw;width:480px;position:relative;flex-direction:column}.boost-modal .status__display-name,.confirmation-modal .status__display-name,.report-modal .status__display-name,.actions-modal .status__display-name,.mute-modal .status__display-name,.block-modal .status__display-name{display:block;max-width:100%;padding-right:25px}.boost-modal .status__avatar,.confirmation-modal .status__avatar,.report-modal .status__avatar,.actions-modal .status__avatar,.mute-modal .status__avatar,.block-modal .status__avatar{height:28px;left:10px;position:absolute;top:10px;width:48px}.boost-modal .status__content__spoiler-link,.confirmation-modal .status__content__spoiler-link,.report-modal .status__content__spoiler-link,.actions-modal .status__content__spoiler-link,.mute-modal .status__content__spoiler-link,.block-modal .status__content__spoiler-link{color:#f2f5f7}.actions-modal .status{background:#fff;border-bottom-color:#d9e1e8;padding-top:10px;padding-bottom:10px}.actions-modal .dropdown-menu__separator{border-bottom-color:#d9e1e8}.boost-modal__container{overflow-x:scroll;padding:10px}.boost-modal__container .status{user-select:text;border-bottom:0}.boost-modal__action-bar,.confirmation-modal__action-bar,.mute-modal__action-bar,.block-modal__action-bar{display:flex;justify-content:space-between;background:#d9e1e8;padding:10px;line-height:36px}.boost-modal__action-bar>div,.confirmation-modal__action-bar>div,.mute-modal__action-bar>div,.block-modal__action-bar>div{flex:1 1 auto;text-align:right;color:#404040;padding-right:10px}.boost-modal__action-bar .button,.confirmation-modal__action-bar .button,.mute-modal__action-bar .button,.block-modal__action-bar .button{flex:0 0 auto}.boost-modal__status-header{font-size:15px}.boost-modal__status-time{float:right;font-size:14px}.mute-modal,.block-modal{line-height:24px}.mute-modal .react-toggle,.block-modal .react-toggle{vertical-align:middle}.report-modal{width:90vw;max-width:700px}.report-modal__container{display:flex;border-top:1px solid #d9e1e8}@media screen and (max-width: 480px){.report-modal__container{flex-wrap:wrap;overflow-y:auto}}.report-modal__statuses,.report-modal__comment{box-sizing:border-box;width:50%}@media screen and (max-width: 480px){.report-modal__statuses,.report-modal__comment{width:100%}}.report-modal__statuses,.focal-point-modal__content{flex:1 1 auto;min-height:20vh;max-height:80vh;overflow-y:auto;overflow-x:hidden}.report-modal__statuses .status__content a,.focal-point-modal__content .status__content a{color:#00007f}.report-modal__statuses .status__content,.report-modal__statuses .status__content p,.focal-point-modal__content .status__content,.focal-point-modal__content .status__content p{color:#121a24}@media screen and (max-width: 480px){.report-modal__statuses,.focal-point-modal__content{max-height:10vh}}@media screen and (max-width: 480px){.focal-point-modal__content{max-height:40vh}}.report-modal__comment{padding:20px;border-right:1px solid #d9e1e8;max-width:320px}.report-modal__comment p{font-size:14px;line-height:20px;margin-bottom:20px}.report-modal__comment .setting-text{display:block;box-sizing:border-box;width:100%;margin:0;color:#121a24;background:#fff;padding:10px;font-family:inherit;font-size:14px;resize:none;border:0;outline:0;border-radius:4px;border:1px solid #d9e1e8;min-height:100px;max-height:50vh;margin-bottom:10px}.report-modal__comment .setting-text:focus{border:1px solid #c0cdd9}.report-modal__comment .setting-text__wrapper{background:#fff;border:1px solid #d9e1e8;margin-bottom:10px;border-radius:4px}.report-modal__comment .setting-text__wrapper .setting-text{border:0;margin-bottom:0;border-radius:0}.report-modal__comment .setting-text__wrapper .setting-text:focus{border:0}.report-modal__comment .setting-text__wrapper__modifiers{color:#121a24;font-family:inherit;font-size:14px;background:#fff}.report-modal__comment .setting-text__toolbar{display:flex;justify-content:space-between;margin-bottom:20px}.report-modal__comment .setting-text-label{display:block;color:#121a24;font-size:14px;font-weight:500;margin-bottom:10px}.report-modal__comment .setting-toggle{margin-top:20px;margin-bottom:24px}.report-modal__comment .setting-toggle__label{color:#121a24;font-size:14px}@media screen and (max-width: 480px){.report-modal__comment{padding:10px;max-width:100%;order:2}.report-modal__comment .setting-toggle{margin-bottom:4px}}.actions-modal{max-height:80vh;max-width:80vw}.actions-modal .status{overflow-y:auto;max-height:300px}.actions-modal .actions-modal__item-label{font-weight:500}.actions-modal ul{overflow-y:auto;flex-shrink:0;max-height:80vh}.actions-modal ul.with-status{max-height:calc(80vh - 75px)}.actions-modal ul li:empty{margin:0}.actions-modal ul li:not(:empty) a{color:#121a24;display:flex;padding:12px 16px;font-size:15px;align-items:center;text-decoration:none}.actions-modal ul li:not(:empty) a,.actions-modal ul li:not(:empty) a button{transition:none}.actions-modal ul li:not(:empty) a.active,.actions-modal ul li:not(:empty) a.active button,.actions-modal ul li:not(:empty) a:hover,.actions-modal ul li:not(:empty) a:hover button,.actions-modal ul li:not(:empty) a:active,.actions-modal ul li:not(:empty) a:active button,.actions-modal ul li:not(:empty) a:focus,.actions-modal ul li:not(:empty) a:focus button{background:#00007f;color:#fff}.actions-modal ul li:not(:empty) a button:first-child{margin-right:10px}.confirmation-modal__action-bar .confirmation-modal__secondary-button,.mute-modal__action-bar .confirmation-modal__secondary-button,.block-modal__action-bar .confirmation-modal__secondary-button{flex-shrink:1}.confirmation-modal__secondary-button,.confirmation-modal__cancel-button,.mute-modal__cancel-button,.block-modal__cancel-button{background-color:transparent;color:#404040;font-size:14px;font-weight:500}.confirmation-modal__secondary-button:hover,.confirmation-modal__secondary-button:focus,.confirmation-modal__secondary-button:active,.confirmation-modal__cancel-button:hover,.confirmation-modal__cancel-button:focus,.confirmation-modal__cancel-button:active,.mute-modal__cancel-button:hover,.mute-modal__cancel-button:focus,.mute-modal__cancel-button:active,.block-modal__cancel-button:hover,.block-modal__cancel-button:focus,.block-modal__cancel-button:active{color:#363636;background-color:transparent}.confirmation-modal__container,.mute-modal__container,.block-modal__container,.report-modal__target{padding:30px;font-size:16px}.confirmation-modal__container strong,.mute-modal__container strong,.block-modal__container strong,.report-modal__target strong{font-weight:500}.confirmation-modal__container strong:lang(ja),.mute-modal__container strong:lang(ja),.block-modal__container strong:lang(ja),.report-modal__target strong:lang(ja){font-weight:700}.confirmation-modal__container strong:lang(ko),.mute-modal__container strong:lang(ko),.block-modal__container strong:lang(ko),.report-modal__target strong:lang(ko){font-weight:700}.confirmation-modal__container strong:lang(zh-CN),.mute-modal__container strong:lang(zh-CN),.block-modal__container strong:lang(zh-CN),.report-modal__target strong:lang(zh-CN){font-weight:700}.confirmation-modal__container strong:lang(zh-HK),.mute-modal__container strong:lang(zh-HK),.block-modal__container strong:lang(zh-HK),.report-modal__target strong:lang(zh-HK){font-weight:700}.confirmation-modal__container strong:lang(zh-TW),.mute-modal__container strong:lang(zh-TW),.block-modal__container strong:lang(zh-TW),.report-modal__target strong:lang(zh-TW){font-weight:700}.confirmation-modal__container,.report-modal__target{text-align:center}.block-modal__explanation,.mute-modal__explanation{margin-top:20px}.block-modal .setting-toggle,.mute-modal .setting-toggle{margin-top:20px;margin-bottom:24px;display:flex;align-items:center}.block-modal .setting-toggle__label,.mute-modal .setting-toggle__label{color:#121a24;margin:0;margin-left:8px}.report-modal__target{padding:15px}.report-modal__target .media-modal__close{top:14px;right:15px}.loading-bar{background-color:#00007f;height:3px;position:absolute;top:0;left:0;z-index:9999}.media-gallery__gifv__label{display:block;position:absolute;color:#fff;background:rgba(0,0,0,.5);bottom:6px;left:6px;padding:2px 6px;border-radius:2px;font-size:11px;font-weight:600;z-index:1;pointer-events:none;opacity:.9;transition:opacity .1s ease;line-height:18px}.media-gallery__gifv:hover .media-gallery__gifv__label{opacity:1}.media-gallery__audio{margin-top:32px}.media-gallery__audio audio{width:100%}.attachment-list{display:flex;font-size:14px;border:1px solid #202e3f;border-radius:4px;margin-top:14px;overflow:hidden}.attachment-list__icon{flex:0 0 auto;color:#404040;padding:8px 18px;cursor:default;border-right:1px solid #202e3f;display:flex;flex-direction:column;align-items:center;justify-content:center;font-size:26px}.attachment-list__icon .fa{display:block}.attachment-list__list{list-style:none;padding:4px 0;padding-left:8px;display:flex;flex-direction:column;justify-content:center}.attachment-list__list li{display:block;padding:4px 0}.attachment-list__list a{text-decoration:none;color:#404040;font-weight:500}.attachment-list__list a:hover{text-decoration:underline}.attachment-list.compact{border:0;margin-top:4px}.attachment-list.compact .attachment-list__list{padding:0;display:block}.attachment-list.compact .fa{color:#404040}.media-gallery{box-sizing:border-box;margin-top:8px;overflow:hidden;border-radius:4px;position:relative;width:100%}.media-gallery__item{border:0;box-sizing:border-box;display:block;float:left;position:relative;border-radius:4px;overflow:hidden}.media-gallery__item.standalone .media-gallery__item-gifv-thumbnail{transform:none;top:0}.media-gallery__item-thumbnail{cursor:zoom-in;display:block;text-decoration:none;color:#d9e1e8;position:relative;z-index:1}.media-gallery__item-thumbnail,.media-gallery__item-thumbnail img{height:100%;width:100%}.media-gallery__item-thumbnail img{object-fit:cover}.media-gallery__preview{width:100%;height:100%;object-fit:cover;position:absolute;top:0;left:0;z-index:0;background:#000}.media-gallery__preview--hidden{display:none}.media-gallery__gifv{height:100%;overflow:hidden;position:relative;width:100%}.media-gallery__item-gifv-thumbnail{cursor:zoom-in;height:100%;object-fit:cover;position:relative;top:50%;transform:translateY(-50%);width:100%;z-index:1}.media-gallery__item-thumbnail-label{clip:rect(1px 1px 1px 1px);clip:rect(1px, 1px, 1px, 1px);overflow:hidden;position:absolute}.detailed .video-player__volume__current,.detailed .video-player__volume::before,.fullscreen .video-player__volume__current,.fullscreen .video-player__volume::before{bottom:27px}.detailed .video-player__volume__handle,.fullscreen .video-player__volume__handle{bottom:23px}.audio-player{box-sizing:border-box;position:relative;background:#040609;border-radius:4px;padding-bottom:44px;direction:ltr}.audio-player.editable{border-radius:0;height:100%}.audio-player__waveform{padding:15px 0;position:relative;overflow:hidden}.audio-player__waveform::before{content:\"\";display:block;position:absolute;border-top:1px solid #192432;width:100%;height:0;left:0;top:calc(50% + 1px)}.audio-player__progress-placeholder{background-color:rgba(0,0,168,.5)}.audio-player__wave-placeholder{background-color:#2d415a}.audio-player .video-player__controls{padding:0 15px;padding-top:10px;background:#040609;border-top:1px solid #192432;border-radius:0 0 4px 4px}.video-player{overflow:hidden;position:relative;background:#000;max-width:100%;border-radius:4px;box-sizing:border-box;direction:ltr}.video-player.editable{border-radius:0;height:100% !important}.video-player:focus{outline:0}.video-player video{max-width:100vw;max-height:80vh;z-index:1}.video-player.fullscreen{width:100% !important;height:100% !important;margin:0}.video-player.fullscreen video{max-width:100% !important;max-height:100% !important;width:100% !important;height:100% !important;outline:0}.video-player.inline video{object-fit:contain;position:relative;top:50%;transform:translateY(-50%)}.video-player__controls{position:absolute;z-index:2;bottom:0;left:0;right:0;box-sizing:border-box;background:linear-gradient(0deg, rgba(0, 0, 0, 0.85) 0, rgba(0, 0, 0, 0.45) 60%, transparent);padding:0 15px;opacity:0;transition:opacity .1s ease}.video-player__controls.active{opacity:1}.video-player.inactive video,.video-player.inactive .video-player__controls{visibility:hidden}.video-player__spoiler{display:none;position:absolute;top:0;left:0;width:100%;height:100%;z-index:4;border:0;background:#000;color:#9baec8;transition:none;pointer-events:none}.video-player__spoiler.active{display:block;pointer-events:auto}.video-player__spoiler.active:hover,.video-player__spoiler.active:active,.video-player__spoiler.active:focus{color:#b2c1d5}.video-player__spoiler__title{display:block;font-size:14px}.video-player__spoiler__subtitle{display:block;font-size:11px;font-weight:500}.video-player__buttons-bar{display:flex;justify-content:space-between;padding-bottom:10px}.video-player__buttons-bar .video-player__download__icon{color:inherit}.video-player__buttons{font-size:16px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.video-player__buttons.left button{padding-left:0}.video-player__buttons.right button{padding-right:0}.video-player__buttons button{background:transparent;padding:2px 10px;font-size:16px;border:0;color:rgba(255,255,255,.75)}.video-player__buttons button:active,.video-player__buttons button:hover,.video-player__buttons button:focus{color:#fff}.video-player__time-sep,.video-player__time-total,.video-player__time-current{font-size:14px;font-weight:500}.video-player__time-current{color:#fff;margin-left:60px}.video-player__time-sep{display:inline-block;margin:0 6px}.video-player__time-sep,.video-player__time-total{color:#fff}.video-player__volume{cursor:pointer;height:24px;display:inline}.video-player__volume::before{content:\"\";width:50px;background:rgba(255,255,255,.35);border-radius:4px;display:block;position:absolute;height:4px;left:70px;bottom:20px}.video-player__volume__current{display:block;position:absolute;height:4px;border-radius:4px;left:70px;bottom:20px;background:#0000a8}.video-player__volume__handle{position:absolute;z-index:3;border-radius:50%;width:12px;height:12px;bottom:16px;left:70px;transition:opacity .1s ease;background:#0000a8;box-shadow:1px 2px 6px rgba(0,0,0,.2);pointer-events:none}.video-player__link{padding:2px 10px}.video-player__link a{text-decoration:none;font-size:14px;font-weight:500;color:#fff}.video-player__link a:hover,.video-player__link a:active,.video-player__link a:focus{text-decoration:underline}.video-player__seek{cursor:pointer;height:24px;position:relative}.video-player__seek::before{content:\"\";width:100%;background:rgba(255,255,255,.35);border-radius:4px;display:block;position:absolute;height:4px;top:10px}.video-player__seek__progress,.video-player__seek__buffer{display:block;position:absolute;height:4px;border-radius:4px;top:10px;background:#0000a8}.video-player__seek__buffer{background:rgba(255,255,255,.2)}.video-player__seek__handle{position:absolute;z-index:3;opacity:0;border-radius:50%;width:12px;height:12px;top:6px;margin-left:-6px;transition:opacity .1s ease;background:#0000a8;box-shadow:1px 2px 6px rgba(0,0,0,.2);pointer-events:none}.video-player__seek__handle.active{opacity:1}.video-player__seek:hover .video-player__seek__handle{opacity:1}.video-player.detailed .video-player__buttons button,.video-player.fullscreen .video-player__buttons button{padding-top:10px;padding-bottom:10px}.directory__list{width:100%;margin:10px 0;transition:opacity 100ms ease-in}.directory__list.loading{opacity:.7}@media screen and (max-width: 415px){.directory__list{margin:0}}.directory__card{box-sizing:border-box;margin-bottom:10px}.directory__card__img{height:125px;position:relative;background:#000;overflow:hidden}.directory__card__img img{display:block;width:100%;height:100%;margin:0;object-fit:cover}.directory__card__bar{display:flex;align-items:center;background:#192432;padding:10px}.directory__card__bar__name{flex:1 1 auto;display:flex;align-items:center;text-decoration:none;overflow:hidden}.directory__card__bar__relationship{width:23px;min-height:1px;flex:0 0 auto}.directory__card__bar .avatar{flex:0 0 auto;width:48px;height:48px;padding-top:2px}.directory__card__bar .avatar img{width:100%;height:100%;display:block;margin:0;border-radius:4px;background:#040609;object-fit:cover}.directory__card__bar .display-name{margin-left:15px;text-align:left}.directory__card__bar .display-name strong{font-size:15px;color:#fff;font-weight:500;overflow:hidden;text-overflow:ellipsis}.directory__card__bar .display-name span{display:block;font-size:14px;color:#9baec8;font-weight:400;overflow:hidden;text-overflow:ellipsis}.directory__card__extra{background:#121a24;display:flex;align-items:center;justify-content:center}.directory__card__extra .accounts-table__count{width:33.33%;flex:0 0 auto;padding:15px 0}.directory__card__extra .account__header__content{box-sizing:border-box;padding:15px 10px;border-bottom:1px solid #202e3f;width:100%;min-height:48px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.directory__card__extra .account__header__content p{display:none}.directory__card__extra .account__header__content p:first-child{display:inline}.directory__card__extra .account__header__content br{display:none}.account-gallery__container{display:flex;flex-wrap:wrap;padding:4px 2px}.account-gallery__item{border:0;box-sizing:border-box;display:block;position:relative;border-radius:4px;overflow:hidden;margin:2px}.account-gallery__item__icons{position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);font-size:24px}.notification__filter-bar,.account__section-headline{background:#0b1016;border-bottom:1px solid #202e3f;cursor:default;display:flex;flex-shrink:0}.notification__filter-bar button,.account__section-headline button{background:#0b1016;border:0;margin:0}.notification__filter-bar button,.notification__filter-bar a,.account__section-headline button,.account__section-headline a{display:block;flex:1 1 auto;color:#9baec8;padding:15px 0;font-size:14px;font-weight:500;text-align:center;text-decoration:none;position:relative;width:100%;white-space:nowrap}.notification__filter-bar button.active,.notification__filter-bar a.active,.account__section-headline button.active,.account__section-headline a.active{color:#d9e1e8}.notification__filter-bar button.active::before,.notification__filter-bar button.active::after,.notification__filter-bar a.active::before,.notification__filter-bar a.active::after,.account__section-headline button.active::before,.account__section-headline button.active::after,.account__section-headline a.active::before,.account__section-headline a.active::after{display:block;content:\"\";position:absolute;bottom:0;left:50%;width:0;height:0;transform:translateX(-50%);border-style:solid;border-width:0 10px 10px;border-color:transparent transparent #202e3f}.notification__filter-bar button.active::after,.notification__filter-bar a.active::after,.account__section-headline button.active::after,.account__section-headline a.active::after{bottom:-1px;border-color:transparent transparent #121a24}.notification__filter-bar.directory__section-headline,.account__section-headline.directory__section-headline{background:#0f151d;border-bottom-color:transparent}.notification__filter-bar.directory__section-headline a.active::before,.notification__filter-bar.directory__section-headline button.active::before,.account__section-headline.directory__section-headline a.active::before,.account__section-headline.directory__section-headline button.active::before{display:none}.notification__filter-bar.directory__section-headline a.active::after,.notification__filter-bar.directory__section-headline button.active::after,.account__section-headline.directory__section-headline a.active::after,.account__section-headline.directory__section-headline button.active::after{border-color:transparent transparent #06090c}.filter-form{background:#121a24}.filter-form__column{padding:10px 15px}.filter-form .radio-button{display:block}.radio-button{font-size:14px;position:relative;display:inline-block;padding:6px 0;line-height:18px;cursor:default;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:pointer}.radio-button input[type=radio],.radio-button input[type=checkbox]{display:none}.radio-button__input{display:inline-block;position:relative;border:1px solid #9baec8;box-sizing:border-box;width:18px;height:18px;flex:0 0 auto;margin-right:10px;top:-1px;border-radius:50%;vertical-align:middle}.radio-button__input.checked{border-color:#0000a8;background:#0000a8}::-webkit-scrollbar-thumb{border-radius:0}.search-popout{background:#fff;border-radius:4px;padding:10px 14px;padding-bottom:14px;margin-top:10px;color:#9baec8;box-shadow:2px 4px 15px rgba(0,0,0,.4)}.search-popout h4{text-transform:uppercase;color:#9baec8;font-size:13px;font-weight:500;margin-bottom:10px}.search-popout li{padding:4px 0}.search-popout ul{margin-bottom:10px}.search-popout em{font-weight:500;color:#121a24}noscript{text-align:center}noscript img{width:200px;opacity:.5;animation:flicker 4s infinite}noscript div{font-size:14px;margin:30px auto;color:#d9e1e8;max-width:400px}noscript div a{color:#00007f;text-decoration:underline}noscript div a:hover{text-decoration:none}@keyframes flicker{0%{opacity:1}30%{opacity:.75}100%{opacity:1}}@media screen and (max-width: 630px)and (max-height: 400px){.tabs-bar,.search{will-change:margin-top;transition:margin-top 400ms 100ms}.navigation-bar{will-change:padding-bottom;transition:padding-bottom 400ms 100ms}.navigation-bar>a:first-child{will-change:margin-top,margin-left,margin-right,width;transition:margin-top 400ms 100ms,margin-left 400ms 500ms,margin-right 400ms 500ms}.navigation-bar>.navigation-bar__profile-edit{will-change:margin-top;transition:margin-top 400ms 100ms}.navigation-bar .navigation-bar__actions>.icon-button.close{will-change:opacity transform;transition:opacity 200ms 100ms,transform 400ms 100ms}.navigation-bar .navigation-bar__actions>.compose__action-bar .icon-button{will-change:opacity transform;transition:opacity 200ms 300ms,transform 400ms 100ms}.is-composing .tabs-bar,.is-composing .search{margin-top:-50px}.is-composing .navigation-bar{padding-bottom:0}.is-composing .navigation-bar>a:first-child{margin:-100px 10px 0 -50px}.is-composing .navigation-bar .navigation-bar__profile{padding-top:2px}.is-composing .navigation-bar .navigation-bar__profile-edit{position:absolute;margin-top:-60px}.is-composing .navigation-bar .navigation-bar__actions .icon-button.close{pointer-events:auto;opacity:1;transform:scale(1, 1) translate(0, 0);bottom:5px}.is-composing .navigation-bar .navigation-bar__actions .compose__action-bar .icon-button{pointer-events:none;opacity:0;transform:scale(0, 1) translate(100%, 0)}}.embed-modal{width:auto;max-width:80vw;max-height:80vh}.embed-modal h4{padding:30px;font-weight:500;font-size:16px;text-align:center}.embed-modal .embed-modal__container{padding:10px}.embed-modal .embed-modal__container .hint{margin-bottom:15px}.embed-modal .embed-modal__container .embed-modal__html{outline:0;box-sizing:border-box;display:block;width:100%;border:0;padding:10px;font-family:\"mastodon-font-monospace\",monospace;background:#121a24;color:#fff;font-size:14px;margin:0;margin-bottom:15px;border-radius:4px}.embed-modal .embed-modal__container .embed-modal__html::-moz-focus-inner{border:0}.embed-modal .embed-modal__container .embed-modal__html::-moz-focus-inner,.embed-modal .embed-modal__container .embed-modal__html:focus,.embed-modal .embed-modal__container .embed-modal__html:active{outline:0 !important}.embed-modal .embed-modal__container .embed-modal__html:focus{background:#192432}@media screen and (max-width: 600px){.embed-modal .embed-modal__container .embed-modal__html{font-size:16px}}.embed-modal .embed-modal__container .embed-modal__iframe{width:400px;max-width:100%;overflow:hidden;border:0;border-radius:4px}.account__moved-note{padding:14px 10px;padding-bottom:16px;background:#192432;border-top:1px solid #202e3f;border-bottom:1px solid #202e3f}.account__moved-note__message{position:relative;margin-left:58px;color:#404040;padding:8px 0;padding-top:0;padding-bottom:4px;font-size:14px}.account__moved-note__message>span{display:block;overflow:hidden;text-overflow:ellipsis}.account__moved-note__icon-wrapper{left:-26px;position:absolute}.account__moved-note .detailed-status__display-avatar{position:relative}.account__moved-note .detailed-status__display-name{margin-bottom:0}.column-inline-form{padding:15px;padding-right:0;display:flex;justify-content:flex-start;align-items:center;background:#192432}.column-inline-form label{flex:1 1 auto}.column-inline-form label input{width:100%}.column-inline-form label input:focus{outline:0}.column-inline-form .icon-button{flex:0 0 auto;margin:0 10px}.drawer__backdrop{cursor:pointer;position:absolute;top:0;left:0;width:100%;height:100%;background:rgba(0,0,0,.5)}.list-editor{background:#121a24;flex-direction:column;border-radius:8px;box-shadow:2px 4px 15px rgba(0,0,0,.4);width:380px;overflow:hidden}@media screen and (max-width: 420px){.list-editor{width:90%}}.list-editor h4{padding:15px 0;background:#283a50;font-weight:500;font-size:16px;text-align:center;border-radius:8px 8px 0 0}.list-editor .drawer__pager{height:50vh}.list-editor .drawer__inner{border-radius:0 0 8px 8px}.list-editor .drawer__inner.backdrop{width:calc(100% - 60px);box-shadow:2px 4px 15px rgba(0,0,0,.4);border-radius:0 0 0 8px}.list-editor__accounts{overflow-y:auto}.list-editor .account__display-name:hover strong{text-decoration:none}.list-editor .account__avatar{cursor:default}.list-editor .search{margin-bottom:0}.list-adder{background:#121a24;flex-direction:column;border-radius:8px;box-shadow:2px 4px 15px rgba(0,0,0,.4);width:380px;overflow:hidden}@media screen and (max-width: 420px){.list-adder{width:90%}}.list-adder__account{background:#283a50}.list-adder__lists{background:#283a50;height:50vh;border-radius:0 0 8px 8px;overflow-y:auto}.list-adder .list{padding:10px;border-bottom:1px solid #202e3f}.list-adder .list__wrapper{display:flex}.list-adder .list__display-name{flex:1 1 auto;overflow:hidden;text-decoration:none;font-size:16px;padding:10px}.focal-point{position:relative;cursor:move;overflow:hidden;height:100%;display:flex;justify-content:center;align-items:center;background:#000}.focal-point img,.focal-point video,.focal-point canvas{display:block;max-height:80vh;width:100%;height:auto;margin:0;object-fit:contain;background:#000}.focal-point__reticle{position:absolute;width:100px;height:100px;transform:translate(-50%, -50%);background:url(\"~images/reticle.png\") no-repeat 0 0;border-radius:50%;box-shadow:0 0 0 9999em rgba(0,0,0,.35)}.focal-point__overlay{position:absolute;width:100%;height:100%;top:0;left:0}.focal-point__preview{position:absolute;bottom:10px;right:10px;z-index:2;cursor:move;transition:opacity .1s ease}.focal-point__preview:hover{opacity:.5}.focal-point__preview strong{color:#fff;font-size:14px;font-weight:500;display:block;margin-bottom:5px}.focal-point__preview div{border-radius:4px;box-shadow:0 0 14px rgba(0,0,0,.2)}@media screen and (max-width: 480px){.focal-point img,.focal-point video{max-height:100%}.focal-point__preview{display:none}}.account__header__content{color:#9baec8;font-size:14px;font-weight:400;overflow:hidden;word-break:normal;word-wrap:break-word}.account__header__content p{margin-bottom:20px}.account__header__content p:last-child{margin-bottom:0}.account__header__content a{color:inherit;text-decoration:underline}.account__header__content a:hover{text-decoration:none}.account__header{overflow:hidden}.account__header.inactive{opacity:.5}.account__header.inactive .account__header__image,.account__header.inactive .account__avatar{filter:grayscale(100%)}.account__header__info{position:absolute;top:10px;left:10px}.account__header__image{overflow:hidden;height:145px;position:relative;background:#0b1016}.account__header__image img{object-fit:cover;display:block;width:100%;height:100%;margin:0}.account__header__bar{position:relative;background:#192432;padding:5px;border-bottom:1px solid #26374d}.account__header__bar .avatar{display:block;flex:0 0 auto;width:94px;margin-left:-2px}.account__header__bar .avatar .account__avatar{background:#040609;border:2px solid #192432}.account__header__tabs{display:flex;align-items:flex-start;padding:7px 5px;margin-top:-55px}.account__header__tabs__buttons{display:flex;align-items:center;padding-top:55px;overflow:hidden}.account__header__tabs__buttons .icon-button{border:1px solid #26374d;border-radius:4px;box-sizing:content-box;padding:2px}.account__header__tabs__buttons .button{margin:0 8px}.account__header__tabs__name{padding:5px}.account__header__tabs__name .account-role{vertical-align:top}.account__header__tabs__name .emojione{width:22px;height:22px}.account__header__tabs__name h1{font-size:16px;line-height:24px;color:#fff;font-weight:500;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.account__header__tabs__name h1 small{display:block;font-size:14px;color:#9baec8;font-weight:400;overflow:hidden;text-overflow:ellipsis}.account__header__tabs .spacer{flex:1 1 auto}.account__header__bio{overflow:hidden;margin:0 -5px}.account__header__bio .account__header__content{padding:20px 15px;padding-bottom:5px;color:#fff}.account__header__bio .account__header__fields{margin:0;border-top:1px solid #26374d}.account__header__bio .account__header__fields a{color:#0000a8}.account__header__bio .account__header__fields dl:first-child .verified{border-radius:0 4px 0 0}.account__header__bio .account__header__fields .verified a{color:#79bd9a}.account__header__extra{margin-top:4px}.account__header__extra__links{font-size:14px;color:#9baec8;padding:10px 0}.account__header__extra__links a{display:inline-block;color:#9baec8;text-decoration:none;padding:5px 10px;font-weight:500}.account__header__extra__links a strong{font-weight:700;color:#fff}.trends__header{color:#404040;background:#151f2b;border-bottom:1px solid #0b1016;font-weight:500;padding:15px;font-size:16px;cursor:default}.trends__header .fa{display:inline-block;margin-right:5px}.trends__item{display:flex;align-items:center;padding:15px;border-bottom:1px solid #202e3f}.trends__item:last-child{border-bottom:0}.trends__item__name{flex:1 1 auto;color:#404040;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.trends__item__name strong{font-weight:500}.trends__item__name a{color:#9baec8;text-decoration:none;font-size:14px;font-weight:500;display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.trends__item__name a:hover span,.trends__item__name a:focus span,.trends__item__name a:active span{text-decoration:underline}.trends__item__current{flex:0 0 auto;font-size:24px;line-height:36px;font-weight:500;text-align:right;padding-right:15px;margin-left:5px;color:#d9e1e8}.trends__item__sparkline{flex:0 0 auto;width:50px}.trends__item__sparkline path:first-child{fill:rgba(0,0,127,.25) !important;fill-opacity:1 !important}.trends__item__sparkline path:last-child{stroke:#00009e !important}.conversation{display:flex;border-bottom:1px solid #202e3f;padding:5px;padding-bottom:0}.conversation:focus{background:#151f2b;outline:0}.conversation__avatar{flex:0 0 auto;padding:10px;padding-top:12px;position:relative;cursor:pointer}.conversation__unread{display:inline-block;background:#00007f;border-radius:50%;width:.625rem;height:.625rem;margin:-0.1ex .15em .1ex}.conversation__content{flex:1 1 auto;padding:10px 5px;padding-right:15px;overflow:hidden}.conversation__content__info{overflow:hidden;display:flex;flex-direction:row-reverse;justify-content:space-between}.conversation__content__relative-time{font-size:15px;color:#9baec8;padding-left:15px}.conversation__content__names{color:#9baec8;font-size:15px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-bottom:4px;flex-basis:90px;flex-grow:1}.conversation__content__names a{color:#fff;text-decoration:none}.conversation__content__names a:hover,.conversation__content__names a:focus,.conversation__content__names a:active{text-decoration:underline}.conversation__content a{word-break:break-word}.conversation--unread{background:#151f2b}.conversation--unread:focus{background:#192432}.conversation--unread .conversation__content__info{font-weight:700}.conversation--unread .conversation__content__relative-time{color:#fff}.announcements{background:#202e3f;font-size:13px;display:flex;align-items:flex-end}.announcements__mastodon{width:124px;flex:0 0 auto}@media screen and (max-width: 424px){.announcements__mastodon{display:none}}.announcements__container{width:calc(100% - 124px);flex:0 0 auto;position:relative}@media screen and (max-width: 424px){.announcements__container{width:100%}}.announcements__item{box-sizing:border-box;width:100%;padding:15px;position:relative;font-size:15px;line-height:20px;word-wrap:break-word;font-weight:400;max-height:50vh;overflow:hidden;display:flex;flex-direction:column}.announcements__item__range{display:block;font-weight:500;margin-bottom:10px;padding-right:18px}.announcements__item__unread{position:absolute;top:19px;right:19px;display:block;background:#00007f;border-radius:50%;width:.625rem;height:.625rem}.announcements__pagination{padding:15px;color:#9baec8;position:absolute;bottom:3px;right:0}.layout-multiple-columns .announcements__mastodon{display:none}.layout-multiple-columns .announcements__container{width:100%}.reactions-bar{display:flex;flex-wrap:wrap;align-items:center;margin-top:15px;margin-left:-2px;width:calc(100% - (90px - 33px))}.reactions-bar__item{flex-shrink:0;background:#26374d;border:0;border-radius:3px;margin:2px;cursor:pointer;user-select:none;padding:0 6px;display:flex;align-items:center;transition:all 100ms ease-in;transition-property:background-color,color}.reactions-bar__item__emoji{display:block;margin:3px 0;width:16px;height:16px}.reactions-bar__item__emoji img{display:block;margin:0;width:100%;height:100%;min-width:auto;min-height:auto;vertical-align:bottom;object-fit:contain}.reactions-bar__item__count{display:block;min-width:9px;font-size:13px;font-weight:500;text-align:center;margin-left:6px;color:#9baec8}.reactions-bar__item:hover,.reactions-bar__item:focus,.reactions-bar__item:active{background:#2d415a;transition:all 200ms ease-out;transition-property:background-color,color}.reactions-bar__item:hover__count,.reactions-bar__item:focus__count,.reactions-bar__item:active__count{color:#a8b9cf}.reactions-bar__item.active{transition:all 100ms ease-in;transition-property:background-color,color;background-color:#1e2c57}.reactions-bar__item.active .reactions-bar__item__count{color:#0000a8}.reactions-bar .emoji-picker-dropdown{margin:2px}.reactions-bar:hover .emoji-button{opacity:.85}.reactions-bar .emoji-button{color:#9baec8;margin:0;font-size:16px;width:auto;flex-shrink:0;padding:0 6px;height:22px;display:flex;align-items:center;opacity:.5;transition:all 100ms ease-in;transition-property:background-color,color}.reactions-bar .emoji-button:hover,.reactions-bar .emoji-button:active,.reactions-bar .emoji-button:focus{opacity:1;color:#a8b9cf;transition:all 200ms ease-out;transition-property:background-color,color}.reactions-bar--empty .emoji-button{padding:0}.poll{margin-top:16px;font-size:14px}.poll li{margin-bottom:10px;position:relative}.poll__chart{border-radius:4px;display:block;background:#8ba1bf;height:5px;min-width:1%}.poll__chart.leading{background:#00007f}.poll__option{position:relative;display:flex;padding:6px 0;line-height:18px;cursor:default;overflow:hidden}.poll__option__text{display:inline-block;word-wrap:break-word;overflow-wrap:break-word;max-width:calc(100% - 45px - 25px)}.poll__option input[type=radio],.poll__option input[type=checkbox]{display:none}.poll__option .autossugest-input{flex:1 1 auto}.poll__option input[type=text]{display:block;box-sizing:border-box;width:100%;font-size:14px;color:#121a24;outline:0;font-family:inherit;background:#fff;border:1px solid #dbdbdb;border-radius:4px;padding:6px 10px}.poll__option input[type=text]:focus{border-color:#00007f}.poll__option.selectable{cursor:pointer}.poll__option.editable{display:flex;align-items:center;overflow:visible}.poll__input{display:inline-block;position:relative;border:1px solid #9baec8;box-sizing:border-box;width:18px;height:18px;flex:0 0 auto;margin-right:10px;top:-1px;border-radius:50%;vertical-align:middle;margin-top:auto;margin-bottom:auto;flex:0 0 18px}.poll__input.checkbox{border-radius:4px}.poll__input.active{border-color:#79bd9a;background:#79bd9a}.poll__input:active,.poll__input:focus,.poll__input:hover{border-color:#acd6c1;border-width:4px}.poll__input::-moz-focus-inner{outline:0 !important;border:0}.poll__input:focus,.poll__input:active{outline:0 !important}.poll__number{display:inline-block;width:45px;font-weight:700;flex:0 0 45px}.poll__voted{padding:0 5px;display:inline-block}.poll__voted__mark{font-size:18px}.poll__footer{padding-top:6px;padding-bottom:5px;color:#404040}.poll__link{display:inline;background:transparent;padding:0;margin:0;border:0;color:#404040;text-decoration:underline;font-size:inherit}.poll__link:hover{text-decoration:none}.poll__link:active,.poll__link:focus{background-color:rgba(64,64,64,.1)}.poll .button{height:36px;padding:0 16px;margin-right:10px;font-size:14px}.compose-form__poll-wrapper{border-top:1px solid #ebebeb}.compose-form__poll-wrapper ul{padding:10px}.compose-form__poll-wrapper .poll__footer{border-top:1px solid #ebebeb;padding:10px;display:flex;align-items:center}.compose-form__poll-wrapper .poll__footer button,.compose-form__poll-wrapper .poll__footer select{flex:1 1 50%}.compose-form__poll-wrapper .poll__footer button:focus,.compose-form__poll-wrapper .poll__footer select:focus{border-color:#00007f}.compose-form__poll-wrapper .button.button-secondary{font-size:14px;font-weight:400;padding:6px 10px;height:auto;line-height:inherit;color:#404040;border-color:#404040;margin-right:5px}.compose-form__poll-wrapper li{display:flex;align-items:center}.compose-form__poll-wrapper li .poll__option{flex:0 0 auto;width:calc(100% - (23px + 6px));margin-right:6px}.compose-form__poll-wrapper select{appearance:none;box-sizing:border-box;font-size:14px;color:#121a24;display:inline-block;width:auto;outline:0;font-family:inherit;background:#fff url(\"data:image/svg+xml;utf8,\") no-repeat right 8px center/auto 16px;border:1px solid #dbdbdb;border-radius:4px;padding:6px 10px;padding-right:30px}.compose-form__poll-wrapper .icon-button.disabled{color:#dbdbdb}.muted .poll{color:#404040}.muted .poll__chart{background:rgba(109,137,175,.2)}.muted .poll__chart.leading{background:rgba(0,0,127,.2)}.modal-layout{background:#121a24 url('data:image/svg+xml;utf8,') repeat-x bottom fixed;display:flex;flex-direction:column;height:100vh;padding:0}.modal-layout__mastodon{display:flex;flex:1;flex-direction:column;justify-content:flex-end}.modal-layout__mastodon>*{flex:1;max-height:235px}@media screen and (max-width: 600px){.account-header{margin-top:0}}.emoji-mart{font-size:13px;display:inline-block;color:#121a24}.emoji-mart,.emoji-mart *{box-sizing:border-box;line-height:1.15}.emoji-mart .emoji-mart-emoji{padding:6px}.emoji-mart-bar{border:0 solid #c0cdd9}.emoji-mart-bar:first-child{border-bottom-width:1px;border-top-left-radius:5px;border-top-right-radius:5px;background:#d9e1e8}.emoji-mart-bar:last-child{border-top-width:1px;border-bottom-left-radius:5px;border-bottom-right-radius:5px;display:none}.emoji-mart-anchors{display:flex;justify-content:space-between;padding:0 6px;color:#404040;line-height:0}.emoji-mart-anchor{position:relative;flex:1;text-align:center;padding:12px 4px;overflow:hidden;transition:color .1s ease-out;cursor:pointer}.emoji-mart-anchor:hover{color:#363636}.emoji-mart-anchor-selected{color:#00007f}.emoji-mart-anchor-selected:hover{color:#00006b}.emoji-mart-anchor-selected .emoji-mart-anchor-bar{bottom:-1px}.emoji-mart-anchor-bar{position:absolute;bottom:-5px;left:0;width:100%;height:4px;background-color:#00007f}.emoji-mart-anchors i{display:inline-block;width:100%;max-width:22px}.emoji-mart-anchors svg{fill:currentColor;max-height:18px}.emoji-mart-scroll{overflow-y:scroll;height:270px;max-height:35vh;padding:0 6px 6px;background:#fff;will-change:transform}.emoji-mart-scroll::-webkit-scrollbar-track:hover,.emoji-mart-scroll::-webkit-scrollbar-track:active{background-color:rgba(0,0,0,.3)}.emoji-mart-search{padding:10px;padding-right:45px;background:#fff}.emoji-mart-search input{font-size:14px;font-weight:400;padding:7px 9px;font-family:inherit;display:block;width:100%;background:rgba(217,225,232,.3);color:#121a24;border:1px solid #d9e1e8;border-radius:4px}.emoji-mart-search input::-moz-focus-inner{border:0}.emoji-mart-search input::-moz-focus-inner,.emoji-mart-search input:focus,.emoji-mart-search input:active{outline:0 !important}.emoji-mart-category .emoji-mart-emoji{cursor:pointer}.emoji-mart-category .emoji-mart-emoji span{z-index:1;position:relative;text-align:center}.emoji-mart-category .emoji-mart-emoji:hover::before{z-index:0;content:\"\";position:absolute;top:0;left:0;width:100%;height:100%;background-color:rgba(217,225,232,.7);border-radius:100%}.emoji-mart-category-label{z-index:2;position:relative;position:-webkit-sticky;position:sticky;top:0}.emoji-mart-category-label span{display:block;width:100%;font-weight:500;padding:5px 6px;background:#fff}.emoji-mart-emoji{position:relative;display:inline-block;font-size:0}.emoji-mart-emoji span{width:22px;height:22px}.emoji-mart-no-results{font-size:14px;text-align:center;padding-top:70px;color:#9baec8}.emoji-mart-no-results .emoji-mart-category-label{display:none}.emoji-mart-no-results .emoji-mart-no-results-label{margin-top:.2em}.emoji-mart-no-results .emoji-mart-emoji:hover::before{content:none}.emoji-mart-preview{display:none}.container{box-sizing:border-box;max-width:1235px;margin:0 auto;position:relative}@media screen and (max-width: 1255px){.container{width:100%;padding:0 10px}}.rich-formatting{font-family:\"mastodon-font-sans-serif\",sans-serif;font-size:14px;font-weight:400;line-height:1.7;word-wrap:break-word;color:#9baec8}.rich-formatting a{color:#00007f;text-decoration:underline}.rich-formatting a:hover,.rich-formatting a:focus,.rich-formatting a:active{text-decoration:none}.rich-formatting p,.rich-formatting li{color:#9baec8}.rich-formatting p{margin-top:0;margin-bottom:.85em}.rich-formatting p:last-child{margin-bottom:0}.rich-formatting strong{font-weight:700;color:#d9e1e8}.rich-formatting em{font-style:italic;color:#d9e1e8}.rich-formatting code{font-size:.85em;background:#040609;border-radius:4px;padding:.2em .3em}.rich-formatting h1,.rich-formatting h2,.rich-formatting h3,.rich-formatting h4,.rich-formatting h5,.rich-formatting h6{font-family:\"mastodon-font-display\",sans-serif;margin-top:1.275em;margin-bottom:.85em;font-weight:500;color:#d9e1e8}.rich-formatting h1{font-size:2em}.rich-formatting h2{font-size:1.75em}.rich-formatting h3{font-size:1.5em}.rich-formatting h4{font-size:1.25em}.rich-formatting h5,.rich-formatting h6{font-size:1em}.rich-formatting ul{list-style:disc}.rich-formatting ol{list-style:decimal}.rich-formatting ul,.rich-formatting ol{margin:0;padding:0;padding-left:2em;margin-bottom:.85em}.rich-formatting ul[type=a],.rich-formatting ol[type=a]{list-style-type:lower-alpha}.rich-formatting ul[type=i],.rich-formatting ol[type=i]{list-style-type:lower-roman}.rich-formatting hr{width:100%;height:0;border:0;border-bottom:1px solid #192432;margin:1.7em 0}.rich-formatting hr.spacer{height:1px;border:0}.rich-formatting table{width:100%;border-collapse:collapse;break-inside:auto;margin-top:24px;margin-bottom:32px}.rich-formatting table thead tr,.rich-formatting table tbody tr{border-bottom:1px solid #192432;font-size:1em;line-height:1.625;font-weight:400;text-align:left;color:#9baec8}.rich-formatting table thead tr{border-bottom-width:2px;line-height:1.5;font-weight:500;color:#404040}.rich-formatting table th,.rich-formatting table td{padding:8px;align-self:start;align-items:start;word-break:break-all}.rich-formatting table th.nowrap,.rich-formatting table td.nowrap{width:25%;position:relative}.rich-formatting table th.nowrap::before,.rich-formatting table td.nowrap::before{content:\" \";visibility:hidden}.rich-formatting table th.nowrap span,.rich-formatting table td.nowrap span{position:absolute;left:8px;right:8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.rich-formatting>:first-child{margin-top:0}.information-board{background:#0b1016;padding:20px 0}.information-board .container-alt{position:relative;padding-right:295px}.information-board__sections{display:flex;justify-content:space-between;flex-wrap:wrap}.information-board__section{flex:1 0 0;font-family:\"mastodon-font-sans-serif\",sans-serif;font-size:16px;line-height:28px;color:#fff;text-align:right;padding:10px 15px}.information-board__section span,.information-board__section strong{display:block}.information-board__section span:last-child{color:#d9e1e8}.information-board__section strong{font-family:\"mastodon-font-display\",sans-serif;font-weight:500;font-size:32px;line-height:48px}@media screen and (max-width: 700px){.information-board__section{text-align:center}}.information-board .panel{position:absolute;width:280px;box-sizing:border-box;background:#040609;padding:20px;padding-top:10px;border-radius:4px 4px 0 0;right:0;bottom:-40px}.information-board .panel .panel-header{font-family:\"mastodon-font-display\",sans-serif;font-size:14px;line-height:24px;font-weight:500;color:#9baec8;padding-bottom:5px;margin-bottom:15px;border-bottom:1px solid #192432;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.information-board .panel .panel-header a,.information-board .panel .panel-header span{font-weight:400;color:#7a93b6}.information-board .panel .panel-header a{text-decoration:none}.information-board .owner{text-align:center}.information-board .owner .avatar{width:80px;height:80px;margin:0 auto;margin-bottom:15px}.information-board .owner .avatar img{display:block;width:80px;height:80px;border-radius:48px}.information-board .owner .name{font-size:14px}.information-board .owner .name a{display:block;color:#fff;text-decoration:none}.information-board .owner .name a:hover .display_name{text-decoration:underline}.information-board .owner .name .username{display:block;color:#9baec8}.landing-page p,.landing-page li{font-family:\"mastodon-font-sans-serif\",sans-serif;font-size:16px;font-weight:400;font-size:16px;line-height:30px;margin-bottom:12px;color:#9baec8}.landing-page p a,.landing-page li a{color:#00007f;text-decoration:underline}.landing-page em{display:inline;margin:0;padding:0;font-weight:700;background:transparent;font-family:inherit;font-size:inherit;line-height:inherit;color:#bcc9da}.landing-page h1{font-family:\"mastodon-font-display\",sans-serif;font-size:26px;line-height:30px;font-weight:500;margin-bottom:20px;color:#d9e1e8}.landing-page h1 small{font-family:\"mastodon-font-sans-serif\",sans-serif;display:block;font-size:18px;font-weight:400;color:#bcc9da}.landing-page h2{font-family:\"mastodon-font-display\",sans-serif;font-size:22px;line-height:26px;font-weight:500;margin-bottom:20px;color:#d9e1e8}.landing-page h3{font-family:\"mastodon-font-display\",sans-serif;font-size:18px;line-height:24px;font-weight:500;margin-bottom:20px;color:#d9e1e8}.landing-page h4{font-family:\"mastodon-font-display\",sans-serif;font-size:16px;line-height:24px;font-weight:500;margin-bottom:20px;color:#d9e1e8}.landing-page h5{font-family:\"mastodon-font-display\",sans-serif;font-size:14px;line-height:24px;font-weight:500;margin-bottom:20px;color:#d9e1e8}.landing-page h6{font-family:\"mastodon-font-display\",sans-serif;font-size:12px;line-height:24px;font-weight:500;margin-bottom:20px;color:#d9e1e8}.landing-page ul,.landing-page ol{margin-left:20px}.landing-page ul[type=a],.landing-page ol[type=a]{list-style-type:lower-alpha}.landing-page ul[type=i],.landing-page ol[type=i]{list-style-type:lower-roman}.landing-page ul{list-style:disc}.landing-page ol{list-style:decimal}.landing-page li>ol,.landing-page li>ul{margin-top:6px}.landing-page hr{width:100%;height:0;border:0;border-bottom:1px solid rgba(64,64,64,.6);margin:20px 0}.landing-page hr.spacer{height:1px;border:0}.landing-page__information,.landing-page__forms{padding:20px}.landing-page__call-to-action{background:#121a24;border-radius:4px;padding:25px 40px;overflow:hidden;box-sizing:border-box}.landing-page__call-to-action .row{width:100%;display:flex;flex-direction:row-reverse;flex-wrap:nowrap;justify-content:space-between;align-items:center}.landing-page__call-to-action .row__information-board{display:flex;justify-content:flex-end;align-items:flex-end}.landing-page__call-to-action .row__information-board .information-board__section{flex:1 0 auto;padding:0 10px}@media screen and (max-width: 415px){.landing-page__call-to-action .row__information-board{width:100%;justify-content:space-between}}.landing-page__call-to-action .row__mascot{flex:1;margin:10px -50px 0 0}@media screen and (max-width: 415px){.landing-page__call-to-action .row__mascot{display:none}}.landing-page__logo{margin-right:20px}.landing-page__logo img{height:50px;width:auto;mix-blend-mode:lighten}.landing-page__information{padding:45px 40px;margin-bottom:10px}.landing-page__information:last-child{margin-bottom:0}.landing-page__information strong{font-weight:500;color:#bcc9da}.landing-page__information .account{border-bottom:0;padding:0}.landing-page__information .account__display-name{align-items:center;display:flex;margin-right:5px}.landing-page__information .account div.account__display-name:hover .display-name strong{text-decoration:none}.landing-page__information .account div.account__display-name .account__avatar{cursor:default}.landing-page__information .account__avatar-wrapper{margin-left:0;flex:0 0 auto}.landing-page__information .account__avatar{width:44px;height:44px;background-size:44px 44px}.landing-page__information .account .display-name{font-size:15px}.landing-page__information .account .display-name__account{font-size:14px}@media screen and (max-width: 960px){.landing-page__information .contact{margin-top:30px}}@media screen and (max-width: 700px){.landing-page__information{padding:25px 20px}}.landing-page__information,.landing-page__forms,.landing-page #mastodon-timeline{box-sizing:border-box;background:#121a24;border-radius:4px;box-shadow:0 0 6px rgba(0,0,0,.1)}.landing-page__mascot{height:104px;position:relative;left:-40px;bottom:25px}.landing-page__mascot img{height:190px;width:auto}.landing-page__short-description .row{display:flex;flex-wrap:wrap;align-items:center;margin-bottom:40px}@media screen and (max-width: 700px){.landing-page__short-description .row{margin-bottom:20px}}.landing-page__short-description p a{color:#d9e1e8}.landing-page__short-description h1{font-weight:500;color:#fff;margin-bottom:0}.landing-page__short-description h1 small{color:#9baec8}.landing-page__short-description h1 small span{color:#d9e1e8}.landing-page__short-description p:last-child{margin-bottom:0}.landing-page__hero{margin-bottom:10px}.landing-page__hero img{display:block;margin:0;max-width:100%;height:auto;border-radius:4px}@media screen and (max-width: 840px){.landing-page .information-board .container-alt{padding-right:20px}.landing-page .information-board .panel{position:static;margin-top:20px;width:100%;border-radius:4px}.landing-page .information-board .panel .panel-header{text-align:center}}@media screen and (max-width: 675px){.landing-page .header-wrapper{padding-top:0}.landing-page .header-wrapper.compact{padding-bottom:0}.landing-page .header-wrapper.compact .hero .heading{text-align:initial}.landing-page .header .container-alt,.landing-page .features .container-alt{display:block}}.landing-page .cta{margin:20px}.landing{margin-bottom:100px}@media screen and (max-width: 738px){.landing{margin-bottom:0}}.landing__brand{display:flex;justify-content:center;align-items:center;padding:50px}.landing__brand svg{fill:#fff;height:52px}@media screen and (max-width: 415px){.landing__brand{padding:0;margin-bottom:30px}}.landing .directory{margin-top:30px;background:transparent;box-shadow:none;border-radius:0}.landing .hero-widget{margin-top:30px;margin-bottom:0}.landing .hero-widget h4{padding:10px;text-transform:uppercase;font-weight:700;font-size:13px;color:#9baec8}.landing .hero-widget__text{border-radius:0;padding-bottom:0}.landing .hero-widget__footer{background:#121a24;padding:10px;border-radius:0 0 4px 4px;display:flex}.landing .hero-widget__footer__column{flex:1 1 50%}.landing .hero-widget .account{padding:10px 0;border-bottom:0}.landing .hero-widget .account .account__display-name{display:flex;align-items:center}.landing .hero-widget .account .account__avatar{width:44px;height:44px;background-size:44px 44px}.landing .hero-widget__counter{padding:10px}.landing .hero-widget__counter strong{font-family:\"mastodon-font-display\",sans-serif;font-size:15px;font-weight:700;display:block}.landing .hero-widget__counter span{font-size:14px;color:#9baec8}.landing .simple_form .user_agreement .label_input>label{font-weight:400;color:#9baec8}.landing .simple_form p.lead{color:#9baec8;font-size:15px;line-height:20px;font-weight:400;margin-bottom:25px}.landing__grid{max-width:960px;margin:0 auto;display:grid;grid-template-columns:minmax(0, 50%) minmax(0, 50%);grid-gap:30px}@media screen and (max-width: 738px){.landing__grid{grid-template-columns:minmax(0, 100%);grid-gap:10px}.landing__grid__column-login{grid-row:1;display:flex;flex-direction:column}.landing__grid__column-login .box-widget{order:2;flex:0 0 auto}.landing__grid__column-login .hero-widget{margin-top:0;margin-bottom:10px;order:1;flex:0 0 auto}.landing__grid__column-registration{grid-row:2}.landing__grid .directory{margin-top:10px}}@media screen and (max-width: 415px){.landing__grid{grid-gap:0}.landing__grid .hero-widget{display:block;margin-bottom:0;box-shadow:none}.landing__grid .hero-widget__img,.landing__grid .hero-widget__img img,.landing__grid .hero-widget__footer{border-radius:0}.landing__grid .hero-widget,.landing__grid .box-widget,.landing__grid .directory__tag{border-bottom:1px solid #202e3f}.landing__grid .directory{margin-top:0}.landing__grid .directory__tag{margin-bottom:0}.landing__grid .directory__tag>a,.landing__grid .directory__tag>div{border-radius:0;box-shadow:none}.landing__grid .directory__tag:last-child{border-bottom:0}}.brand{position:relative;text-decoration:none}.brand__tagline{display:block;position:absolute;bottom:-10px;left:50px;width:300px;color:#9baec8;text-decoration:none;font-size:14px}@media screen and (max-width: 415px){.brand__tagline{position:static;width:auto;margin-top:20px;color:#404040}}.table{width:100%;max-width:100%;border-spacing:0;border-collapse:collapse}.table th,.table td{padding:8px;line-height:18px;vertical-align:top;border-top:1px solid #121a24;text-align:left;background:#0b1016}.table>thead>tr>th{vertical-align:bottom;border-bottom:2px solid #121a24;border-top:0;font-weight:500}.table>tbody>tr>th{font-weight:500}.table>tbody>tr:nth-child(odd)>td,.table>tbody>tr:nth-child(odd)>th{background:#121a24}.table a{color:#00007f;text-decoration:underline}.table a:hover{text-decoration:none}.table strong{font-weight:500}.table strong:lang(ja){font-weight:700}.table strong:lang(ko){font-weight:700}.table strong:lang(zh-CN){font-weight:700}.table strong:lang(zh-HK){font-weight:700}.table strong:lang(zh-TW){font-weight:700}.table.inline-table>tbody>tr:nth-child(odd)>td,.table.inline-table>tbody>tr:nth-child(odd)>th{background:transparent}.table.inline-table>tbody>tr:first-child>td,.table.inline-table>tbody>tr:first-child>th{border-top:0}.table.batch-table>thead>tr>th{background:#121a24;border-top:1px solid #040609;border-bottom:1px solid #040609}.table.batch-table>thead>tr>th:first-child{border-radius:4px 0 0;border-left:1px solid #040609}.table.batch-table>thead>tr>th:last-child{border-radius:0 4px 0 0;border-right:1px solid #040609}.table--invites tbody td{vertical-align:middle}.table-wrapper{overflow:auto;margin-bottom:20px}samp{font-family:\"mastodon-font-monospace\",monospace}button.table-action-link{background:transparent;border:0;font:inherit}button.table-action-link,a.table-action-link{text-decoration:none;display:inline-block;margin-right:5px;padding:0 10px;color:#9baec8;font-weight:500}button.table-action-link:hover,a.table-action-link:hover{color:#fff}button.table-action-link i.fa,a.table-action-link i.fa{font-weight:400;margin-right:5px}button.table-action-link:first-child,a.table-action-link:first-child{padding-left:0}.batch-table__toolbar,.batch-table__row{display:flex}.batch-table__toolbar__select,.batch-table__row__select{box-sizing:border-box;padding:8px 16px;cursor:pointer;min-height:100%}.batch-table__toolbar__select input,.batch-table__row__select input{margin-top:8px}.batch-table__toolbar__select--aligned,.batch-table__row__select--aligned{display:flex;align-items:center}.batch-table__toolbar__select--aligned input,.batch-table__row__select--aligned input{margin-top:0}.batch-table__toolbar__actions,.batch-table__toolbar__content,.batch-table__row__actions,.batch-table__row__content{padding:8px 0;padding-right:16px;flex:1 1 auto}.batch-table__toolbar{border:1px solid #040609;background:#121a24;border-radius:4px 0 0;height:47px;align-items:center}.batch-table__toolbar__actions{text-align:right;padding-right:11px}.batch-table__form{padding:16px;border:1px solid #040609;border-top:0;background:#121a24}.batch-table__form .fields-row{padding-top:0;margin-bottom:0}.batch-table__row{border:1px solid #040609;border-top:0;background:#0b1016}@media screen and (max-width: 415px){.optional .batch-table__row:first-child{border-top:1px solid #040609}}.batch-table__row:hover{background:#0f151d}.batch-table__row:nth-child(even){background:#121a24}.batch-table__row:nth-child(even):hover{background:#151f2b}.batch-table__row__content{padding-top:12px;padding-bottom:16px}.batch-table__row__content--unpadded{padding:0}.batch-table__row__content--with-image{display:flex;align-items:center}.batch-table__row__content__image{flex:0 0 auto;display:flex;justify-content:center;align-items:center;margin-right:10px}.batch-table__row__content__image .emojione{width:32px;height:32px}.batch-table__row__content__text{flex:1 1 auto}.batch-table__row__content__extra{flex:0 0 auto;text-align:right;color:#9baec8;font-weight:500}.batch-table__row .directory__tag{margin:0;width:100%}.batch-table__row .directory__tag a{background:transparent;border-radius:0}@media screen and (max-width: 415px){.batch-table.optional .batch-table__toolbar,.batch-table.optional .batch-table__row__select{display:none}}.batch-table .status__content{padding-top:0}.batch-table .status__content summary{display:list-item}.batch-table .status__content strong{font-weight:700}.batch-table .nothing-here{border:1px solid #040609;border-top:0;box-shadow:none}@media screen and (max-width: 415px){.batch-table .nothing-here{border-top:1px solid #040609}}@media screen and (max-width: 870px){.batch-table .accounts-table tbody td.optional{display:none}}.admin-wrapper{display:flex;justify-content:center;width:100%;min-height:100vh}.admin-wrapper .sidebar-wrapper{min-height:100vh;overflow:hidden;pointer-events:none;flex:1 1 auto}.admin-wrapper .sidebar-wrapper__inner{display:flex;justify-content:flex-end;background:#121a24;height:100%}.admin-wrapper .sidebar{width:240px;padding:0;pointer-events:auto}.admin-wrapper .sidebar__toggle{display:none;background:#202e3f;height:48px}.admin-wrapper .sidebar__toggle__logo{flex:1 1 auto}.admin-wrapper .sidebar__toggle__logo a{display:inline-block;padding:15px}.admin-wrapper .sidebar__toggle__logo svg{fill:#fff;height:20px;position:relative;bottom:-2px}.admin-wrapper .sidebar__toggle__icon{display:block;color:#9baec8;text-decoration:none;flex:0 0 auto;font-size:20px;padding:15px}.admin-wrapper .sidebar__toggle a:hover,.admin-wrapper .sidebar__toggle a:focus,.admin-wrapper .sidebar__toggle a:active{background:#26374d}.admin-wrapper .sidebar .logo{display:block;margin:40px auto;width:100px;height:100px}@media screen and (max-width: 600px){.admin-wrapper .sidebar>a:first-child{display:none}}.admin-wrapper .sidebar ul{list-style:none;border-radius:4px 0 0 4px;overflow:hidden;margin-bottom:20px}@media screen and (max-width: 600px){.admin-wrapper .sidebar ul{margin-bottom:0}}.admin-wrapper .sidebar ul a{display:block;padding:15px;color:#9baec8;text-decoration:none;transition:all 200ms linear;transition-property:color,background-color;border-radius:4px 0 0 4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.admin-wrapper .sidebar ul a i.fa{margin-right:5px}.admin-wrapper .sidebar ul a:hover{color:#fff;background-color:#0a0e13;transition:all 100ms linear;transition-property:color,background-color}.admin-wrapper .sidebar ul a.selected{background:#0f151d;border-radius:4px 0 0}.admin-wrapper .sidebar ul ul{background:#0b1016;border-radius:0 0 0 4px;margin:0}.admin-wrapper .sidebar ul ul a{border:0;padding:15px 35px}.admin-wrapper .sidebar ul .simple-navigation-active-leaf a{color:#fff;background-color:#00007f;border-bottom:0;border-radius:0}.admin-wrapper .sidebar ul .simple-navigation-active-leaf a:hover{background-color:#009}.admin-wrapper .sidebar>ul>.simple-navigation-active-leaf a{border-radius:4px 0 0 4px}.admin-wrapper .content-wrapper{box-sizing:border-box;width:100%;max-width:840px;flex:1 1 auto}@media screen and (max-width: 1080px){.admin-wrapper .sidebar-wrapper--empty{display:none}.admin-wrapper .sidebar-wrapper{width:240px;flex:0 0 auto}}@media screen and (max-width: 600px){.admin-wrapper .sidebar-wrapper{width:100%}}.admin-wrapper .content{padding:20px 15px;padding-top:60px;padding-left:25px}@media screen and (max-width: 600px){.admin-wrapper .content{max-width:none;padding:15px;padding-top:30px}}.admin-wrapper .content-heading{display:flex;padding-bottom:40px;border-bottom:1px solid #202e3f;margin:-15px -15px 40px 0;flex-wrap:wrap;align-items:center;justify-content:space-between}.admin-wrapper .content-heading>*{margin-top:15px;margin-right:15px}.admin-wrapper .content-heading-actions{display:inline-flex}.admin-wrapper .content-heading-actions>:not(:first-child){margin-left:5px}@media screen and (max-width: 600px){.admin-wrapper .content-heading{border-bottom:0;padding-bottom:0}}.admin-wrapper .content h2{color:#d9e1e8;font-size:24px;line-height:28px;font-weight:400}@media screen and (max-width: 600px){.admin-wrapper .content h2{font-weight:700}}.admin-wrapper .content h3{color:#d9e1e8;font-size:20px;line-height:28px;font-weight:400;margin-bottom:30px}.admin-wrapper .content h4{text-transform:uppercase;font-size:13px;font-weight:700;color:#9baec8;padding-bottom:8px;margin-bottom:8px;border-bottom:1px solid #202e3f}.admin-wrapper .content h6{font-size:16px;color:#d9e1e8;line-height:28px;font-weight:500}.admin-wrapper .content .fields-group h6{color:#fff;font-weight:500}.admin-wrapper .content .directory__tag>a,.admin-wrapper .content .directory__tag>div{box-shadow:none}.admin-wrapper .content .directory__tag .table-action-link .fa{color:inherit}.admin-wrapper .content .directory__tag h4{font-size:18px;font-weight:700;color:#fff;text-transform:none;padding-bottom:0;margin-bottom:0;border-bottom:0}.admin-wrapper .content>p{font-size:14px;line-height:21px;color:#d9e1e8;margin-bottom:20px}.admin-wrapper .content>p strong{color:#fff;font-weight:500}.admin-wrapper .content>p strong:lang(ja){font-weight:700}.admin-wrapper .content>p strong:lang(ko){font-weight:700}.admin-wrapper .content>p strong:lang(zh-CN){font-weight:700}.admin-wrapper .content>p strong:lang(zh-HK){font-weight:700}.admin-wrapper .content>p strong:lang(zh-TW){font-weight:700}.admin-wrapper .content hr{width:100%;height:0;border:0;border-bottom:1px solid rgba(64,64,64,.6);margin:20px 0}.admin-wrapper .content hr.spacer{height:1px;border:0}@media screen and (max-width: 600px){.admin-wrapper{display:block}.admin-wrapper .sidebar-wrapper{min-height:0}.admin-wrapper .sidebar{width:100%;padding:0;height:auto}.admin-wrapper .sidebar__toggle{display:flex}.admin-wrapper .sidebar>ul{display:none}.admin-wrapper .sidebar ul a,.admin-wrapper .sidebar ul ul a{border-radius:0;border-bottom:1px solid #192432;transition:none}.admin-wrapper .sidebar ul a:hover,.admin-wrapper .sidebar ul ul a:hover{transition:none}.admin-wrapper .sidebar ul ul{border-radius:0}.admin-wrapper .sidebar ul .simple-navigation-active-leaf a{border-bottom-color:#00007f}}hr.spacer{width:100%;border:0;margin:20px 0;height:1px}body .muted-hint,.admin-wrapper .content .muted-hint{color:#9baec8}body .muted-hint a,.admin-wrapper .content .muted-hint a{color:#00007f}body .positive-hint,.admin-wrapper .content .positive-hint{color:#79bd9a;font-weight:500}body .negative-hint,.admin-wrapper .content .negative-hint{color:#df405a;font-weight:500}body .neutral-hint,.admin-wrapper .content .neutral-hint{color:#404040;font-weight:500}body .warning-hint,.admin-wrapper .content .warning-hint{color:#ca8f04;font-weight:500}.filters{display:flex;flex-wrap:wrap}.filters .filter-subset{flex:0 0 auto;margin:0 40px 20px 0}.filters .filter-subset:last-child{margin-bottom:30px}.filters .filter-subset ul{margin-top:5px;list-style:none}.filters .filter-subset ul li{display:inline-block;margin-right:5px}.filters .filter-subset strong{font-weight:500;text-transform:uppercase;font-size:12px}.filters .filter-subset strong:lang(ja){font-weight:700}.filters .filter-subset strong:lang(ko){font-weight:700}.filters .filter-subset strong:lang(zh-CN){font-weight:700}.filters .filter-subset strong:lang(zh-HK){font-weight:700}.filters .filter-subset strong:lang(zh-TW){font-weight:700}.filters .filter-subset--with-select strong{display:block;margin-bottom:10px}.filters .filter-subset a{display:inline-block;color:#9baec8;text-decoration:none;text-transform:uppercase;font-size:12px;font-weight:500;border-bottom:2px solid #121a24}.filters .filter-subset a:hover{color:#fff;border-bottom:2px solid #1b2635}.filters .filter-subset a.selected{color:#00007f;border-bottom:2px solid #00007f}.flavour-screen{display:block;margin:10px auto;max-width:100%}.flavour-description{display:block;font-size:16px;margin:10px 0}.flavour-description>p{margin:10px 0}.flavour-screen{display:block;margin:10px auto;max-width:100%}.flavour-description{display:block;font-size:16px;margin:10px 0}.flavour-description>p{margin:10px 0}.report-accounts{display:flex;flex-wrap:wrap;margin-bottom:20px}.report-accounts__item{display:flex;flex:250px;flex-direction:column;margin:0 5px}.report-accounts__item>strong{display:block;margin:0 0 10px -5px;font-weight:500;font-size:14px;line-height:18px;color:#d9e1e8}.report-accounts__item>strong:lang(ja){font-weight:700}.report-accounts__item>strong:lang(ko){font-weight:700}.report-accounts__item>strong:lang(zh-CN){font-weight:700}.report-accounts__item>strong:lang(zh-HK){font-weight:700}.report-accounts__item>strong:lang(zh-TW){font-weight:700}.report-accounts__item .account-card{flex:1 1 auto}.report-status,.account-status{display:flex;margin-bottom:10px}.report-status .activity-stream,.account-status .activity-stream{flex:2 0 0;margin-right:20px;max-width:calc(100% - 60px)}.report-status .activity-stream .entry,.account-status .activity-stream .entry{border-radius:4px}.report-status__actions,.account-status__actions{flex:0 0 auto;display:flex;flex-direction:column}.report-status__actions .icon-button,.account-status__actions .icon-button{font-size:24px;width:24px;text-align:center;margin-bottom:10px}.simple_form.new_report_note,.simple_form.new_account_moderation_note{max-width:100%}.batch-form-box{display:flex;flex-wrap:wrap;margin-bottom:5px}.batch-form-box #form_status_batch_action{margin:0 5px 5px 0;font-size:14px}.batch-form-box input.button{margin:0 5px 5px 0}.batch-form-box .media-spoiler-toggle-buttons{margin-left:auto}.batch-form-box .media-spoiler-toggle-buttons .button{overflow:visible;margin:0 0 5px 5px;float:right}.back-link{margin-bottom:10px;font-size:14px}.back-link a{color:#00007f;text-decoration:none}.back-link a:hover{text-decoration:underline}.spacer{flex:1 1 auto}.log-entry{line-height:20px;padding:15px 0;background:#121a24;border-bottom:1px solid #192432}.log-entry:last-child{border-bottom:0}.log-entry__header{display:flex;justify-content:flex-start;align-items:center;color:#9baec8;font-size:14px;padding:0 10px}.log-entry__avatar{margin-right:10px}.log-entry__avatar .avatar{display:block;margin:0;border-radius:50%;width:40px;height:40px}.log-entry__content{max-width:calc(100% - 90px)}.log-entry__title{word-wrap:break-word}.log-entry__timestamp{color:#404040}.log-entry a,.log-entry .username,.log-entry .target{color:#d9e1e8;text-decoration:none;font-weight:500}a.name-tag,.name-tag,a.inline-name-tag,.inline-name-tag{text-decoration:none;color:#d9e1e8}a.name-tag .username,.name-tag .username,a.inline-name-tag .username,.inline-name-tag .username{font-weight:500}a.name-tag.suspended .username,.name-tag.suspended .username,a.inline-name-tag.suspended .username,.inline-name-tag.suspended .username{text-decoration:line-through;color:#e87487}a.name-tag.suspended .avatar,.name-tag.suspended .avatar,a.inline-name-tag.suspended .avatar,.inline-name-tag.suspended .avatar{filter:grayscale(100%);opacity:.8}a.name-tag,.name-tag{display:flex;align-items:center}a.name-tag .avatar,.name-tag .avatar{display:block;margin:0;margin-right:5px;border-radius:50%}a.name-tag.suspended .avatar,.name-tag.suspended .avatar{filter:grayscale(100%);opacity:.8}.speech-bubble{margin-bottom:20px;border-left:4px solid #00007f}.speech-bubble.positive{border-left-color:#79bd9a}.speech-bubble.negative{border-left-color:#e87487}.speech-bubble.warning{border-left-color:#ca8f04}.speech-bubble__bubble{padding:16px;padding-left:14px;font-size:15px;line-height:20px;border-radius:4px 4px 4px 0;position:relative;font-weight:500}.speech-bubble__bubble a{color:#9baec8}.speech-bubble__owner{padding:8px;padding-left:12px}.speech-bubble time{color:#404040}.report-card{background:#121a24;border-radius:4px;margin-bottom:20px}.report-card__profile{display:flex;justify-content:space-between;align-items:center;padding:15px}.report-card__profile .account{padding:0;border:0}.report-card__profile .account__avatar-wrapper{margin-left:0}.report-card__profile__stats{flex:0 0 auto;font-weight:500;color:#9baec8;text-transform:uppercase;text-align:right}.report-card__profile__stats a{color:inherit;text-decoration:none}.report-card__profile__stats a:focus,.report-card__profile__stats a:hover,.report-card__profile__stats a:active{color:#b5c3d6}.report-card__profile__stats .red{color:#df405a}.report-card__summary__item{display:flex;justify-content:flex-start;border-top:1px solid #0b1016}.report-card__summary__item:hover{background:#151f2b}.report-card__summary__item__reported-by,.report-card__summary__item__assigned{padding:15px;flex:0 0 auto;box-sizing:border-box;width:150px;color:#9baec8}.report-card__summary__item__reported-by,.report-card__summary__item__reported-by .username,.report-card__summary__item__assigned,.report-card__summary__item__assigned .username{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.report-card__summary__item__content{flex:1 1 auto;max-width:calc(100% - 300px)}.report-card__summary__item__content__icon{color:#404040;margin-right:4px;font-weight:500}.report-card__summary__item__content a{display:block;box-sizing:border-box;width:100%;padding:15px;text-decoration:none;color:#9baec8}.one-line{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ellipsized-ip{display:inline-block;max-width:120px;overflow:hidden;text-overflow:ellipsis;vertical-align:middle}.admin-account-bio{display:flex;flex-wrap:wrap;margin:0 -5px;margin-top:20px}.admin-account-bio>div{box-sizing:border-box;padding:0 5px;margin-bottom:10px;flex:1 0 50%}.admin-account-bio .account__header__fields,.admin-account-bio .account__header__content{background:#202e3f;border-radius:4px;height:100%}.admin-account-bio .account__header__fields{margin:0;border:0}.admin-account-bio .account__header__fields a{color:#0000a8}.admin-account-bio .account__header__fields dl:first-child .verified{border-radius:0 4px 0 0}.admin-account-bio .account__header__fields .verified a{color:#79bd9a}.admin-account-bio .account__header__content{box-sizing:border-box;padding:20px;color:#fff}.center-text{text-align:center}.announcements-list{border:1px solid #192432;border-radius:4px}.announcements-list__item{padding:15px 0;background:#121a24;border-bottom:1px solid #192432}.announcements-list__item__title{padding:0 15px;display:block;font-weight:500;font-size:18px;line-height:1.5;color:#d9e1e8;text-decoration:none;margin-bottom:10px}.announcements-list__item__title:hover,.announcements-list__item__title:focus,.announcements-list__item__title:active{color:#fff}.announcements-list__item__meta{padding:0 15px;color:#404040}.announcements-list__item__action-bar{display:flex;justify-content:space-between;align-items:center}.announcements-list__item:last-child{border-bottom:0}.dashboard__counters{display:flex;flex-wrap:wrap;margin:0 -5px;margin-bottom:20px}.dashboard__counters>div{box-sizing:border-box;flex:0 0 33.333%;padding:0 5px;margin-bottom:10px}.dashboard__counters>div>div,.dashboard__counters>div>a{padding:20px;background:#192432;border-radius:4px;box-sizing:border-box;height:100%}.dashboard__counters>div>a{text-decoration:none;color:inherit;display:block}.dashboard__counters>div>a:hover,.dashboard__counters>div>a:focus,.dashboard__counters>div>a:active{background:#202e3f}.dashboard__counters__num,.dashboard__counters__text{text-align:center;font-weight:500;font-size:24px;line-height:21px;color:#fff;font-family:\"mastodon-font-display\",sans-serif;margin-bottom:20px;line-height:30px}.dashboard__counters__text{font-size:18px}.dashboard__counters__label{font-size:14px;color:#9baec8;text-align:center;font-weight:500}.dashboard__widgets{display:flex;flex-wrap:wrap;margin:0 -5px}.dashboard__widgets>div{flex:0 0 33.333%;margin-bottom:20px}.dashboard__widgets>div>div{padding:0 5px}.dashboard__widgets a:not(.name-tag){color:#d9e1e8;font-weight:500;text-decoration:none}body.rtl{direction:rtl}body.rtl .column-header>button{text-align:right;padding-left:0;padding-right:15px}body.rtl .radio-button__input{margin-right:0;margin-left:10px}body.rtl .directory__card__bar .display-name{margin-left:0;margin-right:15px}body.rtl .display-name{text-align:right}body.rtl .notification__message{margin-left:0;margin-right:68px}body.rtl .drawer__inner__mastodon>img{transform:scaleX(-1)}body.rtl .notification__favourite-icon-wrapper{left:auto;right:-26px}body.rtl .landing-page__logo{margin-right:0;margin-left:20px}body.rtl .landing-page .features-list .features-list__row .visual{margin-left:0;margin-right:15px}body.rtl .column-link__icon,body.rtl .column-header__icon{margin-right:0;margin-left:5px}body.rtl .compose-form .compose-form__buttons-wrapper .character-counter__wrapper{margin-right:0;margin-left:4px}body.rtl .navigation-bar__profile{margin-left:0;margin-right:8px}body.rtl .search__input{padding-right:10px;padding-left:30px}body.rtl .search__icon .fa{right:auto;left:10px}body.rtl .columns-area{direction:rtl}body.rtl .column-header__buttons{left:0;right:auto;margin-left:0;margin-right:-15px}body.rtl .column-inline-form .icon-button{margin-left:0;margin-right:5px}body.rtl .column-header__links .text-btn{margin-left:10px;margin-right:0}body.rtl .account__avatar-wrapper{float:right}body.rtl .column-header__back-button{padding-left:5px;padding-right:0}body.rtl .column-header__setting-arrows{float:left}body.rtl .setting-toggle__label{margin-left:0;margin-right:8px}body.rtl .status__avatar{left:auto;right:10px}body.rtl .status,body.rtl .activity-stream .status.light{padding-left:10px;padding-right:68px}body.rtl .status__info .status__display-name,body.rtl .activity-stream .status.light .status__display-name{padding-left:25px;padding-right:0}body.rtl .activity-stream .pre-header{padding-right:68px;padding-left:0}body.rtl .status__prepend{margin-left:0;margin-right:68px}body.rtl .status__prepend-icon-wrapper{left:auto;right:-26px}body.rtl .activity-stream .pre-header .pre-header__icon{left:auto;right:42px}body.rtl .account__avatar-overlay-overlay{right:auto;left:0}body.rtl .column-back-button--slim-button{right:auto;left:0}body.rtl .status__relative-time,body.rtl .activity-stream .status.light .status__header .status__meta{float:left}body.rtl .status__action-bar__counter{margin-right:0;margin-left:11px}body.rtl .status__action-bar__counter .status__action-bar-button{margin-right:0;margin-left:4px}body.rtl .status__action-bar-button{float:right;margin-right:0;margin-left:18px}body.rtl .status__action-bar-dropdown{float:right}body.rtl .privacy-dropdown__dropdown{margin-left:0;margin-right:40px}body.rtl .privacy-dropdown__option__icon{margin-left:10px;margin-right:0}body.rtl .detailed-status__display-name .display-name{text-align:right}body.rtl .detailed-status__display-avatar{margin-right:0;margin-left:10px;float:right}body.rtl .detailed-status__favorites,body.rtl .detailed-status__reblogs{margin-left:0;margin-right:6px}body.rtl .fa-ul{margin-left:2.14285714em}body.rtl .fa-li{left:auto;right:-2.14285714em}body.rtl .admin-wrapper{direction:rtl}body.rtl .admin-wrapper .sidebar ul a i.fa,body.rtl a.table-action-link i.fa{margin-right:0;margin-left:5px}body.rtl .simple_form .check_boxes .checkbox label{padding-left:0;padding-right:25px}body.rtl .simple_form .input.with_label.boolean label.checkbox{padding-left:25px;padding-right:0}body.rtl .simple_form .check_boxes .checkbox input[type=checkbox],body.rtl .simple_form .input.boolean input[type=checkbox]{left:auto;right:0}body.rtl .simple_form .input.radio_buttons .radio{left:auto;right:0}body.rtl .simple_form .input.radio_buttons .radio>label{padding-right:28px;padding-left:0}body.rtl .simple_form .input-with-append .input input{padding-left:142px;padding-right:0}body.rtl .simple_form .input.boolean label.checkbox{left:auto;right:0}body.rtl .simple_form .input.boolean .label_input,body.rtl .simple_form .input.boolean .hint{padding-left:0;padding-right:28px}body.rtl .simple_form .label_input__append{right:auto;left:3px}body.rtl .simple_form .label_input__append::after{right:auto;left:0;background-image:linear-gradient(to left, rgba(1, 1, 2, 0), #010102)}body.rtl .simple_form select{background:#010102 url(\"data:image/svg+xml;utf8,\") no-repeat left 8px center/auto 16px}body.rtl .table th,body.rtl .table td{text-align:right}body.rtl .filters .filter-subset{margin-right:0;margin-left:45px}body.rtl .landing-page .header-wrapper .mascot{right:60px;left:auto}body.rtl .landing-page__call-to-action .row__information-board{direction:rtl}body.rtl .landing-page .header .hero .floats .float-1{left:-120px;right:auto}body.rtl .landing-page .header .hero .floats .float-2{left:210px;right:auto}body.rtl .landing-page .header .hero .floats .float-3{left:110px;right:auto}body.rtl .landing-page .header .links .brand img{left:0}body.rtl .landing-page .fa-external-link{padding-right:5px;padding-left:0 !important}body.rtl .landing-page .features #mastodon-timeline{margin-right:0;margin-left:30px}@media screen and (min-width: 631px){body.rtl .column,body.rtl .drawer{padding-left:5px;padding-right:5px}body.rtl .column:first-child,body.rtl .drawer:first-child{padding-left:5px;padding-right:10px}body.rtl .columns-area>div .column,body.rtl .columns-area>div .drawer{padding-left:5px;padding-right:5px}}body.rtl .columns-area--mobile .column,body.rtl .columns-area--mobile .drawer{padding-left:0;padding-right:0}body.rtl .public-layout .header .nav-button{margin-left:8px;margin-right:0}body.rtl .public-layout .public-account-header__tabs{margin-left:0;margin-right:20px}body.rtl .landing-page__information .account__display-name{margin-right:0;margin-left:5px}body.rtl .landing-page__information .account__avatar-wrapper{margin-left:12px;margin-right:0}body.rtl .card__bar .display-name{margin-left:0;margin-right:15px;text-align:right}body.rtl .fa-chevron-left::before{content:\"\"}body.rtl .fa-chevron-right::before{content:\"\"}body.rtl .column-back-button__icon{margin-right:0;margin-left:5px}body.rtl .column-header__setting-arrows .column-header__setting-btn:last-child{padding-left:0;padding-right:10px}body.rtl .simple_form .input.radio_buttons .radio>label input{left:auto;right:0}.emojione[title=\":wavy_dash:\"],.emojione[title=\":waving_black_flag:\"],.emojione[title=\":water_buffalo:\"],.emojione[title=\":video_game:\"],.emojione[title=\":video_camera:\"],.emojione[title=\":vhs:\"],.emojione[title=\":turkey:\"],.emojione[title=\":tophat:\"],.emojione[title=\":top:\"],.emojione[title=\":tm:\"],.emojione[title=\":telephone_receiver:\"],.emojione[title=\":spider:\"],.emojione[title=\":speaking_head_in_silhouette:\"],.emojione[title=\":spades:\"],.emojione[title=\":soon:\"],.emojione[title=\":registered:\"],.emojione[title=\":on:\"],.emojione[title=\":musical_score:\"],.emojione[title=\":movie_camera:\"],.emojione[title=\":mortar_board:\"],.emojione[title=\":microphone:\"],.emojione[title=\":male-guard:\"],.emojione[title=\":lower_left_fountain_pen:\"],.emojione[title=\":lower_left_ballpoint_pen:\"],.emojione[title=\":kaaba:\"],.emojione[title=\":joystick:\"],.emojione[title=\":hole:\"],.emojione[title=\":hocho:\"],.emojione[title=\":heavy_plus_sign:\"],.emojione[title=\":heavy_multiplication_x:\"],.emojione[title=\":heavy_minus_sign:\"],.emojione[title=\":heavy_dollar_sign:\"],.emojione[title=\":heavy_division_sign:\"],.emojione[title=\":heavy_check_mark:\"],.emojione[title=\":guardsman:\"],.emojione[title=\":gorilla:\"],.emojione[title=\":fried_egg:\"],.emojione[title=\":film_projector:\"],.emojione[title=\":female-guard:\"],.emojione[title=\":end:\"],.emojione[title=\":electric_plug:\"],.emojione[title=\":eight_pointed_black_star:\"],.emojione[title=\":dark_sunglasses:\"],.emojione[title=\":currency_exchange:\"],.emojione[title=\":curly_loop:\"],.emojione[title=\":copyright:\"],.emojione[title=\":clubs:\"],.emojione[title=\":camera_with_flash:\"],.emojione[title=\":camera:\"],.emojione[title=\":busts_in_silhouette:\"],.emojione[title=\":bust_in_silhouette:\"],.emojione[title=\":bowling:\"],.emojione[title=\":bomb:\"],.emojione[title=\":black_small_square:\"],.emojione[title=\":black_nib:\"],.emojione[title=\":black_medium_square:\"],.emojione[title=\":black_medium_small_square:\"],.emojione[title=\":black_large_square:\"],.emojione[title=\":black_heart:\"],.emojione[title=\":black_circle:\"],.emojione[title=\":back:\"],.emojione[title=\":ant:\"],.emojione[title=\":8ball:\"]{filter:drop-shadow(1px 1px 0 #ffffff) drop-shadow(-1px 1px 0 #ffffff) drop-shadow(1px -1px 0 #ffffff) drop-shadow(-1px -1px 0 #ffffff);transform:scale(0.71)}@media screen and (min-width: 1300px){.column{flex-grow:1 !important;max-width:400px}.drawer{width:17%;max-width:400px;min-width:330px}}.media-gallery,.video-player{max-height:30vh;height:30vh !important;position:relative;margin-top:20px;margin-left:-68px;width:calc(100% + 80px) !important;max-width:calc(100% + 80px)}.detailed-status .media-gallery,.detailed-status .video-player{margin-left:-5px;width:calc(100% + 9px);max-width:calc(100% + 9px)}.video-player video{transform:unset;top:unset}.detailed-status .media-spoiler,.status .media-spoiler{height:100% !important;vertical-align:middle}body{font-size:13px;font-family:\"MS Sans Serif\",\"premillenium\",sans-serif;color:#000}.ui,.ui .columns-area,body.admin{background:teal}.loading-bar{height:5px;background-color:navy}.tabs-bar{background:#bfbfbf;box-shadow:inset -1px -1px 0px #000,inset 1px 1px 0px #fff,inset -2px -2px 0px gray,inset 2px 2px 0px #dfdfdf;border-radius:0px;height:30px}.tabs-bar__link{color:#000;border:2px outset #bfbfbf;border-top-width:1px;border-left-width:1px;margin:2px;padding:3px}.tabs-bar__link.active{box-shadow:inset 1px 1px 0px #000,inset -1px -1px 0px #fff,inset 2px 2px 0px gray,inset -2px -2px 0px #dfdfdf;border-width:0px;border-radius:0px;color:#000}.tabs-bar__link:last-child::before{content:\"Start\";color:#000;font-weight:bold;font-size:15px;width:80%;display:block;position:absolute;right:0px}.tabs-bar__link:last-child{position:relative;flex-basis:60px !important;font-size:0px;color:#bfbfbf;background-image:url(\"~images/start.png\");background-repeat:no-repeat;background-position:8%;background-clip:padding-box;background-size:auto 50%}.drawer .drawer__inner{overflow:visible;height:inherit;background:#bfbfbf}.drawer:after{display:block;content:\" \";position:absolute;bottom:15px;left:15px;width:132px;height:117px;background-image:url(\"~images/clippy_wave.gif\"),url(\"~images/clippy_frame.png\");background-repeat:no-repeat;background-position:4px 20px,0px 0px;z-index:0}.drawer__pager{overflow-y:auto;z-index:1}.privacy-dropdown__dropdown{z-index:2}.column{max-height:100vh}.column>.scrollable{background:#bfbfbf;border-left:2px solid #efefef;border-top:2px solid #efefef;border-right:2px solid #404040;border-bottom:2px solid #404040;border-radius:0px;border-top-width:0px}.column-header__wrapper{color:#fff;font-weight:bold;background:#7f7f7f}.column-header{padding:2px;font-size:13px;background:#7f7f7f;border-left:2px solid #efefef;border-top:2px solid #efefef;border-right:2px solid #404040;border-bottom:2px solid #404040;border-radius:0px;border-bottom-width:0px;color:#fff;font-weight:bold;align-items:baseline}.column-header__wrapper.active{background:#00007f}.column-header__wrapper.active::before{display:none}.column-header.active{box-shadow:unset;background:#00007f}.column-header.active .column-header__icon{color:#fff}.column-header__buttons{max-height:20px;margin-right:0px}.column-header__button{background:#bfbfbf;color:#000;line-height:0px;font-size:14px;max-height:20px;padding:0px 2px;margin-top:2px;box-shadow:inset -1px -1px 0px #000,inset 1px 1px 0px #fff,inset -2px -2px 0px gray,inset 2px 2px 0px #dfdfdf;border-radius:0px}.column-header__button:hover{color:#000}.column-header__button.active,.column-header__button.active:hover{box-shadow:inset 1px 1px 0px #000,inset -1px -1px 0px #fff,inset 2px 2px 0px gray,inset -2px -2px 0px #dfdfdf;border-width:0px;border-radius:0px;background-color:#7f7f7f}.column-header__back-button{background:#bfbfbf;color:#000;padding:2px;max-height:20px;margin-top:2px;box-shadow:inset -1px -1px 0px #000,inset 1px 1px 0px #fff,inset -2px -2px 0px gray,inset 2px 2px 0px #dfdfdf;border-radius:0px;font-size:13px;font-weight:bold}.column-back-button{background:#bfbfbf;color:#000;box-shadow:inset -1px -1px 0px #000,inset 1px 1px 0px #fff,inset -2px -2px 0px gray,inset 2px 2px 0px #dfdfdf;border-radius:0px;padding:2px;font-size:13px;font-weight:bold}.column-back-button--slim-button{position:absolute;top:-22px;right:4px;max-height:20px;max-width:60px;padding:0px 2px}.column-back-button__icon{font-size:11px;margin-top:-3px}.column-header__collapsible{border-left:2px outset #bfbfbf;border-right:2px outset #bfbfbf}.column-header__collapsible-inner{background:#bfbfbf;color:#000}.column-header__collapsible__extra{color:#000}.column-header__collapsible__extra div[role=group]{border:2px groove #bfbfbf;border-radius:4px;margin-bottom:8px;padding:4px}.column-inline-form{background-color:#bfbfbf;border-left:2px solid #efefef;border-top:2px solid #efefef;border-right:2px solid #404040;border-bottom:2px solid #404040;border-radius:0px;border-bottom-width:0px;border-top-width:0px}.column-settings__section{color:#000;font-weight:bold;font-size:11px;position:relative;top:-12px;left:4px;background-color:#bfbfbf;display:inline-block;padding:0px 4px;margin-bottom:0px}.setting-meta__label,.setting-toggle__label{color:#000;font-weight:normal}.setting-meta__label span:before{content:\"(\"}.setting-meta__label span:after{content:\")\"}.setting-toggle{line-height:13px}.react-toggle .react-toggle-track{border-radius:0px;background-color:#fff;border-left:2px solid #404040;border-top:2px solid #404040;border-right:2px solid #efefef;border-bottom:2px solid #efefef;border-radius:0px;width:12px;height:12px}.react-toggle:hover:not(.react-toggle--disabled) .react-toggle-track{background-color:#fff}.react-toggle .react-toggle-track-check{left:2px;transition:unset}.react-toggle .react-toggle-track-check svg path{fill:#000}.react-toggle .react-toggle-track-x{display:none}.react-toggle .react-toggle-thumb{border-radius:0px;display:none}.text-btn{background-color:#bfbfbf;box-shadow:inset -1px -1px 0px #000,inset 1px 1px 0px #fff,inset -2px -2px 0px gray,inset 2px 2px 0px #dfdfdf;border-radius:0px;padding:4px}.text-btn:hover{text-decoration:none;color:#000}.text-btn:active{box-shadow:inset 1px 1px 0px #000,inset -1px -1px 0px #fff,inset 2px 2px 0px gray,inset -2px -2px 0px #dfdfdf;border-width:0px;border-radius:0px}.setting-text{color:#000;background-color:#fff;box-shadow:inset 1px 1px 0px #000,inset -1px -1px 0px #fff,inset 2px 2px 0px gray,inset -2px -2px 0px #dfdfdf;border-width:0px;border-radius:0px;font-size:13px;padding:2px}.setting-text:active,.setting-text:focus,.setting-text.light:active,.setting-text.light:focus{color:#000;border-bottom:2px inset #bfbfbf}.column-header__setting-arrows .column-header__setting-btn{padding:3px 10px}.column-header__setting-arrows .column-header__setting-btn:last-child{padding:3px 10px}.missing-indicator{background-color:#bfbfbf;color:#000;box-shadow:inset -1px -1px 0px #000,inset 1px 1px 0px #fff,inset -2px -2px 0px gray,inset 2px 2px 0px #dfdfdf;border-radius:0px}.missing-indicator>div{background:url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAARCAYAAAA7bUf6AAAACXBIWXMAAC4jAAAuIwF4pT92AAAAF3pUWHRUaXRsZQAACJnLyy9Jyy/NSwEAD5IDblIFOhoAAAAXelRYdEF1dGhvcgAACJlLzijKz0vMAQALmgLoDsFj8gAAAQpJREFUOMuVlD0OwjAMhd2oQl04Axfo0IGBgYELcAY6cqQuSO0ZOEAZGBg6VKg74gwsEaoESRVHjusI8aQqzY8/PbtOEz1qkFSn2YevlaNOpLMJh2DwvixhuXtOa6/LCh51DUMEFkAsgAZD207Doin8mQ562JpRE5CHBAAhmIqD1L8AqzUUUJkxc6kr3AgAJ+NuvIWRdk7WcrKl0AUqcIBBHOiEbpS4m27mIL5Onfg3k0rgggeQuS2sDOGSahKR+glgqaGLgUJs951NN1q9D72cQqQWR9cr3sm9YcEssEuz6eEuZh2bu0aSOhQ1MBezu2O/+TVSvEFII3qLsZWrSA2AAUQIh1HpyP/kC++zjVSMj6ntAAAAAElFTkSuQmCC\") no-repeat;background-position:center center}.empty-column-indicator,.error-column{background:#bfbfbf;color:#000}.status__wrapper{border:2px groove #bfbfbf;margin:4px}.status{border-left:1px solid #404040;border-top:1px solid #404040;border-right:1px solid #efefef;border-bottom:1px solid #efefef;border-radius:0px;background-color:#fff;margin:4px;padding-bottom:40px;margin-bottom:8px}.status.status-direct{background-color:#bfbfbf}.status__content{font-size:13px}.status.light .status__relative-time,.status.light .display-name span{color:#7f7f7f}.status__action-bar{box-sizing:border-box;position:absolute;bottom:-1px;left:-1px;background:#bfbfbf;width:calc(100% + 2px);padding-left:10px;padding:4px 2px;padding-bottom:4px;border-bottom:2px groove #bfbfbf;border-top:1px outset #bfbfbf;text-align:right}.status__wrapper .status__action-bar{border-bottom-width:0px}.status__action-bar-button{float:right}.status__action-bar-dropdown{margin-left:auto;margin-right:10px}.status__action-bar-dropdown .icon-button{min-width:28px}.status.light .status__content a{color:blue}.focusable:focus{background:#bfbfbf}.focusable:focus .detailed-status__action-bar{background:#bfbfbf}.focusable:focus .status,.focusable:focus .detailed-status{background:#fff;outline:2px dotted gray}.dropdown__trigger.icon-button{padding-right:6px}.detailed-status__action-bar-dropdown .icon-button{min-width:28px}.detailed-status{background:#fff;background-clip:padding-box;margin:4px;border:2px groove #bfbfbf;padding:4px}.detailed-status__display-name{color:#7f7f7f}.detailed-status__display-name strong{color:#000;font-weight:bold}.account__avatar,.account__avatar-overlay-base,.account__header__avatar,.account__avatar-overlay-overlay{border-left:1px solid #404040;border-top:1px solid #404040;border-right:1px solid #efefef;border-bottom:1px solid #efefef;border-radius:0px;clip-path:none;filter:saturate(1.8) brightness(1.1)}.detailed-status__action-bar{background-color:#bfbfbf;border:0px;border-bottom:2px groove #bfbfbf;margin-bottom:8px;justify-items:left;padding-left:4px}.icon-button{background:#bfbfbf;border-left:2px solid #efefef;border-top:2px solid #efefef;border-right:2px solid #404040;border-bottom:2px solid #404040;border-radius:0px;padding:0px 0px 0px 0px;margin-right:4px;color:#3f3f3f}.icon-button.inverted,.icon-button:hover,.icon-button.inverted:hover,.icon-button:active,.icon-button:focus{color:#3f3f3f}.icon-button:active{border-left:2px solid #404040;border-top:2px solid #404040;border-right:2px solid #efefef;border-bottom:2px solid #efefef;border-radius:0px}.status__action-bar>.icon-button{padding:0px 15px 0px 0px;min-width:25px}.icon-button.star-icon,.icon-button.star-icon:active{background:transparent;border:none}.icon-button.star-icon.active{color:#ca8f04}.icon-button.star-icon.active:active,.icon-button.star-icon.active:hover,.icon-button.star-icon.active:focus{color:#ca8f04}.icon-button.star-icon>i{background:#bfbfbf;border-left:2px solid #efefef;border-top:2px solid #efefef;border-right:2px solid #404040;border-bottom:2px solid #404040;border-radius:0px;padding-bottom:3px}.icon-button.star-icon:active>i{border-left:2px solid #404040;border-top:2px solid #404040;border-right:2px solid #efefef;border-bottom:2px solid #efefef;border-radius:0px}.text-icon-button{color:#404040}.detailed-status__action-bar-dropdown{margin-left:auto;justify-content:right;padding-right:16px}.detailed-status__button{flex:0 0 auto}.detailed-status__button .icon-button{padding-left:2px;padding-right:25px}.status-card{border-radius:0px;background:#fff;border:1px solid #000;color:#000}.status-card:hover{background-color:#fff}.status-card__title{color:blue;text-decoration:underline;font-weight:bold}.load-more{width:auto;margin:5px auto;background:#bfbfbf;box-shadow:inset -1px -1px 0px #000,inset 1px 1px 0px #fff,inset -2px -2px 0px gray,inset 2px 2px 0px #dfdfdf;border-radius:0px;color:#000;padding:2px 5px}.load-more:hover{background:#bfbfbf;color:#000}.status-card__description{color:#000}.account__display-name strong,.status__display-name strong{color:#000;font-weight:bold}.account .account__display-name{color:#000}.account{border-bottom:2px groove #bfbfbf}.reply-indicator__content .status__content__spoiler-link,.status__content .status__content__spoiler-link{background:#bfbfbf;box-shadow:inset -1px -1px 0px #000,inset 1px 1px 0px #fff,inset -2px -2px 0px gray,inset 2px 2px 0px #dfdfdf;border-radius:0px}.reply-indicator__content .status__content__spoiler-link:hover,.status__content .status__content__spoiler-link:hover{background:#bfbfbf}.reply-indicator__content .status__content__spoiler-link:active,.status__content .status__content__spoiler-link:active{box-shadow:inset 1px 1px 0px #000,inset -1px -1px 0px #fff,inset 2px 2px 0px gray,inset -2px -2px 0px #dfdfdf;border-width:0px;border-radius:0px}.reply-indicator__content a,.status__content a{color:blue}.notification{border:2px groove #bfbfbf;margin:4px}.notification__message{color:#000;font-size:13px}.notification__display-name{font-weight:bold}.drawer__header{background:#bfbfbf;border-left:2px solid #efefef;border-top:2px solid #efefef;border-right:2px solid #404040;border-bottom:2px solid #404040;border-radius:0px;justify-content:left;margin-bottom:0px;padding-bottom:2px;border-bottom:2px groove #bfbfbf}.drawer__tab{color:#000;box-shadow:inset -1px -1px 0px #000,inset 1px 1px 0px #fff,inset -2px -2px 0px gray,inset 2px 2px 0px #dfdfdf;border-radius:0px;padding:5px;margin:2px;flex:0 0 auto}.drawer__tab:first-child::before{content:\"Start\";color:#000;font-weight:bold;font-size:15px;width:80%;display:block;position:absolute;right:0px}.drawer__tab:first-child{position:relative;padding:5px 15px;width:40px;font-size:0px;color:#bfbfbf;background-image:url(\"~images/start.png\");background-repeat:no-repeat;background-position:8%;background-clip:padding-box;background-size:auto 50%}.drawer__header a:hover{background-color:transparent}.drawer__header a:first-child:hover{background-image:url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAOCAIAAACpTQvdAAAACXBIWXMAAC4jAAAuIwF4pT92AAAAF3pUWHRBdXRob3IAAAiZS84oys9LzAEAC5oC6A7BY/IAAACWSURBVCiRhVJJDsQgDEuqOfRZ7a1P5gbP4uaJaEjTADMWQhHYjlk4p0wLnNdptdF4KvBUDyGzVwc2xO+uKtH+1o0ytEEmqFpuxlvFCGCxKbNIT56QCi2MzaA/2Mz+mERSOeqzJG2RUxkjdTabgPtFoZ1bZxcKvgPcLZVufAyR9Ni8v5dWDzfFx0giC1RvZFv6l35QQ/Mvv39XXgGzQpoAAAAASUVORK5CYII=\");background-repeat:no-repeat;background-position:8%;background-clip:padding-box;background-size:auto 50%;transition:unset}.search{background:#bfbfbf;padding-top:2px;padding:2px;border:2px outset #bfbfbf;border-top-width:0px;border-bottom:2px groove #bfbfbf;margin-bottom:0px}.search input{background-color:#fff;color:#000;border-left:1px solid #404040;border-top:1px solid #404040;border-right:1px solid #efefef;border-bottom:1px solid #efefef;border-radius:0px}.search__input:focus{background-color:#fff}.search-popout{box-shadow:unset;color:#000;border-radius:0px;background-color:#ffc;border:1px solid #000}.search-popout h4{color:#000;text-transform:none;font-weight:bold}.search-results__header{background-color:#bfbfbf;color:#000;border-bottom:2px groove #bfbfbf}.search-results__hashtag{color:blue}.search-results__section .account:hover,.search-results__section .account:hover .account__display-name,.search-results__section .account:hover .account__display-name strong,.search-results__section .search-results__hashtag:hover{background-color:#00007f;color:#fff}.search__icon .fa{color:gray}.search__icon .fa.active{opacity:1}.search__icon .fa:hover{color:gray}.drawer__inner,.drawer__inner.darker{background-color:#bfbfbf;border:2px outset #bfbfbf;border-top-width:0px}.navigation-bar{color:#000}.navigation-bar strong{color:#000;font-weight:bold}.compose-form .autosuggest-textarea__textarea,.compose-form .spoiler-input__input{border-radius:0px;border-left:1px solid #404040;border-top:1px solid #404040;border-right:1px solid #efefef;border-bottom:1px solid #efefef;border-radius:0px}.compose-form .autosuggest-textarea__textarea{border-bottom:0px}.compose-form__uploads-wrapper{border-radius:0px;border-bottom:1px inset #bfbfbf;border-top-width:0px}.compose-form__upload-wrapper{border-left:1px inset #bfbfbf;border-right:1px inset #bfbfbf}.compose-form .compose-form__buttons-wrapper{background-color:#bfbfbf;border:2px groove #bfbfbf;margin-top:4px;padding:4px 8px}.compose-form__buttons{background-color:#bfbfbf;border-radius:0px;box-shadow:unset}.compose-form__buttons-separator{border-left:2px groove #bfbfbf}.privacy-dropdown.active .privacy-dropdown__value.active,.advanced-options-dropdown.open .advanced-options-dropdown__value{background:#bfbfbf}.privacy-dropdown.active .privacy-dropdown__value.active .icon-button{color:#404040}.privacy-dropdown.active .privacy-dropdown__value{background:#bfbfbf;box-shadow:unset}.privacy-dropdown__option.active,.privacy-dropdown__option:hover,.privacy-dropdown__option.active:hover{background:#00007f}.privacy-dropdown__dropdown,.privacy-dropdown.active .privacy-dropdown__dropdown,.advanced-options-dropdown__dropdown,.advanced-options-dropdown.open .advanced-options-dropdown__dropdown{box-shadow:unset;color:#000;box-shadow:inset -1px -1px 0px #000,inset 1px 1px 0px #fff,inset -2px -2px 0px gray,inset 2px 2px 0px #dfdfdf;border-radius:0px;background:#bfbfbf}.privacy-dropdown__option__content{color:#000}.privacy-dropdown__option__content strong{font-weight:bold}.compose-form__warning::before{content:\"Tip:\";font-weight:bold;display:block;position:absolute;top:-10px;background-color:#bfbfbf;font-size:11px;padding:0px 5px}.compose-form__warning{position:relative;box-shadow:unset;border:2px groove #bfbfbf;background-color:#bfbfbf;color:#000}.compose-form__warning a{color:blue}.compose-form__warning strong{color:#000;text-decoration:underline}.compose-form__buttons button.active:last-child{border-left:2px solid #404040;border-top:2px solid #404040;border-right:2px solid #efefef;border-bottom:2px solid #efefef;border-radius:0px;background:#dfdfdf;color:#7f7f7f}.compose-form__upload-thumbnail{border-radius:0px;border:2px groove #bfbfbf;background-color:#bfbfbf;padding:2px;box-sizing:border-box}.compose-form__upload-thumbnail .icon-button{max-width:20px;max-height:20px;line-height:10px !important}.compose-form__upload-thumbnail .icon-button::before{content:\"X\";font-size:13px;font-weight:bold;color:#000}.compose-form__upload-thumbnail .icon-button i{display:none}.emoji-picker-dropdown__menu{z-index:2}.emoji-dialog.with-search{box-shadow:unset;border-radius:0px;background-color:#bfbfbf;border:1px solid #000;box-sizing:content-box}.emoji-dialog .emoji-search{color:#000;background-color:#fff;border-radius:0px;box-shadow:inset 1px 1px 0px #000,inset -1px -1px 0px #fff,inset 2px 2px 0px gray,inset -2px -2px 0px #dfdfdf;border-width:0px;border-radius:0px}.emoji-dialog .emoji-search-wrapper{border-bottom:2px groove #bfbfbf}.emoji-dialog .emoji-category-title{color:#000;font-weight:bold}.reply-indicator{background-color:#bfbfbf;border-radius:3px;border:2px groove #bfbfbf}.button{background-color:#bfbfbf;box-shadow:inset -1px -1px 0px #000,inset 1px 1px 0px #fff,inset -2px -2px 0px gray,inset 2px 2px 0px #dfdfdf;border-radius:0px;border-radius:0px;color:#000;font-weight:bold}.button:hover,.button:focus,.button:disabled{background-color:#bfbfbf}.button:active{box-shadow:inset 1px 1px 0px #000,inset -1px -1px 0px #fff,inset 2px 2px 0px gray,inset -2px -2px 0px #dfdfdf;border-width:0px;border-radius:0px}.button:disabled{color:gray;text-shadow:1px 1px 0px #efefef}.button:disabled:active{box-shadow:inset -1px -1px 0px #000,inset 1px 1px 0px #fff,inset -2px -2px 0px gray,inset 2px 2px 0px #dfdfdf;border-radius:0px}#Getting-started{background-color:#bfbfbf;box-shadow:inset 1px 1px 0px #000,inset -1px -1px 0px #fff,inset 2px 2px 0px gray,inset -2px -2px 0px #dfdfdf;border-width:0px;border-radius:0px;border-bottom-width:0px}#Getting-started::before{content:\"Start\";color:#000;font-weight:bold;font-size:15px;width:80%;text-align:center;display:block;position:absolute;right:2px}#Getting-started{position:relative;padding:5px 15px;width:60px;font-size:0px;color:#bfbfbf;background-image:url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAOCAIAAACpTQvdAAAACXBIWXMAAC4jAAAuIwF4pT92AAAAF3pUWHRBdXRob3IAAAiZS84oys9LzAEAC5oC6A7BY/IAAACWSURBVCiRhVJJDsQgDEuqOfRZ7a1P5gbP4uaJaEjTADMWQhHYjlk4p0wLnNdptdF4KvBUDyGzVwc2xO+uKtH+1o0ytEEmqFpuxlvFCGCxKbNIT56QCi2MzaA/2Mz+mERSOeqzJG2RUxkjdTabgPtFoZ1bZxcKvgPcLZVufAyR9Ni8v5dWDzfFx0giC1RvZFv6l35QQ/Mvv39XXgGzQpoAAAAASUVORK5CYII=\");background-repeat:no-repeat;background-position:8%;background-clip:padding-box;background-size:auto 50%}.column-subheading{background-color:#bfbfbf;color:#000;border-bottom:2px groove #bfbfbf;text-transform:none;font-size:16px}.column-link{background-color:transparent;color:#000}.column-link:hover{background-color:#00007f;color:#fff}.getting-started__wrapper .column-subheading{font-size:0px;margin:0px;padding:0px}.getting-started__wrapper .column-link{background-size:32px 32px;background-repeat:no-repeat;background-position:36px 50%;padding-left:40px}.getting-started__wrapper .column-link:hover{background-size:32px 32px;background-repeat:no-repeat;background-position:36px 50%}.getting-started__wrapper .column-link i{font-size:0px;width:32px}.column-link[href=\"/web/timelines/public\"]{background-image:url(\"~images/icon_public.png\")}.column-link[href=\"/web/timelines/public\"]:hover{background-image:url(\"~images/icon_public.png\")}.column-link[href=\"/web/timelines/public/local\"]{background-image:url(\"~images/icon_local.png\")}.column-link[href=\"/web/timelines/public/local\"]:hover{background-image:url(\"~images/icon_local.png\")}.column-link[href=\"/web/pinned\"]{background-image:url(\"~images/icon_pin.png\")}.column-link[href=\"/web/pinned\"]:hover{background-image:url(\"~images/icon_pin.png\")}.column-link[href=\"/web/favourites\"]{background-image:url(\"~images/icon_likes.png\")}.column-link[href=\"/web/favourites\"]:hover{background-image:url(\"~images/icon_likes.png\")}.column-link[href=\"/web/lists\"]{background-image:url(\"~images/icon_lists.png\")}.column-link[href=\"/web/lists\"]:hover{background-image:url(\"~images/icon_lists.png\")}.column-link[href=\"/web/follow_requests\"]{background-image:url(\"~images/icon_follow_requests.png\")}.column-link[href=\"/web/follow_requests\"]:hover{background-image:url(\"~images/icon_follow_requests.png\")}.column-link[href=\"/web/keyboard-shortcuts\"]{background-image:url(\"~images/icon_keyboard_shortcuts.png\")}.column-link[href=\"/web/keyboard-shortcuts\"]:hover{background-image:url(\"~images/icon_keyboard_shortcuts.png\")}.column-link[href=\"/web/blocks\"]{background-image:url(\"~images/icon_blocks.png\")}.column-link[href=\"/web/blocks\"]:hover{background-image:url(\"~images/icon_blocks.png\")}.column-link[href=\"/web/mutes\"]{background-image:url(\"~images/icon_mutes.png\")}.column-link[href=\"/web/mutes\"]:hover{background-image:url(\"~images/icon_mutes.png\")}.column-link[href=\"/settings/preferences\"]{background-image:url(\"~images/icon_settings.png\")}.column-link[href=\"/settings/preferences\"]:hover{background-image:url(\"~images/icon_settings.png\")}.column-link[href=\"/about/more\"]{background-image:url(\"~images/icon_about.png\")}.column-link[href=\"/about/more\"]:hover{background-image:url(\"~images/icon_about.png\")}.column-link[href=\"/auth/sign_out\"]{background-image:url(\"~images/icon_logout.png\")}.column-link[href=\"/auth/sign_out\"]:hover{background-image:url(\"~images/icon_logout.png\")}.getting-started__footer{display:none}.getting-started__wrapper::before{content:\"Mastodon 95\";font-weight:bold;font-size:23px;color:#fff;line-height:30px;padding-left:20px;padding-right:40px;left:0px;bottom:-30px;display:block;position:absolute;background-color:#7f7f7f;width:200%;height:30px;-ms-transform:rotate(-90deg);-webkit-transform:rotate(-90deg);transform:rotate(-90deg);transform-origin:top left}.getting-started__wrapper{border-left:2px solid #efefef;border-top:2px solid #efefef;border-right:2px solid #404040;border-bottom:2px solid #404040;border-radius:0px;background-color:#bfbfbf}.column .static-content.getting-started{display:none}.keyboard-shortcuts kbd{background-color:#bfbfbf}.account__header{background-color:#7f7f7f}.account__header .account__header__content{color:#fff}.account-authorize__wrapper{border:2px groove #bfbfbf;margin:2px;padding:2px}.account--panel{background-color:#bfbfbf;border:0px;border-top:2px groove #bfbfbf}.account-authorize .account__header__content{color:#000;margin:10px}.account__action-bar__tab>span{color:#000;font-weight:bold}.account__action-bar__tab strong{color:#000}.account__action-bar{border:unset}.account__action-bar__tab{border:1px outset #bfbfbf}.account__action-bar__tab:active{box-shadow:inset 1px 1px 0px #000,inset -1px -1px 0px #fff,inset 2px 2px 0px gray,inset -2px -2px 0px #dfdfdf;border-width:0px;border-radius:0px}.dropdown--active .dropdown__content>ul,.dropdown-menu{background:#ffc;border-radius:0px;border:1px solid #000;box-shadow:unset}.dropdown-menu a{background-color:transparent}.dropdown--active::after{display:none}.dropdown--active .icon-button{color:#000;box-shadow:inset 1px 1px 0px #000,inset -1px -1px 0px #fff,inset 2px 2px 0px gray,inset -2px -2px 0px #dfdfdf;border-width:0px;border-radius:0px}.dropdown--active .dropdown__content>ul>li>a{background:transparent}.dropdown--active .dropdown__content>ul>li>a:hover{background:transparent;color:#000;text-decoration:underline}.dropdown__sep,.dropdown-menu__separator{border-color:#7f7f7f}.detailed-status__action-bar-dropdown .dropdown--active .dropdown__content.dropdown__left{left:unset}.dropdown>.icon-button,.detailed-status__button>.icon-button,.status__action-bar>.icon-button,.star-icon i{height:25px !important;width:28px !important;box-sizing:border-box}.status__action-bar-button .fa-floppy-o{padding-top:2px}.status__action-bar-dropdown{position:relative;top:-3px}.detailed-status__action-bar-dropdown .dropdown{position:relative;top:-4px}.notification .status__action-bar{border-bottom:none}.notification .status{margin-bottom:4px}.status__wrapper .status{margin-bottom:3px}.status__wrapper{margin-bottom:8px}.icon-button .fa-retweet{position:relative;top:-1px}.embed-modal,.error-modal,.onboarding-modal,.actions-modal,.boost-modal,.confirmation-modal,.report-modal{box-shadow:inset -1px -1px 0px #000,inset 1px 1px 0px #fff,inset -2px -2px 0px gray,inset 2px 2px 0px #dfdfdf;border-radius:0px;background:#bfbfbf}.actions-modal::before,.boost-modal::before,.confirmation-modal::before,.report-modal::before{content:\"Confirmation\";display:block;background:#00007f;color:#fff;font-weight:bold;padding-left:2px}.boost-modal::before{content:\"Boost confirmation\"}.boost-modal__action-bar>div>span:before{content:\"Tip: \";font-weight:bold}.boost-modal__action-bar,.confirmation-modal__action-bar,.report-modal__action-bar{background:#bfbfbf;margin-top:-15px}.embed-modal h4,.error-modal h4,.onboarding-modal h4{background:#00007f;color:#fff;font-weight:bold;padding:2px;font-size:13px;text-align:left}.confirmation-modal__action-bar .confirmation-modal__cancel-button{color:#000}.confirmation-modal__action-bar .confirmation-modal__cancel-button:active,.confirmation-modal__action-bar .confirmation-modal__cancel-button:focus,.confirmation-modal__action-bar .confirmation-modal__cancel-button:hover{color:#000}.confirmation-modal__action-bar .confirmation-modal__cancel-button:active{box-shadow:inset 1px 1px 0px #000,inset -1px -1px 0px #fff,inset 2px 2px 0px gray,inset -2px -2px 0px #dfdfdf;border-width:0px;border-radius:0px}.embed-modal .embed-modal__container .embed-modal__html,.embed-modal .embed-modal__container .embed-modal__html:focus{background:#fff;color:#000;box-shadow:inset 1px 1px 0px #000,inset -1px -1px 0px #fff,inset 2px 2px 0px gray,inset -2px -2px 0px #dfdfdf;border-width:0px;border-radius:0px}.modal-root__overlay,.account__header>div{background:url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAIAAAACCAYAAABytg0kAAAACXBIWXMAAC4jAAAuIwF4pT92AAAAFnpUWHRUaXRsZQAACJnLzU9JzElKBwALgwLXaCRlPwAAABd6VFh0QXV0aG9yAAAImUvOKMrPS8wBAAuaAugOwWPyAAAAEUlEQVQImWNgYGD4z4AE/gMADwMB/414xEUAAAAASUVORK5CYII=\")}.admin-wrapper::before{position:absolute;top:0px;content:\"Control Panel\";color:#fff;background-color:#00007f;font-size:13px;font-weight:bold;width:calc(100%);margin:2px;display:block;padding:2px;padding-left:22px;box-sizing:border-box}.admin-wrapper{position:relative;background:#bfbfbf;box-shadow:inset -1px -1px 0px #000,inset 1px 1px 0px #fff,inset -2px -2px 0px gray,inset 2px 2px 0px #dfdfdf;border-radius:0px;width:70vw;height:80vh;margin:10vh auto;color:#000;padding-top:24px;flex-direction:column;overflow:hidden}@media screen and (max-width: 1120px){.admin-wrapper{width:90vw;height:95vh;margin:2.5vh auto}}@media screen and (max-width: 740px){.admin-wrapper{width:100vw;height:95vh;height:calc(100vh - 24px);margin:0px 0px 0px 0px}}.admin-wrapper .sidebar-wrapper{position:static;height:auto;flex:0 0 auto;margin:2px}.admin-wrapper .content-wrapper{flex:1 1 auto;width:calc(100% - 20px);border-left:2px solid #efefef;border-top:2px solid #efefef;border-right:2px solid #404040;border-bottom:2px solid #404040;border-radius:0px;position:relative;margin-left:10px;margin-right:10px;margin-bottom:40px;box-sizing:border-box}.admin-wrapper .content{background-color:#bfbfbf;width:100%;max-width:100%;min-height:100%;box-sizing:border-box;position:relative}.admin-wrapper .sidebar{position:static;background:#bfbfbf;color:#000;width:100%;height:auto;padding-bottom:20px}.admin-wrapper .sidebar .logo{position:absolute;top:2px;left:4px;width:18px;height:18px;margin:0px}.admin-wrapper .sidebar>ul{background:#bfbfbf;margin:0px;margin-left:8px;color:#000}.admin-wrapper .sidebar>ul>li{display:inline-block}.admin-wrapper .sidebar>ul>li#settings,.admin-wrapper .sidebar>ul>li#admin{padding:2px;border:0px solid transparent}.admin-wrapper .sidebar>ul>li#logout{position:absolute;box-shadow:inset -1px -1px 0px #000,inset 1px 1px 0px #fff,inset -2px -2px 0px gray,inset 2px 2px 0px #dfdfdf;border-radius:0px;right:12px;bottom:10px}.admin-wrapper .sidebar>ul>li#web{display:inline-block;box-shadow:inset -1px -1px 0px #000,inset 1px 1px 0px #fff,inset -2px -2px 0px gray,inset 2px 2px 0px #dfdfdf;border-radius:0px;position:absolute;left:12px;bottom:10px}.admin-wrapper .sidebar>ul>li>a{display:inline-block;box-shadow:inset -1px 0px 0px #000,inset 1px 0px 0px #fff,inset 0px 1px 0px #fff,inset 0px 2px 0px #dfdfdf,inset -2px 0px 0px gray,inset 2px 0px 0px #dfdfdf;border-radius:0px;border-top-left-radius:1px;border-top-right-radius:1px;padding:2px 5px;margin:0px;color:#000;vertical-align:baseline}.admin-wrapper .sidebar>ul>li>a.selected{background:#bfbfbf;color:#000;padding-top:4px;padding-bottom:4px}.admin-wrapper .sidebar>ul>li>a:hover{background:#bfbfbf;color:#000}.admin-wrapper .sidebar>ul>li>ul{width:calc(100% - 20px);background:transparent;position:absolute;left:10px;top:54px;z-index:3}.admin-wrapper .sidebar>ul>li>ul>li{background:#bfbfbf;display:inline-block;vertical-align:baseline}.admin-wrapper .sidebar>ul>li>ul>li>a{background:#bfbfbf;box-shadow:inset -1px 0px 0px #000,inset 1px 0px 0px #fff,inset 0px 1px 0px #fff,inset 0px 2px 0px #dfdfdf,inset -2px 0px 0px gray,inset 2px 0px 0px #dfdfdf;border-radius:0px;border-top-left-radius:1px;border-top-right-radius:1px;color:#000;padding:2px 5px;position:relative;z-index:3}.admin-wrapper .sidebar>ul>li>ul>li>a.selected{background:#bfbfbf;color:#000;padding-bottom:4px;padding-top:4px;padding-right:7px;margin-left:-2px;margin-right:-2px;position:relative;z-index:4}.admin-wrapper .sidebar>ul>li>ul>li>a.selected:first-child{margin-left:0px}.admin-wrapper .sidebar>ul>li>ul>li>a.selected:hover{background:transparent;color:#000}.admin-wrapper .sidebar>ul>li>ul>li>a:hover{background:#bfbfbf;color:#000}@media screen and (max-width: 1520px){.admin-wrapper .sidebar>ul>li>ul{max-width:1000px}.admin-wrapper .sidebar{padding-bottom:45px}}@media screen and (max-width: 600px){.admin-wrapper .sidebar>ul>li>ul{max-width:500px}.admin-wrapper .sidebar{padding:0px;padding-bottom:70px;width:100%;height:auto}.admin-wrapper .content-wrapper{overflow:auto;height:80%;height:calc(100% - 150px)}}.flash-message{background-color:#ffc;color:#000;border:1px solid #000;border-radius:0px;position:absolute;top:0px;left:0px;width:100%}.admin-wrapper table{background-color:#fff;border-left:1px solid #404040;border-top:1px solid #404040;border-right:1px solid #efefef;border-bottom:1px solid #efefef;border-radius:0px}.admin-wrapper .content h2,.simple_form .input.with_label .label_input>label,.admin-wrapper .content h6,.admin-wrapper .content>p,.admin-wrapper .content .muted-hint,.simple_form span.hint,.simple_form h4,.simple_form .check_boxes .checkbox label,.simple_form .input.with_label.boolean .label_input>label,.filters .filter-subset a,.simple_form .input.radio_buttons .radio label,a.table-action-link,a.table-action-link:hover,.simple_form .input.with_block_label>label,.simple_form p.hint{color:#000}.table>tbody>tr:nth-child(2n+1)>td,.table>tbody>tr:nth-child(2n+1)>th{background-color:#fff}.simple_form input[type=text],.simple_form input[type=number],.simple_form input[type=email],.simple_form input[type=password],.simple_form textarea{color:#000;background-color:#fff;border-left:1px solid #404040;border-top:1px solid #404040;border-right:1px solid #efefef;border-bottom:1px solid #efefef;border-radius:0px}.simple_form input[type=text]:active,.simple_form input[type=text]:focus,.simple_form input[type=number]:active,.simple_form input[type=number]:focus,.simple_form input[type=email]:active,.simple_form input[type=email]:focus,.simple_form input[type=password]:active,.simple_form input[type=password]:focus,.simple_form textarea:active,.simple_form textarea:focus{background-color:#fff}.simple_form button,.simple_form .button,.simple_form .block-button{background:#bfbfbf;box-shadow:inset -1px -1px 0px #000,inset 1px 1px 0px #fff,inset -2px -2px 0px gray,inset 2px 2px 0px #dfdfdf;border-radius:0px;color:#000;font-weight:normal}.simple_form button:hover,.simple_form .button:hover,.simple_form .block-button:hover{background:#bfbfbf}.simple_form .warning,.table-form .warning{background:#ffc;color:#000;box-shadow:unset;text-shadow:unset;border:1px solid #000}.simple_form .warning a,.table-form .warning a{color:blue;text-decoration:underline}.simple_form button.negative,.simple_form .button.negative,.simple_form .block-button.negative{background:#bfbfbf}.filters .filter-subset{border:2px groove #bfbfbf;padding:2px}.filters .filter-subset a::before{content:\"\";background-color:#fff;border-radius:50%;border:2px solid #000;border-top-color:#7f7f7f;border-left-color:#7f7f7f;border-bottom-color:#f5f5f5;border-right-color:#f5f5f5;width:12px;height:12px;display:inline-block;vertical-align:middle;margin-right:2px}.filters .filter-subset a.selected::before{background-color:#000;box-shadow:inset 0 0 0 3px #fff}.filters .filter-subset a,.filters .filter-subset a:hover,.filters .filter-subset a.selected{color:#000;border-bottom:0px solid transparent}","// win95 theme from cybrespace.\n\n// Modified by kibi! to use webpack package syntax for urls (eg,\n// `url(~images/…)`) for easy importing into skins.\n\n$win95-bg: #bfbfbf;\n$win95-dark-grey: #404040;\n$win95-mid-grey: #808080;\n$win95-window-header: #00007f;\n$win95-tooltip-yellow: #ffffcc;\n$win95-blue: blue;\n\n$ui-base-lighter-color: $win95-dark-grey;\n$ui-highlight-color: $win95-window-header;\n\n@mixin win95-border-outset() {\n border-left: 2px solid #efefef;\n border-top: 2px solid #efefef;\n border-right: 2px solid #404040;\n border-bottom: 2px solid #404040;\n border-radius:0px;\n}\n\n@mixin win95-outset() {\n box-shadow: inset -1px -1px 0px #000000,\n inset 1px 1px 0px #ffffff,\n inset -2px -2px 0px #808080,\n inset 2px 2px 0px #dfdfdf;\n border-radius:0px;\n}\n\n@mixin win95-border-inset() {\n border-left: 2px solid #404040;\n border-top: 2px solid #404040;\n border-right: 2px solid #efefef;\n border-bottom: 2px solid #efefef;\n border-radius:0px;\n}\n\n@mixin win95-border-slight-inset() {\n border-left: 1px solid #404040;\n border-top: 1px solid #404040;\n border-right: 1px solid #efefef;\n border-bottom: 1px solid #efefef;\n border-radius:0px;\n}\n\n@mixin win95-inset() {\n box-shadow: inset 1px 1px 0px #000000,\n inset -1px -1px 0px #ffffff,\n inset 2px 2px 0px #808080,\n inset -2px -2px 0px #dfdfdf;\n border-width:0px;\n border-radius:0px;\n}\n\n@mixin win95-tab() {\n box-shadow: inset -1px 0px 0px #000000,\n inset 1px 0px 0px #ffffff,\n inset 0px 1px 0px #ffffff,\n inset 0px 2px 0px #dfdfdf,\n inset -2px 0px 0px #808080,\n inset 2px 0px 0px #dfdfdf;\n border-radius:0px;\n border-top-left-radius: 1px;\n border-top-right-radius: 1px;\n}\n\n@mixin win95-reset() {\n box-shadow: unset;\n}\n\n@font-face {\n font-family:\"premillenium\";\n src: url('~fonts/premillenium/MSSansSerif.ttf') format('truetype');\n}\n\n@import 'application';\n\n/* borrowed from cybrespace style: wider columns and full column width images */\n\n@media screen and (min-width: 1300px) {\n .column {\n flex-grow: 1 !important;\n max-width: 400px;\n }\n\n .drawer {\n width: 17%;\n max-width: 400px;\n min-width: 330px;\n }\n}\n\n.media-gallery,\n.video-player {\n max-height:30vh;\n height:30vh !important;\n position:relative;\n margin-top:20px;\n margin-left:-68px;\n width: calc(100% + 80px) !important;\n max-width: calc(100% + 80px);\n}\n\n.detailed-status .media-gallery,\n.detailed-status .video-player {\n margin-left:-5px;\n width: calc(100% + 9px);\n max-width: calc(100% + 9px);\n}\n\n.video-player video {\n transform: unset;\n top: unset;\n}\n\n.detailed-status .media-spoiler,\n.status .media-spoiler {\n height: 100%!important;\n vertical-align: middle;\n}\n\n/* main win95 style */\n\nbody {\n font-size:13px;\n font-family: \"MS Sans Serif\", \"premillenium\", sans-serif;\n color:black;\n}\n\n.ui,\n.ui .columns-area,\nbody.admin {\n background: #008080;\n}\n\n.loading-bar {\n height:5px;\n background-color: #000080;\n}\n\n.tabs-bar {\n background: $win95-bg;\n @include win95-outset();\n height: 30px;\n}\n\n.tabs-bar__link {\n color:black;\n border:2px outset $win95-bg;\n border-top-width: 1px;\n border-left-width: 1px;\n margin:2px;\n padding:3px;\n}\n\n.tabs-bar__link.active {\n @include win95-inset();\n color:black;\n}\n\n.tabs-bar__link:last-child::before {\n content:\"Start\";\n color:black;\n font-weight:bold;\n font-size:15px;\n width:80%;\n display:block;\n position:absolute;\n right:0px;\n}\n\n.tabs-bar__link:last-child {\n position:relative;\n flex-basis:60px !important;\n font-size:0px;\n color:$win95-bg;\n\n background-image: url(\"~images/start.png\");\n background-repeat:no-repeat;\n background-position:8%;\n background-clip:padding-box;\n background-size:auto 50%;\n}\n\n.drawer .drawer__inner {\n overflow: visible;\n height:inherit;\n background:$win95-bg;\n}\n\n.drawer:after {\n display:block;\n content: \" \";\n\n position:absolute;\n bottom:15px;\n left:15px;\n width:132px;\n height:117px;\n background-image:url(\"~images/clippy_wave.gif\"), url(\"~images/clippy_frame.png\");\n background-repeat:no-repeat;\n background-position: 4px 20px, 0px 0px;\n z-index:0;\n}\n\n.drawer__pager {\n overflow-y:auto;\n z-index:1;\n}\n\n.privacy-dropdown__dropdown {\n z-index:2;\n}\n\n.column {\n max-height:100vh;\n}\n\n.column > .scrollable {\n background: $win95-bg;\n @include win95-border-outset();\n border-top-width:0px;\n}\n\n.column-header__wrapper {\n color:white;\n font-weight:bold;\n background:#7f7f7f;\n}\n\n.column-header {\n padding:2px;\n font-size:13px;\n background:#7f7f7f;\n @include win95-border-outset();\n border-bottom-width:0px;\n color:white;\n font-weight:bold;\n align-items:baseline;\n}\n\n.column-header__wrapper.active {\n background:$win95-window-header;\n}\n\n.column-header__wrapper.active::before {\n display:none;\n}\n.column-header.active {\n box-shadow:unset;\n background:$win95-window-header;\n}\n\n.column-header.active .column-header__icon {\n color:white;\n}\n\n.column-header__buttons {\n max-height: 20px;\n margin-right:0px;\n}\n\n.column-header__button {\n background: $win95-bg;\n color: black;\n line-height:0px;\n font-size:14px;\n max-height:20px;\n padding:0px 2px;\n margin-top:2px;\n @include win95-outset();\n\n &:hover {\n color: black;\n }\n}\n\n.column-header__button.active, .column-header__button.active:hover {\n @include win95-inset();\n background-color:#7f7f7f;\n}\n\n.column-header__back-button {\n background: $win95-bg;\n color: black;\n padding:2px;\n max-height:20px;\n margin-top:2px;\n @include win95-outset();\n font-size:13px;\n font-weight:bold;\n}\n\n.column-back-button {\n background:$win95-bg;\n color:black;\n @include win95-outset();\n padding:2px;\n font-size:13px;\n font-weight:bold;\n}\n\n.column-back-button--slim-button {\n position:absolute;\n top:-22px;\n right:4px;\n max-height:20px;\n max-width:60px;\n padding:0px 2px;\n}\n\n.column-back-button__icon {\n font-size:11px;\n margin-top:-3px;\n}\n\n.column-header__collapsible {\n border-left:2px outset $win95-bg;\n border-right:2px outset $win95-bg;\n}\n\n.column-header__collapsible-inner {\n background:$win95-bg;\n color:black;\n}\n\n.column-header__collapsible__extra {\n color:black;\n}\n\n.column-header__collapsible__extra div[role=\"group\"] {\n border: 2px groove $win95-bg;\n border-radius:4px;\n margin-bottom:8px;\n padding:4px;\n}\n\n.column-inline-form {\n background-color: $win95-bg;\n @include win95-border-outset();\n border-bottom-width:0px;\n border-top-width:0px;\n}\n\n.column-settings__section {\n color:black;\n font-weight:bold;\n font-size:11px;\n position:relative;\n top: -12px;\n left:4px;\n background-color:$win95-bg;\n display:inline-block;\n padding:0px 4px;\n margin-bottom:0px;\n}\n\n.setting-meta__label, .setting-toggle__label {\n color:black;\n font-weight:normal;\n}\n\n.setting-meta__label span:before {\n content:\"(\";\n}\n.setting-meta__label span:after {\n content:\")\";\n}\n\n.setting-toggle {\n line-height:13px;\n}\n\n.react-toggle .react-toggle-track {\n border-radius:0px;\n background-color:white;\n @include win95-border-inset();\n\n width:12px;\n height:12px;\n}\n\n.react-toggle:hover:not(.react-toggle--disabled) .react-toggle-track {\n background-color:white;\n}\n\n.react-toggle .react-toggle-track-check {\n left:2px;\n transition:unset;\n}\n\n.react-toggle .react-toggle-track-check svg path {\n fill: black;\n}\n\n.react-toggle .react-toggle-track-x {\n display:none;\n}\n\n.react-toggle .react-toggle-thumb {\n border-radius:0px;\n display:none;\n}\n\n.text-btn {\n background-color:$win95-bg;\n @include win95-outset();\n padding:4px;\n}\n\n.text-btn:hover {\n text-decoration:none;\n color:black;\n}\n\n.text-btn:active {\n @include win95-inset();\n}\n\n.setting-text {\n color:black;\n background-color:white;\n @include win95-inset();\n font-size:13px;\n padding:2px;\n}\n\n.setting-text:active, .setting-text:focus,\n.setting-text.light:active, .setting-text.light:focus {\n color:black;\n border-bottom:2px inset $win95-bg;\n}\n\n.column-header__setting-arrows .column-header__setting-btn {\n padding:3px 10px;\n}\n\n.column-header__setting-arrows .column-header__setting-btn:last-child {\n padding:3px 10px;\n}\n\n.missing-indicator {\n background-color:$win95-bg;\n color:black;\n @include win95-outset();\n}\n\n.missing-indicator > div {\n background: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAARCAYAAAA7bUf6AAAACXBIWXMAAC4jAAAuIwF4pT92AAAAF3pUWHRUaXRsZQAACJnLyy9Jyy/NSwEAD5IDblIFOhoAAAAXelRYdEF1dGhvcgAACJlLzijKz0vMAQALmgLoDsFj8gAAAQpJREFUOMuVlD0OwjAMhd2oQl04Axfo0IGBgYELcAY6cqQuSO0ZOEAZGBg6VKg74gwsEaoESRVHjusI8aQqzY8/PbtOEz1qkFSn2YevlaNOpLMJh2DwvixhuXtOa6/LCh51DUMEFkAsgAZD207Doin8mQ562JpRE5CHBAAhmIqD1L8AqzUUUJkxc6kr3AgAJ+NuvIWRdk7WcrKl0AUqcIBBHOiEbpS4m27mIL5Onfg3k0rgggeQuS2sDOGSahKR+glgqaGLgUJs951NN1q9D72cQqQWR9cr3sm9YcEssEuz6eEuZh2bu0aSOhQ1MBezu2O/+TVSvEFII3qLsZWrSA2AAUQIh1HpyP/kC++zjVSMj6ntAAAAAElFTkSuQmCC')\n no-repeat;\n background-position:center center;\n}\n\n.empty-column-indicator,\n.error-column {\n background: $win95-bg;\n color: black;\n}\n\n.status__wrapper {\n border: 2px groove $win95-bg;\n margin:4px;\n}\n\n.status {\n @include win95-border-slight-inset();\n background-color:white;\n margin:4px;\n padding-bottom:40px;\n margin-bottom:8px;\n}\n\n.status.status-direct {\n background-color:$win95-bg;\n}\n\n.status__content {\n font-size:13px;\n}\n\n.status.light .status__relative-time,\n.status.light .display-name span {\n color: #7f7f7f;\n}\n\n.status__action-bar {\n box-sizing:border-box;\n position:absolute;\n bottom:-1px;\n left:-1px;\n background:$win95-bg;\n width:calc(100% + 2px);\n padding-left:10px;\n padding: 4px 2px;\n padding-bottom:4px;\n border-bottom:2px groove $win95-bg;\n border-top:1px outset $win95-bg;\n text-align: right;\n}\n\n.status__wrapper .status__action-bar {\n border-bottom-width:0px;\n}\n\n.status__action-bar-button {\n float:right;\n}\n\n.status__action-bar-dropdown {\n margin-left:auto;\n margin-right:10px;\n\n .icon-button {\n min-width:28px;\n }\n}\n.status.light .status__content a {\n color:blue;\n}\n\n.focusable:focus {\n background: $win95-bg;\n .detailed-status__action-bar {\n background: $win95-bg;\n }\n\n .status, .detailed-status {\n background: white;\n outline:2px dotted $win95-mid-grey;\n }\n}\n\n.dropdown__trigger.icon-button {\n padding-right:6px;\n}\n\n.detailed-status__action-bar-dropdown .icon-button {\n min-width:28px;\n}\n\n.detailed-status {\n background:white;\n background-clip:padding-box;\n margin:4px;\n border: 2px groove $win95-bg;\n padding:4px;\n}\n\n.detailed-status__display-name {\n color:#7f7f7f;\n}\n\n.detailed-status__display-name strong {\n color:black;\n font-weight:bold;\n}\n.account__avatar,\n.account__avatar-overlay-base,\n.account__header__avatar,\n.account__avatar-overlay-overlay {\n @include win95-border-slight-inset();\n clip-path:none;\n filter: saturate(1.8) brightness(1.1);\n}\n\n.detailed-status__action-bar {\n background-color:$win95-bg;\n border:0px;\n border-bottom:2px groove $win95-bg;\n margin-bottom:8px;\n justify-items:left;\n padding-left:4px;\n}\n.icon-button {\n background:$win95-bg;\n @include win95-border-outset();\n padding:0px 0px 0px 0px;\n margin-right:4px;\n\n color:#3f3f3f;\n &.inverted, &:hover, &.inverted:hover, &:active, &:focus {\n color:#3f3f3f;\n }\n}\n\n.icon-button:active {\n @include win95-border-inset();\n}\n\n.status__action-bar > .icon-button {\n padding:0px 15px 0px 0px;\n min-width:25px;\n}\n\n.icon-button.star-icon,\n.icon-button.star-icon:active {\n background:transparent;\n border:none;\n}\n\n.icon-button.star-icon.active {\n color: $gold-star;\n &:active, &:hover, &:focus {\n color: $gold-star;\n }\n}\n\n.icon-button.star-icon > i {\n background:$win95-bg;\n @include win95-border-outset();\n padding-bottom:3px;\n}\n\n.icon-button.star-icon:active > i {\n @include win95-border-inset();\n}\n\n.text-icon-button {\n color:$win95-dark-grey;\n}\n\n.detailed-status__action-bar-dropdown {\n margin-left:auto;\n justify-content:right;\n padding-right:16px;\n}\n\n.detailed-status__button {\n flex:0 0 auto;\n}\n\n.detailed-status__button .icon-button {\n padding-left:2px;\n padding-right:25px;\n}\n\n.status-card {\n border-radius:0px;\n background:white;\n border: 1px solid black;\n color:black;\n}\n\n.status-card:hover {\n background-color:white;\n}\n\n.status-card__title {\n color:blue;\n text-decoration:underline;\n font-weight:bold;\n}\n\n.load-more {\n width:auto;\n margin:5px auto;\n background: $win95-bg;\n @include win95-outset();\n color:black;\n padding: 2px 5px;\n\n &:hover {\n background: $win95-bg;\n color:black;\n }\n}\n\n.status-card__description {\n color:black;\n}\n\n.account__display-name strong, .status__display-name strong {\n color:black;\n font-weight:bold;\n}\n\n.account .account__display-name {\n color:black;\n}\n\n.account {\n border-bottom: 2px groove $win95-bg;\n}\n\n.reply-indicator__content .status__content__spoiler-link, .status__content .status__content__spoiler-link {\n background:$win95-bg;\n @include win95-outset();\n}\n\n.reply-indicator__content .status__content__spoiler-link:hover, .status__content .status__content__spoiler-link:hover {\n background:$win95-bg;\n}\n\n.reply-indicator__content .status__content__spoiler-link:active, .status__content .status__content__spoiler-link:active {\n @include win95-inset();\n}\n\n.reply-indicator__content a, .status__content a {\n color:blue;\n}\n\n.notification {\n border: 2px groove $win95-bg;\n margin:4px;\n}\n\n.notification__message {\n color:black;\n font-size:13px;\n}\n\n.notification__display-name {\n font-weight:bold;\n}\n\n.drawer__header {\n background: $win95-bg;\n @include win95-border-outset();\n justify-content:left;\n margin-bottom:0px;\n padding-bottom:2px;\n border-bottom:2px groove $win95-bg;\n}\n\n.drawer__tab {\n color:black;\n @include win95-outset();\n padding:5px;\n margin:2px;\n flex: 0 0 auto;\n}\n\n.drawer__tab:first-child::before {\n content:\"Start\";\n color:black;\n font-weight:bold;\n font-size:15px;\n width:80%;\n display:block;\n position:absolute;\n right:0px;\n\n}\n\n.drawer__tab:first-child {\n position:relative;\n padding:5px 15px;\n width:40px;\n font-size:0px;\n color:$win95-bg;\n\n background-image: url(\"~images/start.png\");\n background-repeat:no-repeat;\n background-position:8%;\n background-clip:padding-box;\n background-size:auto 50%;\n}\n\n.drawer__header a:hover {\n background-color:transparent;\n}\n\n.drawer__header a:first-child:hover {\n background-image: url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAOCAIAAACpTQvdAAAACXBIWXMAAC4jAAAuIwF4pT92AAAAF3pUWHRBdXRob3IAAAiZS84oys9LzAEAC5oC6A7BY/IAAACWSURBVCiRhVJJDsQgDEuqOfRZ7a1P5gbP4uaJaEjTADMWQhHYjlk4p0wLnNdptdF4KvBUDyGzVwc2xO+uKtH+1o0ytEEmqFpuxlvFCGCxKbNIT56QCi2MzaA/2Mz+mERSOeqzJG2RUxkjdTabgPtFoZ1bZxcKvgPcLZVufAyR9Ni8v5dWDzfFx0giC1RvZFv6l35QQ/Mvv39XXgGzQpoAAAAASUVORK5CYII=\");\n background-repeat:no-repeat;\n background-position:8%;\n background-clip:padding-box;\n background-size:auto 50%;\n transition:unset;\n}\n\n.drawer__tab:first-child {\n\n}\n\n.search {\n background:$win95-bg;\n padding-top:2px;\n padding:2px;\n border:2px outset $win95-bg;\n border-top-width:0px;\n border-bottom: 2px groove $win95-bg;\n margin-bottom:0px;\n}\n\n.search input {\n background-color:white;\n color:black;\n @include win95-border-slight-inset();\n}\n\n.search__input:focus {\n background-color:white;\n}\n\n.search-popout {\n box-shadow: unset;\n color:black;\n border-radius:0px;\n background-color:$win95-tooltip-yellow;\n border:1px solid black;\n\n h4 {\n color:black;\n text-transform: none;\n font-weight:bold;\n }\n}\n\n.search-results__header {\n background-color: $win95-bg;\n color:black;\n border-bottom:2px groove $win95-bg;\n}\n\n.search-results__hashtag {\n color:blue;\n}\n\n.search-results__section .account:hover,\n.search-results__section .account:hover .account__display-name,\n.search-results__section .account:hover .account__display-name strong,\n.search-results__section .search-results__hashtag:hover {\n background-color:$win95-window-header;\n color:white;\n}\n\n.search__icon .fa {\n color:#808080;\n\n &.active {\n opacity:1.0;\n }\n\n &:hover {\n color: #808080;\n }\n}\n\n.drawer__inner,\n.drawer__inner.darker {\n background-color:$win95-bg;\n border: 2px outset $win95-bg;\n border-top-width:0px;\n}\n\n.navigation-bar {\n color:black;\n}\n\n.navigation-bar strong {\n color:black;\n font-weight:bold;\n}\n\n.compose-form .autosuggest-textarea__textarea,\n.compose-form .spoiler-input__input {\n border-radius:0px;\n @include win95-border-slight-inset();\n}\n\n.compose-form .autosuggest-textarea__textarea {\n border-bottom:0px;\n}\n\n.compose-form__uploads-wrapper {\n border-radius:0px;\n border-bottom:1px inset $win95-bg;\n border-top-width:0px;\n}\n\n.compose-form__upload-wrapper {\n border-left:1px inset $win95-bg;\n border-right:1px inset $win95-bg;\n}\n\n.compose-form .compose-form__buttons-wrapper {\n background-color: $win95-bg;\n border:2px groove $win95-bg;\n margin-top:4px;\n padding:4px 8px;\n}\n\n.compose-form__buttons {\n background-color:$win95-bg;\n border-radius:0px;\n box-shadow:unset;\n}\n\n.compose-form__buttons-separator {\n border-left: 2px groove $win95-bg;\n}\n\n.privacy-dropdown.active .privacy-dropdown__value.active,\n.advanced-options-dropdown.open .advanced-options-dropdown__value {\n background: $win95-bg;\n}\n\n.privacy-dropdown.active .privacy-dropdown__value.active .icon-button {\n color: $win95-dark-grey;\n}\n\n.privacy-dropdown.active\n.privacy-dropdown__value {\n background: $win95-bg;\n box-shadow:unset;\n}\n\n.privacy-dropdown__option.active, .privacy-dropdown__option:hover,\n.privacy-dropdown__option.active:hover {\n background:$win95-window-header;\n}\n\n.privacy-dropdown__dropdown,\n.privacy-dropdown.active .privacy-dropdown__dropdown,\n.advanced-options-dropdown__dropdown,\n.advanced-options-dropdown.open .advanced-options-dropdown__dropdown\n{\n box-shadow:unset;\n color:black;\n @include win95-outset();\n background: $win95-bg;\n}\n\n.privacy-dropdown__option__content {\n color:black;\n}\n\n.privacy-dropdown__option__content strong {\n font-weight:bold;\n}\n\n.compose-form__warning::before {\n content:\"Tip:\";\n font-weight:bold;\n display:block;\n position:absolute;\n top:-10px;\n background-color:$win95-bg;\n font-size:11px;\n padding: 0px 5px;\n}\n\n.compose-form__warning {\n position:relative;\n box-shadow:unset;\n border:2px groove $win95-bg;\n background-color:$win95-bg;\n color:black;\n}\n\n.compose-form__warning a {\n color:blue;\n}\n\n.compose-form__warning strong {\n color:black;\n text-decoration:underline;\n}\n\n.compose-form__buttons button.active:last-child {\n @include win95-border-inset();\n background: #dfdfdf;\n color:#7f7f7f;\n}\n\n.compose-form__upload-thumbnail {\n border-radius:0px;\n border:2px groove $win95-bg;\n background-color:$win95-bg;\n padding:2px;\n box-sizing:border-box;\n}\n\n.compose-form__upload-thumbnail .icon-button {\n max-width:20px;\n max-height:20px;\n line-height:10px !important;\n}\n\n.compose-form__upload-thumbnail .icon-button::before {\n content:\"X\";\n font-size:13px;\n font-weight:bold;\n color:black;\n}\n\n.compose-form__upload-thumbnail .icon-button i {\n display:none;\n}\n\n.emoji-picker-dropdown__menu {\n z-index:2;\n}\n\n.emoji-dialog.with-search {\n box-shadow:unset;\n border-radius:0px;\n background-color:$win95-bg;\n border:1px solid black;\n box-sizing:content-box;\n\n}\n\n.emoji-dialog .emoji-search {\n color:black;\n background-color:white;\n border-radius:0px;\n @include win95-inset();\n}\n\n.emoji-dialog .emoji-search-wrapper {\n border-bottom:2px groove $win95-bg;\n}\n\n.emoji-dialog .emoji-category-title {\n color:black;\n font-weight:bold;\n}\n\n.reply-indicator {\n background-color:$win95-bg;\n border-radius:3px;\n border:2px groove $win95-bg;\n}\n\n.button {\n background-color:$win95-bg;\n @include win95-outset();\n border-radius:0px;\n color:black;\n font-weight:bold;\n\n &:hover, &:focus, &:disabled {\n background-color:$win95-bg;\n }\n\n &:active {\n @include win95-inset();\n }\n\n &:disabled {\n color: #808080;\n text-shadow: 1px 1px 0px #efefef;\n\n &:active {\n @include win95-outset();\n }\n }\n\n}\n\n#Getting-started {\n background-color:$win95-bg;\n @include win95-inset();\n border-bottom-width:0px;\n}\n\n#Getting-started::before {\n content:\"Start\";\n color:black;\n font-weight:bold;\n font-size:15px;\n width:80%;\n text-align:center;\n display:block;\n position:absolute;\n right:2px;\n}\n\n#Getting-started {\n position:relative;\n padding:5px 15px;\n width:60px;\n font-size:0px;\n color:$win95-bg;\n\n background-image: url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAOCAIAAACpTQvdAAAACXBIWXMAAC4jAAAuIwF4pT92AAAAF3pUWHRBdXRob3IAAAiZS84oys9LzAEAC5oC6A7BY/IAAACWSURBVCiRhVJJDsQgDEuqOfRZ7a1P5gbP4uaJaEjTADMWQhHYjlk4p0wLnNdptdF4KvBUDyGzVwc2xO+uKtH+1o0ytEEmqFpuxlvFCGCxKbNIT56QCi2MzaA/2Mz+mERSOeqzJG2RUxkjdTabgPtFoZ1bZxcKvgPcLZVufAyR9Ni8v5dWDzfFx0giC1RvZFv6l35QQ/Mvv39XXgGzQpoAAAAASUVORK5CYII=\");\n background-repeat:no-repeat;\n background-position:8%;\n background-clip:padding-box;\n background-size:auto 50%;\n}\n\n.column-subheading {\n background-color:$win95-bg;\n color:black;\n border-bottom: 2px groove $win95-bg;\n text-transform: none;\n font-size: 16px;\n}\n\n.column-link {\n background-color:transparent;\n color:black;\n &:hover {\n background-color: $win95-window-header;\n color:white;\n }\n}\n\n.getting-started__wrapper {\n .column-subheading {\n font-size:0px;\n margin:0px;\n padding:0px;\n }\n\n .column-link {\n background-size:32px 32px;\n background-repeat:no-repeat;\n background-position: 36px 50%;\n padding-left:40px;\n\n &:hover {\n background-size:32px 32px;\n background-repeat:no-repeat;\n background-position: 36px 50%;\n }\n\n i {\n font-size: 0px;\n width:32px;\n }\n }\n}\n\n.column-link[href=\"/web/timelines/public\"] {\n background-image: url(\"~images/icon_public.png\");\n &:hover { background-image: url(\"~images/icon_public.png\"); }\n}\n.column-link[href=\"/web/timelines/public/local\"] {\n background-image: url(\"~images/icon_local.png\");\n &:hover { background-image: url(\"~images/icon_local.png\"); }\n}\n.column-link[href=\"/web/pinned\"] {\n background-image: url(\"~images/icon_pin.png\");\n &:hover { background-image: url(\"~images/icon_pin.png\"); }\n}\n.column-link[href=\"/web/favourites\"] {\n background-image: url(\"~images/icon_likes.png\");\n &:hover { background-image: url(\"~images/icon_likes.png\"); }\n}\n.column-link[href=\"/web/lists\"] {\n background-image: url(\"~images/icon_lists.png\");\n &:hover { background-image: url(\"~images/icon_lists.png\"); }\n}\n.column-link[href=\"/web/follow_requests\"] {\n background-image: url(\"~images/icon_follow_requests.png\");\n &:hover { background-image: url(\"~images/icon_follow_requests.png\"); }\n}\n.column-link[href=\"/web/keyboard-shortcuts\"] {\n background-image: url(\"~images/icon_keyboard_shortcuts.png\");\n &:hover { background-image: url(\"~images/icon_keyboard_shortcuts.png\"); }\n}\n.column-link[href=\"/web/blocks\"] {\n background-image: url(\"~images/icon_blocks.png\");\n &:hover { background-image: url(\"~images/icon_blocks.png\"); }\n}\n.column-link[href=\"/web/mutes\"] {\n background-image: url(\"~images/icon_mutes.png\");\n &:hover { background-image: url(\"~images/icon_mutes.png\"); }\n}\n.column-link[href=\"/settings/preferences\"] {\n background-image: url(\"~images/icon_settings.png\");\n &:hover { background-image: url(\"~images/icon_settings.png\"); }\n}\n.column-link[href=\"/about/more\"] {\n background-image: url(\"~images/icon_about.png\");\n &:hover { background-image: url(\"~images/icon_about.png\"); }\n}\n.column-link[href=\"/auth/sign_out\"] {\n background-image: url(\"~images/icon_logout.png\");\n &:hover { background-image: url(\"~images/icon_logout.png\"); }\n}\n\n.getting-started__footer {\n display:none;\n}\n\n.getting-started__wrapper::before {\n content:\"Mastodon 95\";\n font-weight:bold;\n font-size:23px;\n color:white;\n line-height:30px;\n padding-left:20px;\n padding-right:40px;\n\n left:0px;\n bottom:-30px;\n display:block;\n position:absolute;\n background-color:#7f7f7f;\n width:200%;\n height:30px;\n\n -ms-transform: rotate(-90deg);\n\n -webkit-transform: rotate(-90deg);\n transform: rotate(-90deg);\n transform-origin:top left;\n}\n\n.getting-started__wrapper {\n @include win95-border-outset();\n background-color:$win95-bg;\n}\n\n.column .static-content.getting-started {\n display:none;\n}\n\n.keyboard-shortcuts kbd {\n background-color: $win95-bg;\n}\n\n.account__header {\n background-color:#7f7f7f;\n}\n\n.account__header .account__header__content {\n color:white;\n}\n\n.account-authorize__wrapper {\n border: 2px groove $win95-bg;\n margin: 2px;\n padding:2px;\n}\n\n.account--panel {\n background-color: $win95-bg;\n border:0px;\n border-top: 2px groove $win95-bg;\n}\n\n.account-authorize .account__header__content {\n color:black;\n margin:10px;\n}\n\n.account__action-bar__tab > span {\n color:black;\n font-weight:bold;\n}\n\n.account__action-bar__tab strong {\n color:black;\n}\n\n.account__action-bar {\n border: unset;\n}\n\n.account__action-bar__tab {\n border: 1px outset $win95-bg;\n}\n\n.account__action-bar__tab:active {\n @include win95-inset();\n}\n\n.dropdown--active .dropdown__content > ul,\n.dropdown-menu {\n background:$win95-tooltip-yellow;\n border-radius:0px;\n border:1px solid black;\n box-shadow:unset;\n}\n\n.dropdown-menu a {\n background-color:transparent;\n}\n\n.dropdown--active::after {\n display:none;\n}\n\n.dropdown--active .icon-button {\n color:black;\n @include win95-inset();\n}\n\n.dropdown--active .dropdown__content > ul > li > a {\n background:transparent;\n}\n\n.dropdown--active .dropdown__content > ul > li > a:hover {\n background:transparent;\n color:black;\n text-decoration:underline;\n}\n\n.dropdown__sep,\n.dropdown-menu__separator\n{\n border-color:#7f7f7f;\n}\n\n.detailed-status__action-bar-dropdown .dropdown--active .dropdown__content.dropdown__left {\n left:unset;\n}\n\n.dropdown > .icon-button, .detailed-status__button > .icon-button,\n.status__action-bar > .icon-button, .star-icon i {\n /* i don't know what's going on with the inline\n styles someone should look at the react code */\n height: 25px !important;\n width: 28px !important;\n box-sizing: border-box;\n}\n\n.status__action-bar-button .fa-floppy-o {\n padding-top: 2px;\n}\n\n.status__action-bar-dropdown {\n position: relative;\n top: -3px;\n}\n\n.detailed-status__action-bar-dropdown .dropdown {\n position: relative;\n top: -4px;\n}\n\n.notification .status__action-bar {\n border-bottom: none;\n}\n\n.notification .status {\n margin-bottom: 4px;\n}\n\n.status__wrapper .status {\n margin-bottom: 3px;\n}\n\n.status__wrapper {\n margin-bottom: 8px;\n}\n\n.icon-button .fa-retweet {\n position: relative;\n top: -1px;\n}\n\n.embed-modal, .error-modal, .onboarding-modal,\n.actions-modal, .boost-modal, .confirmation-modal, .report-modal {\n @include win95-outset();\n background:$win95-bg;\n}\n\n.actions-modal::before,\n.boost-modal::before,\n.confirmation-modal::before,\n.report-modal::before {\n content: \"Confirmation\";\n display:block;\n background:$win95-window-header;\n color:white;\n font-weight:bold;\n padding-left:2px;\n}\n\n.boost-modal::before {\n content: \"Boost confirmation\";\n}\n\n.boost-modal__action-bar > div > span:before {\n content: \"Tip: \";\n font-weight:bold;\n}\n\n.boost-modal__action-bar, .confirmation-modal__action-bar, .report-modal__action-bar {\n background:$win95-bg;\n margin-top:-15px;\n}\n\n.embed-modal h4, .error-modal h4, .onboarding-modal h4 {\n background:$win95-window-header;\n color:white;\n font-weight:bold;\n padding:2px;\n font-size:13px;\n text-align:left;\n}\n\n.confirmation-modal__action-bar {\n .confirmation-modal__cancel-button {\n color:black;\n\n &:active,\n &:focus,\n &:hover {\n color:black;\n }\n\n &:active {\n @include win95-inset();\n }\n }\n}\n\n.embed-modal .embed-modal__container .embed-modal__html,\n.embed-modal .embed-modal__container .embed-modal__html:focus {\n background:white;\n color:black;\n @include win95-inset();\n}\n\n.modal-root__overlay,\n.account__header > div {\n background: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAIAAAACCAYAAABytg0kAAAACXBIWXMAAC4jAAAuIwF4pT92AAAAFnpUWHRUaXRsZQAACJnLzU9JzElKBwALgwLXaCRlPwAAABd6VFh0QXV0aG9yAAAImUvOKMrPS8wBAAuaAugOwWPyAAAAEUlEQVQImWNgYGD4z4AE/gMADwMB/414xEUAAAAASUVORK5CYII=');\n}\n\n.admin-wrapper::before {\n position:absolute;\n top:0px;\n content:\"Control Panel\";\n color:white;\n background-color:$win95-window-header;\n font-size:13px;\n font-weight:bold;\n width:calc(100%);\n margin: 2px;\n display:block;\n padding:2px;\n padding-left:22px;\n box-sizing:border-box;\n}\n\n.admin-wrapper {\n position:relative;\n background: $win95-bg;\n @include win95-outset();\n width:70vw;\n height:80vh;\n margin:10vh auto;\n color: black;\n padding-top:24px;\n flex-direction:column;\n overflow:hidden;\n}\n\n@media screen and (max-width: 1120px) {\n .admin-wrapper {\n width:90vw;\n height:95vh;\n margin:2.5vh auto;\n }\n}\n\n@media screen and (max-width: 740px) {\n .admin-wrapper {\n width:100vw;\n height:95vh;\n height:calc(100vh - 24px);\n margin:0px 0px 0px 0px;\n }\n}\n\n.admin-wrapper .sidebar-wrapper {\n position:static;\n height:auto;\n flex: 0 0 auto;\n margin:2px;\n}\n\n.admin-wrapper .content-wrapper {\n flex: 1 1 auto;\n width:calc(100% - 20px);\n @include win95-border-outset();\n position:relative;\n margin-left:10px;\n margin-right:10px;\n margin-bottom:40px;\n box-sizing:border-box;\n}\n\n.admin-wrapper .content {\n background-color: $win95-bg;\n width: 100%;\n max-width:100%;\n min-height:100%;\n box-sizing:border-box;\n position:relative;\n}\n\n.admin-wrapper .sidebar {\n position:static;\n background: $win95-bg;\n color:black;\n width: 100%;\n height:auto;\n padding-bottom: 20px;\n}\n\n.admin-wrapper .sidebar .logo {\n position:absolute;\n top:2px;\n left:4px;\n width:18px;\n height:18px;\n margin:0px;\n}\n\n.admin-wrapper .sidebar > ul {\n background: $win95-bg;\n margin:0px;\n margin-left:8px;\n color:black;\n\n & > li {\n display:inline-block;\n\n &#settings,\n &#admin {\n padding:2px;\n border: 0px solid transparent;\n }\n\n &#logout {\n position:absolute;\n @include win95-outset();\n right:12px;\n bottom:10px;\n }\n\n &#web {\n display:inline-block;\n @include win95-outset();\n position:absolute;\n left: 12px;\n bottom: 10px;\n }\n\n & > a {\n display:inline-block;\n @include win95-tab();\n padding:2px 5px;\n margin:0px;\n color:black;\n vertical-align:baseline;\n\n &.selected {\n background: $win95-bg;\n color:black;\n padding-top: 4px;\n padding-bottom:4px;\n }\n\n &:hover {\n background: $win95-bg;\n color:black;\n }\n }\n\n & > ul {\n width:calc(100% - 20px);\n background: transparent;\n position:absolute;\n left: 10px;\n top:54px;\n z-index:3;\n\n & > li {\n background: $win95-bg;\n display: inline-block;\n vertical-align:baseline;\n\n & > a {\n background: $win95-bg;\n @include win95-tab();\n color:black;\n padding:2px 5px;\n position:relative;\n z-index:3;\n\n &.selected {\n background: $win95-bg;\n color:black;\n padding-bottom:4px;\n padding-top: 4px;\n padding-right:7px;\n margin-left:-2px;\n margin-right:-2px;\n position:relative;\n z-index:4;\n\n &:first-child {\n margin-left:0px;\n }\n\n &:hover {\n background: transparent;\n color:black;\n }\n }\n\n &:hover {\n background: $win95-bg;\n color:black;\n }\n }\n }\n }\n }\n}\n\n@media screen and (max-width: 1520px) {\n .admin-wrapper .sidebar > ul > li > ul {\n max-width:1000px;\n }\n\n .admin-wrapper .sidebar {\n padding-bottom: 45px;\n }\n}\n\n@media screen and (max-width: 600px) {\n .admin-wrapper .sidebar > ul > li > ul {\n max-width:500px;\n }\n\n .admin-wrapper {\n .sidebar {\n padding:0px;\n padding-bottom: 70px;\n width: 100%;\n height: auto;\n }\n .content-wrapper {\n overflow:auto;\n height:80%;\n height:calc(100% - 150px);\n }\n }\n}\n\n.flash-message {\n background-color:$win95-tooltip-yellow;\n color:black;\n border:1px solid black;\n border-radius:0px;\n position:absolute;\n top:0px;\n left:0px;\n width:100%;\n}\n\n.admin-wrapper table {\n background-color: white;\n @include win95-border-slight-inset();\n}\n\n.admin-wrapper .content h2,\n.simple_form .input.with_label .label_input > label,\n.admin-wrapper .content h6,\n.admin-wrapper .content > p,\n.admin-wrapper .content .muted-hint,\n.simple_form span.hint,\n.simple_form h4,\n.simple_form .check_boxes .checkbox label,\n.simple_form .input.with_label.boolean .label_input > label,\n.filters .filter-subset a,\n.simple_form .input.radio_buttons .radio label,\na.table-action-link,\na.table-action-link:hover,\n.simple_form .input.with_block_label > label,\n.simple_form p.hint {\n color:black;\n}\n\n.table > tbody > tr:nth-child(2n+1) > td,\n.table > tbody > tr:nth-child(2n+1) > th {\n background-color:white;\n}\n\n.simple_form input[type=text],\n.simple_form input[type=number],\n.simple_form input[type=email],\n.simple_form input[type=password],\n.simple_form textarea {\n color:black;\n background-color:white;\n @include win95-border-slight-inset();\n\n &:active, &:focus {\n background-color:white;\n }\n}\n\n.simple_form button,\n.simple_form .button,\n.simple_form .block-button\n{\n background: $win95-bg;\n @include win95-outset();\n color:black;\n font-weight: normal;\n\n &:hover {\n background: $win95-bg;\n }\n}\n\n.simple_form .warning, .table-form .warning\n{\n background: $win95-tooltip-yellow;\n color:black;\n box-shadow: unset;\n text-shadow:unset;\n border:1px solid black;\n\n a {\n color: blue;\n text-decoration:underline;\n }\n}\n\n.simple_form button.negative,\n.simple_form .button.negative,\n.simple_form .block-button.negative\n{\n background: $win95-bg;\n}\n\n.filters .filter-subset {\n border: 2px groove $win95-bg;\n padding:2px;\n}\n\n.filters .filter-subset a::before {\n content: \"\";\n background-color:white;\n border-radius:50%;\n border:2px solid black;\n border-top-color:#7f7f7f;\n border-left-color:#7f7f7f;\n border-bottom-color:#f5f5f5;\n border-right-color:#f5f5f5;\n width:12px;\n height:12px;\n display:inline-block;\n vertical-align:middle;\n margin-right:2px;\n}\n\n.filters .filter-subset a.selected::before {\n background-color:black;\n box-shadow: inset 0 0 0 3px white;\n}\n\n.filters .filter-subset a,\n.filters .filter-subset a:hover,\n.filters .filter-subset a.selected {\n color:black;\n border-bottom: 0px solid transparent;\n}\n","/* http://meyerweb.com/eric/tools/css/reset/\n v2.0 | 20110126\n License: none (public domain)\n*/\n\nhtml, body, div, span, applet, object, iframe,\nh1, h2, h3, h4, h5, h6, p, blockquote, pre,\na, abbr, acronym, address, big, cite, code,\ndel, dfn, em, img, ins, kbd, q, s, samp,\nsmall, strike, strong, sub, sup, tt, var,\nb, u, i, center,\ndl, dt, dd, ol, ul, li,\nfieldset, form, label, legend,\ntable, caption, tbody, tfoot, thead, tr, th, td,\narticle, aside, canvas, details, embed,\nfigure, figcaption, footer, header, hgroup,\nmenu, nav, output, ruby, section, summary,\ntime, mark, audio, video {\n margin: 0;\n padding: 0;\n border: 0;\n font-size: 100%;\n font: inherit;\n vertical-align: baseline;\n}\n\n/* HTML5 display-role reset for older browsers */\narticle, aside, details, figcaption, figure,\nfooter, header, hgroup, menu, nav, section {\n display: block;\n}\n\nbody {\n line-height: 1;\n}\n\nol, ul {\n list-style: none;\n}\n\nblockquote, q {\n quotes: none;\n}\n\nblockquote:before, blockquote:after,\nq:before, q:after {\n content: '';\n content: none;\n}\n\ntable {\n border-collapse: collapse;\n border-spacing: 0;\n}\n\nhtml {\n scrollbar-color: lighten($ui-base-color, 4%) rgba($base-overlay-background, 0.1);\n}\n\n::-webkit-scrollbar {\n width: 12px;\n height: 12px;\n}\n\n::-webkit-scrollbar-thumb {\n background: lighten($ui-base-color, 4%);\n border: 0px none $base-border-color;\n border-radius: 50px;\n}\n\n::-webkit-scrollbar-thumb:hover {\n background: lighten($ui-base-color, 6%);\n}\n\n::-webkit-scrollbar-thumb:active {\n background: lighten($ui-base-color, 4%);\n}\n\n::-webkit-scrollbar-track {\n border: 0px none $base-border-color;\n border-radius: 0;\n background: rgba($base-overlay-background, 0.1);\n}\n\n::-webkit-scrollbar-track:hover {\n background: $ui-base-color;\n}\n\n::-webkit-scrollbar-track:active {\n background: $ui-base-color;\n}\n\n::-webkit-scrollbar-corner {\n background: transparent;\n}\n","// Commonly used web colors\n$black: #000000; // Black\n$white: #ffffff; // White\n$success-green: #79bd9a !default; // Padua\n$error-red: #df405a !default; // Cerise\n$warning-red: #ff5050 !default; // Sunset Orange\n$gold-star: #ca8f04 !default; // Dark Goldenrod\n\n$red-bookmark: $warning-red;\n\n// Pleroma-Dark colors\n$pleroma-bg: #121a24;\n$pleroma-fg: #182230;\n$pleroma-text: #b9b9ba;\n$pleroma-links: #d8a070;\n\n// Values from the classic Mastodon UI\n$classic-base-color: $pleroma-bg;\n$classic-primary-color: #9baec8;\n$classic-secondary-color: #d9e1e8;\n$classic-highlight-color: #d8a070;\n\n// Variables for defaults in UI\n$base-shadow-color: $black !default;\n$base-overlay-background: $black !default;\n$base-border-color: $white !default;\n$simple-background-color: $white !default;\n$valid-value-color: $success-green !default;\n$error-value-color: $error-red !default;\n\n// Tell UI to use selected colors\n$ui-base-color: $classic-base-color !default; // Darkest\n$ui-base-lighter-color: lighten($ui-base-color, 26%) !default; // Lighter darkest\n$ui-primary-color: $classic-primary-color !default; // Lighter\n$ui-secondary-color: $classic-secondary-color !default; // Lightest\n$ui-highlight-color: $classic-highlight-color !default;\n\n// Variables for texts\n$primary-text-color: $white !default;\n$darker-text-color: $ui-primary-color !default;\n$dark-text-color: $ui-base-lighter-color !default;\n$secondary-text-color: $ui-secondary-color !default;\n$highlight-text-color: $ui-highlight-color !default;\n$action-button-color: $ui-base-lighter-color !default;\n// For texts on inverted backgrounds\n$inverted-text-color: $ui-base-color !default;\n$lighter-text-color: $ui-base-lighter-color !default;\n$light-text-color: $ui-primary-color !default;\n\n// Language codes that uses CJK fonts\n$cjk-langs: ja, ko, zh-CN, zh-HK, zh-TW;\n\n// Variables for components\n$media-modal-media-max-width: 100%;\n// put margins on top and bottom of image to avoid the screen covered by image.\n$media-modal-media-max-height: 80%;\n\n$no-gap-breakpoint: 415px;\n\n$font-sans-serif: 'mastodon-font-sans-serif' !default;\n$font-display: 'mastodon-font-display' !default;\n$font-monospace: 'mastodon-font-monospace' !default;\n","@function hex-color($color) {\n @if type-of($color) == 'color' {\n $color: str-slice(ie-hex-str($color), 4);\n }\n\n @return '%23' + unquote($color);\n}\n\nbody {\n font-family: $font-sans-serif, sans-serif;\n background: darken($ui-base-color, 7%);\n font-size: 13px;\n line-height: 18px;\n font-weight: 400;\n color: $primary-text-color;\n text-rendering: optimizelegibility;\n font-feature-settings: \"kern\";\n text-size-adjust: none;\n -webkit-tap-highlight-color: rgba(0, 0, 0, 0);\n -webkit-tap-highlight-color: transparent;\n\n &.system-font {\n // system-ui => standard property (Chrome/Android WebView 56+, Opera 43+, Safari 11+)\n // -apple-system => Safari <11 specific\n // BlinkMacSystemFont => Chrome <56 on macOS specific\n // Segoe UI => Windows 7/8/10\n // Oxygen => KDE\n // Ubuntu => Unity/Ubuntu\n // Cantarell => GNOME\n // Fira Sans => Firefox OS\n // Droid Sans => Older Androids (<4.0)\n // Helvetica Neue => Older macOS <10.11\n // $font-sans-serif => web-font (Roboto) fallback and newer Androids (>=4.0)\n font-family: system-ui, -apple-system, BlinkMacSystemFont, \"Segoe UI\", \"Oxygen\", \"Ubuntu\", \"Cantarell\", \"Fira Sans\", \"Droid Sans\", \"Helvetica Neue\", $font-sans-serif, sans-serif;\n }\n\n &.app-body {\n padding: 0;\n\n &.layout-single-column {\n height: auto;\n min-height: 100vh;\n overflow-y: scroll;\n }\n\n &.layout-multiple-columns {\n position: absolute;\n width: 100%;\n height: 100%;\n }\n\n &.with-modals--active {\n overflow-y: hidden;\n }\n }\n\n &.lighter {\n background: $ui-base-color;\n }\n\n &.with-modals {\n overflow-x: hidden;\n overflow-y: scroll;\n\n &--active {\n overflow-y: hidden;\n }\n }\n\n &.player {\n text-align: center;\n }\n\n &.embed {\n background: lighten($ui-base-color, 4%);\n margin: 0;\n padding-bottom: 0;\n\n .container {\n position: absolute;\n width: 100%;\n height: 100%;\n overflow: hidden;\n }\n }\n\n &.admin {\n background: darken($ui-base-color, 4%);\n padding: 0;\n }\n\n &.error {\n position: absolute;\n text-align: center;\n color: $darker-text-color;\n background: $ui-base-color;\n width: 100%;\n height: 100%;\n padding: 0;\n display: flex;\n justify-content: center;\n align-items: center;\n\n .dialog {\n vertical-align: middle;\n margin: 20px;\n\n &__illustration {\n img {\n display: block;\n max-width: 470px;\n width: 100%;\n height: auto;\n margin-top: -120px;\n }\n }\n\n h1 {\n font-size: 20px;\n line-height: 28px;\n font-weight: 400;\n }\n }\n }\n}\n\nbutton {\n font-family: inherit;\n cursor: pointer;\n\n &:focus {\n outline: none;\n }\n}\n\n.app-holder {\n &,\n & > div,\n & > noscript {\n display: flex;\n width: 100%;\n align-items: center;\n justify-content: center;\n outline: 0 !important;\n }\n\n & > noscript {\n height: 100vh;\n }\n}\n\n.layout-single-column .app-holder {\n &,\n & > div {\n min-height: 100vh;\n }\n}\n\n.layout-multiple-columns .app-holder {\n &,\n & > div {\n height: 100%;\n }\n}\n\n.error-boundary,\n.app-holder noscript {\n flex-direction: column;\n font-size: 16px;\n font-weight: 400;\n line-height: 1.7;\n color: lighten($error-red, 4%);\n text-align: center;\n\n & > div {\n max-width: 500px;\n }\n\n p {\n margin-bottom: .85em;\n\n &:last-child {\n margin-bottom: 0;\n }\n }\n\n a {\n color: $highlight-text-color;\n\n &:hover,\n &:focus,\n &:active {\n text-decoration: none;\n }\n }\n\n &__footer {\n color: $dark-text-color;\n font-size: 13px;\n\n a {\n color: $dark-text-color;\n }\n }\n\n button {\n display: inline;\n border: 0;\n background: transparent;\n color: $dark-text-color;\n font: inherit;\n padding: 0;\n margin: 0;\n line-height: inherit;\n cursor: pointer;\n outline: 0;\n transition: color 300ms linear;\n text-decoration: underline;\n\n &:hover,\n &:focus,\n &:active {\n text-decoration: none;\n }\n\n &.copied {\n color: $valid-value-color;\n transition: none;\n }\n }\n}\n",".container-alt {\n width: 700px;\n margin: 0 auto;\n margin-top: 40px;\n\n @media screen and (max-width: 740px) {\n width: 100%;\n margin: 0;\n }\n}\n\n.logo-container {\n margin: 100px auto 50px;\n\n @media screen and (max-width: 500px) {\n margin: 40px auto 0;\n }\n\n h1 {\n display: flex;\n justify-content: center;\n align-items: center;\n\n svg {\n fill: $primary-text-color;\n height: 42px;\n margin-right: 10px;\n }\n\n a {\n display: flex;\n justify-content: center;\n align-items: center;\n color: $primary-text-color;\n text-decoration: none;\n outline: 0;\n padding: 12px 16px;\n line-height: 32px;\n font-family: $font-display, sans-serif;\n font-weight: 500;\n font-size: 14px;\n }\n }\n}\n\n.compose-standalone {\n .compose-form {\n width: 400px;\n margin: 0 auto;\n padding: 20px 0;\n margin-top: 40px;\n box-sizing: border-box;\n\n @media screen and (max-width: 400px) {\n width: 100%;\n margin-top: 0;\n padding: 20px;\n }\n }\n}\n\n.account-header {\n width: 400px;\n margin: 0 auto;\n display: flex;\n font-size: 13px;\n line-height: 18px;\n box-sizing: border-box;\n padding: 20px 0;\n padding-bottom: 0;\n margin-bottom: -30px;\n margin-top: 40px;\n\n @media screen and (max-width: 440px) {\n width: 100%;\n margin: 0;\n margin-bottom: 10px;\n padding: 20px;\n padding-bottom: 0;\n }\n\n .avatar {\n width: 40px;\n height: 40px;\n margin-right: 8px;\n\n img {\n width: 100%;\n height: 100%;\n display: block;\n margin: 0;\n border-radius: 4px;\n }\n }\n\n .name {\n flex: 1 1 auto;\n color: $secondary-text-color;\n width: calc(100% - 88px);\n\n .username {\n display: block;\n font-weight: 500;\n text-overflow: ellipsis;\n overflow: hidden;\n }\n }\n\n .logout-link {\n display: block;\n font-size: 32px;\n line-height: 40px;\n margin-left: 8px;\n }\n}\n\n.grid-3 {\n display: grid;\n grid-gap: 10px;\n grid-template-columns: 3fr 1fr;\n grid-auto-columns: 25%;\n grid-auto-rows: max-content;\n\n .column-0 {\n grid-column: 1 / 3;\n grid-row: 1;\n }\n\n .column-1 {\n grid-column: 1;\n grid-row: 2;\n }\n\n .column-2 {\n grid-column: 2;\n grid-row: 2;\n }\n\n .column-3 {\n grid-column: 1 / 3;\n grid-row: 3;\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n grid-gap: 0;\n grid-template-columns: minmax(0, 100%);\n\n .column-0 {\n grid-column: 1;\n }\n\n .column-1 {\n grid-column: 1;\n grid-row: 3;\n }\n\n .column-2 {\n grid-column: 1;\n grid-row: 2;\n }\n\n .column-3 {\n grid-column: 1;\n grid-row: 4;\n }\n }\n}\n\n.grid-4 {\n display: grid;\n grid-gap: 10px;\n grid-template-columns: repeat(4, minmax(0, 1fr));\n grid-auto-columns: 25%;\n grid-auto-rows: max-content;\n\n .column-0 {\n grid-column: 1 / 5;\n grid-row: 1;\n }\n\n .column-1 {\n grid-column: 1 / 4;\n grid-row: 2;\n }\n\n .column-2 {\n grid-column: 4;\n grid-row: 2;\n }\n\n .column-3 {\n grid-column: 2 / 5;\n grid-row: 3;\n }\n\n .column-4 {\n grid-column: 1;\n grid-row: 3;\n }\n\n .landing-page__call-to-action {\n min-height: 100%;\n }\n\n .flash-message {\n margin-bottom: 10px;\n }\n\n @media screen and (max-width: 738px) {\n grid-template-columns: minmax(0, 50%) minmax(0, 50%);\n\n .landing-page__call-to-action {\n padding: 20px;\n display: flex;\n align-items: center;\n justify-content: center;\n }\n\n .row__information-board {\n width: 100%;\n justify-content: center;\n align-items: center;\n }\n\n .row__mascot {\n display: none;\n }\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n grid-gap: 0;\n grid-template-columns: minmax(0, 100%);\n\n .column-0 {\n grid-column: 1;\n }\n\n .column-1 {\n grid-column: 1;\n grid-row: 3;\n }\n\n .column-2 {\n grid-column: 1;\n grid-row: 2;\n }\n\n .column-3 {\n grid-column: 1;\n grid-row: 5;\n }\n\n .column-4 {\n grid-column: 1;\n grid-row: 4;\n }\n }\n}\n\n.public-layout {\n @media screen and (max-width: $no-gap-breakpoint) {\n padding-top: 48px;\n }\n\n .container {\n max-width: 960px;\n\n @media screen and (max-width: $no-gap-breakpoint) {\n padding: 0;\n }\n }\n\n .header {\n background: lighten($ui-base-color, 8%);\n box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);\n border-radius: 4px;\n height: 48px;\n margin: 10px 0;\n display: flex;\n align-items: stretch;\n justify-content: center;\n flex-wrap: nowrap;\n overflow: hidden;\n\n @media screen and (max-width: $no-gap-breakpoint) {\n position: fixed;\n width: 100%;\n top: 0;\n left: 0;\n margin: 0;\n border-radius: 0;\n box-shadow: none;\n z-index: 110;\n }\n\n & > div {\n flex: 1 1 33.3%;\n min-height: 1px;\n }\n\n .nav-left {\n display: flex;\n align-items: stretch;\n justify-content: flex-start;\n flex-wrap: nowrap;\n }\n\n .nav-center {\n display: flex;\n align-items: stretch;\n justify-content: center;\n flex-wrap: nowrap;\n }\n\n .nav-right {\n display: flex;\n align-items: stretch;\n justify-content: flex-end;\n flex-wrap: nowrap;\n }\n\n .brand {\n display: block;\n padding: 15px;\n\n svg {\n display: block;\n height: 18px;\n width: auto;\n position: relative;\n bottom: -2px;\n fill: $primary-text-color;\n\n @media screen and (max-width: $no-gap-breakpoint) {\n height: 20px;\n }\n }\n\n &:hover,\n &:focus,\n &:active {\n background: lighten($ui-base-color, 12%);\n }\n }\n\n .nav-link {\n display: flex;\n align-items: center;\n padding: 0 1rem;\n font-size: 12px;\n font-weight: 500;\n text-decoration: none;\n color: $darker-text-color;\n white-space: nowrap;\n text-align: center;\n\n &:hover,\n &:focus,\n &:active {\n text-decoration: underline;\n color: $primary-text-color;\n }\n\n @media screen and (max-width: 550px) {\n &.optional {\n display: none;\n }\n }\n }\n\n .nav-button {\n background: lighten($ui-base-color, 16%);\n margin: 8px;\n margin-left: 0;\n border-radius: 4px;\n\n &:hover,\n &:focus,\n &:active {\n text-decoration: none;\n background: lighten($ui-base-color, 20%);\n }\n }\n }\n\n $no-columns-breakpoint: 600px;\n\n .grid {\n display: grid;\n grid-gap: 10px;\n grid-template-columns: minmax(300px, 3fr) minmax(298px, 1fr);\n grid-auto-columns: 25%;\n grid-auto-rows: max-content;\n\n .column-0 {\n grid-row: 1;\n grid-column: 1;\n }\n\n .column-1 {\n grid-row: 1;\n grid-column: 2;\n }\n\n @media screen and (max-width: $no-columns-breakpoint) {\n grid-template-columns: 100%;\n grid-gap: 0;\n\n .column-1 {\n display: none;\n }\n }\n }\n\n .directory__card {\n border-radius: 4px;\n\n @media screen and (max-width: $no-gap-breakpoint) {\n border-radius: 0;\n }\n }\n\n .page-header {\n @media screen and (max-width: $no-gap-breakpoint) {\n border-bottom: 0;\n }\n }\n\n .public-account-header {\n overflow: hidden;\n margin-bottom: 10px;\n box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);\n\n &.inactive {\n opacity: 0.5;\n\n .public-account-header__image,\n .avatar {\n filter: grayscale(100%);\n }\n\n .logo-button {\n background-color: $secondary-text-color;\n }\n }\n\n &__image {\n border-radius: 4px 4px 0 0;\n overflow: hidden;\n height: 300px;\n position: relative;\n background: darken($ui-base-color, 12%);\n\n &::after {\n content: \"\";\n display: block;\n position: absolute;\n width: 100%;\n height: 100%;\n box-shadow: inset 0 -1px 1px 1px rgba($base-shadow-color, 0.15);\n top: 0;\n left: 0;\n }\n\n img {\n object-fit: cover;\n display: block;\n width: 100%;\n height: 100%;\n margin: 0;\n border-radius: 4px 4px 0 0;\n }\n\n @media screen and (max-width: 600px) {\n height: 200px;\n }\n }\n\n &--no-bar {\n margin-bottom: 0;\n\n .public-account-header__image,\n .public-account-header__image img {\n border-radius: 4px;\n\n @media screen and (max-width: $no-gap-breakpoint) {\n border-radius: 0;\n }\n }\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n margin-bottom: 0;\n box-shadow: none;\n\n &__image::after {\n display: none;\n }\n\n &__image,\n &__image img {\n border-radius: 0;\n }\n }\n\n &__bar {\n position: relative;\n margin-top: -80px;\n display: flex;\n justify-content: flex-start;\n\n &::before {\n content: \"\";\n display: block;\n background: lighten($ui-base-color, 4%);\n position: absolute;\n bottom: 0;\n left: 0;\n right: 0;\n height: 60px;\n border-radius: 0 0 4px 4px;\n z-index: -1;\n }\n\n .avatar {\n display: block;\n width: 120px;\n height: 120px;\n padding-left: 20px - 4px;\n flex: 0 0 auto;\n\n img {\n display: block;\n width: 100%;\n height: 100%;\n margin: 0;\n border-radius: 50%;\n border: 4px solid lighten($ui-base-color, 4%);\n background: darken($ui-base-color, 8%);\n }\n }\n\n @media screen and (max-width: 600px) {\n margin-top: 0;\n background: lighten($ui-base-color, 4%);\n border-radius: 0 0 4px 4px;\n padding: 5px;\n\n &::before {\n display: none;\n }\n\n .avatar {\n width: 48px;\n height: 48px;\n padding: 7px 0;\n padding-left: 10px;\n\n img {\n border: 0;\n border-radius: 4px;\n }\n\n @media screen and (max-width: 360px) {\n display: none;\n }\n }\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n border-radius: 0;\n }\n\n @media screen and (max-width: $no-columns-breakpoint) {\n flex-wrap: wrap;\n }\n }\n\n &__tabs {\n flex: 1 1 auto;\n margin-left: 20px;\n\n &__name {\n padding-top: 20px;\n padding-bottom: 8px;\n\n h1 {\n font-size: 20px;\n line-height: 18px * 1.5;\n color: $primary-text-color;\n font-weight: 500;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n text-shadow: 1px 1px 1px $base-shadow-color;\n\n small {\n display: block;\n font-size: 14px;\n color: $primary-text-color;\n font-weight: 400;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n }\n }\n\n @media screen and (max-width: 600px) {\n margin-left: 15px;\n display: flex;\n justify-content: space-between;\n align-items: center;\n\n &__name {\n padding-top: 0;\n padding-bottom: 0;\n\n h1 {\n font-size: 16px;\n line-height: 24px;\n text-shadow: none;\n\n small {\n color: $darker-text-color;\n }\n }\n }\n }\n\n &__tabs {\n display: flex;\n justify-content: flex-start;\n align-items: stretch;\n height: 58px;\n\n .details-counters {\n display: flex;\n flex-direction: row;\n min-width: 300px;\n }\n\n @media screen and (max-width: $no-columns-breakpoint) {\n .details-counters {\n display: none;\n }\n }\n\n .counter {\n min-width: 33.3%;\n box-sizing: border-box;\n flex: 0 0 auto;\n color: $darker-text-color;\n padding: 10px;\n border-right: 1px solid lighten($ui-base-color, 4%);\n cursor: default;\n text-align: center;\n position: relative;\n\n a {\n display: block;\n }\n\n &:last-child {\n border-right: 0;\n }\n\n &::after {\n display: block;\n content: \"\";\n position: absolute;\n bottom: 0;\n left: 0;\n width: 100%;\n border-bottom: 4px solid $ui-primary-color;\n opacity: 0.5;\n transition: all 400ms ease;\n }\n\n &.active {\n &::after {\n border-bottom: 4px solid $highlight-text-color;\n opacity: 1;\n }\n\n &.inactive::after {\n border-bottom-color: $secondary-text-color;\n }\n }\n\n &:hover {\n &::after {\n opacity: 1;\n transition-duration: 100ms;\n }\n }\n\n a {\n text-decoration: none;\n color: inherit;\n }\n\n .counter-label {\n font-size: 12px;\n display: block;\n }\n\n .counter-number {\n font-weight: 500;\n font-size: 18px;\n margin-bottom: 5px;\n color: $primary-text-color;\n font-family: $font-display, sans-serif;\n }\n }\n\n .spacer {\n flex: 1 1 auto;\n height: 1px;\n }\n\n &__buttons {\n padding: 7px 8px;\n }\n }\n }\n\n &__extra {\n display: none;\n margin-top: 4px;\n\n .public-account-bio {\n border-radius: 0;\n box-shadow: none;\n background: transparent;\n margin: 0 -5px;\n\n .account__header__fields {\n border-top: 1px solid lighten($ui-base-color, 12%);\n }\n\n .roles {\n display: none;\n }\n }\n\n &__links {\n margin-top: -15px;\n font-size: 14px;\n color: $darker-text-color;\n\n a {\n display: inline-block;\n color: $darker-text-color;\n text-decoration: none;\n padding: 15px;\n font-weight: 500;\n\n strong {\n font-weight: 700;\n color: $primary-text-color;\n }\n }\n }\n\n @media screen and (max-width: $no-columns-breakpoint) {\n display: block;\n flex: 100%;\n }\n }\n }\n\n .account__section-headline {\n border-radius: 4px 4px 0 0;\n\n @media screen and (max-width: $no-gap-breakpoint) {\n border-radius: 0;\n }\n }\n\n .detailed-status__meta {\n margin-top: 25px;\n }\n\n .public-account-bio {\n background: lighten($ui-base-color, 8%);\n box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);\n border-radius: 4px;\n overflow: hidden;\n margin-bottom: 10px;\n\n @media screen and (max-width: $no-gap-breakpoint) {\n box-shadow: none;\n margin-bottom: 0;\n border-radius: 0;\n }\n\n .account__header__fields {\n margin: 0;\n border-top: 0;\n\n a {\n color: lighten($ui-highlight-color, 8%);\n }\n\n dl:first-child .verified {\n border-radius: 0 4px 0 0;\n }\n\n .verified a {\n color: $valid-value-color;\n }\n }\n\n .account__header__content {\n padding: 20px;\n padding-bottom: 0;\n color: $primary-text-color;\n }\n\n &__extra,\n .roles {\n padding: 20px;\n font-size: 14px;\n color: $darker-text-color;\n }\n\n .roles {\n padding-bottom: 0;\n }\n }\n\n .directory__list {\n display: grid;\n grid-gap: 10px;\n grid-template-columns: minmax(0, 50%) minmax(0, 50%);\n\n @media screen and (max-width: $no-gap-breakpoint) {\n display: block;\n }\n\n .icon-button {\n font-size: 18px;\n }\n }\n\n .directory__card {\n margin-bottom: 0;\n }\n\n .card-grid {\n display: flex;\n flex-wrap: wrap;\n min-width: 100%;\n margin: 0 -5px;\n\n & > div {\n box-sizing: border-box;\n flex: 1 0 auto;\n width: 300px;\n padding: 0 5px;\n margin-bottom: 10px;\n max-width: 33.333%;\n\n @media screen and (max-width: 900px) {\n max-width: 50%;\n }\n\n @media screen and (max-width: 600px) {\n max-width: 100%;\n }\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n margin: 0;\n border-top: 1px solid lighten($ui-base-color, 8%);\n\n & > div {\n width: 100%;\n padding: 0;\n margin-bottom: 0;\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n\n &:last-child {\n border-bottom: 0;\n }\n\n .card__bar {\n background: $ui-base-color;\n\n &:hover,\n &:active,\n &:focus {\n background: lighten($ui-base-color, 4%);\n }\n }\n }\n }\n }\n}\n",".no-list {\n list-style: none;\n\n li {\n display: inline-block;\n margin: 0 5px;\n }\n}\n\n.recovery-codes {\n list-style: none;\n margin: 0 auto;\n\n li {\n font-size: 125%;\n line-height: 1.5;\n letter-spacing: 1px;\n }\n}\n",".public-layout {\n .footer {\n text-align: left;\n padding-top: 20px;\n padding-bottom: 60px;\n font-size: 12px;\n color: lighten($ui-base-color, 34%);\n\n @media screen and (max-width: $no-gap-breakpoint) {\n padding-left: 20px;\n padding-right: 20px;\n }\n\n .grid {\n display: grid;\n grid-gap: 10px;\n grid-template-columns: 1fr 1fr 2fr 1fr 1fr;\n\n .column-0 {\n grid-column: 1;\n grid-row: 1;\n min-width: 0;\n }\n\n .column-1 {\n grid-column: 2;\n grid-row: 1;\n min-width: 0;\n }\n\n .column-2 {\n grid-column: 3;\n grid-row: 1;\n min-width: 0;\n text-align: center;\n\n h4 a {\n color: lighten($ui-base-color, 34%);\n }\n }\n\n .column-3 {\n grid-column: 4;\n grid-row: 1;\n min-width: 0;\n }\n\n .column-4 {\n grid-column: 5;\n grid-row: 1;\n min-width: 0;\n }\n\n @media screen and (max-width: 690px) {\n grid-template-columns: 1fr 2fr 1fr;\n\n .column-0,\n .column-1 {\n grid-column: 1;\n }\n\n .column-1 {\n grid-row: 2;\n }\n\n .column-2 {\n grid-column: 2;\n }\n\n .column-3,\n .column-4 {\n grid-column: 3;\n }\n\n .column-4 {\n grid-row: 2;\n }\n }\n\n @media screen and (max-width: 600px) {\n .column-1 {\n display: block;\n }\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n .column-0,\n .column-1,\n .column-3,\n .column-4 {\n display: none;\n }\n }\n }\n\n h4 {\n text-transform: uppercase;\n font-weight: 700;\n margin-bottom: 8px;\n color: $darker-text-color;\n\n a {\n color: inherit;\n text-decoration: none;\n }\n }\n\n ul a {\n text-decoration: none;\n color: lighten($ui-base-color, 34%);\n\n &:hover,\n &:active,\n &:focus {\n text-decoration: underline;\n }\n }\n\n .brand {\n svg {\n display: block;\n height: 36px;\n width: auto;\n margin: 0 auto;\n fill: lighten($ui-base-color, 34%);\n }\n\n &:hover,\n &:focus,\n &:active {\n svg {\n fill: lighten($ui-base-color, 38%);\n }\n }\n }\n }\n}\n",".compact-header {\n h1 {\n font-size: 24px;\n line-height: 28px;\n color: $darker-text-color;\n font-weight: 500;\n margin-bottom: 20px;\n padding: 0 10px;\n word-wrap: break-word;\n\n @media screen and (max-width: 740px) {\n text-align: center;\n padding: 20px 10px 0;\n }\n\n a {\n color: inherit;\n text-decoration: none;\n }\n\n small {\n font-weight: 400;\n color: $secondary-text-color;\n }\n\n img {\n display: inline-block;\n margin-bottom: -5px;\n margin-right: 15px;\n width: 36px;\n height: 36px;\n }\n }\n}\n",".hero-widget {\n margin-bottom: 10px;\n box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);\n\n &__img {\n width: 100%;\n position: relative;\n overflow: hidden;\n border-radius: 4px 4px 0 0;\n background: $base-shadow-color;\n\n img {\n object-fit: cover;\n display: block;\n width: 100%;\n height: 100%;\n margin: 0;\n border-radius: 4px 4px 0 0;\n }\n }\n\n &__text {\n background: $ui-base-color;\n padding: 20px;\n border-radius: 0 0 4px 4px;\n font-size: 15px;\n color: $darker-text-color;\n line-height: 20px;\n word-wrap: break-word;\n font-weight: 400;\n\n .emojione {\n width: 20px;\n height: 20px;\n margin: -3px 0 0;\n }\n\n p {\n margin-bottom: 20px;\n\n &:last-child {\n margin-bottom: 0;\n }\n }\n\n em {\n display: inline;\n margin: 0;\n padding: 0;\n font-weight: 700;\n background: transparent;\n font-family: inherit;\n font-size: inherit;\n line-height: inherit;\n color: lighten($darker-text-color, 10%);\n }\n\n a {\n color: $secondary-text-color;\n text-decoration: none;\n\n &:hover {\n text-decoration: underline;\n }\n }\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n display: none;\n }\n}\n\n.endorsements-widget {\n margin-bottom: 10px;\n padding-bottom: 10px;\n\n h4 {\n padding: 10px;\n text-transform: uppercase;\n font-weight: 700;\n font-size: 13px;\n color: $darker-text-color;\n }\n\n .account {\n padding: 10px 0;\n\n &:last-child {\n border-bottom: 0;\n }\n\n .account__display-name {\n display: flex;\n align-items: center;\n }\n\n .account__avatar {\n width: 44px;\n height: 44px;\n background-size: 44px 44px;\n }\n }\n\n .trends__item {\n padding: 10px;\n }\n}\n\n.trends-widget {\n h4 {\n color: $darker-text-color;\n }\n}\n\n.box-widget {\n padding: 20px;\n border-radius: 4px;\n background: $ui-base-color;\n box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);\n}\n\n.placeholder-widget {\n padding: 16px;\n border-radius: 4px;\n border: 2px dashed $dark-text-color;\n text-align: center;\n color: $darker-text-color;\n margin-bottom: 10px;\n}\n\n.contact-widget {\n min-height: 100%;\n font-size: 15px;\n color: $darker-text-color;\n line-height: 20px;\n word-wrap: break-word;\n font-weight: 400;\n padding: 0;\n\n h4 {\n padding: 10px;\n text-transform: uppercase;\n font-weight: 700;\n font-size: 13px;\n color: $darker-text-color;\n }\n\n .account {\n border-bottom: 0;\n padding: 10px 0;\n padding-top: 5px;\n }\n\n & > a {\n display: inline-block;\n padding: 10px;\n padding-top: 0;\n color: $darker-text-color;\n text-decoration: none;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n\n &:hover,\n &:focus,\n &:active {\n text-decoration: underline;\n }\n }\n}\n\n.moved-account-widget {\n padding: 15px;\n padding-bottom: 20px;\n border-radius: 4px;\n background: $ui-base-color;\n box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);\n color: $secondary-text-color;\n font-weight: 400;\n margin-bottom: 10px;\n\n strong,\n a {\n font-weight: 500;\n\n @each $lang in $cjk-langs {\n &:lang(#{$lang}) {\n font-weight: 700;\n }\n }\n }\n\n a {\n color: inherit;\n text-decoration: underline;\n\n &.mention {\n text-decoration: none;\n\n span {\n text-decoration: none;\n }\n\n &:focus,\n &:hover,\n &:active {\n text-decoration: none;\n\n span {\n text-decoration: underline;\n }\n }\n }\n }\n\n &__message {\n margin-bottom: 15px;\n\n .fa {\n margin-right: 5px;\n color: $darker-text-color;\n }\n }\n\n &__card {\n .detailed-status__display-avatar {\n position: relative;\n cursor: pointer;\n }\n\n .detailed-status__display-name {\n margin-bottom: 0;\n text-decoration: none;\n\n span {\n font-weight: 400;\n }\n }\n }\n}\n\n.memoriam-widget {\n padding: 20px;\n border-radius: 4px;\n background: $base-shadow-color;\n box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);\n font-size: 14px;\n color: $darker-text-color;\n margin-bottom: 10px;\n}\n\n.page-header {\n background: lighten($ui-base-color, 8%);\n box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);\n border-radius: 4px;\n padding: 60px 15px;\n text-align: center;\n margin: 10px 0;\n\n h1 {\n color: $primary-text-color;\n font-size: 36px;\n line-height: 1.1;\n font-weight: 700;\n margin-bottom: 10px;\n }\n\n p {\n font-size: 15px;\n color: $darker-text-color;\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n margin-top: 0;\n background: lighten($ui-base-color, 4%);\n\n h1 {\n font-size: 24px;\n }\n }\n}\n\n.directory {\n background: $ui-base-color;\n border-radius: 4px;\n box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);\n\n &__tag {\n box-sizing: border-box;\n margin-bottom: 10px;\n\n & > a,\n & > div {\n display: flex;\n align-items: center;\n justify-content: space-between;\n background: $ui-base-color;\n border-radius: 4px;\n padding: 15px;\n text-decoration: none;\n color: inherit;\n box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);\n }\n\n & > a {\n &:hover,\n &:active,\n &:focus {\n background: lighten($ui-base-color, 8%);\n }\n }\n\n &.active > a {\n background: $ui-highlight-color;\n cursor: default;\n }\n\n &.disabled > div {\n opacity: 0.5;\n cursor: default;\n }\n\n h4 {\n flex: 1 1 auto;\n font-size: 18px;\n font-weight: 700;\n color: $primary-text-color;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n\n .fa {\n color: $darker-text-color;\n }\n\n small {\n display: block;\n font-weight: 400;\n font-size: 15px;\n margin-top: 8px;\n color: $darker-text-color;\n }\n }\n\n &.active h4 {\n &,\n .fa,\n small,\n .trends__item__current {\n color: $primary-text-color;\n }\n }\n\n .avatar-stack {\n flex: 0 0 auto;\n width: (36px + 4px) * 3;\n }\n\n &.active .avatar-stack .account__avatar {\n border-color: $ui-highlight-color;\n }\n\n .trends__item__current {\n padding-right: 0;\n }\n }\n}\n\n.avatar-stack {\n display: flex;\n justify-content: flex-end;\n\n .account__avatar {\n flex: 0 0 auto;\n width: 36px;\n height: 36px;\n border-radius: 50%;\n position: relative;\n margin-left: -10px;\n background: darken($ui-base-color, 8%);\n border: 2px solid $ui-base-color;\n\n &:nth-child(1) {\n z-index: 1;\n }\n\n &:nth-child(2) {\n z-index: 2;\n }\n\n &:nth-child(3) {\n z-index: 3;\n }\n }\n}\n\n.accounts-table {\n width: 100%;\n\n .account {\n padding: 0;\n border: 0;\n }\n\n strong {\n font-weight: 700;\n }\n\n thead th {\n text-align: center;\n text-transform: uppercase;\n color: $darker-text-color;\n font-weight: 700;\n padding: 10px;\n\n &:first-child {\n text-align: left;\n }\n }\n\n tbody td {\n padding: 15px 0;\n vertical-align: middle;\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n }\n\n tbody tr:last-child td {\n border-bottom: 0;\n }\n\n &__count {\n width: 120px;\n text-align: center;\n font-size: 15px;\n font-weight: 500;\n color: $primary-text-color;\n\n small {\n display: block;\n color: $darker-text-color;\n font-weight: 400;\n font-size: 14px;\n }\n }\n\n &__comment {\n width: 50%;\n vertical-align: initial !important;\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n tbody td.optional {\n display: none;\n }\n }\n}\n\n.moved-account-widget,\n.memoriam-widget,\n.box-widget,\n.contact-widget,\n.landing-page__information.contact-widget,\n.directory,\n.page-header {\n @media screen and (max-width: $no-gap-breakpoint) {\n margin-bottom: 0;\n box-shadow: none;\n border-radius: 0;\n }\n}\n\n$maximum-width: 1235px;\n$fluid-breakpoint: $maximum-width + 20px;\n\n.statuses-grid {\n min-height: 600px;\n\n @media screen and (max-width: 640px) {\n width: 100% !important; // Masonry layout is unnecessary at this width\n }\n\n &__item {\n width: (960px - 20px) / 3;\n\n @media screen and (max-width: $fluid-breakpoint) {\n width: (940px - 20px) / 3;\n }\n\n @media screen and (max-width: 640px) {\n width: 100%;\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n width: 100vw;\n }\n }\n\n .detailed-status {\n border-radius: 4px;\n\n @media screen and (max-width: $no-gap-breakpoint) {\n border-top: 1px solid lighten($ui-base-color, 16%);\n }\n\n &.compact {\n .detailed-status__meta {\n margin-top: 15px;\n }\n\n .status__content {\n font-size: 15px;\n line-height: 20px;\n\n .emojione {\n width: 20px;\n height: 20px;\n margin: -3px 0 0;\n }\n\n .status__content__spoiler-link {\n line-height: 20px;\n margin: 0;\n }\n }\n\n .media-gallery,\n .status-card,\n .video-player {\n margin-top: 15px;\n }\n }\n }\n}\n\n.notice-widget {\n margin-bottom: 10px;\n color: $darker-text-color;\n\n p {\n margin-bottom: 10px;\n\n &:last-child {\n margin-bottom: 0;\n }\n }\n\n a {\n font-size: 14px;\n line-height: 20px;\n }\n}\n\n.notice-widget,\n.placeholder-widget {\n a {\n text-decoration: none;\n font-weight: 500;\n color: $ui-highlight-color;\n\n &:hover,\n &:focus,\n &:active {\n text-decoration: underline;\n }\n }\n}\n\n.table-of-contents {\n background: darken($ui-base-color, 4%);\n min-height: 100%;\n font-size: 14px;\n border-radius: 4px;\n\n li a {\n display: block;\n font-weight: 500;\n padding: 15px;\n overflow: hidden;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n text-decoration: none;\n color: $primary-text-color;\n border-bottom: 1px solid lighten($ui-base-color, 4%);\n\n &:hover,\n &:focus,\n &:active {\n text-decoration: underline;\n }\n }\n\n li:last-child a {\n border-bottom: 0;\n }\n\n li ul {\n padding-left: 20px;\n border-bottom: 1px solid lighten($ui-base-color, 4%);\n }\n}\n","$no-columns-breakpoint: 600px;\n\ncode {\n font-family: $font-monospace, monospace;\n font-weight: 400;\n}\n\n.form-container {\n max-width: 400px;\n padding: 20px;\n margin: 0 auto;\n}\n\n.simple_form {\n .input {\n margin-bottom: 15px;\n overflow: hidden;\n\n &.hidden {\n margin: 0;\n }\n\n &.radio_buttons {\n .radio {\n margin-bottom: 15px;\n\n &:last-child {\n margin-bottom: 0;\n }\n }\n\n .radio > label {\n position: relative;\n padding-left: 28px;\n\n input {\n position: absolute;\n top: -2px;\n left: 0;\n }\n }\n }\n\n &.boolean {\n position: relative;\n margin-bottom: 0;\n\n .label_input > label {\n font-family: inherit;\n font-size: 14px;\n padding-top: 5px;\n color: $primary-text-color;\n display: block;\n width: auto;\n }\n\n .label_input,\n .hint {\n padding-left: 28px;\n }\n\n .label_input__wrapper {\n position: static;\n }\n\n label.checkbox {\n position: absolute;\n top: 2px;\n left: 0;\n }\n\n label a {\n color: $highlight-text-color;\n text-decoration: underline;\n\n &:hover,\n &:active,\n &:focus {\n text-decoration: none;\n }\n }\n\n .recommended {\n position: absolute;\n margin: 0 4px;\n margin-top: -2px;\n }\n }\n }\n\n .row {\n display: flex;\n margin: 0 -5px;\n\n .input {\n box-sizing: border-box;\n flex: 1 1 auto;\n width: 50%;\n padding: 0 5px;\n }\n }\n\n .hint {\n color: $darker-text-color;\n\n a {\n color: $highlight-text-color;\n }\n\n code {\n border-radius: 3px;\n padding: 0.2em 0.4em;\n background: darken($ui-base-color, 12%);\n }\n\n li {\n list-style: disc;\n margin-left: 18px;\n }\n }\n\n ul.hint {\n margin-bottom: 15px;\n }\n\n span.hint {\n display: block;\n font-size: 12px;\n margin-top: 4px;\n }\n\n p.hint {\n margin-bottom: 15px;\n color: $darker-text-color;\n\n &.subtle-hint {\n text-align: center;\n font-size: 12px;\n line-height: 18px;\n margin-top: 15px;\n margin-bottom: 0;\n }\n }\n\n .card {\n margin-bottom: 15px;\n }\n\n strong {\n font-weight: 500;\n\n @each $lang in $cjk-langs {\n &:lang(#{$lang}) {\n font-weight: 700;\n }\n }\n }\n\n .input.with_floating_label {\n .label_input {\n display: flex;\n\n & > label {\n font-family: inherit;\n font-size: 14px;\n color: $primary-text-color;\n font-weight: 500;\n min-width: 150px;\n flex: 0 0 auto;\n }\n\n input,\n select {\n flex: 1 1 auto;\n }\n }\n\n &.select .hint {\n margin-top: 6px;\n margin-left: 150px;\n }\n }\n\n .input.with_label {\n .label_input > label {\n font-family: inherit;\n font-size: 14px;\n color: $primary-text-color;\n display: block;\n margin-bottom: 8px;\n word-wrap: break-word;\n font-weight: 500;\n }\n\n .hint {\n margin-top: 6px;\n }\n\n ul {\n flex: 390px;\n }\n }\n\n .input.with_block_label {\n max-width: none;\n\n & > label {\n font-family: inherit;\n font-size: 16px;\n color: $primary-text-color;\n display: block;\n font-weight: 500;\n padding-top: 5px;\n }\n\n .hint {\n margin-bottom: 15px;\n }\n\n ul {\n columns: 2;\n }\n }\n\n .input.datetime .label_input select {\n display: inline-block;\n width: auto;\n flex: 0;\n }\n\n .required abbr {\n text-decoration: none;\n color: lighten($error-value-color, 12%);\n }\n\n .fields-group {\n margin-bottom: 25px;\n\n .input:last-child {\n margin-bottom: 0;\n }\n }\n\n .fields-row {\n display: flex;\n margin: 0 -10px;\n padding-top: 5px;\n margin-bottom: 25px;\n\n .input {\n max-width: none;\n }\n\n &__column {\n box-sizing: border-box;\n padding: 0 10px;\n flex: 1 1 auto;\n min-height: 1px;\n\n &-6 {\n max-width: 50%;\n }\n\n .actions {\n margin-top: 27px;\n }\n }\n\n .fields-group:last-child,\n .fields-row__column.fields-group {\n margin-bottom: 0;\n }\n\n @media screen and (max-width: $no-columns-breakpoint) {\n display: block;\n margin-bottom: 0;\n\n &__column {\n max-width: none;\n }\n\n .fields-group:last-child,\n .fields-row__column.fields-group,\n .fields-row__column {\n margin-bottom: 25px;\n }\n }\n }\n\n .input.radio_buttons .radio label {\n margin-bottom: 5px;\n font-family: inherit;\n font-size: 14px;\n color: $primary-text-color;\n display: block;\n width: auto;\n }\n\n .check_boxes {\n .checkbox {\n label {\n font-family: inherit;\n font-size: 14px;\n color: $primary-text-color;\n display: inline-block;\n width: auto;\n position: relative;\n padding-top: 5px;\n padding-left: 25px;\n flex: 1 1 auto;\n }\n\n input[type=checkbox] {\n position: absolute;\n left: 0;\n top: 5px;\n margin: 0;\n }\n }\n }\n\n .input.static .label_input__wrapper {\n font-size: 16px;\n padding: 10px;\n border: 1px solid $dark-text-color;\n border-radius: 4px;\n }\n\n input[type=text],\n input[type=number],\n input[type=email],\n input[type=password],\n textarea {\n box-sizing: border-box;\n font-size: 16px;\n color: $primary-text-color;\n display: block;\n width: 100%;\n outline: 0;\n font-family: inherit;\n resize: vertical;\n background: darken($ui-base-color, 10%);\n border: 1px solid darken($ui-base-color, 14%);\n border-radius: 4px;\n padding: 10px;\n\n &::placeholder {\n color: lighten($darker-text-color, 4%);\n }\n\n &:invalid {\n box-shadow: none;\n }\n\n &:focus:invalid:not(:placeholder-shown) {\n border-color: lighten($error-red, 12%);\n }\n\n &:required:valid {\n border-color: $valid-value-color;\n }\n\n &:hover {\n border-color: darken($ui-base-color, 20%);\n }\n\n &:active,\n &:focus {\n border-color: $highlight-text-color;\n background: darken($ui-base-color, 8%);\n }\n }\n\n .input.field_with_errors {\n label {\n color: lighten($error-red, 12%);\n }\n\n input[type=text],\n input[type=number],\n input[type=email],\n input[type=password],\n textarea,\n select {\n border-color: lighten($error-red, 12%);\n }\n\n .error {\n display: block;\n font-weight: 500;\n color: lighten($error-red, 12%);\n margin-top: 4px;\n }\n }\n\n .input.disabled {\n opacity: 0.5;\n }\n\n .actions {\n margin-top: 30px;\n display: flex;\n\n &.actions--top {\n margin-top: 0;\n margin-bottom: 30px;\n }\n }\n\n button,\n .button,\n .block-button {\n display: block;\n width: 100%;\n border: 0;\n border-radius: 4px;\n background: $ui-highlight-color;\n color: $primary-text-color;\n font-size: 18px;\n line-height: inherit;\n height: auto;\n padding: 10px;\n text-transform: uppercase;\n text-decoration: none;\n text-align: center;\n box-sizing: border-box;\n cursor: pointer;\n font-weight: 500;\n outline: 0;\n margin-bottom: 10px;\n margin-right: 10px;\n\n &:last-child {\n margin-right: 0;\n }\n\n &:hover {\n background-color: lighten($ui-highlight-color, 5%);\n }\n\n &:active,\n &:focus {\n background-color: darken($ui-highlight-color, 5%);\n }\n\n &:disabled:hover {\n background-color: $ui-primary-color;\n }\n\n &.negative {\n background: $error-value-color;\n\n &:hover {\n background-color: lighten($error-value-color, 5%);\n }\n\n &:active,\n &:focus {\n background-color: darken($error-value-color, 5%);\n }\n }\n }\n\n select {\n appearance: none;\n box-sizing: border-box;\n font-size: 16px;\n color: $primary-text-color;\n display: block;\n width: 100%;\n outline: 0;\n font-family: inherit;\n resize: vertical;\n background: darken($ui-base-color, 10%) url(\"data:image/svg+xml;utf8,\") no-repeat right 8px center / auto 16px;\n border: 1px solid darken($ui-base-color, 14%);\n border-radius: 4px;\n padding-left: 10px;\n padding-right: 30px;\n height: 41px;\n }\n\n h4 {\n margin-bottom: 15px !important;\n }\n\n .label_input {\n &__wrapper {\n position: relative;\n }\n\n &__append {\n position: absolute;\n right: 3px;\n top: 1px;\n padding: 10px;\n padding-bottom: 9px;\n font-size: 16px;\n color: $dark-text-color;\n font-family: inherit;\n pointer-events: none;\n cursor: default;\n max-width: 140px;\n white-space: nowrap;\n overflow: hidden;\n\n &::after {\n content: '';\n display: block;\n position: absolute;\n top: 0;\n right: 0;\n bottom: 1px;\n width: 5px;\n background-image: linear-gradient(to right, rgba(darken($ui-base-color, 10%), 0), darken($ui-base-color, 10%));\n }\n }\n }\n\n &__overlay-area {\n position: relative;\n\n &__blurred form {\n filter: blur(2px);\n }\n\n &__overlay {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n display: flex;\n justify-content: center;\n align-items: center;\n background: rgba($ui-base-color, 0.65);\n border-radius: 4px;\n margin-left: -4px;\n margin-top: -4px;\n padding: 4px;\n\n &__content {\n text-align: center;\n\n &.rich-formatting {\n &,\n p {\n color: $primary-text-color;\n }\n }\n }\n }\n }\n}\n\n.block-icon {\n display: block;\n margin: 0 auto;\n margin-bottom: 10px;\n font-size: 24px;\n}\n\n.flash-message {\n background: lighten($ui-base-color, 8%);\n color: $darker-text-color;\n border-radius: 4px;\n padding: 15px 10px;\n margin-bottom: 30px;\n text-align: center;\n\n &.notice {\n border: 1px solid rgba($valid-value-color, 0.5);\n background: rgba($valid-value-color, 0.25);\n color: $valid-value-color;\n }\n\n &.alert {\n border: 1px solid rgba($error-value-color, 0.5);\n background: rgba($error-value-color, 0.25);\n color: $error-value-color;\n }\n\n a {\n display: inline-block;\n color: $darker-text-color;\n text-decoration: none;\n\n &:hover {\n color: $primary-text-color;\n text-decoration: underline;\n }\n }\n\n p {\n margin-bottom: 15px;\n }\n\n .oauth-code {\n outline: 0;\n box-sizing: border-box;\n display: block;\n width: 100%;\n border: 0;\n padding: 10px;\n font-family: $font-monospace, monospace;\n background: $ui-base-color;\n color: $primary-text-color;\n font-size: 14px;\n margin: 0;\n\n &::-moz-focus-inner {\n border: 0;\n }\n\n &::-moz-focus-inner,\n &:focus,\n &:active {\n outline: 0 !important;\n }\n\n &:focus {\n background: lighten($ui-base-color, 4%);\n }\n }\n\n strong {\n font-weight: 500;\n\n @each $lang in $cjk-langs {\n &:lang(#{$lang}) {\n font-weight: 700;\n }\n }\n }\n\n @media screen and (max-width: 740px) and (min-width: 441px) {\n margin-top: 40px;\n }\n}\n\n.form-footer {\n margin-top: 30px;\n text-align: center;\n\n a {\n color: $darker-text-color;\n text-decoration: none;\n\n &:hover {\n text-decoration: underline;\n }\n }\n}\n\n.quick-nav {\n list-style: none;\n margin-bottom: 25px;\n font-size: 14px;\n\n li {\n display: inline-block;\n margin-right: 10px;\n }\n\n a {\n color: $highlight-text-color;\n text-transform: uppercase;\n text-decoration: none;\n font-weight: 700;\n\n &:hover,\n &:focus,\n &:active {\n color: lighten($highlight-text-color, 8%);\n }\n }\n}\n\n.oauth-prompt,\n.follow-prompt {\n margin-bottom: 30px;\n color: $darker-text-color;\n\n h2 {\n font-size: 16px;\n margin-bottom: 30px;\n text-align: center;\n }\n\n strong {\n color: $secondary-text-color;\n font-weight: 500;\n\n @each $lang in $cjk-langs {\n &:lang(#{$lang}) {\n font-weight: 700;\n }\n }\n }\n\n @media screen and (max-width: 740px) and (min-width: 441px) {\n margin-top: 40px;\n }\n}\n\n.qr-wrapper {\n display: flex;\n flex-wrap: wrap;\n align-items: flex-start;\n}\n\n.qr-code {\n flex: 0 0 auto;\n background: $simple-background-color;\n padding: 4px;\n margin: 0 10px 20px 0;\n box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);\n display: inline-block;\n\n svg {\n display: block;\n margin: 0;\n }\n}\n\n.qr-alternative {\n margin-bottom: 20px;\n color: $secondary-text-color;\n flex: 150px;\n\n samp {\n display: block;\n font-size: 14px;\n }\n}\n\n.table-form {\n p {\n margin-bottom: 15px;\n\n strong {\n font-weight: 500;\n\n @each $lang in $cjk-langs {\n &:lang(#{$lang}) {\n font-weight: 700;\n }\n }\n }\n }\n}\n\n.simple_form,\n.table-form {\n .warning {\n box-sizing: border-box;\n background: rgba($error-value-color, 0.5);\n color: $primary-text-color;\n text-shadow: 1px 1px 0 rgba($base-shadow-color, 0.3);\n box-shadow: 0 2px 6px rgba($base-shadow-color, 0.4);\n border-radius: 4px;\n padding: 10px;\n margin-bottom: 15px;\n\n a {\n color: $primary-text-color;\n text-decoration: underline;\n\n &:hover,\n &:focus,\n &:active {\n text-decoration: none;\n }\n }\n\n strong {\n font-weight: 600;\n display: block;\n margin-bottom: 5px;\n\n @each $lang in $cjk-langs {\n &:lang(#{$lang}) {\n font-weight: 700;\n }\n }\n\n .fa {\n font-weight: 400;\n }\n }\n }\n}\n\n.action-pagination {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n\n .actions,\n .pagination {\n flex: 1 1 auto;\n }\n\n .actions {\n padding: 30px 0;\n padding-right: 20px;\n flex: 0 0 auto;\n }\n}\n\n.post-follow-actions {\n text-align: center;\n color: $darker-text-color;\n\n div {\n margin-bottom: 4px;\n }\n}\n\n.alternative-login {\n margin-top: 20px;\n margin-bottom: 20px;\n\n h4 {\n font-size: 16px;\n color: $primary-text-color;\n text-align: center;\n margin-bottom: 20px;\n border: 0;\n padding: 0;\n }\n\n .button {\n display: block;\n }\n}\n\n.scope-danger {\n color: $warning-red;\n}\n\n.form_admin_settings_site_short_description,\n.form_admin_settings_site_description,\n.form_admin_settings_site_extended_description,\n.form_admin_settings_site_terms,\n.form_admin_settings_custom_css,\n.form_admin_settings_closed_registrations_message {\n textarea {\n font-family: $font-monospace, monospace;\n }\n}\n\n.input-copy {\n background: darken($ui-base-color, 10%);\n border: 1px solid darken($ui-base-color, 14%);\n border-radius: 4px;\n display: flex;\n align-items: center;\n padding-right: 4px;\n position: relative;\n top: 1px;\n transition: border-color 300ms linear;\n\n &__wrapper {\n flex: 1 1 auto;\n }\n\n input[type=text] {\n background: transparent;\n border: 0;\n padding: 10px;\n font-size: 14px;\n font-family: $font-monospace, monospace;\n }\n\n button {\n flex: 0 0 auto;\n margin: 4px;\n text-transform: none;\n font-weight: 400;\n font-size: 14px;\n padding: 7px 18px;\n padding-bottom: 6px;\n width: auto;\n transition: background 300ms linear;\n }\n\n &.copied {\n border-color: $valid-value-color;\n transition: none;\n\n button {\n background: $valid-value-color;\n transition: none;\n }\n }\n}\n\n.connection-prompt {\n margin-bottom: 25px;\n\n .fa-link {\n background-color: darken($ui-base-color, 4%);\n border-radius: 100%;\n font-size: 24px;\n padding: 10px;\n }\n\n &__column {\n align-items: center;\n display: flex;\n flex: 1;\n flex-direction: column;\n flex-shrink: 1;\n max-width: 50%;\n\n &-sep {\n align-self: center;\n flex-grow: 0;\n overflow: visible;\n position: relative;\n z-index: 1;\n }\n\n p {\n word-break: break-word;\n }\n }\n\n .account__avatar {\n margin-bottom: 20px;\n }\n\n &__connection {\n background-color: lighten($ui-base-color, 8%);\n box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);\n border-radius: 4px;\n padding: 25px 10px;\n position: relative;\n text-align: center;\n\n &::after {\n background-color: darken($ui-base-color, 4%);\n content: '';\n display: block;\n height: 100%;\n left: 50%;\n position: absolute;\n top: 0;\n width: 1px;\n }\n }\n\n &__row {\n align-items: flex-start;\n display: flex;\n flex-direction: row;\n }\n}\n",".card {\n & > a {\n display: block;\n text-decoration: none;\n color: inherit;\n box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);\n\n @media screen and (max-width: $no-gap-breakpoint) {\n box-shadow: none;\n }\n\n &:hover,\n &:active,\n &:focus {\n .card__bar {\n background: lighten($ui-base-color, 8%);\n }\n }\n }\n\n &__img {\n height: 130px;\n position: relative;\n background: darken($ui-base-color, 12%);\n border-radius: 4px 4px 0 0;\n\n img {\n display: block;\n width: 100%;\n height: 100%;\n margin: 0;\n object-fit: cover;\n border-radius: 4px 4px 0 0;\n }\n\n @media screen and (max-width: 600px) {\n height: 200px;\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n display: none;\n }\n }\n\n &__bar {\n position: relative;\n padding: 15px;\n display: flex;\n justify-content: flex-start;\n align-items: center;\n background: lighten($ui-base-color, 4%);\n border-radius: 0 0 4px 4px;\n\n @media screen and (max-width: $no-gap-breakpoint) {\n border-radius: 0;\n }\n\n .avatar {\n flex: 0 0 auto;\n width: 48px;\n height: 48px;\n padding-top: 2px;\n\n img {\n width: 100%;\n height: 100%;\n display: block;\n margin: 0;\n border-radius: 4px;\n background: darken($ui-base-color, 8%);\n object-fit: cover;\n }\n }\n\n .display-name {\n margin-left: 15px;\n text-align: left;\n\n strong {\n font-size: 15px;\n color: $primary-text-color;\n font-weight: 500;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n span {\n display: block;\n font-size: 14px;\n color: $darker-text-color;\n font-weight: 400;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n }\n }\n}\n\n.pagination {\n padding: 30px 0;\n text-align: center;\n overflow: hidden;\n\n a,\n .current,\n .newer,\n .older,\n .page,\n .gap {\n font-size: 14px;\n color: $primary-text-color;\n font-weight: 500;\n display: inline-block;\n padding: 6px 10px;\n text-decoration: none;\n }\n\n .current {\n background: $simple-background-color;\n border-radius: 100px;\n color: $inverted-text-color;\n cursor: default;\n margin: 0 10px;\n }\n\n .gap {\n cursor: default;\n }\n\n .older,\n .newer {\n text-transform: uppercase;\n color: $secondary-text-color;\n }\n\n .older {\n float: left;\n padding-left: 0;\n\n .fa {\n display: inline-block;\n margin-right: 5px;\n }\n }\n\n .newer {\n float: right;\n padding-right: 0;\n\n .fa {\n display: inline-block;\n margin-left: 5px;\n }\n }\n\n .disabled {\n cursor: default;\n color: lighten($inverted-text-color, 10%);\n }\n\n @media screen and (max-width: 700px) {\n padding: 30px 20px;\n\n .page {\n display: none;\n }\n\n .newer,\n .older {\n display: inline-block;\n }\n }\n}\n\n.nothing-here {\n background: $ui-base-color;\n box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);\n color: $light-text-color;\n font-size: 14px;\n font-weight: 500;\n text-align: center;\n display: flex;\n justify-content: center;\n align-items: center;\n cursor: default;\n border-radius: 4px;\n padding: 20px;\n min-height: 30vh;\n\n &--under-tabs {\n border-radius: 0 0 4px 4px;\n }\n\n &--flexible {\n box-sizing: border-box;\n min-height: 100%;\n }\n}\n\n.account-role,\n.simple_form .recommended {\n display: inline-block;\n padding: 4px 6px;\n cursor: default;\n border-radius: 3px;\n font-size: 12px;\n line-height: 12px;\n font-weight: 500;\n color: $ui-secondary-color;\n background-color: rgba($ui-secondary-color, 0.1);\n border: 1px solid rgba($ui-secondary-color, 0.5);\n\n &.moderator {\n color: $success-green;\n background-color: rgba($success-green, 0.1);\n border-color: rgba($success-green, 0.5);\n }\n\n &.admin {\n color: lighten($error-red, 12%);\n background-color: rgba(lighten($error-red, 12%), 0.1);\n border-color: rgba(lighten($error-red, 12%), 0.5);\n }\n}\n\n.account__header__fields {\n max-width: 100vw;\n padding: 0;\n margin: 15px -15px -15px;\n border: 0 none;\n border-top: 1px solid lighten($ui-base-color, 12%);\n border-bottom: 1px solid lighten($ui-base-color, 12%);\n font-size: 14px;\n line-height: 20px;\n\n dl {\n display: flex;\n border-bottom: 1px solid lighten($ui-base-color, 12%);\n }\n\n dt,\n dd {\n box-sizing: border-box;\n padding: 14px;\n text-align: center;\n max-height: 48px;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n }\n\n dt {\n font-weight: 500;\n width: 120px;\n flex: 0 0 auto;\n color: $secondary-text-color;\n background: rgba(darken($ui-base-color, 8%), 0.5);\n }\n\n dd {\n flex: 1 1 auto;\n color: $darker-text-color;\n }\n\n a {\n color: $highlight-text-color;\n text-decoration: none;\n\n &:hover,\n &:focus,\n &:active {\n text-decoration: underline;\n }\n }\n\n .verified {\n border: 1px solid rgba($valid-value-color, 0.5);\n background: rgba($valid-value-color, 0.25);\n\n a {\n color: $valid-value-color;\n font-weight: 500;\n }\n\n &__mark {\n color: $valid-value-color;\n }\n }\n\n dl:last-child {\n border-bottom: 0;\n }\n}\n\n.directory__tag .trends__item__current {\n width: auto;\n}\n\n.pending-account {\n &__header {\n color: $darker-text-color;\n\n a {\n color: $ui-secondary-color;\n text-decoration: none;\n\n &:hover,\n &:active,\n &:focus {\n text-decoration: underline;\n }\n }\n\n strong {\n color: $primary-text-color;\n font-weight: 700;\n }\n }\n\n &__body {\n margin-top: 10px;\n }\n}\n",".activity-stream {\n box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);\n border-radius: 4px;\n overflow: hidden;\n margin-bottom: 10px;\n\n &--under-tabs {\n border-radius: 0 0 4px 4px;\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n margin-bottom: 0;\n border-radius: 0;\n box-shadow: none;\n }\n\n &--headless {\n border-radius: 0;\n margin: 0;\n box-shadow: none;\n\n .detailed-status,\n .status {\n border-radius: 0 !important;\n }\n }\n\n div[data-component] {\n width: 100%;\n }\n\n .entry {\n background: $ui-base-color;\n\n .detailed-status,\n .status,\n .load-more {\n animation: none;\n }\n\n &:last-child {\n .detailed-status,\n .status,\n .load-more {\n border-bottom: 0;\n border-radius: 0 0 4px 4px;\n }\n }\n\n &:first-child {\n .detailed-status,\n .status,\n .load-more {\n border-radius: 4px 4px 0 0;\n }\n\n &:last-child {\n .detailed-status,\n .status,\n .load-more {\n border-radius: 4px;\n }\n }\n }\n\n @media screen and (max-width: 740px) {\n .detailed-status,\n .status,\n .load-more {\n border-radius: 0 !important;\n }\n }\n }\n\n &--highlighted .entry {\n background: lighten($ui-base-color, 8%);\n }\n}\n\n.button.logo-button {\n flex: 0 auto;\n font-size: 14px;\n background: $ui-highlight-color;\n color: $primary-text-color;\n text-transform: none;\n line-height: 36px;\n height: auto;\n padding: 3px 15px;\n border: 0;\n\n svg {\n width: 20px;\n height: auto;\n vertical-align: middle;\n margin-right: 5px;\n fill: $primary-text-color;\n }\n\n &:active,\n &:focus,\n &:hover {\n background: lighten($ui-highlight-color, 10%);\n }\n\n &:disabled,\n &.disabled {\n &:active,\n &:focus,\n &:hover {\n background: $ui-primary-color;\n }\n }\n\n &.button--destructive {\n &:active,\n &:focus,\n &:hover {\n background: $error-red;\n }\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n svg {\n display: none;\n }\n }\n}\n\n.embed,\n.public-layout {\n .detailed-status {\n padding: 15px;\n }\n\n .status {\n padding: 15px 15px 15px (48px + 15px * 2);\n min-height: 48px + 2px;\n\n &__avatar {\n left: 15px;\n top: 17px;\n }\n\n &__content {\n padding-top: 5px;\n }\n\n &__prepend {\n margin-left: 48px + 15px * 2;\n padding-top: 15px;\n }\n\n &__prepend-icon-wrapper {\n left: -32px;\n }\n\n .media-gallery,\n &__action-bar,\n .video-player {\n margin-top: 10px;\n }\n }\n}\n","button.icon-button i.fa-retweet {\n background-image: url(\"data:image/svg+xml;utf8,\");\n\n &:hover {\n background-image: url(\"data:image/svg+xml;utf8,\");\n }\n}\n\nbutton.icon-button.disabled i.fa-retweet {\n background-image: url(\"data:image/svg+xml;utf8,\");\n}\n",".app-body {\n -webkit-overflow-scrolling: touch;\n -ms-overflow-style: -ms-autohiding-scrollbar;\n}\n\n.animated-number {\n display: inline-flex;\n flex-direction: column;\n align-items: stretch;\n overflow: hidden;\n position: relative;\n}\n\n.link-button {\n display: block;\n font-size: 15px;\n line-height: 20px;\n color: $ui-highlight-color;\n border: 0;\n background: transparent;\n padding: 0;\n cursor: pointer;\n\n &:hover,\n &:active {\n text-decoration: underline;\n }\n\n &:disabled {\n color: $ui-primary-color;\n cursor: default;\n }\n}\n\n.button {\n background-color: $ui-highlight-color;\n border: 10px none;\n border-radius: 4px;\n box-sizing: border-box;\n color: $primary-text-color;\n cursor: pointer;\n display: inline-block;\n font-family: inherit;\n font-size: 14px;\n font-weight: 500;\n height: 36px;\n letter-spacing: 0;\n line-height: 36px;\n overflow: hidden;\n padding: 0 16px;\n position: relative;\n text-align: center;\n text-transform: uppercase;\n text-decoration: none;\n text-overflow: ellipsis;\n transition: all 100ms ease-in;\n white-space: nowrap;\n width: auto;\n\n &:active,\n &:focus,\n &:hover {\n background-color: lighten($ui-highlight-color, 10%);\n transition: all 200ms ease-out;\n }\n\n &--destructive {\n transition: none;\n\n &:active,\n &:focus,\n &:hover {\n background-color: $error-red;\n transition: none;\n }\n }\n\n &:disabled,\n &.disabled {\n background-color: $ui-primary-color;\n cursor: default;\n }\n\n &::-moz-focus-inner {\n border: 0;\n }\n\n &::-moz-focus-inner,\n &:focus,\n &:active {\n outline: 0 !important;\n }\n\n &.button-primary,\n &.button-alternative,\n &.button-secondary,\n &.button-alternative-2 {\n font-size: 16px;\n line-height: 36px;\n height: auto;\n text-transform: none;\n padding: 4px 16px;\n }\n\n &.button-alternative {\n color: $inverted-text-color;\n background: $ui-primary-color;\n\n &:active,\n &:focus,\n &:hover {\n background-color: lighten($ui-primary-color, 4%);\n }\n }\n\n &.button-alternative-2 {\n background: $ui-base-lighter-color;\n\n &:active,\n &:focus,\n &:hover {\n background-color: lighten($ui-base-lighter-color, 4%);\n }\n }\n\n &.button-secondary {\n color: $darker-text-color;\n background: transparent;\n padding: 3px 15px;\n border: 1px solid $ui-primary-color;\n\n &:active,\n &:focus,\n &:hover {\n border-color: lighten($ui-primary-color, 4%);\n color: lighten($darker-text-color, 4%);\n }\n\n &:disabled {\n opacity: 0.5;\n }\n }\n\n &.button--block {\n display: block;\n width: 100%;\n }\n}\n\n.column__wrapper {\n display: flex;\n flex: 1 1 auto;\n position: relative;\n}\n\n.icon-button {\n display: inline-block;\n padding: 0;\n color: $action-button-color;\n border: 0;\n border-radius: 4px;\n background: transparent;\n cursor: pointer;\n transition: all 100ms ease-in;\n transition-property: background-color, color;\n\n &:hover,\n &:active,\n &:focus {\n color: lighten($action-button-color, 7%);\n background-color: rgba($action-button-color, 0.15);\n transition: all 200ms ease-out;\n transition-property: background-color, color;\n }\n\n &:focus {\n background-color: rgba($action-button-color, 0.3);\n }\n\n &.disabled {\n color: darken($action-button-color, 13%);\n background-color: transparent;\n cursor: default;\n }\n\n &.active {\n color: $highlight-text-color;\n }\n\n &::-moz-focus-inner {\n border: 0;\n }\n\n &::-moz-focus-inner,\n &:focus,\n &:active {\n outline: 0 !important;\n }\n\n &.inverted {\n color: $lighter-text-color;\n\n &:hover,\n &:active,\n &:focus {\n color: darken($lighter-text-color, 7%);\n background-color: rgba($lighter-text-color, 0.15);\n }\n\n &:focus {\n background-color: rgba($lighter-text-color, 0.3);\n }\n\n &.disabled {\n color: lighten($lighter-text-color, 7%);\n background-color: transparent;\n }\n\n &.active {\n color: $highlight-text-color;\n\n &.disabled {\n color: lighten($highlight-text-color, 13%);\n }\n }\n }\n\n &.overlayed {\n box-sizing: content-box;\n background: rgba($base-overlay-background, 0.6);\n color: rgba($primary-text-color, 0.7);\n border-radius: 4px;\n padding: 2px;\n\n &:hover {\n background: rgba($base-overlay-background, 0.9);\n }\n }\n}\n\n.text-icon-button {\n color: $lighter-text-color;\n border: 0;\n border-radius: 4px;\n background: transparent;\n cursor: pointer;\n font-weight: 600;\n font-size: 11px;\n padding: 0 3px;\n line-height: 27px;\n outline: 0;\n transition: all 100ms ease-in;\n transition-property: background-color, color;\n\n &:hover,\n &:active,\n &:focus {\n color: darken($lighter-text-color, 7%);\n background-color: rgba($lighter-text-color, 0.15);\n transition: all 200ms ease-out;\n transition-property: background-color, color;\n }\n\n &:focus {\n background-color: rgba($lighter-text-color, 0.3);\n }\n\n &.disabled {\n color: lighten($lighter-text-color, 20%);\n background-color: transparent;\n cursor: default;\n }\n\n &.active {\n color: $highlight-text-color;\n }\n\n &::-moz-focus-inner {\n border: 0;\n }\n\n &::-moz-focus-inner,\n &:focus,\n &:active {\n outline: 0 !important;\n }\n}\n\n.dropdown-menu {\n position: absolute;\n}\n\n.invisible {\n font-size: 0;\n line-height: 0;\n display: inline-block;\n width: 0;\n height: 0;\n position: absolute;\n\n img,\n svg {\n margin: 0 !important;\n border: 0 !important;\n padding: 0 !important;\n width: 0 !important;\n height: 0 !important;\n }\n}\n\n.ellipsis {\n &::after {\n content: \"…\";\n }\n}\n\n.compose-form {\n padding: 10px;\n\n &__sensitive-button {\n padding: 10px;\n padding-top: 0;\n\n font-size: 14px;\n font-weight: 500;\n\n &.active {\n color: $highlight-text-color;\n }\n\n input[type=checkbox] {\n display: none;\n }\n\n .checkbox {\n display: inline-block;\n position: relative;\n border: 1px solid $ui-primary-color;\n box-sizing: border-box;\n width: 18px;\n height: 18px;\n flex: 0 0 auto;\n margin-right: 10px;\n top: -1px;\n border-radius: 4px;\n vertical-align: middle;\n\n &.active {\n border-color: $highlight-text-color;\n background: $highlight-text-color;\n }\n }\n }\n\n .compose-form__warning {\n color: $inverted-text-color;\n margin-bottom: 10px;\n background: $ui-primary-color;\n box-shadow: 0 2px 6px rgba($base-shadow-color, 0.3);\n padding: 8px 10px;\n border-radius: 4px;\n font-size: 13px;\n font-weight: 400;\n\n strong {\n color: $inverted-text-color;\n font-weight: 500;\n\n @each $lang in $cjk-langs {\n &:lang(#{$lang}) {\n font-weight: 700;\n }\n }\n }\n\n a {\n color: $lighter-text-color;\n font-weight: 500;\n text-decoration: underline;\n\n &:hover,\n &:active,\n &:focus {\n text-decoration: none;\n }\n }\n }\n\n .emoji-picker-dropdown {\n position: absolute;\n top: 0;\n right: 0;\n }\n\n .compose-form__autosuggest-wrapper {\n position: relative;\n }\n\n .autosuggest-textarea,\n .autosuggest-input,\n .spoiler-input {\n position: relative;\n width: 100%;\n }\n\n .spoiler-input {\n height: 0;\n transform-origin: bottom;\n opacity: 0;\n\n &.spoiler-input--visible {\n height: 36px;\n margin-bottom: 11px;\n opacity: 1;\n }\n }\n\n .autosuggest-textarea__textarea,\n .spoiler-input__input {\n display: block;\n box-sizing: border-box;\n width: 100%;\n margin: 0;\n color: $inverted-text-color;\n background: $simple-background-color;\n padding: 10px;\n font-family: inherit;\n font-size: 14px;\n resize: vertical;\n border: 0;\n outline: 0;\n\n &::placeholder {\n color: $dark-text-color;\n }\n\n &:focus {\n outline: 0;\n }\n\n @media screen and (max-width: 600px) {\n font-size: 16px;\n }\n }\n\n .spoiler-input__input {\n border-radius: 4px;\n }\n\n .autosuggest-textarea__textarea {\n min-height: 100px;\n border-radius: 4px 4px 0 0;\n padding-bottom: 0;\n padding-right: 10px + 22px;\n resize: none;\n scrollbar-color: initial;\n\n &::-webkit-scrollbar {\n all: unset;\n }\n\n @media screen and (max-width: 600px) {\n height: 100px !important; // prevent auto-resize textarea\n resize: vertical;\n }\n }\n\n .autosuggest-textarea__suggestions-wrapper {\n position: relative;\n height: 0;\n }\n\n .autosuggest-textarea__suggestions {\n box-sizing: border-box;\n display: none;\n position: absolute;\n top: 100%;\n width: 100%;\n z-index: 99;\n box-shadow: 4px 4px 6px rgba($base-shadow-color, 0.4);\n background: $ui-secondary-color;\n border-radius: 0 0 4px 4px;\n color: $inverted-text-color;\n font-size: 14px;\n padding: 6px;\n\n &.autosuggest-textarea__suggestions--visible {\n display: block;\n }\n }\n\n .autosuggest-textarea__suggestions__item {\n padding: 10px;\n cursor: pointer;\n border-radius: 4px;\n\n &:hover,\n &:focus,\n &:active,\n &.selected {\n background: darken($ui-secondary-color, 10%);\n }\n }\n\n .autosuggest-account,\n .autosuggest-emoji,\n .autosuggest-hashtag {\n display: flex;\n flex-direction: row;\n align-items: center;\n justify-content: flex-start;\n line-height: 18px;\n font-size: 14px;\n }\n\n .autosuggest-hashtag {\n justify-content: space-between;\n\n &__name {\n flex: 1 1 auto;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n\n strong {\n font-weight: 500;\n }\n\n &__uses {\n flex: 0 0 auto;\n text-align: right;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n }\n\n .autosuggest-account-icon,\n .autosuggest-emoji img {\n display: block;\n margin-right: 8px;\n width: 16px;\n height: 16px;\n }\n\n .autosuggest-account .display-name__account {\n color: $lighter-text-color;\n }\n\n .compose-form__modifiers {\n color: $inverted-text-color;\n font-family: inherit;\n font-size: 14px;\n background: $simple-background-color;\n\n .compose-form__upload-wrapper {\n overflow: hidden;\n }\n\n .compose-form__uploads-wrapper {\n display: flex;\n flex-direction: row;\n padding: 5px;\n flex-wrap: wrap;\n }\n\n .compose-form__upload {\n flex: 1 1 0;\n min-width: 40%;\n margin: 5px;\n\n &__actions {\n background: linear-gradient(180deg, rgba($base-shadow-color, 0.8) 0, rgba($base-shadow-color, 0.35) 80%, transparent);\n display: flex;\n align-items: flex-start;\n justify-content: space-between;\n opacity: 0;\n transition: opacity .1s ease;\n\n .icon-button {\n flex: 0 1 auto;\n color: $secondary-text-color;\n font-size: 14px;\n font-weight: 500;\n padding: 10px;\n font-family: inherit;\n\n &:hover,\n &:focus,\n &:active {\n color: lighten($secondary-text-color, 7%);\n }\n }\n\n &.active {\n opacity: 1;\n }\n }\n\n &-description {\n position: absolute;\n z-index: 2;\n bottom: 0;\n left: 0;\n right: 0;\n box-sizing: border-box;\n background: linear-gradient(0deg, rgba($base-shadow-color, 0.8) 0, rgba($base-shadow-color, 0.35) 80%, transparent);\n padding: 10px;\n opacity: 0;\n transition: opacity .1s ease;\n\n textarea {\n background: transparent;\n color: $secondary-text-color;\n border: 0;\n padding: 0;\n margin: 0;\n width: 100%;\n font-family: inherit;\n font-size: 14px;\n font-weight: 500;\n\n &:focus {\n color: $white;\n }\n\n &::placeholder {\n opacity: 0.75;\n color: $secondary-text-color;\n }\n }\n\n &.active {\n opacity: 1;\n }\n }\n }\n\n .compose-form__upload-thumbnail {\n border-radius: 4px;\n background-color: $base-shadow-color;\n background-position: center;\n background-size: cover;\n background-repeat: no-repeat;\n height: 140px;\n width: 100%;\n overflow: hidden;\n }\n }\n\n .compose-form__buttons-wrapper {\n padding: 10px;\n background: darken($simple-background-color, 8%);\n border-radius: 0 0 4px 4px;\n display: flex;\n justify-content: space-between;\n flex: 0 0 auto;\n\n .compose-form__buttons {\n display: flex;\n\n .compose-form__upload-button-icon {\n line-height: 27px;\n }\n\n .compose-form__sensitive-button {\n display: none;\n\n &.compose-form__sensitive-button--visible {\n display: block;\n }\n\n .compose-form__sensitive-button__icon {\n line-height: 27px;\n }\n }\n }\n\n .icon-button,\n .text-icon-button {\n box-sizing: content-box;\n padding: 0 3px;\n }\n\n .character-counter__wrapper {\n align-self: center;\n margin-right: 4px;\n }\n }\n\n .compose-form__publish {\n display: flex;\n justify-content: flex-end;\n min-width: 0;\n flex: 0 0 auto;\n\n .compose-form__publish-button-wrapper {\n overflow: hidden;\n padding-top: 10px;\n }\n }\n}\n\n.character-counter {\n cursor: default;\n font-family: $font-sans-serif, sans-serif;\n font-size: 14px;\n font-weight: 600;\n color: $lighter-text-color;\n\n &.character-counter--over {\n color: $warning-red;\n }\n}\n\n.no-reduce-motion .spoiler-input {\n transition: height 0.4s ease, opacity 0.4s ease;\n}\n\n.emojione {\n font-size: inherit;\n vertical-align: middle;\n object-fit: contain;\n margin: -.2ex .15em .2ex;\n width: 16px;\n height: 16px;\n\n img {\n width: auto;\n }\n}\n\n.reply-indicator {\n border-radius: 4px;\n margin-bottom: 10px;\n background: $ui-primary-color;\n padding: 10px;\n min-height: 23px;\n overflow-y: auto;\n flex: 0 2 auto;\n}\n\n.reply-indicator__header {\n margin-bottom: 5px;\n overflow: hidden;\n}\n\n.reply-indicator__cancel {\n float: right;\n line-height: 24px;\n}\n\n.reply-indicator__display-name {\n color: $inverted-text-color;\n display: block;\n max-width: 100%;\n line-height: 24px;\n overflow: hidden;\n padding-right: 25px;\n text-decoration: none;\n}\n\n.reply-indicator__display-avatar {\n float: left;\n margin-right: 5px;\n}\n\n.status__content--with-action {\n cursor: pointer;\n}\n\n.status__content,\n.reply-indicator__content {\n position: relative;\n font-size: 15px;\n line-height: 20px;\n word-wrap: break-word;\n font-weight: 400;\n overflow: hidden;\n text-overflow: ellipsis;\n padding-top: 2px;\n color: $primary-text-color;\n\n &:focus {\n outline: 0;\n }\n\n &.status__content--with-spoiler {\n white-space: normal;\n\n .status__content__text {\n white-space: pre-wrap;\n }\n }\n\n .emojione {\n width: 20px;\n height: 20px;\n margin: -3px 0 0;\n }\n\n img {\n max-width: 100%;\n max-height: 400px;\n object-fit: contain;\n }\n\n p {\n margin-bottom: 20px;\n white-space: pre-wrap;\n\n &:last-child {\n margin-bottom: 0;\n }\n }\n\n a {\n color: $pleroma-links;\n text-decoration: none;\n\n &:hover {\n text-decoration: underline;\n\n .fa {\n color: lighten($dark-text-color, 7%);\n }\n }\n\n &.mention {\n &:hover {\n text-decoration: none;\n\n span {\n text-decoration: underline;\n }\n }\n }\n\n .fa {\n color: $dark-text-color;\n }\n }\n\n a.unhandled-link {\n color: lighten($ui-highlight-color, 8%);\n }\n\n .status__content__spoiler-link {\n background: $action-button-color;\n\n &:hover {\n background: lighten($action-button-color, 7%);\n text-decoration: none;\n }\n\n &::-moz-focus-inner {\n border: 0;\n }\n\n &::-moz-focus-inner,\n &:focus,\n &:active {\n outline: 0 !important;\n }\n }\n\n .status__content__text {\n display: none;\n\n &.status__content__text--visible {\n display: block;\n }\n }\n}\n\n.announcements__item__content {\n word-wrap: break-word;\n overflow-y: auto;\n\n .emojione {\n width: 20px;\n height: 20px;\n margin: -3px 0 0;\n }\n\n p {\n margin-bottom: 10px;\n white-space: pre-wrap;\n\n &:last-child {\n margin-bottom: 0;\n }\n }\n\n a {\n color: $secondary-text-color;\n text-decoration: none;\n\n &:hover {\n text-decoration: underline;\n }\n\n &.mention {\n &:hover {\n text-decoration: none;\n\n span {\n text-decoration: underline;\n }\n }\n }\n\n &.unhandled-link {\n color: lighten($ui-highlight-color, 8%);\n }\n }\n}\n\n.status__content.status__content--collapsed {\n max-height: 20px * 15; // 15 lines is roughly above 500 characters\n}\n\n.status__content__read-more-button {\n display: block;\n font-size: 15px;\n line-height: 20px;\n color: lighten($ui-highlight-color, 8%);\n border: 0;\n background: transparent;\n padding: 0;\n padding-top: 8px;\n text-decoration: none;\n\n &:hover,\n &:active {\n text-decoration: underline;\n }\n}\n\n.status__content__spoiler-link {\n display: inline-block;\n border-radius: 2px;\n background: transparent;\n border: 0;\n color: $inverted-text-color;\n font-weight: 700;\n font-size: 11px;\n padding: 0 6px;\n text-transform: uppercase;\n line-height: 20px;\n cursor: pointer;\n vertical-align: middle;\n}\n\n.status__wrapper--filtered {\n color: $dark-text-color;\n border: 0;\n font-size: inherit;\n text-align: center;\n line-height: inherit;\n margin: 0;\n padding: 15px;\n box-sizing: border-box;\n width: 100%;\n clear: both;\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n}\n\n.status__prepend-icon-wrapper {\n left: -26px;\n position: absolute;\n}\n\n.focusable {\n &:focus {\n outline: 0;\n background: lighten($ui-base-color, 4%);\n\n .status.status-direct {\n background: lighten($ui-base-color, 12%);\n\n &.muted {\n background: transparent;\n }\n }\n\n .detailed-status,\n .detailed-status__action-bar {\n background: lighten($ui-base-color, 8%);\n }\n }\n}\n\n.status {\n padding: 8px 10px;\n padding-left: 68px;\n position: relative;\n min-height: 54px;\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n cursor: default;\n\n @supports (-ms-overflow-style: -ms-autohiding-scrollbar) {\n // Add margin to avoid Edge auto-hiding scrollbar appearing over content.\n // On Edge 16 this is 16px and Edge <=15 it's 12px, so aim for 16px.\n padding-right: 26px; // 10px + 16px\n }\n\n @keyframes fade {\n 0% { opacity: 0; }\n 100% { opacity: 1; }\n }\n\n opacity: 1;\n animation: fade 150ms linear;\n\n .video-player,\n .audio-player {\n margin-top: 8px;\n }\n\n &.status-direct:not(.read) {\n background: lighten($ui-base-color, 8%);\n border-bottom-color: lighten($ui-base-color, 12%);\n }\n\n &.light {\n .status__relative-time {\n color: $light-text-color;\n }\n\n .status__display-name {\n color: $inverted-text-color;\n }\n\n .display-name {\n color: $light-text-color;\n\n strong {\n color: $inverted-text-color;\n }\n }\n\n .status__content {\n color: $inverted-text-color;\n\n a {\n color: $highlight-text-color;\n }\n\n a.status__content__spoiler-link {\n color: $primary-text-color;\n background: $ui-primary-color;\n\n &:hover {\n background: lighten($ui-primary-color, 8%);\n }\n }\n }\n }\n}\n\n.notification-favourite {\n .status.status-direct {\n background: transparent;\n\n .icon-button.disabled {\n color: lighten($action-button-color, 13%);\n }\n }\n}\n\n.status__relative-time,\n.notification__relative_time {\n color: $dark-text-color;\n float: right;\n font-size: 14px;\n}\n\n.status__display-name {\n color: $dark-text-color;\n}\n\n.status__info .status__display-name {\n display: block;\n max-width: 100%;\n padding-right: 25px;\n}\n\n.status__info {\n font-size: 15px;\n}\n\n.status-check-box {\n border-bottom: 1px solid $ui-secondary-color;\n display: flex;\n\n .status-check-box__status {\n margin: 10px 0 10px 10px;\n flex: 1;\n overflow: hidden;\n\n .media-gallery {\n max-width: 250px;\n }\n\n .status__content {\n padding: 0;\n white-space: normal;\n }\n\n .video-player,\n .audio-player {\n margin-top: 8px;\n max-width: 250px;\n }\n\n .media-gallery__item-thumbnail {\n cursor: default;\n }\n }\n}\n\n.status-check-box-toggle {\n align-items: center;\n display: flex;\n flex: 0 0 auto;\n justify-content: center;\n padding: 10px;\n}\n\n.status__prepend {\n margin-left: 68px;\n color: $dark-text-color;\n padding: 8px 0;\n padding-bottom: 2px;\n font-size: 14px;\n position: relative;\n\n .status__display-name strong {\n color: $dark-text-color;\n }\n\n > span {\n display: block;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n}\n\n.status__action-bar {\n align-items: center;\n display: flex;\n margin-top: 8px;\n\n &__counter {\n display: inline-flex;\n margin-right: 11px;\n align-items: center;\n\n .status__action-bar-button {\n margin-right: 4px;\n }\n\n &__label {\n display: inline-block;\n width: 14px;\n font-size: 12px;\n font-weight: 500;\n color: $action-button-color;\n }\n }\n}\n\n.status__action-bar-button {\n margin-right: 18px;\n}\n\n.status__action-bar-dropdown {\n height: 23.15px;\n width: 23.15px;\n}\n\n.detailed-status__action-bar-dropdown {\n flex: 1 1 auto;\n display: flex;\n align-items: center;\n justify-content: center;\n position: relative;\n}\n\n.detailed-status {\n background: lighten($ui-base-color, 4%);\n padding: 14px 10px;\n\n &--flex {\n display: flex;\n flex-wrap: wrap;\n justify-content: space-between;\n align-items: flex-start;\n\n .status__content,\n .detailed-status__meta {\n flex: 100%;\n }\n }\n\n .status__content {\n font-size: 19px;\n line-height: 24px;\n\n .emojione {\n width: 24px;\n height: 24px;\n margin: -1px 0 0;\n }\n\n .status__content__spoiler-link {\n line-height: 24px;\n margin: -1px 0 0;\n }\n }\n\n .video-player,\n .audio-player {\n margin-top: 8px;\n }\n}\n\n.detailed-status__meta {\n margin-top: 15px;\n color: $dark-text-color;\n font-size: 14px;\n line-height: 18px;\n}\n\n.detailed-status__action-bar {\n background: lighten($ui-base-color, 4%);\n border-top: 1px solid lighten($ui-base-color, 8%);\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n display: flex;\n flex-direction: row;\n padding: 10px 0;\n}\n\n.detailed-status__link {\n color: inherit;\n text-decoration: none;\n}\n\n.detailed-status__favorites,\n.detailed-status__reblogs {\n display: inline-block;\n font-weight: 500;\n font-size: 12px;\n margin-left: 6px;\n}\n\n.reply-indicator__content {\n color: $inverted-text-color;\n font-size: 14px;\n\n a {\n color: $lighter-text-color;\n }\n}\n\n.domain {\n padding: 10px;\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n\n .domain__domain-name {\n flex: 1 1 auto;\n display: block;\n color: $primary-text-color;\n text-decoration: none;\n font-size: 14px;\n font-weight: 500;\n }\n}\n\n.domain__wrapper {\n display: flex;\n}\n\n.domain_buttons {\n height: 18px;\n padding: 10px;\n white-space: nowrap;\n}\n\n.account {\n padding: 10px;\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n\n &.compact {\n padding: 0;\n border-bottom: 0;\n\n .account__avatar-wrapper {\n margin-left: 0;\n }\n }\n\n .account__display-name {\n flex: 1 1 auto;\n display: block;\n color: $darker-text-color;\n overflow: hidden;\n text-decoration: none;\n font-size: 14px;\n }\n}\n\n.account__wrapper {\n display: flex;\n}\n\n.account__avatar-wrapper {\n float: left;\n margin-left: 12px;\n margin-right: 12px;\n}\n\n.account__avatar {\n @include avatar-radius;\n position: relative;\n\n &-inline {\n display: inline-block;\n vertical-align: middle;\n margin-right: 5px;\n }\n\n &-composite {\n @include avatar-radius;\n border-radius: 50%;\n overflow: hidden;\n position: relative;\n\n & > div {\n float: left;\n position: relative;\n box-sizing: border-box;\n }\n\n &__label {\n display: block;\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n color: $primary-text-color;\n text-shadow: 1px 1px 2px $base-shadow-color;\n font-weight: 700;\n font-size: 15px;\n }\n }\n}\n\na .account__avatar {\n cursor: pointer;\n}\n\n.account__avatar-overlay {\n @include avatar-size(48px);\n\n &-base {\n @include avatar-radius;\n @include avatar-size(36px);\n }\n\n &-overlay {\n @include avatar-radius;\n @include avatar-size(24px);\n\n position: absolute;\n bottom: 0;\n right: 0;\n z-index: 1;\n }\n}\n\n.account__relationship {\n height: 18px;\n padding: 10px;\n white-space: nowrap;\n}\n\n.account__disclaimer {\n padding: 10px;\n border-top: 1px solid lighten($ui-base-color, 8%);\n color: $dark-text-color;\n\n strong {\n font-weight: 500;\n\n @each $lang in $cjk-langs {\n &:lang(#{$lang}) {\n font-weight: 700;\n }\n }\n }\n\n a {\n font-weight: 500;\n color: inherit;\n text-decoration: underline;\n\n &:hover,\n &:focus,\n &:active {\n text-decoration: none;\n }\n }\n}\n\n.account__action-bar {\n border-top: 1px solid lighten($ui-base-color, 8%);\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n line-height: 36px;\n overflow: hidden;\n flex: 0 0 auto;\n display: flex;\n}\n\n.account__action-bar-dropdown {\n padding: 10px;\n\n .icon-button {\n vertical-align: middle;\n }\n\n .dropdown--active {\n .dropdown__content.dropdown__right {\n left: 6px;\n right: initial;\n }\n\n &::after {\n bottom: initial;\n margin-left: 11px;\n margin-top: -7px;\n right: initial;\n }\n }\n}\n\n.account__action-bar-links {\n display: flex;\n flex: 1 1 auto;\n line-height: 18px;\n text-align: center;\n}\n\n.account__action-bar__tab {\n text-decoration: none;\n overflow: hidden;\n flex: 0 1 100%;\n border-right: 1px solid lighten($ui-base-color, 8%);\n padding: 10px 0;\n border-bottom: 4px solid transparent;\n\n &.active {\n border-bottom: 4px solid $ui-highlight-color;\n }\n\n & > span {\n display: block;\n text-transform: uppercase;\n font-size: 11px;\n color: $darker-text-color;\n }\n\n strong {\n display: block;\n font-size: 15px;\n font-weight: 500;\n color: $primary-text-color;\n\n @each $lang in $cjk-langs {\n &:lang(#{$lang}) {\n font-weight: 700;\n }\n }\n }\n}\n\n.account-authorize {\n padding: 14px 10px;\n\n .detailed-status__display-name {\n display: block;\n margin-bottom: 15px;\n overflow: hidden;\n }\n}\n\n.account-authorize__avatar {\n float: left;\n margin-right: 10px;\n}\n\n.status__display-name,\n.status__relative-time,\n.detailed-status__display-name,\n.detailed-status__datetime,\n.detailed-status__application,\n.account__display-name {\n text-decoration: none;\n}\n\n.status__display-name,\n.account__display-name {\n strong {\n color: $primary-text-color;\n }\n}\n\n.muted {\n .emojione {\n opacity: 0.5;\n }\n}\n\n.status__display-name,\n.reply-indicator__display-name,\n.detailed-status__display-name,\na.account__display-name {\n &:hover strong {\n text-decoration: underline;\n }\n}\n\n.account__display-name strong {\n display: block;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n.detailed-status__application,\n.detailed-status__datetime {\n color: inherit;\n}\n\n.detailed-status .button.logo-button {\n margin-bottom: 15px;\n}\n\n.detailed-status__display-name {\n color: $secondary-text-color;\n display: block;\n line-height: 24px;\n margin-bottom: 15px;\n overflow: hidden;\n\n strong,\n span {\n display: block;\n text-overflow: ellipsis;\n overflow: hidden;\n }\n\n strong {\n font-size: 16px;\n color: $primary-text-color;\n }\n}\n\n.detailed-status__display-avatar {\n float: left;\n margin-right: 10px;\n}\n\n.status__avatar {\n height: 48px;\n left: 10px;\n position: absolute;\n top: 10px;\n width: 48px;\n}\n\n.status__expand {\n width: 68px;\n position: absolute;\n left: 0;\n top: 0;\n height: 100%;\n cursor: pointer;\n}\n\n.muted {\n .status__content,\n .status__content p,\n .status__content a {\n color: $dark-text-color;\n }\n\n .status__display-name strong {\n color: $dark-text-color;\n }\n\n .status__avatar {\n opacity: 0.5;\n }\n\n a.status__content__spoiler-link {\n background: $ui-base-lighter-color;\n color: $inverted-text-color;\n\n &:hover {\n background: lighten($ui-base-lighter-color, 7%);\n text-decoration: none;\n }\n }\n}\n\n.notification__message {\n margin: 0 10px 0 68px;\n padding: 8px 0 0;\n cursor: default;\n color: $darker-text-color;\n font-size: 15px;\n line-height: 22px;\n position: relative;\n\n .fa {\n color: $highlight-text-color;\n }\n\n > span {\n display: inline;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n}\n\n.notification__favourite-icon-wrapper {\n left: -26px;\n position: absolute;\n\n .star-icon {\n color: $gold-star;\n }\n}\n\n.star-icon.active {\n color: $gold-star;\n}\n\n.bookmark-icon.active {\n color: $red-bookmark;\n}\n\n.no-reduce-motion .icon-button.star-icon {\n &.activate {\n & > .fa-star {\n animation: spring-rotate-in 1s linear;\n }\n }\n\n &.deactivate {\n & > .fa-star {\n animation: spring-rotate-out 1s linear;\n }\n }\n}\n\n.notification__display-name {\n color: inherit;\n font-weight: 500;\n text-decoration: none;\n\n &:hover {\n color: $primary-text-color;\n text-decoration: underline;\n }\n}\n\n.notification__relative_time {\n float: right;\n}\n\n.display-name {\n display: block;\n max-width: 100%;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.display-name__html {\n font-weight: 500;\n}\n\n.display-name__account {\n font-size: 14px;\n}\n\n.status__relative-time,\n.detailed-status__datetime {\n &:hover {\n text-decoration: underline;\n }\n}\n\n.image-loader {\n position: relative;\n width: 100%;\n height: 100%;\n display: flex;\n align-items: center;\n justify-content: center;\n flex-direction: column;\n\n .image-loader__preview-canvas {\n max-width: $media-modal-media-max-width;\n max-height: $media-modal-media-max-height;\n background: url('~images/void.png') repeat;\n object-fit: contain;\n }\n\n .loading-bar {\n position: relative;\n }\n\n &.image-loader--amorphous .image-loader__preview-canvas {\n display: none;\n }\n}\n\n.zoomable-image {\n position: relative;\n width: 100%;\n height: 100%;\n display: flex;\n align-items: center;\n justify-content: center;\n\n img {\n max-width: $media-modal-media-max-width;\n max-height: $media-modal-media-max-height;\n width: auto;\n height: auto;\n object-fit: contain;\n }\n}\n\n.navigation-bar {\n padding: 10px;\n display: flex;\n align-items: center;\n flex-shrink: 0;\n cursor: default;\n color: $darker-text-color;\n\n strong {\n color: $secondary-text-color;\n }\n\n a {\n color: inherit;\n }\n\n .permalink {\n text-decoration: none;\n }\n\n .navigation-bar__actions {\n position: relative;\n\n .icon-button.close {\n position: absolute;\n pointer-events: none;\n transform: scale(0, 1) translate(-100%, 0);\n opacity: 0;\n }\n\n .compose__action-bar .icon-button {\n pointer-events: auto;\n transform: scale(1, 1) translate(0, 0);\n opacity: 1;\n }\n }\n}\n\n.navigation-bar__profile {\n flex: 1 1 auto;\n margin-left: 8px;\n line-height: 20px;\n margin-top: -1px;\n overflow: hidden;\n}\n\n.navigation-bar__profile-account {\n display: block;\n font-weight: 500;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n.navigation-bar__profile-edit {\n color: inherit;\n text-decoration: none;\n}\n\n.dropdown {\n display: inline-block;\n}\n\n.dropdown__content {\n display: none;\n position: absolute;\n}\n\n.dropdown-menu__separator {\n border-bottom: 1px solid darken($ui-secondary-color, 8%);\n margin: 5px 7px 6px;\n height: 0;\n}\n\n.dropdown-menu {\n background: $ui-secondary-color;\n padding: 4px 0;\n border-radius: 4px;\n box-shadow: 2px 4px 15px rgba($base-shadow-color, 0.4);\n z-index: 9999;\n\n ul {\n list-style: none;\n }\n\n &.left {\n transform-origin: 100% 50%;\n }\n\n &.top {\n transform-origin: 50% 100%;\n }\n\n &.bottom {\n transform-origin: 50% 0;\n }\n\n &.right {\n transform-origin: 0 50%;\n }\n}\n\n.dropdown-menu__arrow {\n position: absolute;\n width: 0;\n height: 0;\n border: 0 solid transparent;\n\n &.left {\n right: -5px;\n margin-top: -5px;\n border-width: 5px 0 5px 5px;\n border-left-color: $ui-secondary-color;\n }\n\n &.top {\n bottom: -5px;\n margin-left: -7px;\n border-width: 5px 7px 0;\n border-top-color: $ui-secondary-color;\n }\n\n &.bottom {\n top: -5px;\n margin-left: -7px;\n border-width: 0 7px 5px;\n border-bottom-color: $ui-secondary-color;\n }\n\n &.right {\n left: -5px;\n margin-top: -5px;\n border-width: 5px 5px 5px 0;\n border-right-color: $ui-secondary-color;\n }\n}\n\n.dropdown-menu__item {\n a {\n font-size: 13px;\n line-height: 18px;\n display: block;\n padding: 4px 14px;\n box-sizing: border-box;\n text-decoration: none;\n background: $ui-secondary-color;\n color: $inverted-text-color;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n\n &:focus,\n &:hover,\n &:active {\n background: $ui-highlight-color;\n color: $secondary-text-color;\n outline: 0;\n }\n }\n}\n\n.dropdown--active .dropdown__content {\n display: block;\n line-height: 18px;\n max-width: 311px;\n right: 0;\n text-align: left;\n z-index: 9999;\n\n & > ul {\n list-style: none;\n background: $ui-secondary-color;\n padding: 4px 0;\n border-radius: 4px;\n box-shadow: 0 0 15px rgba($base-shadow-color, 0.4);\n min-width: 140px;\n position: relative;\n }\n\n &.dropdown__right {\n right: 0;\n }\n\n &.dropdown__left {\n & > ul {\n left: -98px;\n }\n }\n\n & > ul > li > a {\n font-size: 13px;\n line-height: 18px;\n display: block;\n padding: 4px 14px;\n box-sizing: border-box;\n text-decoration: none;\n background: $ui-secondary-color;\n color: $inverted-text-color;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n\n &:focus {\n outline: 0;\n }\n\n &:hover {\n background: $ui-highlight-color;\n color: $secondary-text-color;\n }\n }\n}\n\n.dropdown__icon {\n vertical-align: middle;\n}\n\n.columns-area {\n display: flex;\n flex: 1 1 auto;\n flex-direction: row;\n justify-content: flex-start;\n overflow-x: auto;\n position: relative;\n\n &.unscrollable {\n overflow-x: hidden;\n }\n\n &__panels {\n display: flex;\n justify-content: center;\n width: 100%;\n height: 100%;\n min-height: 100vh;\n\n &__pane {\n height: 100%;\n overflow: hidden;\n pointer-events: none;\n display: flex;\n justify-content: flex-end;\n min-width: 285px;\n\n &--start {\n justify-content: flex-start;\n }\n\n &__inner {\n position: fixed;\n width: 285px;\n pointer-events: auto;\n height: 100%;\n }\n }\n\n &__main {\n box-sizing: border-box;\n width: 100%;\n max-width: 600px;\n flex: 0 0 auto;\n display: flex;\n flex-direction: column;\n\n @media screen and (min-width: $no-gap-breakpoint) {\n padding: 0 10px;\n }\n }\n }\n}\n\n.tabs-bar__wrapper {\n background: darken($ui-base-color, 8%);\n position: sticky;\n top: 0;\n z-index: 2;\n padding-top: 0;\n\n @media screen and (min-width: $no-gap-breakpoint) {\n padding-top: 10px;\n }\n\n .tabs-bar {\n margin-bottom: 0;\n\n @media screen and (min-width: $no-gap-breakpoint) {\n margin-bottom: 10px;\n }\n }\n}\n\n.react-swipeable-view-container {\n &,\n .columns-area,\n .drawer,\n .column {\n height: 100%;\n }\n}\n\n.react-swipeable-view-container > * {\n display: flex;\n align-items: center;\n justify-content: center;\n height: 100%;\n}\n\n.column {\n width: 350px;\n position: relative;\n box-sizing: border-box;\n display: flex;\n flex-direction: column;\n\n > .scrollable {\n background: $ui-base-color;\n border-bottom-left-radius: 2px;\n border-bottom-right-radius: 2px;\n }\n}\n\n.ui {\n flex: 0 0 auto;\n display: flex;\n flex-direction: column;\n width: 100%;\n height: 100%;\n}\n\n.drawer {\n width: 330px;\n box-sizing: border-box;\n display: flex;\n flex-direction: column;\n overflow-y: hidden;\n}\n\n.drawer__tab {\n display: block;\n flex: 1 1 auto;\n padding: 15px 5px 13px;\n color: $darker-text-color;\n text-decoration: none;\n text-align: center;\n font-size: 16px;\n border-bottom: 2px solid transparent;\n}\n\n.column,\n.drawer {\n flex: 1 1 auto;\n overflow: hidden;\n}\n\n@media screen and (min-width: 631px) {\n .columns-area {\n padding: 0;\n }\n\n .column,\n .drawer {\n flex: 0 0 auto;\n padding: 10px;\n padding-left: 5px;\n padding-right: 5px;\n\n &:first-child {\n padding-left: 10px;\n }\n\n &:last-child {\n padding-right: 10px;\n }\n }\n\n .columns-area > div {\n .column,\n .drawer {\n padding-left: 5px;\n padding-right: 5px;\n }\n }\n}\n\n.tabs-bar {\n box-sizing: border-box;\n display: flex;\n background: lighten($ui-base-color, 8%);\n flex: 0 0 auto;\n overflow-y: auto;\n}\n\n.tabs-bar__link {\n display: block;\n flex: 1 1 auto;\n padding: 15px 10px;\n padding-bottom: 13px;\n color: $primary-text-color;\n text-decoration: none;\n text-align: center;\n font-size: 14px;\n font-weight: 500;\n border-bottom: 2px solid lighten($ui-base-color, 8%);\n transition: all 50ms linear;\n transition-property: border-bottom, background, color;\n\n .fa {\n font-weight: 400;\n font-size: 16px;\n }\n\n &:hover,\n &:focus,\n &:active {\n @media screen and (min-width: 631px) {\n background: lighten($ui-base-color, 14%);\n border-bottom-color: lighten($ui-base-color, 14%);\n }\n }\n\n &.active {\n border-bottom: 2px solid $highlight-text-color;\n color: $highlight-text-color;\n }\n\n span {\n margin-left: 5px;\n display: none;\n }\n}\n\n@media screen and (min-width: 600px) {\n .tabs-bar__link {\n span {\n display: inline;\n }\n }\n}\n\n.columns-area--mobile {\n flex-direction: column;\n width: 100%;\n height: 100%;\n margin: 0 auto;\n\n .column,\n .drawer {\n width: 100%;\n height: 100%;\n padding: 0;\n }\n\n .directory__list {\n display: grid;\n grid-gap: 10px;\n grid-template-columns: minmax(0, 50%) minmax(0, 50%);\n\n @media screen and (max-width: $no-gap-breakpoint) {\n display: block;\n }\n }\n\n .directory__card {\n margin-bottom: 0;\n }\n\n .filter-form {\n display: flex;\n }\n\n .autosuggest-textarea__textarea {\n font-size: 16px;\n }\n\n .search__input {\n line-height: 18px;\n font-size: 16px;\n padding: 15px;\n padding-right: 30px;\n }\n\n .search__icon .fa {\n top: 15px;\n }\n\n .scrollable {\n overflow: visible;\n\n @supports(display: grid) {\n contain: content;\n }\n }\n\n @media screen and (min-width: $no-gap-breakpoint) {\n padding: 10px 0;\n padding-top: 0;\n }\n\n @media screen and (min-width: 630px) {\n .detailed-status {\n padding: 15px;\n\n .media-gallery,\n .video-player,\n .audio-player {\n margin-top: 15px;\n }\n }\n\n .account__header__bar {\n padding: 5px 10px;\n }\n\n .navigation-bar,\n .compose-form {\n padding: 15px;\n }\n\n .compose-form .compose-form__publish .compose-form__publish-button-wrapper {\n padding-top: 15px;\n }\n\n .status {\n padding: 15px 15px 15px (48px + 15px * 2);\n min-height: 48px + 2px;\n\n &__avatar {\n left: 15px;\n top: 17px;\n }\n\n &__content {\n padding-top: 5px;\n }\n\n &__prepend {\n margin-left: 48px + 15px * 2;\n padding-top: 15px;\n }\n\n &__prepend-icon-wrapper {\n left: -32px;\n }\n\n .media-gallery,\n &__action-bar,\n .video-player,\n .audio-player {\n margin-top: 10px;\n }\n }\n\n .account {\n padding: 15px 10px;\n\n &__header__bio {\n margin: 0 -10px;\n }\n }\n\n .notification {\n &__message {\n margin-left: 48px + 15px * 2;\n padding-top: 15px;\n }\n\n &__favourite-icon-wrapper {\n left: -32px;\n }\n\n .status {\n padding-top: 8px;\n }\n\n .account {\n padding-top: 8px;\n }\n\n .account__avatar-wrapper {\n margin-left: 17px;\n margin-right: 15px;\n }\n }\n }\n}\n\n.floating-action-button {\n position: fixed;\n display: flex;\n justify-content: center;\n align-items: center;\n width: 3.9375rem;\n height: 3.9375rem;\n bottom: 1.3125rem;\n right: 1.3125rem;\n background: darken($ui-highlight-color, 3%);\n color: $white;\n border-radius: 50%;\n font-size: 21px;\n line-height: 21px;\n text-decoration: none;\n box-shadow: 2px 3px 9px rgba($base-shadow-color, 0.4);\n\n &:hover,\n &:focus,\n &:active {\n background: lighten($ui-highlight-color, 7%);\n }\n}\n\n@media screen and (min-width: $no-gap-breakpoint) {\n .tabs-bar {\n width: 100%;\n }\n\n .react-swipeable-view-container .columns-area--mobile {\n height: calc(100% - 10px) !important;\n }\n\n .getting-started__wrapper,\n .getting-started__trends,\n .search {\n margin-bottom: 10px;\n }\n\n .getting-started__panel {\n margin: 10px 0;\n }\n\n .column,\n .drawer {\n min-width: 330px;\n }\n}\n\n@media screen and (max-width: 600px + (285px * 1) + (10px * 1)) {\n .columns-area__panels__pane--compositional {\n display: none;\n }\n}\n\n@media screen and (min-width: 600px + (285px * 1) + (10px * 1)) {\n .floating-action-button,\n .tabs-bar__link.optional {\n display: none;\n }\n\n .search-page .search {\n display: none;\n }\n}\n\n@media screen and (max-width: 600px + (285px * 2) + (10px * 2)) {\n .columns-area__panels__pane--navigational {\n display: none;\n }\n}\n\n@media screen and (min-width: 600px + (285px * 2) + (10px * 2)) {\n .tabs-bar {\n display: none;\n }\n}\n\n.icon-with-badge {\n position: relative;\n\n &__badge {\n position: absolute;\n left: 9px;\n top: -13px;\n background: $ui-highlight-color;\n border: 2px solid lighten($ui-base-color, 8%);\n padding: 1px 6px;\n border-radius: 6px;\n font-size: 10px;\n font-weight: 500;\n line-height: 14px;\n color: $primary-text-color;\n }\n}\n\n.column-link--transparent .icon-with-badge__badge {\n border-color: darken($ui-base-color, 8%);\n}\n\n.compose-panel {\n width: 285px;\n margin-top: 10px;\n display: flex;\n flex-direction: column;\n height: calc(100% - 10px);\n overflow-y: hidden;\n\n .navigation-bar {\n padding-top: 20px;\n padding-bottom: 20px;\n flex: 0 1 48px;\n min-height: 20px;\n }\n\n .flex-spacer {\n background: transparent;\n }\n\n .compose-form {\n flex: 1;\n overflow-y: hidden;\n display: flex;\n flex-direction: column;\n min-height: 310px;\n padding-bottom: 71px;\n margin-bottom: -71px;\n }\n\n .compose-form__autosuggest-wrapper {\n overflow-y: auto;\n background-color: $white;\n border-radius: 4px 4px 0 0;\n flex: 0 1 auto;\n }\n\n .autosuggest-textarea__textarea {\n overflow-y: hidden;\n }\n\n .compose-form__upload-thumbnail {\n height: 80px;\n }\n}\n\n.navigation-panel {\n margin-top: 10px;\n margin-bottom: 10px;\n height: calc(100% - 20px);\n overflow-y: auto;\n display: flex;\n flex-direction: column;\n\n & > a {\n flex: 0 0 auto;\n }\n\n hr {\n flex: 0 0 auto;\n border: 0;\n background: transparent;\n border-top: 1px solid lighten($ui-base-color, 4%);\n margin: 10px 0;\n }\n\n .flex-spacer {\n background: transparent;\n }\n}\n\n.drawer__pager {\n box-sizing: border-box;\n padding: 0;\n flex-grow: 1;\n position: relative;\n overflow: hidden;\n display: flex;\n}\n\n.drawer__inner {\n position: absolute;\n top: 0;\n left: 0;\n background: lighten($ui-base-color, 13%);\n box-sizing: border-box;\n padding: 0;\n display: flex;\n flex-direction: column;\n overflow: hidden;\n overflow-y: auto;\n width: 100%;\n height: 100%;\n border-radius: 2px;\n\n &.darker {\n background: $ui-base-color;\n }\n}\n\n.drawer__inner__mastodon {\n background: lighten($ui-base-color, 13%) url('data:image/svg+xml;utf8,') no-repeat bottom / 100% auto;\n flex: 1;\n min-height: 47px;\n display: none;\n\n > img {\n display: block;\n object-fit: contain;\n object-position: bottom left;\n width: 85%;\n height: 100%;\n pointer-events: none;\n user-drag: none;\n user-select: none;\n }\n\n @media screen and (min-height: 640px) {\n display: block;\n }\n}\n\n.pseudo-drawer {\n background: lighten($ui-base-color, 13%);\n font-size: 13px;\n text-align: left;\n}\n\n.drawer__header {\n flex: 0 0 auto;\n font-size: 16px;\n background: lighten($ui-base-color, 8%);\n margin-bottom: 10px;\n display: flex;\n flex-direction: row;\n border-radius: 2px;\n\n a {\n transition: background 100ms ease-in;\n\n &:hover {\n background: lighten($ui-base-color, 3%);\n transition: background 200ms ease-out;\n }\n }\n}\n\n.scrollable {\n overflow-y: scroll;\n overflow-x: hidden;\n flex: 1 1 auto;\n -webkit-overflow-scrolling: touch;\n\n &.optionally-scrollable {\n overflow-y: auto;\n }\n\n @supports(display: grid) { // hack to fix Chrome <57\n contain: strict;\n }\n\n &--flex {\n display: flex;\n flex-direction: column;\n }\n\n &__append {\n flex: 1 1 auto;\n position: relative;\n min-height: 120px;\n }\n}\n\n.scrollable.fullscreen {\n @supports(display: grid) { // hack to fix Chrome <57\n contain: none;\n }\n}\n\n.column-back-button {\n box-sizing: border-box;\n width: 100%;\n background: lighten($ui-base-color, 4%);\n color: $highlight-text-color;\n cursor: pointer;\n flex: 0 0 auto;\n font-size: 16px;\n line-height: inherit;\n border: 0;\n text-align: unset;\n padding: 15px;\n margin: 0;\n z-index: 3;\n outline: 0;\n\n &:hover {\n text-decoration: underline;\n }\n}\n\n.column-header__back-button {\n background: lighten($ui-base-color, 4%);\n border: 0;\n font-family: inherit;\n color: $highlight-text-color;\n cursor: pointer;\n white-space: nowrap;\n font-size: 16px;\n padding: 0 5px 0 0;\n z-index: 3;\n\n &:hover {\n text-decoration: underline;\n }\n\n &:last-child {\n padding: 0 15px 0 0;\n }\n}\n\n.column-back-button__icon {\n display: inline-block;\n margin-right: 5px;\n}\n\n.column-back-button--slim {\n position: relative;\n}\n\n.column-back-button--slim-button {\n cursor: pointer;\n flex: 0 0 auto;\n font-size: 16px;\n padding: 15px;\n position: absolute;\n right: 0;\n top: -48px;\n}\n\n.react-toggle {\n display: inline-block;\n position: relative;\n cursor: pointer;\n background-color: transparent;\n border: 0;\n padding: 0;\n user-select: none;\n -webkit-tap-highlight-color: rgba($base-overlay-background, 0);\n -webkit-tap-highlight-color: transparent;\n}\n\n.react-toggle-screenreader-only {\n border: 0;\n clip: rect(0 0 0 0);\n height: 1px;\n margin: -1px;\n overflow: hidden;\n padding: 0;\n position: absolute;\n width: 1px;\n}\n\n.react-toggle--disabled {\n cursor: not-allowed;\n opacity: 0.5;\n transition: opacity 0.25s;\n}\n\n.react-toggle-track {\n width: 50px;\n height: 24px;\n padding: 0;\n border-radius: 30px;\n background-color: $ui-base-color;\n transition: background-color 0.2s ease;\n}\n\n.react-toggle:hover:not(.react-toggle--disabled) .react-toggle-track {\n background-color: darken($ui-base-color, 10%);\n}\n\n.react-toggle--checked .react-toggle-track {\n background-color: $ui-highlight-color;\n}\n\n.react-toggle--checked:hover:not(.react-toggle--disabled) .react-toggle-track {\n background-color: lighten($ui-highlight-color, 10%);\n}\n\n.react-toggle-track-check {\n position: absolute;\n width: 14px;\n height: 10px;\n top: 0;\n bottom: 0;\n margin-top: auto;\n margin-bottom: auto;\n line-height: 0;\n left: 8px;\n opacity: 0;\n transition: opacity 0.25s ease;\n}\n\n.react-toggle--checked .react-toggle-track-check {\n opacity: 1;\n transition: opacity 0.25s ease;\n}\n\n.react-toggle-track-x {\n position: absolute;\n width: 10px;\n height: 10px;\n top: 0;\n bottom: 0;\n margin-top: auto;\n margin-bottom: auto;\n line-height: 0;\n right: 10px;\n opacity: 1;\n transition: opacity 0.25s ease;\n}\n\n.react-toggle--checked .react-toggle-track-x {\n opacity: 0;\n}\n\n.react-toggle-thumb {\n position: absolute;\n top: 1px;\n left: 1px;\n width: 22px;\n height: 22px;\n border: 1px solid $ui-base-color;\n border-radius: 50%;\n background-color: darken($simple-background-color, 2%);\n box-sizing: border-box;\n transition: all 0.25s ease;\n transition-property: border-color, left;\n}\n\n.react-toggle--checked .react-toggle-thumb {\n left: 27px;\n border-color: $ui-highlight-color;\n}\n\n.column-link {\n background: lighten($ui-base-color, 8%);\n color: $primary-text-color;\n display: block;\n font-size: 16px;\n padding: 15px;\n text-decoration: none;\n\n &:hover,\n &:focus,\n &:active {\n background: lighten($ui-base-color, 11%);\n }\n\n &:focus {\n outline: 0;\n }\n\n &--transparent {\n background: transparent;\n color: $ui-secondary-color;\n\n &:hover,\n &:focus,\n &:active {\n background: transparent;\n color: $primary-text-color;\n }\n\n &.active {\n color: $ui-highlight-color;\n }\n }\n}\n\n.column-link__icon {\n display: inline-block;\n margin-right: 5px;\n}\n\n.column-link__badge {\n display: inline-block;\n border-radius: 4px;\n font-size: 12px;\n line-height: 19px;\n font-weight: 500;\n background: $ui-base-color;\n padding: 4px 8px;\n margin: -6px 10px;\n}\n\n.column-subheading {\n background: $ui-base-color;\n color: $dark-text-color;\n padding: 8px 20px;\n font-size: 12px;\n font-weight: 500;\n text-transform: uppercase;\n cursor: default;\n}\n\n.getting-started__wrapper,\n.getting-started,\n.flex-spacer {\n background: $ui-base-color;\n}\n\n.flex-spacer {\n flex: 1 1 auto;\n}\n\n.getting-started {\n color: $dark-text-color;\n overflow: auto;\n border-bottom-left-radius: 2px;\n border-bottom-right-radius: 2px;\n\n &__wrapper,\n &__panel,\n &__footer {\n height: min-content;\n }\n\n &__panel,\n &__footer\n {\n padding: 10px;\n padding-top: 20px;\n flex-grow: 0;\n\n ul {\n margin-bottom: 10px;\n }\n\n ul li {\n display: inline;\n }\n\n p {\n font-size: 13px;\n\n a {\n color: $dark-text-color;\n text-decoration: underline;\n }\n }\n\n a {\n text-decoration: none;\n color: $darker-text-color;\n\n &:hover,\n &:focus,\n &:active {\n text-decoration: underline;\n }\n }\n }\n\n &__wrapper,\n &__footer\n {\n color: $dark-text-color;\n }\n\n &__trends {\n flex: 0 1 auto;\n opacity: 1;\n animation: fade 150ms linear;\n margin-top: 10px;\n\n h4 {\n font-size: 12px;\n text-transform: uppercase;\n color: $darker-text-color;\n padding: 10px;\n font-weight: 500;\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n }\n\n @media screen and (max-height: 810px) {\n .trends__item:nth-child(3) {\n display: none;\n }\n }\n\n @media screen and (max-height: 720px) {\n .trends__item:nth-child(2) {\n display: none;\n }\n }\n\n @media screen and (max-height: 670px) {\n display: none;\n }\n\n .trends__item {\n border-bottom: 0;\n padding: 10px;\n\n &__current {\n color: $darker-text-color;\n }\n }\n }\n}\n\n.keyboard-shortcuts {\n padding: 8px 0 0;\n overflow: hidden;\n\n thead {\n position: absolute;\n left: -9999px;\n }\n\n td {\n padding: 0 10px 8px;\n }\n\n kbd {\n display: inline-block;\n padding: 3px 5px;\n background-color: lighten($ui-base-color, 8%);\n border: 1px solid darken($ui-base-color, 4%);\n }\n}\n\n.setting-text {\n display: block;\n box-sizing: border-box;\n width: 100%;\n margin: 0;\n color: $inverted-text-color;\n background: $simple-background-color;\n padding: 10px;\n font-family: inherit;\n font-size: 14px;\n resize: vertical;\n border: 0;\n outline: 0;\n border-radius: 4px;\n\n &:focus {\n outline: 0;\n }\n\n @media screen and (max-width: 600px) {\n font-size: 16px;\n }\n}\n\n.no-reduce-motion button.icon-button i.fa-retweet {\n background-position: 0 0;\n height: 19px;\n transition: background-position 0.9s steps(10);\n transition-duration: 0s;\n vertical-align: middle;\n width: 22px;\n\n &::before {\n display: none !important;\n }\n\n}\n\n.no-reduce-motion button.icon-button.active i.fa-retweet {\n transition-duration: 0.9s;\n background-position: 0 100%;\n}\n\n.reduce-motion button.icon-button i.fa-retweet {\n color: $action-button-color;\n transition: color 100ms ease-in;\n}\n\n.reduce-motion button.icon-button.active i.fa-retweet {\n color: $highlight-text-color;\n}\n\n.status-card {\n display: flex;\n font-size: 14px;\n border: 1px solid lighten($ui-base-color, 8%);\n border-radius: 4px;\n color: $dark-text-color;\n margin-top: 14px;\n text-decoration: none;\n overflow: hidden;\n\n &__actions {\n bottom: 0;\n left: 0;\n position: absolute;\n right: 0;\n top: 0;\n display: flex;\n justify-content: center;\n align-items: center;\n\n & > div {\n background: rgba($base-shadow-color, 0.6);\n border-radius: 8px;\n padding: 12px 9px;\n flex: 0 0 auto;\n display: flex;\n justify-content: center;\n align-items: center;\n }\n\n button,\n a {\n display: inline;\n color: $secondary-text-color;\n background: transparent;\n border: 0;\n padding: 0 8px;\n text-decoration: none;\n font-size: 18px;\n line-height: 18px;\n\n &:hover,\n &:active,\n &:focus {\n color: $primary-text-color;\n }\n }\n\n a {\n font-size: 19px;\n position: relative;\n bottom: -1px;\n }\n }\n}\n\na.status-card {\n cursor: pointer;\n\n &:hover {\n background: lighten($ui-base-color, 8%);\n }\n}\n\n.status-card-photo {\n cursor: zoom-in;\n display: block;\n text-decoration: none;\n width: 100%;\n height: auto;\n margin: 0;\n}\n\n.status-card-video {\n iframe {\n width: 100%;\n height: 100%;\n }\n}\n\n.status-card__title {\n display: block;\n font-weight: 500;\n margin-bottom: 5px;\n color: $darker-text-color;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n text-decoration: none;\n}\n\n.status-card__content {\n flex: 1 1 auto;\n overflow: hidden;\n padding: 14px 14px 14px 8px;\n}\n\n.status-card__description {\n color: $darker-text-color;\n}\n\n.status-card__host {\n display: block;\n margin-top: 5px;\n font-size: 13px;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.status-card__image {\n flex: 0 0 100px;\n background: lighten($ui-base-color, 8%);\n position: relative;\n\n & > .fa {\n font-size: 21px;\n position: absolute;\n transform-origin: 50% 50%;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n }\n}\n\n.status-card.horizontal {\n display: block;\n\n .status-card__image {\n width: 100%;\n }\n\n .status-card__image-image {\n border-radius: 4px 4px 0 0;\n }\n\n .status-card__title {\n white-space: inherit;\n }\n}\n\n.status-card.compact {\n border-color: lighten($ui-base-color, 4%);\n\n &.interactive {\n border: 0;\n }\n\n .status-card__content {\n padding: 8px;\n padding-top: 10px;\n }\n\n .status-card__title {\n white-space: nowrap;\n }\n\n .status-card__image {\n flex: 0 0 60px;\n }\n}\n\na.status-card.compact:hover {\n background-color: lighten($ui-base-color, 4%);\n}\n\n.status-card__image-image {\n border-radius: 4px 0 0 4px;\n display: block;\n margin: 0;\n width: 100%;\n height: 100%;\n object-fit: cover;\n background-size: cover;\n background-position: center center;\n}\n\n.load-more {\n display: block;\n color: $dark-text-color;\n background-color: transparent;\n border: 0;\n font-size: inherit;\n text-align: center;\n line-height: inherit;\n margin: 0;\n padding: 15px;\n box-sizing: border-box;\n width: 100%;\n clear: both;\n text-decoration: none;\n\n &:hover {\n background: lighten($ui-base-color, 2%);\n }\n}\n\n.load-gap {\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n}\n\n.regeneration-indicator {\n text-align: center;\n font-size: 16px;\n font-weight: 500;\n color: $dark-text-color;\n background: $ui-base-color;\n cursor: default;\n display: flex;\n flex: 1 1 auto;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n padding: 20px;\n\n &__figure {\n &,\n img {\n display: block;\n width: auto;\n height: 160px;\n margin: 0;\n }\n }\n\n &--without-header {\n padding-top: 20px + 48px;\n }\n\n &__label {\n margin-top: 30px;\n\n strong {\n display: block;\n margin-bottom: 10px;\n color: $dark-text-color;\n }\n\n span {\n font-size: 15px;\n font-weight: 400;\n }\n }\n}\n\n.column-header__wrapper {\n position: relative;\n flex: 0 0 auto;\n z-index: 1;\n\n &.active {\n box-shadow: 0 1px 0 rgba($highlight-text-color, 0.3);\n\n &::before {\n display: block;\n content: \"\";\n position: absolute;\n bottom: -13px;\n left: 0;\n right: 0;\n margin: 0 auto;\n width: 60%;\n pointer-events: none;\n height: 28px;\n z-index: 1;\n background: radial-gradient(ellipse, rgba($ui-highlight-color, 0.23) 0%, rgba($ui-highlight-color, 0) 60%);\n }\n }\n\n .announcements {\n z-index: 1;\n position: relative;\n }\n}\n\n.column-header {\n display: flex;\n font-size: 16px;\n background: lighten($ui-base-color, 4%);\n flex: 0 0 auto;\n cursor: pointer;\n position: relative;\n z-index: 2;\n outline: 0;\n overflow: hidden;\n border-top-left-radius: 2px;\n border-top-right-radius: 2px;\n\n & > button {\n margin: 0;\n border: 0;\n padding: 15px 0 15px 15px;\n color: inherit;\n background: transparent;\n font: inherit;\n text-align: left;\n text-overflow: ellipsis;\n overflow: hidden;\n white-space: nowrap;\n flex: 1;\n }\n\n & > .column-header__back-button {\n color: $highlight-text-color;\n }\n\n &.active {\n .column-header__icon {\n color: $highlight-text-color;\n text-shadow: 0 0 10px rgba($highlight-text-color, 0.4);\n }\n }\n\n &:focus,\n &:active {\n outline: 0;\n }\n}\n\n.column-header__buttons {\n height: 48px;\n display: flex;\n}\n\n.column-header__links {\n margin-bottom: 14px;\n}\n\n.column-header__links .text-btn {\n margin-right: 10px;\n}\n\n.column-header__button {\n background: lighten($ui-base-color, 4%);\n border: 0;\n color: $darker-text-color;\n cursor: pointer;\n font-size: 16px;\n padding: 0 15px;\n\n &:hover {\n color: lighten($darker-text-color, 7%);\n }\n\n &.active {\n color: $primary-text-color;\n background: lighten($ui-base-color, 8%);\n\n &:hover {\n color: $primary-text-color;\n background: lighten($ui-base-color, 8%);\n }\n }\n}\n\n.column-header__collapsible {\n max-height: 70vh;\n overflow: hidden;\n overflow-y: auto;\n color: $darker-text-color;\n transition: max-height 150ms ease-in-out, opacity 300ms linear;\n opacity: 1;\n z-index: 1;\n position: relative;\n\n &.collapsed {\n max-height: 0;\n opacity: 0.5;\n }\n\n &.animating {\n overflow-y: hidden;\n }\n\n hr {\n height: 0;\n background: transparent;\n border: 0;\n border-top: 1px solid lighten($ui-base-color, 12%);\n margin: 10px 0;\n }\n}\n\n.column-header__collapsible-inner {\n background: lighten($ui-base-color, 8%);\n padding: 15px;\n}\n\n.column-header__setting-btn {\n &:hover {\n color: $darker-text-color;\n text-decoration: underline;\n }\n}\n\n.column-header__setting-arrows {\n float: right;\n\n .column-header__setting-btn {\n padding: 0 10px;\n\n &:last-child {\n padding-right: 0;\n }\n }\n}\n\n.text-btn {\n display: inline-block;\n padding: 0;\n font-family: inherit;\n font-size: inherit;\n color: inherit;\n border: 0;\n background: transparent;\n cursor: pointer;\n}\n\n.column-header__icon {\n display: inline-block;\n margin-right: 5px;\n}\n\n.loading-indicator {\n color: $dark-text-color;\n font-size: 12px;\n font-weight: 400;\n text-transform: uppercase;\n overflow: visible;\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n\n span {\n display: block;\n float: left;\n margin-left: 50%;\n transform: translateX(-50%);\n margin: 82px 0 0 50%;\n white-space: nowrap;\n }\n}\n\n.loading-indicator__figure {\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n width: 42px;\n height: 42px;\n box-sizing: border-box;\n background-color: transparent;\n border: 0 solid lighten($ui-base-color, 26%);\n border-width: 6px;\n border-radius: 50%;\n}\n\n.no-reduce-motion .loading-indicator span {\n animation: loader-label 1.15s infinite cubic-bezier(0.215, 0.61, 0.355, 1);\n}\n\n.no-reduce-motion .loading-indicator__figure {\n animation: loader-figure 1.15s infinite cubic-bezier(0.215, 0.61, 0.355, 1);\n}\n\n@keyframes spring-rotate-in {\n 0% {\n transform: rotate(0deg);\n }\n\n 30% {\n transform: rotate(-484.8deg);\n }\n\n 60% {\n transform: rotate(-316.7deg);\n }\n\n 90% {\n transform: rotate(-375deg);\n }\n\n 100% {\n transform: rotate(-360deg);\n }\n}\n\n@keyframes spring-rotate-out {\n 0% {\n transform: rotate(-360deg);\n }\n\n 30% {\n transform: rotate(124.8deg);\n }\n\n 60% {\n transform: rotate(-43.27deg);\n }\n\n 90% {\n transform: rotate(15deg);\n }\n\n 100% {\n transform: rotate(0deg);\n }\n}\n\n@keyframes loader-figure {\n 0% {\n width: 0;\n height: 0;\n background-color: lighten($ui-base-color, 26%);\n }\n\n 29% {\n background-color: lighten($ui-base-color, 26%);\n }\n\n 30% {\n width: 42px;\n height: 42px;\n background-color: transparent;\n border-width: 21px;\n opacity: 1;\n }\n\n 100% {\n width: 42px;\n height: 42px;\n border-width: 0;\n opacity: 0;\n background-color: transparent;\n }\n}\n\n@keyframes loader-label {\n 0% { opacity: 0.25; }\n 30% { opacity: 1; }\n 100% { opacity: 0.25; }\n}\n\n.video-error-cover {\n align-items: center;\n background: $base-overlay-background;\n color: $primary-text-color;\n cursor: pointer;\n display: flex;\n flex-direction: column;\n height: 100%;\n justify-content: center;\n margin-top: 8px;\n position: relative;\n text-align: center;\n z-index: 100;\n}\n\n.media-spoiler {\n background: $base-overlay-background;\n color: $darker-text-color;\n border: 0;\n padding: 0;\n width: 100%;\n height: 100%;\n border-radius: 4px;\n appearance: none;\n\n &:hover,\n &:active,\n &:focus {\n padding: 0;\n color: lighten($darker-text-color, 8%);\n }\n}\n\n.media-spoiler__warning {\n display: block;\n font-size: 14px;\n}\n\n.media-spoiler__trigger {\n display: block;\n font-size: 11px;\n font-weight: 700;\n}\n\n.spoiler-button {\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n position: absolute;\n z-index: 100;\n\n &--minified {\n display: block;\n left: 4px;\n top: 4px;\n width: auto;\n height: auto;\n }\n\n &--click-thru {\n pointer-events: none;\n }\n\n &--hidden {\n display: none;\n }\n\n &__overlay {\n display: block;\n background: transparent;\n width: 100%;\n height: 100%;\n border: 0;\n\n &__label {\n display: inline-block;\n background: rgba($base-overlay-background, 0.5);\n border-radius: 8px;\n padding: 8px 12px;\n color: $primary-text-color;\n font-weight: 500;\n font-size: 14px;\n }\n\n &:hover,\n &:focus,\n &:active {\n .spoiler-button__overlay__label {\n background: rgba($base-overlay-background, 0.8);\n }\n }\n\n &:disabled {\n .spoiler-button__overlay__label {\n background: rgba($base-overlay-background, 0.5);\n }\n }\n }\n}\n\n.modal-container--preloader {\n background: lighten($ui-base-color, 8%);\n}\n\n.account--panel {\n background: lighten($ui-base-color, 4%);\n border-top: 1px solid lighten($ui-base-color, 8%);\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n display: flex;\n flex-direction: row;\n padding: 10px 0;\n}\n\n.account--panel__button,\n.detailed-status__button {\n flex: 1 1 auto;\n text-align: center;\n}\n\n.column-settings__outer {\n background: lighten($ui-base-color, 8%);\n padding: 15px;\n}\n\n.column-settings__section {\n color: $darker-text-color;\n cursor: default;\n display: block;\n font-weight: 500;\n margin-bottom: 10px;\n}\n\n.column-settings__hashtags {\n .column-settings__row {\n margin-bottom: 15px;\n }\n\n .column-select {\n &__control {\n @include search-input;\n\n &::placeholder {\n color: lighten($darker-text-color, 4%);\n }\n\n &::-moz-focus-inner {\n border: 0;\n }\n\n &::-moz-focus-inner,\n &:focus,\n &:active {\n outline: 0 !important;\n }\n\n &:focus {\n background: lighten($ui-base-color, 4%);\n }\n\n @media screen and (max-width: 600px) {\n font-size: 16px;\n }\n }\n\n &__placeholder {\n color: $dark-text-color;\n padding-left: 2px;\n font-size: 12px;\n }\n\n &__value-container {\n padding-left: 6px;\n }\n\n &__multi-value {\n background: lighten($ui-base-color, 8%);\n\n &__remove {\n cursor: pointer;\n\n &:hover,\n &:active,\n &:focus {\n background: lighten($ui-base-color, 12%);\n color: lighten($darker-text-color, 4%);\n }\n }\n }\n\n &__multi-value__label,\n &__input {\n color: $darker-text-color;\n }\n\n &__clear-indicator,\n &__dropdown-indicator {\n cursor: pointer;\n transition: none;\n color: $dark-text-color;\n\n &:hover,\n &:active,\n &:focus {\n color: lighten($dark-text-color, 4%);\n }\n }\n\n &__indicator-separator {\n background-color: lighten($ui-base-color, 8%);\n }\n\n &__menu {\n @include search-popout;\n padding: 0;\n background: $ui-secondary-color;\n }\n\n &__menu-list {\n padding: 6px;\n }\n\n &__option {\n color: $inverted-text-color;\n border-radius: 4px;\n font-size: 14px;\n\n &--is-focused,\n &--is-selected {\n background: darken($ui-secondary-color, 10%);\n }\n }\n }\n}\n\n.column-settings__row {\n .text-btn {\n margin-bottom: 15px;\n }\n}\n\n.relationship-tag {\n color: $primary-text-color;\n margin-bottom: 4px;\n display: block;\n vertical-align: top;\n background-color: $base-overlay-background;\n text-transform: uppercase;\n font-size: 11px;\n font-weight: 500;\n padding: 4px;\n border-radius: 4px;\n opacity: 0.7;\n\n &:hover {\n opacity: 1;\n }\n}\n\n.setting-toggle {\n display: block;\n line-height: 24px;\n}\n\n.setting-toggle__label {\n color: $darker-text-color;\n display: inline-block;\n margin-bottom: 14px;\n margin-left: 8px;\n vertical-align: middle;\n}\n\n.empty-column-indicator,\n.error-column,\n.follow_requests-unlocked_explanation {\n color: $dark-text-color;\n background: $ui-base-color;\n text-align: center;\n padding: 20px;\n font-size: 15px;\n font-weight: 400;\n cursor: default;\n display: flex;\n flex: 1 1 auto;\n align-items: center;\n justify-content: center;\n\n @supports(display: grid) { // hack to fix Chrome <57\n contain: strict;\n }\n\n & > span {\n max-width: 400px;\n }\n\n a {\n color: $highlight-text-color;\n text-decoration: none;\n\n &:hover {\n text-decoration: underline;\n }\n }\n}\n\n.follow_requests-unlocked_explanation {\n background: darken($ui-base-color, 4%);\n contain: initial;\n}\n\n.error-column {\n flex-direction: column;\n}\n\n@keyframes heartbeat {\n from {\n transform: scale(1);\n animation-timing-function: ease-out;\n }\n\n 10% {\n transform: scale(0.91);\n animation-timing-function: ease-in;\n }\n\n 17% {\n transform: scale(0.98);\n animation-timing-function: ease-out;\n }\n\n 33% {\n transform: scale(0.87);\n animation-timing-function: ease-in;\n }\n\n 45% {\n transform: scale(1);\n animation-timing-function: ease-out;\n }\n}\n\n.no-reduce-motion .pulse-loading {\n transform-origin: center center;\n animation: heartbeat 1.5s ease-in-out infinite both;\n}\n\n@keyframes shake-bottom {\n 0%,\n 100% {\n transform: rotate(0deg);\n transform-origin: 50% 100%;\n }\n\n 10% {\n transform: rotate(2deg);\n }\n\n 20%,\n 40%,\n 60% {\n transform: rotate(-4deg);\n }\n\n 30%,\n 50%,\n 70% {\n transform: rotate(4deg);\n }\n\n 80% {\n transform: rotate(-2deg);\n }\n\n 90% {\n transform: rotate(2deg);\n }\n}\n\n.no-reduce-motion .shake-bottom {\n transform-origin: 50% 100%;\n animation: shake-bottom 0.8s cubic-bezier(0.455, 0.03, 0.515, 0.955) 2s 2 both;\n}\n\n.emoji-picker-dropdown__menu {\n background: $simple-background-color;\n position: absolute;\n box-shadow: 4px 4px 6px rgba($base-shadow-color, 0.4);\n border-radius: 4px;\n margin-top: 5px;\n z-index: 2;\n\n .emoji-mart-scroll {\n transition: opacity 200ms ease;\n }\n\n &.selecting .emoji-mart-scroll {\n opacity: 0.5;\n }\n}\n\n.emoji-picker-dropdown__modifiers {\n position: absolute;\n top: 60px;\n right: 11px;\n cursor: pointer;\n}\n\n.emoji-picker-dropdown__modifiers__menu {\n position: absolute;\n z-index: 4;\n top: -4px;\n left: -8px;\n background: $simple-background-color;\n border-radius: 4px;\n box-shadow: 1px 2px 6px rgba($base-shadow-color, 0.2);\n overflow: hidden;\n\n button {\n display: block;\n cursor: pointer;\n border: 0;\n padding: 4px 8px;\n background: transparent;\n\n &:hover,\n &:focus,\n &:active {\n background: rgba($ui-secondary-color, 0.4);\n }\n }\n\n .emoji-mart-emoji {\n height: 22px;\n }\n}\n\n.emoji-mart-emoji {\n span {\n background-repeat: no-repeat;\n }\n}\n\n.upload-area {\n align-items: center;\n background: rgba($base-overlay-background, 0.8);\n display: flex;\n height: 100%;\n justify-content: center;\n left: 0;\n opacity: 0;\n position: absolute;\n top: 0;\n visibility: hidden;\n width: 100%;\n z-index: 2000;\n\n * {\n pointer-events: none;\n }\n}\n\n.upload-area__drop {\n width: 320px;\n height: 160px;\n display: flex;\n box-sizing: border-box;\n position: relative;\n padding: 8px;\n}\n\n.upload-area__background {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: -1;\n border-radius: 4px;\n background: $ui-base-color;\n box-shadow: 0 0 5px rgba($base-shadow-color, 0.2);\n}\n\n.upload-area__content {\n flex: 1;\n display: flex;\n align-items: center;\n justify-content: center;\n color: $secondary-text-color;\n font-size: 18px;\n font-weight: 500;\n border: 2px dashed $ui-base-lighter-color;\n border-radius: 4px;\n}\n\n.upload-progress {\n padding: 10px;\n color: $lighter-text-color;\n overflow: hidden;\n display: flex;\n\n .fa {\n font-size: 34px;\n margin-right: 10px;\n }\n\n span {\n font-size: 12px;\n text-transform: uppercase;\n font-weight: 500;\n display: block;\n }\n}\n\n.upload-progess__message {\n flex: 1 1 auto;\n}\n\n.upload-progress__backdrop {\n width: 100%;\n height: 6px;\n border-radius: 6px;\n background: $ui-base-lighter-color;\n position: relative;\n margin-top: 5px;\n}\n\n.upload-progress__tracker {\n position: absolute;\n left: 0;\n top: 0;\n height: 6px;\n background: $ui-highlight-color;\n border-radius: 6px;\n}\n\n.emoji-button {\n display: block;\n padding: 5px 5px 2px 2px;\n outline: 0;\n cursor: pointer;\n\n &:active,\n &:focus {\n outline: 0 !important;\n }\n\n img {\n filter: grayscale(100%);\n opacity: 0.8;\n display: block;\n margin: 0;\n width: 22px;\n height: 22px;\n }\n\n &:hover,\n &:active,\n &:focus {\n img {\n opacity: 1;\n filter: none;\n }\n }\n}\n\n.dropdown--active .emoji-button img {\n opacity: 1;\n filter: none;\n}\n\n.privacy-dropdown__dropdown {\n position: absolute;\n background: $simple-background-color;\n box-shadow: 2px 4px 15px rgba($base-shadow-color, 0.4);\n border-radius: 4px;\n margin-left: 40px;\n overflow: hidden;\n\n &.top {\n transform-origin: 50% 100%;\n }\n\n &.bottom {\n transform-origin: 50% 0;\n }\n}\n\n.privacy-dropdown__option {\n color: $inverted-text-color;\n padding: 10px;\n cursor: pointer;\n display: flex;\n\n &:hover,\n &.active {\n background: $ui-highlight-color;\n color: $primary-text-color;\n outline: 0;\n\n .privacy-dropdown__option__content {\n color: $primary-text-color;\n\n strong {\n color: $primary-text-color;\n }\n }\n }\n\n &.active:hover {\n background: lighten($ui-highlight-color, 4%);\n }\n}\n\n.privacy-dropdown__option__icon {\n display: flex;\n align-items: center;\n justify-content: center;\n margin-right: 10px;\n}\n\n.privacy-dropdown__option__content {\n flex: 1 1 auto;\n color: $lighter-text-color;\n\n strong {\n font-weight: 500;\n display: block;\n color: $inverted-text-color;\n\n @each $lang in $cjk-langs {\n &:lang(#{$lang}) {\n font-weight: 700;\n }\n }\n }\n}\n\n.privacy-dropdown.active {\n .privacy-dropdown__value {\n background: $simple-background-color;\n border-radius: 4px 4px 0 0;\n box-shadow: 0 -4px 4px rgba($base-shadow-color, 0.1);\n\n .icon-button {\n transition: none;\n }\n\n &.active {\n background: $ui-highlight-color;\n\n .icon-button {\n color: $primary-text-color;\n }\n }\n }\n\n &.top .privacy-dropdown__value {\n border-radius: 0 0 4px 4px;\n }\n\n .privacy-dropdown__dropdown {\n display: block;\n box-shadow: 2px 4px 6px rgba($base-shadow-color, 0.1);\n }\n}\n\n.search {\n position: relative;\n}\n\n.search__input {\n @include search-input;\n\n display: block;\n padding: 15px;\n padding-right: 30px;\n line-height: 18px;\n font-size: 16px;\n\n &::placeholder {\n color: lighten($darker-text-color, 4%);\n }\n\n &::-moz-focus-inner {\n border: 0;\n }\n\n &::-moz-focus-inner,\n &:focus,\n &:active {\n outline: 0 !important;\n }\n\n &:focus {\n background: lighten($ui-base-color, 4%);\n }\n\n @media screen and (max-width: 600px) {\n font-size: 16px;\n }\n}\n\n.search__icon {\n &::-moz-focus-inner {\n border: 0;\n }\n\n &::-moz-focus-inner,\n &:focus {\n outline: 0 !important;\n }\n\n .fa {\n position: absolute;\n top: 16px;\n right: 10px;\n z-index: 2;\n display: inline-block;\n opacity: 0;\n transition: all 100ms linear;\n transition-property: transform, opacity;\n font-size: 18px;\n width: 18px;\n height: 18px;\n color: $secondary-text-color;\n cursor: default;\n pointer-events: none;\n\n &.active {\n pointer-events: auto;\n opacity: 0.3;\n }\n }\n\n .fa-search {\n transform: rotate(90deg);\n\n &.active {\n pointer-events: none;\n transform: rotate(0deg);\n }\n }\n\n .fa-times-circle {\n top: 17px;\n transform: rotate(0deg);\n color: $action-button-color;\n cursor: pointer;\n\n &.active {\n transform: rotate(90deg);\n }\n\n &:hover {\n color: lighten($action-button-color, 7%);\n }\n }\n}\n\n.search-results__header {\n color: $dark-text-color;\n background: lighten($ui-base-color, 2%);\n padding: 15px;\n font-weight: 500;\n font-size: 16px;\n cursor: default;\n\n .fa {\n display: inline-block;\n margin-right: 5px;\n }\n}\n\n.search-results__section {\n margin-bottom: 5px;\n\n h5 {\n background: darken($ui-base-color, 4%);\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n cursor: default;\n display: flex;\n padding: 15px;\n font-weight: 500;\n font-size: 16px;\n color: $dark-text-color;\n\n .fa {\n display: inline-block;\n margin-right: 5px;\n }\n }\n\n .account:last-child,\n & > div:last-child .status {\n border-bottom: 0;\n }\n}\n\n.search-results__hashtag {\n display: block;\n padding: 10px;\n color: $secondary-text-color;\n text-decoration: none;\n\n &:hover,\n &:active,\n &:focus {\n color: lighten($secondary-text-color, 4%);\n text-decoration: underline;\n }\n}\n\n.search-results__info {\n padding: 20px;\n color: $darker-text-color;\n text-align: center;\n}\n\n.modal-root {\n position: relative;\n transition: opacity 0.3s linear;\n will-change: opacity;\n z-index: 9999;\n}\n\n.modal-root__overlay {\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background: rgba($base-overlay-background, 0.7);\n}\n\n.modal-root__container {\n position: fixed;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n align-content: space-around;\n z-index: 9999;\n pointer-events: none;\n user-select: none;\n}\n\n.modal-root__modal {\n pointer-events: auto;\n display: flex;\n z-index: 9999;\n}\n\n.video-modal__container {\n max-width: 100vw;\n max-height: 100vh;\n}\n\n.audio-modal__container {\n width: 50vw;\n}\n\n.media-modal {\n width: 100%;\n height: 100%;\n position: relative;\n\n .extended-video-player {\n width: 100%;\n height: 100%;\n display: flex;\n align-items: center;\n justify-content: center;\n\n video {\n max-width: $media-modal-media-max-width;\n max-height: $media-modal-media-max-height;\n }\n }\n}\n\n.media-modal__closer {\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n}\n\n.media-modal__navigation {\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n pointer-events: none;\n transition: opacity 0.3s linear;\n will-change: opacity;\n\n * {\n pointer-events: auto;\n }\n\n &.media-modal__navigation--hidden {\n opacity: 0;\n\n * {\n pointer-events: none;\n }\n }\n}\n\n.media-modal__nav {\n background: rgba($base-overlay-background, 0.5);\n box-sizing: border-box;\n border: 0;\n color: $primary-text-color;\n cursor: pointer;\n display: flex;\n align-items: center;\n font-size: 24px;\n height: 20vmax;\n margin: auto 0;\n padding: 30px 15px;\n position: absolute;\n top: 0;\n bottom: 0;\n}\n\n.media-modal__nav--left {\n left: 0;\n}\n\n.media-modal__nav--right {\n right: 0;\n}\n\n.media-modal__pagination {\n width: 100%;\n text-align: center;\n position: absolute;\n left: 0;\n bottom: 20px;\n pointer-events: none;\n}\n\n.media-modal__meta {\n text-align: center;\n position: absolute;\n left: 0;\n bottom: 20px;\n width: 100%;\n pointer-events: none;\n\n &--shifted {\n bottom: 62px;\n }\n\n a {\n pointer-events: auto;\n text-decoration: none;\n font-weight: 500;\n color: $ui-secondary-color;\n\n &:hover,\n &:focus,\n &:active {\n text-decoration: underline;\n }\n }\n}\n\n.media-modal__page-dot {\n display: inline-block;\n}\n\n.media-modal__button {\n background-color: $primary-text-color;\n height: 12px;\n width: 12px;\n border-radius: 6px;\n margin: 10px;\n padding: 0;\n border: 0;\n font-size: 0;\n}\n\n.media-modal__button--active {\n background-color: $highlight-text-color;\n}\n\n.media-modal__close {\n position: absolute;\n right: 8px;\n top: 8px;\n z-index: 100;\n}\n\n.onboarding-modal,\n.error-modal,\n.embed-modal {\n background: $ui-secondary-color;\n color: $inverted-text-color;\n border-radius: 8px;\n overflow: hidden;\n display: flex;\n flex-direction: column;\n}\n\n.error-modal__body {\n height: 80vh;\n width: 80vw;\n max-width: 520px;\n max-height: 420px;\n position: relative;\n\n & > div {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n box-sizing: border-box;\n padding: 25px;\n display: none;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n display: flex;\n opacity: 0;\n user-select: text;\n }\n}\n\n.error-modal__body {\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n text-align: center;\n}\n\n.onboarding-modal__paginator,\n.error-modal__footer {\n flex: 0 0 auto;\n background: darken($ui-secondary-color, 8%);\n display: flex;\n padding: 25px;\n\n & > div {\n min-width: 33px;\n }\n\n .onboarding-modal__nav,\n .error-modal__nav {\n color: $lighter-text-color;\n border: 0;\n font-size: 14px;\n font-weight: 500;\n padding: 10px 25px;\n line-height: inherit;\n height: auto;\n margin: -10px;\n border-radius: 4px;\n background-color: transparent;\n\n &:hover,\n &:focus,\n &:active {\n color: darken($lighter-text-color, 4%);\n background-color: darken($ui-secondary-color, 16%);\n }\n\n &.onboarding-modal__done,\n &.onboarding-modal__next {\n color: $inverted-text-color;\n\n &:hover,\n &:focus,\n &:active {\n color: lighten($inverted-text-color, 4%);\n }\n }\n }\n}\n\n.error-modal__footer {\n justify-content: center;\n}\n\n.display-case {\n text-align: center;\n font-size: 15px;\n margin-bottom: 15px;\n\n &__label {\n font-weight: 500;\n color: $inverted-text-color;\n margin-bottom: 5px;\n text-transform: uppercase;\n font-size: 12px;\n }\n\n &__case {\n background: $ui-base-color;\n color: $secondary-text-color;\n font-weight: 500;\n padding: 10px;\n border-radius: 4px;\n }\n}\n\n.onboard-sliders {\n display: inline-block;\n max-width: 30px;\n max-height: auto;\n margin-left: 10px;\n}\n\n.boost-modal,\n.confirmation-modal,\n.report-modal,\n.actions-modal,\n.mute-modal,\n.block-modal {\n background: lighten($ui-secondary-color, 8%);\n color: $inverted-text-color;\n border-radius: 8px;\n overflow: hidden;\n max-width: 90vw;\n width: 480px;\n position: relative;\n flex-direction: column;\n\n .status__display-name {\n display: block;\n max-width: 100%;\n padding-right: 25px;\n }\n\n .status__avatar {\n height: 28px;\n left: 10px;\n position: absolute;\n top: 10px;\n width: 48px;\n }\n\n .status__content__spoiler-link {\n color: lighten($secondary-text-color, 8%);\n }\n}\n\n.actions-modal {\n .status {\n background: $white;\n border-bottom-color: $ui-secondary-color;\n padding-top: 10px;\n padding-bottom: 10px;\n }\n\n .dropdown-menu__separator {\n border-bottom-color: $ui-secondary-color;\n }\n}\n\n.boost-modal__container {\n overflow-x: scroll;\n padding: 10px;\n\n .status {\n user-select: text;\n border-bottom: 0;\n }\n}\n\n.boost-modal__action-bar,\n.confirmation-modal__action-bar,\n.mute-modal__action-bar,\n.block-modal__action-bar {\n display: flex;\n justify-content: space-between;\n background: $ui-secondary-color;\n padding: 10px;\n line-height: 36px;\n\n & > div {\n flex: 1 1 auto;\n text-align: right;\n color: $lighter-text-color;\n padding-right: 10px;\n }\n\n .button {\n flex: 0 0 auto;\n }\n}\n\n.boost-modal__status-header {\n font-size: 15px;\n}\n\n.boost-modal__status-time {\n float: right;\n font-size: 14px;\n}\n\n.mute-modal,\n.block-modal {\n line-height: 24px;\n}\n\n.mute-modal .react-toggle,\n.block-modal .react-toggle {\n vertical-align: middle;\n}\n\n.report-modal {\n width: 90vw;\n max-width: 700px;\n}\n\n.report-modal__container {\n display: flex;\n border-top: 1px solid $ui-secondary-color;\n\n @media screen and (max-width: 480px) {\n flex-wrap: wrap;\n overflow-y: auto;\n }\n}\n\n.report-modal__statuses,\n.report-modal__comment {\n box-sizing: border-box;\n width: 50%;\n\n @media screen and (max-width: 480px) {\n width: 100%;\n }\n}\n\n.report-modal__statuses,\n.focal-point-modal__content {\n flex: 1 1 auto;\n min-height: 20vh;\n max-height: 80vh;\n overflow-y: auto;\n overflow-x: hidden;\n\n .status__content a {\n color: $highlight-text-color;\n }\n\n .status__content,\n .status__content p {\n color: $inverted-text-color;\n }\n\n @media screen and (max-width: 480px) {\n max-height: 10vh;\n }\n}\n\n.focal-point-modal__content {\n @media screen and (max-width: 480px) {\n max-height: 40vh;\n }\n}\n\n.report-modal__comment {\n padding: 20px;\n border-right: 1px solid $ui-secondary-color;\n max-width: 320px;\n\n p {\n font-size: 14px;\n line-height: 20px;\n margin-bottom: 20px;\n }\n\n .setting-text {\n display: block;\n box-sizing: border-box;\n width: 100%;\n margin: 0;\n color: $inverted-text-color;\n background: $white;\n padding: 10px;\n font-family: inherit;\n font-size: 14px;\n resize: none;\n border: 0;\n outline: 0;\n border-radius: 4px;\n border: 1px solid $ui-secondary-color;\n min-height: 100px;\n max-height: 50vh;\n margin-bottom: 10px;\n\n &:focus {\n border: 1px solid darken($ui-secondary-color, 8%);\n }\n\n &__wrapper {\n background: $white;\n border: 1px solid $ui-secondary-color;\n margin-bottom: 10px;\n border-radius: 4px;\n\n .setting-text {\n border: 0;\n margin-bottom: 0;\n border-radius: 0;\n\n &:focus {\n border: 0;\n }\n }\n\n &__modifiers {\n color: $inverted-text-color;\n font-family: inherit;\n font-size: 14px;\n background: $white;\n }\n }\n\n &__toolbar {\n display: flex;\n justify-content: space-between;\n margin-bottom: 20px;\n }\n }\n\n .setting-text-label {\n display: block;\n color: $inverted-text-color;\n font-size: 14px;\n font-weight: 500;\n margin-bottom: 10px;\n }\n\n .setting-toggle {\n margin-top: 20px;\n margin-bottom: 24px;\n\n &__label {\n color: $inverted-text-color;\n font-size: 14px;\n }\n }\n\n @media screen and (max-width: 480px) {\n padding: 10px;\n max-width: 100%;\n order: 2;\n\n .setting-toggle {\n margin-bottom: 4px;\n }\n }\n}\n\n.actions-modal {\n max-height: 80vh;\n max-width: 80vw;\n\n .status {\n overflow-y: auto;\n max-height: 300px;\n }\n\n .actions-modal__item-label {\n font-weight: 500;\n }\n\n ul {\n overflow-y: auto;\n flex-shrink: 0;\n max-height: 80vh;\n\n &.with-status {\n max-height: calc(80vh - 75px);\n }\n\n li:empty {\n margin: 0;\n }\n\n li:not(:empty) {\n a {\n color: $inverted-text-color;\n display: flex;\n padding: 12px 16px;\n font-size: 15px;\n align-items: center;\n text-decoration: none;\n\n &,\n button {\n transition: none;\n }\n\n &.active,\n &:hover,\n &:active,\n &:focus {\n &,\n button {\n background: $ui-highlight-color;\n color: $primary-text-color;\n }\n }\n\n button:first-child {\n margin-right: 10px;\n }\n }\n }\n }\n}\n\n.confirmation-modal__action-bar,\n.mute-modal__action-bar,\n.block-modal__action-bar {\n .confirmation-modal__secondary-button {\n flex-shrink: 1;\n }\n}\n\n.confirmation-modal__secondary-button,\n.confirmation-modal__cancel-button,\n.mute-modal__cancel-button,\n.block-modal__cancel-button {\n background-color: transparent;\n color: $lighter-text-color;\n font-size: 14px;\n font-weight: 500;\n\n &:hover,\n &:focus,\n &:active {\n color: darken($lighter-text-color, 4%);\n background-color: transparent;\n }\n}\n\n.confirmation-modal__container,\n.mute-modal__container,\n.block-modal__container,\n.report-modal__target {\n padding: 30px;\n font-size: 16px;\n\n strong {\n font-weight: 500;\n\n @each $lang in $cjk-langs {\n &:lang(#{$lang}) {\n font-weight: 700;\n }\n }\n }\n}\n\n.confirmation-modal__container,\n.report-modal__target {\n text-align: center;\n}\n\n.block-modal,\n.mute-modal {\n &__explanation {\n margin-top: 20px;\n }\n\n .setting-toggle {\n margin-top: 20px;\n margin-bottom: 24px;\n display: flex;\n align-items: center;\n\n &__label {\n color: $inverted-text-color;\n margin: 0;\n margin-left: 8px;\n }\n }\n}\n\n.report-modal__target {\n padding: 15px;\n\n .media-modal__close {\n top: 14px;\n right: 15px;\n }\n}\n\n.loading-bar {\n background-color: $highlight-text-color;\n height: 3px;\n position: absolute;\n top: 0;\n left: 0;\n z-index: 9999;\n}\n\n.media-gallery__gifv__label {\n display: block;\n position: absolute;\n color: $primary-text-color;\n background: rgba($base-overlay-background, 0.5);\n bottom: 6px;\n left: 6px;\n padding: 2px 6px;\n border-radius: 2px;\n font-size: 11px;\n font-weight: 600;\n z-index: 1;\n pointer-events: none;\n opacity: 0.9;\n transition: opacity 0.1s ease;\n line-height: 18px;\n}\n\n.media-gallery__gifv {\n &:hover {\n .media-gallery__gifv__label {\n opacity: 1;\n }\n }\n}\n\n.media-gallery__audio {\n margin-top: 32px;\n\n audio {\n width: 100%;\n }\n}\n\n.attachment-list {\n display: flex;\n font-size: 14px;\n border: 1px solid lighten($ui-base-color, 8%);\n border-radius: 4px;\n margin-top: 14px;\n overflow: hidden;\n\n &__icon {\n flex: 0 0 auto;\n color: $dark-text-color;\n padding: 8px 18px;\n cursor: default;\n border-right: 1px solid lighten($ui-base-color, 8%);\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n font-size: 26px;\n\n .fa {\n display: block;\n }\n }\n\n &__list {\n list-style: none;\n padding: 4px 0;\n padding-left: 8px;\n display: flex;\n flex-direction: column;\n justify-content: center;\n\n li {\n display: block;\n padding: 4px 0;\n }\n\n a {\n text-decoration: none;\n color: $dark-text-color;\n font-weight: 500;\n\n &:hover {\n text-decoration: underline;\n }\n }\n }\n\n &.compact {\n border: 0;\n margin-top: 4px;\n\n .attachment-list__list {\n padding: 0;\n display: block;\n }\n\n .fa {\n color: $dark-text-color;\n }\n }\n}\n\n/* Media Gallery */\n.media-gallery {\n box-sizing: border-box;\n margin-top: 8px;\n overflow: hidden;\n border-radius: 4px;\n position: relative;\n width: 100%;\n}\n\n.media-gallery__item {\n border: 0;\n box-sizing: border-box;\n display: block;\n float: left;\n position: relative;\n border-radius: 4px;\n overflow: hidden;\n\n &.standalone {\n .media-gallery__item-gifv-thumbnail {\n transform: none;\n top: 0;\n }\n }\n}\n\n.media-gallery__item-thumbnail {\n cursor: zoom-in;\n display: block;\n text-decoration: none;\n color: $secondary-text-color;\n position: relative;\n z-index: 1;\n\n &,\n img {\n height: 100%;\n width: 100%;\n }\n\n img {\n object-fit: cover;\n }\n}\n\n.media-gallery__preview {\n width: 100%;\n height: 100%;\n object-fit: cover;\n position: absolute;\n top: 0;\n left: 0;\n z-index: 0;\n background: $base-overlay-background;\n\n &--hidden {\n display: none;\n }\n}\n\n.media-gallery__gifv {\n height: 100%;\n overflow: hidden;\n position: relative;\n width: 100%;\n}\n\n.media-gallery__item-gifv-thumbnail {\n cursor: zoom-in;\n height: 100%;\n object-fit: cover;\n position: relative;\n top: 50%;\n transform: translateY(-50%);\n width: 100%;\n z-index: 1;\n}\n\n.media-gallery__item-thumbnail-label {\n clip: rect(1px 1px 1px 1px); /* IE6, IE7 */\n clip: rect(1px, 1px, 1px, 1px);\n overflow: hidden;\n position: absolute;\n}\n/* End Media Gallery */\n\n.detailed,\n.fullscreen {\n .video-player__volume__current,\n .video-player__volume::before {\n bottom: 27px;\n }\n\n .video-player__volume__handle {\n bottom: 23px;\n }\n\n}\n\n.audio-player {\n box-sizing: border-box;\n position: relative;\n background: darken($ui-base-color, 8%);\n border-radius: 4px;\n padding-bottom: 44px;\n direction: ltr;\n\n &.editable {\n border-radius: 0;\n height: 100%;\n }\n\n &__waveform {\n padding: 15px 0;\n position: relative;\n overflow: hidden;\n\n &::before {\n content: \"\";\n display: block;\n position: absolute;\n border-top: 1px solid lighten($ui-base-color, 4%);\n width: 100%;\n height: 0;\n left: 0;\n top: calc(50% + 1px);\n }\n }\n\n &__progress-placeholder {\n background-color: rgba(lighten($ui-highlight-color, 8%), 0.5);\n }\n\n &__wave-placeholder {\n background-color: lighten($ui-base-color, 16%);\n }\n\n .video-player__controls {\n padding: 0 15px;\n padding-top: 10px;\n background: darken($ui-base-color, 8%);\n border-top: 1px solid lighten($ui-base-color, 4%);\n border-radius: 0 0 4px 4px;\n }\n}\n\n.video-player {\n overflow: hidden;\n position: relative;\n background: $base-shadow-color;\n max-width: 100%;\n border-radius: 4px;\n box-sizing: border-box;\n direction: ltr;\n\n &.editable {\n border-radius: 0;\n height: 100% !important;\n }\n\n &:focus {\n outline: 0;\n }\n\n video {\n max-width: 100vw;\n max-height: 80vh;\n z-index: 1;\n }\n\n &.fullscreen {\n width: 100% !important;\n height: 100% !important;\n margin: 0;\n\n video {\n max-width: 100% !important;\n max-height: 100% !important;\n width: 100% !important;\n height: 100% !important;\n outline: 0;\n }\n }\n\n &.inline {\n video {\n object-fit: contain;\n position: relative;\n top: 50%;\n transform: translateY(-50%);\n }\n }\n\n &__controls {\n position: absolute;\n z-index: 2;\n bottom: 0;\n left: 0;\n right: 0;\n box-sizing: border-box;\n background: linear-gradient(0deg, rgba($base-shadow-color, 0.85) 0, rgba($base-shadow-color, 0.45) 60%, transparent);\n padding: 0 15px;\n opacity: 0;\n transition: opacity .1s ease;\n\n &.active {\n opacity: 1;\n }\n }\n\n &.inactive {\n video,\n .video-player__controls {\n visibility: hidden;\n }\n }\n\n &__spoiler {\n display: none;\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n z-index: 4;\n border: 0;\n background: $base-overlay-background;\n color: $darker-text-color;\n transition: none;\n pointer-events: none;\n\n &.active {\n display: block;\n pointer-events: auto;\n\n &:hover,\n &:active,\n &:focus {\n color: lighten($darker-text-color, 7%);\n }\n }\n\n &__title {\n display: block;\n font-size: 14px;\n }\n\n &__subtitle {\n display: block;\n font-size: 11px;\n font-weight: 500;\n }\n }\n\n &__buttons-bar {\n display: flex;\n justify-content: space-between;\n padding-bottom: 10px;\n\n .video-player__download__icon {\n color: inherit;\n }\n }\n\n &__buttons {\n font-size: 16px;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n\n &.left {\n button {\n padding-left: 0;\n }\n }\n\n &.right {\n button {\n padding-right: 0;\n }\n }\n\n button {\n background: transparent;\n padding: 2px 10px;\n font-size: 16px;\n border: 0;\n color: rgba($white, 0.75);\n\n &:active,\n &:hover,\n &:focus {\n color: $white;\n }\n }\n }\n\n &__time-sep,\n &__time-total,\n &__time-current {\n font-size: 14px;\n font-weight: 500;\n }\n\n &__time-current {\n color: $white;\n margin-left: 60px;\n }\n\n &__time-sep {\n display: inline-block;\n margin: 0 6px;\n }\n\n &__time-sep,\n &__time-total {\n color: $white;\n }\n\n &__volume {\n cursor: pointer;\n height: 24px;\n display: inline;\n\n &::before {\n content: \"\";\n width: 50px;\n background: rgba($white, 0.35);\n border-radius: 4px;\n display: block;\n position: absolute;\n height: 4px;\n left: 70px;\n bottom: 20px;\n }\n\n &__current {\n display: block;\n position: absolute;\n height: 4px;\n border-radius: 4px;\n left: 70px;\n bottom: 20px;\n background: lighten($ui-highlight-color, 8%);\n }\n\n &__handle {\n position: absolute;\n z-index: 3;\n border-radius: 50%;\n width: 12px;\n height: 12px;\n bottom: 16px;\n left: 70px;\n transition: opacity .1s ease;\n background: lighten($ui-highlight-color, 8%);\n box-shadow: 1px 2px 6px rgba($base-shadow-color, 0.2);\n pointer-events: none;\n }\n }\n\n &__link {\n padding: 2px 10px;\n\n a {\n text-decoration: none;\n font-size: 14px;\n font-weight: 500;\n color: $white;\n\n &:hover,\n &:active,\n &:focus {\n text-decoration: underline;\n }\n }\n }\n\n &__seek {\n cursor: pointer;\n height: 24px;\n position: relative;\n\n &::before {\n content: \"\";\n width: 100%;\n background: rgba($white, 0.35);\n border-radius: 4px;\n display: block;\n position: absolute;\n height: 4px;\n top: 10px;\n }\n\n &__progress,\n &__buffer {\n display: block;\n position: absolute;\n height: 4px;\n border-radius: 4px;\n top: 10px;\n background: lighten($ui-highlight-color, 8%);\n }\n\n &__buffer {\n background: rgba($white, 0.2);\n }\n\n &__handle {\n position: absolute;\n z-index: 3;\n opacity: 0;\n border-radius: 50%;\n width: 12px;\n height: 12px;\n top: 6px;\n margin-left: -6px;\n transition: opacity .1s ease;\n background: lighten($ui-highlight-color, 8%);\n box-shadow: 1px 2px 6px rgba($base-shadow-color, 0.2);\n pointer-events: none;\n\n &.active {\n opacity: 1;\n }\n }\n\n &:hover {\n .video-player__seek__handle {\n opacity: 1;\n }\n }\n }\n\n &.detailed,\n &.fullscreen {\n .video-player__buttons {\n button {\n padding-top: 10px;\n padding-bottom: 10px;\n }\n }\n }\n}\n\n.directory {\n &__list {\n width: 100%;\n margin: 10px 0;\n transition: opacity 100ms ease-in;\n\n &.loading {\n opacity: 0.7;\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n margin: 0;\n }\n }\n\n &__card {\n box-sizing: border-box;\n margin-bottom: 10px;\n\n &__img {\n height: 125px;\n position: relative;\n background: darken($ui-base-color, 12%);\n overflow: hidden;\n\n img {\n display: block;\n width: 100%;\n height: 100%;\n margin: 0;\n object-fit: cover;\n }\n }\n\n &__bar {\n display: flex;\n align-items: center;\n background: lighten($ui-base-color, 4%);\n padding: 10px;\n\n &__name {\n flex: 1 1 auto;\n display: flex;\n align-items: center;\n text-decoration: none;\n overflow: hidden;\n }\n\n &__relationship {\n width: 23px;\n min-height: 1px;\n flex: 0 0 auto;\n }\n\n .avatar {\n flex: 0 0 auto;\n width: 48px;\n height: 48px;\n padding-top: 2px;\n\n img {\n width: 100%;\n height: 100%;\n display: block;\n margin: 0;\n border-radius: 4px;\n background: darken($ui-base-color, 8%);\n object-fit: cover;\n }\n }\n\n .display-name {\n margin-left: 15px;\n text-align: left;\n\n strong {\n font-size: 15px;\n color: $primary-text-color;\n font-weight: 500;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n span {\n display: block;\n font-size: 14px;\n color: $darker-text-color;\n font-weight: 400;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n }\n }\n\n &__extra {\n background: $ui-base-color;\n display: flex;\n align-items: center;\n justify-content: center;\n\n .accounts-table__count {\n width: 33.33%;\n flex: 0 0 auto;\n padding: 15px 0;\n }\n\n .account__header__content {\n box-sizing: border-box;\n padding: 15px 10px;\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n width: 100%;\n min-height: 18px + 30px;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n\n p {\n display: none;\n\n &:first-child {\n display: inline;\n }\n }\n\n br {\n display: none;\n }\n }\n }\n }\n}\n\n.account-gallery__container {\n display: flex;\n flex-wrap: wrap;\n padding: 4px 2px;\n}\n\n.account-gallery__item {\n border: 0;\n box-sizing: border-box;\n display: block;\n position: relative;\n border-radius: 4px;\n overflow: hidden;\n margin: 2px;\n\n &__icons {\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n font-size: 24px;\n }\n}\n\n.notification__filter-bar,\n.account__section-headline {\n background: darken($ui-base-color, 4%);\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n cursor: default;\n display: flex;\n flex-shrink: 0;\n\n button {\n background: darken($ui-base-color, 4%);\n border: 0;\n margin: 0;\n }\n\n button,\n a {\n display: block;\n flex: 1 1 auto;\n color: $darker-text-color;\n padding: 15px 0;\n font-size: 14px;\n font-weight: 500;\n text-align: center;\n text-decoration: none;\n position: relative;\n width: 100%;\n white-space: nowrap;\n\n &.active {\n color: $secondary-text-color;\n\n &::before,\n &::after {\n display: block;\n content: \"\";\n position: absolute;\n bottom: 0;\n left: 50%;\n width: 0;\n height: 0;\n transform: translateX(-50%);\n border-style: solid;\n border-width: 0 10px 10px;\n border-color: transparent transparent lighten($ui-base-color, 8%);\n }\n\n &::after {\n bottom: -1px;\n border-color: transparent transparent $ui-base-color;\n }\n }\n }\n\n &.directory__section-headline {\n background: darken($ui-base-color, 2%);\n border-bottom-color: transparent;\n\n a,\n button {\n &.active {\n &::before {\n display: none;\n }\n\n &::after {\n border-color: transparent transparent darken($ui-base-color, 7%);\n }\n }\n }\n }\n}\n\n.filter-form {\n background: $ui-base-color;\n\n &__column {\n padding: 10px 15px;\n }\n\n .radio-button {\n display: block;\n }\n}\n\n.radio-button {\n font-size: 14px;\n position: relative;\n display: inline-block;\n padding: 6px 0;\n line-height: 18px;\n cursor: default;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n cursor: pointer;\n\n input[type=radio],\n input[type=checkbox] {\n display: none;\n }\n\n &__input {\n display: inline-block;\n position: relative;\n border: 1px solid $ui-primary-color;\n box-sizing: border-box;\n width: 18px;\n height: 18px;\n flex: 0 0 auto;\n margin-right: 10px;\n top: -1px;\n border-radius: 50%;\n vertical-align: middle;\n\n &.checked {\n border-color: lighten($ui-highlight-color, 8%);\n background: lighten($ui-highlight-color, 8%);\n }\n }\n}\n\n::-webkit-scrollbar-thumb {\n border-radius: 0;\n}\n\n.search-popout {\n @include search-popout;\n}\n\nnoscript {\n text-align: center;\n\n img {\n width: 200px;\n opacity: 0.5;\n animation: flicker 4s infinite;\n }\n\n div {\n font-size: 14px;\n margin: 30px auto;\n color: $secondary-text-color;\n max-width: 400px;\n\n a {\n color: $highlight-text-color;\n text-decoration: underline;\n\n &:hover {\n text-decoration: none;\n }\n }\n }\n}\n\n@keyframes flicker {\n 0% { opacity: 1; }\n 30% { opacity: 0.75; }\n 100% { opacity: 1; }\n}\n\n@media screen and (max-width: 630px) and (max-height: 400px) {\n $duration: 400ms;\n $delay: 100ms;\n\n .tabs-bar,\n .search {\n will-change: margin-top;\n transition: margin-top $duration $delay;\n }\n\n .navigation-bar {\n will-change: padding-bottom;\n transition: padding-bottom $duration $delay;\n }\n\n .navigation-bar {\n & > a:first-child {\n will-change: margin-top, margin-left, margin-right, width;\n transition: margin-top $duration $delay, margin-left $duration ($duration + $delay), margin-right $duration ($duration + $delay);\n }\n\n & > .navigation-bar__profile-edit {\n will-change: margin-top;\n transition: margin-top $duration $delay;\n }\n\n .navigation-bar__actions {\n & > .icon-button.close {\n will-change: opacity transform;\n transition: opacity $duration * 0.5 $delay,\n transform $duration $delay;\n }\n\n & > .compose__action-bar .icon-button {\n will-change: opacity transform;\n transition: opacity $duration * 0.5 $delay + $duration * 0.5,\n transform $duration $delay;\n }\n }\n }\n\n .is-composing {\n .tabs-bar,\n .search {\n margin-top: -50px;\n }\n\n .navigation-bar {\n padding-bottom: 0;\n\n & > a:first-child {\n margin: -100px 10px 0 -50px;\n }\n\n .navigation-bar__profile {\n padding-top: 2px;\n }\n\n .navigation-bar__profile-edit {\n position: absolute;\n margin-top: -60px;\n }\n\n .navigation-bar__actions {\n .icon-button.close {\n pointer-events: auto;\n opacity: 1;\n transform: scale(1, 1) translate(0, 0);\n bottom: 5px;\n }\n\n .compose__action-bar .icon-button {\n pointer-events: none;\n opacity: 0;\n transform: scale(0, 1) translate(100%, 0);\n }\n }\n }\n }\n}\n\n.embed-modal {\n width: auto;\n max-width: 80vw;\n max-height: 80vh;\n\n h4 {\n padding: 30px;\n font-weight: 500;\n font-size: 16px;\n text-align: center;\n }\n\n .embed-modal__container {\n padding: 10px;\n\n .hint {\n margin-bottom: 15px;\n }\n\n .embed-modal__html {\n outline: 0;\n box-sizing: border-box;\n display: block;\n width: 100%;\n border: 0;\n padding: 10px;\n font-family: $font-monospace, monospace;\n background: $ui-base-color;\n color: $primary-text-color;\n font-size: 14px;\n margin: 0;\n margin-bottom: 15px;\n border-radius: 4px;\n\n &::-moz-focus-inner {\n border: 0;\n }\n\n &::-moz-focus-inner,\n &:focus,\n &:active {\n outline: 0 !important;\n }\n\n &:focus {\n background: lighten($ui-base-color, 4%);\n }\n\n @media screen and (max-width: 600px) {\n font-size: 16px;\n }\n }\n\n .embed-modal__iframe {\n width: 400px;\n max-width: 100%;\n overflow: hidden;\n border: 0;\n border-radius: 4px;\n }\n }\n}\n\n.account__moved-note {\n padding: 14px 10px;\n padding-bottom: 16px;\n background: lighten($ui-base-color, 4%);\n border-top: 1px solid lighten($ui-base-color, 8%);\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n\n &__message {\n position: relative;\n margin-left: 58px;\n color: $dark-text-color;\n padding: 8px 0;\n padding-top: 0;\n padding-bottom: 4px;\n font-size: 14px;\n\n > span {\n display: block;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n }\n\n &__icon-wrapper {\n left: -26px;\n position: absolute;\n }\n\n .detailed-status__display-avatar {\n position: relative;\n }\n\n .detailed-status__display-name {\n margin-bottom: 0;\n }\n}\n\n.column-inline-form {\n padding: 15px;\n padding-right: 0;\n display: flex;\n justify-content: flex-start;\n align-items: center;\n background: lighten($ui-base-color, 4%);\n\n label {\n flex: 1 1 auto;\n\n input {\n width: 100%;\n\n &:focus {\n outline: 0;\n }\n }\n }\n\n .icon-button {\n flex: 0 0 auto;\n margin: 0 10px;\n }\n}\n\n.drawer__backdrop {\n cursor: pointer;\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n background: rgba($base-overlay-background, 0.5);\n}\n\n.list-editor {\n background: $ui-base-color;\n flex-direction: column;\n border-radius: 8px;\n box-shadow: 2px 4px 15px rgba($base-shadow-color, 0.4);\n width: 380px;\n overflow: hidden;\n\n @media screen and (max-width: 420px) {\n width: 90%;\n }\n\n h4 {\n padding: 15px 0;\n background: lighten($ui-base-color, 13%);\n font-weight: 500;\n font-size: 16px;\n text-align: center;\n border-radius: 8px 8px 0 0;\n }\n\n .drawer__pager {\n height: 50vh;\n }\n\n .drawer__inner {\n border-radius: 0 0 8px 8px;\n\n &.backdrop {\n width: calc(100% - 60px);\n box-shadow: 2px 4px 15px rgba($base-shadow-color, 0.4);\n border-radius: 0 0 0 8px;\n }\n }\n\n &__accounts {\n overflow-y: auto;\n }\n\n .account__display-name {\n &:hover strong {\n text-decoration: none;\n }\n }\n\n .account__avatar {\n cursor: default;\n }\n\n .search {\n margin-bottom: 0;\n }\n}\n\n.list-adder {\n background: $ui-base-color;\n flex-direction: column;\n border-radius: 8px;\n box-shadow: 2px 4px 15px rgba($base-shadow-color, 0.4);\n width: 380px;\n overflow: hidden;\n\n @media screen and (max-width: 420px) {\n width: 90%;\n }\n\n &__account {\n background: lighten($ui-base-color, 13%);\n }\n\n &__lists {\n background: lighten($ui-base-color, 13%);\n height: 50vh;\n border-radius: 0 0 8px 8px;\n overflow-y: auto;\n }\n\n .list {\n padding: 10px;\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n }\n\n .list__wrapper {\n display: flex;\n }\n\n .list__display-name {\n flex: 1 1 auto;\n overflow: hidden;\n text-decoration: none;\n font-size: 16px;\n padding: 10px;\n }\n}\n\n.focal-point {\n position: relative;\n cursor: move;\n overflow: hidden;\n height: 100%;\n display: flex;\n justify-content: center;\n align-items: center;\n background: $base-shadow-color;\n\n img,\n video,\n canvas {\n display: block;\n max-height: 80vh;\n width: 100%;\n height: auto;\n margin: 0;\n object-fit: contain;\n background: $base-shadow-color;\n }\n\n &__reticle {\n position: absolute;\n width: 100px;\n height: 100px;\n transform: translate(-50%, -50%);\n background: url('~images/reticle.png') no-repeat 0 0;\n border-radius: 50%;\n box-shadow: 0 0 0 9999em rgba($base-shadow-color, 0.35);\n }\n\n &__overlay {\n position: absolute;\n width: 100%;\n height: 100%;\n top: 0;\n left: 0;\n }\n\n &__preview {\n position: absolute;\n bottom: 10px;\n right: 10px;\n z-index: 2;\n cursor: move;\n transition: opacity 0.1s ease;\n\n &:hover {\n opacity: 0.5;\n }\n\n strong {\n color: $primary-text-color;\n font-size: 14px;\n font-weight: 500;\n display: block;\n margin-bottom: 5px;\n }\n\n div {\n border-radius: 4px;\n box-shadow: 0 0 14px rgba($base-shadow-color, 0.2);\n }\n }\n\n @media screen and (max-width: 480px) {\n img,\n video {\n max-height: 100%;\n }\n\n &__preview {\n display: none;\n }\n }\n}\n\n.account__header__content {\n color: $darker-text-color;\n font-size: 14px;\n font-weight: 400;\n overflow: hidden;\n word-break: normal;\n word-wrap: break-word;\n\n p {\n margin-bottom: 20px;\n\n &:last-child {\n margin-bottom: 0;\n }\n }\n\n a {\n color: inherit;\n text-decoration: underline;\n\n &:hover {\n text-decoration: none;\n }\n }\n}\n\n.account__header {\n overflow: hidden;\n\n &.inactive {\n opacity: 0.5;\n\n .account__header__image,\n .account__avatar {\n filter: grayscale(100%);\n }\n }\n\n &__info {\n position: absolute;\n top: 10px;\n left: 10px;\n }\n\n &__image {\n overflow: hidden;\n height: 145px;\n position: relative;\n background: darken($ui-base-color, 4%);\n\n img {\n object-fit: cover;\n display: block;\n width: 100%;\n height: 100%;\n margin: 0;\n }\n }\n\n &__bar {\n position: relative;\n background: lighten($ui-base-color, 4%);\n padding: 5px;\n border-bottom: 1px solid lighten($ui-base-color, 12%);\n\n .avatar {\n display: block;\n flex: 0 0 auto;\n width: 94px;\n margin-left: -2px;\n\n .account__avatar {\n background: darken($ui-base-color, 8%);\n border: 2px solid lighten($ui-base-color, 4%);\n }\n }\n }\n\n &__tabs {\n display: flex;\n align-items: flex-start;\n padding: 7px 5px;\n margin-top: -55px;\n\n &__buttons {\n display: flex;\n align-items: center;\n padding-top: 55px;\n overflow: hidden;\n\n .icon-button {\n border: 1px solid lighten($ui-base-color, 12%);\n border-radius: 4px;\n box-sizing: content-box;\n padding: 2px;\n }\n\n .button {\n margin: 0 8px;\n }\n }\n\n &__name {\n padding: 5px;\n\n .account-role {\n vertical-align: top;\n }\n\n .emojione {\n width: 22px;\n height: 22px;\n }\n\n h1 {\n font-size: 16px;\n line-height: 24px;\n color: $primary-text-color;\n font-weight: 500;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n\n small {\n display: block;\n font-size: 14px;\n color: $darker-text-color;\n font-weight: 400;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n }\n }\n\n .spacer {\n flex: 1 1 auto;\n }\n }\n\n &__bio {\n overflow: hidden;\n margin: 0 -5px;\n\n .account__header__content {\n padding: 20px 15px;\n padding-bottom: 5px;\n color: $primary-text-color;\n }\n\n .account__header__fields {\n margin: 0;\n border-top: 1px solid lighten($ui-base-color, 12%);\n\n a {\n color: lighten($ui-highlight-color, 8%);\n }\n\n dl:first-child .verified {\n border-radius: 0 4px 0 0;\n }\n\n .verified a {\n color: $valid-value-color;\n }\n }\n }\n\n &__extra {\n margin-top: 4px;\n\n &__links {\n font-size: 14px;\n color: $darker-text-color;\n padding: 10px 0;\n\n a {\n display: inline-block;\n color: $darker-text-color;\n text-decoration: none;\n padding: 5px 10px;\n font-weight: 500;\n\n strong {\n font-weight: 700;\n color: $primary-text-color;\n }\n }\n }\n }\n}\n\n.trends {\n &__header {\n color: $dark-text-color;\n background: lighten($ui-base-color, 2%);\n border-bottom: 1px solid darken($ui-base-color, 4%);\n font-weight: 500;\n padding: 15px;\n font-size: 16px;\n cursor: default;\n\n .fa {\n display: inline-block;\n margin-right: 5px;\n }\n }\n\n &__item {\n display: flex;\n align-items: center;\n padding: 15px;\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n\n &:last-child {\n border-bottom: 0;\n }\n\n &__name {\n flex: 1 1 auto;\n color: $dark-text-color;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n\n strong {\n font-weight: 500;\n }\n\n a {\n color: $darker-text-color;\n text-decoration: none;\n font-size: 14px;\n font-weight: 500;\n display: block;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n\n &:hover,\n &:focus,\n &:active {\n span {\n text-decoration: underline;\n }\n }\n }\n }\n\n &__current {\n flex: 0 0 auto;\n font-size: 24px;\n line-height: 36px;\n font-weight: 500;\n text-align: right;\n padding-right: 15px;\n margin-left: 5px;\n color: $secondary-text-color;\n }\n\n &__sparkline {\n flex: 0 0 auto;\n width: 50px;\n\n path:first-child {\n fill: rgba($highlight-text-color, 0.25) !important;\n fill-opacity: 1 !important;\n }\n\n path:last-child {\n stroke: lighten($highlight-text-color, 6%) !important;\n }\n }\n }\n}\n\n.conversation {\n display: flex;\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n padding: 5px;\n padding-bottom: 0;\n\n &:focus {\n background: lighten($ui-base-color, 2%);\n outline: 0;\n }\n\n &__avatar {\n flex: 0 0 auto;\n padding: 10px;\n padding-top: 12px;\n position: relative;\n cursor: pointer;\n }\n\n &__unread {\n display: inline-block;\n background: $highlight-text-color;\n border-radius: 50%;\n width: 0.625rem;\n height: 0.625rem;\n margin: -.1ex .15em .1ex;\n }\n\n &__content {\n flex: 1 1 auto;\n padding: 10px 5px;\n padding-right: 15px;\n overflow: hidden;\n\n &__info {\n overflow: hidden;\n display: flex;\n flex-direction: row-reverse;\n justify-content: space-between;\n }\n\n &__relative-time {\n font-size: 15px;\n color: $darker-text-color;\n padding-left: 15px;\n }\n\n &__names {\n color: $darker-text-color;\n font-size: 15px;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n margin-bottom: 4px;\n flex-basis: 90px;\n flex-grow: 1;\n\n a {\n color: $primary-text-color;\n text-decoration: none;\n\n &:hover,\n &:focus,\n &:active {\n text-decoration: underline;\n }\n }\n }\n\n a {\n word-break: break-word;\n }\n }\n\n &--unread {\n background: lighten($ui-base-color, 2%);\n\n &:focus {\n background: lighten($ui-base-color, 4%);\n }\n\n .conversation__content__info {\n font-weight: 700;\n }\n\n .conversation__content__relative-time {\n color: $primary-text-color;\n }\n }\n}\n\n.announcements {\n background: lighten($ui-base-color, 8%);\n font-size: 13px;\n display: flex;\n align-items: flex-end;\n\n &__mastodon {\n width: 124px;\n flex: 0 0 auto;\n\n @media screen and (max-width: 124px + 300px) {\n display: none;\n }\n }\n\n &__container {\n width: calc(100% - 124px);\n flex: 0 0 auto;\n position: relative;\n\n @media screen and (max-width: 124px + 300px) {\n width: 100%;\n }\n }\n\n &__item {\n box-sizing: border-box;\n width: 100%;\n padding: 15px;\n position: relative;\n font-size: 15px;\n line-height: 20px;\n word-wrap: break-word;\n font-weight: 400;\n max-height: 50vh;\n overflow: hidden;\n display: flex;\n flex-direction: column;\n\n &__range {\n display: block;\n font-weight: 500;\n margin-bottom: 10px;\n padding-right: 18px;\n }\n\n &__unread {\n position: absolute;\n top: 19px;\n right: 19px;\n display: block;\n background: $highlight-text-color;\n border-radius: 50%;\n width: 0.625rem;\n height: 0.625rem;\n }\n }\n\n &__pagination {\n padding: 15px;\n color: $darker-text-color;\n position: absolute;\n bottom: 3px;\n right: 0;\n }\n}\n\n.layout-multiple-columns .announcements__mastodon {\n display: none;\n}\n\n.layout-multiple-columns .announcements__container {\n width: 100%;\n}\n\n.reactions-bar {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n margin-top: 15px;\n margin-left: -2px;\n width: calc(100% - (90px - 33px));\n\n &__item {\n flex-shrink: 0;\n background: lighten($ui-base-color, 12%);\n border: 0;\n border-radius: 3px;\n margin: 2px;\n cursor: pointer;\n user-select: none;\n padding: 0 6px;\n display: flex;\n align-items: center;\n transition: all 100ms ease-in;\n transition-property: background-color, color;\n\n &__emoji {\n display: block;\n margin: 3px 0;\n width: 16px;\n height: 16px;\n\n img {\n display: block;\n margin: 0;\n width: 100%;\n height: 100%;\n min-width: auto;\n min-height: auto;\n vertical-align: bottom;\n object-fit: contain;\n }\n }\n\n &__count {\n display: block;\n min-width: 9px;\n font-size: 13px;\n font-weight: 500;\n text-align: center;\n margin-left: 6px;\n color: $darker-text-color;\n }\n\n &:hover,\n &:focus,\n &:active {\n background: lighten($ui-base-color, 16%);\n transition: all 200ms ease-out;\n transition-property: background-color, color;\n\n &__count {\n color: lighten($darker-text-color, 4%);\n }\n }\n\n &.active {\n transition: all 100ms ease-in;\n transition-property: background-color, color;\n background-color: mix(lighten($ui-base-color, 12%), $ui-highlight-color, 80%);\n\n .reactions-bar__item__count {\n color: lighten($highlight-text-color, 8%);\n }\n }\n }\n\n .emoji-picker-dropdown {\n margin: 2px;\n }\n\n &:hover .emoji-button {\n opacity: 0.85;\n }\n\n .emoji-button {\n color: $darker-text-color;\n margin: 0;\n font-size: 16px;\n width: auto;\n flex-shrink: 0;\n padding: 0 6px;\n height: 22px;\n display: flex;\n align-items: center;\n opacity: 0.5;\n transition: all 100ms ease-in;\n transition-property: background-color, color;\n\n &:hover,\n &:active,\n &:focus {\n opacity: 1;\n color: lighten($darker-text-color, 4%);\n transition: all 200ms ease-out;\n transition-property: background-color, color;\n }\n }\n\n &--empty {\n .emoji-button {\n padding: 0;\n }\n }\n}\n",null,"@mixin avatar-radius {\n border-radius: 4px;\n background: transparent no-repeat;\n background-position: 50%;\n background-clip: padding-box;\n}\n\n@mixin avatar-size($size: 48px) {\n width: $size;\n height: $size;\n background-size: $size $size;\n}\n\n@mixin search-input {\n outline: 0;\n box-sizing: border-box;\n width: 100%;\n border: 0;\n box-shadow: none;\n font-family: inherit;\n background: $ui-base-color;\n color: $darker-text-color;\n font-size: 14px;\n margin: 0;\n}\n\n@mixin search-popout {\n background: $simple-background-color;\n border-radius: 4px;\n padding: 10px 14px;\n padding-bottom: 14px;\n margin-top: 10px;\n color: $light-text-color;\n box-shadow: 2px 4px 15px rgba($base-shadow-color, 0.4);\n\n h4 {\n text-transform: uppercase;\n color: $light-text-color;\n font-size: 13px;\n font-weight: 500;\n margin-bottom: 10px;\n }\n\n li {\n padding: 4px 0;\n }\n\n ul {\n margin-bottom: 10px;\n }\n\n em {\n font-weight: 500;\n color: $inverted-text-color;\n }\n}\n",".poll {\n margin-top: 16px;\n font-size: 14px;\n\n li {\n margin-bottom: 10px;\n position: relative;\n }\n\n &__chart {\n border-radius: 4px;\n display: block;\n background: darken($ui-primary-color, 5%);\n height: 5px;\n min-width: 1%;\n\n &.leading {\n background: $ui-highlight-color;\n }\n }\n\n &__option {\n position: relative;\n display: flex;\n padding: 6px 0;\n line-height: 18px;\n cursor: default;\n overflow: hidden;\n\n &__text {\n display: inline-block;\n word-wrap: break-word;\n overflow-wrap: break-word;\n max-width: calc(100% - 45px - 25px);\n }\n\n input[type=radio],\n input[type=checkbox] {\n display: none;\n }\n\n .autossugest-input {\n flex: 1 1 auto;\n }\n\n input[type=text] {\n display: block;\n box-sizing: border-box;\n width: 100%;\n font-size: 14px;\n color: $inverted-text-color;\n outline: 0;\n font-family: inherit;\n background: $simple-background-color;\n border: 1px solid darken($simple-background-color, 14%);\n border-radius: 4px;\n padding: 6px 10px;\n\n &:focus {\n border-color: $highlight-text-color;\n }\n }\n\n &.selectable {\n cursor: pointer;\n }\n\n &.editable {\n display: flex;\n align-items: center;\n overflow: visible;\n }\n }\n\n &__input {\n display: inline-block;\n position: relative;\n border: 1px solid $ui-primary-color;\n box-sizing: border-box;\n width: 18px;\n height: 18px;\n flex: 0 0 auto;\n margin-right: 10px;\n top: -1px;\n border-radius: 50%;\n vertical-align: middle;\n margin-top: auto;\n margin-bottom: auto;\n flex: 0 0 18px;\n\n &.checkbox {\n border-radius: 4px;\n }\n\n &.active {\n border-color: $valid-value-color;\n background: $valid-value-color;\n }\n\n &:active,\n &:focus,\n &:hover {\n border-color: lighten($valid-value-color, 15%);\n border-width: 4px;\n }\n\n &::-moz-focus-inner {\n outline: 0 !important;\n border: 0;\n }\n\n &:focus,\n &:active {\n outline: 0 !important;\n }\n }\n\n &__number {\n display: inline-block;\n width: 45px;\n font-weight: 700;\n flex: 0 0 45px;\n }\n\n &__voted {\n padding: 0 5px;\n display: inline-block;\n\n &__mark {\n font-size: 18px;\n }\n }\n\n &__footer {\n padding-top: 6px;\n padding-bottom: 5px;\n color: $dark-text-color;\n }\n\n &__link {\n display: inline;\n background: transparent;\n padding: 0;\n margin: 0;\n border: 0;\n color: $dark-text-color;\n text-decoration: underline;\n font-size: inherit;\n\n &:hover {\n text-decoration: none;\n }\n\n &:active,\n &:focus {\n background-color: rgba($dark-text-color, .1);\n }\n }\n\n .button {\n height: 36px;\n padding: 0 16px;\n margin-right: 10px;\n font-size: 14px;\n }\n}\n\n.compose-form__poll-wrapper {\n border-top: 1px solid darken($simple-background-color, 8%);\n\n ul {\n padding: 10px;\n }\n\n .poll__footer {\n border-top: 1px solid darken($simple-background-color, 8%);\n padding: 10px;\n display: flex;\n align-items: center;\n\n button,\n select {\n flex: 1 1 50%;\n\n &:focus {\n border-color: $highlight-text-color;\n }\n }\n }\n\n .button.button-secondary {\n font-size: 14px;\n font-weight: 400;\n padding: 6px 10px;\n height: auto;\n line-height: inherit;\n color: $action-button-color;\n border-color: $action-button-color;\n margin-right: 5px;\n }\n\n li {\n display: flex;\n align-items: center;\n\n .poll__option {\n flex: 0 0 auto;\n width: calc(100% - (23px + 6px));\n margin-right: 6px;\n }\n }\n\n select {\n appearance: none;\n box-sizing: border-box;\n font-size: 14px;\n color: $inverted-text-color;\n display: inline-block;\n width: auto;\n outline: 0;\n font-family: inherit;\n background: $simple-background-color url(\"data:image/svg+xml;utf8,\") no-repeat right 8px center / auto 16px;\n border: 1px solid darken($simple-background-color, 14%);\n border-radius: 4px;\n padding: 6px 10px;\n padding-right: 30px;\n }\n\n .icon-button.disabled {\n color: darken($simple-background-color, 14%);\n }\n}\n\n.muted .poll {\n color: $dark-text-color;\n\n &__chart {\n background: rgba(darken($ui-primary-color, 14%), 0.2);\n\n &.leading {\n background: rgba($ui-highlight-color, 0.2);\n }\n }\n}\n",".modal-layout {\n background: $ui-base-color url('data:image/svg+xml;utf8,') repeat-x bottom fixed;\n display: flex;\n flex-direction: column;\n height: 100vh;\n padding: 0;\n}\n\n.modal-layout__mastodon {\n display: flex;\n flex: 1;\n flex-direction: column;\n justify-content: flex-end;\n\n > * {\n flex: 1;\n max-height: 235px;\n }\n}\n\n@media screen and (max-width: 600px) {\n .account-header {\n margin-top: 0;\n }\n}\n",".emoji-mart {\n font-size: 13px;\n display: inline-block;\n color: $inverted-text-color;\n\n &,\n * {\n box-sizing: border-box;\n line-height: 1.15;\n }\n\n .emoji-mart-emoji {\n padding: 6px;\n }\n}\n\n.emoji-mart-bar {\n border: 0 solid darken($ui-secondary-color, 8%);\n\n &:first-child {\n border-bottom-width: 1px;\n border-top-left-radius: 5px;\n border-top-right-radius: 5px;\n background: $ui-secondary-color;\n }\n\n &:last-child {\n border-top-width: 1px;\n border-bottom-left-radius: 5px;\n border-bottom-right-radius: 5px;\n display: none;\n }\n}\n\n.emoji-mart-anchors {\n display: flex;\n justify-content: space-between;\n padding: 0 6px;\n color: $lighter-text-color;\n line-height: 0;\n}\n\n.emoji-mart-anchor {\n position: relative;\n flex: 1;\n text-align: center;\n padding: 12px 4px;\n overflow: hidden;\n transition: color .1s ease-out;\n cursor: pointer;\n\n &:hover {\n color: darken($lighter-text-color, 4%);\n }\n}\n\n.emoji-mart-anchor-selected {\n color: $highlight-text-color;\n\n &:hover {\n color: darken($highlight-text-color, 4%);\n }\n\n .emoji-mart-anchor-bar {\n bottom: -1px;\n }\n}\n\n.emoji-mart-anchor-bar {\n position: absolute;\n bottom: -5px;\n left: 0;\n width: 100%;\n height: 4px;\n background-color: $highlight-text-color;\n}\n\n.emoji-mart-anchors {\n i {\n display: inline-block;\n width: 100%;\n max-width: 22px;\n }\n\n svg {\n fill: currentColor;\n max-height: 18px;\n }\n}\n\n.emoji-mart-scroll {\n overflow-y: scroll;\n height: 270px;\n max-height: 35vh;\n padding: 0 6px 6px;\n background: $simple-background-color;\n will-change: transform;\n\n &::-webkit-scrollbar-track:hover,\n &::-webkit-scrollbar-track:active {\n background-color: rgba($base-overlay-background, 0.3);\n }\n}\n\n.emoji-mart-search {\n padding: 10px;\n padding-right: 45px;\n background: $simple-background-color;\n\n input {\n font-size: 14px;\n font-weight: 400;\n padding: 7px 9px;\n font-family: inherit;\n display: block;\n width: 100%;\n background: rgba($ui-secondary-color, 0.3);\n color: $inverted-text-color;\n border: 1px solid $ui-secondary-color;\n border-radius: 4px;\n\n &::-moz-focus-inner {\n border: 0;\n }\n\n &::-moz-focus-inner,\n &:focus,\n &:active {\n outline: 0 !important;\n }\n }\n}\n\n.emoji-mart-category .emoji-mart-emoji {\n cursor: pointer;\n\n span {\n z-index: 1;\n position: relative;\n text-align: center;\n }\n\n &:hover::before {\n z-index: 0;\n content: \"\";\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n background-color: rgba($ui-secondary-color, 0.7);\n border-radius: 100%;\n }\n}\n\n.emoji-mart-category-label {\n z-index: 2;\n position: relative;\n position: -webkit-sticky;\n position: sticky;\n top: 0;\n\n span {\n display: block;\n width: 100%;\n font-weight: 500;\n padding: 5px 6px;\n background: $simple-background-color;\n }\n}\n\n.emoji-mart-emoji {\n position: relative;\n display: inline-block;\n font-size: 0;\n\n span {\n width: 22px;\n height: 22px;\n }\n}\n\n.emoji-mart-no-results {\n font-size: 14px;\n text-align: center;\n padding-top: 70px;\n color: $light-text-color;\n\n .emoji-mart-category-label {\n display: none;\n }\n\n .emoji-mart-no-results-label {\n margin-top: .2em;\n }\n\n .emoji-mart-emoji:hover::before {\n content: none;\n }\n}\n\n.emoji-mart-preview {\n display: none;\n}\n","$maximum-width: 1235px;\n$fluid-breakpoint: $maximum-width + 20px;\n$column-breakpoint: 700px;\n$small-breakpoint: 960px;\n\n.container {\n box-sizing: border-box;\n max-width: $maximum-width;\n margin: 0 auto;\n position: relative;\n\n @media screen and (max-width: $fluid-breakpoint) {\n width: 100%;\n padding: 0 10px;\n }\n}\n\n.rich-formatting {\n font-family: $font-sans-serif, sans-serif;\n font-size: 14px;\n font-weight: 400;\n line-height: 1.7;\n word-wrap: break-word;\n color: $darker-text-color;\n\n a {\n color: $highlight-text-color;\n text-decoration: underline;\n\n &:hover,\n &:focus,\n &:active {\n text-decoration: none;\n }\n }\n\n p,\n li {\n color: $darker-text-color;\n }\n\n p {\n margin-top: 0;\n margin-bottom: .85em;\n\n &:last-child {\n margin-bottom: 0;\n }\n }\n\n strong {\n font-weight: 700;\n color: $secondary-text-color;\n }\n\n em {\n font-style: italic;\n color: $secondary-text-color;\n }\n\n code {\n font-size: 0.85em;\n background: darken($ui-base-color, 8%);\n border-radius: 4px;\n padding: 0.2em 0.3em;\n }\n\n h1,\n h2,\n h3,\n h4,\n h5,\n h6 {\n font-family: $font-display, sans-serif;\n margin-top: 1.275em;\n margin-bottom: .85em;\n font-weight: 500;\n color: $secondary-text-color;\n }\n\n h1 {\n font-size: 2em;\n }\n\n h2 {\n font-size: 1.75em;\n }\n\n h3 {\n font-size: 1.5em;\n }\n\n h4 {\n font-size: 1.25em;\n }\n\n h5,\n h6 {\n font-size: 1em;\n }\n\n ul {\n list-style: disc;\n }\n\n ol {\n list-style: decimal;\n }\n\n ul,\n ol {\n margin: 0;\n padding: 0;\n padding-left: 2em;\n margin-bottom: 0.85em;\n\n &[type='a'] {\n list-style-type: lower-alpha;\n }\n\n &[type='i'] {\n list-style-type: lower-roman;\n }\n }\n\n hr {\n width: 100%;\n height: 0;\n border: 0;\n border-bottom: 1px solid lighten($ui-base-color, 4%);\n margin: 1.7em 0;\n\n &.spacer {\n height: 1px;\n border: 0;\n }\n }\n\n table {\n width: 100%;\n border-collapse: collapse;\n break-inside: auto;\n margin-top: 24px;\n margin-bottom: 32px;\n\n thead tr,\n tbody tr {\n border-bottom: 1px solid lighten($ui-base-color, 4%);\n font-size: 1em;\n line-height: 1.625;\n font-weight: 400;\n text-align: left;\n color: $darker-text-color;\n }\n\n thead tr {\n border-bottom-width: 2px;\n line-height: 1.5;\n font-weight: 500;\n color: $dark-text-color;\n }\n\n th,\n td {\n padding: 8px;\n align-self: start;\n align-items: start;\n word-break: break-all;\n\n &.nowrap {\n width: 25%;\n position: relative;\n\n &::before {\n content: ' ';\n visibility: hidden;\n }\n\n span {\n position: absolute;\n left: 8px;\n right: 8px;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n }\n }\n }\n\n & > :first-child {\n margin-top: 0;\n }\n}\n\n.information-board {\n background: darken($ui-base-color, 4%);\n padding: 20px 0;\n\n .container-alt {\n position: relative;\n padding-right: 280px + 15px;\n }\n\n &__sections {\n display: flex;\n justify-content: space-between;\n flex-wrap: wrap;\n }\n\n &__section {\n flex: 1 0 0;\n font-family: $font-sans-serif, sans-serif;\n font-size: 16px;\n line-height: 28px;\n color: $primary-text-color;\n text-align: right;\n padding: 10px 15px;\n\n span,\n strong {\n display: block;\n }\n\n span {\n &:last-child {\n color: $secondary-text-color;\n }\n }\n\n strong {\n font-family: $font-display, sans-serif;\n font-weight: 500;\n font-size: 32px;\n line-height: 48px;\n }\n\n @media screen and (max-width: $column-breakpoint) {\n text-align: center;\n }\n }\n\n .panel {\n position: absolute;\n width: 280px;\n box-sizing: border-box;\n background: darken($ui-base-color, 8%);\n padding: 20px;\n padding-top: 10px;\n border-radius: 4px 4px 0 0;\n right: 0;\n bottom: -40px;\n\n .panel-header {\n font-family: $font-display, sans-serif;\n font-size: 14px;\n line-height: 24px;\n font-weight: 500;\n color: $darker-text-color;\n padding-bottom: 5px;\n margin-bottom: 15px;\n border-bottom: 1px solid lighten($ui-base-color, 4%);\n text-overflow: ellipsis;\n white-space: nowrap;\n overflow: hidden;\n\n a,\n span {\n font-weight: 400;\n color: darken($darker-text-color, 10%);\n }\n\n a {\n text-decoration: none;\n }\n }\n }\n\n .owner {\n text-align: center;\n\n .avatar {\n width: 80px;\n height: 80px;\n margin: 0 auto;\n margin-bottom: 15px;\n\n img {\n display: block;\n width: 80px;\n height: 80px;\n border-radius: 48px;\n }\n }\n\n .name {\n font-size: 14px;\n\n a {\n display: block;\n color: $primary-text-color;\n text-decoration: none;\n\n &:hover {\n .display_name {\n text-decoration: underline;\n }\n }\n }\n\n .username {\n display: block;\n color: $darker-text-color;\n }\n }\n }\n}\n\n.landing-page {\n p,\n li {\n font-family: $font-sans-serif, sans-serif;\n font-size: 16px;\n font-weight: 400;\n font-size: 16px;\n line-height: 30px;\n margin-bottom: 12px;\n color: $darker-text-color;\n\n a {\n color: $highlight-text-color;\n text-decoration: underline;\n }\n }\n\n em {\n display: inline;\n margin: 0;\n padding: 0;\n font-weight: 700;\n background: transparent;\n font-family: inherit;\n font-size: inherit;\n line-height: inherit;\n color: lighten($darker-text-color, 10%);\n }\n\n h1 {\n font-family: $font-display, sans-serif;\n font-size: 26px;\n line-height: 30px;\n font-weight: 500;\n margin-bottom: 20px;\n color: $secondary-text-color;\n\n small {\n font-family: $font-sans-serif, sans-serif;\n display: block;\n font-size: 18px;\n font-weight: 400;\n color: lighten($darker-text-color, 10%);\n }\n }\n\n h2 {\n font-family: $font-display, sans-serif;\n font-size: 22px;\n line-height: 26px;\n font-weight: 500;\n margin-bottom: 20px;\n color: $secondary-text-color;\n }\n\n h3 {\n font-family: $font-display, sans-serif;\n font-size: 18px;\n line-height: 24px;\n font-weight: 500;\n margin-bottom: 20px;\n color: $secondary-text-color;\n }\n\n h4 {\n font-family: $font-display, sans-serif;\n font-size: 16px;\n line-height: 24px;\n font-weight: 500;\n margin-bottom: 20px;\n color: $secondary-text-color;\n }\n\n h5 {\n font-family: $font-display, sans-serif;\n font-size: 14px;\n line-height: 24px;\n font-weight: 500;\n margin-bottom: 20px;\n color: $secondary-text-color;\n }\n\n h6 {\n font-family: $font-display, sans-serif;\n font-size: 12px;\n line-height: 24px;\n font-weight: 500;\n margin-bottom: 20px;\n color: $secondary-text-color;\n }\n\n ul,\n ol {\n margin-left: 20px;\n\n &[type='a'] {\n list-style-type: lower-alpha;\n }\n\n &[type='i'] {\n list-style-type: lower-roman;\n }\n }\n\n ul {\n list-style: disc;\n }\n\n ol {\n list-style: decimal;\n }\n\n li > ol,\n li > ul {\n margin-top: 6px;\n }\n\n hr {\n width: 100%;\n height: 0;\n border: 0;\n border-bottom: 1px solid rgba($ui-base-lighter-color, .6);\n margin: 20px 0;\n\n &.spacer {\n height: 1px;\n border: 0;\n }\n }\n\n &__information,\n &__forms {\n padding: 20px;\n }\n\n &__call-to-action {\n background: $ui-base-color;\n border-radius: 4px;\n padding: 25px 40px;\n overflow: hidden;\n box-sizing: border-box;\n\n .row {\n width: 100%;\n display: flex;\n flex-direction: row-reverse;\n flex-wrap: nowrap;\n justify-content: space-between;\n align-items: center;\n }\n\n .row__information-board {\n display: flex;\n justify-content: flex-end;\n align-items: flex-end;\n\n .information-board__section {\n flex: 1 0 auto;\n padding: 0 10px;\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n width: 100%;\n justify-content: space-between;\n }\n }\n\n .row__mascot {\n flex: 1;\n margin: 10px -50px 0 0;\n\n @media screen and (max-width: $no-gap-breakpoint) {\n display: none;\n }\n }\n }\n\n &__logo {\n margin-right: 20px;\n\n img {\n height: 50px;\n width: auto;\n mix-blend-mode: lighten;\n }\n }\n\n &__information {\n padding: 45px 40px;\n margin-bottom: 10px;\n\n &:last-child {\n margin-bottom: 0;\n }\n\n strong {\n font-weight: 500;\n color: lighten($darker-text-color, 10%);\n }\n\n .account {\n border-bottom: 0;\n padding: 0;\n\n &__display-name {\n align-items: center;\n display: flex;\n margin-right: 5px;\n }\n\n div.account__display-name {\n &:hover {\n .display-name strong {\n text-decoration: none;\n }\n }\n\n .account__avatar {\n cursor: default;\n }\n }\n\n &__avatar-wrapper {\n margin-left: 0;\n flex: 0 0 auto;\n }\n\n &__avatar {\n width: 44px;\n height: 44px;\n background-size: 44px 44px;\n }\n\n .display-name {\n font-size: 15px;\n\n &__account {\n font-size: 14px;\n }\n }\n }\n\n @media screen and (max-width: $small-breakpoint) {\n .contact {\n margin-top: 30px;\n }\n }\n\n @media screen and (max-width: $column-breakpoint) {\n padding: 25px 20px;\n }\n }\n\n &__information,\n &__forms,\n #mastodon-timeline {\n box-sizing: border-box;\n background: $ui-base-color;\n border-radius: 4px;\n box-shadow: 0 0 6px rgba($black, 0.1);\n }\n\n &__mascot {\n height: 104px;\n position: relative;\n left: -40px;\n bottom: 25px;\n\n img {\n height: 190px;\n width: auto;\n }\n }\n\n &__short-description {\n .row {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n margin-bottom: 40px;\n }\n\n @media screen and (max-width: $column-breakpoint) {\n .row {\n margin-bottom: 20px;\n }\n }\n\n p a {\n color: $secondary-text-color;\n }\n\n h1 {\n font-weight: 500;\n color: $primary-text-color;\n margin-bottom: 0;\n\n small {\n color: $darker-text-color;\n\n span {\n color: $secondary-text-color;\n }\n }\n }\n\n p:last-child {\n margin-bottom: 0;\n }\n }\n\n &__hero {\n margin-bottom: 10px;\n\n img {\n display: block;\n margin: 0;\n max-width: 100%;\n height: auto;\n border-radius: 4px;\n }\n }\n\n @media screen and (max-width: 840px) {\n .information-board {\n .container-alt {\n padding-right: 20px;\n }\n\n .panel {\n position: static;\n margin-top: 20px;\n width: 100%;\n border-radius: 4px;\n\n .panel-header {\n text-align: center;\n }\n }\n }\n }\n\n @media screen and (max-width: 675px) {\n .header-wrapper {\n padding-top: 0;\n\n &.compact {\n padding-bottom: 0;\n }\n\n &.compact .hero .heading {\n text-align: initial;\n }\n }\n\n .header .container-alt,\n .features .container-alt {\n display: block;\n }\n }\n\n .cta {\n margin: 20px;\n }\n}\n\n.landing {\n margin-bottom: 100px;\n\n @media screen and (max-width: 738px) {\n margin-bottom: 0;\n }\n\n &__brand {\n display: flex;\n justify-content: center;\n align-items: center;\n padding: 50px;\n\n svg {\n fill: $primary-text-color;\n height: 52px;\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n padding: 0;\n margin-bottom: 30px;\n }\n }\n\n .directory {\n margin-top: 30px;\n background: transparent;\n box-shadow: none;\n border-radius: 0;\n }\n\n .hero-widget {\n margin-top: 30px;\n margin-bottom: 0;\n\n h4 {\n padding: 10px;\n text-transform: uppercase;\n font-weight: 700;\n font-size: 13px;\n color: $darker-text-color;\n }\n\n &__text {\n border-radius: 0;\n padding-bottom: 0;\n }\n\n &__footer {\n background: $ui-base-color;\n padding: 10px;\n border-radius: 0 0 4px 4px;\n display: flex;\n\n &__column {\n flex: 1 1 50%;\n }\n }\n\n .account {\n padding: 10px 0;\n border-bottom: 0;\n\n .account__display-name {\n display: flex;\n align-items: center;\n }\n\n .account__avatar {\n width: 44px;\n height: 44px;\n background-size: 44px 44px;\n }\n }\n\n &__counter {\n padding: 10px;\n\n strong {\n font-family: $font-display, sans-serif;\n font-size: 15px;\n font-weight: 700;\n display: block;\n }\n\n span {\n font-size: 14px;\n color: $darker-text-color;\n }\n }\n }\n\n .simple_form .user_agreement .label_input > label {\n font-weight: 400;\n color: $darker-text-color;\n }\n\n .simple_form p.lead {\n color: $darker-text-color;\n font-size: 15px;\n line-height: 20px;\n font-weight: 400;\n margin-bottom: 25px;\n }\n\n &__grid {\n max-width: 960px;\n margin: 0 auto;\n display: grid;\n grid-template-columns: minmax(0, 50%) minmax(0, 50%);\n grid-gap: 30px;\n\n @media screen and (max-width: 738px) {\n grid-template-columns: minmax(0, 100%);\n grid-gap: 10px;\n\n &__column-login {\n grid-row: 1;\n display: flex;\n flex-direction: column;\n\n .box-widget {\n order: 2;\n flex: 0 0 auto;\n }\n\n .hero-widget {\n margin-top: 0;\n margin-bottom: 10px;\n order: 1;\n flex: 0 0 auto;\n }\n }\n\n &__column-registration {\n grid-row: 2;\n }\n\n .directory {\n margin-top: 10px;\n }\n }\n\n @media screen and (max-width: $no-gap-breakpoint) {\n grid-gap: 0;\n\n .hero-widget {\n display: block;\n margin-bottom: 0;\n box-shadow: none;\n\n &__img,\n &__img img,\n &__footer {\n border-radius: 0;\n }\n }\n\n .hero-widget,\n .box-widget,\n .directory__tag {\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n }\n\n .directory {\n margin-top: 0;\n\n &__tag {\n margin-bottom: 0;\n\n & > a,\n & > div {\n border-radius: 0;\n box-shadow: none;\n }\n\n &:last-child {\n border-bottom: 0;\n }\n }\n }\n }\n }\n}\n\n.brand {\n position: relative;\n text-decoration: none;\n}\n\n.brand__tagline {\n display: block;\n position: absolute;\n bottom: -10px;\n left: 50px;\n width: 300px;\n color: $ui-primary-color;\n text-decoration: none;\n font-size: 14px;\n\n @media screen and (max-width: $no-gap-breakpoint) {\n position: static;\n width: auto;\n margin-top: 20px;\n color: $dark-text-color;\n }\n}\n\n",".table {\n width: 100%;\n max-width: 100%;\n border-spacing: 0;\n border-collapse: collapse;\n\n th,\n td {\n padding: 8px;\n line-height: 18px;\n vertical-align: top;\n border-top: 1px solid $ui-base-color;\n text-align: left;\n background: darken($ui-base-color, 4%);\n }\n\n & > thead > tr > th {\n vertical-align: bottom;\n border-bottom: 2px solid $ui-base-color;\n border-top: 0;\n font-weight: 500;\n }\n\n & > tbody > tr > th {\n font-weight: 500;\n }\n\n & > tbody > tr:nth-child(odd) > td,\n & > tbody > tr:nth-child(odd) > th {\n background: $ui-base-color;\n }\n\n a {\n color: $highlight-text-color;\n text-decoration: underline;\n\n &:hover {\n text-decoration: none;\n }\n }\n\n strong {\n font-weight: 500;\n\n @each $lang in $cjk-langs {\n &:lang(#{$lang}) {\n font-weight: 700;\n }\n }\n }\n\n &.inline-table {\n & > tbody > tr:nth-child(odd) {\n & > td,\n & > th {\n background: transparent;\n }\n }\n\n & > tbody > tr:first-child {\n & > td,\n & > th {\n border-top: 0;\n }\n }\n }\n\n &.batch-table {\n & > thead > tr > th {\n background: $ui-base-color;\n border-top: 1px solid darken($ui-base-color, 8%);\n border-bottom: 1px solid darken($ui-base-color, 8%);\n\n &:first-child {\n border-radius: 4px 0 0;\n border-left: 1px solid darken($ui-base-color, 8%);\n }\n\n &:last-child {\n border-radius: 0 4px 0 0;\n border-right: 1px solid darken($ui-base-color, 8%);\n }\n }\n }\n\n &--invites tbody td {\n vertical-align: middle;\n }\n}\n\n.table-wrapper {\n overflow: auto;\n margin-bottom: 20px;\n}\n\nsamp {\n font-family: $font-monospace, monospace;\n}\n\nbutton.table-action-link {\n background: transparent;\n border: 0;\n font: inherit;\n}\n\nbutton.table-action-link,\na.table-action-link {\n text-decoration: none;\n display: inline-block;\n margin-right: 5px;\n padding: 0 10px;\n color: $darker-text-color;\n font-weight: 500;\n\n &:hover {\n color: $primary-text-color;\n }\n\n i.fa {\n font-weight: 400;\n margin-right: 5px;\n }\n\n &:first-child {\n padding-left: 0;\n }\n}\n\n.batch-table {\n &__toolbar,\n &__row {\n display: flex;\n\n &__select {\n box-sizing: border-box;\n padding: 8px 16px;\n cursor: pointer;\n min-height: 100%;\n\n input {\n margin-top: 8px;\n }\n\n &--aligned {\n display: flex;\n align-items: center;\n\n input {\n margin-top: 0;\n }\n }\n }\n\n &__actions,\n &__content {\n padding: 8px 0;\n padding-right: 16px;\n flex: 1 1 auto;\n }\n }\n\n &__toolbar {\n border: 1px solid darken($ui-base-color, 8%);\n background: $ui-base-color;\n border-radius: 4px 0 0;\n height: 47px;\n align-items: center;\n\n &__actions {\n text-align: right;\n padding-right: 16px - 5px;\n }\n }\n\n &__form {\n padding: 16px;\n border: 1px solid darken($ui-base-color, 8%);\n border-top: 0;\n background: $ui-base-color;\n\n .fields-row {\n padding-top: 0;\n margin-bottom: 0;\n }\n }\n\n &__row {\n border: 1px solid darken($ui-base-color, 8%);\n border-top: 0;\n background: darken($ui-base-color, 4%);\n\n @media screen and (max-width: $no-gap-breakpoint) {\n .optional &:first-child {\n border-top: 1px solid darken($ui-base-color, 8%);\n }\n }\n\n &:hover {\n background: darken($ui-base-color, 2%);\n }\n\n &:nth-child(even) {\n background: $ui-base-color;\n\n &:hover {\n background: lighten($ui-base-color, 2%);\n }\n }\n\n &__content {\n padding-top: 12px;\n padding-bottom: 16px;\n\n &--unpadded {\n padding: 0;\n }\n\n &--with-image {\n display: flex;\n align-items: center;\n }\n\n &__image {\n flex: 0 0 auto;\n display: flex;\n justify-content: center;\n align-items: center;\n margin-right: 10px;\n\n .emojione {\n width: 32px;\n height: 32px;\n }\n }\n\n &__text {\n flex: 1 1 auto;\n }\n\n &__extra {\n flex: 0 0 auto;\n text-align: right;\n color: $darker-text-color;\n font-weight: 500;\n }\n }\n\n .directory__tag {\n margin: 0;\n width: 100%;\n\n a {\n background: transparent;\n border-radius: 0;\n }\n }\n }\n\n &.optional .batch-table__toolbar,\n &.optional .batch-table__row__select {\n @media screen and (max-width: $no-gap-breakpoint) {\n display: none;\n }\n }\n\n .status__content {\n padding-top: 0;\n\n summary {\n display: list-item;\n }\n\n strong {\n font-weight: 700;\n }\n }\n\n .nothing-here {\n border: 1px solid darken($ui-base-color, 8%);\n border-top: 0;\n box-shadow: none;\n\n @media screen and (max-width: $no-gap-breakpoint) {\n border-top: 1px solid darken($ui-base-color, 8%);\n }\n }\n\n @media screen and (max-width: 870px) {\n .accounts-table tbody td.optional {\n display: none;\n }\n }\n}\n","$no-columns-breakpoint: 600px;\n$sidebar-width: 240px;\n$content-width: 840px;\n\n.admin-wrapper {\n display: flex;\n justify-content: center;\n width: 100%;\n min-height: 100vh;\n\n .sidebar-wrapper {\n min-height: 100vh;\n overflow: hidden;\n pointer-events: none;\n flex: 1 1 auto;\n\n &__inner {\n display: flex;\n justify-content: flex-end;\n background: $ui-base-color;\n height: 100%;\n }\n }\n\n .sidebar {\n width: $sidebar-width;\n padding: 0;\n pointer-events: auto;\n\n &__toggle {\n display: none;\n background: lighten($ui-base-color, 8%);\n height: 48px;\n\n &__logo {\n flex: 1 1 auto;\n\n a {\n display: inline-block;\n padding: 15px;\n }\n\n svg {\n fill: $primary-text-color;\n height: 20px;\n position: relative;\n bottom: -2px;\n }\n }\n\n &__icon {\n display: block;\n color: $darker-text-color;\n text-decoration: none;\n flex: 0 0 auto;\n font-size: 20px;\n padding: 15px;\n }\n\n a {\n &:hover,\n &:focus,\n &:active {\n background: lighten($ui-base-color, 12%);\n }\n }\n }\n\n .logo {\n display: block;\n margin: 40px auto;\n width: 100px;\n height: 100px;\n }\n\n @media screen and (max-width: $no-columns-breakpoint) {\n & > a:first-child {\n display: none;\n }\n }\n\n ul {\n list-style: none;\n border-radius: 4px 0 0 4px;\n overflow: hidden;\n margin-bottom: 20px;\n\n @media screen and (max-width: $no-columns-breakpoint) {\n margin-bottom: 0;\n }\n\n a {\n display: block;\n padding: 15px;\n color: $darker-text-color;\n text-decoration: none;\n transition: all 200ms linear;\n transition-property: color, background-color;\n border-radius: 4px 0 0 4px;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n\n i.fa {\n margin-right: 5px;\n }\n\n &:hover {\n color: $primary-text-color;\n background-color: darken($ui-base-color, 5%);\n transition: all 100ms linear;\n transition-property: color, background-color;\n }\n\n &.selected {\n background: darken($ui-base-color, 2%);\n border-radius: 4px 0 0;\n }\n }\n\n ul {\n background: darken($ui-base-color, 4%);\n border-radius: 0 0 0 4px;\n margin: 0;\n\n a {\n border: 0;\n padding: 15px 35px;\n }\n }\n\n .simple-navigation-active-leaf a {\n color: $primary-text-color;\n background-color: $ui-highlight-color;\n border-bottom: 0;\n border-radius: 0;\n\n &:hover {\n background-color: lighten($ui-highlight-color, 5%);\n }\n }\n }\n\n & > ul > .simple-navigation-active-leaf a {\n border-radius: 4px 0 0 4px;\n }\n }\n\n .content-wrapper {\n box-sizing: border-box;\n width: 100%;\n max-width: $content-width;\n flex: 1 1 auto;\n }\n\n @media screen and (max-width: $content-width + $sidebar-width) {\n .sidebar-wrapper--empty {\n display: none;\n }\n\n .sidebar-wrapper {\n width: $sidebar-width;\n flex: 0 0 auto;\n }\n }\n\n @media screen and (max-width: $no-columns-breakpoint) {\n .sidebar-wrapper {\n width: 100%;\n }\n }\n\n .content {\n padding: 20px 15px;\n padding-top: 60px;\n padding-left: 25px;\n\n @media screen and (max-width: $no-columns-breakpoint) {\n max-width: none;\n padding: 15px;\n padding-top: 30px;\n }\n\n &-heading {\n display: flex;\n\n padding-bottom: 40px;\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n\n margin: -15px -15px 40px 0;\n\n flex-wrap: wrap;\n align-items: center;\n justify-content: space-between;\n\n & > * {\n margin-top: 15px;\n margin-right: 15px;\n }\n\n &-actions {\n display: inline-flex;\n\n & > :not(:first-child) {\n margin-left: 5px;\n }\n }\n\n @media screen and (max-width: $no-columns-breakpoint) {\n border-bottom: 0;\n padding-bottom: 0;\n }\n }\n\n h2 {\n color: $secondary-text-color;\n font-size: 24px;\n line-height: 28px;\n font-weight: 400;\n\n @media screen and (max-width: $no-columns-breakpoint) {\n font-weight: 700;\n }\n }\n\n h3 {\n color: $secondary-text-color;\n font-size: 20px;\n line-height: 28px;\n font-weight: 400;\n margin-bottom: 30px;\n }\n\n h4 {\n text-transform: uppercase;\n font-size: 13px;\n font-weight: 700;\n color: $darker-text-color;\n padding-bottom: 8px;\n margin-bottom: 8px;\n border-bottom: 1px solid lighten($ui-base-color, 8%);\n }\n\n h6 {\n font-size: 16px;\n color: $secondary-text-color;\n line-height: 28px;\n font-weight: 500;\n }\n\n .fields-group h6 {\n color: $primary-text-color;\n font-weight: 500;\n }\n\n .directory__tag > a,\n .directory__tag > div {\n box-shadow: none;\n }\n\n .directory__tag .table-action-link .fa {\n color: inherit;\n }\n\n .directory__tag h4 {\n font-size: 18px;\n font-weight: 700;\n color: $primary-text-color;\n text-transform: none;\n padding-bottom: 0;\n margin-bottom: 0;\n border-bottom: 0;\n }\n\n & > p {\n font-size: 14px;\n line-height: 21px;\n color: $secondary-text-color;\n margin-bottom: 20px;\n\n strong {\n color: $primary-text-color;\n font-weight: 500;\n\n @each $lang in $cjk-langs {\n &:lang(#{$lang}) {\n font-weight: 700;\n }\n }\n }\n }\n\n hr {\n width: 100%;\n height: 0;\n border: 0;\n border-bottom: 1px solid rgba($ui-base-lighter-color, .6);\n margin: 20px 0;\n\n &.spacer {\n height: 1px;\n border: 0;\n }\n }\n }\n\n @media screen and (max-width: $no-columns-breakpoint) {\n display: block;\n\n .sidebar-wrapper {\n min-height: 0;\n }\n\n .sidebar {\n width: 100%;\n padding: 0;\n height: auto;\n\n &__toggle {\n display: flex;\n }\n\n & > ul {\n display: none;\n }\n\n ul a,\n ul ul a {\n border-radius: 0;\n border-bottom: 1px solid lighten($ui-base-color, 4%);\n transition: none;\n\n &:hover {\n transition: none;\n }\n }\n\n ul ul {\n border-radius: 0;\n }\n\n ul .simple-navigation-active-leaf a {\n border-bottom-color: $ui-highlight-color;\n }\n }\n }\n}\n\nhr.spacer {\n width: 100%;\n border: 0;\n margin: 20px 0;\n height: 1px;\n}\n\nbody,\n.admin-wrapper .content {\n .muted-hint {\n color: $darker-text-color;\n\n a {\n color: $highlight-text-color;\n }\n }\n\n .positive-hint {\n color: $valid-value-color;\n font-weight: 500;\n }\n\n .negative-hint {\n color: $error-value-color;\n font-weight: 500;\n }\n\n .neutral-hint {\n color: $dark-text-color;\n font-weight: 500;\n }\n\n .warning-hint {\n color: $gold-star;\n font-weight: 500;\n }\n}\n\n.filters {\n display: flex;\n flex-wrap: wrap;\n\n .filter-subset {\n flex: 0 0 auto;\n margin: 0 40px 20px 0;\n\n &:last-child {\n margin-bottom: 30px;\n }\n\n ul {\n margin-top: 5px;\n list-style: none;\n\n li {\n display: inline-block;\n margin-right: 5px;\n }\n }\n\n strong {\n font-weight: 500;\n text-transform: uppercase;\n font-size: 12px;\n\n @each $lang in $cjk-langs {\n &:lang(#{$lang}) {\n font-weight: 700;\n }\n }\n }\n\n &--with-select strong {\n display: block;\n margin-bottom: 10px;\n }\n\n a {\n display: inline-block;\n color: $darker-text-color;\n text-decoration: none;\n text-transform: uppercase;\n font-size: 12px;\n font-weight: 500;\n border-bottom: 2px solid $ui-base-color;\n\n &:hover {\n color: $primary-text-color;\n border-bottom: 2px solid lighten($ui-base-color, 5%);\n }\n\n &.selected {\n color: $highlight-text-color;\n border-bottom: 2px solid $ui-highlight-color;\n }\n }\n }\n}\n\n.flavour-screen {\n display: block;\n margin: 10px auto;\n max-width: 100%;\n}\n\n.flavour-description {\n display: block;\n font-size: 16px;\n margin: 10px 0;\n\n & > p {\n margin: 10px 0;\n }\n}\n\n.flavour-screen {\n display: block;\n margin: 10px auto;\n max-width: 100%;\n}\n\n.flavour-description {\n display: block;\n font-size: 16px;\n margin: 10px 0;\n\n & > p {\n margin: 10px 0;\n }\n}\n\n.report-accounts {\n display: flex;\n flex-wrap: wrap;\n margin-bottom: 20px;\n}\n\n.report-accounts__item {\n display: flex;\n flex: 250px;\n flex-direction: column;\n margin: 0 5px;\n\n & > strong {\n display: block;\n margin: 0 0 10px -5px;\n font-weight: 500;\n font-size: 14px;\n line-height: 18px;\n color: $secondary-text-color;\n\n @each $lang in $cjk-langs {\n &:lang(#{$lang}) {\n font-weight: 700;\n }\n }\n }\n\n .account-card {\n flex: 1 1 auto;\n }\n}\n\n.report-status,\n.account-status {\n display: flex;\n margin-bottom: 10px;\n\n .activity-stream {\n flex: 2 0 0;\n margin-right: 20px;\n max-width: calc(100% - 60px);\n\n .entry {\n border-radius: 4px;\n }\n }\n}\n\n.report-status__actions,\n.account-status__actions {\n flex: 0 0 auto;\n display: flex;\n flex-direction: column;\n\n .icon-button {\n font-size: 24px;\n width: 24px;\n text-align: center;\n margin-bottom: 10px;\n }\n}\n\n.simple_form.new_report_note,\n.simple_form.new_account_moderation_note {\n max-width: 100%;\n}\n\n.batch-form-box {\n display: flex;\n flex-wrap: wrap;\n margin-bottom: 5px;\n\n #form_status_batch_action {\n margin: 0 5px 5px 0;\n font-size: 14px;\n }\n\n input.button {\n margin: 0 5px 5px 0;\n }\n\n .media-spoiler-toggle-buttons {\n margin-left: auto;\n\n .button {\n overflow: visible;\n margin: 0 0 5px 5px;\n float: right;\n }\n }\n}\n\n.back-link {\n margin-bottom: 10px;\n font-size: 14px;\n\n a {\n color: $highlight-text-color;\n text-decoration: none;\n\n &:hover {\n text-decoration: underline;\n }\n }\n}\n\n.spacer {\n flex: 1 1 auto;\n}\n\n.log-entry {\n line-height: 20px;\n padding: 15px 0;\n background: $ui-base-color;\n border-bottom: 1px solid lighten($ui-base-color, 4%);\n\n &:last-child {\n border-bottom: 0;\n }\n\n &__header {\n display: flex;\n justify-content: flex-start;\n align-items: center;\n color: $darker-text-color;\n font-size: 14px;\n padding: 0 10px;\n }\n\n &__avatar {\n margin-right: 10px;\n\n .avatar {\n display: block;\n margin: 0;\n border-radius: 50%;\n width: 40px;\n height: 40px;\n }\n }\n\n &__content {\n max-width: calc(100% - 90px);\n }\n\n &__title {\n word-wrap: break-word;\n }\n\n &__timestamp {\n color: $dark-text-color;\n }\n\n a,\n .username,\n .target {\n color: $secondary-text-color;\n text-decoration: none;\n font-weight: 500;\n }\n}\n\na.name-tag,\n.name-tag,\na.inline-name-tag,\n.inline-name-tag {\n text-decoration: none;\n color: $secondary-text-color;\n\n .username {\n font-weight: 500;\n }\n\n &.suspended {\n .username {\n text-decoration: line-through;\n color: lighten($error-red, 12%);\n }\n\n .avatar {\n filter: grayscale(100%);\n opacity: 0.8;\n }\n }\n}\n\na.name-tag,\n.name-tag {\n display: flex;\n align-items: center;\n\n .avatar {\n display: block;\n margin: 0;\n margin-right: 5px;\n border-radius: 50%;\n }\n\n &.suspended {\n .avatar {\n filter: grayscale(100%);\n opacity: 0.8;\n }\n }\n}\n\n.speech-bubble {\n margin-bottom: 20px;\n border-left: 4px solid $ui-highlight-color;\n\n &.positive {\n border-left-color: $success-green;\n }\n\n &.negative {\n border-left-color: lighten($error-red, 12%);\n }\n\n &.warning {\n border-left-color: $gold-star;\n }\n\n &__bubble {\n padding: 16px;\n padding-left: 14px;\n font-size: 15px;\n line-height: 20px;\n border-radius: 4px 4px 4px 0;\n position: relative;\n font-weight: 500;\n\n a {\n color: $darker-text-color;\n }\n }\n\n &__owner {\n padding: 8px;\n padding-left: 12px;\n }\n\n time {\n color: $dark-text-color;\n }\n}\n\n.report-card {\n background: $ui-base-color;\n border-radius: 4px;\n margin-bottom: 20px;\n\n &__profile {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 15px;\n\n .account {\n padding: 0;\n border: 0;\n\n &__avatar-wrapper {\n margin-left: 0;\n }\n }\n\n &__stats {\n flex: 0 0 auto;\n font-weight: 500;\n color: $darker-text-color;\n text-transform: uppercase;\n text-align: right;\n\n a {\n color: inherit;\n text-decoration: none;\n\n &:focus,\n &:hover,\n &:active {\n color: lighten($darker-text-color, 8%);\n }\n }\n\n .red {\n color: $error-value-color;\n }\n }\n }\n\n &__summary {\n &__item {\n display: flex;\n justify-content: flex-start;\n border-top: 1px solid darken($ui-base-color, 4%);\n\n &:hover {\n background: lighten($ui-base-color, 2%);\n }\n\n &__reported-by,\n &__assigned {\n padding: 15px;\n flex: 0 0 auto;\n box-sizing: border-box;\n width: 150px;\n color: $darker-text-color;\n\n &,\n .username {\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n }\n\n &__content {\n flex: 1 1 auto;\n max-width: calc(100% - 300px);\n\n &__icon {\n color: $dark-text-color;\n margin-right: 4px;\n font-weight: 500;\n }\n }\n\n &__content a {\n display: block;\n box-sizing: border-box;\n width: 100%;\n padding: 15px;\n text-decoration: none;\n color: $darker-text-color;\n }\n }\n }\n}\n\n.one-line {\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n.ellipsized-ip {\n display: inline-block;\n max-width: 120px;\n overflow: hidden;\n text-overflow: ellipsis;\n vertical-align: middle;\n}\n\n.admin-account-bio {\n display: flex;\n flex-wrap: wrap;\n margin: 0 -5px;\n margin-top: 20px;\n\n > div {\n box-sizing: border-box;\n padding: 0 5px;\n margin-bottom: 10px;\n flex: 1 0 50%;\n }\n\n .account__header__fields,\n .account__header__content {\n background: lighten($ui-base-color, 8%);\n border-radius: 4px;\n height: 100%;\n }\n\n .account__header__fields {\n margin: 0;\n border: 0;\n\n a {\n color: lighten($ui-highlight-color, 8%);\n }\n\n dl:first-child .verified {\n border-radius: 0 4px 0 0;\n }\n\n .verified a {\n color: $valid-value-color;\n }\n }\n\n .account__header__content {\n box-sizing: border-box;\n padding: 20px;\n color: $primary-text-color;\n }\n}\n\n.center-text {\n text-align: center;\n}\n\n.announcements-list {\n border: 1px solid lighten($ui-base-color, 4%);\n border-radius: 4px;\n\n &__item {\n padding: 15px 0;\n background: $ui-base-color;\n border-bottom: 1px solid lighten($ui-base-color, 4%);\n\n &__title {\n padding: 0 15px;\n display: block;\n font-weight: 500;\n font-size: 18px;\n line-height: 1.5;\n color: $secondary-text-color;\n text-decoration: none;\n margin-bottom: 10px;\n\n &:hover,\n &:focus,\n &:active {\n color: $primary-text-color;\n }\n }\n\n &__meta {\n padding: 0 15px;\n color: $dark-text-color;\n }\n\n &__action-bar {\n display: flex;\n justify-content: space-between;\n align-items: center;\n }\n\n &:last-child {\n border-bottom: 0;\n }\n }\n}\n",".dashboard__counters {\n display: flex;\n flex-wrap: wrap;\n margin: 0 -5px;\n margin-bottom: 20px;\n\n & > div {\n box-sizing: border-box;\n flex: 0 0 33.333%;\n padding: 0 5px;\n margin-bottom: 10px;\n\n & > div,\n & > a {\n padding: 20px;\n background: lighten($ui-base-color, 4%);\n border-radius: 4px;\n box-sizing: border-box;\n height: 100%;\n }\n\n & > a {\n text-decoration: none;\n color: inherit;\n display: block;\n\n &:hover,\n &:focus,\n &:active {\n background: lighten($ui-base-color, 8%);\n }\n }\n }\n\n &__num,\n &__text {\n text-align: center;\n font-weight: 500;\n font-size: 24px;\n line-height: 21px;\n color: $primary-text-color;\n font-family: $font-display, sans-serif;\n margin-bottom: 20px;\n line-height: 30px;\n }\n\n &__text {\n font-size: 18px;\n }\n\n &__label {\n font-size: 14px;\n color: $darker-text-color;\n text-align: center;\n font-weight: 500;\n }\n}\n\n.dashboard__widgets {\n display: flex;\n flex-wrap: wrap;\n margin: 0 -5px;\n\n & > div {\n flex: 0 0 33.333%;\n margin-bottom: 20px;\n\n & > div {\n padding: 0 5px;\n }\n }\n\n a:not(.name-tag) {\n color: $ui-secondary-color;\n font-weight: 500;\n text-decoration: none;\n }\n}\n","body.rtl {\n direction: rtl;\n\n .column-header > button {\n text-align: right;\n padding-left: 0;\n padding-right: 15px;\n }\n\n .radio-button__input {\n margin-right: 0;\n margin-left: 10px;\n }\n\n .directory__card__bar .display-name {\n margin-left: 0;\n margin-right: 15px;\n }\n\n .display-name {\n text-align: right;\n }\n\n .notification__message {\n margin-left: 0;\n margin-right: 68px;\n }\n\n .drawer__inner__mastodon > img {\n transform: scaleX(-1);\n }\n\n .notification__favourite-icon-wrapper {\n left: auto;\n right: -26px;\n }\n\n .landing-page__logo {\n margin-right: 0;\n margin-left: 20px;\n }\n\n .landing-page .features-list .features-list__row .visual {\n margin-left: 0;\n margin-right: 15px;\n }\n\n .column-link__icon,\n .column-header__icon {\n margin-right: 0;\n margin-left: 5px;\n }\n\n .compose-form .compose-form__buttons-wrapper .character-counter__wrapper {\n margin-right: 0;\n margin-left: 4px;\n }\n\n .navigation-bar__profile {\n margin-left: 0;\n margin-right: 8px;\n }\n\n .search__input {\n padding-right: 10px;\n padding-left: 30px;\n }\n\n .search__icon .fa {\n right: auto;\n left: 10px;\n }\n\n .columns-area {\n direction: rtl;\n }\n\n .column-header__buttons {\n left: 0;\n right: auto;\n margin-left: 0;\n margin-right: -15px;\n }\n\n .column-inline-form .icon-button {\n margin-left: 0;\n margin-right: 5px;\n }\n\n .column-header__links .text-btn {\n margin-left: 10px;\n margin-right: 0;\n }\n\n .account__avatar-wrapper {\n float: right;\n }\n\n .column-header__back-button {\n padding-left: 5px;\n padding-right: 0;\n }\n\n .column-header__setting-arrows {\n float: left;\n }\n\n .setting-toggle__label {\n margin-left: 0;\n margin-right: 8px;\n }\n\n .status__avatar {\n left: auto;\n right: 10px;\n }\n\n .status,\n .activity-stream .status.light {\n padding-left: 10px;\n padding-right: 68px;\n }\n\n .status__info .status__display-name,\n .activity-stream .status.light .status__display-name {\n padding-left: 25px;\n padding-right: 0;\n }\n\n .activity-stream .pre-header {\n padding-right: 68px;\n padding-left: 0;\n }\n\n .status__prepend {\n margin-left: 0;\n margin-right: 68px;\n }\n\n .status__prepend-icon-wrapper {\n left: auto;\n right: -26px;\n }\n\n .activity-stream .pre-header .pre-header__icon {\n left: auto;\n right: 42px;\n }\n\n .account__avatar-overlay-overlay {\n right: auto;\n left: 0;\n }\n\n .column-back-button--slim-button {\n right: auto;\n left: 0;\n }\n\n .status__relative-time,\n .activity-stream .status.light .status__header .status__meta {\n float: left;\n }\n\n .status__action-bar {\n &__counter {\n margin-right: 0;\n margin-left: 11px;\n\n .status__action-bar-button {\n margin-right: 0;\n margin-left: 4px;\n }\n }\n }\n\n .status__action-bar-button {\n float: right;\n margin-right: 0;\n margin-left: 18px;\n }\n\n .status__action-bar-dropdown {\n float: right;\n }\n\n .privacy-dropdown__dropdown {\n margin-left: 0;\n margin-right: 40px;\n }\n\n .privacy-dropdown__option__icon {\n margin-left: 10px;\n margin-right: 0;\n }\n\n .detailed-status__display-name .display-name {\n text-align: right;\n }\n\n .detailed-status__display-avatar {\n margin-right: 0;\n margin-left: 10px;\n float: right;\n }\n\n .detailed-status__favorites,\n .detailed-status__reblogs {\n margin-left: 0;\n margin-right: 6px;\n }\n\n .fa-ul {\n margin-left: 2.14285714em;\n }\n\n .fa-li {\n left: auto;\n right: -2.14285714em;\n }\n\n .admin-wrapper {\n direction: rtl;\n }\n\n .admin-wrapper .sidebar ul a i.fa,\n a.table-action-link i.fa {\n margin-right: 0;\n margin-left: 5px;\n }\n\n .simple_form .check_boxes .checkbox label {\n padding-left: 0;\n padding-right: 25px;\n }\n\n .simple_form .input.with_label.boolean label.checkbox {\n padding-left: 25px;\n padding-right: 0;\n }\n\n .simple_form .check_boxes .checkbox input[type=\"checkbox\"],\n .simple_form .input.boolean input[type=\"checkbox\"] {\n left: auto;\n right: 0;\n }\n\n .simple_form .input.radio_buttons .radio {\n left: auto;\n right: 0;\n }\n\n .simple_form .input.radio_buttons .radio > label {\n padding-right: 28px;\n padding-left: 0;\n }\n\n .simple_form .input-with-append .input input {\n padding-left: 142px;\n padding-right: 0;\n }\n\n .simple_form .input.boolean label.checkbox {\n left: auto;\n right: 0;\n }\n\n .simple_form .input.boolean .label_input,\n .simple_form .input.boolean .hint {\n padding-left: 0;\n padding-right: 28px;\n }\n\n .simple_form .label_input__append {\n right: auto;\n left: 3px;\n\n &::after {\n right: auto;\n left: 0;\n background-image: linear-gradient(to left, rgba(darken($ui-base-color, 10%), 0), darken($ui-base-color, 10%));\n }\n }\n\n .simple_form select {\n background: darken($ui-base-color, 10%) url(\"data:image/svg+xml;utf8,\") no-repeat left 8px center / auto 16px;\n }\n\n .table th,\n .table td {\n text-align: right;\n }\n\n .filters .filter-subset {\n margin-right: 0;\n margin-left: 45px;\n }\n\n .landing-page .header-wrapper .mascot {\n right: 60px;\n left: auto;\n }\n\n .landing-page__call-to-action .row__information-board {\n direction: rtl;\n }\n\n .landing-page .header .hero .floats .float-1 {\n left: -120px;\n right: auto;\n }\n\n .landing-page .header .hero .floats .float-2 {\n left: 210px;\n right: auto;\n }\n\n .landing-page .header .hero .floats .float-3 {\n left: 110px;\n right: auto;\n }\n\n .landing-page .header .links .brand img {\n left: 0;\n }\n\n .landing-page .fa-external-link {\n padding-right: 5px;\n padding-left: 0 !important;\n }\n\n .landing-page .features #mastodon-timeline {\n margin-right: 0;\n margin-left: 30px;\n }\n\n @media screen and (min-width: 631px) {\n .column,\n .drawer {\n padding-left: 5px;\n padding-right: 5px;\n\n &:first-child {\n padding-left: 5px;\n padding-right: 10px;\n }\n }\n\n .columns-area > div {\n .column,\n .drawer {\n padding-left: 5px;\n padding-right: 5px;\n }\n }\n }\n\n .columns-area--mobile .column,\n .columns-area--mobile .drawer {\n padding-left: 0;\n padding-right: 0;\n }\n\n .public-layout {\n .header {\n .nav-button {\n margin-left: 8px;\n margin-right: 0;\n }\n }\n\n .public-account-header__tabs {\n margin-left: 0;\n margin-right: 20px;\n }\n }\n\n .landing-page__information {\n .account__display-name {\n margin-right: 0;\n margin-left: 5px;\n }\n\n .account__avatar-wrapper {\n margin-left: 12px;\n margin-right: 0;\n }\n }\n\n .card__bar .display-name {\n margin-left: 0;\n margin-right: 15px;\n text-align: right;\n }\n\n .fa-chevron-left::before {\n content: \"\\F054\";\n }\n\n .fa-chevron-right::before {\n content: \"\\F053\";\n }\n\n .column-back-button__icon {\n margin-right: 0;\n margin-left: 5px;\n }\n\n .column-header__setting-arrows .column-header__setting-btn:last-child {\n padding-left: 0;\n padding-right: 10px;\n }\n\n .simple_form .input.radio_buttons .radio > label input {\n left: auto;\n right: 0;\n }\n}\n","$black-emojis: '8ball' 'ant' 'back' 'black_circle' 'black_heart' 'black_large_square' 'black_medium_small_square' 'black_medium_square' 'black_nib' 'black_small_square' 'bomb' 'bowling' 'bust_in_silhouette' 'busts_in_silhouette' 'camera' 'camera_with_flash' 'clubs' 'copyright' 'curly_loop' 'currency_exchange' 'dark_sunglasses' 'eight_pointed_black_star' 'electric_plug' 'end' 'female-guard' 'film_projector' 'fried_egg' 'gorilla' 'guardsman' 'heavy_check_mark' 'heavy_division_sign' 'heavy_dollar_sign' 'heavy_minus_sign' 'heavy_multiplication_x' 'heavy_plus_sign' 'hocho' 'hole' 'joystick' 'kaaba' 'lower_left_ballpoint_pen' 'lower_left_fountain_pen' 'male-guard' 'microphone' 'mortar_board' 'movie_camera' 'musical_score' 'on' 'registered' 'soon' 'spades' 'speaking_head_in_silhouette' 'spider' 'telephone_receiver' 'tm' 'top' 'tophat' 'turkey' 'vhs' 'video_camera' 'video_game' 'water_buffalo' 'waving_black_flag' 'wavy_dash';\n\n%white-emoji-outline {\n filter: drop-shadow(1px 1px 0 $white) drop-shadow(-1px 1px 0 $white) drop-shadow(1px -1px 0 $white) drop-shadow(-1px -1px 0 $white);\n transform: scale(.71);\n}\n\n.emojione {\n @each $emoji in $black-emojis {\n &[title=':#{$emoji}:'] {\n @extend %white-emoji-outline;\n }\n }\n}\n"],"sourceRoot":""} \ No newline at end of file diff --git a/priv/static/packs/skins/vanilla/win95/common.js b/priv/static/packs/skins/vanilla/win95/common.js deleted file mode 100644 index ad508dd52..000000000 Binary files a/priv/static/packs/skins/vanilla/win95/common.js and /dev/null differ diff --git a/priv/static/packs/skins/vanilla/win95/common.js.map b/priv/static/packs/skins/vanilla/win95/common.js.map deleted file mode 100644 index e6c40bfa3..000000000 Binary files a/priv/static/packs/skins/vanilla/win95/common.js.map and /dev/null differ diff --git a/priv/static/packs/tesseract.js b/priv/static/packs/tesseract.js deleted file mode 100644 index 8d0a37718..000000000 Binary files a/priv/static/packs/tesseract.js and /dev/null differ diff --git a/priv/static/packs/tesseract.js.LICENSE.txt b/priv/static/packs/tesseract.js.LICENSE.txt deleted file mode 100644 index acafca218..000000000 --- a/priv/static/packs/tesseract.js.LICENSE.txt +++ /dev/null @@ -1,8 +0,0 @@ -/*! - * Determine if an object is a Buffer - * - * @author Feross Aboukhadijeh - * @license MIT - */ - -/** @license zlib.js 2012 - imaya [ https://github.com/imaya/zlib.js ] The MIT License */ diff --git a/priv/static/packs/tesseract.js.map b/priv/static/packs/tesseract.js.map deleted file mode 100644 index 0a5962033..000000000 Binary files a/priv/static/packs/tesseract.js.map and /dev/null differ diff --git a/priv/static/schemas/litepub-0.1.jsonld b/priv/static/schemas/litepub-0.1.jsonld index e7722cf72..650118475 100644 --- a/priv/static/schemas/litepub-0.1.jsonld +++ b/priv/static/schemas/litepub-0.1.jsonld @@ -35,7 +35,9 @@ "alsoKnownAs": { "@id": "as:alsoKnownAs", "@type": "@id" - } + }, + "vcard": "http://www.w3.org/2006/vcard/ns#", + "formerRepresentations": "litepub:formerRepresentations" } ] } diff --git a/priv/static/sounds/boop.mp3 b/priv/static/sounds/boop.mp3 deleted file mode 100644 index bf9c3c1aa..000000000 Binary files a/priv/static/sounds/boop.mp3 and /dev/null differ diff --git a/priv/static/sounds/boop.ogg b/priv/static/sounds/boop.ogg deleted file mode 100644 index a6551c9fd..000000000 Binary files a/priv/static/sounds/boop.ogg and /dev/null differ diff --git a/priv/static/static/config.json b/priv/static/static/config.json index 53a4be823..fb39ff77f 100644 --- a/priv/static/static/config.json +++ b/priv/static/static/config.json @@ -14,6 +14,7 @@ "logoMask": true, "logoLeft": false, "minimalScopesMode": false, + "disableUpdateNotification": false, "nsfwCensorImage": "", "postContentType": "text/plain", "redirectRootLogin": "/main/friends", diff --git a/priv/static/static/css/1264.177d0bf6917b317388ae.css b/priv/static/static/css/1264.177d0bf6917b317388ae.css new file mode 100644 index 000000000..63976a6d7 Binary files /dev/null and b/priv/static/static/css/1264.177d0bf6917b317388ae.css differ diff --git a/priv/static/static/css/1264.177d0bf6917b317388ae.css.map b/priv/static/static/css/1264.177d0bf6917b317388ae.css.map new file mode 100644 index 000000000..326c27d14 --- /dev/null +++ b/priv/static/static/css/1264.177d0bf6917b317388ae.css.map @@ -0,0 +1 @@ +{"version":3,"file":"static/css/1264.177d0bf6917b317388ae.css","mappings":"AAEE,oBACE,gBACA,aCFF,qBACE,aCAJ,aACE,kBAEA,mBACE,cACA,WAGF,qBAME,wBCbW,CDcX,mCAGA,qBCTe,CDUf,gCACA,iBCCoB,sCDCpB,yBACA,0BACA,sCACA,8BAfA,OAGA,iBAaA,gBAjBA,kBAGA,QADA,SAgBA,UE7BJ,8BACE,gBACA,iBACA,qCACE,WCJJ,6BACE,gBACA,iBACA,oCACE,WCJJ,kBAIE,mBAFA,aADA,SAEA,8BAEA,wBAEA,yBACE,iBACA,gBACA,uBAGF,yBACE,WAGF,uCACE,iBCfF,4BAEE,mBADA,YACA,CAEA,8BACE,YAIJ,qCAIE,qDAAuD,CACvD,yDAA2D,CAC3D,6DAA+D,CAC/D,8CAA+C,CAN/C,wBJJgB,CIKhB,6CACA,qCAIgD,CAGlD,wBAEE,mBAIA,oEALA,aAEA,cAGA,CAEA,gCACE,OAIJ,kCAEE,UADA,cACA,CCrCF,2BACE,aACA,kBAEA,kCACE,eCNN,sBACI,YAEA,0CACI,YAGJ,oCAGI,eADA,cADA,gBAEA,CAGJ,0CACI,WAGJ,wCAEI,aACA,sBAFA,WAEA,CAGJ,0CACI,oBACA,eACA,WCzBR,mBACE,qBACA,kBAGF,kBACE,gBACA,eACA,kBCRF,qBACE,qBACA,kBAGF,oBACE,gBACA,eACA,kBCLA,2BACE,YTWgB,CSVhB,4BAEF,gCACE,0CCNF,sDAIE,qBAHA,aACA,eACA,6BACA,CAGF,uBACE,YVKgB,CUJhB,4BAGF,yBACE,aAEA,eADA,sBACA,CACA,kCACE,OACA,mBAEF,wCACA,+CAEE,qDAEE,eADA,UACA;AC5BR;;;;;;;;EAQE,CAEF,mBACE,aAAc,CACd,WAAY,CACZ,aAAc,CACd,iBAAkB,CAClB,qBAAsB,CACtB,iBAAkB,CAClB,wBAAyB,CACzB,qBAAsB,CACtB,oBAAqB,CACrB,gBACF,CAEA,uBACE,aAAc,CACd,WAAY,CACZ,sBAAuB,CACvB,yBAA2B,CAC3B,wBAA0B,CAC1B,sBAAwB,CACxB,qBAAuB,CACvB,UACF,CAEA,qFAKE,QAAS,CACT,MAAO,CACP,iBAAkB,CAClB,OAAQ,CACR,KACF,CAEA,kCAEE,eACF,CAEA,kBACE,qBAAsB,CACtB,SACF,CAEA,eACE,qBAAsB,CACtB,UACF,CAEA,kBACE,aAAc,CACd,WAAY,CACZ,sBAAuB,CACvB,kCAAuC,CACvC,eAAgB,CAChB,UACF,CAEA,gBACE,oBAAqB,CACrB,aAAc,CACd,UAAY,CACZ,iBACF,CAEA,yBACE,uBAAwB,CACxB,oBAAqB,CACrB,gBAAsB,CACtB,MAAO,CACP,aAAmB,CACnB,UACF,CAEA,yBACE,qBAAsB,CACtB,sBAAuB,CACvB,WAAY,CACZ,cAAoB,CACpB,KAAM,CACN,eACF,CAEA,gBACE,aAAc,CACd,QAAS,CACT,QAAS,CACT,WAAa,CACb,iBAAkB,CAClB,OAAQ,CACR,OACF,CAEA,6CAEE,qBAAsB,CACtB,WAAY,CACZ,aAAc,CACd,iBACF,CAEA,uBACE,UAAW,CACX,SAAU,CACV,KAAM,CACN,SACF,CAEA,sBACE,UAAW,CACX,MAAO,CACP,QAAS,CACT,SACF,CAEA,2CAGE,aAAc,CACd,WAAY,CACZ,UAAY,CACZ,iBAAkB,CAClB,UACF,CAEA,cACE,qBAAsB,CACtB,MAAO,CACP,KACF,CAEA,cACE,qBACF,CAEA,qBACE,gBAAiB,CACjB,UAAW,CACX,KAAM,CACN,SACF,CAEA,qBACE,gBAAiB,CACjB,UAAW,CACX,MAAO,CACP,QACF,CAEA,qBACE,gBAAiB,CACjB,SAAU,CACV,KAAM,CACN,SACF,CAEA,qBACE,WAAY,CACZ,gBAAiB,CACjB,UAAW,CACX,MACF,CAEA,eACE,qBAAsB,CACtB,UAAW,CACX,WAAa,CACb,SACF,CAEA,uBACE,gBAAiB,CACjB,eAAgB,CAChB,UAAW,CACX,OACF,CAEA,uBACE,gBAAiB,CACjB,QAAS,CACT,gBAAiB,CACjB,QACF,CAEA,uBACE,gBAAiB,CACjB,SAAU,CACV,eAAgB,CAChB,OACF,CAEA,uBACE,WAAY,CACZ,eAAgB,CAChB,QAAS,CACT,gBACF,CAEA,wBACE,kBAAmB,CACnB,UAAW,CACX,QACF,CAEA,wBACE,kBAAmB,CACnB,SAAU,CACV,QACF,CAEA,wBACE,WAAY,CACZ,kBAAmB,CACnB,SACF,CAEA,wBACE,WAAY,CACZ,kBAAmB,CACnB,WAAY,CACZ,SAAU,CACV,UAAW,CACX,UACF,CAEA,yBACE,wBACE,WAAY,CACZ,UACF,CACF,CAEA,yBACE,wBACE,WAAY,CACZ,UACF,CACF,CAEA,0BACE,wBACE,UAAW,CACX,WAAa,CACb,SACF,CACF,CAEA,+BACE,qBAAsB,CACtB,WAAY,CACZ,WAAY,CACZ,aAAc,CACd,WAAY,CACZ,SAAU,CACV,iBAAkB,CAClB,UAAW,CACX,UACF,CAEA,mBACE,SACF,CAEA,YACE,4QACF,CAEA,cACE,aAAc,CACd,QAAS,CACT,iBAAkB,CAClB,OACF,CAEA,gBACE,sBACF,CAEA,cACE,WACF,CAEA,cACE,gBACF,CAEA,qIAIE,kBACF,CC7SE,yBACE,aAGF,+BACE,kBAEA,mCACE,cACA,eAIJ,+BACE,gBAEA,sCACE,eCjBJ,kBACE,SAGF,8BACE,gBAGF,8BAEE,YADA,WACA,CAGF,wCACE,eAEA,kBADA,WACA,CAEA,4CACE,WAIJ,wBACE,gBACA,aAGF,2BACE,WAGF,uCAGE,aAFA,kBACA,WACA,CAGF,6BAIE,iBblBqB,CamBrB,sCAJA,cAEA,YADA,UAGA,CAGF,2BAME,gCAFA,iBb3BsB,Ca4BtB,uCAQA,eADA,gBAHA,aAEA,kBAJA,WANA,kBAEA,WAOA,kBARA,SAMA,WAKA,CAEA,iCACE,UAGF,+BACE,WAIJ,2BACE,WAEA,8BACE,gBAGF,oCACE,iBAIJ,gCACE,YAGF,0BAGE,eADA,cADA,gBAEA,CAEA,iCACE,WAIJ,8BAEE,aACA,sBAFA,WAEA,CAEA,qCACE,oBACA,eACA,WAIJ,8BACE,mBAGF,6BACE,aAEA,0CACE,cACA,mBACA,YAGF,2CAEE,kBACA,mBACA,eAHA,UAGA,CC9HN,uCACE,iBAEA,wBACA,wBAFA,mBAEA,CCJF,iBACE,aAEA,eADA,4BACA,CAEF,6BACE,cACA,mBACA,gBCPF,aACE,oBAEA,yBAIE,oBAHA,oBACA,WACA,cAEA,iBAEA,+BACE,gBAGA,YAFA,ahBHgB,CgBIhB,+BAGA,QAAO,CADP,SACA,CAEA,yCACE,aACA,cACA,UAUJ,sIAIE,mBAFA,aAGA,gBAFA,aAEA,CAEF,+CAEE,sBACA,kBACA,2GAGE,sBADA,WADA,cAIA,WADA,kBAEA,UAEF,qDAEE,MAAK,CADL,KACA,CAEF,sDACE,SACA,QAKN,oBACE,cC9DF,gCAEE,MAAK,CADL,aACA,CCFJ,gBACE,aACA,eACA,uBACA,kBAEA,wEAEE,mBAEF,0CAEE,aADA,OAEA,eAIA,6DAEE,cADA,SACA,CAEF,sHAEE,aACA,OAEA,gKACE,WAKJ,2DACE,uBAGF,6HAIE,WAFA,SACA,UACA,CAEF,2DAEE,qBADA,qBACA,CACA,iEAEE,YADA,SA/BG,CAkCL,6EAEE,wBADA,wBACA,CAGJ,0DAIE,mBAFA,sBAIA,0MACA,CAKA,kDADA,0BAGA,iBlB9CkB,CkB+ClB,qCAZA,aAFA,OAIA,sBAUA,CAEA,yEAGE,wBlBxEO,CkByEP,mCACA,kBlBzDgB,CkB0DhB,sCAJA,WADA,SAKA,CAKN,8BACE,OACA,gBAEA,0CACE,oBAEA,2DACE,OAGF,0GAEE,iBADA,aACA,CAGF,+CAEE,cADA,cACA,CCnGN,gCACE,eAIA,oCAEE,4BAA2B,CAD3B,yBACA,CAEF,kCAEE,2BAA0B,CAD1B,wBACA,CCbN,gBACE,aACA,yBAGA,kBADA,eACA,CAEA,uBACE,iBAGF,wBACE,qBAEA,iBADA,iBACA,CCdJ,mBACE,kBAEF,kBAGE,SACA,UAHA,kBAIA,WAHA,KAGA,CCRF,WACE,mBACA,0BAEE,qBADA,aAEA,mBAEE,wCACE,mBAIN,4BACE,iBAGF,0BAEE,qBADA,aAEA,kBAEA,iCACE,OAIA,mFACE,WAIJ,+BACE,YAGF,uCACE,WAGF,iEAGE,MAAK,CADL,SADA,aAEA,CAEA,2FACE,cAGF,yFAGE,sBAFA,OACA,aACA,CAKN,4BACE,eAGF,6IAME,aAGF,yDAEE,sBAGF,4BAIE,eACA,8BAJA,+BACE,UAMJ,gJAKE,iBAGF,uBAGE,qBAFA,aACA,8BAIA,kBADA,gBADA,UAEA,CAEA,yBACE,OAEA,kBAIJ,+BACE,aACA,sBAEA,oCAEE,YAEA,mBAHA,cAEA,aACA,CAKF,sCACE,OACA,iBAEF,8CAEE,mBADA,eACA,CAIJ,oDAIE,qBAFA,aAGA,eAFA,sBAEA,CAEA,wJAEE,mBAGF,kFACE,aAGF,wEACE,iBAIJ,8BACE,eAEA,uBADA,eACA,CACA,2CACE,mBACA,cAIJ,8BAOE,kCACA,8CAEA,4BADA,sBANA,6BtBvJe,CsBuJf,8BtBvJe,CsBuJf,0BtBvJe,CsBwJf,gCACA,aACA,WAIA,CAGE,2CAEE,aADA,2BACA,CAEA,oDACE,OAEA,uDACE,oBAGF,2DAEE,aADA,eACA,CAEA,6DACE,iBAMR,iDAGE,mBADA,aADA,cAEA,CAGF,8FACE,2HACA,WACA,uBAEA,iBADA,iBACA,CAGF,iDAOE,kBtB7LoB,CsB8LpB,0CAPA,YAEA,eAGA,iBAJA,iBAGA,gBADA,cAIA,CAGF,6CACE,YAGA,eADA,YAEA,iBAHA,UAGA,CAGF,8CAEE,qBADA,YACA,CAEA,wDAEE,qBADA,oBAGA,MAAK,CADL,gBACA,CAIJ,gDAGE,uBtBvOW,CsBuOX,iBtBvOW,CsBwOX,gCAHA,UAGA,CAGF,0CACE,cAKN,+CAIE,YAAY,CAEZ,WADA,sBAFA,mBADA,cAIA,CAEA,yDACE,cAGF,mGACE,iBAIF,8HAEE,qBADA,YACA,CAIJ,wBACE,gBAGF,uDAME,mBAFA,uBAFA,SACA,gBAEA,sCACA,CAGF,kFAGE,gBAGF,4BAME,MAAK,CADL,cAJA,cAQF,4BACE,eAGF,kCACE,aAGF,gBACE,kBACA,mBAKF,gCACE,aACA,mBAEA,WAAU,CADV,4BACA,CAEA,qCACE,YAGA,eAFA,eACA,YAEA,UCzUN,uBACE,YAEA,qCACE,0CACA,qBACA,qBAEA,oFAEE,cACA,mBACA,0GACE,gBAIJ,sDACE,aAEA,mEACE,SACA,kBAIJ,gDACE,mBAEA,kBADA,gBACA,CAGF,4CACE,eAGF,8CAGE,aADA,eADA,UAEA,CAGF,wGAEE,sBACA,SvBjCW,CuBoCb,mDACE","sources":["webpack://pleroma_fe/./src/components/importer/importer.vue","webpack://pleroma_fe/./src/components/exporter/exporter.vue","webpack://pleroma_fe/./src/components/autosuggest/autosuggest.vue","webpack://pleroma_fe/./src/_variables.scss","webpack://pleroma_fe/./src/components/block_card/block_card.vue","webpack://pleroma_fe/./src/components/mute_card/mute_card.vue","webpack://pleroma_fe/./src/components/domain_mute_card/domain_mute_card.vue","webpack://pleroma_fe/./src/components/selectable_list/selectable_list.vue","webpack://pleroma_fe/./src/hocs/with_subscription/with_subscription.scss","webpack://pleroma_fe/./src/components/settings_modal/tabs/mutes_and_blocks_tab.scss","webpack://pleroma_fe/./src/components/settings_modal/helpers/modified_indicator.vue","webpack://pleroma_fe/./src/components/settings_modal/helpers/server_side_indicator.vue","webpack://pleroma_fe/./src/components/settings_modal/tabs/security_tab/mfa_backup_codes.vue","webpack://pleroma_fe/./src/components/settings_modal/tabs/security_tab/mfa.vue","webpack://pleroma_fe/./node_modules/cropperjs/dist/cropper.css","webpack://pleroma_fe/./src/components/image_cropper/image_cropper.vue","webpack://pleroma_fe/./src/components/settings_modal/tabs/profile_tab.scss","webpack://pleroma_fe/./src/components/settings_modal/helpers/size_setting.vue","webpack://pleroma_fe/./src/components/settings_modal/tabs/general_tab.vue","webpack://pleroma_fe/./src/components/color_input/color_input.scss","webpack://pleroma_fe/./src/components/color_input/color_input.vue","webpack://pleroma_fe/./src/components/shadow_control/shadow_control.vue","webpack://pleroma_fe/./src/components/font_control/font_control.vue","webpack://pleroma_fe/./src/components/contrast_ratio/contrast_ratio.vue","webpack://pleroma_fe/./src/components/settings_modal/tabs/theme_tab/preview.vue","webpack://pleroma_fe/./src/components/settings_modal/tabs/theme_tab/theme_tab.scss","webpack://pleroma_fe/./src/components/settings_modal/settings_modal_content.scss"],"sourcesContent":["\n.importer {\n &-uploading {\n font-size: 1.5em;\n margin: 0.25em;\n }\n}\n","\n.exporter {\n &-processing {\n margin: 0.25em;\n }\n}\n","\n@import '../../_variables.scss';\n\n.autosuggest {\n position: relative;\n\n &-input {\n display: block;\n width: 100%;\n }\n\n &-results {\n position: absolute;\n left: 0;\n top: 100%;\n right: 0;\n max-height: 400px;\n background-color: $fallback--bg;\n background-color: var(--bg, $fallback--bg);\n border-style: solid;\n border-width: 1px;\n border-color: $fallback--border;\n border-color: var(--border, $fallback--border);\n border-radius: $fallback--inputRadius;\n border-radius: var(--inputRadius, $fallback--inputRadius);\n border-top-left-radius: 0;\n border-top-right-radius: 0;\n box-shadow: 1px 1px 4px rgba(0, 0, 0, 0.6);\n box-shadow: var(--panelShadow);\n overflow-y: auto;\n z-index: 1;\n }\n}\n","$main-color: #f58d2c;\n$main-background: white;\n$darkened-background: whitesmoke;\n\n$fallback--bg: #121a24;\n$fallback--fg: #182230;\n$fallback--faint: rgba(185, 185, 186, .5);\n$fallback--text: #b9b9ba;\n$fallback--link: #d8a070;\n$fallback--icon: #666;\n$fallback--lightBg: rgb(21, 30, 42);\n$fallback--lightText: #b9b9ba;\n$fallback--border: #222;\n$fallback--cRed: #ff0000;\n$fallback--cBlue: #0095ff;\n$fallback--cGreen: #0fa00f;\n$fallback--cOrange: orange;\n\n$fallback--alertError: rgba(211,16,20,.5);\n$fallback--alertWarning: rgba(111,111,20,.5);\n\n$fallback--panelRadius: 10px;\n$fallback--checkboxRadius: 2px;\n$fallback--btnRadius: 4px;\n$fallback--inputRadius: 4px;\n$fallback--tooltipRadius: 5px;\n$fallback--avatarRadius: 4px;\n$fallback--avatarAltRadius: 10px;\n$fallback--attachmentRadius: 10px;\n$fallback--chatMessageRadius: 10px;\n\n$fallback--buttonShadow: 0px 0px 2px 0px rgba(0, 0, 0, 1), 0px 1px 0px 0px rgba(255, 255, 255, 0.2) inset, 0px -1px 0px 0px rgba(0, 0, 0, 0.2) inset;\n\n$status-margin: 0.75em;\n","\n.block-card-content-container {\n margin-top: 0.5em;\n text-align: right;\n button {\n width: 10em;\n }\n}\n","\n.mute-card-content-container {\n margin-top: 0.5em;\n text-align: right;\n button {\n width: 10em;\n }\n}\n","\n.domain-mute-card {\n flex: 1 0;\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 0.6em 1em 0.6em 0;\n\n &-domain {\n margin-right: 1em;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n button {\n width: 10em;\n }\n\n .autosuggest-results & {\n padding-left: 1em;\n }\n}\n","\n@import '../../_variables.scss';\n\n.selectable-list {\n &-item-inner {\n display: flex;\n align-items: center;\n\n > * {\n min-width: 0;\n }\n }\n\n &-item-selected-inner {\n background-color: $fallback--lightBg;\n background-color: var(--selectedMenu, $fallback--lightBg);\n color: var(--selectedMenuText, $fallback--text);\n --faint: var(--selectedMenuFaintText, $fallback--faint);\n --faintLink: var(--selectedMenuFaintLink, $fallback--faint);\n --lightText: var(--selectedMenuLightText, $fallback--lightText);\n --icon: var(--selectedMenuIcon, $fallback--icon);\n }\n\n &-header {\n display: flex;\n align-items: center;\n padding: 0.6em 0;\n border-bottom: 2px solid;\n border-bottom-color: $fallback--border;\n border-bottom-color: var(--border, $fallback--border);\n\n &-actions {\n flex: 1;\n }\n }\n\n &-checkbox-wrapper {\n padding: 0 10px;\n flex: none;\n }\n}\n",".with-subscription {\n &-loading {\n padding: 10px;\n text-align: center;\n\n .error {\n font-size: 1rem;\n }\n }\n}",".mutes-and-blocks-tab {\n height: 100%;\n\n .usersearch-wrapper {\n padding: 1em;\n }\n\n .bulk-actions {\n text-align: right;\n padding: 0 1em;\n min-height: 2em;\n }\n\n .bulk-action-button {\n width: 10em\n }\n\n .domain-mute-form {\n padding: 1em;\n display: flex;\n flex-direction: column\n }\n\n .domain-mute-button {\n align-self: flex-end;\n margin-top: 1em;\n width: 10em\n }\n}\n","\n.ModifiedIndicator {\n display: inline-block;\n position: relative;\n}\n\n.modified-tooltip {\n margin: 0.5em 1em;\n min-width: 10em;\n text-align: center;\n}\n","\n.ServerSideIndicator {\n display: inline-block;\n position: relative;\n}\n\n.serverside-tooltip {\n margin: 0.5em 1em;\n min-width: 10em;\n text-align: center;\n}\n","\n@import '../../../../_variables.scss';\n\n.mfa-backup-codes {\n .warning {\n color: $fallback--cOrange;\n color: var(--cOrange, $fallback--cOrange);\n }\n .backup-codes {\n font-family: var(--postCodeFont, monospace);\n }\n}\n","\n@import '../../../../_variables.scss';\n.mfa-settings {\n .mfa-heading, .method-item {\n display: flex;\n flex-wrap: wrap;\n justify-content: space-between;\n align-items: baseline;\n }\n\n .warning {\n color: $fallback--cOrange;\n color: var(--cOrange, $fallback--cOrange);\n }\n\n .setup-otp {\n display: flex;\n justify-content: center;\n flex-wrap: wrap;\n .qr-code {\n flex: 1;\n padding-right: 10px;\n }\n .verify { flex: 1; }\n .error { margin: 4px 0 0 0; }\n .confirm-otp-actions {\n button {\n width: 15em;\n margin-top: 5px;\n }\n\n }\n }\n}\n","/*!\n * Cropper.js v1.5.12\n * https://fengyuanchen.github.io/cropperjs\n *\n * Copyright 2015-present Chen Fengyuan\n * Released under the MIT license\n *\n * Date: 2021-06-12T08:00:11.623Z\n */\n\n.cropper-container {\n direction: ltr;\n font-size: 0;\n line-height: 0;\n position: relative;\n -ms-touch-action: none;\n touch-action: none;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n}\n\n.cropper-container img {\n display: block;\n height: 100%;\n image-orientation: 0deg;\n max-height: none !important;\n max-width: none !important;\n min-height: 0 !important;\n min-width: 0 !important;\n width: 100%;\n}\n\n.cropper-wrap-box,\n.cropper-canvas,\n.cropper-drag-box,\n.cropper-crop-box,\n.cropper-modal {\n bottom: 0;\n left: 0;\n position: absolute;\n right: 0;\n top: 0;\n}\n\n.cropper-wrap-box,\n.cropper-canvas {\n overflow: hidden;\n}\n\n.cropper-drag-box {\n background-color: #fff;\n opacity: 0;\n}\n\n.cropper-modal {\n background-color: #000;\n opacity: 0.5;\n}\n\n.cropper-view-box {\n display: block;\n height: 100%;\n outline: 1px solid #39f;\n outline-color: rgba(51, 153, 255, 0.75);\n overflow: hidden;\n width: 100%;\n}\n\n.cropper-dashed {\n border: 0 dashed #eee;\n display: block;\n opacity: 0.5;\n position: absolute;\n}\n\n.cropper-dashed.dashed-h {\n border-bottom-width: 1px;\n border-top-width: 1px;\n height: calc(100% / 3);\n left: 0;\n top: calc(100% / 3);\n width: 100%;\n}\n\n.cropper-dashed.dashed-v {\n border-left-width: 1px;\n border-right-width: 1px;\n height: 100%;\n left: calc(100% / 3);\n top: 0;\n width: calc(100% / 3);\n}\n\n.cropper-center {\n display: block;\n height: 0;\n left: 50%;\n opacity: 0.75;\n position: absolute;\n top: 50%;\n width: 0;\n}\n\n.cropper-center::before,\n.cropper-center::after {\n background-color: #eee;\n content: ' ';\n display: block;\n position: absolute;\n}\n\n.cropper-center::before {\n height: 1px;\n left: -3px;\n top: 0;\n width: 7px;\n}\n\n.cropper-center::after {\n height: 7px;\n left: 0;\n top: -3px;\n width: 1px;\n}\n\n.cropper-face,\n.cropper-line,\n.cropper-point {\n display: block;\n height: 100%;\n opacity: 0.1;\n position: absolute;\n width: 100%;\n}\n\n.cropper-face {\n background-color: #fff;\n left: 0;\n top: 0;\n}\n\n.cropper-line {\n background-color: #39f;\n}\n\n.cropper-line.line-e {\n cursor: ew-resize;\n right: -3px;\n top: 0;\n width: 5px;\n}\n\n.cropper-line.line-n {\n cursor: ns-resize;\n height: 5px;\n left: 0;\n top: -3px;\n}\n\n.cropper-line.line-w {\n cursor: ew-resize;\n left: -3px;\n top: 0;\n width: 5px;\n}\n\n.cropper-line.line-s {\n bottom: -3px;\n cursor: ns-resize;\n height: 5px;\n left: 0;\n}\n\n.cropper-point {\n background-color: #39f;\n height: 5px;\n opacity: 0.75;\n width: 5px;\n}\n\n.cropper-point.point-e {\n cursor: ew-resize;\n margin-top: -3px;\n right: -3px;\n top: 50%;\n}\n\n.cropper-point.point-n {\n cursor: ns-resize;\n left: 50%;\n margin-left: -3px;\n top: -3px;\n}\n\n.cropper-point.point-w {\n cursor: ew-resize;\n left: -3px;\n margin-top: -3px;\n top: 50%;\n}\n\n.cropper-point.point-s {\n bottom: -3px;\n cursor: s-resize;\n left: 50%;\n margin-left: -3px;\n}\n\n.cropper-point.point-ne {\n cursor: nesw-resize;\n right: -3px;\n top: -3px;\n}\n\n.cropper-point.point-nw {\n cursor: nwse-resize;\n left: -3px;\n top: -3px;\n}\n\n.cropper-point.point-sw {\n bottom: -3px;\n cursor: nesw-resize;\n left: -3px;\n}\n\n.cropper-point.point-se {\n bottom: -3px;\n cursor: nwse-resize;\n height: 20px;\n opacity: 1;\n right: -3px;\n width: 20px;\n}\n\n@media (min-width: 768px) {\n .cropper-point.point-se {\n height: 15px;\n width: 15px;\n }\n}\n\n@media (min-width: 992px) {\n .cropper-point.point-se {\n height: 10px;\n width: 10px;\n }\n}\n\n@media (min-width: 1200px) {\n .cropper-point.point-se {\n height: 5px;\n opacity: 0.75;\n width: 5px;\n }\n}\n\n.cropper-point.point-se::before {\n background-color: #39f;\n bottom: -50%;\n content: ' ';\n display: block;\n height: 200%;\n opacity: 0;\n position: absolute;\n right: -50%;\n width: 200%;\n}\n\n.cropper-invisible {\n opacity: 0;\n}\n\n.cropper-bg {\n background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQAQMAAAAlPW0iAAAAA3NCSVQICAjb4U/gAAAABlBMVEXMzMz////TjRV2AAAACXBIWXMAAArrAAAK6wGCiw1aAAAAHHRFWHRTb2Z0d2FyZQBBZG9iZSBGaXJld29ya3MgQ1M26LyyjAAAABFJREFUCJlj+M/AgBVhF/0PAH6/D/HkDxOGAAAAAElFTkSuQmCC');\n}\n\n.cropper-hide {\n display: block;\n height: 0;\n position: absolute;\n width: 0;\n}\n\n.cropper-hidden {\n display: none !important;\n}\n\n.cropper-move {\n cursor: move;\n}\n\n.cropper-crop {\n cursor: crosshair;\n}\n\n.cropper-disabled .cropper-drag-box,\n.cropper-disabled .cropper-face,\n.cropper-disabled .cropper-line,\n.cropper-disabled .cropper-point {\n cursor: not-allowed;\n}\n","\n.image-cropper {\n &-img-input {\n display: none;\n }\n\n &-image-container {\n position: relative;\n\n img {\n display: block;\n max-width: 100%;\n }\n }\n\n &-buttons-wrapper {\n margin-top: 10px;\n\n button {\n margin-top: 5px;\n }\n }\n}\n","@import '../../../_variables.scss';\n.profile-tab {\n .bio {\n margin: 0;\n }\n\n .visibility-tray {\n padding-top: 5px;\n }\n\n input[type=file] {\n padding: 5px;\n height: auto;\n }\n\n .banner-background-preview {\n max-width: 100%;\n width: 300px;\n position: relative;\n\n img {\n width: 100%;\n }\n }\n\n .uploading {\n font-size: 1.5em;\n margin: 0.25em;\n }\n\n .name-changer {\n width: 100%;\n }\n\n .current-avatar-container {\n position: relative;\n width: 150px;\n height: 150px;\n }\n\n .current-avatar {\n display: block;\n width: 100%;\n height: 100%;\n border-radius: $fallback--avatarRadius;\n border-radius: var(--avatarRadius, $fallback--avatarRadius);\n }\n\n .reset-button {\n position: absolute;\n top: 0.2em;\n right: 0.2em;\n border-radius: $fallback--tooltipRadius;\n border-radius: var(--tooltipRadius, $fallback--tooltipRadius);\n background-color: rgba(0, 0, 0, 0.6);\n opacity: 0.7;\n width: 1.5em;\n height: 1.5em;\n text-align: center;\n line-height: 1.5em;\n font-size: 1.5em;\n cursor: pointer;\n\n &:hover {\n opacity: 1;\n }\n\n svg {\n color: white;\n }\n }\n\n .oauth-tokens {\n width: 100%;\n\n th {\n text-align: left;\n }\n\n .actions {\n text-align: right;\n }\n }\n\n &-usersearch-wrapper {\n padding: 1em;\n }\n\n &-bulk-actions {\n text-align: right;\n padding: 0 1em;\n min-height: 2em;\n\n button {\n width: 10em;\n }\n }\n\n &-domain-mute-form {\n padding: 1em;\n display: flex;\n flex-direction: column;\n\n button {\n align-self: flex-end;\n margin-top: 1em;\n width: 10em;\n }\n }\n\n .setting-subitem {\n margin-left: 1.75em;\n }\n\n .profile-fields {\n display: flex;\n\n & > .emoji-input {\n flex: 1 1 auto;\n margin: 0 0.2em 0.5em;\n min-width: 0;\n }\n\n .delete-field {\n width: 20px;\n align-self: center;\n margin: 0 0.2em 0.5em;\n padding: 0 0.5em;\n }\n }\n}\n","\n.css-unit-input, .css-unit-input select {\n margin-left: 0.5em;\n width: 4em !important;\n max-width: 4em !important;\n min-width: 4em !important;\n}\n","\n.column-settings {\n display: flex;\n justify-content: space-evenly;\n flex-wrap: wrap;\n}\n.column-settings .size-label {\n display: block;\n margin-bottom: 0.5em;\n margin-top: 0.5em;\n}\n","@import '../../_variables.scss';\n\n.color-input {\n display: inline-flex;\n\n &-field.input {\n display: inline-flex;\n flex: 0 0 0;\n max-width: 9em;\n align-items: stretch;\n padding: .2em 8px;\n\n input {\n background: none;\n color: $fallback--lightText;\n color: var(--inputText, $fallback--lightText);\n border: none;\n padding: 0;\n margin: 0;\n\n &.textColor {\n flex: 1 0 3em;\n min-width: 3em;\n padding: 0;\n }\n\n &.nativeColor {\n flex: 0 0 2em;\n min-width: 2em;\n align-self: stretch;\n min-height: 100%;\n }\n }\n .computedIndicator,\n .transparentIndicator {\n flex: 0 0 2em;\n min-width: 2em;\n align-self: stretch;\n min-height: 100%;\n }\n .transparentIndicator {\n // forgot to install counter-strike source, ooops\n background-color: #FF00FF;\n position: relative;\n &::before, &::after {\n display: block;\n content: '';\n background-color: #000000;\n position: absolute;\n height: 50%;\n width: 50%;\n }\n &::after {\n top: 0;\n left: 0;\n }\n &::before {\n bottom: 0;\n right: 0;\n }\n }\n }\n\n .label {\n flex: 1 1 auto;\n }\n\n}\n","\n.color-control {\n input.text-input {\n max-width: 7em;\n flex: 1;\n }\n}\n","\n@import '../../_variables.scss';\n.shadow-control {\n display: flex;\n flex-wrap: wrap;\n justify-content: center;\n margin-bottom: 1em;\n\n .shadow-preview-container,\n .shadow-tweak {\n margin: 5px 6px 0 0;\n }\n .shadow-preview-container {\n flex: 0;\n display: flex;\n flex-wrap: wrap;\n\n $side: 15em;\n\n input[type=number] {\n width: 5em;\n min-width: 2em;\n }\n .x-shift-control,\n .y-shift-control {\n display: flex;\n flex: 0;\n\n &[disabled=disabled] *{\n opacity: .5\n }\n\n }\n\n .x-shift-control {\n align-items: flex-start;\n }\n\n .x-shift-control .wrap,\n input[type=range] {\n margin: 0;\n width: $side;\n height: 2em;\n }\n .y-shift-control {\n flex-direction: column;\n align-items: flex-end;\n .wrap {\n width: 2em;\n height: $side;\n }\n input[type=range] {\n transform-origin: 1em 1em;\n transform: rotate(90deg);\n }\n }\n .preview-window {\n flex: 1;\n background-color: #999999;\n display: flex;\n align-items: center;\n justify-content: center;\n background-image:\n linear-gradient(45deg, #666666 25%, transparent 25%),\n linear-gradient(-45deg, #666666 25%, transparent 25%),\n linear-gradient(45deg, transparent 75%, #666666 75%),\n linear-gradient(-45deg, transparent 75%, #666666 75%);\n background-size: 20px 20px;\n background-position:0 0, 0 10px, 10px -10px, -10px 0;\n\n border-radius: $fallback--inputRadius;\n border-radius: var(--inputRadius, $fallback--inputRadius);\n\n .preview-block {\n width: 33%;\n height: 33%;\n background-color: $fallback--bg;\n background-color: var(--bg, $fallback--bg);\n border-radius: $fallback--panelRadius;\n border-radius: var(--panelRadius, $fallback--panelRadius);\n }\n }\n }\n\n .shadow-tweak {\n flex: 1;\n min-width: 280px;\n\n .id-control {\n align-items: stretch;\n\n .shadow-switcher {\n flex: 1;\n }\n\n .shadow-switcher, .btn {\n min-width: 1px;\n margin-right: 5px;\n }\n\n .btn {\n padding: 0 .4em;\n margin: 0 .1em;\n }\n }\n }\n}\n","\n@import '../../_variables.scss';\n.font-control {\n input.custom-font {\n min-width: 10em;\n }\n &.custom {\n /* TODO Should make proper joiners... */\n .font-switcher {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n }\n .custom-font {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n }\n }\n}\n","\n.contrast-ratio {\n display: flex;\n justify-content: flex-end;\n\n margin-top: -4px;\n margin-bottom: 5px;\n\n .label {\n margin-right: 1em;\n }\n\n .rating {\n display: inline-block;\n text-align: center;\n margin-left: 0.5em;\n }\n}\n","\n.preview-container {\n position: relative;\n}\n.underlay-preview {\n position: absolute;\n top: 0;\n bottom: 0;\n left: 10px;\n right: 10px;\n}\n","@import 'src/_variables.scss';\n.theme-tab {\n padding-bottom: 2em;\n .theme-warning {\n display: flex;\n align-items: baseline;\n margin-bottom: .5em;\n .buttons {\n .btn {\n margin-bottom: .5em;\n }\n }\n }\n .preset-switcher {\n margin-right: 1em;\n }\n\n .style-control {\n display: flex;\n align-items: baseline;\n margin-bottom: 5px;\n\n .label {\n flex: 1;\n }\n\n &.disabled {\n input, select {\n opacity: .5\n }\n }\n\n .opt {\n margin: .5em;\n }\n\n .color-input {\n flex: 0 0 0;\n }\n\n input, select {\n min-width: 3em;\n margin: 0;\n flex: 0;\n\n &[type=number] {\n min-width: 5em;\n }\n\n &[type=range] {\n flex: 1;\n min-width: 3em;\n align-self: flex-start;\n }\n }\n }\n\n .reset-container {\n flex-wrap: wrap;\n }\n\n .fonts-container,\n .reset-container,\n .apply-container,\n .radius-container,\n .color-container,\n {\n display: flex;\n }\n\n .fonts-container,\n .radius-container {\n flex-direction: column;\n }\n\n .color-container{\n > h4 {\n width: 99%;\n }\n flex-wrap: wrap;\n justify-content: space-between;\n }\n\n .fonts-container,\n .color-container,\n .shadow-container,\n .radius-container,\n .presets-container {\n margin: 1em 1em 0;\n }\n\n .tab-header {\n display: flex;\n justify-content: space-between;\n align-items: baseline;\n width: 100%;\n min-height: 30px;\n margin-bottom: 1em;\n\n p {\n flex: 1;\n margin: 0;\n margin-right: .5em;\n }\n }\n\n .tab-header-buttons {\n display: flex;\n flex-direction: column;\n\n .btn {\n min-width: 1px;\n flex: 0 auto;\n padding: 0 1em;\n margin-bottom: .5em;\n }\n }\n\n .shadow-selector {\n .override {\n flex: 1;\n margin-left: .5em;\n }\n .select-container {\n margin-top: -4px;\n margin-bottom: -3px;\n }\n }\n\n .save-load,\n .save-load-options {\n display: flex;\n justify-content: center;\n align-items: baseline;\n flex-wrap: wrap;\n\n .presets,\n .import-export {\n margin-bottom: .5em;\n }\n\n .import-export {\n display: flex;\n }\n\n .override {\n margin-left: .5em;\n }\n }\n\n .save-load-options {\n flex-wrap: wrap;\n margin-top: .5em;\n justify-content: center;\n .keep-option {\n margin: 0 .5em .5em;\n min-width: 25%;\n }\n }\n\n .preview-container {\n border-top: 1px dashed;\n border-bottom: 1px dashed;\n border-color: $fallback--border;\n border-color: var(--border, $fallback--border);\n margin: 1em 0;\n padding: 1em;\n background-color: var(--wallpaper);\n background-image: var(--body-background-image);\n background-size: cover;\n background-position: 50% 50%;\n\n .dummy {\n .post {\n font-family: var(--postFont);\n display: flex;\n\n .content {\n flex: 1;\n\n h4 {\n margin-bottom: .25em;\n }\n\n .icons {\n margin-top: .5em;\n display: flex;\n\n i {\n margin-right: 1em;\n }\n }\n }\n }\n\n .after-post {\n margin-top: 1em;\n display: flex;\n align-items: center;\n }\n\n .avatar, .avatar-alt{\n background: linear-gradient(135deg, #b8e1fc 0%,#a9d2f3 10%,#90bae4 25%,#90bcea 37%,#90bff0 50%,#6ba8e5 51%,#a2daf5 83%,#bdf3fd 100%);\n color: black;\n font-family: sans-serif;\n text-align: center;\n margin-right: 1em;\n }\n\n .avatar-alt {\n flex: 0 auto;\n margin-left: 28px;\n font-size: 12px;\n min-width: 20px;\n min-height: 20px;\n line-height: 20px;\n border-radius: $fallback--avatarAltRadius;\n border-radius: var(--avatarAltRadius, $fallback--avatarAltRadius);\n }\n\n .avatar {\n flex: 0 auto;\n width: 48px;\n height: 48px;\n font-size: 14px;\n line-height: 48px;\n }\n\n .actions {\n display: flex;\n align-items: baseline;\n\n .checkbox {\n display: inline-flex;\n align-items: baseline;\n margin-right: 1em;\n flex: 1;\n }\n }\n\n .separator {\n margin: 1em;\n border-bottom: 1px solid;\n border-color: $fallback--border;\n border-color: var(--border, $fallback--border);\n }\n\n .btn {\n min-width: 3em;\n }\n }\n }\n\n .radius-item,\n .color-item {\n min-width: 20em;\n margin: 5px 6px 0 0;\n display:flex;\n flex-direction: column;\n flex: 1 1 0;\n\n &.wide {\n min-width: 60%\n }\n\n &:not(.wide):nth-child(2n+1) {\n margin-right: 7px;\n\n }\n\n .color, .opacity {\n display:flex;\n align-items: baseline;\n }\n }\n\n .radius-item {\n flex-basis: auto;\n }\n\n .theme-radius-rn,\n .theme-color-cl {\n border: 0;\n box-shadow: none;\n background: transparent;\n color: var(--faint, $fallback--faint);\n align-self: stretch;\n }\n\n .theme-color-cl,\n .theme-radius-in,\n .theme-color-in {\n margin-left: 4px;\n }\n\n .theme-radius-in {\n min-width: 1em;\n }\n\n .theme-radius-in {\n max-width: 7em;\n flex: 1;\n }\n\n .theme-radius-lb{\n max-width: 50em;\n }\n\n .theme-preview-content {\n padding: 20px;\n }\n\n .btn {\n margin-left: .25em;\n margin-right: .25em;\n }\n}\n\n.extra-content {\n .apply-container {\n display: flex;\n flex-direction: row;\n justify-content: space-around;\n flex-grow: 1;\n\n .btn {\n flex-grow: 1;\n min-height: 2em;\n min-width: 0;\n max-width: 10em;\n padding: 0;\n }\n }\n}\n","@import 'src/_variables.scss';\n.settings_tab-switcher {\n height: 100%;\n\n .setting-item {\n border-bottom: 2px solid var(--fg, $fallback--fg);\n margin: 1em 1em 1.4em;\n padding-bottom: 1.4em;\n\n > div,\n > label {\n display: block;\n margin-bottom: .5em;\n &:last-child {\n margin-bottom: 0;\n }\n }\n\n .select-multiple {\n display: flex;\n\n .option-list {\n margin: 0;\n padding-left: .5em;\n }\n }\n\n &:last-child {\n border-bottom: none;\n padding-bottom: 0;\n margin-bottom: 1em;\n }\n\n select {\n min-width: 10em;\n }\n\n textarea {\n width: 100%;\n max-width: 100%;\n height: 100px;\n }\n\n .unavailable,\n .unavailable svg {\n color: var(--cRed, $fallback--cRed);\n color: $fallback--cRed;\n }\n\n .number-input {\n max-width: 6em;\n }\n }\n}\n"],"names":[],"sourceRoot":""} \ No newline at end of file diff --git a/priv/static/static/css/1325.715a7f40cdd53f460ef4.css b/priv/static/static/css/1325.715a7f40cdd53f460ef4.css new file mode 100644 index 000000000..29e3e12d8 Binary files /dev/null and b/priv/static/static/css/1325.715a7f40cdd53f460ef4.css differ diff --git a/priv/static/static/css/1325.715a7f40cdd53f460ef4.css.map b/priv/static/static/css/1325.715a7f40cdd53f460ef4.css.map new file mode 100644 index 000000000..4e392f2f5 --- /dev/null +++ b/priv/static/static/css/1325.715a7f40cdd53f460ef4.css.map @@ -0,0 +1 @@ +{"version":3,"file":"static/css/1325.715a7f40cdd53f460ef4.css","mappings":"AACA,uBAGE,mBAFA,aACA,YAEA,uBACA,4BACE,YACA,iBCPJ,gBACE,gBAEA,2DAEE,qBACA,iBACA,iEACE,mBAEF,mFACE,gBAKF,2CASE,8CAEA,yBAXF,2CAeI,yCAKN,sCAOE,YADA,eALA,gBACA,qBAEA,wBADA,uCAEA,YAEA,CAEA,yBATF,sCAWI,YADA,eACA,EAGF,kDACE,YACA,kBAEA,uDACE,eACA,eACA,cAKN,iCACE,aACA,mCACE,kBAGF,gDACE,aACA","sources":["webpack://pleroma_fe/./src/components/async_component_error/async_component_error.vue","webpack://pleroma_fe/./src/components/settings_modal/settings_modal.scss"],"sourcesContent":["\n.async-component-error {\n display: flex;\n height: 100%;\n align-items: center;\n justify-content: center;\n .btn {\n margin: .5em;\n padding: .5em 2em;\n }\n}\n","@import 'src/_variables.scss';\n.settings-modal {\n overflow: hidden;\n\n .setting-list,\n .option-list {\n list-style-type: none;\n padding-left: 2em;\n li {\n margin-bottom: 0.5em;\n }\n .suboptions {\n margin-top: 0.3em\n }\n }\n\n &.peek {\n .settings-modal-panel {\n /* Explanation:\n * Modal is positioned vertically centered.\n * 100vh - 100% = Distance between modal's top+bottom boundaries and screen\n * (100vh - 100%) / 2 = Distance between bottom (or top) boundary and screen\n * + 100% - we move modal completely off-screen, it's top boundary touches\n * bottom of the screen\n * - 50px - leaving tiny amount of space so that titlebar + tiny amount of modal is visible\n */\n transform: translateY(calc(((100vh - 100%) / 2 + 100%) - 50px));\n\n @media all and (max-width: 800px) {\n /* For mobile, the modal takes 100% of the available screen.\n This ensures the minimized modal is always 50px above the browser bottom bar regardless of whether or not it is visible.\n */\n transform: translateY(calc(100% - 50px));\n }\n }\n }\n\n .settings-modal-panel {\n overflow: hidden;\n transition: transform;\n transition-timing-function: ease-in-out;\n transition-duration: 300ms;\n width: 1000px;\n max-width: 90vw;\n height: 90vh;\n\n @media all and (max-width: 800px) {\n max-width: 100vw;\n height: 100%;\n }\n\n >.panel-body {\n height: 100%;\n overflow-y: hidden;\n\n .btn {\n min-height: 2em;\n min-width: 10em;\n padding: 0 2em;\n }\n }\n }\n\n .settings-footer {\n display: flex;\n >* {\n margin-right: 0.5em;\n }\n\n .extra-content {\n display: flex;\n flex-grow: 1;\n }\n }\n}\n"],"names":[],"sourceRoot":""} \ No newline at end of file diff --git a/priv/static/static/css/2.0778a6a864a1307a6c41.css b/priv/static/static/css/2.0778a6a864a1307a6c41.css deleted file mode 100644 index a33585ef1..000000000 Binary files a/priv/static/static/css/2.0778a6a864a1307a6c41.css and /dev/null differ diff --git a/priv/static/static/css/2.0778a6a864a1307a6c41.css.map b/priv/static/static/css/2.0778a6a864a1307a6c41.css.map deleted file mode 100644 index 28cd8ba54..000000000 --- a/priv/static/static/css/2.0778a6a864a1307a6c41.css.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["webpack:///./src/hocs/with_subscription/with_subscription.scss"],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA,C","file":"static/css/2.0778a6a864a1307a6c41.css","sourcesContent":[".with-subscription-loading {\n padding: 10px;\n text-align: center;\n}\n.with-subscription-loading .error {\n font-size: 14px;\n}"],"sourceRoot":""} \ No newline at end of file diff --git a/priv/static/static/css/3.b2603a50868c68a1c192.css b/priv/static/static/css/3.b2603a50868c68a1c192.css deleted file mode 100644 index 4cec5785b..000000000 Binary files a/priv/static/static/css/3.b2603a50868c68a1c192.css and /dev/null differ diff --git a/priv/static/static/css/3.b2603a50868c68a1c192.css.map b/priv/static/static/css/3.b2603a50868c68a1c192.css.map deleted file mode 100644 index 805e7dc04..000000000 --- a/priv/static/static/css/3.b2603a50868c68a1c192.css.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["webpack:///./node_modules/cropperjs/dist/cropper.css"],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,wCAAwC;AACxC;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA","file":"static/css/3.b2603a50868c68a1c192.css","sourcesContent":["/*!\n * Cropper.js v1.4.3\n * https://fengyuanchen.github.io/cropperjs\n *\n * Copyright 2015-present Chen Fengyuan\n * Released under the MIT license\n *\n * Date: 2018-10-24T13:07:11.429Z\n */\n\n.cropper-container {\n direction: ltr;\n font-size: 0;\n line-height: 0;\n position: relative;\n -ms-touch-action: none;\n touch-action: none;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n}\n\n.cropper-container img {\n display: block;\n height: 100%;\n image-orientation: 0deg;\n max-height: none !important;\n max-width: none !important;\n min-height: 0 !important;\n min-width: 0 !important;\n width: 100%;\n}\n\n.cropper-wrap-box,\n.cropper-canvas,\n.cropper-drag-box,\n.cropper-crop-box,\n.cropper-modal {\n bottom: 0;\n left: 0;\n position: absolute;\n right: 0;\n top: 0;\n}\n\n.cropper-wrap-box,\n.cropper-canvas {\n overflow: hidden;\n}\n\n.cropper-drag-box {\n background-color: #fff;\n opacity: 0;\n}\n\n.cropper-modal {\n background-color: #000;\n opacity: .5;\n}\n\n.cropper-view-box {\n display: block;\n height: 100%;\n outline-color: rgba(51, 153, 255, 0.75);\n outline: 1px solid #39f;\n overflow: hidden;\n width: 100%;\n}\n\n.cropper-dashed {\n border: 0 dashed #eee;\n display: block;\n opacity: .5;\n position: absolute;\n}\n\n.cropper-dashed.dashed-h {\n border-bottom-width: 1px;\n border-top-width: 1px;\n height: calc(100% / 3);\n left: 0;\n top: calc(100% / 3);\n width: 100%;\n}\n\n.cropper-dashed.dashed-v {\n border-left-width: 1px;\n border-right-width: 1px;\n height: 100%;\n left: calc(100% / 3);\n top: 0;\n width: calc(100% / 3);\n}\n\n.cropper-center {\n display: block;\n height: 0;\n left: 50%;\n opacity: .75;\n position: absolute;\n top: 50%;\n width: 0;\n}\n\n.cropper-center:before,\n.cropper-center:after {\n background-color: #eee;\n content: ' ';\n display: block;\n position: absolute;\n}\n\n.cropper-center:before {\n height: 1px;\n left: -3px;\n top: 0;\n width: 7px;\n}\n\n.cropper-center:after {\n height: 7px;\n left: 0;\n top: -3px;\n width: 1px;\n}\n\n.cropper-face,\n.cropper-line,\n.cropper-point {\n display: block;\n height: 100%;\n opacity: .1;\n position: absolute;\n width: 100%;\n}\n\n.cropper-face {\n background-color: #fff;\n left: 0;\n top: 0;\n}\n\n.cropper-line {\n background-color: #39f;\n}\n\n.cropper-line.line-e {\n cursor: ew-resize;\n right: -3px;\n top: 0;\n width: 5px;\n}\n\n.cropper-line.line-n {\n cursor: ns-resize;\n height: 5px;\n left: 0;\n top: -3px;\n}\n\n.cropper-line.line-w {\n cursor: ew-resize;\n left: -3px;\n top: 0;\n width: 5px;\n}\n\n.cropper-line.line-s {\n bottom: -3px;\n cursor: ns-resize;\n height: 5px;\n left: 0;\n}\n\n.cropper-point {\n background-color: #39f;\n height: 5px;\n opacity: .75;\n width: 5px;\n}\n\n.cropper-point.point-e {\n cursor: ew-resize;\n margin-top: -3px;\n right: -3px;\n top: 50%;\n}\n\n.cropper-point.point-n {\n cursor: ns-resize;\n left: 50%;\n margin-left: -3px;\n top: -3px;\n}\n\n.cropper-point.point-w {\n cursor: ew-resize;\n left: -3px;\n margin-top: -3px;\n top: 50%;\n}\n\n.cropper-point.point-s {\n bottom: -3px;\n cursor: s-resize;\n left: 50%;\n margin-left: -3px;\n}\n\n.cropper-point.point-ne {\n cursor: nesw-resize;\n right: -3px;\n top: -3px;\n}\n\n.cropper-point.point-nw {\n cursor: nwse-resize;\n left: -3px;\n top: -3px;\n}\n\n.cropper-point.point-sw {\n bottom: -3px;\n cursor: nesw-resize;\n left: -3px;\n}\n\n.cropper-point.point-se {\n bottom: -3px;\n cursor: nwse-resize;\n height: 20px;\n opacity: 1;\n right: -3px;\n width: 20px;\n}\n\n@media (min-width: 768px) {\n .cropper-point.point-se {\n height: 15px;\n width: 15px;\n }\n}\n\n@media (min-width: 992px) {\n .cropper-point.point-se {\n height: 10px;\n width: 10px;\n }\n}\n\n@media (min-width: 1200px) {\n .cropper-point.point-se {\n height: 5px;\n opacity: .75;\n width: 5px;\n }\n}\n\n.cropper-point.point-se:before {\n background-color: #39f;\n bottom: -50%;\n content: ' ';\n display: block;\n height: 200%;\n opacity: 0;\n position: absolute;\n right: -50%;\n width: 200%;\n}\n\n.cropper-invisible {\n opacity: 0;\n}\n\n.cropper-bg {\n background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQAQMAAAAlPW0iAAAAA3NCSVQICAjb4U/gAAAABlBMVEXMzMz////TjRV2AAAACXBIWXMAAArrAAAK6wGCiw1aAAAAHHRFWHRTb2Z0d2FyZQBBZG9iZSBGaXJld29ya3MgQ1M26LyyjAAAABFJREFUCJlj+M/AgBVhF/0PAH6/D/HkDxOGAAAAAElFTkSuQmCC');\n}\n\n.cropper-hide {\n display: block;\n height: 0;\n position: absolute;\n width: 0;\n}\n\n.cropper-hidden {\n display: none !important;\n}\n\n.cropper-move {\n cursor: move;\n}\n\n.cropper-crop {\n cursor: crosshair;\n}\n\n.cropper-disabled .cropper-drag-box,\n.cropper-disabled .cropper-face,\n.cropper-disabled .cropper-line,\n.cropper-disabled .cropper-point {\n cursor: not-allowed;\n}\n"],"sourceRoot":""} \ No newline at end of file diff --git a/priv/static/static/css/6464.2fa2e5f1fa93842c62b1.css b/priv/static/static/css/6464.2fa2e5f1fa93842c62b1.css new file mode 100644 index 000000000..ed8fef7cc Binary files /dev/null and b/priv/static/static/css/6464.2fa2e5f1fa93842c62b1.css differ diff --git a/priv/static/static/css/6464.2fa2e5f1fa93842c62b1.css.map b/priv/static/static/css/6464.2fa2e5f1fa93842c62b1.css.map new file mode 100644 index 000000000..3812ecde4 --- /dev/null +++ b/priv/static/static/css/6464.2fa2e5f1fa93842c62b1.css.map @@ -0,0 +1 @@ +{"version":3,"file":"static/css/6464.2fa2e5f1fa93842c62b1.css","mappings":"AACA,oBACE,gBAGF,yBACE,mBAAoB,CACpB,sBAAuB,CACvB,oBAAqB,CAErB,eACA,kBACA,qBAEA,wBADA,sCACA,CAEA,+BACE,eACA,iBAGF,yBAhBF,yBAoBI,aAGF,0BAvBF,yBAwBI,cAGF,kCAGE,8CACA,4CAFA,wCADA,eAGA,CAGE,iDACE,oCAKN,qCAGE,gCADA,mBADA,oBAEA,CAGF,uCAGE,eACA,2BAFA,kBADA,UAGA,CAGF,sCAWE,gDAJA,YANA,qCACA,2CAUA,oBAHA,kBACA,kBAPA,+DAEA,wBADA,uCAEA,WAEA,UAIA,CAGF,qCACE,+BAGF,wCACE,kCAGF,2CAKE,6GACE,CADF,sGADA,gBAHA,qCAEA,wBADA,kCAIE,CAIJ,qCACE,iBAGF,+BAKE,uCAEA,4CACE,YAEA,yBADA,UACA,CAGF,iDACE","sources":["webpack://pleroma_fe/./src/components/update_notification/update_notification.scss"],"sourcesContent":["@import 'src/_variables.scss';\n.UpdateNotification {\n overflow: hidden;\n}\n\n.UpdateNotificationModal {\n --__top-fringe: 15em; // how much pleroma-tan should stick her head above\n --__bottom-fringe: 80em; // just reserving as much as we can, number is mostly irrelevant\n --__right-fringe: 8em;\n\n font-size: 15px;\n position: relative;\n transition: transform;\n transition-timing-function: ease-in-out;\n transition-duration: 500ms;\n\n .text {\n max-width: 40em;\n padding-left: 1em;\n }\n\n @media all and (max-width: 800px) {\n /* For mobile, the modal takes 100% of the available screen.\n This ensures the minimized modal is always 50px above the browser bottom bar regardless of whether or not it is visible.\n */\n width: 100vw;\n }\n\n @media all and (max-height: 600px) {\n display: none;\n }\n\n .content {\n overflow: hidden;\n margin-top: calc(-1 * var(--__top-fringe));\n margin-bottom: calc(-1 * var(--__bottom-fringe));\n margin-right: calc(-1 * var(--__right-fringe));\n\n &.-noImage {\n .text {\n padding-right: var(--__right-fringe);\n }\n }\n }\n\n .panel-body {\n border-width: 0 0 1px 0;\n border-style: solid;\n border-color: var(--border, $fallback--border);\n }\n\n .panel-footer {\n z-index: 22;\n position: relative;\n border-width: 0;\n grid-template-columns: auto;\n }\n\n .pleroma-tan {\n object-fit: cover;\n object-position: top;\n transition: position, left, right, top, bottom, max-width, max-height;\n transition-timing-function: ease-in-out;\n transition-duration: 500ms;\n width: 25em;\n float: right;\n z-index: 20;\n position: relative;\n shape-margin: 0.5em;\n filter: drop-shadow(5px 5px 10px rgba(0,0,0,0.5));\n pointer-events: none;\n }\n\n .spacer-top {\n min-height: var(--__top-fringe);\n }\n\n .spacer-bottom {\n min-height: var(--__bottom-fringe);\n }\n\n .extra-info-group {\n transition: max-height, padding, height;\n transition-timing-function: ease-in;\n transition-duration: 700ms;\n max-height: 70vh;\n mask:\n linear-gradient(to top, white, transparent) bottom/100% 2px no-repeat,\n linear-gradient(to top, white, white);\n }\n\n .art-credit {\n text-align: right;\n }\n\n &.-peek {\n /* Explanation:\n * 100vh - 100% = Distance between modal's top+bottom boundaries and screen\n * (100vh - 100%) / 2 = Distance between bottom (or top) boundary and screen\n */\n transform: translateY(calc(((100vh - 100%) / 2)));\n\n .pleroma-tan {\n float: right;\n z-index: 10;\n shape-image-threshold: 0.7;\n }\n\n .extra-info-group {\n max-height: 0;\n }\n }\n}\n"],"names":[],"sourceRoot":""} \ No newline at end of file diff --git a/priv/static/static/css/8532.88b90ac86f3060a3144e.css b/priv/static/static/css/8532.88b90ac86f3060a3144e.css new file mode 100644 index 000000000..7a36bfd7a Binary files /dev/null and b/priv/static/static/css/8532.88b90ac86f3060a3144e.css differ diff --git a/priv/static/static/css/8532.88b90ac86f3060a3144e.css.map b/priv/static/static/css/8532.88b90ac86f3060a3144e.css.map new file mode 100644 index 000000000..271f4c7e9 --- /dev/null +++ b/priv/static/static/css/8532.88b90ac86f3060a3144e.css.map @@ -0,0 +1 @@ +{"version":3,"file":"static/css/8532.88b90ac86f3060a3144e.css","mappings":"AAGA,gBACE,WACA,0BACE,iBACA,kDACE,aACA,eACA,cACA,2DACE,aACA,cAGA,YAFA,WACA,UACA,CACA,+DACE,YACA,qEACE","sources":["webpack://pleroma_fe/./src/components/sticker_picker/sticker_picker.vue"],"sourcesContent":["\n@import '../../_variables.scss';\n\n.sticker-picker {\n width: 100%;\n .contents {\n min-height: 250px;\n .sticker-picker-content {\n display: flex;\n flex-wrap: wrap;\n padding: 0 4px;\n .sticker {\n display: flex;\n flex: 1 1 auto;\n margin: 4px;\n width: 56px;\n height: 56px;\n img {\n height: 100%;\n &:hover {\n filter: drop-shadow(0 0 5px var(--accent, $fallback--link));\n }\n }\n }\n }\n }\n}\n\n"],"names":[],"sourceRoot":""} \ No newline at end of file diff --git a/priv/static/static/css/app.7d2d223f75c3a14b0991.css b/priv/static/static/css/app.7d2d223f75c3a14b0991.css deleted file mode 100644 index d79cf910f..000000000 Binary files a/priv/static/static/css/app.7d2d223f75c3a14b0991.css and /dev/null differ diff --git a/priv/static/static/css/app.7d2d223f75c3a14b0991.css.map b/priv/static/static/css/app.7d2d223f75c3a14b0991.css.map deleted file mode 100644 index ce9a6fa12..000000000 --- a/priv/static/static/css/app.7d2d223f75c3a14b0991.css.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["webpack:///./src/components/rich_content/rich_content.scss","webpack:///./src/components/tab_switcher/tab_switcher.scss","webpack:///./src/hocs/with_load_more/with_load_more.scss"],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,C;ACnDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,C;ACtOA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,C","file":"static/css/app.7d2d223f75c3a14b0991.css","sourcesContent":[".RichContent blockquote {\n margin: 0.2em 0 0.2em 2em;\n font-style: italic;\n}\n.RichContent pre {\n overflow: auto;\n}\n.RichContent code,\n.RichContent samp,\n.RichContent kbd,\n.RichContent var,\n.RichContent pre {\n font-family: var(--postCodeFont, monospace);\n}\n.RichContent p {\n margin: 0 0 1em 0;\n}\n.RichContent p:last-child {\n margin: 0 0 0 0;\n}\n.RichContent h1 {\n font-size: 1.1em;\n line-height: 1.2em;\n margin: 1.4em 0;\n}\n.RichContent h2 {\n font-size: 1.1em;\n margin: 1em 0;\n}\n.RichContent h3 {\n font-size: 1em;\n margin: 1.2em 0;\n}\n.RichContent h4 {\n margin: 1.1em 0;\n}\n.RichContent .img {\n display: inline-block;\n}\n.RichContent .emoji {\n display: inline-block;\n width: var(--emoji-size, 32px);\n height: var(--emoji-size, 32px);\n}\n.RichContent .img,\n.RichContent video {\n max-width: 100%;\n max-height: 400px;\n vertical-align: middle;\n -o-object-fit: contain;\n object-fit: contain;\n}",".tab-switcher {\n display: -ms-flexbox;\n display: flex;\n}\n.tab-switcher .tab-icon {\n margin: 0.2em auto;\n display: block;\n}\n.tab-switcher.top-tabs {\n -ms-flex-direction: column;\n flex-direction: column;\n}\n.tab-switcher.top-tabs > .tabs {\n width: 100%;\n overflow-y: hidden;\n overflow-x: auto;\n padding-top: 5px;\n -ms-flex-direction: row;\n flex-direction: row;\n}\n.tab-switcher.top-tabs > .tabs::after, .tab-switcher.top-tabs > .tabs::before {\n content: \"\";\n -ms-flex: 1 1 auto;\n flex: 1 1 auto;\n border-bottom: 1px solid;\n border-bottom-color: #222;\n border-bottom-color: var(--border, #222);\n}\n.tab-switcher.top-tabs > .tabs .tab-wrapper {\n height: 28px;\n}\n.tab-switcher.top-tabs > .tabs .tab-wrapper:not(.active)::after {\n left: 0;\n right: 0;\n bottom: 0;\n border-bottom: 1px solid;\n border-bottom-color: #222;\n border-bottom-color: var(--border, #222);\n}\n.tab-switcher.top-tabs > .tabs .tab {\n width: 100%;\n min-width: 1px;\n border-bottom-left-radius: 0;\n border-bottom-right-radius: 0;\n padding-bottom: 99px;\n margin-bottom: -93px;\n}\n.tab-switcher.top-tabs .contents.scrollable-tabs {\n -ms-flex-preferred-size: 0;\n flex-basis: 0;\n}\n.tab-switcher.side-tabs {\n -ms-flex-direction: row;\n flex-direction: row;\n}\n@media all and (max-width: 800px) {\n .tab-switcher.side-tabs {\n overflow-x: auto;\n }\n}\n.tab-switcher.side-tabs > .contents {\n -ms-flex: 1 1 auto;\n flex: 1 1 auto;\n}\n.tab-switcher.side-tabs > .tabs {\n -ms-flex: 0 0 auto;\n flex: 0 0 auto;\n overflow-y: auto;\n overflow-x: hidden;\n -ms-flex-direction: column;\n flex-direction: column;\n}\n.tab-switcher.side-tabs > .tabs::after, .tab-switcher.side-tabs > .tabs::before {\n -ms-flex-negative: 0;\n flex-shrink: 0;\n -ms-flex-preferred-size: 0.5em;\n flex-basis: 0.5em;\n content: \"\";\n border-right: 1px solid;\n border-right-color: #222;\n border-right-color: var(--border, #222);\n}\n.tab-switcher.side-tabs > .tabs::after {\n -ms-flex-positive: 1;\n flex-grow: 1;\n}\n.tab-switcher.side-tabs > .tabs::before {\n -ms-flex-positive: 0;\n flex-grow: 0;\n}\n.tab-switcher.side-tabs > .tabs .tab-wrapper {\n min-width: 10em;\n display: -ms-flexbox;\n display: flex;\n -ms-flex-direction: column;\n flex-direction: column;\n}\n@media all and (max-width: 800px) {\n .tab-switcher.side-tabs > .tabs .tab-wrapper {\n min-width: 4em;\n }\n}\n.tab-switcher.side-tabs > .tabs .tab-wrapper:not(.active)::after {\n top: 0;\n right: 0;\n bottom: 0;\n border-right: 1px solid;\n border-right-color: #222;\n border-right-color: var(--border, #222);\n}\n.tab-switcher.side-tabs > .tabs .tab-wrapper::before {\n -ms-flex: 0 0 6px;\n flex: 0 0 6px;\n content: \"\";\n border-right: 1px solid;\n border-right-color: #222;\n border-right-color: var(--border, #222);\n}\n.tab-switcher.side-tabs > .tabs .tab-wrapper:last-child .tab {\n margin-bottom: 0;\n}\n.tab-switcher.side-tabs > .tabs .tab {\n -ms-flex: 1;\n flex: 1;\n box-sizing: content-box;\n min-width: 10em;\n min-width: 1px;\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n padding-left: 1em;\n padding-right: calc(1em + 200px);\n margin-right: -200px;\n margin-left: 1em;\n}\n@media all and (max-width: 800px) {\n .tab-switcher.side-tabs > .tabs .tab {\n padding-left: 0.25em;\n padding-right: calc(.25em + 200px);\n margin-right: calc(.25em - 200px);\n margin-left: 0.25em;\n }\n .tab-switcher.side-tabs > .tabs .tab .text {\n display: none;\n }\n}\n.tab-switcher .contents {\n -ms-flex: 1 0 auto;\n flex: 1 0 auto;\n min-height: 0px;\n}\n.tab-switcher .contents .hidden {\n display: none;\n}\n.tab-switcher .contents .full-height:not(.hidden) {\n height: 100%;\n display: -ms-flexbox;\n display: flex;\n -ms-flex-direction: column;\n flex-direction: column;\n}\n.tab-switcher .contents .full-height:not(.hidden) > *:not(.mobile-label) {\n -ms-flex: 1;\n flex: 1;\n}\n.tab-switcher .contents.scrollable-tabs {\n overflow-y: auto;\n}\n.tab-switcher .tab {\n position: relative;\n white-space: nowrap;\n padding: 6px 1em;\n background-color: #182230;\n background-color: var(--tab, #182230);\n}\n.tab-switcher .tab, .tab-switcher .tab:active .tab-icon {\n color: #b9b9ba;\n color: var(--tabText, #b9b9ba);\n}\n.tab-switcher .tab:not(.active) {\n z-index: 4;\n}\n.tab-switcher .tab:not(.active):hover {\n z-index: 6;\n}\n.tab-switcher .tab.active {\n background: transparent;\n z-index: 5;\n color: #b9b9ba;\n color: var(--tabActiveText, #b9b9ba);\n}\n.tab-switcher .tab img {\n max-height: 26px;\n vertical-align: top;\n margin-top: -5px;\n}\n.tab-switcher .tabs {\n display: -ms-flexbox;\n display: flex;\n position: relative;\n box-sizing: border-box;\n}\n.tab-switcher .tabs::after, .tab-switcher .tabs::before {\n display: block;\n -ms-flex: 1 1 auto;\n flex: 1 1 auto;\n}\n.tab-switcher .tab-wrapper {\n position: relative;\n display: -ms-flexbox;\n display: flex;\n -ms-flex: 0 0 auto;\n flex: 0 0 auto;\n}\n.tab-switcher .tab-wrapper:not(.active)::after {\n content: \"\";\n position: absolute;\n z-index: 7;\n}\n.tab-switcher .mobile-label {\n padding-left: 0.3em;\n padding-bottom: 0.25em;\n margin-top: 0.5em;\n margin-left: 0.2em;\n margin-bottom: 0.25em;\n border-bottom: 1px solid var(--border, #222);\n}\n@media all and (min-width: 800px) {\n .tab-switcher .mobile-label {\n display: none;\n }\n}",".with-load-more-footer {\n padding: 10px;\n text-align: center;\n border-top: 1px solid;\n border-top-color: #222;\n border-top-color: var(--border, #222);\n}\n.with-load-more-footer .error {\n font-size: 14px;\n}\n.with-load-more-footer a {\n cursor: pointer;\n}"],"sourceRoot":""} \ No newline at end of file diff --git a/priv/static/static/css/app.86977512e08af1f17d78.css b/priv/static/static/css/app.86977512e08af1f17d78.css new file mode 100644 index 000000000..840bc45c1 Binary files /dev/null and b/priv/static/static/css/app.86977512e08af1f17d78.css differ diff --git a/priv/static/static/css/app.86977512e08af1f17d78.css.map b/priv/static/static/css/app.86977512e08af1f17d78.css.map new file mode 100644 index 000000000..ee55a6a63 --- /dev/null +++ b/priv/static/static/css/app.86977512e08af1f17d78.css.map @@ -0,0 +1 @@ +{"version":3,"file":"static/css/app.86977512e08af1f17d78.css","mappings":"AACA,YASE,mBAGA,uBACA,uCAPA,SACA,aACA,uBAJA,OAUA,SAAQ,CAJR,cACA,oBATA,eAGA,QAFA,MAFA,wBAaA,CAEA,cACE,oBAGF,6BAEE,gCADA,mBACA,CAGF,iBACE,UAIJ,mCACE,GACE,6BAEF,GACE,iCCjCJ,YACE,aACA,sBACA,aAEA,iBACE,eACA,WAGF,sBACE,SAGF,0BAIE,mBAFA,aACA,mBAEA,8BAJA,cAIA,CAGF,wBACE,aACA,sBAEA,gBAAe,CADf,sBACgB,CAGlB,yBACE,aAEA,YADA,YACA,CAEA,gCACE,WAGF,2BAGE,aAFA,aACA,aACA,CAIJ,mBAIE,uBADA,0BAEA,sCAJA,iBAIA,CClDJ,cACE,eAEA,iCACE,aCFF,sBAEE,eADA,qBAGA,iBADA,gBAEA,kBAEA,mCACE,aCFgB,CDGhB,+BEdN,UAIE,oBACA,kBAFF,iBAGE,qBAGE,mBADF,iBAEE,4BAeA,wBDpBW,sCCsBX,CANA,iBACA,wCACA,8BACA,8BACA,CAQA,sBAFA,iBACA,CAfA,WACA,CAFA,aACA,CAaA,eACA,CAXA,YACA,CAQA,iBACA,CAEA,eACA,CApBF,iBACE,QACA,CAaA,iBACA,CAdA,KACA,CAEA,oBACA,CAQA,kBACA,CATA,WAeA,yEAIA,UAEE,2BAEF,yBDpCc,uCCsCZ,gCAIJ,YACE,mEAEA,aD5Ca,+BC8CX,yEAIA,aDlDW,gCCiDb,WAGE,gBAKJ,gBACE,CCjEJ,wBAGA,oBACE,UAOA,qCACA,+BAFA,4BACA,CAFA,WACA,CAFA,cACA,CAFF,qDAME,kBAuBA,gDACA,qDACA,yDACA,kDACA,4DACA,2CAVA,wBF3Ba,wCE8Bb,CAlBF,iBFOsB,mCEQpB,CAGA,aF3Be,iCEmCf,wBAtBE,QACA,CAGA,qCACA,8BACA,CATF,UACE,CAGA,MACA,CAIA,oBARA,iBACA,CAGA,OACA,CAJA,KACA,CAGA,SAIA,gBAkBJ,aACE,CACA,aACA,CACA,eACA,gBACA,CALA,eACA,CACA,eACA,CAGA,mBADA,qDAEA,kCAKE,yBACA,yCAJF,QACE,eACA,gBAGA,+BAkBA,6CALA,4BACA,CAHA,WACA,gBACA,CACA,eACA,CAEA,qBACA,CAXA,UACA,CAHA,aACA,CAEA,eACA,CAOA,WACA,CAdF,gBACE,gBACA,CACA,kBACA,CAEA,kBACA,mBACA,CAIA,UAKA,wCAKI,kCADA,mBACA,CAFF,UAGE,0DAMA,iBADF,mBAEE,0EAOF,wDACA,6DACA,iEACA,qEACA,uDAPF,wBFvFgB,oDEyFd,gBAMA,kFAEE,sDADF,yCAEE,8CAaF,wBFpHS,sCEsHT,CAHA,eACA,CAEA,6BACA,8BACA,CAbF,oBACE,CAKA,gBACA,CAMA,mBARA,eACA,CAHA,cACA,gBACA,CAHA,cACA,CAIA,iBACA,CAPA,qBAaA,0EAGE,YADF,gBAEE,qDAGF,oBACE,iFAGE,YADF,aAEE,2GAQN,aF3Ia,6BE8IX,qDAGF,wBF9IgB,oDEgJd,cFlJW,6CEoJX,uDAGF,aFxJa,qCE0JX,sDAGF,aF7Ja,oCE+JX,CCnKN,aAKE,mBADA,oBAFA,cACA,gBAFA,iBAIA,CAEA,oBAGE,SACA,OAHA,kBAIA,QAHA,MAOA,yDAGF,qCALE,YACA,yCAFA,UASA,CAIA,6BACE,uCAOA,6BAIA,iBHhBoB,CGiBpB,uCAJA,WAPA,cAQA,cALA,eAEA,UAHA,cAOA,gBARA,kBAGA,SASA,wDADA,SACA,CAGF,mCACE,aAGF,mCACE,uDAGF,0BACE,qDAGF,gCACE,mBCrDN,cASE,oDAAsD,CACtD,gDAAkD,CAClD,oDAAsD,CACtD,wDAA0D,CAC1D,yCAA0C,CAR1C,wBJRa,CISb,wCACA,aJNe,CIOf,iCALA,aACA,sBAFA,gBADA,UAY2C,CAE3C,2BAGE,mBAFA,oBAKA,WAxBiC,CAoBjC,uBAKA,gBAFA,cAxBgC,CAuBhC,UAtBiC,CA0BjC,wCAGE,YADA,gBADA,eAIA,yCADA,UACA,CAIJ,uDAGE,mBADA,WACA,CAGF,8BACE,aACA,sBAGF,+BAEE,aADA,aACA,CAGF,uBACE,aACA,qBAGF,uBACE,aAEA,cADA,sBAEA,aAGF,0BAEE,aACA,mBAFA,YAGA,iBACA,gBAGF,4BACE,iBAGF,+BAKE,8DAJA,aACA,OAKA,cADA,gBACA,CAGF,yDAIE,qBADA,aADA,eAEA,CAEA,mEASE,mBAPA,eAMA,aALA,iBAGA,WAjG+B,CAkG/B,eAlG+B,CAgG/B,cAjG8B,CA6F9B,cAGA,UAKA,CAEA,qFACE,WACA,oBAGF,iFACE,wBAEA,yFACE,aJxGY,CIyGZ,+BAMR,8BACE,cAKA,6DACE,aAEA,cADA,sBAEA,aAEA,2EACE,UACA,oBACA,kBAMJ,4BAEE,cADA,WACA,CAEA,kCACE,WAIJ,4BACE,aAIA,wTAMA,2BACA,uBAHA,8EANA,cADA,kBAMA,6GAJA,+DAQA,CAEE,yCACE,wEAEF,4CACE,wEAKN,2BAEE,mBADA,aAEA,eAEA,qBADA,gBACA,CAEA,iCACE,gBAEA,QAAO,CADP,UACA,CAEA,0CACE,aAKN,0BAME,mBAHA,sBAOA,eANA,aAFA,WA9LoB,CAmMpB,uBAFA,gBAjMoB,CAoMpB,WAPA,UASA,CAEA,sDAGE,gBADA,eADA,wCAEA,CAEF,uDACE,eACA,gBCjNR,aACE,aACA,sBACA,kBAEA,+BACE,mBAGF,gCAME,eADA,gBAEA,iBAHA,kBAHA,kBAEA,QADA,KAKA,CAEA,wCACE,aLfW,CKgBX,0BAIJ,iCAGE,eAFA,kBACA,UACA,CAEA,sCACE,aAIJ,yCACE,cAGF,6BAKE,SAKA,UAHA,OANA,UAOA,gBANA,oBACA,kBAGA,QAFA,KAMA,CAGA,oCAGE,qBADA,8BADA,OAEA,CAKJ,oBACE,kBAGF,mBAIE,uCAFA,eADA,aAIA,YAFA,iBAEA,CAEA,0BAKE,eAHA,YACA,iBAIA,iBAHA,kBAHA,UAMA,CAEA,8BAEE,YACA,yCAFA,UAEA,CAIJ,0BACE,aACA,sBACA,uBACA,qBAEA,uCACE,gBAGF,sCACE,cACA,gBAIJ,+BAIE,4DAA8D,CAC9D,gEAAkE,CAClE,oEAAsE,CACtE,qDAAsD,CANtD,wBLrGS,CKsGT,oDACA,4CAIuD,CC5G7D,aACE,UAEA,oBACE,wBACA,qBACA,gBACA,uBACA,YACA,aNNa,CMOb,sCAGA,uBACA,wCACA,cAGA,WACA,iBARA,SACA,qBAIA,WACA,SAEA,CAGF,+BAGE,SAIA,aN1Ba,CM2Bb,+BAHA,YAIA,cAEA,oBAVA,kBAGA,UAFA,MAIA,aAIA,SACA,CClCJ,WACE,aACA,sBACA,oBAEA,uBACE,sBAEA,kBADA,iBACA,CAGF,wBAEE,qBADA,aAEA,8BACA,oBAGF,4BACE,WACA,kCAEE,oBACA,WAIJ,0BAGE,mBADA,YAEA,UAGF,6BAEE,aADA,gBAEA,WAGF,sBAEE,aADA,kBACA,CAEA,wCACE,oBAIJ,wBACE,aAEA,uCAEE,iBADA,SACA,CCvDN,OACE,qBAGA,kBAOA,0CARA,YADA,UAgBE,CAPF,oBAIE,mBAEA,qBACA,kBAJA,aAEA,sBAEA,CAGF,cACE,MAGF,cAKE,iBAHA,WACA,gBAFA,kBAGA,kBACA,CAGF,eACE,aACA,oBCnCJ,YAIE,sBAOA,qBTDiB,CSEjB,gCAHA,kBTiB2B,CShB3B,2CATA,oBACA,sBAIA,YADA,cAFA,iBASA,CAEA,gCACE,cACA,YAEA,gBADA,iBACA,CAGF,mCAEE,aADA,WAEA,iBACA,UAEA,qCACE,OAEA,gBAEA,SAGA,gBAJA,aAFA,kBAKA,uBADA,kBAEA,CAGF,2CAME,0BAFA,SAGA,8BALA,OAGA,cAJA,kBAEA,OAIA,CAIJ,+BACE,OACA,YAGF,qLAME,aAGA,YAFA,uBACA,UACA,CAIA,oCAEE,YADA,UACA,CAMF,8IAKE,kBAFA,YACA,yCAFA,UAGA,CAIJ,6BAEE,qBADA,YACA,CAEA,mCAEE,YADA,UACA,CAIJ,mCAGE,mBAFA,aACA,sBAEA,uBACA,iBAIF,uBAKE,0BAHA,eAEA,sBAHA,kBAKA,mCAHA,oBAGA,CAEA,8BACE,SAIJ,gCACE,aAKA,kBADA,gBAHA,kBACA,QACA,MAGA,UAEA,mDAUE,6BARA,iBTxGoB,CSyGpB,uCAKA,iBAFA,WACA,iBANA,UAGA,kBACA,SAKA,CAEA,mEACE,qBAGF,yEACE,qBAKN,8BAKE,aAHA,cADA,kBAGA,kBADA,UAEA,CAEA,kCACE,WAGF,qCACE,OACA,yCACE,SACA,kBACA,YACA,qCAIJ,oCACE,OACA,WACA,qBACA,uCACE,eACA,SAMJ,mCACE,QACA,WAGF,4CACE,QACA,WAIJ,sBACE,aAEA,uFAEE,SAIJ,yBAEE,aTpMa,CSqMb,8BAFA,qBAKA,YACA,gBAHA,gBACA,kBAEA,CAEA,yCACE,YAGF,mCAGE,qBAFA,aACA,kBACA,CAEA,iHAEE,SACA,UACA,kBAGF,0DACE,OACA,kBAGF,uDAEE,kBADA,QACA,CAIJ,2BACE,qBACA,eACA,gBACA,uBAGF,6BACE,cAIJ,qBACE,gBAIA,6DAEE,yCAKF,yDAEE,qCCpQJ,uBACE,aACA,sBAGF,sBAIE,WAAU,CAFV,SADA,kBAEA,UACA,CAEA,wCACE,gBAKF,6BAGE,8GACE,CADF,sGACE,CAIF,2BACA,uBARA,gBACA,eAOA,CAIJ,gCAEE,aAAY,CADZ,iBACA,CAGF,mCACE,aAGF,kCACE,aACA,OACA,uBACA,cAEA,yCACE,cAKF,2DAEE,YACA,iGACE,kBAKN,4BASE,sBAJA,SACA,aACA,mBACA,iBALA,OAFA,kBAGA,QAFA,KAOA,CAEA,kCAKE,qBACA,kBAFA,aAGA,yDALA,YACA,kBAFA,UAMA,CAEA,gDAEE,aADA,QACA,CAKN,uBAIE,sBAFA,YACA,YAFA,kBAKA,cACA,kCACE,SChGN,QACE,4CAA6C,CAC7C,qDAAsD,CACtD,mDAAoD,CACpD,sCAAuC,CAEvC,qBAGA,YAFA,kBACA,UACA,CAEA,iBAGE,kBXUwB,CWTxB,0CAFA,YADA,UAGA,CAGF,gBAIE,iBXCqB,uCWFrB,mCADA,YADA,UXIqB,CWErB,+BACE,qCACA,kCAGF,iCACE,aAGF,yBACE,kBXXsB,CWYtB,0CAGF,6BACE,wBXtCS,CWuCT,mCAIJ,YAEE,YADA,UACA,CAGF,uBAME,6BAEA,mCANA,SAKA,WAHA,aACA,aAJA,kBAEA,OAKA,CC3DJ,aAIE,kBADA,eAFA,kBACA,mBAGA,kBAEA,yCAGE,kBADA,cACA,CAGF,6BACE,0CAEA,aAGA,kBADA,gEADA,sBAFA,WAIA,CAGF,mBAQE,iBANA,qBAKA,YADA,OAMA,iBARA,UASA,aAZA,kBAIA,SAKA,4BAIA,6DALA,mBAEA,SAGA,CAGF,oDAEE,gEAGF,uCAEE,mBAGF,wBACE,mBAKE,kCACE,gBAGJ,iCAEE,6CADA,qCACA,CAGF,sBACE,kBAEA,qBACA,cAGA,QAAO,CALP,WAGA,eACA,mBACA,CAIA,sCACE,6LACE,CAWJ,oCACE,kGAKF,mCACE,iEAKN,mBACE,oBAGF,gCACE,+BAIJ,sBAEE,iBADA,eAEA,gBClHF,cACE,qBAEA,qDACE,YAGF,4BAGE,kBAFA,iBACA,kBACA,CCVJ,aAIE,kBADA,qBAFA,kBACA,kBAEA,CCHA,wBAEE,kBADA,sBACA,CAGF,iBACE,cAGF,uFAKE,0CAGF,eACE,eAGF,0BACE,SAGF,gBACE,gBACA,kBACA,eAGF,gBACE,gBACA,aAGF,gBACE,cACA,eAGF,gBACE,eAOF,sCAHE,oBAMA,CAHF,oBAGE,8BADA,4BACA,CAGF,qCAGE,iBADA,eAGA,yCADA,qBACA,CCzDF,aACE,aACA,sBACA,gBAEF,mBACE,kBAEF,qBAKE,ahBNkB,CgBOlB,+BAJA,aACA,mBAFA,YAGA,iBAEA,CAEF,2BAEE,mBADA,aAEA,mBAEA,sBADA,SACA,CAEF,yBAEE,aAAY,CADZ,WACA,CAEF,mBAKE,wBhB1BgB,CgB2BhB,qCACA,kBhBjBoB,CgBkBpB,sCALA,ahB3Ba,CgB4Bb,8BAHA,YASA,OARA,kBAOA,MAEA,qBAEF,mBAEE,mBADA,YACA,CAEF,YACE,YAEF,cAEE,mBADA,YACA,CAEF,gBACE,gBAEF,wBAEE,kBADA,cACA,CC1DJ,YACE,aACA,sBAEA,mBACE,8BAA+B,CAGjC,yBACE,gBAGF,uCAKE,qBAHA,uCAKA,oCAHA,yBADA,qBAGA,qBACA,CAGF,qBACE,cACA,kBACA,oBAIA,+BAIE,aADA,gBADA,uBADA,kBAGA,CAIJ,6BAIE,gCAFA,mBACA,qBAEA,WAAU,CAJV,kBAIA,CAEA,mCACE,kBAEA,4CACE,eACA,gBAEA,uBADA,kBACA,CAKN,0BACE,aACA,sBACA,iBAEA,uCAEE,aACA,kBACA,kBAHA,kBAIA,UAEA,mDAEE,8GACE,CADF,sGACE,CAIF,2BACA,uBAPA,YAOA,CAKN,wHAIE,qBAGA,kBADA,WADA,oBAEA,CAGF,+BAEE,YAEA,kBADA,iBAFA,kBAIA,UAGF,gCAEE,oBAGF,yDAEE,qBAEA,iEACE,cAIJ,uBACE,ajBrGe,CiBsGf,mCAGF,sBACE,kCAGF,qBAIE,iBAAiB,CAHjB,gBACA,kBAEkB,CAElB,6DAEE,kBAGF,2BAIE,cAOA,2BACA,uBAJA,gIAFA,oDACA,gEAFA,sEAFA,cAFA,gBACA,kBAUA,CAGF,kCAEE,WAEA,YACA,iBAJA,aAEA,aAEA,CAGF,sCAOE,YACA,qBAHA,oBACA,QAEA,CAPA,qDACE,aASJ,mCACE,qBCvKN,mBAoDE,qBlB3CiB,CkB4CjB,gCAHA,kBlBzB2B,CkB0B3B,2CALA,alB1Ce,CkB2Cf,0BA5CA,eAFA,aACA,mBAGA,gBADA,eAiDA,CA9CA,+BACE,cAEA,cADA,WACA,CACA,mCAIE,kBlBUuB,CkBTvB,2CAHA,YACA,qCAFA,UAIA,CAIJ,iCAGE,aACA,sBAFA,YADA,eAGA,CAGF,8BACE,gBAGF,qCAKE,kBAJA,gBAOA,6BANA,gBACA,uBACA,qBAIA,CAGF,+BACE,aC7CJ,eACE,OACA,YCAF,kBACE,kBAEA,+BACE,mBAGF,+BACE,aAGA,aAFA,8BACA,YACA,CAEA,sCACE,WAGF,iCAGE,aAFA,aACA,aACA,CAIJ,oCACE,aACA,OAEA,iBACA,eAFA,iBAEA,CAGF,mCACE,aACA,kBAGF,kCAEE,eADA,OAEA,gEAEA,wCACE,0BAEF,0EAEE,eADA,iBAEA,wBAIJ,qCACE,kBAGF,iCAEE,yBpBvDc,CoBwDd,uCAFA,iBAEA,CAGF,kCACE,sBACA,oCACA,iBpB3CsB,CoB4CtB,uCAEA,QAAO,CADP,YACA,CAIA,4CACE,yBpBtEY,CoBuEZ,uCAIJ,mCAIE,qBAHA,aACA,8BACA,eACA,CAIA,+DACE,aAGF,8DACE,gBAIJ,gGAME,mBADA,aAFA,OAFA,iBACA,gBAEA,cAEA,CAIE,+wBACE,apBlGc,CoBmGd,+BAKF,wQAEE,UpB5GS,CoB6GT,kCAFA,kBAEA,CAEA,4SACE,UpBhHO,CoBiHP,kCAOR,qCAEE,qBADA,OACA,CAGF,8BAEE,uBADA,OACA,CAGF,6BAEE,sBADA,OACA,CAGF,yBACE,kBAGF,wCAEE,mBADA,kBAEA,WAEA,0FAEE,gBADA,wCACA,CAGF,+CACE,gBAGF,8CACE,OACA,WAIJ,wCACE,aAGA,sBAFA,kBACA,UACA,CAOF,uBACE,aACA,sBACA,YACA,kBAGF,8BACE,aACA,sBAEA,iBADA,uBACA,CAGF,kCAEE,uBAMA,yCACA,6CANA,gBAGA,mEAIA,YANA,6BAMA,CAEA,kDACE,gBAIJ,8BACE,kBAGF,qCAEE,SAGA,cADA,UAHA,kBAEA,OAEA,CAEA,2CACE,SpBjNW,CoBkNX,sBAIJ,iCACE,mBAGF,mBACE,aACA,eAGF,oBACE,cACA,cAGF,kCAME,mBAKA,wBpBxPW,CoByPX,mCAGA,0BACA,sCAHA,iBpBrOsB,CoBsOtB,uCALA,apBnPa,CoBoPb,0BALA,aADA,cADA,YAIA,uBACA,WAPA,kBACA,UAcA,CChQJ,eACE,gBAEA,8BAEE,eADA,UACA,CCDF,qBASE,6BARA,SACA,YAGA,OAEA,QAGA,WAIJ,yCAVI,eADA,cAGA,eAEA,KAkBF,CAZF,oBAWE,wBtB1Ba,CsB2Bb,mCAVA,SAGA,iBAFA,gBACA,eAGA,2BACA,WAIA,CAGE,iDACE,kBAIJ,0CAGE,wBtBtCW,CsBuCX,mCAHA,SACA,aAGA,mBAGF,yCAGE,wBtB9CW,CsB+CX,mCACA,0BACA,wCACA,aACA,yBAPA,SACA,YAMA,CAEA,gDAEE,kBADA,UACA,CCxDN,0BACE,YACA,mCACE,uBACA,YAKF,wDACE,eCVF,iCAEE,eACA,eACA,kBAHA,WAGA,CAEA,mDACE,axBCgB,gCyBRtB,WACE,aACA,sBAEA,oBAIE,mBAHA,aACA,mBACA,8BAEA,oBAEA,yBACE,eAGF,6BACE,aACA,mBACA,sBAEA,kCACE,iBAKN,sBACE,mBAGF,6BAEE,uCADA,iBACA,CCjCJ,WACE,kBACA,UAEA,iBACE,qCAAsC,CACtC,uCAAwC,CACxC,sCAAuC,CAGzC,0BAME,oBAFA,uBADA,gBAEA,sBAJA,eAOA,kBANA,iBAMA,CAGF,uBACE,qBAEA,kCADA,mCAGA,kBAGF,6BAiBE,kCANA,sBAIA,8EACA,+EAHA,wEACA,yEATA,SAFA,OAGA,kMAGA,2BACA,uBAEA,8CAXA,kBAGA,QAFA,MAgBA,WAEA,sCACE,gDAIJ,eAEE,cACA,gBAEA,QAAO,CADP,YAHA,iBAIA,CAEA,iBACE,a1BxDW,C0ByDX,8BAGF,mBAIE,iBADA,eAFA,yCACA,qBAEA,CAIJ,sBAME,mCAAoC,CACpC,qBAAqB,CANrB,2B1BxDoB,C0ByDpB,+CACA,4B1B1DoB,C0B2DpB,+CAGsB,CAGxB,oBAIE,mCAAoC,CACpC,sCAAsC,CAJtC,kB1BlEoB,C0BmEpB,qCAGuC,CAGzC,oBAIE,qCAAsC,CACtC,wCAAwC,CAJxC,iB1BtEsB,C0BuEtB,sCAGyC,CAG3C,qBAGE,qB1B7Fe,C0B8Ff,gCAIJ,WAGE,eAEA,wBAJA,a1BpGoB,C0BqGpB,8BAKE,CAEA,mBACE,kBAIJ,sBAIE,uBADA,aAEA,gBAJA,YACA,kBAGA,CAEA,wBACE,YAGF,wBAEE,aADA,qBACA,CAGF,8BACE,sCAAuC,CACvC,+CAAgD,CAChD,6CAA8C,CAG9C,YACA,qCAFA,UAEA,CAIJ,kBAEE,eADA,iBACA,CAEA,2BASE,mBAHA,gCAIA,iB1B3ImB,C0B4InB,sCANA,SAEA,aACA,uBANA,OAUA,UAXA,kBAGA,QADA,MAUA,4BAEA,+BACE,WAIJ,mDACE,UAIJ,iEACE,eAGA,eACA,eAFA,kBADA,WAGA,CAEA,qGACE,a1BjLgB,C0BkLhB,+BAIJ,yBAYE,kBAAkB,CAXlB,cAKA,WAIA,gBARA,iBACA,gBACA,uBACA,mBAIA,SAGmB,CAEnB,yEAEE,aAIJ,sBAGE,cAEA,gBADA,iBAFA,gBADA,sBAIA,CAGF,wBAGE,qBADA,gBADA,iBAEA,CAEA,mCACE,iBAGF,0CAEE,cADA,cAGA,gBADA,sBACA,CAGF,kCAKE,a1B3OW,C0B4OX,0BAJA,cAEA,eADA,gBAFA,aAKA,CAGF,mCAIE,wB1BrPS,C0BsPT,6CAHA,a1BjPW,C0BkPX,sCAFA,SAIA,CAIJ,sBAGE,qBADA,aAGA,eADA,iBAHA,mBAIA,CAEA,iCACE,cAEA,iBACA,gBAGF,mCAKE,iBAHA,aADA,cAEA,eACA,kBACA,CAEA,oDAEE,cADA,gBACA,CAGF,qDAGE,cADA,iBADA,aAEA,CAGF,sDAEE,cADA,UACA,CAGF,+JAKE,oBADA,kBADA,kBAEA,CAIN,8BAEE,aACA,mBACA,oBAHA,iBAGA,CAEA,gCACE,sBAEA,eADA,kBACA,CAGF,qCACE,SAIJ,sBACE,sBAIJ,8BACE,aAGF,aAME,a1BlUoB,C0BmUpB,+BANA,aAOA,eAHA,8BAHA,gBAAgB,CAChB,qBACA,iBAIA,CAGF,YACE,cAEA,cADA,cACA,CAEA,eACE,aAAa,CACb,mBACA,iBAEF,cACE,qBC5VJ,uBACE,iBACA,WCAF,iBAGE,qBADA,sBAMA,a5BHe,C4BIf,0BARA,aAGA,aACA,kBACA,cACA,UAEA,CAEA,oCACE,eAGF,4BACE,OAGF,4BACE,kBAGF,+BAEE,kBADA,SACA,CAEA,0CACE,mBAIJ,uBAKE,qDAAuD,CACvD,yDAA2D,CAC3D,6DAA8D,CAN9D,wB5B1BgB,C4B2BhB,6CACA,a5B9Ba,C4B+Bb,qCAG+D,CAE/D,kCACE,kCAAoC,CAIxC,yBAME,qDAAuD,CACvD,yDAA2D,CAC3D,6DAA8D,CAN9D,wB5BzCgB,C4B0ChB,6CACA,a5B9Ca,C4B+Cb,sCAJA,kBAO+D,CAE/D,oCACE,kCAAoC,CAGtC,+BACE,0BC9DN,gBACE,aACA,eAEA,YADA,eACA,CAEA,2BAOE,oB7BFa,C6BGb,8CAPA,mBACA,YAEA,kBACA,wBACA,qBAHA,UAKA,CAGF,6BAME,sBAJA,aAKA,YAJA,cAEA,iBAJA,kBAGA,iBAGA,CAEA,sFAEE,SAGF,gDAGE,wBAFA,a7B3BW,C6B4BX,8BACA,CAEA,4HAEE,cCpCN,iBAEE,8BADA,eACA,CAGF,aACE,gBACA,SACA,UAGF,aAGE,uB9BNe,C8BMf,iB9BNe,C8BOf,gCAHA,iBAGA,CAIA,oCAGE,2B9BLkB,C8BMlB,+CAHA,4B9BHkB,C8BIlB,+CAEA,CAGF,mCAGE,8B9BZkB,C8BalB,kDAHA,+B9BVkB,C8BWlB,kDAEA,CAIJ,wBACE,YAGF,8BAEE,iBACA,CAGF,2DAHE,gBAFA,gBAOA,CAGF,gCAEE,wB9B7CgB,C8B8ChB,6CAEA,uB9B9Ce,C8B8Cf,iB9B9Ce,C8B+Cf,gCALA,kBAKA,CAGF,qBACE,wB9B3DW,C8B4DX,mCAGF,6BAEC,kCAAmC,CCpEpC,mBACE,iBCDF,iBACE,sBAEF,mBAEE,YADA,UACA,CAEF,eAEE,SADA,aACA,CAEF,qBAKE,aAHA,gBAEA,UADA,uBAFA,kBAIA,CAEF,oBAEE,aADA,UAEA,kBCnBJ,gBAEE,YAEA,eAHA,eAEA,0BACA,CAEA,sBACE,UAGF,4BACE,WAKF,4BACE,eAEA,kCACE,ajChBW,CiCiBX,+BACA,kBAGF,mCAGE,mBAFA,aACA,6BACA,CAIJ,2BAGE,gBADA,kBADA,eAEA,CAGF,qCACE,YAGF,4BACE,aACA,kBAIA,+BAGE,iBjC5BmB,CiC6BnB,sCAHA,YAIA,kBACA,iBAJA,UAIA,CAIJ,0BACE,aAEA,mCACE,OACA,YACA,iBACA,YAKF,iCACE,aACA,8BCrEN,6BAEE,sBAgBA,gBAjBA,6BAiBA,CAdA,2GAEE,YAEA,8OAGE,gBADA,YACA,CAGF,uHACE,UAOJ,wBACE,GACE,UAEF,GACE,WAIJ,yCAME,gBADA,eAHA,eAQA,CAEA,wFATA,mBAFA,aAGA,sBAKA,YADA,YAEA,uBAHA,UAYE,CAIJ,0DAGE,WACA,eAEA,iBADA,uCACA,CAGF,+BACE,cAIA,iBADA,gBADA,eADA,gBAIA,qBAGF,+BAIE,mDADA,6BADA,gBADA,cAGA,CAEA,uCACE,WAIJ,mCAOE,mBAFA,aAHA,YAIA,uBAFA,oBADA,kBAFA,UAMA,CAEA,uCACE,WAIJ,qCAME,6DADA,gBAJA,SAGA,gBAIA,eAEA,UAhH4B,CAyG5B,UAIA,iBALA,UAOA,kDAEA,SA/G2B,CAiH3B,kDAQE,gCAFA,WAFA,eAFA,UArH0B,CAwH1B,eAxH0B,CAoH1B,kBAMA,kBAJA,SAKA,CAIJ,2CAEE,cAIA,WAFA,gBAlIiC,CA+HjC,kBAEA,QAEA,SApI4B,CAuI5B,uDAME,gCAFA,WADA,eA1I0B,CAwI1B,kBAIA,kBAHA,KAIA,CAGF,iDACE,OACA,6DACE,SAhJwB,CAoJ5B,iDACE,QACA,6DACE,UAvJwB,CA4J9B,0CACE,kBAEA,OAAM,CADN,KACA,CACA,uDAEE,WADA,QAjK0B,CCDhC,uBAQE,oBADA,aADA,YAFA,OAHA,eAEA,MAMA,uBACA,8BALA,WAHA,wBAQA,CAGF,4BACE,uBAGF,8BAEE,2BADA,qBACA,CAGF,oBASE,gCALA,aAFA,OAGA,eAJA,MAMA,gBACA,qCALA,YAGA,UAGA,CAGF,2BACE,6BAGF,2BACE,cAGF,aAgBE,gDAAkD,CAClD,oDAAsD,CACtD,wDAA0D,CAC1D,yCAA0C,CAP1C,wBnCrDa,CmCsDb,wCAHA,sCACA,8BAGA,anCnDe,CmCoDf,iCANA,aAJA,oBAGA,eAPA,kBAKA,sBAJA,kDACA,gBACA,8BAGA,SAY2C,CAE3C,oBACE,iBAIJ,0BAEE,mBADA,aAEA,cAEA,8BACE,UACA,YACA,mBAGF,+BACE,gBACA,uBACA,mBAIJ,kCACE,WAGF,oBACE,2BAGF,qBAGE,oBAFA,uBAGA,aAFA,sBAIA,QAAO,CADP,SACA,CAGF,gBAME,uBnCpGiB,CmCoGjB,iBnCpGiB,CmCqGjB,gCANA,gBACA,SACA,SAIA,CAGF,2BACE,SAGF,gBACE,UAEA,yCACE,sBACA,cACA,WACA,gBACA,eAEA,qDAKE,4DAA8D,CAC9D,gEAAkE,CAClE,oEAAsE,CACtE,qDAAsD,CAPtD,wBnCzHc,CmC0Hd,oDACA,anC9HW,CmC+HX,4CAIuD,CCtI3D,iCAaE,mBAJA,wBpCRW,CoCSX,oCAPA,mBAEA,aASA,6DAHA,aATA,WAUA,uBARA,eAEA,YAWA,0BACA,kDAjBA,UAcA,UAGA,CAGF,yBACE,2BAGF,sBAEE,apCxBa,CoCyBb,0BAFA,eAEA,CAIJ,yBACE,qCACE,cClCJ,aACE,aAEA,0BAEE,8BADA,YACA,CAGF,6BACE,oBACA,gEAIA,kGAEE,arCNY,CqCOZ,2BAIA,wCACE,kBADF,8EACE,kBAKF,4FACE,mBADF,sDACE,mBC5BR,gBACE,aAEA,6BAEE,8BADA,YACA,CAGF,gCACE,oBACA,gEAIA,6CACE,uBAGF,2GAEE,YtCRc,CsCSd,4BAIA,2CACE,kBAGF,4CACE,mBALF,iFACE,kBAGF,kFACE,mBAKF,kGACE,mBAGF,oGACE,kBALF,yDACE,mBAGF,0DACE,kBCvCN,qCAEE,aADA,YACA,CAEA,2CACE,OAIJ,sCAIE,oCAHA,WAEA,YADA,UAEA,CAGF,8BASE,yBAJA,aACA,eAHA,gBADA,WAUA,wTAOA,2BACA,uBAJA,8EAZA,kBAGA,aACA,kBAOA,6GALA,gEATA,UAmBA,CAEA,4CAKE,qBAJA,eAEA,eACA,eACA,CAEA,kDACE,sBAMN,qCACE,WAGF,8BAEE,aADA,YACA,CAEA,oDACE,avC3DW,CuC4DX,0BAOA,mDACE,kBADF,yFACE,kBAKF,kHACE,mBADF,iEACE,mBC7ER,eACE,aAEA,4BAEE,8BADA,YACA,CAGF,+BACE,oBACA,gEAIA,4CACE,uBAGF,wGAEE,axCTa,CwCUb,4BAIA,0CACE,kBAGF,2CACE,mBALF,gFACE,kBAGF,iFACE,mBAKF,gGACE,mBAGF,kGACE,kBALF,wDACE,mBAGF,yDACE,kBCtCN,sCACE,WAGF,+BAGE,aADA,aADA,eAEA,CAEA,qDACE,azCTW,CyCUX,0BAOA,oDACE,kBADF,0FACE,kBAKF,oHACE,mBADF,kEACE,mBC5BR,SACE,aAKA,eACA,YALA,SACA,SAIA,CAEA,uBACE,mBAEA,mCACE,iBAGF,qCACE,kB1COsB,C0CNtB,0CACA,YACA,WCnBN,wBAKE,iB3CGiB,C2CFjB,gCAGA,iB3CYwB,C2CXxB,uCAHA,mBACA,iBAPA,eAEA,cADA,cAQA,CAGA,uCACE,YAGF,mDACE,YACA,kBAEA,qDACE,cCvBN,mBAGE,iBAAiB,CAFjB,YAEkB,CAElB,kCAEE,aACA,mBAFA,aAEA,CAEA,mDACE,aACA,sBACA,iBACA,cAEA,uDAEE,WADA,SACA,CAIJ,yDACE,gBCvBN,gBACE,aAEA,eADA,gBACA,CAEA,gCAKE,mBAEA,sBAHA,aAEA,uBAJA,kBACA,gBAFA,cAMA,CAEA,gDAEE,mBADA,YACA,CAGF,sCACE,aAGF,8CACE,eACA,oDACE,4F7CEiB,C6CDjB,+BAIJ,iDACE,uCACA,iBACA,8BAIJ,uCAKE,mBADA,aAEA,uBAJA,kBACA,gBAFA,cAKA,CACA,6CACE,0BC/CN,QAGE,qBAFA,YACA,mBAEA,sBAEA,cACE,qCAAsC,CACtC,uCAAwC,CACxC,sCAAuC,CAGzC,iBAME,yDAA2D,CAC3D,qDAAuD,CACvD,yDAA2D,CAC3D,uDAAyD,CACzD,iEAAmE,CACnE,8CAA+C,CAV/C,wB9CLgB,C8CMhB,6CACA,a9CVa,C8CWb,qCAOgD,CAGlD,oBAEE,yB9CxBc,C8CyBd,uCACA,aAHA,kCAGA,CAEA,kCAEE,mBADA,aACA,CAIJ,0BACE,aACA,mCAEA,4BACE,YAGF,kCACE,cAIJ,aAGE,mBADA,aAEA,yBAHA,+DAGA,CAGF,8BACE,oBAEA,2CAEE,YADA,mBACA,CAIJ,mBACE,wCAGF,oBACE,OACA,YAGF,kBACE,yCAGF,yBASE,+BAAgC,CAChC,iBAAiB,CALjB,cADA,gBAEA,kBAHA,cADA,gBAKA,uBANA,kBASkB,CAGpB,wBACE,YAEA,kBADA,UACA,CAGF,wBACE,mBAGF,0BACE,aACA,8BACA,gBAEA,4BACE,qBACA,qBAIJ,sBAME,WAJA,kBADA,gBAGA,gBACA,uBAFA,kBAGA,CAGF,sBACE,aACA,YAGF,uBACE,aACA,cAEA,wCAEE,YADA,WACA,CAEA,kDACE,a9ChIc,C8CiId,+BAIJ,uCACE,kBAIJ,qBACE,oBACA,mBAGF,iBACE,kBAGF,uDAGE,uBAKA,oBAJA,gBAEA,iBADA,gBAEA,eALA,iBAMA,CAGF,yEAKE,aAAY,CADZ,kBADA,WAEA,CAGF,2BACE,kBAIA,iDAME,qCAFA,SAHA,WACA,cAKA,oBAJA,kBAEA,UAEA,CAGF,4CAEE,qBAIA,yDAME,qCALA,WACA,cAKA,oBAJA,kBACA,QACA,UAEA,CAKN,oCAGE,kBADA,kBACA,CAGF,8CAEE,mBACA,gBACA,uBACA,mBAGF,uBACE,eAGF,iBAIE,aACA,eAFA,gBADA,gBADA,gBAIA,CAEA,mBACE,kBAIJ,oBACE,YAGF,qBACE,wCAEA,kCACE,a9CzOa,C8C0Ob,4BAIJ,yBACE,0CAGA,YAFA,iBACA,UACA,CAGF,uBAEE,cAAa,CADb,sBACA,CAEA,8BAEE,YAEA,yCADA,sBAFA,UAGA,CAIJ,uBACE,uBACA,sBAGF,kBACE,GACE,UAGF,GACE,WAIJ,wBAGE,aACA,sCAHA,kBACA,UAEA,CAEA,0BAEE,MAAK,CADL,aACA,CAIJ,eAME,aACA,iBALA,aACA,kBAEA,gBAJA,mBAGA,sBAGA,CAEA,uFAGE,iBAEA,mBADA,iBACA,CAGF,2DAGE,gBADA,sBACA,CAGF,gCAEE,cAEA,kBAHA,gBAEA,iBACA,CAGF,4BACE,cAGF,2BACE,aACA,iBAEA,kCACE,YAIJ,uBAGE,cAFA,cACA,gBACA,CAIJ,oBAEE,gBAAe,CADf,aACA,CAGF,oBACE,OAGF,6BACE,sCAGF,eAEE,aACA,gBAFA,UAEA,CAGF,oBAKE,mBADA,aAHA,OACA,gBACA,iBAEA,CAEA,2BAME,kDALA,WAEA,YAEA,OAHA,kBAEA,SAEA,CAIJ,oBACE,wCACA,gEAEA,gCACE,uCACA,gBAEA,kBADA,wBACA,CAGF,iCAEE,gBADA,mBAEA,gBAGF,sCACE,0BAIJ,yBACE,yBACE,iBAGF,qBAEE,YADA,UACA,CAIA,8BAEE,YADA,UACA,EC7ZN,8CACE,kBAGF,yBACE,qCACA,8CACA,iB/CUoB,C+CTpB,qCACA,a/CTa,C+CUb,0BACA,cAEA,cADA,YACA,CAEA,yCACE,oBAGF,kDACE,aAEA,8BACA,mBAFA,UAEA,CAGF,+CACE,gBAIJ,cAEE,mBADA,UACA,CCrCJ,cAIG,qBAEA,iBAAiB,CAJjB,uBhDOgB,CgDPhB,iBhDOgB,CgDNhB,gCAEA,qBACkB,CAEnB,oBACE,qCAAsC,CACtC,uCAAwC,CACxC,sCAAuC,CAGzC,qBAME,aACA,iBALA,aACA,kBAEA,gBAJA,mBAGA,sBAGA,CAEA,yGAGE,iBAEA,mBADA,iBACA,CAGF,uEAGE,gBADA,sBACA,CAGF,sCAEE,cAEA,kBAHA,gBAEA,iBACA,CAGF,kCACE,cAGF,iCACE,aACA,iBAEA,wCACE,YAIJ,6BAGE,cAFA,cACA,gBACA,CAIJ,yBACE,cAGF,uCACE,ahDzDe,CgD0Df,4BAQF,sFACE,ahDpEc,CgDqEd,2BAGF,qCAEE,YhDxEgB,CgDyEhB,4BAGF,qCACE,ahD/Ec,CgDgFd,2BC3FF,6BAEE,oBAGF,+BACE,ajDFa,CiDGb,0BAGF,6BACE,kBAEA,mDAKE,SADA,OAEA,oBALA,kBAEA,QADA,KAIA,CAIA,0DACE,2FAMR,cACE,sBAGE,4CACE,aAEF,yCACE,mBAIJ,uCACE,mBAGF,2BACE,aACA,OACA,iBAEA,WAAU,CADV,YACA,CAEA,6CAEE,YADA,UACA,CAGF,kCACE,uBAAwB,CACxB,mBAAoB,CAKtB,2CACE,ajD9DW,CiD+DX,0BAKF,2CACE,SjD/DW,CiDgEX,sBAIJ,oDAGE,aACA,8BAFA,yBADA,cAGA,CAEA,8EACE,cACA,eACA,gBACA,uBACA,mBAKJ,sBACE,OAGF,mBACE,mBAGF,kCACE,OAEA,WAAU,CADV,iBACA,CAEA,2CACE,cACA,iBAGF,gDACE,kBAIA,+DACE,kBAKN,oCACE,gBAGF,oCAEE,qBAMA,aADA,WAEA,iBACA,8BAPA,oCAFA,YAIA,gBADA,kBAEA,UAIA,CAEA,qDACE,OACA,gBACA,uBAGF,8CACE,mBACA,eACA,uBACA,mBAGF,6CACE,kBAGF,oDACE,SACA,iBAGF,uCAIE,cACA,gBAHA,gBACA,UAFA,oBAIA,CAEA,6CACE,oBAIJ,sCAGE,gBChLN,WACE,yBAEA,uBAME,sBALA,aAGA,+BADA,wBADA,iCAGA,UACA,CAEA,yBACE,gCAIJ,6BAGE,mBADA,aADA,UAEA,CAGF,8BAKE,eAJA,qBAEA,cACA,kBAFA,iBAGA,CAGF,sBAEE,qBADA,cACA,CAGF,iBAEE,aAGF,sBASE,oBlDvCa,CkDwCb,8CATA,mBACA,WAGA,qBAEA,gBACA,gBAJA,kBAEA,oBAHA,SAOA,CAGF,wCAaE,iCANA,sCACA,8BANA,aAIA,OAHA,kBACA,eACA,MAMA,wBADA,yBADA,8BARA,WAWA,wBACA,CAEA,gDAEE,gBADA,0BACA,CAIJ,wCAEE,mBAQA,wBlDlFW,CkDmFX,uCACA,kCACA,+BAJA,wBARA,aAKA,YAHA,8BAIA,iBACA,kBAHA,WADA,oCASA,CAEA,gDACE,OAGF,+CACE,gBACA,iBAIJ,iBACE,OAEA,8BACE,YAIJ,iCAQE,wBlDlHW,CkDmHX,mCAHA,alD7Ga,CkD8Gb,0BAJA,0CAFA,gBAGA,kBACA,kBAHA,WAOA,CAEA,gDAEE,gBACA,gBAFA,SAEA,CAEA,uDACE,gBAEA,gBADA,QACA,CAGF,6DACE,gBAGF,sEACE,gBACA,gBCvIR,WAEE,qBADA,oBAGA,yBADA,uBACA,CAEA,qBACE,WAGF,uDAEE,YAGF,6BACE,cAGF,0BACE,YAGF,wBACE,anDpBa,CmDqBb,mCC1BJ,YACE,WACA,yBAEA,kBACE,8CAGF,cACE,gCAGF,uBAKE,sBAJA,aAGA,4CADA,mCADA,wCAKA,YACA,gBAFA,eAEA,CAGF,uCACE,kBAAmB,CACnB,kBAAmB,CACnB,eAAgB,CAChB,+HAOF,6CACE,6KAQF,iCAEE,4CADA,kCACA,CAIA,4DACE,apD7CW,CoD8CX,mCAGF,mCACE,wBpDpDS,CoDqDT,iDACA,apDpDW,CoDqDX,0CAGF,qCACE,apDzDW,CoD0DX,2CAGF,oCAGE,wBpDlES,CoDmET,iDAHA,apD9DW,CoD+DX,yCAEA,CAIJ,kBACE,eACA,kBACA,mBAEA,wBADA,mCACA,CAEA,yBAPF,kBAQI,qBAGF,wBAIE,wBpDtFS,CoDuFT,2CAGA,SACA,OAPA,kDADA,oDAEA,4CAGA,kBAIA,OAAM,CAHN,KAGA,CAGF,sBACE,qBACA,4BAIJ,sBAGE,YAFA,iBAGA,kBAFA,SAEA,CAEA,sCACE,apDzGW,CoD0GX,gCAIJ,sBACE,mBAGF,qBACE,kBAGF,kBAKE,aAJA,OAKA,eAHA,4BADA,iCAEA,eAEA,CAEA,wBACE,yBACA,iBAIJ,oBACE,UCzIF,4BAGE,oEAGF,oBAEE,aADA,iBACA,CCTJ,sBAIE,gBAFA,gBACA,gBAFA,UAGA,CAEA,kCAIE,mCtDDe,CsDCf,yBtDDe,CsDEf,gCAJA,aACA,8BAIA,gBAGF,2BAGE,sBADA,oCADA,uBAEA,CAEA,+BACE,kBAEA,0CACE,gBAIJ,6BACE,aAGF,iDACE,iBAIA,gBAFA,gBADA,YAEA,8BAEA,WAGF,gCACE,eACA,cAGF,kCAEE,kBADA,cACA,CAIJ,4BACE,aACA,sBACA,gBAGF,4BACE,aACA,8BAGA,oCACE,OAGF,sCACE,aAIJ,yBACE,kCACE,mBAGF,2BAIE,sBtDxEa,CsDwEb,iBtDxEa,CsDyEb,gCAHA,gBAIA,cALA,SAKA,CAEA,+BACE,kBAIJ,4BAEE,cACA,mBAFA,SAEA,EC/FN,iCACE,uBAEF,uBACE,cAEA,kBADA,eAGA,gBADA,UACA,CAEA,8BAPF,uBAQI,eAGF,yCACE,gBAEA,qDACE,sBClBN,iCACE,uBAGF,uBACE,cAEA,kBADA,eAGA,gBADA,UACA,CAEA,8BAPF,uBAQI,eCZJ,sCACE,uBAEF,4BACE,cAEA,kBADA,eAGA,gBADA,UACA,CAEA,8BAPF,4BAQI,eCTJ,oBAQE,mBAFA,aACA,sBAHA,oBAHA,eACA,sCACA,WAEA,iCAGA,CAEA,mCAKE,aAEA,cACA,mBAJA,2BAEA,mBALA,oBACA,kBACA,UAKA,CAEA,mDACE,cAIJ,kCACE,2CACA,CAEA,oFAFA,wCAGE,CAIJ,oCACE,gDACA,CAEA,wFAFA,0CAGE,CAIJ,oCACE,iDACA,CACA,wFADA,0CAEE,CAIJ,iCACE,iDACA,CACA,kFADA,0CAEE,CAIJ,kCACE,mBACA,wDACE,WCjEN,MAGA,sBACE,uBACA,sBAEA,0BACA,iBACA,0BACA,iBACA,mBACA,MAGF,cACE,MASA,kCACA,kCACA,CAJA,a3DhBe,0B2DkBf,CALF,sBACE,4CACA,SACA,CAKA,eACA,mBAFA,0BAGA,aAEA,YACE,0BAOJ,EACE,sCACE,qBAEA,sBACE,sDAGF,2BAEE,CACA,+BADA,8BAEA,4BAMF,kBACE,CAEA,sCAFA,oBAGA,uCAEA,uFACE,iDAEA,qIAEI,0FAEF,iDAGF,qIAEI,0FAEF,qCAIJ,uFACE,+CAEA,qIAEI,uFAEF,+CAGF,qIAEI,uFAEF,MAQN,4BADF,oDAEE,IAKF,a3DtGe,2B2DqGjB,oBAGE,IAGF,QACE,aAGF,oBACE,CACA,iBADA,iBAEA,6CAGF,U3DpHiB,uB2DwHf,sLAKA,iBAGE,KAMF,wB3D1Ia,uC2D4Ib,CAEA,iCACA,+BACA,sBACA,CARA,uBACA,CAEA,yB3D3IgB,uC2D6IhB,CAGA,2BACA,gBAVF,wBAWE,UAGF,iBACE,QAGF,iBACE,yBACA,qBAIA,gBADF,wBAEE,gBAGF,iBACE,kBACA,gBAGF,gBACE,iBAWA,iCACA,8CACA,yBAHA,2BACA,CAFA,qBACA,CANA,WACA,CAEA,MACA,CALF,cACE,CAIA,WACA,CAJA,wBACA,cAQA,WAQA,gCACA,iDACA,CANA,sBACA,CAFF,mBACE,CAEA,cACA,CAFA,gBACA,CACA,mBACA,CAEA,aACA,aAGF,kBACE,mBACA,gBACA,uBACA,oGACA,kGACA,oGACA,CAUA,wBACA,eACA,CAPE,qCAEF,CAJA,2FAEE,CAEF,sBACA,CAIA,sBACA,CAJA,aACA,CAGA,gBACA,iBAdA,iBAeA,iCAPA,qBACA,CAPA,YA0BE,CAbF,oBAEA,kCACE,CASA,oBAJA,cACA,CAFA,gBACA,CAHA,0BACA,CAGA,uCACA,uCACA,+BAEA,uCAEA,+BACE,2BAGF,SACE,kCAGF,eACE,CACA,iBADA,aAEA,iCAGF,6CACE,CAMA,8CACA,CAJA,6CACA,CACA,iBACA,CAFA,eACA,CAEA,wEAPA,eAEA,yBAMA,sEAIA,sDAEI,+CACA,0EAFF,oBAGE,0EAEA,aACE,QACA,yDAKN,6BACE,0CAMJ,oBACE,+DAMA,iBACE,MACA,2BASJ,oBAFA,qBACA,CAHF,YACE,2BACA,CACA,WAEA,gDAKE,sCAFJ,2FAIE,mBAKE,6CAFJ,6HAKE,4BAII,6CAFJ,6HAKE,qBAKF,6BACA,CAFF,2BACE,CACA,SACA,6BAME,gBAJF,aACE,eACA,CACA,+BACA,CAFA,aAGA,mLAGF,wBAKE,0BACA,CAKA,mGAKF,YACE,cAKN,iBACE,iBAMA,wB3DjXa,oC2DmXb,YACA,kB3DlWoB,mC2DoWpB,CACA,4F3D7VuB,+B2D+VvB,CAVA,a3D7We,6B2D+Wf,CAKA,cACA,CAGA,sBACA,6CAFA,aACA,CAZF,wBACE,CADF,qBACE,CADF,gBAcE,0BAEA,sBACE,iEAGF,a3DhYe,6B2DmYb,mCAGF,WACE,uBAGF,qCACE,oCACA,wBAOA,wB3DrZW,4C2DiZb,0GACE,sCAKA,4EAJA,a3DjZa,oC2D0ZX,0BAOF,wB3DnaW,6C2Dgab,kBAKE,kFAJA,a3D/Za,qC2DwaX,yBAMF,wB3DhbW,2C2DkbX,2GACA,sCACA,+EANF,a3D5ae,oC2DubX,wBAOF,mC3DnbmB,uD2DgbrB,a3D3be,yC2Dgcb,kBAIJ,eACE,YACA,CAQA,sBACA,eAFA,cACA,CAPA,cACA,CAEA,mBACA,CAFA,cACA,CAEA,iBACA,CAPA,YACA,CAIA,SACA,CAJA,kBAQA,wBAEA,a3Djde,0B2Dmdb,6BAGF,UACE,6CAIA,a3DxdkB,+B2D0dhB,uBAKN,gBAUE,CAMA,wB3Drfa,sC2Dufb,CARA,WAEA,kB3D9dsB,qC2DgetB,mGACA,8BACA,CAQA,qBACA,CAPA,a3DjfoB,+B2DmfpB,CAKA,oBACA,CANA,sBACA,wCACA,cACA,CAKA,oBACA,CADA,YACA,CAFA,aACA,CALA,QACA,CAKA,0BAHA,iBAIA,kDA1BE,eACA,CAFF,eACE,CACA,eACA,aACA,kLAyBF,kBAGE,WACA,2DAGF,eACE,YACA,CACA,eACA,QAFA,QAGA,2DAGF,YACE,0HAIE,uCAFF,qDACE,gEAEA,yTAIA,UAGE,kGAcF,wB3D/iBS,sC2DijBT,CANA,kBACA,8BACA,8BACA,CAOA,qBACA,kBACA,CAhBA,UACA,CAFA,oBACA,CAFF,aACE,CAcA,eACA,CAXA,YACA,CAQA,eACA,CANA,iBACA,CAQA,gBALA,iBACA,CAXA,yBACA,CAQA,kBACA,CATA,WAeA,oEAIJ,YACE,mIAEA,a3D7jBa,+B2D+jBX,oVAIA,UAGE,2GAeF,wB3DvlBS,sC2DylBT,CAPA,iB3DjkBqB,wC2DmkBrB,8BACA,8BACA,CAOA,qBACA,kBACA,CAjBA,WACA,CAFA,oBACA,CAFF,aACE,CAeA,eACA,CAZA,YACA,CASA,eACA,CANA,iBACA,CAQA,gBALA,iBACA,CAZA,oBACA,CASA,kBACA,CAVA,WAgBA,iEAIJ,eACE,UAMF,oCADF,uBAEE,QAKA,wB3DlnBa,oC2DgnBf,a3D7mBiB,0B2DinBf,sBAGF,yBACE,2HAIE,aAFF,SAGE,YAIJ,aACE,WACA,YAIA,mBACA,CAFF,iBACE,CACA,qBACA,mBAGE,cADF,iBAEE,oCAGE,6BADF,yBAEE,qCAIA,4BADF,wBAEE,QCvpBJ,wBACA,oCAHA,YACA,sBACA,CAHF,iBAKE,qBAEA,kB5DcsB,sC4DXpB,cAMA,QACA,CAGA,qCACA,8BACA,CATF,UACE,CAGA,MACA,CAIA,oBARA,iBACA,CAGA,OACA,CAJA,KACA,CAGA,SAIA,aAIJ,mCACE,0BAEA,oBACE,cACA,WACA,kBACA,eAGF,eACE,CACA,SADA,WAEA,8BAIJ,oCAEE,4BACA,+BACA,8GACA,CAOA,0CACA,CACA,qBACA,CARA,qBACA,aACA,CAIA,SACA,CAHA,sBACA,CAHA,qBACA,sCACA,CAKA,oCACA,gDACA,CAHA,2CACA,CAXA,iBAEA,CAWA,SACA,gEAEA,6BACE,yJAEA,YAEE,+FAKF,kB5DtDoB,sC4DyDlB,8CAIJ,eACE,yBACA,qFAOA,QACA,CALF,UAEE,CAIA,MACA,qBALA,iBACA,CAEA,OACA,CAHA,KAKA,4CAGF,eACE,4CAKA,kBADA,sBACA,CAFF,kBAGE,qMAYE,mBALA,qBACA,CAJF,0CAEE,CAEA,QACA,CAHA,YACA,CAEA,aACA,CACA,gBACA,CAFA,aAGA,gBAUJ,iBACA,CAEA,wB5D/Ha,oC4D2Hb,oBACA,CACA,sBAIA,qCARF,2BACE,kEAeE,CARF,qBAEA,wB5DlIa,sC4DoIX,CAGA,oCAHA,UAIA,wCAGF,a5DxIe,+B4D2Ib,gRAKA,sBAGE,uBAIJ,4BACE,0B5D1Jc,4C4D4Jd,4BAGF,yB5D/JgB,2C4DiKd,uDAIA,aACE,6HAEA,a5DvKW,kC4D0KT,8DAGF,wB5D/KS,gD4DiLP,c5D/KS,yC4DiLT,gEAGF,a5DpLW,0C4DsLT,+DAGF,a5DzLW,yC4D2LT,kCAKN,kBACE,CAEA,oCACA,sDACA,kDAJA,iBACA,oCAIA,yCAEA,qBACE,CACA,WACA,CAFA,qDACA,CAEA,kBADA,UAEA,6CAEA,eACE,gCAKN,kBACE,CAEA,iDAFA,iBACA,oCAEA,oCAEA,eACE,eAOJ,kBACA,CAEA,gCALF,2BACE,kEACA,CAEA,kBACA,CAFA,oBAGA,KDmbF,UACE,eAGF,YACE,QAKA,kBACA,CAHF,qBACE,qBACA,CAQA,cACA,CAFA,iBACA,CAFA,eACA,CAJA,YACA,CAKA,aACA,CATA,cACA,gBACA,CASA,eACA,CATA,aACA,CAKA,iBACA,CAEA,uBARA,qBACA,CAKA,kBAGA,2BAEA,oB3D9qBe,8C2DgrBb,WACA,wCACA,QAMF,iB3D5qBwB,wC2D0qB1B,cACE,gBAGA,cAEA,mC3DvrBqB,sD2DyrBnB,c3DpsBa,oC2DssBb,6BAEA,a3DxsBa,yC2D0sBX,gBAIJ,oC3DlsBuB,yD2DosBrB,c3DhtBa,sC2DktBb,+BAEA,a3DptBa,2C2DstBX,gBAIJ,wDACE,sCACA,+BAEA,0CACE,CAOJ,mBAGF,yB3D1uBkB,uC2D4uBhB,mBAEA,yBACE,oBAKF,oCACA,kDACA,kB3DpuBsB,sC2DiuBxB,YAKE,qBAGF,kBACE,kBACA,8BAME,cADA,YACA,CAJF,iBACE,CACA,OACA,CAFA,KAIA,uDAKF,eAEE,iFAKF,cAEE,YAIJ,WACE,aAGF,iBACE,0BAEA,YAHF,YAII,gBAGF,oBACE,cACA,WACA,qBAIJ,cACE,0BAMA,OAFA,eACA,CAFF,iBACE,CACA,SAEA,0BAGF,eACE,YACE,kBAIJ,GACE,sBACE,IAGF,wBACE,wBAIJ,GACE,uBACE,KAGF,6BACE,KAGF,8BACE,KAGF,6BACE,KAGF,8BACE,KAGF,6BACE,KAGF,8BACE,IAGF,uBACE,wCAKJ,sBAEE,qCAGF,SAEE,CEj3BF,qBAEE,yCADA,sCACA,CAGF,4BAIE,oBADA,aAEA,sBAJA,kCAIA,CCTF,cACE,UAEA,kDAQE,oBAJA,2CACA,gBAEA,aAEA,sBARA,kCAQA,CAGF,gCAEE,yCADA,sCACA,CAGF,qDACE,uBAAwB,CACxB,mBAAoB,CACpB,kBAGF,wCAIE,2CACA,eAAc,CAJd,uCAIA,CAEA,sFAEE,oBADA,aAEA,sBAGJ,8CACE,mCAGF,mCAGE,2CACA,gBAGF,iTAKE,mBAGF,kEAGE,wCAIF,mDAOE,2CAHA,4DACA,4BACA,iEACA,CAGF,sCACE,2CC5EJ,cACE,kBACA,YAEA,sCACE,sBAGF,2BAEE,wBAAuB,CADvB,yBACA,CAGF,mCAEE,eAGA,aAJA,SAEA,gEACA,UACA,CAEA,uDACE,gBACA,uBACA,mBAGF,uCACE,iBACA,yBAGF,kDACE,eACA,YAIJ,4CACE,a/DlCa,C+DmCb,+BACA,yBAGF,qBACE,gCAKJ,uBAME,wBAAuB,CADvB,0BADA,eADA,iBADA,gBADA,eAKA,CAEA,0BACE,gBACA,SACA,UAGF,0BAEE,uB/DxDe,C+DwDf,iB/DxDe,C+DyDf,gCACA,UAEA,uCAGE,8B/DtDkB,C+DuDlB,kDAHA,+B/DpDkB,C+DqDlB,kDAEA,CAGF,qCACE,YAIJ,yBACE,cAEA,aACA,kBAFA,eAEA,CAEA,+BAGE,a/DrFW,C+DsFX,qCAIgD,CAGlD,2EANE,qDAAuD,CACvD,yDAA2D,CAC3D,6DAA+D,CAC/D,8CAA+C,CAP/C,wB/DjFc,C+DkFd,4CAiBgD,CARlD,4CAIE,a/DlGW,C+DmGX,sCAJA,kBAOgD,CAEhD,kDACE,0BAIJ,6BAEE,kBADA,iBACA,CCnHJ,qBACE,mBACA,WAGA,qBAEA,gBACA,gBAFA,oBAHA,SAMA,CAGF,4CAHE,qCALA,iBAoBA,CAZF,uBAIE,mCAQA,8BAXA,gBAKA,sBAJA,cAOA,iBACA,gBAFA,aALA,iBAIA,oBAKA,CAGF,2BACE,kBAGF,mBACE,gBAGF,gCACE,oEACA,UAIA,sCAEE,mBACA,eAFA,iBAEA,CAIA,mGACE,gBACA,WCnDR,cACE,aAEA,wBAEE,cADA,gBACA,CAGF,uBACE,sBAEA,6BAME,cADA,mBAFA,gBADA,kBAEA,gBAHA,UAKA,CAEA,uEAKE,oEAJA,WACA,aAGA,CAGF,0CACE,WAEA,6DAME,oEAHA,SAFA,OACA,OAIA,CAGJ,kCAGE,4BACA,6BAEA,oBAJA,cAGA,oBAJA,UAKA,CAGJ,iDACE,aAIJ,wBACE,mBAEA,yBAHF,wBAII,iBAGF,kCACE,cAGF,8BACE,cAGA,sBADA,kBADA,eAEA,CAEA,yEAME,kEAHA,WADA,gBADA,aAKA,CAGF,oCACE,YAGF,qCACE,YAGF,2CAEE,aACA,sBAFA,cAEA,CAEA,yBALF,2CAMI,eAGF,8DAME,kEAHA,SADA,QADA,KAKA,CAGF,kDAKE,kEAHA,WADA,YAIA,CAGF,2DACE,gBAIJ,mCAME,6BADA,0BAHA,uBADA,OASA,gBADA,oBANA,eACA,cAGA,iBACA,+BAEA,CAEA,yBAZF,mCAgBI,kBADA,iCAFA,mBACA,iCAEA,CACA,yCACE,cAOV,wBACE,cACA,aAEA,gCACE,aAEF,kDAEE,aACA,sBAFA,WAEA,CACA,sEACE,OAIJ,wCACE,gBAIJ,mBAGE,gBAFA,kBACA,kBACA,CAEA,gCACE,UAEA,sCACE,UAIJ,0BACE,uBAEA,ajE/KW,CiEgLX,mCAFA,SAEA,CAGF,uBAGE,gBAFA,gBACA,kBACA,CAIJ,oBAGE,sBAFA,aACA,iBACA,CAEA,qDACE,cACA,cAIJ,2BAEE,aACA,cAFA,iBAEA,CAGE,8CACE,WACA,kBACA,UAKN,4BAME,2CADA,oBADA,iBADA,gBADA,qBADA,iBAKA,CAEA,yBARF,4BASI,cChON,YAME,iBAAiB,CALjB,YAKkB,CAElB,kCANA,gBACA,uBACA,kBAUE,CANF,sBAKE,qBADA,eAHA,cAKA,CAGF,8BACE,kBACA,cAGF,6BAIE,kBlEFwB,CkEGxB,0CAHA,aADA,kBAEA,WAEA,CAEA,6CACE,aCjCN,gBAME,sBACA,eANA,aACA,mBAEA,WACA,gBAFA,aAIA,CAEA,uBACE,aAGF,sBACE,6CACA,sCAGF,qCACE,iBAGF,uCAIE,qBAFA,sBACA,gBAFA,UAGA,CAGF,yBAEE,oBACA,8BACA,gBAHA,UAGA,CAGF,+BACE,mBAGF,uCAIE,cACA,oCAFA,gBAFA,uBACA,kBAGA,CAGF,8BAME,anE/Ca,CmEgDb,2BANA,oBAIA,eAHA,gBAEA,uBADA,mBAKA,WAGF,kBACE,+BAEA,oBADA,oBACA,CAIA,8CACE,aAEF,2CACE,mBAIJ,wBACE,kBnEhDwB,CmEiDxB,0CAGF,mCACE,kBAAmB,CAGrB,8BACE,oCAGF,mCACE,kBCvFJ,iBAMG,iBAAiB,CALlB,aACA,SACA,SACA,gBAEmB,CAEnB,mCAGE,OAFA,iBAGA,WAAU,CAFV,eAEA,CAIA,+BAEE,YADA,yCAGA,sBADA,UACA,CAIJ,8DAEE,qBACA,eACA,gBAEA,uBADA,kBACA,CAGF,kCACE,OACA,iBACA,YCpCF,sBACE,aACA,iBAEA,4BACE,WAIJ,uBACE,kBAGF,uBACE,qBAGF,iCAEE,6CADA,cACA,CAGF,0BAIE,iBADA,YADA,cADA,kBAIA,0CCzBJ,WAEE,eAAc,CADd,eACA,CAGF,uBAKE,atENe,CsEOf,2BAHA,aADA,gBAEA,uBAHA,WAKA,CCRI,oEACE,aAEF,iEACE,mBAKN,yCAEE,UACA,kBACA,UAHA,sBAGA,CAEA,gDAEE,oBADA,gBACA,CAIJ,iCACE,eAEA,mGACE,avExBW,CuEyBX,0BAIJ,+BACE,WAGF,oCACE,aACA,oBAEA,uDACE,qCAAsC,CACtC,uCAAwC,CACxC,sCAAuC,CAI3C,sCACE,mBACA,WAGF,uEACE,kBAGF,0CAGE,uBAFA,aACA,sBAEA,cACA,eACA,WAKE,kHACE,WAKN,8BACE,kBvEjD0B,CuEkD1B,4CACA,aACA,cAGF,kCAEE,YACA,eAEA,kBADA,oBAEA,WALA,iBAKA,CAME,8EAEE,YACA,qBAFA,kBAEA,CAMJ,qGACE,mBAKF,iGACE,SvEnGW,CuEoGX,mCAKF,kCACE,6CAGF,wCAEE,sDACA,2DAIA,sFANA,4CAOE,CAIJ,mDACE,WAIJ,gCAIE,kBAHA,aACA,mBACA,eAEA,yBAEA,kCACE,6CAGF,wCAEE,sDACA,4DAFA,4CAEA,CAGF,oDACE,qBAGF,mDACE,YAIJ,+BACE,UAKJ,6BAKE,avEzKe,CuE0Kf,iCAHA,eADA,eADA,kBAGA,+DAEA,CCjLF,WACE,aACA,YAEA,4BAIE,aAHA,YAEA,iBADA,UAEA,CAGF,2BAEE,uCAOA,4BACA,kEATA,sBAEA,aACA,sBAIA,SADA,8CADA,iBADA,UAKA,CAEA,iCACE,gBAIJ,yBAGE,aACA,sBAFA,YAGA,oBAJA,cAIA,CAGF,mBAGE,wBxEnCW,CwEoCX,mCAFA,SADA,gBAIA,UAGF,8BACE,2CAGF,2BAIE,iBADA,YADA,cADA,kBAIA,0CAGF,kCAWE,mBAJA,wBxE1DW,CwE2DX,oCALA,mBASA,6DAMA,eATA,aAPA,aAQA,uBAMA,UAZA,kBACA,YACA,WAQA,oBACA,kDAEA,kBAhBA,YAYA,UAKA,CAEA,0CACE,UACA,mBAGF,oCAEE,axE5EW,CwE6EX,0BAFA,aAEA,CAGF,wDAKE,mBAJA,eACA,SACA,iBACA,aAEA,kBAGF,sDAGE,qBADA,aAEA,YAHA,UAGA,CAEA,6DACE,WCrGN,+BAEE,aACA,mBAFA,cAIA,eADA,8BAEA,kBAGF,oBAGE,gBAFA,gBACA,eACA,CAGF,2BAEE,iBADA,gBAEA,WChBF,uBAKE,8DAJA,aACA,iBAGA,CAEA,8BACE,eAGF,yBACE,eCbN,cAKE,qBAAqB,CAJrB,OACA,gBAGsB,CAEtB,mCACE,cAEA,uCAIE,iBADA,eAFA,yCACA,qBAEA,CAEA,6CAEE,YADA,UACA,CAIJ,uDAGE,oCACA,iB3ELkB,C2EMlB,qCAJA,aACA,YAGA,CAEA,gFAME,0CAFA,uBAHA,aACA,gBAGA,gBAFA,gBAGA,CAGF,iFAEE,kBADA,aAEA,mBAGF,iKAME,sBALA,gBAGA,gBACA,mBAHA,uBACA,kBAGA,CAKN,oCAGE,mBAFA,aACA,uBAEA,YAIF,sCAGE,mBAFA,aACA,uBAEA,YCnEJ,uBACE,yB5EEgB,C4EDhB,uCACA,eACA,kBAGF,yBAEI,qDACE,cAEA,cADA,uBAEA,mBAKN,eAGE,uB5EZiB,C4EYjB,iB5EZiB,C4EajB,gCAHA,qBAGA,CAGF,sBAKE,wB5E5Ba,C4E6Bb,sCAHA,gCADA,mBADA,qBAGA,YAEA,CAGF,wBAEE,aACA,uBAFA,aAEA,CAEA,sCAKE,sBAFA,eADA,qBAEA,cAHA,UAIA,CAGF,uCACE,iBAIJ,cACE,YAGF,OAEE,mBADA,YACA,CAEA,gBACE,cAGA,gBACA,uBACA,mBAGF,8BAPE,a5E1Da,C4E2Db,yBAcA,CARF,cACE,cAEA,iBAEA,gBADA,oBAEA,kBAJA,UAMA,CAIF,sBACE,aACA,kBCtFJ,mBAIA,YACE,sBACA,YACA,+BAEA,YACE,mBACA,iCAEA,WACE,sCAIJ,YACE,YACA,iCAKA,YACA,CAFA,QACA,CACA,sBAHF,eAIE,6BAGF,gBACE,gBACA,gCAGF,YACE,sBACA,CACA,aACA,mBAFA,cAGA,uCAIA,sBACA,CAFF,yBACE,CACA,qCACA,oDAGF,aA/CiB,0BAiDf,gCAGF,gBACE,gBACA,qCAEA,eACE,mCAIJ,eACE,CACA,aADA,iBAEA,6CAEA,YACE,kCAIJ,gBACE,gBACA,6BAIA,mBADF,eAEE,yBAIA,WADF,eAEE,2BAGF,iBACE,0BAIJ,8BACE,6BACE,EC5FJ,qBAGE,mBAFA,aACA,sBAEA,YAEA,gCACE,aACA,SACA,sBACA,gBACA,gBAEA,kCACE,YAIJ,iCACE,aACA,sBAGA,mBAFA,kBACA,cACA,CAGF,4BAGE,uBADA,0BAEA,sCAHA,iBAGA,CAGF,4BAEE,kBADA,YACA,CAGF,8CACE,sDACA,eAGF,yCACE,mBAGF,8BACE,eClDJ,uCACE,aACA,mBACA,eACA,8CAGE,SADA,kBADA,gBAGA,eACA,cAEA,yDACE,eCZN,aACE,WCAF,aACE,iBACA,gBAEA,8BACE,eCPJ,aACE,WAEA,mBAIE,mBAAkB,CADlB,iBAAiB,CADjB,gBADA,UAGmB,CAEnB,4CAEE,gBACA,gBACA,wBAHA,WAGA,CAGF,kDACE,WCdN,WACE,aAGF,6BAIE,anFHe,CmFIf,0BAHA,SACA,WAEA,CAEA,yCAKE,qDAAuD,CACvD,yDAA2D,CAC3D,6DAA8D,CAN9D,wBnFLgB,CmFMhB,6CACA,anFTa,CmFUb,qCAG+D,CAInE,WACE,YCxBA,wBACE,eCCF,6BACE,aACA,iBAEA,mCACE,WAIJ,8BACE,kBCXJ,eAGE,mBAGA,atFFe,CsFGf,0BANA,aAIA,cAHA,YAEA,sBAGA,CACA,iCAGE,atFPa,CsFQb,0BAHA,cACA,qBAEA,CCZJ,UACE,0BAA2B,CAI3B,aACA,sBAHA,0CACA,eAEA,CAEA,6BACE,2CAGF,sBACE,aACA,OACA,sBACA,gBAGF,kCACE,cAGF,uBACE,kBAGF,sBAEE,gBADA,oBACA,CAGF,+CAGE,sBACA,YAAW,CAFX,eAEA,CAGF,0BAIE,iBADA,YADA,cADA,kBAIA,0CAGF,eACE,cAGF,wBACE,sCAEA,uCACE,cCzDN,qBAEE,oBADA,aAEA,sBAEA,4CACE,gBAGF,oCAIE,uBAFA,YACA,cAFA,eAGA,CCXJ,cAGE,2CACA,gBACA,mCAEA,2CACE,yCAMA,mDACE,aACA,sBAIJ,+BACE,aACA,mBACA,6BAEA,oCACE,OACA,WACA,eC3BJ,+BACE,mCAEA,6EACE,yCAGF,4CACE","sources":["webpack://pleroma_fe/./src/components/modal/modal.vue","webpack://pleroma_fe/./src/components/login_form/login_form.vue","webpack://pleroma_fe/./src/components/media_upload/media_upload.vue","webpack://pleroma_fe/./src/components/scope_selector/scope_selector.vue","webpack://pleroma_fe/./src/_variables.scss","webpack://pleroma_fe/./src/components/checkbox/checkbox.vue","webpack://pleroma_fe/./src/components/popover/popover.vue","webpack://pleroma_fe/./src/components/still-image/still-image.vue","webpack://pleroma_fe/./src/components/emoji_picker/emoji_picker.scss","webpack://pleroma_fe/./src/components/emoji_input/emoji_input.vue","webpack://pleroma_fe/./src/components/select/select.vue","webpack://pleroma_fe/./src/components/poll/poll_form.vue","webpack://pleroma_fe/./src/components/flash/flash.vue","webpack://pleroma_fe/./src/components/attachment/attachment.scss","webpack://pleroma_fe/./src/components/gallery/gallery.vue","webpack://pleroma_fe/./src/components/user_avatar/user_avatar.vue","webpack://pleroma_fe/./src/components/mention_link/mention_link.scss","webpack://pleroma_fe/./src/components/mentions_line/mentions_line.scss","webpack://pleroma_fe/./src/components/hashtag_link/hashtag_link.scss","webpack://pleroma_fe/./src/components/rich_content/rich_content.scss","webpack://pleroma_fe/./src/components/poll/poll.vue","webpack://pleroma_fe/./src/components/status_body/status_body.scss","webpack://pleroma_fe/./src/components/link-preview/link-preview.vue","webpack://pleroma_fe/./src/components/status_content/status_content.vue","webpack://pleroma_fe/./src/components/post_status_form/post_status_form.vue","webpack://pleroma_fe/./src/components/remote_follow/remote_follow.vue","webpack://pleroma_fe/./src/components/dialog_modal/dialog_modal.vue","webpack://pleroma_fe/./src/components/moderation_tools/moderation_tools.vue","webpack://pleroma_fe/./src/components/account_actions/account_actions.vue","webpack://pleroma_fe/./src/components/user_note/user_note.vue","webpack://pleroma_fe/./src/components/user_card/user_card.scss","webpack://pleroma_fe/./src/components/user_panel/user_panel.vue","webpack://pleroma_fe/./src/components/navigation/navigation_entry.vue","webpack://pleroma_fe/./src/components/navigation/navigation_pins.vue","webpack://pleroma_fe/./src/components/nav_panel/nav_panel.vue","webpack://pleroma_fe/./src/components/features_panel/features_panel.vue","webpack://pleroma_fe/./src/components/who_to_follow_panel/who_to_follow_panel.vue","webpack://pleroma_fe/./src/components/shout_panel/shout_panel.vue","webpack://pleroma_fe/./src/components/media_modal/media_modal.vue","webpack://pleroma_fe/./src/components/side_drawer/side_drawer.vue","webpack://pleroma_fe/./src/components/mobile_post_status_button/mobile_post_status_button.vue","webpack://pleroma_fe/./src/components/reply_button/reply_button.vue","webpack://pleroma_fe/./src/components/favorite_button/favorite_button.vue","webpack://pleroma_fe/./src/components/react_button/react_button.vue","webpack://pleroma_fe/./src/components/retweet_button/retweet_button.vue","webpack://pleroma_fe/./src/components/extra_buttons/extra_buttons.vue","webpack://pleroma_fe/./src/components/avatar_list/avatar_list.vue","webpack://pleroma_fe/./src/components/status_popover/status_popover.vue","webpack://pleroma_fe/./src/components/user_list_popover/user_list_popover.vue","webpack://pleroma_fe/./src/components/emoji_reactions/emoji_reactions.vue","webpack://pleroma_fe/./src/components/status/status.scss","webpack://pleroma_fe/./src/components/report/report.scss","webpack://pleroma_fe/./src/components/notification/notification.scss","webpack://pleroma_fe/./src/components/notifications/notifications.scss","webpack://pleroma_fe/./src/components/mobile_nav/mobile_nav.vue","webpack://pleroma_fe/./src/components/search_bar/search_bar.vue","webpack://pleroma_fe/./src/components/desktop_nav/desktop_nav.scss","webpack://pleroma_fe/./src/components/list/list.vue","webpack://pleroma_fe/./src/components/user_reporting_modal/user_reporting_modal.vue","webpack://pleroma_fe/./src/components/edit_status_modal/edit_status_modal.vue","webpack://pleroma_fe/./src/components/post_status_modal/post_status_modal.vue","webpack://pleroma_fe/./src/components/status_history_modal/status_history_modal.vue","webpack://pleroma_fe/./src/components/global_notice_list/global_notice_list.vue","webpack://pleroma_fe/./src/App.scss","webpack://pleroma_fe/./src/panel.scss","webpack://pleroma_fe/./src/components/thread_tree/thread_tree.vue","webpack://pleroma_fe/./src/components/conversation/conversation.vue","webpack://pleroma_fe/./src/components/timeline_menu/timeline_menu.vue","webpack://pleroma_fe/./src/components/timeline/timeline.scss","webpack://pleroma_fe/./src/components/tab_switcher/tab_switcher.scss","webpack://pleroma_fe/./src/components/chat_title/chat_title.vue","webpack://pleroma_fe/./src/components/chat_list_item/chat_list_item.scss","webpack://pleroma_fe/./src/components/basic_user_card/basic_user_card.vue","webpack://pleroma_fe/./src/components/chat_new/chat_new.scss","webpack://pleroma_fe/./src/components/chat_list/chat_list.vue","webpack://pleroma_fe/./src/components/chat_message/chat_message.scss","webpack://pleroma_fe/./src/components/chat/chat.scss","webpack://pleroma_fe/./src/components/follow_card/follow_card.vue","webpack://pleroma_fe/./src/hocs/with_load_more/with_load_more.scss","webpack://pleroma_fe/./src/components/user_profile/user_profile.vue","webpack://pleroma_fe/./src/components/search/search.vue","webpack://pleroma_fe/./src/components/registration/registration.vue","webpack://pleroma_fe/./src/components/password_reset/password_reset.vue","webpack://pleroma_fe/./src/components/follow_request_card/follow_request_card.vue","webpack://pleroma_fe/./src/components/terms_of_service_panel/terms_of_service_panel.vue","webpack://pleroma_fe/./src/components/staff_panel/staff_panel.vue","webpack://pleroma_fe/./src/components/mrf_transparency_panel/mrf_transparency_panel.scss","webpack://pleroma_fe/./src/components/lists_card/lists_card.vue","webpack://pleroma_fe/./src/components/lists/lists.vue","webpack://pleroma_fe/./src/components/lists_user_search/lists_user_search.vue","webpack://pleroma_fe/./src/components/panel_loading/panel_loading.vue","webpack://pleroma_fe/./src/components/lists_edit/lists_edit.vue","webpack://pleroma_fe/./src/components/announcement_editor/announcement_editor.vue","webpack://pleroma_fe/./src/components/announcement/announcement.vue","webpack://pleroma_fe/./src/components/announcements_page/announcements_page.vue"],"sourcesContent":["\n.modal-view {\n z-index: var(--ZI_modals);\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n display: flex;\n justify-content: center;\n align-items: center;\n overflow: auto;\n pointer-events: none;\n animation-duration: 0.2s;\n animation-name: modal-background-fadein;\n opacity: 0;\n\n > * {\n pointer-events: initial;\n }\n\n &.modal-background {\n pointer-events: initial;\n background-color: rgba(0, 0, 0, 0.5);\n }\n\n &.open {\n opacity: 1;\n }\n}\n\n@keyframes modal-background-fadein {\n from {\n background-color: rgba(0, 0, 0, 0);\n }\n to {\n background-color: rgba(0, 0, 0, 0.5);\n }\n}\n","\n@import '../../_variables.scss';\n\n.login-form {\n display: flex;\n flex-direction: column;\n padding: 0.6em;\n\n .btn {\n min-height: 2em;\n width: 10em;\n }\n\n .register {\n flex: 1 1;\n }\n\n .login-bottom {\n margin-top: 1.0em;\n display: flex;\n flex-direction: row;\n align-items: center;\n justify-content: space-between;\n }\n\n .form-group {\n display: flex;\n flex-direction: column;\n padding: 0.3em 0.5em 0.6em;\n line-height:24px;\n }\n\n .form-bottom {\n display: flex;\n padding: 0.5em;\n height: 32px;\n\n button {\n width: 10em;\n }\n\n p {\n margin: 0.35em;\n padding: 0.35em;\n display: flex;\n }\n }\n\n .error {\n text-align: center;\n\n animation-name: shakeError;\n animation-duration: 0.4s;\n animation-timing-function: ease-in-out;\n }\n}\n","\n@import '../../_variables.scss';\n\n.media-upload {\n cursor: pointer; // We use